@chainlink/external-adapter-framework 2.6.0 → 2.7.1

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 (160) hide show
  1. package/README.md +1 -1
  2. package/adapter/types.d.ts +1 -1
  3. package/config/index.d.ts +4 -0
  4. package/config/index.js +4 -0
  5. package/config/index.js.map +1 -1
  6. package/debug/router.js +7 -36
  7. package/debug/router.js.map +1 -1
  8. package/debug/settings-page.d.ts +1 -7
  9. package/debug/settings-page.js +0 -22
  10. package/debug/settings-page.js.map +1 -1
  11. package/generator-adapter/generators/app/index.js +11 -5
  12. package/generator-adapter/node_modules/.yarn-integrity +14 -13
  13. package/generator-adapter/node_modules/@types/node/README.md +3 -3
  14. package/generator-adapter/node_modules/@types/node/async_hooks.d.ts +65 -1
  15. package/generator-adapter/node_modules/@types/node/buffer.buffer.d.ts +2 -0
  16. package/generator-adapter/node_modules/@types/node/buffer.d.ts +8 -4
  17. package/generator-adapter/node_modules/@types/node/child_process.d.ts +26 -122
  18. package/generator-adapter/node_modules/@types/node/cluster.d.ts +1 -1
  19. package/generator-adapter/node_modules/@types/node/compatibility/disposable.d.ts +0 -2
  20. package/generator-adapter/node_modules/@types/node/compatibility/indexable.d.ts +0 -3
  21. package/generator-adapter/node_modules/@types/node/compatibility/iterators.d.ts +0 -1
  22. package/generator-adapter/node_modules/@types/node/crypto.d.ts +17 -1
  23. package/generator-adapter/node_modules/@types/node/diagnostics_channel.d.ts +37 -13
  24. package/generator-adapter/node_modules/@types/node/dns/promises.d.ts +36 -9
  25. package/generator-adapter/node_modules/@types/node/dns.d.ts +73 -20
  26. package/generator-adapter/node_modules/@types/node/events.d.ts +0 -1
  27. package/generator-adapter/node_modules/@types/node/fs/promises.d.ts +62 -54
  28. package/generator-adapter/node_modules/@types/node/fs.d.ts +149 -54
  29. package/generator-adapter/node_modules/@types/node/globals.d.ts +137 -478
  30. package/generator-adapter/node_modules/@types/node/http.d.ts +93 -6
  31. package/generator-adapter/node_modules/@types/node/http2.d.ts +81 -2
  32. package/generator-adapter/node_modules/@types/node/https.d.ts +5 -0
  33. package/generator-adapter/node_modules/@types/node/index.d.ts +7 -3
  34. package/generator-adapter/node_modules/@types/node/{inspector.d.ts → inspector.generated.d.ts} +219 -10
  35. package/generator-adapter/node_modules/@types/node/module.d.ts +136 -17
  36. package/generator-adapter/node_modules/@types/node/net.d.ts +15 -9
  37. package/generator-adapter/node_modules/@types/node/package.json +3 -83
  38. package/generator-adapter/node_modules/@types/node/perf_hooks.d.ts +2 -2
  39. package/generator-adapter/node_modules/@types/node/process.d.ts +3 -4
  40. package/generator-adapter/node_modules/@types/node/querystring.d.ts +2 -3
  41. package/generator-adapter/node_modules/@types/node/readline/promises.d.ts +0 -1
  42. package/generator-adapter/node_modules/@types/node/repl.d.ts +3 -5
  43. package/generator-adapter/node_modules/@types/node/sqlite.d.ts +207 -0
  44. package/generator-adapter/node_modules/@types/node/stream/web.d.ts +11 -3
  45. package/generator-adapter/node_modules/@types/node/stream.d.ts +5 -10
  46. package/generator-adapter/node_modules/@types/node/test.d.ts +1873 -1970
  47. package/generator-adapter/node_modules/@types/node/tls.d.ts +1 -1
  48. package/generator-adapter/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +2 -0
  49. package/generator-adapter/node_modules/@types/node/ts5.6/index.d.ts +7 -3
  50. package/generator-adapter/node_modules/@types/node/url.d.ts +12 -3
  51. package/generator-adapter/node_modules/@types/node/util.d.ts +33 -5
  52. package/generator-adapter/node_modules/@types/node/v8.d.ts +60 -30
  53. package/generator-adapter/node_modules/@types/node/vm.d.ts +61 -8
  54. package/generator-adapter/node_modules/@types/node/web-globals/abortcontroller.d.ts +34 -0
  55. package/generator-adapter/node_modules/@types/node/web-globals/domexception.d.ts +68 -0
  56. package/generator-adapter/node_modules/@types/node/web-globals/events.d.ts +94 -0
  57. package/generator-adapter/node_modules/@types/node/web-globals/fetch.d.ts +46 -0
  58. package/generator-adapter/node_modules/@types/node/web-globals/navigator.d.ts +22 -0
  59. package/generator-adapter/node_modules/@types/node/web-globals/storage.d.ts +24 -0
  60. package/generator-adapter/node_modules/@types/node/worker_threads.d.ts +87 -28
  61. package/generator-adapter/node_modules/@types/node/zlib.d.ts +8 -2
  62. package/generator-adapter/node_modules/@yeoman/adapter/dist/adapter.d.ts +3 -0
  63. package/generator-adapter/node_modules/@yeoman/adapter/dist/adapter.js +12 -2
  64. package/generator-adapter/node_modules/@yeoman/adapter/dist/adapter.js.map +1 -1
  65. package/generator-adapter/node_modules/@yeoman/adapter/dist/queued-adapter.d.ts +3 -0
  66. package/generator-adapter/node_modules/@yeoman/adapter/dist/queued-adapter.js +12 -2
  67. package/generator-adapter/node_modules/@yeoman/adapter/dist/queued-adapter.js.map +1 -1
  68. package/generator-adapter/node_modules/@yeoman/adapter/dist/testing/test-adapter.d.ts +3 -0
  69. package/generator-adapter/node_modules/@yeoman/adapter/dist/testing/test-adapter.js +12 -2
  70. package/generator-adapter/node_modules/@yeoman/adapter/dist/testing/test-adapter.js.map +1 -1
  71. package/generator-adapter/node_modules/@yeoman/adapter/package.json +4 -4
  72. package/generator-adapter/node_modules/@yeoman/adapter/types/adapter.d.ts +12 -1
  73. package/generator-adapter/node_modules/@yeoman/types/package.json +3 -3
  74. package/generator-adapter/node_modules/@yeoman/types/types/environment/environment.d.ts +4 -1
  75. package/generator-adapter/node_modules/@yeoman/types/types/environment/methods-options.d.ts +7 -3
  76. package/generator-adapter/node_modules/@yeoman/types/types/generator/generator.d.ts +8 -5
  77. package/generator-adapter/node_modules/@yeoman/types/types/generator/utils.d.ts +1 -0
  78. package/generator-adapter/node_modules/ansi-regex/index.d.ts +9 -13
  79. package/generator-adapter/node_modules/ansi-regex/index.js +6 -6
  80. package/generator-adapter/node_modules/ansi-regex/license +1 -1
  81. package/generator-adapter/node_modules/ansi-regex/package.json +12 -6
  82. package/generator-adapter/node_modules/ansi-regex/readme.md +4 -22
  83. package/generator-adapter/node_modules/cli-spinners/index.d.ts +122 -111
  84. package/generator-adapter/node_modules/cli-spinners/index.js +7 -11
  85. package/generator-adapter/node_modules/cli-spinners/package.json +15 -9
  86. package/generator-adapter/node_modules/cli-spinners/readme.md +23 -3
  87. package/generator-adapter/node_modules/cli-spinners/spinners.json +44 -1
  88. package/generator-adapter/node_modules/emoji-regex/README.md +14 -48
  89. package/generator-adapter/node_modules/emoji-regex/index.d.ts +21 -1
  90. package/generator-adapter/node_modules/emoji-regex/index.js +5 -3
  91. package/generator-adapter/node_modules/emoji-regex/package.json +12 -7
  92. package/generator-adapter/node_modules/get-east-asian-width/index.js +2 -3
  93. package/generator-adapter/node_modules/get-east-asian-width/lookup.js +11 -11
  94. package/generator-adapter/node_modules/get-east-asian-width/package.json +1 -1
  95. package/generator-adapter/node_modules/ora/index.d.ts +3 -3
  96. package/generator-adapter/node_modules/ora/index.js +67 -48
  97. package/generator-adapter/node_modules/ora/node_modules/chalk/package.json +83 -0
  98. package/generator-adapter/node_modules/ora/node_modules/chalk/readme.md +297 -0
  99. package/generator-adapter/node_modules/ora/node_modules/chalk/source/index.d.ts +325 -0
  100. package/generator-adapter/node_modules/ora/node_modules/chalk/source/index.js +225 -0
  101. package/generator-adapter/node_modules/ora/node_modules/chalk/source/utilities.js +33 -0
  102. package/generator-adapter/node_modules/ora/node_modules/chalk/source/vendor/ansi-styles/index.d.ts +236 -0
  103. package/generator-adapter/node_modules/ora/node_modules/chalk/source/vendor/ansi-styles/index.js +223 -0
  104. package/generator-adapter/node_modules/ora/node_modules/chalk/source/vendor/supports-color/browser.d.ts +1 -0
  105. package/generator-adapter/node_modules/ora/node_modules/chalk/source/vendor/supports-color/browser.js +34 -0
  106. package/generator-adapter/node_modules/ora/node_modules/chalk/source/vendor/supports-color/index.d.ts +55 -0
  107. package/generator-adapter/node_modules/ora/node_modules/chalk/source/vendor/supports-color/index.js +190 -0
  108. package/generator-adapter/node_modules/ora/node_modules/log-symbols/browser-symbols.js +4 -0
  109. package/generator-adapter/node_modules/ora/node_modules/log-symbols/browser.js +1 -8
  110. package/generator-adapter/node_modules/ora/node_modules/log-symbols/index.js +1 -20
  111. package/generator-adapter/node_modules/ora/node_modules/log-symbols/package.json +10 -7
  112. package/generator-adapter/node_modules/ora/node_modules/log-symbols/symbols.js +14 -0
  113. package/generator-adapter/node_modules/ora/node_modules/strip-ansi/package.json +3 -1
  114. package/generator-adapter/node_modules/ora/node_modules/strip-ansi/readme.md +5 -9
  115. package/generator-adapter/node_modules/ora/package.json +13 -13
  116. package/generator-adapter/node_modules/ora/readme.md +49 -3
  117. package/generator-adapter/node_modules/string-width/index.js +52 -45
  118. package/generator-adapter/node_modules/string-width/package.json +8 -7
  119. package/generator-adapter/node_modules/{string-width → strip-ansi}/node_modules/ansi-regex/index.d.ts +13 -9
  120. package/generator-adapter/node_modules/strip-ansi/node_modules/ansi-regex/index.js +10 -0
  121. package/generator-adapter/node_modules/{ora/node_modules/log-symbols/node_modules/is-unicode-supported → strip-ansi/node_modules/ansi-regex}/license +1 -1
  122. package/generator-adapter/node_modules/{string-width → strip-ansi}/node_modules/ansi-regex/package.json +6 -12
  123. package/generator-adapter/node_modules/{ora → strip-ansi}/node_modules/ansi-regex/readme.md +22 -4
  124. package/generator-adapter/package.json +3 -3
  125. package/index.js +3 -0
  126. package/index.js.map +1 -1
  127. package/package.json +19 -19
  128. package/status/router.d.ts +49 -0
  129. package/status/router.js +55 -0
  130. package/status/router.js.map +1 -0
  131. package/transports/http.d.ts +1 -2
  132. package/transports/sse.d.ts +2 -2
  133. package/transports/sse.js +2 -5
  134. package/transports/sse.js.map +1 -1
  135. package/transports/websocket.js +53 -17
  136. package/transports/websocket.js.map +1 -1
  137. package/util/settings.d.ts +11 -0
  138. package/util/settings.js +29 -0
  139. package/util/settings.js.map +1 -0
  140. package/generator-adapter/node_modules/@types/node/dom-events.d.ts +0 -124
  141. package/generator-adapter/node_modules/emoji-regex/index.mjs +0 -4
  142. package/generator-adapter/node_modules/ora/node_modules/ansi-regex/index.d.ts +0 -33
  143. package/generator-adapter/node_modules/ora/node_modules/ansi-regex/index.js +0 -10
  144. package/generator-adapter/node_modules/ora/node_modules/ansi-regex/package.json +0 -61
  145. package/generator-adapter/node_modules/ora/node_modules/log-symbols/node_modules/is-unicode-supported/index.d.ts +0 -12
  146. package/generator-adapter/node_modules/ora/node_modules/log-symbols/node_modules/is-unicode-supported/index.js +0 -17
  147. package/generator-adapter/node_modules/ora/node_modules/log-symbols/node_modules/is-unicode-supported/package.json +0 -43
  148. package/generator-adapter/node_modules/ora/node_modules/log-symbols/node_modules/is-unicode-supported/readme.md +0 -35
  149. package/generator-adapter/node_modules/string-width/node_modules/ansi-regex/index.js +0 -10
  150. package/generator-adapter/node_modules/string-width/node_modules/ansi-regex/license +0 -9
  151. package/generator-adapter/node_modules/string-width/node_modules/ansi-regex/readme.md +0 -60
  152. package/generator-adapter/node_modules/wrap-ansi/node_modules/emoji-regex/LICENSE-MIT.txt +0 -20
  153. package/generator-adapter/node_modules/wrap-ansi/node_modules/emoji-regex/README.md +0 -73
  154. package/generator-adapter/node_modules/wrap-ansi/node_modules/emoji-regex/index.d.ts +0 -23
  155. package/generator-adapter/node_modules/wrap-ansi/node_modules/emoji-regex/index.js +0 -6
  156. package/generator-adapter/node_modules/wrap-ansi/node_modules/emoji-regex/package.json +0 -50
  157. /package/generator-adapter/node_modules/{wrap-ansi/node_modules/emoji-regex → emoji-regex}/es2015/index.js +0 -0
  158. /package/generator-adapter/node_modules/{wrap-ansi/node_modules/emoji-regex → emoji-regex}/es2015/text.js +0 -0
  159. /package/generator-adapter/node_modules/{wrap-ansi/node_modules/emoji-regex → emoji-regex}/text.js +0 -0
  160. /package/generator-adapter/node_modules/ora/node_modules/{ansi-regex → chalk}/license +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "string-width",
