@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,77 +0,0 @@
1
- import type { Logger as TLSLogger, TLSPacketContext, TLSProtocolVersion } from '@reclaimprotocol/tls';
2
- import type { OPRFRawMarker, TOPRFProofParams } from '#src/types/zk.ts';
3
- /**
4
- * Represents a slice of any array or string
5
- */
6
- export type ArraySlice = {
7
- fromIndex: number;
8
- toIndex: number;
9
- };
10
- export type RedactedOrHashedArraySlice = {
11
- fromIndex: number;
12
- toIndex: number;
13
- /**
14
- * By default, the data is redacted. Instead if you'd like
15
- * a deterministic hash, set this to:
16
- * - 'oprf' for client-side TOPRF with ZK proof
17
- * - 'oprf-mpc' for TEE-to-TEE MPC OPRF
18
- * - 'oprf-raw' for server-side OPRF (data revealed to attestor)
19
- * @default undefined
20
- */
21
- hash?: 'oprf' | 'oprf-mpc' | 'oprf-raw';
22
- };
23
- export type Logger = TLSLogger & {
24
- fatal: (...args: any[]) => void;
25
- child: (opts: {
26
- [_: string]: any;
27
- }) => Logger;
28
- };
29
- export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'trace' | 'fatal';
30
- export type ZKRevealInfo = {
31
- type: 'zk';
32
- redactedPlaintext: Uint8Array;
33
- toprfs?: TOPRFProofParams[];
34
- oprfRawMarkers?: OPRFRawMarker[];
35
- overshotToprfFromPrevBlock?: {
36
- length: number;
37
- };
38
- /**
39
- * If an oprf-raw marker from the previous block overshot into this block.
40
- * The server will collect plaintext from this block to complete the OPRF.
41
- */
42
- overshotOprfRawFromPrevBlock?: {
43
- length: number;
44
- };
45
- };
46
- export type MessageRevealInfo = {
47
- type: 'complete';
48
- } | ZKRevealInfo;
49
- export type CompleteTLSPacket = TLSPacketContext & {
50
- /**
51
- * Full data that was sent/recv across the wire
52
- */
53
- data: Uint8Array;
54
- };
55
- export type IDecryptedTranscriptMessage = {
56
- sender: 'client' | 'server';
57
- redacted: boolean;
58
- message: Uint8Array;
59
- plaintextLength: number;
60
- recordHeader: Uint8Array;
61
- };
62
- export type IDecryptedTranscript = {
63
- transcript: IDecryptedTranscriptMessage[];
64
- tlsVersion: TLSProtocolVersion;
65
- hostname: string;
66
- /**
67
- * oprf-raw replacements: original plaintext -> nullifier mappings
68
- * for server-side parameter replacement
69
- */
70
- oprfRawReplacements?: OPRFRawReplacement[];
71
- };
72
- export type OPRFRawReplacement = {
73
- /** Original plaintext that was OPRF'd */
74
- originalText: string;
75
- /** OPRF nullifier string to replace with */
76
- nullifierText: string;
77
- };
File without changes
@@ -1,10 +0,0 @@
1
- import type { Transaction } from 'elastic-apm-node';
2
- import type { IAttestorServerSocket } from '#src/types/client.ts';
3
- import type { Logger } from '#src/types/general.ts';
4
- import type { RPCRequestData, RPCResponseData, RPCType } from '#src/types/rpc.ts';
5
- export type RPCHandlerMetadata = {
6
- logger: Logger;
7
- tx?: Transaction;
8
- client: IAttestorServerSocket;
9
- };
10
- export type RPCHandler<R extends RPCType> = (data: RPCRequestData<R>, ctx: RPCHandlerMetadata) => Promise<RPCResponseData<R>>;
File without changes
@@ -1,10 +0,0 @@
1
- export * from './providers.ts';
2
- export * from './general.ts';
3
- export * from './signatures.ts';
4
- export * from './claims.ts';
5
- export * from './zk.ts';
6
- export * from './client.ts';
7
- export * from './rpc.ts';
8
- export * from './tunnel.ts';
9
- export * from './handlers.ts';
10
- export * from './bgp.ts';
@@ -1,10 +0,0 @@
1
- export * from "./providers.js";
2
- export * from "./general.js";
3
- export * from "./signatures.js";
4
- export * from "./claims.js";
5
- export * from "./zk.js";
6
- export * from "./client.js";
7
- export * from "./rpc.js";
8
- export * from "./tunnel.js";
9
- export * from "./handlers.js";
10
- export * from "./bgp.js";
@@ -1,161 +0,0 @@
1
- import type { TLSConnectionOptions } from '@reclaimprotocol/tls';
2
- import type { AttestorVersion, ProviderClaimData } from '#src/proto/api.ts';
3
- import type { ArraySlice, Logger, RedactedOrHashedArraySlice } from '#src/types/general.ts';
4
- import type { ProvidersConfig } from '#src/types/providers.gen.ts';
5
- import type { Transcript } from '#src/types/tunnel.ts';
6
- export type AttestorData = {
7
- id: string;
8
- url: string;
9
- };
10
- type CreateRequestResult = {
11
- /**
12
- * Raw request to be sent
13
- * If a string, it is assumed to be an
14
- * ASCII encoded string. If it contains
15
- * non-ASCII characters, the redactions
16
- * may not work as expected
17
- */
18
- data: Uint8Array | string;
19
- redactions: ArraySlice[];
20
- };
21
- export type ProviderName = keyof ProvidersConfig;
22
- export type ProviderParams<T extends ProviderName> = ProvidersConfig[T]['parameters'];
23
- export type ProviderSecretParams<T extends ProviderName> = ProvidersConfig[T]['secretParameters'];
24
- export type RedactionMode = 'key-update' | 'zk';
25
- export type ProviderField<Params, SecretParams, T> = T | ((params: Params, secretParams?: SecretParams) => T);
26
- export type ProviderCtx = {
27
- version: AttestorVersion;
28
- };
29
- type GetResponseRedactionsOpts<P> = {
30
- response: Uint8Array;
31
- params: P;
32
- logger: Logger;
33
- ctx: ProviderCtx;
34
- };
35
- type AssertValidProviderReceipt<P> = {
36
- receipt: Transcript<Uint8Array>;
37
- params: P;
38
- logger: Logger;
39
- ctx: ProviderCtx;
40
- };
41
- /**
42
- * Generic interface for a provider that can be used to verify
43
- * claims on a TLS receipt
44
- *
45
- * @notice "Params" are the parameters you want to claim against.
46
- * These would typically be found in the response body
47
- *
48
- * @notice "SecretParams" are the parameters that are used to make the API request.
49
- * These must be redacted in the request construction in "createRequest" & cannot be viewed by anyone
50
- */
51
- export interface Provider<N extends ProviderName, Params = ProviderParams<N>, SecretParams = ProviderSecretParams<N>> {
52
- /**
53
- * host:port to connect to for this provider;
54
- * the protocol establishes a connection to the first one
55
- * when a request is received from a user.
56
- *
57
- * Run on attestor side when creating a new session
58
- *
59
- * Eg. "www.google.com:443", (p) => p.url.host
60
- * */
61
- hostPort: ProviderField<Params, SecretParams, string>;
62
- /**
63
- * Which geo location to send the request from
64
- * Provide 2 letter country code, or a function
65
- * that returns the country code
66
- * @example "US", "IN"
67
- */
68
- geoLocation?: ProviderField<Params, SecretParams, string | undefined>;
69
- /**
70
- * Session identifier for proxy IP persistence.
71
- *
72
- * When provided, ensures all requests within the same session
73
- * are routed through the same proxy IP address. Useful for
74
- * maintaining IP consistency across multiple requests.
75
- *
76
- * Can be a smallcase alphanumeric string of length 8-14 characters.
77
- * @example "mystring12345", "something1234"
78
- */
79
- proxySessionId?: ProviderField<Params, SecretParams, string | undefined>;
80
- /** extra options to pass to the client like root CA certificates */
81
- additionalClientOptions?: ProviderField<Params, SecretParams, TLSConnectionOptions | undefined>;
82
- /**
83
- * default redaction mode to use. If not specified,
84
- * the default is 'key-update'.
85
- *
86
- * It's switched to 'zk' for TLS1.2 requests as TLS1.2
87
- * don't support key updates
88
- *
89
- * @default 'key-update'
90
- */
91
- writeRedactionMode?: ProviderField<Params, SecretParams, RedactionMode | undefined>;
92
- /** generate the raw request to be sent to through the TLS receipt */
93
- createRequest(secretParams: SecretParams, params: Params, logger: Logger): CreateRequestResult;
94
- /**
95
- * Return the slices of the response to redact
96
- * Eg. if the response is "hello my secret is xyz",
97
- * and you want to redact "xyz", you would return
98
- * [{start: 17, end: 20}]
99
- *
100
- * This is run on the client side, to selct which portions of
101
- * the server response to send to the attestor
102
- * */
103
- getResponseRedactions?(opts: GetResponseRedactionsOpts<Params>): RedactedOrHashedArraySlice[];
104
- /**
105
- * verify a generated TLS receipt against given parameters
106
- * to ensure the receipt does contain the claims the
107
- * user is claiming to have
108
- *
109
- * This is run on the attestor side.
110
- * @param receipt application data messages exchanged in the TLS session
111
- * @param params the parameters to verify the receipt against.
112
- * Eg. `{"email": "abcd@gmail.com"}`
113
- * @returns sucessful verification or throws an error message.
114
- * Optionally return parameters extracted from the receipt
115
- * that will then be included in the claim context
116
- * */
117
- assertValidProviderReceipt(opts: AssertValidProviderReceipt<Params>): void | Promise<void> | {
118
- extractedParameters: {
119
- [key: string]: string;
120
- };
121
- };
122
- }
123
- export type ProofGenerationStep = {
124
- name: 'connecting';
125
- } | {
126
- name: 'sending-request-data';
127
- } | {
128
- name: 'waiting-for-response';
129
- } | {
130
- name: 'generating-zk-proofs';
131
- proofsDone: number;
132
- proofsTotal: number;
133
- /**
134
- * approximate time left in seconds.
135
- * Only computed after the first block
136
- * is done
137
- * */
138
- approxTimeLeftS?: number;
139
- } | {
140
- name: 'waiting-for-verification';
141
- };
142
- type StepData = {
143
- timestampS: number;
144
- epoch: number;
145
- attestors: AttestorData[];
146
- };
147
- export type CreateStep = ({
148
- name: 'creating';
149
- } & StepData) | ({
150
- name: 'attestor-progress';
151
- currentAttestor: AttestorData;
152
- step: ProofGenerationStep;
153
- } & StepData) | {
154
- name: 'attestor-done';
155
- timestampS: number;
156
- epoch: number;
157
- attestorsLeft: AttestorData[];
158
- claimData: ProviderClaimData;
159
- signaturesDone: string[];
160
- };
161
- export {};