@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.
- package/lib/avs/contracts/index.js +18 -8
- package/lib/avs/tests/test.operator.js +4 -4
- package/lib/avs/utils/tasks.d.ts +1 -1
- package/lib/client/create-claim.d.ts +2 -2
- package/lib/client/create-claim.js +100 -34
- package/lib/client/tunnels/make-rpc-tcp-tunnel.js +3 -3
- package/lib/client/tunnels/make-rpc-tls-tunnel.js +3 -3
- package/lib/client/utils/client-socket.d.ts +3 -1
- package/lib/client/utils/client-socket.js +25 -8
- package/lib/client/utils/message-handler.js +2 -2
- package/lib/config/index.d.ts +9 -2
- package/lib/config/index.js +10 -4
- package/lib/index.js +18 -8
- package/lib/proto/api.d.ts +81 -2
- package/lib/proto/api.js +859 -101
- package/lib/providers/http/index.js +220 -116
- package/lib/providers/http/utils.d.ts +3 -6
- package/lib/providers/http/utils.js +13 -11
- package/lib/providers/index.js +1 -3
- package/lib/scripts/check-avs-registration.js +2 -2
- package/lib/scripts/generate-provider-types.js +2 -2
- package/lib/scripts/generate-receipt.js +6 -3
- package/lib/scripts/generate-toprf-keys.d.ts +1 -0
- package/lib/scripts/generate-toprf-keys.js +23 -0
- package/lib/scripts/register-avs-operator.js +2 -2
- package/lib/scripts/start-server.js +10 -3
- package/lib/scripts/update-avs-metadata.js +2 -2
- package/lib/scripts/verify-root-ca.js +2 -2
- package/lib/scripts/whitelist-operator.js +2 -2
- package/lib/server/create-server.js +14 -7
- package/lib/server/handlers/claimTunnel.js +34 -11
- package/lib/server/handlers/createTunnel.js +45 -9
- package/lib/server/handlers/disconnectTunnel.js +2 -2
- package/lib/server/handlers/index.js +4 -2
- package/lib/server/handlers/init.js +17 -2
- package/lib/server/handlers/toprf.d.ts +2 -0
- package/lib/server/handlers/toprf.js +21 -0
- package/lib/server/socket.d.ts +5 -3
- package/lib/server/socket.js +28 -8
- package/lib/server/tunnels/make-tcp-tunnel.js +22 -29
- package/lib/server/utils/apm.js +9 -5
- package/lib/server/utils/assert-valid-claim-request.d.ts +3 -3
- package/lib/server/utils/assert-valid-claim-request.js +27 -16
- package/lib/server/utils/dns.d.ts +1 -0
- package/lib/server/utils/dns.js +22 -0
- package/lib/server/utils/generics.d.ts +1 -1
- package/lib/tests/describe-with-server.d.ts +0 -2
- package/lib/tests/describe-with-server.js +1 -4
- package/lib/tests/mock-provider-server.d.ts +1 -1
- package/lib/tests/test.auth.d.ts +1 -0
- package/lib/tests/test.auth.js +75 -0
- package/lib/tests/test.bgp-listener.d.ts +1 -0
- package/lib/tests/test.bgp-listener.js +169 -0
- package/lib/tests/test.claim-creation.js +101 -8
- package/lib/tests/test.http-parser.d.ts +1 -1
- package/lib/tests/test.http-parser.js +7 -5
- package/lib/tests/test.http-provider-utils.js +489 -211
- package/lib/tests/test.http-provider.js +77 -6
- package/lib/tests/test.rpc-tunnel.js +10 -6
- package/lib/tests/test.zk.d.ts +1 -1
- package/lib/tests/test.zk.js +180 -12
- package/lib/tests/utils.d.ts +6 -0
- package/lib/tests/utils.js +16 -1
- package/lib/types/bgp.d.ts +11 -0
- package/lib/types/bgp.js +3 -0
- package/lib/types/claims.d.ts +14 -5
- package/lib/types/client.d.ts +30 -3
- package/lib/types/general.d.ts +12 -0
- package/lib/types/handlers.d.ts +4 -4
- package/lib/types/index.d.ts +1 -0
- package/lib/types/index.js +2 -1
- package/lib/types/providers.d.ts +25 -10
- package/lib/types/providers.gen.d.ts +14 -155
- package/lib/types/providers.gen.js +2 -6
- package/lib/types/tunnel.d.ts +2 -2
- package/lib/types/zk.d.ts +11 -3
- package/lib/utils/auth.d.ts +7 -0
- package/lib/utils/auth.js +64 -0
- package/lib/utils/b64-json.d.ts +2 -0
- package/lib/utils/b64-json.js +23 -0
- package/lib/utils/bgp-listener.d.ts +7 -0
- package/lib/utils/bgp-listener.js +126 -0
- package/lib/utils/claims.js +3 -3
- package/lib/utils/generics.d.ts +5 -5
- package/lib/utils/generics.js +3 -3
- package/lib/utils/http-parser.d.ts +4 -0
- package/lib/utils/http-parser.js +4 -2
- package/lib/utils/index.d.ts +2 -0
- package/lib/utils/index.js +3 -1
- package/lib/utils/redactions.d.ts +19 -6
- package/lib/utils/redactions.js +41 -4
- package/lib/utils/socket-base.d.ts +3 -2
- package/lib/utils/socket-base.js +7 -2
- package/lib/utils/ws.d.ts +5 -5
- package/lib/utils/ws.js +27 -10
- package/lib/utils/zk.d.ts +12 -7
- package/lib/utils/zk.js +261 -67
- package/lib/window-rpc/setup-window-rpc.js +29 -8
- package/lib/window-rpc/types.d.ts +16 -21
- package/lib/window-rpc/utils.d.ts +2 -1
- package/lib/window-rpc/utils.js +28 -2
- package/lib/window-rpc/window-rpc-zk.d.ts +8 -3
- package/lib/window-rpc/window-rpc-zk.js +58 -45
- package/package.json +25 -22
- package/lib/providers/httpb64/index.d.ts +0 -3
- package/lib/providers/httpb64/index.js +0 -209
- package/lib/providers/httpb64/utils.d.ts +0 -77
- package/lib/providers/httpb64/utils.js +0 -358
- package/lib/server/utils/verify-server-certificates.d.ts +0 -7
- package/lib/server/utils/verify-server-certificates.js +0 -101
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tls_1 = require("@reclaimprotocol/tls");
|
|
4
|
-
const utils_1 = require("ethers/lib/utils");
|
|
5
|
-
const config_1 = require("../../config");
|
|
6
|
-
const utils_2 = require("../../providers/http/utils");
|
|
7
|
-
const utils_3 = require("../../utils");
|
|
8
|
-
const HTTP_BASE64_PROVIDER = {
|
|
9
|
-
hostPort: getHostPort,
|
|
10
|
-
writeRedactionMode(params) {
|
|
11
|
-
return ('writeRedactionMode' in params)
|
|
12
|
-
? params.writeRedactionMode
|
|
13
|
-
: undefined;
|
|
14
|
-
},
|
|
15
|
-
geoLocation(params) {
|
|
16
|
-
return ('geoLocation' in params)
|
|
17
|
-
? getGeoLocation(params)
|
|
18
|
-
: undefined;
|
|
19
|
-
},
|
|
20
|
-
additionalClientOptions(params) {
|
|
21
|
-
let defaultOptions = {
|
|
22
|
-
applicationLayerProtocols: ['http/1.1']
|
|
23
|
-
};
|
|
24
|
-
if ('additionalClientOptions' in params) {
|
|
25
|
-
defaultOptions = {
|
|
26
|
-
...defaultOptions,
|
|
27
|
-
...params.additionalClientOptions
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
return defaultOptions;
|
|
31
|
-
},
|
|
32
|
-
createRequest(secretParams, params) {
|
|
33
|
-
if (!secretParams.cookieStr &&
|
|
34
|
-
!secretParams.authorisationHeader &&
|
|
35
|
-
!secretParams.headers) {
|
|
36
|
-
throw new Error('auth parameters are not set');
|
|
37
|
-
}
|
|
38
|
-
const pubHeaders = params.headers || {};
|
|
39
|
-
const secHeaders = { ...secretParams.headers };
|
|
40
|
-
if (secretParams.cookieStr) {
|
|
41
|
-
secHeaders['Cookie'] = secretParams.cookieStr;
|
|
42
|
-
}
|
|
43
|
-
if (secretParams.authorisationHeader) {
|
|
44
|
-
secHeaders['Authorization'] = secretParams.authorisationHeader;
|
|
45
|
-
}
|
|
46
|
-
const hasUserAgent = Object.keys(pubHeaders)
|
|
47
|
-
.some(k => k.toLowerCase() === 'user-agent') ||
|
|
48
|
-
Object.keys(secHeaders)
|
|
49
|
-
.some(k => k.toLowerCase() === 'user-agent');
|
|
50
|
-
if (!hasUserAgent) {
|
|
51
|
-
//only set user-agent if not set by provider
|
|
52
|
-
pubHeaders['User-Agent'] = config_1.RECLAIM_USER_AGENT;
|
|
53
|
-
}
|
|
54
|
-
const url = new URL(params.url);
|
|
55
|
-
const { pathname } = url;
|
|
56
|
-
const searchParams = params.url.includes('?') ? params.url.split('?')[1] : '';
|
|
57
|
-
utils_3.logger.info({ url: params.url, path: pathname, query: searchParams.toString() });
|
|
58
|
-
const body = params.body instanceof Uint8Array
|
|
59
|
-
? params.body
|
|
60
|
-
: (0, tls_1.strToUint8Array)(params.body || '');
|
|
61
|
-
const contentLength = body.length;
|
|
62
|
-
const reqLine = `${params.method} ${pathname}${(searchParams === null || searchParams === void 0 ? void 0 : searchParams.length) ? '?' + searchParams : ''} HTTP/1.1`;
|
|
63
|
-
const secHeadersList = (0, utils_2.buildHeaders)(secHeaders);
|
|
64
|
-
utils_3.logger.info({ requestLine: reqLine });
|
|
65
|
-
const httpReqHeaderStr = [
|
|
66
|
-
reqLine,
|
|
67
|
-
`Host: ${getHostHeaderString(url)}`,
|
|
68
|
-
`Content-Length: ${contentLength}`,
|
|
69
|
-
'Connection: close',
|
|
70
|
-
//no compression
|
|
71
|
-
'Accept-Encoding: identity',
|
|
72
|
-
...(0, utils_2.buildHeaders)(pubHeaders),
|
|
73
|
-
...secHeadersList,
|
|
74
|
-
'\r\n',
|
|
75
|
-
].join('\r\n');
|
|
76
|
-
const headerStr = (0, tls_1.strToUint8Array)(httpReqHeaderStr);
|
|
77
|
-
const data = (0, tls_1.concatenateUint8Arrays)([headerStr, body]);
|
|
78
|
-
// hide all secret headers
|
|
79
|
-
const secHeadersStr = secHeadersList.join('\r\n');
|
|
80
|
-
const tokenStartIndex = (0, utils_3.findIndexInUint8Array)(data, (0, tls_1.strToUint8Array)(secHeadersStr));
|
|
81
|
-
const redactions = [
|
|
82
|
-
{
|
|
83
|
-
fromIndex: tokenStartIndex,
|
|
84
|
-
toIndex: tokenStartIndex + secHeadersStr.length,
|
|
85
|
-
}
|
|
86
|
-
];
|
|
87
|
-
return {
|
|
88
|
-
data,
|
|
89
|
-
redactions: redactions,
|
|
90
|
-
};
|
|
91
|
-
},
|
|
92
|
-
getResponseRedactions() {
|
|
93
|
-
return [];
|
|
94
|
-
},
|
|
95
|
-
assertValidProviderReceipt(receipt, params) {
|
|
96
|
-
var _a;
|
|
97
|
-
const extractedParams = {};
|
|
98
|
-
const req = (0, utils_3.getHttpRequestDataFromTranscript)(receipt);
|
|
99
|
-
if (req.method !== params.method.toLowerCase()) {
|
|
100
|
-
throw new Error(`Invalid method: ${req.method}`);
|
|
101
|
-
}
|
|
102
|
-
const url = new URL(params.url);
|
|
103
|
-
const { protocol, pathname } = url;
|
|
104
|
-
if (protocol !== 'https:') {
|
|
105
|
-
utils_3.logger.error('params URL: %s', params.url);
|
|
106
|
-
throw new Error(`Expected protocol: https, found: ${protocol}`);
|
|
107
|
-
}
|
|
108
|
-
const searchParams = params.url.includes('?') ? params.url.split('?')[1] : '';
|
|
109
|
-
const expectedPath = pathname + ((searchParams === null || searchParams === void 0 ? void 0 : searchParams.length) ? '?' + searchParams : '');
|
|
110
|
-
if (req.url !== expectedPath) {
|
|
111
|
-
utils_3.logger.error('params URL: %s', params.url);
|
|
112
|
-
throw new Error(`Expected path: ${expectedPath}, found: ${req.url}`);
|
|
113
|
-
}
|
|
114
|
-
const expectedHostStr = getHostHeaderString(url);
|
|
115
|
-
if (req.headers.host !== expectedHostStr) {
|
|
116
|
-
throw new Error(`Expected host: ${expectedHostStr}, found: ${req.headers.host}`);
|
|
117
|
-
}
|
|
118
|
-
const connectionHeader = req.headers['connection'];
|
|
119
|
-
if (connectionHeader !== 'close') {
|
|
120
|
-
throw new Error(`Connection header must be "close", got "${connectionHeader}"`);
|
|
121
|
-
}
|
|
122
|
-
const serverBlocks = receipt
|
|
123
|
-
.filter(s => s.sender === 'server')
|
|
124
|
-
.map((r) => r.message)
|
|
125
|
-
.filter(b => !b.every(b => b === utils_3.REDACTION_CHAR_CODE)); // filter out fully redacted blocks
|
|
126
|
-
const response = concatArrays(...serverBlocks);
|
|
127
|
-
const res = (0, utils_2.parseHttpResponse)(response);
|
|
128
|
-
if (((res.statusCode / 100) >> 0) !== 2) {
|
|
129
|
-
throw new Error(`Provider returned ${res.statusCode} ${res.statusMessage} error`);
|
|
130
|
-
}
|
|
131
|
-
const bodyStartIdx = (_a = res.bodyStartIndex) !== null && _a !== void 0 ? _a : 0;
|
|
132
|
-
if (bodyStartIdx < 4) {
|
|
133
|
-
utils_3.logger.error({ response: (0, utils_3.uint8ArrayToBinaryStr)(response) });
|
|
134
|
-
throw new Error('Failed to find response body');
|
|
135
|
-
}
|
|
136
|
-
extractedParams['data'] = utils_1.base64.encode(res.body);
|
|
137
|
-
return { extractedParameters: extractedParams };
|
|
138
|
-
},
|
|
139
|
-
};
|
|
140
|
-
function concatArrays(...bufs) {
|
|
141
|
-
const totalSize = bufs.reduce((acc, e) => acc + e.length, 0);
|
|
142
|
-
const merged = new Uint8Array(totalSize);
|
|
143
|
-
let lenDone = 0;
|
|
144
|
-
for (const array of bufs) {
|
|
145
|
-
merged.set(array, lenDone);
|
|
146
|
-
lenDone += array.length;
|
|
147
|
-
}
|
|
148
|
-
return merged;
|
|
149
|
-
}
|
|
150
|
-
function getHostPort(params) {
|
|
151
|
-
const { host } = new URL(getURL(params));
|
|
152
|
-
if (!host) {
|
|
153
|
-
throw new Error('url is incorrect');
|
|
154
|
-
}
|
|
155
|
-
return host;
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Obtain the host header string from the URL.
|
|
159
|
-
* https://stackoverflow.com/a/3364396
|
|
160
|
-
*/
|
|
161
|
-
function getHostHeaderString(url) {
|
|
162
|
-
const host = url.hostname;
|
|
163
|
-
const port = url.port;
|
|
164
|
-
return port && +port !== config_1.DEFAULT_HTTPS_PORT
|
|
165
|
-
? `${host}:${port}`
|
|
166
|
-
: host;
|
|
167
|
-
}
|
|
168
|
-
const paramsRegex = /\{\{([^{}]+)}}/sgi;
|
|
169
|
-
function getGeoLocation(v2Params) {
|
|
170
|
-
if (v2Params === null || v2Params === void 0 ? void 0 : v2Params.geoLocation) {
|
|
171
|
-
const paramNames = new Set();
|
|
172
|
-
let geo = v2Params.geoLocation;
|
|
173
|
-
//extract param names
|
|
174
|
-
let match = null;
|
|
175
|
-
while (match = paramsRegex.exec(geo)) {
|
|
176
|
-
paramNames.add(match[1]);
|
|
177
|
-
}
|
|
178
|
-
for (const pn of paramNames) {
|
|
179
|
-
if (v2Params.paramValues && pn in v2Params.paramValues) {
|
|
180
|
-
geo = geo.replaceAll(`{{${pn}}}`, v2Params.paramValues[pn].toString());
|
|
181
|
-
}
|
|
182
|
-
else {
|
|
183
|
-
throw new Error(`parameter "${pn}" value not found in templateParams`);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
return geo;
|
|
187
|
-
}
|
|
188
|
-
return undefined;
|
|
189
|
-
}
|
|
190
|
-
function getURL(v2Params) {
|
|
191
|
-
let hostPort = v2Params === null || v2Params === void 0 ? void 0 : v2Params.url;
|
|
192
|
-
const paramNames = new Set();
|
|
193
|
-
//extract param names
|
|
194
|
-
let match = null;
|
|
195
|
-
while (match = paramsRegex.exec(hostPort)) {
|
|
196
|
-
paramNames.add(match[1]);
|
|
197
|
-
}
|
|
198
|
-
for (const pn of paramNames) {
|
|
199
|
-
if (v2Params.paramValues && pn in v2Params.paramValues) {
|
|
200
|
-
hostPort = hostPort.replaceAll(`{{${pn}}}`, v2Params.paramValues[pn].toString());
|
|
201
|
-
}
|
|
202
|
-
else {
|
|
203
|
-
throw new Error(`parameter "${pn}" value not found in templateParams`);
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
return hostPort;
|
|
207
|
-
}
|
|
208
|
-
exports.default = HTTP_BASE64_PROVIDER;
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvdmlkZXJzL2h0dHBiNjQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw4Q0FBb0c7QUFDcEcsNENBQXlDO0FBQ3pDLHVDQUFtRTtBQUNuRSxvREFFaUM7QUFFakMscUNBS2tCO0FBSWxCLE1BQU0sb0JBQW9CLEdBQXdCO0lBQ2pELFFBQVEsRUFBRSxXQUFXO0lBQ3JCLGtCQUFrQixDQUFDLE1BQU07UUFDeEIsT0FBTyxDQUFDLG9CQUFvQixJQUFJLE1BQU0sQ0FBQztZQUN0QyxDQUFDLENBQUMsTUFBTSxDQUFDLGtCQUFrQjtZQUMzQixDQUFDLENBQUMsU0FBUyxDQUFBO0lBQ2IsQ0FBQztJQUNELFdBQVcsQ0FBQyxNQUFNO1FBQ2pCLE9BQU8sQ0FBQyxhQUFhLElBQUksTUFBTSxDQUFDO1lBQy9CLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO1lBQ3hCLENBQUMsQ0FBQyxTQUFTLENBQUE7SUFDYixDQUFDO0lBQ0QsdUJBQXVCLENBQUMsTUFBTTtRQUM3QixJQUFJLGNBQWMsR0FBeUI7WUFDMUMseUJBQXlCLEVBQUcsQ0FBQyxVQUFVLENBQUM7U0FDeEMsQ0FBQTtRQUNELElBQUcseUJBQXlCLElBQUksTUFBTSxFQUFFLENBQUM7WUFDeEMsY0FBYyxHQUFHO2dCQUNoQixHQUFHLGNBQWM7Z0JBQ2pCLEdBQUcsTUFBTSxDQUFDLHVCQUF1QjthQUNqQyxDQUFBO1FBQ0YsQ0FBQztRQUVELE9BQU8sY0FBYyxDQUFBO0lBQ3RCLENBQUM7SUFDRCxhQUFhLENBQUMsWUFBWSxFQUFFLE1BQU07UUFDakMsSUFDQyxDQUFDLFlBQVksQ0FBQyxTQUFTO1lBQ2QsQ0FBQyxZQUFZLENBQUMsbUJBQW1CO1lBQ2pDLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFDN0IsQ0FBQztZQUNGLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtR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
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { ArraySlice, CompleteTLSPacket, ProviderParams, Transcript } from '../../types';
|
|
2
|
-
import { HttpRequest, HttpResponse } from '../../utils';
|
|
3
|
-
export type JSONIndex = {
|
|
4
|
-
start: number;
|
|
5
|
-
end: number;
|
|
6
|
-
};
|
|
7
|
-
type HTTPProviderParams = ProviderParams<'http'>;
|
|
8
|
-
/**
|
|
9
|
-
* Returns only first extracted element
|
|
10
|
-
* @param html
|
|
11
|
-
* @param xpathExpression
|
|
12
|
-
* @param contentsOnly
|
|
13
|
-
*/
|
|
14
|
-
export declare function extractHTMLElement(html: string, xpathExpression: string, contentsOnly: boolean): string;
|
|
15
|
-
/**
|
|
16
|
-
* Returns all extracted elements
|
|
17
|
-
* @param html
|
|
18
|
-
* @param xpathExpression
|
|
19
|
-
* @param contentsOnly
|
|
20
|
-
*/
|
|
21
|
-
export declare function extractHTMLElements(html: string, xpathExpression: string, contentsOnly: boolean): string[];
|
|
22
|
-
/**
|
|
23
|
-
* returns a single index of extracted element
|
|
24
|
-
* @param html
|
|
25
|
-
* @param xpathExpression
|
|
26
|
-
* @param contentsOnly
|
|
27
|
-
*/
|
|
28
|
-
export declare function extractHTMLElementIndex(html: string, xpathExpression: string, contentsOnly: boolean): {
|
|
29
|
-
start: number;
|
|
30
|
-
end: number;
|
|
31
|
-
};
|
|
32
|
-
/**
|
|
33
|
-
* Returns indexes of all extracted elements
|
|
34
|
-
* @param html
|
|
35
|
-
* @param xpathExpression
|
|
36
|
-
* @param contentsOnly
|
|
37
|
-
*/
|
|
38
|
-
export declare function extractHTMLElementsIndexes(html: string, xpathExpression: string, contentsOnly: boolean): {
|
|
39
|
-
start: number;
|
|
40
|
-
end: number;
|
|
41
|
-
}[];
|
|
42
|
-
export declare function extractJSONValueIndex(json: string, jsonPath: string): {
|
|
43
|
-
start: number;
|
|
44
|
-
end: number;
|
|
45
|
-
};
|
|
46
|
-
export declare function extractJSONValueIndexes(json: string, jsonPath: string): {
|
|
47
|
-
start: number;
|
|
48
|
-
end: number;
|
|
49
|
-
}[];
|
|
50
|
-
export declare function buildHeaders(input: HTTPProviderParams['headers']): string[];
|
|
51
|
-
/**
|
|
52
|
-
* Converts position in HTTP response body to an absolute position in TLS transcript considering chunked encoding
|
|
53
|
-
* @param pos
|
|
54
|
-
* @param bodyStartIdx
|
|
55
|
-
* @param chunks
|
|
56
|
-
*/
|
|
57
|
-
export declare function convertResponsePosToAbsolutePos(pos: number, bodyStartIdx: number, chunks?: ArraySlice[]): number;
|
|
58
|
-
/**
|
|
59
|
-
* Returns parts of response which contain chunk headers and must be redacted out
|
|
60
|
-
* of revealed response part
|
|
61
|
-
* @param from
|
|
62
|
-
* @param to
|
|
63
|
-
* @param chunks
|
|
64
|
-
*/
|
|
65
|
-
export declare function getRedactionsForChunkHeaders(from: any, to: number, chunks?: ArraySlice[]): ArraySlice[];
|
|
66
|
-
export declare function parseHttpResponse(buff: Uint8Array): HttpResponse;
|
|
67
|
-
export declare function makeRegex(str: string): any;
|
|
68
|
-
/**
|
|
69
|
-
* Try to match strings that contain templates like {{param}}
|
|
70
|
-
* against redacted string that has *** instead of that param
|
|
71
|
-
*/
|
|
72
|
-
export declare function matchRedactedStrings(templateString: Uint8Array, redactedString?: Uint8Array): boolean;
|
|
73
|
-
export declare function generateRequstAndResponseFromTranscript(transcript: Transcript<CompleteTLSPacket>, tlsVersion: string): {
|
|
74
|
-
req: HttpRequest;
|
|
75
|
-
res: HttpResponse;
|
|
76
|
-
};
|
|
77
|
-
export {};
|