mezon-js 2.9.46 → 2.9.48

Sign up to get free protection for your applications and to get access to all the features.
package/api.gen.ts CHANGED
@@ -952,6 +952,22 @@ export interface ApiClanUserList {
952
952
  cursor?: string;
953
953
  }
954
954
 
955
+ /** */
956
+ export interface ApiCreateActivityRequest {
957
+ //
958
+ activity_description?: string;
959
+ //
960
+ activity_name?: string;
961
+ //
962
+ activity_type?: number;
963
+ //
964
+ application_id?: string;
965
+ //
966
+ start_time?: string;
967
+ //
968
+ status?: number;
969
+ }
970
+
955
971
  /** */
956
972
  export interface ApiCreateCategoryDescRequest {
957
973
  //
@@ -1349,6 +1365,11 @@ export interface ApiMessageDeleted {
1349
1365
  //
1350
1366
  message_id?: string;
1351
1367
  }
1368
+ /** */
1369
+ export interface ApiListUserActivity {
1370
+ //
1371
+ activities?: Array<ApiUserActivity>;
1372
+ }
1352
1373
 
1353
1374
  /** */
1354
1375
  export interface ApiMarkAsReadRequest {
@@ -2136,6 +2157,26 @@ export interface ApiUser {
2136
2157
  username?: string;
2137
2158
  }
2138
2159
 
2160
+ /** */
2161
+ export interface ApiUserActivity {
2162
+ //
2163
+ activity_description?: string;
2164
+ //
2165
+ activity_name?: string;
2166
+ //
2167
+ activity_type?: number;
2168
+ //
2169
+ application_id?: string;
2170
+ //
2171
+ end_time?: string;
2172
+ //
2173
+ start_time?: string;
2174
+ //
2175
+ status?: number;
2176
+ //
2177
+ user_id?: string;
2178
+ }
2179
+
2139
2180
  /** */
2140
2181
  export interface ApiUserPermissionInChannelListResponse {
2141
2182
  //
@@ -3549,7 +3590,74 @@ export class MezonApi {
3549
3590
  const urlPath = "/v2/account/unlink/steam";
3550
3591
  const queryParams = new Map<string, any>();
3551
3592
 
3552
- let bodyJson: string = "";
3593
+ let bodyJson : string = "";
3594
+ bodyJson = JSON.stringify(body || {});
3595
+
3596
+ const fullUrl = this.buildFullUrl(this.basePath, urlPath, queryParams);
3597
+ const fetchOptions = buildFetchOptions("POST", options, bodyJson);
3598
+ if (bearerToken) {
3599
+ fetchOptions.headers["Authorization"] = "Bearer " + bearerToken;
3600
+ }
3601
+
3602
+ return Promise.race([
3603
+ fetch(fullUrl, fetchOptions).then((response) => {
3604
+ if (response.status == 204) {
3605
+ return response;
3606
+ } else if (response.status >= 200 && response.status < 300) {
3607
+ return response.json();
3608
+ } else {
3609
+ throw response;
3610
+ }
3611
+ }),
3612
+ new Promise((_, reject) =>
3613
+ setTimeout(reject, this.timeoutMs, "Request timed out.")
3614
+ ),
3615
+ ]);
3616
+ }
3617
+
3618
+ /** List activity */
3619
+ listActivity(bearerToken: string,
3620
+ options: any = {}): Promise<ApiListUserActivity> {
3621
+
3622
+ const urlPath = "/v2/activity";
3623
+ const queryParams = new Map<string, any>();
3624
+
3625
+ let bodyJson : string = "";
3626
+
3627
+ const fullUrl = this.buildFullUrl(this.basePath, urlPath, queryParams);
3628
+ const fetchOptions = buildFetchOptions("GET", options, bodyJson);
3629
+ if (bearerToken) {
3630
+ fetchOptions.headers["Authorization"] = "Bearer " + bearerToken;
3631
+ }
3632
+
3633
+ return Promise.race([
3634
+ fetch(fullUrl, fetchOptions).then((response) => {
3635
+ if (response.status == 204) {
3636
+ return response;
3637
+ } else if (response.status >= 200 && response.status < 300) {
3638
+ return response.json();
3639
+ } else {
3640
+ throw response;
3641
+ }
3642
+ }),
3643
+ new Promise((_, reject) =>
3644
+ setTimeout(reject, this.timeoutMs, "Request timed out.")
3645
+ ),
3646
+ ]);
3647
+ }
3648
+
3649
+ /** Create user activity */
3650
+ createActiviy(bearerToken: string,
3651
+ body:ApiCreateActivityRequest,
3652
+ options: any = {}): Promise<any> {
3653
+
3654
+ if (body === null || body === undefined) {
3655
+ throw new Error("'body' is a required parameter but is null or undefined.");
3656
+ }
3657
+ const urlPath = "/v2/activity";
3658
+ const queryParams = new Map<string, any>();
3659
+
3660
+ let bodyJson : string = "";
3553
3661
  bodyJson = JSON.stringify(body || {});
3554
3662
 
3555
3663
  const fullUrl = this.buildFullUrl(this.basePath, urlPath, queryParams);
package/client.ts CHANGED
@@ -126,6 +126,8 @@ import {
126
126
  ApiChannelSettingListResponse,
127
127
  ApiAddFavoriteChannelResponse,
128
128
  ApiRegistFcmDeviceTokenResponse,
129
+ ApiListUserActivity,
130
+ ApiCreateActivityRequest,
129
131
  } from "./api.gen";
130
132
 
131
133
  import { Session } from "./session";
@@ -4170,4 +4172,41 @@ export class Client {
4170
4172
  return response;
4171
4173
  });
4172
4174
  }
4175
+ /** List activity */
4176
+ async listActivity(
4177
+ session: Session
4178
+ ): Promise<ApiListUserActivity> {
4179
+ if (
4180
+ this.autoRefreshSession &&
4181
+ session.refresh_token &&
4182
+ session.isexpired((Date.now() + this.expiredTimespanMs) / 1000)
4183
+ ) {
4184
+ await this.sessionRefresh(session);
4185
+ }
4186
+
4187
+ return this.apiClient
4188
+ .listActivity(session.token)
4189
+ .then((response: any) => {
4190
+ return response;
4191
+ });
4192
+ }
4193
+
4194
+ async createActiviy(
4195
+ session: Session,
4196
+ request: ApiCreateActivityRequest
4197
+ ): Promise<any> {
4198
+ if (
4199
+ this.autoRefreshSession &&
4200
+ session.refresh_token &&
4201
+ session.isexpired((Date.now() + this.expiredTimespanMs) / 1000)
4202
+ ) {
4203
+ await this.sessionRefresh(session);
4204
+ }
4205
+
4206
+ return this.apiClient
4207
+ .createActiviy(session.token, request)
4208
+ .then((response: any) => {
4209
+ return response;
4210
+ });
4211
+ }
4173
4212
  }
package/dist/api.gen.d.ts CHANGED
@@ -549,6 +549,15 @@ export interface ApiClanUserList {
549
549
  cursor?: string;
550
550
  }
551
551
  /** */
552
+ export interface ApiCreateActivityRequest {
553
+ activity_description?: string;
554
+ activity_name?: string;
555
+ activity_type?: number;
556
+ application_id?: string;
557
+ start_time?: string;
558
+ status?: number;
559
+ }
560
+ /** */
552
561
  export interface ApiCreateCategoryDescRequest {
553
562
  category_name?: string;
554
563
  clan_id?: string;
@@ -782,6 +791,10 @@ export interface ApiMessageDeleted {
782
791
  message_id?: string;
783
792
  }
784
793
  /** */
794
+ export interface ApiListUserActivity {
795
+ activities?: Array<ApiUserActivity>;
796
+ }
797
+ /** */
785
798
  export interface ApiMarkAsReadRequest {
786
799
  category_id?: string;
787
800
  channel_id?: string;
@@ -1240,6 +1253,17 @@ export interface ApiUser {
1240
1253
  username?: string;
1241
1254
  }
1242
1255
  /** */
1256
+ export interface ApiUserActivity {
1257
+ activity_description?: string;
1258
+ activity_name?: string;
1259
+ activity_type?: number;
1260
+ application_id?: string;
1261
+ end_time?: string;
1262
+ start_time?: string;
1263
+ status?: number;
1264
+ user_id?: string;
1265
+ }
1266
+ /** */
1243
1267
  export interface ApiUserPermissionInChannelListResponse {
1244
1268
  channel_id?: string;
1245
1269
  clan_id?: string;
@@ -1378,6 +1402,10 @@ export declare class MezonApi {
1378
1402
  unlinkGoogle(bearerToken: string, body: ApiAccountGoogle, options?: any): Promise<any>;
1379
1403
  /** Remove Steam from the social profiles on the current user's account. */
1380
1404
  unlinkSteam(bearerToken: string, body: ApiAccountSteam, options?: any): Promise<any>;
1405
+ /** List activity */
1406
+ listActivity(bearerToken: string, options?: any): Promise<ApiListUserActivity>;
1407
+ /** Create user activity */
1408
+ createActiviy(bearerToken: string, body: ApiCreateActivityRequest, options?: any): Promise<any>;
1381
1409
  /** Add a new apps. */
1382
1410
  addApp(bearerToken: string, body: ApiAddAppRequest, options?: any): Promise<any>;
1383
1411
  /** List (and optionally filter) accounts. */
package/dist/client.d.ts CHANGED
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { ApiAccount, ApiAccountCustom, ApiAccountDevice, ApiAccountEmail, ApiAccountFacebook, ApiAccountFacebookInstantGame, ApiAccountGoogle, ApiAccountGameCenter, ApiAccountSteam, ApiChannelDescList, ApiChannelDescription, ApiCreateChannelDescRequest, ApiDeleteRoleRequest, ApiClanDescList, ApiCreateClanDescRequest, ApiClanDesc, ApiCategoryDesc, ApiCategoryDescList, ApiPermissionList, ApiRoleUserList, ApiRole, ApiCreateRoleRequest, ApiAddRoleChannelDescRequest, ApiCreateCategoryDescRequest, ApiUpdateCategoryDescRequest, ApiEvent, ApiUpdateAccountRequest, ApiAccountApple, ApiLinkSteamRequest, ApiClanDescProfile, ApiClanProfile, ApiChannelUserList, ApiClanUserList, ApiLinkInviteUserRequest, ApiUpdateEventRequest, ApiLinkInviteUser, ApiInviteUserRes, ApiUploadAttachmentRequest, ApiUploadAttachment, ApiMessageReaction, ApiMessageMention, ApiMessageAttachment, ApiMessageRef, ApiChannelMessageHeader, ApiVoiceChannelUserList, ApiChannelAttachmentList, ApiCreateEventRequest, ApiEventManagement, ApiEventList, ApiDeleteEventRequest, ApiSetDefaultNotificationRequest, ApiSetNotificationRequest, ApiSetMuteNotificationRequest, ApiSearchMessageRequest, ApiSearchMessageResponse, ApiPinMessageRequest, ApiPinMessagesList, ApiDeleteChannelDescRequest, ApiChangeChannelPrivateRequest, ApiClanEmojiCreateRequest, MezonUpdateClanEmojiByIdBody, ApiWebhookCreateRequest, ApiWebhookListResponse, MezonUpdateWebhookByIdBody, ApiWebhookGenerateResponse, ApiCheckDuplicateClanNameResponse, ApiClanStickerAddRequest, MezonUpdateClanStickerByIdBody, MezonChangeChannelCategoryBody, ApiUpdateRoleChannelRequest, ApiAddAppRequest, ApiAppList, ApiApp, MezonUpdateAppBody, ApiSystemMessagesList, ApiSystemMessage, ApiSystemMessageRequest, MezonUpdateSystemMessageBody, ApiUpdateCategoryOrderRequest, ApiGiveCoffeeEvent, ApiListStreamingChannelsResponse, ApiStreamingChannelUserList, ApiRegisterStreamingChannelRequest, ApiRoleList, ApiListChannelAppsResponse, ApiNotificationChannelCategorySettingList, ApiNotificationUserChannel, ApiNotificationSetting, ApiNotifiReactMessage, ApiHashtagDmList, ApiEmojiListedResponse, ApiStickerListedResponse, ApiAllUsersAddChannelResponse, ApiRoleListEventResponse, ApiAllUserClans, ApiUserPermissionInChannelListResponse, ApiPermissionRoleChannelListEventResponse, ApiMarkAsReadRequest, ApiEditChannelCanvasRequest, ApiChannelSettingListResponse, ApiAddFavoriteChannelResponse, ApiRegistFcmDeviceTokenResponse } from "./api.gen";
16
+ import { ApiAccount, ApiAccountCustom, ApiAccountDevice, ApiAccountEmail, ApiAccountFacebook, ApiAccountFacebookInstantGame, ApiAccountGoogle, ApiAccountGameCenter, ApiAccountSteam, ApiChannelDescList, ApiChannelDescription, ApiCreateChannelDescRequest, ApiDeleteRoleRequest, ApiClanDescList, ApiCreateClanDescRequest, ApiClanDesc, ApiCategoryDesc, ApiCategoryDescList, ApiPermissionList, ApiRoleUserList, ApiRole, ApiCreateRoleRequest, ApiAddRoleChannelDescRequest, ApiCreateCategoryDescRequest, ApiUpdateCategoryDescRequest, ApiEvent, ApiUpdateAccountRequest, ApiAccountApple, ApiLinkSteamRequest, ApiClanDescProfile, ApiClanProfile, ApiChannelUserList, ApiClanUserList, ApiLinkInviteUserRequest, ApiUpdateEventRequest, ApiLinkInviteUser, ApiInviteUserRes, ApiUploadAttachmentRequest, ApiUploadAttachment, ApiMessageReaction, ApiMessageMention, ApiMessageAttachment, ApiMessageRef, ApiChannelMessageHeader, ApiVoiceChannelUserList, ApiChannelAttachmentList, ApiCreateEventRequest, ApiEventManagement, ApiEventList, ApiDeleteEventRequest, ApiSetDefaultNotificationRequest, ApiSetNotificationRequest, ApiSetMuteNotificationRequest, ApiSearchMessageRequest, ApiSearchMessageResponse, ApiPinMessageRequest, ApiPinMessagesList, ApiDeleteChannelDescRequest, ApiChangeChannelPrivateRequest, ApiClanEmojiCreateRequest, MezonUpdateClanEmojiByIdBody, ApiWebhookCreateRequest, ApiWebhookListResponse, MezonUpdateWebhookByIdBody, ApiWebhookGenerateResponse, ApiCheckDuplicateClanNameResponse, ApiClanStickerAddRequest, MezonUpdateClanStickerByIdBody, MezonChangeChannelCategoryBody, ApiUpdateRoleChannelRequest, ApiAddAppRequest, ApiAppList, ApiApp, MezonUpdateAppBody, ApiSystemMessagesList, ApiSystemMessage, ApiSystemMessageRequest, MezonUpdateSystemMessageBody, ApiUpdateCategoryOrderRequest, ApiGiveCoffeeEvent, ApiListStreamingChannelsResponse, ApiStreamingChannelUserList, ApiRegisterStreamingChannelRequest, ApiRoleList, ApiListChannelAppsResponse, ApiNotificationChannelCategorySettingList, ApiNotificationUserChannel, ApiNotificationSetting, ApiNotifiReactMessage, ApiHashtagDmList, ApiEmojiListedResponse, ApiStickerListedResponse, ApiAllUsersAddChannelResponse, ApiRoleListEventResponse, ApiAllUserClans, ApiUserPermissionInChannelListResponse, ApiPermissionRoleChannelListEventResponse, ApiMarkAsReadRequest, ApiEditChannelCanvasRequest, ApiChannelSettingListResponse, ApiAddFavoriteChannelResponse, ApiRegistFcmDeviceTokenResponse, ApiListUserActivity, ApiCreateActivityRequest } from "./api.gen";
17
17
  import { Session } from "./session";
18
18
  import { Socket } from "./socket";
19
19
  import { WebSocketAdapter } from "./web_socket_adapter";
@@ -588,4 +588,7 @@ export declare class Client {
588
588
  addFavoriteChannel(session: Session, channelId: string, clanId: string): Promise<ApiAddFavoriteChannelResponse>;
589
589
  removeFavoriteChannel(session: Session, channelId: string): Promise<any>;
590
590
  getListFavoriteChannel(session: Session, clanId: string): Promise<any>;
591
+ /** List activity */
592
+ listActivity(session: Session): Promise<ApiListUserActivity>;
593
+ createActiviy(session: Session, request: ApiCreateActivityRequest): Promise<any>;
591
594
  }
@@ -1712,6 +1712,60 @@ var MezonApi = class {
1712
1712
  )
1713
1713
  ]);
1714
1714
  }
1715
+ /** List activity */
1716
+ listActivity(bearerToken, options = {}) {
1717
+ const urlPath = "/v2/activity";
1718
+ const queryParams = /* @__PURE__ */ new Map();
1719
+ let bodyJson = "";
1720
+ const fullUrl = this.buildFullUrl(this.basePath, urlPath, queryParams);
1721
+ const fetchOptions = buildFetchOptions("GET", options, bodyJson);
1722
+ if (bearerToken) {
1723
+ fetchOptions.headers["Authorization"] = "Bearer " + bearerToken;
1724
+ }
1725
+ return Promise.race([
1726
+ fetch(fullUrl, fetchOptions).then((response) => {
1727
+ if (response.status == 204) {
1728
+ return response;
1729
+ } else if (response.status >= 200 && response.status < 300) {
1730
+ return response.json();
1731
+ } else {
1732
+ throw response;
1733
+ }
1734
+ }),
1735
+ new Promise(
1736
+ (_, reject) => setTimeout(reject, this.timeoutMs, "Request timed out.")
1737
+ )
1738
+ ]);
1739
+ }
1740
+ /** Create user activity */
1741
+ createActiviy(bearerToken, body, options = {}) {
1742
+ if (body === null || body === void 0) {
1743
+ throw new Error("'body' is a required parameter but is null or undefined.");
1744
+ }
1745
+ const urlPath = "/v2/activity";
1746
+ const queryParams = /* @__PURE__ */ new Map();
1747
+ let bodyJson = "";
1748
+ bodyJson = JSON.stringify(body || {});
1749
+ const fullUrl = this.buildFullUrl(this.basePath, urlPath, queryParams);
1750
+ const fetchOptions = buildFetchOptions("POST", options, bodyJson);
1751
+ if (bearerToken) {
1752
+ fetchOptions.headers["Authorization"] = "Bearer " + bearerToken;
1753
+ }
1754
+ return Promise.race([
1755
+ fetch(fullUrl, fetchOptions).then((response) => {
1756
+ if (response.status == 204) {
1757
+ return response;
1758
+ } else if (response.status >= 200 && response.status < 300) {
1759
+ return response.json();
1760
+ } else {
1761
+ throw response;
1762
+ }
1763
+ }),
1764
+ new Promise(
1765
+ (_, reject) => setTimeout(reject, this.timeoutMs, "Request timed out.")
1766
+ )
1767
+ ]);
1768
+ }
1715
1769
  /** Add a new apps. */
1716
1770
  addApp(bearerToken, body, options = {}) {
1717
1771
  if (body === null || body === void 0) {
@@ -8889,4 +8943,25 @@ var Client = class {
8889
8943
  });
8890
8944
  });
8891
8945
  }
