@sectester/scan 0.36.2 → 0.37.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/README.md +4 -5
- package/package.json +1 -1
- package/src/DefaultDiscoveries.js +1 -2
- package/src/DefaultDiscoveries.js.map +1 -1
- package/src/DefaultScans.d.ts +0 -4
- package/src/DefaultScans.js +0 -24
- package/src/DefaultScans.js.map +1 -1
- package/src/Scans.d.ts +0 -4
- package/src/Scans.js.map +1 -1
- package/src/target/Body.d.ts +9 -0
- package/src/target/Body.js +48 -0
- package/src/target/Body.js.map +1 -0
- package/src/target/HeadersType.d.ts +1 -0
- package/src/target/HeadersType.js +3 -0
- package/src/target/HeadersType.js.map +1 -0
- package/src/target/QueryParamsType.d.ts +1 -0
- package/src/target/QueryParamsType.js +3 -0
- package/src/target/QueryParamsType.js.map +1 -0
- package/src/target/Target.d.ts +19 -26
- package/src/target/Target.js +43 -109
- package/src/target/Target.js.map +1 -1
- package/src/target/converters/ArrayBufferConverter.d.ts +6 -0
- package/src/target/converters/ArrayBufferConverter.js +17 -0
- package/src/target/converters/ArrayBufferConverter.js.map +1 -0
- package/src/target/converters/AsyncIterableConverter.d.ts +6 -0
- package/src/target/converters/AsyncIterableConverter.js +20 -0
- package/src/target/converters/AsyncIterableConverter.js.map +1 -0
- package/src/target/converters/BlobConverter.d.ts +6 -0
- package/src/target/converters/BlobConverter.js +17 -0
- package/src/target/converters/BlobConverter.js.map +1 -0
- package/src/target/converters/BodyConverter.d.ts +5 -0
- package/src/target/converters/BodyConverter.js +3 -0
- package/src/target/converters/BodyConverter.js.map +1 -0
- package/src/target/converters/ConverterRegistry.d.ts +6 -0
- package/src/target/converters/ConverterRegistry.js +14 -0
- package/src/target/converters/ConverterRegistry.js.map +1 -0
- package/src/target/converters/FormDataConverter.d.ts +7 -0
- package/src/target/converters/FormDataConverter.js +39 -0
- package/src/target/converters/FormDataConverter.js.map +1 -0
- package/src/target/converters/IterableConverter.d.ts +6 -0
- package/src/target/converters/IterableConverter.js +21 -0
- package/src/target/converters/IterableConverter.js.map +1 -0
- package/src/target/converters/JsonConverter.d.ts +6 -0
- package/src/target/converters/JsonConverter.js +21 -0
- package/src/target/converters/JsonConverter.js.map +1 -0
- package/src/target/converters/StreamConverter.d.ts +6 -0
- package/src/target/converters/StreamConverter.js +21 -0
- package/src/target/converters/StreamConverter.js.map +1 -0
- package/src/target/converters/StringConverter.d.ts +6 -0
- package/src/target/converters/StringConverter.js +26 -0
- package/src/target/converters/StringConverter.js.map +1 -0
- package/src/target/converters/URLSearchParamsConverter.d.ts +6 -0
- package/src/target/converters/URLSearchParamsConverter.js +17 -0
- package/src/target/converters/URLSearchParamsConverter.js.map +1 -0
- package/src/target/converters/index.d.ts +11 -0
- package/src/target/converters/index.js +15 -0
- package/src/target/converters/index.js.map +1 -0
- package/src/target/index.d.ts +3 -1
- package/src/target/index.js +3 -1
- package/src/target/index.js.map +1 -1
- package/src/utils/escape.d.ts +1 -1
- package/src/utils/escape.js +1 -14
- package/src/utils/escape.js.map +1 -1
- package/src/utils/index.d.ts +7 -1
- package/src/utils/index.js +7 -1
- package/src/utils/index.js.map +1 -1
- package/src/utils/is-blob.d.ts +1 -0
- package/src/utils/is-blob.js +11 -0
- package/src/utils/is-blob.js.map +1 -0
- package/src/utils/is-json-serializable.d.ts +1 -0
- package/src/utils/is-json-serializable.js +19 -0
- package/src/utils/is-json-serializable.js.map +1 -0
- package/src/utils/is-json.d.ts +1 -0
- package/src/utils/is-json.js +18 -0
- package/src/utils/is-json.js.map +1 -0
- package/src/utils/is-primitive.d.ts +1 -0
- package/src/utils/is-primitive.js +10 -0
- package/src/utils/is-primitive.js.map +1 -0
- package/src/utils/is-stream.d.ts +1 -0
- package/src/utils/is-stream.js +6 -0
- package/src/utils/is-stream.js.map +1 -0
- package/src/utils/is-xml.d.ts +1 -0
- package/src/utils/is-xml.js +11 -0
- package/src/utils/is-xml.js.map +1 -0
- package/src/utils/normalize-linefeeds.d.ts +1 -0
- package/src/utils/normalize-linefeeds.js +6 -0
- package/src/utils/normalize-linefeeds.js.map +1 -0
- package/src/target/body-parsers/BinaryBodyParser.d.ts +0 -6
- package/src/target/body-parsers/BinaryBodyParser.js +0 -14
- package/src/target/body-parsers/BinaryBodyParser.js.map +0 -1
- package/src/target/body-parsers/BodyParser.d.ts +0 -12
- package/src/target/body-parsers/BodyParser.js +0 -5
- package/src/target/body-parsers/BodyParser.js.map +0 -1
- package/src/target/body-parsers/FormDataBodyParser.d.ts +0 -9
- package/src/target/body-parsers/FormDataBodyParser.js +0 -63
- package/src/target/body-parsers/FormDataBodyParser.js.map +0 -1
- package/src/target/body-parsers/JsonBodyParser.d.ts +0 -7
- package/src/target/body-parsers/JsonBodyParser.js +0 -24
- package/src/target/body-parsers/JsonBodyParser.js.map +0 -1
- package/src/target/body-parsers/TextBodyParser.d.ts +0 -6
- package/src/target/body-parsers/TextBodyParser.js +0 -15
- package/src/target/body-parsers/TextBodyParser.js.map +0 -1
- package/src/target/body-parsers/UrlEncodedBodyParser.d.ts +0 -7
- package/src/target/body-parsers/UrlEncodedBodyParser.js +0 -25
- package/src/target/body-parsers/UrlEncodedBodyParser.js.map +0 -1
- package/src/target/body-parsers/index.d.ts +0 -2
- package/src/target/body-parsers/index.js +0 -6
- package/src/target/body-parsers/index.js.map +0 -1
- package/src/target/body-parsers/register.d.ts +0 -1
- package/src/target/body-parsers/register.js +0 -26
- package/src/target/body-parsers/register.js.map +0 -1
- package/src/utils/entries-to-list.d.ts +0 -4
- package/src/utils/entries-to-list.js +0 -10
- package/src/utils/entries-to-list.js.map +0 -1
package/README.md
CHANGED
|
@@ -123,7 +123,7 @@ const target = new Target({
|
|
|
123
123
|
|
|
124
124
|
#### query
|
|
125
125
|
|
|
126
|
-
- type: `
|
|
126
|
+
- type: `URLSearchParams | string | Record<string, string | readonly string[]>`
|
|
127
127
|
|
|
128
128
|
The query parameters to be sent with the request:
|
|
129
129
|
|
|
@@ -178,7 +178,7 @@ console.log(target.queryString); // a[0]=b&a[1]=c&a[2]=d
|
|
|
178
178
|
|
|
179
179
|
#### headers
|
|
180
180
|
|
|
181
|
-
- type: `Record<string, string | string[]>`
|
|
181
|
+
- type: `Headers | Record<string, string | string[]>`
|
|
182
182
|
|
|
183
183
|
The HTTP headers to be sent:
|
|
184
184
|
|
|
@@ -195,7 +195,7 @@ const target = new Target({
|
|
|
195
195
|
|
|
196
196
|
#### body
|
|
197
197
|
|
|
198
|
-
- type: `unknown
|
|
198
|
+
- type: `ArrayBuffer | AsyncIterable<Uint8Array> | Blob | FormData | NodeJS.ReadableStream | Iterable<Uint8Array> | NodeJS.ArrayBufferView | URLSearchParams | string | Record<string, unknown>`
|
|
199
199
|
|
|
200
200
|
The data to be sent as the request body. Makes sense only for `POST`, `PUT`, `PATCH`, and `DELETE`:
|
|
201
201
|
|
|
@@ -210,11 +210,10 @@ const target = new Target({
|
|
|
210
210
|
});
|
|
211
211
|
```
|
|
212
212
|
|
|
213
|
-
You can use `FormData` objects,
|
|
213
|
+
You can use `FormData` objects, as request body as well:
|
|
214
214
|
|
|
215
215
|
```ts
|
|
216
216
|
import { Target } from '@sectester/scan';
|
|
217
|
-
import FormData from 'form-data';
|
|
218
217
|
|
|
219
218
|
const form = new FormData();
|
|
220
219
|
form.append('greeting', 'Hello, world!');
|
package/package.json
CHANGED
|
@@ -10,7 +10,6 @@ let DefaultDiscoveries = class DefaultDiscoveries {
|
|
|
10
10
|
this.client = client;
|
|
11
11
|
}
|
|
12
12
|
async createEntrypoint(target, repeaterId) {
|
|
13
|
-
var _a;
|
|
14
13
|
let response = await this.client.request(`/api/v2/projects/${this.configuration.projectId}/entry-points`, {
|
|
15
14
|
method: 'POST',
|
|
16
15
|
body: JSON.stringify({
|
|
@@ -19,7 +18,7 @@ let DefaultDiscoveries = class DefaultDiscoveries {
|
|
|
19
18
|
method: target.method,
|
|
20
19
|
url: target.url,
|
|
21
20
|
headers: target.headers,
|
|
22
|
-
body:
|
|
21
|
+
body: await target.text()
|
|
23
22
|
}
|
|
24
23
|
}),
|
|
25
24
|
headers: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultDiscoveries.js","sourceRoot":"","sources":["../../../../packages/scan/src/DefaultDiscoveries.ts"],"names":[],"mappings":";;;;AAEA,uCAA8C;AAC9C,0CAA2D;AAGpD,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,YACmB,aAA4B,EAE5B,MAAiB;QAFjB,kBAAa,GAAb,aAAa,CAAe;QAE5B,WAAM,GAAN,MAAM,CAAW;IACjC,CAAC;IAEG,KAAK,CAAC,gBAAgB,CAC3B,MAAc,EACd,UAAkB
|
|
1
|
+
{"version":3,"file":"DefaultDiscoveries.js","sourceRoot":"","sources":["../../../../packages/scan/src/DefaultDiscoveries.ts"],"names":[],"mappings":";;;;AAEA,uCAA8C;AAC9C,0CAA2D;AAGpD,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,YACmB,aAA4B,EAE5B,MAAiB;QAFjB,kBAAa,GAAb,aAAa,CAAe;QAE5B,WAAM,GAAN,MAAM,CAAW;IACjC,CAAC;IAEG,KAAK,CAAC,gBAAgB,CAC3B,MAAc,EACd,UAAkB;QAElB,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CACtC,oBAAoB,IAAI,CAAC,aAAa,CAAC,SAAS,eAAe,EAC/D;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,UAAU;gBACV,OAAO,EAAE;oBACP,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,GAAG,EAAE,MAAM,CAAC,GAAG;oBACf,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,IAAI,EAAE,MAAM,MAAM,CAAC,IAAI,EAAE;iBAC1B;aACF,CAAC;YACF,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;SACF,CACF,CAAC;QAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAChE,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAW,CAAC;YAC5D,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAmB,CAAC;QAEvD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAvCY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,qBAAU,GAAE;IAIR,mBAAA,IAAA,iBAAM,EAAC,gBAAS,CAAC,CAAA;6CADc,oBAAa;GAFpC,kBAAkB,CAuC9B"}
|
package/src/DefaultScans.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Scans } from './Scans';
|
|
2
2
|
import { Issue, ScanConfig, ScanState } from './models';
|
|
3
|
-
import { Target } from './target';
|
|
4
3
|
import { ApiClient, Configuration } from '@sectester/core';
|
|
5
4
|
export declare class DefaultScans implements Scans {
|
|
6
5
|
private readonly configuration;
|
|
@@ -13,7 +12,4 @@ export declare class DefaultScans implements Scans {
|
|
|
13
12
|
stopScan(id: string): Promise<void>;
|
|
14
13
|
deleteScan(id: string): Promise<void>;
|
|
15
14
|
getScan(id: string): Promise<ScanState>;
|
|
16
|
-
createEntrypoint(target: Target, repeaterId: string): Promise<{
|
|
17
|
-
id: string;
|
|
18
|
-
}>;
|
|
19
15
|
}
|
package/src/DefaultScans.js
CHANGED
|
@@ -69,30 +69,6 @@ let DefaultScans = class DefaultScans {
|
|
|
69
69
|
const result = (await response.json());
|
|
70
70
|
return result;
|
|
71
71
|
}
|
|
72
|
-
async createEntrypoint(target, repeaterId) {
|
|
73
|
-
var _a;
|
|
74
|
-
let response = await this.client.request(`/api/v2/projects/${this.configuration.projectId}/entry-points`, {
|
|
75
|
-
method: 'POST',
|
|
76
|
-
body: JSON.stringify({
|
|
77
|
-
repeaterId,
|
|
78
|
-
request: {
|
|
79
|
-
method: target.method,
|
|
80
|
-
url: target.url,
|
|
81
|
-
headers: target.headers,
|
|
82
|
-
body: (_a = target.postData) === null || _a === void 0 ? void 0 : _a.text
|
|
83
|
-
}
|
|
84
|
-
}),
|
|
85
|
-
headers: {
|
|
86
|
-
'content-type': 'application/json'
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
if (response.status === 409 && response.headers.has('location')) {
|
|
90
|
-
const location = response.headers.get('location');
|
|
91
|
-
response = await this.client.request(location);
|
|
92
|
-
}
|
|
93
|
-
const data = (await response.json());
|
|
94
|
-
return data;
|
|
95
|
-
}
|
|
96
72
|
};
|
|
97
73
|
exports.DefaultScans = DefaultScans;
|
|
98
74
|
exports.DefaultScans = DefaultScans = tslib_1.__decorate([
|
package/src/DefaultScans.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultScans.js","sourceRoot":"","sources":["../../../../packages/scan/src/DefaultScans.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"DefaultScans.js","sourceRoot":"","sources":["../../../../packages/scan/src/DefaultScans.ts"],"names":[],"mappings":"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"}
|
package/src/Scans.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Issue, ScanConfig, ScanState } from './models';
|
|
2
|
-
import { Target } from './target';
|
|
3
2
|
export interface Scans {
|
|
4
3
|
createScan(config: ScanConfig): Promise<{
|
|
5
4
|
id: string;
|
|
@@ -8,8 +7,5 @@ export interface Scans {
|
|
|
8
7
|
stopScan(id: string): Promise<void>;
|
|
9
8
|
deleteScan(id: string): Promise<void>;
|
|
10
9
|
getScan(id: string): Promise<ScanState>;
|
|
11
|
-
createEntrypoint(target: Target, repeaterId?: string): Promise<{
|
|
12
|
-
id: string;
|
|
13
|
-
}>;
|
|
14
10
|
}
|
|
15
11
|
export declare const Scans: unique symbol;
|
package/src/Scans.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scans.js","sourceRoot":"","sources":["../../../../packages/scan/src/Scans.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Scans.js","sourceRoot":"","sources":["../../../../packages/scan/src/Scans.ts"],"names":[],"mappings":";;;AAca,QAAA,KAAK,GAAkB,MAAM,CAAC,OAAO,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type BodyType = ArrayBuffer | AsyncIterable<Uint8Array> | Blob | FormData | NodeJS.ReadableStream | Iterable<Uint8Array> | NodeJS.ArrayBufferView | URLSearchParams | unknown | null;
|
|
2
|
+
export declare class Body {
|
|
3
|
+
private readonly data;
|
|
4
|
+
private readonly mimeType?;
|
|
5
|
+
private static readonly converterRegistry;
|
|
6
|
+
constructor(data: BodyType, mimeType?: string | undefined);
|
|
7
|
+
text(): Promise<string | undefined>;
|
|
8
|
+
type(): string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Body = void 0;
|
|
4
|
+
const converters_1 = require("./converters");
|
|
5
|
+
class Body {
|
|
6
|
+
constructor(data, mimeType) {
|
|
7
|
+
this.data = data;
|
|
8
|
+
this.mimeType = mimeType;
|
|
9
|
+
}
|
|
10
|
+
async text() {
|
|
11
|
+
if (this.data === null) {
|
|
12
|
+
return 'null';
|
|
13
|
+
}
|
|
14
|
+
const converter = Body.converterRegistry.getConverter(this.data, this.mimeType);
|
|
15
|
+
if (converter) {
|
|
16
|
+
return converter.convert(this.data, this.mimeType);
|
|
17
|
+
}
|
|
18
|
+
// Fallback to string conversion for any other types
|
|
19
|
+
return String(this.data);
|
|
20
|
+
}
|
|
21
|
+
type() {
|
|
22
|
+
if (this.mimeType) {
|
|
23
|
+
return this.mimeType;
|
|
24
|
+
}
|
|
25
|
+
if (this.data === null) {
|
|
26
|
+
return 'text/plain';
|
|
27
|
+
}
|
|
28
|
+
const converter = Body.converterRegistry.getConverter(this.data);
|
|
29
|
+
if (converter) {
|
|
30
|
+
return converter.getMimeType(this.data);
|
|
31
|
+
}
|
|
32
|
+
// Default type for unknown data
|
|
33
|
+
return '';
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.Body = Body;
|
|
37
|
+
Body.converterRegistry = new converters_1.ConverterRegistry([
|
|
38
|
+
new converters_1.ArrayBufferConverter(),
|
|
39
|
+
new converters_1.FormDataConverter(),
|
|
40
|
+
new converters_1.URLSearchParamsConverter(),
|
|
41
|
+
new converters_1.BlobConverter(),
|
|
42
|
+
new converters_1.StreamConverter(),
|
|
43
|
+
new converters_1.JsonConverter(),
|
|
44
|
+
new converters_1.StringConverter(),
|
|
45
|
+
new converters_1.IterableConverter(),
|
|
46
|
+
new converters_1.AsyncIterableConverter()
|
|
47
|
+
]);
|
|
48
|
+
//# sourceMappingURL=Body.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Body.js","sourceRoot":"","sources":["../../../../../packages/scan/src/target/Body.ts"],"names":[],"mappings":";;;AAAA,6CAWsB;AActB,MAAa,IAAI;IAaf,YACmB,IAAc,EACd,QAAiB;QADjB,SAAI,GAAJ,IAAI,CAAU;QACd,aAAQ,GAAR,QAAQ,CAAS;IACjC,CAAC;IAEG,KAAK,CAAC,IAAI;QACf,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CACnD,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,QAAQ,CACd,CAAC;QAEF,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,CAAC;QAED,oDAAoD;QACpD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAEM,IAAI;QACT,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjE,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAED,gCAAgC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;;AArDH,oBAsDC;AArDyB,sBAAiB,GAAG,IAAI,8BAAiB,CAAC;IAChE,IAAI,iCAAoB,EAAE;IAC1B,IAAI,8BAAiB,EAAE;IACvB,IAAI,qCAAwB,EAAE;IAC9B,IAAI,0BAAa,EAAE;IACnB,IAAI,4BAAe,EAAE;IACrB,IAAI,0BAAa,EAAE;IACnB,IAAI,4BAAe,EAAE;IACrB,IAAI,8BAAiB,EAAE;IACvB,IAAI,mCAAsB,EAAE;CAC7B,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type HeadersType = string[][] | Record<string, string | readonly string[]> | Headers;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeadersType.js","sourceRoot":"","sources":["../../../../../packages/scan/src/target/HeadersType.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type QueryParamsType = URLSearchParams | string | Record<string, string | readonly string[]> | Iterable<[string, string]> | readonly [string, string][];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryParamsType.js","sourceRoot":"","sources":["../../../../../packages/scan/src/target/QueryParamsType.ts"],"names":[],"mappings":""}
|
package/src/target/Target.d.ts
CHANGED
|
@@ -1,47 +1,40 @@
|
|
|
1
1
|
import { HttpMethod } from '../models';
|
|
2
|
-
import {
|
|
2
|
+
import { BodyType } from './Body';
|
|
3
|
+
import { HeadersType } from './HeadersType';
|
|
4
|
+
import { QueryParamsType } from './QueryParamsType';
|
|
3
5
|
export interface TargetOptions {
|
|
4
6
|
url: string;
|
|
5
|
-
query?:
|
|
6
|
-
body?:
|
|
7
|
+
query?: QueryParamsType;
|
|
8
|
+
body?: BodyType;
|
|
7
9
|
method?: HttpMethod | string;
|
|
8
|
-
headers?:
|
|
9
|
-
serializeQuery?(params:
|
|
10
|
+
headers?: HeadersType;
|
|
11
|
+
serializeQuery?(params: QueryParamsType): string;
|
|
10
12
|
}
|
|
11
13
|
export declare class Target implements TargetOptions {
|
|
12
|
-
private _serializeQuery;
|
|
13
|
-
get serializeQuery(): (params: URLSearchParams | Record<string, string | string[]>) => string;
|
|
14
14
|
private _parsedURL;
|
|
15
15
|
get parsedURL(): URL;
|
|
16
|
-
private
|
|
16
|
+
private _cachedUrl?;
|
|
17
17
|
get url(): string;
|
|
18
18
|
private set url(value);
|
|
19
19
|
private _method;
|
|
20
20
|
get method(): HttpMethod;
|
|
21
|
-
set method(value
|
|
21
|
+
private set method(value);
|
|
22
22
|
private _queryString?;
|
|
23
|
-
get queryString(): string;
|
|
24
|
-
private _queryParameters?;
|
|
25
|
-
get queryParameters(): QueryString[];
|
|
26
23
|
private _query?;
|
|
27
|
-
get
|
|
24
|
+
get queryString(): string;
|
|
25
|
+
get query(): QueryParamsType;
|
|
28
26
|
private set query(value);
|
|
29
|
-
private
|
|
30
|
-
private _headerParameters?;
|
|
31
|
-
get headerParameters(): Header[];
|
|
27
|
+
private _parsedHeaders;
|
|
32
28
|
private _headers?;
|
|
33
|
-
get headers():
|
|
29
|
+
get headers(): HeadersType;
|
|
34
30
|
private set headers(value);
|
|
35
|
-
private _postData;
|
|
36
|
-
get postData(): PostData | undefined;
|
|
37
31
|
private _body?;
|
|
38
|
-
|
|
32
|
+
private _parsedBody?;
|
|
33
|
+
get body(): BodyType | undefined;
|
|
39
34
|
private set body(value);
|
|
40
|
-
|
|
41
|
-
get
|
|
35
|
+
private readonly _serializeQuery;
|
|
36
|
+
get serializeQuery(): (params: QueryParamsType) => string;
|
|
42
37
|
constructor({ url, body, query, headers, serializeQuery, method }: TargetOptions);
|
|
43
|
-
|
|
44
|
-
private
|
|
45
|
-
private getHeaderValue;
|
|
46
|
-
private computeHeaderValue;
|
|
38
|
+
text(): Promise<string | undefined>;
|
|
39
|
+
private readonly defaultSerializeQuery;
|
|
47
40
|
}
|
package/src/target/Target.js
CHANGED
|
@@ -2,33 +2,24 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Target = void 0;
|
|
4
4
|
const models_1 = require("../models");
|
|
5
|
-
const
|
|
6
|
-
const body_parsers_1 = require("./body-parsers");
|
|
5
|
+
const Body_1 = require("./Body");
|
|
7
6
|
const core_1 = require("@har-sdk/core");
|
|
8
|
-
const
|
|
9
|
-
const tsyringe_1 = require("tsyringe");
|
|
10
|
-
const url_1 = require("url");
|
|
7
|
+
const util_1 = require("util");
|
|
11
8
|
class Target {
|
|
12
|
-
get serializeQuery() {
|
|
13
|
-
return this._serializeQuery;
|
|
14
|
-
}
|
|
15
9
|
get parsedURL() {
|
|
16
10
|
return this._parsedURL;
|
|
17
11
|
}
|
|
18
12
|
get url() {
|
|
19
|
-
if (!this.
|
|
20
|
-
this.
|
|
21
|
-
fragment: false
|
|
22
|
-
});
|
|
13
|
+
if (!this._cachedUrl) {
|
|
14
|
+
this._cachedUrl = this._parsedURL.toString();
|
|
23
15
|
}
|
|
24
|
-
return this.
|
|
16
|
+
return this._cachedUrl;
|
|
25
17
|
}
|
|
26
18
|
set url(value) {
|
|
27
19
|
this._parsedURL = new URL((0, core_1.normalizeUrl)(value));
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
delete this._queryParameters;
|
|
20
|
+
this._cachedUrl = undefined;
|
|
21
|
+
this._query = undefined;
|
|
22
|
+
this._queryString = undefined;
|
|
32
23
|
}
|
|
33
24
|
get method() {
|
|
34
25
|
return this._method;
|
|
@@ -39,127 +30,70 @@ class Target {
|
|
|
39
30
|
get queryString() {
|
|
40
31
|
if (!this._queryString) {
|
|
41
32
|
const params = this._query || this._parsedURL.search;
|
|
42
|
-
this._queryString =
|
|
43
|
-
|
|
44
|
-
|
|
33
|
+
this._queryString =
|
|
34
|
+
typeof params !== 'string'
|
|
35
|
+
? this.serializeQuery(params)
|
|
36
|
+
: params.replace(/^\?/, '');
|
|
45
37
|
}
|
|
46
38
|
return this._queryString;
|
|
47
39
|
}
|
|
48
|
-
get queryParameters() {
|
|
49
|
-
var _a;
|
|
50
|
-
if (!this._queryParameters) {
|
|
51
|
-
this._queryParameters = (0, utils_1.entriesToList)(new URLSearchParams(this.queryString));
|
|
52
|
-
}
|
|
53
|
-
return (_a = this._queryParameters) !== null && _a !== void 0 ? _a : [];
|
|
54
|
-
}
|
|
55
40
|
get query() {
|
|
56
41
|
var _a;
|
|
57
42
|
return (_a = this._query) !== null && _a !== void 0 ? _a : '';
|
|
58
43
|
}
|
|
59
44
|
set query(queryString) {
|
|
60
45
|
this._query = queryString;
|
|
46
|
+
this._queryString = undefined;
|
|
61
47
|
this._parsedURL.search = this.queryString;
|
|
62
|
-
|
|
63
|
-
get headerParameters() {
|
|
64
|
-
var _a, _b;
|
|
65
|
-
if (!((_a = this._headerParameters) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
66
|
-
this._headerParameters = (0, utils_1.entriesToList)(Object.entries(this.headers));
|
|
67
|
-
}
|
|
68
|
-
return (_b = this._headerParameters) !== null && _b !== void 0 ? _b : [];
|
|
48
|
+
this._cachedUrl = undefined;
|
|
69
49
|
}
|
|
70
50
|
get headers() {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
get postData() {
|
|
80
|
-
var _a;
|
|
81
|
-
if (!this._postData && (0, core_2.isPresent)(this.body)) {
|
|
82
|
-
const parsedBody = (_a = tsyringe_1.container
|
|
83
|
-
.resolveAll(body_parsers_1.BodyParser)
|
|
84
|
-
.find(x => x.canParse(this))) === null || _a === void 0 ? void 0 : _a.parse(this);
|
|
85
|
-
if (parsedBody) {
|
|
86
|
-
this.setContentTypeIfUnset(parsedBody.contentType);
|
|
87
|
-
this._postData = {
|
|
88
|
-
text: parsedBody.text,
|
|
89
|
-
params: parsedBody.params,
|
|
90
|
-
mimeType: parsedBody.contentType
|
|
91
|
-
};
|
|
51
|
+
if (this._headers) {
|
|
52
|
+
return this._headers;
|
|
53
|
+
}
|
|
54
|
+
if (!this._parsedHeaders.has('content-type') && this._parsedBody) {
|
|
55
|
+
const contentType = this._parsedBody.type();
|
|
56
|
+
if (contentType) {
|
|
57
|
+
this._parsedHeaders.set('content-type', contentType);
|
|
92
58
|
}
|
|
93
59
|
}
|
|
94
|
-
|
|
60
|
+
this._headers = Object.fromEntries(this._parsedHeaders);
|
|
61
|
+
return this._headers;
|
|
62
|
+
}
|
|
63
|
+
set headers(value) {
|
|
64
|
+
this._parsedHeaders = new Headers(value);
|
|
65
|
+
delete this._headers;
|
|
95
66
|
}
|
|
96
67
|
get body() {
|
|
97
68
|
return this._body;
|
|
98
69
|
}
|
|
99
70
|
set body(value) {
|
|
100
71
|
this._body = value;
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
}
|
|
106
|
-
get httpVersion() {
|
|
107
|
-
const version = this.getHeaderValue('version') || this.getHeaderValue(':version');
|
|
108
|
-
if (version) {
|
|
109
|
-
return version;
|
|
72
|
+
if (value !== undefined) {
|
|
73
|
+
const contentType = this._parsedHeaders.get('content-type');
|
|
74
|
+
const { essence } = contentType ? new util_1.MIMEType(contentType) : {};
|
|
75
|
+
this._parsedBody = new Body_1.Body(value, essence);
|
|
110
76
|
}
|
|
111
|
-
|
|
77
|
+
}
|
|
78
|
+
get serializeQuery() {
|
|
79
|
+
return this._serializeQuery;
|
|
112
80
|
}
|
|
113
81
|
constructor({ url, body, query, headers = {}, serializeQuery, method = models_1.HttpMethod.GET }) {
|
|
114
|
-
this.
|
|
82
|
+
this.defaultSerializeQuery = (params) => new URLSearchParams(params).toString();
|
|
115
83
|
this.url = url;
|
|
116
84
|
this.method = (0, models_1.isHttpMethod)(method) ? method : models_1.HttpMethod.GET;
|
|
117
|
-
this.body = body;
|
|
118
85
|
this.headers = headers;
|
|
119
|
-
this._serializeQuery =
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
}
|
|
123
|
-
toHarRequest() {
|
|
124
|
-
return {
|
|
125
|
-
postData: this.postData,
|
|
126
|
-
headers: [...this.headerParameters],
|
|
127
|
-
method: this.method,
|
|
128
|
-
url: this.url,
|
|
129
|
-
httpVersion: this.httpVersion,
|
|
130
|
-
queryString: [...this.queryParameters],
|
|
131
|
-
cookies: [],
|
|
132
|
-
headersSize: -1,
|
|
133
|
-
bodySize: -1
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
setContentTypeIfUnset(contentType) {
|
|
137
|
-
if (!this.contentType) {
|
|
138
|
-
this.headers = {
|
|
139
|
-
...this.headers,
|
|
140
|
-
'content-type': contentType
|
|
141
|
-
};
|
|
86
|
+
this._serializeQuery = serializeQuery !== null && serializeQuery !== void 0 ? serializeQuery : this.defaultSerializeQuery;
|
|
87
|
+
if (body !== undefined) {
|
|
88
|
+
this.body = body;
|
|
142
89
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
if (!this._headerValues.has(headerName)) {
|
|
146
|
-
this._headerValues.set(headerName, this.computeHeaderValue(headerName));
|
|
90
|
+
if (query) {
|
|
91
|
+
this.query = query;
|
|
147
92
|
}
|
|
148
|
-
return this._headerValues.get(headerName);
|
|
149
93
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
.filter(({ name }) => name.toLowerCase() === normalizedName)
|
|
154
|
-
.map(({ value }) => value);
|
|
155
|
-
if (!values.length) {
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
// Set-Cookie values should be separated by '\n', not comma, otherwise cookies could not be parsed.
|
|
159
|
-
if (normalizedName === 'set-cookie') {
|
|
160
|
-
return values.join('\n');
|
|
161
|
-
}
|
|
162
|
-
return values.join(', ');
|
|
94
|
+
async text() {
|
|
95
|
+
var _a;
|
|
96
|
+
return (_a = this._parsedBody) === null || _a === void 0 ? void 0 : _a.text();
|
|
163
97
|
}
|
|
164
98
|
}
|
|
165
99
|
exports.Target = Target;
|
package/src/target/Target.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Target.js","sourceRoot":"","sources":["../../../../../packages/scan/src/target/Target.ts"],"names":[],"mappings":";;;AAAA,sCAAqD;AACrD,
|
|
1
|
+
{"version":3,"file":"Target.js","sourceRoot":"","sources":["../../../../../packages/scan/src/target/Target.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BodyConverter } from './BodyConverter';
|
|
2
|
+
export declare class ArrayBufferConverter implements BodyConverter<ArrayBuffer | NodeJS.ArrayBufferView> {
|
|
3
|
+
canHandle(data: unknown): data is ArrayBuffer | NodeJS.ArrayBufferView;
|
|
4
|
+
convert(data: ArrayBuffer | NodeJS.ArrayBufferView): Promise<string>;
|
|
5
|
+
getMimeType(_data: ArrayBuffer | NodeJS.ArrayBufferView): string;
|
|
6
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ArrayBufferConverter = void 0;
|
|
4
|
+
class ArrayBufferConverter {
|
|
5
|
+
canHandle(data) {
|
|
6
|
+
return data instanceof ArrayBuffer || ArrayBuffer.isView(data);
|
|
7
|
+
}
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
9
|
+
async convert(data) {
|
|
10
|
+
return new TextDecoder().decode(data);
|
|
11
|
+
}
|
|
12
|
+
getMimeType(_data) {
|
|
13
|
+
return 'application/octet-stream';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.ArrayBufferConverter = ArrayBufferConverter;
|
|
17
|
+
//# sourceMappingURL=ArrayBufferConverter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArrayBufferConverter.js","sourceRoot":"","sources":["../../../../../../packages/scan/src/target/converters/ArrayBufferConverter.ts"],"names":[],"mappings":";;;AAEA,MAAa,oBAAoB;IAGxB,SAAS,CACd,IAAa;QAEb,OAAO,IAAI,YAAY,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IAED,4DAA4D;IACrD,KAAK,CAAC,OAAO,CAClB,IAA0C;QAE1C,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAEM,WAAW,CAAC,KAA2C;QAC5D,OAAO,0BAA0B,CAAC;IACpC,CAAC;CACF;AAnBD,oDAmBC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BodyConverter } from './BodyConverter';
|
|
2
|
+
export declare class AsyncIterableConverter implements BodyConverter<AsyncIterable<Uint8Array>> {
|
|
3
|
+
canHandle(data: unknown): data is AsyncIterable<Uint8Array>;
|
|
4
|
+
convert(data: AsyncIterable<Uint8Array>): Promise<string>;
|
|
5
|
+
getMimeType(): string;
|
|
6
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AsyncIterableConverter = void 0;
|
|
4
|
+
class AsyncIterableConverter {
|
|
5
|
+
canHandle(data) {
|
|
6
|
+
return typeof Object(data)[Symbol.asyncIterator] === 'function';
|
|
7
|
+
}
|
|
8
|
+
async convert(data) {
|
|
9
|
+
const chunks = [];
|
|
10
|
+
for await (const chunk of data) {
|
|
11
|
+
chunks.push(chunk);
|
|
12
|
+
}
|
|
13
|
+
return new TextDecoder().decode(Buffer.concat(chunks));
|
|
14
|
+
}
|
|
15
|
+
getMimeType() {
|
|
16
|
+
return 'application/octet-stream';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.AsyncIterableConverter = AsyncIterableConverter;
|
|
20
|
+
//# sourceMappingURL=AsyncIterableConverter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AsyncIterableConverter.js","sourceRoot":"","sources":["../../../../../../packages/scan/src/target/converters/AsyncIterableConverter.ts"],"names":[],"mappings":";;;AAEA,MAAa,sBAAsB;IAG1B,SAAS,CAAC,IAAa;QAC5B,OAAO,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,UAAU,CAAC;IAClE,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,IAA+B;QAClD,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC;IAEM,WAAW;QAChB,OAAO,0BAA0B,CAAC;IACpC,CAAC;CACF;AAnBD,wDAmBC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BlobConverter = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
5
|
+
class BlobConverter {
|
|
6
|
+
canHandle(data) {
|
|
7
|
+
return (0, utils_1.isBlobLike)(data);
|
|
8
|
+
}
|
|
9
|
+
async convert(data) {
|
|
10
|
+
return new TextDecoder().decode(await data.arrayBuffer());
|
|
11
|
+
}
|
|
12
|
+
getMimeType(data) {
|
|
13
|
+
return data.type || 'application/octet-stream';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.BlobConverter = BlobConverter;
|
|
17
|
+
//# sourceMappingURL=BlobConverter.js.map
|