From 81f77a0a2814bce97d2097488bc7105e227b953c Mon Sep 17 00:00:00 2001 From: Bernard Gawor Date: Wed, 28 Jan 2026 16:26:49 +0100 Subject: [PATCH 1/4] compile proto --- .../protobufs/fishjam/agent_notifications.ts | 2 +- .../fishjam/media_events/peer/peer.ts | 2 +- .../fishjam/media_events/server/server.ts | 2 +- .../protobufs/fishjam/media_events/shared.ts | 191 +++++++++++- .../protobufs/fishjam/notifications/shared.ts | 2 +- .../protobufs/fishjam/peer_notifications.ts | 156 +++++++++- .../protobufs/fishjam/server_notifications.ts | 276 +++++++++++++++++- 7 files changed, 622 insertions(+), 9 deletions(-) diff --git a/packages/protobufs/fishjam/agent_notifications.ts b/packages/protobufs/fishjam/agent_notifications.ts index 3bf048c7..ee96b0b9 100644 --- a/packages/protobufs/fishjam/agent_notifications.ts +++ b/packages/protobufs/fishjam/agent_notifications.ts @@ -1,7 +1,7 @@ // Code generated by protoc-gen-ts_proto. DO NOT EDIT. // versions: // protoc-gen-ts_proto v2.7.0 -// protoc v6.33.0 +// protoc v6.33.4 // source: fishjam/agent_notifications.proto /* eslint-disable */ diff --git a/packages/protobufs/fishjam/media_events/peer/peer.ts b/packages/protobufs/fishjam/media_events/peer/peer.ts index 7a7be2d6..b97f4b70 100644 --- a/packages/protobufs/fishjam/media_events/peer/peer.ts +++ b/packages/protobufs/fishjam/media_events/peer/peer.ts @@ -1,7 +1,7 @@ // Code generated by protoc-gen-ts_proto. DO NOT EDIT. // versions: // protoc-gen-ts_proto v2.7.0 -// protoc v6.33.0 +// protoc v6.33.4 // source: fishjam/media_events/peer/peer.proto /* eslint-disable */ diff --git a/packages/protobufs/fishjam/media_events/server/server.ts b/packages/protobufs/fishjam/media_events/server/server.ts index 2a7b0a47..e771bf5f 100644 --- a/packages/protobufs/fishjam/media_events/server/server.ts +++ b/packages/protobufs/fishjam/media_events/server/server.ts @@ -1,7 +1,7 @@ // Code generated by protoc-gen-ts_proto. DO NOT EDIT. // versions: // protoc-gen-ts_proto v2.7.0 -// protoc v6.33.0 +// protoc v6.33.4 // source: fishjam/media_events/server/server.proto /* eslint-disable */ diff --git a/packages/protobufs/fishjam/media_events/shared.ts b/packages/protobufs/fishjam/media_events/shared.ts index 74ec0e4c..b20e9354 100644 --- a/packages/protobufs/fishjam/media_events/shared.ts +++ b/packages/protobufs/fishjam/media_events/shared.ts @@ -1,7 +1,7 @@ // Code generated by protoc-gen-ts_proto. DO NOT EDIT. // versions: // protoc-gen-ts_proto v2.7.0 -// protoc v6.33.0 +// protoc v6.33.4 // source: fishjam/media_events/shared.proto /* eslint-disable */ @@ -62,6 +62,16 @@ export interface Candidate { usernameFragment: string; } +export interface ChannelMessageBinaryPayload { + data: Uint8Array; +} + +export interface ChannelMessage { + source: string; + destinations: string[]; + binary?: ChannelMessageBinaryPayload | undefined; +} + function createBaseCandidate(): Candidate { return { candidate: "", sdpMLineIndex: 0, sdpMid: "", usernameFragment: "" }; } @@ -170,6 +180,185 @@ export const Candidate: MessageFns = { }, }; +function createBaseChannelMessageBinaryPayload(): ChannelMessageBinaryPayload { + return { data: new Uint8Array(0) }; +} + +export const ChannelMessageBinaryPayload: MessageFns = { + encode(message: ChannelMessageBinaryPayload, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { + if (message.data.length !== 0) { + writer.uint32(10).bytes(message.data); + } + return writer; + }, + + decode(input: BinaryReader | Uint8Array, length?: number): ChannelMessageBinaryPayload { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseChannelMessageBinaryPayload(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (tag !== 10) { + break; + } + + message.data = reader.bytes(); + continue; + } + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skip(tag & 7); + } + return message; + }, + + fromJSON(object: any): ChannelMessageBinaryPayload { + return { data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array(0) }; + }, + + toJSON(message: ChannelMessageBinaryPayload): unknown { + const obj: any = {}; + if (message.data.length !== 0) { + obj.data = base64FromBytes(message.data); + } + return obj; + }, + + create, I>>(base?: I): ChannelMessageBinaryPayload { + return ChannelMessageBinaryPayload.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): ChannelMessageBinaryPayload { + const message = createBaseChannelMessageBinaryPayload(); + message.data = object.data ?? new Uint8Array(0); + return message; + }, +}; + +function createBaseChannelMessage(): ChannelMessage { + return { source: "", destinations: [], binary: undefined }; +} + +export const ChannelMessage: MessageFns = { + encode(message: ChannelMessage, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { + if (message.source !== "") { + writer.uint32(10).string(message.source); + } + for (const v of message.destinations) { + writer.uint32(18).string(v!); + } + if (message.binary !== undefined) { + ChannelMessageBinaryPayload.encode(message.binary, writer.uint32(26).fork()).join(); + } + return writer; + }, + + decode(input: BinaryReader | Uint8Array, length?: number): ChannelMessage { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseChannelMessage(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (tag !== 10) { + break; + } + + message.source = reader.string(); + continue; + } + case 2: { + if (tag !== 18) { + break; + } + + message.destinations.push(reader.string()); + continue; + } + case 3: { + if (tag !== 26) { + break; + } + + message.binary = ChannelMessageBinaryPayload.decode(reader, reader.uint32()); + continue; + } + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skip(tag & 7); + } + return message; + }, + + fromJSON(object: any): ChannelMessage { + return { + source: isSet(object.source) ? globalThis.String(object.source) : "", + destinations: globalThis.Array.isArray(object?.destinations) + ? object.destinations.map((e: any) => globalThis.String(e)) + : [], + binary: isSet(object.binary) ? ChannelMessageBinaryPayload.fromJSON(object.binary) : undefined, + }; + }, + + toJSON(message: ChannelMessage): unknown { + const obj: any = {}; + if (message.source !== "") { + obj.source = message.source; + } + if (message.destinations?.length) { + obj.destinations = message.destinations; + } + if (message.binary !== undefined) { + obj.binary = ChannelMessageBinaryPayload.toJSON(message.binary); + } + return obj; + }, + + create, I>>(base?: I): ChannelMessage { + return ChannelMessage.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): ChannelMessage { + const message = createBaseChannelMessage(); + message.source = object.source ?? ""; + message.destinations = object.destinations?.map((e) => e) || []; + message.binary = (object.binary !== undefined && object.binary !== null) + ? ChannelMessageBinaryPayload.fromPartial(object.binary) + : undefined; + return message; + }, +}; + +function bytesFromBase64(b64: string): Uint8Array { + if ((globalThis as any).Buffer) { + return Uint8Array.from(globalThis.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.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 extends Builtin ? T diff --git a/packages/protobufs/fishjam/notifications/shared.ts b/packages/protobufs/fishjam/notifications/shared.ts index 04f97e25..cab56ce4 100644 --- a/packages/protobufs/fishjam/notifications/shared.ts +++ b/packages/protobufs/fishjam/notifications/shared.ts @@ -1,7 +1,7 @@ // Code generated by protoc-gen-ts_proto. DO NOT EDIT. // versions: // protoc-gen-ts_proto v2.7.0 -// protoc v6.33.0 +// protoc v6.33.4 // source: fishjam/notifications/shared.proto /* eslint-disable */ diff --git a/packages/protobufs/fishjam/peer_notifications.ts b/packages/protobufs/fishjam/peer_notifications.ts index b684e3ac..dd6c5279 100644 --- a/packages/protobufs/fishjam/peer_notifications.ts +++ b/packages/protobufs/fishjam/peer_notifications.ts @@ -1,7 +1,7 @@ // Code generated by protoc-gen-ts_proto. DO NOT EDIT. // versions: // protoc-gen-ts_proto v2.7.0 -// protoc v6.33.0 +// protoc v6.33.4 // source: fishjam/peer_notifications.proto /* eslint-disable */ @@ -67,9 +67,61 @@ export function peerMessage_RoomTypeToJSON(object: PeerMessage_RoomType): string } } +/** Deprecation status for SDK version */ +export interface PeerMessage_SdkDeprecation { + status: PeerMessage_SdkDeprecation_Status; + message: string; +} + +export enum PeerMessage_SdkDeprecation_Status { + STATUS_UNSPECIFIED = 0, + STATUS_UP_TO_DATE = 1, + STATUS_DEPRECATED = 2, + STATUS_UNSUPPORTED = 3, + UNRECOGNIZED = -1, +} + +export function peerMessage_SdkDeprecation_StatusFromJSON(object: any): PeerMessage_SdkDeprecation_Status { + switch (object) { + case 0: + case "STATUS_UNSPECIFIED": + return PeerMessage_SdkDeprecation_Status.STATUS_UNSPECIFIED; + case 1: + case "STATUS_UP_TO_DATE": + return PeerMessage_SdkDeprecation_Status.STATUS_UP_TO_DATE; + case 2: + case "STATUS_DEPRECATED": + return PeerMessage_SdkDeprecation_Status.STATUS_DEPRECATED; + case 3: + case "STATUS_UNSUPPORTED": + return PeerMessage_SdkDeprecation_Status.STATUS_UNSUPPORTED; + case -1: + case "UNRECOGNIZED": + default: + return PeerMessage_SdkDeprecation_Status.UNRECOGNIZED; + } +} + +export function peerMessage_SdkDeprecation_StatusToJSON(object: PeerMessage_SdkDeprecation_Status): string { + switch (object) { + case PeerMessage_SdkDeprecation_Status.STATUS_UNSPECIFIED: + return "STATUS_UNSPECIFIED"; + case PeerMessage_SdkDeprecation_Status.STATUS_UP_TO_DATE: + return "STATUS_UP_TO_DATE"; + case PeerMessage_SdkDeprecation_Status.STATUS_DEPRECATED: + return "STATUS_DEPRECATED"; + case PeerMessage_SdkDeprecation_Status.STATUS_UNSUPPORTED: + return "STATUS_UNSUPPORTED"; + case PeerMessage_SdkDeprecation_Status.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + /** Response sent by FJ, confirming successful authentication */ export interface PeerMessage_Authenticated { roomType: PeerMessage_RoomType; + sdkDeprecation: PeerMessage_SdkDeprecation | undefined; } /** Request sent by peer, to authenticate to FJ server */ @@ -252,8 +304,84 @@ export const PeerMessage: MessageFns = { }, }; +function createBasePeerMessage_SdkDeprecation(): PeerMessage_SdkDeprecation { + return { status: 0, message: "" }; +} + +export const PeerMessage_SdkDeprecation: MessageFns = { + encode(message: PeerMessage_SdkDeprecation, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { + if (message.status !== 0) { + writer.uint32(8).int32(message.status); + } + if (message.message !== "") { + writer.uint32(18).string(message.message); + } + return writer; + }, + + decode(input: BinaryReader | Uint8Array, length?: number): PeerMessage_SdkDeprecation { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBasePeerMessage_SdkDeprecation(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (tag !== 8) { + break; + } + + message.status = reader.int32() as any; + continue; + } + case 2: { + if (tag !== 18) { + break; + } + + message.message = reader.string(); + continue; + } + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skip(tag & 7); + } + return message; + }, + + fromJSON(object: any): PeerMessage_SdkDeprecation { + return { + status: isSet(object.status) ? peerMessage_SdkDeprecation_StatusFromJSON(object.status) : 0, + message: isSet(object.message) ? globalThis.String(object.message) : "", + }; + }, + + toJSON(message: PeerMessage_SdkDeprecation): unknown { + const obj: any = {}; + if (message.status !== 0) { + obj.status = peerMessage_SdkDeprecation_StatusToJSON(message.status); + } + if (message.message !== "") { + obj.message = message.message; + } + return obj; + }, + + create, I>>(base?: I): PeerMessage_SdkDeprecation { + return PeerMessage_SdkDeprecation.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): PeerMessage_SdkDeprecation { + const message = createBasePeerMessage_SdkDeprecation(); + message.status = object.status ?? 0; + message.message = object.message ?? ""; + return message; + }, +}; + function createBasePeerMessage_Authenticated(): PeerMessage_Authenticated { - return { roomType: 0 }; + return { roomType: 0, sdkDeprecation: undefined }; } export const PeerMessage_Authenticated: MessageFns = { @@ -261,6 +389,9 @@ export const PeerMessage_Authenticated: MessageFns = if (message.roomType !== 0) { writer.uint32(8).int32(message.roomType); } + if (message.sdkDeprecation !== undefined) { + PeerMessage_SdkDeprecation.encode(message.sdkDeprecation, writer.uint32(18).fork()).join(); + } return writer; }, @@ -279,6 +410,14 @@ export const PeerMessage_Authenticated: MessageFns = message.roomType = reader.int32() as any; continue; } + case 2: { + if (tag !== 18) { + break; + } + + message.sdkDeprecation = PeerMessage_SdkDeprecation.decode(reader, reader.uint32()); + continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -289,7 +428,12 @@ export const PeerMessage_Authenticated: MessageFns = }, fromJSON(object: any): PeerMessage_Authenticated { - return { roomType: isSet(object.roomType) ? peerMessage_RoomTypeFromJSON(object.roomType) : 0 }; + return { + roomType: isSet(object.roomType) ? peerMessage_RoomTypeFromJSON(object.roomType) : 0, + sdkDeprecation: isSet(object.sdkDeprecation) + ? PeerMessage_SdkDeprecation.fromJSON(object.sdkDeprecation) + : undefined, + }; }, toJSON(message: PeerMessage_Authenticated): unknown { @@ -297,6 +441,9 @@ export const PeerMessage_Authenticated: MessageFns = if (message.roomType !== 0) { obj.roomType = peerMessage_RoomTypeToJSON(message.roomType); } + if (message.sdkDeprecation !== undefined) { + obj.sdkDeprecation = PeerMessage_SdkDeprecation.toJSON(message.sdkDeprecation); + } return obj; }, @@ -306,6 +453,9 @@ export const PeerMessage_Authenticated: MessageFns = fromPartial, I>>(object: I): PeerMessage_Authenticated { const message = createBasePeerMessage_Authenticated(); message.roomType = object.roomType ?? 0; + message.sdkDeprecation = (object.sdkDeprecation !== undefined && object.sdkDeprecation !== null) + ? PeerMessage_SdkDeprecation.fromPartial(object.sdkDeprecation) + : undefined; return message; }, }; diff --git a/packages/protobufs/fishjam/server_notifications.ts b/packages/protobufs/fishjam/server_notifications.ts index 0e005493..a0f78e3e 100644 --- a/packages/protobufs/fishjam/server_notifications.ts +++ b/packages/protobufs/fishjam/server_notifications.ts @@ -1,7 +1,7 @@ // Code generated by protoc-gen-ts_proto. DO NOT EDIT. // versions: // protoc-gen-ts_proto v2.7.0 -// protoc v6.33.0 +// protoc v6.33.4 // source: fishjam/server_notifications.proto /* eslint-disable */ @@ -44,6 +44,8 @@ export interface ServerMessage { viewerDisconnected?: ServerMessage_ViewerDisconnected | undefined; streamerConnected?: ServerMessage_StreamerConnected | undefined; streamerDisconnected?: ServerMessage_StreamerDisconnected | undefined; + channelAdded?: ServerMessage_ChannelAdded | undefined; + channelRemoved?: ServerMessage_ChannelRemoved | undefined; } export enum ServerMessage_PeerType { @@ -243,6 +245,22 @@ export interface ServerMessage_TrackMetadataUpdated { track: Track | undefined; } +/** Notification sent when a peer creates a channel */ +export interface ServerMessage_ChannelAdded { + roomId: string; + peerId?: string | undefined; + componentId?: string | undefined; + channelId: string; +} + +/** Notification sent when a peer deletes a channel */ +export interface ServerMessage_ChannelRemoved { + roomId: string; + peerId?: string | undefined; + componentId?: string | undefined; + channelId: string; +} + /** Notification sent when streamer successfully connects */ export interface ServerMessage_StreamConnected { streamId: string; @@ -303,6 +321,8 @@ function createBaseServerMessage(): ServerMessage { viewerDisconnected: undefined, streamerConnected: undefined, streamerDisconnected: undefined, + channelAdded: undefined, + channelRemoved: undefined, }; } @@ -386,6 +406,12 @@ export const ServerMessage: MessageFns = { if (message.streamerDisconnected !== undefined) { ServerMessage_StreamerDisconnected.encode(message.streamerDisconnected, writer.uint32(218).fork()).join(); } + if (message.channelAdded !== undefined) { + ServerMessage_ChannelAdded.encode(message.channelAdded, writer.uint32(226).fork()).join(); + } + if (message.channelRemoved !== undefined) { + ServerMessage_ChannelRemoved.encode(message.channelRemoved, writer.uint32(234).fork()).join(); + } return writer; }, @@ -604,6 +630,22 @@ export const ServerMessage: MessageFns = { message.streamerDisconnected = ServerMessage_StreamerDisconnected.decode(reader, reader.uint32()); continue; } + case 28: { + if (tag !== 226) { + break; + } + + message.channelAdded = ServerMessage_ChannelAdded.decode(reader, reader.uint32()); + continue; + } + case 29: { + if (tag !== 234) { + break; + } + + message.channelRemoved = ServerMessage_ChannelRemoved.decode(reader, reader.uint32()); + continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -671,6 +713,10 @@ export const ServerMessage: MessageFns = { streamerDisconnected: isSet(object.streamerDisconnected) ? ServerMessage_StreamerDisconnected.fromJSON(object.streamerDisconnected) : undefined, + channelAdded: isSet(object.channelAdded) ? ServerMessage_ChannelAdded.fromJSON(object.channelAdded) : undefined, + channelRemoved: isSet(object.channelRemoved) + ? ServerMessage_ChannelRemoved.fromJSON(object.channelRemoved) + : undefined, }; }, @@ -754,6 +800,12 @@ export const ServerMessage: MessageFns = { if (message.streamerDisconnected !== undefined) { obj.streamerDisconnected = ServerMessage_StreamerDisconnected.toJSON(message.streamerDisconnected); } + if (message.channelAdded !== undefined) { + obj.channelAdded = ServerMessage_ChannelAdded.toJSON(message.channelAdded); + } + if (message.channelRemoved !== undefined) { + obj.channelRemoved = ServerMessage_ChannelRemoved.toJSON(message.channelRemoved); + } return obj; }, @@ -840,6 +892,12 @@ export const ServerMessage: MessageFns = { message.streamerDisconnected = (object.streamerDisconnected !== undefined && object.streamerDisconnected !== null) ? ServerMessage_StreamerDisconnected.fromPartial(object.streamerDisconnected) : undefined; + message.channelAdded = (object.channelAdded !== undefined && object.channelAdded !== null) + ? ServerMessage_ChannelAdded.fromPartial(object.channelAdded) + : undefined; + message.channelRemoved = (object.channelRemoved !== undefined && object.channelRemoved !== null) + ? ServerMessage_ChannelRemoved.fromPartial(object.channelRemoved) + : undefined; return message; }, }; @@ -2429,6 +2487,222 @@ export const ServerMessage_TrackMetadataUpdated: MessageFns = { + encode(message: ServerMessage_ChannelAdded, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { + if (message.roomId !== "") { + writer.uint32(10).string(message.roomId); + } + if (message.peerId !== undefined) { + writer.uint32(18).string(message.peerId); + } + if (message.componentId !== undefined) { + writer.uint32(26).string(message.componentId); + } + if (message.channelId !== "") { + writer.uint32(34).string(message.channelId); + } + return writer; + }, + + decode(input: BinaryReader | Uint8Array, length?: number): ServerMessage_ChannelAdded { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseServerMessage_ChannelAdded(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (tag !== 10) { + break; + } + + message.roomId = reader.string(); + continue; + } + case 2: { + if (tag !== 18) { + break; + } + + message.peerId = reader.string(); + continue; + } + case 3: { + if (tag !== 26) { + break; + } + + message.componentId = reader.string(); + continue; + } + case 4: { + if (tag !== 34) { + break; + } + + message.channelId = reader.string(); + continue; + } + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skip(tag & 7); + } + return message; + }, + + fromJSON(object: any): ServerMessage_ChannelAdded { + return { + roomId: isSet(object.roomId) ? globalThis.String(object.roomId) : "", + peerId: isSet(object.peerId) ? globalThis.String(object.peerId) : undefined, + componentId: isSet(object.componentId) ? globalThis.String(object.componentId) : undefined, + channelId: isSet(object.channelId) ? globalThis.String(object.channelId) : "", + }; + }, + + toJSON(message: ServerMessage_ChannelAdded): unknown { + const obj: any = {}; + if (message.roomId !== "") { + obj.roomId = message.roomId; + } + if (message.peerId !== undefined) { + obj.peerId = message.peerId; + } + if (message.componentId !== undefined) { + obj.componentId = message.componentId; + } + if (message.channelId !== "") { + obj.channelId = message.channelId; + } + return obj; + }, + + create, I>>(base?: I): ServerMessage_ChannelAdded { + return ServerMessage_ChannelAdded.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): ServerMessage_ChannelAdded { + const message = createBaseServerMessage_ChannelAdded(); + message.roomId = object.roomId ?? ""; + message.peerId = object.peerId ?? undefined; + message.componentId = object.componentId ?? undefined; + message.channelId = object.channelId ?? ""; + return message; + }, +}; + +function createBaseServerMessage_ChannelRemoved(): ServerMessage_ChannelRemoved { + return { roomId: "", peerId: undefined, componentId: undefined, channelId: "" }; +} + +export const ServerMessage_ChannelRemoved: MessageFns = { + encode(message: ServerMessage_ChannelRemoved, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { + if (message.roomId !== "") { + writer.uint32(10).string(message.roomId); + } + if (message.peerId !== undefined) { + writer.uint32(18).string(message.peerId); + } + if (message.componentId !== undefined) { + writer.uint32(26).string(message.componentId); + } + if (message.channelId !== "") { + writer.uint32(34).string(message.channelId); + } + return writer; + }, + + decode(input: BinaryReader | Uint8Array, length?: number): ServerMessage_ChannelRemoved { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseServerMessage_ChannelRemoved(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (tag !== 10) { + break; + } + + message.roomId = reader.string(); + continue; + } + case 2: { + if (tag !== 18) { + break; + } + + message.peerId = reader.string(); + continue; + } + case 3: { + if (tag !== 26) { + break; + } + + message.componentId = reader.string(); + continue; + } + case 4: { + if (tag !== 34) { + break; + } + + message.channelId = reader.string(); + continue; + } + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skip(tag & 7); + } + return message; + }, + + fromJSON(object: any): ServerMessage_ChannelRemoved { + return { + roomId: isSet(object.roomId) ? globalThis.String(object.roomId) : "", + peerId: isSet(object.peerId) ? globalThis.String(object.peerId) : undefined, + componentId: isSet(object.componentId) ? globalThis.String(object.componentId) : undefined, + channelId: isSet(object.channelId) ? globalThis.String(object.channelId) : "", + }; + }, + + toJSON(message: ServerMessage_ChannelRemoved): unknown { + const obj: any = {}; + if (message.roomId !== "") { + obj.roomId = message.roomId; + } + if (message.peerId !== undefined) { + obj.peerId = message.peerId; + } + if (message.componentId !== undefined) { + obj.componentId = message.componentId; + } + if (message.channelId !== "") { + obj.channelId = message.channelId; + } + return obj; + }, + + create, I>>(base?: I): ServerMessage_ChannelRemoved { + return ServerMessage_ChannelRemoved.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): ServerMessage_ChannelRemoved { + const message = createBaseServerMessage_ChannelRemoved(); + message.roomId = object.roomId ?? ""; + message.peerId = object.peerId ?? undefined; + message.componentId = object.componentId ?? undefined; + message.channelId = object.channelId ?? ""; + return message; + }, +}; + function createBaseServerMessage_StreamConnected(): ServerMessage_StreamConnected { return { streamId: "" }; } From 5291147f13976734b7527deda45e36bfb3d29de5 Mon Sep 17 00:00:00 2001 From: Bernard Gawor Date: Wed, 28 Jan 2026 16:35:55 +0100 Subject: [PATCH 2/4] show deprecationg warnings --- packages/ts-client/src/FishjamClient.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/ts-client/src/FishjamClient.ts b/packages/ts-client/src/FishjamClient.ts index f3ef5341..c9aae492 100644 --- a/packages/ts-client/src/FishjamClient.ts +++ b/packages/ts-client/src/FishjamClient.ts @@ -1,4 +1,8 @@ -import { PeerMessage, PeerMessage_RoomType } from '@fishjam-cloud/protobufs/fishjamPeer'; +import { + PeerMessage, + PeerMessage_RoomType, + PeerMessage_SdkDeprecation_Status, +} from '@fishjam-cloud/protobufs/fishjamPeer'; import { MediaEvent as PeerMediaEvent } from '@fishjam-cloud/protobufs/peer'; import { MediaEvent as ServerMediaEvent } from '@fishjam-cloud/protobufs/server'; import type { @@ -201,6 +205,18 @@ export class FishjamClient Date: Fri, 30 Jan 2026 12:47:27 +0100 Subject: [PATCH 3/4] print message not object --- packages/ts-client/src/FishjamClient.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/ts-client/src/FishjamClient.ts b/packages/ts-client/src/FishjamClient.ts index fda3537a..e027bb9e 100644 --- a/packages/ts-client/src/FishjamClient.ts +++ b/packages/ts-client/src/FishjamClient.ts @@ -214,10 +214,10 @@ export class FishjamClient Date: Mon, 9 Feb 2026 12:12:33 +0100 Subject: [PATCH 4/4] extract handler to function --- packages/ts-client/src/FishjamClient.ts | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/packages/ts-client/src/FishjamClient.ts b/packages/ts-client/src/FishjamClient.ts index e027bb9e..7fdecb46 100644 --- a/packages/ts-client/src/FishjamClient.ts +++ b/packages/ts-client/src/FishjamClient.ts @@ -1,3 +1,4 @@ +import type { PeerMessage_SdkDeprecation } from '@fishjam-cloud/protobufs/fishjamPeer'; import { PeerMessage, PeerMessage_RoomType, @@ -212,16 +213,7 @@ export class FishjamClient