3
- "version": "7.2.0",
3
+ "version": "8.1.0",
4
4
  "description": "Get the visual width of a string - the number of columns required to display it",
5
5
  "license": "MIT",
6
6
  "repository": "sindresorhus/string-width",
@@ -17,7 +17,7 @@
17
17
  },
18
18
  "sideEffects": false,
19
19
  "engines": {
20
- "node": ">=18"
20
+ "node": ">=20"
21
21
  },
22
22
  "scripts": {
23
23
  "test": "xo && ava && tsd"
@@ -36,6 +36,8 @@
36
36
  "columns",
37
37
  "fullwidth",
38
38
  "full-width",
39
+ "wcwidth",
40
+ "wcswidth",
39
41
  "full",
40
42
  "ansi",
41
43
  "escape",
@@ -52,13 +54,12 @@
52
54
  "east-asian-width"
53
55
  ],
54
56
  "dependencies": {
55
- "emoji-regex": "^10.3.0",
56
- "get-east-asian-width": "^1.0.0",
57
+ "get-east-asian-width": "^1.3.0",
57
58
  "strip-ansi": "^7.1.0"
58
59
  },
59
60
  "devDependencies": {
60
- "ava": "^5.3.1",
61
- "tsd": "^0.29.0",
62
- "xo": "^0.56.0"
61
+ "ava": "^6.4.1",
62
+ "tsd": "^0.33.0",
63
+ "xo": "^1.2.2"
63
64
  }
