@chainlink/external-adapter-framework 0.28.5 → 0.29.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.
Files changed (57) hide show
  1. package/adapter/basic.d.ts +3 -2
  2. package/adapter/basic.js.map +1 -1
  3. package/adapter/endpoint.d.ts +6 -8
  4. package/adapter/endpoint.js +6 -6
  5. package/adapter/endpoint.js.map +1 -1
  6. package/adapter/price.d.ts +21 -18
  7. package/adapter/price.js +2 -2
  8. package/adapter/price.js.map +1 -1
  9. package/adapter/types.d.ts +6 -14
  10. package/cache/index.d.ts +2 -2
  11. package/cache/index.js +2 -2
  12. package/cache/index.js.map +1 -1
  13. package/cache/response.d.ts +5 -5
  14. package/cache/response.js +6 -6
  15. package/cache/response.js.map +1 -1
  16. package/config/index.d.ts +31 -30
  17. package/config/index.js.map +1 -1
  18. package/metrics/index.d.ts +2 -1
  19. package/metrics/index.js.map +1 -1
  20. package/metrics/util.d.ts +1 -1
  21. package/package.json +9 -9
  22. package/transports/abstract/streaming.d.ts +5 -4
  23. package/transports/abstract/streaming.js.map +1 -1
  24. package/transports/abstract/subscription.d.ts +6 -8
  25. package/transports/abstract/subscription.js.map +1 -1
  26. package/transports/http.d.ts +5 -4
  27. package/transports/http.js.map +1 -1
  28. package/transports/index.d.ts +7 -12
  29. package/transports/index.js.map +1 -1
  30. package/transports/metrics.d.ts +4 -3
  31. package/transports/metrics.js.map +1 -1
  32. package/transports/sse.d.ts +5 -4
  33. package/transports/sse.js.map +1 -1
  34. package/transports/websocket.d.ts +7 -6
  35. package/transports/websocket.js +1 -1
  36. package/transports/websocket.js.map +1 -1
  37. package/util/censor/censor-list.js +1 -1
  38. package/util/censor/censor-list.js.map +1 -1
  39. package/util/index.d.ts +7 -3
  40. package/util/index.js +9 -7
  41. package/util/index.js.map +1 -1
  42. package/util/logger.d.ts +4 -3
  43. package/util/logger.js +2 -2
  44. package/util/logger.js.map +1 -1
  45. package/util/types.d.ts +20 -16
  46. package/validation/index.d.ts +1 -1
  47. package/validation/index.js +7 -2
  48. package/validation/index.js.map +1 -1
  49. package/validation/input-params.d.ts +192 -13
  50. package/validation/input-params.js +226 -0
  51. package/validation/input-params.js.map +1 -1
  52. package/validation/utils.d.ts +5 -6
  53. package/validation/utils.js +5 -15
  54. package/validation/utils.js.map +1 -1
  55. package/validation/input-validator.d.ts +0 -19
  56. package/validation/input-validator.js +0 -153
  57. package/validation/input-validator.js.map +0 -1
