@api-client/core 0.3.4 → 0.3.7
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/build/browser.d.ts +6 -0
- package/build/browser.js +15 -0
- package/build/browser.js.map +1 -1
- package/build/index.d.ts +14 -2
- package/build/index.js +26 -2
- package/build/index.js.map +1 -1
- package/build/src/lib/calculators/DataCalculator.d.ts +27 -0
- package/build/src/lib/calculators/DataCalculator.js +88 -0
- package/build/src/lib/calculators/DataCalculator.js.map +1 -0
- package/build/src/lib/fs/Fs.d.ts +52 -0
- package/build/src/lib/fs/Fs.js +245 -0
- package/build/src/lib/fs/Fs.js.map +1 -0
- package/build/src/lib/parsers/UrlEncoder.d.ts +51 -0
- package/build/src/lib/parsers/UrlEncoder.js +74 -0
- package/build/src/lib/parsers/UrlEncoder.js.map +1 -0
- package/build/src/lib/parsers/UrlParser.d.ts +104 -0
- package/build/src/lib/parsers/UrlParser.js +189 -0
- package/build/src/lib/parsers/UrlParser.js.map +1 -0
- package/build/src/lib/parsers/UrlValueParser.d.ts +92 -0
- package/build/src/lib/parsers/UrlValueParser.js +172 -0
- package/build/src/lib/parsers/UrlValueParser.js.map +1 -0
- package/build/src/lib/timers/Timers.d.ts +5 -0
- package/build/src/lib/timers/Timers.js +10 -0
- package/build/src/lib/timers/Timers.js.map +1 -0
- package/build/src/mocking/ProjectMock.d.ts +13 -0
- package/build/src/mocking/ProjectMock.js +16 -0
- package/build/src/mocking/ProjectMock.js.map +1 -0
- package/build/src/mocking/lib/Request.d.ts +32 -0
- package/build/src/mocking/lib/Request.js +63 -0
- package/build/src/mocking/lib/Request.js.map +1 -0
- package/build/src/mocking/lib/Response.d.ts +33 -0
- package/build/src/mocking/lib/Response.js +79 -0
- package/build/src/mocking/lib/Response.js.map +1 -0
- package/build/src/models/ErrorResponse.d.ts +5 -4
- package/build/src/models/ErrorResponse.js +18 -5
- package/build/src/models/ErrorResponse.js.map +1 -1
- package/build/src/models/SerializableError.d.ts +30 -0
- package/build/src/models/SerializableError.js +63 -0
- package/build/src/models/SerializableError.js.map +1 -0
- package/build/src/runtime/http-engine/ArcEngine.js +8 -4
- package/build/src/runtime/http-engine/ArcEngine.js.map +1 -1
- package/build/src/runtime/http-engine/HttpEngine.d.ts +3 -3
- package/build/src/runtime/http-engine/HttpEngine.js +3 -3
- package/build/src/runtime/http-engine/HttpEngine.js.map +1 -1
- package/build/src/runtime/http-engine/NodeEngine.js +9 -4
- package/build/src/runtime/http-engine/NodeEngine.js.map +1 -1
- package/build/src/runtime/http-engine/NodeEngineDirect.js +8 -2
- package/build/src/runtime/http-engine/NodeEngineDirect.js.map +1 -1
- package/build/src/runtime/node/BaseRunner.d.ts +21 -0
- package/build/src/runtime/node/BaseRunner.js +27 -0
- package/build/src/runtime/node/BaseRunner.js.map +1 -0
- package/build/src/runtime/node/ProjectParallelRunner.d.ts +81 -0
- package/build/src/runtime/node/ProjectParallelRunner.js +173 -0
- package/build/src/runtime/node/ProjectParallelRunner.js.map +1 -0
- package/build/src/runtime/node/ProjectRequestRunner.d.ts +125 -0
- package/build/src/runtime/node/ProjectRequestRunner.js +185 -0
- package/build/src/runtime/node/ProjectRequestRunner.js.map +1 -0
- package/build/src/runtime/node/ProjectRunner.d.ts +166 -64
- package/build/src/runtime/node/ProjectRunner.js +191 -139
- package/build/src/runtime/node/ProjectRunner.js.map +1 -1
- package/build/src/runtime/node/ProjectRunnerWorker.d.ts +1 -0
- package/build/src/runtime/node/ProjectRunnerWorker.js +58 -0
- package/build/src/runtime/node/ProjectRunnerWorker.js.map +1 -0
- package/build/src/runtime/node/ProjectSerialRunner.d.ts +11 -0
- package/build/src/runtime/node/ProjectSerialRunner.js +34 -0
- package/build/src/runtime/node/ProjectSerialRunner.js.map +1 -0
- package/build/src/runtime/reporters/ProjectRunCliReporter.d.ts +7 -0
- package/build/src/runtime/reporters/ProjectRunCliReporter.js +73 -0
- package/build/src/runtime/reporters/ProjectRunCliReporter.js.map +1 -0
- package/build/src/runtime/reporters/Reporter.d.ts +62 -0
- package/build/src/runtime/reporters/Reporter.js +98 -0
- package/build/src/runtime/reporters/Reporter.js.map +1 -0
- package/build/src/testing/TestCliHelper.d.ts +29 -0
- package/build/src/testing/TestCliHelper.js +80 -0
- package/build/src/testing/TestCliHelper.js.map +1 -0
- package/build/src/testing/getPort.d.ts +52 -0
- package/build/src/testing/getPort.js +169 -0
- package/build/src/testing/getPort.js.map +1 -0
- package/package.json +2 -1
- package/src/lib/calculators/DataCalculator.ts +91 -0
- package/src/lib/fs/Fs.ts +258 -0
- package/src/lib/parsers/UrlEncoder.ts +74 -0
- package/src/lib/parsers/UrlParser.ts +201 -0
- package/src/lib/parsers/UrlValueParser.ts +211 -0
- package/src/lib/timers/Timers.ts +9 -0
- package/src/mocking/LegacyInterfaces.ts +1 -1
- package/src/mocking/ProjectMock.ts +20 -0
- package/src/mocking/lib/Request.ts +85 -0
- package/src/mocking/lib/Response.ts +101 -0
- package/src/models/ErrorResponse.ts +20 -8
- package/src/models/SerializableError.ts +80 -0
- package/src/runtime/http-engine/ArcEngine.ts +8 -4
- package/src/runtime/http-engine/HttpEngine.ts +5 -5
- package/src/runtime/http-engine/NodeEngine.ts +10 -5
- package/src/runtime/http-engine/NodeEngineDirect.ts +9 -3
- package/src/runtime/node/BaseRunner.ts +29 -0
- package/src/runtime/node/ProjectParallelRunner.ts +234 -0
- package/src/runtime/node/ProjectRequestRunner.ts +281 -0
- package/src/runtime/node/ProjectRunner.ts +281 -182
- package/src/runtime/node/ProjectRunnerWorker.ts +62 -0
- package/src/runtime/node/ProjectSerialRunner.ts +36 -0
- package/src/runtime/reporters/ProjectRunCliReporter.ts +79 -0
- package/src/runtime/reporters/Reporter.ts +142 -0
- package/src/testing/TestCliHelper.ts +87 -0
- package/src/testing/getPort.ts +212 -0
- package/build/src/runtime/http-engine/Errors.d.ts +0 -10
- package/build/src/runtime/http-engine/Errors.js +0 -14
- package/build/src/runtime/http-engine/Errors.js.map +0 -1
- package/src/runtime/http-engine/Errors.ts +0 -13
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UrlValueParser.js","sourceRoot":"","sources":["../../../../src/lib/parsers/UrlValueParser.ts"],"names":[],"mappings":"AA+BA;;GAEG;AACH,MAAM,OAAO,cAAc;IACf,MAAM,CAAa;IAE7B,YAAY,IAA6B;QACvC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI;YACzB,cAAc,EAAE,GAAG;SACpB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,IAAI,IAAI,CAAC,IAAwC;QAC/C,MAAM,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAA2B,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG;YACjB,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,GAAG;SAC9C,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACO,cAAc,CAAC,KAAa;QACpC,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE;YACzB,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;SAC/C;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;OAQG;IACO,UAAU,CAAC,KAAa;QAChC,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,SAAS,CAAC;SAClB;QACD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE;YACzB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;SAC/C;QACD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,SAAS,CAAC;SAClB;QACD,0DAA0D;QAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACO,UAAU,CAAC,KAAa;QAChC,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,SAAS,CAAC;SAClB;QACD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;QACrC,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;gBAChB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;aACtC;SACF;QACD,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;SACrC;QACD,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;SACrC;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,EAAE;YACf,KAAK,CAAC,KAAK,EAAE,CAAC;SACf;QACD,IAAI,IAAI,GAAG,IAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,IAAI,WAAW,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,IAAI,IAAI,GAAG,CAAC;SACb;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACO,YAAY,CAAC,KAAa;QAClC,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,SAAS,CAAC;SAClB;QACD,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC1C,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,OAAO,MAAM,CAAC;SACf;QACD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACO,YAAY,CAAC,KAAa;QAClC,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;OAMG;IACO,kBAAkB,CAAC,MAAe;QAC1C,MAAM,MAAM,GAAe,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,MAAM,CAAC;SACf;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAwB,CAAC,CAAC;QAC/D,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACvB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE,EAAE;gBAC1B,OAAO;aACR;YACD,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YACxC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACjB,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Awaits the set number of milliseconds before resolving the promise.
|
|
3
|
+
* @param timeout The number of milliseconds to wait.
|
|
4
|
+
*/
|
|
5
|
+
export function sleep(timeout = 0) {
|
|
6
|
+
return new Promise((resolve) => {
|
|
7
|
+
setTimeout(() => resolve(), timeout);
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=Timers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Timers.js","sourceRoot":"","sources":["../../../../src/lib/timers/Timers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,OAAO,GAAG,CAAC;IAC/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DataMock, DataMockInit } from '@pawel-up/data-mock';
|
|
2
|
+
import { Request } from './lib/Request.js';
|
|
3
|
+
import { Response } from './lib/Response.js';
|
|
4
|
+
export { IRequestLogInit } from './lib/Request.js';
|
|
5
|
+
export { IArcResponseInit } from './lib/Response.js';
|
|
6
|
+
export declare class ProjectMock extends DataMock {
|
|
7
|
+
projectRequest: Request;
|
|
8
|
+
response: Response;
|
|
9
|
+
/**
|
|
10
|
+
* @param init The library init options.
|
|
11
|
+
*/
|
|
12
|
+
constructor(init?: DataMockInit);
|
|
13
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { DataMock } from '@pawel-up/data-mock';
|
|
2
|
+
import { Request } from './lib/Request.js';
|
|
3
|
+
import { Response } from './lib/Response.js';
|
|
4
|
+
export class ProjectMock extends DataMock {
|
|
5
|
+
projectRequest;
|
|
6
|
+
response;
|
|
7
|
+
/**
|
|
8
|
+
* @param init The library init options.
|
|
9
|
+
*/
|
|
10
|
+
constructor(init) {
|
|
11
|
+
super(init);
|
|
12
|
+
this.projectRequest = new Request(init);
|
|
13
|
+
this.response = new Response(init);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=ProjectMock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectMock.js","sourceRoot":"","sources":["../../../src/mocking/ProjectMock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAgB,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAK7C,MAAM,OAAO,WAAY,SAAQ,QAAQ;IACvC,cAAc,CAAU;IACxB,QAAQ,CAAW;IAEnB;;OAEG;IACH,YAAY,IAAmB;QAC7B,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,cAAc,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;CACF"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Http, Types, Lorem, Time, DataMockInit, HttpRequestInit } from '@pawel-up/data-mock';
|
|
2
|
+
import { IHttpRequest } from '../../models/HttpRequest.js';
|
|
3
|
+
import { IRequest } from '../../models/Request.js';
|
|
4
|
+
import { ISentRequest } from '../../models/SentRequest.js';
|
|
5
|
+
import { IRequestLog } from '../../models/RequestLog.js';
|
|
6
|
+
import { IArcResponseInit, Response } from './Response.js';
|
|
7
|
+
export interface IRequestLogInit {
|
|
8
|
+
request?: HttpRequestInit;
|
|
9
|
+
response?: IArcResponseInit;
|
|
10
|
+
/**
|
|
11
|
+
* When set it ignores size information
|
|
12
|
+
*/
|
|
13
|
+
noSize?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Adds redirects to the request
|
|
16
|
+
*/
|
|
17
|
+
redirects?: boolean;
|
|
18
|
+
noResponse?: boolean;
|
|
19
|
+
noRequest?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare class Request {
|
|
22
|
+
types: Types;
|
|
23
|
+
lorem: Lorem;
|
|
24
|
+
time: Time;
|
|
25
|
+
http: Http;
|
|
26
|
+
response: Response;
|
|
27
|
+
constructor(init?: DataMockInit);
|
|
28
|
+
request(init?: HttpRequestInit): IRequest;
|
|
29
|
+
httpRequest(init?: HttpRequestInit): IHttpRequest;
|
|
30
|
+
sentRequest(init?: HttpRequestInit): ISentRequest;
|
|
31
|
+
log(init?: IRequestLogInit): IRequestLog;
|
|
32
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Http, Types, Lorem, Time } from '@pawel-up/data-mock';
|
|
2
|
+
// import { randomValue } from '@pawel-up/data-mock/src/lib/Http.js';
|
|
3
|
+
import { Kind as HttpRequestKind } from '../../models/HttpRequest.js';
|
|
4
|
+
import { Kind as RequestKind } from '../../models/Request.js';
|
|
5
|
+
import { Response } from './Response.js';
|
|
6
|
+
export class Request {
|
|
7
|
+
types;
|
|
8
|
+
lorem;
|
|
9
|
+
time;
|
|
10
|
+
http;
|
|
11
|
+
response;
|
|
12
|
+
constructor(init = {}) {
|
|
13
|
+
this.types = new Types(init.seed);
|
|
14
|
+
this.lorem = new Lorem(init);
|
|
15
|
+
this.time = new Time(init);
|
|
16
|
+
this.http = new Http(init);
|
|
17
|
+
this.response = new Response(init);
|
|
18
|
+
}
|
|
19
|
+
request(init) {
|
|
20
|
+
return {
|
|
21
|
+
kind: RequestKind,
|
|
22
|
+
expects: this.httpRequest(init),
|
|
23
|
+
info: {
|
|
24
|
+
name: this.lorem.words(2),
|
|
25
|
+
description: this.lorem.paragraph(),
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
httpRequest(init) {
|
|
30
|
+
const request = this.http.request(init);
|
|
31
|
+
return {
|
|
32
|
+
kind: HttpRequestKind,
|
|
33
|
+
...request,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
sentRequest(init) {
|
|
37
|
+
const start = this.time.timestamp();
|
|
38
|
+
return {
|
|
39
|
+
startTime: start,
|
|
40
|
+
endTime: this.time.timestamp({ min: start + 1 }),
|
|
41
|
+
...this.httpRequest(init),
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
log(init = {}) {
|
|
45
|
+
const result = {
|
|
46
|
+
kind: 'ARC#ResponseLog',
|
|
47
|
+
};
|
|
48
|
+
if (!init.noRequest) {
|
|
49
|
+
result.request = this.sentRequest(init.request);
|
|
50
|
+
}
|
|
51
|
+
if (!init.noResponse) {
|
|
52
|
+
result.response = this.response.arcResponse(init.response);
|
|
53
|
+
}
|
|
54
|
+
if (init.redirects) {
|
|
55
|
+
result.redirects = this.response.redirects();
|
|
56
|
+
}
|
|
57
|
+
if (!init.noSize) {
|
|
58
|
+
result.size = this.response.size();
|
|
59
|
+
}
|
|
60
|
+
return result;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=Request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Request.js","sourceRoot":"","sources":["../../../../src/mocking/lib/Request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAiC,MAAM,qBAAqB,CAAC;AAC9F,qEAAqE;AACrE,OAAO,EAAgB,IAAI,IAAI,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAY,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGxE,OAAO,EAAoB,QAAQ,EAAE,MAAM,eAAe,CAAC;AAiB3D,MAAM,OAAO,OAAO;IAClB,KAAK,CAAQ;IACb,KAAK,CAAQ;IACb,IAAI,CAAO;IACX,IAAI,CAAO;IACX,QAAQ,CAAW;IAEnB,YAAY,OAAmB,EAAE;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,IAAsB;QAC5B,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAC/B,IAAI,EAAE;gBACJ,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzB,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;aACpC;SACF,CAAA;IACH,CAAC;IAED,WAAW,CAAC,IAAsB;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,GAAG,OAAO;SACX,CAAA;IACH,CAAC;IAED,WAAW,CAAC,IAAsB;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACpC,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;YAChD,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;SAC1B,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,OAAwB,EAAE;QAC5B,MAAM,MAAM,GAAgB;YAC1B,IAAI,EAAE,iBAAiB;SACxB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACjD;QACD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC5D;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;SAC9C;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACpC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Http, Har, Types, Lorem, Time, DataMockInit, HttpResponseInit, HarTimingInit, Internet } from '@pawel-up/data-mock';
|
|
2
|
+
import { IHttpResponse } from '../../models/HttpResponse.js';
|
|
3
|
+
import { IArcResponse } from '../../models/ArcResponse.js';
|
|
4
|
+
import { IRequestsSize } from '../../models/RequestsSize.js';
|
|
5
|
+
import { IResponseRedirect } from '../../models/ResponseRedirect.js';
|
|
6
|
+
export interface IArcResponseInit extends HttpResponseInit, HarTimingInit {
|
|
7
|
+
/**
|
|
8
|
+
* When set it does not generate a response payload.
|
|
9
|
+
*/
|
|
10
|
+
noBody?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* The first number of the status group. Other 2 are auto generated
|
|
13
|
+
*/
|
|
14
|
+
statusGroup?: number;
|
|
15
|
+
/**
|
|
16
|
+
* Whether to generate timings object
|
|
17
|
+
*/
|
|
18
|
+
timings?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export declare class Response {
|
|
21
|
+
types: Types;
|
|
22
|
+
lorem: Lorem;
|
|
23
|
+
time: Time;
|
|
24
|
+
http: Http;
|
|
25
|
+
har: Har;
|
|
26
|
+
internet: Internet;
|
|
27
|
+
constructor(init?: DataMockInit);
|
|
28
|
+
response(init?: IArcResponseInit): IHttpResponse;
|
|
29
|
+
arcResponse(init?: IArcResponseInit): IArcResponse;
|
|
30
|
+
size(): IRequestsSize;
|
|
31
|
+
redirect(init?: IArcResponseInit): IResponseRedirect;
|
|
32
|
+
redirects(size?: number, init?: IArcResponseInit): IResponseRedirect[];
|
|
33
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Http, Har, Types, Lorem, Time, Internet } from '@pawel-up/data-mock';
|
|
2
|
+
import { Kind as HttpResponseKind } from '../../models/HttpResponse.js';
|
|
3
|
+
import { Kind as ArcResponseKind } from '../../models/ArcResponse.js';
|
|
4
|
+
import { Kind as ResponseRedirectKind } from '../../models/ResponseRedirect.js';
|
|
5
|
+
export class Response {
|
|
6
|
+
types;
|
|
7
|
+
lorem;
|
|
8
|
+
time;
|
|
9
|
+
http;
|
|
10
|
+
har;
|
|
11
|
+
internet;
|
|
12
|
+
constructor(init = {}) {
|
|
13
|
+
this.types = new Types(init.seed);
|
|
14
|
+
this.lorem = new Lorem(init);
|
|
15
|
+
this.time = new Time(init);
|
|
16
|
+
this.http = new Http(init);
|
|
17
|
+
this.har = new Har(init);
|
|
18
|
+
this.internet = new Internet(init);
|
|
19
|
+
}
|
|
20
|
+
response(init = {}) {
|
|
21
|
+
const ct = init.noBody ? undefined : this.http.headers.contentType();
|
|
22
|
+
const body = init.noBody ? undefined : this.http.payload.payload(ct);
|
|
23
|
+
const headers = this.http.headers.headers('response', { mime: ct });
|
|
24
|
+
const statusGroup = init.statusGroup ? init.statusGroup : this.types.number({ min: 2, max: 5 });
|
|
25
|
+
const sCode = this.types.number({ min: 0, max: 99 }).toString();
|
|
26
|
+
const code = Number(`${statusGroup}${sCode.padStart(2, '0')}`);
|
|
27
|
+
const status = this.lorem.word();
|
|
28
|
+
const result = {
|
|
29
|
+
kind: HttpResponseKind,
|
|
30
|
+
status: code,
|
|
31
|
+
statusText: status,
|
|
32
|
+
headers,
|
|
33
|
+
};
|
|
34
|
+
if (!init.noBody) {
|
|
35
|
+
result.payload = body;
|
|
36
|
+
}
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
arcResponse(init = {}) {
|
|
40
|
+
const base = this.response(init);
|
|
41
|
+
const length = this.types.number({ min: 10, max: 4000 });
|
|
42
|
+
const result = {
|
|
43
|
+
...base,
|
|
44
|
+
kind: ArcResponseKind,
|
|
45
|
+
loadingTime: length,
|
|
46
|
+
};
|
|
47
|
+
if (init.timings) {
|
|
48
|
+
result.timings = this.har.timing(init);
|
|
49
|
+
}
|
|
50
|
+
return result;
|
|
51
|
+
}
|
|
52
|
+
size() {
|
|
53
|
+
const result = {
|
|
54
|
+
request: this.types.number({ min: 10 }),
|
|
55
|
+
response: this.types.number({ min: 10 }),
|
|
56
|
+
};
|
|
57
|
+
return result;
|
|
58
|
+
}
|
|
59
|
+
redirect(init) {
|
|
60
|
+
const start = this.time.timestamp();
|
|
61
|
+
const end = this.time.timestamp({ min: start + 1 });
|
|
62
|
+
const info = {
|
|
63
|
+
kind: ResponseRedirectKind,
|
|
64
|
+
startTime: start,
|
|
65
|
+
endTime: end,
|
|
66
|
+
url: this.internet.uri(),
|
|
67
|
+
response: this.response({ ...init, statusGroup: 3 }),
|
|
68
|
+
};
|
|
69
|
+
return info;
|
|
70
|
+
}
|
|
71
|
+
redirects(size = 1, init) {
|
|
72
|
+
const result = [];
|
|
73
|
+
for (let i = 0; i < size; i++) {
|
|
74
|
+
result.push(this.redirect(init));
|
|
75
|
+
}
|
|
76
|
+
return result;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=Response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Response.js","sourceRoot":"","sources":["../../../../src/mocking/lib/Response.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,25 @@
|
|
|
1
1
|
import { IHttpResponse, HttpResponse } from './HttpResponse.js';
|
|
2
2
|
import { ErrorResponse as LegacyErrorResponse } from './legacy/request/ArcResponse.js';
|
|
3
|
+
import { SerializableError, ISerializedError } from './SerializableError.js';
|
|
3
4
|
export interface IErrorResponse extends IHttpResponse {
|
|
4
5
|
/**
|
|
5
6
|
* An error associated with the response
|
|
6
7
|
*/
|
|
7
|
-
error: string |
|
|
8
|
+
error: string | ISerializedError;
|
|
8
9
|
}
|
|
9
10
|
export declare class ErrorResponse extends HttpResponse {
|
|
10
11
|
/**
|
|
11
12
|
* An error associated with the response
|
|
12
13
|
*/
|
|
13
|
-
error:
|
|
14
|
+
error: SerializableError;
|
|
14
15
|
/**
|
|
15
16
|
* @returns The same Error or new Error instance when passed string.
|
|
16
17
|
*/
|
|
17
|
-
static ensureError(error: string | Error):
|
|
18
|
+
static ensureError(error: string | Error | SerializableError): SerializableError;
|
|
18
19
|
/**
|
|
19
20
|
* @param error The error message or Error object to use.
|
|
20
21
|
*/
|
|
21
|
-
static fromError(error: Error | string): ErrorResponse;
|
|
22
|
+
static fromError(error: Error | SerializableError | string): ErrorResponse;
|
|
22
23
|
static fromLegacy(input: LegacyErrorResponse): Promise<ErrorResponse>;
|
|
23
24
|
/**
|
|
24
25
|
* @param input The request definition used to restore the state.
|
|
@@ -1,16 +1,23 @@
|
|
|
1
1
|
import { HttpResponse, Kind } from './HttpResponse.js';
|
|
2
2
|
import { PayloadSerializer } from '../lib/transformers/PayloadSerializer.js';
|
|
3
3
|
import { Normalizer } from './legacy/Normalizer.js';
|
|
4
|
+
import { SerializableError } from './SerializableError.js';
|
|
4
5
|
export class ErrorResponse extends HttpResponse {
|
|
5
6
|
/**
|
|
6
7
|
* An error associated with the response
|
|
7
8
|
*/
|
|
8
|
-
error = new
|
|
9
|
+
error = new SerializableError('Unknown error');
|
|
9
10
|
/**
|
|
10
11
|
* @returns The same Error or new Error instance when passed string.
|
|
11
12
|
*/
|
|
12
13
|
static ensureError(error) {
|
|
13
|
-
|
|
14
|
+
if (typeof error === 'string') {
|
|
15
|
+
return new SerializableError(error);
|
|
16
|
+
}
|
|
17
|
+
if (error.name === 'SerializableError') {
|
|
18
|
+
return error;
|
|
19
|
+
}
|
|
20
|
+
return new SerializableError(error);
|
|
14
21
|
}
|
|
15
22
|
/**
|
|
16
23
|
* @param error The error message or Error object to use.
|
|
@@ -27,7 +34,7 @@ export class ErrorResponse extends HttpResponse {
|
|
|
27
34
|
const init = {
|
|
28
35
|
kind: Kind,
|
|
29
36
|
status: input.status || 0,
|
|
30
|
-
error: input.error ? ErrorResponse.ensureError(input.error) : new
|
|
37
|
+
error: input.error ? ErrorResponse.ensureError(input.error) : new SerializableError('Unknown error'),
|
|
31
38
|
};
|
|
32
39
|
if (input.headers) {
|
|
33
40
|
init.headers = input.headers;
|
|
@@ -59,7 +66,7 @@ export class ErrorResponse extends HttpResponse {
|
|
|
59
66
|
init = {
|
|
60
67
|
kind: Kind,
|
|
61
68
|
status: 0,
|
|
62
|
-
error: new
|
|
69
|
+
error: new SerializableError('Unknown error'),
|
|
63
70
|
};
|
|
64
71
|
}
|
|
65
72
|
this.new(init);
|
|
@@ -72,7 +79,13 @@ export class ErrorResponse extends HttpResponse {
|
|
|
72
79
|
new(init) {
|
|
73
80
|
super.new(init);
|
|
74
81
|
if (init.error) {
|
|
75
|
-
|
|
82
|
+
if (typeof init.error === 'string') {
|
|
83
|
+
this.error = new SerializableError(init.error);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
this.error = new SerializableError();
|
|
87
|
+
this.error.new(init.error);
|
|
88
|
+
}
|
|
76
89
|
}
|
|
77
90
|
}
|
|
78
91
|
toJSON() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorResponse.js","sourceRoot":"","sources":["../../../src/models/ErrorResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"ErrorResponse.js","sourceRoot":"","sources":["../../../src/models/ErrorResponse.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
interface IErrorOptions {
|
|
2
|
+
cause?: Error;
|
|
3
|
+
}
|
|
4
|
+
export interface ISerializedError {
|
|
5
|
+
message: string;
|
|
6
|
+
stack?: string;
|
|
7
|
+
code?: string | number;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* An error that serializes!
|
|
11
|
+
* It is a copy of the normal definition of an error but allows
|
|
12
|
+
* to serialize the value via the toJSON() function and restore previous values
|
|
13
|
+
* with the `new()` function.
|
|
14
|
+
*/
|
|
15
|
+
export declare class SerializableError {
|
|
16
|
+
message: string;
|
|
17
|
+
code?: number | string;
|
|
18
|
+
private stackValue?;
|
|
19
|
+
get stack(): string | undefined;
|
|
20
|
+
get name(): string;
|
|
21
|
+
constructor();
|
|
22
|
+
constructor(error: Error);
|
|
23
|
+
constructor(message: string);
|
|
24
|
+
constructor(message: string, options: IErrorOptions);
|
|
25
|
+
constructor(message: string, code?: number | string);
|
|
26
|
+
new(values: ISerializedError): void;
|
|
27
|
+
toJSON(): ISerializedError;
|
|
28
|
+
toString(): string;
|
|
29
|
+
}
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An error that serializes!
|
|
3
|
+
* It is a copy of the normal definition of an error but allows
|
|
4
|
+
* to serialize the value via the toJSON() function and restore previous values
|
|
5
|
+
* with the `new()` function.
|
|
6
|
+
*/
|
|
7
|
+
export class SerializableError {
|
|
8
|
+
message;
|
|
9
|
+
code;
|
|
10
|
+
stackValue;
|
|
11
|
+
get stack() {
|
|
12
|
+
return this.stackValue;
|
|
13
|
+
}
|
|
14
|
+
get name() {
|
|
15
|
+
return 'SerializableError';
|
|
16
|
+
}
|
|
17
|
+
constructor(message, options = {}) {
|
|
18
|
+
if (typeof message === 'string') {
|
|
19
|
+
this.message = message;
|
|
20
|
+
}
|
|
21
|
+
else if (message) {
|
|
22
|
+
this.message = message.message;
|
|
23
|
+
this.stackValue = message.stack;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
this.message = '';
|
|
27
|
+
}
|
|
28
|
+
if (typeof options === 'string' || typeof options === 'number') {
|
|
29
|
+
this.code = options;
|
|
30
|
+
}
|
|
31
|
+
else if (options.cause && options.cause.stack) {
|
|
32
|
+
this.stackValue = options.cause.stack;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
new(values) {
|
|
36
|
+
if (values.message) {
|
|
37
|
+
this.message = values.message;
|
|
38
|
+
}
|
|
39
|
+
if (values.stack) {
|
|
40
|
+
this.stackValue = values.stack;
|
|
41
|
+
}
|
|
42
|
+
if (values.code || values.code === 0) {
|
|
43
|
+
this.code = values.code;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
toJSON() {
|
|
47
|
+
const { message, stackValue: stack, code } = this;
|
|
48
|
+
const result = {
|
|
49
|
+
message,
|
|
50
|
+
};
|
|
51
|
+
if (stack) {
|
|
52
|
+
result.stack = stack;
|
|
53
|
+
}
|
|
54
|
+
if (code || code === 0) {
|
|
55
|
+
result.code = code;
|
|
56
|
+
}
|
|
57
|
+
return result;
|
|
58
|
+
}
|
|
59
|
+
toString() {
|
|
60
|
+
return this.message;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=SerializableError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SerializableError.js","sourceRoot":"","sources":["../../../src/models/SerializableError.ts"],"names":[],"mappings":"AAUA;;;;;GAKG;AACH,MAAM,OAAO,iBAAiB;IAC5B,OAAO,CAAS;IAChB,IAAI,CAAmB;IACf,UAAU,CAAU;IAC5B,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAQD,YAAY,OAAwB,EAAE,UAA2C,EAAE;QACjF,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SACxB;aAAM,IAAI,OAAO,EAAE;YAClB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;SACjC;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;SACnB;QACD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC9D,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;SACrB;aAAM,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE;YAC/C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;SACvC;IACH,CAAC;IAED,GAAG,CAAC,MAAwB;QAC1B,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;SAC/B;QACD,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;SAChC;QACD,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE;YACpC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;SACzB;IACH,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAClD,MAAM,MAAM,GAAqB;YAC/B,OAAO;SACR,CAAC;QACF,IAAI,KAAK,EAAE;YACT,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB;QACD,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE;YACtB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;SACpB;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -4,10 +4,10 @@ import http from 'http';
|
|
|
4
4
|
import https from 'https';
|
|
5
5
|
import { HttpEngine } from './HttpEngine.js';
|
|
6
6
|
import { ArcResponse } from '../../models/ArcResponse.js';
|
|
7
|
+
import { SerializableError } from '../../models/SerializableError.js';
|
|
7
8
|
import { Headers } from '../../lib/headers/Headers.js';
|
|
8
9
|
import { PayloadSupport } from './PayloadSupport.js';
|
|
9
10
|
import { addContentLength, getPort } from './RequestUtils.js';
|
|
10
|
-
import { NetError } from './Errors.js';
|
|
11
11
|
import { NtlmAuth } from './ntlm/NtlmAuth.js';
|
|
12
12
|
import { PayloadSerializer } from '../../lib/transformers/PayloadSerializer.js';
|
|
13
13
|
const nlBuffer = Buffer.from([13, 10]);
|
|
@@ -64,7 +64,11 @@ export class ArcEngine extends HttpEngine {
|
|
|
64
64
|
await this.writeMessage(message);
|
|
65
65
|
}
|
|
66
66
|
catch (cause) {
|
|
67
|
-
const
|
|
67
|
+
const e = cause;
|
|
68
|
+
const err = new SerializableError(e.message, { cause: e });
|
|
69
|
+
if (e.code || e.code === 0) {
|
|
70
|
+
err.code = e.code;
|
|
71
|
+
}
|
|
68
72
|
this.abort();
|
|
69
73
|
this._errorRequest({
|
|
70
74
|
message: err.message,
|
|
@@ -434,7 +438,7 @@ export class ArcEngine extends HttpEngine {
|
|
|
434
438
|
if (!this.currentResponse) {
|
|
435
439
|
this.logger.error(`Connection closed without receiving any data.`);
|
|
436
440
|
// The parser haven't found the end of message so there was no message!
|
|
437
|
-
const e = new
|
|
441
|
+
const e = new SerializableError('Connection closed without receiving any data', 100);
|
|
438
442
|
this._errorRequest(e);
|
|
439
443
|
}
|
|
440
444
|
else {
|
|
@@ -979,7 +983,7 @@ export class ArcEngine extends HttpEngine {
|
|
|
979
983
|
else if (res.statusCode !== 200) {
|
|
980
984
|
this.logger.debug(`The proxy tunnel ended with ${res.statusCode} status code. Erroring request.`);
|
|
981
985
|
connectRequest.destroy();
|
|
982
|
-
const e = new
|
|
986
|
+
const e = new SerializableError('A tunnel connection through the proxy could not be established', 111);
|
|
983
987
|
reject(e);
|
|
984
988
|
}
|
|
985
989
|
else {
|