@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.
Files changed (114) hide show
  1. package/README.md +4 -5
  2. package/package.json +1 -1
  3. package/src/DefaultDiscoveries.js +1 -2
  4. package/src/DefaultDiscoveries.js.map +1 -1
  5. package/src/DefaultScans.d.ts +0 -4
  6. package/src/DefaultScans.js +0 -24
  7. package/src/DefaultScans.js.map +1 -1
  8. package/src/Scans.d.ts +0 -4
  9. package/src/Scans.js.map +1 -1
  10. package/src/target/Body.d.ts +9 -0
  11. package/src/target/Body.js +48 -0
  12. package/src/target/Body.js.map +1 -0
  13. package/src/target/HeadersType.d.ts +1 -0
  14. package/src/target/HeadersType.js +3 -0
  15. package/src/target/HeadersType.js.map +1 -0
  16. package/src/target/QueryParamsType.d.ts +1 -0
  17. package/src/target/QueryParamsType.js +3 -0
  18. package/src/target/QueryParamsType.js.map +1 -0
  19. package/src/target/Target.d.ts +19 -26
  20. package/src/target/Target.js +43 -109
  21. package/src/target/Target.js.map +1 -1
  22. package/src/target/converters/ArrayBufferConverter.d.ts +6 -0
  23. package/src/target/converters/ArrayBufferConverter.js +17 -0
  24. package/src/target/converters/ArrayBufferConverter.js.map +1 -0
  25. package/src/target/converters/AsyncIterableConverter.d.ts +6 -0
  26. package/src/target/converters/AsyncIterableConverter.js +20 -0
  27. package/src/target/converters/AsyncIterableConverter.js.map +1 -0
  28. package/src/target/converters/BlobConverter.d.ts +6 -0
  29. package/src/target/converters/BlobConverter.js +17 -0
  30. package/src/target/converters/BlobConverter.js.map +1 -0
  31. package/src/target/converters/BodyConverter.d.ts +5 -0
  32. package/src/target/converters/BodyConverter.js +3 -0
  33. package/src/target/converters/BodyConverter.js.map +1 -0
  34. package/src/target/converters/ConverterRegistry.d.ts +6 -0
  35. package/src/target/converters/ConverterRegistry.js +14 -0
  36. package/src/target/converters/ConverterRegistry.js.map +1 -0
  37. package/src/target/converters/FormDataConverter.d.ts +7 -0
  38. package/src/target/converters/FormDataConverter.js +39 -0
  39. package/src/target/converters/FormDataConverter.js.map +1 -0
  40. package/src/target/converters/IterableConverter.d.ts +6 -0
  41. package/src/target/converters/IterableConverter.js +21 -0
  42. package/src/target/converters/IterableConverter.js.map +1 -0
  43. package/src/target/converters/JsonConverter.d.ts +6 -0
  44. package/src/target/converters/JsonConverter.js +21 -0
  45. package/src/target/converters/JsonConverter.js.map +1 -0
  46. package/src/target/converters/StreamConverter.d.ts +6 -0
  47. package/src/target/converters/StreamConverter.js +21 -0
  48. package/src/target/converters/StreamConverter.js.map +1 -0
  49. package/src/target/converters/StringConverter.d.ts +6 -0
  50. package/src/target/converters/StringConverter.js +26 -0
  51. package/src/target/converters/StringConverter.js.map +1 -0
  52. package/src/target/converters/URLSearchParamsConverter.d.ts +6 -0
  53. package/src/target/converters/URLSearchParamsConverter.js +17 -0
  54. package/src/target/converters/URLSearchParamsConverter.js.map +1 -0
  55. package/src/target/converters/index.d.ts +11 -0
  56. package/src/target/converters/index.js +15 -0
  57. package/src/target/converters/index.js.map +1 -0
  58. package/src/target/index.d.ts +3 -1
  59. package/src/target/index.js +3 -1
  60. package/src/target/index.js.map +1 -1
  61. package/src/utils/escape.d.ts +1 -1
  62. package/src/utils/escape.js +1 -14
  63. package/src/utils/escape.js.map +1 -1
  64. package/src/utils/index.d.ts +7 -1
  65. package/src/utils/index.js +7 -1
  66. package/src/utils/index.js.map +1 -1
  67. package/src/utils/is-blob.d.ts +1 -0
  68. package/src/utils/is-blob.js +11 -0
  69. package/src/utils/is-blob.js.map +1 -0
  70. package/src/utils/is-json-serializable.d.ts +1 -0
  71. package/src/utils/is-json-serializable.js +19 -0
  72. package/src/utils/is-json-serializable.js.map +1 -0
  73. package/src/utils/is-json.d.ts +1 -0
  74. package/src/utils/is-json.js +18 -0
  75. package/src/utils/is-json.js.map +1 -0
  76. package/src/utils/is-primitive.d.ts +1 -0
  77. package/src/utils/is-primitive.js +10 -0
  78. package/src/utils/is-primitive.js.map +1 -0
  79. package/src/utils/is-stream.d.ts +1 -0
  80. package/src/utils/is-stream.js +6 -0
  81. package/src/utils/is-stream.js.map +1 -0
  82. package/src/utils/is-xml.d.ts +1 -0
  83. package/src/utils/is-xml.js +11 -0
  84. package/src/utils/is-xml.js.map +1 -0
  85. package/src/utils/normalize-linefeeds.d.ts +1 -0
  86. package/src/utils/normalize-linefeeds.js +6 -0
  87. package/src/utils/normalize-linefeeds.js.map +1 -0
  88. package/src/target/body-parsers/BinaryBodyParser.d.ts +0 -6
  89. package/src/target/body-parsers/BinaryBodyParser.js +0 -14
  90. package/src/target/body-parsers/BinaryBodyParser.js.map +0 -1
  91. package/src/target/body-parsers/BodyParser.d.ts +0 -12
  92. package/src/target/body-parsers/BodyParser.js +0 -5
  93. package/src/target/body-parsers/BodyParser.js.map +0 -1
  94. package/src/target/body-parsers/FormDataBodyParser.d.ts +0 -9
  95. package/src/target/body-parsers/FormDataBodyParser.js +0 -63
  96. package/src/target/body-parsers/FormDataBodyParser.js.map +0 -1
  97. package/src/target/body-parsers/JsonBodyParser.d.ts +0 -7
  98. package/src/target/body-parsers/JsonBodyParser.js +0 -24
  99. package/src/target/body-parsers/JsonBodyParser.js.map +0 -1
  100. package/src/target/body-parsers/TextBodyParser.d.ts +0 -6
  101. package/src/target/body-parsers/TextBodyParser.js +0 -15
  102. package/src/target/body-parsers/TextBodyParser.js.map +0 -1
  103. package/src/target/body-parsers/UrlEncodedBodyParser.d.ts +0 -7
  104. package/src/target/body-parsers/UrlEncodedBodyParser.js +0 -25
  105. package/src/target/body-parsers/UrlEncodedBodyParser.js.map +0 -1
  106. package/src/target/body-parsers/index.d.ts +0 -2
  107. package/src/target/body-parsers/index.js +0 -6
  108. package/src/target/body-parsers/index.js.map +0 -1
  109. package/src/target/body-parsers/register.d.ts +0 -1
  110. package/src/target/body-parsers/register.js +0 -26
  111. package/src/target/body-parsers/register.js.map +0 -1
  112. package/src/utils/entries-to-list.d.ts +0 -4
  113. package/src/utils/entries-to-list.js +0 -10
  114. 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: `string | URLSearchParams | Record<string, string | string[]>`
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, such as [form-data](https://www.npmjs.com/package/form-data), as request body as well:
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sectester/scan",
3
- "version": "0.36.2",
3
+ "version": "0.37.1",
4
4
  "description": "The package defines a simple public API to manage scans and their expectations.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -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: (_a = target.postData) === null || _a === void 0 ? void 0 : _a.text
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;;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,MAAA,MAAM,CAAC,QAAQ,0CAAE,IAAI;iBAC5B;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"}
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"}
@@ -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
  }
