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,151 @@
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("../../../types/data/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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Users.js","sourceRoot":"","sources":["../../../../src/services/helper/extractors/Users.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @returns The url for fetching a guest token
3
+ */
4
+ export declare function guestTokenUrl(): string;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.guestTokenUrl = void 0;
4
+ /**
5
+ * @returns The url for fetching a guest token
6
+ */
7
+ function guestTokenUrl() {
8
+ return "https://api.twitter.com/1.1/guest/activate.json";
9
+ }
10
+ exports.guestTokenUrl = guestTokenUrl;
11
+ //# sourceMappingURL=Authentication.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Authentication.js","sourceRoot":"","sources":["../../../../src/services/helper/urls/Authentication.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,SAAgB,aAAa;IACzB,OAAO,iDAAiD,CAAC;AAC7D,CAAC;AAFD,sCAEC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @returns The url for fetching the list of tweets matching the given filter
3
+ * @param query The query to be used for searching tweets
4
+ * @param count The number of tweets to fetch
5
+ * @param cursor The cusor to next batch *
6
+ */
7
+ export declare function tweetsUrl(query: string, count: number, cursor: string): string;
8
+ /**
9
+ * @returns The url for fetching the details of a given tweet
10
+ * @param tweetId The rest id of the target tweet
11
+ */
12
+ export declare function tweetDetailsUrl(tweetId: string): string;
13
+ /**
14
+ * @returns The url for fetching the list of replies to a given tweet
15
+ * @param tweetId The rest of the target tweet
16
+ * @param cursor The curor to next batch
17
+ */
18
+ export declare function tweetRepliesUrl(tweetId: string, cursor: string): string;
19
+ /**
20
+ * @returns The url for fetching the list of users who liked a given tweet
21
+ * @param tweetId The rest id of the target tweet
22
+ * @param count The batch size of the list of users
23
+ * @param cursor The curor to next batch
24
+ */
25
+ export declare function tweetLikesUrl(tweetId: string, count: number, cursor: string): string;
26
+ /**
27
+ * @returns The url for fetching the list of user who retweeted the given tweet
28
+ * @param tweetId The rest id of the target tweet
29
+ * @param count The batch size of the list of users
30
+ * @param cursor The curor to next batch
31
+ */
32
+ export declare function tweetRetweetUrl(tweetId: string, count: number, cursor: string): string;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.tweetRetweetUrl = exports.tweetLikesUrl = exports.tweetRepliesUrl = exports.tweetDetailsUrl = exports.tweetsUrl = void 0;
4
+ /**
5
+ * @returns The url for fetching the list of tweets matching the given filter
6
+ * @param query The query to be used for searching tweets
7
+ * @param count The number of tweets to fetch
8
+ * @param cursor The cusor to next batch *
9
+ */
10
+ function tweetsUrl(query, count, cursor) {
11
+ return "https://api.twitter.com/2/search/adaptive.json?include_want_retweets=1&include_quote_count=true&include_reply_count=1&tweet_mode=extended&include_entities=true&include_user_entities=true&simple_quoted_tweet=true&q=".concat(encodeURIComponent(query), "&tweet_search_mode=live&count=").concat(count, "&query_source=typed_query&cursor=").concat(encodeURIComponent(cursor));
12
+ }
13
+ exports.tweetsUrl = tweetsUrl;
14
+ /**
15
+ * @returns The url for fetching the details of a given tweet
16
+ * @param tweetId The rest id of the target tweet
17
+ */
18
+ function tweetDetailsUrl(tweetId) {
19
+ return "https://api.twitter.com/graphql/lXI2kaM2hgmbf7h42kpxuA/TweetDetail?variables=%7B%22focalTweetId%22%3A%22".concat(tweetId, "%22%2C%22referrer%22%3A%22profile%22%2C%22with_rux_injections%22%3Afalse%2C%22includePromotedContent%22%3Atrue%2C%22withCommunity%22%3Atrue%2C%22withQuickPromoteEligibilityTweetFields%22%3Atrue%2C%22withBirdwatchNotes%22%3Atrue%2C%22withSuperFollowsUserFields%22%3Atrue%2C%22withDownvotePerspective%22%3Afalse%2C%22withReactionsMetadata%22%3Afalse%2C%22withReactionsPerspective%22%3Afalse%2C%22withSuperFollowsTweetFields%22%3Atrue%2C%22withVoice%22%3Atrue%2C%22withV2Timeline%22%3Atrue%7D&features=%7B%22responsive_web_twitter_blue_verified_badge_is_enabled%22%3Atrue%2C%22verified_phone_label_enabled%22%3Atrue%2C%22responsive_web_graphql_timeline_navigation_enabled%22%3Atrue%2C%22view_counts_public_visibility_enabled%22%3Atrue%2C%22longform_notetweets_consumption_enabled%22%3Afalse%2C%22tweetypie_unmention_optimization_enabled%22%3Atrue%2C%22responsive_web_uc_gql_enabled%22%3Atrue%2C%22vibe_api_enabled%22%3Atrue%2C%22responsive_web_edit_tweet_api_enabled%22%3Atrue%2C%22graphql_is_translatable_rweb_tweet_is_translatable_enabled%22%3Atrue%2C%22view_counts_everywhere_api_enabled%22%3Atrue%2C%22standardized_nudges_misinfo%22%3Atrue%2C%22tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled%22%3Afalse%2C%22interactive_text_enabled%22%3Atrue%2C%22responsive_web_text_conversations_enabled%22%3Afalse%2C%22responsive_web_enhance_cards_enabled%22%3Afalse%7D");
20
+ }
21
+ exports.tweetDetailsUrl = tweetDetailsUrl;
22
+ /**
23
+ * @returns The url for fetching the list of replies to a given tweet
24
+ * @param tweetId The rest of the target tweet
25
+ * @param cursor The curor to next batch
26
+ */
27
+ function tweetRepliesUrl(tweetId, cursor) {
28
+ return "https://api.twitter.com/graphql/lXI2kaM2hgmbf7h42kpxuA/TweetDetail?variables=%7B%22focalTweetId%22%3A%22".concat(tweetId, "%22%2C%22cursor%22%3A%22").concat(encodeURIComponent(cursor), "%22%2C%22referrer%22%3A%22tweet%22%2C%22with_rux_injections%22%3Afalse%2C%22includePromotedContent%22%3Atrue%2C%22withCommunity%22%3Atrue%2C%22withQuickPromoteEligibilityTweetFields%22%3Atrue%2C%22withBirdwatchNotes%22%3Atrue%2C%22withSuperFollowsUserFields%22%3Atrue%2C%22withDownvotePerspective%22%3Afalse%2C%22withReactionsMetadata%22%3Afalse%2C%22withReactionsPerspective%22%3Afalse%2C%22withSuperFollowsTweetFields%22%3Atrue%2C%22withVoice%22%3Atrue%2C%22withV2Timeline%22%3Atrue%7D&features=%7B%22responsive_web_twitter_blue_verified_badge_is_enabled%22%3Atrue%2C%22verified_phone_label_enabled%22%3Atrue%2C%22responsive_web_graphql_timeline_navigation_enabled%22%3Atrue%2C%22view_counts_public_visibility_enabled%22%3Atrue%2C%22longform_notetweets_consumption_enabled%22%3Afalse%2C%22tweetypie_unmention_optimization_enabled%22%3Atrue%2C%22responsive_web_uc_gql_enabled%22%3Atrue%2C%22vibe_api_enabled%22%3Atrue%2C%22responsive_web_edit_tweet_api_enabled%22%3Atrue%2C%22graphql_is_translatable_rweb_tweet_is_translatable_enabled%22%3Atrue%2C%22view_counts_everywhere_api_enabled%22%3Atrue%2C%22standardized_nudges_misinfo%22%3Atrue%2C%22tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled%22%3Afalse%2C%22interactive_text_enabled%22%3Atrue%2C%22responsive_web_text_conversations_enabled%22%3Afalse%2C%22responsive_web_enhance_cards_enabled%22%3Afalse%7D");
29
+ }
30
+ exports.tweetRepliesUrl = tweetRepliesUrl;
31
+ /**
32
+ * @returns The url for fetching the list of users who liked a given tweet
33
+ * @param tweetId The rest id of the target tweet
34
+ * @param count The batch size of the list of users
35
+ * @param cursor The curor to next batch
36
+ */
37
+ function tweetLikesUrl(tweetId, count, cursor) {
38
+ return "https://api.twitter.com/graphql/56ZwFC3Vui31fF8IYX8EGA/Favoriters?variables=%7B%22tweetId%22%3A%22".concat(tweetId, "%22%2C%22count%22%3A").concat(count, "%2C%22cursor%22%3A%22").concat(encodeURIComponent(cursor), "%22%2C%22includePromotedContent%22%3Atrue%2C%22withSuperFollowsUserFields%22%3Atrue%2C%22withDownvotePerspective%22%3Afalse%2C%22withReactionsMetadata%22%3Afalse%2C%22withReactionsPerspective%22%3Afalse%2C%22withSuperFollowsTweetFields%22%3Atrue%7D&features=%7B%22responsive_web_twitter_blue_verified_badge_is_enabled%22%3Atrue%2C%22verified_phone_label_enabled%22%3Atrue%2C%22responsive_web_graphql_timeline_navigation_enabled%22%3Atrue%2C%22view_counts_public_visibility_enabled%22%3Atrue%2C%22longform_notetweets_consumption_enabled%22%3Afalse%2C%22tweetypie_unmention_optimization_enabled%22%3Atrue%2C%22responsive_web_uc_gql_enabled%22%3Atrue%2C%22vibe_api_enabled%22%3Atrue%2C%22responsive_web_edit_tweet_api_enabled%22%3Atrue%2C%22graphql_is_translatable_rweb_tweet_is_translatable_enabled%22%3Atrue%2C%22view_counts_everywhere_api_enabled%22%3Atrue%2C%22standardized_nudges_misinfo%22%3Atrue%2C%22tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled%22%3Afalse%2C%22interactive_text_enabled%22%3Atrue%2C%22responsive_web_text_conversations_enabled%22%3Afalse%2C%22responsive_web_enhance_cards_enabled%22%3Afalse%7D");
39
+ }
40
+ exports.tweetLikesUrl = tweetLikesUrl;
41
+ /**
42
+ * @returns The url for fetching the list of user who retweeted the given tweet
43
+ * @param tweetId The rest id of the target tweet
44
+ * @param count The batch size of the list of users
45
+ * @param cursor The curor to next batch
46
+ */
47
+ function tweetRetweetUrl(tweetId, count, cursor) {
48
+ return "https://api.twitter.com/graphql/Wd7DVeLqMj_JQiTL0tjJwQ/Retweeters?variables=%7B%22tweetId%22%3A%22".concat(tweetId, "%22%2C%22count%22%3A").concat(count, "%2C%22cursor%22%3A%22").concat(encodeURIComponent(cursor), "%22%2C%22includePromotedContent%22%3Atrue%2C%22withSuperFollowsUserFields%22%3Atrue%2C%22withDownvotePerspective%22%3Afalse%2C%22withReactionsMetadata%22%3Afalse%2C%22withReactionsPerspective%22%3Afalse%2C%22withSuperFollowsTweetFields%22%3Atrue%7D&features=%7B%22responsive_web_twitter_blue_verified_badge_is_enabled%22%3Atrue%2C%22verified_phone_label_enabled%22%3Atrue%2C%22responsive_web_graphql_timeline_navigation_enabled%22%3Atrue%2C%22view_counts_public_visibility_enabled%22%3Atrue%2C%22longform_notetweets_consumption_enabled%22%3Afalse%2C%22tweetypie_unmention_optimization_enabled%22%3Atrue%2C%22responsive_web_uc_gql_enabled%22%3Atrue%2C%22vibe_api_enabled%22%3Atrue%2C%22responsive_web_edit_tweet_api_enabled%22%3Atrue%2C%22graphql_is_translatable_rweb_tweet_is_translatable_enabled%22%3Atrue%2C%22view_counts_everywhere_api_enabled%22%3Atrue%2C%22standardized_nudges_misinfo%22%3Atrue%2C%22tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled%22%3Afalse%2C%22interactive_text_enabled%22%3Atrue%2C%22responsive_web_text_conversations_enabled%22%3Afalse%2C%22responsive_web_enhance_cards_enabled%22%3Afalse%7D");
49
+ }
50
+ exports.tweetRetweetUrl = tweetRetweetUrl;
51
+ //# sourceMappingURL=Tweets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tweets.js","sourceRoot":"","sources":["../../../../src/services/helper/urls/Tweets.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,SAAgB,SAAS,CAAC,KAAa,EAAE,KAAa,EAAE,MAAc;IAClE,OAAO,gOAAyN,kBAAkB,CAAC,KAAK,CAAC,2CAAiC,KAAK,8CAAoC,kBAAkB,CAAC,MAAM,CAAC,CAAE,CAAC;AACpW,CAAC;AAFD,8BAEC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAAC,OAAe;IAC3C,OAAO,kHAA2G,OAAO,22CAAw2C,CAAC;AACt+C,CAAC;AAFD,0CAEC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,OAAe,EAAE,MAAc;IAC3D,OAAO,kHAA2G,OAAO,qCAA2B,kBAAkB,CAAC,MAAM,CAAC,y2CAAs2C,CAAC;AACzhD,CAAC;AAFD,0CAEC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IACxE,OAAO,4GAAqG,OAAO,iCAAuB,KAAK,kCAAwB,kBAAkB,CAAC,MAAM,CAAC,0nCAAunC,CAAC;AAC7zC,CAAC;AAFD,sCAEC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IAC1E,OAAO,4GAAqG,OAAO,iCAAuB,KAAK,kCAAwB,kBAAkB,CAAC,MAAM,CAAC,0nCAAunC,CAAC;AAC7zC,CAAC;AAFD,0CAEC"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @returns The url for fetching a guest token
3
+ */
4
+ export declare function guestTokenUrl(): string;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.guestTokenUrl = void 0;
4
+ /**
5
+ * @returns The url for fetching a guest token
6
+ */
7
+ function guestTokenUrl() {
8
+ return "https://api.twitter.com/1.1/guest/activate.json";
9
+ }
10
+ exports.guestTokenUrl = guestTokenUrl;
11
+ //# sourceMappingURL=Urls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Urls.js","sourceRoot":"","sources":["../../../../src/services/helper/urls/Urls.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,SAAgB,aAAa;IACzB,OAAO,iDAAiD,CAAC;AAC7D,CAAC;AAFD,sCAEC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @returns The url for fetching user account details.
3
+ * @param screenName The screen name of the target user
4
+ */
5
+ export declare function userDetailsUrl(screenName: string): string;
6
+ /**
7
+ * @returns The url for fetching user account details.
8
+ * @param restid The restId of the target user
9
+ */
10
+ export declare function userDetailsByIdUrl(restId: string): string;
11
+ /**
12
+ * @returns The url for fetching the list of users followed bu target user.
13
+ * @param userId The rest id of the target user
14
+ * @param count The batch size of the list of following, should be >= 40 and <=100
15
+ * @param cursor The cursor to next batch
16
+ */
17
+ export declare function userFollowingUrl(userId: string, count: number, cursor: string): string;
18
+ /**
19
+ * @return The url for fetching the list of followers of the target user
20
+ * @param userId The rest id of the target user
21
+ * @param count The batch size for the list of followers, should be >= 40 and <=100
22
+ * @param cursor The cusor to next batch
23
+ */
24
+ export declare function userFollowersUrl(userId: string, count: number, cursor: string): string;
25
+ /**
26
+ * @returns The url for fetching the list of tweets liked by the target user
27
+ * @param userId The rest id of the target user
28
+ * @param count The batch size for the list of tweets
29
+ * @param cursor The cusor to next batch
30
+ */
31
+ export declare function userLikesUrl(userId: string, count: number, cursor: string): string;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.userLikesUrl = exports.userFollowersUrl = exports.userFollowingUrl = exports.userDetailsByIdUrl = exports.userDetailsUrl = void 0;
4
+ /**
5
+ * @returns The url for fetching user account details.
6
+ * @param screenName The screen name of the target user
7
+ */
8
+ function userDetailsUrl(screenName) {
9
+ return "https://api.twitter.com/graphql/hVhfo_TquFTmgL7gYwf91Q/UserByScreenName?variables=%7B%22screen_name%22%3A%22".concat(screenName, "%22%2C%22withSafetyModeUserFields%22%3Atrue%2C%22withSuperFollowsUserFields%22%3Atrue%7D&features=%7B%22responsive_web_twitter_blue_verified_badge_is_enabled%22%3Atrue%2C%22verified_phone_label_enabled%22%3Atrue%2C%22responsive_web_graphql_timeline_navigation_enabled%22%3Atrue%7D");
10
+ }
11
+ exports.userDetailsUrl = userDetailsUrl;
12
+ /**
13
+ * @returns The url for fetching user account details.
14
+ * @param restid The restId of the target user
15
+ */
16
+ function userDetailsByIdUrl(restId) {
17
+ return "https://api.twitter.com/graphql/mi_IjXgFyr41N9zkszPz9w/UserByRestId?variables=%7B%22userId%22%3A%22".concat(restId, "%22%2C%22withSafetyModeUserFields%22%3Atrue%2C%22withSuperFollowsUserFields%22%3Atrue%7D&features=%7B%22responsive_web_twitter_blue_verified_badge_is_enabled%22%3Atrue%2C%22verified_phone_label_enabled%22%3Atrue%2C%22responsive_web_graphql_timeline_navigation_enabled%22%3Atrue%7D");
18
+ }
19
+ exports.userDetailsByIdUrl = userDetailsByIdUrl;
20
+ /**
21
+ * @returns The url for fetching the list of users followed bu target user.
22
+ * @param userId The rest id of the target user
23
+ * @param count The batch size of the list of following, should be >= 40 and <=100
24
+ * @param cursor The cursor to next batch
25
+ */
26
+ function userFollowingUrl(userId, count, cursor) {
27
+ /**
28
+ * Twitter has a ver odd behaviour here.
29
+ * If no cursor is provided, the number of followings fetched is slightly more the given count.
30
+ * If a cursor if provided, the number of followings is sometimes less than the provided count.
31
+ * NO SOLUTION EXISTS AS OF NOW!
32
+ */
33
+ return "https://api.twitter.com/graphql/mSnjZc5CTm2Z5Lu_i4XsPQ/Following?variables=%7B%22userId%22%3A%22".concat(userId, "%22%2C%22count%22%3A").concat(count, "%2C%22cursor%22%3A%22").concat(encodeURIComponent(cursor), "%22%2C%22includePromotedContent%22%3Afalse%2C%22withSuperFollowsUserFields%22%3Atrue%2C%22withDownvotePerspective%22%3Afalse%2C%22withReactionsMetadata%22%3Afalse%2C%22withReactionsPerspective%22%3Afalse%2C%22withSuperFollowsTweetFields%22%3Atrue%7D&features=%7B%22responsive_web_twitter_blue_verified_badge_is_enabled%22%3Atrue%2C%22verified_phone_label_enabled%22%3Atrue%2C%22responsive_web_graphql_timeline_navigation_enabled%22%3Atrue%2C%22view_counts_public_visibility_enabled%22%3Atrue%2C%22longform_notetweets_consumption_enabled%22%3Afalse%2C%22tweetypie_unmention_optimization_enabled%22%3Atrue%2C%22responsive_web_uc_gql_enabled%22%3Atrue%2C%22vibe_api_enabled%22%3Atrue%2C%22responsive_web_edit_tweet_api_enabled%22%3Atrue%2C%22graphql_is_translatable_rweb_tweet_is_translatable_enabled%22%3Atrue%2C%22view_counts_everywhere_api_enabled%22%3Atrue%2C%22standardized_nudges_misinfo%22%3Atrue%2C%22tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled%22%3Afalse%2C%22interactive_text_enabled%22%3Atrue%2C%22responsive_web_text_conversations_enabled%22%3Afalse%2C%22responsive_web_enhance_cards_enabled%22%3Afalse%7D");
34
+ }
35
+ exports.userFollowingUrl = userFollowingUrl;
36
+ /**
37
+ * @return The url for fetching the list of followers of the target user
38
+ * @param userId The rest id of the target user
39
+ * @param count The batch size for the list of followers, should be >= 40 and <=100
40
+ * @param cursor The cusor to next batch
41
+ */
42
+ function userFollowersUrl(userId, count, cursor) {
43
+ /**
44
+ * Twitter has a very odd behaviour here.
45
+ * If no cursor is provided, the number of followers fetched is equal to count + 20.
46
+ * If a cursor is provided, the number of followers fetched is equal to count.
47
+ * The solution is to check accordingly, if a cursor if provided or not and manipulate the count
48
+ */
49
+ // If no cursor if provided
50
+ if (!cursor) {
51
+ count = count - 20;
52
+ }
53
+ return "https://api.twitter.com/graphql/nwlAnaw7oKXcVLi91ehy7Q/Followers?variables=%7B%22userId%22%3A%22".concat(userId, "%22%2C%22count%22%3A").concat(count, "%2C%22cursor%22%3A%22").concat(encodeURIComponent(cursor), "%22%2C%22includePromotedContent%22%3Afalse%2C%22withSuperFollowsUserFields%22%3Atrue%2C%22withDownvotePerspective%22%3Afalse%2C%22withReactionsMetadata%22%3Afalse%2C%22withReactionsPerspective%22%3Afalse%2C%22withSuperFollowsTweetFields%22%3Atrue%7D&features=%7B%22responsive_web_twitter_blue_verified_badge_is_enabled%22%3Atrue%2C%22verified_phone_label_enabled%22%3Atrue%2C%22responsive_web_graphql_timeline_navigation_enabled%22%3Atrue%2C%22view_counts_public_visibility_enabled%22%3Atrue%2C%22longform_notetweets_consumption_enabled%22%3Afalse%2C%22tweetypie_unmention_optimization_enabled%22%3Atrue%2C%22responsive_web_uc_gql_enabled%22%3Atrue%2C%22vibe_api_enabled%22%3Atrue%2C%22responsive_web_edit_tweet_api_enabled%22%3Atrue%2C%22graphql_is_translatable_rweb_tweet_is_translatable_enabled%22%3Atrue%2C%22view_counts_everywhere_api_enabled%22%3Atrue%2C%22standardized_nudges_misinfo%22%3Atrue%2C%22tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled%22%3Afalse%2C%22interactive_text_enabled%22%3Atrue%2C%22responsive_web_text_conversations_enabled%22%3Afalse%2C%22responsive_web_enhance_cards_enabled%22%3Afalse%7D");
54
+ }
55
+ exports.userFollowersUrl = userFollowersUrl;
56
+ /**
57
+ * @returns The url for fetching the list of tweets liked by the target user
58
+ * @param userId The rest id of the target user
59
+ * @param count The batch size for the list of tweets
60
+ * @param cursor The cusor to next batch
61
+ */
62
+ function userLikesUrl(userId, count, cursor) {
63
+ return "https://api.twitter.com/graphql/gP4ZKghLd4tpILgS6VudAQ/Likes?variables=%7B%22userId%22%3A%22".concat(userId, "%22%2C%22count%22%3A").concat(count, "%2C%22cursor%22%3A%22").concat(encodeURIComponent(cursor), "%22%2C%22includePromotedContent%22%3Afalse%2C%22withSuperFollowsUserFields%22%3Atrue%2C%22withDownvotePerspective%22%3Afalse%2C%22withReactionsMetadata%22%3Afalse%2C%22withReactionsPerspective%22%3Afalse%2C%22withSuperFollowsTweetFields%22%3Atrue%2C%22withClientEventToken%22%3Afalse%2C%22withBirdwatchNotes%22%3Afalse%2C%22withVoice%22%3Atrue%2C%22withV2Timeline%22%3Atrue%7D&features=%7B%22responsive_web_twitter_blue_verified_badge_is_enabled%22%3Atrue%2C%22verified_phone_label_enabled%22%3Atrue%2C%22responsive_web_graphql_timeline_navigation_enabled%22%3Atrue%2C%22view_counts_public_visibility_enabled%22%3Atrue%2C%22longform_notetweets_consumption_enabled%22%3Afalse%2C%22tweetypie_unmention_optimization_enabled%22%3Atrue%2C%22responsive_web_uc_gql_enabled%22%3Atrue%2C%22vibe_api_enabled%22%3Atrue%2C%22responsive_web_edit_tweet_api_enabled%22%3Atrue%2C%22graphql_is_translatable_rweb_tweet_is_translatable_enabled%22%3Atrue%2C%22view_counts_everywhere_api_enabled%22%3Atrue%2C%22standardized_nudges_misinfo%22%3Atrue%2C%22tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled%22%3Afalse%2C%22interactive_text_enabled%22%3Atrue%2C%22responsive_web_text_conversations_enabled%22%3Afalse%2C%22responsive_web_enhance_cards_enabled%22%3Afalse%7D");
64
+ }
65
+ exports.userLikesUrl = userLikesUrl;
66
+ //# sourceMappingURL=Users.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Users.js","sourceRoot":"","sources":["../../../../src/services/helper/urls/Users.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,SAAgB,cAAc,CAAC,UAAkB;IAC7C,OAAO,sHAA+G,UAAU,6RAA0R,CAAA;AAC9Z,CAAC;AAFD,wCAEC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,MAAc;IAC7C,OAAO,6GAAsG,MAAM,6RAA0R,CAAC;AAClZ,CAAC;AAFD,gDAEC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,MAAc,EAAE,KAAa,EAAE,MAAc;IAC1E;;;;;OAKG;IACH,OAAO,0GAAmG,MAAM,iCAAuB,KAAK,kCAAwB,kBAAkB,CAAC,MAAM,CAAC,2nCAAwnC,CAAC;AAC3zC,CAAC;AARD,4CAQC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,MAAc,EAAE,KAAa,EAAE,MAAc;IAC1E;;;;;OAKG;IACH,2BAA2B;IAC3B,IAAI,CAAC,MAAM,EAAE;QACT,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC;KACtB;IAED,OAAO,0GAAmG,MAAM,iCAAuB,KAAK,kCAAwB,kBAAkB,CAAC,MAAM,CAAC,2nCAAwnC,CAAC;AAC3zC,CAAC;AAbD,4CAaC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,MAAc,EAAE,KAAa,EAAE,MAAc;IACtE,OAAO,sGAA+F,MAAM,iCAAuB,KAAK,kCAAwB,kBAAkB,CAAC,MAAM,CAAC,0vCAAuvC,CAAC;AACt7C,CAAC;AAFD,oCAEC"}
File without changes
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Errors.js","sourceRoot":"","sources":["../../src/types/Errors.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IACxB,wHAAoG,CAAA;IACpG,gFAA4D,CAAA;AAChE,CAAC,EAHW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAG3B;AAAA,CAAC;AAEF;;GAEG;AACH,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,8EAAgE,CAAA;IAChE,uEAAyD,CAAA;IACzD,2EAA6D,CAAA;AACjE,CAAC,EAJW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAIrB;AAAA,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @summary Stores the data returned from extractors
3
+ */
4
+ export interface DataExtract {
5
+ required: any;
6
+ cursor: string;
7
+ users: any;
8
+ tweets: any;
9
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ //# sourceMappingURL=Resolvers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Resolvers.js","sourceRoot":"","sources":["../../src/types/Resolvers.ts"],"names":[],"mappings":""}
@@ -9,6 +9,7 @@ export interface TweetFilter {
9
9
  mentions?: string[];
10
10
  startDate?: string;
11
11
  endDate?: string;
12
+ sinceId?: string;
12
13
  quoted?: string;
13
14
  links?: boolean;
14
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Tweet.js","sourceRoot":"","sources":["../../src/types/Tweet.ts"],"names":[],"mappings":";AAAA,kFAAkF;;AAejF,CAAC"}
1
+ {"version":3,"file":"Tweet.js","sourceRoot":"","sources":["../../src/types/Tweet.ts"],"names":[],"mappings":";AAAA,kFAAkF;;AAgBjF,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @summary Stores the complete details of the given user's account
3
+ */
4
+ export interface User {
5
+ id: string;
6
+ userName: string;
7
+ fullName: string;
8
+ createdAt: string;
9
+ description: string;
10
+ isVerified: boolean;
11
+ favouritesCount: number;
12
+ followersCount: number;
13
+ followingsCount: number;
14
+ statusesCount: number;
15
+ location: string;
16
+ pinnedTweet: string;
17
+ profileBanner: string;
18
+ profileImage: string;
19
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // This file contains various objects for handling data related to User Account
3
+ exports.__esModule = true;
4
+ //# sourceMappingURL=User.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"User.js","sourceRoot":"","sources":["../../src/types/User.ts"],"names":[],"mappings":";AAAA,+EAA+E"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @summary Stores different types of error messages related to authentication
3
+ */
4
+ export declare enum AuthenticationErrors {
5
+ NotAuthenticated = "Cannot fetch this data without authentication"
6
+ }
7
+ /**
8
+ * @summary Stores different types error messages for validation errors
9
+ */
10
+ export declare enum ValidationErrors {
11
+ InvalidTweetFilter = "Atleast one of fromUsers/toUsers/mentions/hashtags/words argument is required",
12
+ NoUserIdentification = "Either userName or id must be given",
13
+ InvalidCount = "Invalid count provided"
14
+ }
15
+ /**
16
+ * @summary Stores all the different type of error messages that are returned by services
17
+ */
18
+ export declare enum DataErrors {
19
+ UserNotFound = "An account with given username/id was not found",
20
+ TweetNotFound = "A tweet with the given id was not found",
21
+ NoTweetsFound = "No tweets matching the given criteria found",
22
+ NoLikersFound = "No likers found for the tweet with the given id",
23
+ NoRetweetersFound = "No retweeters found for the tweet with the given id",
24
+ NoFollowsFound = "No follow details were found for the user with the given id",
25
+ NoLikedTweetsFound = "No liked tweets were found for the user with the given id"
26
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.DataErrors = exports.ValidationErrors = exports.AuthenticationErrors = void 0;
4
+ /**
5
+ * @summary Stores different types of error messages related to authentication
6
+ */
7
+ var AuthenticationErrors;
8
+ (function (AuthenticationErrors) {
9
+ AuthenticationErrors["NotAuthenticated"] = "Cannot fetch this data without authentication";
10
+ })(AuthenticationErrors = exports.AuthenticationErrors || (exports.AuthenticationErrors = {}));
11
+ ;
12
+ /**
13
+ * @summary Stores different types error messages for validation errors
14
+ */
15
+ var ValidationErrors;
16
+ (function (ValidationErrors) {
17
+ ValidationErrors["InvalidTweetFilter"] = "Atleast one of fromUsers/toUsers/mentions/hashtags/words argument is required";
18
+ ValidationErrors["NoUserIdentification"] = "Either userName or id must be given";
19
+ ValidationErrors["InvalidCount"] = "Invalid count provided";
20
+ })(ValidationErrors = exports.ValidationErrors || (exports.ValidationErrors = {}));
21
+ ;
22
+ /**
23
+ * @summary Stores all the different type of error messages that are returned by services
24
+ */
25
+ var DataErrors;
26
+ (function (DataErrors) {
27
+ DataErrors["UserNotFound"] = "An account with given username/id was not found";
28
+ DataErrors["TweetNotFound"] = "A tweet with the given id was not found";
29
+ DataErrors["NoTweetsFound"] = "No tweets matching the given criteria found";
30
+ DataErrors["NoLikersFound"] = "No likers found for the tweet with the given id";
31
+ DataErrors["NoRetweetersFound"] = "No retweeters found for the tweet with the given id";
32
+ DataErrors["NoFollowsFound"] = "No follow details were found for the user with the given id";
33
+ DataErrors["NoLikedTweetsFound"] = "No liked tweets were found for the user with the given id";
34
+ })(DataErrors = exports.DataErrors || (exports.DataErrors = {}));
35
+ ;
36
+ //# sourceMappingURL=Errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Errors.js","sourceRoot":"","sources":["../../../src/types/data/Errors.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,oBAEX;AAFD,WAAY,oBAAoB;IAC5B,0FAAkE,CAAA;AACtE,CAAC,EAFW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAE/B;AAAA,CAAC;AAEF;;GAEG;AACH,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IACxB,wHAAoG,CAAA;IACpG,gFAA4D,CAAA;IAC5D,2DAAuC,CAAA;AAC3C,CAAC,EAJW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAI3B;AAAA,CAAC;AAEF;;GAEG;AACH,IAAY,UAQX;AARD,WAAY,UAAU;IAClB,8EAAgE,CAAA;IAChE,uEAAyD,CAAA;IACzD,2EAA6D,CAAA;IAC7D,+EAAiE,CAAA;IACjE,uFAAyE,CAAA;IACzE,4FAA8E,CAAA;IAC9E,8FAAgF,CAAA;AACpF,CAAC,EARW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAQrB;AAAA,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { AccountService } from "../../services/accounts/AccountService";
2
+ import { TweetService } from "../../services/data/TweetService";
3
+ import { UserService } from "../../services/data/UserService";
4
+ /**
5
+ * @summary Stores the cursor to the batch of data
6
+ */
7
+ export declare class Cursor {
8
+ value: string;
9
+ /**
10
+ * @summary Initializes a new cursor from the given cursor string
11
+ * @param cursorStr The string representation of the cursor
12
+ */
13
+ constructor(cursorStr: string);
14
+ }
15
+ /**
16
+ * @summary Stores cursored data that is returned by services
17
+ */
18
+ export interface CursoredData<Type> {
19
+ list?: Type[];
20
+ next?: Cursor;
21
+ }
22
+ /**
23
+ * @summary Stores the data context from where data is to be fetched
24
+ */
25
+ export interface DataContext {
26
+ users: UserService;
27
+ tweets: TweetService;
28
+ account: AccountService;
29
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.Cursor = void 0;
4
+ /**
5
+ * @summary Stores the cursor to the batch of data
6
+ */
7
+ var Cursor = /** @class */ (function () {
8
+ // MEMBER DATA
9
+ /**
10
+ * @summary Initializes a new cursor from the given cursor string
11
+ * @param cursorStr The string representation of the cursor
12
+ */
13
+ function Cursor(cursorStr) {
14
+ this.value = cursorStr;
15
+ }
16
+ return Cursor;
17
+ }());
18
+ exports.Cursor = Cursor;
19
+ //# sourceMappingURL=Service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Service.js","sourceRoot":"","sources":["../../../src/types/data/Service.ts"],"names":[],"mappings":";;;AAKA;;GAEG;AACH;IAII,cAAc;IACd;;;OAGG;IACH,gBAAY,SAAiB;QACzB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IAC3B,CAAC;IACL,aAAC;AAAD,CAAC,AAZD,IAYC;AAZY,wBAAM"}