@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,215 @@
1
+ /* eslint-disable */
2
+
3
+ /**
4
+ * The raw data received when fetching the followers of the given user.
5
+ *
6
+ * @public
7
+ */
8
+ export interface IUserFollowersResponse {
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
+ itemContent?: ItemContent;
48
+ clientEventInfo?: ClientEventInfo;
49
+ value?: string;
50
+ cursorType?: string;
51
+ }
52
+
53
+ interface ItemContent {
54
+ itemType: string;
55
+ user_results: UserResults;
56
+ userDisplayType: string;
57
+ }
58
+
59
+ interface UserResults {
60
+ result: Result2;
61
+ }
62
+
63
+ interface Result2 {
64
+ __typename: string;
65
+ id: string;
66
+ rest_id: string;
67
+ affiliates_highlighted_label: AffiliatesHighlightedLabel;
68
+ has_nft_avatar: boolean;
69
+ legacy: Legacy;
70
+ super_follow_eligible: boolean;
71
+ super_followed_by: boolean;
72
+ super_following: boolean;
73
+ professional?: Professional;
74
+ }
75
+
76
+ interface AffiliatesHighlightedLabel {}
77
+
78
+ interface Legacy {
79
+ blocked_by: boolean;
80
+ blocking: boolean;
81
+ can_dm: boolean;
82
+ can_media_tag: boolean;
83
+ created_at: string;
84
+ default_profile: boolean;
85
+ default_profile_image: boolean;
86
+ description: string;
87
+ entities: Entities;
88
+ fast_followers_count: number;
89
+ favourites_count: number;
90
+ follow_request_sent: boolean;
91
+ followed_by: boolean;
92
+ followers_count: number;
93
+ following: boolean;
94
+ friends_count: number;
95
+ has_custom_timelines: boolean;
96
+ is_translator: boolean;
97
+ listed_count: number;
98
+ location: string;
99
+ media_count: number;
100
+ muting: boolean;
101
+ name: string;
102
+ normal_followers_count: number;
103
+ notifications: boolean;
104
+ pinned_tweet_ids_str: string[];
105
+ profile_banner_extensions?: ProfileBannerExtensions;
106
+ profile_banner_url?: string;
107
+ profile_image_extensions?: ProfileImageExtensions;
108
+ profile_image_url_https: string;
109
+ profile_interstitial_type: string;
110
+ protected: boolean;
111
+ screen_name: string;
112
+ statuses_count: number;
113
+ translator_type: string;
114
+ url?: string;
115
+ verified: boolean;
116
+ want_retweets: boolean;
117
+ withheld_in_countries: any[];
118
+ }
119
+
120
+ interface Entities {
121
+ description: Description;
122
+ url?: Url2;
123
+ }
124
+
125
+ interface Description {
126
+ urls: Url[];
127
+ }
128
+
129
+ interface Url {
130
+ display_url: string;
131
+ expanded_url: string;
132
+ url: string;
133
+ indices: number[];
134
+ }
135
+
136
+ interface Url2 {
137
+ urls: Url3[];
138
+ }
139
+
140
+ interface Url3 {
141
+ display_url: string;
142
+ expanded_url: string;
143
+ url: string;
144
+ indices: number[];
145
+ }
146
+
147
+ interface ProfileBannerExtensions {
148
+ mediaColor: MediaColor;
149
+ }
150
+
151
+ interface MediaColor {
152
+ r: R;
153
+ }
154
+
155
+ interface R {
156
+ ok: Ok;
157
+ }
158
+
159
+ interface Ok {
160
+ palette: Palette[];
161
+ }
162
+
163
+ interface Palette {
164
+ percentage: number;
165
+ rgb: Rgb;
166
+ }
167
+
168
+ interface Rgb {
169
+ blue: number;
170
+ green: number;
171
+ red: number;
172
+ }
173
+
174
+ interface ProfileImageExtensions {
175
+ mediaColor: MediaColor2;
176
+ }
177
+
178
+ interface MediaColor2 {
179
+ r: R2;
180
+ }
181
+
182
+ interface R2 {
183
+ ok: Ok2;
184
+ }
185
+
186
+ interface Ok2 {
187
+ palette: Palette2[];
188
+ }
189
+
190
+ interface Palette2 {
191
+ percentage: number;
192
+ rgb: Rgb2;
193
+ }
194
+
195
+ interface Rgb2 {
196
+ blue: number;
197
+ green: number;
198
+ red: number;
199
+ }
200
+
201
+ interface Professional {
202
+ rest_id: string;
203
+ professional_type: string;
204
+ category: Category[];
205
+ }
206
+
207
+ interface Category {
208
+ id: number;
209
+ name: string;
210
+ }
211
+
212
+ interface ClientEventInfo {
213
+ component: string;
214
+ element: string;
215
+ }
@@ -0,0 +1,215 @@
1
+ /* eslint-disable */
2
+
3
+ /**
4
+ * The raw data received when fetching the following of the given user.
5
+ *
6
+ * @public
7
+ */
8
+ export interface IUserFollowingResponse {
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
+ itemContent?: ItemContent;
48
+ clientEventInfo?: ClientEventInfo;
49
+ value?: string;
50
+ cursorType?: string;
51
+ }
52
+
53
+ interface ItemContent {
54
+ itemType: string;
55
+ user_results: UserResults;
56
+ userDisplayType: string;
57
+ }
58
+
59
+ interface UserResults {
60
+ result: Result2;
61
+ }
62
+
63
+ interface Result2 {
64
+ __typename: string;
65
+ id: string;
66
+ rest_id: string;
67
+ affiliates_highlighted_label: AffiliatesHighlightedLabel;
68
+ has_nft_avatar: boolean;
69
+ legacy: Legacy;
70
+ super_follow_eligible: boolean;
71
+ super_followed_by: boolean;
72
+ super_following: boolean;
73
+ professional?: Professional;
74
+ }
75
+
76
+ interface AffiliatesHighlightedLabel {}
77
+
78
+ interface Legacy {
79
+ blocked_by: boolean;
80
+ blocking: boolean;
81
+ can_dm: boolean;
82
+ can_media_tag: boolean;
83
+ created_at: string;
84
+ default_profile: boolean;
85
+ default_profile_image: boolean;
86
+ description: string;
87
+ entities: Entities;
88
+ fast_followers_count: number;
89
+ favourites_count: number;
90
+ follow_request_sent: boolean;
91
+ followed_by: boolean;
92
+ followers_count: number;
93
+ following: boolean;
94
+ friends_count: number;
95
+ has_custom_timelines: boolean;
96
+ is_translator: boolean;
97
+ listed_count: number;
98
+ location: string;
99
+ media_count: number;
100
+ muting: boolean;
101
+ name: string;
102
+ normal_followers_count: number;
103
+ notifications: boolean;
104
+ pinned_tweet_ids_str: string[];
105
+ profile_banner_extensions?: ProfileBannerExtensions;
106
+ profile_banner_url?: string;
107
+ profile_image_extensions: ProfileImageExtensions;
108
+ profile_image_url_https: string;
109
+ profile_interstitial_type: string;
110
+ protected: boolean;
111
+ screen_name: string;
112
+ statuses_count: number;
113
+ translator_type: string;
114
+ url?: string;
115
+ verified: boolean;
116
+ want_retweets: boolean;
117
+ withheld_in_countries: any[];
118
+ }
119
+
120
+ interface Entities {
121
+ description: Description;
122
+ url?: Url2;
123
+ }
124
+
125
+ interface Description {
126
+ urls: Url[];
127
+ }
128
+
129
+ interface Url {
130
+ display_url: string;
131
+ expanded_url: string;
132
+ url: string;
133
+ indices: number[];
134
+ }
135
+
136
+ interface Url2 {
137
+ urls: Url3[];
138
+ }
139
+
140
+ interface Url3 {
141
+ display_url: string;
142
+ expanded_url: string;
143
+ url: string;
144
+ indices: number[];
145
+ }
146
+
147
+ interface ProfileBannerExtensions {
148
+ mediaColor: MediaColor;
149
+ }
150
+
151
+ interface MediaColor {
152
+ r: R;
153
+ }
154
+
155
+ interface R {
156
+ ok: Ok;
157
+ }
158
+
159
+ interface Ok {
160
+ palette: Palette[];
161
+ }
162
+
163
+ interface Palette {
164
+ percentage: number;
165
+ rgb: Rgb;
166
+ }
167
+
168
+ interface Rgb {
169
+ blue: number;
170
+ green: number;
171
+ red: number;
172
+ }
173
+
174
+ interface ProfileImageExtensions {
175
+ mediaColor: MediaColor2;
176
+ }
177
+
178
+ interface MediaColor2 {
179
+ r: R2;
180
+ }
181
+
182
+ interface R2 {
183
+ ok?: Ok2;
184
+ }
185
+
186
+ interface Ok2 {
187
+ palette: Palette2[];
188
+ }
189
+
190
+ interface Palette2 {
191
+ percentage: number;
192
+ rgb: Rgb2;
193
+ }
194
+
195
+ interface Rgb2 {
196
+ blue: number;
197
+ green: number;
198
+ red: number;
199
+ }
200
+
201
+ interface Professional {
202
+ rest_id: string;
203
+ professional_type: string;
204
+ category: Category[];
205
+ }
206
+
207
+ interface Category {
208
+ id: number;
209
+ name: string;
210
+ }
211
+
212
+ interface ClientEventInfo {
213
+ component: string;
214
+ element: string;
215
+ }