@joclaim/attestor-core 0.2.0 → 0.2.3

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 (420) hide show
  1. package/README.md +21 -15
  2. package/lib/avs/abis/avsDirectoryABI.d.ts +60 -0
  3. package/lib/avs/abis/avsDirectoryABI.js +340 -0
  4. package/lib/avs/abis/delegationABI.d.ts +126 -0
  5. package/lib/avs/abis/delegationABI.js +1 -0
  6. package/lib/avs/abis/registryABI.d.ts +136 -0
  7. package/lib/avs/abis/registryABI.js +725 -0
  8. package/lib/avs/client/create-claim-on-avs.d.ts +12 -0
  9. package/lib/avs/client/create-claim-on-avs.js +138 -0
  10. package/lib/avs/config.d.ts +7 -0
  11. package/lib/avs/config.js +20 -0
  12. package/lib/avs/contracts/ReclaimServiceManager.d.ts +697 -0
  13. package/lib/avs/contracts/ReclaimServiceManager.js +1 -0
  14. package/lib/avs/contracts/common.d.ts +21 -0
  15. package/lib/avs/contracts/common.js +1 -0
  16. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.d.ts +888 -0
  17. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +1169 -0
  18. package/lib/avs/contracts/factories/index.d.ts +1 -0
  19. package/{src/avs/contracts/factories/index.ts → lib/avs/contracts/factories/index.js} +1 -1
  20. package/{src/avs/contracts/index.ts → lib/avs/contracts/index.d.ts} +0 -3
  21. package/lib/avs/contracts/index.js +2 -0
  22. package/lib/avs/types/index.d.ts +55 -0
  23. package/lib/avs/types/index.js +1 -0
  24. package/lib/avs/utils/contracts.d.ts +21 -0
  25. package/lib/avs/utils/contracts.js +33 -0
  26. package/lib/avs/utils/register.d.ts +27 -0
  27. package/lib/avs/utils/register.js +78 -0
  28. package/lib/avs/utils/tasks.d.ts +22 -0
  29. package/lib/avs/utils/tasks.js +40 -0
  30. package/lib/client/create-claim.d.ts +5 -0
  31. package/lib/client/create-claim.js +437 -0
  32. package/lib/client/index.d.ts +3 -0
  33. package/lib/client/index.js +3 -0
  34. package/lib/client/tunnels/make-rpc-tcp-tunnel.d.ts +16 -0
  35. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +51 -0
  36. package/lib/client/tunnels/make-rpc-tls-tunnel.d.ts +26 -0
  37. package/lib/client/tunnels/make-rpc-tls-tunnel.js +131 -0
  38. package/lib/client/utils/attestor-pool.d.ts +8 -0
  39. package/lib/client/utils/attestor-pool.js +25 -0
  40. package/lib/client/utils/client-socket.d.ts +11 -0
  41. package/lib/client/utils/client-socket.js +98 -0
  42. package/lib/client/utils/message-handler.d.ts +4 -0
  43. package/lib/client/utils/message-handler.js +87 -0
  44. package/lib/config/index.d.ts +30 -0
  45. package/lib/config/index.js +43 -0
  46. package/lib/external-rpc/benchmark.d.ts +1 -0
  47. package/lib/external-rpc/benchmark.js +69 -0
  48. package/lib/external-rpc/event-bus.d.ts +7 -0
  49. package/lib/external-rpc/event-bus.js +14 -0
  50. package/lib/external-rpc/handle-incoming-msg.d.ts +2 -0
  51. package/lib/external-rpc/handle-incoming-msg.js +233 -0
  52. package/lib/external-rpc/index.d.ts +3 -0
  53. package/lib/external-rpc/index.js +3 -0
  54. package/lib/external-rpc/jsc-polyfills/1.d.ts +14 -0
  55. package/lib/external-rpc/jsc-polyfills/1.js +82 -0
  56. package/lib/external-rpc/jsc-polyfills/2.d.ts +1 -0
  57. package/lib/external-rpc/jsc-polyfills/2.js +20 -0
  58. package/lib/external-rpc/jsc-polyfills/event.d.ts +10 -0
  59. package/lib/external-rpc/jsc-polyfills/event.js +14 -0
  60. package/lib/external-rpc/jsc-polyfills/index.d.ts +2 -0
  61. package/lib/external-rpc/jsc-polyfills/index.js +2 -0
  62. package/lib/external-rpc/jsc-polyfills/ws.d.ts +21 -0
  63. package/lib/external-rpc/jsc-polyfills/ws.js +81 -0
  64. package/lib/external-rpc/setup-browser.d.ts +6 -0
  65. package/lib/external-rpc/setup-browser.js +33 -0
  66. package/lib/external-rpc/setup-jsc.d.ts +24 -0
  67. package/lib/external-rpc/setup-jsc.js +22 -0
  68. package/lib/external-rpc/types.d.ts +213 -0
  69. package/lib/external-rpc/types.js +1 -0
  70. package/lib/external-rpc/utils.d.ts +20 -0
  71. package/lib/external-rpc/utils.js +100 -0
  72. package/lib/external-rpc/zk.d.ts +14 -0
  73. package/lib/external-rpc/zk.js +63 -0
  74. package/lib/index.d.ts +9 -0
  75. package/lib/index.js +9 -0
  76. package/lib/mechain/abis/governanceABI.d.ts +50 -0
  77. package/lib/mechain/abis/governanceABI.js +458 -0
  78. package/lib/mechain/abis/taskABI.d.ts +157 -0
  79. package/lib/mechain/abis/taskABI.js +509 -0
  80. package/lib/mechain/client/create-claim-on-mechain.d.ts +10 -0
  81. package/lib/mechain/client/create-claim-on-mechain.js +28 -0
  82. package/lib/mechain/client/index.d.ts +1 -0
  83. package/lib/mechain/client/index.js +1 -0
  84. package/lib/mechain/constants/index.d.ts +3 -0
  85. package/{src/mechain/constants/index.ts → lib/mechain/constants/index.js} +3 -5
  86. package/lib/mechain/index.d.ts +2 -0
  87. package/lib/mechain/index.js +2 -0
  88. package/lib/mechain/types/index.d.ts +23 -0
  89. package/lib/mechain/types/index.js +1 -0
  90. package/lib/proto/api.d.ts +633 -0
  91. package/lib/proto/api.js +4258 -0
  92. package/lib/proto/tee-bundle.d.ts +135 -0
  93. package/lib/proto/tee-bundle.js +1161 -0
  94. package/lib/providers/http/index.d.ts +18 -0
  95. package/lib/providers/http/index.js +658 -0
  96. package/lib/providers/http/patch-parse5-tree.d.ts +6 -0
  97. package/lib/providers/http/patch-parse5-tree.js +33 -0
  98. package/lib/providers/http/utils.d.ts +77 -0
  99. package/lib/providers/http/utils.js +324 -0
  100. package/lib/providers/index.d.ts +4 -0
  101. package/lib/providers/index.js +4 -0
  102. package/lib/scripts/build-browser.d.ts +1 -0
  103. package/lib/scripts/build-browser.js +37 -0
  104. package/lib/scripts/build-jsc.d.ts +1 -0
  105. package/lib/scripts/build-jsc.js +49 -0
  106. package/lib/scripts/check-avs-registration.d.ts +1 -0
  107. package/lib/scripts/check-avs-registration.js +26 -0
  108. package/lib/scripts/fallbacks/crypto.d.ts +1 -0
  109. package/lib/scripts/fallbacks/crypto.js +1 -0
  110. package/lib/scripts/fallbacks/empty.d.ts +3 -0
  111. package/lib/scripts/fallbacks/empty.js +1 -0
  112. package/lib/scripts/fallbacks/re2.d.ts +1 -0
  113. package/lib/scripts/fallbacks/re2.js +4 -0
  114. package/lib/scripts/fallbacks/snarkjs.d.ts +1 -0
  115. package/lib/scripts/fallbacks/snarkjs.js +1 -0
  116. package/lib/scripts/generate-provider-types.d.ts +5 -0
  117. package/lib/scripts/generate-provider-types.js +78 -0
  118. package/lib/scripts/generate-receipt.d.ts +9 -0
  119. package/lib/scripts/generate-receipt.js +90 -0
  120. package/lib/scripts/generate-toprf-keys.d.ts +1 -0
  121. package/lib/scripts/generate-toprf-keys.js +20 -0
  122. package/lib/scripts/jsc-cli-rpc.d.ts +1 -0
  123. package/lib/scripts/jsc-cli-rpc.js +37 -0
  124. package/lib/scripts/register-avs-operator.d.ts +1 -0
  125. package/lib/scripts/register-avs-operator.js +4 -0
  126. package/lib/scripts/start-server.d.ts +1 -0
  127. package/lib/scripts/start-server.js +13 -0
  128. package/lib/scripts/update-avs-metadata.d.ts +1 -0
  129. package/lib/scripts/update-avs-metadata.js +19 -0
  130. package/lib/scripts/utils.d.ts +1 -0
  131. package/lib/scripts/utils.js +7 -0
  132. package/lib/scripts/whitelist-operator.d.ts +1 -0
  133. package/lib/scripts/whitelist-operator.js +15 -0
  134. package/lib/server/create-server.d.ts +7 -0
  135. package/lib/server/create-server.js +122 -0
  136. package/lib/server/handlers/claimTeeBundle.d.ts +6 -0
  137. package/lib/server/handlers/claimTeeBundle.js +206 -0
  138. package/lib/server/handlers/claimTunnel.d.ts +2 -0
  139. package/lib/server/handlers/claimTunnel.js +73 -0
  140. package/lib/server/handlers/completeClaimOnChain.d.ts +2 -0
  141. package/lib/server/handlers/completeClaimOnChain.js +22 -0
  142. package/lib/server/handlers/createClaimOnChain.d.ts +2 -0
  143. package/lib/server/handlers/createClaimOnChain.js +26 -0
  144. package/lib/server/handlers/createTaskOnMechain.d.ts +2 -0
  145. package/lib/server/handlers/createTaskOnMechain.js +47 -0
  146. package/lib/server/handlers/createTunnel.d.ts +2 -0
  147. package/lib/server/handlers/createTunnel.js +93 -0
  148. package/lib/server/handlers/disconnectTunnel.d.ts +2 -0
  149. package/lib/server/handlers/disconnectTunnel.js +5 -0
  150. package/lib/server/handlers/fetchCertificateBytes.d.ts +2 -0
  151. package/lib/server/handlers/fetchCertificateBytes.js +41 -0
  152. package/lib/server/handlers/index.d.ts +4 -0
  153. package/lib/server/handlers/index.js +22 -0
  154. package/lib/server/handlers/init.d.ts +2 -0
  155. package/lib/server/handlers/init.js +30 -0
  156. package/lib/server/handlers/toprf.d.ts +2 -0
  157. package/lib/server/handlers/toprf.js +16 -0
  158. package/lib/server/index.d.ts +4 -0
  159. package/lib/server/index.js +4 -0
  160. package/lib/server/provider-api.d.ts +9 -0
  161. package/lib/server/provider-api.js +98 -0
  162. package/lib/server/provider-store.d.ts +53 -0
  163. package/lib/server/provider-store.js +80 -0
  164. package/lib/server/session-api.d.ts +9 -0
  165. package/lib/server/session-api.js +95 -0
  166. package/lib/server/session-store.d.ts +14 -0
  167. package/lib/server/session-store.js +36 -0
  168. package/lib/server/socket.d.ts +13 -0
  169. package/lib/server/socket.js +109 -0
  170. package/lib/server/tunnels/make-tcp-tunnel.d.ts +22 -0
  171. package/lib/server/tunnels/make-tcp-tunnel.js +177 -0
  172. package/lib/server/utils/apm.d.ts +11 -0
  173. package/lib/server/utils/apm.js +36 -0
  174. package/lib/server/utils/assert-valid-claim-request.d.ts +31 -0
  175. package/lib/server/utils/assert-valid-claim-request.js +229 -0
  176. package/lib/server/utils/config-env.d.ts +1 -0
  177. package/lib/server/utils/config-env.js +4 -0
  178. package/lib/server/utils/dns.d.ts +1 -0
  179. package/lib/server/utils/dns.js +18 -0
  180. package/lib/server/utils/gcp-attestation.d.ts +17 -0
  181. package/lib/server/utils/gcp-attestation.js +289 -0
  182. package/lib/server/utils/generics.d.ts +22 -0
  183. package/lib/server/utils/generics.js +51 -0
  184. package/lib/server/utils/iso.d.ts +1 -0
  185. package/lib/server/utils/iso.js +256 -0
  186. package/lib/server/utils/keep-alive.d.ts +7 -0
  187. package/lib/server/utils/keep-alive.js +38 -0
  188. package/lib/server/utils/nitro-attestation.d.ts +33 -0
  189. package/lib/server/utils/nitro-attestation.js +325 -0
  190. package/lib/server/utils/process-handshake.d.ts +13 -0
  191. package/lib/server/utils/process-handshake.js +214 -0
  192. package/lib/server/utils/proxy-session.d.ts +1 -0
  193. package/lib/server/utils/proxy-session.js +6 -0
  194. package/lib/server/utils/tee-oprf-verification.d.ts +22 -0
  195. package/lib/server/utils/tee-oprf-verification.js +160 -0
  196. package/lib/server/utils/tee-transcript-reconstruction.d.ts +24 -0
  197. package/lib/server/utils/tee-transcript-reconstruction.js +187 -0
  198. package/lib/server/utils/tee-verification.d.ts +27 -0
  199. package/lib/server/utils/tee-verification.js +365 -0
  200. package/lib/server/utils/validation.d.ts +2 -0
  201. package/lib/server/utils/validation.js +38 -0
  202. package/lib/types/bgp.d.ts +11 -0
  203. package/lib/types/bgp.js +1 -0
  204. package/lib/types/claims.d.ts +73 -0
  205. package/lib/types/claims.js +1 -0
  206. package/lib/types/client.d.ts +163 -0
  207. package/lib/types/client.js +1 -0
  208. package/lib/types/general.d.ts +54 -0
  209. package/lib/types/general.js +1 -0
  210. package/lib/types/handlers.d.ts +10 -0
  211. package/lib/types/handlers.js +1 -0
  212. package/lib/types/index.d.ts +10 -0
  213. package/lib/types/index.js +10 -0
  214. package/lib/types/providers.d.ts +161 -0
  215. package/lib/types/providers.gen.d.ts +443 -0
  216. package/lib/types/providers.gen.js +10 -0
  217. package/lib/types/providers.js +1 -0
  218. package/lib/types/rpc.d.ts +35 -0
  219. package/lib/types/rpc.js +1 -0
  220. package/lib/types/signatures.d.ts +28 -0
  221. package/lib/types/signatures.js +1 -0
  222. package/lib/types/tunnel.d.ts +18 -0
  223. package/lib/types/tunnel.js +1 -0
  224. package/lib/types/zk.d.ts +28 -0
  225. package/lib/types/zk.js +1 -0
  226. package/lib/utils/auth.d.ts +8 -0
  227. package/lib/utils/auth.js +59 -0
  228. package/lib/utils/b64-json.d.ts +2 -0
  229. package/lib/utils/b64-json.js +17 -0
  230. package/lib/utils/bgp-listener.d.ts +7 -0
  231. package/lib/utils/bgp-listener.js +119 -0
  232. package/lib/utils/claims.d.ts +33 -0
  233. package/lib/utils/claims.js +101 -0
  234. package/lib/utils/env.d.ts +3 -0
  235. package/lib/utils/env.js +15 -0
  236. package/lib/utils/error.d.ts +26 -0
  237. package/lib/utils/error.js +50 -0
  238. package/lib/utils/generics.d.ts +114 -0
  239. package/lib/utils/generics.js +317 -0
  240. package/lib/utils/http-parser.d.ts +59 -0
  241. package/lib/utils/http-parser.js +246 -0
  242. package/lib/utils/index.d.ts +13 -0
  243. package/lib/utils/index.js +13 -0
  244. package/lib/utils/logger.d.ts +13 -0
  245. package/lib/utils/logger.js +91 -0
  246. package/lib/utils/prepare-packets.d.ts +16 -0
  247. package/lib/utils/prepare-packets.js +62 -0
  248. package/lib/utils/redactions.d.ts +62 -0
  249. package/lib/utils/redactions.js +148 -0
  250. package/lib/utils/retries.d.ts +12 -0
  251. package/lib/utils/retries.js +24 -0
  252. package/lib/utils/signatures/eth.d.ts +2 -0
  253. package/lib/utils/signatures/eth.js +29 -0
  254. package/lib/utils/signatures/index.d.ts +5 -0
  255. package/lib/utils/signatures/index.js +7 -0
  256. package/lib/utils/socket-base.d.ts +23 -0
  257. package/lib/utils/socket-base.js +90 -0
  258. package/lib/utils/tls.d.ts +2 -0
  259. package/{src/utils/tls.ts → lib/utils/tls.js} +28 -35
  260. package/lib/utils/ws.d.ts +7 -0
  261. package/lib/utils/ws.js +22 -0
  262. package/lib/utils/zk.d.ts +70 -0
  263. package/lib/utils/zk.js +572 -0
  264. package/package.json +19 -12
  265. package/src/avs/abis/avsDirectoryABI.ts +0 -340
  266. package/src/avs/abis/delegationABI.ts +0 -1
  267. package/src/avs/abis/registryABI.ts +0 -725
  268. package/src/avs/client/create-claim-on-avs.ts +0 -206
  269. package/src/avs/config.ts +0 -25
  270. package/src/avs/contracts/ReclaimServiceManager.ts +0 -1457
  271. package/src/avs/contracts/common.ts +0 -44
  272. package/src/avs/contracts/factories/ReclaimServiceManager__factory.ts +0 -1213
  273. package/src/avs/tests/test.operator.ts +0 -413
  274. package/src/avs/tests/utils.ts +0 -51
  275. package/src/avs/types/index.ts +0 -60
  276. package/src/avs/utils/contracts.ts +0 -66
  277. package/src/avs/utils/register.ts +0 -125
  278. package/src/avs/utils/tasks.ts +0 -76
  279. package/src/client/create-claim.ts +0 -626
  280. package/src/client/index.ts +0 -3
  281. package/src/client/tunnels/make-rpc-tcp-tunnel.ts +0 -78
  282. package/src/client/tunnels/make-rpc-tls-tunnel.ts +0 -172
  283. package/src/client/utils/attestor-pool.ts +0 -35
  284. package/src/client/utils/client-socket.ts +0 -160
  285. package/src/client/utils/message-handler.ts +0 -116
  286. package/src/config/index.ts +0 -65
  287. package/src/external-rpc/benchmark.ts +0 -102
  288. package/src/external-rpc/event-bus.ts +0 -19
  289. package/src/external-rpc/global.d.ts +0 -20
  290. package/src/external-rpc/handle-incoming-msg.ts +0 -308
  291. package/src/external-rpc/index.ts +0 -3
  292. package/src/external-rpc/jsc-polyfills/1.ts +0 -117
  293. package/src/external-rpc/jsc-polyfills/2.ts +0 -24
  294. package/src/external-rpc/jsc-polyfills/event.ts +0 -16
  295. package/src/external-rpc/jsc-polyfills/index.ts +0 -2
  296. package/src/external-rpc/jsc-polyfills/ws.ts +0 -105
  297. package/src/external-rpc/setup-browser.ts +0 -42
  298. package/src/external-rpc/setup-jsc.ts +0 -48
  299. package/src/external-rpc/types.ts +0 -289
  300. package/src/external-rpc/utils.ts +0 -126
  301. package/src/external-rpc/zk.ts +0 -79
  302. package/src/index.ts +0 -9
  303. package/src/mechain/abis/governanceABI.ts +0 -458
  304. package/src/mechain/abis/taskABI.ts +0 -509
  305. package/src/mechain/client/create-claim-on-mechain.ts +0 -52
  306. package/src/mechain/client/index.ts +0 -1
  307. package/src/mechain/index.ts +0 -2
  308. package/src/mechain/types/index.ts +0 -29
  309. package/src/proto/api.ts +0 -5285
  310. package/src/proto/tee-bundle.ts +0 -1413
  311. package/src/providers/http/index.ts +0 -873
  312. package/src/providers/http/patch-parse5-tree.ts +0 -49
  313. package/src/providers/http/utils.ts +0 -439
  314. package/src/providers/index.ts +0 -8
  315. package/src/scripts/build-browser.sh +0 -9
  316. package/src/scripts/build-browser.ts +0 -40
  317. package/src/scripts/build-jsc.ts +0 -55
  318. package/src/scripts/check-avs-registration.ts +0 -38
  319. package/src/scripts/contract-data-gen.sh +0 -8
  320. package/src/scripts/fallbacks/crypto.ts +0 -1
  321. package/src/scripts/fallbacks/empty.ts +0 -2
  322. package/src/scripts/fallbacks/re2.ts +0 -5
  323. package/src/scripts/fallbacks/snarkjs.ts +0 -5
  324. package/src/scripts/generate-certs.sh +0 -11
  325. package/src/scripts/generate-proto.sh +0 -5
  326. package/src/scripts/generate-provider-types.ts +0 -121
  327. package/src/scripts/generate-receipt.ts +0 -138
  328. package/src/scripts/generate-toprf-keys.ts +0 -30
  329. package/src/scripts/jsc-cli-rpc.ts +0 -48
  330. package/src/scripts/register-avs-operator.ts +0 -5
  331. package/src/scripts/start-server.ts +0 -17
  332. package/src/scripts/update-avs-metadata.ts +0 -26
  333. package/src/scripts/utils.ts +0 -8
  334. package/src/scripts/whitelist-operator.ts +0 -22
  335. package/src/server/create-server.ts +0 -169
  336. package/src/server/handlers/claimTeeBundle.ts +0 -308
  337. package/src/server/handlers/claimTunnel.ts +0 -106
  338. package/src/server/handlers/completeClaimOnChain.ts +0 -36
  339. package/src/server/handlers/createClaimOnChain.ts +0 -39
  340. package/src/server/handlers/createTaskOnMechain.ts +0 -80
  341. package/src/server/handlers/createTunnel.ts +0 -128
  342. package/src/server/handlers/disconnectTunnel.ts +0 -11
  343. package/src/server/handlers/fetchCertificateBytes.ts +0 -66
  344. package/src/server/handlers/index.ts +0 -24
  345. package/src/server/handlers/init.ts +0 -46
  346. package/src/server/handlers/toprf.ts +0 -25
  347. package/src/server/index.ts +0 -4
  348. package/src/server/provider-api.ts +0 -118
  349. package/src/server/provider-store.ts +0 -117
  350. package/src/server/session-api.ts +0 -115
  351. package/src/server/session-store.ts +0 -60
  352. package/src/server/socket.ts +0 -156
  353. package/src/server/tunnels/make-tcp-tunnel.ts +0 -275
  354. package/src/server/utils/apm.ts +0 -49
  355. package/src/server/utils/assert-valid-claim-request.ts +0 -375
  356. package/src/server/utils/config-env.ts +0 -6
  357. package/src/server/utils/dns.ts +0 -25
  358. package/src/server/utils/gcp-attestation.ts +0 -415
  359. package/src/server/utils/generics.ts +0 -68
  360. package/src/server/utils/iso.ts +0 -258
  361. package/src/server/utils/keep-alive.ts +0 -50
  362. package/src/server/utils/nitro-attestation.ts +0 -396
  363. package/src/server/utils/process-handshake.ts +0 -311
  364. package/src/server/utils/proxy-session.ts +0 -6
  365. package/src/server/utils/tee-oprf-verification.ts +0 -231
  366. package/src/server/utils/tee-transcript-reconstruction.ts +0 -254
  367. package/src/server/utils/tee-verification.ts +0 -513
  368. package/src/server/utils/validation.ts +0 -57
  369. package/src/tests/auth.test.ts +0 -105
  370. package/src/tests/bgp-listener.test.ts +0 -193
  371. package/src/tests/claim-creation.test.ts +0 -415
  372. package/src/tests/describe-with-server.ts +0 -94
  373. package/src/tests/gcp-attestation.test.ts +0 -206
  374. package/src/tests/http-parser.test.ts +0 -135
  375. package/src/tests/http-provider-utils.test.ts +0 -3306
  376. package/src/tests/http-provider.test.ts +0 -125
  377. package/src/tests/jsc.test_mac.ts +0 -296
  378. package/src/tests/mock-provider-server.ts +0 -106
  379. package/src/tests/mocks.ts +0 -25
  380. package/src/tests/proof_bundle.bin +0 -0
  381. package/src/tests/rpc-communication.test.ts +0 -115
  382. package/src/tests/rpc-tunnel.test.ts +0 -239
  383. package/src/tests/signatures.test.ts +0 -37
  384. package/src/tests/tcp-tunnel.test.ts +0 -154
  385. package/src/tests/tee-bundle.test.ts +0 -321
  386. package/src/tests/tee-signatures.test.ts +0 -81
  387. package/src/tests/utils.ts +0 -108
  388. package/src/tests/verification_bundle.pb +0 -0
  389. package/src/tests/verification_bundle_tee.pb +0 -0
  390. package/src/tests/zk.test.ts +0 -453
  391. package/src/types/bgp.ts +0 -17
  392. package/src/types/claims.ts +0 -79
  393. package/src/types/client.ts +0 -205
  394. package/src/types/general.ts +0 -61
  395. package/src/types/handlers.ts +0 -16
  396. package/src/types/index.ts +0 -10
  397. package/src/types/providers.gen.ts +0 -135
  398. package/src/types/providers.ts +0 -203
  399. package/src/types/rpc.ts +0 -46
  400. package/src/types/signatures.ts +0 -29
  401. package/src/types/tunnel.ts +0 -25
  402. package/src/types/zk.ts +0 -31
  403. package/src/utils/auth.ts +0 -92
  404. package/src/utils/b64-json.ts +0 -25
  405. package/src/utils/bgp-listener.ts +0 -159
  406. package/src/utils/claims.ts +0 -132
  407. package/src/utils/env.ts +0 -21
  408. package/src/utils/error.ts +0 -76
  409. package/src/utils/generics.ts +0 -429
  410. package/src/utils/http-parser.ts +0 -312
  411. package/src/utils/index.ts +0 -13
  412. package/src/utils/logger.ts +0 -114
  413. package/src/utils/prepare-packets.ts +0 -98
  414. package/src/utils/redactions.ts +0 -203
  415. package/src/utils/retries.ts +0 -41
  416. package/src/utils/signatures/eth.ts +0 -35
  417. package/src/utils/signatures/index.ts +0 -11
  418. package/src/utils/socket-base.ts +0 -132
  419. package/src/utils/ws.ts +0 -30
  420. package/src/utils/zk.ts +0 -908
