@lodestar/api 1.20.0-dev.c1532773c2 → 1.20.0-dev.f4460cd1d6
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/README.md +2 -2
- package/lib/beacon/client/beacon.d.ts +4 -3
- package/lib/beacon/client/beacon.js +3 -36
- package/lib/beacon/client/beacon.js.map +1 -1
- package/lib/beacon/client/config.d.ts +4 -3
- package/lib/beacon/client/config.js +3 -6
- package/lib/beacon/client/config.js.map +1 -1
- package/lib/beacon/client/debug.d.ts +4 -3
- package/lib/beacon/client/debug.js +4 -45
- package/lib/beacon/client/debug.js.map +1 -1
- package/lib/beacon/client/events.d.ts +5 -2
- package/lib/beacon/client/events.js +32 -35
- package/lib/beacon/client/events.js.map +1 -1
- package/lib/beacon/client/index.d.ts +6 -3
- package/lib/beacon/client/index.js +2 -2
- package/lib/beacon/client/index.js.map +1 -1
- package/lib/beacon/client/lightclient.d.ts +4 -3
- package/lib/beacon/client/lightclient.js +4 -7
- package/lib/beacon/client/lightclient.js.map +1 -1
- package/lib/beacon/client/lodestar.d.ts +4 -3
- package/lib/beacon/client/lodestar.js +4 -7
- package/lib/beacon/client/lodestar.js.map +1 -1
- package/lib/beacon/client/node.d.ts +4 -3
- package/lib/beacon/client/node.js +4 -7
- package/lib/beacon/client/node.js.map +1 -1
- package/lib/beacon/client/proof.d.ts +5 -4
- package/lib/beacon/client/proof.js +5 -61
- package/lib/beacon/client/proof.js.map +1 -1
- package/lib/beacon/client/validator.d.ts +4 -3
- package/lib/beacon/client/validator.js +4 -7
- package/lib/beacon/client/validator.js.map +1 -1
- package/lib/beacon/index.d.ts +5 -5
- package/lib/beacon/index.js.map +1 -1
- package/lib/beacon/routes/beacon/block.d.ts +282 -164
- package/lib/beacon/routes/beacon/block.js +324 -116
- package/lib/beacon/routes/beacon/block.js.map +1 -1
- package/lib/beacon/routes/beacon/index.d.ts +6 -588
- package/lib/beacon/routes/beacon/index.js +16 -26
- package/lib/beacon/routes/beacon/index.js.map +1 -1
- package/lib/beacon/routes/beacon/pool.d.ts +155 -117
- package/lib/beacon/routes/beacon/pool.js +146 -42
- package/lib/beacon/routes/beacon/pool.js.map +1 -1
- package/lib/beacon/routes/beacon/rewards.d.ts +113 -101
- package/lib/beacon/routes/beacon/rewards.js +98 -63
- package/lib/beacon/routes/beacon/rewards.js.map +1 -1
- package/lib/beacon/routes/beacon/state.d.ts +172 -226
- package/lib/beacon/routes/beacon/state.js +204 -126
- package/lib/beacon/routes/beacon/state.js.map +1 -1
- package/lib/beacon/routes/config.d.ts +21 -36
- package/lib/beacon/routes/config.js +45 -24
- package/lib/beacon/routes/config.js.map +1 -1
- package/lib/beacon/routes/debug.d.ts +32 -95
- package/lib/beacon/routes/debug.js +87 -45
- package/lib/beacon/routes/debug.js.map +1 -1
- package/lib/beacon/routes/events.d.ts +20 -16
- package/lib/beacon/routes/events.js +39 -17
- package/lib/beacon/routes/events.js.map +1 -1
- package/lib/beacon/routes/index.d.ts +19 -19
- package/lib/beacon/routes/index.js +1 -0
- package/lib/beacon/routes/index.js.map +1 -1
- package/lib/beacon/routes/lightclient.d.ts +33 -55
- package/lib/beacon/routes/lightclient.js +107 -47
- package/lib/beacon/routes/lightclient.js.map +1 -1
- package/lib/beacon/routes/lodestar.d.ts +74 -148
- package/lib/beacon/routes/lodestar.js +126 -77
- package/lib/beacon/routes/lodestar.js.map +1 -1
- package/lib/beacon/routes/node.d.ts +48 -82
- package/lib/beacon/routes/node.js +90 -57
- package/lib/beacon/routes/node.js.map +1 -1
- package/lib/beacon/routes/proof.d.ts +25 -31
- package/lib/beacon/routes/proof.js +44 -24
- package/lib/beacon/routes/proof.js.map +1 -1
- package/lib/beacon/routes/validator.d.ts +547 -320
- package/lib/beacon/routes/validator.js +494 -213
- package/lib/beacon/routes/validator.js.map +1 -1
- package/lib/beacon/server/beacon.d.ts +3 -4
- package/lib/beacon/server/beacon.js +4 -57
- package/lib/beacon/server/beacon.js.map +1 -1
- package/lib/beacon/server/config.d.ts +3 -4
- package/lib/beacon/server/config.js +4 -5
- package/lib/beacon/server/config.js.map +1 -1
- package/lib/beacon/server/debug.d.ts +3 -4
- package/lib/beacon/server/debug.js +4 -54
- package/lib/beacon/server/debug.js.map +1 -1
- package/lib/beacon/server/events.d.ts +4 -4
- package/lib/beacon/server/events.js +17 -23
- package/lib/beacon/server/events.js.map +1 -1
- package/lib/beacon/server/index.d.ts +7 -8
- package/lib/beacon/server/index.js +13 -14
- package/lib/beacon/server/index.js.map +1 -1
- package/lib/beacon/server/lightclient.d.ts +3 -4
- package/lib/beacon/server/lightclient.js +4 -5
- package/lib/beacon/server/lightclient.js.map +1 -1
- package/lib/beacon/server/lodestar.d.ts +3 -4
- package/lib/beacon/server/lodestar.js +4 -5
- package/lib/beacon/server/lodestar.js.map +1 -1
- package/lib/beacon/server/node.d.ts +3 -4
- package/lib/beacon/server/node.js +4 -18
- package/lib/beacon/server/node.js.map +1 -1
- package/lib/beacon/server/proof.d.ts +3 -4
- package/lib/beacon/server/proof.js +4 -36
- package/lib/beacon/server/proof.js.map +1 -1
- package/lib/beacon/server/validator.d.ts +3 -4
- package/lib/beacon/server/validator.js +4 -21
- package/lib/beacon/server/validator.js.map +1 -1
- package/lib/builder/client.d.ts +4 -6
- package/lib/builder/client.js +3 -9
- package/lib/builder/client.js.map +1 -1
- package/lib/builder/index.d.ts +8 -5
- package/lib/builder/index.js +4 -1
- package/lib/builder/index.js.map +1 -1
- package/lib/builder/routes.d.ts +24 -38
- package/lib/builder/routes.js +77 -33
- package/lib/builder/routes.js.map +1 -1
- package/lib/builder/server/index.d.ts +6 -6
- package/lib/builder/server/index.js +7 -8
- package/lib/builder/server/index.js.map +1 -1
- package/lib/index.d.ts +9 -6
- package/lib/index.js +5 -4
- package/lib/index.js.map +1 -1
- package/lib/keymanager/client.d.ts +4 -3
- package/lib/keymanager/client.js +4 -7
- package/lib/keymanager/client.js.map +1 -1
- package/lib/keymanager/index.d.ts +5 -4
- package/lib/keymanager/index.js +1 -1
- package/lib/keymanager/index.js.map +1 -1
- package/lib/keymanager/routes.d.ts +155 -177
- package/lib/keymanager/routes.js +236 -123
- package/lib/keymanager/routes.js.map +1 -1
- package/lib/keymanager/server/index.d.ts +6 -6
- package/lib/keymanager/server/index.js +7 -8
- package/lib/keymanager/server/index.js.map +1 -1
- package/lib/server/index.d.ts +2 -0
- package/lib/server/index.js +3 -0
- package/lib/server/index.js.map +1 -0
- package/lib/utils/client/error.d.ts +6 -0
- package/lib/utils/client/error.js +8 -0
- package/lib/utils/client/error.js.map +1 -0
- package/lib/utils/client/httpClient.d.ts +35 -75
- package/lib/utils/client/httpClient.js +201 -153
- package/lib/utils/client/httpClient.js.map +1 -1
- package/lib/utils/client/index.d.ts +6 -2
- package/lib/utils/client/index.js +6 -2
- package/lib/utils/client/index.js.map +1 -1
- package/lib/utils/client/method.d.ts +11 -0
- package/lib/utils/client/method.js +27 -0
- package/lib/utils/client/method.js.map +1 -0
- package/lib/utils/client/request.d.ts +33 -0
- package/lib/utils/client/request.js +66 -0
- package/lib/utils/client/request.js.map +1 -0
- package/lib/utils/client/response.d.ts +35 -0
- package/lib/utils/client/response.js +166 -0
- package/lib/utils/client/response.js.map +1 -0
- package/lib/utils/codecs.d.ts +28 -0
- package/lib/utils/codecs.js +105 -0
- package/lib/utils/codecs.js.map +1 -0
- package/lib/utils/fork.d.ts +8 -0
- package/lib/utils/fork.js +35 -0
- package/lib/utils/fork.js.map +1 -0
- package/lib/utils/headers.d.ts +37 -0
- package/lib/utils/headers.js +134 -0
- package/lib/utils/headers.js.map +1 -0
- package/lib/utils/httpStatusCode.js.map +1 -0
- package/lib/utils/index.d.ts +1 -1
- package/lib/utils/index.js +1 -1
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/metadata.d.ts +88 -0
- package/lib/utils/metadata.js +126 -0
- package/lib/utils/metadata.js.map +1 -0
- package/lib/utils/schema.d.ts +31 -17
- package/lib/utils/schema.js +18 -6
- package/lib/utils/schema.js.map +1 -1
- package/lib/utils/serdes.d.ts +3 -0
- package/lib/utils/serdes.js +13 -0
- package/lib/utils/serdes.js.map +1 -1
- package/lib/utils/server/{errors.d.ts → error.d.ts} +2 -2
- package/lib/utils/server/{errors.js → error.js} +1 -1
- package/lib/utils/server/error.js.map +1 -0
- package/lib/utils/server/handler.d.ts +11 -0
- package/lib/utils/server/handler.js +109 -0
- package/lib/utils/server/handler.js.map +1 -0
- package/lib/utils/server/index.d.ts +5 -4
- package/lib/utils/server/index.js +5 -4
- package/lib/utils/server/index.js.map +1 -1
- package/lib/utils/server/method.d.ts +35 -0
- package/lib/utils/server/method.js +2 -0
- package/lib/utils/server/method.js.map +1 -0
- package/lib/utils/server/parser.d.ts +3 -0
- package/lib/utils/server/parser.js +20 -0
- package/lib/utils/server/parser.js.map +1 -0
- package/lib/utils/server/route.d.ts +20 -0
- package/lib/utils/server/route.js +19 -0
- package/lib/utils/server/route.js.map +1 -0
- package/lib/utils/types.d.ts +116 -104
- package/lib/utils/types.js +2 -155
- package/lib/utils/types.js.map +1 -1
- package/lib/utils/urlFormat.d.ts +2 -2
- package/lib/utils/urlFormat.js +3 -3
- package/lib/utils/urlFormat.js.map +1 -1
- package/lib/utils/wireFormat.d.ts +8 -0
- package/lib/utils/wireFormat.js +23 -0
- package/lib/utils/wireFormat.js.map +1 -0
- package/package.json +9 -6
- package/lib/interfaces.d.ts +0 -44
- package/lib/interfaces.js +0 -2
- package/lib/interfaces.js.map +0 -1
- package/lib/utils/acceptHeader.d.ts +0 -9
- package/lib/utils/acceptHeader.js +0 -62
- package/lib/utils/acceptHeader.js.map +0 -1
- package/lib/utils/client/client.d.ts +0 -29
- package/lib/utils/client/client.js +0 -88
- package/lib/utils/client/client.js.map +0 -1
- package/lib/utils/client/httpStatusCode.js.map +0 -1
- package/lib/utils/routes.d.ts +0 -6
- package/lib/utils/routes.js +0 -31
- package/lib/utils/routes.js.map +0 -1
- package/lib/utils/server/errors.js.map +0 -1
- package/lib/utils/server/genericJsonServer.d.ts +0 -13
- package/lib/utils/server/genericJsonServer.js +0 -32
- package/lib/utils/server/genericJsonServer.js.map +0 -1
- package/lib/utils/server/registerRoute.d.ts +0 -3
- package/lib/utils/server/registerRoute.js +0 -13
- package/lib/utils/server/registerRoute.js.map +0 -1
- package/lib/utils/server/types.d.ts +0 -22
- package/lib/utils/server/types.js +0 -2
- package/lib/utils/server/types.js.map +0 -1
- /package/lib/utils/{client/httpStatusCode.d.ts → httpStatusCode.d.ts} +0 -0
- /package/lib/utils/{client/httpStatusCode.js → httpStatusCode.js} +0 -0
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
export * from "./client.js";
|
|
2
|
-
export * from "./httpClient.js";
|
|
3
1
|
export * from "./fetch.js";
|
|
2
|
+
export * from "./httpClient.js";
|
|
3
|
+
export * from "./method.js";
|
|
4
|
+
export * from "./metrics.js";
|
|
5
|
+
export * from "./request.js";
|
|
6
|
+
export * from "./response.js";
|
|
7
|
+
export * from "./error.js";
|
|
4
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
export * from "./client.js";
|
|
2
|
-
export * from "./httpClient.js";
|
|
3
1
|
export * from "./fetch.js";
|
|
2
|
+
export * from "./httpClient.js";
|
|
3
|
+
export * from "./method.js";
|
|
4
|
+
export * from "./metrics.js";
|
|
5
|
+
export * from "./request.js";
|
|
6
|
+
export * from "./response.js";
|
|
7
|
+
export * from "./error.js";
|
|
4
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Endpoint, HasOnlyOptionalProps, RouteDefinition, RouteDefinitions } from "../types.js";
|
|
2
|
+
import { IHttpClient } from "./httpClient.js";
|
|
3
|
+
import { ApiRequestInit } from "./request.js";
|
|
4
|
+
import { ApiResponse } from "./response.js";
|
|
5
|
+
export type ApiClientMethod<E extends Endpoint> = E["args"] extends void ? (init?: ApiRequestInit) => Promise<ApiResponse<E>> : HasOnlyOptionalProps<E["args"]> extends true ? (args?: E["args"], init?: ApiRequestInit) => Promise<ApiResponse<E>> : (args: E["args"], init?: ApiRequestInit) => Promise<ApiResponse<E>>;
|
|
6
|
+
export type ApiClientMethods<Es extends Record<string, Endpoint>> = {
|
|
7
|
+
[K in keyof Es]: ApiClientMethod<Es[K]>;
|
|
8
|
+
};
|
|
9
|
+
export declare function createApiClientMethod<E extends Endpoint>(definition: RouteDefinition<E>, client: IHttpClient, operationId: string): ApiClientMethod<E>;
|
|
10
|
+
export declare function createApiClientMethods<Es extends Record<string, Endpoint>>(definitions: RouteDefinitions<Es>, client: IHttpClient): ApiClientMethods<Es>;
|
|
11
|
+
//# sourceMappingURL=method.d.ts.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { mapValues } from "@lodestar/utils";
|
|
2
|
+
import { compileRouteUrlFormatter } from "../urlFormat.js";
|
|
3
|
+
export function createApiClientMethod(definition, client, operationId) {
|
|
4
|
+
const urlFormatter = compileRouteUrlFormatter(definition.url);
|
|
5
|
+
const definitionExtended = {
|
|
6
|
+
...definition,
|
|
7
|
+
urlFormatter,
|
|
8
|
+
operationId,
|
|
9
|
+
};
|
|
10
|
+
// If the request args is void, then completely remove the args parameter
|
|
11
|
+
if (definition.req.schema.body === undefined &&
|
|
12
|
+
definition.req.schema.params === undefined &&
|
|
13
|
+
definition.req.schema.query === undefined) {
|
|
14
|
+
return (async (init) => {
|
|
15
|
+
return client.request(definitionExtended, undefined, init);
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return async (args, init) => {
|
|
19
|
+
return client.request(definitionExtended, args ?? {}, init);
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export function createApiClientMethods(definitions, client) {
|
|
23
|
+
return mapValues(definitions, (definition, operationId) => {
|
|
24
|
+
return createApiClientMethod(definition, client, operationId);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=method.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"method.js","sourceRoot":"","sources":["../../../src/utils/client/method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAC,wBAAwB,EAAC,MAAM,iBAAiB,CAAC;AAazD,MAAM,UAAU,qBAAqB,CACnC,UAA8B,EAC9B,MAAmB,EACnB,WAAmB;IAEnB,MAAM,YAAY,GAAG,wBAAwB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9D,MAAM,kBAAkB,GAAG;QACzB,GAAG,UAAU;QACb,YAAY;QACZ,WAAW;KACZ,CAAC;IAEF,yEAAyE;IACzE,IACE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;QACxC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS;QAC1C,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,EACzC,CAAC;QACD,OAAO,CAAC,KAAK,EAAE,IAAqB,EAAE,EAAE;YACtC,OAAO,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC7D,CAAC,CAAuB,CAAC;IAC3B,CAAC;IACD,OAAO,KAAK,EAAE,IAAgB,EAAE,IAAqB,EAAE,EAAE;QACvD,OAAO,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,WAAiC,EACjC,MAAmB;IAEnB,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,EAAE;QACxD,OAAO,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAqB,CAAC,CAAC;IAC1E,CAAC,CAAoC,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Endpoint, RouteDefinition } from "../types.js";
|
|
2
|
+
import { WireFormat } from "../wireFormat.js";
|
|
3
|
+
export type ExtraRequestInit = {
|
|
4
|
+
/** Wire format to use in HTTP requests to server */
|
|
5
|
+
requestWireFormat?: `${WireFormat}`;
|
|
6
|
+
/** Preferred wire format for HTTP responses from server */
|
|
7
|
+
responseWireFormat?: `${WireFormat}`;
|
|
8
|
+
/** Timeout of requests in milliseconds */
|
|
9
|
+
timeoutMs?: number;
|
|
10
|
+
/** Number of retries per request */
|
|
11
|
+
retries?: number;
|
|
12
|
+
/** Retry delay, only relevant if retries > 0 */
|
|
13
|
+
retryDelay?: number;
|
|
14
|
+
};
|
|
15
|
+
export type OptionalRequestInit = {
|
|
16
|
+
bearerToken?: string;
|
|
17
|
+
};
|
|
18
|
+
export type UrlInit = ApiRequestInit & {
|
|
19
|
+
baseUrl?: string;
|
|
20
|
+
};
|
|
21
|
+
export type UrlInitRequired = ApiRequestInit & {
|
|
22
|
+
urlIndex: number;
|
|
23
|
+
baseUrl: string;
|
|
24
|
+
};
|
|
25
|
+
export type ApiRequestInit = ExtraRequestInit & OptionalRequestInit & RequestInit;
|
|
26
|
+
export type ApiRequestInitRequired = Required<ExtraRequestInit> & UrlInitRequired;
|
|
27
|
+
/** Route definition with computed extra properties */
|
|
28
|
+
export type RouteDefinitionExtra<E extends Endpoint> = RouteDefinition<E> & {
|
|
29
|
+
operationId: string;
|
|
30
|
+
urlFormatter: (args: Record<string, string | number>) => string;
|
|
31
|
+
};
|
|
32
|
+
export declare function createApiRequest<E extends Endpoint>(definition: RouteDefinitionExtra<E>, args: E["args"], init: ApiRequestInitRequired): Request;
|
|
33
|
+
//# sourceMappingURL=request.d.ts.map
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { HttpHeader, MediaType, mergeHeaders, setAuthorizationHeader } from "../headers.js";
|
|
2
|
+
import { isRequestWithoutBody, } from "../types.js";
|
|
3
|
+
import { WireFormat } from "../wireFormat.js";
|
|
4
|
+
import { stringifyQuery, urlJoin } from "./format.js";
|
|
5
|
+
export function createApiRequest(definition, args, init) {
|
|
6
|
+
const headers = new Headers();
|
|
7
|
+
let req;
|
|
8
|
+
if (isRequestWithoutBody(definition)) {
|
|
9
|
+
req = definition.req.writeReq(args);
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
const requestWireFormat = definition.req.onlySupport ?? init.requestWireFormat;
|
|
13
|
+
switch (requestWireFormat) {
|
|
14
|
+
case WireFormat.json:
|
|
15
|
+
req = definition.req.writeReqJson(args);
|
|
16
|
+
if (req.body) {
|
|
17
|
+
req.body = JSON.stringify(req.body);
|
|
18
|
+
headers.set(HttpHeader.ContentType, MediaType.json);
|
|
19
|
+
}
|
|
20
|
+
break;
|
|
21
|
+
case WireFormat.ssz:
|
|
22
|
+
req = definition.req.writeReqSsz(args);
|
|
23
|
+
if (req.body) {
|
|
24
|
+
headers.set(HttpHeader.ContentType, MediaType.ssz);
|
|
25
|
+
}
|
|
26
|
+
break;
|
|
27
|
+
default:
|
|
28
|
+
throw Error(`Invalid requestWireFormat: ${requestWireFormat}`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
const queryString = req.query ? stringifyQuery(req.query) : "";
|
|
32
|
+
const url = new URL(urlJoin(init.baseUrl, definition.urlFormatter(req.params ?? {})) + (queryString ? `?${queryString}` : ""));
|
|
33
|
+
setAuthorizationHeader(url, headers, init);
|
|
34
|
+
if (definition.resp.isEmpty) {
|
|
35
|
+
// Do not set Accept header
|
|
36
|
+
}
|
|
37
|
+
else if (definition.resp.onlySupport !== undefined) {
|
|
38
|
+
switch (definition.resp.onlySupport) {
|
|
39
|
+
case WireFormat.json:
|
|
40
|
+
headers.set(HttpHeader.Accept, MediaType.json);
|
|
41
|
+
break;
|
|
42
|
+
case WireFormat.ssz:
|
|
43
|
+
headers.set(HttpHeader.Accept, MediaType.ssz);
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
switch (init.responseWireFormat) {
|
|
49
|
+
case WireFormat.json:
|
|
50
|
+
headers.set(HttpHeader.Accept, `${MediaType.json};q=1,${MediaType.ssz};q=0.9`);
|
|
51
|
+
break;
|
|
52
|
+
case WireFormat.ssz:
|
|
53
|
+
headers.set(HttpHeader.Accept, `${MediaType.ssz};q=1,${MediaType.json};q=0.9`);
|
|
54
|
+
break;
|
|
55
|
+
default:
|
|
56
|
+
throw Error(`Invalid responseWireFormat: ${init.responseWireFormat}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return new Request(url, {
|
|
60
|
+
...init,
|
|
61
|
+
method: definition.method,
|
|
62
|
+
headers: mergeHeaders(headers, req.headers, init.headers),
|
|
63
|
+
body: req.body,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/utils/client/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,sBAAsB,EAAC,MAAM,eAAe,CAAC;AAC1F,OAAO,EAML,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,cAAc,EAAE,OAAO,EAAC,MAAM,aAAa,CAAC;AA8BpD,MAAM,UAAU,gBAAgB,CAC9B,UAAmC,EACnC,IAAe,EACf,IAA4B;IAE5B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,IAAI,GAAiB,CAAC;IAEtB,IAAI,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;QACrC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,MAAM,iBAAiB,GAAI,UAAU,CAAC,GAA+B,CAAC,WAAW,IAAI,IAAI,CAAC,iBAAiB,CAAC;QAC5G,QAAQ,iBAAiB,EAAE,CAAC;YAC1B,KAAK,UAAU,CAAC,IAAI;gBAClB,GAAG,GAAI,UAAU,CAAC,GAA6B,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBACnE,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;oBACb,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACpC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;gBACtD,CAAC;gBACD,MAAM;YACR,KAAK,UAAU,CAAC,GAAG;gBACjB,GAAG,GAAI,UAAU,CAAC,GAA4B,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACjE,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;oBACb,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;gBACrD,CAAC;gBACD,MAAM;YACR;gBACE,MAAM,KAAK,CAAC,8BAA8B,iBAAiB,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IACD,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,MAAM,GAAG,GAAG,IAAI,GAAG,CACjB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAC1G,CAAC;IACF,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAE3C,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,2BAA2B;IAC7B,CAAC;SAAM,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACrD,QAAQ,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,KAAK,UAAU,CAAC,IAAI;gBAClB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC/C,MAAM;YACR,KAAK,UAAU,CAAC,GAAG;gBACjB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;gBAC9C,MAAM;QACV,CAAC;IACH,CAAC;SAAM,CAAC;QACN,QAAQ,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAChC,KAAK,UAAU,CAAC,IAAI;gBAClB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,QAAQ,SAAS,CAAC,GAAG,QAAQ,CAAC,CAAC;gBAC/E,MAAM;YACR,KAAK,UAAU,CAAC,GAAG;gBACjB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,QAAQ,SAAS,CAAC,IAAI,QAAQ,CAAC,CAAC;gBAC/E,MAAM;YACR;gBACE,MAAM,KAAK,CAAC,+BAA+B,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE;QACtB,GAAG,IAAI;QACP,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;QACzD,IAAI,EAAE,GAAG,CAAC,IAAgB;KAC3B,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Endpoint } from "../types.js";
|
|
2
|
+
import { WireFormat } from "../wireFormat.js";
|
|
3
|
+
import { ApiError } from "./error.js";
|
|
4
|
+
import { RouteDefinitionExtra } from "./request.js";
|
|
5
|
+
export type RawBody = {
|
|
6
|
+
type: WireFormat.json;
|
|
7
|
+
value: unknown;
|
|
8
|
+
} | {
|
|
9
|
+
type: WireFormat.ssz;
|
|
10
|
+
value: Uint8Array;
|
|
11
|
+
} | {
|
|
12
|
+
type?: never;
|
|
13
|
+
value?: never;
|
|
14
|
+
};
|
|
15
|
+
export declare class ApiResponse<E extends Endpoint> extends Response {
|
|
16
|
+
private definition;
|
|
17
|
+
private _wireFormat?;
|
|
18
|
+
private _rawBody?;
|
|
19
|
+
private _errorBody?;
|
|
20
|
+
private _meta?;
|
|
21
|
+
private _value?;
|
|
22
|
+
constructor(definition: RouteDefinitionExtra<E>, body?: BodyInit | null, init?: ResponseInit);
|
|
23
|
+
wireFormat(): WireFormat | null;
|
|
24
|
+
rawBody(): Promise<RawBody>;
|
|
25
|
+
meta(): E["meta"];
|
|
26
|
+
value(): E["return"];
|
|
27
|
+
ssz(): Uint8Array;
|
|
28
|
+
json(): Awaited<ReturnType<Response["json"]>>;
|
|
29
|
+
assertOk(): void;
|
|
30
|
+
error(): ApiError | null;
|
|
31
|
+
errorBody(): Promise<string>;
|
|
32
|
+
private resolvedRawBody;
|
|
33
|
+
private resolvedErrorBody;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=response.d.ts.map
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { HeadersExtra, HttpHeader, parseContentTypeHeader } from "../headers.js";
|
|
2
|
+
import { HttpStatusCode } from "../httpStatusCode.js";
|
|
3
|
+
import { WireFormat, getWireFormat } from "../wireFormat.js";
|
|
4
|
+
import { ApiError } from "./error.js";
|
|
5
|
+
export class ApiResponse extends Response {
|
|
6
|
+
constructor(definition, body, init) {
|
|
7
|
+
super(body, init);
|
|
8
|
+
this.definition = definition;
|
|
9
|
+
}
|
|
10
|
+
wireFormat() {
|
|
11
|
+
if (this._wireFormat === undefined) {
|
|
12
|
+
if (this.definition.resp.isEmpty) {
|
|
13
|
+
return (this._wireFormat = null);
|
|
14
|
+
}
|
|
15
|
+
const contentType = this.headers.get(HttpHeader.ContentType);
|
|
16
|
+
if (contentType === null) {
|
|
17
|
+
if (this.status === HttpStatusCode.NO_CONTENT) {
|
|
18
|
+
return (this._wireFormat = null);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
throw Error("Content-Type header is required in response");
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
const mediaType = parseContentTypeHeader(contentType);
|
|
25
|
+
if (mediaType === null) {
|
|
26
|
+
throw Error(`Unsupported response media type: ${contentType.split(";", 1)[0]}`);
|
|
27
|
+
}
|
|
28
|
+
const wireFormat = getWireFormat(mediaType);
|
|
29
|
+
const { onlySupport } = this.definition.resp;
|
|
30
|
+
if (onlySupport !== undefined && wireFormat !== onlySupport) {
|
|
31
|
+
throw Error(`Method only supports ${onlySupport.toUpperCase()} responses`);
|
|
32
|
+
}
|
|
33
|
+
this._wireFormat = wireFormat;
|
|
34
|
+
}
|
|
35
|
+
return this._wireFormat;
|
|
36
|
+
}
|
|
37
|
+
async rawBody() {
|
|
38
|
+
this.assertOk();
|
|
39
|
+
if (!this._rawBody) {
|
|
40
|
+
switch (this.wireFormat()) {
|
|
41
|
+
case WireFormat.json:
|
|
42
|
+
this._rawBody = {
|
|
43
|
+
type: WireFormat.json,
|
|
44
|
+
value: await super.json(),
|
|
45
|
+
};
|
|
46
|
+
break;
|
|
47
|
+
case WireFormat.ssz:
|
|
48
|
+
this._rawBody = {
|
|
49
|
+
type: WireFormat.ssz,
|
|
50
|
+
value: new Uint8Array(await this.arrayBuffer()),
|
|
51
|
+
};
|
|
52
|
+
break;
|
|
53
|
+
default:
|
|
54
|
+
this._rawBody = {};
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return this._rawBody;
|
|
58
|
+
}
|
|
59
|
+
meta() {
|
|
60
|
+
this.assertOk();
|
|
61
|
+
if (!this._meta) {
|
|
62
|
+
switch (this.wireFormat()) {
|
|
63
|
+
case WireFormat.json: {
|
|
64
|
+
const rawBody = this.resolvedRawBody();
|
|
65
|
+
const metaJson = this.definition.resp.transform
|
|
66
|
+
? this.definition.resp.transform.fromResponse(rawBody.value).meta
|
|
67
|
+
: rawBody.value;
|
|
68
|
+
this._meta = this.definition.resp.meta.fromJson(metaJson);
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
case WireFormat.ssz:
|
|
72
|
+
this._meta = this.definition.resp.meta.fromHeaders(new HeadersExtra(this.headers));
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return this._meta;
|
|
77
|
+
}
|
|
78
|
+
value() {
|
|
79
|
+
this.assertOk();
|
|
80
|
+
if (!this._value) {
|
|
81
|
+
const rawBody = this.resolvedRawBody();
|
|
82
|
+
const meta = this.meta();
|
|
83
|
+
switch (rawBody.type) {
|
|
84
|
+
case WireFormat.json: {
|
|
85
|
+
const dataJson = this.definition.resp.transform
|
|
86
|
+
? this.definition.resp.transform.fromResponse(rawBody.value).data
|
|
87
|
+
: rawBody.value?.data;
|
|
88
|
+
this._value = this.definition.resp.data.fromJson(dataJson, meta);
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
case WireFormat.ssz:
|
|
92
|
+
this._value = this.definition.resp.data.deserialize(rawBody.value, meta);
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return this._value;
|
|
97
|
+
}
|
|
98
|
+
ssz() {
|
|
99
|
+
this.assertOk();
|
|
100
|
+
const rawBody = this.resolvedRawBody();
|
|
101
|
+
switch (rawBody.type) {
|
|
102
|
+
case WireFormat.json:
|
|
103
|
+
return this.definition.resp.data.serialize(this.value(), this.meta());
|
|
104
|
+
case WireFormat.ssz:
|
|
105
|
+
return rawBody.value;
|
|
106
|
+
default:
|
|
107
|
+
return new Uint8Array();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
json() {
|
|
111
|
+
this.assertOk();
|
|
112
|
+
const rawBody = this.resolvedRawBody();
|
|
113
|
+
switch (rawBody.type) {
|
|
114
|
+
case WireFormat.json:
|
|
115
|
+
return rawBody.value;
|
|
116
|
+
case WireFormat.ssz:
|
|
117
|
+
return this.definition.resp.data.toJson(this.value(), this.meta());
|
|
118
|
+
default:
|
|
119
|
+
return {};
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
assertOk() {
|
|
123
|
+
if (!this.ok) {
|
|
124
|
+
throw this.error();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
error() {
|
|
128
|
+
if (this.ok) {
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
return new ApiError(getErrorMessage(this.resolvedErrorBody()), this.status, this.definition.operationId);
|
|
132
|
+
}
|
|
133
|
+
async errorBody() {
|
|
134
|
+
if (!this._errorBody) {
|
|
135
|
+
this._errorBody = await this.text();
|
|
136
|
+
}
|
|
137
|
+
return this._errorBody;
|
|
138
|
+
}
|
|
139
|
+
resolvedRawBody() {
|
|
140
|
+
if (!this._rawBody) {
|
|
141
|
+
throw Error("rawBody() must be called first");
|
|
142
|
+
}
|
|
143
|
+
return this._rawBody;
|
|
144
|
+
}
|
|
145
|
+
resolvedErrorBody() {
|
|
146
|
+
if (!this._errorBody) {
|
|
147
|
+
throw Error("errorBody() must be called first");
|
|
148
|
+
}
|
|
149
|
+
return this._errorBody;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
function getErrorMessage(errBody) {
|
|
153
|
+
try {
|
|
154
|
+
const errJson = JSON.parse(errBody);
|
|
155
|
+
if (errJson.message) {
|
|
156
|
+
return errJson.message;
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
return errBody;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
catch (e) {
|
|
163
|
+
return errBody;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/utils/client/response.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ArrayType, Type } from "@chainsafe/ssz";
|
|
2
|
+
import { ForkName } from "@lodestar/params";
|
|
3
|
+
import { RequestWithoutBodyCodec, RequestWithBodyCodec, ResponseCodec, ResponseDataCodec, ResponseMetadataCodec, Endpoint, SszRequestMethods } from "./types.js";
|
|
4
|
+
export type EmptyArgs = void;
|
|
5
|
+
export type EmptyRequest = Record<never, never>;
|
|
6
|
+
export type EmptyResponseData = void;
|
|
7
|
+
export type EmptyMeta = void;
|
|
8
|
+
export type AnyEndpoint = Endpoint<any, any, any, any, any>;
|
|
9
|
+
export type EmptyRequestEndpoint = Endpoint<any, EmptyArgs, EmptyRequest, any, any>;
|
|
10
|
+
export type EmptyResponseEndpoint = Endpoint<any, any, any, EmptyResponseData, EmptyMeta>;
|
|
11
|
+
/** Shortcut for routes that have no params, query */
|
|
12
|
+
export declare const EmptyRequestCodec: RequestWithoutBodyCodec<EmptyRequestEndpoint>;
|
|
13
|
+
export declare function JsonOnlyReq<E extends Endpoint>(req: Omit<RequestWithBodyCodec<E>, keyof SszRequestMethods<E>>): RequestWithBodyCodec<E>;
|
|
14
|
+
export declare const EmptyResponseDataCodec: ResponseDataCodec<EmptyResponseData, EmptyMeta>;
|
|
15
|
+
export declare const EmptyMetaCodec: ResponseMetadataCodec<EmptyMeta>;
|
|
16
|
+
export declare const EmptyResponseCodec: ResponseCodec<EmptyResponseEndpoint>;
|
|
17
|
+
export declare function ArrayOf<T>(elementType: Type<T>, limit?: number): ArrayType<Type<T>, unknown, unknown>;
|
|
18
|
+
export declare function WithMeta<T, M extends {
|
|
19
|
+
version: ForkName;
|
|
20
|
+
}>(getType: (m: M) => Type<T>): ResponseDataCodec<T, M>;
|
|
21
|
+
export declare function WithVersion<T, M extends {
|
|
22
|
+
version: ForkName;
|
|
23
|
+
}>(getType: (v: ForkName) => Type<T>): ResponseDataCodec<T, M>;
|
|
24
|
+
export declare function JsonOnlyResp<E extends Endpoint>(resp: Omit<ResponseCodec<E>, "data"> & {
|
|
25
|
+
data: Omit<ResponseCodec<E>["data"], "serialize" | "deserialize">;
|
|
26
|
+
}): ResponseCodec<E>;
|
|
27
|
+
export declare const JsonOnlyResponseCodec: ResponseCodec<AnyEndpoint>;
|
|
28
|
+
//# sourceMappingURL=codecs.d.ts.map
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
2
|
+
import { ListBasicType, ListCompositeType, isBasicType, isCompositeType } from "@chainsafe/ssz";
|
|
3
|
+
import { objectToExpectedCase } from "@lodestar/utils";
|
|
4
|
+
import { WireFormat } from "./wireFormat.js";
|
|
5
|
+
/** Shortcut for routes that have no params, query */
|
|
6
|
+
export const EmptyRequestCodec = {
|
|
7
|
+
writeReq: () => ({}),
|
|
8
|
+
parseReq: () => { },
|
|
9
|
+
schema: {},
|
|
10
|
+
};
|
|
11
|
+
export function JsonOnlyReq(req) {
|
|
12
|
+
return {
|
|
13
|
+
...req,
|
|
14
|
+
writeReqSsz: () => {
|
|
15
|
+
throw Error("Not implemented");
|
|
16
|
+
},
|
|
17
|
+
parseReqSsz: () => {
|
|
18
|
+
throw Error("Not implemented");
|
|
19
|
+
},
|
|
20
|
+
onlySupport: WireFormat.json,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export const EmptyResponseDataCodec = {
|
|
24
|
+
toJson: () => { },
|
|
25
|
+
fromJson: () => { },
|
|
26
|
+
serialize: () => new Uint8Array(),
|
|
27
|
+
deserialize: () => { },
|
|
28
|
+
};
|
|
29
|
+
export const EmptyMetaCodec = {
|
|
30
|
+
toJson: () => { },
|
|
31
|
+
fromJson: () => { },
|
|
32
|
+
toHeadersObject: () => ({}),
|
|
33
|
+
fromHeaders: () => { },
|
|
34
|
+
};
|
|
35
|
+
export const EmptyResponseCodec = {
|
|
36
|
+
data: EmptyResponseDataCodec,
|
|
37
|
+
meta: EmptyMetaCodec,
|
|
38
|
+
isEmpty: true,
|
|
39
|
+
};
|
|
40
|
+
export function ArrayOf(elementType, limit = Infinity) {
|
|
41
|
+
if (isCompositeType(elementType)) {
|
|
42
|
+
return new ListCompositeType(elementType, limit);
|
|
43
|
+
}
|
|
44
|
+
else if (isBasicType(elementType)) {
|
|
45
|
+
return new ListBasicType(elementType, limit);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
throw Error(`Unknown type ${elementType.typeName}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export function WithMeta(getType) {
|
|
52
|
+
return {
|
|
53
|
+
toJson: (data, meta) => getType(meta).toJson(data),
|
|
54
|
+
fromJson: (data, meta) => getType(meta).fromJson(data),
|
|
55
|
+
serialize: (data, meta) => getType(meta).serialize(data),
|
|
56
|
+
deserialize: (data, meta) => getType(meta).deserialize(data),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
export function WithVersion(getType) {
|
|
60
|
+
return {
|
|
61
|
+
toJson: (data, meta) => getType(meta.version).toJson(data),
|
|
62
|
+
fromJson: (data, meta) => getType(meta.version).fromJson(data),
|
|
63
|
+
serialize: (data, meta) => getType(meta.version).serialize(data),
|
|
64
|
+
deserialize: (data, meta) => getType(meta.version).deserialize(data),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
export function JsonOnlyResp(resp) {
|
|
68
|
+
return {
|
|
69
|
+
...resp,
|
|
70
|
+
data: {
|
|
71
|
+
...resp.data,
|
|
72
|
+
serialize: () => {
|
|
73
|
+
throw Error("Not implemented");
|
|
74
|
+
},
|
|
75
|
+
deserialize: () => {
|
|
76
|
+
throw Error("Not implemented");
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
onlySupport: WireFormat.json,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
export const JsonOnlyResponseCodec = {
|
|
83
|
+
data: {
|
|
84
|
+
toJson: (data) => {
|
|
85
|
+
// JSON fields use snake case across all existing routes
|
|
86
|
+
return objectToExpectedCase(data, "snake");
|
|
87
|
+
},
|
|
88
|
+
fromJson: (data) => {
|
|
89
|
+
if (typeof data !== "object" || data === null) {
|
|
90
|
+
throw Error("JSON must be of type object");
|
|
91
|
+
}
|
|
92
|
+
// All JSON inside the JS code must be camel case
|
|
93
|
+
return objectToExpectedCase(data, "camel");
|
|
94
|
+
},
|
|
95
|
+
serialize: () => {
|
|
96
|
+
throw Error("Not implemented");
|
|
97
|
+
},
|
|
98
|
+
deserialize: () => {
|
|
99
|
+
throw Error("Not implemented");
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
meta: EmptyMetaCodec,
|
|
103
|
+
onlySupport: WireFormat.json,
|
|
104
|
+
};
|
|
105
|
+
//# sourceMappingURL=codecs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codecs.js","sourceRoot":"","sources":["../../src/utils/codecs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ForkName } from "@lodestar/params";
|
|
2
|
+
import { allForks } from "@lodestar/types";
|
|
3
|
+
export declare function toForkName(version: string): ForkName;
|
|
4
|
+
export declare function getLightClientForkTypes(fork: ForkName): allForks.AllForksLightClientSSZTypes;
|
|
5
|
+
export declare function getExecutionForkTypes(fork: ForkName): allForks.AllForksExecutionSSZTypes;
|
|
6
|
+
export declare function getBlindedForkTypes(fork: ForkName): allForks.AllForksBlindedSSZTypes;
|
|
7
|
+
export declare function getBlobsForkTypes(fork: ForkName): allForks.AllForksBlobsSSZTypes;
|
|
8
|
+
//# sourceMappingURL=fork.d.ts.map
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ForkName, isForkBlobs, isForkExecution, isForkLightClient } from "@lodestar/params";
|
|
2
|
+
import { ssz } from "@lodestar/types";
|
|
3
|
+
export function toForkName(version) {
|
|
4
|
+
// Teku returns fork as UPPERCASE
|
|
5
|
+
version = version.toLowerCase();
|
|
6
|
+
// Un-safe external data, validate version is known ForkName value
|
|
7
|
+
if (!(version in ForkName))
|
|
8
|
+
throw Error(`Invalid version ${version}`);
|
|
9
|
+
return version;
|
|
10
|
+
}
|
|
11
|
+
export function getLightClientForkTypes(fork) {
|
|
12
|
+
if (!isForkLightClient(fork)) {
|
|
13
|
+
throw Error(`Invalid fork=${fork} for lightclient fork types`);
|
|
14
|
+
}
|
|
15
|
+
return ssz.allForksLightClient[fork];
|
|
16
|
+
}
|
|
17
|
+
export function getExecutionForkTypes(fork) {
|
|
18
|
+
if (!isForkExecution(fork)) {
|
|
19
|
+
throw Error(`Invalid fork=${fork} for execution fork types`);
|
|
20
|
+
}
|
|
21
|
+
return ssz.allForksExecution[fork];
|
|
22
|
+
}
|
|
23
|
+
export function getBlindedForkTypes(fork) {
|
|
24
|
+
if (!isForkExecution(fork)) {
|
|
25
|
+
throw Error(`Invalid fork=${fork} for blinded fork types`);
|
|
26
|
+
}
|
|
27
|
+
return ssz.allForksBlinded[fork];
|
|
28
|
+
}
|
|
29
|
+
export function getBlobsForkTypes(fork) {
|
|
30
|
+
if (!isForkBlobs(fork)) {
|
|
31
|
+
throw Error(`Invalid fork=${fork} for blobs fork types`);
|
|
32
|
+
}
|
|
33
|
+
return ssz.allForksBlobs[fork];
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=fork.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fork.js","sourceRoot":"","sources":["../../src/utils/fork.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAW,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAE9C,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,iCAAiC;IACjC,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAEhC,kEAAkE;IAClE,IAAI,CAAC,CAAC,OAAO,IAAI,QAAQ,CAAC;QAAE,MAAM,KAAK,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC;IAEtE,OAAO,OAAmB,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAc;IACpD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,KAAK,CAAC,gBAAgB,IAAI,6BAA6B,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAc;IAClD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,KAAK,CAAC,gBAAgB,IAAI,2BAA2B,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAc;IAChD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,KAAK,CAAC,gBAAgB,IAAI,yBAAyB,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,GAAG,CAAC,eAAe,CAAC,IAAI,CAAqC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAc;IAC9C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,KAAK,CAAC,gBAAgB,IAAI,uBAAuB,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export declare enum HttpHeader {
|
|
2
|
+
ContentType = "content-type",
|
|
3
|
+
Accept = "accept",
|
|
4
|
+
Authorization = "authorization"
|
|
5
|
+
}
|
|
6
|
+
export declare enum MediaType {
|
|
7
|
+
json = "application/json",
|
|
8
|
+
ssz = "application/octet-stream"
|
|
9
|
+
}
|
|
10
|
+
export declare const SUPPORTED_MEDIA_TYPES: MediaType[];
|
|
11
|
+
export declare function parseContentTypeHeader(contentType?: string): MediaType | null;
|
|
12
|
+
export declare function parseAcceptHeader(accept?: string, supported?: MediaType[]): MediaType | null;
|
|
13
|
+
export declare function setAuthorizationHeader(url: URL, headers: Headers, { bearerToken }: {
|
|
14
|
+
bearerToken?: string;
|
|
15
|
+
}): void;
|
|
16
|
+
export declare function mergeHeaders(...headersList: (HeadersInit | undefined)[]): Headers;
|
|
17
|
+
/**
|
|
18
|
+
* Get header from request headers, by default an error will be thrown if the header
|
|
19
|
+
* is not present. The header can be marked as optional in which case the return value
|
|
20
|
+
* might be `undefined` but no error will be thrown if header is missing.
|
|
21
|
+
*/
|
|
22
|
+
export declare function fromHeaders<T extends Record<string, string | undefined>, R extends boolean = true>(headers: T, name: Extract<keyof T, string>, required?: R): R extends true ? string : string | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Extension of Headers object returned by Fetch API
|
|
25
|
+
*/
|
|
26
|
+
export declare class HeadersExtra extends Headers {
|
|
27
|
+
/**
|
|
28
|
+
* Get required header from response headers
|
|
29
|
+
*/
|
|
30
|
+
getRequired(name: string): string;
|
|
31
|
+
/**
|
|
32
|
+
* Get optional header from response headers.
|
|
33
|
+
* Return default value if it does not exist
|
|
34
|
+
*/
|
|
35
|
+
getOrDefault(name: string, defaultValue: string): string;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=headers.d.ts.map
|