rettiwt-api 1.3.1 → 2.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 (233) hide show
  1. package/.eslintignore +3 -0
  2. package/.eslintrc.js +54 -0
  3. package/.github/workflows/documentation.yml +47 -0
  4. package/.github/workflows/{publish-to-npm.yml → publish.yml} +8 -8
  5. package/.prettierignore +3 -0
  6. package/.prettierrc +13 -0
  7. package/README.md +59 -61
  8. package/dist/Rettiwt.d.ts +19 -0
  9. package/dist/Rettiwt.js +30 -0
  10. package/dist/Rettiwt.js.map +1 -0
  11. package/dist/enums/ApiErrors.d.ts +30 -0
  12. package/dist/enums/ApiErrors.js +35 -0
  13. package/dist/enums/ApiErrors.js.map +1 -0
  14. package/dist/enums/HTTP.d.ts +11 -11
  15. package/dist/enums/HTTP.js +15 -16
  16. package/dist/enums/HTTP.js.map +1 -1
  17. package/dist/helper/JsonUtils.d.ts +26 -0
  18. package/dist/helper/JsonUtils.js +88 -0
  19. package/dist/helper/JsonUtils.js.map +1 -0
  20. package/dist/index.d.ts +10 -43
  21. package/dist/index.js +16 -55
  22. package/dist/index.js.map +1 -1
  23. package/dist/models/CursoredData.d.ts +37 -0
  24. package/dist/models/CursoredData.js +59 -0
  25. package/dist/models/CursoredData.js.map +1 -0
  26. package/dist/models/{data/Tweet.d.ts → Tweet.d.ts} +4 -4
  27. package/dist/models/{data/Tweet.js → Tweet.js} +7 -32
  28. package/dist/models/Tweet.js.map +1 -0
  29. package/dist/models/{data/User.d.ts → User.d.ts} +3 -3
  30. package/dist/models/{data/User.js → User.js} +3 -3
  31. package/dist/models/User.js.map +1 -0
  32. package/dist/services/FetcherService.d.ts +66 -0
  33. package/dist/services/FetcherService.js +207 -0
  34. package/dist/services/FetcherService.js.map +1 -0
  35. package/dist/services/TweetService.d.ts +88 -0
  36. package/dist/services/TweetService.js +244 -0
  37. package/dist/services/TweetService.js.map +1 -0
  38. package/dist/services/UserService.d.ts +60 -0
  39. package/dist/services/UserService.js +188 -0
  40. package/dist/services/UserService.js.map +1 -0
  41. package/dist/types/{Service.d.ts → CursoredData.d.ts} +3 -3
  42. package/dist/types/CursoredData.js +3 -0
  43. package/dist/types/CursoredData.js.map +1 -0
  44. package/dist/types/Tweet.js +1 -1
  45. package/dist/types/User.js +1 -1
  46. package/package.json +15 -19
  47. package/src/Rettiwt.ts +33 -0
  48. package/src/enums/ApiErrors.ts +30 -0
  49. package/src/enums/HTTP.ts +12 -12
  50. package/src/helper/JsonUtils.ts +86 -0
  51. package/src/index.ts +14 -57
  52. package/src/models/CursoredData.ts +64 -0
  53. package/src/models/Tweet.ts +116 -0
  54. package/src/models/User.ts +72 -0
  55. package/src/services/FetcherService.ts +183 -0
  56. package/src/services/TweetService.ts +153 -0
  57. package/src/services/UserService.ts +117 -0
  58. package/src/types/CursoredData.ts +24 -0
  59. package/src/types/Tweet.ts +35 -35
  60. package/src/types/User.ts +30 -30
  61. package/tsconfig.json +9 -9
  62. package/.github/workflows/build-docs.yml +0 -28
  63. package/dist/config/env.d.ts +0 -5
  64. package/dist/config/env.js +0 -9
  65. package/dist/config/env.js.map +0 -1
  66. package/dist/enums/Errors.d.ts +0 -21
  67. package/dist/enums/Errors.js +0 -29
  68. package/dist/enums/Errors.js.map +0 -1
  69. package/dist/graphql/enums/Errors.d.ts +0 -21
  70. package/dist/graphql/enums/Errors.js +0 -29
  71. package/dist/graphql/enums/Errors.js.map +0 -1
  72. package/dist/graphql/queries/RootQuery.d.ts +0 -4
  73. package/dist/graphql/queries/RootQuery.js +0 -78
  74. package/dist/graphql/queries/RootQuery.js.map +0 -1
  75. package/dist/graphql/resolvers/AccountResolver.d.ts +0 -12
  76. package/dist/graphql/resolvers/AccountResolver.js +0 -84
  77. package/dist/graphql/resolvers/AccountResolver.js.map +0 -1
  78. package/dist/graphql/resolvers/ResolverBase.d.ts +0 -16
  79. package/dist/graphql/resolvers/ResolverBase.js +0 -23
  80. package/dist/graphql/resolvers/ResolverBase.js.map +0 -1
  81. package/dist/graphql/resolvers/TweetResolver.d.ts +0 -46
  82. package/dist/graphql/resolvers/TweetResolver.js +0 -312
  83. package/dist/graphql/resolvers/TweetResolver.js.map +0 -1
  84. package/dist/graphql/resolvers/UserResolver.d.ts +0 -48
  85. package/dist/graphql/resolvers/UserResolver.js +0 -334
  86. package/dist/graphql/resolvers/UserResolver.js.map +0 -1
  87. package/dist/graphql/types/Global.d.ts +0 -4
  88. package/dist/graphql/types/Global.js +0 -13
  89. package/dist/graphql/types/Global.js.map +0 -1
  90. package/dist/graphql/types/TweetTypes.d.ts +0 -4
  91. package/dist/graphql/types/TweetTypes.js +0 -160
  92. package/dist/graphql/types/TweetTypes.js.map +0 -1
  93. package/dist/graphql/types/UserTypes.d.ts +0 -3
  94. package/dist/graphql/types/UserTypes.js +0 -137
  95. package/dist/graphql/types/UserTypes.js.map +0 -1
  96. package/dist/models/args/TweetListArgs.d.ts +0 -21
  97. package/dist/models/args/TweetListArgs.js +0 -54
  98. package/dist/models/args/TweetListArgs.js.map +0 -1
  99. package/dist/models/args/UserListArgs.d.ts +0 -21
  100. package/dist/models/args/UserListArgs.js +0 -54
  101. package/dist/models/args/UserListArgs.js.map +0 -1
  102. package/dist/models/auth/AuthCookie.d.ts +0 -21
  103. package/dist/models/auth/AuthCookie.js +0 -33
  104. package/dist/models/auth/AuthCookie.js.map +0 -1
  105. package/dist/models/data/CursoredData.d.ts +0 -34
  106. package/dist/models/data/CursoredData.js +0 -42
  107. package/dist/models/data/CursoredData.js.map +0 -1
  108. package/dist/models/data/Tweet.js.map +0 -1
  109. package/dist/models/data/User.js.map +0 -1
  110. package/dist/server.d.ts +0 -1
  111. package/dist/server.js +0 -76
  112. package/dist/server.js.map +0 -1
  113. package/dist/services/auth/AccountService.d.ts +0 -83
  114. package/dist/services/auth/AccountService.js +0 -412
  115. package/dist/services/auth/AccountService.js.map +0 -1
  116. package/dist/services/auth/AuthService.d.ts +0 -31
  117. package/dist/services/auth/AuthService.js +0 -118
  118. package/dist/services/auth/AuthService.js.map +0 -1
  119. package/dist/services/data/TweetService.d.ts +0 -60
  120. package/dist/services/data/TweetService.js +0 -251
  121. package/dist/services/data/TweetService.js.map +0 -1
  122. package/dist/services/data/UserService.d.ts +0 -71
  123. package/dist/services/data/UserService.js +0 -278
  124. package/dist/services/data/UserService.js.map +0 -1
  125. package/dist/services/helper/Headers.d.ts +0 -19
  126. package/dist/services/helper/Headers.js +0 -62
  127. package/dist/services/helper/Headers.js.map +0 -1
  128. package/dist/services/helper/Parser.d.ts +0 -22
  129. package/dist/services/helper/Parser.js +0 -84
  130. package/dist/services/helper/Parser.js.map +0 -1
  131. package/dist/services/helper/extractors/Tweets.d.ts +0 -23
  132. package/dist/services/helper/extractors/Tweets.js +0 -200
  133. package/dist/services/helper/extractors/Tweets.js.map +0 -1
  134. package/dist/services/helper/extractors/Users.d.ts +0 -17
  135. package/dist/services/helper/extractors/Users.js +0 -151
  136. package/dist/services/helper/extractors/Users.js.map +0 -1
  137. package/dist/services/helper/payloads/LoginFlows.d.ts +0 -77
  138. package/dist/services/helper/payloads/LoginFlows.js +0 -92
  139. package/dist/services/helper/payloads/LoginFlows.js.map +0 -1
  140. package/dist/services/helper/urls/Authentication.d.ts +0 -4
  141. package/dist/services/helper/urls/Authentication.js +0 -11
  142. package/dist/services/helper/urls/Authentication.js.map +0 -1
  143. package/dist/services/util/CacheService.d.ts +0 -33
  144. package/dist/services/util/CacheService.js +0 -96
  145. package/dist/services/util/CacheService.js.map +0 -1
  146. package/dist/services/util/FetcherService.d.ts +0 -65
  147. package/dist/services/util/FetcherService.js +0 -202
  148. package/dist/services/util/FetcherService.js.map +0 -1
  149. package/dist/types/Args.d.ts +0 -11
  150. package/dist/types/Args.js +0 -4
  151. package/dist/types/Args.js.map +0 -1
  152. package/dist/types/Authentication.d.ts +0 -55
  153. package/dist/types/Authentication.js +0 -6
  154. package/dist/types/Authentication.js.map +0 -1
  155. package/dist/types/Resolvers.d.ts +0 -15
  156. package/dist/types/Resolvers.js +0 -3
  157. package/dist/types/Resolvers.js.map +0 -1
  158. package/dist/types/Rettiwt.d.ts +0 -16
  159. package/dist/types/Rettiwt.js +0 -3
  160. package/dist/types/Rettiwt.js.map +0 -1
  161. package/dist/types/Service.js +0 -5
  162. package/dist/types/Service.js.map +0 -1
  163. package/docs/.nojekyll +0 -1
  164. package/docs/assets/highlight.css +0 -64
  165. package/docs/assets/main.js +0 -58
  166. package/docs/assets/search.js +0 -1
  167. package/docs/assets/style.css +0 -1280
  168. package/docs/classes/AccountService.html +0 -286
  169. package/docs/classes/AuthCookie.html +0 -146
  170. package/docs/classes/AuthService.html +0 -147
  171. package/docs/classes/CacheService.html +0 -157
  172. package/docs/classes/Cursor.html +0 -102
  173. package/docs/classes/CursoredData.html +0 -126
  174. package/docs/classes/DataValidationError.html +0 -120
  175. package/docs/classes/FetcherService.html +0 -225
  176. package/docs/classes/Tweet.html +0 -210
  177. package/docs/classes/TweetEntities.html +0 -128
  178. package/docs/classes/TweetFilter.html +0 -223
  179. package/docs/classes/TweetListArgs.html +0 -118
  180. package/docs/classes/TweetService.html +0 -319
  181. package/docs/classes/User.html +0 -230
  182. package/docs/classes/UserListArgs.html +0 -118
  183. package/docs/classes/UserService.html +0 -355
  184. package/docs/enums/HttpMethods.html +0 -74
  185. package/docs/functions/Rettiwt.html +0 -100
  186. package/docs/index.html +0 -159
  187. package/docs/interfaces/IAuthCookie.html +0 -104
  188. package/docs/interfaces/ICursor.html +0 -77
  189. package/docs/interfaces/ICursoredData.html +0 -93
  190. package/docs/interfaces/IDataContext.html +0 -91
  191. package/docs/interfaces/IDataValidationError.html +0 -109
  192. package/docs/interfaces/IListArgs.html +0 -87
  193. package/docs/interfaces/ITweet.html +0 -176
  194. package/docs/interfaces/ITweetEntities.html +0 -104
  195. package/docs/interfaces/ITweetFilter.html +0 -158
  196. package/docs/interfaces/IUser.html +0 -194
  197. package/docs/modules.html +0 -111
  198. package/environment.d.ts +0 -11
  199. package/src/config/env.ts +0 -5
  200. package/src/enums/Errors.ts +0 -22
  201. package/src/graphql/enums/Errors.ts +0 -22
  202. package/src/graphql/queries/RootQuery.ts +0 -75
  203. package/src/graphql/resolvers/AccountResolver.ts +0 -22
  204. package/src/graphql/resolvers/ResolverBase.ts +0 -26
  205. package/src/graphql/resolvers/TweetResolver.ts +0 -237
  206. package/src/graphql/resolvers/UserResolver.ts +0 -257
  207. package/src/graphql/types/Global.ts +0 -10
  208. package/src/graphql/types/TweetTypes.ts +0 -158
  209. package/src/graphql/types/UserTypes.ts +0 -135
  210. package/src/models/args/TweetListArgs.ts +0 -47
  211. package/src/models/args/UserListArgs.ts +0 -47
  212. package/src/models/auth/AuthCookie.ts +0 -43
  213. package/src/models/data/CursoredData.ts +0 -45
  214. package/src/models/data/Tweet.ts +0 -118
  215. package/src/models/data/User.ts +0 -72
  216. package/src/server.ts +0 -37
  217. package/src/services/auth/AccountService.ts +0 -283
  218. package/src/services/auth/AuthService.ts +0 -81
  219. package/src/services/data/TweetService.ts +0 -198
  220. package/src/services/data/UserService.ts +0 -221
  221. package/src/services/helper/Headers.ts +0 -60
  222. package/src/services/helper/Parser.ts +0 -89
  223. package/src/services/helper/extractors/Tweets.ts +0 -190
  224. package/src/services/helper/extractors/Users.ts +0 -141
  225. package/src/services/helper/payloads/LoginFlows.ts +0 -90
  226. package/src/services/helper/urls/Authentication.ts +0 -6
  227. package/src/services/util/CacheService.ts +0 -76
  228. package/src/services/util/FetcherService.ts +0 -143
  229. package/src/types/Args.ts +0 -12
  230. package/src/types/Authentication.ts +0 -63
  231. package/src/types/Resolvers.ts +0 -18
  232. package/src/types/Rettiwt.ts +0 -20
  233. package/src/types/Service.ts +0 -24