@@ -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([
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultScans.js","sourceRoot":"","sources":["../../../../packages/scan/src/DefaultScans.ts"],"names":[],"mappings":"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"}
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":";;;AAoBa,QAAA,KAAK,GAAkB,MAAM,CAAC,OAAO,CAAC,CAAC"}
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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=HeadersType.js.map
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=QueryParamsType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryParamsType.js","sourceRoot":"","sources":["../../../../../packages/scan/src/target/QueryParamsType.ts"],"names":[],"mappings":""}
@@ -1,47 +1,40 @@
1
1
  import { HttpMethod } from '../models';
2
- import { Header, PostData, QueryString, Request } from '@har-sdk/core';
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?: URLSearchParams | Record<string, string | string[]> | string;
6
- body?: unknown;
7
+ query?: QueryParamsType;
8
+ body?: BodyType;
7
9
  method?: HttpMethod | string;
8
- headers?: Record<string, string | string[]>;
9
- serializeQuery?(params: URLSearchParams | Record<string, string | string[]>): string;
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 _url?;
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: HttpMethod);
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 query(): URLSearchParams | Record<string, string | string[]> | string;
24
+ get queryString(): string;
25
+ get query(): QueryParamsType;
28
26
  private set query(value);
29
- private _headerValues;
30
- private _headerParameters?;
31
- get headerParameters(): Header[];
27
+ private _parsedHeaders;
32
28
  private _headers?;
33
- get headers(): Record<string, string | string[]>;
29
+ get headers(): HeadersType;
34
30
  private set headers(value);
35
- private _postData;
36
- get postData(): PostData | undefined;
37
31
  private _body?;
38
- get body(): unknown;
32
+ private _parsedBody?;
33
+ get body(): BodyType | undefined;
39
34
  private set body(value);
40
- get contentType(): string | undefined;
41
- get httpVersion(): string;
35
+ private readonly _serializeQuery;
36
+ get serializeQuery(): (params: QueryParamsType) => string;
42
37
  constructor({ url, body, query, headers, serializeQuery, method }: TargetOptions);
43
- toHarRequest(): Request;
44
- private setContentTypeIfUnset;
45
- private getHeaderValue;
46
- private computeHeaderValue;
38
+ text(): Promise<string | undefined>;
39
+ private readonly defaultSerializeQuery;
47
40
  }
