@reclaimprotocol/attestor-core 3.0.6 → 3.1.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/providers/httpb64/index.d.ts +3 -0
- package/lib/providers/httpb64/index.js +209 -0
- package/lib/providers/httpb64/utils.d.ts +77 -0
- package/lib/providers/httpb64/utils.js +358 -0
- package/lib/providers/index.js +3 -1
- package/lib/tests/test.tcp-tunnel.js +2 -2
- package/lib/types/providers.gen.d.ts +156 -0
- package/lib/types/providers.gen.js +5 -1
- package/package.json +1 -1
|
@@ -0,0 +1,209 @@
|
|
|
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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
|
|
@@ -0,0 +1,77 @@
|
|
|
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 {};
|
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// noinspection ExceptionCaughtLocallyJS
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.extractHTMLElement = extractHTMLElement;
|
|
5
|
+
exports.extractHTMLElements = extractHTMLElements;
|
|
6
|
+
exports.extractHTMLElementIndex = extractHTMLElementIndex;
|
|
7
|
+
exports.extractHTMLElementsIndexes = extractHTMLElementsIndexes;
|
|
8
|
+
exports.extractJSONValueIndex = extractJSONValueIndex;
|
|
9
|
+
exports.extractJSONValueIndexes = extractJSONValueIndexes;
|
|
10
|
+
exports.buildHeaders = buildHeaders;
|
|
11
|
+
exports.convertResponsePosToAbsolutePos = convertResponsePosToAbsolutePos;
|
|
12
|
+
exports.getRedactionsForChunkHeaders = getRedactionsForChunkHeaders;
|
|
13
|
+
exports.parseHttpResponse = parseHttpResponse;
|
|
14
|
+
exports.makeRegex = makeRegex;
|
|
15
|
+
exports.matchRedactedStrings = matchRedactedStrings;
|
|
16
|
+
exports.generateRequstAndResponseFromTranscript = generateRequstAndResponseFromTranscript;
|
|
17
|
+
const tls_1 = require("@reclaimprotocol/tls");
|
|
18
|
+
const esprima_next_1 = require("esprima-next");
|
|
19
|
+
const jsonpath_plus_1 = require("jsonpath-plus");
|
|
20
|
+
const utils_1 = require("../../utils");
|
|
21
|
+
let RE2;
|
|
22
|
+
try {
|
|
23
|
+
RE2 = require('re2');
|
|
24
|
+
if (!Object.keys(RE2).length) {
|
|
25
|
+
RE2 = undefined;
|
|
26
|
+
throw new Error();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
catch (_a) {
|
|
30
|
+
console.log('RE2 not found. Using standard regex');
|
|
31
|
+
}
|
|
32
|
+
let jsd;
|
|
33
|
+
if (typeof window !== 'undefined') {
|
|
34
|
+
// @ts-ignore
|
|
35
|
+
jsd = window.jsdom;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
jsd = require('jsdom');
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Returns only first extracted element
|
|
42
|
+
* @param html
|
|
43
|
+
* @param xpathExpression
|
|
44
|
+
* @param contentsOnly
|
|
45
|
+
*/
|
|
46
|
+
function extractHTMLElement(html, xpathExpression, contentsOnly) {
|
|
47
|
+
const { start, end } = extractHTMLElementIndex(html, xpathExpression, contentsOnly);
|
|
48
|
+
return html.slice(start, end);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Returns all extracted elements
|
|
52
|
+
* @param html
|
|
53
|
+
* @param xpathExpression
|
|
54
|
+
* @param contentsOnly
|
|
55
|
+
*/
|
|
56
|
+
function extractHTMLElements(html, xpathExpression, contentsOnly) {
|
|
57
|
+
const indexes = extractHTMLElementsIndexes(html, xpathExpression, contentsOnly);
|
|
58
|
+
const res = [];
|
|
59
|
+
for (const { start, end } of indexes) {
|
|
60
|
+
res.push(html.slice(start, end));
|
|
61
|
+
}
|
|
62
|
+
return res;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* returns a single index of extracted element
|
|
66
|
+
* @param html
|
|
67
|
+
* @param xpathExpression
|
|
68
|
+
* @param contentsOnly
|
|
69
|
+
*/
|
|
70
|
+
function extractHTMLElementIndex(html, xpathExpression, contentsOnly) {
|
|
71
|
+
return extractHTMLElementsIndexes(html, xpathExpression, contentsOnly)[0];
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Returns indexes of all extracted elements
|
|
75
|
+
* @param html
|
|
76
|
+
* @param xpathExpression
|
|
77
|
+
* @param contentsOnly
|
|
78
|
+
*/
|
|
79
|
+
function extractHTMLElementsIndexes(html, xpathExpression, contentsOnly) {
|
|
80
|
+
const dom = new jsd.JSDOM(html, {
|
|
81
|
+
contentType: 'text/html',
|
|
82
|
+
includeNodeLocations: true
|
|
83
|
+
});
|
|
84
|
+
const document = dom.window.document;
|
|
85
|
+
const xpathResult = document.evaluate(xpathExpression, document, null, dom.window.XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
|
|
86
|
+
const nodes = [];
|
|
87
|
+
if ((xpathResult === null || xpathResult === void 0 ? void 0 : xpathResult.resultType) === dom.window.XPathResult.ORDERED_NODE_SNAPSHOT_TYPE &&
|
|
88
|
+
(xpathResult === null || xpathResult === void 0 ? void 0 : xpathResult.snapshotLength)) {
|
|
89
|
+
for (let i = 0; i < xpathResult.snapshotLength; ++i) {
|
|
90
|
+
nodes.push(xpathResult.snapshotItem(i));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (!nodes.length) {
|
|
94
|
+
throw new Error(`Failed to find XPath: "${xpathExpression}"`);
|
|
95
|
+
}
|
|
96
|
+
const res = [];
|
|
97
|
+
for (const node of nodes) {
|
|
98
|
+
const nodeLocation = dom.nodeLocation(node);
|
|
99
|
+
if (!nodeLocation) {
|
|
100
|
+
throw new Error(`Failed to find XPath node location: "${xpathExpression}"`);
|
|
101
|
+
}
|
|
102
|
+
if (contentsOnly) {
|
|
103
|
+
const start = nodeLocation.startTag ? nodeLocation.startTag.endOffset : nodeLocation.startOffset;
|
|
104
|
+
const end = nodeLocation.endTag ? nodeLocation.endTag.startOffset : nodeLocation.endOffset;
|
|
105
|
+
res.push({ start, end });
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
res.push({ start: nodeLocation.startOffset, end: nodeLocation.endOffset });
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return res;
|
|
112
|
+
}
|
|
113
|
+
function extractJSONValueIndex(json, jsonPath) {
|
|
114
|
+
return extractJSONValueIndexes(json, jsonPath)[0];
|
|
115
|
+
}
|
|
116
|
+
function extractJSONValueIndexes(json, jsonPath) {
|
|
117
|
+
const pointers = (0, jsonpath_plus_1.JSONPath)({
|
|
118
|
+
path: jsonPath,
|
|
119
|
+
json: JSON.parse(json),
|
|
120
|
+
wrap: false,
|
|
121
|
+
resultType: 'pointer',
|
|
122
|
+
eval: 'safe',
|
|
123
|
+
// @ts-ignore
|
|
124
|
+
ignoreEvalErrors: true
|
|
125
|
+
});
|
|
126
|
+
if (!pointers) {
|
|
127
|
+
throw new Error('jsonPath not found');
|
|
128
|
+
}
|
|
129
|
+
const tree = (0, esprima_next_1.parseScript)('(' + json + ')', { range: true }); //wrap in parentheses for esprima to parse
|
|
130
|
+
if (tree.body[0] instanceof esprima_next_1.ExpressionStatement
|
|
131
|
+
&& (tree.body[0].expression instanceof esprima_next_1.ObjectExpression || tree.body[0].expression instanceof esprima_next_1.ArrayExpression)) {
|
|
132
|
+
const traversePointers = Array.isArray(pointers) ? pointers : [pointers];
|
|
133
|
+
const res = [];
|
|
134
|
+
for (const pointer of traversePointers) {
|
|
135
|
+
const index = traverse(tree.body[0].expression, '', [pointer]);
|
|
136
|
+
if (index) {
|
|
137
|
+
res.push({
|
|
138
|
+
start: index.start - 1, //account for '('
|
|
139
|
+
end: index.end - 1,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return res;
|
|
144
|
+
}
|
|
145
|
+
throw new Error('jsonPath not found');
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* recursively go through AST tree and build a JSON path while it's not equal to the one we search for
|
|
149
|
+
* @param o - esprima expression for root object
|
|
150
|
+
* @param path - path that is being built
|
|
151
|
+
* @param pointers - JSON pointers to compare to
|
|
152
|
+
*/
|
|
153
|
+
function traverse(o, path, pointers) {
|
|
154
|
+
if (o instanceof esprima_next_1.ObjectExpression) {
|
|
155
|
+
for (const p of o.properties) {
|
|
156
|
+
if (!(p instanceof esprima_next_1.Property)) {
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
const localPath = p.key.type === esprima_next_1.Syntax.Literal
|
|
160
|
+
? path + '/' + p.key.value
|
|
161
|
+
: path;
|
|
162
|
+
if (pointers.includes(localPath) && 'range' in p && Array.isArray(p.range)) {
|
|
163
|
+
return {
|
|
164
|
+
start: p.range[0],
|
|
165
|
+
end: p.range[1],
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
if (p.value instanceof esprima_next_1.ObjectExpression
|
|
169
|
+
|| p.value instanceof esprima_next_1.ArrayExpression) {
|
|
170
|
+
const res = traverse(p.value, localPath, pointers);
|
|
171
|
+
if (res) {
|
|
172
|
+
return res;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
if (o instanceof esprima_next_1.ArrayExpression) {
|
|
178
|
+
for (let i = 0; i < o.elements.length; i++) {
|
|
179
|
+
const element = o.elements[i];
|
|
180
|
+
if (!element) {
|
|
181
|
+
continue;
|
|
182
|
+
}
|
|
183
|
+
const localPath = path + '/' + i;
|
|
184
|
+
if (pointers.includes(localPath) &&
|
|
185
|
+
'range' in element &&
|
|
186
|
+
Array.isArray(element.range)) {
|
|
187
|
+
return {
|
|
188
|
+
start: element.range[0],
|
|
189
|
+
end: element.range[1],
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
if (element instanceof esprima_next_1.ObjectExpression) {
|
|
193
|
+
const res = traverse(element, localPath, pointers);
|
|
194
|
+
if (res) {
|
|
195
|
+
return res;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
if (element instanceof esprima_next_1.ArrayExpression) {
|
|
199
|
+
const res = traverse(element, localPath, pointers);
|
|
200
|
+
if (res) {
|
|
201
|
+
return res;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
return null;
|
|
207
|
+
}
|
|
208
|
+
function buildHeaders(input) {
|
|
209
|
+
const headers = [];
|
|
210
|
+
for (const [key, value] of Object.entries(input || {})) {
|
|
211
|
+
headers.push(`${key}: ${value}`);
|
|
212
|
+
}
|
|
213
|
+
return headers;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Converts position in HTTP response body to an absolute position in TLS transcript considering chunked encoding
|
|
217
|
+
* @param pos
|
|
218
|
+
* @param bodyStartIdx
|
|
219
|
+
* @param chunks
|
|
220
|
+
*/
|
|
221
|
+
function convertResponsePosToAbsolutePos(pos, bodyStartIdx, chunks) {
|
|
222
|
+
if (chunks === null || chunks === void 0 ? void 0 : chunks.length) {
|
|
223
|
+
let chunkBodyStart = 0;
|
|
224
|
+
for (const chunk of chunks) {
|
|
225
|
+
const chunkSize = chunk.toIndex - chunk.fromIndex;
|
|
226
|
+
if (pos >= chunkBodyStart && pos <= (chunkBodyStart + chunkSize)) {
|
|
227
|
+
return pos - chunkBodyStart + chunk.fromIndex;
|
|
228
|
+
}
|
|
229
|
+
chunkBodyStart += chunkSize;
|
|
230
|
+
}
|
|
231
|
+
throw new Error('position out of range');
|
|
232
|
+
}
|
|
233
|
+
return bodyStartIdx + pos;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Returns parts of response which contain chunk headers and must be redacted out
|
|
237
|
+
* of revealed response part
|
|
238
|
+
* @param from
|
|
239
|
+
* @param to
|
|
240
|
+
* @param chunks
|
|
241
|
+
*/
|
|
242
|
+
function getRedactionsForChunkHeaders(from, to, chunks) {
|
|
243
|
+
const res = [];
|
|
244
|
+
if (chunks === null || chunks === void 0 ? void 0 : chunks.length) {
|
|
245
|
+
for (let i = 1; i < (chunks === null || chunks === void 0 ? void 0 : chunks.length); i++) {
|
|
246
|
+
if (chunks[i].fromIndex > from && chunks[i].fromIndex < to) {
|
|
247
|
+
res.push({ fromIndex: chunks[i - 1].toIndex, toIndex: chunks[i].fromIndex });
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
return res;
|
|
252
|
+
}
|
|
253
|
+
function parseHttpResponse(buff) {
|
|
254
|
+
const parser = (0, utils_1.makeHttpResponseParser)();
|
|
255
|
+
parser.onChunk(buff);
|
|
256
|
+
parser.streamEnded();
|
|
257
|
+
return parser.res;
|
|
258
|
+
}
|
|
259
|
+
function makeRegex(str) {
|
|
260
|
+
if (RE2 !== undefined) {
|
|
261
|
+
return RE2(str, 'sgiu');
|
|
262
|
+
}
|
|
263
|
+
return new RegExp(str, 'sgi');
|
|
264
|
+
}
|
|
265
|
+
const TEMPLATE_START_CHARCODE = '{'.charCodeAt(0);
|
|
266
|
+
const TEMPLATE_END_CHARCODE = '}'.charCodeAt(0);
|
|
267
|
+
/**
|
|
268
|
+
* Try to match strings that contain templates like {{param}}
|
|
269
|
+
* against redacted string that has *** instead of that param
|
|
270
|
+
*/
|
|
271
|
+
function matchRedactedStrings(templateString, redactedString) {
|
|
272
|
+
if (templateString.length === 0 && (redactedString === null || redactedString === void 0 ? void 0 : redactedString.length) === 0) {
|
|
273
|
+
return true;
|
|
274
|
+
}
|
|
275
|
+
if (!redactedString) {
|
|
276
|
+
return false;
|
|
277
|
+
}
|
|
278
|
+
let ts = -1;
|
|
279
|
+
let rs = -1;
|
|
280
|
+
while (ts < templateString.length && rs < redactedString.length) {
|
|
281
|
+
let ct = getTChar();
|
|
282
|
+
let cr = getRChar();
|
|
283
|
+
if (ct !== cr) {
|
|
284
|
+
// only valid if param contains "{" & redacted contains "*"
|
|
285
|
+
if (ct === TEMPLATE_START_CHARCODE && cr === utils_1.REDACTION_CHAR_CODE) {
|
|
286
|
+
//check that the char after first "{" is also "{"
|
|
287
|
+
if (getTChar() !== TEMPLATE_START_CHARCODE) {
|
|
288
|
+
return false;
|
|
289
|
+
}
|
|
290
|
+
//look for first closing bracket
|
|
291
|
+
while (((ct = getTChar()) !== TEMPLATE_END_CHARCODE) && ct !== -1) {
|
|
292
|
+
}
|
|
293
|
+
//look for second closing bracket
|
|
294
|
+
while (((ct = getTChar()) !== TEMPLATE_END_CHARCODE) && ct !== -1) {
|
|
295
|
+
}
|
|
296
|
+
if (ct === -1) {
|
|
297
|
+
return false;
|
|
298
|
+
}
|
|
299
|
+
//find the end of redaction
|
|
300
|
+
while (((cr = getRChar()) === utils_1.REDACTION_CHAR_CODE) && cr !== -1) {
|
|
301
|
+
}
|
|
302
|
+
if (cr === -1) {
|
|
303
|
+
//if there's nothing after template too then both ended at the end of strings
|
|
304
|
+
return getTChar() === -1;
|
|
305
|
+
}
|
|
306
|
+
//rewind redacted string position back 1 char because we read one extra
|
|
307
|
+
rs--;
|
|
308
|
+
}
|
|
309
|
+
else {
|
|
310
|
+
return false;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
function getTChar() {
|
|
315
|
+
ts++;
|
|
316
|
+
if (ts < templateString.length) {
|
|
317
|
+
return templateString[ts];
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
return -1;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
function getRChar() {
|
|
324
|
+
if (!redactedString) {
|
|
325
|
+
return -1;
|
|
326
|
+
}
|
|
327
|
+
rs++;
|
|
328
|
+
if (rs < redactedString.length) {
|
|
329
|
+
return redactedString[rs];
|
|
330
|
+
}
|
|
331
|
+
else {
|
|
332
|
+
return -1;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
return ts === templateString.length && rs === redactedString.length;
|
|
336
|
+
}
|
|
337
|
+
function generateRequstAndResponseFromTranscript(transcript, tlsVersion) {
|
|
338
|
+
const allPackets = transcript;
|
|
339
|
+
const packets = [];
|
|
340
|
+
for (const b of allPackets) {
|
|
341
|
+
if (b.message.type !== 'ciphertext'
|
|
342
|
+
|| !(0, utils_1.isApplicationData)(b.message, tlsVersion)) {
|
|
343
|
+
continue;
|
|
344
|
+
}
|
|
345
|
+
const plaintext = tlsVersion === 'TLS1_3'
|
|
346
|
+
? b.message.plaintext.slice(0, -1)
|
|
347
|
+
: b.message.plaintext;
|
|
348
|
+
packets.push({
|
|
349
|
+
message: plaintext,
|
|
350
|
+
sender: b.sender
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
const req = (0, utils_1.getHttpRequestDataFromTranscript)(packets);
|
|
354
|
+
const responsePackets = (0, tls_1.concatenateUint8Arrays)(packets.filter(p => p.sender === 'server').map(p => p.message).filter(b => !b.every(b => b === utils_1.REDACTION_CHAR_CODE)));
|
|
355
|
+
const res = parseHttpResponse(responsePackets);
|
|
356
|
+
return { req, res };
|
|
357
|
+
}
|
|
358
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvdmlkZXJzL2h0dHBiNjQvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdDQUF3Qzs7QUFpRHhDLGdEQU9DO0FBUUQsa0RBWUM7QUFRRCwwREFNQztBQVFELGdFQTRDQztBQUVELHNEQUVDO0FBRUQsMERBa0NDO0FBaUZELG9DQVFDO0FBUUQsMEVBa0JDO0FBU0Qsb0VBV0M7QUFFRCw4Q0FLQztBQUVELDhCQU1DO0FBU0Qsb0RBNEVDO0FBRUQsMEZBMEJDO0FBM2JELDhDQUE2RDtBQUM3RCwrQ0FRcUI7QUFDckIsaURBQXdDO0FBRXhDLHFDQUF1SjtBQVN2SixJQUFJLEdBQUcsQ0FBQTtBQUNQLElBQUksQ0FBQztJQUNKLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDcEIsSUFBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0IsR0FBRyxHQUFHLFNBQVMsQ0FBQTtRQUNmLE1BQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQTtJQUNsQixDQUFDO0FBQ0YsQ0FBQztBQUFDLFdBQUssQ0FBQztJQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMscUNBQXFDLENBQUMsQ0FBQTtBQUNuRCxDQUFDO0FBRUQsSUFBSSxHQUFHLENBQUE7QUFFUCxJQUFHLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLGFBQWE7SUFDYixHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQTtBQUNuQixDQUFDO0tBQU0sQ0FBQztJQUNQLEdBQUcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDdkIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQ2pDLElBQVksRUFDWixlQUF1QixFQUN2QixZQUFxQjtJQUVyQixNQUFNLEVBQUUsS0FBSyxFQUFFLEdB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
|
package/lib/providers/index.js
CHANGED
|
@@ -5,7 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.providers = void 0;
|
|
7
7
|
const http_1 = __importDefault(require("../providers/http"));
|
|
8
|
+
const httpb64_1 = __importDefault(require("../providers/httpb64"));
|
|
8
9
|
exports.providers = {
|
|
9
10
|
http: http_1.default,
|
|
11
|
+
httpb64: httpb64_1.default
|
|
10
12
|
};
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmlkZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhEQUFxQztBQUNyQyxvRUFBMkM7QUFHOUIsUUFBQSxTQUFTLEdBRWxCO0lBQ0gsSUFBSSxFQUFKLGNBQUk7SUFDSixPQUFPLEVBQVAsaUJBQU87Q0FDUCxDQUFBIn0=
|
|
@@ -5,7 +5,7 @@ const server_1 = require("../server");
|
|
|
5
5
|
const utils_1 = require("../utils");
|
|
6
6
|
const DEMO_GEO_LOCATIONS = ['in', 'us'];
|
|
7
7
|
jest.setTimeout(15000);
|
|
8
|
-
describe('TCP Tunnel', () => {
|
|
8
|
+
describe.skip('TCP Tunnel', () => {
|
|
9
9
|
it.each([...DEMO_GEO_LOCATIONS, 'none'])('should generate a session using a geoLocation (%s)', async (geoLocation) => {
|
|
10
10
|
const resParser = (0, utils_1.makeHttpResponseParser)();
|
|
11
11
|
let resolvePromise;
|
|
@@ -61,4 +61,4 @@ describe('TCP Tunnel', () => {
|
|
|
61
61
|
await session.close();
|
|
62
62
|
});
|
|
63
63
|
});
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC50Y3AtdHVubmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RzL3Rlc3QudGNwLXR1bm5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDhDQUF1RTtBQUN2RSx1Q0FBMEM7QUFDMUMscUNBQTBEO0FBRTFELE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7QUFFdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFNLENBQUMsQ0FBQTtBQUV2QixRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUU7SUFFaEMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxvREFBb0QsRUFBRSxLQUFLLEVBQUMsV0FBVyxFQUFFLEVBQUU7UUFDbkgsTUFBTSxTQUFTLEdBQUcsSUFBQSw4QkFBc0IsR0FBRSxDQUFBO1FBRTFDLElBQUksY0FBd0MsQ0FBQTtRQUM1QyxJQUFJLGFBQWlELENBQUE7UUFFckQsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFBLHNCQUFhLEVBQUM7WUFDbkMsSUFBSSxFQUFFLGFBQWE7WUFDbkIsSUFBSSxFQUFFLEVBQUU7WUFDUixXQUFXLEVBQUUsV0FBVyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXO1lBQ3RELE1BQU0sRUFBTixjQUFNO1lBQ04sT0FBTyxDQUFDLEdBQUc7Z0JBQ1YsYUFBYSxhQUFiLGFBQWEsdUJBQWIsYUFBYSxDQUFHLEdBQUcsSUFBSSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUE7WUFDcEQsQ0FBQztZQUNELFNBQVMsQ0FBQyxJQUFJO2dCQUNiLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQ3ZCLElBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDM0IsY0FBYyxhQUFkLGNBQWMsdUJBQWQsY0FBYyxFQUFJLENBQUE7Z0JBQ25CLENBQUM7WUFDRixDQUFDO1NBQ0QsQ0FBQyxDQUFBO1FBRUYsTUFBTSxVQUFVLEdBQUcsSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDeEQsY0FBYyxHQUFHLE9BQU8sQ0FBQTtZQUN4QixhQUFhLEdBQUcsTUFBTSxDQUFBO1FBQ3ZCLENBQUMsQ0FBQyxDQUFBO1FBRUYsTUFBTSxHQUFHLEdBQUcsc0RBQXNELENBQUE7UUFDbEUsTUFBTSxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUEscUJBQWUsRUFBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQ3pDLE1BQU0sVUFBVSxDQUFBO1FBRWhCLE1BQU0sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ3JCLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUMxQyxNQUFNLE9BQU8sR0FBRyxJQUFBLHFCQUFlLEVBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNuRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRW5DLElBQUcsV0FBVyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzNCLE9BQU07UUFDUCxDQUFDO1FBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQzNCLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FDekIsQ0FBQTtJQUNGLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLCtDQUErQyxFQUFFLEtBQUssSUFBRyxFQUFFO1FBQzdELE1BQU0sTUFBTSxDQUNYLElBQUEsc0JBQWEsRUFBQztZQUNiLElBQUksRUFBRSxhQUFhO1lBQ25CLElBQUksRUFBRSxFQUFFO1lBQ1IsV0FBVyxFQUFFLElBQUk7WUFDakIsTUFBTSxFQUFOLGNBQU07U0FDTixDQUFDLENBQ0YsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1lBQ3ZCLE9BQU8sRUFBRSw4QkFBOEI7U0FDdkMsQ0FBQyxDQUFBO0lBQ0gsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMscUNBQXFDLEVBQUUsS0FBSyxJQUFHLEVBQUU7UUFDbkQsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFBLHNCQUFhLEVBQUM7WUFDbkMsSUFBSSxFQUFFLHdCQUF3QjtZQUM5QixJQUFJLEVBQUUsRUFBRTtZQUNSLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLE1BQU0sRUFBTixjQUFNO1NBQ04sQ0FBQyxDQUFBO1FBRUYsTUFBTSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDdEIsQ0FBQyxDQUFDLENBQUE7QUFDSCxDQUFDLENBQUMsQ0FBQSJ9
|
|
@@ -256,6 +256,10 @@ export interface ProvidersConfig {
|
|
|
256
256
|
parameters: HttpProviderParameters;
|
|
257
257
|
secretParameters: HttpProviderSecretParameters;
|
|
258
258
|
};
|
|
259
|
+
httpb64: {
|
|
260
|
+
parameters: HttpProviderParameters;
|
|
261
|
+
secretParameters: HttpProviderSecretParameters;
|
|
262
|
+
};
|
|
259
263
|
}
|
|
260
264
|
export declare const PROVIDER_SCHEMAS: {
|
|
261
265
|
http: {
|
|
@@ -410,5 +414,157 @@ export declare const PROVIDER_SCHEMAS: {
|
|
|
410
414
|
additionalProperties: boolean;
|
|
411
415
|
};
|
|
412
416
|
};
|
|
417
|
+
httpb64: {
|
|
418
|
+
parameters: {
|
|
419
|
+
title: string;
|
|
420
|
+
type: string;
|
|
421
|
+
required: string[];
|
|
422
|
+
properties: {
|
|
423
|
+
url: {
|
|
424
|
+
type: string;
|
|
425
|
+
format: string;
|
|
426
|
+
description: string;
|
|
427
|
+
};
|
|
428
|
+
method: {
|
|
429
|
+
type: string;
|
|
430
|
+
enum: string[];
|
|
431
|
+
};
|
|
432
|
+
geoLocation: {
|
|
433
|
+
type: string;
|
|
434
|
+
nullable: boolean;
|
|
435
|
+
pattern: string;
|
|
436
|
+
description: string;
|
|
437
|
+
};
|
|
438
|
+
headers: {
|
|
439
|
+
type: string;
|
|
440
|
+
description: string;
|
|
441
|
+
additionalProperties: {
|
|
442
|
+
type: string;
|
|
443
|
+
};
|
|
444
|
+
};
|
|
445
|
+
body: {
|
|
446
|
+
description: string;
|
|
447
|
+
oneOf: ({
|
|
448
|
+
type: string;
|
|
449
|
+
format: string;
|
|
450
|
+
} | {
|
|
451
|
+
type: string;
|
|
452
|
+
format?: undefined;
|
|
453
|
+
})[];
|
|
454
|
+
};
|
|
455
|
+
writeRedactionMode: {
|
|
456
|
+
type: string;
|
|
457
|
+
description: string;
|
|
458
|
+
enum: string[];
|
|
459
|
+
};
|
|
460
|
+
additionalClientOptions: {
|
|
461
|
+
type: string;
|
|
462
|
+
description: string;
|
|
463
|
+
nullable: boolean;
|
|
464
|
+
properties: {
|
|
465
|
+
supportedProtocolVersions: {
|
|
466
|
+
type: string;
|
|
467
|
+
minItems: number;
|
|
468
|
+
uniqueItems: boolean;
|
|
469
|
+
items: {
|
|
470
|
+
type: string;
|
|
471
|
+
enum: string[];
|
|
472
|
+
};
|
|
473
|
+
};
|
|
474
|
+
};
|
|
475
|
+
};
|
|
476
|
+
responseMatches: {
|
|
477
|
+
type: string;
|
|
478
|
+
minItems: number;
|
|
479
|
+
uniqueItems: boolean;
|
|
480
|
+
description: string;
|
|
481
|
+
items: {
|
|
482
|
+
type: string;
|
|
483
|
+
required: string[];
|
|
484
|
+
properties: {
|
|
485
|
+
value: {
|
|
486
|
+
type: string;
|
|
487
|
+
description: string;
|
|
488
|
+
};
|
|
489
|
+
type: {
|
|
490
|
+
type: string;
|
|
491
|
+
description: string;
|
|
492
|
+
enum: string[];
|
|
493
|
+
};
|
|
494
|
+
invert: {
|
|
495
|
+
type: string;
|
|
496
|
+
description: string;
|
|
497
|
+
};
|
|
498
|
+
};
|
|
499
|
+
additionalProperties: boolean;
|
|
500
|
+
};
|
|
501
|
+
};
|
|
502
|
+
responseRedactions: {
|
|
503
|
+
type: string;
|
|
504
|
+
uniqueItems: boolean;
|
|
505
|
+
description: string;
|
|
506
|
+
items: {
|
|
507
|
+
type: string;
|
|
508
|
+
properties: {
|
|
509
|
+
xPath: {
|
|
510
|
+
type: string;
|
|
511
|
+
nullable: boolean;
|
|
512
|
+
description: string;
|
|
513
|
+
};
|
|
514
|
+
jsonPath: {
|
|
515
|
+
type: string;
|
|
516
|
+
nullable: boolean;
|
|
517
|
+
description: string;
|
|
518
|
+
};
|
|
519
|
+
regex: {
|
|
520
|
+
type: string;
|
|
521
|
+
nullable: boolean;
|
|
522
|
+
description: string;
|
|
523
|
+
};
|
|
524
|
+
};
|
|
525
|
+
additionalProperties: boolean;
|
|
526
|
+
};
|
|
527
|
+
};
|
|
528
|
+
paramValues: {
|
|
529
|
+
type: string;
|
|
530
|
+
description: string;
|
|
531
|
+
additionalProperties: {
|
|
532
|
+
type: string;
|
|
533
|
+
};
|
|
534
|
+
};
|
|
535
|
+
};
|
|
536
|
+
additionalProperties: boolean;
|
|
537
|
+
};
|
|
538
|
+
secretParameters: {
|
|
539
|
+
title: string;
|
|
540
|
+
type: string;
|
|
541
|
+
description: string;
|
|
542
|
+
properties: {
|
|
543
|
+
cookieStr: {
|
|
544
|
+
type: string;
|
|
545
|
+
description: string;
|
|
546
|
+
};
|
|
547
|
+
authorisationHeader: {
|
|
548
|
+
type: string;
|
|
549
|
+
description: string;
|
|
550
|
+
};
|
|
551
|
+
headers: {
|
|
552
|
+
type: string;
|
|
553
|
+
description: string;
|
|
554
|
+
additionalProperties: {
|
|
555
|
+
type: string;
|
|
556
|
+
};
|
|
557
|
+
};
|
|
558
|
+
paramValues: {
|
|
559
|
+
type: string;
|
|
560
|
+
description: string;
|
|
561
|
+
additionalProperties: {
|
|
562
|
+
type: string;
|
|
563
|
+
};
|
|
564
|
+
};
|
|
565
|
+
};
|
|
566
|
+
additionalProperties: boolean;
|
|
567
|
+
};
|
|
568
|
+
};
|
|
413
569
|
};
|
|
414
570
|
export {};
|
|
@@ -10,5 +10,9 @@ exports.PROVIDER_SCHEMAS = {
|
|
|
10
10
|
parameters: exports.HttpProviderParametersJson,
|
|
11
11
|
secretParameters: exports.HttpProviderSecretParametersJson
|
|
12
12
|
},
|
|
13
|
+
httpb64: {
|
|
14
|
+
parameters: exports.HttpProviderParametersJson,
|
|
15
|
+
secretParameters: exports.HttpProviderSecretParametersJson
|
|
16
|
+
},
|
|
13
17
|
};
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmdlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9wcm92aWRlcnMuZ2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvQkFBb0I7QUFDcEIsaUNBQWlDOzs7QUFrRnBCLFFBQUEsMEJBQTBCLEdBQUcsRUFBQyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxVQUFVLEVBQUMsQ0FBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLGlCQUFpQixDQUFDLEVBQUMsWUFBWSxFQUFDLEVBQUMsS0FBSyxFQUFDLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLGFBQWEsRUFBQyxtSEFBbUgsRUFBQyxFQUFDLFFBQVEsRUFBQyxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsTUFBTSxFQUFDLENBQUMsS0FBSyxFQUFDLE1BQU0sRUFBQyxLQUFLLEVBQUMsT0FBTyxDQUFDLEVBQUMsRUFBQyxhQUFhLEVBQUMsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLFVBQVUsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFDLGlCQUFpQixFQUFDLGFBQWEsRUFBQyw4RkFBOEYsRUFBQyxFQUFDLFNBQVMsRUFBQyxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsYUFBYSxFQUFDLG9NQUFvTSxFQUFDLHNCQUFzQixFQUFDLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLEVBQUMsYUFBYSxFQUFDLDBCQUEwQixFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxFQUFDLG9CQUFvQixFQUFDLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxhQUFhLEVBQUMsc0lBQXNJLEVBQUMsTUFBTSxFQUFDLENBQUMsSUFB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
|