64
65
  }
@@ -1,18 +1,20 @@
1
- export type Options = {
2
- /**
3
- Match only the first ANSI escape.
1
+ declare namespace ansiRegex {
2
+ interface Options {
3
+ /**
4
+ Match only the first ANSI escape.
4
5
 
5
- @default false
6
- */
7
- readonly onlyFirst: boolean;
8
- };
6
+ @default false
7
+ */
8
+ onlyFirst: boolean;
9
+ }
10
+ }
9
11
 
10
12
  /**
11
13
  Regular expression for matching ANSI escape codes.
12
14
 
13
15
  @example
14
16
  ```
15
- import ansiRegex from 'ansi-regex';
17
+ import ansiRegex = require('ansi-regex');
16
18
 
17
19
  ansiRegex().test('\u001B[4mcake\u001B[0m');
18
20
  //=> true
@@ -30,4 +32,6 @@ ansiRegex().test('cake');
30
32
  //=> ['\u001B]8;;https://github.com\u0007', '\u001B]8;;\u0007']
31
33
  ```
32
34
  */
33
- export default function ansiRegex(options?: Options): RegExp;
35
+ declare function ansiRegex(options?: ansiRegex.Options): RegExp;
36
+
37
+ export = ansiRegex;
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ module.exports = ({onlyFirst = false} = {}) => {
4
+ const pattern = [
5
+ '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)',
6
+ '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))'
7
+ ].join('|');
8
+
9
+ return new RegExp(pattern, onlyFirst ? undefined : 'g');
10
+ };
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
3
+ Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
6
 