@@ -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 utils_1 = require("../utils");
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 core_2 = require("@sectester/core");
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._url) {
20
- this._url = (0, url_1.format)(this._parsedURL, {
21
- fragment: false
22
- });
13
+ if (!this._cachedUrl) {
14
+ this._cachedUrl = this._parsedURL.toString();
23
15
  }
24
- return this._url;
16
+ return this._cachedUrl;
25
17
  }
26
18
  set url(value) {
27
19
  this._parsedURL = new URL((0, core_1.normalizeUrl)(value));
28
- delete this._url;
29
- delete this._query;
30
- delete this._queryString;
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 = !(0, core_2.isString)(params)
43
- ? this.serializeQuery(params)
44
- : params.replace(/^\?/, '');
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
- var _a;
72
- return (_a = this._headers) !== null && _a !== void 0 ? _a : {};
73
- }
74
- set headers(headers) {
75
- this._headers = headers;
76
- this._headerValues.clear();
77
- delete this._headerParameters;
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
- return this._postData;
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
- delete this._postData;
102
- }
103
- get contentType() {
104
- return this.getHeaderValue('content-type');
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
- return 'HTTP/0.9';
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._headerValues = new Map();
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
- serializeQuery !== null && serializeQuery !== void 0 ? serializeQuery : ((params) => new URLSearchParams(params).toString());
121
- this.query = query !== null && query !== void 0 ? query : '';
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
- getHeaderValue(headerName) {
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
- computeHeaderValue(headerName) {
151
- const normalizedName = headerName.toLowerCase();
152
- const values = this.headerParameters
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;
@@ -1 +1 @@
1
- {"version":3,"file":"Target.js","sourceRoot":"","sources":["../../../../../packages/scan/src/target/Target.ts"],"names":[],"mappings":"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"}
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,6 @@
1
+ import { BodyConverter } from './BodyConverter';
2
+ export declare class BlobConverter implements BodyConverter<Blob> {
3
+ canHandle(data: unknown): data is Blob;
4
+ convert(data: Blob): Promise<string>;
5
+ getMimeType(data: Blob): string;
6
+ }
@@ -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