8946
+ /** List activity */
8947
+ listActivity(session) {
8948
+ return __async(this, null, function* () {
8949
+ if (this.autoRefreshSession && session.refresh_token && session.isexpired((Date.now() + this.expiredTimespanMs) / 1e3)) {
8950
+ yield this.sessionRefresh(session);
8951
+ }
8952
+ return this.apiClient.listActivity(session.token).then((response) => {
8953
+ return response;
8954
+ });
8955
+ });
8956
+ }
8957
+ createActiviy(session, request) {
8958
+ return __async(this, null, function* () {
8959
+ if (this.autoRefreshSession && session.refresh_token && session.isexpired((Date.now() + this.expiredTimespanMs) / 1e3)) {
8960
+ yield this.sessionRefresh(session);
8961
+ }
8962
+ return this.apiClient.createActiviy(session.token, request).then((response) => {
8963
+ return response;
8964
+ });
8965
+ });
8966
+ }
8892
8967
  };
@@ -1683,6 +1683,60 @@ var MezonApi = class {
1683
1683
  )
1684
1684
  ]);
1685
1685
  }
1686
+ /** List activity */
1687
+ listActivity(bearerToken, options = {}) {
1688
+ const urlPath = "/v2/activity";
1689
+ const queryParams = /* @__PURE__ */ new Map();
1690
+ let bodyJson = "";
1691
+ const fullUrl = this.buildFullUrl(this.basePath, urlPath, queryParams);
1692
+ const fetchOptions = buildFetchOptions("GET", options, bodyJson);
1693
+ if (bearerToken) {
1694
+ fetchOptions.headers["Authorization"] = "Bearer " + bearerToken;
1695
+ }
1696
+ return Promise.race([
1697
+ fetch(fullUrl, fetchOptions).then((response) => {
1698
+ if (response.status == 204) {
1699
+ return response;
1700
+ } else if (response.status >= 200 && response.status < 300) {
1701
+ return response.json();
1702
+ } else {
1703
+ throw response;
1704
+ }
1705
+ }),
1706
+ new Promise(
1707
+ (_, reject) => setTimeout(reject, this.timeoutMs, "Request timed out.")
1708
+ )
1709
+ ]);
1710
+ }
1711
+ /** Create user activity */
1712
+ createActiviy(bearerToken, body, options = {}) {
1713
+ if (body === null || body === void 0) {
1714
+ throw new Error("'body' is a required parameter but is null or undefined.");
1715
+ }
1716
+ const urlPath = "/v2/activity";
1717
+ const queryParams = /* @__PURE__ */ new Map();
1718
+ let bodyJson = "";
1719
+ bodyJson = JSON.stringify(body || {});
1720
+ const fullUrl = this.buildFullUrl(this.basePath, urlPath, queryParams);
1721
+ const fetchOptions = buildFetchOptions("POST", options, bodyJson);
1722
+ if (bearerToken) {
1723
+ fetchOptions.headers["Authorization"] = "Bearer " + bearerToken;
1724
+ }
1725
+ return Promise.race([
1726
+ fetch(fullUrl, fetchOptions).then((response) => {
1727
+ if (response.status == 204) {
1728
+ return response;
1729
+ } else if (response.status >= 200 && response.status < 300) {
1730
+ return response.json();
1731
+ } else {
1732
+ throw response;
1733
+ }
1734
+ }),
1735
+ new Promise(
1736
+ (_, reject) => setTimeout(reject, this.timeoutMs, "Request timed out.")
1737
+ )
1738
+ ]);
1739
+ }
1686
1740
  /** Add a new apps. */
