@barumetric/contracts 1.2.13 → 1.2.14

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.
@@ -13,33 +13,19 @@ export const protobufPackage = "presence.v1";
13
13
 
14
14
  export interface GetUserStatusRequest {
15
15
  userId: string;
16
+ /** WebSocket connection ID */
17
+ connectionId?: string | undefined;
16
18
  }
17
19
 
18
20
  export interface GetUserStatusResponse {
19
21
  /** "online" | "away" | "offline" */
20
22
  status: string;
21
23
  /** timestamp */
22
- lastSeen: number;
24
+ lastSeen:
25
+ | Timestamp
26
+ | undefined;
23
27
  /** "web" | "mobile" */
24
28
  device: string;
25
- updatedAt: Timestamp | undefined;
26
- }
27
-
28
- export interface GetUsersStatusRequest {
29
- userIds: string[];
30
- }
31
-
32
- export interface GetUsersStatusResponse {
33
- statuses: UserStatus[];
34
- }
35
-
36
- export interface UserStatus {
37
- userId: string;
38
- /** "online" | "away" | "offline" */
39
- status: string;
40
- lastSeen: number;
41
- device: string;
42
- updatedAt: Timestamp | undefined;
43
29
  }
44
30
 
45
31
  export interface UpdateStatusRequest {
@@ -67,30 +53,6 @@ export interface RemoveConnectionResponse {
67
53
  status: string;
68
54
  }
69
55
 
70
- export interface SubscribeToStatusRequest {
71
- /** кто подписывается */
72
- userId: string;
73
- /** за какими пользователями следить */
74
- contactIds: string[];
75
- }
76
-
77
- export interface StatusUpdate {
78
- userId: string;
79
- /** "online" | "away" | "offline" */
80
- status: string;
81
- lastSeen: number;
82
- device: string;
83
- updatedAt: Timestamp | undefined;
84
- }
85
-
86
- export interface UnsubscribeFromStatusRequest {
87
- userId: string;
88
- }
89
-
90
- export interface UnsubscribeFromStatusResponse {
91
- ok: boolean;
92
- }
93
-
94
56
  export const PRESENCE_V1_PACKAGE_NAME = "presence.v1";
95
57
 
96
58
  export interface PresenceServiceClient {
@@ -98,10 +60,6 @@ export interface PresenceServiceClient {
98
60
 
99
61
  getUserStatus(request: GetUserStatusRequest): Observable<GetUserStatusResponse>;
100
62
 
101
- /** Получить статусы нескольких пользователей */
102
-
103
- getUsersStatus(request: GetUsersStatusRequest): Observable<GetUsersStatusResponse>;
104
-
105
63
  /** Обновить статус пользователя (heartbeat) */
106
64
 
107
65
  updateStatus(request: UpdateStatusRequest): Observable<UpdateStatusResponse>;
@@ -109,14 +67,6 @@ export interface PresenceServiceClient {
109
67
  /** Удалить соединение пользователя (при отключении) */
110
68
 
111
69
  removeConnection(request: RemoveConnectionRequest): Observable<RemoveConnectionResponse>;
112
-
113
- /** Подписаться на изменения статуса (stream) */
114
-
115
- subscribeToStatus(request: SubscribeToStatusRequest): Observable<StatusUpdate>;
116
-
117
- /** Отписаться от изменений статуса */
118
-
119
- unsubscribeFromStatus(request: UnsubscribeFromStatusRequest): Observable<UnsubscribeFromStatusResponse>;
120
70
  }
121
71
 
122
72
  export interface PresenceServiceController {
@@ -126,12 +76,6 @@ export interface PresenceServiceController {
126
76
  request: GetUserStatusRequest,
127
77
  ): Promise<GetUserStatusResponse> | Observable<GetUserStatusResponse> | GetUserStatusResponse;
128
78
 
129
- /** Получить статусы нескольких пользователей */
130
-
131
- getUsersStatus(
132
- request: GetUsersStatusRequest,
133
- ): Promise<GetUsersStatusResponse> | Observable<GetUsersStatusResponse> | GetUsersStatusResponse;
134
-
135
79
  /** Обновить статус пользователя (heartbeat) */
136
80
 
137
81
  updateStatus(
@@ -143,28 +87,11 @@ export interface PresenceServiceController {
143
87
  removeConnection(
144
88
  request: RemoveConnectionRequest,
145
89
  ): Promise<RemoveConnectionResponse> | Observable<RemoveConnectionResponse> | RemoveConnectionResponse;
146
-
147
- /** Подписаться на изменения статуса (stream) */
148
-
149
- subscribeToStatus(request: SubscribeToStatusRequest): Observable<StatusUpdate>;
150
-
151
- /** Отписаться от изменений статуса */
152
-
153
- unsubscribeFromStatus(
154
- request: UnsubscribeFromStatusRequest,
155
- ): Promise<UnsubscribeFromStatusResponse> | Observable<UnsubscribeFromStatusResponse> | UnsubscribeFromStatusResponse;
156
90
  }
157
91
 
158
92
  export function PresenceServiceControllerMethods() {
159
93
  return function (constructor: Function) {
160
- const grpcMethods: string[] = [
161
- "getUserStatus",
162
- "getUsersStatus",
163
- "updateStatus",
164
- "removeConnection",
165
- "subscribeToStatus",
166
- "unsubscribeFromStatus",
167
- ];
94
+ const grpcMethods: string[] = ["getUserStatus", "updateStatus", "removeConnection"];
168
95
  for (const method of grpcMethods) {
169
96
  const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
170
97
  GrpcMethod("PresenceService", method)(constructor.prototype[method], method, descriptor);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@barumetric/contracts",
3
- "version": "1.2.13",
3
+ "version": "1.2.14",
4
4
  "description": "Protobuf definitions and generated TypeScript types",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -8,47 +8,23 @@ service PresenceService {
8
8
  // Получить статус пользователя
9
9
  rpc GetUserStatus (GetUserStatusRequest) returns (GetUserStatusResponse);
10
10
 
11
- // Получить статусы нескольких пользователей
12
- rpc GetUsersStatus (GetUsersStatusRequest) returns (GetUsersStatusResponse);
13
-
14
11
  // Обновить статус пользователя (heartbeat)
15
12
  rpc UpdateStatus (UpdateStatusRequest) returns (UpdateStatusResponse);
16
13
 
17
14
  // Удалить соединение пользователя (при отключении)
18
15
  rpc RemoveConnection (RemoveConnectionRequest) returns (RemoveConnectionResponse);
19
16
 
20
- // Подписаться на изменения статуса (stream)
21
- rpc SubscribeToStatus (SubscribeToStatusRequest) returns (stream StatusUpdate);
22
-
23
- // Отписаться от изменений статуса
24
- rpc UnsubscribeFromStatus (UnsubscribeFromStatusRequest) returns (UnsubscribeFromStatusResponse);
25
17
  }
26
18
 
27
19
  message GetUserStatusRequest {
28
20
  string user_id = 1;
21
+ optional string connection_id = 2; // WebSocket connection ID
29
22
  }
30
23
 
31
24
  message GetUserStatusResponse {
32
25
  string status = 1; // "online" | "away" | "offline"
33
- int64 last_seen = 2; // timestamp
26
+ google.protobuf.Timestamp last_seen = 2; // timestamp
34
27
  string device = 3; // "web" | "mobile"
35
- google.protobuf.Timestamp updated_at = 4;
36
- }
37
-
38
- message GetUsersStatusRequest {
39
- repeated string user_ids = 1;
40
- }
41
-
42
- message GetUsersStatusResponse {
43
- repeated UserStatus statuses = 1;
44
- }
45
-
46
- message UserStatus {
47
- string user_id = 1;
48
- string status = 2; // "online" | "away" | "offline"
49
- int64 last_seen = 3;
50
- string device = 4;
51
- google.protobuf.Timestamp updated_at = 5;
52
28
  }
53
29
 
54
30
  message UpdateStatusRequest {
@@ -71,25 +47,3 @@ message RemoveConnectionResponse {
71
47
  bool ok = 1;
72
48
  string status = 2; // текущий статус после удаления
73
49
  }
74
-
75
- message SubscribeToStatusRequest {
76
- string user_id = 1; // кто подписывается
77
- repeated string contact_ids = 2; // за какими пользователями следить
78
- }
79
-
80
- message StatusUpdate {
81
- string user_id = 1;
82
- string status = 2; // "online" | "away" | "offline"
83
- int64 last_seen = 3;
84
- string device = 4;
85
- google.protobuf.Timestamp updated_at = 5;
86
- }
87
-
88
- message UnsubscribeFromStatusRequest {
89
- string user_id = 1;
90
- }
91
-
92
- message UnsubscribeFromStatusResponse {
93
- bool ok = 1;
94
- }
95
-