@reclaimprotocol/attestor-core 3.1.1 → 4.0.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 (110) hide show
  1. package/lib/avs/contracts/index.js +18 -8
  2. package/lib/avs/tests/test.operator.js +4 -4
  3. package/lib/avs/utils/tasks.d.ts +1 -1
  4. package/lib/client/create-claim.d.ts +2 -2
  5. package/lib/client/create-claim.js +100 -34
  6. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +3 -3
  7. package/lib/client/tunnels/make-rpc-tls-tunnel.js +3 -3
  8. package/lib/client/utils/client-socket.d.ts +3 -1
  9. package/lib/client/utils/client-socket.js +25 -8
  10. package/lib/client/utils/message-handler.js +2 -2
  11. package/lib/config/index.d.ts +9 -2
  12. package/lib/config/index.js +10 -4
  13. package/lib/index.js +18 -8
  14. package/lib/proto/api.d.ts +81 -2
  15. package/lib/proto/api.js +859 -101
  16. package/lib/providers/http/index.js +220 -116
  17. package/lib/providers/http/utils.d.ts +3 -6
  18. package/lib/providers/http/utils.js +13 -11
  19. package/lib/providers/index.js +1 -3
  20. package/lib/scripts/check-avs-registration.js +2 -2
  21. package/lib/scripts/generate-provider-types.js +2 -2
  22. package/lib/scripts/generate-receipt.js +6 -3
  23. package/lib/scripts/generate-toprf-keys.d.ts +1 -0
  24. package/lib/scripts/generate-toprf-keys.js +23 -0
  25. package/lib/scripts/register-avs-operator.js +2 -2
  26. package/lib/scripts/start-server.js +10 -3
  27. package/lib/scripts/update-avs-metadata.js +2 -2
  28. package/lib/scripts/verify-root-ca.js +2 -2
  29. package/lib/scripts/whitelist-operator.js +2 -2
  30. package/lib/server/create-server.js +14 -7
  31. package/lib/server/handlers/claimTunnel.js +34 -11
  32. package/lib/server/handlers/createTunnel.js +45 -9
  33. package/lib/server/handlers/disconnectTunnel.js +2 -2
  34. package/lib/server/handlers/index.js +4 -2
  35. package/lib/server/handlers/init.js +17 -2
  36. package/lib/server/handlers/toprf.d.ts +2 -0
  37. package/lib/server/handlers/toprf.js +21 -0
  38. package/lib/server/socket.d.ts +5 -3
  39. package/lib/server/socket.js +28 -8
  40. package/lib/server/tunnels/make-tcp-tunnel.js +22 -29
  41. package/lib/server/utils/apm.js +9 -5
  42. package/lib/server/utils/assert-valid-claim-request.d.ts +3 -3
  43. package/lib/server/utils/assert-valid-claim-request.js +27 -16
  44. package/lib/server/utils/dns.d.ts +1 -0
  45. package/lib/server/utils/dns.js +22 -0
  46. package/lib/server/utils/generics.d.ts +1 -1
  47. package/lib/tests/describe-with-server.d.ts +0 -2
  48. package/lib/tests/describe-with-server.js +1 -4
  49. package/lib/tests/mock-provider-server.d.ts +1 -1
  50. package/lib/tests/test.auth.d.ts +1 -0
  51. package/lib/tests/test.auth.js +75 -0
  52. package/lib/tests/test.bgp-listener.d.ts +1 -0
  53. package/lib/tests/test.bgp-listener.js +169 -0
  54. package/lib/tests/test.claim-creation.js +101 -8
  55. package/lib/tests/test.http-parser.d.ts +1 -1
  56. package/lib/tests/test.http-parser.js +7 -5
  57. package/lib/tests/test.http-provider-utils.js +489 -211
  58. package/lib/tests/test.http-provider.js +77 -6
  59. package/lib/tests/test.rpc-tunnel.js +10 -6
  60. package/lib/tests/test.zk.d.ts +1 -1
  61. package/lib/tests/test.zk.js +180 -12
  62. package/lib/tests/utils.d.ts +6 -0
  63. package/lib/tests/utils.js +16 -1
  64. package/lib/types/bgp.d.ts +11 -0
  65. package/lib/types/bgp.js +3 -0
  66. package/lib/types/claims.d.ts +14 -5
  67. package/lib/types/client.d.ts +30 -3
  68. package/lib/types/general.d.ts +12 -0
  69. package/lib/types/handlers.d.ts +4 -4
  70. package/lib/types/index.d.ts +1 -0
  71. package/lib/types/index.js +2 -1
  72. package/lib/types/providers.d.ts +25 -10
  73. package/lib/types/providers.gen.d.ts +14 -155
  74. package/lib/types/providers.gen.js +2 -6
  75. package/lib/types/tunnel.d.ts +2 -2
  76. package/lib/types/zk.d.ts +11 -3
  77. package/lib/utils/auth.d.ts +7 -0
  78. package/lib/utils/auth.js +64 -0
  79. package/lib/utils/b64-json.d.ts +2 -0
  80. package/lib/utils/b64-json.js +23 -0
  81. package/lib/utils/bgp-listener.d.ts +7 -0
  82. package/lib/utils/bgp-listener.js +126 -0
  83. package/lib/utils/claims.js +3 -3
  84. package/lib/utils/generics.d.ts +5 -5
  85. package/lib/utils/generics.js +3 -3
  86. package/lib/utils/http-parser.d.ts +4 -0
  87. package/lib/utils/http-parser.js +4 -2
  88. package/lib/utils/index.d.ts +2 -0
  89. package/lib/utils/index.js +3 -1
  90. package/lib/utils/redactions.d.ts +19 -6
  91. package/lib/utils/redactions.js +41 -4
  92. package/lib/utils/socket-base.d.ts +3 -2
  93. package/lib/utils/socket-base.js +7 -2
  94. package/lib/utils/ws.d.ts +5 -5
  95. package/lib/utils/ws.js +27 -10
  96. package/lib/utils/zk.d.ts +12 -7
  97. package/lib/utils/zk.js +261 -67
  98. package/lib/window-rpc/setup-window-rpc.js +29 -8
  99. package/lib/window-rpc/types.d.ts +16 -21
  100. package/lib/window-rpc/utils.d.ts +2 -1
  101. package/lib/window-rpc/utils.js +28 -2
  102. package/lib/window-rpc/window-rpc-zk.d.ts +8 -3
  103. package/lib/window-rpc/window-rpc-zk.js +58 -45
  104. package/package.json +25 -22
  105. package/lib/providers/httpb64/index.d.ts +0 -3
  106. package/lib/providers/httpb64/index.js +0 -209
  107. package/lib/providers/httpb64/utils.d.ts +0 -77
  108. package/lib/providers/httpb64/utils.js +0 -358
  109. package/lib/server/utils/verify-server-certificates.d.ts +0 -7
  110. package/lib/server/utils/verify-server-certificates.js +0 -101
