rettiwt-api 1.0.6 → 1.0.7

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 (177) hide show
  1. package/dist/{queries → graphql/queries}/RootQuery.d.ts +0 -0
  2. package/dist/{queries → graphql/queries}/RootQuery.js +4 -3
  3. package/dist/graphql/queries/RootQuery.js.map +1 -0
  4. package/dist/{resolvers → graphql/resolvers}/AccountResolver.d.ts +1 -1
  5. package/dist/{resolvers → graphql/resolvers}/AccountResolver.js +0 -0
  6. package/dist/graphql/resolvers/AccountResolver.js.map +1 -0
  7. package/dist/{resolvers → graphql/resolvers}/ResolverBase.d.ts +1 -1
  8. package/dist/{resolvers → graphql/resolvers}/ResolverBase.js +0 -0
  9. package/dist/graphql/resolvers/ResolverBase.js.map +1 -0
  10. package/dist/{resolvers → graphql/resolvers}/TweetResolver.d.ts +10 -9
  11. package/dist/{resolvers → graphql/resolvers}/TweetResolver.js +51 -35
  12. package/dist/graphql/resolvers/TweetResolver.js.map +1 -0
  13. package/dist/{resolvers → graphql/resolvers}/UserResolver.d.ts +5 -4
  14. package/dist/{resolvers → graphql/resolvers}/UserResolver.js +51 -35
  15. package/dist/graphql/resolvers/UserResolver.js.map +1 -0
  16. package/dist/{models/graphql → graphql/types}/Global.d.ts +0 -0
  17. package/dist/{models/graphql → graphql/types}/Global.js +0 -0
  18. package/dist/graphql/types/Global.js.map +1 -0
  19. package/dist/graphql/types/TweetTypes.d.ts +4 -0
  20. package/dist/{models/graphql → graphql/types}/TweetTypes.js +5 -7
  21. package/dist/graphql/types/TweetTypes.js.map +1 -0
  22. package/dist/graphql/types/UserTypes.d.ts +3 -0
  23. package/dist/{models/graphql → graphql/types}/UserTypes.js +9 -11
  24. package/dist/graphql/types/UserTypes.js.map +1 -0
  25. package/dist/index.d.ts +2 -2
  26. package/dist/index.js +2 -2
  27. package/dist/index.js.map +1 -1
  28. package/dist/server.js +3 -3
  29. package/dist/server.js.map +1 -1
  30. package/dist/services/AuthService.js +2 -2
  31. package/dist/services/AuthService.js.map +1 -1
  32. package/dist/services/CacheService.d.ts +3 -3
  33. package/dist/services/CacheService.js +22 -75
  34. package/dist/services/CacheService.js.map +1 -1
  35. package/dist/services/FetcherService.d.ts +3 -2
  36. package/dist/services/FetcherService.js +11 -29
  37. package/dist/services/FetcherService.js.map +1 -1
  38. package/dist/services/data/TweetService.d.ts +6 -6
  39. package/dist/services/data/TweetService.js +44 -27
  40. package/dist/services/data/TweetService.js.map +1 -1
  41. package/dist/services/data/UserAccountService.d.ts +3 -3
  42. package/dist/services/data/UserAccountService.js +22 -8
  43. package/dist/services/data/UserAccountService.js.map +1 -1
  44. package/dist/services/data/UserService.d.ts +42 -0
  45. package/dist/services/data/UserService.js +255 -0
  46. package/dist/services/data/UserService.js.map +1 -0
  47. package/dist/services/helper/Extractors.js +1 -1
  48. package/dist/services/helper/Extractors.js.map +1 -1
  49. package/dist/services/helper/Parser.d.ts +1 -1
  50. package/dist/services/helper/Parser.js +4 -3
  51. package/dist/services/helper/Parser.js.map +1 -1
  52. package/dist/services/helper/Urls.d.ts +2 -2
  53. package/dist/services/helper/Urls.js +19 -3
  54. package/dist/services/helper/Urls.js.map +1 -1
  55. package/dist/services/helper/deserializers/Tweets.d.ts +12 -0
  56. package/dist/services/helper/deserializers/Tweets.js +92 -0
  57. package/dist/services/helper/deserializers/Tweets.js.map +1 -0
  58. package/dist/services/{accounting/Flows.d.ts → helper/deserializers/User.d.ts} +0 -0
  59. package/dist/services/helper/deserializers/User.js +2 -0
  60. package/dist/services/helper/deserializers/User.js.map +1 -0
  61. package/dist/services/helper/deserializers/Users.d.ts +7 -0
  62. package/dist/services/helper/deserializers/Users.js +27 -0
  63. package/dist/services/helper/deserializers/Users.js.map +1 -0
  64. package/dist/services/helper/extractors/TweetExtractors.d.ts +0 -0
  65. package/dist/services/helper/extractors/TweetExtractors.js +2 -0
  66. package/dist/services/helper/extractors/TweetExtractors.js.map +1 -0
  67. package/dist/services/helper/extractors/Tweets.d.ts +32 -0
  68. package/dist/services/helper/extractors/Tweets.js +264 -0
  69. package/dist/services/helper/extractors/Tweets.js.map +1 -0
  70. package/dist/services/helper/extractors/UserExtractors.d.ts +45 -0
  71. package/dist/services/helper/extractors/UserExtractors.js +176 -0
  72. package/dist/services/helper/extractors/UserExtractors.js.map +1 -0
  73. package/dist/services/helper/extractors/Users.d.ts +20 -0
  74. package/dist/services/helper/extractors/Users.js +151 -0
  75. package/dist/services/helper/extractors/Users.js.map +1 -0
  76. package/dist/services/helper/urls/Authentication.d.ts +4 -0
  77. package/dist/services/helper/urls/Authentication.js +11 -0
  78. package/dist/services/helper/urls/Authentication.js.map +1 -0
  79. package/dist/services/helper/urls/Tweets.d.ts +32 -0
  80. package/dist/services/helper/urls/Tweets.js +51 -0
  81. package/dist/services/helper/urls/Tweets.js.map +1 -0
  82. package/dist/services/helper/urls/Urls.d.ts +4 -0
  83. package/dist/services/helper/urls/Urls.js +11 -0
  84. package/dist/services/helper/urls/Urls.js.map +1 -0
  85. package/dist/services/helper/urls/Users.d.ts +31 -0
  86. package/dist/services/helper/urls/Users.js +66 -0
  87. package/dist/services/helper/urls/Users.js.map +1 -0
  88. package/dist/types/{graphql/Errors.d.ts → Errors.d.ts} +0 -0
  89. package/dist/types/{graphql/Errors.js → Errors.js} +0 -0
  90. package/dist/types/Errors.js.map +1 -0
  91. package/dist/types/Resolvers.d.ts +9 -0
  92. package/dist/types/Resolvers.js +3 -0
  93. package/dist/types/Resolvers.js.map +1 -0
  94. package/dist/types/Tweet.d.ts +1 -0
  95. package/dist/types/Tweet.js.map +1 -1
  96. package/dist/types/User.d.ts +19 -0
  97. package/dist/types/User.js +4 -0
  98. package/dist/types/User.js.map +1 -0
  99. package/dist/types/data/Errors.d.ts +26 -0
  100. package/dist/types/data/Errors.js +36 -0
  101. package/dist/types/data/Errors.js.map +1 -0
  102. package/dist/types/data/Service.d.ts +29 -0
  103. package/dist/types/data/Service.js +19 -0
  104. package/dist/types/data/Service.js.map +1 -0
  105. package/dist/types/data/Tweet.d.ts +41 -0
  106. package/dist/types/data/Tweet.js +5 -0
  107. package/dist/types/data/Tweet.js.map +1 -0
  108. package/dist/types/data/User.d.ts +19 -0
  109. package/dist/types/data/User.js +4 -0
  110. package/dist/types/data/User.js.map +1 -0
  111. package/dist/types/raw/http/Error.d.ts +34 -0
  112. package/dist/types/raw/{user/Users.js → http/Error.js} +1 -1
  113. package/dist/types/raw/http/Error.js.map +1 -0
  114. package/dist/types/raw/http/Response.d.ts +34 -0
  115. package/dist/types/raw/http/Response.js +3 -0
  116. package/dist/types/raw/http/Response.js.map +1 -0
  117. package/package.json +1 -1
  118. package/src/{queries → graphql/queries}/RootQuery.ts +5 -4
  119. package/src/{resolvers → graphql/resolvers}/AccountResolver.ts +21 -21
  120. package/src/{resolvers → graphql/resolvers}/ResolverBase.ts +1 -1
  121. package/src/{resolvers → graphql/resolvers}/TweetResolver.ts +43 -30
  122. package/src/{resolvers → graphql/resolvers}/UserResolver.ts +41 -27
  123. package/src/{models/graphql → graphql/types}/Global.ts +0 -0
  124. package/src/{models/graphql → graphql/types}/TweetTypes.ts +9 -11
  125. package/src/{models/graphql → graphql/types}/UserTypes.ts +13 -15
  126. package/src/index.ts +2 -2
  127. package/src/server.ts +3 -3
  128. package/src/services/AuthService.ts +1 -1
  129. package/src/services/CacheService.ts +6 -8
  130. package/src/services/FetcherService.ts +11 -14
  131. package/src/services/data/TweetService.ts +53 -37
  132. package/src/services/data/UserService.ts +187 -0
  133. package/src/services/helper/Parser.ts +6 -4
  134. package/src/services/helper/{Deserializers.ts → deserializers/Tweets.ts} +3 -28
  135. package/src/services/helper/deserializers/Users.ts +26 -0
  136. package/src/services/helper/extractors/Tweets.ts +252 -0
  137. package/src/services/helper/extractors/Users.ts +137 -0
  138. package/src/services/helper/urls/Authentication.ts +6 -0
  139. package/src/services/helper/urls/Tweets.ts +46 -0
  140. package/src/services/helper/urls/Users.ts +62 -0
  141. package/src/types/Resolvers.ts +9 -0
  142. package/src/types/data/Errors.ts +28 -0
  143. package/src/types/{Service.ts → data/Service.ts} +4 -5
  144. package/src/types/{Tweet.ts → data/Tweet.ts} +1 -0
  145. package/src/types/{UserAccount.ts → data/User.ts} +0 -0
  146. package/tsconfig.json +2 -2
  147. package/dist/models/graphql/Global.js.map +0 -1
  148. package/dist/models/graphql/TweetTypes.d.ts +0 -6
  149. package/dist/models/graphql/TweetTypes.js.map +0 -1
  150. package/dist/models/graphql/UserTypes.d.ts +0 -3
  151. package/dist/models/graphql/UserTypes.js.map +0 -1
  152. package/dist/queries/RootQuery.js.map +0 -1
  153. package/dist/resolvers/AccountResolver.js.map +0 -1
  154. package/dist/resolvers/ResolverBase.js.map +0 -1
  155. package/dist/resolvers/TweetResolver.js.map +0 -1
  156. package/dist/resolvers/UserResolver.js.map +0 -1
  157. package/dist/services/AccountsService.d.ts +0 -17
  158. package/dist/services/AccountsService.js +0 -171
  159. package/dist/services/AccountsService.js.map +0 -1
  160. package/dist/services/accounting/AccountsService.d.ts +0 -20
  161. package/dist/services/accounting/AccountsService.js +0 -147
  162. package/dist/services/accounting/AccountsService.js.map +0 -1
  163. package/dist/services/accounting/Flows.js +0 -2
  164. package/dist/services/accounting/Flows.js.map +0 -1
  165. package/dist/services/accounting/LoginFlows.d.ts +0 -20
  166. package/dist/services/accounting/LoginFlows.js +0 -70
  167. package/dist/services/accounting/LoginFlows.js.map +0 -1
  168. package/dist/test/Test.js +0 -2
  169. package/dist/test/Test.js.map +0 -1
  170. package/dist/types/graphql/Errors.js.map +0 -1
  171. package/dist/types/raw/user/Users.d.ts +0 -120
  172. package/dist/types/raw/user/Users.js.map +0 -1
  173. package/src/services/data/UserAccountService.ts +0 -176
  174. package/src/services/helper/Extractors.ts +0 -455
  175. package/src/services/helper/Urls.ts +0 -109
  176. package/src/types/graphql/Errors.ts +0 -16
  177. package/src/types/raw/user/Tweets.ts +0 -2847
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ exports.__esModule = true;
26
+ exports.extractTweetReplies = exports.extractTweetRetweeters = exports.extractTweetLikers = exports.extractTweet = exports.extractTweets = void 0;
27
+ var Errors_1 = require("../../../types/data/Errors");
28
+ // PARSERS
29
+ var Parsers = __importStar(require("../Parser"));
30
+ /**
31
+ * @returns The raw tweets data formatted and sorted into required and additional data
32
+ * @param res The raw response received from TwitterAPI
33
+ */
34
+ function extractTweets(res) {
35
+ var _a, _b, _c, _d, _e, _f;
36
+ var required = []; // To store the reqruied raw data
37
+ var cursor = ''; // To store the cursor to next batch
38
+ var users = []; // To store additional user data
39
+ var tweets = []; // To store additional tweet data
40
+ // Getting raw tweet list
41
+ var dataTweets = res.globalObjects.tweets;
42
+ // Getting raw users list
43
+ var dataUsers = res.globalObjects.users;
44
+ // If tweets found
45
+ if (!Parsers.isJSONEmpty(dataTweets)) {
46
+ // Destructuring the list of tweets
47
+ for (var _i = 0, _g = Object.keys(dataTweets); _i < _g.length; _i++) {
48
+ var key = _g[_i];
49
+ required.push({ rest_id: dataTweets[key].id_str, legacy: dataTweets[key] });
50
+ tweets.push({ rest_id: dataTweets[key].id_str, legacy: dataTweets[key] });
51
+ }
52
+ // Destructuring the list of users
53
+ for (var _h = 0, _j = Object.keys(dataUsers); _h < _j.length; _h++) {
54
+ var key = _j[_h];
55
+ users.push({ rest_id: dataUsers[key].id_str, legacy: dataUsers[key] });
56
+ }
57
+ // Getting the cursor to next batch
58
+ // If not first batch
59
+ if (res.timeline.instructions.length > 2) {
60
+ cursor = (_c = (_b = (_a = res.timeline.instructions[2]) === null || _a === void 0 ? void 0 : _a.replaceEntry.entry.content.operation) === null || _b === void 0 ? void 0 : _b.cursor.value) !== null && _c !== void 0 ? _c : '';
61
+ }
62
+ // If first batch
63
+ else {
64
+ cursor = (_f = (_e = (_d = res.timeline.instructions[0].addEntries) === null || _d === void 0 ? void 0 : _d.entries.filter(function (item) { return item.entryId.indexOf('cursor-bottom') != -1; })[0].content.operation) === null || _e === void 0 ? void 0 : _e.cursor.value) !== null && _f !== void 0 ? _f : '';
65
+ }
66
+ }
67
+ // Returning the data
68
+ return {
69
+ required: required,
70
+ cursor: cursor,
71
+ users: users,
72
+ tweets: tweets
73
+ };
74
+ }
75
+ exports.extractTweets = extractTweets;
76
+ /**
77
+ * @returns The raw tweet data formatted and sorted into required and additional data
78
+ * @param res The raw response received from TwitterAPI
79
+ * @param tweetId The rest id of the tweet to fetch
80
+ */
81
+ function extractTweet(res, tweetId) {
82
+ var _a;
83
+ var required = []; // To store the reqruied raw data
84
+ var cursor = ''; // To store the cursor to next batch
85
+ var users = []; // To store additional user data
86
+ var tweets = []; // To store additional tweet data
87
+ // If tweet does not exist
88
+ if (Parsers.isJSONEmpty(res.data)) {
89
+ throw new Error(Errors_1.DataErrors.TweetNotFound);
90
+ }
91
+ // Destructuring the received raw data
92
+ (_a = res.data.threaded_conversation_with_injections_v2.instructions.filter(function (item) { return item['type'] === 'TimelineAddEntries'; })[0].entries) === null || _a === void 0 ? void 0 : _a.forEach(function (entry) {
93
+ var _a, _b, _c;
94
+ // If entry is of type tweet and tweet exists
95
+ if (entry.entryId.indexOf('tweet') != -1 && ((_b = (_a = entry.content.itemContent) === null || _a === void 0 ? void 0 : _a.tweet_results) === null || _b === void 0 ? void 0 : _b.result.__typename) === 'Tweet') {
96
+ // If this is the required tweet
97
+ if (entry.entryId.indexOf(tweetId) != -1) {
98
+ required.push(entry.content.itemContent.tweet_results.result);
99
+ }
100
+ tweets.push(entry.content.itemContent.tweet_results.result);
101
+ users.push(entry.content.itemContent.tweet_results.result.core.user_results.result);
102
+ }
103
+ // If entry if of type conversation
104
+ else if (entry.entryId.indexOf('conversationthread') != -1) {
105
+ // Iterating over the conversation
106
+ (_c = entry.content.items) === null || _c === void 0 ? void 0 : _c.forEach(function (item) {
107
+ var _a;
108
+ // If item is of type tweet and tweet exists
109
+ if (item.entryId.indexOf('tweet') != -1 && ((_a = item.item.itemContent.tweet_results) === null || _a === void 0 ? void 0 : _a.result.__typename) === 'Tweet') {
110
+ required.push(item.item.itemContent.tweet_results.result);
111
+ tweets.push(item.item.itemContent.tweet_results.result);
112
+ users.push(item.item.itemContent.tweet_results.result.core.user_results.result);
113
+ }
114
+ });
115
+ }
116
+ });
117
+ // Returning the data
118
+ return {
119
+ required: required,
120
+ cursor: cursor,
121
+ users: users,
122
+ tweets: tweets
123
+ };
124
+ }
125
+ exports.extractTweet = extractTweet;
126
+ /**
127
+ * @returns The raw tweet likers data formatted and sorted into required and additional data
128
+ * @param res The raw response received from TwitterAPI
129
+ */
130
+ function extractTweetLikers(res) {
131
+ var required = []; // To store the reqruied raw data
132
+ var cursor = ''; // To store the cursor to next batch
133
+ var users = []; // To store additional user data
134
+ var tweets = []; // To store additional tweet data
135
+ // If tweet does not exist
136
+ if (Parsers.isJSONEmpty(res.data.favoriters_timeline)) {
137
+ throw new Error(Errors_1.DataErrors.TweetNotFound);
138
+ }
139
+ // If likes found
140
+ if (res.data.favoriters_timeline.timeline.instructions.length) {
141
+ // Destructuring raw list of likers
142
+ res.data.favoriters_timeline.timeline.instructions.filter(function (item) { return item.type === 'TimelineAddEntries'; })[0].entries.forEach(function (entry) {
143
+ var _a, _b;
144
+ // If entry is of type user and user exists
145
+ if (entry.entryId.indexOf('user') != -1 && ((_a = entry.content.itemContent) === null || _a === void 0 ? void 0 : _a.user_results.result.__typename) === 'User') {
146
+ required.push(entry.content.itemContent.user_results.result);
147
+ users.push(entry.content.itemContent.user_results.result);
148
+ }
149
+ // If entry is of type cursor
150
+ else if (entry.entryId.indexOf('cursor-bottom') != -1) {
151
+ cursor = (_b = entry.content.value) !== null && _b !== void 0 ? _b : '';
152
+ }
153
+ });
154
+ }
155
+ // Returning the data
156
+ return {
157
+ required: required,
158
+ cursor: cursor,
159
+ users: users,
160
+ tweets: tweets
161
+ };
162
+ }
163
+ exports.extractTweetLikers = extractTweetLikers;
164
+ /**
165
+ * @returns The raw tweet retweeters data formatted and sorted into required and additional data
166
+ * @param res The raw response received from TwitterAPI
167
+ */
168
+ function extractTweetRetweeters(res) {
169
+ var required = []; // To store the reqruied raw data
170
+ var cursor = ''; // To store the cursor to next batch
171
+ var users = []; // To store additional user data
172
+ var tweets = []; // To store additional tweet data
173
+ // If tweet does not exist
174
+ if (Parsers.isJSONEmpty(res.data.retweeters_timeline)) {
175
+ throw new Error(Errors_1.DataErrors.TweetNotFound);
176
+ }
177
+ // If retweeters found
178
+ if (res.data.retweeters_timeline.timeline.instructions.length) {
179
+ // Destructuring raw list of retweeters
180
+ res.data.retweeters_timeline.timeline.instructions.filter(function (item) { return item.type === 'TimelineAddEntries'; })[0].entries.forEach(function (entry) {
181
+ var _a, _b;
182
+ // If entry is of type user and user exists
183
+ if (entry.entryId.indexOf('user') != -1 && ((_a = entry.content.itemContent) === null || _a === void 0 ? void 0 : _a.user_results.result.__typename) === 'User') {
184
+ required.push(entry.content.itemContent.user_results.result);
185
+ users.push(entry.content.itemContent.user_results.result);
186
+ }
187
+ // If entry is of type cursor
188
+ else if (entry.entryId.indexOf('cursor-bottom') != -1) {
189
+ cursor = (_b = entry.content.value) !== null && _b !== void 0 ? _b : '';
190
+ }
191
+ });
192
+ }
193
+ // Returning the data
194
+ return {
195
+ required: required,
196
+ cursor: cursor,
197
+ users: users,
198
+ tweets: tweets
199
+ };
200
+ }
201
+ exports.extractTweetRetweeters = extractTweetRetweeters;
202
+ /**
203
+ * @returns The raw tweet replies data formatted and sorted into required and additional data
204
+ * @param res The raw response received from TwitterAPI
205
+ * @param tweetId The id of the tweet whose replies must be extracted
206
+ */
207
+ function extractTweetReplies(res, tweetId) {
208
+ var _a;
209
+ var required = []; // To store the reqruied raw data
210
+ var cursor = ''; // To store the cursor to next batch
211
+ var users = []; // To store additional user data
212
+ var tweets = []; // To store additional tweet data
213
+ // If tweet does not exist
214
+ if (Parsers.isJSONEmpty(res.data)) {
215
+ throw new Error(Errors_1.DataErrors.TweetNotFound);
216
+ }
217
+ // Destructuring the received raw data
218
+ (_a = res.data.threaded_conversation_with_injections_v2.instructions.filter(function (item) { return item.type === 'TimelineAddEntries'; })[0].entries) === null || _a === void 0 ? void 0 : _a.map(function (entry) {
219
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
220
+ // If entry is of type tweet
221
+ if (entry.entryId.indexOf('tweet') != -1) {
222
+ // If tweet exists
223
+ if (((_b = (_a = entry.content.itemContent) === null || _a === void 0 ? void 0 : _a.tweet_results) === null || _b === void 0 ? void 0 : _b.result.__typename) === 'Tweet') {
224
+ tweets.push(entry.content.itemContent.tweet_results.result);
225
+ users.push(entry.content.itemContent.tweet_results.result.core.user_results.result);
226
+ }
227
+ }
228
+ // If entry if of type conversation/reply
229
+ else if (entry.entryId.indexOf('conversationthread') != -1) {
230
+ // If tweet exists
231
+ if (((_e = (_d = (_c = entry.content.items) === null || _c === void 0 ? void 0 : _c.at(0)) === null || _d === void 0 ? void 0 : _d.item.itemContent.tweet_results) === null || _e === void 0 ? void 0 : _e.result.__typename) === 'Tweet') {
232
+ // Adding the 1st entry, which is a reply, to required list
233
+ required.push((_f = entry.content.items[0].item.itemContent.tweet_results) === null || _f === void 0 ? void 0 : _f.result);
234
+ tweets.push((_g = entry.content.items[0].item.itemContent.tweet_results) === null || _g === void 0 ? void 0 : _g.result);
235
+ users.push((_h = entry.content.items[0].item.itemContent.tweet_results) === null || _h === void 0 ? void 0 : _h.result.core.user_results.result);
236
+ }
237
+ // Iterating over the rest of the conversation
238
+ (_j = entry.content.items) === null || _j === void 0 ? void 0 : _j.forEach(function (item) {
239
+ var _a;
240
+ // If item is of type tweet
241
+ if (item.entryId.indexOf('tweet') != -1) {
242
+ // If tweet exists
243
+ if (((_a = item.item.itemContent.tweet_results) === null || _a === void 0 ? void 0 : _a.result.__typename) === 'Tweet') {
244
+ tweets.push(item.item.itemContent.tweet_results.result);
245
+ users.push(item.item.itemContent.tweet_results.result.core.user_results.result);
246
+ }
247
+ }
248
+ });
249
+ }
250
+ // If entry is of type bottom cursor
251
+ else if (entry.entryId.indexOf('cursor-bottom') != -1) {
252
+ cursor = (_l = (_k = entry.content.itemContent) === null || _k === void 0 ? void 0 : _k.value) !== null && _l !== void 0 ? _l : '';
253
+ }
254
+ });
255
+ // Returning the data
256
+ return {
257
+ required: required,
258
+ cursor: cursor,
259
+ users: users,
260
+ tweets: tweets
261
+ };
262
+ }
263
+ exports.extractTweetReplies = extractTweetReplies;
264
+ //# sourceMappingURL=Tweets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tweets.js","sourceRoot":"","sources":["../../../../src/services/helper/extractors/Tweets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import RawUser from '../../../types/raw/user/User';
2
+ import RawUserFollowers from '../../../types/raw/user/Followers';
3
+ import RawUserFollowing from '../../../types/raw/user/Following';
4
+ import RawUserLikes from '../../../types/raw/user/Likes';
5
+ import RawUserTweets from '../../../types/raw/user/Tweets';
6
+ /**
7
+ * @returns The raw user account data formatted and sorted into required and additional data
8
+ * @param res The raw response received from Twitter
9
+ */
10
+ export declare function extractUserAccountDetails(res: RawUser): {
11
+ required: any[];
12
+ cursor: string;
13
+ users: any[];
14
+ tweets: any[];
15
+ };
16
+ /**
17
+ * @returns The raw user following/followers data formatted and sorted into required and additional data
18
+ * @param res The raw response received from TwitterAPI
19
+ */
20
+ export declare function extractUserFollow(res: RawUserFollowers | RawUserFollowing): {
21
+ required: any[];
22
+ cursor: string;
23
+ users: any[];
24
+ tweets: any[];
25
+ };
26
+ /**
27
+ * @returns The raw user likes data formatted and sorted into required and additional data
28
+ * @param res The raw response received from TwitterAPI
29
+ */
30
+ export declare function extractUserLikes(res: RawUserLikes): {
31
+ required: any[];
32
+ cursor: string;
33
+ users: any[];
34
+ tweets: any[];
35
+ };
36
+ /**
37
+ * @returns The raw tweets data formatted and sorted into required and additional data
38
+ * @param res The raw response received from TwitterAPI
39
+ */
40
+ export declare function extractUserTweets(res: RawUserTweets): {
41
+ required: any[];
42
+ cursor: string;
43
+ users: any[];
44
+ tweets: any[];
45
+ };
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ exports.__esModule = true;
26
+ exports.extractUserTweets = exports.extractUserLikes = exports.extractUserFollow = exports.extractUserAccountDetails = void 0;
27
+ // TYPES
28
+ var Errors_1 = require("../../../types/Errors");
29
+ // PARSERS
30
+ var Parsers = __importStar(require("../Parser"));
31
+ /* USERS */
32
+ /**
33
+ * @returns The raw user account data formatted and sorted into required and additional data
34
+ * @param res The raw response received from Twitter
35
+ */
36
+ function extractUserAccountDetails(res) {
37
+ var required = []; // To store the reqruied raw data
38
+ var cursor = ''; // To store the cursor to next batch
39
+ var users = []; // To store additional user data
40
+ var tweets = []; // To store additional tweet data
41
+ // If user not found or account suspended
42
+ if (Parsers.isJSONEmpty(res.data) || Parsers.isJSONEmpty(res.data.user) || res.data.user.result.__typename !== 'User') {
43
+ throw new Error(Errors_1.DataErrors.UserNotFound);
44
+ }
45
+ // Destructuring user account data
46
+ required.push(res.data.user.result);
47
+ users.push(res.data.user.result);
48
+ // Returning the data
49
+ return {
50
+ required: required,
51
+ cursor: cursor,
52
+ users: users,
53
+ tweets: tweets
54
+ };
55
+ }
56
+ exports.extractUserAccountDetails = extractUserAccountDetails;
57
+ /**
58
+ * @returns The raw user following/followers data formatted and sorted into required and additional data
59
+ * @param res The raw response received from TwitterAPI
60
+ */
61
+ function extractUserFollow(res) {
62
+ var required = []; // To store the reqruied raw data
63
+ var cursor = ''; // To store the cursor to next batch
64
+ var users = []; // To store additional user data
65
+ var tweets = []; // To store additional tweet data
66
+ // If user does not exist
67
+ if (Parsers.isJSONEmpty(res.data.user)) {
68
+ throw new Error(Errors_1.DataErrors.UserNotFound);
69
+ }
70
+ // Extracting the raw list
71
+ res.data.user.result.timeline.timeline.instructions.forEach(function (item) {
72
+ var _a;
73
+ if (item.type === 'TimelineAddEntries') {
74
+ // Destructuring data
75
+ (_a = item.entries) === null || _a === void 0 ? void 0 : _a.forEach(function (entry) {
76
+ var _a, _b;
77
+ // If entry is of type user and user account exists
78
+ if (entry.entryId.indexOf('user') != -1 && ((_a = entry.content.itemContent) === null || _a === void 0 ? void 0 : _a.user_results.result.__typename) === 'User') {
79
+ required.push(entry.content.itemContent.user_results.result);
80
+ users.push(entry.content.itemContent.user_results.result);
81
+ }
82
+ // If entry is of type cursor
83
+ else if (entry.entryId.indexOf('cursor-bottom') != -1) {
84
+ cursor = (_b = entry.content.value) !== null && _b !== void 0 ? _b : '';
85
+ }
86
+ });
87
+ }
88
+ });
89
+ // Returning the data
90
+ return {
91
+ required: required,
92
+ cursor: cursor,
93
+ users: users,
94
+ tweets: tweets
95
+ };
96
+ }
97
+ exports.extractUserFollow = extractUserFollow;
98
+ /**
99
+ * @returns The raw user likes data formatted and sorted into required and additional data
100
+ * @param res The raw response received from TwitterAPI
101
+ */
102
+ function extractUserLikes(res) {
103
+ var required = []; // To store the reqruied raw data
104
+ var cursor = ''; // To store the cursor to next batch
105
+ var users = []; // To store additional user data
106
+ var tweets = []; // To store additional tweet data
107
+ // If user does not exist
108
+ if (Parsers.isJSONEmpty(res.data.user)) {
109
+ throw new Error(Errors_1.DataErrors.UserNotFound);
110
+ }
111
+ // Extracting the raw list
112
+ res.data.user.result.timeline_v2.timeline.instructions.forEach(function (item) {
113
+ if (item.type === 'TimelineAddEntries') {
114
+ // Destructuring data
115
+ item.entries.forEach(function (entry) {
116
+ var _a, _b;
117
+ // If entry is of type tweet and tweet exists
118
+ if (entry.entryId.indexOf('tweet') != -1 && ((_a = entry.content.itemContent) === null || _a === void 0 ? void 0 : _a.tweet_results.result.__typename) === 'Tweet') {
119
+ required.push(entry.content.itemContent.tweet_results.result);
120
+ users.push(entry.content.itemContent.tweet_results.result.core.user_results.result);
121
+ tweets.push(entry.content.itemContent.tweet_results.result);
122
+ }
123
+ // If entry is of type cursor
124
+ else if (entry.entryId.indexOf('cursor-bottom') != -1) {
125
+ cursor = (_b = entry.content.value) !== null && _b !== void 0 ? _b : '';
126
+ }
127
+ });
128
+ }
129
+ });
130
+ // Returning the data
131
+ return {
132
+ required: required,
133
+ cursor: cursor,
134
+ users: users,
135
+ tweets: tweets
136
+ };
137
+ }
138
+ exports.extractUserLikes = extractUserLikes;
139
+ /**
140
+ * @returns The raw tweets data formatted and sorted into required and additional data
141
+ * @param res The raw response received from TwitterAPI
142
+ */
143
+ function extractUserTweets(res) {
144
+ var _a, _b, _c;
145
+ var required = []; // To store the reqruied raw data
146
+ var cursor = ''; // To store the cursor to next batch
147
+ var users = []; // To store additional user data
148
+ var tweets = []; // To store additional tweet data
149
+ // Getting the raw tweet list
150
+ var dataTweets = res.data.user.result.timeline_v2.timeline.instructions.filter(function (item) { return item.type === 'TimelineAddEntries'; })[0].entries;
151
+ // Destructuring tweets, if not empty
152
+ if (!Parsers.isJSONEmpty(dataTweets)) {
153
+ // Iterating through the json array of tweets
154
+ for (var _i = 0, dataTweets_1 = dataTweets; _i < dataTweets_1.length; _i++) {
155
+ var entry = dataTweets_1[_i];
156
+ // If the entry is a tweet
157
+ if (entry.entryId.indexOf('tweet') != -1) {
158
+ required.push((_a = entry.content.itemContent) === null || _a === void 0 ? void 0 : _a.tweet_results.result);
159
+ tweets.push((_b = entry.content.itemContent) === null || _b === void 0 ? void 0 : _b.tweet_results.result);
160
+ users.push((_c = entry.content.itemContent) === null || _c === void 0 ? void 0 : _c.tweet_results.result.core.user_results.result);
161
+ }
162
+ // If the entry is a cursor
163
+ else if (entry.entryId.indexOf('cursor-bottom') != -1) {
164
+ cursor = entry.content.value;
165
+ }
166
+ }
167
+ }
168
+ return {
169
+ required: required,
170
+ cursor: cursor,
171
+ users: users,
172
+ tweets: tweets
173
+ };
174
+ }
175
+ exports.extractUserTweets = extractUserTweets;
176
+ //# sourceMappingURL=UserExtractors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserExtractors.js","sourceRoot":"","sources":["../../../../src/services/helper/extractors/UserExtractors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { DataExtract } from '../../../types/Resolvers';
2
+ import RawUser from '../../../types/raw/user/User';
3
+ import RawUserFollowers from '../../../types/raw/user/Followers';
4
+ import RawUserFollowing from '../../../types/raw/user/Following';
5
+ import RawUserLikes from '../../../types/raw/user/Likes';
6
+ /**
7
+ * @returns The raw user account data formatted and sorted into required and additional data
8
+ * @param res The raw response received from Twitter
9
+ */
10
+ export declare function extractUserDetails(res: RawUser): DataExtract;
11
+ /**
12
+ * @returns The raw user following/followers data formatted and sorted into required and additional data
13
+ * @param res The raw response received from TwitterAPI
14
+ */
15
+ export declare function extractUserFollow(res: RawUserFollowers | RawUserFollowing): DataExtract;
16
+ /**
17
+ * @returns The raw user likes data formatted and sorted into required and additional data
18
+ * @param res The raw response received from TwitterAPI
19
+ */
20
+ export declare function extractUserLikes(res: RawUserLikes): DataExtract;