@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.
Files changed (109) hide show
  1. package/build/browser.d.ts +6 -0
  2. package/build/browser.js +15 -0
  3. package/build/browser.js.map +1 -1
  4. package/build/index.d.ts +14 -2
  5. package/build/index.js +26 -2
  6. package/build/index.js.map +1 -1
  7. package/build/src/lib/calculators/DataCalculator.d.ts +27 -0
  8. package/build/src/lib/calculators/DataCalculator.js +88 -0
  9. package/build/src/lib/calculators/DataCalculator.js.map +1 -0
  10. package/build/src/lib/fs/Fs.d.ts +52 -0
  11. package/build/src/lib/fs/Fs.js +245 -0
  12. package/build/src/lib/fs/Fs.js.map +1 -0
  13. package/build/src/lib/parsers/UrlEncoder.d.ts +51 -0
  14. package/build/src/lib/parsers/UrlEncoder.js +74 -0
  15. package/build/src/lib/parsers/UrlEncoder.js.map +1 -0
  16. package/build/src/lib/parsers/UrlParser.d.ts +104 -0
  17. package/build/src/lib/parsers/UrlParser.js +189 -0
  18. package/build/src/lib/parsers/UrlParser.js.map +1 -0
  19. package/build/src/lib/parsers/UrlValueParser.d.ts +92 -0
  20. package/build/src/lib/parsers/UrlValueParser.js +172 -0
  21. package/build/src/lib/parsers/UrlValueParser.js.map +1 -0
  22. package/build/src/lib/timers/Timers.d.ts +5 -0
  23. package/build/src/lib/timers/Timers.js +10 -0
  24. package/build/src/lib/timers/Timers.js.map +1 -0
  25. package/build/src/mocking/ProjectMock.d.ts +13 -0
  26. package/build/src/mocking/ProjectMock.js +16 -0
  27. package/build/src/mocking/ProjectMock.js.map +1 -0
  28. package/build/src/mocking/lib/Request.d.ts +32 -0
  29. package/build/src/mocking/lib/Request.js +63 -0
  30. package/build/src/mocking/lib/Request.js.map +1 -0
  31. package/build/src/mocking/lib/Response.d.ts +33 -0
  32. package/build/src/mocking/lib/Response.js +79 -0
  33. package/build/src/mocking/lib/Response.js.map +1 -0
  34. package/build/src/models/ErrorResponse.d.ts +5 -4
  35. package/build/src/models/ErrorResponse.js +18 -5
  36. package/build/src/models/ErrorResponse.js.map +1 -1
  37. package/build/src/models/SerializableError.d.ts +30 -0
  38. package/build/src/models/SerializableError.js +63 -0
  39. package/build/src/models/SerializableError.js.map +1 -0
  40. package/build/src/runtime/http-engine/ArcEngine.js +8 -4
  41. package/build/src/runtime/http-engine/ArcEngine.js.map +1 -1
  42. package/build/src/runtime/http-engine/HttpEngine.d.ts +3 -3
  43. package/build/src/runtime/http-engine/HttpEngine.js +3 -3
  44. package/build/src/runtime/http-engine/HttpEngine.js.map +1 -1
  45. package/build/src/runtime/http-engine/NodeEngine.js +9 -4
  46. package/build/src/runtime/http-engine/NodeEngine.js.map +1 -1
  47. package/build/src/runtime/http-engine/NodeEngineDirect.js +8 -2
  48. package/build/src/runtime/http-engine/NodeEngineDirect.js.map +1 -1
  49. package/build/src/runtime/node/BaseRunner.d.ts +21 -0
  50. package/build/src/runtime/node/BaseRunner.js +27 -0
  51. package/build/src/runtime/node/BaseRunner.js.map +1 -0
  52. package/build/src/runtime/node/ProjectParallelRunner.d.ts +81 -0
  53. package/build/src/runtime/node/ProjectParallelRunner.js +173 -0
  54. package/build/src/runtime/node/ProjectParallelRunner.js.map +1 -0
  55. package/build/src/runtime/node/ProjectRequestRunner.d.ts +125 -0
  56. package/build/src/runtime/node/ProjectRequestRunner.js +185 -0
  57. package/build/src/runtime/node/ProjectRequestRunner.js.map +1 -0
  58. package/build/src/runtime/node/ProjectRunner.d.ts +166 -64
  59. package/build/src/runtime/node/ProjectRunner.js +191 -139
  60. package/build/src/runtime/node/ProjectRunner.js.map +1 -1
  61. package/build/src/runtime/node/ProjectRunnerWorker.d.ts +1 -0
  62. package/build/src/runtime/node/ProjectRunnerWorker.js +58 -0
  63. package/build/src/runtime/node/ProjectRunnerWorker.js.map +1 -0
  64. package/build/src/runtime/node/ProjectSerialRunner.d.ts +11 -0
  65. package/build/src/runtime/node/ProjectSerialRunner.js +34 -0
  66. package/build/src/runtime/node/ProjectSerialRunner.js.map +1 -0
  67. package/build/src/runtime/reporters/ProjectRunCliReporter.d.ts +7 -0
  68. package/build/src/runtime/reporters/ProjectRunCliReporter.js +73 -0
  69. package/build/src/runtime/reporters/ProjectRunCliReporter.js.map +1 -0
  70. package/build/src/runtime/reporters/Reporter.d.ts +62 -0
  71. package/build/src/runtime/reporters/Reporter.js +98 -0
  72. package/build/src/runtime/reporters/Reporter.js.map +1 -0
  73. package/build/src/testing/TestCliHelper.d.ts +29 -0
  74. package/build/src/testing/TestCliHelper.js +80 -0
  75. package/build/src/testing/TestCliHelper.js.map +1 -0
  76. package/build/src/testing/getPort.d.ts +52 -0
  77. package/build/src/testing/getPort.js +169 -0
  78. package/build/src/testing/getPort.js.map +1 -0
  79. package/package.json +2 -1
  80. package/src/lib/calculators/DataCalculator.ts +91 -0
  81. package/src/lib/fs/Fs.ts +258 -0
  82. package/src/lib/parsers/UrlEncoder.ts +74 -0
  83. package/src/lib/parsers/UrlParser.ts +201 -0
  84. package/src/lib/parsers/UrlValueParser.ts +211 -0
  85. package/src/lib/timers/Timers.ts +9 -0
  86. package/src/mocking/LegacyInterfaces.ts +1 -1
  87. package/src/mocking/ProjectMock.ts +20 -0
  88. package/src/mocking/lib/Request.ts +85 -0
  89. package/src/mocking/lib/Response.ts +101 -0
  90. package/src/models/ErrorResponse.ts +20 -8
  91. package/src/models/SerializableError.ts +80 -0
  92. package/src/runtime/http-engine/ArcEngine.ts +8 -4
  93. package/src/runtime/http-engine/HttpEngine.ts +5 -5
  94. package/src/runtime/http-engine/NodeEngine.ts +10 -5
  95. package/src/runtime/http-engine/NodeEngineDirect.ts +9 -3
  96. package/src/runtime/node/BaseRunner.ts +29 -0
  97. package/src/runtime/node/ProjectParallelRunner.ts +234 -0
  98. package/src/runtime/node/ProjectRequestRunner.ts +281 -0
  99. package/src/runtime/node/ProjectRunner.ts +281 -182
  100. package/src/runtime/node/ProjectRunnerWorker.ts +62 -0
  101. package/src/runtime/node/ProjectSerialRunner.ts +36 -0
  102. package/src/runtime/reporters/ProjectRunCliReporter.ts +79 -0
  103. package/src/runtime/reporters/Reporter.ts +142 -0
  104. package/src/testing/TestCliHelper.ts +87 -0
  105. package/src/testing/getPort.ts +212 -0
  106. package/build/src/runtime/http-engine/Errors.d.ts +0 -10
  107. package/build/src/runtime/http-engine/Errors.js +0 -14
  108. package/build/src/runtime/http-engine/Errors.js.map +0 -1
  109. 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":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Awaits the set number of milliseconds before resolving the promise.
3
+ * @param timeout The number of milliseconds to wait.
4
+ */
5
+ export declare function sleep(timeout?: number): Promise<void>;
@@ -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 | Error;
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: 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): 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 Error('Unknown error');
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
- return typeof error === 'string' ? new Error(error) : error;
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 Error('Unknown error'),
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 Error('Unknown error'),
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
- this.error = ErrorResponse.ensureError(init.error);
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":"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"}
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 err = cause;
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 NetError('Connection closed without receiving any data', 100);
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 NetError('A tunnel connection through the proxy could not be established.', 111);
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 {