1687
1741
  addApp(bearerToken, body, options = {}) {
1688
1742
  if (body === null || body === void 0) {
@@ -8860,6 +8914,27 @@ var Client = class {
8860
8914
  });
8861
8915
  });
8862
8916
  }
8917
+ /** List activity */
8918
+ listActivity(session) {
8919
+ return __async(this, null, function* () {
8920
+ if (this.autoRefreshSession && session.refresh_token && session.isexpired((Date.now() + this.expiredTimespanMs) / 1e3)) {
8921
+ yield this.sessionRefresh(session);
8922
+ }
8923
+ return this.apiClient.listActivity(session.token).then((response) => {
8924
+ return response;
8925
+ });
8926
+ });
8927
+ }
8928
+ createActiviy(session, request) {
8929
+ return __async(this, null, function* () {
8930
+ if (this.autoRefreshSession && session.refresh_token && session.isexpired((Date.now() + this.expiredTimespanMs) / 1e3)) {
8931
+ yield this.sessionRefresh(session);
8932
+ }
8933
+ return this.apiClient.createActiviy(session.token, request).then((response) => {
8934
+ return response;
8935
+ });
8936
+ });
8937
+ }
8863
8938
  };
8864
8939
  export {
8865
8940
  ChannelStreamMode,
package/dist/socket.d.ts CHANGED
@@ -29,6 +29,7 @@ export interface Presence {
29
29
  node: string;
30
30
  /** The status of the user */
31
31
  status: string;
32
+ is_mobile: boolean;
32
33
  }
33
34
  /** A response from a channel join operation. */
34
35
  export interface Channel {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mezon-js",
3
3
 
4
- "version": "2.9.46",
4
+ "version": "2.9.48",
5
5
 
6
6
  "scripts": {
7
7
  "build": "npx tsc && npx rollup -c --bundleConfigAsCjs && node build.mjs"
package/socket.ts CHANGED
@@ -36,6 +36,8 @@ export interface Presence {
36
36
  node: string;
37
37
  /** The status of the user */
38
38
  status: string;
39
+ //
40
+ is_mobile: boolean
39
41
  }
40
42
 
41
43
  /** A response from a channel join operation. */