Files
contracts/gen/glifa/ws/v1/service.ts
lendry fbe3b0327c
Some checks failed
Publish NPM Package / Publish Job (push) Failing after 1m34s
first commit
2026-05-21 21:49:32 +03:00

174 lines
8.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
// versions:
// protoc-gen-ts_proto v2.11.8
// protoc v4.25.9
// source: glifa/ws/v1/service.proto
/* eslint-disable */
import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices";
import { Observable } from "rxjs";
import { RequestMeta } from "../../common/v1/types";
import { ConnectionInfo, PresenceState, RealtimeEnvelope, TypingState } from "./types";
export const protobufPackage = "glifa.ws.v1";
export interface RegisterConnectionRequest {
/** Метаданные запроса, такие как идентификатор корреляции, язык и т.д. */
meta:
| RequestMeta
| undefined;
/** Токен доступа, который будет использоваться для аутентификации и авторизации соединения */
accessToken: string;
/** Уникальный идентификатор соединения, который может быть сгенерирован клиентом или сервером для отслеживания этого соединения */
connectionId: string;
/** Идентификатор узла, к которому подключается это соединение, если используется распределенная архитектура с несколькими узлами */
nodeId: string;
}
export interface RegisterConnectionResponse {
/** Информация о зарегистрированном соединении, включая его статус и метаданные */
connection: ConnectionInfo | undefined;
}
export interface UnregisterConnectionRequest {
/** Метаданные запроса, такие как идентификатор корреляции, язык и т.д. */
meta:
| RequestMeta
| undefined;
/** Уникальный идентификатор соединения, которое должно быть удалено или разорвано */
connectionId: string;
}
export interface UnregisterConnectionResponse {
/** Флаг, указывающий, было ли соединение успешно удалено или разорвано */
success: boolean;
}
export interface PublishEnvelopeRequest {
/** Метаданные запроса, такие как идентификатор корреляции, язык и т.д. */
meta:
| RequestMeta
| undefined;
/** Список UUID пользователей, которые являются целевыми получателями этого сообщения, и которым должно быть доставлено это сообщение */
targetUserIds: string[];
/** Список UUID сессий, которые являются целевыми получателями этого сообщения, и которым должно быть доставлено это сообщение */
targetSessionIds: string[];
/** Список UUID каналов или тем, на которые подписаны получатели, которым должно быть доставлено это сообщение */
targetChannelIds: string[];
/** Конверт в реальном времени, который содержит данные и метаданные сообщения, которое должно быть доставлено получателям */
envelope: RealtimeEnvelope | undefined;
}
export interface PublishEnvelopeResponse {
/** Количество целевых получателей, которым было принято это сообщение для доставки (например, количество пользователей, сессий или каналов, которым было отправлено это сообщение) */
acceptedTargets: number;
}
export interface PublishPresenceRequest {
/** Метаданные запроса, такие как идентификатор корреляции, язык и т.д. */
meta:
| RequestMeta
| undefined;
/** Состояние присутствия пользователя, которое должно быть опубликовано и доставлено подписчикам */
presence: PresenceState | undefined;
}
export interface PublishPresenceResponse {
/** Флаг, указывающий, было ли состояние присутствия успешно опубликовано и доставлено подписчикам */
success: boolean;
}
export interface PublishTypingRequest {
/** Метаданные запроса, такие как идентификатор корреляции, язык и т.д. */
meta:
| RequestMeta
| undefined;
/** Состояние печати пользователя, которое должно быть опубликовано и доставлено подписчикам */
typing: TypingState | undefined;
}
export interface PublishTypingResponse {
/** Флаг, указывающий, было ли состояние печати успешно опубликовано и доставлено подписчикам */
success: boolean;
}
export interface ListUserConnectionsRequest {
/** Метаданные запроса, такие как идентификатор корреляции, язык и т.д. */
meta:
| RequestMeta
| undefined;
/** UUID пользователя, для которого нужно получить список активных соединений */
userId: string;
}
export interface ListUserConnectionsResponse {
/** Список активных соединений, связанных с указанным пользователем, включая их статус и метаданные */
items: ConnectionInfo[];
}
export const GLIFA_WS_V1_PACKAGE_NAME = "glifa.ws.v1";
export interface WsGatewayServiceClient {
registerConnection(request: RegisterConnectionRequest): Observable<RegisterConnectionResponse>;
unregisterConnection(request: UnregisterConnectionRequest): Observable<UnregisterConnectionResponse>;
publishEnvelope(request: PublishEnvelopeRequest): Observable<PublishEnvelopeResponse>;
publishPresence(request: PublishPresenceRequest): Observable<PublishPresenceResponse>;
publishTyping(request: PublishTypingRequest): Observable<PublishTypingResponse>;
listUserConnections(request: ListUserConnectionsRequest): Observable<ListUserConnectionsResponse>;
}
export interface WsGatewayServiceController {
registerConnection(
request: RegisterConnectionRequest,
): Promise<RegisterConnectionResponse> | Observable<RegisterConnectionResponse> | RegisterConnectionResponse;
unregisterConnection(
request: UnregisterConnectionRequest,
): Promise<UnregisterConnectionResponse> | Observable<UnregisterConnectionResponse> | UnregisterConnectionResponse;
publishEnvelope(
request: PublishEnvelopeRequest,
): Promise<PublishEnvelopeResponse> | Observable<PublishEnvelopeResponse> | PublishEnvelopeResponse;
publishPresence(
request: PublishPresenceRequest,
): Promise<PublishPresenceResponse> | Observable<PublishPresenceResponse> | PublishPresenceResponse;
publishTyping(
request: PublishTypingRequest,
): Promise<PublishTypingResponse> | Observable<PublishTypingResponse> | PublishTypingResponse;
listUserConnections(
request: ListUserConnectionsRequest,
): Promise<ListUserConnectionsResponse> | Observable<ListUserConnectionsResponse> | ListUserConnectionsResponse;
}
export function WsGatewayServiceControllerMethods() {
return function (constructor: Function) {
const grpcMethods: string[] = [
"registerConnection",
"unregisterConnection",
"publishEnvelope",
"publishPresence",
"publishTyping",
"listUserConnections",
];
for (const method of grpcMethods) {
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
GrpcMethod("WsGatewayService", method)(constructor.prototype[method], method, descriptor);
}
const grpcStreamMethods: string[] = [];
for (const method of grpcStreamMethods) {
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
GrpcStreamMethod("WsGatewayService", method)(constructor.prototype[method], method, descriptor);
}
};
}
export const WS_GATEWAY_SERVICE_NAME = "WsGatewayService";