@lodestar/api 1.50.0-dev.b37917f96a → 1.50.0-dev.b726a05a4d
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/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/utils/client/error.d.ts +8 -1
- package/lib/utils/client/error.d.ts.map +1 -1
- package/lib/utils/client/error.js +4 -1
- package/lib/utils/client/error.js.map +1 -1
- package/lib/utils/client/response.d.ts +1 -1
- package/lib/utils/client/response.d.ts.map +1 -1
- package/lib/utils/client/response.js +11 -7
- package/lib/utils/client/response.js.map +1 -1
- package/package.json +6 -6
- package/src/index.ts +1 -1
- package/src/utils/client/error.ts +7 -1
- package/src/utils/client/response.ts +13 -9
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from "./beacon/index.js";
|
|
2
|
-
export { ApiError } from "./utils/client/error.js";
|
|
2
|
+
export { ApiError, type ApiFailure } from "./utils/client/error.js";
|
|
3
3
|
export type { ApiClientMethods, HttpClientModules, HttpClientOptions, IHttpClient, Metrics, } from "./utils/client/index.js";
|
|
4
4
|
export { ApiResponse, HttpClient, defaultInit } from "./utils/client/index.js";
|
|
5
5
|
export type { ApiRequestInit } from "./utils/client/request.js";
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAC,QAAQ,EAAE,KAAK,UAAU,EAAC,MAAM,yBAAyB,CAAC;AAClE,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,OAAO,GACR,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAC7E,YAAY,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAC,UAAU,EAAE,SAAS,EAAC,MAAM,oBAAoB,CAAC;AACzD,YAAY,EAAC,cAAc,EAAE,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AACzD,YAAY,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC"}
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAC,QAAQ,EAAkB,MAAM,yBAAyB,CAAC;AAQlE,OAAO,EAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAE7E,OAAO,EAAC,UAAU,EAAE,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAEjD,sEAAsE"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
+
/** Failure of a single item of a batch request, `index` refers to the submitted array */
|
|
2
|
+
export type ApiFailure = {
|
|
3
|
+
index: number;
|
|
4
|
+
message: string;
|
|
5
|
+
};
|
|
1
6
|
export declare class ApiError extends Error {
|
|
2
7
|
status: number;
|
|
3
8
|
operationId: string;
|
|
4
|
-
|
|
9
|
+
/** Set if the server rejected only some items of a batch request */
|
|
10
|
+
failures?: ApiFailure[];
|
|
11
|
+
constructor(message: string, status: number, operationId: string, failures?: ApiFailure[]);
|
|
5
12
|
}
|
|
6
13
|
//# sourceMappingURL=error.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/utils/client/error.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAS,SAAQ,KAAK;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/utils/client/error.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,MAAM,MAAM,UAAU,GAAG;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC;AAE1D,qBAAa,QAAS,SAAQ,KAAK;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IAExB,YAAY,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,EAKxF;CACF"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
export class ApiError extends Error {
|
|
2
2
|
status;
|
|
3
3
|
operationId;
|
|
4
|
-
|
|
4
|
+
/** Set if the server rejected only some items of a batch request */
|
|
5
|
+
failures;
|
|
6
|
+
constructor(message, status, operationId, failures) {
|
|
5
7
|
super(`${operationId} failed with status ${status}: ${message}`);
|
|
6
8
|
this.status = status;
|
|
7
9
|
this.operationId = operationId;
|
|
10
|
+
this.failures = failures;
|
|
8
11
|
}
|
|
9
12
|
}
|
|
10
13
|
//# sourceMappingURL=error.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/utils/client/error.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/utils/client/error.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,MAAM,CAAS;IACf,WAAW,CAAS;IACpB,oEAAoE;IACpE,QAAQ,CAAgB;IAExB,YAAY,OAAe,EAAE,MAAc,EAAE,WAAmB,EAAE,QAAuB;QACvF,KAAK,CAAC,GAAG,WAAW,uBAAuB,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -31,6 +31,6 @@ export declare class ApiResponse<E extends Endpoint> extends Response {
|
|
|
31
31
|
errorBody(): Promise<string>;
|
|
32
32
|
private resolvedRawBody;
|
|
33
33
|
private resolvedErrorBody;
|
|
34
|
-
private
|
|
34
|
+
private parseErrorBody;
|
|
35
35
|
}
|
|
36
36
|
//# sourceMappingURL=response.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/utils/client/response.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AACrC,OAAO,EAAC,UAAU,EAAgB,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/utils/client/response.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AACrC,OAAO,EAAC,UAAU,EAAgB,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAC,QAAQ,EAAa,MAAM,YAAY,CAAC;AAChD,OAAO,EAAC,oBAAoB,EAAC,MAAM,cAAc,CAAC;AAElD,MAAM,MAAM,OAAO,GACf;IAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAC,GACvC;IAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAC,GACzC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAC,CAAC;AAElC,qBAAa,WAAW,CAAC,CAAC,SAAS,QAAQ,CAAE,SAAQ,QAAQ;IAC3D,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,WAAW,CAAC,CAAoB;IACxC,OAAO,CAAC,QAAQ,CAAC,CAAU;IAC3B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,KAAK,CAAC,CAAY;IAC1B,OAAO,CAAC,MAAM,CAAC,CAAc;IAE7B,YAAY,UAAU,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY,EAG3F;IAED,UAAU,IAAI,UAAU,GAAG,IAAI,CA+B9B;IAEK,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAsBhC;IAED,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAmBhB;IAED,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,CAoBnB;IAED,GAAG,IAAI,UAAU,CAYhB;IAED,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAY5C;IAED,QAAQ,IAAI,IAAI,CAIf;IAED,KAAK,IAAI,QAAQ,GAAG,IAAI,CAOvB;IAEK,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAKjC;IAED,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,cAAc;CAkBvB"}
|
|
@@ -134,7 +134,8 @@ export class ApiResponse extends Response {
|
|
|
134
134
|
if (this.ok) {
|
|
135
135
|
return null;
|
|
136
136
|
}
|
|
137
|
-
|
|
137
|
+
const { message, failures } = this.parseErrorBody();
|
|
138
|
+
return new ApiError(message, this.status, this.definition.operationId, failures);
|
|
138
139
|
}
|
|
139
140
|
async errorBody() {
|
|
140
141
|
if (this._errorBody === undefined) {
|
|
@@ -154,20 +155,23 @@ export class ApiResponse extends Response {
|
|
|
154
155
|
}
|
|
155
156
|
return this._errorBody;
|
|
156
157
|
}
|
|
157
|
-
|
|
158
|
+
parseErrorBody() {
|
|
158
159
|
const errBody = this.resolvedErrorBody();
|
|
159
160
|
try {
|
|
160
161
|
const errJson = JSON.parse(errBody);
|
|
161
162
|
if (errJson.message) {
|
|
162
|
-
if (errJson.failures) {
|
|
163
|
-
return
|
|
163
|
+
if (Array.isArray(errJson.failures)) {
|
|
164
|
+
return {
|
|
165
|
+
message: `${errJson.message}\n` + errJson.failures.map((e) => e.message).join("\n"),
|
|
166
|
+
failures: errJson.failures,
|
|
167
|
+
};
|
|
164
168
|
}
|
|
165
|
-
return errJson.message;
|
|
169
|
+
return { message: errJson.message };
|
|
166
170
|
}
|
|
167
|
-
return errBody;
|
|
171
|
+
return { message: errBody };
|
|
168
172
|
}
|
|
169
173
|
catch (_e) {
|
|
170
|
-
return errBody || this.statusText;
|
|
174
|
+
return { message: errBody || this.statusText };
|
|
171
175
|
}
|
|
172
176
|
}
|
|
173
177
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/utils/client/response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,UAAU,EAAE,sBAAsB,EAAC,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAC,UAAU,EAAE,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/utils/client/response.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"bugs": {
|
|
12
12
|
"url": "https://github.com/ChainSafe/lodestar/issues"
|
|
13
13
|
},
|
|
14
|
-
"version": "1.50.0-dev.
|
|
14
|
+
"version": "1.50.0-dev.b726a05a4d",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -76,10 +76,10 @@
|
|
|
76
76
|
"dependencies": {
|
|
77
77
|
"@chainsafe/persistent-merkle-tree": "^1.3.1",
|
|
78
78
|
"@chainsafe/ssz": "^1.8.1",
|
|
79
|
-
"@lodestar/config": "^1.50.0-dev.
|
|
80
|
-
"@lodestar/params": "^1.50.0-dev.
|
|
81
|
-
"@lodestar/types": "^1.50.0-dev.
|
|
82
|
-
"@lodestar/utils": "^1.50.0-dev.
|
|
79
|
+
"@lodestar/config": "^1.50.0-dev.b726a05a4d",
|
|
80
|
+
"@lodestar/params": "^1.50.0-dev.b726a05a4d",
|
|
81
|
+
"@lodestar/types": "^1.50.0-dev.b726a05a4d",
|
|
82
|
+
"@lodestar/utils": "^1.50.0-dev.b726a05a4d",
|
|
83
83
|
"eventsource": "^2.0.2",
|
|
84
84
|
"qs": "^6.14.2"
|
|
85
85
|
},
|
|
@@ -96,5 +96,5 @@
|
|
|
96
96
|
"api",
|
|
97
97
|
"blockchain"
|
|
98
98
|
],
|
|
99
|
-
"gitHead": "
|
|
99
|
+
"gitHead": "56329aea78b93f7d5a9ad649e6052f718cd3190b"
|
|
100
100
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Re-exporting beacon only for backwards compatibility
|
|
2
2
|
export * from "./beacon/index.js";
|
|
3
|
-
export {ApiError} from "./utils/client/error.js";
|
|
3
|
+
export {ApiError, type ApiFailure} from "./utils/client/error.js";
|
|
4
4
|
export type {
|
|
5
5
|
ApiClientMethods,
|
|
6
6
|
HttpClientModules,
|
|
@@ -1,10 +1,16 @@
|
|
|
1
|
+
/** Failure of a single item of a batch request, `index` refers to the submitted array */
|
|
2
|
+
export type ApiFailure = {index: number; message: string};
|
|
3
|
+
|
|
1
4
|
export class ApiError extends Error {
|
|
2
5
|
status: number;
|
|
3
6
|
operationId: string;
|
|
7
|
+
/** Set if the server rejected only some items of a batch request */
|
|
8
|
+
failures?: ApiFailure[];
|
|
4
9
|
|
|
5
|
-
constructor(message: string, status: number, operationId: string) {
|
|
10
|
+
constructor(message: string, status: number, operationId: string, failures?: ApiFailure[]) {
|
|
6
11
|
super(`${operationId} failed with status ${status}: ${message}`);
|
|
7
12
|
this.status = status;
|
|
8
13
|
this.operationId = operationId;
|
|
14
|
+
this.failures = failures;
|
|
9
15
|
}
|
|
10
16
|
}
|
|
@@ -2,7 +2,7 @@ import {HeadersExtra, HttpHeader, parseContentTypeHeader} from "../headers.js";
|
|
|
2
2
|
import {HttpStatusCode} from "../httpStatusCode.js";
|
|
3
3
|
import {Endpoint} from "../types.js";
|
|
4
4
|
import {WireFormat, getWireFormat} from "../wireFormat.js";
|
|
5
|
-
import {ApiError} from "./error.js";
|
|
5
|
+
import {ApiError, ApiFailure} from "./error.js";
|
|
6
6
|
import {RouteDefinitionExtra} from "./request.js";
|
|
7
7
|
|
|
8
8
|
export type RawBody =
|
|
@@ -162,7 +162,8 @@ export class ApiResponse<E extends Endpoint> extends Response {
|
|
|
162
162
|
return null;
|
|
163
163
|
}
|
|
164
164
|
|
|
165
|
-
|
|
165
|
+
const {message, failures} = this.parseErrorBody();
|
|
166
|
+
return new ApiError(message, this.status, this.definition.operationId, failures);
|
|
166
167
|
}
|
|
167
168
|
|
|
168
169
|
async errorBody(): Promise<string> {
|
|
@@ -187,19 +188,22 @@ export class ApiResponse<E extends Endpoint> extends Response {
|
|
|
187
188
|
return this._errorBody;
|
|
188
189
|
}
|
|
189
190
|
|
|
190
|
-
private
|
|
191
|
+
private parseErrorBody(): {message: string; failures?: ApiFailure[]} {
|
|
191
192
|
const errBody = this.resolvedErrorBody();
|
|
192
193
|
try {
|
|
193
|
-
const errJson = JSON.parse(errBody) as {message?: string; failures?:
|
|
194
|
+
const errJson = JSON.parse(errBody) as {message?: string; failures?: ApiFailure[]};
|
|
194
195
|
if (errJson.message) {
|
|
195
|
-
if (errJson.failures) {
|
|
196
|
-
return
|
|
196
|
+
if (Array.isArray(errJson.failures)) {
|
|
197
|
+
return {
|
|
198
|
+
message: `${errJson.message}\n` + errJson.failures.map((e) => e.message).join("\n"),
|
|
199
|
+
failures: errJson.failures,
|
|
200
|
+
};
|
|
197
201
|
}
|
|
198
|
-
return errJson.message;
|
|
202
|
+
return {message: errJson.message};
|
|
199
203
|
}
|
|
200
|
-
return errBody;
|
|
204
|
+
return {message: errBody};
|
|
201
205
|
} catch (_e) {
|
|
202
|
-
return errBody || this.statusText;
|
|
206
|
+
return {message: errBody || this.statusText};
|
|
203
207
|
}
|
|
204
208
|
}
|
|
205
209
|
}
|