@@ -1,62 +0,0 @@
1
- "use strict";
2
- exports.__esModule = true;
3
- exports.loginHeader = exports.guestHeader = exports.authorizedHeader = void 0;
4
- /**
5
- * @param authToken The authentication token received from Twitter
6
- * @param csrfToken The csrf token received from Twitter
7
- * @param cookie The cookie associated with the logged in account
8
- * @returns The header required for making authorized HTTP requests
9
- */
10
- function authorizedHeader(authCred) {
11
- return {
12
- 'sec-ch-ua': '"Not_A Brand";v="99", "Microsoft Edge";v="109", "Chromium";v="109"',
13
- 'x-twitter-client-language': 'en',
14
- 'x-csrf-token': authCred.csrfToken,
15
- 'sec-ch-ua-mobile': '?0',
16
- 'authorization': authCred.authToken,
17
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1518.61',
18
- 'x-twitter-auth-type': 'OAuth2Session',
19
- 'x-twitter-active-user': 'yes',
20
- 'sec-ch-ua-platform': '"Windows"',
21
- 'Accept': '*/*',
22
- 'host': 'twitter.com',
23
- 'Cookie': authCred.cookie
24
- };
25
- }
26
- exports.authorizedHeader = authorizedHeader;
27
- /**
28
- * @param guestCred The guest credentials to use
29
- * @returns The header requred for making guest HTTP requests
30
- */
31
- function guestHeader(guestCred) {
32
- return {
33
- 'Accept': '*/*',
34
- 'authorization': guestCred.authToken,
35
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1518.70',
36
- 'x-guest-token': guestCred.guestToken
37
- };
38
- }
39
- exports.guestHeader = guestHeader;
40
- /**
41
- * @param guestCred The guest credentials to use for making the login requests
42
- * @param cookie The cookie to be used
43
- * @returns The header for making HTTP request for logging in
44
- */
45
- function loginHeader(guestCred, cookie) {
46
- return [
47
- "sec-ch-ua: \"Not_A Brand\";v=\"99\", \"Microsoft Edge\";v=\"109\", \"Chromium\";v=\"109\"",
48
- "x-twitter-client-language: en",
49
- "sec-ch-ua-mobile: ?0",
50
- "authorization: ".concat(guestCred.authToken),
51
- "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1518.78",
52
- "content-type: application/json",
53
- "x-guest-token: ".concat(guestCred.guestToken),
54
- "x-twitter-active-user: yes",
55
- "sec-ch-ua-platform: \"Windows\"",
56
- "Accept: */*",
57
- "host: api.twitter.com",
58
- "Cookie: ".concat(cookie)
59
- ];
60
- }
61
- exports.loginHeader = loginHeader;
62
- //# sourceMappingURL=Headers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Headers.js","sourceRoot":"","sources":["../../../src/services/helper/Headers.ts"],"names":[],"mappings":";;;AAGA;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,QAA0B;IACvD,OAAO;QACH,WAAW,EAAE,oEAAoE;QACjF,2BAA2B,EAAE,IAAI;QACjC,cAAc,EAAE,QAAQ,CAAC,SAAS;QAClC,kBAAkB,EAAE,IAAI;QACxB,eAAe,EAAE,QAAQ,CAAC,SAAS;QACnC,YAAY,EAAE,mIAAmI;QACjJ,qBAAqB,EAAE,eAAe;QACtC,uBAAuB,EAAE,KAAK;QAC9B,oBAAoB,EAAE,WAAW;QACjC,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,aAAa;QACrB,QAAQ,EAAE,QAAQ,CAAC,MAAM;KAC5B,CAAC;AACN,CAAC;AAfD,4CAeC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,SAA4B;IACpD,OAAO;QACH,QAAQ,EAAE,KAAK;QACf,eAAe,EAAE,SAAS,CAAC,SAAS;QACpC,YAAY,EAAE,mIAAmI;QACjJ,eAAe,EAAE,SAAS,CAAC,UAAU;KACxC,CAAC;AACN,CAAC;AAPD,kCAOC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,SAA4B,EAAE,MAAc;IACpE,OAAO;QACH,2FAA+E;QAC/E,+BAA+B;QAC/B,sBAAsB;QACtB,yBAAkB,SAAS,CAAC,SAAS,CAAE;QACvC,+IAA+I;QAC/I,gCAAgC;QAChC,yBAAkB,SAAS,CAAC,UAAU,CAAE;QACxC,4BAA4B;QAC5B,iCAA+B;QAC/B,aAAa;QACb,uBAAuB;QACvB,kBAAW,MAAM,CAAE;KACtB,CAAC;AACN,CAAC;AAfD,kCAeC"}
@@ -1,22 +0,0 @@
1
- /**
2
- * @returns Whether the given json object is empty or not
3
- * @param data The input JSON object which needs to be checked
4
- */
5
- export declare function isJSONEmpty(data: any): boolean;
6
- /**
7
- * @returns The value associated with the given key inside the given json
8
- * @param data The json data within which to search for the value
9
- * @param key The key to search for
10
- * @param last Whether to begin searching from the end
11
- */
12
- export declare function findJSONKey(data: any, key: string, last?: boolean): any;
13
- /**
14
- * @returns A list of data from a singleton data
15
- * @param data The data to be converted to a list
16
- */
17
- export declare function dataToList(data: any | any[]): any[];
18
- /**
19
- * @param text The text to be normalized
20
- * @returns The text after being formatted to remove unnecessary characters
21
- */
22
- export declare function normalizeText(text: string): string;
@@ -1,84 +0,0 @@
1
- "use strict";
2
- exports.__esModule = true;
3
- exports.normalizeText = exports.dataToList = exports.findJSONKey = exports.isJSONEmpty = void 0;
4
- /**
5
- * @returns Whether the given json object is empty or not
6
- * @param data The input JSON object which needs to be checked
7
- */
8
- function isJSONEmpty(data) {
9
- // If the JSON has any keys, it's not empty
10
- if (Object.keys(data).length == 0) {
11
- return true;
12
- }
13
- // Else, it's empty
14
- else {
15
- return false;
16
- }
17
- }
18
- exports.isJSONEmpty = isJSONEmpty;
19
- /**
20
- * @returns The value associated with the given key inside the given json
21
- * @param data The json data within which to search for the value
22
- * @param key The key to search for
23
- * @param last Whether to begin searching from the end
24
- */
25
- function findJSONKey(data, key, last) {
26
- if (last === void 0) { last = false; }
27
- var jsonStr = JSON.stringify(data); // To store the input data as string
28
- var extStr = ''; // To store the extracted string
29
- var len = jsonStr.length; // To store length of input data
30
- /**
31
- * Getting the position to start extracting data from
32
- * This the position just after the key plus ":"
33
- * */
34
- var start = !last ? (jsonStr.indexOf("\"".concat(key, "\"")) + "\"".concat(key, "\":").length) : (jsonStr.lastIndexOf("\"".concat(key, "\"")) + "\"".concat(key, "\":").length);
35
- for (var i = start; i < len; i++) {
36
- // Getting each character
37
- var char = jsonStr[i];
38
- // If not ending of value
39
- if (char != ',' && char != '\n') {
40
- extStr += char;
41
- }
42
- // If ending of value
43
- else {
44
- break;
45
- }
46
- }
47
- // Removing begginning and ending quotes from string
48
- /**
49
- * I don't know how this regex I used works. I just copied it from StackOverflow
50
- * Here is the link to the thread: https://stackoverflow.com/q/19156148
51
- */
52
- extStr = extStr.replace(/^"|"$/g, '');
53
- return extStr;
54
- }
55
- exports.findJSONKey = findJSONKey;
56
- /**
57
- * @returns A list of data from a singleton data
58
- * @param data The data to be converted to a list
59
- */
60
- function dataToList(data) {
61
- // If data is already a list
62
- if (Array.isArray(data)) {
63
- return data;
64
- }
65
- // If data is not array
66
- else {
67
- return [data];
68
- }
69
- }
70
- exports.dataToList = dataToList;
71
- /**
72
- * @param text The text to be normalized
73
- * @returns The text after being formatted to remove unnecessary characters
74
- */
75
- function normalizeText(text) {
76
- var normalizedText = ''; // To store the normalized text
77
- // Removing unnecessary full stops, and other characters
78
- normalizedText = text.replace(/\n/g, '.').replace(/[.]+[\s+.\s+]+/g, '. ');
79
- // Adding full-stop to the end if does not exist already
80
- normalizedText = normalizedText.endsWith('.') ? normalizedText : (normalizedText + '.');
81
- return normalizedText;
82
- }
83
- exports.normalizeText = normalizeText;
84
- //# sourceMappingURL=Parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Parser.js","sourceRoot":"","sources":["../../../src/services/helper/Parser.ts"],"names":[],"mappings":";;;AAGA;;;GAGG;AACH,SAAgB,WAAW,CAAC,IAAS;IACjC,2CAA2C;IAC3C,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE;QAC/B,OAAO,IAAI,CAAC;KACf;IACD,mBAAmB;SACd;QACD,OAAO,KAAK,CAAC;KAChB;AACL,CAAC;AATD,kCASC;AAED;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,IAAS,EAAE,GAAW,EAAE,IAAqB;IAArB,qBAAA,EAAA,YAAqB;IACrE,IAAI,OAAO,GAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAiC,oCAAoC;IAChH,IAAI,MAAM,GAAW,EAAE,CAAC,CAAoD,gCAAgC;IAC5G,IAAI,GAAG,GAAW,OAAO,CAAC,MAAM,CAAC,CAA2C,gCAAgC;IAE5G;;;SAGK;IACL,IAAI,KAAK,GAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,YAAI,GAAG,OAAG,CAAC,GAAG,YAAI,GAAG,QAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,YAAI,GAAG,OAAG,CAAC,GAAG,YAAI,GAAG,QAAI,CAAC,MAAM,CAAC,CAAC;IAExI,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QAC9B,yBAAyB;QACzB,IAAI,IAAI,GAAW,OAAO,CAAC,CAAC,CAAC,CAAC;QAE9B,yBAAyB;QACzB,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE;YAC7B,MAAM,IAAI,IAAI,CAAC;SAClB;QACD,qBAAqB;aAChB;YACD,MAAM;SACT;KACJ;IAED,oDAAoD;IACpD;;;OAGG;IACH,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEtC,OAAO,MAAM,CAAC;AAClB,CAAC;AAjCD,kCAiCC;AAED;;;GAGG;AACH,SAAgB,UAAU,CAAC,IAAiB;IACxC,4BAA4B;IAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC;KACf;IACD,uBAAuB;SAClB;QACD,OAAO,CAAC,IAAI,CAAC,CAAC;KACjB;AACL,CAAC;AATD,gCASC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAC,IAAY;IACtC,IAAI,cAAc,GAAW,EAAE,CAAC,CAAgD,+BAA+B;IAE/G,wDAAwD;IACxD,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;IAE3E,wDAAwD;IACxD,cAAc,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC;IAExF,OAAO,cAAc,CAAC;AAC1B,CAAC;AAVD,sCAUC"}
@@ -1,23 +0,0 @@
1
- import { ITweetSearchResponse, ITweetDetailsResponse, ITweetFavoritersResponse, ITweetRetweetersResponse } from 'rettiwt-core';
2
- import { IDataExtract } from '../../../types/Resolvers';
3
- /**
4
- * @returns The raw tweets data formatted and sorted into required and additional data
5
- * @param res The raw response received from TwitterAPI
6
- */
7
- export declare function extractTweets(res: ITweetSearchResponse): IDataExtract;
8
- /**
9
- * @returns The raw tweet data formatted and sorted into required and additional data
10
- * @param res The raw response received from TwitterAPI
11
- * @param tweetId The rest id of the tweet to fetch
12
- */
13
- export declare function extractTweet(res: ITweetDetailsResponse, tweetId: string): IDataExtract;
14
- /**
15
- * @returns The raw tweet likers data formatted and sorted into required and additional data
16
- * @param res The raw response received from TwitterAPI
17
- */
18
- export declare function extractTweetLikers(res: ITweetFavoritersResponse): IDataExtract;
19
- /**
20
- * @returns The raw tweet retweeters data formatted and sorted into required and additional data
21
- * @param res The raw response received from TwitterAPI
22
- */
23
- export declare function extractTweetRetweeters(res: ITweetRetweetersResponse): IDataExtract;
@@ -1,200 +0,0 @@
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.extractTweetRetweeters = exports.extractTweetLikers = exports.extractTweet = exports.extractTweets = void 0;
27
- var Errors_1 = require("../../../enums/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;
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
- // If tweet does not exist
41
- if (Parsers.isJSONEmpty(res.data.search_by_raw_query)) {
42
- throw new Error(Errors_1.DataErrors.NoMatchingTweetsFound);
43
- }
44
- // If tweets
45
- if (res.data.search_by_raw_query.search_timeline.timeline.instructions.length) {
46
- // Destructuring raw list of tweets
47
- (_a = res.data.search_by_raw_query.search_timeline.timeline.instructions.filter(function (item) { return item.type === 'TimelineAddEntries'; })[0].entries) === null || _a === void 0 ? void 0 : _a.forEach(function (entry) {
48
- var _a, _b, _c;
49
- // If entry is of type tweet and tweet exists
50
- if (entry.entryId.includes('tweet') && ((_a = entry.content.itemContent) === null || _a === void 0 ? void 0 : _a.tweet_results.result.__typename) === 'Tweet') {
51
- required.push(entry.content.itemContent.tweet_results.result);
52
- users.push((_b = entry.content.itemContent.tweet_results.result.core) === null || _b === void 0 ? void 0 : _b.user_results.result);
53
- tweets.push(entry.content.itemContent.tweet_results.result);
54
- }
55
- // If entry is of type cursor and cursor exists
56
- else if (entry.entryId.includes('cursor-bottom')) {
57
- cursor = (_c = entry.content.value) !== null && _c !== void 0 ? _c : '';
58
- }
59
- });
60
- // If cursor not found in 'TimelineAddEntries', getting cursor from 'TimlineReplaceEntry'
61
- if (!cursor) {
62
- cursor = (_c = (_b = res.data.search_by_raw_query.search_timeline.timeline.instructions.filter(function (item) { var _a; return (_a = item.entry_id_to_replace) === null || _a === void 0 ? void 0 : _a.includes('cursor-bottom'); })[0].entry) === null || _b === void 0 ? void 0 : _b.content.value) !== null && _c !== void 0 ? _c : '';
63
- }
64
- }
65
- // Returning the data
66
- return {
67
- required: required,
68
- cursor: cursor,
69
- users: users,
70
- tweets: tweets
71
- };
72
- }
73
- exports.extractTweets = extractTweets;
74
- /**
75
- * @returns The raw tweet data formatted and sorted into required and additional data
76
- * @param res The raw response received from TwitterAPI
77
- * @param tweetId The rest id of the tweet to fetch
78
- */
79
- function extractTweet(res, tweetId) {
80
- var _a;
81
- var required = []; // To store the reqruied raw data
82
- var cursor = ''; // To store the cursor to next batch
83
- var users = []; // To store additional user data
84
- var tweets = []; // To store additional tweet data
85
- // If tweet does not exist
86
- if (Parsers.isJSONEmpty(res.data)) {
87
- throw new Error(Errors_1.DataErrors.TweetNotFound);
88
- }
89
- // Destructuring the received raw data
90
- (_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) {
91
- var _a, _b, _c;
92
- // If entry is of type tweet and tweet exists
93
- 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') {
94
- // If this is the required tweet
95
- if (entry.entryId.indexOf(tweetId) != -1) {
96
- required.push(entry.content.itemContent.tweet_results.result);
97
- }
98
- tweets.push(entry.content.itemContent.tweet_results.result);
99
- users.push(entry.content.itemContent.tweet_results.result.core.user_results.result);
100
- }
101
- // If entry if of type conversation
102
- else if (entry.entryId.indexOf('conversationthread') != -1) {
103
- // Iterating over the conversation
104
- (_c = entry.content.items) === null || _c === void 0 ? void 0 : _c.forEach(function (item) {
105
- var _a;
106
- // If item is of type tweet and tweet exists
107
- if (item.entryId.indexOf('tweet') != -1 && ((_a = item.item.itemContent.tweet_results) === null || _a === void 0 ? void 0 : _a.result.__typename) === 'Tweet') {
108
- required.push(item.item.itemContent.tweet_results.result);
109
- tweets.push(item.item.itemContent.tweet_results.result);
110
- users.push(item.item.itemContent.tweet_results.result.core.user_results.result);
111
- }
112
- });
113
- }
114
- });
115
- // Returning the data
116
- return {
117
- required: required,
118
- cursor: cursor,
119
- users: users,
120
- tweets: tweets
121
- };
122
- }
123
- exports.extractTweet = extractTweet;
124
- /**
125
- * @returns The raw tweet likers data formatted and sorted into required and additional data
126
- * @param res The raw response received from TwitterAPI
127
- */
128
- function extractTweetLikers(res) {
129
- var required = []; // To store the reqruied raw data
130
- var cursor = ''; // To store the cursor to next batch
131
- var users = []; // To store additional user data
132
- var tweets = []; // To store additional tweet data
133
- // If tweet does not exist
134
- if (Parsers.isJSONEmpty(res.data.favoriters_timeline)) {
135
- throw new Error(Errors_1.DataErrors.TweetNotFound);
136
- }
137
- // If likes found
138
- if (res.data.favoriters_timeline.timeline.instructions.length) {
139
- // Destructuring raw list of likers
140
- res.data.favoriters_timeline.timeline.instructions.filter(function (item) { return item.type === 'TimelineAddEntries'; })[0].entries.forEach(function (entry) {
141
- var _a, _b;
142
- // If entry is of type user and user exists
143
- if (entry.entryId.indexOf('user') != -1 && ((_a = entry.content.itemContent) === null || _a === void 0 ? void 0 : _a.user_results.result.__typename) === 'User') {
144
- required.push(entry.content.itemContent.user_results.result);
145
- users.push(entry.content.itemContent.user_results.result);
146
- }
147
- // If entry is of type cursor
148
- else if (entry.entryId.indexOf('cursor-bottom') != -1) {
149
- cursor = (_b = entry.content.value) !== null && _b !== void 0 ? _b : '';
150
- }
151
- });
152
- }
153
- // Returning the data
154
- return {
155
- required: required,
156
- cursor: cursor,
157
- users: users,
158
- tweets: tweets
159
- };
160
- }
161
- exports.extractTweetLikers = extractTweetLikers;
162
- /**
163
- * @returns The raw tweet retweeters data formatted and sorted into required and additional data
164
- * @param res The raw response received from TwitterAPI
165
- */
166
- function extractTweetRetweeters(res) {
167
- var required = []; // To store the reqruied raw data
168
- var cursor = ''; // To store the cursor to next batch
169
- var users = []; // To store additional user data
170
- var tweets = []; // To store additional tweet data
171
- // If tweet does not exist
172
- if (Parsers.isJSONEmpty(res.data.retweeters_timeline)) {
173
- throw new Error(Errors_1.DataErrors.TweetNotFound);
174
- }
175
- // If retweeters found
176
- if (res.data.retweeters_timeline.timeline.instructions.length) {
177
- // Destructuring raw list of retweeters
178
- res.data.retweeters_timeline.timeline.instructions.filter(function (item) { return item.type === 'TimelineAddEntries'; })[0].entries.forEach(function (entry) {
179
- var _a, _b;
180
- // If entry is of type user and user exists
181
- if (entry.entryId.indexOf('user') != -1 && ((_a = entry.content.itemContent) === null || _a === void 0 ? void 0 : _a.user_results.result.__typename) === 'User') {
182
- required.push(entry.content.itemContent.user_results.result);
183
- users.push(entry.content.itemContent.user_results.result);
184
- }
185
- // If entry is of type cursor
186
- else if (entry.entryId.indexOf('cursor-bottom') != -1) {
187
- cursor = (_b = entry.content.value) !== null && _b !== void 0 ? _b : '';
188
- }
189
- });
190
- }
191
- // Returning the data
192
- return {
193
- required: required,
194
- cursor: cursor,
195
- users: users,
196
- tweets: tweets
197
- };
198
- }
199
- exports.extractTweetRetweeters = extractTweetRetweeters;
200
- //# sourceMappingURL=Tweets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tweets.js","sourceRoot":"","sources":["../../../../src/services/helper/extractors/Tweets.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import { IUserDetailsResponse, IUserFollowersResponse, IUserFollowingResponse, IUserLikesResponse } from 'rettiwt-core';
2
- import { IDataExtract } from '../../../types/Resolvers';
3
- /**
4
- * @returns The raw user account data formatted and sorted into required and additional data
5
- * @param res The raw response received from Twitter
6
- */
7
- export declare function extractUserDetails(res: IUserDetailsResponse): IDataExtract;
8
- /**
9
- * @returns The raw user following/followers data formatted and sorted into required and additional data
10
- * @param res The raw response received from TwitterAPI
11
- */
12
- export declare function extractUserFollow(res: IUserFollowersResponse | IUserFollowingResponse): IDataExtract;
13
- /**
14
- * @returns The raw user likes data formatted and sorted into required and additional data
15
- * @param res The raw response received from TwitterAPI
16
- */
17
- export declare function extractUserLikes(res: IUserLikesResponse): IDataExtract;
@@ -1,151 +0,0 @@
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.extractUserLikes = exports.extractUserFollow = exports.extractUserDetails = void 0;
27
- var Errors_1 = require("../../../enums/Errors");
28
- // PARSERS
29
- var Parsers = __importStar(require("../Parser"));
30
- /**
31
- * @returns The raw user account data formatted and sorted into required and additional data
32
- * @param res The raw response received from Twitter
33
- */
34
- function extractUserDetails(res) {
35
- var _a, _b, _c;
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
- // If user not found or account suspended
41
- if (((_c = (_b = (_a = res.data) === null || _a === void 0 ? void 0 : _a.user) === null || _b === void 0 ? void 0 : _b.result) === null || _c === void 0 ? void 0 : _c.__typename) !== 'User') {
42
- throw new Error(Errors_1.DataErrors.UserNotFound);
43
- }
44
- // Destructuring user account data
45
- required.push(res.data.user.result);
46
- users.push(res.data.user.result);
47
- // Returning the data
48
- return {
49
- required: required,
50
- cursor: cursor,
51
- users: users,
52
- tweets: tweets
53
- };
54
- }
55
- exports.extractUserDetails = extractUserDetails;
56
- /**
57
- * @returns The raw user following/followers data formatted and sorted into required and additional data
58
- * @param res The raw response received from TwitterAPI
59
- */
60
- function extractUserFollow(res) {
61
- var required = []; // To store the reqruied raw data
62
- var cursor = ''; // To store the cursor to next batch
63
- var users = []; // To store additional user data
64
- var tweets = []; // To store additional tweet data
65
- // If user does not exist
66
- if (Parsers.isJSONEmpty(res.data.user)) {
67
- throw new Error(Errors_1.DataErrors.UserNotFound);
68
- }
69
- // Extracting the raw list
70
- res.data.user.result.timeline.timeline.instructions.forEach(function (item) {
71
- var _a, _b;
72
- if (item.type === 'TimelineAddEntries') {
73
- // If no follow found
74
- if (((_a = item.entries) === null || _a === void 0 ? void 0 : _a.length) == 2) {
75
- // Returning the data
76
- return {
77
- required: required,
78
- cursor: cursor,
79
- users: users,
80
- tweets: tweets
81
- };
82
- }
83
- // Destructuring data
84
- (_b = item.entries) === null || _b === void 0 ? void 0 : _b.forEach(function (entry) {
85
- var _a, _b;
86
- // If entry is of type user and user account exists
87
- if (entry.entryId.indexOf('user') != -1 && ((_a = entry.content.itemContent) === null || _a === void 0 ? void 0 : _a.user_results.result.__typename) === 'User') {
88
- required.push(entry.content.itemContent.user_results.result);
89
- users.push(entry.content.itemContent.user_results.result);
90
- }
91
- // If entry is of type cursor
92
- else if (entry.entryId.indexOf('cursor-bottom') != -1) {
93
- cursor = (_b = entry.content.value) !== null && _b !== void 0 ? _b : '';
94
- }
95
- });
96
- }
97
- });
98
- // Returning the data
99
- return {
100
- required: required,
101
- cursor: cursor,
102
- users: users,
103
- tweets: tweets
104
- };
105
- }
106
- exports.extractUserFollow = extractUserFollow;
107
- /**
108
- * @returns The raw user likes data formatted and sorted into required and additional data
109
- * @param res The raw response received from TwitterAPI
110
- */
111
- function extractUserLikes(res) {
112
- var required = []; // To store the reqruied raw data
113
- var cursor = ''; // To store the cursor to next batch
114
- var users = []; // To store additional user data
115
- var tweets = []; // To store additional tweet data
116
- // If user does not exist
117
- if (Parsers.isJSONEmpty(res.data.user)) {
118
- throw new Error(Errors_1.DataErrors.UserNotFound);
119
- }
120
- // If user likes found
121
- if (res.data.user.result.timeline_v2.timeline.instructions.length) {
122
- // Extracting the raw list
123
- res.data.user.result.timeline_v2.timeline.instructions.forEach(function (item) {
124
- if (item.type === 'TimelineAddEntries') {
125
- // Destructuring data
126
- item.entries.forEach(function (entry) {
127
- var _a, _b;
128
- // If entry is of type tweet and tweet exists
129
- if (entry.entryId.indexOf('tweet') != -1 && ((_a = entry.content.itemContent) === null || _a === void 0 ? void 0 : _a.tweet_results.result.__typename) === 'Tweet') {
130
- required.push(entry.content.itemContent.tweet_results.result);
131
- users.push(entry.content.itemContent.tweet_results.result.core.user_results.result);
132
- tweets.push(entry.content.itemContent.tweet_results.result);
133
- }
134
- // If entry is of type cursor
135
- else if (entry.entryId.indexOf('cursor-bottom') != -1) {
136
- cursor = (_b = entry.content.value) !== null && _b !== void 0 ? _b : '';
137
- }
138
- });
139
- }
140
- });
141
- }
142
- // Returning the data
143
- return {
144
- required: required,
145
- cursor: cursor,
146
- users: users,
147
- tweets: tweets
148
- };
149
- }
150
- exports.extractUserLikes = extractUserLikes;
151
- //# sourceMappingURL=Users.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Users.js","sourceRoot":"","sources":["../../../../src/services/helper/extractors/Users.ts"],"names":[],"mappings":"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"}