@@ -0,0 +1,126 @@
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.createBgpListener = createBgpListener;
7
+ const ip_cidr_1 = __importDefault(require("ip-cidr"));
8
+ const config_1 = require("../config");
9
+ const ws_1 = require("../utils/ws");
10
+ const ANNOUNCEMENT_OVERLAP = 'announcement-overlap';
11
+ class BGPAnnouncementOverlapEvent extends Event {
12
+ constructor(data) {
13
+ super(ANNOUNCEMENT_OVERLAP);
14
+ this.data = data;
15
+ }
16
+ }
17
+ /**
18
+ * Listens for BGP announcements and emits events whenever
19
+ * an announcement overlaps with a target IP.
20
+ */
21
+ function createBgpListener(logger) {
22
+ let ws;
23
+ let closed = false;
24
+ const targetIps = new Set();
25
+ const eventTarget = new EventTarget();
26
+ openWs();
27
+ return {
28
+ onOverlap(ips, callback) {
29
+ for (const ip of ips) {
30
+ targetIps.add(ip);
31
+ }
32
+ eventTarget.addEventListener(ANNOUNCEMENT_OVERLAP, _callback);
33
+ return () => {
34
+ for (const ip of ips) {
35
+ targetIps.delete(ip);
36
+ }
37
+ eventTarget.removeEventListener(ANNOUNCEMENT_OVERLAP, _callback);
38
+ };
39
+ function _callback(event) {
40
+ callback(event.data);
41
+ }
42
+ },
43
+ close() {
44
+ ws.onclose = null;
45
+ ws.onerror = null;
46
+ ws.close();
47
+ closed = true;
48
+ }
49
+ };
50
+ function openWs() {
51
+ logger.debug('connecting to BGP websocket');
52
+ ws = (0, ws_1.makeWebSocket)(config_1.BGP_WS_URL);
53
+ ws.onopen = onOpen;
54
+ ws.onerror = (err) => onClose(err);
55
+ ws.onclose = () => onClose(new Error('Unexpected close'));
56
+ ws.onmessage = ({ data }) => {
57
+ const str = typeof data === 'string' ? data : data.toString();
58
+ try {
59
+ onMessage(str);
60
+ }
61
+ catch (err) {
62
+ logger.error({ data, err }, 'error processing BGP message');
63
+ }
64
+ };
65
+ }
66
+ function onOpen() {
67
+ const subscriptionMessage = {
68
+ type: 'ris_subscribe',
69
+ data: {
70
+ type: 'UPDATE',
71
+ },
72
+ };
73
+ ws.send(JSON.stringify(subscriptionMessage));
74
+ logger.info('connected to BGP websocket');
75
+ }
76
+ function onClose(err) {
77
+ if (closed) {
78
+ return;
79
+ }
80
+ logger.info({ err }, 'BGP websocket closed');
81
+ if (!err) {
82
+ return;
83
+ }
84
+ logger.info('reconnecting to BGP websocket');
85
+ openWs();
86
+ }
87
+ function onMessage(message) {
88
+ var _a, _b;
89
+ const data = JSON.parse(message);
90
+ const announcements = (_a = data === null || data === void 0 ? void 0 : data.data) === null || _a === void 0 ? void 0 : _a.announcements;
91
+ logger.trace({ data }, 'got BGP update');
92
+ if (!Array.isArray(announcements)) {
93
+ return;
94
+ }
95
+ const asPath = (_b = data === null || data === void 0 ? void 0 : data.data) === null || _b === void 0 ? void 0 : _b.path;
96
+ for (const announcement of announcements) {
97
+ const prefixes = announcement === null || announcement === void 0 ? void 0 : announcement.prefixes;
98
+ const nextHop = announcement === null || announcement === void 0 ? void 0 : announcement['next_hop'];
99
+ const hasPrefixes = (prefixes === null || prefixes === void 0 ? void 0 : prefixes.length) && (nextHop || asPath);
100
+ if (!hasPrefixes) {
101
+ return;
102
+ }
103
+ for (const prefix of prefixes) {
104
+ if (!overlapsTargetIps(prefix)) {
105
+ continue;
106
+ }
107
+ // emit event
108
+ eventTarget.dispatchEvent(new BGPAnnouncementOverlapEvent({ prefix }));
109
+ }
110
+ }
111
+ }
112
+ function overlapsTargetIps(prefix) {
113
+ // ignore all prefixes that end with /0
114
+ if (prefix.endsWith('/0')) {
115
+ return false;
116
+ }
117
+ const cidr = new ip_cidr_1.default(prefix);
118
+ for (const ip of targetIps) {
119
+ if (cidr.contains(ip)) {
120
+ return true;
121
+ }
122
+ }
123
+ return false;
124
+ }
125
+ }
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmdwLWxpc3RlbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2JncC1saXN0ZW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWtCQSw4Q0F1SUM7QUF6SkQsc0RBQTBCO0FBRTFCLHVDQUF1QztBQUV2QyxxQ0FBNEM7QUFFNUMsTUFBTSxvQkFBb0IsR0FBRyxzQkFBc0IsQ0FBQTtBQUVuRCxNQUFNLDJCQUE0QixTQUFRLEtBQUs7SUFDOUMsWUFBNEIsSUFBZ0M7UUFDM0QsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUE7UUFEQSxTQUFJLEdBQUosSUFBSSxDQUE0QjtJQUU1RCxDQUFDO0NBQ0Q7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxNQUFjO0lBQy9DLElBQUksRUFBb0MsQ0FBQTtJQUN4QyxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUE7SUFFbEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQTtJQUNuQyxNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFBO0lBRXJDLE1BQU0sRUFBRSxDQUFBO0lBRVIsT0FBTztRQUNOLFNBQVMsQ0FBQyxHQUFHLEVBQUUsUUFBUTtZQUN0QixLQUFJLE1BQU0sRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNyQixTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQ2xCLENBQUM7WUFFRCxXQUFXLENBQUMsZ0JBQWdCLENBQzNCLG9CQUFvQixFQUNwQixTQUFTLENBQ1QsQ0FBQTtZQUVELE9BQU8sR0FBRyxFQUFFO2dCQUNYLEtBQUksTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFLENBQUM7b0JBQ3JCLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUE7Z0JBQ3JCLENBQUM7Z0JBRUQsV0FBVyxDQUFDLG1CQUFtQixDQUM5QixvQkFBb0IsRUFDcEIsU0FBUyxDQUNULENBQUE7WUFDRixD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
@@ -102,11 +102,11 @@ function hashProviderParams(params) {
102
102
  const filteredParams = {
103
103
  url: params.url,
104
104
  method: params.method,
105
+ body: params.body,
105
106
  responseMatches: params.responseMatches,
106
- responseRedactions: params.responseRedactions,
107
- geoLocation: params.geoLocation
107
+ responseRedactions: params.responseRedactions
108
108
  };
109
109
  const serializedParams = canonicalStringify(filteredParams);
110
110
  return ethers_1.utils.keccak256((0, tls_1.strToUint8Array)(serializedParams)).toLowerCase();
111
111
  }
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhaW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NsYWltcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWFBLHdEQWNDO0FBWUQsZ0VBK0NDO0FBT0QsZ0VBaUJDO0FBTUQsZ0RBTUM7QUFFRCxnREFhQztBQXpJRCw4Q0FBc0Q7QUFDdEQsZ0VBQXVDO0FBQ3ZDLG1DQUE4QjtBQUM5Qix1Q0FBNkM7QUFDN0MsdUNBQW1EO0FBRW5ELHFEQUFpRDtBQUVqRDs7OztHQUlHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQUMsSUFBdUI7SUFDN0QsTUFBTSxVQUFVLEdBQUcsWUFBWSxJQUFJLElBQUk7UUFDdEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVO1FBQ2pCLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNuQyxNQUFNLEtBQUssR0FBRztRQUNiLFVBQVU7UUFDViw0Q0FBNEM7UUFDNUMsOENBQThDO1FBQzlDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFO1FBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFO1FBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0tBQ3JCLENBQUE7SUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDeEIsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNJLEtBQUssVUFBVSwwQkFBMEIsQ0FDL0MsRUFDQyxVQUFVLEVBQ1YsR0FBRyxHQUFHLEVBQ3dCLEVBQy9CLFFBQVEsR0FBRyx5QkFBZ0I7SUFFM0IsSUFBRyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBRUQsTUFBTSxFQUNMLGVBQWUsRUFDZixjQUFjLEVBQ2QsZUFBZSxFQUNmLEdBQUcsVUFBVSxDQUFBO0lBRWQsTUFBTSxFQUFFLE1BQU0s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
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhaW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NsYWltcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWFBLHdEQWNDO0FBWUQsZ0VBK0NDO0FBT0QsZ0VBaUJDO0FBTUQsZ0RBTUM7QUFFRCxnREFhQztBQXpJRCw4Q0FBc0Q7QUFDdEQsZ0VBQXVDO0FBQ3ZDLG1DQUE4QjtBQUM5Qix1Q0FBNkM7QUFDN0MsdUNBQW1EO0FBRW5ELHFEQUFpRDtBQUVqRDs7OztHQUlHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQUMsSUFBdUI7SUFDN0QsTUFBTSxVQUFVLEdBQUcsWUFBWSxJQUFJLElBQUk7UUFDdEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVO1FBQ2pCLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNuQyxNQUFNLEtBQUssR0FBRztRQUNiLFVBQVU7UUFDViw0Q0FBNEM7UUFDNUMsOENBQThDO1FBQzlDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFO1FBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFO1FBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0tBQ3JCLENBQUE7SUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDeEIsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNJLEtBQUssVUFBVSwwQkFBMEIsQ0FDL0MsRUFDQyxVQUFVLEVBQ1YsR0FBRyxHQUFHLEVBQ3dCLEVBQy9CLFFBQVEsR0FBRyx5QkFBZ0I7SUFFM0IsSUFBRyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBRUQsTUFBTSxFQUNMLGVBQWUsRUFDZixjQUFjLEVBQ2QsZUFBZSxFQUNmLEdBQUcsVUFBVSxDQUFBO0lBRWQsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLHVCQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQ3JELElBQUcsVUFBVSxhQUFWLFVBQVUsdUJBQVYsVUFBVSxDQUFFLGVBQWUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sUUFBUSxHQUFHLHlCQUFtQixDQUFDLE1BQU0sQ0FDMUMseUJBQW1CLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUMvQixDQUFDLE1BQU0sRUFBRSxDQUFBO1FBQ1YsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQzVCLFFBQVEsRUFDUixlQUFlLEVBQ2YsZUFBZSxDQUNmLENBQUE7UUFDRCxJQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUE7UUFDNUMsQ0FBQztJQUNGLENBQUM7SUFFRCxnREFBZ0Q7SUFDaEQscUNBQXFDO0lBQ3JDLElBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixPQUFNO0lBQ1AsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNsRCxNQUFNLGFBQWEsR0FBRyxNQUFNLE1BQU0sQ0FDakMsSUFBQSxxQkFBZSxFQUFDLFFBQVEsQ0FBQyxFQUN6QixjQUFjLEVBQ2QsZUFBZSxDQUNmLENBQUE7SUFDRCxJQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO0lBQzNDLENBQUM7QUFDRixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLDBCQUEwQixDQUFDLElBQWU7O0lBQ3pELDJDQUEyQztJQUMzQyxJQUFHLENBQUEsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxNQUFNLElBQUcsQ0FBQyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDO1lBQ0osTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUUsQ0FBQTtRQUN4QyxDQUFDO1FBQUMsT0FBTSxDQUFDLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQTtRQUNuRSxDQUFDO0lBRUYsQ0FBQztJQUVELE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLENBQUE7SUFDekUseUNBQXlDO0lBQ3pDLE9BQU8sY0FBSyxDQUFDLFNBQVMsQ0FDckIsSUFBQSxxQkFBZSxFQUFDLEdBQUcsQ0FBQyxDQUNwQixDQUFDLFdBQVcsRUFBRSxDQUFBO0FBQ2hCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxNQUEwQztJQUM1RSxJQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixPQUFPLEVBQUUsQ0FBQTtJQUNWLENBQUM7SUFFRCxPQUFPLElBQUEsc0JBQVksRUFBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUE7QUFDbEMsQ0FBQztBQUVELFNBQWdCLGtCQUFrQixDQUFDLE1BQThCO0lBQ2hFLE1BQU0sY0FBYyxHQUFHO1FBQ3RCLEdBQUcsRUFBQyxNQUFNLENBQUMsR0FBRztRQUNkLE1BQU0sRUFBQyxNQUFNLENBQUMsTUFBTTtRQUNwQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7UUFDakIsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlO1FBQ3ZDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxrQkFBa0I7S0FDN0MsQ0FBQTtJQUVELE1BQU0sZ0JBQWdCLEdBQUcsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDM0QsT0FBTyxjQUFLLENBQUMsU0FBUyxDQUNyQixJQUFBLHFCQUFlLEVBQUMsZ0JBQWdCLENBQUMsQ0FDakMsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtBQUNoQixDQUFDIn0=
@@ -26,14 +26,14 @@ export declare function getZkAlgorithmForCipherSuite(cipherSuite: CipherSuite):
26
26
  * @param content content w/o header