@@ -1,11 +0,0 @@
1
- import type { RPCHandler } from '#src/types/index.ts'
2
-
3
- export const disconnectTunnel: RPCHandler<'disconnectTunnel'> = async(
4
- { id },
5
- { client }
6
- ) => {
7
- const tunnel = client.getTunnel(id)
8
- await tunnel.close()
9
-
10
- return {}
11
- }
@@ -1,66 +0,0 @@
1
- import { concatenateUint8Arrays, loadX509FromPem } from '@joclaim/tls'
2
-
3
- import { CERT_ALLOWED_MIMETYPES, MAX_CERT_SIZE_BYTES } from '#src/config/index.ts'
4
- import type { RPCHandler } from '#src/types/handlers.ts'
5
- import { AttestorError } from '#src/utils/error.ts'
6
-
7
- export const fetchCertificateBytes: RPCHandler<'fetchCertificateBytes'> = async(
8
- { url },
9
- ) => {
10
- const res = await fetch(url, {
11
- redirect: 'follow',
12
- signal: AbortSignal.timeout(10_000)
13
- })
14
- if(!res.ok) {
15
- res.body?.cancel('Not ok')
16
- throw new AttestorError(
17
- 'ERROR_CERTIFICATE_FETCH_FAILED',
18
- `Failed to fetch certificate from URL: ${url}, status: ${res.status}`
19
- )
20
- }
21
-
22
- const contentType = res.headers.get('content-type')
23
- if(!contentType || !CERT_ALLOWED_MIMETYPES.includes(contentType)) {
24
- res.body?.cancel('Mismatch')
25
- throw new AttestorError(
26
- 'ERROR_CERTIFICATE_FETCH_FAILED',
27
- `Invalid content-type when fetching certificate from URL: ${url},`
28
- + ` content-type: ${contentType}`
29
- )
30
- }
31
-
32
- if(!res.body) {
33
- throw new AttestorError(
34
- 'ERROR_CERTIFICATE_FETCH_FAILED',
35
- `No body in response when fetching certificate from URL: ${url}`
36
- )
37
- }
38
-
39
- let total = 0
40
- const byteArr: Uint8Array[] = []
41
- for await (const chunk of res.body) {
42
- total += chunk.length
43
- if(total > MAX_CERT_SIZE_BYTES) {
44
- res.body.cancel('Too many bytes')
45
- throw new AttestorError(
46
- 'ERROR_CERTIFICATE_FETCH_FAILED',
47
- `Certificate size exceeds maximum limit of ${MAX_CERT_SIZE_BYTES}b`
48
- )
49
- }
50
-
51
- byteArr.push(chunk)
52
- }
53
-
54
- const bytes = concatenateUint8Arrays(byteArr)
55
- try {
56
- const cert = loadX509FromPem(bytes)
57
- TLS_INTERMEDIATE_CA_CACHE[url] = cert
58
- } catch(err) {
59
- throw new AttestorError(
60
- 'ERROR_CERTIFICATE_FETCH_FAILED',
61
- `Failed to parse certificate, error: ${err.message}`
62
- )
63
- }
64
-
65
- return { bytes: concatenateUint8Arrays(byteArr) }
66
- }
@@ -1,24 +0,0 @@
1
- import { claimTeeBundle } from '#src/server/handlers/claimTeeBundle.ts'
2
- import { claimTunnel } from '#src/server/handlers/claimTunnel.ts'
3
- import { completeClaimOnChain } from '#src/server/handlers/completeClaimOnChain.ts'
4
- import { createClaimOnChain } from '#src/server/handlers/createClaimOnChain.ts'
5
- import { createTaskOnMechain } from '#src/server/handlers/createTaskOnMechain.ts'
6
- import { createTunnel } from '#src/server/handlers/createTunnel.ts'
7
- import { disconnectTunnel } from '#src/server/handlers/disconnectTunnel.ts'
8
- import { fetchCertificateBytes } from '#src/server/handlers/fetchCertificateBytes.ts'
9
- import { init } from '#src/server/handlers/init.ts'
10
- import { toprf } from '#src/server/handlers/toprf.ts'
11
- import type { RPCHandler, RPCType } from '#src/types/index.ts'
12
-
13
- export const HANDLERS: { [T in RPCType]: RPCHandler<T> } = {
14
- createTunnel,
15
- disconnectTunnel,
16
- claimTunnel,
17
- claimTeeBundle,
18
- init,
19
- createClaimOnChain,
20
- completeClaimOnChain,
21
- toprf,
22
- createTaskOnMechain,
23
- fetchCertificateBytes
24
- }
@@ -1,46 +0,0 @@
1
- import { ethers } from 'ethers'
2
-
3
- import type { RPCHandler } from '#src/types/index.ts'
4
- import { assertValidAuthRequest } from '#src/utils/auth.ts'
5
- import { getEnvVariable } from '#src/utils/env.ts'
6
- import { AttestorError } from '#src/utils/index.ts'
7
- import { SIGNATURES } from '#src/utils/signatures/index.ts'
8
-
9
- const TOPRF_PUBLIC_KEY = getEnvVariable('TOPRF_PUBLIC_KEY')
10
-
11
- export const init: RPCHandler<'init'> = async(
12
- initRequest,
13
- { client }
14
- ) => {
15
- if(client.isInitialised) {
16
- throw AttestorError.badRequest('Client already initialised')
17
- }
18
-
19
- if(!SIGNATURES[initRequest.signatureType]) {
20
- throw AttestorError.badRequest('Unsupported signature type')
21
- }
22
-
23
- if(initRequest.clientVersion <= 0) {
24
- throw AttestorError.badRequest('Unsupported client version')
25
- }
26
-
27
- await assertValidAuthRequest(
28
- initRequest.auth,
29
- initRequest.signatureType
30
- )
31
-
32
- if(initRequest.auth?.data) {
33
- client.logger = client.logger.child({
34
- userId: initRequest.auth.data.id
35
- })
36
- }
37
-
38
- client.metadata = initRequest
39
- client.isInitialised = true
40
-
41
- return {
42
- toprfPublicKey: TOPRF_PUBLIC_KEY
43
- ? ethers.utils.arrayify(TOPRF_PUBLIC_KEY)
44
- : new Uint8Array()
45
- }
46
- }
@@ -1,25 +0,0 @@
1
- import { ethers } from 'ethers'
2
-
3
- import type { RPCHandler } from '#src/types/index.ts'
4
- import { getEnvVariable } from '#src/utils/env.ts'
5
- import { getEngineString, makeDefaultOPRFOperator } from '#src/utils/index.ts'
6
-
7
- export const toprf: RPCHandler<'toprf'> = async(
8
- { maskedData, engine },
9
- { logger }
10
- ) => {
11
- const PRIVATE_KEY_STR = getEnvVariable('TOPRF_SHARE_PRIVATE_KEY')
12
- const PUBLIC_KEY_STR = getEnvVariable('TOPRF_SHARE_PUBLIC_KEY')
13
- if(!PRIVATE_KEY_STR || !PUBLIC_KEY_STR) {
14
- throw new Error('private/public keys not set. Cannot execute OPRF')
15
- }
16
-
17
- const PRIVATE_KEY = ethers.utils.arrayify(PRIVATE_KEY_STR)
18
- const PUBLIC_KEY = ethers.utils.arrayify(PUBLIC_KEY_STR)
19
-
20
- const engineStr = getEngineString(engine)
21
- const operator = makeDefaultOPRFOperator('chacha20', engineStr, logger)
22
- const res = await operator.evaluateOPRF(PRIVATE_KEY, maskedData)
23
-
24
- return { ...res, publicKeyShare: PUBLIC_KEY }
25
- }
@@ -1,4 +0,0 @@
1
- export * from './utils/config-env.ts'
2
- export * from './create-server.ts'
3
- export * from './tunnels/make-tcp-tunnel.ts'
4
- export * from './utils/assert-valid-claim-request.ts'
@@ -1,118 +0,0 @@
1
- import type { IncomingMessage, ServerResponse } from 'http'
2
- import { getProviderList, getProviderById, saveProvider, deleteProvider } from '#src/server/provider-store.ts'
3
- import { logger as LOGGER } from '#src/utils/index.ts'
4
-
5
- const logger = LOGGER.child({ module: 'provider-api' })
6
-
7
- function sendJson(res: ServerResponse, statusCode: number, data: unknown) {
8
- res.statusCode = statusCode
9
- res.setHeader('Content-Type', 'application/json')
10
- res.end(JSON.stringify(data))
11
- }
12
-
13
- function readBody(req: IncomingMessage): Promise<string> {
14
- return new Promise((resolve, reject) => {
15
- const chunks: Buffer[] = []
16
- req.on('data', (chunk: Buffer) => chunks.push(chunk))
17
- req.on('end', () => resolve(Buffer.concat(chunks).toString('utf-8')))
18
- req.on('error', reject)
19
- })
20
- }
21
-
22
- /**
23
- * Handle provider API requests:
24
- * GET /api/providers — list all providers (summary)
25
- * GET /api/providers/:id — get full provider config
26
- * POST /api/providers — create/update a provider
27
- * DELETE /api/providers/:id — delete a provider
28
- */
29
- export async function handleProviderApiRequest(
30
- req: IncomingMessage,
31
- res: ServerResponse
32
- ) {
33
- const url = new URL(req.url!, `http://${req.headers.host}`)
34
- const path = url.pathname
35
- const method = req.method?.toUpperCase()
36
-
37
- try {
38
- // GET /api/providers
39
- if(path === '/api/providers' && method === 'GET') {
40
- const list = getProviderList()
41
- sendJson(res, 200, { providers: list })
42
- return
43
- }
44
-
45
- // Match /api/providers/:id/custom-injection
46
- const injectionMatch = path.match(/^\/api\/providers\/(.+)\/custom-injection$/)
47
- if(injectionMatch && method === 'GET') {
48
- const providerId = decodeURIComponent(injectionMatch[1])
49
- const provider = getProviderById(providerId)
50
- if(!provider) {
51
- sendJson(res, 404, { error: `Provider '${providerId}' not found` })
52
- return
53
- }
54
-
55
- if(!provider.customInjection) {
56
- res.statusCode = 404
57
- res.setHeader('Content-Type', 'text/plain')
58
- res.end('No custom injection script for this provider')
59
- return
60
- }
61
-
62
- res.statusCode = 200
63
- res.setHeader('Content-Type', 'text/plain')
64
- res.end(provider.customInjection)
65
- return
66
- }
67
-
68
- // Match /api/providers/:id
69
- const match = path.match(/^\/api\/providers\/(.+)$/)
70
-
71
- if(match) {
72
- const providerId = decodeURIComponent(match[1])
73
-
74
- // GET /api/providers/:id
75
- if(method === 'GET') {
76
- const provider = getProviderById(providerId)
77
- if(!provider) {
78
- sendJson(res, 404, { error: `Provider '${providerId}' not found` })
79
- return
80
- }
81
-
82
- sendJson(res, 200, { providers: provider })
83
- return
84
- }
85
-
86
- // DELETE /api/providers/:id
87
- if(method === 'DELETE') {
88
- const deleted = deleteProvider(providerId)
89
- if(!deleted) {
90
- sendJson(res, 404, { error: `Provider '${providerId}' not found` })
91
- return
92
- }
93
-
94
- sendJson(res, 200, { message: 'Provider deleted' })
95
- return
96
- }
97
- }
98
-
99
- // POST /api/providers — create or update
100
- if(path === '/api/providers' && method === 'POST') {
101
- const body = await readBody(req)
102
- const provider = JSON.parse(body)
103
- if(!provider.providerId) {
104
- sendJson(res, 400, { error: 'Missing required field: providerId' })
105
- return
106
- }
107
-
108
- saveProvider(provider)
109
- sendJson(res, 200, { message: 'Provider saved', providerId: provider.providerId })
110
- return
111
- }
112
-
113
- sendJson(res, 404, { error: 'Not found' })
114
- } catch(err) {
115
- logger.error({ err, path, method }, 'Provider API error')
116
- sendJson(res, 500, { error: 'Internal server error' })
117
- }
118
- }
@@ -1,117 +0,0 @@
1
- import { readFileSync, readdirSync, writeFileSync, unlinkSync, existsSync, mkdirSync } from 'fs'
2
- import { join, resolve } from 'path'
3
- import { logger as LOGGER } from '#src/utils/index.ts'
4
-
5
- const logger = LOGGER.child({ module: 'provider-store' })
6
-
7
- export interface ProviderConfig {
8
- id: string
9
- providerId: string
10
- httpProviderId: string
11
- name: string
12
- description: string
13
- logoUrl: string
14
- loginUrl: string
15
- geoLocation: string
16
- injectionType: string
17
- disableRequestReplay: boolean
18
- verificationType: string
19
- requestData: unknown[]
20
- useIncognitoWebview: boolean
21
- customInjection: string
22
- userAgent: { ios: string; android: string }
23
- metadata: Record<string, unknown>
24
- version: { major: number; minor: number; patch: number }
25
- [key: string]: unknown
26
- }
27
-
28
- export interface ProviderSummary {
29
- providerId: string
30
- name: string
31
- description: string
32
- logoUrl: string
33
- }
34
-
35
- const DATA_DIR = resolve('data/providers')
36
-
37
- function ensureDataDir() {
38
- if(!existsSync(DATA_DIR)) {
39
- mkdirSync(DATA_DIR, { recursive: true })
40
- }
41
- }
42
-
43
- /**
44
- * Load all providers from JSON files in data/providers/
45
- */
46
- export function getAllProviders(): ProviderConfig[] {
47
- ensureDataDir()
48
- const files = readdirSync(DATA_DIR).filter(f => f.endsWith('.json'))
49
- const providers: ProviderConfig[] = []
50
- for(const file of files) {
51
- try {
52
- const content = readFileSync(join(DATA_DIR, file), 'utf-8')
53
- providers.push(JSON.parse(content))
54
- } catch(err) {
55
- logger.error({ err, file }, 'Failed to load provider file')
56
- }
57
- }
58
-
59
- return providers
60
- }
61
-
62
- /**
63
- * Get provider summaries (id, name, description, logoUrl)
64
- */
65
- export function getProviderList(): ProviderSummary[] {
66
- return getAllProviders().map(p => ({
67
- providerId: p.providerId,
68
- name: p.name,
69
- description: p.description,
70
- logoUrl: p.logoUrl,
71
- }))
72
- }
73
-
74
- /**
75
- * Get a single provider by providerId
76
- */
77
- export function getProviderById(providerId: string): ProviderConfig | undefined {
78
- ensureDataDir()
79
- // Try direct file lookup first (filename = providerId.json)
80
- const directPath = join(DATA_DIR, `${providerId}.json`)
81
- if(existsSync(directPath)) {
82
- try {
83
- const content = readFileSync(directPath, 'utf-8')
84
- return JSON.parse(content)
85
- } catch(err) {
86
- logger.error({ err, providerId }, 'Failed to load provider file')
87
- }
88
- }
89
-
90
- // Fallback: scan all files, match by providerId or httpProviderId
91
- const all = getAllProviders()
92
- return all.find(p => p.providerId === providerId || p.httpProviderId === providerId)
93
- }
94
-
95
- /**
96
- * Save or update a provider
97
- */
98
- export function saveProvider(provider: ProviderConfig): void {
99
- ensureDataDir()
100
- const filePath = join(DATA_DIR, `${provider.providerId}.json`)
101
- writeFileSync(filePath, JSON.stringify(provider, null, 2), 'utf-8')
102
- logger.info({ providerId: provider.providerId }, 'Provider saved')
103
- }
104
-
105
- /**
106
- * Delete a provider by providerId
107
- */
108
- export function deleteProvider(providerId: string): boolean {
109
- const filePath = join(DATA_DIR, `${providerId}.json`)
110
- if(existsSync(filePath)) {
111
- unlinkSync(filePath)
112
- logger.info({ providerId }, 'Provider deleted')
113
- return true
114
- }
115
-
116
- return false
117
- }
@@ -1,115 +0,0 @@
1
- import type { IncomingMessage, ServerResponse } from 'http'
2
- import { createSession, getSession, updateSessionStatus, submitProof } from '#src/server/session-store.ts'
3
- import { logger as LOGGER } from '#src/utils/index.ts'
4
-
5
- const logger = LOGGER.child({ module: 'session-api' })
6
-
7
- function sendJson(res: ServerResponse, statusCode: number, data: unknown) {
8
- res.statusCode = statusCode
9
- res.setHeader('Content-Type', 'application/json')
10
- res.end(JSON.stringify(data))
11
- }
12
-
13
- function readBody(req: IncomingMessage): Promise<string> {
14
- return new Promise((resolve, reject) => {
15
- const chunks: Buffer[] = []
16
- req.on('data', (chunk: Buffer) => chunks.push(chunk))
17
- req.on('end', () => resolve(Buffer.concat(chunks).toString('utf-8')))
18
- req.on('error', reject)
19
- })
20
- }
21
-
22
- /**
23
- * Handle session API requests:
24
- * POST /api/sdk/init/session/ — create a new session
25
- * POST /api/sdk/update/session/ — update session status
26
- * GET /api/sdk/session/:id — get session data
27
- * POST /session/:id/proof — submit proof
28
- */
29
- export async function handleSessionApiRequest(
30
- req: IncomingMessage,
31
- res: ServerResponse
32
- ) {
33
- const url = new URL(req.url!, `http://${req.headers.host}`)
34
- const path = url.pathname
35
- const method = req.method?.toUpperCase()
36
-
37
- try {
38
- // POST /api/sdk/init/session/
39
- if(path === '/api/sdk/init/session/' && method === 'POST') {
40
- const body = JSON.parse(await readBody(req))
41
- const { appId, providerId, timestamp, signature } = body
42
-
43
- if(!appId || !providerId) {
44
- sendJson(res, 400, { error: 'Missing required fields: appId, providerId' })
45
- return
46
- }
47
-
48
- const session = createSession(appId, providerId, timestamp || '', signature || '')
49
- logger.info({ sessionId: session.sessionId, providerId }, 'Session created')
50
- sendJson(res, 200, {
51
- sessionId: session.sessionId,
52
- resolvedProviderVersion: '',
53
- })
54
- return
55
- }
56
-
57
- // POST /api/sdk/update/session/
58
- if(path === '/api/sdk/update/session/' && method === 'POST') {
59
- const body = JSON.parse(await readBody(req))
60
- const { sessionId, status } = body
61
-
62
- if(!sessionId || !status) {
63
- sendJson(res, 400, { error: 'Missing required fields: sessionId, status' })
64
- return
65
- }
66
-
67
- const ok = updateSessionStatus(sessionId, status)
68
- if(!ok) {
69
- sendJson(res, 404, { error: `Session '${sessionId}' not found` })
70
- return
71
- }
72
-
73
- logger.info({ sessionId, status }, 'Session status updated')
74
- sendJson(res, 200, { success: true })
75
- return
76
- }
77
-
78
- // GET /api/sdk/session/:id
79
- const sessionMatch = path.match(/^\/api\/sdk\/session\/(.+)$/)
80
- if(sessionMatch && method === 'GET') {
81
- const sessionId = decodeURIComponent(sessionMatch[1])
82
- const session = getSession(sessionId)
83
- if(!session) {
84
- sendJson(res, 404, { error: `Session '${sessionId}' not found` })
85
- return
86
- }
87
-
88
- sendJson(res, 200, session)
89
- return
90
- }
91
-
92
- // POST /session/:id/proof
93
- const proofMatch = path.match(/^\/session\/(.+)\/proof$/)
94
- if(proofMatch && method === 'POST') {
95
- const sessionId = decodeURIComponent(proofMatch[1])
96
- const body = JSON.parse(await readBody(req))
97
- const proofs = body.proofs || body
98
-
99
- const ok = submitProof(sessionId, Array.isArray(proofs) ? proofs : [proofs])
100
- if(!ok) {
101
- sendJson(res, 404, { error: `Session '${sessionId}' not found` })
102
- return
103
- }
104
-
105
- logger.info({ sessionId }, 'Proof submitted')
106
- sendJson(res, 200, { success: true })
107
- return
108
- }
109
-
110
- sendJson(res, 404, { error: 'Not found' })
111
- } catch(err) {
112
- logger.error({ err, path, method }, 'Session API error')
113
- sendJson(res, 500, { error: 'Internal server error' })
114
- }
115
- }
@@ -1,60 +0,0 @@
1
- import { randomUUID } from 'crypto'
2
-
3
- export interface Session {
4
- sessionId: string
5
- appId: string
6
- providerId: string
7
- timestamp: string
8
- signature: string
9
- status: string
10
- proofs?: unknown[]
11
- createdAt: number
12
- }
13
-
14
- const sessions = new Map<string, Session>()
15
-
16
- export function createSession(
17
- appId: string,
18
- providerId: string,
19
- timestamp: string,
20
- signature: string
21
- ): Session {
22
- const sessionId = randomUUID()
23
- const session: Session = {
24
- sessionId,
25
- appId,
26
- providerId,
27
- timestamp,
28
- signature,
29
- status: 'SESSION_INIT',
30
- createdAt: Date.now(),
31
- }
32
-
33
- sessions.set(sessionId, session)
34
- return session
35
- }
36
-
37
- export function getSession(sessionId: string): Session | undefined {
38
- return sessions.get(sessionId)
39
- }
40
-
41
- export function updateSessionStatus(sessionId: string, status: string): boolean {
42
- const session = sessions.get(sessionId)
43
- if(!session) {
44
- return false
45
- }
46
-
47
- session.status = status
48
- return true
49
- }
50
-
51
- export function submitProof(sessionId: string, proofs: unknown[]): boolean {
52
- const session = sessions.get(sessionId)
53
- if(!session) {
54
- return false
55
- }
56
-
57
- session.proofs = proofs
58
- session.status = 'PROOF_SUBMITTED'
59
- return true
60
- }