@@ -1,21 +1,16 @@
1
1
  {
2
2
  "name": "ansi-regex",
3
- "version": "6.1.0",
3
+ "version": "5.0.1",
4
4
  "description": "Regular expression for matching ANSI escape codes",
5
5
  "license": "MIT",
6
6
  "repository": "chalk/ansi-regex",
7
- "funding": "https://github.com/chalk/ansi-regex?sponsor=1",
8
7
  "author": {
9
8
  "name": "Sindre Sorhus",
10
9
  "email": "sindresorhus@gmail.com",
11
- "url": "https://sindresorhus.com"
10
+ "url": "sindresorhus.com"
12
11
  },
13
- "type": "module",
14
- "exports": "./index.js",
15
- "types": "./index.d.ts",
16
- "sideEffects": false,
17
12
  "engines": {
18
- "node": ">=12"
13
+ "node": ">=8"
19
14
  },
20
15
  "scripts": {
21
16
  "test": "xo && ava && tsd",
@@ -53,9 +48,8 @@
53
48
  "pattern"
54
49
  ],
55
50
  "devDependencies": {
56
- "ansi-escapes": "^5.0.0",
57
- "ava": "^3.15.0",
58
- "tsd": "^0.21.0",
59
- "xo": "^0.54.2"
51
+ "ava": "^2.4.0",
52
+ "tsd": "^0.9.0",
53
+ "xo": "^0.25.3"
60
54
  }
61
55
  }
@@ -2,16 +2,18 @@
2
2
 
3
3
  > Regular expression for matching [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code)
4
4
 
5
+
5
6
  ## Install
6
7
 
7
- ```sh
8
- npm install ansi-regex
9
8
  ```
9
+ $ npm install ansi-regex
10
+ ```
11
+
10
12
 
11
13
  ## Usage
12
14
 
13
15
  ```js
14
- import ansiRegex from 'ansi-regex';
16
+ const ansiRegex = require('ansi-regex');
15
17
 
16
18
  ansiRegex().test('\u001B[4mcake\u001B[0m');
17
19
  //=> true
@@ -29,6 +31,7 @@ ansiRegex().test('cake');
29
31
  //=> ['\u001B]8;;https://github.com\u0007', '\u001B]8;;\u0007']