27
27
  * @param cipherSuite
28
28
  */
29
- export declare function getPureCiphertext(content: Uint8Array, cipherSuite: CipherSuite): Uint8Array;
29
+ export declare function getPureCiphertext(content: Uint8Array, cipherSuite: CipherSuite): Uint8Array<ArrayBufferLike>;
30
30
  /**
31
31
  * Get the 8 byte IV part that's stored in the record for some cipher suites
32
32
  * @param content content w/o header
33
33
  * @param cipherSuite
34
34
  */
35
- export declare function getRecordIV(content: Uint8Array, cipherSuite: CipherSuite): Uint8Array;
36
- export declare function getProviderValue<P, T>(params: P, fn: ProviderField<P, T>): T;
35
+ export declare function getRecordIV(content: Uint8Array, cipherSuite: CipherSuite): Uint8Array<ArrayBuffer>;
36
+ export declare function getProviderValue<P, S, T>(params: P, fn: ProviderField<P, S, T>, secretParams?: S): T;
37
37
  export declare function generateRpcMessageId(): number;
38
38
  /**
39
39
  * Random session ID for a WebSocket client.
@@ -89,7 +89,7 @@ export declare function getRpcRequest(msg: RPCMessage): {
89
89
  * and returns them. Removes the "contentType" suffix from the message.
90
90
  * in TLS 1.3
91
91
  */
