@reclaimprotocol/attestor-core 4.0.3 → 5.0.1-beta.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 (249) hide show
  1. package/LICENSE +660 -660
  2. package/README.md +1 -2
  3. package/package.json +72 -60
  4. package/lib/avs/abis/avsDirectoryABI.d.ts +0 -60
  5. package/lib/avs/abis/avsDirectoryABI.js +0 -344
  6. package/lib/avs/abis/delegationABI.d.ts +0 -126
  7. package/lib/avs/abis/delegationABI.js +0 -5
  8. package/lib/avs/abis/registryABI.d.ts +0 -136
  9. package/lib/avs/abis/registryABI.js +0 -729
  10. package/lib/avs/client/create-claim-on-avs.d.ts +0 -12
  11. package/lib/avs/client/create-claim-on-avs.js +0 -147
  12. package/lib/avs/config.d.ts +0 -7
  13. package/lib/avs/config.js +0 -24
  14. package/lib/avs/contracts/ReclaimServiceManager.d.ts +0 -697
  15. package/lib/avs/contracts/ReclaimServiceManager.js +0 -3
  16. package/lib/avs/contracts/common.d.ts +0 -21
  17. package/lib/avs/contracts/common.js +0 -3
  18. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.d.ts +0 -888
  19. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +0 -1174
  20. package/lib/avs/contracts/factories/index.d.ts +0 -1
  21. package/lib/avs/contracts/factories/index.js +0 -9
  22. package/lib/avs/contracts/index.d.ts +0 -3
  23. package/lib/avs/contracts/index.js +0 -40
  24. package/lib/avs/tests/test.operator.d.ts +0 -11
  25. package/lib/avs/tests/test.operator.js +0 -313
  26. package/lib/avs/tests/utils.d.ts +0 -2
  27. package/lib/avs/tests/utils.js +0 -50
  28. package/lib/avs/types/index.d.ts +0 -55
  29. package/lib/avs/types/index.js +0 -3
  30. package/lib/avs/utils/contracts.d.ts +0 -21
  31. package/lib/avs/utils/contracts.js +0 -38
  32. package/lib/avs/utils/register.d.ts +0 -27
  33. package/lib/avs/utils/register.js +0 -82
  34. package/lib/avs/utils/tasks.d.ts +0 -22
  35. package/lib/avs/utils/tasks.js +0 -45
  36. package/lib/client/create-claim.d.ts +0 -5
  37. package/lib/client/create-claim.js +0 -424
  38. package/lib/client/index.d.ts +0 -3
  39. package/lib/client/index.js +0 -20
  40. package/lib/client/tunnels/make-rpc-tcp-tunnel.d.ts +0 -16
  41. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +0 -60
  42. package/lib/client/tunnels/make-rpc-tls-tunnel.d.ts +0 -25
  43. package/lib/client/tunnels/make-rpc-tls-tunnel.js +0 -135
  44. package/lib/client/utils/attestor-pool.d.ts +0 -6
  45. package/lib/client/utils/attestor-pool.js +0 -28
  46. package/lib/client/utils/client-socket.d.ts +0 -11
  47. package/lib/client/utils/client-socket.js +0 -100
  48. package/lib/client/utils/message-handler.d.ts +0 -4
  49. package/lib/client/utils/message-handler.js +0 -94
  50. package/lib/config/index.d.ts +0 -28
  51. package/lib/config/index.js +0 -39
  52. package/lib/index.d.ts +0 -10
  53. package/lib/index.js +0 -50
  54. package/lib/mechain/abis/governanceABI.d.ts +0 -50
  55. package/lib/mechain/abis/governanceABI.js +0 -462
  56. package/lib/mechain/abis/taskABI.d.ts +0 -157
  57. package/lib/mechain/abis/taskABI.js +0 -513
  58. package/lib/mechain/client/create-claim-on-mechain.d.ts +0 -10
  59. package/lib/mechain/client/create-claim-on-mechain.js +0 -32
  60. package/lib/mechain/client/index.d.ts +0 -1
  61. package/lib/mechain/client/index.js +0 -18
  62. package/lib/mechain/constants/index.d.ts +0 -3
  63. package/lib/mechain/constants/index.js +0 -7
  64. package/lib/mechain/index.d.ts +0 -2
  65. package/lib/mechain/index.js +0 -19
  66. package/lib/mechain/types/index.d.ts +0 -23
  67. package/lib/mechain/types/index.js +0 -3
  68. package/lib/proto/api.d.ts +0 -508
  69. package/lib/proto/api.js +0 -3700
  70. package/lib/providers/http/index.d.ts +0 -3
  71. package/lib/providers/http/index.js +0 -613
  72. package/lib/providers/http/utils.d.ts +0 -74
  73. package/lib/providers/http/utils.js +0 -360
  74. package/lib/providers/index.d.ts +0 -4
  75. package/lib/providers/index.js +0 -11
  76. package/lib/scripts/check-avs-registration.d.ts +0 -1
  77. package/lib/scripts/check-avs-registration.js +0 -29
  78. package/lib/scripts/generate-provider-types.d.ts +0 -5
  79. package/lib/scripts/generate-provider-types.js +0 -82
  80. package/lib/scripts/generate-receipt.d.ts +0 -9
  81. package/lib/scripts/generate-receipt.js +0 -90
  82. package/lib/scripts/generate-toprf-keys.d.ts +0 -1
  83. package/lib/scripts/generate-toprf-keys.js +0 -23
  84. package/lib/scripts/register-avs-operator.d.ts +0 -1
  85. package/lib/scripts/register-avs-operator.js +0 -7
  86. package/lib/scripts/start-server.d.ts +0 -1
  87. package/lib/scripts/start-server.js +0 -13
  88. package/lib/scripts/update-avs-metadata.d.ts +0 -1
  89. package/lib/scripts/update-avs-metadata.js +0 -22
  90. package/lib/scripts/utils.d.ts +0 -1
  91. package/lib/scripts/utils.js +0 -11
  92. package/lib/scripts/verify-root-ca.d.ts +0 -1
  93. package/lib/scripts/verify-root-ca.js +0 -51
  94. package/lib/scripts/whitelist-operator.d.ts +0 -1
  95. package/lib/scripts/whitelist-operator.js +0 -18
  96. package/lib/server/create-server.d.ts +0 -7
  97. package/lib/server/create-server.js +0 -92
  98. package/lib/server/handlers/claimTunnel.d.ts +0 -2
  99. package/lib/server/handlers/claimTunnel.js +0 -78
  100. package/lib/server/handlers/completeClaimOnChain.d.ts +0 -2
  101. package/lib/server/handlers/completeClaimOnChain.js +0 -28
  102. package/lib/server/handlers/createClaimOnChain.d.ts +0 -2
  103. package/lib/server/handlers/createClaimOnChain.js +0 -31
  104. package/lib/server/handlers/createTaskOnMechain.d.ts +0 -2
  105. package/lib/server/handlers/createTaskOnMechain.js +0 -52
  106. package/lib/server/handlers/createTunnel.d.ts +0 -2
  107. package/lib/server/handlers/createTunnel.js +0 -101
  108. package/lib/server/handlers/disconnectTunnel.d.ts +0 -2
  109. package/lib/server/handlers/disconnectTunnel.js +0 -10
  110. package/lib/server/handlers/index.d.ts +0 -4
  111. package/lib/server/handlers/index.js +0 -22
  112. package/lib/server/handlers/init.d.ts +0 -2
  113. package/lib/server/handlers/init.js +0 -36
  114. package/lib/server/handlers/toprf.d.ts +0 -2
  115. package/lib/server/handlers/toprf.js +0 -21
  116. package/lib/server/index.d.ts +0 -4
  117. package/lib/server/index.js +0 -21
  118. package/lib/server/socket.d.ts +0 -13
  119. package/lib/server/socket.js +0 -114
  120. package/lib/server/tunnels/make-tcp-tunnel.d.ts +0 -20
  121. package/lib/server/tunnels/make-tcp-tunnel.js +0 -175
  122. package/lib/server/utils/apm.d.ts +0 -11
  123. package/lib/server/utils/apm.js +0 -43
  124. package/lib/server/utils/assert-valid-claim-request.d.ts +0 -30
  125. package/lib/server/utils/assert-valid-claim-request.js +0 -200
  126. package/lib/server/utils/config-env.d.ts +0 -1
  127. package/lib/server/utils/config-env.js +0 -7
  128. package/lib/server/utils/dns.d.ts +0 -1
  129. package/lib/server/utils/dns.js +0 -22
  130. package/lib/server/utils/generics.d.ts +0 -22
  131. package/lib/server/utils/generics.js +0 -59
  132. package/lib/server/utils/iso.d.ts +0 -1
  133. package/lib/server/utils/iso.js +0 -260
  134. package/lib/server/utils/keep-alive.d.ts +0 -7
  135. package/lib/server/utils/keep-alive.js +0 -42
  136. package/lib/server/utils/process-handshake.d.ts +0 -13
  137. package/lib/server/utils/process-handshake.js +0 -191
  138. package/lib/tests/describe-with-server.d.ts +0 -20
  139. package/lib/tests/describe-with-server.js +0 -64
  140. package/lib/tests/mock-provider-server.d.ts +0 -13
  141. package/lib/tests/mock-provider-server.js +0 -65
  142. package/lib/tests/mocks.d.ts +0 -4
  143. package/lib/tests/mocks.js +0 -23
  144. package/lib/tests/test.auth.d.ts +0 -1
  145. package/lib/tests/test.auth.js +0 -75
  146. package/lib/tests/test.bgp-listener.d.ts +0 -1
  147. package/lib/tests/test.bgp-listener.js +0 -169
  148. package/lib/tests/test.claim-creation.d.ts +0 -1
  149. package/lib/tests/test.claim-creation.js +0 -280
  150. package/lib/tests/test.http-parser.d.ts +0 -1
  151. package/lib/tests/test.http-parser.js +0 -120
  152. package/lib/tests/test.http-provider-utils.d.ts +0 -1
  153. package/lib/tests/test.http-provider-utils.js +0 -2416
  154. package/lib/tests/test.http-provider.d.ts +0 -1
  155. package/lib/tests/test.http-provider.js +0 -114
  156. package/lib/tests/test.rpc-communication.d.ts +0 -1
  157. package/lib/tests/test.rpc-communication.js +0 -64
  158. package/lib/tests/test.rpc-tunnel.d.ts +0 -1
  159. package/lib/tests/test.rpc-tunnel.js +0 -172
  160. package/lib/tests/test.signatures.d.ts +0 -1
  161. package/lib/tests/test.signatures.js +0 -24
  162. package/lib/tests/test.tcp-tunnel.d.ts +0 -1
  163. package/lib/tests/test.tcp-tunnel.js +0 -64
  164. package/lib/tests/test.zk.d.ts +0 -1
  165. package/lib/tests/test.zk.js +0 -337
  166. package/lib/tests/utils.d.ts +0 -18
  167. package/lib/tests/utils.js +0 -64
  168. package/lib/types/bgp.d.ts +0 -11
  169. package/lib/types/bgp.js +0 -3
  170. package/lib/types/claims.d.ts +0 -73
  171. package/lib/types/claims.js +0 -3
  172. package/lib/types/client.d.ts +0 -163
  173. package/lib/types/client.js +0 -3
  174. package/lib/types/general.d.ts +0 -51
  175. package/lib/types/general.js +0 -3
  176. package/lib/types/handlers.d.ts +0 -10
  177. package/lib/types/handlers.js +0 -3
  178. package/lib/types/index.d.ts +0 -10
  179. package/lib/types/index.js +0 -27
  180. package/lib/types/providers.d.ts +0 -150
  181. package/lib/types/providers.gen.d.ts +0 -429
  182. package/lib/types/providers.gen.js +0 -14
  183. package/lib/types/providers.js +0 -3
  184. package/lib/types/rpc.d.ts +0 -35
  185. package/lib/types/rpc.js +0 -3
  186. package/lib/types/signatures.d.ts +0 -28
  187. package/lib/types/signatures.js +0 -3
  188. package/lib/types/tunnel.d.ts +0 -18
  189. package/lib/types/tunnel.js +0 -3
  190. package/lib/types/zk.d.ts +0 -23
  191. package/lib/types/zk.js +0 -3
  192. package/lib/utils/atomic-operations.d.ts +0 -24
  193. package/lib/utils/atomic-operations.js +0 -65
  194. package/lib/utils/auth.d.ts +0 -7
  195. package/lib/utils/auth.js +0 -64
  196. package/lib/utils/b64-json.d.ts +0 -2
  197. package/lib/utils/b64-json.js +0 -23
  198. package/lib/utils/benchmark.d.ts +0 -1
  199. package/lib/utils/benchmark.js +0 -70
  200. package/lib/utils/bgp-listener.d.ts +0 -7
  201. package/lib/utils/bgp-listener.js +0 -126
  202. package/lib/utils/claims.d.ts +0 -33
  203. package/lib/utils/claims.js +0 -112
  204. package/lib/utils/connection-state-machine.d.ts +0 -43
  205. package/lib/utils/connection-state-machine.js +0 -129
  206. package/lib/utils/env.d.ts +0 -3
  207. package/lib/utils/env.js +0 -20
  208. package/lib/utils/error.d.ts +0 -27
  209. package/lib/utils/error.js +0 -43
  210. package/lib/utils/generics.d.ts +0 -112
  211. package/lib/utils/generics.js +0 -348
  212. package/lib/utils/http-parser.d.ts +0 -59
  213. package/lib/utils/http-parser.js +0 -252
  214. package/lib/utils/index.d.ts +0 -12
  215. package/lib/utils/index.js +0 -29
  216. package/lib/utils/logger.d.ts +0 -13
  217. package/lib/utils/logger.js +0 -100
  218. package/lib/utils/prepare-packets.d.ts +0 -16
  219. package/lib/utils/prepare-packets.js +0 -61
  220. package/lib/utils/redactions.d.ts +0 -54
  221. package/lib/utils/redactions.js +0 -148
  222. package/lib/utils/resource-monitor.d.ts +0 -61
  223. package/lib/utils/resource-monitor.js +0 -107
  224. package/lib/utils/retries.d.ts +0 -12
  225. package/lib/utils/retries.js +0 -28
  226. package/lib/utils/signatures/eth.d.ts +0 -2
  227. package/lib/utils/signatures/eth.js +0 -33
  228. package/lib/utils/signatures/index.d.ts +0 -5
  229. package/lib/utils/signatures/index.js +0 -11
  230. package/lib/utils/socket-base.d.ts +0 -22
  231. package/lib/utils/socket-base.js +0 -95
  232. package/lib/utils/tls.d.ts +0 -2
  233. package/lib/utils/tls.js +0 -32
  234. package/lib/utils/validation.d.ts +0 -2
  235. package/lib/utils/validation.js +0 -46
  236. package/lib/utils/ws.d.ts +0 -12
  237. package/lib/utils/ws.js +0 -38
  238. package/lib/utils/zk.d.ts +0 -55
  239. package/lib/utils/zk.js +0 -444
  240. package/lib/window-rpc/index.d.ts +0 -3
  241. package/lib/window-rpc/index.js +0 -20
  242. package/lib/window-rpc/setup-window-rpc.d.ts +0 -5
  243. package/lib/window-rpc/setup-window-rpc.js +0 -291
  244. package/lib/window-rpc/types.d.ts +0 -192
  245. package/lib/window-rpc/types.js +0 -3
  246. package/lib/window-rpc/utils.d.ts +0 -14
  247. package/lib/window-rpc/utils.js +0 -102
  248. package/lib/window-rpc/window-rpc-zk.d.ts +0 -15
  249. package/lib/window-rpc/window-rpc-zk.js +0 -85
