@stream-io/node-sdk 0.4.10 → 0.4.11

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.
package/dist/index.cjs.js CHANGED
@@ -164,7 +164,7 @@ class BaseApi {
164
164
  Authorization: this.apiConfig.token,
165
165
  'stream-auth-type': 'jwt',
166
166
  'Content-Type': 'application/json',
167
- 'X-Stream-Client': 'stream-node-' + "0.4.10",
167
+ 'X-Stream-Client': 'stream-node-' + "0.4.11",
168
168
  'Accept-Encoding': 'gzip',
169
169
  'x-client-request-id': clientRequestId,
170
170
  };
@@ -505,6 +505,12 @@ decoders.ChannelMute = (input) => {
505
505
  };
506
506
  return decode(typeMappings, input);
507
507
  };
508
+ decoders.ChannelPushPreferences = (input) => {
509
+ const typeMappings = {
510
+ disabled_until: { type: 'DatetimeType', isSingle: true },
511
+ };
512
+ return decode(typeMappings, input);
513
+ };
508
514
  decoders.ChannelResponse = (input) => {
509
515
  const typeMappings = {
510
516
  created_at: { type: 'DatetimeType', isSingle: true },
@@ -533,6 +539,7 @@ decoders.ChannelStateResponse = (input) => {
533
539
  watchers: { type: 'UserResponse', isSingle: false },
534
540
  channel: { type: 'ChannelResponse', isSingle: true },
535
541
  membership: { type: 'ChannelMember', isSingle: true },
542
+ push_preferences: { type: 'ChannelPushPreferences', isSingle: true },
536
543
  };
537
544
  return decode(typeMappings, input);
538
545
  };
@@ -548,6 +555,7 @@ decoders.ChannelStateResponseFields = (input) => {
548
555
  watchers: { type: 'UserResponse', isSingle: false },
549
556
  channel: { type: 'ChannelResponse', isSingle: true },
550
557
  membership: { type: 'ChannelMember', isSingle: true },
558
+ push_preferences: { type: 'ChannelPushPreferences', isSingle: true },
551
559
  };
552
560
  return decode(typeMappings, input);
553
561
  };
@@ -682,7 +690,6 @@ decoders.EntityCreator = (input) => {
682
690
  last_engaged_at: { type: 'DatetimeType', isSingle: true },
683
691
  revoke_tokens_issued_before: { type: 'DatetimeType', isSingle: true },
684
692
  updated_at: { type: 'DatetimeType', isSingle: true },
685
- push_notifications: { type: 'PushNotificationSettings', isSingle: true },
686
693
  };
687
694
  return decode(typeMappings, input);
688
695
  };