30
32
  ```
31
33
 
34
+
32
35
  ## API
33
36
 
34
37
  ### ansiRegex(options?)
@@ -41,11 +44,12 @@ Type: `object`
41
44
 
42
45
  ##### onlyFirst
43
46
 
44
- Type: `boolean`\
47
+ Type: `boolean`<br>
45
48
  Default: `false` *(Matches any ANSI escape codes in a string)*
46
49
 
47
50
  Match only the first ANSI escape.
48
51
 
52
+
49
53
  ## FAQ
50
54
 
51
55
  ### Why do you test for codes not in the ECMA 48 standard?
@@ -54,7 +58,21 @@ Some of the codes we run as a test are codes that we acquired finding various li
54
58
 
55
59
  On the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of "interrupts" that can mean different things on certain brands of processors, most of which have been phased out.
56
60
 
61
+
57
62
  ## Maintainers
58
63
 
59
64
  - [Sindre Sorhus](https://github.com/sindresorhus)
60
65
  - [Josh Junon](https://github.com/qix-)
66
+
67
+
68
+ ---
69
+
70
+ <div align="center">
71
+ <b>
72
+ <a href="https://tidelift.com/subscription/pkg/npm-ansi-regex?utm_source=npm-ansi-regex&utm_medium=referral&utm_campaign=readme">Get professional support for this package with a Tidelift subscription</a>
73
+ </b>
74
+ <br>
75
+ <sub>
76
+ Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies.
77
+ </sub>
78
+ </div>
@@ -12,9 +12,9 @@
12
12
  ],
13
13
  "devDependencies": {
14
14
  "yeoman-generator": "7.5.1",
15
- "@yeoman/types": "1.6.0",
15
+ "@yeoman/types": "1.8.0",
16
16
  "mem-fs": "4.1.2",
17
- "@yeoman/adapter": "2.1.1",
18
- "@types/node": "22.15.3"
17
+ "@yeoman/adapter": "3.1.0",
18
+ "@types/node": "22.18.6"
19
19
  }
20
20
  }
package/index.js CHANGED
@@ -13,6 +13,7 @@ const router_1 = __importDefault(require("./debug/router"));
13
13
  const metrics_1 = require("./metrics");
14
14
  const util_1 = require("./util");
15
15
  const validation_1 = require("./validation");
16
+ const router_2 = __importDefault(require("./status/router"));
16
17
  const logger = (0, util_1.makeLogger)('Main');
17
18
  const VERSION = process.env['npm_package_version'];
18
19
  const getTLSOptions = (adapterSettings) => {
@@ -151,6 +152,8 @@ async function buildRestApi(adapter) {
151
152
  (0, router_1.default)(app, adapter);
152
153
  logger.info('Serving debug endpoints');
153
154
  }
155
+ // Register status endpoint
156
+ (0, router_2.default)(app, adapter);
154
157
  // Use global error handling
155
158
  app.setErrorHandler(validation_1.errorCatchingMiddleware);
156
159
  // Always reply with json content
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,20 +1,21 @@
1
1
  {
2
2
  "name": "@chainlink/external-adapter-framework",
3
- "version": "2.6.0",
3
+ "version": "2.7.1",
4
4
  "main": "dist/index.js",
5
5
  "license": "MIT",
6
+ "repository": "git://github.com/smartcontractkit/ea-framework-js.git",
6
7
  "dependencies": {
7
8
  "ajv": "8.17.1",
8
- "axios": "1.9.0",
9
- "eventsource": "2.0.2",
10
- "fastify": "5.3.2",
11
- "ioredis": "5.6.1",
9
+ "axios": "1.12.2",
10
+ "eventsource": "4.0.0",
11
+ "fastify": "5.6.1",
12
+ "ioredis": "5.8.0",
12
13
  "mock-socket": "9.3.1",
13
- "pino": "9.6.0",
14
- "pino-pretty": "13.0.0",
14
+ "pino": "10.0.0",
15
+ "pino-pretty": "13.1.1",
15
16
  "prom-client": "15.1.3",
16
17
  "redlock": "5.0.0-beta.2",
17
- "ws": "8.18.2"
18
+ "ws": "8.18.3"
18
19
  },
19
20
  "scripts": {
20
21
  "build": "rm -rf dist/src && mkdir -p ./dist/src && cp package.json dist/src && cp README.md dist/src && tsc && yarn pre-build-generator",
@@ -35,25 +36,24 @@
35
36
  "create-external-adapter": "adapter-generator.js"
36
37
  },
37
38
  "devDependencies": {
38
- "@sinonjs/fake-timers": "14.0.0",
39
- "@types/eventsource": "1.1.15",
40
- "@types/node": "22.15.3",
39
+ "@sinonjs/fake-timers": "15.0.0",
40
+ "@types/node": "22.18.6",
41
41
  "@types/sinonjs__fake-timers": "8.1.5",
42
42
  "@types/ws": "8.18.1",
43
- "@typescript-eslint/eslint-plugin": "8.30.1",
44
- "@typescript-eslint/parser": "8.30.1",
45
- "ava": "6.3.0",
43
+ "@typescript-eslint/eslint-plugin": "8.45.0",
44
+ "@typescript-eslint/parser": "8.45.0",
45
+ "ava": "6.4.1",
46
46
  "axios-mock-adapter": "2.1.0",
47
47
  "c8": "10.1.3",
48
- "eslint": "9.25.1",
49
- "eslint-config-prettier": "10.1.2",
48
+ "eslint": "9.37.0",
49
+ "eslint-config-prettier": "10.1.8",
50
50
  "eslint-plugin-tsdoc": "0.4.0",
51
51
  "mocksse": "1.0.4",
52
- "prettier": "3.5.3",
52
+ "prettier": "3.6.2",
53
53
  "ts-node": "10.9.2",
54
54
  "ts-node-dev": "2.0.0",
55
- "typedoc": "0.28.3",
56
- "typescript": "5.8.3"
55
+ "typedoc": "0.28.13",
56
+ "typescript": "5.9.3"
57
57
  },
58
58
  "prettier": {
59
59
  "semi": false,
@@ -0,0 +1,49 @@
1
+ import { FastifyInstance } from 'fastify';
2
+ import { Adapter } from '../adapter';
3
+ export interface StatusResponse {
4
+ adapter: {
5
+ name: string;
6
+ version: string;
7
+ uptimeSeconds: number;
8
+ };
9
+ endpoints: {
10
+ name: string;
11
+ aliases: string[];
12
+ transports: string[];
13
+ }[];
14
+ defaultEndpoint: string;
15
+ configuration: {
16
+ name: string;
17
+ value: unknown;
18
+ type: string;
19
+ description: string;
20
+ required: boolean;
21
+ default: unknown;
22
+ customSetting: boolean;
23
+ envDefaultOverride: unknown;
24
+ }[];
25
+ runtime: {
26
+ nodeVersion: string;
27
+ platform: string;
28
+ architecture: string;
29
+ hostname: string;
30
+ };
31
+ metrics: {
32
+ enabled: boolean;
33
+ port?: number;
34
+ endpoint?: string;
35
+ };
36
+ }
37
+ /**
38
+ * This function registers the status endpoint for the adapter.
39
+ * This endpoint provides comprehensive information about the adapter including:
40
+ * - Adapter metadata (name, version, commit)
41
+ * - Configuration (obfuscated sensitive values)
42
+ * - Runtime information
43
+ * - Dependencies status
44
+ * - Endpoints and transports
45
+ *
46
+ * @param app - the fastify instance that has been created
47
+ * @param adapter - the adapter for which to create the status endpoint
48
+ */
49
+ export default function registerStatusEndpoint(app: FastifyInstance, adapter: Adapter): void;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = registerStatusEndpoint;
4
+ const path_1 = require("path");
5
+ const os_1 = require("os");
6
+ const settings_1 = require("../util/settings");
7
+ /**
8
+ * This function registers the status endpoint for the adapter.
9
+ * This endpoint provides comprehensive information about the adapter including:
10
+ * - Adapter metadata (name, version, commit)
11
+ * - Configuration (obfuscated sensitive values)
12
+ * - Runtime information
13
+ * - Dependencies status
14
+ * - Endpoints and transports
15
+ *
16
+ * @param app - the fastify instance that has been created
17
+ * @param adapter - the adapter for which to create the status endpoint
18
+ */
19
+ function registerStatusEndpoint(app, adapter) {
20
+ // Status endpoint that returns comprehensive adapter information
21
+ app.get((0, path_1.join)(adapter.config.settings.BASE_URL, '/status'), async () => {
22
+ const metricsEndpoint = adapter.config.settings.METRICS_USE_BASE_URL
23
+ ? (0, path_1.join)(adapter.config.settings.BASE_URL, 'metrics')
24
+ : '/metrics';
25
+ const statusResponse = {
26
+ adapter: {
27
+ name: adapter.name,
28
+ version: process.env['npm_package_version'] || 'unknown',
29
+ uptimeSeconds: process.uptime(),
30
+ },
31
+ endpoints: adapter.endpoints.map((endpoint) => ({
32
+ name: endpoint.name,
33
+ aliases: endpoint.aliases || [],
34
+ transports: endpoint.transportRoutes.routeNames(),
35
+ })),
36
+ defaultEndpoint: adapter.defaultEndpoint || '',
37
+ configuration: (0, settings_1.buildSettingsList)(adapter),
38
+ runtime: {
39
+ nodeVersion: process.version,
40
+ platform: process.platform,
41
+ architecture: process.arch,
42
+ hostname: (0, os_1.hostname)(),
43
+ },
44
+ metrics: {
45
+ enabled: adapter.config.settings.METRICS_ENABLED,
46
+ port: adapter.config.settings.METRICS_ENABLED
47
+ ? adapter.config.settings.METRICS_PORT
48
+ : undefined,
49
+ endpoint: adapter.config.settings.METRICS_ENABLED ? metricsEndpoint : undefined,
50
+ },
51
+ };
52
+ return statusResponse;
53
+ });
54
+ }
55
+ //# sourceMappingURL=router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/status/router.ts"],"names":[],"mappings":";;AAqDA,yCAqCC;AAzFD,+BAA2B;AAC3B,2BAA6B;AAE7B,+CAAoD;AAqCpD;;;;;;;;;;;GAWG;AACH,SAAwB,sBAAsB,CAAC,GAAoB,EAAE,OAAgB;IACnF,iEAAiE;IACjE,GAAG,CAAC,GAAG,CAAC,IAAA,WAAI,EAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB;YAClE,CAAC,CAAC,IAAA,WAAI,EAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;YACnD,CAAC,CAAC,UAAU,CAAA;QAEd,MAAM,cAAc,GAAmB;YACrC,OAAO,EAAE;gBACP,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,SAAS;gBACxD,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE;aAChC;YACD,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC9C,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,EAAE;gBAC/B,UAAU,EAAE,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE;aAClD,CAAC,CAAC;YACH,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,EAAE;YAC9C,aAAa,EAAE,IAAA,4BAAiB,EAAC,OAAO,CAAC;YACzC,OAAO,EAAE;gBACP,WAAW,EAAE,OAAO,CAAC,OAAO;gBAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,YAAY,EAAE,OAAO,CAAC,IAAI;gBAC1B,QAAQ,EAAE,IAAA,aAAQ,GAAE;aACrB;YACD,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe;gBAChD,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe;oBAC3C,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY;oBACtC,CAAC,CAAC,SAAS;gBACb,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;aAChF;SACF,CAAA;QAED,OAAO,cAAc,CAAA;IACvB,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -9,7 +9,7 @@ import { SubscriptionTransport } from './abstract/subscription';
9
9
  * Helper struct type that will be used to pass types to the generic parameters of a Transport.
10
10
  * Extends the common TransportGenerics, adding Provider specific types for this Batch endpoint.
11
11
  */
12
- type HttpTransportGenerics = TransportGenerics & {
12
+ export type HttpTransportGenerics = TransportGenerics & {
13
13
  /**
14
14
  * Type details for any provider specific interfaces.
15
15
  */
@@ -92,4 +92,3 @@ export declare class HttpTransport<T extends HttpTransportGenerics> extends Subs
92
92
  private handleRequest;
93
93
  private makeRequest;
94
94
  }
95
- export {};
@@ -1,5 +1,5 @@
1
1
  import { AxiosRequestConfig } from 'axios';
2
- import EventSource from 'eventsource';
2
+ import { EventSource, EventSourceInit } from 'eventsource';
3
3
  import { EndpointContext } from '../adapter';
4
4
  import { Requester } from '../util/requester';
5
5
  import { ProviderResult } from '../util/types';
@@ -8,7 +8,7 @@ import { TransportDependencies, TransportGenerics } from './';
8
8
  import { StreamingTransport, SubscriptionDeltas } from './abstract/streaming';
9
9
  export interface SSEConfig {
10
10
  url: string;
11
- eventSourceInitDict?: EventSource.EventSourceInitDict;
11
+ eventSourceInitDict?: EventSourceInit;
12
12
  }
13
13
  /**
14
14
  * Helper struct type that will be used to pass types to the generic parameters of a Transport.
package/transports/sse.js CHANGED
@@ -1,10 +1,7 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.SseTransport = void 0;
7
- const eventsource_1 = __importDefault(require("eventsource"));
4
+ const eventsource_1 = require("eventsource");
8
5
  const cache_1 = require("../cache");
9
6
  const util_1 = require("../util");
10
7
  const streaming_1 = require("./abstract/streaming");
@@ -18,7 +15,7 @@ class SseTransport extends streaming_1.StreamingTransport {
18
15
  constructor(config) {
19
16
  super();
20
17
  this.config = config;
21
- this.EventSource = eventsource_1.default;
18
+ this.EventSource = eventsource_1.EventSource;
22
19
  this.timeOfLastReq = 0;
23
20
  }
24
21
  getSubscriptionTtlFromConfig(adapterSettings) {
@@ -1 +1 @@
1
- {"version":3,"file":"sse.js","sourceRoot":"","sources":["../../../src/transports/sse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sse.js","sourceRoot":"","sources":["../../../src/transports/sse.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ const metrics_1 = require("../metrics");
10
10
  const util_1 = require("../util");
11
11
  const streaming_1 = require("./abstract/streaming");
12
12
  const metrics_2 = require("./metrics");
13
+ // Explicit initial grace (1s) after open for web socket; after that, rely on "time since last message"
14
+ const INITIAL_WS_GRACE_MS = 1000;
13
15
  const logger = (0, util_1.makeLogger)('WebSocketTransport');
14
16
  class WebSocketClassProvider {
15
17
  static set(ctor) {
@@ -39,7 +41,9 @@ class WebSocketTransport extends streaming_1.StreamingTransport {
39
41
  return adapterSettings.WS_SUBSCRIPTION_TTL;
40
42
  }
41
43
  connectionClosed() {
42
- return !this.wsConnection || this.wsConnection.readyState === ws_1.default.CLOSED;
44
+ return (!this.wsConnection ||
45
+ this.wsConnection.readyState === ws_1.default.CLOSED ||
46
+ this.wsConnection.readyState === ws_1.default.CLOSING);
43
47
  }
44
48
  serializeMessage(payload) {
45
49
  return typeof payload === 'string' ? payload : JSON.stringify(payload);
@@ -60,6 +64,7 @@ class WebSocketTransport extends streaming_1.StreamingTransport {
60
64
  },
61
65
  // Called when any message is received by the open connection
62
66
  message: async (event) => {
67
+ this.lastMessageReceivedAt = Date.now();
63
68
  const parsed = this.deserializeMessage(event.data);
64
69
  (0, util_1.censorLogs)(() => logger.trace(`Got ws message: ${event.data}`));
65
70
  const providerDataReceived = Date.now();
@@ -75,8 +80,6 @@ class WebSocketTransport extends streaming_1.StreamingTransport {
75
80
  });
76
81
  logger.trace(`Writing ${results?.length ?? 0} responses to cache`);
77
82
  if (Array.isArray(results) && results.length > 0) {
78
- // Updating the last message received time here, to only care about messages we use
79
- this.lastMessageReceivedAt = Date.now();
80
83
  await this.responseCache.write(this.name, results);
81
84
  }
82
85
  // Do this after writing so we get the values to the cache ASAP
@@ -172,18 +175,10 @@ class WebSocketTransport extends streaming_1.StreamingTransport {
172
175
  const now = Date.now();
173
176
  const timeSinceLastMessage = Math.max(0, now - this.lastMessageReceivedAt);
174
177
  const timeSinceConnectionOpened = Math.max(0, now - this.connectionOpenedAt);
175
- const timeSinceLastActivity = Math.min(timeSinceLastMessage, timeSinceConnectionOpened);
176
- const connectionUnresponsive = timeSinceLastActivity > 0 &&
177
- timeSinceLastActivity > context.adapterSettings.WS_SUBSCRIPTION_UNRESPONSIVE_TTL;
178
+ const connectionUnresponsive = timeSinceConnectionOpened >= INITIAL_WS_GRACE_MS &&
179
+ timeSinceLastMessage > context.adapterSettings.WS_SUBSCRIPTION_UNRESPONSIVE_TTL;
178
180
  let connectionClosed = this.connectionClosed();
179
- logger.trace(`WS conn staleness info:
180
- now: ${now} |
181
- timeSinceLastMessage: ${timeSinceLastMessage} |
182
- timeSinceConnectionOpened: ${timeSinceConnectionOpened} |
183
- timeSinceLastActivity: ${timeSinceLastActivity} |
184
- subscriptionUnresponsiveTtl: ${context.adapterSettings.WS_SUBSCRIPTION_UNRESPONSIVE_TTL} |
185
- connectionUnresponsive: ${connectionUnresponsive} |
186
- `);
181
+ logger.trace(`WS conn staleness info: now: ${now} | timeSinceLastMessage: ${timeSinceLastMessage} | timeSinceConnectionOpened: ${timeSinceConnectionOpened} | subscriptionUnresponsiveTtl: ${context.adapterSettings.WS_SUBSCRIPTION_UNRESPONSIVE_TTL} | connectionUnresponsive: ${connectionUnresponsive} |`);
187
182
  // Check if we should close the current connection
188
183
  if (!connectionClosed && (urlChanged || connectionUnresponsive)) {
189
184
  if (urlChanged) {
@@ -195,11 +190,16 @@ class WebSocketTransport extends streaming_1.StreamingTransport {
195
190
  // Check if connection was opened very recently; if so, wait a bit before continuing.
196
191
  // This is so if we just opened the connection and are waiting to receive some messages,
197
192
  // we don't close is immediately after and miss the chance to receive them
198
- if (timeSinceConnectionOpened < 1000) {
193
+ if (timeSinceConnectionOpened < INITIAL_WS_GRACE_MS) {
199
194
  logger.info(`Connection was opened only ${timeSinceConnectionOpened}ms ago, waiting for that to get to 1s before continuing...`);
200
- await (0, util_1.sleep)(1000 - timeSinceConnectionOpened);
195
+ await (0, util_1.sleep)(INITIAL_WS_GRACE_MS - timeSinceConnectionOpened);
196
+ }
197
+ if (this.wsConnection && this.wsConnection.readyState !== ws_1.default.CLOSED) {
198
+ const old = this.wsConnection;
199
+ // Prevent any further sends/reads via this reference
200
+ this.wsConnection = undefined;
201
+ await waitForGracefulClose(old, 1500);
201
202
  }
202
- this.wsConnection?.close(1000);
203
203
  connectionClosed = true;
204
204
  if (subscriptions.desired.length) {
205
205
  (0, util_1.censorLogs)(() => logger.trace(`Connection will be reopened and will subscribe to new and resubscribe to existing: ${JSON.stringify(subscriptions.desired)}`));
@@ -297,4 +297,40 @@ class WebsocketReverseMappingTransport extends WebSocketTransport {
297
297
  }
298
298
  }
299
299
  exports.WebsocketReverseMappingTransport = WebsocketReverseMappingTransport;
300
+ /**
301
+ * Waits for a WebSocket connection to close gracefully.
302
+ *
303
+ * @param ws - The WebSocket instance (from the `ws` package).
304
+ * @param gracefulMs - Max time in milliseconds to wait for a graceful close before terminating. Defaults to 1500 ms.
305
+ * @returns A promise that resolves when the socket has closed or been terminated.
306
+ */
307
+ async function waitForGracefulClose(ws, gracefulMs = 1500) {
308
+ if (!ws || ws.readyState === ws_1.default.CLOSED) {
309
+ return;
310
+ }
311
+ const closed = new Promise((resolve) => {
312
+ ws.once('close', resolve);
313
+ });
314
+ try {
315
+ ws.close(1000);
316
+ }
317
+ catch (err) {
318
+ logger.debug(`ws.close threw: ${err.message}`);
319
+ }
320
+ try {
321
+ await Promise.race([closed, (0, util_1.sleep)(gracefulMs)]);
322
+ }
323
+ catch (err) {
324
+ logger.debug(`waiting for close failed: ${err.message}`);
325
+ }
326
+ const state = ws.readyState;
327
+ if (state !== ws_1.default.CLOSED) {
328
+ try {
329
+ ws.terminate();
330
+ }
331
+ catch (err) {
332
+ logger.debug(`ws.terminate threw: ${err.message}`);
333
+ }
334
+ }
335
+ }
300
336
  //# sourceMappingURL=websocket.js.map