@reclaimprotocol/attestor-core 4.0.3 → 5.0.1-beta.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 (474) hide show
  1. package/LICENSE +660 -660
  2. package/README.md +1 -2
  3. package/lib/avs/abis/avsDirectoryABI.js +341 -342
  4. package/lib/avs/abis/delegationABI.js +4 -5
  5. package/lib/avs/abis/registryABI.js +722 -723
  6. package/lib/avs/client/create-claim-on-avs.d.ts +5 -5
  7. package/lib/avs/client/create-claim-on-avs.js +160 -139
  8. package/lib/avs/config.d.ts +1 -1
  9. package/lib/avs/config.js +25 -23
  10. package/lib/avs/contracts/ReclaimServiceManager.d.ts +436 -532
  11. package/lib/avs/contracts/ReclaimServiceManager.js +0 -3
  12. package/lib/avs/contracts/common.d.ts +40 -11
  13. package/lib/avs/contracts/common.js +0 -3
  14. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.d.ts +13 -11
  15. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +1157 -1148
  16. package/lib/avs/contracts/factories/index.d.ts +1 -1
  17. package/lib/avs/contracts/factories/index.js +4 -9
  18. package/lib/avs/contracts/index.d.ts +3 -3
  19. package/lib/avs/contracts/index.js +6 -40
  20. package/lib/avs/types/index.d.ts +6 -6
  21. package/lib/avs/types/index.js +0 -3
  22. package/lib/avs/utils/contracts.d.ts +14 -14
  23. package/lib/avs/utils/contracts.js +50 -35
  24. package/lib/avs/utils/register.d.ts +3 -3
  25. package/lib/avs/utils/register.js +71 -79
  26. package/lib/avs/utils/tasks.d.ts +4 -4
  27. package/lib/avs/utils/tasks.js +44 -41
  28. package/lib/browser/avs/abis/avsDirectoryABI.d.ts +60 -0
  29. package/lib/browser/avs/abis/avsDirectoryABI.js +343 -0
  30. package/lib/browser/avs/abis/delegationABI.d.ts +126 -0
  31. package/lib/browser/avs/abis/delegationABI.js +4 -0
  32. package/lib/browser/avs/abis/registryABI.d.ts +136 -0
  33. package/lib/browser/avs/abis/registryABI.js +728 -0
  34. package/lib/browser/avs/client/create-claim-on-avs.d.ts +12 -0
  35. package/lib/browser/avs/client/create-claim-on-avs.js +168 -0
  36. package/lib/browser/avs/config.d.ts +7 -0
  37. package/lib/browser/avs/config.js +26 -0
  38. package/lib/browser/avs/contracts/ReclaimServiceManager.d.ts +601 -0
  39. package/lib/browser/avs/contracts/ReclaimServiceManager.js +0 -0
  40. package/lib/browser/avs/contracts/common.d.ts +50 -0
  41. package/lib/browser/avs/contracts/common.js +0 -0
  42. package/lib/browser/avs/contracts/factories/ReclaimServiceManager__factory.d.ts +890 -0
  43. package/lib/browser/avs/contracts/factories/ReclaimServiceManager__factory.js +1183 -0
  44. package/lib/browser/avs/contracts/factories/index.d.ts +1 -0
  45. package/lib/browser/avs/contracts/factories/index.js +4 -0
  46. package/lib/browser/avs/contracts/index.d.ts +3 -0
  47. package/lib/browser/avs/contracts/index.js +6 -0
  48. package/lib/browser/avs/types/index.d.ts +55 -0
  49. package/lib/browser/avs/types/index.js +0 -0
  50. package/lib/browser/avs/utils/contracts.d.ts +21 -0
  51. package/lib/browser/avs/utils/contracts.js +53 -0
  52. package/lib/browser/avs/utils/register.d.ts +27 -0
  53. package/lib/browser/avs/utils/register.js +74 -0
  54. package/lib/browser/avs/utils/tasks.d.ts +22 -0
  55. package/lib/browser/avs/utils/tasks.js +48 -0
  56. package/lib/browser/client/create-claim.d.ts +5 -0
  57. package/lib/browser/client/create-claim.js +461 -0
  58. package/lib/browser/client/index.d.ts +3 -0
  59. package/lib/browser/client/index.js +3 -0
  60. package/lib/browser/client/tunnels/make-rpc-tcp-tunnel.d.ts +16 -0
  61. package/lib/browser/client/tunnels/make-rpc-tcp-tunnel.js +53 -0
  62. package/lib/browser/client/tunnels/make-rpc-tls-tunnel.d.ts +26 -0
  63. package/lib/browser/client/tunnels/make-rpc-tls-tunnel.js +127 -0
  64. package/lib/browser/client/utils/attestor-pool.d.ts +8 -0
  65. package/lib/browser/client/utils/attestor-pool.js +24 -0
  66. package/lib/browser/client/utils/client-socket.d.ts +11 -0
  67. package/lib/browser/client/utils/client-socket.js +120 -0
  68. package/lib/browser/client/utils/message-handler.d.ts +4 -0
  69. package/lib/browser/client/utils/message-handler.js +97 -0
  70. package/lib/browser/config/index.d.ts +31 -0
  71. package/lib/browser/config/index.js +62 -0
  72. package/lib/browser/external-rpc/benchmark.d.ts +1 -0
  73. package/lib/browser/external-rpc/benchmark.js +82 -0
  74. package/lib/browser/external-rpc/event-bus.d.ts +7 -0
  75. package/lib/browser/external-rpc/event-bus.js +17 -0
  76. package/lib/browser/external-rpc/global.d.js +0 -0
  77. package/lib/browser/external-rpc/handle-incoming-msg.d.ts +2 -0
  78. package/lib/browser/external-rpc/handle-incoming-msg.js +241 -0
  79. package/lib/browser/external-rpc/index.d.ts +3 -0
  80. package/lib/browser/external-rpc/index.js +3 -0
  81. package/lib/browser/external-rpc/jsc-polyfills/1.d.ts +14 -0
  82. package/lib/browser/external-rpc/jsc-polyfills/1.js +80 -0
  83. package/lib/browser/external-rpc/jsc-polyfills/2.js +15 -0
  84. package/lib/browser/external-rpc/jsc-polyfills/event.d.ts +10 -0
  85. package/lib/browser/external-rpc/jsc-polyfills/event.js +19 -0
  86. package/lib/browser/external-rpc/jsc-polyfills/index.d.ts +2 -0
  87. package/lib/browser/external-rpc/jsc-polyfills/index.js +2 -0
  88. package/lib/browser/external-rpc/jsc-polyfills/ws.d.ts +21 -0
  89. package/lib/browser/external-rpc/jsc-polyfills/ws.js +83 -0
  90. package/lib/browser/external-rpc/setup-browser.d.ts +6 -0
  91. package/lib/browser/external-rpc/setup-browser.js +33 -0
  92. package/lib/browser/external-rpc/setup-jsc.d.ts +24 -0
  93. package/lib/browser/external-rpc/setup-jsc.js +22 -0
  94. package/lib/{window-rpc → browser/external-rpc}/types.d.ts +56 -35
  95. package/lib/browser/external-rpc/types.js +0 -0
  96. package/lib/browser/external-rpc/utils.d.ts +20 -0
  97. package/lib/browser/external-rpc/utils.js +100 -0
  98. package/lib/browser/external-rpc/zk.d.ts +14 -0
  99. package/lib/browser/external-rpc/zk.js +58 -0
  100. package/lib/browser/index.browser.js +13 -0
  101. package/lib/browser/index.d.ts +9 -0
  102. package/lib/browser/index.js +13 -0
  103. package/lib/browser/mechain/abis/governanceABI.d.ts +50 -0
  104. package/lib/browser/mechain/abis/governanceABI.js +461 -0
  105. package/lib/browser/mechain/abis/taskABI.d.ts +157 -0
  106. package/lib/browser/mechain/abis/taskABI.js +512 -0
  107. package/lib/browser/mechain/client/create-claim-on-mechain.d.ts +10 -0
  108. package/lib/browser/mechain/client/create-claim-on-mechain.js +33 -0
  109. package/lib/browser/mechain/client/index.d.ts +1 -0
  110. package/lib/browser/mechain/client/index.js +1 -0
  111. package/lib/browser/mechain/constants/index.d.ts +3 -0
  112. package/lib/browser/mechain/constants/index.js +8 -0
  113. package/lib/browser/mechain/index.d.ts +2 -0
  114. package/lib/browser/mechain/index.js +2 -0
  115. package/lib/browser/mechain/types/index.d.ts +23 -0
  116. package/lib/browser/mechain/types/index.js +0 -0
  117. package/lib/browser/proto/api.d.ts +651 -0
  118. package/lib/browser/proto/api.js +4250 -0
  119. package/lib/browser/proto/tee-bundle.d.ts +156 -0
  120. package/lib/browser/proto/tee-bundle.js +1296 -0
  121. package/lib/browser/providers/http/index.d.ts +18 -0
  122. package/lib/browser/providers/http/index.js +640 -0
  123. package/lib/browser/providers/http/patch-parse5-tree.d.ts +6 -0
  124. package/lib/browser/providers/http/patch-parse5-tree.js +34 -0
  125. package/lib/browser/providers/http/utils.d.ts +77 -0
  126. package/lib/browser/providers/http/utils.js +283 -0
  127. package/lib/browser/providers/index.d.ts +4 -0
  128. package/lib/browser/providers/index.js +7 -0
  129. package/lib/browser/scripts/fallbacks/crypto.js +4 -0
  130. package/lib/browser/scripts/fallbacks/empty.js +4 -0
  131. package/lib/browser/scripts/fallbacks/gnark.js +15 -0
  132. package/lib/browser/scripts/fallbacks/re2.js +7 -0
  133. package/lib/browser/scripts/fallbacks/snarkjs.js +10 -0
  134. package/lib/browser/scripts/fallbacks/stwo.js +159 -0
  135. package/lib/browser/types/bgp.d.ts +11 -0
  136. package/lib/browser/types/bgp.js +0 -0
  137. package/lib/browser/types/claims.d.ts +70 -0
  138. package/lib/browser/types/claims.js +0 -0
  139. package/lib/browser/types/client.d.ts +163 -0
  140. package/lib/browser/types/client.js +0 -0
  141. package/lib/browser/types/general.d.ts +77 -0
  142. package/lib/browser/types/general.js +0 -0
  143. package/lib/browser/types/handlers.d.ts +10 -0
  144. package/lib/browser/types/handlers.js +0 -0
  145. package/lib/browser/types/index.d.ts +10 -0
  146. package/lib/browser/types/index.js +10 -0
  147. package/lib/browser/types/providers.d.ts +161 -0
  148. package/lib/browser/types/providers.gen.d.ts +443 -0
  149. package/lib/browser/types/providers.gen.js +16 -0
  150. package/lib/browser/types/providers.js +0 -0
  151. package/lib/browser/types/rpc.d.ts +35 -0
  152. package/lib/browser/types/rpc.js +0 -0
  153. package/lib/browser/types/signatures.d.ts +28 -0
  154. package/lib/browser/types/signatures.js +0 -0
  155. package/lib/browser/types/tunnel.d.ts +18 -0
  156. package/lib/browser/types/tunnel.js +0 -0
  157. package/lib/browser/types/zk.d.ts +38 -0
  158. package/lib/browser/types/zk.js +0 -0
  159. package/lib/browser/utils/auth.d.ts +8 -0
  160. package/lib/browser/utils/auth.js +71 -0
  161. package/lib/browser/utils/b64-json.d.ts +2 -0
  162. package/lib/browser/utils/b64-json.js +17 -0
  163. package/lib/browser/utils/claims.d.ts +33 -0
  164. package/lib/browser/utils/claims.js +89 -0
  165. package/lib/browser/utils/env.d.ts +3 -0
  166. package/lib/browser/utils/env.js +19 -0
  167. package/lib/browser/utils/error.d.ts +26 -0
  168. package/lib/browser/utils/error.js +54 -0
  169. package/lib/browser/utils/generics.d.ts +119 -0
  170. package/lib/browser/utils/generics.js +272 -0
  171. package/lib/browser/utils/http-parser.d.ts +59 -0
  172. package/lib/browser/utils/http-parser.js +201 -0
  173. package/lib/browser/utils/index.browser.js +13 -0
  174. package/lib/browser/utils/index.d.ts +13 -0
  175. package/lib/browser/utils/index.js +13 -0
  176. package/lib/browser/utils/logger.browser.js +88 -0
  177. package/lib/browser/utils/logger.d.ts +14 -0
  178. package/lib/browser/utils/logger.js +88 -0
  179. package/lib/browser/utils/prepare-packets.d.ts +16 -0
  180. package/lib/browser/utils/prepare-packets.js +69 -0
  181. package/lib/browser/utils/redactions.d.ts +73 -0
  182. package/lib/browser/utils/redactions.js +135 -0
  183. package/lib/browser/utils/retries.d.ts +12 -0
  184. package/lib/browser/utils/retries.js +26 -0
  185. package/lib/browser/utils/signatures/eth.d.ts +2 -0
  186. package/lib/browser/utils/signatures/eth.js +31 -0
  187. package/lib/browser/utils/signatures/index.d.ts +5 -0
  188. package/lib/browser/utils/signatures/index.js +12 -0
  189. package/lib/browser/utils/socket-base.d.ts +23 -0
  190. package/lib/browser/utils/socket-base.js +96 -0
  191. package/lib/browser/utils/tls-imports.d.ts +21 -0
  192. package/lib/browser/utils/tls-imports.js +71 -0
  193. package/lib/browser/utils/tls.d.ts +2 -0
  194. package/lib/browser/utils/tls.js +58 -0
  195. package/lib/browser/utils/ws.d.ts +7 -0
  196. package/lib/browser/utils/ws.js +22 -0
  197. package/lib/browser/utils/zk.d.ts +71 -0
  198. package/lib/browser/utils/zk.js +625 -0
  199. package/lib/client/create-claim.d.ts +2 -2
  200. package/lib/client/create-claim.js +437 -400
  201. package/lib/client/index.d.ts +3 -3
  202. package/lib/client/index.js +3 -20
  203. package/lib/client/tunnels/make-rpc-tcp-tunnel.d.ts +2 -2
  204. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +49 -56
  205. package/lib/client/tunnels/make-rpc-tls-tunnel.d.ts +4 -3
  206. package/lib/client/tunnels/make-rpc-tls-tunnel.js +123 -131
  207. package/lib/client/utils/attestor-pool.d.ts +3 -1
  208. package/lib/client/utils/attestor-pool.js +21 -25
  209. package/lib/client/utils/client-socket.d.ts +4 -4
  210. package/lib/client/utils/client-socket.js +114 -94
  211. package/lib/client/utils/message-handler.d.ts +2 -2
  212. package/lib/client/utils/message-handler.js +89 -86
  213. package/lib/config/index.d.ts +6 -3
  214. package/lib/config/index.js +60 -37
  215. package/lib/external-rpc/benchmark.d.ts +1 -0
  216. package/lib/external-rpc/benchmark.js +82 -0
  217. package/lib/external-rpc/event-bus.d.ts +7 -0
  218. package/lib/external-rpc/event-bus.js +17 -0
  219. package/lib/external-rpc/global.d.js +0 -0
  220. package/lib/external-rpc/handle-incoming-msg.d.ts +2 -0
  221. package/lib/external-rpc/handle-incoming-msg.js +241 -0
  222. package/lib/external-rpc/index.d.ts +3 -0
  223. package/lib/external-rpc/index.js +3 -0
  224. package/lib/external-rpc/jsc-polyfills/1.d.ts +14 -0
  225. package/lib/external-rpc/jsc-polyfills/1.js +80 -0
  226. package/lib/external-rpc/jsc-polyfills/2.js +15 -0
  227. package/lib/external-rpc/jsc-polyfills/event.d.ts +10 -0
  228. package/lib/external-rpc/jsc-polyfills/event.js +19 -0
  229. package/lib/external-rpc/jsc-polyfills/index.d.ts +2 -0
  230. package/lib/external-rpc/jsc-polyfills/index.js +2 -0
  231. package/lib/external-rpc/jsc-polyfills/ws.d.ts +21 -0
  232. package/lib/external-rpc/jsc-polyfills/ws.js +83 -0
  233. package/lib/external-rpc/setup-browser.d.ts +6 -0
  234. package/lib/external-rpc/setup-browser.js +33 -0
  235. package/lib/external-rpc/setup-jsc.d.ts +24 -0
  236. package/lib/external-rpc/setup-jsc.js +22 -0
  237. package/lib/external-rpc/types.d.ts +213 -0
  238. package/lib/external-rpc/types.js +0 -0
  239. package/lib/external-rpc/utils.d.ts +20 -0
  240. package/lib/external-rpc/utils.js +100 -0
  241. package/lib/external-rpc/zk.d.ts +14 -0
  242. package/lib/external-rpc/zk.js +58 -0
  243. package/lib/index.browser.d.ts +9 -0
  244. package/lib/index.d.ts +8 -9
  245. package/lib/index.js +12 -49
  246. package/lib/mechain/abis/governanceABI.js +460 -461
  247. package/lib/mechain/abis/taskABI.js +505 -506
  248. package/lib/mechain/client/create-claim-on-mechain.d.ts +3 -3
  249. package/lib/mechain/client/create-claim-on-mechain.js +31 -30
  250. package/lib/mechain/client/index.d.ts +1 -1
  251. package/lib/mechain/client/index.js +1 -18
  252. package/lib/mechain/constants/index.js +8 -7
  253. package/lib/mechain/index.d.ts +2 -2
  254. package/lib/mechain/index.js +2 -19
  255. package/lib/mechain/types/index.d.ts +2 -2
  256. package/lib/mechain/types/index.js +0 -3
  257. package/lib/proto/api.d.ts +182 -39
  258. package/lib/proto/api.js +4105 -3555
  259. package/lib/proto/tee-bundle.d.ts +156 -0
  260. package/lib/proto/tee-bundle.js +1296 -0
  261. package/lib/providers/http/index.d.ts +16 -1
  262. package/lib/providers/http/index.js +603 -576
  263. package/lib/providers/http/patch-parse5-tree.d.ts +6 -0
  264. package/lib/providers/http/patch-parse5-tree.js +34 -0
  265. package/lib/providers/http/utils.d.ts +7 -4
  266. package/lib/providers/http/utils.js +240 -317
  267. package/lib/providers/index.d.ts +1 -1
  268. package/lib/providers/index.js +5 -9
  269. package/lib/scripts/check-avs-registration.d.ts +1 -1
  270. package/lib/scripts/check-avs-registration.js +24 -25
  271. package/lib/scripts/fallbacks/crypto.d.ts +1 -0
  272. package/lib/scripts/fallbacks/crypto.js +4 -0
  273. package/lib/scripts/fallbacks/empty.d.ts +3 -0
  274. package/lib/scripts/fallbacks/empty.js +4 -0
  275. package/lib/scripts/fallbacks/gnark.d.ts +7 -0
  276. package/lib/scripts/fallbacks/gnark.js +15 -0
  277. package/lib/scripts/fallbacks/re2.d.ts +1 -0
  278. package/lib/scripts/fallbacks/re2.js +7 -0
  279. package/lib/scripts/fallbacks/snarkjs.d.ts +1 -0
  280. package/lib/scripts/fallbacks/snarkjs.js +10 -0
  281. package/lib/scripts/fallbacks/stwo.d.ts +6 -0
  282. package/lib/scripts/generate-provider-types.js +92 -73
  283. package/lib/scripts/generate-receipt.d.ts +2 -2
  284. package/lib/scripts/generate-receipt.js +94 -83
  285. package/lib/scripts/generate-toprf-keys.js +17 -16
  286. package/lib/scripts/jsc-cli-rpc.d.ts +1 -0
  287. package/lib/scripts/jsc-cli-rpc.js +35 -0
  288. package/lib/scripts/register-avs-operator.d.ts +1 -1
  289. package/lib/scripts/register-avs-operator.js +3 -7
  290. package/lib/scripts/start-server.d.ts +1 -1
  291. package/lib/scripts/start-server.js +9 -11
  292. package/lib/scripts/update-avs-metadata.d.ts +1 -1
  293. package/lib/scripts/update-avs-metadata.js +17 -19
  294. package/lib/scripts/utils.js +8 -9
  295. package/lib/scripts/whitelist-operator.d.ts +1 -1
  296. package/lib/scripts/whitelist-operator.js +13 -15
  297. package/lib/server/create-server.d.ts +3 -2
  298. package/lib/server/create-server.js +98 -85
  299. package/lib/server/handlers/claimTeeBundle.d.ts +6 -0
  300. package/lib/server/handlers/claimTeeBundle.js +232 -0
  301. package/lib/server/handlers/claimTunnel.d.ts +1 -1
  302. package/lib/server/handlers/claimTunnel.js +75 -73
  303. package/lib/server/handlers/completeClaimOnChain.d.ts +1 -1
  304. package/lib/server/handlers/completeClaimOnChain.js +27 -26
  305. package/lib/server/handlers/createClaimOnChain.d.ts +1 -1
  306. package/lib/server/handlers/createClaimOnChain.js +30 -29
  307. package/lib/server/handlers/createTaskOnMechain.d.ts +1 -1
  308. package/lib/server/handlers/createTaskOnMechain.js +54 -49
  309. package/lib/server/handlers/createTunnel.d.ts +1 -1
  310. package/lib/server/handlers/createTunnel.js +91 -94
  311. package/lib/server/handlers/disconnectTunnel.d.ts +1 -1
  312. package/lib/server/handlers/disconnectTunnel.js +6 -8
  313. package/lib/server/handlers/fetchCertificateBytes.d.ts +2 -0
  314. package/lib/server/handlers/fetchCertificateBytes.js +57 -0
  315. package/lib/server/handlers/index.d.ts +1 -1
  316. package/lib/server/handlers/index.js +24 -21
  317. package/lib/server/handlers/init.d.ts +1 -1
  318. package/lib/server/handlers/init.js +31 -34
  319. package/lib/server/handlers/toprf.d.ts +1 -1
  320. package/lib/server/handlers/toprf.js +17 -19
  321. package/lib/server/index.d.ts +4 -4
  322. package/lib/server/index.js +4 -21
  323. package/lib/server/socket.d.ts +7 -7
  324. package/lib/server/socket.js +104 -106
  325. package/lib/server/tunnels/make-tcp-tunnel.d.ts +5 -3
  326. package/lib/server/tunnels/make-tcp-tunnel.js +189 -162
  327. package/lib/server/utils/apm.d.ts +1 -1
  328. package/lib/server/utils/apm.js +26 -40
  329. package/lib/server/utils/assert-valid-claim-request.d.ts +6 -5
  330. package/lib/server/utils/assert-valid-claim-request.js +339 -185
  331. package/lib/server/utils/config-env.js +4 -7
  332. package/lib/server/utils/dns.js +18 -16
  333. package/lib/server/utils/gcp-attestation.d.ts +17 -0
  334. package/lib/server/utils/gcp-attestation.js +237 -0
  335. package/lib/server/utils/generics.d.ts +3 -3
  336. package/lib/server/utils/generics.js +37 -51
  337. package/lib/server/utils/iso.js +255 -256
  338. package/lib/server/utils/keep-alive.d.ts +2 -2
  339. package/lib/server/utils/keep-alive.js +36 -40
  340. package/lib/server/utils/nitro-attestation.d.ts +33 -0
  341. package/lib/server/utils/nitro-attestation.js +249 -0
  342. package/lib/server/utils/oprf-raw.d.ts +21 -0
  343. package/lib/server/utils/oprf-raw.js +61 -0
  344. package/lib/server/utils/process-handshake.d.ts +3 -3
  345. package/lib/server/utils/process-handshake.js +217 -175
  346. package/lib/server/utils/proxy-session.d.ts +1 -0
  347. package/lib/server/utils/proxy-session.js +4 -0
  348. package/lib/server/utils/tee-oprf-mpc-verification.d.ts +16 -0
  349. package/lib/server/utils/tee-oprf-mpc-verification.js +86 -0
  350. package/lib/server/utils/tee-oprf-verification.d.ts +24 -0
  351. package/lib/server/utils/tee-oprf-verification.js +151 -0
  352. package/lib/server/utils/tee-transcript-reconstruction.d.ts +24 -0
  353. package/lib/server/utils/tee-transcript-reconstruction.js +140 -0
  354. package/lib/server/utils/tee-verification.d.ts +28 -0
  355. package/lib/server/utils/tee-verification.js +358 -0
  356. package/lib/{utils → server/utils}/validation.d.ts +1 -1
  357. package/lib/server/utils/validation.js +45 -0
  358. package/lib/types/bgp.js +0 -3
  359. package/lib/types/claims.d.ts +7 -10
  360. package/lib/types/claims.js +0 -3
  361. package/lib/types/client.d.ts +5 -5
  362. package/lib/types/client.js +0 -3
  363. package/lib/types/general.d.ts +30 -4
  364. package/lib/types/general.js +0 -3
  365. package/lib/types/handlers.d.ts +3 -3
  366. package/lib/types/handlers.js +0 -3
  367. package/lib/types/index.d.ts +10 -10
  368. package/lib/types/index.js +10 -27
  369. package/lib/types/providers.d.ts +15 -4
  370. package/lib/types/providers.gen.d.ts +15 -1
  371. package/lib/types/providers.gen.js +15 -13
  372. package/lib/types/providers.js +0 -3
  373. package/lib/types/rpc.d.ts +2 -2
  374. package/lib/types/rpc.js +0 -3
  375. package/lib/types/signatures.js +0 -3
  376. package/lib/types/tunnel.d.ts +2 -2
  377. package/lib/types/tunnel.js +0 -3
  378. package/lib/types/zk.d.ts +17 -2
  379. package/lib/types/zk.js +0 -3
  380. package/lib/utils/auth.d.ts +2 -1
  381. package/lib/utils/auth.js +66 -59
  382. package/lib/utils/b64-json.js +13 -19
  383. package/lib/utils/bgp-listener.d.ts +1 -1
  384. package/lib/utils/bgp-listener.js +111 -114
  385. package/lib/utils/claims.d.ts +3 -3
  386. package/lib/utils/claims.js +78 -101
  387. package/lib/utils/env.js +15 -16
  388. package/lib/utils/error.d.ts +6 -7
  389. package/lib/utils/error.js +50 -39
  390. package/lib/utils/generics.d.ts +20 -13
  391. package/lib/utils/generics.js +221 -297
  392. package/lib/utils/http-parser.d.ts +1 -1
  393. package/lib/utils/http-parser.js +186 -237
  394. package/lib/utils/index.browser.d.ts +13 -0
  395. package/lib/utils/index.d.ts +14 -12
  396. package/lib/utils/index.js +14 -29
  397. package/lib/utils/logger.browser.d.ts +14 -0
  398. package/lib/utils/logger.d.ts +1 -1
  399. package/lib/utils/logger.js +69 -87
  400. package/lib/utils/prepare-packets.d.ts +3 -3
  401. package/lib/utils/prepare-packets.js +66 -58
  402. package/lib/utils/redactions.d.ts +20 -1
  403. package/lib/utils/redactions.js +116 -129
  404. package/lib/utils/retries.d.ts +1 -1
  405. package/lib/utils/retries.js +24 -26
  406. package/lib/utils/signatures/eth.d.ts +1 -1
  407. package/lib/utils/signatures/eth.js +28 -30
  408. package/lib/utils/signatures/index.d.ts +3 -3
  409. package/lib/utils/signatures/index.js +11 -10
  410. package/lib/utils/socket-base.d.ts +6 -5
  411. package/lib/utils/socket-base.js +89 -88
  412. package/lib/utils/tls-imports.d.ts +21 -0
  413. package/lib/utils/tls-imports.js +71 -0
  414. package/lib/utils/tls.d.ts +1 -1
  415. package/lib/utils/tls.js +54 -28
  416. package/lib/utils/ws.d.ts +1 -6
  417. package/lib/utils/ws.js +17 -33
  418. package/lib/utils/zk.d.ts +28 -12
  419. package/lib/utils/zk.js +587 -406
  420. package/package.json +79 -60
  421. package/lib/avs/tests/test.operator.d.ts +0 -11
  422. package/lib/avs/tests/test.operator.js +0 -313
  423. package/lib/avs/tests/utils.d.ts +0 -2
  424. package/lib/avs/tests/utils.js +0 -50
  425. package/lib/scripts/verify-root-ca.d.ts +0 -1
  426. package/lib/scripts/verify-root-ca.js +0 -51
  427. package/lib/tests/describe-with-server.d.ts +0 -20
  428. package/lib/tests/describe-with-server.js +0 -64
  429. package/lib/tests/mock-provider-server.d.ts +0 -13
  430. package/lib/tests/mock-provider-server.js +0 -65
  431. package/lib/tests/mocks.d.ts +0 -4
  432. package/lib/tests/mocks.js +0 -23
  433. package/lib/tests/test.auth.js +0 -75
  434. package/lib/tests/test.bgp-listener.js +0 -169
  435. package/lib/tests/test.claim-creation.js +0 -280
  436. package/lib/tests/test.http-parser.d.ts +0 -1
  437. package/lib/tests/test.http-parser.js +0 -120
  438. package/lib/tests/test.http-provider-utils.js +0 -2416
  439. package/lib/tests/test.http-provider.js +0 -114
  440. package/lib/tests/test.rpc-communication.d.ts +0 -1
  441. package/lib/tests/test.rpc-communication.js +0 -64
  442. package/lib/tests/test.rpc-tunnel.d.ts +0 -1
  443. package/lib/tests/test.rpc-tunnel.js +0 -172
  444. package/lib/tests/test.signatures.d.ts +0 -1
  445. package/lib/tests/test.signatures.js +0 -24
  446. package/lib/tests/test.tcp-tunnel.d.ts +0 -1
  447. package/lib/tests/test.tcp-tunnel.js +0 -64
  448. package/lib/tests/test.zk.d.ts +0 -1
  449. package/lib/tests/test.zk.js +0 -337
  450. package/lib/tests/utils.d.ts +0 -18
  451. package/lib/tests/utils.js +0 -64
  452. package/lib/utils/atomic-operations.d.ts +0 -24
  453. package/lib/utils/atomic-operations.js +0 -65
  454. package/lib/utils/benchmark.d.ts +0 -1
  455. package/lib/utils/benchmark.js +0 -70
  456. package/lib/utils/connection-state-machine.d.ts +0 -43
  457. package/lib/utils/connection-state-machine.js +0 -129
  458. package/lib/utils/resource-monitor.d.ts +0 -61
  459. package/lib/utils/resource-monitor.js +0 -107
  460. package/lib/utils/validation.js +0 -46
  461. package/lib/window-rpc/index.d.ts +0 -3
  462. package/lib/window-rpc/index.js +0 -20
  463. package/lib/window-rpc/setup-window-rpc.d.ts +0 -5
  464. package/lib/window-rpc/setup-window-rpc.js +0 -291
  465. package/lib/window-rpc/types.js +0 -3
  466. package/lib/window-rpc/utils.d.ts +0 -14
  467. package/lib/window-rpc/utils.js +0 -102
  468. package/lib/window-rpc/window-rpc-zk.d.ts +0 -15
  469. package/lib/window-rpc/window-rpc-zk.js +0 -85
  470. /package/lib/{tests/test.auth.d.ts → browser/external-rpc/jsc-polyfills/2.d.ts} +0 -0
  471. /package/lib/{tests/test.bgp-listener.d.ts → external-rpc/jsc-polyfills/2.d.ts} +0 -0
  472. /package/lib/{tests/test.claim-creation.d.ts → scripts/build-browser.d.ts} +0 -0
  473. /package/lib/{tests/test.http-provider-utils.d.ts → scripts/build-jsc.d.ts} +0 -0
  474. /package/lib/{tests/test.http-provider.d.ts → scripts/build-lib.d.ts} +0 -0
