@sectester/scan 0.37.0 → 0.37.2
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/package.json +1 -1
- package/src/target/Body.d.ts +4 -14
- package/src/target/Body.js +29 -146
- package/src/target/Body.js.map +1 -1
- package/src/target/Target.js +12 -5
- 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/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 -0
- package/src/utils/index.js +7 -0
- 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/package.json
CHANGED
package/src/target/Body.d.ts
CHANGED
|
@@ -1,19 +1,9 @@
|
|
|
1
|
-
export type BodyType = ArrayBuffer | AsyncIterable<Uint8Array> | Blob | FormData | NodeJS.ReadableStream | Iterable<Uint8Array> | NodeJS.ArrayBufferView | URLSearchParams |
|
|
1
|
+
export type BodyType = ArrayBuffer | AsyncIterable<Uint8Array> | Blob | FormData | NodeJS.ReadableStream | Iterable<Uint8Array> | NodeJS.ArrayBufferView | URLSearchParams | unknown | null;
|
|
2
2
|
export declare class Body {
|
|
3
3
|
private readonly data;
|
|
4
|
-
|
|
5
|
-
private static
|
|
6
|
-
|
|
7
|
-
private static fromBlob;
|
|
8
|
-
private static fromFormData;
|
|
9
|
-
private static fromIterable;
|
|
10
|
-
private static fromArrayBufferView;
|
|
11
|
-
private static fromURLSearchParams;
|
|
12
|
-
private static fromReadableStream;
|
|
4
|
+
private readonly mimeType?;
|
|
5
|
+
private static readonly converterRegistry;
|
|
6
|
+
constructor(data: BodyType, mimeType?: string | undefined);
|
|
13
7
|
text(): Promise<string | undefined>;
|
|
14
8
|
type(): string;
|
|
15
|
-
private detectStringMimeType;
|
|
16
|
-
private isJson;
|
|
17
|
-
private isXml;
|
|
18
|
-
private isPlainObject;
|
|
19
9
|
}
|
package/src/target/Body.js
CHANGED
|
@@ -1,165 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Body = void 0;
|
|
4
|
-
const
|
|
5
|
-
const node_crypto_1 = require("node:crypto");
|
|
6
|
-
const node_stream_1 = require("node:stream");
|
|
4
|
+
const converters_1 = require("./converters");
|
|
7
5
|
class Body {
|
|
8
|
-
constructor(data) {
|
|
6
|
+
constructor(data, mimeType) {
|
|
9
7
|
this.data = data;
|
|
8
|
+
this.mimeType = mimeType;
|
|
10
9
|
}
|
|
11
|
-
static fromArrayBuffer(data) {
|
|
12
|
-
return new TextDecoder().decode(data);
|
|
13
|
-
}
|
|
14
|
-
static async fromAsyncIterable(data) {
|
|
15
|
-
const chunks = [];
|
|
16
|
-
for await (const chunk of data) {
|
|
17
|
-
chunks.push(chunk);
|
|
18
|
-
}
|
|
19
|
-
return new TextDecoder().decode(Buffer.concat(chunks));
|
|
20
|
-
}
|
|
21
|
-
static async fromBlob(data) {
|
|
22
|
-
const arrayBuffer = await data.arrayBuffer();
|
|
23
|
-
return new TextDecoder().decode(arrayBuffer);
|
|
24
|
-
}
|
|
25
|
-
static async fromFormData(data) {
|
|
26
|
-
const array = new Uint32Array(10);
|
|
27
|
-
const boundary = (0, utils_1.escape)(`----BrightFormBoundary${(0, node_crypto_1.getRandomValues)(array)}`);
|
|
28
|
-
let formDataString = '';
|
|
29
|
-
for (const [key, value] of data) {
|
|
30
|
-
formDataString += `--${boundary}\r\n`;
|
|
31
|
-
if (typeof value === 'string') {
|
|
32
|
-
formDataString += `content-disposition: form-data; name="${key}"\r\n\r\n`;
|
|
33
|
-
formDataString += `${value}\r\n`;
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
formDataString += `content-disposition: form-data; name="${value.name}"; filename="${value.type}"\r\n`;
|
|
37
|
-
formDataString += `content-type: ${value.type}\r\n\r\n`;
|
|
38
|
-
formDataString += `${await this.fromBlob(value)}\r\n`;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
formDataString += `--${boundary}--\r\n`;
|
|
42
|
-
return formDataString;
|
|
43
|
-
}
|
|
44
|
-
static fromIterable(data) {
|
|
45
|
-
const chunks = [];
|
|
46
|
-
for (const chunk of data) {
|
|
47
|
-
chunks.push(chunk);
|
|
48
|
-
}
|
|
49
|
-
return new TextDecoder().decode(Buffer.concat(chunks));
|
|
50
|
-
}
|
|
51
|
-
static fromArrayBufferView(data) {
|
|
52
|
-
return new TextDecoder().decode(data);
|
|
53
|
-
}
|
|
54
|
-
static fromURLSearchParams(data) {
|
|
55
|
-
return data.toString();
|
|
56
|
-
}
|
|
57
|
-
static async fromReadableStream(data) {
|
|
58
|
-
const chunks = [];
|
|
59
|
-
for await (const chunk of data) {
|
|
60
|
-
chunks.push(Buffer.from(chunk));
|
|
61
|
-
}
|
|
62
|
-
return new TextDecoder().decode(Buffer.concat(chunks));
|
|
63
|
-
}
|
|
64
|
-
// eslint-disable-next-line complexity
|
|
65
10
|
async text() {
|
|
66
|
-
if (
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
if (typeof this.data === 'string') {
|
|
70
|
-
return this.data;
|
|
71
|
-
}
|
|
72
|
-
if (this.data instanceof ArrayBuffer) {
|
|
73
|
-
return Body.fromArrayBuffer(this.data);
|
|
74
|
-
}
|
|
75
|
-
if (this.data instanceof Blob) {
|
|
76
|
-
return Body.fromBlob(this.data);
|
|
77
|
-
}
|
|
78
|
-
if (this.data instanceof FormData) {
|
|
79
|
-
return Body.fromFormData(this.data);
|
|
80
|
-
}
|
|
81
|
-
if (this.data instanceof URLSearchParams) {
|
|
82
|
-
return Body.fromURLSearchParams(this.data);
|
|
83
|
-
}
|
|
84
|
-
if (ArrayBuffer.isView(this.data)) {
|
|
85
|
-
return Body.fromArrayBufferView(this.data);
|
|
86
|
-
}
|
|
87
|
-
if (typeof Object(this.data)[Symbol.iterator] === 'function') {
|
|
88
|
-
return Body.fromIterable(this.data);
|
|
89
|
-
}
|
|
90
|
-
if ((0, node_stream_1.isReadable)(this.data)) {
|
|
91
|
-
return Body.fromReadableStream(this.data);
|
|
92
|
-
}
|
|
93
|
-
if (typeof Object(this.data)[Symbol.asyncIterator] === 'function') {
|
|
94
|
-
return Body.fromAsyncIterable(this.data);
|
|
11
|
+
if (this.data === null) {
|
|
12
|
+
return 'null';
|
|
95
13
|
}
|
|
96
|
-
|
|
97
|
-
|
|
14
|
+
const converter = Body.converterRegistry.getConverter(this.data, this.mimeType);
|
|
15
|
+
if (converter) {
|
|
16
|
+
return converter.convert(this.data, this.mimeType);
|
|
98
17
|
}
|
|
99
|
-
|
|
18
|
+
// Fallback to string conversion for any other types
|
|
19
|
+
return String(this.data);
|
|
100
20
|
}
|
|
101
21
|
type() {
|
|
102
|
-
|
|
22
|
+
if (this.mimeType) {
|
|
23
|
+
return this.mimeType;
|
|
24
|
+
}
|
|
103
25
|
if (this.data === null) {
|
|
104
26
|
return 'text/plain';
|
|
105
27
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
if (this.data instanceof FormData) {
|
|
110
|
-
return 'multipart/form-data';
|
|
111
|
-
}
|
|
112
|
-
if (this.data instanceof URLSearchParams) {
|
|
113
|
-
return 'application/x-www-form-urlencoded';
|
|
114
|
-
}
|
|
115
|
-
if (this.data instanceof Blob) {
|
|
116
|
-
return (_a = this.data.type) !== null && _a !== void 0 ? _a : 'application/octet-stream';
|
|
117
|
-
}
|
|
118
|
-
if (this.isPlainObject(this.data)) {
|
|
119
|
-
return 'application/json';
|
|
28
|
+
const converter = Body.converterRegistry.getConverter(this.data);
|
|
29
|
+
if (converter) {
|
|
30
|
+
return converter.getMimeType(this.data);
|
|
120
31
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
detectStringMimeType(data) {
|
|
124
|
-
const trimmed = data.trim();
|
|
125
|
-
if (this.isJson(trimmed)) {
|
|
126
|
-
return 'application/json';
|
|
127
|
-
}
|
|
128
|
-
if (this.isXml(trimmed)) {
|
|
129
|
-
return 'application/xml';
|
|
130
|
-
}
|
|
131
|
-
return 'text/plain';
|
|
132
|
-
}
|
|
133
|
-
isJson(text) {
|
|
134
|
-
if (!((text.startsWith('{') && text.endsWith('}')) ||
|
|
135
|
-
(text.startsWith('[') && text.endsWith(']')))) {
|
|
136
|
-
return false;
|
|
137
|
-
}
|
|
138
|
-
try {
|
|
139
|
-
JSON.parse(text);
|
|
140
|
-
return true;
|
|
141
|
-
}
|
|
142
|
-
catch {
|
|
143
|
-
return false;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
isXml(text) {
|
|
147
|
-
return (text.startsWith('<?xml') ||
|
|
148
|
-
(text.startsWith('<') &&
|
|
149
|
-
!text.startsWith('<!DOCTYPE html') &&
|
|
150
|
-
!text.startsWith('<!--') &&
|
|
151
|
-
text.includes('</') &&
|
|
152
|
-
text.endsWith('>')));
|
|
153
|
-
}
|
|
154
|
-
isPlainObject(data) {
|
|
155
|
-
return (typeof data === 'object' &&
|
|
156
|
-
data !== null &&
|
|
157
|
-
!(data instanceof ArrayBuffer) &&
|
|
158
|
-
!ArrayBuffer.isView(data) &&
|
|
159
|
-
!(Symbol.iterator in data) &&
|
|
160
|
-
!(Symbol.asyncIterator in data) &&
|
|
161
|
-
!(0, node_stream_1.isReadable)(data));
|
|
32
|
+
// Default type for unknown data
|
|
33
|
+
return '';
|
|
162
34
|
}
|
|
163
35
|
}
|
|
164
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
|
+
]);
|
|
165
48
|
//# sourceMappingURL=Body.js.map
|
package/src/target/Body.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Body.js","sourceRoot":"","sources":["../../../../../packages/scan/src/target/Body.ts"],"names":[],"mappings":";;;AAAA,
|
|
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"}
|
package/src/target/Target.js
CHANGED
|
@@ -4,6 +4,7 @@ exports.Target = void 0;
|
|
|
4
4
|
const models_1 = require("../models");
|
|
5
5
|
const Body_1 = require("./Body");
|
|
6
6
|
const core_1 = require("@har-sdk/core");
|
|
7
|
+
const util_1 = require("util");
|
|
7
8
|
class Target {
|
|
8
9
|
get parsedURL() {
|
|
9
10
|
return this._parsedURL;
|
|
@@ -47,12 +48,16 @@ class Target {
|
|
|
47
48
|
this._cachedUrl = undefined;
|
|
48
49
|
}
|
|
49
50
|
get headers() {
|
|
50
|
-
if (
|
|
51
|
-
|
|
52
|
-
|
|
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);
|
|
53
58
|
}
|
|
54
|
-
this._headers = Object.fromEntries(this._parsedHeaders);
|
|
55
59
|
}
|
|
60
|
+
this._headers = Object.fromEntries(this._parsedHeaders);
|
|
56
61
|
return this._headers;
|
|
57
62
|
}
|
|
58
63
|
set headers(value) {
|
|
@@ -65,7 +70,9 @@ class Target {
|
|
|
65
70
|
set body(value) {
|
|
66
71
|
this._body = value;
|
|
67
72
|
if (value !== undefined) {
|
|
68
|
-
|
|
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);
|
|
69
76
|
}
|
|
70
77
|
}
|
|
71
78
|
get serializeQuery() {
|
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,iCAAwC;AAGxC,wCAA6C;
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlobConverter.js","sourceRoot":"","sources":["../../../../../../packages/scan/src/target/converters/BlobConverter.ts"],"names":[],"mappings":";;;AAAA,uCAAyC;AAGzC,MAAa,aAAa;IACjB,SAAS,CAAC,IAAa;QAC5B,OAAO,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,IAAU;QAC7B,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5D,CAAC;IAEM,WAAW,CAAC,IAAU;QAC3B,OAAO,IAAI,CAAC,IAAI,IAAI,0BAA0B,CAAC;IACjD,CAAC;CACF;AAZD,sCAYC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BodyConverter.js","sourceRoot":"","sources":["../../../../../../packages/scan/src/target/converters/BodyConverter.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConverterRegistry = void 0;
|
|
4
|
+
class ConverterRegistry {
|
|
5
|
+
constructor(converters) {
|
|
6
|
+
this.converters = [];
|
|
7
|
+
this.converters = converters;
|
|
8
|
+
}
|
|
9
|
+
getConverter(data, mimeType) {
|
|
10
|
+
return this.converters.find(converter => converter.canHandle(data, mimeType));
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.ConverterRegistry = ConverterRegistry;
|
|
14
|
+
//# sourceMappingURL=ConverterRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConverterRegistry.js","sourceRoot":"","sources":["../../../../../../packages/scan/src/target/converters/ConverterRegistry.ts"],"names":[],"mappings":";;;AAEA,MAAa,iBAAiB;IAG5B,YAAY,UAAoC;QAF/B,eAAU,GAA6B,EAAE,CAAC;QAGzD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAEM,YAAY,CACjB,IAAa,EACb,QAAiB;QAEjB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CACtC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CACpC,CAAC;IACJ,CAAC;CACF;AAfD,8CAeC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BodyConverter } from './BodyConverter';
|
|
2
|
+
export declare class FormDataConverter implements BodyConverter<FormData> {
|
|
3
|
+
canHandle(data: unknown): data is FormData;
|
|
4
|
+
convert(data: FormData): Promise<string>;
|
|
5
|
+
getMimeType(_data: FormData): string;
|
|
6
|
+
private convertBlob;
|
|
7
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FormDataConverter = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
5
|
+
const normalize_linefeeds_1 = require("../../utils/normalize-linefeeds");
|
|
6
|
+
const node_crypto_1 = require("node:crypto");
|
|
7
|
+
class FormDataConverter {
|
|
8
|
+
canHandle(data) {
|
|
9
|
+
return data instanceof FormData;
|
|
10
|
+
}
|
|
11
|
+
async convert(data) {
|
|
12
|
+
const array = new Uint32Array(10);
|
|
13
|
+
const boundary = (0, utils_1.escape)(`----BrightFormBoundary${(0, node_crypto_1.getRandomValues)(array)}`);
|
|
14
|
+
let formDataString = '';
|
|
15
|
+
for (const [key, value] of data) {
|
|
16
|
+
formDataString += `--${boundary}\r\n`;
|
|
17
|
+
if (typeof value === 'string') {
|
|
18
|
+
formDataString += `content-disposition: form-data; name="${(0, utils_1.escape)((0, normalize_linefeeds_1.normalizeLinefeeds)(key))}"\r\n\r\n`;
|
|
19
|
+
formDataString += `${value}\r\n`;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
formDataString += `content-disposition: form-data; name="${(0, utils_1.escape)((0, normalize_linefeeds_1.normalizeLinefeeds)(key))}"; filename="${(0, utils_1.escape)(value.type)}"\r\n`;
|
|
23
|
+
formDataString += `content-type: ${value.type || 'application/octet-stream'}\r\n\r\n`;
|
|
24
|
+
formDataString += `${await this.convertBlob(value)}\r\n`;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
formDataString += `--${boundary}--\r\n`;
|
|
28
|
+
return formDataString;
|
|
29
|
+
}
|
|
30
|
+
getMimeType(_data) {
|
|
31
|
+
return 'multipart/form-data';
|
|
32
|
+
}
|
|
33
|
+
async convertBlob(blob) {
|
|
34
|
+
const arrayBuffer = await blob.arrayBuffer();
|
|
35
|
+
return new TextDecoder().decode(arrayBuffer);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.FormDataConverter = FormDataConverter;
|
|
39
|
+
//# sourceMappingURL=FormDataConverter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormDataConverter.js","sourceRoot":"","sources":["../../../../../../packages/scan/src/target/converters/FormDataConverter.ts"],"names":[],"mappings":";;;AACA,uCAAqC;AACrC,yEAAqE;AACrE,6CAA8C;AAE9C,MAAa,iBAAiB;IACrB,SAAS,CAAC,IAAa;QAC5B,OAAO,IAAI,YAAY,QAAQ,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,IAAc;QACjC,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAA,cAAM,EAAC,yBAAyB,IAAA,6BAAe,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3E,IAAI,cAAc,GAAG,EAAE,CAAC;QAExB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;YAChC,cAAc,IAAI,KAAK,QAAQ,MAAM,CAAC;YACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,cAAc,IAAI,yCAAyC,IAAA,cAAM,EAAC,IAAA,wCAAkB,EAAC,GAAG,CAAC,CAAC,WAAW,CAAC;gBACtG,cAAc,IAAI,GAAG,KAAK,MAAM,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,cAAc,IAAI,yCAAyC,IAAA,cAAM,EAAC,IAAA,wCAAkB,EAAC,GAAG,CAAC,CAAC,gBAAgB,IAAA,cAAM,EAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;gBACpI,cAAc,IAAI,iBAAiB,KAAK,CAAC,IAAI,IAAI,0BAA0B,UAAU,CAAC;gBACtF,cAAc,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,cAAc,IAAI,KAAK,QAAQ,QAAQ,CAAC;QAExC,OAAO,cAAc,CAAC;IACxB,CAAC;IAEM,WAAW,CAAC,KAAe;QAChC,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,IAAU;QAClC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAE7C,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;CACF;AApCD,8CAoCC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BodyConverter } from './BodyConverter';
|
|
2
|
+
export declare class IterableConverter implements BodyConverter<Iterable<Uint8Array>> {
|
|
3
|
+
canHandle(data: unknown): data is Iterable<Uint8Array>;
|
|
4
|
+
convert(data: Iterable<Uint8Array>): Promise<string>;
|
|
5
|
+
getMimeType(_: Iterable<Uint8Array>): string;
|
|
6
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IterableConverter = void 0;
|
|
4
|
+
class IterableConverter {
|
|
5
|
+
canHandle(data) {
|
|
6
|
+
return typeof Object(data)[Symbol.iterator] === 'function';
|
|
7
|
+
}
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
9
|
+
async convert(data) {
|
|
10
|
+
const chunks = [];
|
|
11
|
+
for await (const chunk of data) {
|
|
12
|
+
chunks.push(chunk);
|
|
13
|
+
}
|
|
14
|
+
return new TextDecoder().decode(Buffer.concat(chunks));
|
|
15
|
+
}
|
|
16
|
+
getMimeType(_) {
|
|
17
|
+
return 'application/octet-stream';
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.IterableConverter = IterableConverter;
|
|
21
|
+
//# sourceMappingURL=IterableConverter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IterableConverter.js","sourceRoot":"","sources":["../../../../../../packages/scan/src/target/converters/IterableConverter.ts"],"names":[],"mappings":";;;AAEA,MAAa,iBAAiB;IACrB,SAAS,CAAC,IAAa;QAC5B,OAAO,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,UAAU,CAAC;IAC7D,CAAC;IAED,4DAA4D;IACrD,KAAK,CAAC,OAAO,CAAC,IAA0B;QAC7C,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,CAAC,CAAuB;QACxC,OAAO,0BAA0B,CAAC;IACpC,CAAC;CACF;AAlBD,8CAkBC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BodyConverter } from './BodyConverter';
|
|
2
|
+
export declare class JsonConverter implements BodyConverter<unknown> {
|
|
3
|
+
canHandle(data: unknown, mimeType?: string): data is unknown;
|
|
4
|
+
convert(data: unknown): Promise<string>;
|
|
5
|
+
getMimeType(_data: unknown): string;
|
|
6
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonConverter = void 0;
|
|
4
|
+
const is_json_serializable_1 = require("../../utils/is-json-serializable");
|
|
5
|
+
const is_primitive_1 = require("../../utils/is-primitive");
|
|
6
|
+
class JsonConverter {
|
|
7
|
+
canHandle(data, mimeType) {
|
|
8
|
+
if (mimeType === 'application/json')
|
|
9
|
+
return true;
|
|
10
|
+
return (0, is_json_serializable_1.isJsonSerializable)(data) && !(0, is_primitive_1.isPrimitive)(data);
|
|
11
|
+
}
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
13
|
+
async convert(data) {
|
|
14
|
+
return JSON.stringify(data);
|
|
15
|
+
}
|
|
16
|
+
getMimeType(_data) {
|
|
17
|
+
return 'application/json';
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.JsonConverter = JsonConverter;
|
|
21
|
+
//# sourceMappingURL=JsonConverter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonConverter.js","sourceRoot":"","sources":["../../../../../../packages/scan/src/target/converters/JsonConverter.ts"],"names":[],"mappings":";;;AACA,2EAAsE;AACtE,2DAAuD;AAEvD,MAAa,aAAa;IACjB,SAAS,CAAC,IAAa,EAAE,QAAiB;QAC/C,IAAI,QAAQ,KAAK,kBAAkB;YAAE,OAAO,IAAI,CAAC;QAEjD,OAAO,IAAA,yCAAkB,EAAC,IAAI,CAAC,IAAI,CAAC,IAAA,0BAAW,EAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,4DAA4D;IACrD,KAAK,CAAC,OAAO,CAAC,IAAa;QAChC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAEM,WAAW,CAAC,KAAc;QAC/B,OAAO,kBAAkB,CAAC;IAC5B,CAAC;CACF;AAfD,sCAeC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BodyConverter } from './BodyConverter';
|
|
2
|
+
export declare class StreamConverter implements BodyConverter<NodeJS.ReadableStream> {
|
|
3
|
+
canHandle(data: unknown): data is NodeJS.ReadableStream;
|
|
4
|
+
convert(data: NodeJS.ReadableStream): Promise<string>;
|
|
5
|
+
getMimeType(_: NodeJS.ReadableStream): string;
|
|
6
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StreamConverter = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
5
|
+
class StreamConverter {
|
|
6
|
+
canHandle(data) {
|
|
7
|
+
return (0, utils_1.isStream)(data);
|
|
8
|
+
}
|
|
9
|
+
async convert(data) {
|
|
10
|
+
const chunks = [];
|
|
11
|
+
for await (const chunk of data) {
|
|
12
|
+
chunks.push(Buffer.from(chunk));
|
|
13
|
+
}
|
|
14
|
+
return new TextDecoder().decode(Buffer.concat(chunks));
|
|
15
|
+
}
|
|
16
|
+
getMimeType(_) {
|
|
17
|
+
return 'application/octet-stream';
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.StreamConverter = StreamConverter;
|
|
21
|
+
//# sourceMappingURL=StreamConverter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamConverter.js","sourceRoot":"","sources":["../../../../../../packages/scan/src/target/converters/StreamConverter.ts"],"names":[],"mappings":";;;AAAA,uCAAuC;AAGvC,MAAa,eAAe;IACnB,SAAS,CAAC,IAAa;QAC5B,OAAO,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,IAA2B;QAC9C,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC;IAEM,WAAW,CAAC,CAAwB;QACzC,OAAO,0BAA0B,CAAC;IACpC,CAAC;CACF;AAjBD,0CAiBC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StringConverter = void 0;
|
|
4
|
+
const is_json_1 = require("../../utils/is-json");
|
|
5
|
+
const is_xml_1 = require("../../utils/is-xml");
|
|
6
|
+
class StringConverter {
|
|
7
|
+
canHandle(data) {
|
|
8
|
+
return typeof data === 'string';
|
|
9
|
+
}
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
11
|
+
async convert(data) {
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
getMimeType(data) {
|
|
15
|
+
const trimmed = data.trim();
|
|
16
|
+
if ((0, is_json_1.isJson)(trimmed)) {
|
|
17
|
+
return 'application/json';
|
|
18
|
+
}
|
|
19
|
+
if ((0, is_xml_1.isXml)(trimmed)) {
|
|
20
|
+
return 'application/xml';
|
|
21
|
+
}
|
|
22
|
+
return 'text/plain';
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.StringConverter = StringConverter;
|
|
26
|
+
//# sourceMappingURL=StringConverter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StringConverter.js","sourceRoot":"","sources":["../../../../../../packages/scan/src/target/converters/StringConverter.ts"],"names":[],"mappings":";;;AACA,iDAA6C;AAC7C,+CAA2C;AAE3C,MAAa,eAAe;IACnB,SAAS,CAAC,IAAa;QAC5B,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC;IAClC,CAAC;IAED,4DAA4D;IACrD,KAAK,CAAC,OAAO,CAAC,IAAY;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,WAAW,CAAC,IAAY;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE5B,IAAI,IAAA,gBAAM,EAAC,OAAO,CAAC,EAAE,CAAC;YACpB,OAAO,kBAAkB,CAAC;QAC5B,CAAC;QAED,IAAI,IAAA,cAAK,EAAC,OAAO,CAAC,EAAE,CAAC;YACnB,OAAO,iBAAiB,CAAC;QAC3B,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAvBD,0CAuBC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BodyConverter } from './BodyConverter';
|
|
2
|
+
export declare class URLSearchParamsConverter implements BodyConverter<URLSearchParams> {
|
|
3
|
+
canHandle(data: unknown): data is URLSearchParams;
|
|
4
|
+
convert(data: URLSearchParams): Promise<string>;
|
|
5
|
+
getMimeType(_data: URLSearchParams): string;
|
|
6
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.URLSearchParamsConverter = void 0;
|
|
4
|
+
class URLSearchParamsConverter {
|
|
5
|
+
canHandle(data) {
|
|
6
|
+
return data instanceof URLSearchParams;
|
|
7
|
+
}
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
9
|
+
async convert(data) {
|
|
10
|
+
return data.toString();
|
|
11
|
+
}
|
|
12
|
+
getMimeType(_data) {
|
|
13
|
+
return 'application/x-www-form-urlencoded';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.URLSearchParamsConverter = URLSearchParamsConverter;
|
|
17
|
+
//# sourceMappingURL=URLSearchParamsConverter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"URLSearchParamsConverter.js","sourceRoot":"","sources":["../../../../../../packages/scan/src/target/converters/URLSearchParamsConverter.ts"],"names":[],"mappings":";;;AAEA,MAAa,wBAAwB;IAG5B,SAAS,CAAC,IAAa;QAC5B,OAAO,IAAI,YAAY,eAAe,CAAC;IACzC,CAAC;IAED,4DAA4D;IACrD,KAAK,CAAC,OAAO,CAAC,IAAqB;QACxC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAEM,WAAW,CAAC,KAAsB;QACvC,OAAO,mCAAmC,CAAC;IAC7C,CAAC;CACF;AAfD,4DAeC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './BodyConverter';
|
|
2
|
+
export * from './ArrayBufferConverter';
|
|
3
|
+
export * from './FormDataConverter';
|
|
4
|
+
export * from './JsonConverter';
|
|
5
|
+
export * from './StringConverter';
|
|
6
|
+
export * from './ConverterRegistry';
|
|
7
|
+
export * from './URLSearchParamsConverter';
|
|
8
|
+
export * from './BlobConverter';
|
|
9
|
+
export * from './IterableConverter';
|
|
10
|
+
export * from './AsyncIterableConverter';
|
|
11
|
+
export * from './StreamConverter';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./BodyConverter"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./ArrayBufferConverter"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./FormDataConverter"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./JsonConverter"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./StringConverter"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./ConverterRegistry"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./URLSearchParamsConverter"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./BlobConverter"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./IterableConverter"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./AsyncIterableConverter"), exports);
|
|
14
|
+
tslib_1.__exportStar(require("./StreamConverter"), exports);
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/scan/src/target/converters/index.ts"],"names":[],"mappings":";;;AAAA,0DAAgC;AAChC,iEAAuC;AACvC,8DAAoC;AACpC,0DAAgC;AAChC,4DAAkC;AAClC,8DAAoC;AACpC,qEAA2C;AAC3C,0DAAgC;AAChC,8DAAoC;AACpC,mEAAyC;AACzC,4DAAkC"}
|
package/src/utils/escape.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const escape: (str: string
|
|
1
|
+
export declare const escape: (str: string) => string;
|
package/src/utils/escape.js
CHANGED
|
@@ -1,19 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.escape = void 0;
|
|
4
|
-
const escape = (str
|
|
5
|
-
const foundChar = [...chars].some((_, i) => str.indexOf(chars.charAt(i)) !== -1);
|
|
6
|
-
if (!foundChar) {
|
|
7
|
-
return str;
|
|
8
|
-
}
|
|
9
|
-
let result = '';
|
|
10
|
-
for (let j = 0; j < str.length; ++j) {
|
|
11
|
-
if (chars.indexOf(str.charAt(j)) !== -1) {
|
|
12
|
-
result += '\\';
|
|
13
|
-
}
|
|
14
|
-
result += str.charAt(j);
|
|
15
|
-
}
|
|
16
|
-
return result;
|
|
17
|
-
};
|
|
4
|
+
const escape = (str) => str.replace(/\n/g, '%0A').replace(/\r/g, '%0D').replace(/"/g, '%22');
|
|
18
5
|
exports.escape = escape;
|
|
19
6
|
//# sourceMappingURL=escape.js.map
|
package/src/utils/escape.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"escape.js","sourceRoot":"","sources":["../../../../../packages/scan/src/utils/escape.ts"],"names":[],"mappings":";;;AAAO,MAAM,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"escape.js","sourceRoot":"","sources":["../../../../../packages/scan/src/utils/escape.ts"],"names":[],"mappings":";;;AAAO,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE,CACpC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAD1D,QAAA,MAAM,UACoD"}
|
package/src/utils/index.d.ts
CHANGED
package/src/utils/index.js
CHANGED
|
@@ -2,4 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./escape"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./is-json-serializable"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./is-stream"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./normalize-linefeeds"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./is-blob"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./is-json"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./is-xml"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./is-primitive"), exports);
|
|
5
12
|
//# sourceMappingURL=index.js.map
|
package/src/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/scan/src/utils/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/scan/src/utils/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,iEAAuC;AACvC,sDAA4B;AAC5B,gEAAsC;AACtC,oDAA0B;AAC1B,oDAA0B;AAC1B,mDAAyB;AACzB,yDAA+B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const isBlobLike: (object: unknown) => object is Blob;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isBlobLike = void 0;
|
|
4
|
+
const isBlobLike = (object) => (Blob && object instanceof Blob) ||
|
|
5
|
+
(!!object &&
|
|
6
|
+
typeof object === 'object' &&
|
|
7
|
+
(typeof object.stream === 'function' ||
|
|
8
|
+
typeof object.arrayBuffer === 'function') &&
|
|
9
|
+
/^(Blob|File)$/.test(object[Symbol.toStringTag]));
|
|
10
|
+
exports.isBlobLike = isBlobLike;
|
|
11
|
+
//# sourceMappingURL=is-blob.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-blob.js","sourceRoot":"","sources":["../../../../../packages/scan/src/utils/is-blob.ts"],"names":[],"mappings":";;;AAAO,MAAM,UAAU,GAAG,CAAC,MAAe,EAAkB,EAAE,CAC5D,CAAC,IAAI,IAAI,MAAM,YAAY,IAAI,CAAC;IAChC,CAAC,CAAC,CAAC,MAAM;QACP,OAAO,MAAM,KAAK,QAAQ;QAC1B,CAAC,OAAQ,MAAc,CAAC,MAAM,KAAK,UAAU;YAC3C,OAAQ,MAAc,CAAC,WAAW,KAAK,UAAU,CAAC;QACpD,eAAe,CAAC,IAAI,CAAE,MAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AANlD,QAAA,UAAU,cAMwC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const isJsonSerializable: (data: unknown) => boolean;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isJsonSerializable = void 0;
|
|
4
|
+
const isJsonSerializable = (data) => {
|
|
5
|
+
try {
|
|
6
|
+
const serialized = JSON.stringify(data);
|
|
7
|
+
// Check it's not just an empty object (which Maps/Sets would produce)
|
|
8
|
+
if (serialized === '{}' &&
|
|
9
|
+
Object.prototype.toString.call(data) !== '[object Object]') {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
exports.isJsonSerializable = isJsonSerializable;
|
|
19
|
+
//# sourceMappingURL=is-json-serializable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-json-serializable.js","sourceRoot":"","sources":["../../../../../packages/scan/src/utils/is-json-serializable.ts"],"names":[],"mappings":";;;AAAO,MAAM,kBAAkB,GAAG,CAAC,IAAa,EAAW,EAAE;IAC3D,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACxC,sEAAsE;QACtE,IACE,UAAU,KAAK,IAAI;YACnB,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,iBAAiB,EAC1D,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAfW,QAAA,kBAAkB,sBAe7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const isJson: (text: string) => boolean;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isJson = void 0;
|
|
4
|
+
const isJson = (text) => {
|
|
5
|
+
if (!((text.startsWith('{') && text.endsWith('}')) ||
|
|
6
|
+
(text.startsWith('[') && text.endsWith(']')))) {
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
try {
|
|
10
|
+
JSON.parse(text);
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
exports.isJson = isJson;
|
|
18
|
+
//# sourceMappingURL=is-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-json.js","sourceRoot":"","sources":["../../../../../packages/scan/src/utils/is-json.ts"],"names":[],"mappings":";;;AAAO,MAAM,MAAM,GAAG,CAAC,IAAY,EAAW,EAAE;IAC9C,IACE,CAAC,CACC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5C,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAC7C,EACD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEjB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAjBW,QAAA,MAAM,UAiBjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const isPrimitive: (value: unknown) => boolean;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isPrimitive = void 0;
|
|
4
|
+
const isPrimitive = (value) => typeof value === 'string' ||
|
|
5
|
+
typeof value === 'number' ||
|
|
6
|
+
typeof value === 'boolean' ||
|
|
7
|
+
value === null ||
|
|
8
|
+
value === undefined;
|
|
9
|
+
exports.isPrimitive = isPrimitive;
|
|
10
|
+
//# sourceMappingURL=is-primitive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-primitive.js","sourceRoot":"","sources":["../../../../../packages/scan/src/utils/is-primitive.ts"],"names":[],"mappings":";;;AAAO,MAAM,WAAW,GAAG,CAAC,KAAc,EAAW,EAAE,CACrD,OAAO,KAAK,KAAK,QAAQ;IACzB,OAAO,KAAK,KAAK,QAAQ;IACzB,OAAO,KAAK,KAAK,SAAS;IAC1B,KAAK,KAAK,IAAI;IACd,KAAK,KAAK,SAAS,CAAC;AALT,QAAA,WAAW,eAKF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const isStream: (obj: unknown) => obj is NodeJS.ReadableStream;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-stream.js","sourceRoot":"","sources":["../../../../../packages/scan/src/utils/is-stream.ts"],"names":[],"mappings":";;;AAAO,MAAM,QAAQ,GAAG,CAAC,GAAY,EAAgC,EAAE,CACrE,CAAC,CAAC,GAAG,IAAI,OAAQ,GAA6B,CAAC,IAAI,KAAK,UAAU,CAAC;AADxD,QAAA,QAAQ,YACgD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const isXml: (text: string) => boolean;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isXml = void 0;
|
|
4
|
+
const isXml = (text) => text.startsWith('<?xml') ||
|
|
5
|
+
(text.startsWith('<') &&
|
|
6
|
+
!text.startsWith('<!DOCTYPE html') &&
|
|
7
|
+
!text.startsWith('<!--') &&
|
|
8
|
+
(text.includes('</') || text.includes('/>')) &&
|
|
9
|
+
text.endsWith('>'));
|
|
10
|
+
exports.isXml = isXml;
|
|
11
|
+
//# sourceMappingURL=is-xml.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-xml.js","sourceRoot":"","sources":["../../../../../packages/scan/src/utils/is-xml.ts"],"names":[],"mappings":";;;AAAO,MAAM,KAAK,GAAG,CAAC,IAAY,EAAW,EAAE,CAC7C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;IACxB,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QACnB,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;QAClC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QACxB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AANX,QAAA,KAAK,SAMM"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const normalizeLinefeeds: (value: string) => string;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeLinefeeds = void 0;
|
|
4
|
+
const normalizeLinefeeds = (value) => value.replace(/\r?\n|\r/g, '\r\n');
|
|
5
|
+
exports.normalizeLinefeeds = normalizeLinefeeds;
|
|
6
|
+
//# sourceMappingURL=normalize-linefeeds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-linefeeds.js","sourceRoot":"","sources":["../../../../../packages/scan/src/utils/normalize-linefeeds.ts"],"names":[],"mappings":";;;AAAO,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAE,EAAE,CAClD,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AADxB,QAAA,kBAAkB,sBACM"}
|