@@ -690,12 +697,12 @@ decoders.EntityCreatorResponse = (input) => {
690
697
  const typeMappings = {
691
698
  created_at: { type: 'DatetimeType', isSingle: true },
692
699
  updated_at: { type: 'DatetimeType', isSingle: true },
693
- devices: { type: 'DeviceResponse', isSingle: false },
694
700
  ban_expires: { type: 'DatetimeType', isSingle: true },
695
701
  deactivated_at: { type: 'DatetimeType', isSingle: true },
696
702
  deleted_at: { type: 'DatetimeType', isSingle: true },
697
703
  last_active: { type: 'DatetimeType', isSingle: true },
698
704
  revoke_tokens_issued_before: { type: 'DatetimeType', isSingle: true },
705
+ devices: { type: 'DeviceResponse', isSingle: false },
699
706
  push_notifications: {
700
707
  type: 'PushNotificationSettingsResponse',
701
708
  isSingle: true,
@@ -756,10 +763,6 @@ decoders.FullUserResponse = (input) => {
756
763
  deleted_at: { type: 'DatetimeType', isSingle: true },
757
764
  last_active: { type: 'DatetimeType', isSingle: true },
758
765
  revoke_tokens_issued_before: { type: 'DatetimeType', isSingle: true },
759
- push_notifications: {
760
- type: 'PushNotificationSettingsResponse',
761
- isSingle: true,
762
- },
763
766
  };
764
767
  return decode(typeMappings, input);
765
768
  };
@@ -1053,8 +1056,9 @@ decoders.MessageModerationResult = (input) => {
1053
1056
  decoders.MessageReadEvent = (input) => {
1054
1057
  const typeMappings = {
1055
1058
  created_at: { type: 'DatetimeType', isSingle: true },
1059
+ channel_last_message_at: { type: 'DatetimeType', isSingle: true },
1056
1060
  thread: { type: 'ThreadResponse', isSingle: true },
1057
- user: { type: 'UserResponse', isSingle: true },
1061
+ user: { type: 'UserResponseCommonFields', isSingle: true },
1058
1062
  };
1059
1063
  return decode(typeMappings, input);
1060
1064
  };
@@ -1121,12 +1125,6 @@ decoders.MuteResponse = (input) => {
1121
1125
  };
1122
1126
  return decode(typeMappings, input);
1123
1127
  };
1124
- decoders.NullTime = (input) => {
1125
- const typeMappings = {
1126
- value: { type: 'DatetimeType', isSingle: true },
1127
- };
1128
- return decode(typeMappings, input);
1129
- };
1130
1128
  decoders.OwnUser = (input) => {
1131
1129
  const typeMappings = {
1132
1130
  created_at: { type: 'DatetimeType', isSingle: true },
@@ -1138,7 +1136,7 @@ decoders.OwnUser = (input) => {
1138
1136
  deleted_at: { type: 'DatetimeType', isSingle: true },
1139
1137
  last_active: { type: 'DatetimeType', isSingle: true },
1140
1138
  last_engaged_at: { type: 'DatetimeType', isSingle: true },
1141
- push_notifications: { type: 'PushNotificationSettings', isSingle: true },
1139
+ push_preferences: { type: 'PushPreferences', isSingle: true },
1142
1140
  };
1143
1141
  return decode(typeMappings, input);
1144
1142
  };
@@ -1153,10 +1151,7 @@ decoders.OwnUserResponse = (input) => {
1153
1151
  deleted_at: { type: 'DatetimeType', isSingle: true },
1154
1152
  last_active: { type: 'DatetimeType', isSingle: true },
1155
1153
  revoke_tokens_issued_before: { type: 'DatetimeType', isSingle: true },
1156
- push_notifications: {
1157
- type: 'PushNotificationSettingsResponse',
1158
- isSingle: true,
1159
- },
1154
+ push_preferences: { type: 'PushPreferences', isSingle: true },
1160
1155
  };
1161
1156
  return decode(typeMappings, input);
1162
1157
  };
@@ -1228,13 +1223,13 @@ decoders.PushNotificationFields = (input) => {
1228
1223
  };
1229
1224
  return decode(typeMappings, input);
1230
1225
  };
1231
- decoders.PushNotificationSettings = (input) => {
1226
+ decoders.PushNotificationSettingsResponse = (input) => {
1232
1227
  const typeMappings = {
1233
1228
  disabled_until: { type: 'DatetimeType', isSingle: true },
1234
1229
  };
1235
1230
  return decode(typeMappings, input);
1236
1231
  };
1237
- decoders.PushNotificationSettingsResponse = (input) => {
1232
+ decoders.PushPreferences = (input) => {
1238
1233
  const typeMappings = {
1239
1234
  disabled_until: { type: 'DatetimeType', isSingle: true },
1240
1235
  };
@@ -1420,8 +1415,6 @@ decoders.ReviewQueueItem = (input) => {
1420
1415
  actions: { type: 'ActionLog', isSingle: false },
1421
1416
  bans: { type: 'Ban', isSingle: false },
1422
1417
  flags: { type: 'Flag2', isSingle: false },
1423
- completed_at: { type: 'NullTime', isSingle: true },
1424
- reviewed_at: { type: 'NullTime', isSingle: true },
1425
1418
  assigned_to: { type: 'User', isSingle: true },
1426
1419
  entity_creator: { type: 'EntityCreator', isSingle: true },
1427
1420
  feeds_v2_reaction: { type: 'Reaction', isSingle: true },
@@ -1693,6 +1686,12 @@ decoders.UpsertModerationTemplateResponse = (input) => {
1693
1686
  };
1694
1687
  return decode(typeMappings, input);
1695
1688
  };
1689
+ decoders.UpsertPushPreferencesResponse = (input) => {
1690
+ const typeMappings = {
1691
+ user_preferences: { type: 'PushPreferences', isSingle: false },
1692
+ };
1693
+ return decode(typeMappings, input);
1694
+ };
1696
1695
  decoders.UpsertPushProviderResponse = (input) => {
1697
1696
  const typeMappings = {
1698
1697
  push_provider: { type: 'PushProviderResponse', isSingle: true },
@@ -1709,7 +1708,6 @@ decoders.User = (input) => {
1709
1708
  last_engaged_at: { type: 'DatetimeType', isSingle: true },
1710
1709
  revoke_tokens_issued_before: { type: 'DatetimeType', isSingle: true },
1711
1710
  updated_at: { type: 'DatetimeType', isSingle: true },
1712
- push_notifications: { type: 'PushNotificationSettings', isSingle: true },
1713
1711
  };
1714
1712
  return decode(typeMappings, input);
1715
1713
  };
@@ -1743,12 +1741,12 @@ decoders.UserResponse = (input) => {
1743
1741
  const typeMappings = {
1744
1742
  created_at: { type: 'DatetimeType', isSingle: true },
1745
1743
  updated_at: { type: 'DatetimeType', isSingle: true },
1746
- devices: { type: 'DeviceResponse', isSingle: false },
1747
1744
  ban_expires: { type: 'DatetimeType', isSingle: true },
1748
1745
  deactivated_at: { type: 'DatetimeType', isSingle: true },
1749
1746
  deleted_at: { type: 'DatetimeType', isSingle: true },
1750
1747
  last_active: { type: 'DatetimeType', isSingle: true },
1751
1748
  revoke_tokens_issued_before: { type: 'DatetimeType', isSingle: true },
1749
+ devices: { type: 'DeviceResponse', isSingle: false },
1752
1750
  push_notifications: {
1753
1751
  type: 'PushNotificationSettingsResponse',
1754
1752
  isSingle: true,
@@ -1756,9 +1754,21 @@ decoders.UserResponse = (input) => {
1756
1754
  };
1757
1755
  return decode(typeMappings, input);
1758
1756
  };
1757
+ decoders.UserResponseCommonFields = (input) => {
1758
+ const typeMappings = {
1759
+ created_at: { type: 'DatetimeType', isSingle: true },
1760
+ updated_at: { type: 'DatetimeType', isSingle: true },
1761
+ deactivated_at: { type: 'DatetimeType', isSingle: true },
1762
+ deleted_at: { type: 'DatetimeType', isSingle: true },
1763
+ last_active: { type: 'DatetimeType', isSingle: true },
1764
+ revoke_tokens_issued_before: { type: 'DatetimeType', isSingle: true },
1765
+ };
1766
+ return decode(typeMappings, input);
1767
+ };
1759
1768
  decoders.WSEvent = (input) => {
1760
1769
  const typeMappings = {
1761
1770
  created_at: { type: 'DatetimeType', isSingle: true },
1771
+ channel_last_message_at: { type: 'DatetimeType', isSingle: true },
1762
1772
  channel: { type: 'ChannelResponse', isSingle: true },
1763
1773
  created_by: { type: 'UserResponse', isSingle: true },
1764
1774
  me: { type: 'OwnUserResponse', isSingle: true },
@@ -4004,26 +4014,35 @@ class ChatApi extends BaseApi {
4004
4014
  (_43 = decoders.PollVotesResponse) === null || _43 === void 0 ? void 0 : _43.call(decoders, response.body);
4005
4015
  return Object.assign(Object.assign({}, response.body), { metadata: response.metadata });
4006
4016
  });
4007
- this.queryBannedUsers = (request) => __awaiter(this, void 0, void 0, function* () {
4017
+ this.updatePushNotificationPreferences = (request) => __awaiter(this, void 0, void 0, function* () {
4008
4018
  var _44;
4019
+ const body = {
4020
+ preferences: request === null || request === void 0 ? void 0 : request.preferences,
4021
+ };
4022
+ const response = yield this.sendRequest('POST', '/api/v2/chat/push_preferences', undefined, undefined, body);
4023
+ (_44 = decoders.UpsertPushPreferencesResponse) === null || _44 === void 0 ? void 0 : _44.call(decoders, response.body);
4024
+ return Object.assign(Object.assign({}, response.body), { metadata: response.metadata });
4025
+ });
4026
+ this.queryBannedUsers = (request) => __awaiter(this, void 0, void 0, function* () {
4027
+ var _45;
4009
4028
  const queryParams = {
4010
4029
  payload: request === null || request === void 0 ? void 0 : request.payload,
4011
4030
  };
4012
4031
  const response = yield this.sendRequest('GET', '/api/v2/chat/query_banned_users', undefined, queryParams);
4013
- (_44 = decoders.QueryBannedUsersResponse) === null || _44 === void 0 ? void 0 : _44.call(decoders, response.body);
4032
+ (_45 = decoders.QueryBannedUsersResponse) === null || _45 === void 0 ? void 0 : _45.call(decoders, response.body);
4014
4033
  return Object.assign(Object.assign({}, response.body), { metadata: response.metadata });
4015
4034
  });
4016
4035
  this.search = (request) => __awaiter(this, void 0, void 0, function* () {
4017
- var _45;
4036
+ var _46;
4018
4037
  const queryParams = {
4019
4038
  payload: request === null || request === void 0 ? void 0 : request.payload,
4020
4039
  };
4021
4040
  const response = yield this.sendRequest('GET', '/api/v2/chat/search', undefined, queryParams);
4022
- (_45 = decoders.SearchResponse) === null || _45 === void 0 ? void 0 : _45.call(decoders, response.body);
4041
+ (_46 = decoders.SearchResponse) === null || _46 === void 0 ? void 0 : _46.call(decoders, response.body);
4023
4042
  return Object.assign(Object.assign({}, response.body), { metadata: response.metadata });
4024
4043
  });
4025
4044
  this.querySegments = (request) => __awaiter(this, void 0, void 0, function* () {
4026
- var _46;
4045
+ var _47;
4027
4046
  const body = {
4028
4047
  filter: request === null || request === void 0 ? void 0 : request.filter,
4029
4048
  limit: request === null || request === void 0 ? void 0 : request.limit,
@@ -4032,29 +4051,29 @@ class ChatApi extends BaseApi {
4032
4051
  sort: request === null || request === void 0 ? void 0 : request.sort,
4033
4052
  };
4034
4053
  const response = yield this.sendRequest('POST', '/api/v2/chat/segments/query', undefined, undefined, body);
4035
- (_46 = decoders.QuerySegmentsResponse) === null || _46 === void 0 ? void 0 : _46.call(decoders, response.body);
4054
+ (_47 = decoders.QuerySegmentsResponse) === null || _47 === void 0 ? void 0 : _47.call(decoders, response.body);
4036
4055
  return Object.assign(Object.assign({}, response.body), { metadata: response.metadata });
4037
4056
  });
4038
4057
  this.deleteSegment = (request) => __awaiter(this, void 0, void 0, function* () {
4039
- var _47;
4058
+ var _48;
4040
4059
  const pathParams = {
4041
4060
  id: request === null || request === void 0 ? void 0 : request.id,
4042
4061
  };
4043
4062
  const response = yield this.sendRequest('DELETE', '/api/v2/chat/segments/{id}', pathParams, undefined);
4044
- (_47 = decoders.Response) === null || _47 === void 0 ? void 0 : _47.call(decoders, response.body);
4063
+ (_48 = decoders.Response) === null || _48 === void 0 ? void 0 : _48.call(decoders, response.body);
4045
4064
  return Object.assign(Object.assign({}, response.body), { metadata: response.metadata });
4046
4065
  });
4047
4066
  this.getSegment = (request) => __awaiter(this, void 0, void 0, function* () {
4048
- var _48;
4067
+ var _49;
4049
4068
  const pathParams = {
4050
4069
  id: request === null || request === void 0 ? void 0 : request.id,
4051
4070
  };
4052
4071
  const response = yield this.sendRequest('GET', '/api/v2/chat/segments/{id}', pathParams, undefined);
4053
- (_48 = decoders.GetSegmentResponse) === null || _48 === void 0 ? void 0 : _48.call(decoders, response.body);
4072
+ (_49 = decoders.GetSegmentResponse) === null || _49 === void 0 ? void 0 : _49.call(decoders, response.body);
4054
4073
  return Object.assign(Object.assign({}, response.body), { metadata: response.metadata });
4055
4074
  });
4056
4075
  this.deleteSegmentTargets = (request) => __awaiter(this, void 0, void 0, function* () {
4057
- var _49;
4076
+ var _50;
4058
4077
  const pathParams = {
4059
4078
  id: request === null || request === void 0 ? void 0 : request.id,
4060
4079
  };
@@ -4062,21 +4081,21 @@ class ChatApi extends BaseApi {
4062
4081
  target_ids: request === null || request === void 0 ? void 0 : request.target_ids,
4063
4082
  };
4064
4083
  const response = yield this.sendRequest('POST', '/api/v2/chat/segments/{id}/deletetargets', pathParams, undefined, body);
4065
- (_49 = decoders.Response) === null || _49 === void 0 ? void 0 : _49.call(decoders, response.body);
4084
+ (_50 = decoders.Response) === null || _50 === void 0 ? void 0 : _50.call(decoders, response.body);
4066
4085
  return Object.assign(Object.assign({}, response.body), { metadata: response.metadata });
4067
4086
  });
4068
4087
  this.segmentTargetExists = (request) => __awaiter(this, void 0, void 0, function* () {
4069
- var _50;
4088
+ var _51;
4070
4089
  const pathParams = {
4071
4090
  id: request === null || request === void 0 ? void 0 : request.id,
4072
4091
  target_id: request === null || request === void 0 ? void 0 : request.target_id,
4073
4092
  };
4074
4093
  const response = yield this.sendRequest('GET', '/api/v2/chat/segments/{id}/target/{target_id}', pathParams, undefined);
4075
- (_50 = decoders.Response) === null || _50 === void 0 ? void 0 : _50.call(decoders, response.body);
4094
+ (_51 = decoders.Response) === null || _51 === void 0 ? void 0 : _51.call(decoders, response.body);
4076
4095
  return Object.assign(Object.assign({}, response.body), { metadata: response.metadata });
4077
4096
  });
4078
4097
  this.querySegmentTargets = (request) => __awaiter(this, void 0, void 0, function* () {
4079
- var _51;
4098
+ var _52;
4080
4099
  const pathParams = {
4081
4100
  id: request === null || request === void 0 ? void 0 : request.id,
4082
4101
  };
@@ -4088,11 +4107,11 @@ class ChatApi extends BaseApi {
4088
4107
  filter: request === null || request === void 0 ? void 0 : request.filter,
4089
4108
  };
4090
4109
  const response = yield this.sendRequest('POST', '/api/v2/chat/segments/{id}/targets/query', pathParams, undefined, body);
4091
- (_51 = decoders.QuerySegmentTargetsResponse) === null || _51 === void 0 ? void 0 : _51.call(decoders, response.body);
4110
+ (_52 = decoders.QuerySegmentTargetsResponse) === null || _52 === void 0 ? void 0 : _52.call(decoders, response.body);
4092
4111
  return Object.assign(Object.assign({}, response.body), { metadata: response.metadata });
4093
4112
  });
4094
4113
  this.queryThreads = (request) => __awaiter(this, void 0, void 0, function* () {
4095
- var _52;
4114
+ var _53;
4096
4115
  const body = {
4097
4116
  limit: request === null || request === void 0 ? void 0 : request.limit,
4098
4117
  member_limit: request === null || request === void 0 ? void 0 : request.member_limit,
@@ -4104,11 +4123,11 @@ class ChatApi extends BaseApi {
4104
4123
  user: request === null || request === void 0 ? void 0 : request.user,
4105
4124
  };
4106
4125
  const response = yield this.sendRequest('POST', '/api/v2/chat/threads', undefined, undefined, body);
4107
- (_52 = decoders.QueryThreadsResponse) === null || _52 === void 0 ? void 0 : _52.call(decoders, response.body);
4126
+ (_53 = decoders.QueryThreadsResponse) === null || _53 === void 0 ? void 0 : _53.call(decoders, response.body);
4108
4127
  return Object.assign(Object.assign({}, response.body), { metadata: response.metadata });
4109
4128
  });
4110
4129
  this.getThread = (request) => __awaiter(this, void 0, void 0, function* () {
4111
- var _53;
4130
+ var _54;
4112
4131
  const queryParams = {
4113
4132
  reply_limit: request === null || request === void 0 ? void 0 : request.reply_limit,
4114
4133
  participant_limit: request === null || request === void 0 ? void 0 : request.participant_limit,
@@ -4118,11 +4137,11 @@ class ChatApi extends BaseApi {
4118
4137
  message_id: request === null || request === void 0 ? void 0 : request.message_id,
4119
4138
  };
4120
4139
  const response = yield this.sendRequest('GET', '/api/v2/chat/threads/{message_id}', pathParams, queryParams);
4121
- (_53 = decoders.GetThreadResponse) === null || _53 === void 0 ? void 0 : _53.call(decoders, response.body);
4140
+ (_54 = decoders.GetThreadResponse) === null || _54 === void 0 ? void 0 : _54.call(decoders, response.body);
4122
4141
  return Object.assign(Object.assign({}, response.body), { metadata: response.metadata });
4123
4142
  });
4124
4143
  this.updateThreadPartial = (request) => __awaiter(this, void 0, void 0, function* () {
4125
- var _54;
4144
+ var _55;
4126
4145
  const pathParams = {
4127
4146
  message_id: request === null || request === void 0 ? void 0 : request.message_id,
4128
4147
  };
@@ -4133,26 +4152,26 @@ class ChatApi extends BaseApi {
4133
4152
  user: request === null || request === void 0 ? void 0 : request.user,
4134
4153
  };
4135
4154
  const response = yield this.sendRequest('PATCH', '/api/v2/chat/threads/{message_id}', pathParams, undefined, body);
4136
- (_54 = decoders.UpdateThreadPartialResponse) === null || _54 === void 0 ? void 0 : _54.call(decoders, response.body);
4155
+ (_55 = decoders.UpdateThreadPartialResponse) === null || _55 === void 0 ? void 0 : _55.call(decoders, response.body);
4137
4156
  return Object.assign(Object.assign({}, response.body), { metadata: response.metadata });
4138
4157
  });
4139
4158
  this.unreadCounts = () => __awaiter(this, void 0, void 0, function* () {
4140
- var _55;
4159
+ var _56;
4141
4160
  const response = yield this.sendRequest('GET', '/api/v2/chat/unread', undefined, undefined);
4142
- (_55 = decoders.WrappedUnreadCountsResponse) === null || _55 === void 0 ? void 0 : _55.call(decoders, response.body);
4161
+ (_56 = decoders.WrappedUnreadCountsResponse) === null || _56 === void 0 ? void 0 : _56.call(decoders, response.body);
4143
4162
  return Object.assign(Object.assign({}, response.body), { metadata: response.metadata });
4144
4163
  });
4145
4164
  this.unreadCountsBatch = (request) => __awaiter(this, void 0, void 0, function* () {
4146
- var _56;
4165
+ var _57;
4147
4166
  const body = {
4148
4167
  user_ids: request === null || request === void 0 ? void 0 : request.user_ids,
4149
4168
  };
4150
4169
  const response = yield this.sendRequest('POST', '/api/v2/chat/unread_batch', undefined, undefined, body);
4151
- (_56 = decoders.UnreadCountsBatchResponse) === null || _56 === void 0 ? void 0 : _56.call(decoders, response.body);
4170
+ (_57 = decoders.UnreadCountsBatchResponse) === null || _57 === void 0 ? void 0 : _57.call(decoders, response.body);
4152
4171
  return Object.assign(Object.assign({}, response.body), { metadata: response.metadata });
4153
4172
  });
4154
4173
  this.sendUserCustomEvent = (request) => __awaiter(this, void 0, void 0, function* () {
4155
- var _57;
4174
+ var _58;
4156
4175
  const pathParams = {
4157
4176
  user_id: request === null || request === void 0 ? void 0 : request.user_id,
4158
4177
  };
@@ -4160,7 +4179,7 @@ class ChatApi extends BaseApi {
4160
4179
  event: request === null || request === void 0 ? void 0 : request.event,
4161
4180
  };
4162
4181
  const response = yield this.sendRequest('POST', '/api/v2/chat/users/{user_id}/event', pathParams, undefined, body);
4163
- (_57 = decoders.Response) === null || _57 === void 0 ? void 0 : _57.call(decoders, response.body);
4182
+ (_58 = decoders.Response) === null || _58 === void 0 ? void 0 : _58.call(decoders, response.body);
4164
4183
  return Object.assign(Object.assign({}, response.body), { metadata: response.metadata });
4165
4184
  });
4166
4185
  }