generated from VLADIMIR/template_frontend
gen client
This commit is contained in:
@@ -0,0 +1,9 @@
|
|||||||
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-ts_proto v2.12.0
|
||||||
|
// protoc v7.35.1
|
||||||
|
// source: google/api/annotations.proto
|
||||||
|
|
||||||
|
/* eslint-disable */
|
||||||
|
|
||||||
|
export const protobufPackage = "google.api";
|
||||||
@@ -0,0 +1,802 @@
|
|||||||
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-ts_proto v2.12.0
|
||||||
|
// protoc v7.35.1
|
||||||
|
// source: google/api/http.proto
|
||||||
|
|
||||||
|
/* eslint-disable */
|
||||||
|
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
||||||
|
|
||||||
|
export const protobufPackage = "google.api";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines the HTTP configuration for an API service. It contains a list of
|
||||||
|
* [HttpRule][google.api.HttpRule], each specifying the mapping of an RPC method
|
||||||
|
* to one or more HTTP REST API methods.
|
||||||
|
*/
|
||||||
|
export interface Http {
|
||||||
|
/**
|
||||||
|
* A list of HTTP configuration rules that apply to individual API methods.
|
||||||
|
*
|
||||||
|
* **NOTE:** All service configuration rules follow "last one wins" order.
|
||||||
|
*/
|
||||||
|
rules?:
|
||||||
|
| HttpRule[]
|
||||||
|
| undefined;
|
||||||
|
/**
|
||||||
|
* When set to true, URL path parameters will be fully URI-decoded except in
|
||||||
|
* cases of single segment matches in reserved expansion, where "%2F" will be
|
||||||
|
* left encoded.
|
||||||
|
*
|
||||||
|
* The default behavior is to not decode RFC 6570 reserved characters in multi
|
||||||
|
* segment matches.
|
||||||
|
*/
|
||||||
|
fullyDecodeReservedExpansion?: boolean | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* # gRPC Transcoding
|
||||||
|
*
|
||||||
|
* gRPC Transcoding is a feature for mapping between a gRPC method and one or
|
||||||
|
* more HTTP REST endpoints. It allows developers to build a single API service
|
||||||
|
* that supports both gRPC APIs and REST APIs. Many systems, including [Google
|
||||||
|
* APIs](https://github.com/googleapis/googleapis),
|
||||||
|
* [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC
|
||||||
|
* Gateway](https://github.com/grpc-ecosystem/grpc-gateway),
|
||||||
|
* and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature
|
||||||
|
* and use it for large scale production services.
|
||||||
|
*
|
||||||
|
* `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies
|
||||||
|
* how different portions of the gRPC request message are mapped to the URL
|
||||||
|
* path, URL query parameters, and HTTP request body. It also controls how the
|
||||||
|
* gRPC response message is mapped to the HTTP response body. `HttpRule` is
|
||||||
|
* typically specified as an `google.api.http` annotation on the gRPC method.
|
||||||
|
*
|
||||||
|
* Each mapping specifies a URL path template and an HTTP method. The path
|
||||||
|
* template may refer to one or more fields in the gRPC request message, as long
|
||||||
|
* as each field is a non-repeated field with a primitive (non-message) type.
|
||||||
|
* The path template controls how fields of the request message are mapped to
|
||||||
|
* the URL path.
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
*
|
||||||
|
* service Messaging {
|
||||||
|
* rpc GetMessage(GetMessageRequest) returns (Message) {
|
||||||
|
* option (google.api.http) = {
|
||||||
|
* get: "/v1/{name=messages/*}"
|
||||||
|
* };
|
||||||
|
* }
|
||||||
|
* }
|
||||||
|
* message GetMessageRequest {
|
||||||
|
* string name = 1; // Mapped to URL path.
|
||||||
|
* }
|
||||||
|
* message Message {
|
||||||
|
* string text = 1; // The resource content.
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* This enables an HTTP REST to gRPC mapping as below:
|
||||||
|
*
|
||||||
|
* HTTP | gRPC
|
||||||
|
* -----|-----
|
||||||
|
* `GET /v1/messages/123456` | `GetMessage(name: "messages/123456")`
|
||||||
|
*
|
||||||
|
* Any fields in the request message which are not bound by the path template
|
||||||
|
* automatically become HTTP query parameters if there is no HTTP request body.
|
||||||
|
* For example:
|
||||||
|
*
|
||||||
|
* service Messaging {
|
||||||
|
* rpc GetMessage(GetMessageRequest) returns (Message) {
|
||||||
|
* option (google.api.http) = {
|
||||||
|
* get:"/v1/messages/{message_id}"
|
||||||
|
* };
|
||||||
|
* }
|
||||||
|
* }
|
||||||
|
* message GetMessageRequest {
|
||||||
|
* message SubMessage {
|
||||||
|
* string subfield = 1;
|
||||||
|
* }
|
||||||
|
* string message_id = 1; // Mapped to URL path.
|
||||||
|
* int64 revision = 2; // Mapped to URL query parameter `revision`.
|
||||||
|
* SubMessage sub = 3; // Mapped to URL query parameter `sub.subfield`.
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* This enables a HTTP JSON to RPC mapping as below:
|
||||||
|
*
|
||||||
|
* HTTP | gRPC
|
||||||
|
* -----|-----
|
||||||
|
* `GET /v1/messages/123456?revision=2&sub.subfield=foo` |
|
||||||
|
* `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield:
|
||||||
|
* "foo"))`
|
||||||
|
*
|
||||||
|
* Note that fields which are mapped to URL query parameters must have a
|
||||||
|
* primitive type or a repeated primitive type or a non-repeated message type.
|
||||||
|
* In the case of a repeated type, the parameter can be repeated in the URL
|
||||||
|
* as `...?param=A¶m=B`. In the case of a message type, each field of the
|
||||||
|
* message is mapped to a separate parameter, such as
|
||||||
|
* `...?foo.a=A&foo.b=B&foo.c=C`.
|
||||||
|
*
|
||||||
|
* For HTTP methods that allow a request body, the `body` field
|
||||||
|
* specifies the mapping. Consider a REST update method on the
|
||||||
|
* message resource collection:
|
||||||
|
*
|
||||||
|
* service Messaging {
|
||||||
|
* rpc UpdateMessage(UpdateMessageRequest) returns (Message) {
|
||||||
|
* option (google.api.http) = {
|
||||||
|
* patch: "/v1/messages/{message_id}"
|
||||||
|
* body: "message"
|
||||||
|
* };
|
||||||
|
* }
|
||||||
|
* }
|
||||||
|
* message UpdateMessageRequest {
|
||||||
|
* string message_id = 1; // mapped to the URL
|
||||||
|
* Message message = 2; // mapped to the body
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* The following HTTP JSON to RPC mapping is enabled, where the
|
||||||
|
* representation of the JSON in the request body is determined by
|
||||||
|
* protos JSON encoding:
|
||||||
|
*
|
||||||
|
* HTTP | gRPC
|
||||||
|
* -----|-----
|
||||||
|
* `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
|
||||||
|
* "123456" message { text: "Hi!" })`
|
||||||
|
*
|
||||||
|
* The special name `*` can be used in the body mapping to define that
|
||||||
|
* every field not bound by the path template should be mapped to the
|
||||||
|
* request body. This enables the following alternative definition of
|
||||||
|
* the update method:
|
||||||
|
*
|
||||||
|
* service Messaging {
|
||||||
|
* rpc UpdateMessage(Message) returns (Message) {
|
||||||
|
* option (google.api.http) = {
|
||||||
|
* patch: "/v1/messages/{message_id}"
|
||||||
|
* body: "*"
|
||||||
|
* };
|
||||||
|
* }
|
||||||
|
* }
|
||||||
|
* message Message {
|
||||||
|
* string message_id = 1;
|
||||||
|
* string text = 2;
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* The following HTTP JSON to RPC mapping is enabled:
|
||||||
|
*
|
||||||
|
* HTTP | gRPC
|
||||||
|
* -----|-----
|
||||||
|
* `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
|
||||||
|
* "123456" text: "Hi!")`
|
||||||
|
*
|
||||||
|
* Note that when using `*` in the body mapping, it is not possible to
|
||||||
|
* have HTTP parameters, as all fields not bound by the path end in
|
||||||
|
* the body. This makes this option more rarely used in practice when
|
||||||
|
* defining REST APIs. The common usage of `*` is in custom methods
|
||||||
|
* which don't use the URL at all for transferring data.
|
||||||
|
*
|
||||||
|
* It is possible to define multiple HTTP methods for one RPC by using
|
||||||
|
* the `additional_bindings` option. Example:
|
||||||
|
*
|
||||||
|
* service Messaging {
|
||||||
|
* rpc GetMessage(GetMessageRequest) returns (Message) {
|
||||||
|
* option (google.api.http) = {
|
||||||
|
* get: "/v1/messages/{message_id}"
|
||||||
|
* additional_bindings {
|
||||||
|
* get: "/v1/users/{user_id}/messages/{message_id}"
|
||||||
|
* }
|
||||||
|
* };
|
||||||
|
* }
|
||||||
|
* }
|
||||||
|
* message GetMessageRequest {
|
||||||
|
* string message_id = 1;
|
||||||
|
* string user_id = 2;
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* This enables the following two alternative HTTP JSON to RPC mappings:
|
||||||
|
*
|
||||||
|
* HTTP | gRPC
|
||||||
|
* -----|-----
|
||||||
|
* `GET /v1/messages/123456` | `GetMessage(message_id: "123456")`
|
||||||
|
* `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id:
|
||||||
|
* "123456")`
|
||||||
|
*
|
||||||
|
* ## Rules for HTTP mapping
|
||||||
|
*
|
||||||
|
* 1. Leaf request fields (recursive expansion nested messages in the request
|
||||||
|
* message) are classified into three categories:
|
||||||
|
* - Fields referred by the path template. They are passed via the URL path.
|
||||||
|
* - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They
|
||||||
|
* are passed via the HTTP
|
||||||
|
* request body.
|
||||||
|
* - All other fields are passed via the URL query parameters, and the
|
||||||
|
* parameter name is the field path in the request message. A repeated
|
||||||
|
* field can be represented as multiple query parameters under the same
|
||||||
|
* name.
|
||||||
|
* 2. If [HttpRule.body][google.api.HttpRule.body] is "*", there is no URL
|
||||||
|
* query parameter, all fields
|
||||||
|
* are passed via URL path and HTTP request body.
|
||||||
|
* 3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP
|
||||||
|
* request body, all
|
||||||
|
* fields are passed via URL path and URL query parameters.
|
||||||
|
*
|
||||||
|
* ### Path template syntax
|
||||||
|
*
|
||||||
|
* Template = "/" Segments [ Verb ] ;
|
||||||
|
* Segments = Segment { "/" Segment } ;
|
||||||
|
* Segment = "*" | "**" | LITERAL | Variable ;
|
||||||
|
* Variable = "{" FieldPath [ "=" Segments ] "}" ;
|
||||||
|
* FieldPath = IDENT { "." IDENT } ;
|
||||||
|
* Verb = ":" LITERAL ;
|
||||||
|
*
|
||||||
|
* The syntax `*` matches a single URL path segment. The syntax `**` matches
|
||||||
|
* zero or more URL path segments, which must be the last part of the URL path
|
||||||
|
* except the `Verb`.
|
||||||
|
*
|
||||||
|
* The syntax `Variable` matches part of the URL path as specified by its
|
||||||
|
* template. A variable template must not contain other variables. If a variable
|
||||||
|
* matches a single path segment, its template may be omitted, e.g. `{var}`
|
||||||
|
* is equivalent to `{var=*}`.
|
||||||
|
*
|
||||||
|
* The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL`
|
||||||
|
* contains any reserved character, such characters should be percent-encoded
|
||||||
|
* before the matching.
|
||||||
|
*
|
||||||
|
* If a variable contains exactly one path segment, such as `"{var}"` or
|
||||||
|
* `"{var=*}"`, when such a variable is expanded into a URL path on the client
|
||||||
|
* side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The
|
||||||
|
* server side does the reverse decoding. Such variables show up in the
|
||||||
|
* [Discovery
|
||||||
|
* Document](https://developers.google.com/discovery/v1/reference/apis) as
|
||||||
|
* `{var}`.
|
||||||
|
*
|
||||||
|
* If a variable contains multiple path segments, such as `"{var=foo/*}"`
|
||||||
|
* or `"{var=**}"`, when such a variable is expanded into a URL path on the
|
||||||
|
* client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded.
|
||||||
|
* The server side does the reverse decoding, except "%2F" and "%2f" are left
|
||||||
|
* unchanged. Such variables show up in the
|
||||||
|
* [Discovery
|
||||||
|
* Document](https://developers.google.com/discovery/v1/reference/apis) as
|
||||||
|
* `{+var}`.
|
||||||
|
*
|
||||||
|
* ## Using gRPC API Service Configuration
|
||||||
|
*
|
||||||
|
* gRPC API Service Configuration (service config) is a configuration language
|
||||||
|
* for configuring a gRPC service to become a user-facing product. The
|
||||||
|
* service config is simply the YAML representation of the `google.api.Service`
|
||||||
|
* proto message.
|
||||||
|
*
|
||||||
|
* As an alternative to annotating your proto file, you can configure gRPC
|
||||||
|
* transcoding in your service config YAML files. You do this by specifying a
|
||||||
|
* `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same
|
||||||
|
* effect as the proto annotation. This can be particularly useful if you
|
||||||
|
* have a proto that is reused in multiple services. Note that any transcoding
|
||||||
|
* specified in the service config will override any matching transcoding
|
||||||
|
* configuration in the proto.
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
*
|
||||||
|
* http:
|
||||||
|
* rules:
|
||||||
|
* # Selects a gRPC method and applies HttpRule to it.
|
||||||
|
* - selector: example.v1.Messaging.GetMessage
|
||||||
|
* get: /v1/messages/{message_id}/{sub.subfield}
|
||||||
|
*
|
||||||
|
* ## Special notes
|
||||||
|
*
|
||||||
|
* When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the
|
||||||
|
* proto to JSON conversion must follow the [proto3
|
||||||
|
* specification](https://developers.google.com/protocol-buffers/docs/proto3#json).
|
||||||
|
*
|
||||||
|
* While the single segment variable follows the semantics of
|
||||||
|
* [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String
|
||||||
|
* Expansion, the multi segment variable **does not** follow RFC 6570 Section
|
||||||
|
* 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion
|
||||||
|
* does not expand special characters like `?` and `#`, which would lead
|
||||||
|
* to invalid URLs. As the result, gRPC Transcoding uses a custom encoding
|
||||||
|
* for multi segment variables.
|
||||||
|
*
|
||||||
|
* The path variables **must not** refer to any repeated or mapped field,
|
||||||
|
* because client libraries are not capable of handling such variable expansion.
|
||||||
|
*
|
||||||
|
* The path variables **must not** capture the leading "/" character. The reason
|
||||||
|
* is that the most common use case "{var}" does not capture the leading "/"
|
||||||
|
* character. For consistency, all path variables must share the same behavior.
|
||||||
|
*
|
||||||
|
* Repeated message fields must not be mapped to URL query parameters, because
|
||||||
|
* no client library can support such complicated mapping.
|
||||||
|
*
|
||||||
|
* If an API needs to use a JSON array for request or response body, it can map
|
||||||
|
* the request or response body to a repeated field. However, some gRPC
|
||||||
|
* Transcoding implementations may not support this feature.
|
||||||
|
*/
|
||||||
|
export interface HttpRule {
|
||||||
|
/**
|
||||||
|
* Selects a method to which this rule applies.
|
||||||
|
*
|
||||||
|
* Refer to [selector][google.api.DocumentationRule.selector] for syntax
|
||||||
|
* details.
|
||||||
|
*/
|
||||||
|
selector?:
|
||||||
|
| string
|
||||||
|
| undefined;
|
||||||
|
/**
|
||||||
|
* Maps to HTTP GET. Used for listing and getting information about
|
||||||
|
* resources.
|
||||||
|
*/
|
||||||
|
get?:
|
||||||
|
| string
|
||||||
|
| undefined;
|
||||||
|
/** Maps to HTTP PUT. Used for replacing a resource. */
|
||||||
|
put?:
|
||||||
|
| string
|
||||||
|
| undefined;
|
||||||
|
/** Maps to HTTP POST. Used for creating a resource or performing an action. */
|
||||||
|
post?:
|
||||||
|
| string
|
||||||
|
| undefined;
|
||||||
|
/** Maps to HTTP DELETE. Used for deleting a resource. */
|
||||||
|
delete?:
|
||||||
|
| string
|
||||||
|
| undefined;
|
||||||
|
/** Maps to HTTP PATCH. Used for updating a resource. */
|
||||||
|
patch?:
|
||||||
|
| string
|
||||||
|
| undefined;
|
||||||
|
/**
|
||||||
|
* The custom pattern is used for specifying an HTTP method that is not
|
||||||
|
* included in the `pattern` field, such as HEAD, or "*" to leave the
|
||||||
|
* HTTP method unspecified for this rule. The wild-card rule is useful
|
||||||
|
* for services that provide content to Web (HTML) clients.
|
||||||
|
*/
|
||||||
|
custom?:
|
||||||
|
| CustomHttpPattern
|
||||||
|
| undefined;
|
||||||
|
/**
|
||||||
|
* The name of the request field whose value is mapped to the HTTP request
|
||||||
|
* body, or `*` for mapping all request fields not captured by the path
|
||||||
|
* pattern to the HTTP body, or omitted for not having any HTTP request body.
|
||||||
|
*
|
||||||
|
* NOTE: the referred field must be present at the top-level of the request
|
||||||
|
* message type.
|
||||||
|
*/
|
||||||
|
body?:
|
||||||
|
| string
|
||||||
|
| undefined;
|
||||||
|
/**
|
||||||
|
* Optional. The name of the response field whose value is mapped to the HTTP
|
||||||
|
* response body. When omitted, the entire response message will be used
|
||||||
|
* as the HTTP response body.
|
||||||
|
*
|
||||||
|
* NOTE: The referred field must be present at the top-level of the response
|
||||||
|
* message type.
|
||||||
|
*/
|
||||||
|
responseBody?:
|
||||||
|
| string
|
||||||
|
| undefined;
|
||||||
|
/**
|
||||||
|
* Additional HTTP bindings for the selector. Nested bindings must
|
||||||
|
* not contain an `additional_bindings` field themselves (that is,
|
||||||
|
* the nesting may only be one level deep).
|
||||||
|
*/
|
||||||
|
additionalBindings?: HttpRule[] | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** A custom pattern is used for defining custom HTTP verb. */
|
||||||
|
export interface CustomHttpPattern {
|
||||||
|
/** The name of this custom HTTP verb. */
|
||||||
|
kind?:
|
||||||
|
| string
|
||||||
|
| undefined;
|
||||||
|
/** The path matched by this custom verb. */
|
||||||
|
path?: string | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
function createBaseHttp(): Http {
|
||||||
|
return { rules: [], fullyDecodeReservedExpansion: false };
|
||||||
|
}
|
||||||
|
|
||||||
|
export const Http: MessageFns<Http> = {
|
||||||
|
encode(message: Http, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
||||||
|
if (message.rules !== undefined && message.rules.length !== 0) {
|
||||||
|
for (const v of message.rules) {
|
||||||
|
HttpRule.encode(v!, writer.uint32(10).fork()).join();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (message.fullyDecodeReservedExpansion !== undefined && message.fullyDecodeReservedExpansion !== false) {
|
||||||
|
writer.uint32(16).bool(message.fullyDecodeReservedExpansion);
|
||||||
|
}
|
||||||
|
return writer;
|
||||||
|
},
|
||||||
|
|
||||||
|
decode(input: BinaryReader | Uint8Array, length?: number): Http {
|
||||||
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
||||||
|
const end = length === undefined ? reader.len : reader.pos + length;
|
||||||
|
const message = createBaseHttp();
|
||||||
|
while (reader.pos < end) {
|
||||||
|
const tag = reader.uint32();
|
||||||
|
switch (tag >>> 3) {
|
||||||
|
case 1: {
|
||||||
|
if (tag !== 10) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
const el = HttpRule.decode(reader, reader.uint32());
|
||||||
|
if (el !== undefined) {
|
||||||
|
message.rules!.push(el);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
case 2: {
|
||||||
|
if (tag !== 16) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.fullyDecodeReservedExpansion = reader.bool();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((tag & 7) === 4 || tag === 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
reader.skip(tag & 7);
|
||||||
|
}
|
||||||
|
return message;
|
||||||
|
},
|
||||||
|
|
||||||
|
fromJSON(object: any): Http {
|
||||||
|
return {
|
||||||
|
rules: globalThis.Array.isArray(object?.rules) ? object.rules.map((e: any) => HttpRule.fromJSON(e)) : [],
|
||||||
|
fullyDecodeReservedExpansion: isSet(object.fullyDecodeReservedExpansion)
|
||||||
|
? globalThis.Boolean(object.fullyDecodeReservedExpansion)
|
||||||
|
: isSet(object.fully_decode_reserved_expansion)
|
||||||
|
? globalThis.Boolean(object.fully_decode_reserved_expansion)
|
||||||
|
: false,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
toJSON(message: Http): unknown {
|
||||||
|
const obj: any = {};
|
||||||
|
if (message.rules?.length) {
|
||||||
|
obj.rules = message.rules.map((e) => HttpRule.toJSON(e));
|
||||||
|
}
|
||||||
|
if (message.fullyDecodeReservedExpansion !== undefined && message.fullyDecodeReservedExpansion !== false) {
|
||||||
|
obj.fullyDecodeReservedExpansion = message.fullyDecodeReservedExpansion;
|
||||||
|
}
|
||||||
|
return obj;
|
||||||
|
},
|
||||||
|
|
||||||
|
create(base?: DeepPartial<Http>): Http {
|
||||||
|
return Http.fromPartial(base ?? {});
|
||||||
|
},
|
||||||
|
fromPartial(object: DeepPartial<Http>): Http {
|
||||||
|
const message = createBaseHttp();
|
||||||
|
message.rules = object.rules?.map((e) => HttpRule.fromPartial(e)) || [];
|
||||||
|
message.fullyDecodeReservedExpansion = object.fullyDecodeReservedExpansion ?? false;
|
||||||
|
return message;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
function createBaseHttpRule(): HttpRule {
|
||||||
|
return {
|
||||||
|
selector: "",
|
||||||
|
get: undefined,
|
||||||
|
put: undefined,
|
||||||
|
post: undefined,
|
||||||
|
delete: undefined,
|
||||||
|
patch: undefined,
|
||||||
|
custom: undefined,
|
||||||
|
body: "",
|
||||||
|
responseBody: "",
|
||||||
|
additionalBindings: [],
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export const HttpRule: MessageFns<HttpRule> = {
|
||||||
|
encode(message: HttpRule, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
||||||
|
if (message.selector !== undefined && message.selector !== "") {
|
||||||
|
writer.uint32(10).string(message.selector);
|
||||||
|
}
|
||||||
|
if (message.get !== undefined) {
|
||||||
|
writer.uint32(18).string(message.get);
|
||||||
|
}
|
||||||
|
if (message.put !== undefined) {
|
||||||
|
writer.uint32(26).string(message.put);
|
||||||
|
}
|
||||||
|
if (message.post !== undefined) {
|
||||||
|
writer.uint32(34).string(message.post);
|
||||||
|
}
|
||||||
|
if (message.delete !== undefined) {
|
||||||
|
writer.uint32(42).string(message.delete);
|
||||||
|
}
|
||||||
|
if (message.patch !== undefined) {
|
||||||
|
writer.uint32(50).string(message.patch);
|
||||||
|
}
|
||||||
|
if (message.custom !== undefined) {
|
||||||
|
CustomHttpPattern.encode(message.custom, writer.uint32(66).fork()).join();
|
||||||
|
}
|
||||||
|
if (message.body !== undefined && message.body !== "") {
|
||||||
|
writer.uint32(58).string(message.body);
|
||||||
|
}
|
||||||
|
if (message.responseBody !== undefined && message.responseBody !== "") {
|
||||||
|
writer.uint32(98).string(message.responseBody);
|
||||||
|
}
|
||||||
|
if (message.additionalBindings !== undefined && message.additionalBindings.length !== 0) {
|
||||||
|
for (const v of message.additionalBindings) {
|
||||||
|
HttpRule.encode(v!, writer.uint32(90).fork()).join();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return writer;
|
||||||
|
},
|
||||||
|
|
||||||
|
decode(input: BinaryReader | Uint8Array, length?: number): HttpRule {
|
||||||
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
||||||
|
const end = length === undefined ? reader.len : reader.pos + length;
|
||||||
|
const message = createBaseHttpRule();
|
||||||
|
while (reader.pos < end) {
|
||||||
|
const tag = reader.uint32();
|
||||||
|
switch (tag >>> 3) {
|
||||||
|
case 1: {
|
||||||
|
if (tag !== 10) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.selector = reader.string();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
case 2: {
|
||||||
|
if (tag !== 18) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.get = reader.string();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
case 3: {
|
||||||
|
if (tag !== 26) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.put = reader.string();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
case 4: {
|
||||||
|
if (tag !== 34) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.post = reader.string();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
case 5: {
|
||||||
|
if (tag !== 42) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.delete = reader.string();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
case 6: {
|
||||||
|
if (tag !== 50) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.patch = reader.string();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
case 8: {
|
||||||
|
if (tag !== 66) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.custom = CustomHttpPattern.decode(reader, reader.uint32());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
case 7: {
|
||||||
|
if (tag !== 58) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.body = reader.string();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
case 12: {
|
||||||
|
if (tag !== 98) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.responseBody = reader.string();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
case 11: {
|
||||||
|
if (tag !== 90) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
const el = HttpRule.decode(reader, reader.uint32());
|
||||||
|
if (el !== undefined) {
|
||||||
|
message.additionalBindings!.push(el);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((tag & 7) === 4 || tag === 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
reader.skip(tag & 7);
|
||||||
|
}
|
||||||
|
return message;
|
||||||
|
},
|
||||||
|
|
||||||
|
fromJSON(object: any): HttpRule {
|
||||||
|
return {
|
||||||
|
selector: isSet(object.selector) ? globalThis.String(object.selector) : "",
|
||||||
|
get: isSet(object.get) ? globalThis.String(object.get) : undefined,
|
||||||
|
put: isSet(object.put) ? globalThis.String(object.put) : undefined,
|
||||||
|
post: isSet(object.post) ? globalThis.String(object.post) : undefined,
|
||||||
|
delete: isSet(object.delete) ? globalThis.String(object.delete) : undefined,
|
||||||
|
patch: isSet(object.patch) ? globalThis.String(object.patch) : undefined,
|
||||||
|
custom: isSet(object.custom) ? CustomHttpPattern.fromJSON(object.custom) : undefined,
|
||||||
|
body: isSet(object.body) ? globalThis.String(object.body) : "",
|
||||||
|
responseBody: isSet(object.responseBody)
|
||||||
|
? globalThis.String(object.responseBody)
|
||||||
|
: isSet(object.response_body)
|
||||||
|
? globalThis.String(object.response_body)
|
||||||
|
: "",
|
||||||
|
additionalBindings: globalThis.Array.isArray(object?.additionalBindings)
|
||||||
|
? object.additionalBindings.map((e: any) => HttpRule.fromJSON(e))
|
||||||
|
: globalThis.Array.isArray(object?.additional_bindings)
|
||||||
|
? object.additional_bindings.map((e: any) => HttpRule.fromJSON(e))
|
||||||
|
: [],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
toJSON(message: HttpRule): unknown {
|
||||||
|
const obj: any = {};
|
||||||
|
if (message.selector !== undefined && message.selector !== "") {
|
||||||
|
obj.selector = message.selector;
|
||||||
|
}
|
||||||
|
if (message.get !== undefined) {
|
||||||
|
obj.get = message.get;
|
||||||
|
}
|
||||||
|
if (message.put !== undefined) {
|
||||||
|
obj.put = message.put;
|
||||||
|
}
|
||||||
|
if (message.post !== undefined) {
|
||||||
|
obj.post = message.post;
|
||||||
|
}
|
||||||
|
if (message.delete !== undefined) {
|
||||||
|
obj.delete = message.delete;
|
||||||
|
}
|
||||||
|
if (message.patch !== undefined) {
|
||||||
|
obj.patch = message.patch;
|
||||||
|
}
|
||||||
|
if (message.custom !== undefined) {
|
||||||
|
obj.custom = CustomHttpPattern.toJSON(message.custom);
|
||||||
|
}
|
||||||
|
if (message.body !== undefined && message.body !== "") {
|
||||||
|
obj.body = message.body;
|
||||||
|
}
|
||||||
|
if (message.responseBody !== undefined && message.responseBody !== "") {
|
||||||
|
obj.responseBody = message.responseBody;
|
||||||
|
}
|
||||||
|
if (message.additionalBindings?.length) {
|
||||||
|
obj.additionalBindings = message.additionalBindings.map((e) => HttpRule.toJSON(e));
|
||||||
|
}
|
||||||
|
return obj;
|
||||||
|
},
|
||||||
|
|
||||||
|
create(base?: DeepPartial<HttpRule>): HttpRule {
|
||||||
|
return HttpRule.fromPartial(base ?? {});
|
||||||
|
},
|
||||||
|
fromPartial(object: DeepPartial<HttpRule>): HttpRule {
|
||||||
|
const message = createBaseHttpRule();
|
||||||
|
message.selector = object.selector ?? "";
|
||||||
|
message.get = object.get ?? undefined;
|
||||||
|
message.put = object.put ?? undefined;
|
||||||
|
message.post = object.post ?? undefined;
|
||||||
|
message.delete = object.delete ?? undefined;
|
||||||
|
message.patch = object.patch ?? undefined;
|
||||||
|
message.custom = (object.custom !== undefined && object.custom !== null)
|
||||||
|
? CustomHttpPattern.fromPartial(object.custom)
|
||||||
|
: undefined;
|
||||||
|
message.body = object.body ?? "";
|
||||||
|
message.responseBody = object.responseBody ?? "";
|
||||||
|
message.additionalBindings = object.additionalBindings?.map((e) => HttpRule.fromPartial(e)) || [];
|
||||||
|
return message;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
function createBaseCustomHttpPattern(): CustomHttpPattern {
|
||||||
|
return { kind: "", path: "" };
|
||||||
|
}
|
||||||
|
|
||||||
|
export const CustomHttpPattern: MessageFns<CustomHttpPattern> = {
|
||||||
|
encode(message: CustomHttpPattern, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
||||||
|
if (message.kind !== undefined && message.kind !== "") {
|
||||||
|
writer.uint32(10).string(message.kind);
|
||||||
|
}
|
||||||
|
if (message.path !== undefined && message.path !== "") {
|
||||||
|
writer.uint32(18).string(message.path);
|
||||||
|
}
|
||||||
|
return writer;
|
||||||
|
},
|
||||||
|
|
||||||
|
decode(input: BinaryReader | Uint8Array, length?: number): CustomHttpPattern {
|
||||||
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
||||||
|
const end = length === undefined ? reader.len : reader.pos + length;
|
||||||
|
const message = createBaseCustomHttpPattern();
|
||||||
|
while (reader.pos < end) {
|
||||||
|
const tag = reader.uint32();
|
||||||
|
switch (tag >>> 3) {
|
||||||
|
case 1: {
|
||||||
|
if (tag !== 10) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.kind = reader.string();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
case 2: {
|
||||||
|
if (tag !== 18) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.path = reader.string();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((tag & 7) === 4 || tag === 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
reader.skip(tag & 7);
|
||||||
|
}
|
||||||
|
return message;
|
||||||
|
},
|
||||||
|
|
||||||
|
fromJSON(object: any): CustomHttpPattern {
|
||||||
|
return {
|
||||||
|
kind: isSet(object.kind) ? globalThis.String(object.kind) : "",
|
||||||
|
path: isSet(object.path) ? globalThis.String(object.path) : "",
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
toJSON(message: CustomHttpPattern): unknown {
|
||||||
|
const obj: any = {};
|
||||||
|
if (message.kind !== undefined && message.kind !== "") {
|
||||||
|
obj.kind = message.kind;
|
||||||
|
}
|
||||||
|
if (message.path !== undefined && message.path !== "") {
|
||||||
|
obj.path = message.path;
|
||||||
|
}
|
||||||
|
return obj;
|
||||||
|
},
|
||||||
|
|
||||||
|
create(base?: DeepPartial<CustomHttpPattern>): CustomHttpPattern {
|
||||||
|
return CustomHttpPattern.fromPartial(base ?? {});
|
||||||
|
},
|
||||||
|
fromPartial(object: DeepPartial<CustomHttpPattern>): CustomHttpPattern {
|
||||||
|
const message = createBaseCustomHttpPattern();
|
||||||
|
message.kind = object.kind ?? "";
|
||||||
|
message.path = object.path ?? "";
|
||||||
|
return message;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
||||||
|
|
||||||
|
export type DeepPartial<T> = T extends Builtin ? T
|
||||||
|
: T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>
|
||||||
|
: T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>
|
||||||
|
: T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }
|
||||||
|
: Partial<T>;
|
||||||
|
|
||||||
|
function isSet(value: any): boolean {
|
||||||
|
return value !== null && value !== undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface MessageFns<T> {
|
||||||
|
encode(message: T, writer?: BinaryWriter): BinaryWriter;
|
||||||
|
decode(input: BinaryReader | Uint8Array, length?: number): T;
|
||||||
|
fromJSON(object: any): T;
|
||||||
|
toJSON(message: T): unknown;
|
||||||
|
create(base?: DeepPartial<T>): T;
|
||||||
|
fromPartial(object: DeepPartial<T>): T;
|
||||||
|
}
|
||||||
@@ -0,0 +1,220 @@
|
|||||||
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-ts_proto v2.12.0
|
||||||
|
// protoc v7.35.1
|
||||||
|
// source: google/api/httpbody.proto
|
||||||
|
|
||||||
|
/* eslint-disable */
|
||||||
|
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
||||||
|
import { Any } from "../protobuf/any";
|
||||||
|
|
||||||
|
export const protobufPackage = "google.api";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Message that represents an arbitrary HTTP body. It should only be used for
|
||||||
|
* payload formats that can't be represented as JSON, such as raw binary or
|
||||||
|
* an HTML page.
|
||||||
|
*
|
||||||
|
* This message can be used both in streaming and non-streaming API methods in
|
||||||
|
* the request as well as the response.
|
||||||
|
*
|
||||||
|
* It can be used as a top-level request field, which is convenient if one
|
||||||
|
* wants to extract parameters from either the URL or HTTP template into the
|
||||||
|
* request fields and also want access to the raw HTTP body.
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
*
|
||||||
|
* message GetResourceRequest {
|
||||||
|
* // A unique request id.
|
||||||
|
* string request_id = 1;
|
||||||
|
*
|
||||||
|
* // The raw HTTP body is bound to this field.
|
||||||
|
* google.api.HttpBody http_body = 2;
|
||||||
|
*
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* service ResourceService {
|
||||||
|
* rpc GetResource(GetResourceRequest)
|
||||||
|
* returns (google.api.HttpBody);
|
||||||
|
* rpc UpdateResource(google.api.HttpBody)
|
||||||
|
* returns (google.protobuf.Empty);
|
||||||
|
*
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* Example with streaming methods:
|
||||||
|
*
|
||||||
|
* service CaldavService {
|
||||||
|
* rpc GetCalendar(stream google.api.HttpBody)
|
||||||
|
* returns (stream google.api.HttpBody);
|
||||||
|
* rpc UpdateCalendar(stream google.api.HttpBody)
|
||||||
|
* returns (stream google.api.HttpBody);
|
||||||
|
*
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* Use of this type only changes how the request and response bodies are
|
||||||
|
* handled, all other features will continue to work unchanged.
|
||||||
|
*/
|
||||||
|
export interface HttpBody {
|
||||||
|
/** The HTTP Content-Type header value specifying the content type of the body. */
|
||||||
|
contentType?:
|
||||||
|
| string
|
||||||
|
| undefined;
|
||||||
|
/** The HTTP request/response body as raw binary. */
|
||||||
|
data?:
|
||||||
|
| Uint8Array
|
||||||
|
| undefined;
|
||||||
|
/**
|
||||||
|
* Application specific response metadata. Must be set in the first response
|
||||||
|
* for streaming APIs.
|
||||||
|
*/
|
||||||
|
extensions?: Any[] | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
function createBaseHttpBody(): HttpBody {
|
||||||
|
return { contentType: "", data: new Uint8Array(0), extensions: [] };
|
||||||
|
}
|
||||||
|
|
||||||
|
export const HttpBody: MessageFns<HttpBody> = {
|
||||||
|
encode(message: HttpBody, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
||||||
|
if (message.contentType !== undefined && message.contentType !== "") {
|
||||||
|
writer.uint32(10).string(message.contentType);
|
||||||
|
}
|
||||||
|
if (message.data !== undefined && message.data.length !== 0) {
|
||||||
|
writer.uint32(18).bytes(message.data);
|
||||||
|
}
|
||||||
|
if (message.extensions !== undefined && message.extensions.length !== 0) {
|
||||||
|
for (const v of message.extensions) {
|
||||||
|
Any.encode(v!, writer.uint32(26).fork()).join();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return writer;
|
||||||
|
},
|
||||||
|
|
||||||
|
decode(input: BinaryReader | Uint8Array, length?: number): HttpBody {
|
||||||
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
||||||
|
const end = length === undefined ? reader.len : reader.pos + length;
|
||||||
|
const message = createBaseHttpBody();
|
||||||
|
while (reader.pos < end) {
|
||||||
|
const tag = reader.uint32();
|
||||||
|
switch (tag >>> 3) {
|
||||||
|
case 1: {
|
||||||
|
if (tag !== 10) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.contentType = reader.string();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
case 2: {
|
||||||
|
if (tag !== 18) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.data = reader.bytes();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
case 3: {
|
||||||
|
if (tag !== 26) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
const el = Any.decode(reader, reader.uint32());
|
||||||
|
if (el !== undefined) {
|
||||||
|
message.extensions!.push(el);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((tag & 7) === 4 || tag === 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
reader.skip(tag & 7);
|
||||||
|
}
|
||||||
|
return message;
|
||||||
|
},
|
||||||
|
|
||||||
|
fromJSON(object: any): HttpBody {
|
||||||
|
return {
|
||||||
|
contentType: isSet(object.contentType)
|
||||||
|
? globalThis.String(object.contentType)
|
||||||
|
: isSet(object.content_type)
|
||||||
|
? globalThis.String(object.content_type)
|
||||||
|
: "",
|
||||||
|
data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array(0),
|
||||||
|
extensions: globalThis.Array.isArray(object?.extensions)
|
||||||
|
? object.extensions.map((e: any) => Any.fromJSON(e))
|
||||||
|
: [],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
toJSON(message: HttpBody): unknown {
|
||||||
|
const obj: any = {};
|
||||||
|
if (message.contentType !== undefined && message.contentType !== "") {
|
||||||
|
obj.contentType = message.contentType;
|
||||||
|
}
|
||||||
|
if (message.data !== undefined && message.data.length !== 0) {
|
||||||
|
obj.data = base64FromBytes(message.data);
|
||||||
|
}
|
||||||
|
if (message.extensions?.length) {
|
||||||
|
obj.extensions = message.extensions.map((e) => Any.toJSON(e));
|
||||||
|
}
|
||||||
|
return obj;
|
||||||
|
},
|
||||||
|
|
||||||
|
create(base?: DeepPartial<HttpBody>): HttpBody {
|
||||||
|
return HttpBody.fromPartial(base ?? {});
|
||||||
|
},
|
||||||
|
fromPartial(object: DeepPartial<HttpBody>): HttpBody {
|
||||||
|
const message = createBaseHttpBody();
|
||||||
|
message.contentType = object.contentType ?? "";
|
||||||
|
message.data = object.data ?? new Uint8Array(0);
|
||||||
|
message.extensions = object.extensions?.map((e) => Any.fromPartial(e)) || [];
|
||||||
|
return message;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
function bytesFromBase64(b64: string): Uint8Array {
|
||||||
|
if ((globalThis as any).Buffer) {
|
||||||
|
return Uint8Array.from((globalThis as any).Buffer.from(b64, "base64"));
|
||||||
|
} else {
|
||||||
|
const bin = globalThis.atob(b64);
|
||||||
|
const arr = new Uint8Array(bin.length);
|
||||||
|
for (let i = 0; i < bin.length; ++i) {
|
||||||
|
arr[i] = bin.charCodeAt(i);
|
||||||
|
}
|
||||||
|
return arr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function base64FromBytes(arr: Uint8Array): string {
|
||||||
|
if ((globalThis as any).Buffer) {
|
||||||
|
return (globalThis as any).Buffer.from(arr).toString("base64");
|
||||||
|
} else {
|
||||||
|
const bin: string[] = [];
|
||||||
|
arr.forEach((byte) => {
|
||||||
|
bin.push(globalThis.String.fromCharCode(byte));
|
||||||
|
});
|
||||||
|
return globalThis.btoa(bin.join(""));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
||||||
|
|
||||||
|
export type DeepPartial<T> = T extends Builtin ? T
|
||||||
|
: T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>
|
||||||
|
: T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>
|
||||||
|
: T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }
|
||||||
|
: Partial<T>;
|
||||||
|
|
||||||
|
function isSet(value: any): boolean {
|
||||||
|
return value !== null && value !== undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface MessageFns<T> {
|
||||||
|
encode(message: T, writer?: BinaryWriter): BinaryWriter;
|
||||||
|
decode(input: BinaryReader | Uint8Array, length?: number): T;
|
||||||
|
fromJSON(object: any): T;
|
||||||
|
toJSON(message: T): unknown;
|
||||||
|
create(base?: DeepPartial<T>): T;
|
||||||
|
fromPartial(object: DeepPartial<T>): T;
|
||||||
|
}
|
||||||
@@ -0,0 +1,207 @@
|
|||||||
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-ts_proto v2.12.0
|
||||||
|
// protoc v7.35.1
|
||||||
|
// source: google/protobuf/any.proto
|
||||||
|
|
||||||
|
/* eslint-disable */
|
||||||
|
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
||||||
|
|
||||||
|
export const protobufPackage = "google.protobuf";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* `Any` contains an arbitrary serialized protocol buffer message along with a
|
||||||
|
* URL that describes the type of the serialized message.
|
||||||
|
*
|
||||||
|
* In its binary encoding, an `Any` is an ordinary message; but in other wire
|
||||||
|
* forms like JSON, it has a special encoding. The format of the type URL is
|
||||||
|
* described on the `type_url` field.
|
||||||
|
*
|
||||||
|
* Protobuf APIs provide utilities to interact with `Any` values:
|
||||||
|
*
|
||||||
|
* - A 'pack' operation accepts a message and constructs a generic `Any` wrapper
|
||||||
|
* around it.
|
||||||
|
* - An 'unpack' operation reads the content of an `Any` message, either into an
|
||||||
|
* existing message or a new one. Unpack operations must check the type of the
|
||||||
|
* value they unpack against the declared `type_url`.
|
||||||
|
* - An 'is' operation decides whether an `Any` contains a message of the given
|
||||||
|
* type, i.e. whether it can 'unpack' that type.
|
||||||
|
*
|
||||||
|
* The JSON format representation of an `Any` follows one of these cases:
|
||||||
|
*
|
||||||
|
* - For types without special-cased JSON encodings, the JSON format
|
||||||
|
* representation of the `Any` is the same as that of the message, with an
|
||||||
|
* additional `@type` field which contains the type URL.
|
||||||
|
* - For types with special-cased JSON encodings (typically called 'well-known'
|
||||||
|
* types, listed in https://protobuf.dev/programming-guides/json/#any), the
|
||||||
|
* JSON format representation has a key `@type` which contains the type URL
|
||||||
|
* and a key `value` which contains the JSON-serialized value.
|
||||||
|
*
|
||||||
|
* The text format representation of an `Any` is like a message with one field
|
||||||
|
* whose name is the type URL in brackets. For example, an `Any` containing a
|
||||||
|
* `foo.Bar` message may be written `[type.googleapis.com/foo.Bar] { a: 2 }`.
|
||||||
|
*/
|
||||||
|
export interface Any {
|
||||||
|
/**
|
||||||
|
* Identifies the type of the serialized Protobuf message with a URI reference
|
||||||
|
* consisting of a prefix ending in a slash and the fully-qualified type name.
|
||||||
|
*
|
||||||
|
* Example: type.googleapis.com/google.protobuf.StringValue
|
||||||
|
*
|
||||||
|
* This string must contain at least one `/` character, and the content after
|
||||||
|
* the last `/` must be the fully-qualified name of the type in canonical
|
||||||
|
* form, without a leading dot. Do not write a scheme on these URI references
|
||||||
|
* so that clients do not attempt to contact them.
|
||||||
|
*
|
||||||
|
* The prefix is arbitrary and Protobuf implementations are expected to
|
||||||
|
* simply strip off everything up to and including the last `/` to identify
|
||||||
|
* the type. `type.googleapis.com/` is a common default prefix that some
|
||||||
|
* legacy implementations require. This prefix does not indicate the origin of
|
||||||
|
* the type, and URIs containing it are not expected to respond to any
|
||||||
|
* requests.
|
||||||
|
*
|
||||||
|
* All type URL strings must be legal URI references with the additional
|
||||||
|
* restriction (for the text format) that the content of the reference
|
||||||
|
* must consist only of alphanumeric characters, percent-encoded escapes, and
|
||||||
|
* characters in the following set (not including the outer backticks):
|
||||||
|
* `/-.~_!$&()*+,;=`. Despite our allowing percent encodings, implementations
|
||||||
|
* should not unescape them to prevent confusion with existing parsers. For
|
||||||
|
* example, `type.googleapis.com%2FFoo` should be rejected.
|
||||||
|
*
|
||||||
|
* In the original design of `Any`, the possibility of launching a type
|
||||||
|
* resolution service at these type URLs was considered but Protobuf never
|
||||||
|
* implemented one and considers contacting these URLs to be problematic and
|
||||||
|
* a potential security issue. Do not attempt to contact type URLs.
|
||||||
|
*/
|
||||||
|
typeUrl?:
|
||||||
|
| string
|
||||||
|
| undefined;
|
||||||
|
/** Holds a Protobuf serialization of the type described by type_url. */
|
||||||
|
value?: Uint8Array | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
function createBaseAny(): Any {
|
||||||
|
return { typeUrl: "", value: new Uint8Array(0) };
|
||||||
|
}
|
||||||
|
|
||||||
|
export const Any: MessageFns<Any> = {
|
||||||
|
encode(message: Any, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
||||||
|
if (message.typeUrl !== undefined && message.typeUrl !== "") {
|
||||||
|
writer.uint32(10).string(message.typeUrl);
|
||||||
|
}
|
||||||
|
if (message.value !== undefined && message.value.length !== 0) {
|
||||||
|
writer.uint32(18).bytes(message.value);
|
||||||
|
}
|
||||||
|
return writer;
|
||||||
|
},
|
||||||
|
|
||||||
|
decode(input: BinaryReader | Uint8Array, length?: number): Any {
|
||||||
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
||||||
|
const end = length === undefined ? reader.len : reader.pos + length;
|
||||||
|
const message = createBaseAny();
|
||||||
|
while (reader.pos < end) {
|
||||||
|
const tag = reader.uint32();
|
||||||
|
switch (tag >>> 3) {
|
||||||
|
case 1: {
|
||||||
|
if (tag !== 10) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.typeUrl = reader.string();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
case 2: {
|
||||||
|
if (tag !== 18) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.value = reader.bytes();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((tag & 7) === 4 || tag === 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
reader.skip(tag & 7);
|
||||||
|
}
|
||||||
|
return message;
|
||||||
|
},
|
||||||
|
|
||||||
|
fromJSON(object: any): Any {
|
||||||
|
return {
|
||||||
|
typeUrl: isSet(object.typeUrl)
|
||||||
|
? globalThis.String(object.typeUrl)
|
||||||
|
: isSet(object.type_url)
|
||||||
|
? globalThis.String(object.type_url)
|
||||||
|
: "",
|
||||||
|
value: isSet(object.value) ? bytesFromBase64(object.value) : new Uint8Array(0),
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
toJSON(message: Any): unknown {
|
||||||
|
const obj: any = {};
|
||||||
|
if (message.typeUrl !== undefined && message.typeUrl !== "") {
|
||||||
|
obj.typeUrl = message.typeUrl;
|
||||||
|
}
|
||||||
|
if (message.value !== undefined && message.value.length !== 0) {
|
||||||
|
obj.value = base64FromBytes(message.value);
|
||||||
|
}
|
||||||
|
return obj;
|
||||||
|
},
|
||||||
|
|
||||||
|
create(base?: DeepPartial<Any>): Any {
|
||||||
|
return Any.fromPartial(base ?? {});
|
||||||
|
},
|
||||||
|
fromPartial(object: DeepPartial<Any>): Any {
|
||||||
|
const message = createBaseAny();
|
||||||
|
message.typeUrl = object.typeUrl ?? "";
|
||||||
|
message.value = object.value ?? new Uint8Array(0);
|
||||||
|
return message;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
function bytesFromBase64(b64: string): Uint8Array {
|
||||||
|
if ((globalThis as any).Buffer) {
|
||||||
|
return Uint8Array.from((globalThis as any).Buffer.from(b64, "base64"));
|
||||||
|
} else {
|
||||||
|
const bin = globalThis.atob(b64);
|
||||||
|
const arr = new Uint8Array(bin.length);
|
||||||
|
for (let i = 0; i < bin.length; ++i) {
|
||||||
|
arr[i] = bin.charCodeAt(i);
|
||||||
|
}
|
||||||
|
return arr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function base64FromBytes(arr: Uint8Array): string {
|
||||||
|
if ((globalThis as any).Buffer) {
|
||||||
|
return (globalThis as any).Buffer.from(arr).toString("base64");
|
||||||
|
} else {
|
||||||
|
const bin: string[] = [];
|
||||||
|
arr.forEach((byte) => {
|
||||||
|
bin.push(globalThis.String.fromCharCode(byte));
|
||||||
|
});
|
||||||
|
return globalThis.btoa(bin.join(""));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
||||||
|
|
||||||
|
export type DeepPartial<T> = T extends Builtin ? T
|
||||||
|
: T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>
|
||||||
|
: T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>
|
||||||
|
: T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }
|
||||||
|
: Partial<T>;
|
||||||
|
|
||||||
|
function isSet(value: any): boolean {
|
||||||
|
return value !== null && value !== undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface MessageFns<T> {
|
||||||
|
encode(message: T, writer?: BinaryWriter): BinaryWriter;
|
||||||
|
decode(input: BinaryReader | Uint8Array, length?: number): T;
|
||||||
|
fromJSON(object: any): T;
|
||||||
|
toJSON(message: T): unknown;
|
||||||
|
create(base?: DeepPartial<T>): T;
|
||||||
|
fromPartial(object: DeepPartial<T>): T;
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,627 @@
|
|||||||
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-ts_proto v2.12.0
|
||||||
|
// protoc v7.35.1
|
||||||
|
// source: google/protobuf/struct.proto
|
||||||
|
|
||||||
|
/* eslint-disable */
|
||||||
|
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
||||||
|
|
||||||
|
export const protobufPackage = "google.protobuf";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a JSON `null`.
|
||||||
|
*
|
||||||
|
* `NullValue` is a sentinel, using an enum with only one value to represent
|
||||||
|
* the null value for the `Value` type union.
|
||||||
|
*
|
||||||
|
* A field of type `NullValue` with any value other than `0` is considered
|
||||||
|
* invalid. Most ProtoJSON serializers will emit a Value with a `null_value` set
|
||||||
|
* as a JSON `null` regardless of the integer value, and so will round trip to
|
||||||
|
* a `0` value.
|
||||||
|
*/
|
||||||
|
export enum NullValue {
|
||||||
|
/** NULL_VALUE - Null value. */
|
||||||
|
NULL_VALUE = 0,
|
||||||
|
UNRECOGNIZED = -1,
|
||||||
|
}
|
||||||
|
|
||||||
|
export function nullValueFromJSON(object: any): NullValue {
|
||||||
|
switch (object) {
|
||||||
|
case 0:
|
||||||
|
case "NULL_VALUE":
|
||||||
|
return NullValue.NULL_VALUE;
|
||||||
|
case -1:
|
||||||
|
case "UNRECOGNIZED":
|
||||||
|
default:
|
||||||
|
return NullValue.UNRECOGNIZED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function nullValueToJSON(object: NullValue): string {
|
||||||
|
switch (object) {
|
||||||
|
case NullValue.NULL_VALUE:
|
||||||
|
return "NULL_VALUE";
|
||||||
|
case NullValue.UNRECOGNIZED:
|
||||||
|
default:
|
||||||
|
return "UNRECOGNIZED";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a JSON object.
|
||||||
|
*
|
||||||
|
* An unordered key-value map, intending to perfectly capture the semantics of a
|
||||||
|
* JSON object. This enables parsing any arbitrary JSON payload as a message
|
||||||
|
* field in ProtoJSON format.
|
||||||
|
*
|
||||||
|
* This follows RFC 8259 guidelines for interoperable JSON: notably this type
|
||||||
|
* cannot represent large Int64 values or `NaN`/`Infinity` numbers,
|
||||||
|
* since the JSON format generally does not support those values in its number
|
||||||
|
* type.
|
||||||
|
*
|
||||||
|
* If you do not intend to parse arbitrary JSON into your message, a custom
|
||||||
|
* typed message should be preferred instead of using this type.
|
||||||
|
*/
|
||||||
|
export interface Struct {
|
||||||
|
/** Unordered map of dynamically typed values. */
|
||||||
|
fields?: { [key: string]: any | undefined } | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Struct_FieldsEntry {
|
||||||
|
key: string;
|
||||||
|
value?: any | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a JSON value.
|
||||||
|
*
|
||||||
|
* `Value` represents a dynamically typed value which can be either
|
||||||
|
* null, a number, a string, a boolean, a recursive struct value, or a
|
||||||
|
* list of values. A producer of value is expected to set one of these
|
||||||
|
* variants. Absence of any variant is an invalid state.
|
||||||
|
*/
|
||||||
|
export interface Value {
|
||||||
|
/** Represents a JSON `null`. */
|
||||||
|
nullValue?:
|
||||||
|
| NullValue
|
||||||
|
| undefined;
|
||||||
|
/**
|
||||||
|
* Represents a JSON number. Must not be `NaN`, `Infinity` or
|
||||||
|
* `-Infinity`, since those are not supported in JSON. This also cannot
|
||||||
|
* represent large Int64 values, since JSON format generally does not
|
||||||
|
* support them in its number type.
|
||||||
|
*/
|
||||||
|
numberValue?:
|
||||||
|
| number
|
||||||
|
| undefined;
|
||||||
|
/** Represents a JSON string. */
|
||||||
|
stringValue?:
|
||||||
|
| string
|
||||||
|
| undefined;
|
||||||
|
/** Represents a JSON boolean (`true` or `false` literal in JSON). */
|
||||||
|
boolValue?:
|
||||||
|
| boolean
|
||||||
|
| undefined;
|
||||||
|
/** Represents a JSON object. */
|
||||||
|
structValue?:
|
||||||
|
| { [key: string]: any }
|
||||||
|
| undefined;
|
||||||
|
/** Represents a JSON array. */
|
||||||
|
listValue?: Array<any> | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Represents a JSON array. */
|
||||||
|
export interface ListValue {
|
||||||
|
/** Repeated field of dynamically typed values. */
|
||||||
|
values?: any[] | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
function createBaseStruct(): Struct {
|
||||||
|
return { fields: {} };
|
||||||
|
}
|
||||||
|
|
||||||
|
export const Struct: MessageFns<Struct> & StructWrapperFns = {
|
||||||
|
encode(message: Struct, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
||||||
|
globalThis.Object.entries(message.fields || {}).forEach(([key, value]: [string, any | undefined]) => {
|
||||||
|
if (value !== undefined) {
|
||||||
|
Struct_FieldsEntry.encode({ key: key as any, value }, writer.uint32(10).fork()).join();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return writer;
|
||||||
|
},
|
||||||
|
|
||||||
|
decode(input: BinaryReader | Uint8Array, length?: number): Struct {
|
||||||
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
||||||
|
const end = length === undefined ? reader.len : reader.pos + length;
|
||||||
|
const message = createBaseStruct();
|
||||||
|
while (reader.pos < end) {
|
||||||
|
const tag = reader.uint32();
|
||||||
|
switch (tag >>> 3) {
|
||||||
|
case 1: {
|
||||||
|
if (tag !== 10) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
const entry1 = Struct_FieldsEntry.decode(reader, reader.uint32());
|
||||||
|
if (entry1.value !== undefined) {
|
||||||
|
message.fields![entry1.key] = entry1.value;
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((tag & 7) === 4 || tag === 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
reader.skip(tag & 7);
|
||||||
|
}
|
||||||
|
return message;
|
||||||
|
},
|
||||||
|
|
||||||
|
fromJSON(object: any): Struct {
|
||||||
|
return {
|
||||||
|
fields: isObject(object.fields)
|
||||||
|
? (globalThis.Object.entries(object.fields) as [string, any][]).reduce(
|
||||||
|
(acc: { [key: string]: any | undefined }, [key, value]: [string, any]) => {
|
||||||
|
acc[key] = value as any | undefined;
|
||||||
|
return acc;
|
||||||
|
},
|
||||||
|
{},
|
||||||
|
)
|
||||||
|
: {},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
toJSON(message: Struct): unknown {
|
||||||
|
const obj: any = {};
|
||||||
|
if (message.fields) {
|
||||||
|
const entries = globalThis.Object.entries(message.fields) as [string, any | undefined][];
|
||||||
|
if (entries.length > 0) {
|
||||||
|
obj.fields = {};
|
||||||
|
entries.forEach(([k, v]) => {
|
||||||
|
obj.fields[k] = v;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return obj;
|
||||||
|
},
|
||||||
|
|
||||||
|
create(base?: DeepPartial<Struct>): Struct {
|
||||||
|
return Struct.fromPartial(base ?? {});
|
||||||
|
},
|
||||||
|
fromPartial(object: DeepPartial<Struct>): Struct {
|
||||||
|
const message = createBaseStruct();
|
||||||
|
message.fields = (globalThis.Object.entries(object.fields ?? {}) as [string, any | undefined][]).reduce(
|
||||||
|
(acc: { [key: string]: any | undefined }, [key, value]: [string, any | undefined]) => {
|
||||||
|
if (value !== undefined) {
|
||||||
|
acc[key] = value;
|
||||||
|
}
|
||||||
|
return acc;
|
||||||
|
},
|
||||||
|
{},
|
||||||
|
);
|
||||||
|
return message;
|
||||||
|
},
|
||||||
|
|
||||||
|
wrap(object: { [key: string]: any } | undefined): Struct {
|
||||||
|
const struct = createBaseStruct();
|
||||||
|
struct.fields ??= {};
|
||||||
|
if (object !== undefined) {
|
||||||
|
for (const key of globalThis.Object.keys(object)) {
|
||||||
|
struct.fields[key] = object[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return struct;
|
||||||
|
},
|
||||||
|
|
||||||
|
unwrap(message: Struct): { [key: string]: any } {
|
||||||
|
const object: { [key: string]: any } = {};
|
||||||
|
if (message.fields) {
|
||||||
|
for (const key of globalThis.Object.keys(message.fields)) {
|
||||||
|
object[key] = message.fields[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return object;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
function createBaseStruct_FieldsEntry(): Struct_FieldsEntry {
|
||||||
|
return { key: "", value: undefined };
|
||||||
|
}
|
||||||
|
|
||||||
|
export const Struct_FieldsEntry: MessageFns<Struct_FieldsEntry> = {
|
||||||
|
encode(message: Struct_FieldsEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
||||||
|
if (message.key !== "") {
|
||||||
|
writer.uint32(10).string(message.key);
|
||||||
|
}
|
||||||
|
if (message.value !== undefined) {
|
||||||
|
Value.encode(Value.wrap(message.value), writer.uint32(18).fork()).join();
|
||||||
|
}
|
||||||
|
return writer;
|
||||||
|
},
|
||||||
|
|
||||||
|
decode(input: BinaryReader | Uint8Array, length?: number): Struct_FieldsEntry {
|
||||||
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
||||||
|
const end = length === undefined ? reader.len : reader.pos + length;
|
||||||
|
const message = createBaseStruct_FieldsEntry();
|
||||||
|
while (reader.pos < end) {
|
||||||
|
const tag = reader.uint32();
|
||||||
|
switch (tag >>> 3) {
|
||||||
|
case 1: {
|
||||||
|
if (tag !== 10) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.key = reader.string();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
case 2: {
|
||||||
|
if (tag !== 18) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.value = Value.unwrap(Value.decode(reader, reader.uint32()));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((tag & 7) === 4 || tag === 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
reader.skip(tag & 7);
|
||||||
|
}
|
||||||
|
return message;
|
||||||
|
},
|
||||||
|
|
||||||
|
fromJSON(object: any): Struct_FieldsEntry {
|
||||||
|
return {
|
||||||
|
key: isSet(object.key) ? globalThis.String(object.key) : "",
|
||||||
|
value: isSet(object?.value) ? object.value : undefined,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
toJSON(message: Struct_FieldsEntry): unknown {
|
||||||
|
const obj: any = {};
|
||||||
|
if (message.key !== "") {
|
||||||
|
obj.key = message.key;
|
||||||
|
}
|
||||||
|
if (message.value !== undefined) {
|
||||||
|
obj.value = message.value;
|
||||||
|
}
|
||||||
|
return obj;
|
||||||
|
},
|
||||||
|
|
||||||
|
create(base?: DeepPartial<Struct_FieldsEntry>): Struct_FieldsEntry {
|
||||||
|
return Struct_FieldsEntry.fromPartial(base ?? {});
|
||||||
|
},
|
||||||
|
fromPartial(object: DeepPartial<Struct_FieldsEntry>): Struct_FieldsEntry {
|
||||||
|
const message = createBaseStruct_FieldsEntry();
|
||||||
|
message.key = object.key ?? "";
|
||||||
|
message.value = object.value ?? undefined;
|
||||||
|
return message;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
function createBaseValue(): Value {
|
||||||
|
return {
|
||||||
|
nullValue: undefined,
|
||||||
|
numberValue: undefined,
|
||||||
|
stringValue: undefined,
|
||||||
|
boolValue: undefined,
|
||||||
|
structValue: undefined,
|
||||||
|
listValue: undefined,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export const Value: MessageFns<Value> & AnyValueWrapperFns = {
|
||||||
|
encode(message: Value, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
||||||
|
if (message.nullValue !== undefined) {
|
||||||
|
writer.uint32(8).int32(message.nullValue);
|
||||||
|
}
|
||||||
|
if (message.numberValue !== undefined) {
|
||||||
|
writer.uint32(17).double(message.numberValue);
|
||||||
|
}
|
||||||
|
if (message.stringValue !== undefined) {
|
||||||
|
writer.uint32(26).string(message.stringValue);
|
||||||
|
}
|
||||||
|
if (message.boolValue !== undefined) {
|
||||||
|
writer.uint32(32).bool(message.boolValue);
|
||||||
|
}
|
||||||
|
if (message.structValue !== undefined) {
|
||||||
|
Struct.encode(Struct.wrap(message.structValue), writer.uint32(42).fork()).join();
|
||||||
|
}
|
||||||
|
if (message.listValue !== undefined) {
|
||||||
|
ListValue.encode(ListValue.wrap(message.listValue), writer.uint32(50).fork()).join();
|
||||||
|
}
|
||||||
|
return writer;
|
||||||
|
},
|
||||||
|
|
||||||
|
decode(input: BinaryReader | Uint8Array, length?: number): Value {
|
||||||
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
||||||
|
const end = length === undefined ? reader.len : reader.pos + length;
|
||||||
|
const message = createBaseValue();
|
||||||
|
while (reader.pos < end) {
|
||||||
|
const tag = reader.uint32();
|
||||||
|
switch (tag >>> 3) {
|
||||||
|
case 1: {
|
||||||
|
if (tag !== 8) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.nullValue = reader.int32() as any;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
case 2: {
|
||||||
|
if (tag !== 17) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.numberValue = reader.double();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
case 3: {
|
||||||
|
if (tag !== 26) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.stringValue = reader.string();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
case 4: {
|
||||||
|
if (tag !== 32) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.boolValue = reader.bool();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
case 5: {
|
||||||
|
if (tag !== 42) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.structValue = Struct.unwrap(Struct.decode(reader, reader.uint32()));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
case 6: {
|
||||||
|
if (tag !== 50) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.listValue = ListValue.unwrap(ListValue.decode(reader, reader.uint32()));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((tag & 7) === 4 || tag === 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
reader.skip(tag & 7);
|
||||||
|
}
|
||||||
|
return message;
|
||||||
|
},
|
||||||
|
|
||||||
|
fromJSON(object: any): Value {
|
||||||
|
return {
|
||||||
|
nullValue: isSet(object.nullValue)
|
||||||
|
? nullValueFromJSON(object.nullValue)
|
||||||
|
: isSet(object.null_value)
|
||||||
|
? nullValueFromJSON(object.null_value)
|
||||||
|
: undefined,
|
||||||
|
numberValue: isSet(object.numberValue)
|
||||||
|
? globalThis.Number(object.numberValue)
|
||||||
|
: isSet(object.number_value)
|
||||||
|
? globalThis.Number(object.number_value)
|
||||||
|
: undefined,
|
||||||
|
stringValue: isSet(object.stringValue)
|
||||||
|
? globalThis.String(object.stringValue)
|
||||||
|
: isSet(object.string_value)
|
||||||
|
? globalThis.String(object.string_value)
|
||||||
|
: undefined,
|
||||||
|
boolValue: isSet(object.boolValue)
|
||||||
|
? globalThis.Boolean(object.boolValue)
|
||||||
|
: isSet(object.bool_value)
|
||||||
|
? globalThis.Boolean(object.bool_value)
|
||||||
|
: undefined,
|
||||||
|
structValue: isObject(object.structValue)
|
||||||
|
? object.structValue
|
||||||
|
: isObject(object.struct_value)
|
||||||
|
? object.struct_value
|
||||||
|
: undefined,
|
||||||
|
listValue: globalThis.Array.isArray(object.listValue)
|
||||||
|
? [...object.listValue]
|
||||||
|
: globalThis.Array.isArray(object.list_value)
|
||||||
|
? [...object.list_value]
|
||||||
|
: undefined,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
toJSON(message: Value): unknown {
|
||||||
|
const obj: any = {};
|
||||||
|
if (message.nullValue !== undefined) {
|
||||||
|
obj.nullValue = nullValueToJSON(message.nullValue);
|
||||||
|
}
|
||||||
|
if (message.numberValue !== undefined) {
|
||||||
|
obj.numberValue = message.numberValue;
|
||||||
|
}
|
||||||
|
if (message.stringValue !== undefined) {
|
||||||
|
obj.stringValue = message.stringValue;
|
||||||
|
}
|
||||||
|
if (message.boolValue !== undefined) {
|
||||||
|
obj.boolValue = message.boolValue;
|
||||||
|
}
|
||||||
|
if (message.structValue !== undefined) {
|
||||||
|
obj.structValue = message.structValue;
|
||||||
|
}
|
||||||
|
if (message.listValue !== undefined) {
|
||||||
|
obj.listValue = message.listValue;
|
||||||
|
}
|
||||||
|
return obj;
|
||||||
|
},
|
||||||
|
|
||||||
|
create(base?: DeepPartial<Value>): Value {
|
||||||
|
return Value.fromPartial(base ?? {});
|
||||||
|
},
|
||||||
|
fromPartial(object: DeepPartial<Value>): Value {
|
||||||
|
const message = createBaseValue();
|
||||||
|
message.nullValue = object.nullValue ?? undefined;
|
||||||
|
message.numberValue = object.numberValue ?? undefined;
|
||||||
|
message.stringValue = object.stringValue ?? undefined;
|
||||||
|
message.boolValue = object.boolValue ?? undefined;
|
||||||
|
message.structValue = object.structValue ?? undefined;
|
||||||
|
message.listValue = object.listValue ?? undefined;
|
||||||
|
return message;
|
||||||
|
},
|
||||||
|
|
||||||
|
wrap(value: any): Value {
|
||||||
|
const result = createBaseValue();
|
||||||
|
if (value === null) {
|
||||||
|
result.nullValue = NullValue.NULL_VALUE;
|
||||||
|
} else if (typeof value === "boolean") {
|
||||||
|
result.boolValue = value;
|
||||||
|
} else if (typeof value === "number") {
|
||||||
|
result.numberValue = value;
|
||||||
|
} else if (typeof value === "string") {
|
||||||
|
result.stringValue = value;
|
||||||
|
} else if (globalThis.Array.isArray(value)) {
|
||||||
|
result.listValue = value;
|
||||||
|
} else if (typeof value === "object") {
|
||||||
|
result.structValue = value;
|
||||||
|
} else if (typeof value !== "undefined") {
|
||||||
|
throw new globalThis.Error("Unsupported any value type: " + typeof value);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
},
|
||||||
|
|
||||||
|
unwrap(message: any): string | number | boolean | Object | null | Array<any> | undefined {
|
||||||
|
if (message.stringValue !== undefined) {
|
||||||
|
return message.stringValue;
|
||||||
|
} else if (message?.numberValue !== undefined) {
|
||||||
|
return message.numberValue;
|
||||||
|
} else if (message?.boolValue !== undefined) {
|
||||||
|
return message.boolValue;
|
||||||
|
} else if (message?.structValue !== undefined) {
|
||||||
|
return message.structValue as any;
|
||||||
|
} else if (message?.listValue !== undefined) {
|
||||||
|
return message.listValue;
|
||||||
|
} else if (message?.nullValue !== undefined) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return undefined;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
function createBaseListValue(): ListValue {
|
||||||
|
return { values: [] };
|
||||||
|
}
|
||||||
|
|
||||||
|
export const ListValue: MessageFns<ListValue> & ListValueWrapperFns = {
|
||||||
|
encode(message: ListValue, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
||||||
|
if (message.values !== undefined && message.values.length !== 0) {
|
||||||
|
for (const v of message.values) {
|
||||||
|
Value.encode(Value.wrap(v!), writer.uint32(10).fork()).join();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return writer;
|
||||||
|
},
|
||||||
|
|
||||||
|
decode(input: BinaryReader | Uint8Array, length?: number): ListValue {
|
||||||
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
||||||
|
const end = length === undefined ? reader.len : reader.pos + length;
|
||||||
|
const message = createBaseListValue();
|
||||||
|
while (reader.pos < end) {
|
||||||
|
const tag = reader.uint32();
|
||||||
|
switch (tag >>> 3) {
|
||||||
|
case 1: {
|
||||||
|
if (tag !== 10) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
const el = Value.unwrap(Value.decode(reader, reader.uint32()));
|
||||||
|
if (el !== undefined) {
|
||||||
|
message.values!.push(el);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((tag & 7) === 4 || tag === 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
reader.skip(tag & 7);
|
||||||
|
}
|
||||||
|
return message;
|
||||||
|
},
|
||||||
|
|
||||||
|
fromJSON(object: any): ListValue {
|
||||||
|
return { values: globalThis.Array.isArray(object?.values) ? [...object.values] : [] };
|
||||||
|
},
|
||||||
|
|
||||||
|
toJSON(message: ListValue): unknown {
|
||||||
|
const obj: any = {};
|
||||||
|
if (message.values?.length) {
|
||||||
|
obj.values = message.values;
|
||||||
|
}
|
||||||
|
return obj;
|
||||||
|
},
|
||||||
|
|
||||||
|
create(base?: DeepPartial<ListValue>): ListValue {
|
||||||
|
return ListValue.fromPartial(base ?? {});
|
||||||
|
},
|
||||||
|
fromPartial(object: DeepPartial<ListValue>): ListValue {
|
||||||
|
const message = createBaseListValue();
|
||||||
|
message.values = object.values?.map((e) => e) || [];
|
||||||
|
return message;
|
||||||
|
},
|
||||||
|
|
||||||
|
wrap(array: Array<any> | undefined): ListValue {
|
||||||
|
const result = createBaseListValue();
|
||||||
|
result.values = array ?? [];
|
||||||
|
return result;
|
||||||
|
},
|
||||||
|
|
||||||
|
unwrap(message: ListValue): Array<any> {
|
||||||
|
if (message?.hasOwnProperty("values") && globalThis.Array.isArray(message.values)) {
|
||||||
|
return message.values;
|
||||||
|
} else {
|
||||||
|
return message as any;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
||||||
|
|
||||||
|
export type DeepPartial<T> = T extends Builtin ? T
|
||||||
|
: T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>
|
||||||
|
: T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>
|
||||||
|
: T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }
|
||||||
|
: Partial<T>;
|
||||||
|
|
||||||
|
function isObject(value: any): boolean {
|
||||||
|
return typeof value === "object" && value !== null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function isSet(value: any): boolean {
|
||||||
|
return value !== null && value !== undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface MessageFns<T> {
|
||||||
|
encode(message: T, writer?: BinaryWriter): BinaryWriter;
|
||||||
|
decode(input: BinaryReader | Uint8Array, length?: number): T;
|
||||||
|
fromJSON(object: any): T;
|
||||||
|
toJSON(message: T): unknown;
|
||||||
|
create(base?: DeepPartial<T>): T;
|
||||||
|
fromPartial(object: DeepPartial<T>): T;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface StructWrapperFns {
|
||||||
|
wrap(object: { [key: string]: any } | undefined): Struct;
|
||||||
|
unwrap(message: Struct): { [key: string]: any };
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AnyValueWrapperFns {
|
||||||
|
wrap(value: any): Value;
|
||||||
|
unwrap(message: any): string | number | boolean | Object | null | Array<any> | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ListValueWrapperFns {
|
||||||
|
wrap(array: Array<any> | undefined): ListValue;
|
||||||
|
unwrap(message: ListValue): Array<any>;
|
||||||
|
}
|
||||||
@@ -0,0 +1,228 @@
|
|||||||
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-ts_proto v2.12.0
|
||||||
|
// protoc v7.35.1
|
||||||
|
// source: google/protobuf/timestamp.proto
|
||||||
|
|
||||||
|
/* eslint-disable */
|
||||||
|
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
||||||
|
|
||||||
|
export const protobufPackage = "google.protobuf";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A Timestamp represents a point in time independent of any time zone or local
|
||||||
|
* calendar, encoded as a count of seconds and fractions of seconds at
|
||||||
|
* nanosecond resolution. The count is relative to an epoch at UTC midnight on
|
||||||
|
* January 1, 1970, in the proleptic Gregorian calendar which extends the
|
||||||
|
* Gregorian calendar backwards to year one.
|
||||||
|
*
|
||||||
|
* All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
|
||||||
|
* second table is needed for interpretation, using a [24-hour linear
|
||||||
|
* smear](https://developers.google.com/time/smear).
|
||||||
|
*
|
||||||
|
* The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
|
||||||
|
* restricting to that range, we ensure that we can convert to and from [RFC
|
||||||
|
* 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
|
||||||
|
*
|
||||||
|
* # Examples
|
||||||
|
*
|
||||||
|
* Example 1: Compute Timestamp from POSIX `time()`.
|
||||||
|
*
|
||||||
|
* Timestamp timestamp;
|
||||||
|
* timestamp.set_seconds(time(NULL));
|
||||||
|
* timestamp.set_nanos(0);
|
||||||
|
*
|
||||||
|
* Example 2: Compute Timestamp from POSIX `gettimeofday()`.
|
||||||
|
*
|
||||||
|
* struct timeval tv;
|
||||||
|
* gettimeofday(&tv, NULL);
|
||||||
|
*
|
||||||
|
* Timestamp timestamp;
|
||||||
|
* timestamp.set_seconds(tv.tv_sec);
|
||||||
|
* timestamp.set_nanos(tv.tv_usec * 1000);
|
||||||
|
*
|
||||||
|
* Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
|
||||||
|
*
|
||||||
|
* FILETIME ft;
|
||||||
|
* GetSystemTimeAsFileTime(&ft);
|
||||||
|
* UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
|
||||||
|
*
|
||||||
|
* // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
|
||||||
|
* // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
|
||||||
|
* Timestamp timestamp;
|
||||||
|
* timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
|
||||||
|
* timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
|
||||||
|
*
|
||||||
|
* Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
|
||||||
|
*
|
||||||
|
* long millis = System.currentTimeMillis();
|
||||||
|
*
|
||||||
|
* Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
|
||||||
|
* .setNanos((int) ((millis % 1000) * 1000000)).build();
|
||||||
|
*
|
||||||
|
* Example 5: Compute Timestamp from Java `Instant.now()`.
|
||||||
|
*
|
||||||
|
* Instant now = Instant.now();
|
||||||
|
*
|
||||||
|
* Timestamp timestamp =
|
||||||
|
* Timestamp.newBuilder().setSeconds(now.getEpochSecond())
|
||||||
|
* .setNanos(now.getNano()).build();
|
||||||
|
*
|
||||||
|
* Example 6: Compute Timestamp from current time in Python.
|
||||||
|
*
|
||||||
|
* timestamp = Timestamp()
|
||||||
|
* timestamp.GetCurrentTime()
|
||||||
|
*
|
||||||
|
* # JSON Mapping
|
||||||
|
*
|
||||||
|
* In JSON format, the Timestamp type is encoded as a string in the
|
||||||
|
* [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
|
||||||
|
* format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
|
||||||
|
* where {year} is always expressed using four digits while {month}, {day},
|
||||||
|
* {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
|
||||||
|
* seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
|
||||||
|
* are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
|
||||||
|
* is required. A ProtoJSON serializer should always use UTC (as indicated by
|
||||||
|
* "Z") when printing the Timestamp type and a ProtoJSON parser should be
|
||||||
|
* able to accept both UTC and other timezones (as indicated by an offset).
|
||||||
|
*
|
||||||
|
* For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
|
||||||
|
* 01:30 UTC on January 15, 2017.
|
||||||
|
*
|
||||||
|
* In JavaScript, one can convert a Date object to this format using the
|
||||||
|
* standard
|
||||||
|
* [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
|
||||||
|
* method. In Python, a standard `datetime.datetime` object can be converted
|
||||||
|
* to this format using
|
||||||
|
* [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
|
||||||
|
* the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
|
||||||
|
* the Joda Time's [`ISODateTimeFormat.dateTime()`](
|
||||||
|
* http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()
|
||||||
|
* ) to obtain a formatter capable of generating timestamps in this format.
|
||||||
|
*/
|
||||||
|
export interface Timestamp {
|
||||||
|
/**
|
||||||
|
* Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must
|
||||||
|
* be between -62135596800 and 253402300799 inclusive (which corresponds to
|
||||||
|
* 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z).
|
||||||
|
*/
|
||||||
|
seconds?:
|
||||||
|
| number
|
||||||
|
| undefined;
|
||||||
|
/**
|
||||||
|
* Non-negative fractions of a second at nanosecond resolution. This field is
|
||||||
|
* the nanosecond portion of the duration, not an alternative to seconds.
|
||||||
|
* Negative second values with fractions must still have non-negative nanos
|
||||||
|
* values that count forward in time. Must be between 0 and 999,999,999
|
||||||
|
* inclusive.
|
||||||
|
*/
|
||||||
|
nanos?: number | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
function createBaseTimestamp(): Timestamp {
|
||||||
|
return { seconds: 0, nanos: 0 };
|
||||||
|
}
|
||||||
|
|
||||||
|
export const Timestamp: MessageFns<Timestamp> = {
|
||||||
|
encode(message: Timestamp, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
||||||
|
if (message.seconds !== undefined && message.seconds !== 0) {
|
||||||
|
writer.uint32(8).int64(message.seconds);
|
||||||
|
}
|
||||||
|
if (message.nanos !== undefined && message.nanos !== 0) {
|
||||||
|
writer.uint32(16).int32(message.nanos);
|
||||||
|
}
|
||||||
|
return writer;
|
||||||
|
},
|
||||||
|
|
||||||
|
decode(input: BinaryReader | Uint8Array, length?: number): Timestamp {
|
||||||
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
||||||
|
const end = length === undefined ? reader.len : reader.pos + length;
|
||||||
|
const message = createBaseTimestamp();
|
||||||
|
while (reader.pos < end) {
|
||||||
|
const tag = reader.uint32();
|
||||||
|
switch (tag >>> 3) {
|
||||||
|
case 1: {
|
||||||
|
if (tag !== 8) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.seconds = longToNumber(reader.int64());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
case 2: {
|
||||||
|
if (tag !== 16) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
message.nanos = reader.int32();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((tag & 7) === 4 || tag === 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
reader.skip(tag & 7);
|
||||||
|
}
|
||||||
|
return message;
|
||||||
|
},
|
||||||
|
|
||||||
|
fromJSON(object: any): Timestamp {
|
||||||
|
return {
|
||||||
|
seconds: isSet(object.seconds) ? globalThis.Number(object.seconds) : 0,
|
||||||
|
nanos: isSet(object.nanos) ? globalThis.Number(object.nanos) : 0,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
toJSON(message: Timestamp): unknown {
|
||||||
|
const obj: any = {};
|
||||||
|
if (message.seconds !== undefined && message.seconds !== 0) {
|
||||||
|
obj.seconds = Math.round(message.seconds);
|
||||||
|
}
|
||||||
|
if (message.nanos !== undefined && message.nanos !== 0) {
|
||||||
|
obj.nanos = Math.round(message.nanos);
|
||||||
|
}
|
||||||
|
return obj;
|
||||||
|
},
|
||||||
|
|
||||||
|
create(base?: DeepPartial<Timestamp>): Timestamp {
|
||||||
|
return Timestamp.fromPartial(base ?? {});
|
||||||
|
},
|
||||||
|
fromPartial(object: DeepPartial<Timestamp>): Timestamp {
|
||||||
|
const message = createBaseTimestamp();
|
||||||
|
message.seconds = object.seconds ?? 0;
|
||||||
|
message.nanos = object.nanos ?? 0;
|
||||||
|
return message;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
||||||
|
|
||||||
|
export type DeepPartial<T> = T extends Builtin ? T
|
||||||
|
: T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>
|
||||||
|
: T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>
|
||||||
|
: T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }
|
||||||
|
: Partial<T>;
|
||||||
|
|
||||||
|
function longToNumber(int64: { toString(): string }): number {
|
||||||
|
const num = globalThis.Number(int64.toString());
|
||||||
|
if (num > globalThis.Number.MAX_SAFE_INTEGER) {
|
||||||
|
throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
|
||||||
|
}
|
||||||
|
if (num < globalThis.Number.MIN_SAFE_INTEGER) {
|
||||||
|
throw new globalThis.Error("Value is smaller than Number.MIN_SAFE_INTEGER");
|
||||||
|
}
|
||||||
|
return num;
|
||||||
|
}
|
||||||
|
|
||||||
|
function isSet(value: any): boolean {
|
||||||
|
return value !== null && value !== undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface MessageFns<T> {
|
||||||
|
encode(message: T, writer?: BinaryWriter): BinaryWriter;
|
||||||
|
decode(input: BinaryReader | Uint8Array, length?: number): T;
|
||||||
|
fromJSON(object: any): T;
|
||||||
|
toJSON(message: T): unknown;
|
||||||
|
create(base?: DeepPartial<T>): T;
|
||||||
|
fromPartial(object: DeepPartial<T>): T;
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,9 @@
|
|||||||
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-ts_proto v2.12.0
|
||||||
|
// protoc v7.35.1
|
||||||
|
// source: protoc-gen-openapiv2/options/annotations.proto
|
||||||
|
|
||||||
|
/* eslint-disable */
|
||||||
|
|
||||||
|
export const protobufPackage = "grpc.gateway.protoc_gen_openapiv2.options";
|
||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user