@@ -1,153 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InputValidator = void 0;
4
- const error_1 = require("./error");
5
- const util_1 = require("../util");
6
- const utils_1 = require("./utils");
7
- const isNotObject = utils_1.validator.object();
8
- class InputValidator {
9
- constructor(inputConfig) {
10
- this.inputConfig = inputConfig;
11
- this.aliases = {};
12
- this.getUsedKey = (allKeys, input) => allKeys.find((k) => input && !(0, util_1.isEmpty)(input[k])) || '';
13
- this.throwInvalid = (message) => {
14
- throw new error_1.AdapterInputError({ statusCode: 400, message });
15
- };
16
- this.inputConfig = { ...inputConfig };
17
- this.validateInputParamsSchema();
18
- }
19
- validateInput(input) {
20
- const normalized = this.initializeInputs(input);
21
- this.validateOverrides(input?.['overrides']);
22
- for (const configKey in this.inputConfig) {
23
- this.validateRequiredConfig(configKey, normalized);
24
- if (!(0, util_1.isEmpty)(normalized[configKey])) {
25
- this.validateTypes(configKey, normalized);
26
- this.validateOptions(configKey, normalized);
27
- this.validateDeps(configKey, normalized);
28
- }
29
- }
30
- return normalized;
31
- }
32
- validateOverrides(overrides) {
33
- if (!overrides) {
34
- return;
35
- }
36
- if (isNotObject(overrides)) {
37
- throw new error_1.AdapterInputError({
38
- statusCode: 400,
39
- message: `'overrides' should be an object.`,
40
- });
41
- }
42
- for (const endpointName in overrides) {
43
- if (isNotObject(overrides[endpointName])) {
44
- throw new error_1.AdapterInputError({
45
- statusCode: 400,
46
- message: `overrides.${endpointName} should be an object.`,
47
- });
48
- }
49
- for (const overrideKey in overrides[endpointName]) {
50
- if (typeof overrides[endpointName][overrideKey] !== 'string') {
51
- throw new error_1.AdapterInputError({
52
- statusCode: 400,
53
- message: `overrides.${endpointName}.${overrideKey} should be string.`,
54
- });
55
- }
56
- }
57
- }
58
- }
59
- initializeInputs(input) {
60
- const normalized = {};
61
- for (const paramName in this.inputConfig) {
62
- const usedKey = this.getUsedKey(this.aliases[paramName], input);
63
- normalized[paramName] =
64
- !usedKey || (0, util_1.isEmpty)(input[usedKey]) ? this.inputConfig[paramName].default : input[usedKey];
65
- }
66
- return normalized;
67
- }
68
- validateInputParamsSchema() {
69
- for (const configKey in this.inputConfig) {
70
- const config = this.inputConfig[configKey];
71
- if (config.required && config.default) {
72
- throw new error_1.AdapterInputError({
73
- statusCode: 400,
74
- message: `${configKey} can't be required and have default value`,
75
- });
76
- }
77
- const aliases = [configKey, ...(config.aliases ?? [])];
78
- if (aliases.length !== new Set(aliases).size) {
79
- throw new error_1.AdapterInputError({
80
- statusCode: 400,
81
- message: `Duplicate aliases`,
82
- });
83
- }
84
- this.aliases[configKey] = aliases;
85
- const deps = [...(config.dependsOn ?? []), ...(config.exclusive ?? [])];
86
- if (!deps || !deps.length) {
87
- continue;
88
- }
89
- deps.forEach((inputDepKey) => {
90
- if (!this.inputConfig[inputDepKey]) {
91
- throw new error_1.AdapterInputError({
92
- statusCode: 400,
93
- message: `Input dependency/exclusive '${inputDepKey}' is missing in input schema`,
94
- });
95
- }
96
- });
97
- }
98
- }
99
- validateRequiredConfig(configKey, normalized) {
100
- if (!this.inputConfig[configKey].required) {
101
- return;
102
- }
103
- if ((0, util_1.isEmpty)(normalized[configKey])) {
104
- this.throwInvalid(`Required parameter ${configKey} must be non-null and non-empty`);
105
- }
106
- }
107
- validateOptions(key, normalized) {
108
- if (!this.inputConfig[key].options?.length) {
109
- return;
110
- }
111
- if (!this.inputConfig[key].options?.includes(normalized[key])) {
112
- this.throwInvalid(`${key} parameter must be one of following options: ${this.inputConfig[key].options?.join(',')}`);
113
- }
114
- }
115
- validateTypes(key, normalized) {
116
- const type = this.inputConfig[key].type;
117
- if (!type) {
118
- return;
119
- }
120
- if (['array', 'object'].includes(type)) {
121
- if (type === 'array' &&
122
- (!Array.isArray(normalized[key]) || normalized[key].length === 0)) {
123
- this.throwInvalid(`${key} parameter must be a non-empty array`);
124
- }
125
- if (type === 'object' &&
126
- normalized[key] &&
127
- (isNotObject(normalized[key]) ||
128
- Object.keys(normalized[key]).length === 0)) {
129
- this.throwInvalid(`${key} parameter must be an object with at least one property`);
130
- }
131
- return;
132
- }
133
- else if (typeof normalized[key] !== type) {
134
- this.throwInvalid(`${key} parameter must be of type ${type}`);
135
- }
136
- }
137
- validateDeps(key, normalized) {
138
- for (const dependency of this.inputConfig[key].dependsOn ?? []) {
139
- const value = normalized[dependency];
140
- if ((0, util_1.isEmpty)(value)) {
141
- this.throwInvalid(`${key} dependency ${dependency} not supplied`);
142
- }
143
- }
144
- for (const exclusive of this.inputConfig[key].exclusive ?? []) {
145
- const value = normalized[exclusive];
146
- if (!(0, util_1.isEmpty)(value)) {
147
- this.throwInvalid(`${key} cannot be supplied concurrently with ${exclusive}`);
148
- }
149
- }
150
- }
151
- }
152
- exports.InputValidator = InputValidator;
153
- //# sourceMappingURL=input-validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-validator.js","sourceRoot":"","sources":["../../../src/validation/input-validator.ts"],"names":[],"mappings":"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"}