@reclaimprotocol/attestor-core 5.0.1-beta.9 → 5.0.2-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (310) hide show
  1. package/browser/resources/attestor-browser.min.mjs +4513 -0
  2. package/lib/client/tunnels/make-rpc-tls-tunnel.d.ts +1 -1
  3. package/lib/external-rpc/index.js +10397 -3
  4. package/lib/index.js +8325 -10
  5. package/lib/server/utils/generics.d.ts +1 -1
  6. package/lib/server/utils/proxy-session.d.ts +1 -1
  7. package/lib/types/general.d.ts +0 -1
  8. package/lib/types/providers.d.ts +3 -2
  9. package/lib/types/signatures.d.ts +1 -2
  10. package/lib/utils/generics.d.ts +1 -6
  11. package/lib/utils/index.d.ts +0 -1
  12. package/package.json +9 -11
  13. package/lib/avs/abis/avsDirectoryABI.js +0 -343
  14. package/lib/avs/abis/delegationABI.js +0 -4
  15. package/lib/avs/abis/registryABI.js +0 -728
  16. package/lib/avs/client/create-claim-on-avs.js +0 -168
  17. package/lib/avs/config.js +0 -26
  18. package/lib/avs/contracts/ReclaimServiceManager.js +0 -0
  19. package/lib/avs/contracts/common.js +0 -0
  20. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +0 -1183
  21. package/lib/avs/contracts/factories/index.js +0 -4
  22. package/lib/avs/contracts/index.js +0 -6
  23. package/lib/avs/types/index.js +0 -0
  24. package/lib/avs/utils/contracts.js +0 -53
  25. package/lib/avs/utils/register.js +0 -74
  26. package/lib/avs/utils/tasks.js +0 -48
  27. package/lib/browser/avs/abis/avsDirectoryABI.d.ts +0 -60
  28. package/lib/browser/avs/abis/avsDirectoryABI.js +0 -343
  29. package/lib/browser/avs/abis/delegationABI.d.ts +0 -126
  30. package/lib/browser/avs/abis/delegationABI.js +0 -4
  31. package/lib/browser/avs/abis/registryABI.d.ts +0 -136
  32. package/lib/browser/avs/abis/registryABI.js +0 -728
  33. package/lib/browser/avs/client/create-claim-on-avs.d.ts +0 -12
  34. package/lib/browser/avs/client/create-claim-on-avs.js +0 -168
  35. package/lib/browser/avs/config.d.ts +0 -7
  36. package/lib/browser/avs/config.js +0 -26
  37. package/lib/browser/avs/contracts/ReclaimServiceManager.d.ts +0 -601
  38. package/lib/browser/avs/contracts/ReclaimServiceManager.js +0 -0
  39. package/lib/browser/avs/contracts/common.d.ts +0 -50
  40. package/lib/browser/avs/contracts/common.js +0 -0
  41. package/lib/browser/avs/contracts/factories/ReclaimServiceManager__factory.d.ts +0 -890
  42. package/lib/browser/avs/contracts/factories/ReclaimServiceManager__factory.js +0 -1183
  43. package/lib/browser/avs/contracts/factories/index.d.ts +0 -1
  44. package/lib/browser/avs/contracts/factories/index.js +0 -4
  45. package/lib/browser/avs/contracts/index.d.ts +0 -3
  46. package/lib/browser/avs/contracts/index.js +0 -6
  47. package/lib/browser/avs/types/index.d.ts +0 -55
  48. package/lib/browser/avs/types/index.js +0 -0
  49. package/lib/browser/avs/utils/contracts.d.ts +0 -21
  50. package/lib/browser/avs/utils/contracts.js +0 -53
  51. package/lib/browser/avs/utils/register.d.ts +0 -27
  52. package/lib/browser/avs/utils/register.js +0 -74
  53. package/lib/browser/avs/utils/tasks.d.ts +0 -22
  54. package/lib/browser/avs/utils/tasks.js +0 -48
  55. package/lib/browser/client/create-claim.d.ts +0 -5
  56. package/lib/browser/client/create-claim.js +0 -461
  57. package/lib/browser/client/index.d.ts +0 -3
  58. package/lib/browser/client/index.js +0 -3
  59. package/lib/browser/client/tunnels/make-rpc-tcp-tunnel.d.ts +0 -16
  60. package/lib/browser/client/tunnels/make-rpc-tcp-tunnel.js +0 -53
  61. package/lib/browser/client/tunnels/make-rpc-tls-tunnel.d.ts +0 -26
  62. package/lib/browser/client/tunnels/make-rpc-tls-tunnel.js +0 -127
  63. package/lib/browser/client/utils/attestor-pool.d.ts +0 -8
  64. package/lib/browser/client/utils/attestor-pool.js +0 -24
  65. package/lib/browser/client/utils/client-socket.d.ts +0 -11
  66. package/lib/browser/client/utils/client-socket.js +0 -120
  67. package/lib/browser/client/utils/message-handler.d.ts +0 -4
  68. package/lib/browser/client/utils/message-handler.js +0 -97
  69. package/lib/browser/config/index.d.ts +0 -31
  70. package/lib/browser/config/index.js +0 -62
  71. package/lib/browser/external-rpc/benchmark.d.ts +0 -1
  72. package/lib/browser/external-rpc/benchmark.js +0 -82
  73. package/lib/browser/external-rpc/event-bus.d.ts +0 -7
  74. package/lib/browser/external-rpc/event-bus.js +0 -17
  75. package/lib/browser/external-rpc/global.d.js +0 -0
  76. package/lib/browser/external-rpc/handle-incoming-msg.d.ts +0 -2
  77. package/lib/browser/external-rpc/handle-incoming-msg.js +0 -241
  78. package/lib/browser/external-rpc/index.d.ts +0 -3
  79. package/lib/browser/external-rpc/index.js +0 -3
  80. package/lib/browser/external-rpc/jsc-polyfills/1.d.ts +0 -14
  81. package/lib/browser/external-rpc/jsc-polyfills/1.js +0 -80
  82. package/lib/browser/external-rpc/jsc-polyfills/2.d.ts +0 -1
  83. package/lib/browser/external-rpc/jsc-polyfills/2.js +0 -15
  84. package/lib/browser/external-rpc/jsc-polyfills/event.d.ts +0 -10
  85. package/lib/browser/external-rpc/jsc-polyfills/event.js +0 -19
  86. package/lib/browser/external-rpc/jsc-polyfills/index.d.ts +0 -2
  87. package/lib/browser/external-rpc/jsc-polyfills/index.js +0 -2
  88. package/lib/browser/external-rpc/jsc-polyfills/ws.d.ts +0 -21
  89. package/lib/browser/external-rpc/jsc-polyfills/ws.js +0 -83
  90. package/lib/browser/external-rpc/setup-browser.d.ts +0 -6
  91. package/lib/browser/external-rpc/setup-browser.js +0 -33
  92. package/lib/browser/external-rpc/setup-jsc.d.ts +0 -24
  93. package/lib/browser/external-rpc/setup-jsc.js +0 -22
  94. package/lib/browser/external-rpc/types.d.ts +0 -213
  95. package/lib/browser/external-rpc/types.js +0 -0
  96. package/lib/browser/external-rpc/utils.d.ts +0 -20
  97. package/lib/browser/external-rpc/utils.js +0 -100
  98. package/lib/browser/external-rpc/zk.d.ts +0 -14
  99. package/lib/browser/external-rpc/zk.js +0 -58
  100. package/lib/browser/index.browser.js +0 -13
  101. package/lib/browser/index.d.ts +0 -9
  102. package/lib/browser/index.js +0 -13
  103. package/lib/browser/mechain/abis/governanceABI.d.ts +0 -50
  104. package/lib/browser/mechain/abis/governanceABI.js +0 -461
  105. package/lib/browser/mechain/abis/taskABI.d.ts +0 -157
  106. package/lib/browser/mechain/abis/taskABI.js +0 -512
  107. package/lib/browser/mechain/client/create-claim-on-mechain.d.ts +0 -10
  108. package/lib/browser/mechain/client/create-claim-on-mechain.js +0 -33
  109. package/lib/browser/mechain/client/index.d.ts +0 -1
  110. package/lib/browser/mechain/client/index.js +0 -1
  111. package/lib/browser/mechain/constants/index.d.ts +0 -3
  112. package/lib/browser/mechain/constants/index.js +0 -8
  113. package/lib/browser/mechain/index.d.ts +0 -2
  114. package/lib/browser/mechain/index.js +0 -2
  115. package/lib/browser/mechain/types/index.d.ts +0 -23
  116. package/lib/browser/mechain/types/index.js +0 -0
  117. package/lib/browser/proto/api.d.ts +0 -651
  118. package/lib/browser/proto/api.js +0 -4250
  119. package/lib/browser/proto/tee-bundle.d.ts +0 -156
  120. package/lib/browser/proto/tee-bundle.js +0 -1296
  121. package/lib/browser/providers/http/index.d.ts +0 -18
  122. package/lib/browser/providers/http/index.js +0 -640
  123. package/lib/browser/providers/http/patch-parse5-tree.d.ts +0 -6
  124. package/lib/browser/providers/http/patch-parse5-tree.js +0 -34
  125. package/lib/browser/providers/http/utils.d.ts +0 -77
  126. package/lib/browser/providers/http/utils.js +0 -283
  127. package/lib/browser/providers/index.d.ts +0 -4
  128. package/lib/browser/providers/index.js +0 -7
  129. package/lib/browser/types/bgp.d.ts +0 -11
  130. package/lib/browser/types/bgp.js +0 -0
  131. package/lib/browser/types/claims.d.ts +0 -70
  132. package/lib/browser/types/claims.js +0 -0
  133. package/lib/browser/types/client.d.ts +0 -163
  134. package/lib/browser/types/client.js +0 -0
  135. package/lib/browser/types/general.d.ts +0 -77
  136. package/lib/browser/types/general.js +0 -0
  137. package/lib/browser/types/handlers.d.ts +0 -10
  138. package/lib/browser/types/handlers.js +0 -0
  139. package/lib/browser/types/index.d.ts +0 -10
  140. package/lib/browser/types/index.js +0 -10
  141. package/lib/browser/types/providers.d.ts +0 -161
  142. package/lib/browser/types/providers.gen.d.ts +0 -443
  143. package/lib/browser/types/providers.gen.js +0 -16
  144. package/lib/browser/types/providers.js +0 -0
  145. package/lib/browser/types/rpc.d.ts +0 -35
  146. package/lib/browser/types/rpc.js +0 -0
  147. package/lib/browser/types/signatures.d.ts +0 -28
  148. package/lib/browser/types/signatures.js +0 -0
  149. package/lib/browser/types/tunnel.d.ts +0 -18
  150. package/lib/browser/types/tunnel.js +0 -0
  151. package/lib/browser/types/zk.d.ts +0 -38
  152. package/lib/browser/types/zk.js +0 -0
  153. package/lib/browser/utils/auth.d.ts +0 -8
  154. package/lib/browser/utils/auth.js +0 -71
  155. package/lib/browser/utils/b64-json.d.ts +0 -2
  156. package/lib/browser/utils/b64-json.js +0 -17
  157. package/lib/browser/utils/claims.d.ts +0 -33
  158. package/lib/browser/utils/claims.js +0 -89
  159. package/lib/browser/utils/env.d.ts +0 -3
  160. package/lib/browser/utils/env.js +0 -19
  161. package/lib/browser/utils/error.d.ts +0 -26
  162. package/lib/browser/utils/error.js +0 -54
  163. package/lib/browser/utils/generics.d.ts +0 -119
  164. package/lib/browser/utils/generics.js +0 -272
  165. package/lib/browser/utils/http-parser.d.ts +0 -59
  166. package/lib/browser/utils/http-parser.js +0 -201
  167. package/lib/browser/utils/index.browser.js +0 -13
  168. package/lib/browser/utils/index.d.ts +0 -13
  169. package/lib/browser/utils/index.js +0 -13
  170. package/lib/browser/utils/logger.browser.js +0 -88
  171. package/lib/browser/utils/logger.d.ts +0 -14
  172. package/lib/browser/utils/logger.js +0 -88
  173. package/lib/browser/utils/prepare-packets.d.ts +0 -16
  174. package/lib/browser/utils/prepare-packets.js +0 -69
  175. package/lib/browser/utils/redactions.d.ts +0 -73
  176. package/lib/browser/utils/redactions.js +0 -135
  177. package/lib/browser/utils/retries.d.ts +0 -12
  178. package/lib/browser/utils/retries.js +0 -26
  179. package/lib/browser/utils/signatures/eth.d.ts +0 -2
  180. package/lib/browser/utils/signatures/eth.js +0 -31
  181. package/lib/browser/utils/signatures/index.d.ts +0 -5
  182. package/lib/browser/utils/signatures/index.js +0 -12
  183. package/lib/browser/utils/socket-base.d.ts +0 -23
  184. package/lib/browser/utils/socket-base.js +0 -96
  185. package/lib/browser/utils/tls-imports.d.ts +0 -21
  186. package/lib/browser/utils/tls-imports.js +0 -71
  187. package/lib/browser/utils/tls.d.ts +0 -2
  188. package/lib/browser/utils/tls.js +0 -58
  189. package/lib/browser/utils/ws.d.ts +0 -7
  190. package/lib/browser/utils/ws.js +0 -22
  191. package/lib/browser/utils/zk.d.ts +0 -71
  192. package/lib/browser/utils/zk.js +0 -625
  193. package/lib/client/create-claim.js +0 -461
  194. package/lib/client/index.js +0 -3
  195. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +0 -53
  196. package/lib/client/tunnels/make-rpc-tls-tunnel.js +0 -127
  197. package/lib/client/utils/attestor-pool.js +0 -24
  198. package/lib/client/utils/client-socket.js +0 -120
  199. package/lib/client/utils/message-handler.js +0 -97
  200. package/lib/config/index.js +0 -62
  201. package/lib/external-rpc/benchmark.js +0 -82
  202. package/lib/external-rpc/event-bus.js +0 -17
  203. package/lib/external-rpc/global.d.js +0 -0
  204. package/lib/external-rpc/handle-incoming-msg.js +0 -241
  205. package/lib/external-rpc/jsc-polyfills/1.js +0 -80
  206. package/lib/external-rpc/jsc-polyfills/2.js +0 -15
  207. package/lib/external-rpc/jsc-polyfills/event.js +0 -19
  208. package/lib/external-rpc/jsc-polyfills/index.js +0 -2
  209. package/lib/external-rpc/jsc-polyfills/ws.js +0 -83
  210. package/lib/external-rpc/setup-browser.js +0 -33
  211. package/lib/external-rpc/setup-jsc.js +0 -22
  212. package/lib/external-rpc/types.js +0 -0
  213. package/lib/external-rpc/utils.js +0 -100
  214. package/lib/external-rpc/zk.js +0 -58
  215. package/lib/index.browser.d.ts +0 -9
  216. package/lib/mechain/abis/governanceABI.js +0 -461
  217. package/lib/mechain/abis/taskABI.js +0 -512
  218. package/lib/mechain/client/create-claim-on-mechain.js +0 -33
  219. package/lib/mechain/client/index.js +0 -1
  220. package/lib/mechain/constants/index.js +0 -8
  221. package/lib/mechain/index.js +0 -2
  222. package/lib/mechain/types/index.js +0 -0
  223. package/lib/proto/api.js +0 -4250
  224. package/lib/proto/tee-bundle.js +0 -1296
  225. package/lib/providers/http/index.js +0 -640
  226. package/lib/providers/http/patch-parse5-tree.js +0 -34
  227. package/lib/providers/http/utils.js +0 -283
  228. package/lib/providers/index.js +0 -7
  229. package/lib/scripts/check-avs-registration.js +0 -28
  230. package/lib/scripts/fallbacks/crypto.js +0 -4
  231. package/lib/scripts/fallbacks/empty.js +0 -4
  232. package/lib/scripts/fallbacks/re2.js +0 -7
  233. package/lib/scripts/fallbacks/snarkjs.js +0 -10
  234. package/lib/scripts/fallbacks/stwo.js +0 -159
  235. package/lib/scripts/generate-provider-types.js +0 -101
  236. package/lib/scripts/generate-receipt.js +0 -101
  237. package/lib/scripts/generate-toprf-keys.js +0 -24
  238. package/lib/scripts/jsc-cli-rpc.js +0 -35
  239. package/lib/scripts/register-avs-operator.js +0 -3
  240. package/lib/scripts/start-server.js +0 -11
  241. package/lib/scripts/update-avs-metadata.js +0 -20
  242. package/lib/scripts/utils.js +0 -10
  243. package/lib/scripts/whitelist-operator.js +0 -16
  244. package/lib/server/create-server.js +0 -105
  245. package/lib/server/handlers/claimTeeBundle.js +0 -232
  246. package/lib/server/handlers/claimTunnel.js +0 -80
  247. package/lib/server/handlers/completeClaimOnChain.js +0 -29
  248. package/lib/server/handlers/createClaimOnChain.js +0 -32
  249. package/lib/server/handlers/createTaskOnMechain.js +0 -57
  250. package/lib/server/handlers/createTunnel.js +0 -98
  251. package/lib/server/handlers/disconnectTunnel.js +0 -8
  252. package/lib/server/handlers/fetchCertificateBytes.js +0 -57
  253. package/lib/server/handlers/index.js +0 -25
  254. package/lib/server/handlers/init.js +0 -33
  255. package/lib/server/handlers/toprf.js +0 -19
  256. package/lib/server/index.js +0 -4
  257. package/lib/server/socket.js +0 -112
  258. package/lib/server/tunnels/make-tcp-tunnel.js +0 -202
  259. package/lib/server/utils/apm.js +0 -29
  260. package/lib/server/utils/assert-valid-claim-request.js +0 -354
  261. package/lib/server/utils/config-env.js +0 -4
  262. package/lib/server/utils/dns.js +0 -24
  263. package/lib/server/utils/gcp-attestation.js +0 -237
  264. package/lib/server/utils/generics.js +0 -45
  265. package/lib/server/utils/iso.js +0 -259
  266. package/lib/server/utils/keep-alive.js +0 -38
  267. package/lib/server/utils/nitro-attestation.js +0 -249
  268. package/lib/server/utils/oprf-raw.js +0 -61
  269. package/lib/server/utils/process-handshake.js +0 -233
  270. package/lib/server/utils/proxy-session.js +0 -4
  271. package/lib/server/utils/tee-oprf-mpc-verification.js +0 -86
  272. package/lib/server/utils/tee-oprf-verification.js +0 -151
  273. package/lib/server/utils/tee-transcript-reconstruction.js +0 -140
  274. package/lib/server/utils/tee-verification.js +0 -358
  275. package/lib/server/utils/validation.js +0 -45
  276. package/lib/types/bgp.js +0 -0
  277. package/lib/types/claims.js +0 -0
  278. package/lib/types/client.js +0 -0
  279. package/lib/types/general.js +0 -0
  280. package/lib/types/handlers.js +0 -0
  281. package/lib/types/index.js +0 -10
  282. package/lib/types/providers.gen.js +0 -16
  283. package/lib/types/providers.js +0 -0
  284. package/lib/types/rpc.js +0 -0
  285. package/lib/types/signatures.js +0 -0
  286. package/lib/types/tunnel.js +0 -0
  287. package/lib/types/zk.js +0 -0
  288. package/lib/utils/auth.js +0 -71
  289. package/lib/utils/b64-json.js +0 -17
  290. package/lib/utils/bgp-listener.js +0 -123
  291. package/lib/utils/claims.js +0 -89
  292. package/lib/utils/env.js +0 -19
  293. package/lib/utils/error.js +0 -54
  294. package/lib/utils/generics.js +0 -272
  295. package/lib/utils/http-parser.js +0 -201
  296. package/lib/utils/index.browser.d.ts +0 -13
  297. package/lib/utils/index.js +0 -14
  298. package/lib/utils/logger.browser.d.ts +0 -14
  299. package/lib/utils/logger.js +0 -82
  300. package/lib/utils/prepare-packets.js +0 -69
  301. package/lib/utils/redactions.js +0 -135
  302. package/lib/utils/retries.js +0 -26
  303. package/lib/utils/signatures/eth.js +0 -31
  304. package/lib/utils/signatures/index.js +0 -12
  305. package/lib/utils/socket-base.js +0 -96
  306. package/lib/utils/tls-imports.d.ts +0 -21
  307. package/lib/utils/tls-imports.js +0 -71
  308. package/lib/utils/tls.js +0 -58
  309. package/lib/utils/ws.js +0 -22
  310. package/lib/utils/zk.js +0 -625
