@sectester/repeater 0.16.1 → 0.16.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sectester/repeater",
3
- "version": "0.16.1",
3
+ "version": "0.16.2",
4
4
  "description": "Package for managing repeaters, which are mandatory for scanning targets on a local network.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -79,7 +79,6 @@ let HttpRequestRunner = class HttpRequestRunner {
79
79
  });
80
80
  }
81
81
  async request(options) {
82
- let responseTruncatePromise;
83
82
  const res = await (0, request_promise_1.default)({
84
83
  agent: this.getRequestAgent(options),
85
84
  body: options.body,
@@ -91,22 +90,15 @@ let HttpRequestRunner = class HttpRequestRunner {
91
90
  rejectUnauthorized: false,
92
91
  timeout: this.options.timeout,
93
92
  url: options.url
94
- })
95
- .on('request', (req) => this.setHeaders(req, options))
96
- .on('response', (response) => (responseTruncatePromise = this.truncateResponse(response)));
97
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
98
- const body = await responseTruncatePromise;
99
- if (body) {
100
- res.body = body.toString();
101
- res.headers['content-length'] = String(body.byteLength);
102
- }
93
+ }).on('request', (req) => this.setHeaders(req, options));
94
+ this.truncateResponse(res);
103
95
  return res;
104
96
  }
105
97
  getRequestAgent(options) {
106
98
  var _a;
107
99
  return ((_a = this.proxy) !== null && _a !== void 0 ? _a : (options.url.startsWith('https') ? this.httpsAgent : this.httpAgent));
108
100
  }
109
- async truncateResponse(res) {
101
+ truncateResponse(res) {
110
102
  var _a;
111
103
  if (res.statusCode === 204 || res.method === 'HEAD') {
112
104
  return;
@@ -114,7 +106,9 @@ let HttpRequestRunner = class HttpRequestRunner {
114
106
  const type = this.parseContentType(res);
115
107
  const maxBodySize = this.maxContentLength * 1024;
116
108
  const requiresTruncating = !((_a = this.options.allowedMimes) === null || _a === void 0 ? void 0 : _a.some((mime) => type.startsWith(mime)));
117
- return this.parseBody(res, { maxBodySize, requiresTruncating });
109
+ const body = this.parseBody(res, { maxBodySize, requiresTruncating });
110
+ res.body = body.toString();
111
+ res.headers['content-length'] = String(body.byteLength);
118
112
  }
119
113
  parseContentType(res) {
120
114
  let type = res.headers['content-type'] || 'text/plain';
@@ -126,26 +120,14 @@ let HttpRequestRunner = class HttpRequestRunner {
126
120
  }
127
121
  return type;
128
122
  }
129
- async parseBody(res, options) {
130
- let truncated = false;
131
- const chunks = [];
132
- let chunksByteLength = 0;
133
- for await (const chunk of res) {
134
- chunks.push(chunk);
135
- chunksByteLength += Buffer.from(chunk).byteLength;
136
- truncated =
137
- this.maxContentLength !== -1 &&
138
- chunksByteLength > options.maxBodySize &&
139
- options.requiresTruncating;
140
- if (truncated) {
141
- res.destroy();
142
- break;
143
- }
144
- }
145
- const body = Buffer.concat(chunks);
123
+ parseBody(res, options) {
124
+ let body = Buffer.from(res.body);
125
+ const truncated = this.maxContentLength !== -1 &&
126
+ body.byteLength > options.maxBodySize &&
127
+ options.requiresTruncating;
146
128
  if (truncated) {
147
129
  this.logger.debug('Truncate original response body to %i bytes', options.maxBodySize);
148
- return body.slice(0, options.maxBodySize);
130
+ body = body.slice(0, options.maxBodySize);
149
131
  }
150
132
  return body;
151
133
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HttpRequestRunner.js","sourceRoot":"","sources":["../../../../../../packages/repeater/src/request-runner/protocols/HttpRequestRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpRequestRunner.js","sourceRoot":"","sources":["../../../../../../packages/repeater/src/request-runner/protocols/HttpRequestRunner.ts"],"names":[],"mappings":"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"}