@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,100 +1,82 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.logger = void 0;
7
- exports.makeLogger = makeLogger;
8
- exports.redact = redact;
9
- const pino_1 = __importDefault(require("pino"));
10
- const env_1 = require("../utils/env");
11
- const PII_PROPERTIES = ['ownerPrivateKey', 'secretParams'];
12
- const redactedText = '[REDACTED]';
13
- const envLevel = (0, env_1.getEnvVariable)('LOG_LEVEL');
14
- exports.logger = (0, pino_1.default)();
1
+ import { pino, stdTimeFunctions } from "pino";
2
+ import { getEnvVariable } from "../utils/env.js";
3
+ const PII_PROPERTIES = ["ownerPrivateKey", "secretParams"];
4
+ const redactedText = "[REDACTED]";
5
+ const envLevel = getEnvVariable("LOG_LEVEL");
6
+ let logger = pino();
15
7
  makeLogger(false, envLevel);
16
- /**
17
- * Creates a logger instance with optional redaction of PII.
18
- * Replaces default logger
19
- * See PII_PROPERTIES for the list of properties that will be redacted.
20
- *
21
- * @param redactPii - whether to redact PII from logs
22
- * @param level - the log level to use
23
- * @param onLog - a callback to call when a log is written
24
- */
25
8
  function makeLogger(redactPii, level, onLog) {
26
- const opts = {
27
- // Log human readable time stamps instead of epoch time
28
- timestamp: pino_1.default.stdTimeFunctions.isoTime,
9
+ const opts = {
10
+ // Log human readable time stamps instead of epoch time
11
+ timestamp: stdTimeFunctions.isoTime
12
+ };
13
+ if (redactPii) {
14
+ opts.formatters = { log: redact };
15
+ opts.serializers = { redact };
16
+ opts.browser = {
17
+ write: {
18
+ fatal: (log) => writeLog("fatal", log),
19
+ error: (log) => writeLog("error", log),
20
+ warn: (log) => writeLog("warn", log),
21
+ info: (log) => writeLog("info", log),
22
+ debug: (log) => writeLog("debug", log),
23
+ trace: (log) => writeLog("trace", log)
24
+ }
29
25
  };
30
- if (redactPii) {
31
- opts.formatters = { log: redact };
32
- opts.serializers = { redact };
33
- opts.browser = {
34
- write: {
35
- fatal: log => writeLog('fatal', log),
36
- error: log => writeLog('error', log),
37
- warn: log => writeLog('warn', log),
38
- info: log => writeLog('info', log),
39
- debug: log => writeLog('debug', log),
40
- trace: log => writeLog('trace', log),
41
- }
42
- };
43
- }
44
- const pLogger = (0, pino_1.default)(opts);
45
- pLogger.level = level || 'info';
46
- exports.logger = pLogger;
47
- return pLogger;
48
- function writeLog(level, log) {
49
- log = redact(log);
50
- const { msg, ...obj } = log;
51
- if (console[level]) {
52
- console[level](obj, msg);
53
- }
54
- else {
55
- console.log(obj, msg);
56
- }
57
- onLog === null || onLog === void 0 ? void 0 : onLog(level, log);
26
+ }
27
+ const pLogger = pino(opts);
28
+ pLogger.level = level || "info";
29
+ logger = pLogger;
30
+ return pLogger;
31
+ function writeLog(level2, log) {
32
+ log = redact(log);
33
+ const { msg, ...obj } = log;
34
+ if (console[level2]) {
35
+ console[level2](obj, msg);
36
+ } else {
37
+ console.log(obj, msg);
58
38
  }
39
+ onLog?.(level2, log);
40
+ }
59
41
  }
60
42
  function isObjectProperty(property) {
61
- return (typeof property) === 'object'
62
- && !Array.isArray(property)
63
- && property !== null;
43
+ return typeof property === "object" && !Array.isArray(property) && property !== null;
64
44
  }
65
45
  function getReplacer() {
66
- // Store references to previously visited objects
67
- const references = new WeakSet();
68
- return function (key, value) {
69
- const isObject = (typeof value) === 'object' && value !== null;
70
- if (isObject) {
71
- if (references.has(value)) {
72
- return '[CIRCULAR]';
73
- }
74
- references.add(value);
75
- }
76
- return value;
77
- };
46
+ const references = /* @__PURE__ */ new WeakSet();
47
+ return function(key, value) {
48
+ const isObject = typeof value === "object" && value !== null;
49
+ if (isObject) {
50
+ if (references.has(value)) {
51
+ return "[CIRCULAR]";
52
+ }
53
+ references.add(value);
54
+ }
55
+ return value;
56
+ };
78
57
  }
79
58
  function redact(json) {
80
- const isObject = isObjectProperty(json);
81
- if (!isObject && !Array.isArray(json)) {
82
- return json;
59
+ const isObject = isObjectProperty(json);
60
+ if (!isObject && !Array.isArray(json)) {
61
+ return json;
62
+ }
63
+ const redacted = JSON.parse(JSON.stringify(json, getReplacer()));
64
+ for (const prop in redacted) {
65
+ if (PII_PROPERTIES.includes(prop)) {
66
+ redacted[prop] = redactedText;
83
67
  }
84
- const redacted = JSON.parse(JSON.stringify(json, getReplacer()));
85
- for (const prop in redacted) {
86
- if (PII_PROPERTIES.includes(prop)) {
87
- redacted[prop] = redactedText;
88
- }
89
- if (Array.isArray(redacted[prop])) {
90
- for (const [index, value] of redacted[prop].entries()) {
91
- redacted[prop][index] = redact(value);
92
- }
93
- }
94
- else if (isObjectProperty(redacted[prop])) {
95
- redacted[prop] = redact(redacted[prop]);
96
- }
68
+ if (Array.isArray(redacted[prop])) {
69
+ for (const [index, value] of redacted[prop].entries()) {
70
+ redacted[prop][index] = redact(value);
71
+ }
72
+ } else if (isObjectProperty(redacted[prop])) {
73
+ redacted[prop] = redact(redacted[prop]);
97
74
  }
98
- return redacted;
75
+ }
76
+ return redacted;
99
77
  }
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFxQkEsZ0NBeUNDO0FBMEJELHdCQXdCQztBQWhIRCxnREFBdUM7QUFFdkMsdUNBQThDO0FBRTlDLE1BQU0sY0FBYyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsY0FBYyxDQUFDLENBQUE7QUFDMUQsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFBO0FBQ2pDLE1BQU0sUUFBUSxHQUFHLElBQUEsb0JBQWMsRUFBQyxXQUFXLENBQWEsQ0FBQTtBQUU3QyxRQUFBLE1BQU0sR0FBRyxJQUFBLGNBQUMsR0FBRSxDQUFBO0FBRXZCLFVBQVUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUE7QUFFM0I7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQixVQUFVLENBQ3pCLFNBQWtCLEVBQ2xCLEtBQWdCLEVBQ2hCLEtBQTJDO0lBRTNDLE1BQU0sSUFBSSxHQUFrQjtRQUMzQix1REFBdUQ7UUFDdkQsU0FBUyxFQUFFLGNBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPO0tBQ3JDLENBQUE7SUFDRCxJQUFHLFNBQVMsRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQTtRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUE7UUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNkLEtBQUssRUFBRTtnQkFDTixLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQztnQkFDcEMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7Z0JBQ3BDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVB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
78
+ export {
79
+ logger,
80
+ makeLogger,
81
+ redact
82
+ };
@@ -1,6 +1,6 @@
1
- import { CipherSuite, TLSPacketContext } from '@reclaimprotocol/tls';
2
- import { ClaimTunnelRequest_TranscriptMessage as TranscriptMessage } from '../proto/api';
3
- import { CompleteTLSPacket, Logger, MessageRevealInfo, PrepareZKProofsBaseOpts, Transcript } from '../types';
1
+ import type { CipherSuite, TLSPacketContext } from '@reclaimprotocol/tls';
2
+ import type { ClaimTunnelRequest_TranscriptMessage as TranscriptMessage } from '#src/proto/api.ts';
3
+ import type { CompleteTLSPacket, Logger, MessageRevealInfo, PrepareZKProofsBaseOpts, Transcript } from '#src/types/index.ts';
4
4
  export type PreparePacketsForRevealOpts = {
5
5
  cipherSuite: CipherSuite;
6
6
  logger: Logger;
@@ -1,61 +1,69 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.preparePacketsForReveal = preparePacketsForReveal;
4
- const tls_1 = require("@reclaimprotocol/tls");
5
- const api_1 = require("../proto/api");
6
- const zk_1 = require("../utils/zk");
7
- /**
8
- * Prepares the packets for reveal to the server
9
- * according to the specified reveal type
10
- */
1
+ import { concatenateUint8Arrays, crypto } from "../utils/tls-imports.js";
2
+ import {
3
+ TranscriptMessageSenderType
4
+ } from "../proto/api.js";
5
+ import { makeZkProofGenerator } from "../utils/zk.js";
11
6
  async function preparePacketsForReveal(tlsTranscript, reveals, { onZkProgress, ...opts }) {
12
- const transcript = [];
13
- const proofGenerator = await (0, zk_1.makeZkProofGenerator)(opts);
14
- let zkPacketsDone = 0;
15
- await Promise.all(tlsTranscript.map(async ({ message, sender }) => {
16
- const msg = {
17
- sender: sender === 'client'
18
- ? api_1.TranscriptMessageSenderType.TRANSCRIPT_MESSAGE_SENDER_TYPE_CLIENT
19
- : api_1.TranscriptMessageSenderType.TRANSCRIPT_MESSAGE_SENDER_TYPE_SERVER,
20
- message: message.data,
21
- reveal: undefined
7
+ const transcript = [];
8
+ const proofGenerator = await makeZkProofGenerator(opts);
9
+ let zkPacketsDone = 0;
10
+ await Promise.all(tlsTranscript.map(async ({ message, sender }, i) => {
11
+ const msg = {
12
+ sender: sender === "client" ? TranscriptMessageSenderType.TRANSCRIPT_MESSAGE_SENDER_TYPE_CLIENT : TranscriptMessageSenderType.TRANSCRIPT_MESSAGE_SENDER_TYPE_SERVER,
13
+ message: message.data,
14
+ reveal: void 0
15
+ };
16
+ transcript.push(msg);
17
+ const reveal = reveals.get(message);
18
+ if (!reveal || message.type === "plaintext") {
19
+ return;
20
+ }
21
+ switch (reveal?.type) {
22
+ case "complete":
23
+ msg.reveal = {
24
+ directReveal: {
25
+ key: await crypto.exportKey(message.encKey),
26
+ iv: message.fixedIv,
27
+ recordNumber: message.recordNumber
28
+ }
22
29
  };
23
- transcript.push(msg);
24
- const reveal = reveals.get(message);
25
- if (!reveal || message.type === 'plaintext') {
26
- return;
27
- }
28
- switch (reveal === null || reveal === void 0 ? void 0 : reveal.type) {
29
- case 'complete':
30
- msg.reveal = {
31
- directReveal: {
32
- key: await tls_1.crypto.exportKey(message.encKey),
33
- iv: message.fixedIv,
34
- recordNumber: message.recordNumber,
35
- },
36
- };
37
- break;
38
- case 'zk':
39
- // the redacted section can be smaller than the actual
40
- // plaintext encrypted, in case of TLS1.3 as it has a
41
- // content type suffix
42
- reveal.redactedPlaintext = (0, tls_1.concatenateUint8Arrays)([
43
- reveal.redactedPlaintext,
44
- message.plaintext.slice(reveal.redactedPlaintext.length)
45
- ]);
46
- await proofGenerator.addPacketToProve(message, reveal, proofs => (msg.reveal = { zkReveal: { proofs } }));
47
- break;
48
- default:
49
- // no reveal
50
- break;
51
- }
52
- }));
53
- const zkPacketsTotal = proofGenerator.getTotalChunksToProve();
54
- onZkProgress === null || onZkProgress === void 0 ? void 0 : onZkProgress(zkPacketsDone, zkPacketsTotal);
55
- await proofGenerator.generateProofs(() => {
56
- zkPacketsDone += 1;
57
- onZkProgress === null || onZkProgress === void 0 ? void 0 : onZkProgress(zkPacketsDone, zkPacketsTotal);
58
- });
59
- return transcript;
30
+ break;
31
+ case "zk": {
32
+ reveal.redactedPlaintext = concatenateUint8Arrays([
33
+ reveal.redactedPlaintext,
34
+ message.plaintext.slice(reveal.redactedPlaintext.length)
35
+ ]);
36
+ const oprfRawMarkers = reveal.oprfRawMarkers?.map((m) => ({
37
+ dataLocation: m.dataLocation
38
+ })) || [];
39
+ const overshotOprfRawLength = reveal.overshotOprfRawFromPrevBlock?.length ?? 0;
40
+ await proofGenerator.addPacketToProve(
41
+ message,
42
+ reveal,
43
+ (proofs, toprfs) => msg.reveal = {
44
+ zkReveal: { proofs, toprfs, oprfRawMarkers, overshotOprfRawLength }
45
+ },
46
+ () => {
47
+ const next = tlsTranscript.slice(i + 1).find((t) => t.sender === sender);
48
+ return next?.message;
49
+ }
50
+ );
51
+ break;
52
+ }
53
+ default:
54
+ break;
55
+ }
56
+ }));
57
+ const zkPacketsTotal = proofGenerator.getTotalChunksToProve();
58
+ onZkProgress?.(zkPacketsDone, zkPacketsTotal);
59
+ await proofGenerator.generateProofs(
60
+ () => {
61
+ zkPacketsDone += 1;
62
+ onZkProgress?.(zkPacketsDone, zkPacketsTotal);
63
+ }
64
+ );
65
+ return transcript;
60
66
  }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZS1wYWNrZXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3ByZXBhcmUtcGFja2V0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFCQSwwREFtRUM7QUF4RkQsOENBQW9HO0FBQ3BHLHVDQUdzQjtBQUV0QixxQ0FBbUQ7QUFXbkQ7OztHQUdHO0FBQ0ksS0FBSyxVQUFVLHVCQUF1QixDQUM1QyxhQUE0QyxFQUM1QyxPQUFpRCxFQUNqRCxFQUFFLFlBQVksRUFBRSxHQUFHLElBQUksRUFBK0I7SUFFdEQsTUFBTSxVQUFVLEdBQXdCLEVBQUUsQ0FBQTtJQUMxQyxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUEseUJBQW9CLEVBQUMsSUFBSSxDQUFDLENBQUE7SUFFdkQsSUFBSSxhQUFhLEdBQUcsQ0FBQyxDQUFBO0lBRXJCLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO1FBQ2hFLE1BQU0sR0FBRyxHQUFzQjtZQUM5QixNQUFNLEVBQUUsTUFBTSxLQUFLLFFBQVE7Z0JBQzFCLENBQUMsQ0FBQyxpQ0FBMkIsQ0FBQyxxQ0FBcUM7Z0JBQ25FLENBQUMsQ0FBQyxpQ0FBMkIsQ0FBQyxxQ0FBcUM7WUFDcEUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ3JCLE1BQU0sRUFBRSxTQUFTO1NBQ2pCLENBQUE7UUFDRCxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBRXBCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDbkMsSUFBRyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQzVDLE9BQU07UUFDUCxDQUFDO1FBRUQsUUFBUSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsSUFBSSxFQUFFLENBQUM7WUFDdkIsS0FBSyxVQUFVO2dCQUNkLEdBQUcsQ0FBQyxNQUFNLEdBQUc7b0JBQ1osWUFBWSxFQUFFO3dCQUNiLEdBQUcsRUFBRSxNQUFNLFlBQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQzt3QkFDM0MsRUFBRSxFQUFFLE9BQU8sQ0FBQyxPQUFPO3dCQUNuQixZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVk7cUJBQ2xDO2lCQUNELENBQUE7Z0JBQ0QsTUFBSztZQUNOLEtBQUssSUFBSTtnQkFDUixzREFBc0Q7Z0JBQ3RELHFEQUFxRDtnQkFDckQsc0JBQXNCO2dCQUN0QixNQUFNLENBQUMsaUJBQWlCLEdBQUcsSUFBQSw0QkFBc0IsRUFBQztvQkFDakQsTUFBTSxDQUFDLGlCQUFpQjtvQkFDeEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztpQkFDeEQsQ0FBQyxDQUFBO2dCQUVGLE1BQU0sY0FBYyxDQUFDLGdCQUFnQixDQUNwQyxPQUFPLEVBQ1AsTUFBTSxFQUNOLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUNqRCxDQUFBO2dCQUNELE1BQUs7WUFDTjtnQkFDQyxZQUFZO2dCQUNaLE1BQUs7UUFDTixDQUFDO0lBQ0YsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUVILE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFBO0lBQzdELFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRyxhQUFhLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFFN0MsTUFBTSxjQUFjLENBQUMsY0FBYyxDQUNsQyxHQUFHLEVBQUU7UUFDSixhQUFhLElBQUksQ0FBQyxDQUFBO1FBQ2xCLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRyxhQUFhLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFDOUMsQ0FBQyxDQUNELENBQUE7SUFFRCxPQUFPLFVBQVUsQ0FBQTtBQUNsQixDQUFDIn0=
67
+ export {
68
+ preparePacketsForReveal
69
+ };
@@ -1,4 +1,4 @@
1
- import type { ArraySlice, RedactedOrHashedArraySlice, TOPRFProofParams } from '../types';
1
+ import type { ArraySlice, OPRFRawMarker, RedactedOrHashedArraySlice, TOPRFProofParams } from '#src/types/index.ts';
2
2
  export declare const REDACTION_CHAR = "*";
3
3
  export declare const REDACTION_CHAR_CODE: number;
4
4
  type SliceWithReveal<T> = {
@@ -8,6 +8,25 @@ type SliceWithReveal<T> = {
8
8
  * If the block has some TOPRF claims -- they'll be set here
9
9
  */
10
10
  toprfs?: TOPRFProofParams[];
11
+ /**
12
+ * If the block has oprf-raw markers for server-side OPRF computation
13
+ */
14
+ oprfRawMarkers?: OPRFRawMarker[];
15
+ /**
16
+ * If text was replaced in the previous block w TOPRF but
17
+ * it overshot into this block. The "length" specifies how much
18
+ * of it got overshot into this block
19
+ */
20
+ overshotToprfFromPrevBlock?: {
21
+ length: number;
22
+ };
23
+ /**
24
+ * If an oprf-raw marker from the previous block overshot into this block.
25
+ * The server will collect plaintext from this block to complete the OPRF.
26
+ */
27
+ overshotOprfRawFromPrevBlock?: {
28
+ length: number;
29
+ };
11
30
  };
12
31
  export type RevealedSlices<T> = 'all' | SliceWithReveal<T>[];
13
32
  /**
@@ -1,148 +1,135 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.REDACTION_CHAR_CODE = exports.REDACTION_CHAR = void 0;
4
- exports.isRedactionCongruent = isRedactionCongruent;
5
- exports.isFullyRedacted = isFullyRedacted;
6
- exports.getBlocksToReveal = getBlocksToReveal;
7
- exports.redactSlices = redactSlices;
8
- exports.binaryHashToStr = binaryHashToStr;
9
- const wire_1 = require("@bufbuild/protobuf/wire");
10
- const tls_1 = require("@reclaimprotocol/tls");
11
- exports.REDACTION_CHAR = '*';
12
- exports.REDACTION_CHAR_CODE = exports.REDACTION_CHAR.charCodeAt(0);
13
- /**
14
- * Check if a redacted string is congruent with the original string.
15
- * @param redacted the redacted content, redacted content is replaced by '*'
16
- * @param original the original content
17
- */
1
+ import { base64Encode } from "@bufbuild/protobuf/wire";
2
+ import { concatenateUint8Arrays } from "../utils/tls-imports.js";
3
+ const REDACTION_CHAR = "*";
4
+ const REDACTION_CHAR_CODE = REDACTION_CHAR.charCodeAt(0);
18
5
  function isRedactionCongruent(redacted, original) {
19
- // eslint-disable-next-line unicorn/no-for-loop
20
- for (let i = 0; i < redacted.length; i++) {
21
- const element = redacted[i];
22
- const areSame = element === original[i]
23
- || (typeof element === 'string' && element === exports.REDACTION_CHAR)
24
- || (typeof element === 'number' && element === exports.REDACTION_CHAR_CODE);
25
- if (!areSame) {
26
- return false;
27
- }
6
+ for (let i = 0; i < redacted.length; i++) {
7
+ const element = redacted[i];
8
+ const areSame = element === original[i] || typeof element === "string" && element === REDACTION_CHAR || typeof element === "number" && element === REDACTION_CHAR_CODE;
9
+ if (!areSame) {
10
+ return false;
28
11
  }
29
- return true;
12
+ }
13
+ return true;
30
14
  }
31
- /**
32
- * Is the string fully redacted?
33
- */
34
15
  function isFullyRedacted(redacted) {
35
- for (const element of redacted) {
36
- if (element !== exports.REDACTION_CHAR
37
- && element !== exports.REDACTION_CHAR_CODE) {
38
- return false;
39
- }
16
+ for (const element of redacted) {
17
+ if (element !== REDACTION_CHAR && element !== REDACTION_CHAR_CODE) {
18
+ return false;
40
19
  }
41
- return true;
20
+ }
21
+ return true;
42
22
  }
43
- /**
44
- * Given some plaintext blocks and a redaction function, return the blocks that
45
- * need to be revealed to the other party
46
- *
47
- * Use case: we get the response for a request in several blocks, and want to redact
48
- * pieces that go through multiple blocks. We can use this function to get the
49
- * blocks that need to be revealed to the other party
50
- *
51
- * @example if we received ["secret is 12","345","678. Thanks"]. We'd want
52
- * to redact the "12345678" and reveal the rest. We'd pass in the blocks and
53
- * the redact function will return the redactions, namely [10,19].
54
- * The function will return the blocks ["secret is **","***. Thanks"].
55
- * The middle block is fully redacted, so it's not returned
56
- *
57
- * @param blocks blocks to reveal
58
- * @param redact function that returns the redactions
59
- * @returns blocks to reveal
60
- */
61
23
  async function getBlocksToReveal(blocks, redact, performOprf) {
62
- const slicesWithReveal = blocks.map(block => ({
63
- block,
64
- // copy the plaintext to avoid mutating the original
65
- redactedPlaintext: new Uint8Array(block.plaintext)
66
- }));
67
- const total = (0, tls_1.concatenateUint8Arrays)(blocks.map(b => b.plaintext));
68
- const redactions = redact(total);
69
- if (!redactions.length) {
70
- return 'all';
24
+ const slicesWithReveal = blocks.map((block) => ({
25
+ block,
26
+ // copy the plaintext to avoid mutating the original
27
+ redactedPlaintext: new Uint8Array(block.plaintext)
28
+ }));
29
+ const total = concatenateUint8Arrays(blocks.map((b) => b.plaintext));
30
+ const redactions = redact(total);
31
+ if (!redactions.length) {
32
+ return "all";
33
+ }
34
+ let blockIdx = 0;
35
+ let cursorInBlock = 0;
36
+ let cursor = 0;
37
+ for (const redaction of redactions) {
38
+ await redactBlocks(redaction);
39
+ }
40
+ return slicesWithReveal.filter((s) => !isFullyRedacted(s.redactedPlaintext));
41
+ async function redactBlocks(slice) {
42
+ while (cursor < slice.fromIndex) {
43
+ advance();
71
44
  }
72
- let blockIdx = 0;
73
- let cursorInBlock = 0;
74
- let cursor = 0;
75
- for (const redaction of redactions) {
76
- await redactBlocks(redaction);
77
- }
78
- // only reveal blocks that have some data to reveal,
79
- // or are completely plaintext
80
- return slicesWithReveal
81
- .filter(s => !isFullyRedacted(s.redactedPlaintext));
82
- async function redactBlocks(slice) {
83
- while (cursor < slice.fromIndex) {
84
- advance();
85
- }
86
- if (slice.hash) {
87
- const plaintext = total.slice(slice.fromIndex, slice.toIndex);
88
- const { nullifier, responses, mask } = await performOprf(plaintext);
89
- // set the TOPRF claim on the first blocks this
90
- // redaction covers
91
- const toprf = {
92
- nullifier,
93
- responses,
94
- dataLocation: {
95
- fromIndex: cursorInBlock,
96
- length: slice.toIndex - slice.fromIndex
97
- },
98
- mask,
99
- plaintext
100
- };
101
- const block = slicesWithReveal[blockIdx];
102
- block.toprfs || (block.toprfs = []);
103
- block.toprfs.push(toprf);
104
- const nullifierStr = binaryHashToStr(nullifier, toprf.dataLocation.length);
105
- let i = 0;
106
- while (cursor < slice.toIndex) {
107
- slicesWithReveal[blockIdx].redactedPlaintext[cursorInBlock]
108
- = nullifierStr.charCodeAt(i);
109
- advance();
110
- i += 1;
111
- }
45
+ if (slice.hash === "oprf-raw") {
46
+ const startBlockIdx = blockIdx;
47
+ const startCursorInBlock = cursorInBlock;
48
+ const totalLength = slice.toIndex - slice.fromIndex;
49
+ const block = slicesWithReveal[blockIdx];
50
+ block.oprfRawMarkers ||= [];
51
+ block.oprfRawMarkers.push({
52
+ dataLocation: {
53
+ fromIndex: startCursorInBlock,
54
+ length: totalLength
112
55
  }
113
- while (cursor < slice.toIndex) {
114
- slicesWithReveal[blockIdx]
115
- .redactedPlaintext[cursorInBlock] = exports.REDACTION_CHAR_CODE;
116
- advance();
56
+ });
57
+ let overshootLen = 0;
58
+ while (cursor < slice.toIndex) {
59
+ if (blockIdx !== startBlockIdx) {
60
+ overshootLen += 1;
117
61
  }
62
+ advance();
63
+ }
64
+ if (overshootLen) {
65
+ slicesWithReveal[blockIdx].overshotOprfRawFromPrevBlock = { length: overshootLen };
66
+ }
67
+ return;
118
68
  }
119
- function advance() {
120
- cursor += 1;
121
- cursorInBlock += 1;
122
- if (cursorInBlock >= blocks[blockIdx].plaintext.length) {
123
- blockIdx += 1;
124
- cursorInBlock = 0;
69
+ if (slice.hash) {
70
+ const plaintext = total.slice(slice.fromIndex, slice.toIndex);
71
+ const { nullifier, responses, mask } = await performOprf(plaintext);
72
+ const toprf = {
73
+ nullifier,
74
+ responses,
75
+ dataLocation: {
76
+ fromIndex: cursorInBlock,
77
+ length: slice.toIndex - slice.fromIndex
78
+ },
79
+ mask,
80
+ plaintext
81
+ };
82
+ const startBlockIdx = blockIdx;
83
+ const block = slicesWithReveal[blockIdx];
84
+ block.toprfs ||= [];
85
+ block.toprfs.push(toprf);
86
+ const nullifierStr = binaryHashToStr(nullifier, toprf.dataLocation.length);
87
+ let i = 0;
88
+ let overshootLen = 0;
89
+ while (cursor < slice.toIndex) {
90
+ if (blockIdx !== startBlockIdx) {
91
+ overshootLen += 1;
125
92
  }
93
+ slicesWithReveal[blockIdx].redactedPlaintext[cursorInBlock] = nullifierStr.charCodeAt(i);
94
+ advance();
95
+ i += 1;
96
+ }
97
+ if (overshootLen) {
98
+ slicesWithReveal[blockIdx].overshotToprfFromPrevBlock = { length: overshootLen };
99
+ }
126
100
  }
101
+ while (cursor < slice.toIndex) {
102
+ slicesWithReveal[blockIdx].redactedPlaintext[cursorInBlock] = REDACTION_CHAR_CODE;
103
+ advance();
104
+ }
105
+ }
106
+ function advance() {
107
+ cursor += 1;
108
+ cursorInBlock += 1;
109
+ if (cursorInBlock >= blocks[blockIdx].plaintext.length) {
110
+ blockIdx += 1;
111
+ cursorInBlock = 0;
112
+ }
113
+ }
127
114
  }
128
- /**
129
- * Redact the following slices from the total
130
- */
131
115
  function redactSlices(total, slices) {
132
- const redacted = new Uint8Array(total);
133
- for (const slice of slices) {
134
- for (let i = slice.fromIndex; i < slice.toIndex; i++) {
135
- redacted[i] = exports.REDACTION_CHAR_CODE;
136
- }
116
+ const redacted = new Uint8Array(total);
117
+ for (const slice of slices) {
118
+ for (let i = slice.fromIndex; i < slice.toIndex; i++) {
119
+ redacted[i] = REDACTION_CHAR_CODE;
137
120
  }
138
- return redacted;
121
+ }
122
+ return redacted;
139
123
  }
140
- /**
141
- * Converts the binary hash to an ASCII string of the expected length.
142
- * If the hash is shorter than the expected length, it will be padded with
143
- * '0' characters. If it's longer, it will be truncated.
144
- */
145
124
  function binaryHashToStr(hash, expLength) {
146
- return (0, wire_1.base64Encode)(hash).padEnd(expLength, '0').slice(0, expLength);
125
+ return base64Encode(hash).padEnd(expLength, "0").slice(0, expLength);
147
126
  }
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9yZWRhY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXVCQSxvREFnQkM7QUFLRCwwQ0FhQztBQW9CRCw4Q0EwRkM7QUFLRCxvQ0FVQztBQU9ELDBDQUVDO0FBL0xELGtEQUFzRDtBQUN0RCw4Q0FBNkQ7QUFHaEQsUUFBQSxjQUFjLEdBQUcsR0FBRyxDQUFBO0FBQ3BCLFFBQUEsbUJBQW1CLEdBQUcsc0JBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFhL0Q7Ozs7R0FJRztBQUNILFNBQWdCLG9CQUFvQixDQUNuQyxRQUFXLEVBQ1gsUUFBVztJQUVYLCtDQUErQztJQUMvQyxLQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUMzQixNQUFNLE9BQU8sR0FBRyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztlQUNuQyxDQUFDLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLEtBQUssc0JBQWMsQ0FBQztlQUMzRCxDQUFDLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLEtBQUssMkJBQW1CLENBQUMsQ0FBQTtRQUNwRSxJQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixPQUFPLEtBQUssQ0FBQTtRQUNiLENBQUM7SUFDRixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUE7QUFDWixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixlQUFlLENBQzlCLFFBQVc7SUFFWCxLQUFJLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQy9CLElBQ0MsT0FBTyxLQUFLLHNCQUFjO2VBQ3ZCLE9BQU8sS0FBSywyQkFBbUIsRUFDakMs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
127
+ export {
128
+ REDACTION_CHAR,
129
+ REDACTION_CHAR_CODE,
130
+ binaryHashToStr,
131
+ getBlocksToReveal,
132
+ isFullyRedacted,
133
+ isRedactionCongruent,
134
+ redactSlices
135
+ };
@@ -1,4 +1,4 @@
1
- import { Logger } from '../types';
1
+ import type { Logger } from '#src/types/index.ts';
2
2
  type RetryLoopOptions = {
3
3
  maxRetries?: number;
4
4
  logger: Logger;