@chainlink/external-adapter-framework 0.29.8 → 0.29.10

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 (51) hide show
  1. package/README.md +19 -12
  2. package/adapter/basic.js +5 -1
  3. package/adapter/basic.js.map +1 -1
  4. package/background-executor.js +1 -1
  5. package/background-executor.js.map +1 -1
  6. package/cache/index.d.ts +5 -8
  7. package/cache/index.js +8 -10
  8. package/cache/index.js.map +1 -1
  9. package/cache/local.js +6 -6
  10. package/cache/local.js.map +1 -1
  11. package/cache/redis.js +4 -4
  12. package/cache/redis.js.map +1 -1
  13. package/cache/response.js +3 -5
  14. package/cache/response.js.map +1 -1
  15. package/config/index.d.ts +53 -42
  16. package/config/index.js +11 -1
  17. package/config/index.js.map +1 -1
  18. package/index.d.ts +6 -6
  19. package/index.js +26 -22
  20. package/index.js.map +1 -1
  21. package/metrics/index.d.ts +1 -0
  22. package/metrics/index.js +5 -2
  23. package/metrics/index.js.map +1 -1
  24. package/package.json +2 -1
  25. package/transports/abstract/streaming.js +2 -2
  26. package/transports/abstract/streaming.js.map +1 -1
  27. package/transports/abstract/subscription.js +1 -1
  28. package/transports/abstract/subscription.js.map +1 -1
  29. package/transports/http.js +3 -3
  30. package/transports/http.js.map +1 -1
  31. package/transports/websocket.js +5 -5
  32. package/transports/websocket.js.map +1 -1
  33. package/util/index.d.ts +16 -0
  34. package/util/index.js +30 -1
  35. package/util/index.js.map +1 -1
  36. package/util/logger.d.ts +1 -0
  37. package/util/logger.js +8 -1
  38. package/util/logger.js.map +1 -1
  39. package/util/requester.js +8 -8
  40. package/util/requester.js.map +1 -1
  41. package/util/testing-utils.d.ts +119 -0
  42. package/util/testing-utils.js +342 -0
  43. package/util/testing-utils.js.map +1 -0
  44. package/validation/error.d.ts +1 -1
  45. package/validation/error.js +1 -1
  46. package/validation/error.js.map +1 -1
  47. package/validation/index.js +10 -7
  48. package/validation/index.js.map +1 -1
  49. package/validation/utils.d.ts +14 -6
  50. package/validation/utils.js +78 -38
  51. package/validation/utils.js.map +1 -1
@@ -4,68 +4,105 @@ exports.validator = void 0;
4
4
  const net_1 = require("net");
5
5
  // Composes complex validator function that runs each validator in order and returns first occurred error description and skips the rest of validation