@@ -1,20 +0,0 @@
1
- import { AttestorClient } from '../client/utils/client-socket';
2
- import { createMockServer } from '../tests/mock-provider-server';
3
- import { IAttestorServerSocket } from '../types';
4
- type ServerOpts = {
5
- /**
6
- * Get the client's connection on the server.
7
- */
8
- getClientOnServer(): IAttestorServerSocket | undefined;
9
- client: AttestorClient;
10
- privateKeyHex: string;
11
- mockHttpsServer: ReturnType<typeof createMockServer>;
12
- mockhttpsServerPort: number;
13
- serverUrl: string;
14
- };
15
- /**
16
- * Boots up a attestor server, a mock https server,
17
- * and a client that is renewed for each test.
18
- */
19
- export declare const describeWithServer: (name: string, fn: (opts: ServerOpts) => void) => void;
20
- export {};
@@ -1,64 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.describeWithServer = void 0;
4
- const client_socket_1 = require("../client/utils/client-socket");
5
- const config_1 = require("../config");
6
- const server_1 = require("../server");
7
- const mock_provider_server_1 = require("../tests/mock-provider-server");
8
- const mocks_1 = require("../tests/mocks");
9
- const utils_1 = require("../tests/utils");
10
- const utils_2 = require("../utils");
11
- /**
12
- * Boots up a attestor server, a mock https server,
13
- * and a client that is renewed for each test.
14
- */
15
- const describeWithServer = (name, fn) => describe(name, () => {
16
- let wsServer;
17
- let wsServerUrl;
18
- let privateKeyHex;
19
- let client;
20
- const wsServerPort = (0, utils_1.getRandomPort)();
21
- const httpsServerPort = (0, utils_1.getRandomPort)();
22
- const mockHttpsServer = (0, mock_provider_server_1.createMockServer)(httpsServerPort);
23
- beforeAll(async () => {
24
- wsServer = await (0, server_1.createServer)(wsServerPort);
25
- wsServerUrl = `ws://localhost:${wsServerPort}${config_1.WS_PATHNAME}`;
26
- });
27
- afterAll(() => {
28
- wsServer.close();
29
- mockHttpsServer.server.close();
30
- });
31
- beforeEach(async () => {
32
- mocks_1.SPY_PREPARER.mockClear();
33
- privateKeyHex = (0, utils_1.randomPrivateKey)();
34
- client = new client_socket_1.AttestorClient({
35
- logger: utils_2.logger.child({ client: 1 }),
36
- url: wsServerUrl,
37
- });
38
- await client.waitForInit();
39
- });
40
- afterEach(async () => {
41
- await client.terminateConnection();
42
- });
43
- fn({
44
- getClientOnServer,
45
- get client() {
46
- return client;
47
- },
48
- get privateKeyHex() {
49
- return privateKeyHex;
50
- },
51
- get serverUrl() {
52
- return wsServerUrl;
53
- },
54
- mockHttpsServer,
55
- mockhttpsServerPort: httpsServerPort,
56
- });
57
- function getClientOnServer() {
58
- var _a;
59
- const serverSockets = [...wsServer.clients.values()];
60
- return (_a = serverSockets.at(-1)) === null || _a === void 0 ? void 0 : _a.serverSocket;
61
- }
62
- });
63
- exports.describeWithServer = describeWithServer;
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpYmUtd2l0aC1zZXJ2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdHMvZGVzY3JpYmUtd2l0aC1zZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0VBQStEO0FBQy9ELHVDQUF3QztBQUN4Qyx1Q0FBeUM7QUFDekMseUVBQWlFO0FBQ2pFLDJDQUE4QztBQUM5QywyQ0FBaUU7QUFFakUscUNBQWtDO0FBZ0JsQzs7O0dBR0c7QUFDSSxNQUFNLGtCQUFrQixHQUFHLENBQ2pDLElBQVksRUFDWixFQUE4QixFQUM3QixFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUU7SUFDeEIsSUFBSSxRQUF5QixDQUFBO0lBRTdCLElBQUksV0FBbUIsQ0FBQTtJQUV2QixJQUFJLGFBQXFCLENBQUE7SUFDekIsSUFBSSxNQUFzQixDQUFBO0lBRTFCLE1BQU0sWUFBWSxHQUFHLElBQUEscUJBQWEsR0FBRSxDQUFBO0lBQ3BDLE1BQU0sZUFBZSxHQUFHLElBQUEscUJBQWEsR0FBRSxDQUFBO0lBRXZDLE1BQU0sZUFBZSxHQUFHLElBQUEsdUNBQWdCLEVBQUMsZUFBZSxDQUFDLENBQUE7SUFFekQsU0FBUyxDQUFDLEtBQUssSUFBRyxFQUFFO1FBQ25CLFFBQVEsR0FBRyxNQUFNLElBQUEscUJBQVksRUFBQyxZQUFZLENBQUMsQ0FBQTtRQUMzQyxXQUFXLEdBQUcsa0JBQWtCLFlBQVksR0FBRyxvQkFBVyxFQUFFLENBQUE7SUFDN0QsQ0FBQyxDQUFDLENBQUE7SUFFRixRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ2IsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2hCLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDL0IsQ0FBQyxDQUFDLENBQUE7SUFFRixVQUFVLENBQUMsS0FBSyxJQUFHLEVBQUU7UUFDcEIsb0JBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUV4QixhQUFhLEdBQUcsSUFBQSx3QkFBZ0IsR0FBRSxDQUFBO1FBQ2xDLE1BQU0sR0FBRyxJQUFJLDhCQUFjLENBQUM7WUFDM0IsTUFBTSxFQUFFLGNBQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDbkMsR0FBRyxFQUFFLFdBQVc7U0FDaEIsQ0FBQyxDQUFBO1FBQ0YsTUFBTSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDM0IsQ0FBQyxDQUFDLENBQUE7SUFFRixTQUFTLENBQUMsS0FBSyxJQUFHLEVBQUU7UUFDbkIsTUFBTSxNQUFNLENBQUMsbUJBQW1CLEVBQUUsQ0FBQTtJQUNuQyxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQztRQUNGLGlCQUFpQjtRQUNqQixJQUFJLE1BQU07WUFDVCxPQUFPLE1BQU0sQ0FBQTtRQUNkLENBQUM7UUFDRCxJQUFJLGFBQWE7WUFDaEIsT0FBTyxhQUFhLENBQUE7UUFDckIsQ0FBQztRQUNELElBQUksU0FBUztZQUNaLE9BQU8sV0FBVyxDQUFBO1FBQ25CLENBQUM7UUFDRCxlQUFlO1FBQ2YsbUJBQW1CLEVBQUUsZUFBZTtLQUNwQyxDQUFDLENBQUE7SUFFRixTQUFTLGlCQUFpQjs7UUFDekIsTUFBTSxhQUFhLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQWdCLENBQUE7UUFDbkUsT0FBTyxNQUFBLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsMENBQUUsWUFBWSxDQUFBO0lBQzFDLENBQUM7QUFDRixDQUFDLENBQUMsQ0FBQTtBQTVEVyxRQUFBLGtCQUFrQixzQkE0RDdCIn0=
@@ -1,13 +0,0 @@
1
- /**
2
- * Mock https server to test claim creation.
3
- * It implements a GET /me endpoint that returns the email address
4
- * of the user. A bearer token is expected in the Authorization header.
5
- *
6
- * The bearer token is expected to be the email address without the domain.
7
- * Eg. to claim the email address "abcd@mock.com", the header
8
- * should be "Authorization: Bearer abcd".
9
- */
10
- export declare function createMockServer(port: number): {
11
- server: import("https").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>;
12
- tlsSessionStore: Record<string, Buffer<ArrayBufferLike>>;
13
- };
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createMockServer = createMockServer;
4
- /**
5
- * Mock HTTPS server to implement the "mock-login" provider
6
- */
7
- const fs_1 = require("fs");
8
- const https_1 = require("https");
9
- const utils_1 = require("../utils");
10
- /**
11
- * Mock https server to test claim creation.
12
- * It implements a GET /me endpoint that returns the email address
13
- * of the user. A bearer token is expected in the Authorization header.
14
- *
15
- * The bearer token is expected to be the email address without the domain.
16
- * Eg. to claim the email address "abcd@mock.com", the header
17
- * should be "Authorization: Bearer abcd".
18
- */
19
- function createMockServer(port) {
20
- const tlsSessionStore = {};
21
- const server = (0, https_1.createServer)({
22
- key: (0, fs_1.readFileSync)('./cert/private-key.pem'),
23
- cert: (0, fs_1.readFileSync)('./cert/public-cert.pem'),
24
- });
25
- server.on('request', (req, res) => {
26
- var _a;
27
- if (req.method !== 'GET') {
28
- endWithError(405, 'invalid method');
29
- return;
30
- }
31
- if (!((_a = req.url) === null || _a === void 0 ? void 0 : _a.startsWith('/me'))) {
32
- endWithError(404, 'invalid path');
33
- return;
34
- }
35
- const auth = req.headers.authorization;
36
- if (!auth) {
37
- endWithError(401, 'missing authorization header');
38
- return;
39
- }
40
- if (!(auth === null || auth === void 0 ? void 0 : auth.startsWith('Bearer '))) {
41
- endWithError(401, 'invalid authorization header');
42
- return;
43
- }
44
- const emailAddress = auth.slice('Bearer '.length) + '@mock.com';
45
- endWithJson(200, { emailAddress });
46
- utils_1.logger.info({ emailAddress }, 'ended with success');
47
- function endWithError(status, message) {
48
- endWithJson(status, { error: message });
49
- utils_1.logger.info({ status, message }, 'ended with error');
50
- }
51
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
52
- function endWithJson(status, json) {
53
- const str = JSON.stringify(json);
54
- res.writeHead(status, {
55
- 'Content-Type': 'application/json',
56
- 'Content-Length': str.length.toString(),
57
- });
58
- res.write(str);
59
- res.end();
60
- }
61
- });
62
- server.listen(port);
63
- return { server, tlsSessionStore };
64
- }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1wcm92aWRlci1zZXJ2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdHMvbW9jay1wcm92aWRlci1zZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFnQkEsNENBMERDO0FBMUVEOztHQUVHO0FBQ0gsMkJBQWlDO0FBQ2pDLGlDQUFvQztBQUNwQyxxQ0FBa0M7QUFFbEM7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxJQUFZO0lBQzVDLE1BQU0sZUFBZSxHQUEyQixFQUFFLENBQUE7SUFFbEQsTUFBTSxNQUFNLEdBQUcsSUFBQSxvQkFBWSxFQUMxQjtRQUNDLEdBQUcsRUFBRSxJQUFBLGlCQUFZLEVBQUMsd0JBQXdCLENBQUM7UUFDM0MsSUFBSSxFQUFFLElBQUEsaUJBQVksRUFBQyx3QkFBd0IsQ0FBQztLQUM1QyxDQUNELENBQUE7SUFFRCxNQUFNLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTs7UUFDakMsSUFBRyxHQUFHLENBQUMsTUFBTSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3pCLFlBQVksQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtZQUNuQyxPQUFNO1FBQ1AsQ0FBQztRQUVELElBQUcsQ0FBQyxDQUFBLE1BQUEsR0FBRyxDQUFDLEdBQUcsMENBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFBLEVBQUUsQ0FBQztZQUNoQyxZQUFZLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxDQUFBO1lBQ2pDLE9BQU07UUFDUCxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUE7UUFDdEMsSUFBRyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsWUFBWSxDQUFDLEdBQUcsRUFBRSw4QkFBOEIsQ0FBQyxDQUFBO1lBQ2pELE9BQU07UUFDUCxDQUFDO1FBRUQsSUFBRyxDQUFDLENBQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQSxFQUFFLENBQUM7WUFDakMsWUFBWSxDQUFDLEdBQUcsRUFBRSw4QkFBOEIsQ0FBQyxDQUFBO1lBQ2pELE9BQU07UUFDUCxDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsV0FBVyxDQUFBO1FBQy9ELFdBQVcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFBO1FBRWxDLGNBQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxZQUFZLEVBQUUsRUFBRSxvQkFBb0IsQ0FBQyxDQUFBO1FBRW5ELFNBQVMsWUFBWSxDQUFDLE1BQWMsRUFBRSxPQUFlO1lBQ3BELFdBQVcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQTtZQUV2QyxjQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFFLGtCQUFrQixDQUFDLENBQUE7UUFDckQsQ0FBQztRQUVELDhEQUE4RDtRQUM5RCxTQUFTLFdBQVcsQ0FBQyxNQUFjLEVBQUUsSUFBUztZQUM3QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ2hDLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO2dCQUNyQixjQUFjLEVBQUUsa0JBQWtCO2dCQUNsQyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTthQUN2QyxDQUFDLENBQUE7WUFDRixHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ2QsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBQ1YsQ0FBQztJQUNGLENBQUMsQ0FBQyxDQUFBO0lBRUYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUVuQixPQUFPLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxDQUFBO0FBQ25DLENBQUMifQ==
@@ -1,4 +0,0 @@
1
- /**
2
- * Spies on the preparePacketsForReveal function
3
- */
4
- export declare const SPY_PREPARER: jest.Mock<Promise<import("../proto/api").ClaimTunnelRequest_TranscriptMessage[]>, [tlsTranscript: import("..").Transcript<import("..").CompleteTLSPacket>, reveals: Map<import("@reclaimprotocol/tls").TLSPacketContext, import("..").MessageRevealInfo>, import("../utils/prepare-packets").PreparePacketsForRevealOpts], any>;
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SPY_PREPARER = void 0;
4
- /**
5
- * Spies on the preparePacketsForReveal function
6
- */
7
- exports.SPY_PREPARER = jest.fn();
8
- jest.mock('../utils/prepare-packets', () => {
9
- const actual = jest.requireActual('../utils/prepare-packets');
10
- exports.SPY_PREPARER.mockImplementation(actual.preparePacketsForReveal);
11
- return {
12
- __esModule: true,
13
- ...actual,
14
- preparePacketsForReveal: exports.SPY_PREPARER
15
- };
16
- });
17
- jest.mock('../server/utils/apm', () => {
18
- return {
19
- __esModule: true,
20
- getApm: jest.fn()
21
- };
22
- });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdHMvbW9ja3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUE7O0dBRUc7QUFDVSxRQUFBLFlBQVksR0FBRyxJQUFJLENBQUMsRUFBRSxFQUdoQyxDQUFBO0FBRUgsSUFBSSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUU7SUFDMUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO0lBQzdELG9CQUFZLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUE7SUFDL0QsT0FBTztRQUNOLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLEdBQUcsTUFBTTtRQUNULHVCQUF1QixFQUFFLG9CQUFZO0tBQ3JDLENBQUE7QUFDRixDQUFDLENBQUMsQ0FBQTtBQUVGLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsR0FBRyxFQUFFO0lBQ3JDLE9BQU87UUFDTixVQUFVLEVBQUUsSUFBSTtRQUNoQixNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtLQUNqQixDQUFBO0FBQ0YsQ0FBQyxDQUFDLENBQUEifQ==
@@ -1,75 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const ethers_1 = require("ethers");
4
- const client_1 = require("../client");
5
- const config_1 = require("../config");
6
- const providers_1 = require("../providers");
7
- const server_1 = require("../server");
8
- const mock_provider_server_1 = require("../tests/mock-provider-server");
9
- const utils_1 = require("../tests/utils");
10
- const utils_2 = require("../utils");
11
- describe('Authentication Tests', () => {
12
- const authKp = ethers_1.ethers.Wallet.createRandom();
13
- let wsServer;
14
- let wsServerUrl;
15
- let claimUrl;
16
- let privateKeyHex;
17
- const wsServerPort = (0, utils_1.getRandomPort)();
18
- const httpsServerPort = (0, utils_1.getRandomPort)();
19
- const mockHttpsServer = (0, mock_provider_server_1.createMockServer)(httpsServerPort);
20
- beforeAll(async () => {
21
- wsServer = await (0, server_1.createServer)(wsServerPort);
22
- wsServerUrl = `ws://localhost:${wsServerPort}${config_1.WS_PATHNAME}`;
23
- process.env.AUTHENTICATION_PUBLIC_KEY = authKp.publicKey;
24
- claimUrl = `https://localhost:${httpsServerPort}/me`;
25
- privateKeyHex = (0, utils_1.randomPrivateKey)();
26
- // we need to disable certificate verification
27
- // for testing purposes
28
- providers_1.providers.http.additionalClientOptions = {
29
- verifyServerCertificate: false
30
- };
31
- });
32
- afterAll(() => {
33
- delete process.env.AUTHENTICATION_PUBLIC_KEY;
34
- wsServer.close();
35
- mockHttpsServer.server.close();
36
- });
37
- it('should fail to create a claim w/o authentication', async () => {
38
- await expect(createClaim(undefined)).rejects.toMatchObject({
39
- message: 'User must be authenticated'
40
- });
41
- });
42
- it('should block claim creation if host not in whitelist', async () => {
43
- const auth = await (0, utils_2.createAuthRequest)({ id: '1234', hostWhitelist: ['api.abcd.com'] }, authKp.privateKey);
44
- await expect(createClaim(auth)).rejects.toMatchObject({
45
- message: 'Host \"localhost\" not allowed by auth request'
46
- });
47
- });
48
- it('should create claim after authentication', async () => {
49
- const auth = await (0, utils_2.createAuthRequest)({ id: '1234', hostWhitelist: ['localhost'] }, authKp.privateKey);
50
- await createClaim(auth);
51
- });
52
- function createClaim(authRequest) {
53
- const user = 'testing-123';
54
- return (0, client_1.createClaimOnAttestor)({
55
- name: 'http',
56
- params: {
57
- url: claimUrl,
58
- method: 'GET',
59
- responseRedactions: [],
60
- responseMatches: [
61
- {
62
- type: 'contains',
63
- value: `${user}@mock.com`
64
- }
65
- ]
66
- },
67
- secretParams: {
68
- authorisationHeader: `Bearer ${user}`
69
- },
70
- ownerPrivateKey: privateKeyHex,
71
- client: { url: wsServerUrl, authRequest }
72
- });
73
- }
74
- });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5hdXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RzL3Rlc3QuYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUErQjtBQUMvQix1Q0FBa0Q7QUFDbEQsdUNBQXdDO0FBRXhDLDZDQUF5QztBQUN6Qyx1Q0FBeUM7QUFDekMseUVBQWlFO0FBQ2pFLDJDQUFpRTtBQUNqRSxxQ0FBNkM7QUFHN0MsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtJQUVyQyxNQUFNLE1BQU0sR0FBRyxlQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFBO0lBQzNDLElBQUksUUFBeUIsQ0FBQTtJQUU3QixJQUFJLFdBQW1CLENBQUE7SUFDdkIsSUFBSSxRQUFnQixDQUFBO0lBQ3BCLElBQUksYUFBcUIsQ0FBQTtJQUV6QixNQUFNLFlBQVksR0FBRyxJQUFBLHFCQUFhLEdBQUUsQ0FBQTtJQUNwQyxNQUFNLGVBQWUsR0FBRyxJQUFBLHFCQUFhLEdBQUUsQ0FBQTtJQUV2QyxNQUFNLGVBQWUsR0FBRyxJQUFBLHVDQUFnQixFQUFDLGVBQWUsQ0FBQyxDQUFBO0lBRXpELFNBQVMsQ0FBQyxLQUFLLElBQUcsRUFBRTtRQUNuQixRQUFRLEdBQUcsTUFBTSxJQUFBLHFCQUFZLEVBQUMsWUFBWSxDQUFDLENBQUE7UUFDM0MsV0FBVyxHQUFHLGtCQUFrQixZQUFZLEdBQUcsb0JBQVcsRUFBRSxDQUFBO1FBQzVELE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQTtRQUN4RCxRQUFRLEdBQUcscUJBQXFCLGVBQWUsS0FBSyxDQUFBO1FBQ3BELGFBQWEsR0FBRyxJQUFBLHdCQUFnQixHQUFFLENBQUE7UUFFbEMsOENBQThDO1FBQzlDLHVCQUF1QjtRQUN2QixxQkFBUyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsR0FBRztZQUN4Qyx1QkFBdUIsRUFBRSxLQUFLO1NBQzlCLENBQUE7SUFDRixDQUFDLENBQUMsQ0FBQTtJQUVGLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDYixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUE7UUFDNUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2hCLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDL0IsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsa0RBQWtELEVBQUUsS0FBSyxJQUFHLEVBQUU7UUFDaEUsTUFBTSxNQUFNLENBQ1gsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUN0QixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFDdkIsT0FBTyxFQUFFLDRCQUE0QjtTQUNyQyxDQUFDLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxzREFBc0QsRUFBRSxLQUFLLElBQUcsRUFBRTtRQUNwRSxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEseUJBQWlCLEVBQ25DLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUMvQyxNQUFNLENBQUMsVUFBVSxDQUNqQixDQUFBO1FBRUQsTUFBTSxNQUFNLENBQ1gsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUNqQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFDdkIsT0FBTyxFQUFFLGdEQUFnRDtTQUN6RCxDQUFDLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxLQUFLLElBQUcsRUFBRTtRQUN4RCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEseUJBQWlCLEVBQ25DLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUM1QyxNQUFNLENBQUMsVUFBVSxDQUNqQixDQUFBO1FBRUQsTUFBTSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDeEIsQ0FBQyxDQUFDLENBQUE7SUFFRixTQUFTLFdBQVcsQ0FBQyxXQUE4QztRQUNsRSxNQUFNLElBQUksR0FBRyxhQUFhLENBQUE7UUFDMUIsT0FBTyxJQUFBLDhCQUFxQixFQUFDO1lBQzVCLElBQUksRUFBRSxNQUFNO1lBQ1osTUFBTSxFQUFFO2dCQUNQLEdBQUcsRUFBRSxRQUFRO2dCQUNiLE1BQU0sRUFBRSxLQUFLO2dCQUNiLGtCQUFrQixFQUFFLEVBQUU7Z0JBQ3RCLGVBQWUsRUFBRTtvQkFDaEI7d0JBQ0MsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLEtBQUssRUFBRSxHQUFHLElBQUksV0FBVztxQkFDekI7aUJBQ0Q7YUFDRDtZQUNELFlBQVksRUFBRTtnQkFDYixtQkFBbUIsRUFBRSxVQUFVLElBQUksRUFBRTthQUNyQztZQUNELGVBQWUsRUFBRSxhQUFhO1lBQzlCLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFO1NBQ3pDLENBQUMsQ0FBQTtJQUNILENBQUM7QUFDRixDQUFDLENBQUMsQ0FBQSJ9
@@ -1,169 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const logger_1 = require("../utils/logger");
4
- jest.mock('../utils/ws', () => {
5
- return {
6
- makeWebSocket() {
7
- mockWs = new MockWS();
8
- return mockWs;
9
- }
10
- };
11
- });
12
- const utils_1 = require("../tests/utils");
13
- const bgp_listener_1 = require("../utils/bgp-listener");
14
- describe('BGP Listener', () => {
15
- let listener;
16
- beforeEach(async () => {
17
- listener = (0, bgp_listener_1.createBgpListener)(logger_1.logger);
18
- await (0, utils_1.delay)(10);
19
- mockWs.onopen();
20
- });
21
- afterEach(() => {
22
- listener.close();
23
- expect(mockWs.close).toHaveBeenCalled();
24
- });
25
- it('should listen for BGP announcements', async () => {
26
- expect(mockWs.send).toHaveBeenCalled();
27
- });
28
- it('should callback on BGP announcement overlap', async () => {
29
- const MOCK_CALLBACK = jest.fn();
30
- const cancel = listener.onOverlap(['43.240.13.21'], MOCK_CALLBACK);
31
- mockWs.onmessage(MOCK_MSG_EVENT);
32
- expect(MOCK_CALLBACK).toHaveBeenCalled();
33
- cancel();
34
- mockWs.onmessage(MOCK_MSG_EVENT);
35
- expect(MOCK_CALLBACK).toHaveBeenCalledTimes(1);
36
- });
37
- it('should not callback on BGP announcement if no overlap', async () => {
38
- const MOCK_CALLBACK = jest.fn();
39
- listener.onOverlap(['44.240.13.21'], MOCK_CALLBACK);
40
- mockWs.onmessage(MOCK_MSG_EVENT);
41
- expect(MOCK_CALLBACK).not.toHaveBeenCalled();
42
- });
43
- });
44
- let mockWs;
45
- class MockWS {
46
- constructor() {
47
- this.send = jest.fn();
48
- this.close = jest.fn();
49
- }
50
- }
51
- const MOCK_ANNOUNCEMENT_MSG = {
52
- 'type': 'ris_message',
53
- 'data': {
54
- 'timestamp': 1736308898.1,
55
- 'peer': '192.65.185.3',
56
- 'peer_asn': '513',
57
- 'id': '192.65.185.3-0194441339340000',
58
- 'host': 'rrc04.ripe.net',
59
- 'type': 'UPDATE',
60
- 'path': [
61
- 513,
62
- 29222,
63
- 29222,
64
- 3303,
65
- 3356,
66
- 3223,
67
- 55933,
68
- 55933
69
- ],
70
- 'community': [
71
- [
72
- 513,
73
- 29222
74
- ],
75
- [
76
- 3223,
77
- 2
78
- ],
79
- [
80
- 3223,
81
- 202
82
- ],
83
- [
84
- 3223,
85
- 666
86
- ],
87
- [
88
- 3303,
89
- 1004
90
- ],
91
- [
92
- 3303,
93
- 1006
94
- ],
95
- [
96
- 3303,
97
- 3052
98
- ],
99
- [
100
- 3356,
101
- 2
102
- ],
103
- [
104
- 3356,
105
- 22
106
- ],
107
- [
108
- 3356,
109
- 100
110
- ],
111
- [
112
- 3356,
113
- 123
114
- ],
115
- [
116
- 3356,
117
- 501
118
- ],
119
- [
120
- 3356,
121
- 901
122
- ],
123
- [
124
- 3356,
125
- 2065
126
- ],
127
- [
128
- 3356,
129
- 10725
130
- ],
131
- [
132
- 22222,
133
- 1299
134
- ],
135
- [
136
- 22233,
137
- 10022
138
- ],
139
- [
140
- 22233,
141
- 10030
142
- ],
143
- [
144
- 22233,
145
- 10060
146
- ],
147
- [
148
- 29222,
149
- 100
150
- ],
151
- [
152
- 29222,
153
- 3303
154
- ]
155
- ],
156
- 'origin': 'INCOMPLETE',
157
- 'announcements': [
158
- {
159
- 'next_hop': '192.65.185.3',
160
- 'prefixes': [
161
- '43.240.13.0/24'
162
- ]
163
- }
164
- ],
165
- 'withdrawals': []
166
- }
167
- };
168
- const MOCK_MSG_EVENT = new MessageEvent('message', { data: JSON.stringify(MOCK_ANNOUNCEMENT_MSG) });
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5iZ3AtbGlzdGVuZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdHMvdGVzdC5iZ3AtbGlzdGVuZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSw2Q0FBeUM7QUFFekMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO0lBQzdCLE9BQU87UUFDTixhQUFhO1lBQ1osTUFBTSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUE7WUFDckIsT0FBTyxNQUFNLENBQUE7UUFDZCxDQUFDO0tBQ0QsQ0FBQTtBQUNGLENBQUMsQ0FBQyxDQUFBO0FBRUYsMkNBQXVDO0FBQ3ZDLHlEQUEwRDtBQUUxRCxRQUFRLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRTtJQUU3QixJQUFJLFFBQXFCLENBQUE7SUFDekIsVUFBVSxDQUFDLEtBQUssSUFBRyxFQUFFO1FBQ3BCLFFBQVEsR0FBRyxJQUFBLGdDQUFpQixFQUFDLGVBQU0sQ0FBQyxDQUFBO1FBQ3BDLE1BQU0sSUFBQSxhQUFLLEVBQUMsRUFBRSxDQUFDLENBQUE7UUFFZixNQUFNLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDaEIsQ0FBQyxDQUFDLENBQUE7SUFFRixTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2QsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtJQUN4QyxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxxQ0FBcUMsRUFBRSxLQUFLLElBQUcsRUFBRTtRQUNuRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUE7SUFDdkMsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsNkNBQTZDLEVBQUUsS0FBSyxJQUFHLEVBQUU7UUFDM0QsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFB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