92
- export declare function extractApplicationDataFromTranscript({ transcript, tlsVersion }: IDecryptedTranscript): Transcript<Uint8Array>;
92
+ export declare function extractApplicationDataFromTranscript({ transcript, tlsVersion }: IDecryptedTranscript): Transcript<Uint8Array<ArrayBufferLike>>;
93
93
  export type HandshakeTranscript<T> = {
94
94
  sender: 'client' | 'server';
95
95
  index: number;
@@ -98,7 +98,7 @@ export type HandshakeTranscript<T> = {
98
98
  export declare function extractHandshakeFromTranscript({ transcript, tlsVersion }: {
99
99
  transcript: IDecryptedTranscriptMessage[];
100
100
  tlsVersion: TLSProtocolVersion;
101
- }): HandshakeTranscript<Uint8Array>;
101
+ }): HandshakeTranscript<Uint8Array<ArrayBufferLike>>;
102
102
  export declare function decryptDirect(directReveal: any, cipherSuite: CipherSuite, recordHeader: Uint8Array, serverTlsVersion: TLSProtocolVersion, content: Uint8Array): Promise<{
103
103
  plaintext: Uint8Array;
104
104
  iv: Uint8Array;
@@ -124,10 +124,10 @@ function getRecordIV(content, cipherSuite) {
124
124
  const recordIvLength = 12 - fixedIvLength;
125
125
  return content.slice(0, recordIvLength);
126
126
  }
127
- function getProviderValue(params, fn) {
127
+ function getProviderValue(params, fn, secretParams) {
128
128
  return typeof fn === 'function'
129
129
  // @ts-ignore
130
- ? fn(params)
130
+ ? fn(params, secretParams)
131
131
  : fn;
132
132
  }
133
133
  function generateRpcMessageId() {
@@ -345,4 +345,4 @@ function ethersStructToPlainObject(struct) {
345
345
  }
346
346
  return obj;
347
347
  }
348
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpY3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvZ2VuZXJpY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMEJBLDBDQUVDO0FBRUQsa0RBYUM7QUFPRCxzREFXQztBQVFELHNEQVNDO0FBRUQsZ0NBR0M7QUFLRCxvRUFjQztBQVFELDhDQW1CQztBQVFELGtDQWFDO0FBRUQsNENBS0M7QUFFRCxvREFJQztBQUtELDhDQUVDO0FBS0QsNENBRUM7QUFFRCxvQ0FPQztBQU9ELDhDQWNDO0FBTUQsZ0RBRUM7QUFNRCw4Q0FFQztBQUVELDhDQVlDO0FBS0Qsb0VBcUJDO0FBS0Qsc0NBb0JDO0FBT0Qsb0ZBcUNDO0FBUUQsd0VBb0NDO0FBRUQsc0NBZUM7QUFFRCwwQ0FTQztBQU9ELDhEQWtCQztBQTdhRCw4Q0FTNkI7QUFDN0IsOEVBQTBFO0FBQzFFLHVDQUF1RDtBQVl2RCxNQUFNLHNCQUFzQixHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQztLQUM5QyxJQUFJLENBQUMseUNBQW1CLENBQUMsQ0FBQTtBQUUzQixTQUFnQixlQUFlLENBQUMsR0FBZTtJQUM5QyxPQUFPLElBQUksV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ3JDLENBQUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxPQUE2Qjs7SUFDaEUsTUFBTSxRQUFRLEdBQUcsb0NBQW9DLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDOUQsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFBO0lBQzVCLEtBQUksTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUMzQyxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDeEMsSUFBRyxNQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQywwQ0FBRSxVQUFVLENBQUMsTUFBTSxDQUFD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
348
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpY3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvZ2VuZXJpY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMEJBLDBDQUVDO0FBRUQsa0RBYUM7QUFPRCxzREFXQztBQVFELHNEQVNDO0FBRUQsZ0NBR0M7QUFLRCxvRUFjQztBQVFELDhDQW1CQztBQVFELGtDQWFDO0FBRUQsNENBS0M7QUFFRCxvREFJQztBQUtELDhDQUVDO0FBS0QsNENBRUM7QUFFRCxvQ0FPQztBQU9ELDhDQWNDO0FBTUQsZ0RBRUM7QUFNRCw4Q0FFQztBQUVELDhDQVlDO0FBS0Qsb0VBcUJDO0FBS0Qsc0NBb0JDO0FBT0Qsb0ZBcUNDO0FBUUQsd0VBb0NDO0FBRUQsc0NBZUM7QUFFRCwwQ0FTQztBQU9ELDhEQWtCQztBQTdhRCw4Q0FTNkI7QUFDN0IsOEVBQTBFO0FBQzFFLHVDQUF1RDtBQVl2RCxNQUFNLHNCQUFzQixHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQztLQUM5QyxJQUFJLENBQUMseUNBQW1CLENBQUMsQ0FBQTtBQUUzQixTQUFnQixlQUFlLENBQUMsR0FBZTtJQUM5QyxPQUFPLElBQUksV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ3JDLENBQUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxPQUE2Qjs7SUFDaEUsTUFBTSxRQUFRLEdBQUcsb0NBQW9DLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDOUQsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFBO0lBQzVCLEtBQUksTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUMzQyxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDeEMsSUFBRyxNQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQywwQ0FBRSxVQUFVLENBQUMsTUFBTSxDQUFD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
@@ -30,6 +30,10 @@ export type HttpResponse = {
30
30
  */
31
31
  chunks?: ArraySlice[];
32
32
  headerIndices: Map<string, ArraySlice>;
33
+ /**
34
+ * index of separator \r\n\r\n between headers and body
35
+ */
36
+ headerEndIdx: number;
33
37
  };
34
38
  /**
35
39
  * parses http/1.1 responses
@@ -18,7 +18,8 @@ function makeHttpResponseParser() {
18
18
  body: new Uint8Array(),
19
19
  complete: false,
20
20
  headersComplete: false,
21
- headerIndices: new Map()
21
+ headerIndices: new Map(),
22
+ headerEndIdx: 0
22
23
  };
23
24
  let remainingBodyBytes = 0;
24
25
  let isChunked = false;
@@ -47,6 +48,7 @@ function makeHttpResponseParser() {
47
48
  }
48
49
  else if (line === '') { // empty line signifies end of headers
49
50
  res.headersComplete = true;
51
+ res.headerEndIdx = currentByteIdx - 4;
50
52
  // if the response is chunked, we need to process the body differently
51
53
  if ((_a = res.headers['transfer-encoding']) === null || _a === void 0 ? void 0 : _a.includes('chunked')) {
52
54
  isChunked = true;
@@ -246,4 +248,4 @@ function getHttpRequestDataFromTranscript(receipt) {
246
248
  return line;
247
249
  }
248
250
  }
249
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaHR0cC1wYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUE4Q0Esd0RBaUxDO0FBT0QsNEVBeUVDO0FBL1NELDhDQUE4RTtBQUc5RSxpREFBMkU7QUFDM0UscURBQTBEO0FBcUMxRCxNQUFNLG9CQUFvQixHQUFHLElBQUEscUJBQWUsRUFBQyxNQUFNLENBQUMsQ0FBQTtBQUVwRDs7R0FFRztBQUNILFNBQWdCLHNCQUFzQjtJQUNyQyw2QkFBNkI7SUFDN0IsTUFBTSxHQUFHLEdBQWlCO1FBQ3pCLFVBQVUsRUFBRSxDQUFDO1FBQ2IsYUFBYSxFQUFFLEVBQUU7UUFDakIsT0FBTyxFQUFFLEVBQUU7UUFDWCxJQUFJLEVBQUUsSUFBSSxVQUFVLEVBQUU7UUFDdEIsUUFBUSxFQUFFLEtBQUs7UUFDZixlQUFlLEVBQUUsS0FBSztRQUN0QixhQUFhLEVBQUMsSUFBSSxHQUFHLEVBQXNCO0tBQzNDLENBQUE7SUFFRCxJQUFJLGtCQUFrQixHQUFHLENBQUMsQ0FBQTtJQUMxQixJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUE7SUFDckIsSUFBSSxTQUFTLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQTtJQUNoQyxJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUE7SUFFdEIsT0FBTztRQUNOLEdBQUc7UUFDSDs7O1dBR1M7UUFDVCxPQUFPLENBQUMsSUFBZ0I7O1lBQ3ZCLHFEQUFxRDtZQUNyRCxTQUFTLEdBQUcsSUFBQSw0QkFBc0IsRUFBQyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBO1lBQ3JELHVEQUF1RDtZQUN2RCw4QkFBOEI7WUFDOUIsSUFBRyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDekIsS0FBSSxJQUFJLElBQUksR0FBRyxPQUFPLEVBQUUsRUFBRSxPQUFPLElBQUksS0FBSyxXQUFXLEVBQUUsSUFBSSxHQUFHLE9B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
251
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaHR0cC1wYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFrREEsd0RBbUxDO0FBT0QsNEVBeUVDO0FBclRELDhDQUE4RTtBQUc5RSxpREFBMkU7QUFDM0UscURBQTBEO0FBeUMxRCxNQUFNLG9CQUFvQixHQUFHLElBQUEscUJBQWUsRUFBQyxNQUFNLENBQUMsQ0FBQTtBQUVwRDs7R0FFRztBQUNILFNBQWdCLHNCQUFzQjtJQUNyQyw2QkFBNkI7SUFDN0IsTUFBTSxHQUFHLEdBQWlCO1FBQ3pCLFVBQVUsRUFBRSxDQUFDO1FBQ2IsYUFBYSxFQUFFLEVBQUU7UUFDakIsT0FBTyxFQUFFLEVBQUU7UUFDWCxJQUFJLEVBQUUsSUFBSSxVQUFVLEVBQUU7UUFDdEIsUUFBUSxFQUFFLEtBQUs7UUFDZixlQUFlLEVBQUUsS0FBSztRQUN0QixhQUFhLEVBQUMsSUFBSSxHQUFHLEVBQXNCO1FBQzNDLFlBQVksRUFBRSxDQUFDO0tBQ2YsQ0FBQTtJQUVELElBQUksa0JBQWtCLEdBQUcsQ0FBQyxDQUFBO0lBQzFCLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQTtJQUNyQixJQUFJLFNBQVMsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFBO0lBQ2hDLElBQUksY0FBYyxHQUFHLENBQUMsQ0FBQTtJQUV0QixPQUFPO1FBQ04sR0FBRztRQUNIOzs7V0FHUztRQUNULE9BQU8sQ0FBQyxJQUFnQjs7WUFDdkIscURBQXFEO1lBQ3JELFNBQVMsR0FBRyxJQUFBLDRCQUFzQixFQUFDLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUE7WUFDckQsdURBQXVEO1lBQ3ZELDhCQUE4QjtZQUM5QixJQUFHLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUN6QixLQUFJLElBQUksSUFBSSxHQUFHLE9BQU8sRUFBRSxFQUFFLE9BQU8sSUFBSSxLQUFLLFdB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
@@ -8,3 +8,5 @@ export * from './error';
8
8
  export * from './prepare-packets';
9
9
  export * from './validation';
10
10
  export * from './signatures';
11
+ export * from './auth';
12
+ export * from './b64-json';
@@ -24,4 +24,6 @@ __exportStar(require("./error"), exports);
24
24
  __exportStar(require("./prepare-packets"), exports);
25
25
  __exportStar(require("./validation"), exports);
26
26
  __exportStar(require("./signatures"), exports);
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEwQjtBQUMxQiwyQ0FBd0I7QUFDeEIsK0NBQTRCO0FBQzVCLGdEQUE2QjtBQUM3Qix1Q0FBb0I7QUFDcEIsMkNBQXdCO0FBQ3hCLDBDQUF1QjtBQUN2QixvREFBaUM7QUFDakMsK0NBQTRCO0FBQzVCLCtDQUE0QiJ9
27
+ __exportStar(require("./auth"), exports);
28
+ __exportStar(require("./b64-json"), exports);
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEwQjtBQUMxQiwyQ0FBd0I7QUFDeEIsK0NBQTRCO0FBQzVCLGdEQUE2QjtBQUM3Qix1Q0FBb0I7QUFDcEIsMkNBQXdCO0FBQ3hCLDBDQUF1QjtBQUN2QixvREFBaUM7QUFDakMsK0NBQTRCO0FBQzVCLCtDQUE0QjtBQUM1Qix5Q0FBc0I7QUFDdEIsNkNBQTBCIn0=
@@ -1,6 +1,15 @@
1
- import type { ArraySlice } from '../types';
1
+ import type { ArraySlice, RedactedOrHashedArraySlice, TOPRFProofParams } from '../types';
2
2
  export declare const REDACTION_CHAR = "*";
3
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
+ export type RevealedSlices<T> = 'all' | SliceWithReveal<T>[];
4
13
  /**
5
14
  * Check if a redacted string is congruent with the original string.
6
15
  * @param redacted the redacted content, redacted content is replaced by '*'
@@ -31,11 +40,15 @@ export declare function isFullyRedacted<T extends string | Uint8Array>(redacted:
31
40
  */
32
41
  export declare function getBlocksToReveal<T extends {
33
42
  plaintext: Uint8Array;
34
- }>(blocks: T[], redact: (total: Uint8Array) => ArraySlice[]): {
35
- block: T;
36
- redactedPlaintext: Uint8Array;
37
- }[] | "all";
43
+ }>(blocks: T[], redact: (total: Uint8Array) => RedactedOrHashedArraySlice[], performOprf: (plaintext: Uint8Array) => Promise<TOPRFProofParams>): Promise<"all" | SliceWithReveal<T>[]>;
38
44
  /**
39
45
  * Redact the following slices from the total
40
46
  */
41
- export declare function redactSlices(total: Uint8Array, slices: ArraySlice[]): Uint8Array;
47
+ export declare function redactSlices(total: Uint8Array, slices: ArraySlice[]): Uint8Array<ArrayBuffer>;
48
+ /**
49
+ * Converts the binary hash to an ASCII string of the expected length.
50
+ * If the hash is shorter than the expected length, it will be padded with
51
+ * '0' characters. If it's longer, it will be truncated.
52
+ */
53
+ export declare function binaryHashToStr(hash: Uint8Array, expLength: number): string;
54
+ export {};
@@ -5,6 +5,8 @@ exports.isRedactionCongruent = isRedactionCongruent;
5
5
  exports.isFullyRedacted = isFullyRedacted;
6
6
  exports.getBlocksToReveal = getBlocksToReveal;
7
7
  exports.redactSlices = redactSlices;
8
+ exports.binaryHashToStr = binaryHashToStr;
9
+ const wire_1 = require("@bufbuild/protobuf/wire");
8
10
  const tls_1 = require("@reclaimprotocol/tls");
9
11
  exports.REDACTION_CHAR = '*';
10
12
  exports.REDACTION_CHAR_CODE = exports.REDACTION_CHAR.charCodeAt(0);
@@ -56,7 +58,7 @@ function isFullyRedacted(redacted) {
56
58
  * @param redact function that returns the redactions
57
59
  * @returns blocks to reveal
58
60
  */
59
- function getBlocksToReveal(blocks, redact) {
61
+ async function getBlocksToReveal(blocks, redact, performOprf) {
60
62
  const slicesWithReveal = blocks.map(block => ({
61
63
  block,
62
64
  // copy the plaintext to avoid mutating the original
@@ -71,16 +73,43 @@ function getBlocksToReveal(blocks, redact) {
71
73
  let cursorInBlock = 0;
72
74
  let cursor = 0;
73
75
  for (const redaction of redactions) {
74
- redactBlocks(redaction);
76
+ await redactBlocks(redaction);
75
77
  }
76
78
  // only reveal blocks that have some data to reveal,
77
79
  // or are completely plaintext
78
80
  return slicesWithReveal
79
81
  .filter(s => !isFullyRedacted(s.redactedPlaintext));
80
- function redactBlocks(slice) {
82
+ async function redactBlocks(slice) {
81
83
  while (cursor < slice.fromIndex) {
82
84
  advance();
83
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
+ }
112
+ }
84
113
  while (cursor < slice.toIndex) {
85
114
  slicesWithReveal[blockIdx]
86
115
  .redactedPlaintext[cursorInBlock] = exports.REDACTION_CHAR_CODE;
@@ -108,4 +137,12 @@ function redactSlices(total, slices) {
108
137
  }
109
138
  return redacted;
110
139
  }
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9yZWRhY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVdBLG9EQWdCQztBQUtELDBDQWFDO0FBb0JELDhDQXNEQztBQUtELG9DQVVDO0FBdElELDhDQUE2RDtBQUdoRCxRQUFBLGNBQWMsR0FBRyxHQUFHLENBQUE7QUFDcEIsUUFBQSxtQkFBbUIsR0FBRyxzQkFBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUUvRDs7OztHQUlHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQ25DLFFBQVcsRUFDWCxRQUFXO0lBRVgsK0NBQStDO0lBQy9DLEtBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDdkMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzNCLE1BQU0sT0FBTyxHQUFHLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO2VBQ25DLENBQUMsT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sS0FBSyxzQkFBYyxDQUFDO2VBQzNELENBQUMsT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sS0FBSywyQkFBbUIsQ0FBQyxDQUFBO1FBQ3BFLElBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU8sS0FBSyxDQUFBO1FBQ2IsQ0FBQztJQUNGLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQTtBQUNaLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGVBQWUsQ0FDOUIsUUFBVztJQUVYLEtBQUksTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7UUFDL0IsSUFDQyxPQUFPLEtBQUssc0JBQWM7ZUFDdkIsT0FBTyxLQUFLLDJCQUFtQixFQUNqQyxDQUFDO1lBQ0YsT0FBTyxLQUFLLENBQUE7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
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
+ function binaryHashToStr(hash, expLength) {
146
+ return (0, wire_1.base64Encode)(hash).padEnd(expLength, '0').slice(0, expLength);
147
+ }
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9yZWRhY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXVCQSxvREFnQkM7QUFLRCwwQ0FhQztBQW9CRCw4Q0EwRkM7QUFLRCxvQ0FVQztBQU9ELDBDQUVDO0FBL0xELGtEQUFzRDtBQUN0RCw4Q0FBNkQ7QUFHaEQsUUFBQSxjQUFjLEdBQUcsR0FBRyxDQUFBO0FBQ3BCLFFBQUEsbUJBQW1CLEdBQUcsc0JBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFhL0Q7Ozs7R0FJRztBQUNILFNBQWdCLG9CQUFvQixDQUNuQyxRQUFXLEVBQ1gsUUFBVztJQUVYLCtDQUErQztJQUMvQyxLQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUMzQixNQUFNLE9BQU8sR0FBRyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztlQUNuQyxDQUFDLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLEtBQUssc0JBQWMsQ0FBQztlQUMzRCxDQUFDLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLEtBQUssMkJBQW1CLENBQUMsQ0FBQTtRQUNwRSxJQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixPQUFPLEtBQUssQ0FBQTtRQUNiLENBQUM7SUFDRixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUE7QUFDWixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixlQUFlLENBQzlCLFFBQVc7SUFFWCxLQUFJLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQy9CLElBQ0MsT0FBTyxLQUFLLHNCQUFjO2VBQ3ZCLE9BQU8sS0FBSywyQkFBbUIsRUFDakMs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
@@ -1,16 +1,17 @@
1
1
  import { InitRequest, RPCMessage, RPCMessages } from '../proto/api';
2
2
  import { IAttestorSocket, Logger, RPCEvent, RPCEventMap } from '../types';
3
+ import type { WebSocket as WSWebSocket } from 'ws';
3
4
  /**
4
5
  * Common AttestorSocket class used on the client & server side as the
5
6
  * base for their respective socket implementations.
6
7
  */
7
8
  export declare class AttestorSocket implements IAttestorSocket {
8
- protected socket: WebSocket;
9
+ protected socket: WebSocket | WSWebSocket;
9
10
  metadata: InitRequest;
10
11
  logger: Logger;
11
12
  private eventTarget;
12
13
  isInitialised: boolean;
13
- constructor(socket: WebSocket, metadata: InitRequest, logger: Logger);
14
+ constructor(socket: WebSocket | WSWebSocket, metadata: InitRequest, logger: Logger);
14
15
  get isOpen(): boolean;
15
16
  get isClosed(): boolean;
16
17
  sendMessage(...msgs: Partial<RPCMessage>[]): Promise<RPCMessages>;
@@ -47,7 +47,12 @@ class AttestorSocket {
47
47
  }
48
48
  const msg = (0, utils_1.packRpcMessages)(...msgs);
49
49
  const bytes = api_1.RPCMessages.encode(msg).finish();
50
- await this.socket.send(bytes);
50
+ if ('sendPromise' in this.socket && this.socket.sendPromise) {
51
+ await this.socket.sendPromise(bytes);
52
+ }
53
+ else {
54
+ this.socket.send(bytes);
55
+ }
51
56
  return msg;
52
57
  }
53
58
  dispatchRPCEvent(type, data) {
@@ -86,4 +91,4 @@ class AttestorSocket {
86
91
  }
87
92
  }
88
93
  exports.AttestorSocket = AttestorSocket;
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvc29ja2V0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0VBQW1FO0FBQ25FLHVDQUFvRTtBQUVwRSxxQ0FBd0U7QUFFeEU7OztHQUdHO0FBQ0gsTUFBYSxjQUFjO0lBTTFCLFlBQ1csTUFBaUIsRUFDcEIsUUFBcUIsRUFDckIsTUFBYztRQUZYLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDcEIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBUGQsZ0JBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFBO1FBRXZDLGtCQUFhLEdBQUcsS0FBSyxDQUFBO1FBT3BCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFpQixFQUFFLEVBQUU7WUFDdEQsTUFBTSxNQUFNLEdBQUcscUJBQWEsQ0FBQyxTQUFTLENBQ3JDLEtBQUssQ0FBQyxLQUFLO21CQUNQLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FDNUIsQ0FBQTtZQUNELE1BQU0sQ0FBQyxJQUFJLEdBQUcscUJBQXFCLENBQUE7WUFFbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQ3ZELENBQUMsQ0FBQyxDQUFBO1FBRUYsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUN0QyxJQUFJLENBQUMsZ0JBQWdCLENBQ3BCLHVCQUF1QixFQUN2QixJQUFJLHFCQUFhLENBQ2hCLGdCQUFnQixFQUNoQixtQkFBbUIsQ0FDbkIsQ0FDRCxDQUNELENBQUMsQ0FBQTtRQUVGLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRTtZQUNwRCxJQUFJLENBQUM7Z0JB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
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvc29ja2V0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0VBQW1FO0FBQ25FLHVDQUFvRTtBQUVwRSxxQ0FBd0U7QUFHeEU7OztHQUdHO0FBQ0gsTUFBYSxjQUFjO0lBTTFCLFlBQ1csTUFBK0IsRUFDbEMsUUFBcUIsRUFDckIsTUFBYztRQUZYLFdBQU0sR0FBTixNQUFNLENBQXlCO1FBQ2xDLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVBkLGdCQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQTtRQUV2QyxrQkFBYSxHQUFHLEtBQUssQ0FBQTtRQU9wQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDMUMsTUFBTSxNQUFNLEdBQUcscUJBQWEsQ0FBQyxTQUFTLENBQ3JDLEtBQUssQ0FBQyxLQUFLO21CQUNQLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FDNUIsQ0FBQTtZQUNELE1BQU0sQ0FBQyxJQUFJLEdBQUcscUJBQXFCLENBQUE7WUFFbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQ3ZELENBQUMsQ0FBQyxDQUFBO1FBRUYsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUN0QyxJQUFJLENBQUMsZ0JBQWdCLENBQ3BCLHVCQUF1QixFQUN2QixJQUFJLHFCQUFhLENBQ2hCLGdCQUFnQixFQUNoQixtQkFBbUIsQ0FDbkIsQ0FDRCxDQUNELENBQUMsQ0FBQTtRQUVGLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRTtZQUNwRCxJQUFJLENBQUM7Z0JB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
package/lib/utils/ws.d.ts CHANGED
@@ -1,12 +1,12 @@
1
- import { AnyWebSocketConstructor } from '../types';
1
+ import type { WebSocket as WSWebSocket } from 'ws';
2
2
  /**
3
3
  * Default WebSocket implementation, uses `ws` package
4
4
  * for Node.js and the native WebSocket for the browser & other
5
5
  * environments.
6
6
  */
7
- export declare let Websocket: AnyWebSocketConstructor;
7
+ export declare function makeWebSocket(url: string): WebSocket | WSWebSocket;
8
8
  /**
9
- * Replace the default WebSocket implementation utilised
10
- * by the Attestor client.
9
+ * Adds the "sendPromise" fn to the given WebSocket instance,
10
+ * if not already present.
11
11
  */
12
- export declare function setWebsocket(ws: AnyWebSocketConstructor): void;
12
+ export declare function promisifySend(ws: WSWebSocket): WSWebSocket;
package/lib/utils/ws.js CHANGED
@@ -1,21 +1,38 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Websocket = void 0;
4
- exports.setWebsocket = setWebsocket;
3
+ exports.makeWebSocket = makeWebSocket;
4
+ exports.promisifySend = promisifySend;
5
+ const config_1 = require("../config");
5
6
  const env_1 = require("../utils/env");
6
7
  /**
7
8
  * Default WebSocket implementation, uses `ws` package
8
9
  * for Node.js and the native WebSocket for the browser & other
9
10
  * environments.
10
11
  */
11
- exports.Websocket = ((0, env_1.detectEnvironment)() === 'node'
12
- ? require('ws').WebSocket
13
- : WebSocket);
12
+ function makeWebSocket(url) {
13
+ if ((0, env_1.detectEnvironment)() === 'node') {
14
+ const ws = require('ws');
15
+ return promisifySend(new ws.WebSocket(url, { maxPayload: config_1.MAX_PAYLOAD_SIZE }));
16
+ }
17
+ return new WebSocket(url);
18
+ }
14
19
  /**
15
- * Replace the default WebSocket implementation utilised
16
- * by the Attestor client.
20
+ * Adds the "sendPromise" fn to the given WebSocket instance,
21
+ * if not already present.
17
22
  */
18
- function setWebsocket(ws) {
19
- exports.Websocket = ws;
23
+ function promisifySend(ws) {
24
+ if (ws.sendPromise) {
25
+ return ws;
26
+ }
27
+ ws.sendPromise = (data) => (new Promise((resolve, reject) => {
28
+ ws.send(data, err => {
29
+ if (err) {
30
+ reject(err);
31
+ return;
32
+ }
33
+ resolve();
34
+ });
35
+ }));
36
+ return ws;
20
37
  }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBa0JBLG9DQUVDO0FBbkJELHVDQUFpRDtBQUVqRDs7OztHQUlHO0FBQ1EsUUFBQSxTQUFTLEdBQTRCLENBQy9DLElBQUEsdUJBQWlCLEdBQUUsS0FBSyxNQUFNO0lBQzdCLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUztJQUN6QixDQUFDLENBQUMsU0FBUyxDQUNaLENBQUE7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixZQUFZLENBQUMsRUFBMkI7SUFDdkQsaUJBQVMsR0FBRyxFQUFFLENBQUE7QUFDZixDQUFDIn0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFTQSxzQ0FTQztBQU1ELHNDQW1CQztBQTNDRCx1Q0FBNkM7QUFDN0MsdUNBQWlEO0FBR2pEOzs7O0dBSUc7QUFDSCxTQUFnQixhQUFhLENBQUMsR0FBVztJQUN4QyxJQUFHLElBQUEsdUJBQWlCLEdBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUNuQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUF3QixDQUFBO1FBQy9DLE9BQU8sYUFBYSxDQUNuQixJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEVBQUUsVUFBVSxFQUFFLHlCQUFnQixFQUFFLENBQUMsQ0FDdkQsQ0FBQTtJQUNGLENBQUM7SUFFRCxPQUFPLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQzFCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixhQUFhLENBQUMsRUFBZTtJQUM1QyxJQUFHLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixPQUFPLEVBQUUsQ0FBQTtJQUNWLENBQUM7SUFFRCxFQUFFLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUMxQixJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUMvQixFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRTtZQUNuQixJQUFHLEdBQUcsRUFBRSxDQUFDO2dCQUNSLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDWCxPQUFNO1lBQ1AsQ0FBQztZQUVELE9BQU8sRUFBRSxDQUFBO1FBQ1YsQ0FBQyxDQUFDLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FDRixDQUFBO0lBRUQsT0FBTyxFQUFFLENBQUE7QUFDVixDQUFDIn0=