@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,37 @@
1
+ /* eslint-disable */
2
+
3
+ /**
4
+ * The raw data received when fetching the list of scheduled tweets of the user.
5
+ *
6
+ * @public
7
+ */
8
+ export interface IUserScheduledResponse {
9
+ data: Data;
10
+ }
11
+
12
+ interface Data {
13
+ viewer: Viewer;
14
+ }
15
+
16
+ interface Viewer {
17
+ scheduled_tweet_list: ScheduledTweetList[];
18
+ }
19
+
20
+ interface ScheduledTweetList {
21
+ rest_id: string;
22
+ scheduling_info: SchedulingInfo;
23
+ tweet_create_request: TweetCreateRequest;
24
+ }
25
+
26
+ interface SchedulingInfo {
27
+ execute_at: number;
28
+ state: string;
29
+ }
30
+
31
+ interface TweetCreateRequest {
32
+ type: string;
33
+ status: string;
34
+ exclude_reply_user_ids: any[];
35
+ media_ids: any[];
36
+ auto_populate_reply_metadata: boolean;
37
+ }
@@ -0,0 +1,230 @@
1
+ /* eslint-disable */
2
+
3
+ /**
4
+ * The raw data received when search for users.
5
+ *
6
+ * @public
7
+ */
8
+ export interface IUserSearchResponse {
9
+ data: Data;
10
+ }
11
+
12
+ interface Data {
13
+ search_by_raw_query: SearchByRawQuery;
14
+ }
15
+
16
+ interface SearchByRawQuery {
17
+ search_timeline: SearchTimeline;
18
+ }
19
+
20
+ interface SearchTimeline {
21
+ timeline: Timeline;
22
+ }
23
+
24
+ interface Timeline {
25
+ instructions: Instruction[];
26
+ }
27
+
28
+ interface Instruction {
29
+ type: string;
30
+ entries?: Entry[];
31
+ }
32
+
33
+ interface Entry {
34
+ entryId: string;
35
+ sortIndex: string;
36
+ content: Content;
37
+ }
38
+
39
+ interface Content {
40
+ entryType: string;
41
+ __typename: string;
42
+ itemContent?: ItemContent;
43
+ clientEventInfo?: ClientEventInfo;
44
+ value?: string;
45
+ cursorType?: string;
46
+ }
47
+
48
+ interface ItemContent {
49
+ itemType: string;
50
+ __typename: string;
51
+ user_results: UserResults;
52
+ userDisplayType: string;
53
+ }
54
+
55
+ interface UserResults {
56
+ result: Result;
57
+ }
58
+
59
+ interface Result {
60
+ __typename: string;
61
+ id: string;
62
+ rest_id: string;
63
+ affiliates_highlighted_label: AffiliatesHighlightedLabel;
64
+ avatar: Avatar;
65
+ core: Core;
66
+ dm_permissions: DmPermissions;
67
+ follow_request_sent: boolean;
68
+ has_graduated_access: boolean;
69
+ is_blue_verified: boolean;
70
+ legacy: Legacy;
71
+ location: Location;
72
+ media_permissions: MediaPermissions;
73
+ parody_commentary_fan_label: string;
74
+ profile_image_shape: string;
75
+ professional?: Professional;
76
+ profile_bio: ProfileBio;
77
+ privacy: Privacy;
78
+ relationship_perspectives: RelationshipPerspectives;
79
+ tipjar_settings: TipjarSettings;
80
+ super_follow_eligible?: boolean;
81
+ verification: Verification;
82
+ verified_phone_status: boolean;
83
+ profile_description_language?: string;
84
+ }
85
+
86
+ interface AffiliatesHighlightedLabel {
87
+ label?: Label;
88
+ }
89
+
90
+ interface Label {
91
+ url: Url;
92
+ badge: Badge;
93
+ description: string;
94
+ userLabelType: string;
95
+ userLabelDisplayType: string;
96
+ }
97
+
98
+ interface Url {
99
+ url: string;
100
+ urlType: string;
101
+ }
102
+
103
+ interface Badge {
104
+ url: string;
105
+ }
106
+
107
+ interface Avatar {
108
+ image_url: string;
109
+ }
110
+
111
+ interface Core {
112
+ created_at: string;
113
+ name: string;
114
+ screen_name: string;
115
+ }
116
+
117
+ interface DmPermissions {
118
+ can_dm: boolean;
119
+ }
120
+
121
+ interface Legacy {
122
+ default_profile: boolean;
123
+ default_profile_image: boolean;
124
+ description: string;
125
+ entities: Entities;
126
+ fast_followers_count: number;
127
+ favourites_count: number;
128
+ followers_count: number;
129
+ friends_count: number;
130
+ has_custom_timelines: boolean;
131
+ is_translator: boolean;
132
+ listed_count: number;
133
+ media_count: number;
134
+ normal_followers_count: number;
135
+ pinned_tweet_ids_str: string[];
136
+ possibly_sensitive: boolean;
137
+ profile_banner_url?: string;
138
+ profile_interstitial_type: string;
139
+ statuses_count: number;
140
+ translator_type: string;
141
+ want_retweets: boolean;
142
+ withheld_in_countries: any[];
143
+ url?: string;
144
+ }
145
+
146
+ interface Entities {
147
+ description: Description;
148
+ url?: Url3;
149
+ }
150
+
151
+ interface Description {
152
+ urls: Url2[];
153
+ }
154
+
155
+ interface Url2 {
156
+ display_url: string;
157
+ expanded_url: string;
158
+ url: string;
159
+ indices: number[];
160
+ }
161
+
162
+ interface Url3 {
163
+ urls: Url4[];
164
+ }
165
+
166
+ interface Url4 {
167
+ display_url: string;
168
+ expanded_url: string;
169
+ url: string;
170
+ indices: number[];
171
+ }
172
+
173
+ interface Location {
174
+ location: string;
175
+ }
176
+
177
+ interface MediaPermissions {
178
+ can_media_tag: boolean;
179
+ }
180
+
181
+ interface Professional {
182
+ rest_id: string;
183
+ professional_type: string;
184
+ category: Category[];
185
+ }
186
+
187
+ interface Category {
188
+ id: number;
189
+ name: string;
190
+ icon_name: string;
191
+ }
192
+
193
+ interface ProfileBio {
194
+ description: string;
195
+ }
196
+
197
+ interface Privacy {
198
+ protected: boolean;
199
+ }
200
+
201
+ interface RelationshipPerspectives {
202
+ following: boolean;
203
+ }
204
+
205
+ interface TipjarSettings {
206
+ is_enabled?: boolean;
207
+ bitcoin_handle?: string;
208
+ ethereum_handle?: string;
209
+ cash_app_handle?: string;
210
+ venmo_handle?: string;
211
+ }
212
+
213
+ interface Verification {
214
+ verified: boolean;
215
+ verified_type?: string;
216
+ }
217
+
218
+ interface ClientEventInfo {
219
+ component: string;
220
+ element: string;
221
+ details: Details;
222
+ }
223
+
224
+ interface Details {
225
+ timelinesDetails: TimelinesDetails;
226
+ }
227
+
228
+ interface TimelinesDetails {
229
+ controllerData: string;
230
+ }
@@ -0,0 +1,176 @@
1
+ /* eslint-disable */
2
+
3
+ /**
4
+ * The raw data received when fetching the subscriptions of the given user.
5
+ *
6
+ * @public
7
+ */
8
+ export interface IUserSubscriptionsResponse {
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
+ timeline: Timeline;
23
+ }
24
+
25
+ interface Timeline {
26
+ timeline: Timeline2;
27
+ }
28
+
29
+ interface Timeline2 {
30
+ instructions: Instruction[];
31
+ }
32
+
33
+ interface Instruction {
34
+ type: string;
35
+ direction?: string;
36
+ entries?: Entry[];
37
+ }
38
+
39
+ interface Entry {
40
+ entryId: string;
41
+ sortIndex: string;
42
+ content: Content;
43
+ }
44
+
45
+ interface Content {
46
+ entryType: string;
47
+ __typename: string;
48
+ itemContent?: ItemContent;
49
+ clientEventInfo?: ClientEventInfo;
50
+ value?: string;
51
+ cursorType?: string;
52
+ }
53
+
54
+ interface ItemContent {
55
+ itemType: string;
56
+ __typename: string;
57
+ user_results: UserResults;
58
+ userDisplayType: string;
59
+ }
60
+
61
+ interface UserResults {
62
+ result: Result2;
63
+ }
64
+
65
+ interface Result2 {
66
+ __typename: string;
67
+ id: string;
68
+ rest_id: string;
69
+ affiliates_highlighted_label: AffiliatesHighlightedLabel;
70
+ has_graduated_access: boolean;
71
+ is_blue_verified: boolean;
72
+ profile_image_shape: string;
73
+ legacy: Legacy;
74
+ super_follow_eligible: boolean;
75
+ verified_phone_status: boolean;
76
+ professional?: Professional;
77
+ }
78
+
79
+ interface AffiliatesHighlightedLabel {
80
+ label?: Label;
81
+ }
82
+
83
+ interface Label {
84
+ url: Url;
85
+ badge: Badge;
86
+ description: string;
87
+ userLabelType: string;
88
+ userLabelDisplayType: string;
89
+ }
90
+
91
+ interface Url {
92
+ url: string;
93
+ urlType: string;
94
+ }
95
+
96
+ interface Badge {
97
+ url: string;
98
+ }
99
+
100
+ interface Legacy {
101
+ can_dm: boolean;
102
+ can_media_tag: boolean;
103
+ created_at: string;
104
+ default_profile: boolean;
105
+ default_profile_image: boolean;
106
+ description: string;
107
+ entities: Entities;
108
+ fast_followers_count: number;
109
+ favourites_count: number;
110
+ followers_count: number;
111
+ friends_count: number;
112
+ has_custom_timelines: boolean;
113
+ is_translator: boolean;
114
+ listed_count: number;
115
+ location: string;
116
+ media_count: number;
117
+ name: string;
118
+ normal_followers_count: number;
119
+ pinned_tweet_ids_str: string[];
120
+ possibly_sensitive: boolean;
121
+ profile_banner_url: string;
122
+ profile_image_url_https: string;
123
+ profile_interstitial_type: string;
124
+ screen_name: string;
125
+ statuses_count: number;
126
+ translator_type: string;
127
+ verified: boolean;
128
+ want_retweets: boolean;
129
+ withheld_in_countries: any[];
130
+ url?: string;
131
+ verified_type?: string;
132
+ }
133
+
134
+ interface Entities {
135
+ description: Description;
136
+ url?: Url3;
137
+ }
138
+
139
+ interface Description {
140
+ urls: Url2[];
141
+ }
142
+
143
+ interface Url2 {
144
+ display_url: string;
145
+ expanded_url: string;
146
+ url: string;
147
+ indices: number[];
148
+ }
149
+
150
+ interface Url3 {
151
+ urls: Url4[];
152
+ }
153
+
154
+ interface Url4 {
155
+ display_url: string;
156
+ expanded_url: string;
157
+ url: string;
158
+ indices: number[];
159
+ }
160
+
161
+ interface Professional {
162
+ rest_id: string;
163
+ professional_type: string;
164
+ category: Category[];
165
+ }
166
+
167
+ interface Category {
168
+ id: number;
169
+ name: string;
170
+ icon_name: string;
171
+ }
172
+
173
+ interface ClientEventInfo {
174
+ component: string;
175
+ element: string;
176
+ }