@chainlink/external-adapter-framework 0.29.12 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/adapter/basic.d.ts +1 -0
- package/adapter/basic.js +10 -1
- package/adapter/basic.js.map +1 -1
- package/adapter/endpoint.d.ts +2 -2
- package/adapter/endpoint.js +2 -2
- package/adapter/endpoint.js.map +1 -1
- package/adapter/price.d.ts +6 -0
- package/adapter/price.js +8 -1
- package/adapter/price.js.map +1 -1
- package/adapter/stock.d.ts +39 -0
- package/adapter/stock.js +23 -0
- package/adapter/stock.js.map +1 -0
- package/adapter/types.d.ts +5 -3
- package/cache/local.js +4 -2
- package/cache/local.js.map +1 -1
- package/metrics/index.d.ts +3 -1
- package/metrics/index.js +12 -3
- package/metrics/index.js.map +1 -1
- package/package.json +1 -1
- package/rate-limiting/burst.d.ts +5 -3
- package/rate-limiting/burst.js +17 -15
- package/rate-limiting/burst.js.map +1 -1
- package/rate-limiting/index.d.ts +3 -1
- package/rate-limiting/index.js.map +1 -1
- package/transports/http.d.ts +3 -0
- package/transports/http.js +5 -1
- package/transports/http.js.map +1 -1
- package/transports/websocket.d.ts +4 -2
- package/transports/websocket.js +10 -3
- package/transports/websocket.js.map +1 -1
- package/util/logger.d.ts +36 -26
- package/util/logger.js +58 -5
- package/util/logger.js.map +1 -1
- package/util/requester.d.ts +2 -1
- package/util/requester.js +4 -2
- package/util/requester.js.map +1 -1
- package/validation/index.js +13 -2
- package/validation/index.js.map +1 -1
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# EA Framework v3
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/@chainlink/external-adapter-framework)
|
|
4
|
-