@@ -1,101 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createTunnel = void 0;
4
- const make_tcp_tunnel_1 = require("../../server/tunnels/make-tcp-tunnel");
5
- const apm_1 = require("../../server/utils/apm");
6
- const dns_1 = require("../../server/utils/dns");
7
- const utils_1 = require("../../utils");
8
- const createTunnel = async ({ id, ...opts }, { tx, logger, client }) => {
9
- var _a, _b, _c;
10
- if (client.tunnels[id]) {
11
- throw utils_1.AttestorError.badRequest(`Tunnel "${id}" already exists`);
12
- }
13
- const allowedHosts = (_c = (_b = (_a = client.metadata) === null || _a === void 0 ? void 0 : _a.auth) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.hostWhitelist;
14
- if ((allowedHosts === null || allowedHosts === void 0 ? void 0 : allowedHosts.length) && !allowedHosts.includes(opts.host)) {
15
- throw utils_1.AttestorError.badRequest(`Host "${opts.host}" not allowed by auth request`);
16
- }
17
- let cancelBgp;
18
- const apm = (0, apm_1.getApm)();
19
- const sessionTx = apm === null || apm === void 0 ? void 0 : apm.startTransaction('tunnelConnection', { childOf: tx });
20
- sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.setLabel('tunnelId', id.toString());
21
- sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.setLabel('hostPort', `${opts.host}:${opts.port}`);
22
- sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.setLabel('geoLocation', opts.geoLocation);
23
- try {
24
- const tunnel = await (0, make_tcp_tunnel_1.makeTcpTunnel)({
25
- ...opts,
26
- logger,
27
- onMessage(message) {
28
- if (!client.isOpen) {
29
- logger.warn('client is closed, dropping message');
30
- return;
31
- }
32
- void client.sendMessage({
33
- tunnelMessage: {
34
- tunnelId: id,
35
- message
36
- }
37
- });
38
- },
39
- onClose(err) {
40
- cancelBgp === null || cancelBgp === void 0 ? void 0 : cancelBgp();
41
- if (err) {
42
- apm === null || apm === void 0 ? void 0 : apm.captureError(err, { parent: sessionTx });
43
- sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.setOutcome('failure');
44
- }
45
- else {
46
- sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.setOutcome('success');
47
- }
48
- sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.end();
49
- if (!client.isOpen) {
50
- return;
51
- }
52
- client.sendMessage({
53
- tunnelDisconnectEvent: {
54
- tunnelId: id,
55
- error: err
56
- ? utils_1.AttestorError
57
- .fromError(err)
58
- .toProto()
59
- : undefined
60
- }
61
- })
62
- .catch(err => {
63
- logger.error({ err }, 'failed to send tunnel disconnect event');
64
- });
65
- },
66
- });
67
- try {
68
- await checkForBgp(tunnel);
69
- }
70
- catch (err) {
71
- logger.warn({ err, host: opts.host }, 'failed to start BGP overlap check');
72
- }
73
- client.tunnels[id] = tunnel;
74
- return {};
75
- }
76
- catch (err) {
77
- apm === null || apm === void 0 ? void 0 : apm.captureError(err, { parent: sessionTx });
78
- sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.setOutcome('failure');
79
- sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.end();
80
- cancelBgp === null || cancelBgp === void 0 ? void 0 : cancelBgp();
81
- throw err;
82
- }
83
- async function checkForBgp(tunnel) {
84
- if (!client.bgpListener) {
85
- return;
86
- }
87
- // listen to all IPs for the host -- in case any of them
88
- // has a BGP announcement overlap, we'll close the tunnel
89
- // so the user can retry
90
- const ips = await (0, dns_1.resolveHostnames)(opts.host);
91
- cancelBgp = client.bgpListener.onOverlap(ips, (info) => {
92
- logger.warn({ info, host: opts.host }, 'BGP announcement overlap detected');
93
- // track how many times we've seen a BGP overlap
94
- sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.addLabels({ bgpOverlap: true, ...info });
95
- void (tunnel === null || tunnel === void 0 ? void 0 : tunnel.close(new utils_1.AttestorError('ERROR_BGP_ANNOUNCEMENT_OVERLAP', `BGP announcement overlap detected for ${opts.host}`)));
96
- });
97
- logger.debug({ ips }, 'checking for BGP overlap');
98
- }
99
- };
100
- exports.createTunnel = createTunnel;
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlVHVubmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZlci9oYW5kbGVycy9jcmVhdGVUdW5uZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0VBQWtFO0FBQ2xFLDhDQUE2QztBQUM3Qyw4Q0FBdUQ7QUFFdkQscUNBQXlDO0FBRWxDLE1BQU0sWUFBWSxHQUErQixLQUFLLEVBQzVELEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQ2YsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUNyQixFQUFFOztJQUNILElBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0scUJBQWEsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLGtCQUFrQixDQUFDLENBQUE7SUFDaEUsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLE1BQUEsTUFBQSxNQUFBLE1BQU0sQ0FBQyxRQUFRLDBDQUFFLElBQUksMENBQUUsSUFBSSwwQ0FBRSxhQUFhLENBQUE7SUFDL0QsSUFBRyxDQUFBLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxNQUFNLEtBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzlELE1BQU0scUJBQWEsQ0FBQyxVQUFVLENBQzdCLFNBQVMsSUFBSSxDQUFDLElBQUksK0JBQStCLENBQ2pELENBQUE7SUFDRixDQUFDO0lBRUQsSUFBSSxTQUFtQyxDQUFBO0lBRXZDLE1BQU0sR0FBRyxHQUFHLElBQUEsWUFBTSxHQUFFLENBQUE7SUFDcEIsTUFBTSxTQUFTLEdBQUcsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDNUUsU0FBUyxhQUFULFNBQVMs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
@@ -1,2 +0,0 @@
1
- import { RPCHandler } from '../../types';
2
- export declare const disconnectTunnel: RPCHandler<'disconnectTunnel'>;
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.disconnectTunnel = void 0;
4
- const disconnectTunnel = async ({ id }, { client }) => {
5
- const tunnel = client.getTunnel(id);
6
- await tunnel.close();
7
- return {};
8
- };
9
- exports.disconnectTunnel = disconnectTunnel;
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzY29ubmVjdFR1bm5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2ZXIvaGFuZGxlcnMvZGlzY29ubmVjdFR1bm5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFTyxNQUFNLGdCQUFnQixHQUFtQyxLQUFLLEVBQ3BFLEVBQUUsRUFBRSxFQUFFLEVBQ04sRUFBRSxNQUFNLEVBQUUsRUFDVCxFQUFFO0lBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNuQyxNQUFNLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUVwQixPQUFPLEVBQUUsQ0FBQTtBQUNWLENBQUMsQ0FBQTtBQVJZLFFBQUEsZ0JBQWdCLG9CQVE1QiJ9
@@ -1,4 +0,0 @@
1
- import { RPCHandler, RPCType } from '../../types';
2
- export declare const HANDLERS: {
3
- [T in RPCType]: RPCHandler<T>;
4
- };
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HANDLERS = void 0;
4
- const claimTunnel_1 = require("../../server/handlers/claimTunnel");
5
- const completeClaimOnChain_1 = require("../../server/handlers/completeClaimOnChain");
6
- const createClaimOnChain_1 = require("../../server/handlers/createClaimOnChain");
7
- const createTaskOnMechain_1 = require("../../server/handlers/createTaskOnMechain");
8
- const createTunnel_1 = require("../../server/handlers/createTunnel");
9
- const disconnectTunnel_1 = require("../../server/handlers/disconnectTunnel");
10
- const init_1 = require("../../server/handlers/init");
11
- const toprf_1 = require("../../server/handlers/toprf");
12
- exports.HANDLERS = {
13
- createTunnel: createTunnel_1.createTunnel,
14
- disconnectTunnel: disconnectTunnel_1.disconnectTunnel,
15
- claimTunnel: claimTunnel_1.claimTunnel,
16
- init: init_1.init,
17
- createClaimOnChain: createClaimOnChain_1.createClaimOnChain,
18
- completeClaimOnChain: completeClaimOnChain_1.completeClaimOnChain,
19
- toprf: toprf_1.toprf,
20
- createTaskOnMechain: createTaskOnMechain_1.createTaskOnMechain,
21
- };
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmVyL2hhbmRsZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlFQUE2RDtBQUM3RCxtRkFBK0U7QUFDL0UsK0VBQTJFO0FBQzNFLGlGQUE2RTtBQUM3RSxtRUFBK0Q7QUFDL0QsMkVBQXVFO0FBQ3ZFLG1EQUErQztBQUMvQyxxREFBaUQ7QUFHcEMsUUFBQSxRQUFRLEdBQXNDO0lBQzFELFlBQVksRUFBWiwyQkFBWTtJQUNaLGdCQUFnQixFQUFoQixtQ0FBZ0I7SUFDaEIsV0FBVyxFQUFYLHlCQUFXO0lBQ1gsSUFBSSxFQUFKLFdBQUk7SUFDSixrQkFBa0IsRUFBbEIsdUNBQWtCO0lBQ2xCLG9CQUFvQixFQUFwQiwyQ0FBb0I7SUFDcEIsS0FBSyxFQUFMLGFBQUs7SUFDTCxtQkFBbUIsRUFBbkIseUNBQW1CO0NBQ25CLENBQUEifQ==
@@ -1,2 +0,0 @@
1
- import { RPCHandler } from '../../types';
2
- export declare const init: RPCHandler<'init'>;
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.init = void 0;
4
- const ethers_1 = require("ethers");
5
- const utils_1 = require("../../utils");
6
- const auth_1 = require("../../utils/auth");
7
- const env_1 = require("../../utils/env");
8
- const signatures_1 = require("../../utils/signatures");
9
- const TOPRF_PUBLIC_KEY = (0, env_1.getEnvVariable)('TOPRF_PUBLIC_KEY');
10
- const init = async (initRequest, { client }) => {
11
- var _a;
12
- if (client.isInitialised) {
13
- throw utils_1.AttestorError.badRequest('Client already initialised');
14
- }
15
- if (!signatures_1.SIGNATURES[initRequest.signatureType]) {
16
- throw utils_1.AttestorError.badRequest('Unsupported signature type');
17
- }
18
- if (initRequest.clientVersion <= 0) {
19
- throw utils_1.AttestorError.badRequest('Unsupported client version');
20
- }
21
- await (0, auth_1.assertValidAuthRequest)(initRequest.auth, initRequest.signatureType);
22
- if ((_a = initRequest.auth) === null || _a === void 0 ? void 0 : _a.data) {
23
- client.logger = client.logger.child({
24
- userId: initRequest.auth.data.id
25
- });
26
- }
27
- client.metadata = initRequest;
28
- client.isInitialised = true;
29
- return {
30
- toprfPublicKey: TOPRF_PUBLIC_KEY
31
- ? ethers_1.ethers.utils.arrayify(TOPRF_PUBLIC_KEY)
32
- : new Uint8Array()
33
- };
34
- };
35
- exports.init = init;
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2ZXIvaGFuZGxlcnMvaW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBK0I7QUFFL0IscUNBQXlDO0FBQ3pDLHlDQUF1RDtBQUN2RCx1Q0FBOEM7QUFDOUMscURBQWlEO0FBRWpELE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSxvQkFBYyxFQUFDLGtCQUFrQixDQUFDLENBQUE7QUFFcEQsTUFBTSxJQUFJLEdBQXVCLEtBQUssRUFDNUMsV0FBVyxFQUNYLEVBQUUsTUFBTSxFQUFFLEVBQ1QsRUFBRTs7SUFDSCxJQUFHLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QixNQUFNLHFCQUFhLENBQUMsVUFBVSxDQUFDLDRCQUE0QixDQUFDLENBQUE7SUFDN0QsQ0FBQztJQUVELElBQUcsQ0FBQyx1QkFBVSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBQzNDLE1BQU0scUJBQWEsQ0FBQyxVQUFVLENBQUMsNEJBQTRCLENBQUMsQ0FBQTtJQUM3RCxDQUFDO0lBRUQsSUFBRyxXQUFXLENBQUMsYUFBYSxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ25DLE1BQU0scUJBQWEsQ0FBQyxVQUFVLENBQUMsNEJBQTRCLENBQUMsQ0FBQTtJQUM3RCxDQUFDO0lBRUQsTUFBTSxJQUFBLDZCQUFzQixFQUMzQixXQUFXLENBQUMsSUFBSSxFQUNoQixXQUFXLENBQUMsYUFBYSxDQUN6QixDQUFBO0lBRUQsSUFBRyxNQUFBLFdBQVcsQ0FBQyxJQUFJLDBDQUFFLElBQUksRUFBRSxDQUFDO1FBQzNCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDbkMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7U0FDaEMsQ0FBQyxDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFBO0lBQzdCLE1BQU0sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFBO0lBRTNCLE9BQU87UUFDTixjQUFjLEVBQUUsZ0JBQWdCO1lBQy9CLENBQUMsQ0FBQyxlQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztZQUN6QyxDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUU7S0FDbkIsQ0FBQTtBQUNGLENBQUMsQ0FBQTtBQW5DWSxRQUFBLElBQUksUUFtQ2hCIn0=
@@ -1,2 +0,0 @@
1
- import { RPCHandler } from '../../types';
2
- export declare const toprf: RPCHandler<'toprf'>;
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toprf = void 0;
4
- const ethers_1 = require("ethers");
5
- const utils_1 = require("../../utils");
6
- const env_1 = require("../../utils/env");
7
- const toprf = async ({ maskedData, engine }, { logger }) => {
8
- const PRIVATE_KEY_STR = (0, env_1.getEnvVariable)('TOPRF_SHARE_PRIVATE_KEY');
9
- const PUBLIC_KEY_STR = (0, env_1.getEnvVariable)('TOPRF_SHARE_PUBLIC_KEY');
10
- if (!PRIVATE_KEY_STR || !PUBLIC_KEY_STR) {
11
- throw new Error('private/public keys not set. Cannot execute OPRF');
12
- }
13
- const PRIVATE_KEY = ethers_1.ethers.utils.arrayify(PRIVATE_KEY_STR);
14
- const PUBLIC_KEY = ethers_1.ethers.utils.arrayify(PUBLIC_KEY_STR);
15
- const engineStr = (0, utils_1.getEngineString)(engine);
16
- const operator = (0, utils_1.makeDefaultOPRFOperator)('chacha20', engineStr, logger);
17
- const res = await operator.evaluateOPRF(PRIVATE_KEY, maskedData);
18
- return { ...res, publicKeyShare: PUBLIC_KEY };
19
- };
20
- exports.toprf = toprf;
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wcmYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmVyL2hhbmRsZXJzL3RvcHJmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUErQjtBQUUvQixxQ0FBb0U7QUFDcEUsdUNBQThDO0FBRXZDLE1BQU0sS0FBSyxHQUF3QixLQUFLLEVBQzlDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxFQUN0QixFQUFFLE1BQU0sRUFBRSxFQUNULEVBQUU7SUFDSCxNQUFNLGVBQWUsR0FBRyxJQUFBLG9CQUFjLEVBQUMseUJBQXlCLENBQUMsQ0FBQTtJQUNqRSxNQUFNLGNBQWMsR0FBRyxJQUFBLG9CQUFjLEVBQUMsd0JBQXdCLENBQUMsQ0FBQTtJQUMvRCxJQUFHLENBQUMsZUFBZSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFBO0lBQ3BFLENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxlQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUMxRCxNQUFNLFVBQVUsR0FBRyxlQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUV4RCxNQUFNLFNBQVMsR0FBRyxJQUFBLHVCQUFlLEVBQUMsTUFBTSxDQUFDLENBQUE7SUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBQSwrQkFBdUIsRUFBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ3ZFLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFFaEUsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsQ0FBQTtBQUM5QyxDQUFDLENBQUE7QUFsQlksUUFBQSxLQUFLLFNBa0JqQiJ9
@@ -1,4 +0,0 @@
1
- export * from './utils/config-env';
2
- export * from './create-server';
3
- export * from './tunnels/make-tcp-tunnel';
4
- export * from './utils/assert-valid-claim-request';
@@ -1,21 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./utils/config-env"), exports);
18
- __exportStar(require("./create-server"), exports);
19
- __exportStar(require("./tunnels/make-tcp-tunnel"), exports);
20
- __exportStar(require("./utils/assert-valid-claim-request"), exports);
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBa0M7QUFDbEMsa0RBQStCO0FBQy9CLDREQUF5QztBQUN6QyxxRUFBa0QifQ==
@@ -1,13 +0,0 @@
1
- import { TunnelMessage } from '../proto/api';
2
- import { AcceptNewConnectionOpts, BGPListener, IAttestorServerSocket } from '../types';
3
- import { AttestorSocket } from '../utils/socket-base';
4
- import { WebSocket as WS } from 'ws';
5
- export declare class AttestorServerSocket extends AttestorSocket implements IAttestorServerSocket {
6
- sessionId: number;
7
- bgpListener: BGPListener | undefined;
8
- tunnels: IAttestorServerSocket['tunnels'];
9
- private constructor();
10
- getTunnel(tunnelId: number): import("../types").Tunnel<import("../types").TCPSocketProperties>;
11
- removeTunnel(tunnelId: TunnelMessage['tunnelId']): void;
12
- static acceptConnection(socket: WS, { req, logger, bgpListener }: AcceptNewConnectionOpts): Promise<AttestorServerSocket | undefined>;
13
- }
@@ -1,114 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AttestorServerSocket = void 0;
4
- const message_handler_1 = require("../client/utils/message-handler");
5
- const config_1 = require("../config");
6
- const handlers_1 = require("../server/handlers");
7
- const apm_1 = require("../server/utils/apm");
8
- const generics_1 = require("../server/utils/generics");
9
- const utils_1 = require("../utils");
10
- const socket_base_1 = require("../utils/socket-base");
11
- const util_1 = require("util");
12
- class AttestorServerSocket extends socket_base_1.AttestorSocket {
13
- constructor(socket, sessionId, bgpListener, logger) {
14
- // @ts-ignore
15
- super(socket, {}, logger);
16
- this.sessionId = sessionId;
17
- this.bgpListener = bgpListener;
18
- this.tunnels = {};
19
- // handle RPC requests
20
- this.addEventListener('rpc-request', handleRpcRequest.bind(this));
21
- // forward packets to the appropriate tunnel
22
- this.addEventListener('tunnel-message', handleTunnelMessage.bind(this));
23
- // close all tunnels when the connection is terminated
24
- // since this tunnel can no longer be written to
25
- this.addEventListener('connection-terminated', () => {
26
- for (const tunnelId in this.tunnels) {
27
- const tunnel = this.tunnels[tunnelId];
28
- void tunnel.close(new Error('WS session terminated'));
29
- }
30
- });
31
- }
32
- getTunnel(tunnelId) {
33
- const tunnel = this.tunnels[tunnelId];
34
- if (!tunnel) {
35
- throw new utils_1.AttestorError('ERROR_NOT_FOUND', `Tunnel "${tunnelId}" not found`);
36
- }
37
- return tunnel;
38
- }
39
- removeTunnel(tunnelId) {
40
- delete this.tunnels[tunnelId];
41
- }
42
- static async acceptConnection(socket, { req, logger, bgpListener }) {
43
- // promisify ws.send -- so the sendMessage method correctly
44
- // awaits the send operation
45
- const bindSend = socket.send.bind(socket);
46
- socket.send = (0, util_1.promisify)(bindSend);
47
- const sessionId = (0, utils_1.generateSessionId)();
48
- logger = logger.child({ sessionId });
49
- const client = new AttestorServerSocket(socket, sessionId, bgpListener, logger);
50
- try {
51
- const initMsgs = (0, generics_1.getInitialMessagesFromQuery)(req);
52
- logger.trace({ initMsgs: initMsgs.length }, 'new connection, validating...');
53
- for (const msg of initMsgs) {
54
- await message_handler_1.handleMessage.call(client, msg);
55
- }
56
- logger.debug('connection accepted');
57
- }
58
- catch (err) {
59
- logger.error({ err }, 'error in new connection');
60
- if (client.isOpen) {
61
- await client.terminateConnection(err instanceof utils_1.AttestorError
62
- ? err
63
- : utils_1.AttestorError.badRequest(err.message));
64
- }
65
- return;
66
- }
67
- return client;
68
- }
69
- }
70
- exports.AttestorServerSocket = AttestorServerSocket;
71
- async function handleTunnelMessage({ data: { tunnelId, message } }) {
72
- var _a;
73
- try {
74
- const tunnel = this.getTunnel(tunnelId);
75
- await tunnel.write(message);
76
- }
77
- catch (err) {
78
- (_a = this.logger) === null || _a === void 0 ? void 0 : _a.error({ err, tunnelId }, 'error writing to tunnel');
79
- }
80
- }
81
- async function handleRpcRequest({ data: { data, requestId, respond, type } }) {
82
- var _a, _b;
83
- const logger = this.logger.child({ rpc: type, requestId });
84
- const apm = (0, apm_1.getApm)();
85
- const tx = apm === null || apm === void 0 ? void 0 : apm.startTransaction(type);
86
- tx === null || tx === void 0 ? void 0 : tx.setLabel('requestId', requestId);
87
- tx === null || tx === void 0 ? void 0 : tx.setLabel('sessionId', this.sessionId.toString());
88
- const userId = (_b = (_a = this.metadata.auth) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.id;
89
- if (userId) {
90
- tx === null || tx === void 0 ? void 0 : tx.setLabel('authUserId', userId);
91
- }
92
- const timeout = setTimeout(() => {
93
- logger.warn({ type, requestId }, 'RPC took too long to respond');
94
- }, config_1.DEFAULT_RPC_TIMEOUT_MS);
95
- try {
96
- logger.debug({ data }, 'handling RPC request');
97
- const handler = handlers_1.HANDLERS[type];
98
- const res = await handler(data, { client: this, logger, tx });
99
- respond(res);
100
- logger.debug({ res }, 'handled RPC request');
101
- tx === null || tx === void 0 ? void 0 : tx.setOutcome('success');
102
- }
103
- catch (err) {
104
- logger.error({ err }, 'error in RPC request');
105
- respond(utils_1.AttestorError.fromError(err));
106
- tx === null || tx === void 0 ? void 0 : tx.setOutcome('failure');
107
- apm === null || apm === void 0 ? void 0 : apm.captureError(err, { parent: tx });
108
- }
109
- finally {
110
- clearTimeout(timeout);
111
- tx === null || tx === void 0 ? void 0 : tx.end();
112
- }
113
- }
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZlci9zb2NrZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0VBQWdFO0FBQ2hFLHVDQUFtRDtBQUVuRCxrREFBOEM7QUFDOUMsOENBQTZDO0FBQzdDLHdEQUF1RTtBQUV2RSxxQ0FBNEQ7QUFDNUQsdURBQXNEO0FBQ3RELCtCQUFnQztBQUdoQyxNQUFhLG9CQUFxQixTQUFRLDRCQUFjO0lBSXZELFlBQ0MsTUFBVSxFQUNILFNBQWlCLEVBQ2pCLFdBQW9DLEVBQzNDLE1BQWM7UUFFZCxhQUFhO1FBQ2IsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFMbEIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUNqQixnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFMNUMsWUFBTyxHQUFxQyxFQUFFLENBQUE7UUFVN0Msc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7UUFDakUsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUN2RSxzREFBc0Q7UUFDdEQsZ0RBQWdEO1FBQ2hELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLEVBQUU7WUFDbkQsS0FBSSxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7Z0JBQ3JDLEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUE7WUFDdEQsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFBO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxRQUFnQjtRQUN6QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3JDLElBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxxQkFBYSxDQUN0QixpQkFBaUIsRUFDakIsV0FBVyxRQUFRLGFBQWEsQ0FDaEMsQ0FBQTtRQUNGLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQTtJQUNkLENBQUM7SUFFRCxZQUFZLENBQUMsUUFBbUM7UUFDL0MsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzlCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUM1QixNQUFVLEVBQ1YsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBMkI7UUFFckQsMkRBQTJEO1FBQzNELDRCQUE0QjtRQUM1QixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN6QyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUEsZ0JBQVMsRUFBQyxRQUFRLENBQUMsQ0FBQTtRQUVqQyxNQUFNLFNBQVMsR0FBRyxJQUFBLHlCQUFpQixHQUFFLENBQUE7UUFDckMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRXBDLE1BQU0sTUFBTSxHQUFHLElBQUksb0JBQW9CLENBQ3RDLE1BQU0sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FDdEMsQ0FBQTtRQUNELElBQUksQ0FBQztZQUNKLE1BQU0sUUFBUSxHQUFHLElBQUEsc0NBQTJCLEVBQUMsR0FBRyxDQUFDLENBQUE7WUFDakQsTUFBTSxDQUFDLEtBQUssQ0FDWCxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQzdCLCtCQUErQixDQUMvQixDQUFBO1lBQ0QsS0FBSSxNQUFNLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDM0IsTUFBTSwrQkFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUE7WUFDdEMsQ0FBQztZQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQTtRQUNwQyxDQUFDO1FBQUMsT0FBTSxHQUFHLEVBQUUsQ0FBQztZQUNiLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSx5QkFBeUIsQ0FBQyxDQUFBO1lBQ2hELElBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNsQixNQUFNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FDL0IsR0FBRyxZQUFZLHFCQUFhO29CQUMzQixDQUFDLENBQUMsR0FBRztvQkFDTCxDQUFDLENBQUMscUJBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUN4QyxDQUFBO1lBQ0YsQ0FBQztZQUVELE9BQU07UUFDUCxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUE7SUFDZCxDQUFDO0NBQ0Q7QUFuRkQsb0RBbUZDO0FBRUQsS0FBSyxVQUFVLG1CQUFtQixDQUVqQyxFQUFFLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBOEI7O0lBRTNELElBQUksQ0FBQztRQUNKLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDdkMsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQzVCLENBQUM7SUFBQyxPQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2IsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUUseUJBQXlCLENBQUMsQ0FBQTtJQUNqRSxDQUFDO0FBQ0YsQ0FBQztBQUVELEtBQUssVUFBVSxnQkFBZ0IsQ0FFOUIsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBMkI7O0lBRXJFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFBO0lBRTFELE1BQU0sR0FBRyxHQUFHLElBQUEsWUFBTSxHQUFFLENBQUE7SUFDcEIsTUFBTSxFQUFFLEdBQUcsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3RDLEVBQUUsYUFBRixFQUFFLHVCQUFGLEVBQUUsQ0FBRSxRQUFRLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQ3BDLEVBQUUsYUFBRixFQUFFLHVCQUFGLEVBQUUsQ0FBRSxRQUFRLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUVwRCxNQUFNLE1BQU0sR0FBRyxNQUFBLE1BQUEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLDBDQUFFLElBQUksMENBQUUsRUFBRSxDQUFBO0lBQzNDLElBQUcsTUFBTSxFQUFFLENBQUM7UUFDWCxFQUFFLGFBQUYsRUFBRSx1QkFBRixFQUFFLENBQUUsUUFBUSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUMvQixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLDhCQUE4QixDQUFDLENBQUE7SUFDakUsQ0FBQyxFQUFFLCtCQUFzQixDQUFDLENBQUE7SUFFMUIsSUFBSSxDQUFDO1FBQ0osTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLHNCQUFzQixDQUFDLENBQUE7UUFFOUMsTUFBTSxPQUFPLEdBQUcsbUJBQVEsQ0FBQyxJQUFJLENBQTRCLENBQUE7UUFDekQsTUFBTSxHQUFHLEdBQUcsTUFBTSxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUM3RCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7UUFFWixNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUscUJBQXFCLENBQUMsQ0FBQTtRQUM1QyxFQUFFLGFBQUYsRUFBRSx1QkFBRixFQUFFLENBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQzFCLENBQUM7SUFBQyxPQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2IsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLHNCQUFzQixDQUFDLENBQUE7UUFDN0MsT0FBTyxDQUFDLHFCQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDckMsRUFBRSxhQUFGLEVBQUUsdUJBQUYsRUFBRSxDQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUV6QixHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsWUFBWSxDQUFDLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ3ZDLENBQUM7WUFBUyxDQUFDO1FBQ1YsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3JCLEVBQUUsYUFBRixFQUFFLHVCQUFGLEVBQUUsQ0FBRSxHQUFHLEVBQUUsQ0FBQTtJQUNWLENBQUM7QUFDRixDQUFDIn0=
@@ -1,20 +0,0 @@
1
- import { CreateTunnelRequest } from '../../proto/api';
2
- import type { Logger } from '../../types';
3
- import type { MakeTunnelFn, TCPSocketProperties } from '../../types';
4
- type ExtraOpts = Omit<CreateTunnelRequest, 'id' | 'initialMessage'> & {
5
- logger: Logger;
6
- };
7
- /**
8
- * Builds a TCP tunnel to the given host and port.
9
- * If a geolocation is provided -- an HTTPS proxy is used
10
- * to connect to the host.
11
- *
12
- * HTTPS proxy essentially creates an opaque tunnel to the
13
- * host using the CONNECT method. Any data can be sent through
14
- * this tunnel to the end host.
15
- * https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/CONNECT
16
- *
17
- * The tunnel also retains a transcript of all messages sent and received.
18
- */
19
- export declare const makeTcpTunnel: MakeTunnelFn<ExtraOpts, TCPSocketProperties>;
20
- export {};
@@ -1,175 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeTcpTunnel = void 0;
4
- const https_proxy_agent_1 = require("https-proxy-agent");
5
- const net_1 = require("net");
6
- const config_1 = require("../../config");
7
- const dns_1 = require("../../server/utils/dns");
8
- const iso_1 = require("../../server/utils/iso");
9
- const utils_1 = require("../../utils");
10
- const env_1 = require("../../utils/env");
11
- const HTTPS_PROXY_URL = (0, env_1.getEnvVariable)('HTTPS_PROXY_URL');
12
- /**
13
- * Builds a TCP tunnel to the given host and port.
14
- * If a geolocation is provided -- an HTTPS proxy is used
15
- * to connect to the host.
16
- *
17
- * HTTPS proxy essentially creates an opaque tunnel to the
18
- * host using the CONNECT method. Any data can be sent through
19
- * this tunnel to the end host.
20
- * https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/CONNECT
21
- *
22
- * The tunnel also retains a transcript of all messages sent and received.
23
- */
24
- const makeTcpTunnel = async ({ onClose, onMessage, logger, ...opts }) => {
25
- const transcript = [];
26
- const socket = await connectTcp({ ...opts, logger });
27
- let closed = false;
28
- socket.on('data', message => {
29
- if (closed) {
30
- logger.warn('socket is closed, dropping message');
31
- return;
32
- }
33
- onMessage === null || onMessage === void 0 ? void 0 : onMessage(message);
34
- transcript.push({ sender: 'server', message });
35
- });
36
- socket.once('error', onSocketClose);
37
- socket.once('close', () => onSocketClose(undefined));
38
- return {
39
- socket,
40
- transcript,
41
- createRequest: opts,
42
- async write(data) {
43
- transcript.push({ sender: 'client', message: data });
44
- await new Promise((resolve, reject) => {
45
- socket.write(data, err => {
46
- if (err) {
47
- reject(err);
48
- }
49
- else {
50
- resolve();
51
- }
52
- });
53
- });
54
- },
55
- close(err) {
56
- if (closed) {
57
- return;
58
- }
59
- socket.destroy(err);
60
- }
61
- };
62
- function onSocketClose(err) {
63
- if (closed) {
64
- return;
65
- }
66
- logger.debug({ err }, 'closing socket');
67
- closed = true;
68
- onClose === null || onClose === void 0 ? void 0 : onClose(err);
69
- onClose = undefined;
70
- }
71
- };
72
- exports.makeTcpTunnel = makeTcpTunnel;
73
- async function connectTcp({ host, port, geoLocation, logger }) {
74
- let connectTimeout;
75
- let socket;
76
- try {
77
- await new Promise(async (resolve, reject) => {
78
- try {
79
- // add a timeout to ensure the connection doesn't hang
80
- // and cause our gateway to send out a 504
81
- connectTimeout = setTimeout(() => reject(new utils_1.AttestorError('ERROR_NETWORK_ERROR', 'Server connection timed out')), config_1.CONNECTION_TIMEOUT_MS);
82
- socket = await getSocket({
83
- host,
84
- port,
85
- geoLocation,
86
- logger
87
- });
88
- socket.once('connect', resolve);
89
- socket.once('error', reject);
90
- socket.once('end', () => (reject(new utils_1.AttestorError('ERROR_NETWORK_ERROR', 'connection closed'))));
91
- }
92
- catch (err) {
93
- reject(err);
94
- }
95
- });
96
- logger.debug({ addr: `${host}:${port}` }, 'connected');
97
- return socket;
98
- }
99
- catch (err) {
100
- socket === null || socket === void 0 ? void 0 : socket.end();
101
- throw err;
102
- }
103
- finally {
104
- clearTimeout(connectTimeout);
105
- }
106
- }
107
- async function getSocket(opts) {
108
- var _a;
109
- const { logger } = opts;
110
- try {
111
- return await _getSocket(opts);
112
- }
113
- catch (err) {
114
- // see if the proxy is blocking the connection
115
- // due to their own arbitrary rules,
116
- // if so -- we resolve hostname first &
117
- // connect directly via address to
118
- // avoid proxy knowing which host we're connecting to
119
- if (!(err instanceof utils_1.AttestorError)
120
- || ((_a = err.data) === null || _a === void 0 ? void 0 : _a.code) !== 403) {
121
- throw err;
122
- }
123
- const addrs = await (0, dns_1.resolveHostnames)(opts.host);
124
- logger.info({ addrs, host: opts.host }, 'failed to connect due to restricted IP, trying via raw addr');
125
- for (const addr of addrs) {
126
- try {
127
- return await _getSocket({ ...opts, host: addr });
128
- }
129
- catch (err) {
130
- logger.error({ addr, err }, 'failed to connect to host');
131
- }
132
- }
133
- throw err;
134
- }
135
- }
136
- async function _getSocket({ host, port, geoLocation, logger }) {
137
- const socket = new net_1.Socket();
138
- if (geoLocation && !HTTPS_PROXY_URL) {
139
- logger.warn({ geoLocation }, 'geoLocation provided but no proxy URL found');
140
- geoLocation = '';
141
- }
142
- if (!geoLocation) {
143
- socket.connect({ host, port, });
144
- return socket;
145
- }
146
- if (!(0, iso_1.isValidCountryCode)(geoLocation)) {
147
- throw utils_1.AttestorError.badRequest(`Geolocation "${geoLocation}" is invalid. Must be 2 letter ISO country code`, { geoLocation });
148
- }
149
- const agentUrl = HTTPS_PROXY_URL.replace('{{geoLocation}}', (geoLocation === null || geoLocation === void 0 ? void 0 : geoLocation.toLowerCase()) || '');
150
- const agent = new https_proxy_agent_1.HttpsProxyAgent(agentUrl);
151
- const waitForProxyRes = new Promise(resolve => {
152
- // @ts-ignore
153
- socket.once('proxyConnect', resolve);
154
- });
155
- const proxySocket = await agent.connect(
156
- // ignore, because https-proxy-agent
157
- // expects an http request object
158
- // @ts-ignore
159
- socket, { host, port, timeout: config_1.CONNECTION_TIMEOUT_MS });
160
- const res = await waitForProxyRes;
161
- if (res.statusCode !== 200) {
162
- logger.error({ geoLocation, res }, 'Proxy geo location failed');
163
- throw new utils_1.AttestorError('ERROR_PROXY_ERROR', `Proxy via geo location "${geoLocation}" failed with status code: ${res.statusCode}, message: ${res.statusText}`, {
164
- code: res.statusCode,
165
- message: res.statusText,
166
- });
167
- }
168
- process.nextTick(() => {
169
- // ensure connect event is emitted
170
- // so it can be captured by the caller
171
- proxySocket.emit('connect');
172
- });
173
- return proxySocket;
174
- }
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZS10Y3AtdHVubmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZlci90dW5uZWxzL21ha2UtdGNwLXR1bm5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5REFBbUQ7QUFFbkQsNkJBQTRCO0FBQzVCLHVDQUFrRDtBQUVsRCw4Q0FBdUQ7QUFDdkQsOENBQXlEO0FBR3pELHFDQUF5QztBQUN6Qyx1Q0FBOEM7QUFFOUMsTUFBTSxlQUFlLEdBQUcsSUFBQSxvQkFBYyxFQUFDLGlCQUFpQixDQUFDLENBQUE7QUFLekQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSSxNQUFNLGFBQWEsR0FBaUQsS0FBSyxFQUFDLEVBQ2hGLE9BQU8sRUFDUCxTQUFTLEVBQ1QsTUFBTSxFQUNOLEdBQUcsSUFBSSxFQUNQLEVBQUUsRUFBRTtJQUNKLE1BQU0sVUFBVSxHQUFzQyxFQUFFLENBQUE7SUFDeEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxVQUFVLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFBO0lBRXBELElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQTtJQUdsQixNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRTtRQUMzQixJQUFHLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxDQUFDLElBQUksQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFBO1lBQ2pELE9BQU07UUFDUCxDQUFDO1FBRUQsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFHLE9BQU8sQ0FBQyxDQUFBO1FBQ3BCLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFDL0MsQ0FBQyxDQUFDLENBQUE7SUFFRixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQTtJQUNuQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9B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
@@ -1,11 +0,0 @@
1
- import { Agent } from 'elastic-apm-node';
2
- /**
3
- * Initialises the APM agent if required,
4
- * and returns it.
5
- * If ELASTIC_APM_SERVER_URL & ELASTIC_APM_SECRET_TOKEN
6
- * are not set will return undefined
7
- *
8
- * Utilises the standard env variables mentioned
9
- * here: https://www.elastic.co/guide/en/apm/agent/nodejs/current/custom-stack.html#custom-stack-advanced-configuration
10
- */
11
- export declare function getApm(): Agent | undefined;