@glagan/rettiwt-api 7.0.0

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.
Files changed (165) hide show
  1. package/.eslintrc.js +166 -0
  2. package/.gitattributes +3 -0
  3. package/.github/FUNDING.yml +4 -0
  4. package/.github/ISSUE_TEMPLATE/bug-report.yml +57 -0
  5. package/.github/ISSUE_TEMPLATE/feature-request.yml +20 -0
  6. package/.github/ISSUE_TEMPLATE/question.yml +15 -0
  7. package/.github/PULL_REQUEST_TEMPLATE.md +32 -0
  8. package/.github/workflows/ci.yml +32 -0
  9. package/.github/workflows/publish.yml +23 -0
  10. package/.nvmrc +1 -0
  11. package/.prettierignore +3 -0
  12. package/.prettierrc +13 -0
  13. package/LICENSE +21 -0
  14. package/README.md +566 -0
  15. package/dist/cli.js +43 -0
  16. package/eslint.config.mjs +17 -0
  17. package/package.json +50 -0
  18. package/src/Rettiwt.ts +97 -0
  19. package/src/cli.ts +48 -0
  20. package/src/collections/Extractors.ts +155 -0
  21. package/src/collections/Groups.ts +81 -0
  22. package/src/collections/Requests.ts +89 -0
  23. package/src/collections/Tweet.ts +17 -0
  24. package/src/commands/DirectMessage.ts +62 -0
  25. package/src/commands/List.ts +90 -0
  26. package/src/commands/Tweet.ts +437 -0
  27. package/src/commands/User.ts +367 -0
  28. package/src/enums/Api.ts +10 -0
  29. package/src/enums/Authentication.ts +10 -0
  30. package/src/enums/Data.ts +13 -0
  31. package/src/enums/Logging.ts +14 -0
  32. package/src/enums/Media.ts +10 -0
  33. package/src/enums/Notification.ts +12 -0
  34. package/src/enums/Resource.ts +69 -0
  35. package/src/enums/Tweet.ts +8 -0
  36. package/src/enums/raw/Analytics.ts +32 -0
  37. package/src/enums/raw/Media.ts +10 -0
  38. package/src/enums/raw/Notification.ts +11 -0
  39. package/src/enums/raw/Tweet.ts +20 -0
  40. package/src/helper/CliUtils.ts +17 -0
  41. package/src/helper/JsonUtils.ts +70 -0
  42. package/src/index.ts +128 -0
  43. package/src/models/RettiwtConfig.ts +101 -0
  44. package/src/models/args/FetchArgs.ts +169 -0
  45. package/src/models/args/PostArgs.ts +93 -0
  46. package/src/models/args/ProfileArgs.ts +68 -0
  47. package/src/models/auth/AuthCookie.ts +58 -0
  48. package/src/models/auth/AuthCredential.ts +83 -0
  49. package/src/models/data/Analytics.ts +97 -0
  50. package/src/models/data/BookmarkFolder.ts +73 -0
  51. package/src/models/data/Conversation.ts +344 -0
  52. package/src/models/data/CursoredData.ts +64 -0
  53. package/src/models/data/DirectMessage.ts +335 -0
  54. package/src/models/data/Inbox.ts +124 -0
  55. package/src/models/data/List.ts +113 -0
  56. package/src/models/data/Notification.ts +84 -0
  57. package/src/models/data/Tweet.ts +388 -0
  58. package/src/models/data/User.ts +187 -0
  59. package/src/models/errors/TwitterError.ts +65 -0
  60. package/src/models/params/Variables.ts +62 -0
  61. package/src/requests/DirectMessage.ts +229 -0
  62. package/src/requests/List.ts +203 -0
  63. package/src/requests/Media.ts +67 -0
  64. package/src/requests/Tweet.ts +607 -0
  65. package/src/requests/User.ts +1191 -0
  66. package/src/services/internal/AuthService.ts +115 -0
  67. package/src/services/internal/ErrorService.ts +41 -0
  68. package/src/services/internal/LogService.ts +34 -0
  69. package/src/services/public/DirectMessageService.ts +159 -0
  70. package/src/services/public/FetcherService.ts +366 -0
  71. package/src/services/public/ListService.ts +241 -0
  72. package/src/services/public/TweetService.ts +886 -0
  73. package/src/services/public/UserService.ts +1154 -0
  74. package/src/types/ErrorHandler.ts +13 -0
  75. package/src/types/Fetch.ts +3 -0
  76. package/src/types/RettiwtConfig.ts +48 -0
  77. package/src/types/args/FetchArgs.ts +233 -0
  78. package/src/types/args/PostArgs.ts +142 -0
  79. package/src/types/args/ProfileArgs.ts +33 -0
  80. package/src/types/auth/AuthCookie.ts +22 -0
  81. package/src/types/auth/AuthCredential.ts +28 -0
  82. package/src/types/auth/TransactionHeader.ts +8 -0
  83. package/src/types/data/Analytics.ts +58 -0
  84. package/src/types/data/BookmarkFolder.ts +12 -0
  85. package/src/types/data/Conversation.ts +44 -0
  86. package/src/types/data/CursoredData.ts +24 -0
  87. package/src/types/data/DirectMessage.ts +33 -0
  88. package/src/types/data/Inbox.ts +23 -0
  89. package/src/types/data/List.ts +33 -0
  90. package/src/types/data/Notification.ts +26 -0
  91. package/src/types/data/Tweet.ts +99 -0
  92. package/src/types/data/User.ts +54 -0
  93. package/src/types/errors/TwitterError.ts +37 -0
  94. package/src/types/params/Variables.ts +41 -0
  95. package/src/types/raw/base/Analytic.ts +32 -0
  96. package/src/types/raw/base/BookmarkFolder.ts +12 -0
  97. package/src/types/raw/base/Cursor.ts +13 -0
  98. package/src/types/raw/base/Error.ts +38 -0
  99. package/src/types/raw/base/LimitedVisibilityTweet.ts +40 -0
  100. package/src/types/raw/base/List.ts +50 -0
  101. package/src/types/raw/base/Media.ts +53 -0
  102. package/src/types/raw/base/Message.ts +22 -0
  103. package/src/types/raw/base/Notification.ts +66 -0
  104. package/src/types/raw/base/Space.ts +35 -0
  105. package/src/types/raw/base/Tweet.ts +139 -0
  106. package/src/types/raw/base/User.ts +182 -0
  107. package/src/types/raw/composite/DataResult.ts +8 -0
  108. package/src/types/raw/composite/TimelineList.ts +10 -0
  109. package/src/types/raw/composite/TimelineTweet.ts +14 -0
  110. package/src/types/raw/composite/TimelineUser.ts +13 -0
  111. package/src/types/raw/dm/Conversation.ts +59 -0
  112. package/src/types/raw/dm/InboxInitial.ts +155 -0
  113. package/src/types/raw/dm/InboxTimeline.ts +301 -0
  114. package/src/types/raw/dm/UserUpdates.ts +46 -0
  115. package/src/types/raw/generic/Response.ts +10 -0
  116. package/src/types/raw/list/AddMember.ts +175 -0
  117. package/src/types/raw/list/Details.ts +176 -0
  118. package/src/types/raw/list/Members.ts +154 -0
  119. package/src/types/raw/list/RemoveMember.ts +174 -0
  120. package/src/types/raw/list/Tweets.ts +2296 -0
  121. package/src/types/raw/media/FinalizeUpload.ts +20 -0
  122. package/src/types/raw/media/InitalizeUpload.ts +12 -0
  123. package/src/types/raw/media/LiveVideoStream.ts +21 -0
  124. package/src/types/raw/space/Details.ts +359 -0
  125. package/src/types/raw/tweet/Bookmark.ts +14 -0
  126. package/src/types/raw/tweet/Details.ts +210 -0
  127. package/src/types/raw/tweet/DetailsBulk.ts +338 -0
  128. package/src/types/raw/tweet/Like.ts +14 -0
  129. package/src/types/raw/tweet/Likers.ts +200 -0
  130. package/src/types/raw/tweet/Post.ts +150 -0
  131. package/src/types/raw/tweet/Replies.ts +539 -0
  132. package/src/types/raw/tweet/Retweet.ts +31 -0
  133. package/src/types/raw/tweet/Retweeters.ts +208 -0
  134. package/src/types/raw/tweet/Schedule.ts +18 -0
  135. package/src/types/raw/tweet/Search.ts +597 -0
  136. package/src/types/raw/tweet/Unbookmark.ts +14 -0
  137. package/src/types/raw/tweet/Unlike.ts +14 -0
  138. package/src/types/raw/tweet/Unpost.ts +20 -0
  139. package/src/types/raw/tweet/Unretweet.ts +31 -0
  140. package/src/types/raw/tweet/Unschedule.ts +14 -0
  141. package/src/types/raw/user/Affiliates.ts +179 -0
  142. package/src/types/raw/user/Analytics.ts +23 -0
  143. package/src/types/raw/user/BookmarkFolderTweets.ts +53 -0
  144. package/src/types/raw/user/BookmarkFolders.ts +41 -0
  145. package/src/types/raw/user/Bookmarks.ts +637 -0
  146. package/src/types/raw/user/Details.ts +185 -0
  147. package/src/types/raw/user/DetailsBulk.ts +104 -0
  148. package/src/types/raw/user/Follow.ts +280 -0
  149. package/src/types/raw/user/Followed.ts +1942 -0
  150. package/src/types/raw/user/Followers.ts +215 -0
  151. package/src/types/raw/user/Following.ts +215 -0
  152. package/src/types/raw/user/Highlights.ts +1287 -0
  153. package/src/types/raw/user/Likes.ts +1254 -0
  154. package/src/types/raw/user/Lists.ts +378 -0
  155. package/src/types/raw/user/Media.ts +1738 -0
  156. package/src/types/raw/user/Notifications.ts +499 -0
  157. package/src/types/raw/user/ProfileUpdate.ts +80 -0
  158. package/src/types/raw/user/Recommended.ts +2319 -0
  159. package/src/types/raw/user/Scheduled.ts +37 -0
  160. package/src/types/raw/user/Search.ts +230 -0
  161. package/src/types/raw/user/Subscriptions.ts +176 -0
  162. package/src/types/raw/user/Tweets.ts +1254 -0
  163. package/src/types/raw/user/TweetsAndReplies.ts +1254 -0
  164. package/src/types/raw/user/Unfollow.ts +280 -0
  165. package/tsconfig.json +97 -0