6
6
  const compose = (validatorFunctions) => {
7
- return (value) => {
8
- for (const validator of validatorFunctions) {
9
- const errorText = validator(value);
10
- if (errorText?.length) {
11
- return errorText;
12
- }
7
+ const meta = {};
8
+ const details = [];
9
+ for (const validator of validatorFunctions) {
10
+ if (validator.meta.min !== undefined) {
11
+ meta.min = validator.meta.min;
13
12
  }
14
- return;
13
+ if (validator.meta.max !== undefined) {
14
+ meta.max = validator.meta.max;
15
+ }
16
+ if (validator.meta.details) {
17
+ details.push(validator.meta.details);
18
+ }
19
+ }
20
+ meta.details = details.join(', ');
21
+ return {
22
+ meta: meta,
23
+ fn: (value) => {
24
+ for (const validator of validatorFunctions) {
25
+ const errorText = validator.fn(value);
26
+ if (errorText?.length) {
27
+ return errorText;
28
+ }
29
+ }
30
+ return;
31
+ },
15
32
  };
16
33
  };
17
- const _integer = () => {
18
- return (value) => {
34
+ const _integer = () => ({
35
+ meta: {
36
+ details: 'Value must be an integer',
37
+ },
38
+ fn: (value) => {
19
39
  if (!Number.isInteger(value)) {
20
- return `Value should be an integer (no floating point)., Received ${typeof value} ${value}`;
40
+ return `Value must be an integer (no floating point)., Received ${typeof value} ${value}`;
21
41
  }
22
42
  return;
23
- };
24
- };
25
- const positive = () => {
26
- return (value) => {
43
+ },
44
+ });
45
+ const positive = () => ({
46
+ meta: {
47
+ details: 'Value must be a positive number',
48
+ },
49
+ fn: (value) => {
27
50
  if (value !== undefined && Number(value) < 0) {
28
- return `Value should be positive number, Received ${value}`;
51
+ return `Value must be positive number, Received ${value}`;
29
52
  }
30
53
  return;
31
- };
32
- };
33
- const minNumber = (param) => {
34
- return (value) => {
54
+ },
55
+ });
56
+ const minNumber = (param) => ({
57
+ meta: {
58
+ details: 'Value must be above the minimum',
59
+ min: param,
60
+ },
61
+ fn: (value) => {
35
62
  if (value !== undefined && Number(value) < param) {
36
63
  return `Minimum allowed value is ${param}. Received ${value}`;
37
64
  }
38
65
  return;
39
- };
40
- };
41
- const maxNumber = (param) => {
42
- return (value) => {
66
+ },
67
+ });
68
+ const maxNumber = (param) => ({
69
+ meta: {
70
+ details: 'Value must be below the maximum',
71
+ max: param,
72
+ },
73
+ fn: (value) => {
43
74
  if (value !== undefined && Number(value) > param) {
44
75
  return `Maximum allowed value is ${param}. Received ${value}`;
45
76
  }
46
77
  return;
47
- };
48
- };
49
- const url = () => {
50
- return (value) => {
78
+ },
79
+ });
80
+ const url = () => ({
81
+ meta: {
82
+ details: 'Value must be a valid URL',
83
+ },
84
+ fn: (value) => {
51
85
  try {
52
86
  value && new URL(value);
53
87
  }
54
88
  catch (e) {
55
- return `Value should be valid URL. Received ${value}`;
89
+ return `Value must be valid URL. Received ${value}`;
56
90
  }
57
91
  return;
58
- };
59
- };
60
- const host = () => {
61
- return (value) => {
92
+ },
93
+ });
94
+ const host = () => ({
95
+ meta: {
96
+ details: 'Value must be a valid IP address',
97
+ },
98
+ fn: (value) => {
62
99
  const result = (0, net_1.isIP)(value || '');
63
100
  if (result === 0 && value !== 'localhost') {
64
101
  return `Value is not valid IP address. Received ${value}`;
65
102
  }
66
103
  return;
67
- };
68
- };
104
+ },
105
+ });
69
106
  const positiveInteger = () => compose([_integer(), positive()]);
70
107
  const integer = (params) => {
71
108
  const validators = [_integer()];
@@ -80,8 +117,11 @@ const integer = (params) => {
80
117
  const port = () => integer({ min: 1, max: 65535 });
81
118
  // Validates that value is a valid timestamp from 2018-01-01 to now + 50ms to account for clock drift
82
119
  const responseTimestamp = () => integer({ min: 1514764861000, max: new Date().getTime() + 50 });
83
- const base64 = () => {
84
- return (value) => {
120
+ const base64 = () => ({
121
+ meta: {
122
+ details: 'Value must be a valid base64 string',
123
+ },
124
+ fn: (value) => {
85
125
  const errorMessage = `Value is not valid base64 string.`;
86
126
  if (!value) {
87
127
  return errorMessage;
@@ -94,8 +134,8 @@ const base64 = () => {
94
134
  catch (err) {
95
135
  return errorMessage;
96
136
  }
97
- };
98
- };
137
+ },
138
+ });
99
139
  exports.validator = {
100
140
  integer,
101
141
  positiveInteger,
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/validation/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/validation/utils.ts"],"names":[],"mappings":"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"}