@@ -1,59 +0,0 @@
1
- import type { IncomingHttpHeaders } from 'http';
2
- import type { ArraySlice, Transcript } from '#src/types/index.ts';
3
- export type HttpRequest = {
4
- method: string;
5
- url: string;
6
- protocol: string;
7
- headers: IncomingHttpHeaders;
8
- body?: Uint8Array;
9
- };
10
- export type HttpResponse = {
11
- statusCode: number;
12
- statusMessage: string;
13
- headers: IncomingHttpHeaders;
14
- body: Uint8Array;
15
- headersComplete: boolean;
16
- complete: boolean;
17
- /**
18
- * Index of the first byte of the status line
19
- */
20
- statusLineEndIndex?: number;
21
- /**
22
- * Index of the first byte of the body
23
- * in the complete response
24
- */
25
- bodyStartIndex?: number;
26
- /**
27
- * If using chunked transfer encoding,
28
- * this will be set & contain indices of each
29
- * chunk in the complete response
30
- */
31
- chunks?: ArraySlice[];
32
- headerIndices: Map<string, ArraySlice>;
33
- /**
34
- * index of separator \r\n\r\n between headers and body
35
- */
36
- headerEndIdx: number;
37
- };
38
- /**
39
- * parses http/1.1 responses
40
- */
41
- export declare function makeHttpResponseParser(): {
42
- res: HttpResponse;
43
- /**
44
- * Parse the next chunk of data
45
- * @param data the data to parse
46
- */
47
- onChunk(data: Uint8Array): void;
48
- /**
49
- * Call to prevent further parsing; indicating the end of the request
50
- * Checks that the response is valid & complete, otherwise throws an error
51
- */
52
- streamEnded(): void;
53
- };
54
- /**
55
- * Read the HTTP request from a TLS receipt transcript.
56
- * @param receipt the transcript to read from or application messages if they were extracted beforehand
57
- * @returns the parsed HTTP request
58
- */
59
- export declare function getHttpRequestDataFromTranscript(receipt: Transcript<Uint8Array>): HttpRequest;
@@ -1,201 +0,0 @@
1
- import { asciiToUint8Array, concatenateUint8Arrays } from "../utils/tls-imports.js";
2
- import { findIndexInUint8Array, uint8ArrayToStr } from "../utils/generics.js";
3
- import { REDACTION_CHAR_CODE } from "../utils/redactions.js";
4
- const HTTP_HEADER_LINE_END = asciiToUint8Array("\r\n");
5
- function makeHttpResponseParser() {
6
- const res = {
7
- statusCode: 0,
8
- statusMessage: "",
9
- headers: {},
10
- body: new Uint8Array(),
11
- complete: false,
12
- headersComplete: false,
13
- headerIndices: /* @__PURE__ */ new Map(),
14
- headerEndIdx: 0
15
- };
16
- let remainingBodyBytes = 0;
17
- let isChunked = false;
18
- let remaining = new Uint8Array();
19
- let currentByteIdx = 0;
20
- return {
21
- res,
22
- /**
23
- * Parse the next chunk of data
24
- * @param data the data to parse
25
- */
26
- onChunk(data) {
27
- remaining = concatenateUint8Arrays([remaining, data]);
28
- if (!res.headersComplete) {
29
- for (let line = getLine(); typeof line !== "undefined"; line = getLine()) {
30
- if (!res.statusCode) {
31
- const [, statusCode, statusMessage] = line.match(/HTTP\/\d\.\d (\d+) (.*)/) || [];
32
- res.statusCode = Number(statusCode);
33
- res.statusMessage = statusMessage;
34
- res.statusLineEndIndex = currentByteIdx - HTTP_HEADER_LINE_END.length;
35
- } else if (line === "") {
36
- res.headersComplete = true;
37
- res.headerEndIdx = currentByteIdx - 4;
38
- if (res.headers["transfer-encoding"]?.includes("chunked")) {
39
- isChunked = true;
40
- res.chunks = [];
41
- break;
42
- } else if (res.headers["content-length"]) {
43
- remainingBodyBytes = Number(res.headers["content-length"]);
44
- break;
45
- } else {
46
- remainingBodyBytes = -1;
47
- break;
48
- }
49
- } else if (!res.complete) {
50
- const [key, value] = line.split(": ");
51
- res.headers[key.toLowerCase()] = value;
52
- res.headerIndices[key.toLowerCase()] = {
53
- fromIndex: currentByteIdx - line.length - HTTP_HEADER_LINE_END.length,
54
- toIndex: currentByteIdx - HTTP_HEADER_LINE_END.length
55
- };
56
- } else {
57
- throw new Error("got more data after response was complete");
58
- }
59
- }
60
- }
61
- if (res.headersComplete) {
62
- if (remainingBodyBytes) {
63
- readBody();
64
- if (!remainingBodyBytes && !isChunked) {
65
- res.complete = true;
66
- }
67
- }
68
- if (res.headers["content-length"] === "0") {
69
- res.complete = true;
70
- }
71
- if (isChunked) {
72
- for (let line = getLine(); typeof line !== "undefined"; line = getLine()) {
73
- if (line === "") {
74
- continue;
75
- }
76
- const chunkSize = Number.parseInt(line, 16);
77
- if (!chunkSize) {
78
- res.complete = true;
79
- continue;
80
- }
81
- res.chunks?.push({
82
- fromIndex: currentByteIdx,
83
- toIndex: currentByteIdx + chunkSize
84
- });
85
- remainingBodyBytes = chunkSize;
86
- readBody();
87
- if (remainingBodyBytes) {
88
- break;
89
- }
90
- }
91
- }
92
- }
93
- },
94
- /**
95
- * Call to prevent further parsing; indicating the end of the request
96
- * Checks that the response is valid & complete, otherwise throws an error
97
- */
98
- streamEnded() {
99
- if (!res.headersComplete) {
100
- throw new Error("stream ended before headers were complete");
101
- }
102
- if (remaining.length) {
103
- throw new Error("stream ended before remaining data arrived");
104
- }
105
- if (remainingBodyBytes > 0) {
106
- throw new Error("stream ended before all body bytes were received");
107
- }
108
- res.complete = true;
109
- }
110
- };
111
- function readBody() {
112
- if (res.complete) {
113
- throw new Error("got more data after response was complete");
114
- }
115
- if (!res.bodyStartIndex) {
116
- res.bodyStartIndex = currentByteIdx;
117
- }
118
- let bytesToCopy;
119
- if (remainingBodyBytes === -1) {
120
- bytesToCopy = remaining.length;
121
- } else {
122
- bytesToCopy = Math.min(remainingBodyBytes, remaining.length);
123
- remainingBodyBytes -= bytesToCopy;
124
- }
125
- res.body = concatenateUint8Arrays([
126
- res.body,
127
- remaining.slice(0, bytesToCopy)
128
- ]);
129
- remaining = remaining.slice(bytesToCopy);
130
- currentByteIdx += bytesToCopy;
131
- }
132
- function getLine() {
133
- const idx = findIndexInUint8Array(remaining, HTTP_HEADER_LINE_END);
134
- if (idx === -1) {
135
- return void 0;
136
- }
137
- const line = uint8ArrayToStr(remaining.slice(0, idx));
138
- remaining = remaining.slice(idx + HTTP_HEADER_LINE_END.length);
139
- currentByteIdx += idx + HTTP_HEADER_LINE_END.length;
140
- return line;
141
- }
142
- }
143
- function getHttpRequestDataFromTranscript(receipt) {
144
- const clientMsgs = receipt.filter((s) => s.sender === "client");
145
- if (clientMsgs[0].message[0] === REDACTION_CHAR_CODE) {
146
- throw new Error("First client message request is redacted. Cannot parse");
147
- }
148
- const request = {
149
- method: "",
150
- url: "",
151
- protocol: "",
152
- headers: {}
153
- };
154
- let requestBuffer = concatenateUint8Arrays(clientMsgs.map((m) => m.message));
155
- for (let line = getLine(); typeof line !== "undefined"; line = getLine()) {
156
- if (line === "") {
157
- break;
158
- }
159
- if (!request.method) {
160
- const [, method, url, protocol] = line.match(/(\w+) (.*) (.*)/) || [];
161
- request.method = method.toLowerCase();
162
- request.url = url;
163
- request.protocol = protocol;
164
- } else {
165
- let keyIdx = line.indexOf(":");
166
- if (keyIdx === -1) {
167
- keyIdx = line.length - 1;
168
- }
169
- const key = line.slice(0, keyIdx).toLowerCase().trim();
170
- const value = line.slice(keyIdx + 1).trim();
171
- const oldValue = request.headers[key];
172
- if (typeof oldValue === "string") {
173
- request.headers[key] = [oldValue, value];
174
- } else if (Array.isArray(oldValue)) {
175
- oldValue.push(value);
176
- } else {
177
- request.headers[key] = value;
178
- }
179
- }
180
- }
181
- if (requestBuffer.length) {
182
- request.body = requestBuffer;
183
- }
184
- if (!request.method) {
185
- throw new Error("Client request is incomplete");
186
- }
187
- return request;
188
- function getLine() {
189
- const idx = findIndexInUint8Array(requestBuffer, HTTP_HEADER_LINE_END);
190
- if (idx === -1) {
191
- return void 0;
192
- }
193
- const line = uint8ArrayToStr(requestBuffer.slice(0, idx));
194
- requestBuffer = requestBuffer.slice(idx + HTTP_HEADER_LINE_END.length);
195
- return line;
196
- }
197
- }
198
- export {
199
- getHttpRequestDataFromTranscript,
200
- makeHttpResponseParser
201
- };
@@ -1,13 +0,0 @@
1
- export * from "./tls-imports.js";
2
- export * from "./generics.js";
3
- export * from "./logger.js";
4
- export * from "./redactions.js";
5
- export * from "./http-parser.js";
6
- export * from "./zk.js";
7
- export * from "./claims.js";
8
- export * from "./error.js";
9
- export * from "./prepare-packets.js";
10
- export * from "./signatures/index.js";
11
- export * from "./auth.js";
12
- export * from "./b64-json.js";
13
- export * from "./tls.js";
@@ -1,13 +0,0 @@
1
- export * from './tls-imports.ts';
2
- export * from './generics.ts';
3
- export * from './logger.js';
4
- export * from './redactions.ts';
5
- export * from './http-parser.ts';
6
- export * from './zk.ts';
7
- export * from './claims.ts';
8
- export * from './error.ts';
9
- export * from './prepare-packets.ts';
10
- export * from './signatures/index.ts';
11
- export * from './auth.ts';
12
- export * from './b64-json.ts';
13
- export * from './tls.ts';
@@ -1,13 +0,0 @@
1
- export * from "./tls-imports.js";
2
- export * from "./generics.js";
3
- export * from "./logger.js";
4
- export * from "./redactions.js";
5
- export * from "./http-parser.js";
6
- export * from "./zk.js";
7
- export * from "./claims.js";
8
- export * from "./error.js";
9
- export * from "./prepare-packets.js";
10
- export * from "./signatures/index.js";
11
- export * from "./auth.js";
12
- export * from "./b64-json.js";
13
- export * from "./tls.js";
@@ -1,88 +0,0 @@
1
- import { getEnvVariable } from "../utils/env.js";
2
- const PII_PROPERTIES = ["ownerPrivateKey", "secretParams"];
3
- const redactedText = "[REDACTED]";
4
- const envLevel = getEnvVariable("LOG_LEVEL");
5
- const LOG_LEVELS = ["trace", "debug", "info", "warn", "error", "fatal"];
6
- function createLogger(level, redactPii, onLog) {
7
- const levelIndex = LOG_LEVELS.indexOf(level);
8
- function shouldLog(msgLevel) {
9
- return LOG_LEVELS.indexOf(msgLevel) >= levelIndex;
10
- }
11
- function log(msgLevel, ...args) {
12
- if (!shouldLog(msgLevel)) {
13
- return;
14
- }
15
- let logData = args.length === 1 ? args[0] : args;
16
- if (redactPii) {
17
- logData = redact(logData);
18
- }
19
- const consoleFn = console[msgLevel] || console.log;
20
- consoleFn(`[${msgLevel.toUpperCase()}]`, logData);
21
- onLog?.(msgLevel, logData);
22
- }
23
- return {
24
- trace: (...args) => log("trace", ...args),
25
- debug: (...args) => log("debug", ...args),
26
- info: (...args) => log("info", ...args),
27
- warn: (...args) => log("warn", ...args),
28
- error: (...args) => log("error", ...args),
29
- fatal: (...args) => log("fatal", ...args),
30
- child: (opts) => {
31
- const childLogger = createLogger(level, redactPii, onLog);
32
- const originalFns = { ...childLogger };
33
- for (const lvl of LOG_LEVELS) {
34
- childLogger[lvl] = (...args) => {
35
- originalFns[lvl]({ ...opts, ...args[0] }, ...args.slice(1));
36
- };
37
- }
38
- return childLogger;
39
- }
40
- };
41
- }
42
- let logger = createLogger("info", false);
43
- makeLogger(false, envLevel);
44
- function makeLogger(redactPii, level, onLog) {
45
- logger = createLogger(level || "info", redactPii, onLog);
46
- return logger;
47
- }
48
- function isObjectProperty(property) {
49
- return typeof property === "object" && !Array.isArray(property) && property !== null;
50
- }
51
- function getReplacer() {
52
- const references = /* @__PURE__ */ new WeakSet();
53
- return function(key, value) {
54
- const isObject = typeof value === "object" && value !== null;
55
- if (isObject) {
56
- if (references.has(value)) {
57
- return "[CIRCULAR]";
58
- }
59
- references.add(value);
60
- }
61
- return value;
62
- };
63
- }
64
- function redact(json) {
65
- const isObject = isObjectProperty(json);
66
- if (!isObject && !Array.isArray(json)) {
67
- return json;
68
- }
69
- const redacted = JSON.parse(JSON.stringify(json, getReplacer()));
70
- for (const prop in redacted) {
71
- if (PII_PROPERTIES.includes(prop)) {
72
- redacted[prop] = redactedText;
73
- }
74
- if (Array.isArray(redacted[prop])) {
75
- for (const [index, value] of redacted[prop].entries()) {
76
- redacted[prop][index] = redact(value);
77
- }
78
- } else if (isObjectProperty(redacted[prop])) {
79
- redacted[prop] = redact(redacted[prop]);
80
- }
81
- }
82
- return redacted;
83
- }
84
- export {
85
- logger,
86
- makeLogger,
87
- redact
88
- };
@@ -1,14 +0,0 @@
1
- import type { Logger } from '#src/types/index.ts';
2
- import type { LogLevel } from '#src/types/index.ts';
3
- export declare let logger: Logger;
4
- /**
5
- * Creates a logger instance with optional redaction of PII.
6
- * Replaces default logger
7
- * See PII_PROPERTIES for the list of properties that will be redacted.
8
- *
9
- * @param redactPii - whether to redact PII from logs
10
- * @param level - the log level to use
11
- * @param onLog - a callback to call when a log is written
12
- */
13
- export declare function makeLogger(redactPii: boolean, level?: LogLevel, onLog?: (level: LogLevel, log: any) => void): Logger;
14
- export declare function redact(json: any): any;
@@ -1,88 +0,0 @@
1
- import { getEnvVariable } from "../utils/env.js";
2
- const PII_PROPERTIES = ["ownerPrivateKey", "secretParams"];
3
- const redactedText = "[REDACTED]";
4
- const envLevel = getEnvVariable("LOG_LEVEL");
5
- const LOG_LEVELS = ["trace", "debug", "info", "warn", "error", "fatal"];
6
- function createLogger(level, redactPii, onLog) {
7
- const levelIndex = LOG_LEVELS.indexOf(level);
8
- function shouldLog(msgLevel) {
9
- return LOG_LEVELS.indexOf(msgLevel) >= levelIndex;
10
- }
11
- function log(msgLevel, ...args) {
12
- if (!shouldLog(msgLevel)) {
13
- return;
14
- }
15
- let logData = args.length === 1 ? args[0] : args;
16
- if (redactPii) {
17
- logData = redact(logData);
18
- }
19
- const consoleFn = console[msgLevel] || console.log;
20
- consoleFn(`[${msgLevel.toUpperCase()}]`, logData);
21
- onLog?.(msgLevel, logData);
22
- }
23
- return {
24
- trace: (...args) => log("trace", ...args),
25
- debug: (...args) => log("debug", ...args),
26
- info: (...args) => log("info", ...args),
27
- warn: (...args) => log("warn", ...args),
28
- error: (...args) => log("error", ...args),
29
- fatal: (...args) => log("fatal", ...args),
30
- child: (opts) => {
31
- const childLogger = createLogger(level, redactPii, onLog);
32
- const originalFns = { ...childLogger };
33
- for (const lvl of LOG_LEVELS) {
34
- childLogger[lvl] = (...args) => {
35
- originalFns[lvl]({ ...opts, ...args[0] }, ...args.slice(1));
36
- };
37
- }
38
- return childLogger;
39
- }
40
- };
41
- }
42
- let logger = createLogger("info", false);
43
- makeLogger(false, envLevel);
44
- function makeLogger(redactPii, level, onLog) {
45
- logger = createLogger(level || "info", redactPii, onLog);
46
- return logger;
47
- }
48
- function isObjectProperty(property) {
49
- return typeof property === "object" && !Array.isArray(property) && property !== null;
50
- }
51
- function getReplacer() {
52
- const references = /* @__PURE__ */ new WeakSet();
53
- return function(key, value) {
54
- const isObject = typeof value === "object" && value !== null;
55
- if (isObject) {
56
- if (references.has(value)) {
57
- return "[CIRCULAR]";
58
- }
59
- references.add(value);
60
- }
61
- return value;
62
- };
63
- }
64
- function redact(json) {
65
- const isObject = isObjectProperty(json);
66
- if (!isObject && !Array.isArray(json)) {
67
- return json;
68
- }
69
- const redacted = JSON.parse(JSON.stringify(json, getReplacer()));
70
- for (const prop in redacted) {
71
- if (PII_PROPERTIES.includes(prop)) {
72
- redacted[prop] = redactedText;
73
- }
74
- if (Array.isArray(redacted[prop])) {
75
- for (const [index, value] of redacted[prop].entries()) {
76
- redacted[prop][index] = redact(value);
77
- }
78
- } else if (isObjectProperty(redacted[prop])) {
79
- redacted[prop] = redact(redacted[prop]);
80
- }
81
- }
82
- return redacted;
83
- }
84
- export {
85
- logger,
86
- makeLogger,
87
- redact
88
- };
@@ -1,16 +0,0 @@
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
- export type PreparePacketsForRevealOpts = {
5
- cipherSuite: CipherSuite;
6
- logger: Logger;
7
- /**
8
- * Progress of Zk proof generation
9
- */
10
- onZkProgress?(blocksDone: number, totalBlocks: number): void;
11
- } & PrepareZKProofsBaseOpts;
12
- /**
13
- * Prepares the packets for reveal to the server
14
- * according to the specified reveal type
15
- */
16
- export declare function preparePacketsForReveal(tlsTranscript: Transcript<CompleteTLSPacket>, reveals: Map<TLSPacketContext, MessageRevealInfo>, { onZkProgress, ...opts }: PreparePacketsForRevealOpts): Promise<TranscriptMessage[]>;
@@ -1,69 +0,0 @@
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";
6
- async function preparePacketsForReveal(tlsTranscript, reveals, { onZkProgress, ...opts }) {
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
- }
29
- };
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;
66
- }
67
- export {
68
- preparePacketsForReveal
69
- };
@@ -1,73 +0,0 @@
1
- import type { ArraySlice, OPRFRawMarker, RedactedOrHashedArraySlice, TOPRFProofParams } from '#src/types/index.ts';
2
- export declare const REDACTION_CHAR = "*";
3
- export declare const REDACTION_CHAR_CODE: number;
4
- type SliceWithReveal<T> = {
5
- block: T;
6
- redactedPlaintext: Uint8Array;
7
- /**
8
- * If the block has some TOPRF claims -- they'll be set here
9
- */
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
- };
30
- };
31
- export type RevealedSlices<T> = 'all' | SliceWithReveal<T>[];
32
- /**
33
- * Check if a redacted string is congruent with the original string.
34
- * @param redacted the redacted content, redacted content is replaced by '*'
35
- * @param original the original content
36
- */
37
- export declare function isRedactionCongruent<T extends string | Uint8Array>(redacted: T, original: T): boolean;
38
- /**
39
- * Is the string fully redacted?
40
- */
41
- export declare function isFullyRedacted<T extends string | Uint8Array>(redacted: T): boolean;
42
- /**
43
- * Given some plaintext blocks and a redaction function, return the blocks that
44
- * need to be revealed to the other party
45
- *
46
- * Use case: we get the response for a request in several blocks, and want to redact
47
- * pieces that go through multiple blocks. We can use this function to get the
48
- * blocks that need to be revealed to the other party
49
- *
50
- * @example if we received ["secret is 12","345","678. Thanks"]. We'd want
51
- * to redact the "12345678" and reveal the rest. We'd pass in the blocks and
52
- * the redact function will return the redactions, namely [10,19].
53
- * The function will return the blocks ["secret is **","***. Thanks"].
54
- * The middle block is fully redacted, so it's not returned
55
- *
56
- * @param blocks blocks to reveal
57
- * @param redact function that returns the redactions
58
- * @returns blocks to reveal
59
- */
60
- export declare function getBlocksToReveal<T extends {
61
- plaintext: Uint8Array;
62
- }>(blocks: T[], redact: (total: Uint8Array) => RedactedOrHashedArraySlice[], performOprf: (plaintext: Uint8Array) => Promise<TOPRFProofParams>): Promise<"all" | SliceWithReveal<T>[]>;
63
- /**
64
- * Redact the following slices from the total
65
- */
66
- export declare function redactSlices(total: Uint8Array, slices: ArraySlice[]): Uint8Array<ArrayBuffer>;
67
- /**
68
- * Converts the binary hash to an ASCII string of the expected length.
69
- * If the hash is shorter than the expected length, it will be padded with
70
- * '0' characters. If it's longer, it will be truncated.
71
- */
72
- export declare function binaryHashToStr(hash: Uint8Array, expLength: number): string;
73
- export {};