|
|
5
5
|
|
|
6
6
|
> **Warning**
|
|
7
7
|
> 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)
|
package/adapter/basic.d.ts
CHANGED
|
@@ -39,6 +39,7 @@ export declare class Adapter<CustomSettingsDefinition extends SettingsDefinition
|
|
|
39
39
|
*
|
|
40
40
|
*/
|
|
41
41
|
private calculateRateLimitAllocations;
|
|
42
|
+
private logRateLimitAllocations;
|
|
42
43
|
/**
|
|
43
44
|
* Logs a warning for certain configs if set to particular values.
|
|
44
45
|
* Used to warn stakeholders of potential risks.
|
package/adapter/basic.js
CHANGED
|
@@ -41,12 +41,17 @@ class Adapter {
|
|
|
41
41
|
* Additionally, it builds a map out of all the endpoint names and aliases (checking for duplicates).
|
|
42
42
|
*/
|
|
43
43
|
async initialize(dependencies) {
|
|
44
|
+
// We initialize the logger first, separate from the rest of the dependency initialization
|
|
45
|
+
// since we could have a custom logger to document the EA lifecycle since the beginning.
|
|
46
|
+
util_1.LoggerFactoryProvider.set(dependencies?.loggerFactory);
|
|
44
47
|
if (this.initialized) {
|
|
45
48
|
throw new Error('This adapter has already been initialized!');
|
|
46
49
|
}
|
|
47
50
|
if (this.name !== this.name.toUpperCase()) {
|
|
48
51
|
throw new Error('Adapter name must be uppercase');
|
|
49
52
|
}
|
|
53
|
+
// We do this after we have the logging factory provider initialized
|
|
54
|
+
this.logRateLimitAllocations();
|
|
50
55
|
// Initialize metrics to register them with the prom-client
|
|
51
56
|
metrics_2.metrics.initialize();
|
|
52
57
|
// Building configs during initialization to avoid validation errors during construction
|
|
@@ -104,13 +109,17 @@ class Adapter {
|
|
|
104
109
|
throw new Error('The explicit allocation is at 100% but there are endpoints with implicit allocation');
|
|
105
110
|
}
|
|
106
111
|
const implicitAllocation = 100 - totalExplicitAllocation;
|
|
107
|
-
logger.debug('Adapter rate limit allocations:');
|
|
108
112
|
for (const endpoint of this.endpoints) {
|
|
109
113
|
if (!endpoint.rateLimiting) {
|
|
110
114
|
endpoint.rateLimiting = {
|
|
111
115
|
allocationPercentage: implicitAllocation / (numberOfEndpoints - endpointsWithExplicitAllocations.length),
|
|
112
116
|
};
|
|
113
117
|
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
logRateLimitAllocations() {
|
|
121
|
+
logger.debug('Adapter rate limit allocations:');
|
|
122
|
+
for (const endpoint of this.endpoints) {
|
|
114
123
|
logger.debug(`Endpoint [${endpoint.name}] - ${endpoint.rateLimiting?.allocationPercentage}%`);
|
|
115
124
|
}
|
|
116
125
|
}
|
package/adapter/basic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../src/adapter/basic.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../src/adapter/basic.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA2B;AAC3B,oCAAqE;AACrE,8CAA8D;AAC9D,sCAKkB;AAClB,wCAAoC;AACpC,oDAIyB;AACzB,sDAAmF;AACnF,kCAOgB;AAChB,iDAA6C;AAC7C,+CAAyD;AAUzD,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,SAAS,CAAC,CAAA;AAEpC;;GAEG;AACH,MAAa,OAAO;IA0BlB,YAAY,MAA+C;QAf3D,uBAAuB;QACvB,gBAAW,GAAG,KAAK,CAAA;QAEnB,6DAA6D;QAC7D,iBAAY,GAAsD,EAAE,CAAA;QAYlE,mBAAmB;QACnB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;QACvB,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,EAAE,WAAW,EAAE,CAAA;QAC5D,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAgD,CAAA;QACxE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;QACvC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;QACjC,IAAI,CAAC,MAAM;YACT,MAAM,CAAC,MAAM,IAAK,IAAI,sBAAa,CAAC,EAAE,CAA6C,CAAA;QAErF,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;QACxB,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAC7B,IAAI,CAAC,6BAA6B,EAAE,CAAA;IACtC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,YAA2C;QAC1D,0FAA0F;QAC1F,wFAAwF;QACxF,4BAAqB,CAAC,GAAG,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;QAEtD,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;SAC9D;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YACzC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;SAClD;QAED,oEAAoE;QACpE,IAAI,CAAC,uBAAuB,EAAE,CAAA;QAE9B,2DAA2D;QAC3D,iBAAO,CAAC,UAAU,EAAE,CAAA;QAEpB,wFAAwF;QACxF,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;QAEtB,oEAAoE;QACpE,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAExB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;SAC3B;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAA;QAE7D,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;YACrC,0CAA0C;YAC1C,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAA;YAC5D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;gBAC3B,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;oBAC5B,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,GAAG,CAAC,CAAA;iBAC1D;gBACD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAA;aACpC;YAED,MAAM,CAAC,KAAK,CAAC,0BAA0B,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAA;YAC3D,MAAM,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;SAC9E;QAED,4DAA4D;QAC5D,sEAAsE;QACtE,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAA;QAE7B,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;QAChD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;IACzB,CAAC;IAED;;;OAGG;IACK,sBAAsB;QAC5B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;YACrC,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;YAC3C,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;SACjE;IACH,CAAC;IAED;;;;OAIG;IACK,6BAA6B;QACnC,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAA;QAC/C,MAAM,gCAAgC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;QAErF,MAAM,uBAAuB,GAAG,gCAAgC;aAC7D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,oBAAoB,IAAI,CAAC,CAAC;aACrD,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAA;QAEvC,IAAI,uBAAuB,GAAG,GAAG,EAAE;YACjC,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAA;SACxF;QAED,IACE,uBAAuB,KAAK,GAAG;YAC/B,iBAAiB,GAAG,gCAAgC,CAAC,MAAM,GAAG,CAAC,EAC/D;YACA,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAA;SACF;QAED,MAAM,kBAAkB,GAAG,GAAG,GAAG,uBAAuB,CAAA;QAExD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;gBAC1B,QAAQ,CAAC,YAAY,GAAG;oBACtB,oBAAoB,EAClB,kBAAkB,GAAG,CAAC,iBAAiB,GAAG,gCAAgC,CAAC,MAAM,CAAC;iBACrF,CAAA;aACF;SACF;IACH,CAAC;IAEO,uBAAuB;QAC7B,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;QAC/C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;YACrC,MAAM,CAAC,KAAK,CAAC,aAAa,QAAQ,CAAC,IAAI,OAAO,QAAQ,CAAC,YAAY,EAAE,oBAAoB,GAAG,CAAC,CAAA;SAC9F;IACH,CAAC;IAED;;;OAGG;IACK,iBAAiB;QACvB,IACE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,OAAO;YACxD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,OAAO,EACxD;YACA,MAAM,CAAC,IAAI,CACT,6BAA6B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,mGAAmG,CAC7K,CAAA;SACF;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,EAAE;YACvC,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;SAC1D;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,KAAK,KAAK,EAAE;YAClD,MAAM,CAAC,IAAI,CACT,oGAAoG,CACrG,CAAA;SACF;QACD,IACE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB;YAC3C,+BAAsB,CAAC,sBAAsB,CAAC,OAAO,EACrD;YACA,MAAM,CAAC,IAAI,CACT,0CAA0C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,8DAA8D,CACpJ,CAAA;SACF;IACH,CAAC;IAED;;;;;;OAMG;IACH,sBAAsB,CAAC,iBAAgD;QACrE,MAAM,YAAY,GAAG,iBAAiB,IAAI,EAAE,CAAA;QAE5C,IACE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,KAAK,eAAe;YAChD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,KAAK,OAAO,EAC3C;YACA,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,4BAA4B,CAAC,CAAA;SAC/F;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,KAAK,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;YAC5E,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,kCAAkC,CAAA;YAC3E,MAAM,YAAY,GAAG;gBACnB,oBAAoB,EAAE,IAAI;gBAC1B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB;gBAC3C,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB;gBAC3C,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB;gBACnD,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB;gBAC3C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB;gBACjD,aAAa,CAAC,KAAa;oBACzB,iBAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,GAAG,EAAE,CAAA;oBACtC,MAAM,CAAC,IAAI,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAA;oBAChD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,EAAE,WAAW,CAAC,CAAA,CAAC,8BAA8B;gBAC1E,CAAC;gBACD,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B;gBACnE,oBAAoB,EAAE,EAAE,EAAE,6DAA6D;aACxF,CAAA;YACD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE;gBACxC,YAAY,CAAC,WAAW,GAAG,IAAI,iBAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,YAAY,CAAC,CAAA;aACzF;iBAAM;gBACL,YAAY,CAAC,WAAW,GAAG,IAAI,iBAAK,CAAC,YAAY,CAAC,CAAA;aACnD;YAED,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBAC1C,iBAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,GAAG,EAAE,CAAA;YAC3C,CAAC,CAAC,CAAA;SACH;QAED,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YACvB,YAAY,CAAC,KAAK,GAAG,oBAAY,CAAC,UAAU,CAC1C;gBACE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU;gBAC1C,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe;aAC3D,EACD,YAAY,CAAC,WAAW,CACzB,CAAA;SACF;QAED,MAAM,gBAAgB,GAAG,IAAA,mCAAmB,EAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;QAE5F,IAAI,gBAAgB,EAAE;YACpB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;gBACnD,IAAI,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE;oBACtB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;iBACxD;aACF;SACF;QAED,MAAM,gBAAgB,GAAG,IAAA,qCAAqB,EAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;QACxE,MAAM,uBAAuB,GAAG,IAAA,6CAA6B,EAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACnF,MAAM,eAAe,GAAG,uBAAuB,EAAE,WAAW,IAAI,CAAC,CAAA;QACjE,MAAM,kBAAkB,GAAG,CAAC,uBAAuB,EAAE,WAAW,IAAI,CAAC,CAAC,GAAG,EAAE,CAAA;QAE3E,IAAI,eAAe,GAAG,gBAAgB,EAAE;YACtC,MAAM,CAAC,IAAI,CACT,qIAAqI,gBAAgB,EAAE,CACxJ,CAAA;SACF;QAED,IAAI,kBAAkB,GAAG,gBAAgB,EAAE;YACzC,MAAM,CAAC,IAAI,CACT,kBACE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B;gBAC7C,CAAC,CAAC,4BAA4B;gBAC9B,CAAC,CAAC,qBACN,WAAW,kBAAkB,qFAC3B,gBAAgB,GAAG,EACrB,GAAG,CACJ,CAAA;SACF;QAED,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;YAC7B,YAAY,CAAC,WAAW,GAAG,4BAAkB,CAAC,gBAAgB,CAC5D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAA8C,CACpE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;SAC/C;QACD,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE;YACxC,YAAY,CAAC,sBAAsB,GAAG,IAAI,6BAAsB,CAC9D,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,IAAI,EACT,YAAY,CAAC,WAAW,CACzB,CAAA;SACF;QACD,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;YAC3B,YAAY,CAAC,SAAS,GAAG,IAAI,qBAAS,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;SACvF;QAED,OAAO,YAAmC,CAAA;IAC5C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,mBAAmB,CACvB,GAAyC;QAEzC,MAAM,QAAQ,GAAG,MAAO,IAAI,CAAC,YAAY,CAAC,KAAgC,CAAC,GAAG,CAC5E,GAAG,CAAC,cAAc,CAAC,QAAQ,CAC5B,CAAA;QAED,IAAI,QAAQ,EAAE;YACZ,IACE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe;gBACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAA4B,EACjD;gBACA,MAAM,KAAK,GAAG,IAAA,2BAAiB,EAC7B,GAAG,CAAC,cAAc,CAAC,QAAQ,EAC3B,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,EACjD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAChC,CAAA;gBAED,uDAAuD;gBACvD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;gBACtB,IAAA,kBAAQ,EAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE;oBAC/B,KAAK,EAAE,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,0BAA0B;oBAC3D,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,2BAA2B;wBACpD,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,2BAA2B;wBACvD,CAAC,CAAC,IAAI;iBACT,CAAC,CAAA;gBACF,GAAG,CAAC,cAAc,CAAC,IAAI,GAAG;oBACxB,GAAG,GAAG,CAAC,cAAc,CAAC,IAAI;oBAC1B,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;iBACjE,CAAA;aACF;YAED,OAAO,QAAQ,CAAA;SAChB;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,aAAa,CACjB,GAAyC,EACzC,SAA2B;QAE3B,4EAA4E;QAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;QACnE,MAAM,SAAS,GAAG,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,CAAA;QAEhF,6DAA6D;QAC7D,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;QAE1D,+HAA+H;QAC/H,mGAAmG;QACnG,IAAI,0BAAqD,CAAA;QACzD,IAAI,wBAA2C,CAAA;QAC/C,IAAI,SAAS,CAAC,eAAe,EAAE;YAC7B,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;gBACzB,wGAAwG;gBACxG,8EAA8E;gBAC9E,IAAI,cAAc,EAAE;oBAClB,MAAM,SAAS,CAAA;iBAChB;gBAED,IAAI;oBACF,8FAA8F;oBAC9F,sGAAsG;oBACtG,oEAAoE;oBACpE,OAAO,MAAM,SAAS,CAAC,eAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;iBACnE;gBAAC,OAAO,GAAG,EAAE;oBACZ,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC,CAAA;oBACnE,wBAAwB,GAAG,GAAY,CAAA;iBACxC;YACH,CAAC,CAAA;YAED,oDAAoD;YACpD,MAAM,CAAC,KAAK,CACV,sCACE,cAAc,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,EACvD,EAAE,CACH,CAAA;YAED,0BAA0B,GAAG,OAAO,EAAE,CAAA;SACvC;QAED,8FAA8F;QAC9F,IAAI,cAAc,EAAE;YAClB,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAA;YACvD,OAAO,cAAc,CAAA;SACtB;QAED,4EAA4E;QAC5E,MAAM,iBAAiB,GACrB,SAAS,CAAC,iBAAiB,IAAI,CAAC,MAAM,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC/F,IAAI,iBAAiB,EAAE;YACrB,MAAM,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAA;YAC1E,OAAO,iBAAiB,CAAA;SACzB;QAED,qGAAqG;QACrG,0HAA0H;QAC1H,0HAA0H;QAC1H,6FAA6F;QAC7F,MAAM,0BAA0B,CAAA;QAChC,IAAI,wBAAwB,EAAE;YAC5B,MAAM,wBAAwB,CAAA;SAC/B;QAED,mDAAmD;QACnD,MAAM,YAAY,GAAG,iBAAO;aACzB,GAAG,CAAC,iCAAiC,CAAC;aACtC,MAAM,CAAC,EAAE,gBAAgB,EAAE,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;aAC7D,UAAU,EAAE,CAAA;QAEf,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAA;QAClE,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAqB,EAC1C,IAAI,CAAC,YAAY,CAAC,KAA+B,EACjD,GAAG,CAAC,cAAc,CAAC,QAAQ,EAC3B;YACE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB;YAC1D,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB;SACnD,CACF,CAAA;QAED,YAAY,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAE/C,IAAI,QAAQ,EAAE;YACZ,MAAM,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAA;YACxE,OAAO,QAAQ,CAAA;SAChB;QAED,sDAAsD;QACtD,iBAAO;aACJ,GAAG,CAAC,8BAA8B,CAAC;aACnC,MAAM,CAAC,EAAE,gBAAgB,EAAE,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;aAC7D,GAAG,EAAE,CAAA;QAER,MAAM,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAA;QAC9D,MAAM,IAAI,2BAAmB,CAAC;YAC5B,OAAO,EACL,yLAAyL;YAC3L,UAAU,EAAE,GAAG;SAChB,CAAC,CAAA;IACJ,CAAC;CACF;AA5bD,0BA4bC"}
|
package/adapter/endpoint.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export declare class AdapterEndpoint<T extends EndpointGenerics> implements Adap
|
|
|
14
14
|
transportRoutes: TransportRoutes<T>;
|
|
15
15
|
inputParameters: InputParameters<T['Parameters']>;
|
|
16
16
|
rateLimiting?: EndpointRateLimitingConfig | undefined;
|
|
17
|
-
cacheKeyGenerator?: (data:
|
|
17
|
+
cacheKeyGenerator?: (data: TypeFromDefinition<T['Parameters']>) => string;
|
|
18
18
|
customInputValidation?: CustomInputValidator<T>;
|
|
19
19
|
requestTransforms: RequestTransform<T>[];
|
|
20
20
|
overrides?: Record<string, string> | undefined;
|
|
@@ -34,7 +34,7 @@ export declare class AdapterEndpoint<T extends EndpointGenerics> implements Adap
|
|
|
34
34
|
* @param req - the current adapter request
|
|
35
35
|
* @returns the request after passing through all request transforms
|
|
36
36
|
*/
|
|
37
|
-
runRequestTransforms(req: AdapterRequest<TypeFromDefinition<T['Parameters']
|
|
37
|
+
runRequestTransforms(req: AdapterRequest<TypeFromDefinition<T['Parameters']>>, settings: T['Settings']): void;
|
|
38
38
|
/**
|
|
39
39
|
* Default request transform that takes requests and manipulates base params
|
|
40
40
|
*
|
package/adapter/endpoint.js
CHANGED
|
@@ -61,9 +61,9 @@ class AdapterEndpoint {
|
|
|
61
61
|
* @param req - the current adapter request
|
|
62
62
|
* @returns the request after passing through all request transforms
|
|
63
63
|
*/
|
|
64
|
-
runRequestTransforms(req) {
|
|
64
|
+
runRequestTransforms(req, settings) {
|
|
65
65
|
for (const transform of this.requestTransforms) {
|
|
66
|
-
transform(req);
|
|
66
|
+
transform(req, settings);
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
/**
|
package/adapter/endpoint.js.map
CHANGED
|
@@ -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;AAYlD,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,iBAAiB,CAAC,CAAA;AAC/B,QAAA,sBAAsB,GAAG,0BAA0B,CAAA;AAEhE;;GAEG;AACH,MAAa,eAAe;IAiB1B,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,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,
|
|
1
|
+
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../../src/adapter/endpoint.ts"],"names":[],"mappings":"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"}
|
package/adapter/price.d.ts
CHANGED
|
@@ -91,4 +91,10 @@ export declare class PriceAdapter<CustomSettingsDefinition extends SettingsDefin
|
|
|
91
91
|
export declare class CryptoPriceEndpoint<T extends PriceEndpointGenerics> extends PriceEndpoint<T> {
|
|
92
92
|
constructor(params: AdapterEndpointParams<T>);
|
|
93
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* A ForexPriceEndpoint expands on the existing [[PriceEndpoint]] and provides more descriptive name for
|
|
96
|
+
* endpoints that provide forex prices.
|
|
97
|
+
*/
|
|
98
|
+
export declare class ForexPriceEndpoint<T extends PriceEndpointGenerics> extends PriceEndpoint<T> {
|
|
99
|
+
}
|
|
94
100
|
export {};
|
package/adapter/price.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CryptoPriceEndpoint = exports.PriceAdapter = exports.PriceEndpoint = exports.priceEndpointInputParametersDefinition = void 0;
|
|
3
|
+
exports.ForexPriceEndpoint = exports.CryptoPriceEndpoint = exports.PriceAdapter = exports.PriceEndpoint = exports.priceEndpointInputParametersDefinition = void 0;
|
|
4
4
|
const endpoint_1 = require("./endpoint");
|
|
5
5
|
const index_1 = require("./index");
|
|
6
6
|
/**
|
|
@@ -108,4 +108,11 @@ class CryptoPriceEndpoint extends PriceEndpoint {
|
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
exports.CryptoPriceEndpoint = CryptoPriceEndpoint;
|
|
111
|
+
/**
|
|
112
|
+
* A ForexPriceEndpoint expands on the existing [[PriceEndpoint]] and provides more descriptive name for
|
|
113
|
+
* endpoints that provide forex prices.
|
|
114
|
+
*/
|
|
115
|
+
class ForexPriceEndpoint extends PriceEndpoint {
|
|
116
|
+
}
|
|
117
|
+
exports.ForexPriceEndpoint = ForexPriceEndpoint;
|
|
111
118
|
//# sourceMappingURL=price.js.map
|
package/adapter/price.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"price.js","sourceRoot":"","sources":["../../../src/adapter/price.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"price.js","sourceRoot":"","sources":["../../../src/adapter/price.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { InputParametersDefinition } from '../validation/input-params';
|
|
2
|
+
import { TransportGenerics } from '../transports';
|
|
3
|
+
import { SingleNumberResultResponse } from '../util';
|
|
4
|
+
import { AdapterEndpoint } from './endpoint';
|
|
5
|
+
/**
|
|
6
|
+
* Type for the base input parameter config that any [[StockEndpoint]] must extend
|
|
7
|
+
*/
|
|
8
|
+
export type StockEndpointInputParametersDefinition = InputParametersDefinition & {
|
|
9
|
+
base: {
|
|
10
|
+
aliases: readonly ['from', 'symbol', 'asset', 'coin', 'ticker', ...string[]];
|
|
11
|
+
type: 'string';
|
|
12
|
+
description: 'The stock ticker to query';
|
|
13
|
+
required: boolean;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Base input parameter config that any [[StockEndpoint]] must extend
|
|
18
|
+
*/
|
|
19
|
+
export declare const stockEndpointInputParametersDefinition: {
|
|
20
|
+
readonly base: {
|
|
21
|
+
readonly aliases: readonly ["from", "symbol", "asset", "coin", "ticker"];
|
|
22
|
+
readonly type: "string";
|
|
23
|
+
readonly description: "The stock ticker to query";
|
|
24
|
+
readonly required: true;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Helper type structure that contains the different types passed to the generic parameters of a StockEndpoint
|
|
29
|
+
*/
|
|
30
|
+
export type StockEndpointGenerics = TransportGenerics & {
|
|
31
|
+
Parameters: StockEndpointInputParametersDefinition;
|
|
32
|
+
Response: SingleNumberResultResponse;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* A StockEndpoint is a specific type of AdapterEndpoint. Meant to comply with standard practices for
|
|
36
|
+
* Data Feeds, its InputParameters must extend the basic ones (base).
|
|
37
|
+
*/
|
|
38
|
+
export declare class StockEndpoint<T extends StockEndpointGenerics> extends AdapterEndpoint<T> {
|
|
39
|
+
}
|
package/adapter/stock.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StockEndpoint = exports.stockEndpointInputParametersDefinition = void 0;
|
|
4
|
+
const endpoint_1 = require("./endpoint");
|
|
5
|
+
/**
|
|
6
|
+
* Base input parameter config that any [[StockEndpoint]] must extend
|
|
7
|
+
*/
|
|
8
|
+
exports.stockEndpointInputParametersDefinition = {
|
|
9
|
+
base: {
|
|
10
|
+
aliases: ['from', 'symbol', 'asset', 'coin', 'ticker'],
|
|
11
|
+
type: 'string',
|
|
12
|
+
description: 'The stock ticker to query',
|
|
13
|
+
required: true,
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* A StockEndpoint is a specific type of AdapterEndpoint. Meant to comply with standard practices for
|
|
18
|
+
* Data Feeds, its InputParameters must extend the basic ones (base).
|
|
19
|
+
*/
|
|
20
|
+
class StockEndpoint extends endpoint_1.AdapterEndpoint {
|
|
21
|
+
}
|
|
22
|
+
exports.StockEndpoint = StockEndpoint;
|
|
23
|
+
//# sourceMappingURL=stock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stock.js","sourceRoot":"","sources":["../../../src/adapter/stock.ts"],"names":[],"mappings":";;;AAGA,yCAA4C;AAc5C;;GAEG;AACU,QAAA,sCAAsC,GAAG;IACpD,IAAI,EAAE;QACJ,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC;QACtD,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,2BAA2B;QACxC,QAAQ,EAAE,IAAI;KACf;CACwD,CAAA;AAU3D;;;GAGG;AACH,MAAa,aAA+C,SAAQ,0BAAkB;CAAG;AAAzF,sCAAyF"}
|
package/adapter/types.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { Cache } from '../cache';
|
|
|
4
4
|
import { AdapterConfig, BaseAdapterSettings, SettingsDefinitionMap } from '../config';
|
|
5
5
|
import { AdapterRateLimitTier, RateLimiter } from '../rate-limiting';
|
|
6
6
|
import { Transport, TransportGenerics, TransportRoutes } from '../transports';
|
|
7
|
-
import { AdapterRequest, SubscriptionSetFactory } from '../util';
|
|
7
|
+
import { AdapterRequest, LoggerFactory, SubscriptionSetFactory } from '../util';
|
|
8
8
|
import { Requester } from '../util/requester';
|
|
9
9
|
import { InputParameters } from '../validation';
|
|
10
10
|
import { AdapterError } from '../validation/error';
|
|
@@ -31,6 +31,8 @@ export interface AdapterDependencies {
|
|
|
31
31
|
eventSource: typeof EventSource;
|
|
32
32
|
/** Shared instance to handle sending http requests in a centralized fashion */
|
|
33
33
|
requester: Requester;
|
|
34
|
+
/** Factory that will provide logger instances for the adapter. */
|
|
35
|
+
loggerFactory: LoggerFactory;
|
|
34
36
|
}
|
|
35
37
|
/**
|
|
36
38
|
* Context that will be used on background executions of a Transport.
|
|
@@ -54,7 +56,7 @@ export interface AdapterRateLimitingConfig {
|
|
|
54
56
|
/**
|
|
55
57
|
* Type to perform arbitrary modifications on an adapter request
|
|
56
58
|
*/
|
|
57
|
-
export type RequestTransform<T extends EndpointGenerics> = (req: AdapterRequest<TypeFromDefinition<T['Parameters']
|
|
59
|
+
export type RequestTransform<T extends EndpointGenerics> = (req: AdapterRequest<TypeFromDefinition<T['Parameters']>>, settings: T['Settings']) => void;
|
|
58
60
|
/**
|
|
59
61
|
* Main structure of an External Adapter
|
|
60
62
|
*/
|
|
@@ -109,7 +111,7 @@ export interface BaseAdapterEndpointParams<T extends EndpointGenerics> {
|
|
|
109
111
|
/** Specific details related to the rate limiting for this endpoint in particular */
|
|
110
112
|
rateLimiting?: EndpointRateLimitingConfig;
|
|
111
113
|
/** Custom function that generates cache keys */
|
|
112
|
-
cacheKeyGenerator?: (data:
|
|
114
|
+
cacheKeyGenerator?: (data: TypeFromDefinition<T['Parameters']>) => string;
|
|
113
115
|
/** Custom input validation. Void function that should throw AdapterInputError on validation errors */
|
|
114
116
|
customInputValidation?: CustomInputValidator<T>;
|
|
115
117
|
/** Transforms that will apply to the request before submitting it through the adapter request flow */
|
package/cache/local.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.LocalCache = void 0;
|
|
4
|
+
const metrics_1 = require("../metrics");
|
|
4
5
|
const util_1 = require("../util");
|
|
5
|
-
const
|
|
6
|
+
const metrics_2 = require("./metrics");
|
|
6
7
|
const logger = (0, util_1.makeLogger)('LocalCache');
|
|
7
8
|
/**
|
|
8
9
|
* Local implementation of a Cache. It uses a DoubleLinkedList class for storing cache nodes.
|
|
@@ -12,7 +13,7 @@ const logger = (0, util_1.makeLogger)('LocalCache');
|
|
|
12
13
|
*/
|
|
13
14
|
class LocalCache {
|
|
14
15
|
constructor(capacity) {
|
|
15
|
-
this.type =
|
|
16
|
+
this.type = metrics_2.CacheTypes.Local;
|
|
16
17
|
this.capacity = capacity;
|
|
17
18
|
this.cache = new Map();
|
|
18
19
|
this.list = new util_1.DoubleLinkedList();
|
|
@@ -91,6 +92,7 @@ class LocalCache {
|
|
|
91
92
|
const node = this.list.removeHead();
|
|
92
93
|
if (node) {
|
|
93
94
|
this.cache.delete(node.key);
|
|
95
|
+
metrics_1.metrics.get('cacheOverflowCount').inc();
|
|
94
96
|
}
|
|
95
97
|
}
|
|
96
98
|
}
|
package/cache/local.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../../src/cache/local.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../../src/cache/local.ts"],"names":[],"mappings":"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"}
|
package/metrics/index.d.ts
CHANGED
|
@@ -26,7 +26,7 @@ export declare class Metrics<T extends Record<string, unknown>> {
|
|
|
26
26
|
get<K extends keyof T>(name: K): T[K];
|
|
27
27
|
clear(): void;
|
|
28
28
|
}
|
|
29
|
-
export declare const buildHttpRequestMetricsLabel: (feedId: string, error?: AdapterError | Error, cacheHit?: boolean) => Record<string, string | number | undefined>;
|
|
29
|
+
export declare const buildHttpRequestMetricsLabel: (feedId: string, error?: AdapterError | Error, cacheHit?: boolean, responseStatusCode?: number) => Record<string, string | number | undefined>;
|
|
30
30
|
export declare const dataProviderMetricsLabel: (providerStatusCode?: number, method?: string) => {
|
|
31
31
|
provider_status_code: number | undefined;
|
|
32
32
|
method: string;
|
|
@@ -36,6 +36,7 @@ export declare const recordRedisCommandMetric: (status: CMD_SENT_STATUS, functio
|
|
|
36
36
|
export declare const metrics: Metrics<{
|
|
37
37
|
httpRequestsTotal: client.Counter<"type" | "method" | "status_code" | "retry" | "feed_id" | "provider_status_code">;
|
|
38
38
|
httpRequestDurationSeconds: client.Histogram<string>;
|
|
39
|
+
httpRequestsPerBgExecute: client.Gauge<"adapter_endpoint">;
|
|
39
40
|
dataProviderRequests: client.Counter<"method" | "provider_status_code">;
|
|
40
41
|
dataProviderRequestDurationSeconds: client.Histogram<string>;
|
|
41
42
|
requesterQueueSize: client.Gauge<string>;
|
|
@@ -49,6 +50,7 @@ export declare const metrics: Metrics<{
|
|
|
49
50
|
cacheDataMaxAge: client.Gauge<"feed_id" | "participant_id" | "cache_type">;
|
|
50
51
|
cacheDataSetCount: client.Counter<"status_code" | "feed_id" | "participant_id" | "cache_type">;
|
|
51
52
|
cacheDataStalenessSeconds: client.Gauge<"feed_id" | "participant_id" | "cache_type">;
|
|
53
|
+
cacheOverflowCount: client.Counter<string>;
|
|
52
54
|
totalDataStalenessSeconds: client.Gauge<"feed_id" | "participant_id" | "cache_type">;
|
|
53
55
|
providerTimeDelta: client.Gauge<"feed_id">;
|
|
54
56
|
redisConnectionsOpen: client.Counter<string>;
|
package/metrics/index.js
CHANGED
|
@@ -80,7 +80,7 @@ const buildMetricsMiddleware = (rawReq, res, done) => {
|
|
|
80
80
|
const req = rawReq;
|
|
81
81
|
// The request context can technically be empty if the input validation failed
|
|
82
82
|
const feedId = req.requestContext?.meta?.metrics?.feedId || 'N/A';
|
|
83
|
-
const labels = (0, exports.buildHttpRequestMetricsLabel)(feedId, req.requestContext?.meta?.error, req.requestContext?.meta?.metrics?.cacheHit);
|
|
83
|
+
const labels = (0, exports.buildHttpRequestMetricsLabel)(feedId, req.requestContext?.meta?.error, req.requestContext?.meta?.metrics?.cacheHit, res.statusCode);
|
|
84
84
|
// Record number of requests sent to EA
|
|
85
85
|
exports.metrics.get('httpRequestsTotal').labels(labels).inc();
|
|
86
86
|
// Record response time of request through entire EA
|
|
@@ -125,7 +125,7 @@ const httpRequestsTotalLabels = [
|
|
|
125
125
|
'provider_status_code',
|
|
126
126
|
];
|
|
127
127
|
const cacheMetricsLabels = ['feed_id', 'participant_id', 'cache_type'];
|
|
128
|
-
const buildHttpRequestMetricsLabel = (feedId, error, cacheHit) => {
|
|
128
|
+
const buildHttpRequestMetricsLabel = (feedId, error, cacheHit, responseStatusCode) => {
|
|
129
129
|
const labels = {};
|
|
130
130
|
labels.method = 'POST';
|
|
131
131
|
labels.feed_id = feedId;
|
|
@@ -142,7 +142,7 @@ const buildHttpRequestMetricsLabel = (feedId, error, cacheHit) => {
|
|
|
142
142
|
}
|
|
143
143
|
else {
|
|
144
144
|
// If no error present, request went as expected
|
|
145
|
-
labels.status_code = 200;
|
|
145
|
+
labels.status_code = responseStatusCode || 200;
|
|
146
146
|
if (cacheHit) {
|
|
147
147
|
labels.type = constants_1.HttpRequestType.CACHE_HIT;
|
|
148
148
|
}
|
|
@@ -188,6 +188,11 @@ exports.metrics = new Metrics(() => ({
|
|
|
188
188
|
help: 'A histogram bucket of the distribution of http request durations',
|
|
189
189
|
buckets: constants_1.requestDurationBuckets,
|
|
190
190
|
}),
|
|
191
|
+
httpRequestsPerBgExecute: new client.Gauge({
|
|
192
|
+
name: 'http_requests_per_bg_execute',
|
|
193
|
+
help: 'The number of HTTP requests made in a single background execute cycle',
|
|
194
|
+
labelNames: ['adapter_endpoint'],
|
|
195
|
+
}),
|
|
191
196
|
dataProviderRequests: new client.Counter({
|
|
192
197
|
name: 'data_provider_requests',
|
|
193
198
|
help: 'The number of http requests that are made to a data provider',
|
|
@@ -251,6 +256,10 @@ exports.metrics = new Metrics(() => ({
|
|
|
251
256
|
help: 'Observes the cache staleness of the data returned (i.e., time since the data was written to the cache)',
|
|
252
257
|
labelNames: cacheMetricsLabels,
|
|
253
258
|
}),
|
|
259
|
+
cacheOverflowCount: new client.Counter({
|
|
260
|
+
name: 'cache_overflow_count',
|
|
261
|
+
help: 'A counter that increments every time an item overflows in local cache',
|
|
262
|
+
}),
|
|
254
263
|
totalDataStalenessSeconds: new client.Gauge({
|
|
255
264
|
name: 'total_data_staleness_seconds',
|
|
256
265
|
help: 'Observes the total staleness of the data returned (i.e., time since the provider indicated the data was sent)',
|
package/metrics/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metrics/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAwF;AACxF,+BAA2B;AAC3B,oDAAqC;AAErC,oCAAsD;AACtD,kCAAgE;AAChE,+CAAkD;AAElD,2CAAqE;AAErE,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,SAAS,CAAC,CAAA;AAEpC,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,sCAAmB,CAAA;IACnB,gCAAa,CAAA;IACb,sCAAmB,CAAA;AACrB,CAAC,EAJW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAI1B;AAED,SAAgB,kBAAkB,CAAC,IAAY,EAAE,eAAgC;IAC/E,MAAM,WAAW,GAA2C,IAAA,qBAAa,EAAC,eAAe,CAAC,CAAA;IAC1F,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,MAAsB,EACtB,GAAiB,EACjB,IAA6B,EAC7B,EAAE;IACF,MAAM,GAAG,GAAG,MAA8C,CAAA;IAE1D,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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metrics/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/rate-limiting/burst.d.ts
CHANGED
|
@@ -2,6 +2,8 @@ import { AdapterRateLimitTier, RateLimiter } from '.';
|
|
|
2
2
|
import { AdapterEndpoint, EndpointGenerics } from '../adapter';
|
|
3
3
|
/**
|
|
4
4
|
* This rate limiter is the simplest stateful option.
|
|
5
|
+
* It will keep track of used API credits (by default, one request equals one credit) and
|
|
6
|
+
* upon reaching the limits in a fixed time window, will block the requests until API credits are available again.
|
|
5
7
|
* On startup, it'll compare the different thresholds for each tier, calculate them all
|
|
6
8
|
* in the finest window we'll use (seconds), and use the most restrictive one.
|
|
7
9
|
* This is so if the EA were to restart, we don't need to worry about persisting state
|
|
@@ -10,13 +12,13 @@ import { AdapterEndpoint, EndpointGenerics } from '../adapter';
|
|
|
10
12
|
*/
|
|
11
13
|
export declare class BurstRateLimiter implements RateLimiter {
|
|
12
14
|
latestSecondInterval: number;
|
|
13
|
-
|
|
15
|
+
creditsThisSecond: number;
|
|
14
16
|
latestMinuteInterval: number;
|
|
15
|
-
|
|
17
|
+
creditsThisMinute: number;
|
|
16
18
|
perSecondLimit: number;
|
|
17
19
|
perMinuteLimit: number;
|
|
18
20
|
initialize<T extends EndpointGenerics>(endpoints: AdapterEndpoint<T>[], limits?: AdapterRateLimitTier): this;
|
|
19
21
|
private updateIntervals;
|
|
20
22
|
msUntilNextExecution(): number;
|
|
21
|
-
waitForRateLimit(): Promise<void>;
|
|
23
|
+
waitForRateLimit(creditCost?: number): Promise<void>;
|
|
22
24
|
}
|
package/rate-limiting/burst.js
CHANGED
|
@@ -5,6 +5,8 @@ const util_1 = require("../util");
|
|
|
5
5
|
const logger = (0, util_1.makeLogger)('BurstRateLimiter');
|
|
6
6
|
/**
|
|
7
7
|
* This rate limiter is the simplest stateful option.
|
|
8
|
+
* It will keep track of used API credits (by default, one request equals one credit) and
|
|
9
|
+
* upon reaching the limits in a fixed time window, will block the requests until API credits are available again.
|
|
8
10
|
* On startup, it'll compare the different thresholds for each tier, calculate them all
|
|
9
11
|
* in the finest window we'll use (seconds), and use the most restrictive one.
|
|
10
12
|
* This is so if the EA were to restart, we don't need to worry about persisting state
|
|
@@ -14,16 +16,16 @@ const logger = (0, util_1.makeLogger)('BurstRateLimiter');
|
|
|
14
16
|
class BurstRateLimiter {
|
|
15
17
|
constructor() {
|
|
16
18
|
this.latestSecondInterval = 0;
|
|
17
|
-
this.
|
|
19
|
+
this.creditsThisSecond = 0;
|
|
18
20
|
this.latestMinuteInterval = 0;
|
|
19
|
-
this.
|
|
21
|
+
this.creditsThisMinute = 0;
|
|
20
22
|
}
|
|
21
23
|
initialize(endpoints, limits) {
|
|
22
24
|
// Translate the hourly limit into reqs per minute
|
|
23
25
|
const perHourLimit = (limits?.rateLimit1h || Infinity) / 60;
|
|
24
26
|
this.perMinuteLimit = Math.min(limits?.rateLimit1m || Infinity, perHourLimit);
|
|
25
27
|
this.perSecondLimit = limits?.rateLimit1s || Infinity;
|
|
26
|
-
logger.debug(`Using
|
|
28
|
+
logger.debug(`Using API credit limit settings: perMinute = ${this.perMinuteLimit} | perSecond: = ${this.perSecondLimit}`);
|
|
27
29
|
return this;
|
|
28
30
|
}
|
|
29
31
|
updateIntervals() {
|
|
@@ -35,14 +37,14 @@ class BurstRateLimiter {
|
|
|
35
37
|
// This should always run to completion, even if it doesn't look atomic; therefore the
|
|
36
38
|
// Ops should be "thread safe". Thank JS and its infinite single threaded dumbness.
|
|
37
39
|
if (nearestSecondInterval !== this.latestSecondInterval) {
|
|
38
|
-
logger.trace(`Clearing latest second interval, # of
|
|
40
|
+
logger.trace(`Clearing latest second interval, # of credits logged was: ${this.creditsThisSecond} `);
|
|
39
41
|
this.latestSecondInterval = nearestSecondInterval;
|
|
40
|
-
this.
|
|
42
|
+
this.creditsThisSecond = 0;
|
|
41
43
|
}
|
|
42
44
|
if (nearestMinuteInterval !== this.latestMinuteInterval) {
|
|
43
|
-
logger.trace(`Clearing latest second minute, # of
|
|
45
|
+
logger.trace(`Clearing latest second minute, # of credits logged was: ${this.creditsThisMinute} `);
|
|
44
46
|
this.latestMinuteInterval = nearestMinuteInterval;
|
|
45
|
-
this.
|
|
47
|
+
this.creditsThisMinute = 0;
|
|
46
48
|
}
|
|
47
49
|
return {
|
|
48
50
|
now,
|
|
@@ -56,24 +58,24 @@ class BurstRateLimiter {
|
|
|
56
58
|
return 0;
|
|
57
59
|
}
|
|
58
60
|
const { now, nextSecondInterval, nextMinuteInterval } = this.updateIntervals();
|
|
59
|
-
const timeToWaitForNextSecond = this.
|
|
60
|
-
const timeToWaitForNextMinute = this.
|
|
61
|
+
const timeToWaitForNextSecond = this.creditsThisSecond < this.perSecondLimit ? 0 : nextSecondInterval - now;
|
|
62
|
+
const timeToWaitForNextMinute = this.creditsThisMinute < this.perMinuteLimit ? 0 : nextMinuteInterval - now;
|
|
61
63
|
const timeToWait = Math.max(timeToWaitForNextSecond, timeToWaitForNextMinute);
|
|
62
64
|
return timeToWait;
|
|
63
65
|
}
|
|
64
|
-
async waitForRateLimit() {
|
|
66
|
+
async waitForRateLimit(creditCost = 1) {
|
|
65
67
|
const timeToWait = this.msUntilNextExecution();
|
|
66
68
|
if (timeToWait === 0) {
|
|
67
|
-
logger.trace(`
|
|
69
|
+
logger.trace(`API credits under limits, current count: (S = ${this.creditsThisSecond} | M = ${this.creditsThisMinute}, | C = ${creditCost})`);
|
|
68
70
|
}
|
|
69
71
|
else {
|
|
70
|
-
logger.trace(`Capacity for provider
|
|
72
|
+
logger.trace(`Capacity for provider API credits has been reached this interval (S = ${this.creditsThisSecond} | M = ${this.creditsThisMinute} | C = ${creditCost}), need to wait ${timeToWait}ms`);
|
|
71
73
|
await (0, util_1.sleep)(timeToWait);
|
|
72
74
|
this.updateIntervals();
|
|
73
75
|
}
|
|
74
|
-
this.
|
|
75
|
-
this.
|
|
76
|
-
logger.trace(`Request is now ready to go, updated count: (S = ${this.
|
|
76
|
+
this.creditsThisSecond += creditCost;
|
|
77
|
+
this.creditsThisMinute += creditCost;
|
|
78
|
+
logger.trace(`Request is now ready to go, updated count: (S = ${this.creditsThisSecond} | M = ${this.creditsThisMinute})`);
|
|
77
79
|
return;
|
|
78
80
|
}
|
|
79
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"burst.js","sourceRoot":"","sources":["../../../src/rate-limiting/burst.ts"],"names":[],"mappings":";;;AAEA,kCAA2C;AAE3C,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,kBAAkB,CAAC,CAAA;AAE7C
|
|
1
|
+
{"version":3,"file":"burst.js","sourceRoot":"","sources":["../../../src/rate-limiting/burst.ts"],"names":[],"mappings":"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"}
|
package/rate-limiting/index.d.ts
CHANGED
|
@@ -21,8 +21,10 @@ export interface RateLimiter {
|
|
|
21
21
|
/**
|
|
22
22
|
* This method will block (if necessary) until the rate limiter can make sure the
|
|
23
23
|
* next outbound request will be within the specified limits.
|
|
24
|
+
*
|
|
25
|
+
* @param cost - credit cost of an API request sent to Data Provider. Used for burst rate limiter
|
|
24
26
|
*/
|
|
25
|
-
waitForRateLimit(): Promise<void>;
|
|
27
|
+
waitForRateLimit(cost?: number): Promise<void>;
|
|
26
28
|
/**
|
|
27
29
|
* Returns the time in milliseconds until the next request would be able to be fired
|
|
28
30
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rate-limiting/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,kCAAoC;AAEpC,0CAAuB;AAEvB,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,mBAAmB,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rate-limiting/index.ts"],"names":[],"mappings":"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"}
|
package/transports/http.d.ts
CHANGED
|
@@ -34,6 +34,9 @@ export type ProviderRequestConfig<T extends HttpTransportGenerics> = {
|
|
|
34
34
|
request: AxiosRequestConfig<T['Provider']['RequestBody']>;
|
|
35
35
|
/** An endpoint name override for the requester key to allow the coalescing of requests across endpoints */
|
|
36
36
|
endpointNameOverride?: string;
|
|
37
|
+
/** The API credit cost of the request sent to the data provider.
|
|
38
|
+
* Applies only for burst rate limit strategy and is ignored if another strategy is used. */
|
|
39
|
+
cost?: number;
|
|
37
40
|
};
|
|
38
41
|
/**
|
|
39
42
|
* Config object that is provided to the HttpTransport constructor.
|
package/transports/http.js
CHANGED
|
@@ -53,6 +53,10 @@ class HttpTransport extends subscription_1.SubscriptionTransport {
|
|
|
53
53
|
logger.trace(`Have ${entries.length} entries in batch, preparing requests...`);
|
|
54
54
|
const rawRequests = this.config.prepareRequests(entries, context.adapterSettings);
|
|
55
55
|
const requests = Array.isArray(rawRequests) ? rawRequests : [rawRequests];
|
|
56
|
+
metrics_1.metrics
|
|
57
|
+
.get('httpRequestsPerBgExecute')
|
|
58
|
+
.labels({ adapter_endpoint: context.endpointName })
|
|
59
|
+
.set(requests.length);
|
|
56
60
|
// We're awaiting these promises because although we have request coalescing, new entries
|
|
57
61
|
// could be added to the subscription set if not blocking this operation, so the next time the
|
|
58
62
|
// background execute is triggered if the request is for a fully batched endpoint, we could end up
|
|
@@ -108,7 +112,7 @@ class HttpTransport extends subscription_1.SubscriptionTransport {
|
|
|
108
112
|
},
|
|
109
113
|
data: requestConfig.params,
|
|
110
114
|
transportName: this.name,
|
|
111
|
-
}), requestConfig.request);
|
|
115
|
+
}), requestConfig.request, requestConfig.cost);
|
|
112
116
|
// Parse responses and apply timestamps
|
|
113
117
|
const results = this.config
|
|
114
118
|
.parseResponse(requestConfig.params, requesterResult.response, context.adapterSettings)
|
package/transports/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/transports/http.ts"],"names":[],"mappings":";;;AAAA,iCAAqE;AAGrE,oCAAkD;AAClD,wCAAkD;AAClD,kCAAuD;AAGvD,+CAAqF;AAErF,0DAA+D;AAE/D,MAAM,uBAAuB,GAAG,MAAM,CAAA;AAEtC,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,eAAe,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/transports/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,16 +45,18 @@ export interface WebSocketTransportConfig<T extends WebsocketTransportGenerics>
|
|
|
45
45
|
* Builds a WS message that will be sent to subscribe to a specific feed
|
|
46
46
|
*
|
|
47
47
|
* @param params - the body of the adapter request
|
|
48
|
+
* @param context - the background context for the Adapter
|
|
48
49
|
* @returns the WS message (can be any type as long as the [[WebSocket]] doesn't complain)
|
|
49
50
|
*/
|
|
50
|
-
subscribeMessage?: (params: TypeFromDefinition<T['Parameters']>) => unknown;
|
|
51
|
+
subscribeMessage?: (params: TypeFromDefinition<T['Parameters']>, context: EndpointContext<T>) => unknown;
|
|
51
52
|
/**
|
|
52
53
|
* Builds a WS message that will be sent to unsubscribe to a specific feed
|
|
53
54
|
*
|
|
54
55
|
* @param params - the body of the adapter request
|
|
56
|
+
* @param context - the background context for the Adapter
|
|
55
57
|
* @returns the WS message (can be any type as long as the [[WebSocket]] doesn't complain)
|
|
56
58
|
*/
|
|
57
|
-
unsubscribeMessage?: (params: TypeFromDefinition<T['Parameters']>) => unknown;
|
|
59
|
+
unsubscribeMessage?: (params: TypeFromDefinition<T['Parameters']>, context: EndpointContext<T>) => unknown;
|
|
58
60
|
};
|
|
59
61
|
}
|
|
60
62
|
/**
|
package/transports/websocket.js
CHANGED
|
@@ -98,10 +98,13 @@ class WebSocketTransport extends streaming_1.StreamingTransport {
|
|
|
98
98
|
// Record active ws connections by decrementing count on close
|
|
99
99
|
// Using URL in label since connection_key is removed from v3
|
|
100
100
|
metrics_1.metrics.get('wsConnectionActive').dec();
|
|
101
|
-
// Also, register that the connection was closed and the reason why
|
|
101
|
+
// Also, register that the connection was closed and the reason why.
|
|
102
|
+
// We need to filter out query params from the URL to avoid having
|
|
103
|
+
// the cardinality of the metric go out of control.
|
|
104
|
+
const filteredUrl = this.currentUrl.split('?')[0];
|
|
102
105
|
metrics_1.metrics.get('wsConnectionClosures').inc({
|
|
103
106
|
code: event.code,
|
|
104
|
-
url:
|
|
107
|
+
url: filteredUrl,
|
|
105
108
|
});
|
|
106
109
|
},
|
|
107
110
|
};
|
|
@@ -216,7 +219,11 @@ class WebSocketTransport extends streaming_1.StreamingTransport {
|
|
|
216
219
|
const builders = this.config.builders;
|
|
217
220
|
if (builders) {
|
|
218
221
|
const { subscribeMessage, unsubscribeMessage } = builders;
|
|
219
|
-
await this.sendMessages(context, subscribeMessage
|
|
222
|
+
await this.sendMessages(context, subscribeMessage
|
|
223
|
+
? subscriptions.new.map((sub) => subscribeMessage(sub, context))
|
|
224
|
+
: subscriptions.new, unsubscribeMessage
|
|
225
|
+
? subscriptions.stale.map((sub) => unsubscribeMessage(sub, context))
|
|
226
|
+
: subscriptions.stale);
|
|
220
227
|
}
|
|
221
228
|
else {
|
|
222
229
|
logger.trace("This ws transport has no builders configured, so we're not sending any messages");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/transports/websocket.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAsD;AAW7C,oBAXF,YAAS,CAWE;AATlB,wCAAoC;AACpC,kCAAwF;AAIxF,oDAA6E;AAC7E,uCAAyE;AAKzE,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,oBAAoB,CAAC,CAAA;AAQ/C,MAAa,sBAAsB;IAGjC,MAAM,CAAC,GAAG,CAAC,IAAoB;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,MAAM,CAAC,GAAG;QACR,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;;AARM,2BAAI,GAAmB,YAAS,CAAA;AAD5B,wDAAsB;
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/transports/websocket.ts"],"names":[],"mappings":"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"}
|
package/util/logger.d.ts
CHANGED
|
@@ -9,6 +9,40 @@ export type Store = {
|
|
|
9
9
|
};
|
|
10
10
|
export declare const COLORS: string[];
|
|
11
11
|
export declare const colorFactory: (colors: string[]) => () => string;
|
|
12
|
+
/**
|
|
13
|
+
* Object that will provide logger instances upon requests, based on the basic pino logger.
|
|
14
|
+
*/
|
|
15
|
+
export interface LoggerFactory {
|
|
16
|
+
child(params: {
|
|
17
|
+
layer: string;
|
|
18
|
+
color?: string;
|
|
19
|
+
}): Omit<pino.BaseLogger, 'level' | 'silent'>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Global class that will hold the logger factory.
|
|
23
|
+
* This is easier than refactoring the entire framework to use a dependency injection framework,
|
|
24
|
+
* and probably safer since all the popular ones use decorators that are still in the experimental stage.
|
|
25
|
+
*/
|
|
26
|
+
export declare class LoggerFactoryProvider {
|
|
27
|
+
private static factory;
|
|
28
|
+
static set(factory?: LoggerFactory): void;
|
|
29
|
+
static get(): LoggerFactory;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Instance of a logger, that will defer the construction of its methods until the first time any of them are called.
|
|
33
|
+
* This is done so we can freely create these instances before the adapter is initialized, and allow
|
|
34
|
+
* the global logger factory to be injected if the user so desires.
|
|
35
|
+
*/
|
|
36
|
+
declare class PlaceholderLogger {
|
|
37
|
+
private levels;
|
|
38
|
+
constructor(layer: string);
|
|
39
|
+
fatal: pino.LogFn;
|
|
40
|
+
error: pino.LogFn;
|
|
41
|
+
warn: pino.LogFn;
|
|
42
|
+
info: pino.LogFn;
|
|
43
|
+
debug: pino.LogFn;
|
|
44
|
+
trace: pino.LogFn;
|
|
45
|
+
}
|
|
12
46
|
/**
|
|
13
47
|
* Instead of using a global logger instance, we want to force using a child logger
|
|
14
48
|
* with a specific layer set in it, so that we can filter logs by where they're output from.
|
|
@@ -27,32 +61,8 @@ export declare const colorFactory: (colors: string[]) => () => string;
|
|
|
27
61
|
* @param layer - the layer name to include in the logs (e.g. "SomeMiddleware", "RedisCache", etc.)
|
|
28
62
|
* @returns a layer specific logger
|
|
29
63
|
*/
|
|
30
|
-
export declare const makeLogger: (layer: string) =>
|
|
31
|
-
level: string;
|
|
32
|
-
formatters: {
|
|
33
|
-
level(label: string): {
|
|
34
|
-
level: string;
|
|
35
|
-
};
|
|
36
|
-
};
|
|
37
|
-
hooks: {
|
|
38
|
-
logMethod(this: pino.Logger<pino.LoggerOptions>, inputArgs: [msg: string, ...args: any[]], method: pino.LogFn): void;
|
|
39
|
-
};
|
|
40
|
-
mixin(): {
|
|
41
|
-
correlationId: string;
|
|
42
|
-
} | {
|
|
43
|
-
correlationId?: undefined;
|
|
44
|
-
};
|
|
45
|
-
transport: {
|
|
46
|
-
target: string;
|
|
47
|
-
options: {
|
|
48
|
-
levelFirst: boolean;
|
|
49
|
-
levelLabel: string;
|
|
50
|
-
ignore: string;
|
|
51
|
-
messageFormat: string;
|
|
52
|
-
translateTime: string;
|
|
53
|
-
};
|
|
54
|
-
} | undefined;
|
|
55
|
-
} & pino.ChildLoggerOptions>;
|
|
64
|
+
export declare const makeLogger: (layer: string) => PlaceholderLogger;
|
|
56
65
|
export declare const loggingContextMiddleware: (rawReq: FastifyRequest, res: FastifyReply, done: HookHandlerDoneFunction) => void;
|
|
57
66
|
export declare function censor(obj: any, censorList: CensorKeyValue[], throwOnError?: boolean): any;
|
|
58
67
|
export declare const censorLogs: (logFunc: () => void) => void;
|
|
68
|
+
export {};
|
package/util/logger.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.censorLogs = exports.censor = exports.loggingContextMiddleware = exports.makeLogger = exports.colorFactory = exports.COLORS = exports.asyncLocalStorage = void 0;
|
|
6
|
+
exports.censorLogs = exports.censor = exports.loggingContextMiddleware = exports.makeLogger = exports.LoggerFactoryProvider = exports.colorFactory = exports.COLORS = exports.asyncLocalStorage = void 0;
|
|
7
7
|
const crypto_1 = require("crypto");
|
|
8
8
|
const node_async_hooks_1 = require("node:async_hooks");
|
|
9
9
|
const pino_1 = __importDefault(require("pino"));
|
|
@@ -83,6 +83,62 @@ const colorFactory = (colors) => {
|
|
|
83
83
|
};
|
|
84
84
|
exports.colorFactory = colorFactory;
|
|
85
85
|
const getNextColor = (0, exports.colorFactory)(exports.COLORS);
|
|
86
|
+
const defaultLoggerFactory = baseLogger;
|
|
87
|
+
/**
|
|
88
|
+
* Global class that will hold the logger factory.
|
|
89
|
+
* This is easier than refactoring the entire framework to use a dependency injection framework,
|
|
90
|
+
* and probably safer since all the popular ones use decorators that are still in the experimental stage.
|
|
91
|
+
*/
|
|
92
|
+
class LoggerFactoryProvider {
|
|
93
|
+
static set(factory = defaultLoggerFactory) {
|
|
94
|
+
// If the factory has already been set, we want to warn the user because
|
|
95
|
+
// the code might be calling this twice
|
|
96
|
+
if (this.factory) {
|
|
97
|
+
factory
|
|
98
|
+
.child({ layer: 'LoggerFactory' })
|
|
99
|
+
.warn('The logger factory has been set twice in the provider, this will not affect existing global loggers');
|
|
100
|
+
}
|
|
101
|
+
this.factory = factory;
|
|
102
|
+
}
|
|
103
|
+
static get() {
|
|
104
|
+
return this.factory;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.LoggerFactoryProvider = LoggerFactoryProvider;
|
|
108
|
+
/**
|
|
109
|
+
* Instance of a logger, that will defer the construction of its methods until the first time any of them are called.
|
|
110
|
+
* This is done so we can freely create these instances before the adapter is initialized, and allow
|
|
111
|
+
* the global logger factory to be injected if the user so desires.
|
|
112
|
+
*/
|
|
113
|
+
class PlaceholderLogger {
|
|
114
|
+
constructor(layer) {
|
|
115
|
+
this.levels = ['fatal', 'error', 'warn', 'info', 'debug', 'trace'];
|
|
116
|
+
const color = process.env['DEBUG'] === 'true' ? getNextColor() : undefined;
|
|
117
|
+
for (const level of this.levels) {
|
|
118
|
+
this[level] = ((...args) => {
|
|
119
|
+
// This is the first time any method is called for this logger.
|
|
120
|
+
// We want to store the original arguments while we create the actual logger to call later.
|
|
121
|
+
const firstExecutionArgs = args;
|
|
122
|
+
// If a logger factory was not set in the provider, error out.
|
|
123
|
+
const factory = LoggerFactoryProvider.get();
|
|
124
|
+
if (!factory) {
|
|
125
|
+
throw new Error('The logger factory provider does not have a factory set, you need to set one before executing any logging methods.');
|
|
126
|
+
}
|
|
127
|
+
// We have a logger factory, so first we create a new child logger
|
|
128
|
+
const logger = factory.child({
|
|
129
|
+
layer,
|
|
130
|
+
color,
|
|
131
|
+
});
|
|
132
|
+
// Replace all of this object's methods with the actual logger instance
|
|
133
|
+
for (const _level of this.levels) {
|
|
134
|
+
this[_level] = logger[_level].bind(logger);
|
|
135
|
+
}
|
|
136
|
+
// Finally, call the original intended logging function
|
|
137
|
+
this[level](...firstExecutionArgs);
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
86
142
|
/**
|
|
87
143
|
* Instead of using a global logger instance, we want to force using a child logger
|
|
88
144
|
* with a specific layer set in it, so that we can filter logs by where they're output from.
|
|
@@ -101,10 +157,7 @@ const getNextColor = (0, exports.colorFactory)(exports.COLORS);
|
|
|
101
157
|
* @param layer - the layer name to include in the logs (e.g. "SomeMiddleware", "RedisCache", etc.)
|
|
102
158
|
* @returns a layer specific logger
|
|
103
159
|
*/
|
|
104
|
-
const makeLogger = (layer) =>
|
|
105
|
-
layer,
|
|
106
|
-
color: process.env['DEBUG'] === 'true' ? getNextColor() : undefined,
|
|
107
|
-
});
|
|
160
|
+
const makeLogger = (layer) => new PlaceholderLogger(layer);
|
|
108
161
|
exports.makeLogger = makeLogger;
|
|
109
162
|
const loggingContextMiddleware = (rawReq, res, done) => {
|
|
110
163
|
const req = rawReq;
|
package/util/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/util/logger.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAmC;AAEnC,uDAAoD;AACpD,gDAAuB;AACvB,sCAAkD;AAElD,uEAAiE;AAGpD,QAAA,iBAAiB,GAAG,IAAI,oCAAiB,EAAE,CAAA;AAMxD,MAAM,cAAc,GAAG;IACrB,MAAM,EAAE,aAAa;IACrB,OAAO,EAAE;QACP,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,wCAAwC;QAChD,aAAa,EAAE,wDAAwD;QACvE,aAAa,EAAE,uBAAuB;KACvC;CACF,CAAA;AAED,wEAAwE;AACxE,MAAM,UAAU,GAAG,IAAA,cAAI,EAAC;IACtB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,IAAI,+BAAsB,CAAC,SAAS,CAAC,OAAO;IAC1F,UAAU,EAAE;QACV,KAAK,CAAC,KAAK;YACT,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;QACzB,CAAC;KACF;IACD,KAAK,EAAE;QACL,SAAS,CAAC,SAAS,EAAE,MAAM;YACzB,iCAAiC;YACjC,MAAM,UAAU,GAAG,qBAAU,CAAC,MAAM,EAAE,CAAA;YACtC,OAAO,MAAM,CAAC,KAAK,CACjB,IAAI,EACJ,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAA2B,CAC1E,CAAA;QACH,CAAC;KACF;IACD,KAAK;QACH,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,KAAK,OAAO,EAAE;YACrD,MAAM,KAAK,GAAG,yBAAiB,CAAC,QAAQ,EAAW,CAAA;YACnD,IAAI,KAAK,EAAE;gBACT,OAAO;oBACL,aAAa,EAAE,KAAK,CAAC,aAAa;iBACnC,CAAA;aACF;SACF;QACD,OAAO,EAAE,CAAA;IACX,CAAC;IACD,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;CACxE,CAAC,CAAA;AAEW,QAAA,MAAM,GAAG;IACpB,cAAc;IACd,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,wBAAwB;IACxB,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;IAClB,yBAAyB;IACzB,wBAAwB;IACxB,yBAAyB;IACzB,yBAAyB;IACzB,YAAY;IACZ,wBAAwB;CACzB,CAAA;AAEM,MAAM,YAAY,GAAG,CAAC,MAAgB,EAAE,EAAE;IAC/C,IAAI,KAAK,GAAG,CAAC,CAAC,CAAA;IACd,OAAO,GAAG,EAAE;QACV,KAAK,EAAE,CAAA;QACP,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,KAAK,GAAG,CAAC,CAAA;SACV;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC,CAAA;AACH,CAAC,CAAA;AATY,QAAA,YAAY,gBASxB;AAED,MAAM,YAAY,GAAG,IAAA,oBAAY,EAAC,cAAM,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/util/logger.ts"],"names":[],"mappings":"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"}
|
package/util/requester.d.ts
CHANGED
|
@@ -35,9 +35,10 @@ export declare class Requester {
|
|
|
35
35
|
*
|
|
36
36
|
* @param key - a key to uniquely identify this request, and coalesce new ones that match
|
|
37
37
|
* @param req - a request to send to a data provider
|
|
38
|
+
* @param cost - Data Provider API credit cost of the request
|
|
38
39
|
* @returns a promise that will resolve whenever the request is popped from the queue, sent, and a response is received
|
|
39
40
|
*/
|
|
40
|
-
request<T>(key: string, req: AxiosRequestConfig): Promise<RequesterResult<T>>;
|
|
41
|
+
request<T>(key: string, req: AxiosRequestConfig, cost?: number): Promise<RequesterResult<T>>;
|
|
41
42
|
private processNext;
|
|
42
43
|
private executeRequest;
|
|
43
44
|
}
|
package/util/requester.js
CHANGED
|
@@ -105,9 +105,10 @@ class Requester {
|
|
|
105
105
|
*
|
|
106
106
|
* @param key - a key to uniquely identify this request, and coalesce new ones that match
|
|
107
107
|
* @param req - a request to send to a data provider
|
|
108
|
+
* @param cost - Data Provider API credit cost of the request
|
|
108
109
|
* @returns a promise that will resolve whenever the request is popped from the queue, sent, and a response is received
|
|
109
110
|
*/
|
|
110
|
-
async request(key, req) {
|
|
111
|
+
async request(key, req, cost) {
|
|
111
112
|
// If there's already a queued request, reuse it's existing promise
|
|
112
113
|
const existingQueuedRequest = this.map[key];
|
|
113
114
|
if (existingQueuedRequest) {
|
|
@@ -118,6 +119,7 @@ class Requester {
|
|
|
118
119
|
key,
|
|
119
120
|
config: req,
|
|
120
121
|
retries: 0,
|
|
122
|
+
cost,
|
|
121
123
|
};
|
|
122
124
|
// This dual promise layer is built so the queuedRequest can hold both the resolve and reject handlers,
|
|
123
125
|
// and the promise itself so we can return it for request coalescing without creating new ones
|
|
@@ -143,7 +145,7 @@ class Requester {
|
|
|
143
145
|
}
|
|
144
146
|
(0, _1.censorLogs)(() => logger.trace(`Popped next request (Key: ${next.key}, Retry #: ${next.retries}) from the queue (Size: ${this.queue.length})`));
|
|
145
147
|
// Wait until the rate limiter allows the request to be executed
|
|
146
|
-
await this.rateLimiter.waitForRateLimit();
|
|
148
|
+
await this.rateLimiter.waitForRateLimit(next.cost);
|
|
147
149
|
// Fire off to complete in the background. We don't wait here to be able to fire off multiple requests concurrently
|
|
148
150
|
this.executeRequest.bind(this)(next);
|
|
149
151
|
return this.processNext();
|
package/util/requester.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requester.js","sourceRoot":"","sources":["../../../src/util/requester.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA4E;AAC5E,wBAAiD;AAEjD,wCAA8D;AAE9D,+CAI4B;AAE5B,MAAM,MAAM,GAAG,IAAA,aAAU,EAAC,WAAW,CAAC,CAAA;AAOtC,MAAM,gBAAgB;IAKpB,YAAoB,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;QAFrC,WAAM,GAAG,CAAC,CAAA;IAE8B,CAAC;IAEzC,GAAG,CAAC,KAAQ;QACV,IAAI,QAAQ,CAAA;QACZ,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,EAAE;YAClC,wFAAwF;YACxF,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;SACzB;QAED,MAAM,IAAI,GAAgB;YACxB,KAAK;YACL,IAAI,EAAE,SAAS;SAChB,CAAA;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;SAClB;QACD,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;SACtB;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,MAAM,EAAE,CAAA;QACb,iBAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAA;QACvC,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,MAAM;QACJ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;QAEvB,IAAI,CAAC,IAAI,EAAE;YACT,OAAM;SACP;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAA;QACtB,IAAI,CAAC,MAAM,EAAE,CAAA;QACb,iBAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAA;QACvC,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"requester.js","sourceRoot":"","sources":["../../../src/util/requester.ts"],"names":[],"mappings":"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"}
|
package/validation/index.js
CHANGED
|
@@ -59,7 +59,7 @@ const validatorMiddleware = (adapter) => (rawRequest, reply, done) => {
|
|
|
59
59
|
}
|
|
60
60
|
// Run any request transforms that might have been defined in the adapter.
|
|
61
61
|
// This is the last time modifications are supposed to happen to the request.
|
|
62
|
-
endpoint.runRequestTransforms(req);
|
|
62
|
+
endpoint.runRequestTransforms(req, adapter.config.settings);
|
|
63
63
|
if (adapter.config.settings.METRICS_ENABLED &&
|
|
64
64
|
adapter.config.settings.EXPERIMENTAL_METRICS_ENABLED) {
|
|
65
65
|
// Add metrics meta which includes feedId to the request
|
|
@@ -97,10 +97,21 @@ const validatorMiddleware = (adapter) => (rawRequest, reply, done) => {
|
|
|
97
97
|
exports.validatorMiddleware = validatorMiddleware;
|
|
98
98
|
const errorCatchingMiddleware = (err, req, res) => {
|
|
99
99
|
// Add adapter or generic error to request meta for metrics use
|
|
100
|
-
// There's a chance we have no request context if there was an error during input validation
|
|
100
|
+
// There's a chance we have no request context if there was an error during input validation,
|
|
101
|
+
// but we still want to include error in meta for metrics
|
|
101
102
|
if (req.requestContext) {
|
|
102
103
|
req.requestContext.meta = { ...req.requestContext?.meta, error: err };
|
|
103
104
|
}
|
|
105
|
+
else {
|
|
106
|
+
const errorLabel = 'inputValidationError';
|
|
107
|
+
req.requestContext = {
|
|
108
|
+
cacheKey: errorLabel,
|
|
109
|
+
data: undefined,
|
|
110
|
+
endpointName: errorLabel,
|
|
111
|
+
transportName: errorLabel,
|
|
112
|
+
meta: { error: err },
|
|
113
|
+
};
|
|
114
|
+
}
|
|
104
115
|
// Add the request context to the error so that we can check things like incoming params, endpoint, etc
|
|
105
116
|
const errorWithContext = {
|
|
106
117
|
...req.requestContext,
|
package/validation/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validation/index.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AAEnC,qCAAkD;AAElD,oCAA4C;AAC5C,wCAAsE;AACtE,0CAAgD;AAChD,kCAAgD;AAOhD,mCAA8E;AAC9E,iDAKuB;AACvB,+CAAgD;AAAvC,+GAAA,eAAe,OAAA;AAExB,MAAM,kBAAkB,GAAG,IAAA,iBAAU,EAAC,yBAAyB,CAAC,CAAA;AAEzD,MAAM,mBAAmB,GAC9B,CAAC,OAAgB,EAAE,EAAE,CACrB,CAAC,UAA0B,EAAE,KAAmB,EAAE,IAA6B,EAAE,EAAE;IACjF,MAAM,GAAG,GAAG,UAAkD,CAAA;IAE9D,IAAI,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,kBAAkB,EAAE;QACtD,MAAM,IAAI,yBAAiB,CAAC;YAC1B,OAAO,EAAE,oDAAoD;YAC7D,UAAU,EAAE,GAAG;SAChB,CAAC,CAAA;KACH;IAED,4EAA4E;IAC5E,qEAAqE;IACrE,MAAM,WAAW,GAAG,GAAG,CAAC,IAAqC,CAAA;IAE7D,kEAAkE;IAClE,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,IAAI,EAAE,CAAA;IAEzC,kCAAkC;IAClC,MAAM,aAAa,GACjB,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE;QACnC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE;QACzC,OAAO,CAAC,eAAe,CAAA;IACzB,IAAI,CAAC,aAAa,EAAE;QAClB,MAAM,IAAI,yBAAiB,CAAC;YAC1B,OAAO,EAAE,0GAA0G;YACnH,UAAU,EAAE,GAAG;SAChB,CAAC,CAAA;KACH;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;IACpD,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,yBAAiB,CAAC;YAC1B,OAAO,EAAE,4BAA4B,aAAa,aAAa;YAC/D,UAAU,EAAE,GAAG;SAChB,CAAC,CAAA;KACH;IAED,2CAA2C;IAC3C,IAAA,gCAAiB,EAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IACnC,MAAM,aAAa,GAAG,QAAQ,CAAC,eAAe,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IAE9E,GAAG,CAAC,cAAc,GAAG;QACnB,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,aAAa;QACnB,YAAY,EAAE,QAAQ,CAAC,IAAI;KAC4C,CAAA;IAEzE,yHAAyH;IACzH,GAAG,CAAC,cAAc,CAAC,aAAa,GAAG,QAAQ,CAAC,0BAA0B,CACpE,GAAG,EACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CACxB,CAAA;IAED,4CAA4C;IAC5C,MAAM,KAAK,GACT,QAAQ,CAAC,qBAAqB,IAAI,QAAQ,CAAC,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAEhG,IAAI,KAAK,EAAE;QACT,MAAM,KAAK,CAAA;KACZ;IAED,0EAA0E;IAC1E,6EAA6E;IAC7E,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validation/index.ts"],"names":[],"mappings":"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"}
|