@@ -0,0 +1,185 @@
1
+ /* eslint-disable */
2
+
3
+ /**
4
+ * The raw data received when fetching the details of the given user.
5
+ *
6
+ * @public
7
+ */
8
+ export interface IUserDetailsResponse {
9
+ data: Data;
10
+ }
11
+
12
+ interface Data {
13
+ user: User;
14
+ }
15
+
16
+ interface User {
17
+ result: Result;
18
+ }
19
+
20
+ interface Result {
21
+ __typename: string;
22
+ id: string;
23
+ rest_id: string;
24
+ affiliates_highlighted_label: AffiliatesHighlightedLabel;
25
+ has_nft_avatar: boolean;
26
+ legacy: Legacy;
27
+ smart_blocked_by: boolean;
28
+ smart_blocking: boolean;
29
+ super_follow_eligible: boolean;
30
+ super_followed_by: boolean;
31
+ super_following: boolean;
32
+ legacy_extended_profile: LegacyExtendedProfile;
33
+ is_profile_translatable: boolean;
34
+ }
35
+
36
+ interface AffiliatesHighlightedLabel {
37
+ label: AffiliatesHighlightedLabelDetails;
38
+ }
39
+
40
+ interface AffiliatesHighlightedLabelDetails {
41
+ badge: AffiliatesHighlightedLabelBadge;
42
+ description: string;
43
+ longDescription: AffiliatesHighlightedLabelDescription;
44
+ }
45
+
46
+ interface AffiliatesHighlightedLabelBadge {
47
+ url: string;
48
+ }
49
+
50
+ interface AffiliatesHighlightedLabelDescription {
51
+ text: string;
52
+ entities: AffiliatesHighlightedLabelEntity[];
53
+ }
54
+
55
+ interface AffiliatesHighlightedLabelEntity {
56
+ fromIndex: number;
57
+ toIndex: number;
58
+ ref: AffiliatesHighlightedMention;
59
+ }
60
+
61
+ interface AffiliatesHighlightedMention {
62
+ type: string;
63
+ screen_name: string;
64
+ mention_results: AffiliatesHighlightedMentionResults;
65
+ }
66
+
67
+ interface AffiliatesHighlightedMentionResults {
68
+ result: AffiliatesHighlightedMentionResult;
69
+ }
70
+
71
+ interface AffiliatesHighlightedMentionResult {
72
+ __typename: string;
73
+ legacy: AffiliatesHighlightedMentionResultLegacy;
74
+ rest_id: string;
75
+ }
76
+
77
+ interface AffiliatesHighlightedMentionResultLegacy {
78
+ screen_name: string;
79
+ }
80
+
81
+ interface Legacy {
82
+ blocked_by: boolean;
83
+ blocking: boolean;
84
+ can_dm: boolean;
85
+ can_media_tag: boolean;
86
+ created_at: string;
87
+ default_profile: boolean;
88
+ default_profile_image: boolean;
89
+ description: string;
90
+ entities: Entities;
91
+ fast_followers_count: number;
92
+ favourites_count: number;
93
+ follow_request_sent: boolean;
94
+ followed_by: boolean;
95
+ followers_count: number;
96
+ following: boolean;
97
+ friends_count: number;
98
+ has_custom_timelines: boolean;
99
+ is_translator: boolean;
100
+ listed_count: number;
101
+ location: string;
102
+ media_count: number;
103
+ muting: boolean;
104
+ name: string;
105
+ normal_followers_count: number;
106
+ notifications: boolean;
107
+ pinned_tweet_ids_str: any[];
108
+ possibly_sensitive: boolean;
109
+ profile_banner_extensions: ProfileBannerExtensions;
110
+ profile_banner_url: string;
111
+ profile_image_extensions: ProfileImageExtensions;
112
+ profile_image_url_https: string;
113
+ profile_interstitial_type: string;
114
+ protected: boolean;
115
+ screen_name: string;
116
+ statuses_count: number;
117
+ translator_type: string;
118
+ verified: boolean;
119
+ want_retweets: boolean;
120
+ withheld_in_countries: any[];
121
+ }
122
+
123
+ interface Entities {
124
+ description: Description;
125
+ }
126
+
127
+ interface Description {
128
+ urls: any[];
129
+ }
130
+
131
+ interface ProfileBannerExtensions {
132
+ mediaColor: MediaColor;
133
+ }
134
+
135
+ interface MediaColor {
136
+ r: R;
137
+ }
138
+
139
+ interface R {
140
+ ok: Ok;
141
+ }
142
+
143
+ interface Ok {
144
+ palette: Palette[];
145
+ }
146
+
147
+ interface Palette {
148
+ percentage: number;
149
+ rgb: Rgb;
150
+ }
151
+
152
+ interface Rgb {
153
+ blue: number;
154
+ green: number;
155
+ red: number;
156
+ }
157
+
158
+ interface ProfileImageExtensions {
159
+ mediaColor: MediaColor2;
160
+ }
161
+
162
+ interface MediaColor2 {
163
+ r: R2;
164
+ }
165
+
166
+ interface R2 {
167
+ ok: Ok2;
168
+ }
169
+
170
+ interface Ok2 {
171
+ palette: Palette2[];
172
+ }
173
+
174
+ interface Palette2 {
175
+ percentage: number;
176
+ rgb: Rgb2;
177
+ }
178
+
179
+ interface Rgb2 {
180
+ blue: number;
181
+ green: number;
182
+ red: number;
183
+ }
184
+
185
+ interface LegacyExtendedProfile {}
@@ -0,0 +1,104 @@
1
+ /* eslint-disable */
2
+
3
+ export interface IUserDetailsBulkResponse {
4
+ data: Data;
5
+ }
6
+
7
+ export interface Data {
8
+ users: User[];
9
+ }
10
+
11
+ export interface User {
12
+ result: Result;
13
+ }
14
+
15
+ export interface Result {
16
+ __typename: string;
17
+ id: string;
18
+ rest_id: string;
19
+ affiliates_highlighted_label: AffiliatesHighlightedLabel;
20
+ has_graduated_access: boolean;
21
+ is_blue_verified: boolean;
22
+ profile_image_shape: string;
23
+ legacy: Legacy;
24
+ professional?: Professional;
25
+ super_follow_eligible: boolean;
26
+ super_followed_by: boolean;
27
+ super_following: boolean;
28
+ }
29
+
30
+ export interface AffiliatesHighlightedLabel {
31
+ label?: Label;
32
+ }
33
+
34
+ export interface Label {
35
+ url: Url;
36
+ badge: Badge;
37
+ description: string;
38
+ userLabelType: string;
39
+ userLabelDisplayType: string;
40
+ }
41
+
42
+ export interface Url {
43
+ url: string;
44
+ urlType: string;
45
+ }
46
+
47
+ export interface Badge {
48
+ url: string;
49
+ }
50
+
51
+ export interface Legacy {
52
+ blocked_by: boolean;
53
+ blocking: boolean;
54
+ follow_request_sent: boolean;
55
+ followed_by: boolean;
56
+ muting: boolean;
57
+ notifications: boolean;
58
+ protected: boolean;
59
+ following: boolean;
60
+ can_dm: boolean;
61
+ can_media_tag: boolean;
62
+ created_at: string;
63
+ default_profile: boolean;
64
+ default_profile_image: boolean;
65
+ description: string;
66
+ entities: Entities;
67
+ fast_followers_count: number;
68
+ favourites_count: number;
69
+ followers_count: number;
70
+ friends_count: number;
71
+ has_custom_timelines: boolean;
72
+ is_translator: boolean;
73
+ listed_count: number;
74
+ location: string;
75
+ media_count: number;
76
+ name: string;
77
+ normal_followers_count: number;
78
+ pinned_tweet_ids_str: any[];
79
+ possibly_sensitive: boolean;
80
+ profile_banner_url?: string;
81
+ profile_image_url_https: string;
82
+ profile_interstitial_type: string;
83
+ screen_name: string;
84
+ statuses_count: number;
85
+ translator_type: string;
86
+ verified: boolean;
87
+ want_retweets: boolean;
88
+ withheld_in_countries: any[];
89
+ needs_phone_verification?: boolean;
90
+ }
91
+
92
+ export interface Entities {
93
+ description: Description;
94
+ }
95
+
96
+ export interface Description {
97
+ urls: any[];
98
+ }
99
+
100
+ export interface Professional {
101
+ rest_id: string;
102
+ professional_type: string;
103
+ category: any[];
104
+ }
@@ -0,0 +1,280 @@
1
+ /* eslint-disable */
2
+
3
+ /**
4
+ * The raw data received when following a given user.
5
+ *
6
+ * @public
7
+ */
8
+ export interface IUserFollowResponse {
9
+ id: number;
10
+ id_str: string;
11
+ name: string;
12
+ screen_name: string;
13
+ location: string;
14
+ description: string;
15
+ url: any;
16
+ entities: Entities;
17
+ protected: boolean;
18
+ followers_count: number;
19
+ fast_followers_count: number;
20
+ normal_followers_count: number;
21
+ friends_count: number;
22
+ listed_count: number;
23
+ created_at: string;
24
+ favourites_count: number;
25
+ utc_offset: any;
26
+ time_zone: any;
27
+ geo_enabled: boolean;
28
+ verified: boolean;
29
+ statuses_count: number;
30
+ media_count: number;
31
+ lang: any;
32
+ status: Status;
33
+ contributors_enabled: boolean;
34
+ is_translator: boolean;
35
+ is_translation_enabled: boolean;
36
+ profile_background_color: string;
37
+ profile_background_image_url: string;
38
+ profile_background_image_url_https: string;
39
+ profile_background_tile: boolean;
40
+ profile_image_url: string;
41
+ profile_image_url_https: string;
42
+ profile_banner_url: string;
43
+ profile_link_color: string;
44
+ profile_sidebar_border_color: string;
45
+ profile_sidebar_fill_color: string;
46
+ profile_text_color: string;
47
+ profile_use_background_image: boolean;
48
+ has_extended_profile: boolean;
49
+ default_profile: boolean;
50
+ default_profile_image: boolean;
51
+ pinned_tweet_ids: number[];
52
+ pinned_tweet_ids_str: string[];
53
+ has_custom_timelines: boolean;
54
+ can_media_tag: boolean;
55
+ followed_by: boolean;
56
+ following: boolean;
57
+ follow_request_sent: boolean;
58
+ notifications: boolean;
59
+ muting: boolean;
60
+ advertiser_account_type: string;
61
+ advertiser_account_service_levels: any[];
62
+ business_profile_state: string;
63
+ translator_type: string;
64
+ withheld_in_countries: any[];
65
+ require_some_consent: boolean;
66
+ }
67
+
68
+ interface Entities {
69
+ description: Description;
70
+ }
71
+
72
+ interface Description {
73
+ urls: any[];
74
+ }
75
+
76
+ interface Status {
77
+ created_at: string;
78
+ id: number;
79
+ id_str: string;
80
+ text: string;
81
+ truncated: boolean;
82
+ entities: Entities2;
83
+ extended_entities: ExtendedEntities;
84
+ source: string;
85
+ in_reply_to_status_id: any;
86
+ in_reply_to_status_id_str: any;
87
+ in_reply_to_user_id: any;
88
+ in_reply_to_user_id_str: any;
89
+ in_reply_to_screen_name: any;
90
+ geo: any;
91
+ coordinates: any;
92
+ place: any;
93
+ contributors: any;
94
+ is_quote_status: boolean;
95
+ retweet_count: number;
96
+ favorite_count: number;
97
+ favorited: boolean;
98
+ retweeted: boolean;
99
+ possibly_sensitive: boolean;
100
+ possibly_sensitive_editable: boolean;
101
+ lang: string;
102
+ supplemental_language: any;
103
+ }
104
+
105
+ interface Entities2 {
106
+ hashtags: any[];
107
+ symbols: any[];
108
+ user_mentions: any[];
109
+ urls: any[];
110
+ media: Medum[];
111
+ }
112
+
113
+ interface Medum {
114
+ id: number;
115
+ id_str: string;
116
+ indices: number[];
117
+ media_url: string;
118
+ media_url_https: string;
119
+ url: string;
120
+ display_url: string;
121
+ expanded_url: string;
122
+ type: string;
123
+ original_info: OriginalInfo;
124
+ sizes: Sizes;
125
+ features: Features;
126
+ }
127
+
128
+ interface OriginalInfo {
129
+ width: number;
130
+ height: number;
131
+ focus_rects: FocusRect[];
132
+ }
133
+
134
+ interface FocusRect {
135
+ x: number;
136
+ y: number;
137
+ h: number;
138
+ w: number;
139
+ }
140
+
141
+ interface Sizes {
142
+ thumb: Thumb;
143
+ medium: Medium;
144
+ large: Large;
145
+ small: Small;
146
+ }
147
+
148
+ interface Thumb {
149
+ w: number;
150
+ h: number;
151
+ resize: string;
152
+ }
153
+
154
+ interface Medium {
155
+ w: number;
156
+ h: number;
157
+ resize: string;
158
+ }
159
+
160
+ interface Large {
161
+ w: number;
162
+ h: number;
163
+ resize: string;
164
+ }
165
+
166
+ interface Small {
167
+ w: number;
168
+ h: number;
169
+ resize: string;
170
+ }
171
+
172
+ interface Features {
173
+ medium: Medium2;
174
+ orig: Orig;
175
+ large: Large2;
176
+ small: Small2;
177
+ }
178
+
179
+ interface Medium2 {
180
+ faces: any[];
181
+ }
182
+
183
+ interface Orig {
184
+ faces: any[];
185
+ }
186
+
187
+ interface Large2 {
188
+ faces: any[];
189
+ }
190
+
191
+ interface Small2 {
192
+ faces: any[];
193
+ }
194
+
195
+ interface ExtendedEntities {
196
+ media: Medum2[];
197
+ }
198
+
199
+ interface Medum2 {
200
+ id: number;
201
+ id_str: string;
202
+ indices: number[];
203
+ media_url: string;
204
+ media_url_https: string;
205
+ url: string;
206
+ display_url: string;
207
+ expanded_url: string;
208
+ type: string;
209
+ original_info: OriginalInfo2;
210
+ sizes: Sizes2;
211
+ features: Features2;
212
+ media_key: string;
213
+ }
214
+
215
+ interface OriginalInfo2 {
216
+ width: number;
217
+ height: number;
218
+ focus_rects: FocusRect2[];
219
+ }
220
+
221
+ interface FocusRect2 {
222
+ x: number;
223
+ y: number;
224
+ h: number;
225
+ w: number;
226
+ }
227
+
228
+ interface Sizes2 {
229
+ thumb: Thumb2;
230
+ medium: Medium3;
231
+ large: Large3;
232
+ small: Small3;
233
+ }
234
+
235
+ interface Thumb2 {
236
+ w: number;
237
+ h: number;
238
+ resize: string;
239
+ }
240
+
241
+ interface Medium3 {
242
+ w: number;
243
+ h: number;
244
+ resize: string;
245
+ }
246
+
247
+ interface Large3 {
248
+ w: number;
249
+ h: number;
250
+ resize: string;
251
+ }
252
+
253
+ interface Small3 {
254
+ w: number;
255
+ h: number;
256
+ resize: string;
257
+ }
258
+
259
+ interface Features2 {
260
+ medium: Medium4;
261
+ orig: Orig2;
262
+ large: Large4;
263
+ small: Small4;
264
+ }
265
+
266
+ interface Medium4 {
267
+ faces: any[];
268
+ }
269
+
270
+ interface Orig2 {
271
+ faces: any[];
272
+ }
273
+
274
+ interface Large4 {
275
+ faces: any[];
276
+ }
277
+
278
+ interface Small4 {
279
+ faces: any[];
280
+ }