rettiwt-api 5.0.0-alpha.0 → 5.0.0-alpha.2

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 (465) hide show
  1. package/.eslintrc.js +2 -3
  2. package/.github/workflows/documentation.yml +1 -1
  3. package/.github/workflows/publish-alpha.yml +1 -1
  4. package/.github/workflows/publish.yml +1 -1
  5. package/.prettierignore +1 -1
  6. package/.tool-versions +1 -1
  7. package/README.md +100 -100
  8. package/dist/Rettiwt.d.ts +10 -3
  9. package/dist/Rettiwt.js +31 -12
  10. package/dist/Rettiwt.js.map +1 -1
  11. package/dist/cli.js +8 -11
  12. package/dist/cli.js.map +1 -1
  13. package/dist/collections/Extractors.d.ts +36 -2
  14. package/dist/collections/Extractors.js +41 -69
  15. package/dist/collections/Extractors.js.map +1 -1
  16. package/dist/collections/Groups.js +5 -1
  17. package/dist/collections/Groups.js.map +1 -1
  18. package/dist/collections/Requests.d.ts +3 -3
  19. package/dist/collections/Requests.js +41 -40
  20. package/dist/collections/Requests.js.map +1 -1
  21. package/dist/commands/List.js +21 -78
  22. package/dist/commands/List.js.map +1 -1
  23. package/dist/commands/Tweet.js +214 -373
  24. package/dist/commands/Tweet.js.map +1 -1
  25. package/dist/commands/User.js +138 -305
  26. package/dist/commands/User.js.map +1 -1
  27. package/dist/enums/Authentication.d.ts +10 -0
  28. package/dist/enums/Authentication.js +15 -0
  29. package/dist/enums/Authentication.js.map +1 -0
  30. package/dist/enums/Data.d.ts +3 -3
  31. package/dist/enums/Data.js +3 -3
  32. package/dist/enums/Media.d.ts +10 -0
  33. package/dist/enums/Media.js +15 -0
  34. package/dist/enums/Media.js.map +1 -0
  35. package/dist/enums/Notification.d.ts +12 -0
  36. package/dist/enums/Notification.js +17 -0
  37. package/dist/enums/Notification.js.map +1 -0
  38. package/dist/enums/Resource.d.ts +4 -0
  39. package/dist/enums/Resource.js +4 -0
  40. package/dist/enums/Resource.js.map +1 -1
  41. package/dist/enums/raw/Analytics.d.ts +28 -0
  42. package/dist/enums/raw/Analytics.js +34 -0
  43. package/dist/enums/raw/Analytics.js.map +1 -0
  44. package/dist/enums/raw/Media.d.ts +10 -0
  45. package/dist/enums/raw/Media.js +15 -0
  46. package/dist/enums/raw/Media.js.map +1 -0
  47. package/dist/enums/raw/Notification.d.ts +11 -0
  48. package/dist/enums/raw/Notification.js +16 -0
  49. package/dist/enums/raw/Notification.js.map +1 -0
  50. package/dist/enums/raw/Tweet.d.ts +9 -0
  51. package/dist/enums/raw/Tweet.js +14 -0
  52. package/dist/enums/raw/Tweet.js.map +1 -0
  53. package/dist/helper/CliUtils.js +1 -2
  54. package/dist/helper/CliUtils.js.map +1 -1
  55. package/dist/helper/JsonUtils.js +6 -11
  56. package/dist/helper/JsonUtils.js.map +1 -1
  57. package/dist/helper/TidUtils.d.ts +2 -0
  58. package/dist/helper/TidUtils.js +162 -0
  59. package/dist/helper/TidUtils.js.map +1 -0
  60. package/dist/index.d.ts +75 -5
  61. package/dist/index.js +26 -6
  62. package/dist/index.js.map +1 -1
  63. package/dist/models/RettiwtConfig.d.ts +28 -0
  64. package/dist/models/RettiwtConfig.js +55 -0
  65. package/dist/models/RettiwtConfig.js.map +1 -0
  66. package/dist/models/args/FetchArgs.d.ts +16 -102
  67. package/dist/models/args/FetchArgs.js +105 -407
  68. package/dist/models/args/FetchArgs.js.map +1 -1
  69. package/dist/models/args/PostArgs.d.ts +16 -73
  70. package/dist/models/args/PostArgs.js +43 -236
  71. package/dist/models/args/PostArgs.js.map +1 -1
  72. package/dist/models/auth/AuthCookie.d.ts +21 -0
  73. package/dist/models/auth/AuthCookie.js +55 -0
  74. package/dist/models/auth/AuthCookie.js.map +1 -0
  75. package/dist/models/auth/AuthCredential.d.ts +30 -0
  76. package/dist/models/auth/AuthCredential.js +78 -0
  77. package/dist/models/auth/AuthCredential.js.map +1 -0
  78. package/dist/models/data/CursoredData.d.ts +5 -15
  79. package/dist/models/data/CursoredData.js +25 -32
  80. package/dist/models/data/CursoredData.js.map +1 -1
  81. package/dist/models/data/List.d.ts +7 -9
  82. package/dist/models/data/List.js +24 -4
  83. package/dist/models/data/List.js.map +1 -1
  84. package/dist/models/data/Notification.d.ts +10 -24
  85. package/dist/models/data/Notification.js +38 -36
  86. package/dist/models/data/Notification.js.map +1 -1
  87. package/dist/models/data/Tweet.d.ts +34 -31
  88. package/dist/models/data/Tweet.js +186 -112
  89. package/dist/models/data/Tweet.js.map +1 -1
  90. package/dist/models/data/User.d.ts +19 -23
  91. package/dist/models/data/User.js +92 -32
  92. package/dist/models/data/User.js.map +1 -1
  93. package/dist/models/errors/ApiError.js +8 -24
  94. package/dist/models/errors/ApiError.js.map +1 -1
  95. package/dist/models/errors/HttpError.js +8 -24
  96. package/dist/models/errors/HttpError.js.map +1 -1
  97. package/dist/models/errors/RettiwtError.d.ts +3 -2
  98. package/dist/models/errors/RettiwtError.js +8 -25
  99. package/dist/models/errors/RettiwtError.js.map +1 -1
  100. package/dist/models/errors/TimeoutError.js +5 -22
  101. package/dist/models/errors/TimeoutError.js.map +1 -1
  102. package/dist/models/params/Variables.d.ts +41 -0
  103. package/dist/models/params/Variables.js +61 -0
  104. package/dist/models/params/Variables.js.map +1 -0
  105. package/dist/requests/List.d.ts +24 -0
  106. package/dist/requests/List.js +122 -0
  107. package/dist/requests/List.js.map +1 -0
  108. package/dist/requests/Media.d.ts +21 -0
  109. package/dist/requests/Media.js +70 -0
  110. package/dist/requests/Media.js.map +1 -0
  111. package/dist/requests/Tweet.d.ts +75 -0
  112. package/dist/requests/Tweet.js +480 -0
  113. package/dist/requests/Tweet.js.map +1 -0
  114. package/dist/requests/User.d.ts +111 -0
  115. package/dist/requests/User.js +762 -0
  116. package/dist/requests/User.js.map +1 -0
  117. package/dist/services/internal/AuthService.d.ts +60 -0
  118. package/dist/services/internal/AuthService.js +106 -0
  119. package/dist/services/internal/AuthService.js.map +1 -0
  120. package/dist/services/internal/ErrorService.js +38 -40
  121. package/dist/services/internal/ErrorService.js.map +1 -1
  122. package/dist/services/internal/LogService.d.ts +0 -6
  123. package/dist/services/internal/LogService.js +12 -32
  124. package/dist/services/internal/LogService.js.map +1 -1
  125. package/dist/services/internal/TidService.d.ts +44 -0
  126. package/dist/services/internal/TidService.js +162 -0
  127. package/dist/services/internal/TidService.js.map +1 -0
  128. package/dist/services/public/FetcherService.d.ts +22 -19
  129. package/dist/services/public/FetcherService.js +126 -153
  130. package/dist/services/public/FetcherService.js.map +1 -1
  131. package/dist/services/public/ListService.d.ts +2 -2
  132. package/dist/services/public/ListService.js +31 -100
  133. package/dist/services/public/ListService.js.map +1 -1
  134. package/dist/services/public/TweetService.d.ts +63 -10
  135. package/dist/services/public/TweetService.js +255 -387
  136. package/dist/services/public/TweetService.js.map +1 -1
  137. package/dist/services/public/UserService.d.ts +4 -4
  138. package/dist/services/public/UserService.js +199 -386
  139. package/dist/services/public/UserService.js.map +1 -1
  140. package/dist/types/RettiwtConfig.d.ts +17 -10
  141. package/dist/types/args/FetchArgs.d.ts +123 -0
  142. package/dist/types/{ReturnTypes.js → args/FetchArgs.js} +1 -1
  143. package/dist/types/args/FetchArgs.js.map +1 -0
  144. package/dist/types/args/PostArgs.d.ts +100 -0
  145. package/dist/types/args/PostArgs.js +3 -0
  146. package/dist/types/args/PostArgs.js.map +1 -0
  147. package/dist/types/auth/AuthCookie.d.ts +15 -0
  148. package/dist/types/auth/AuthCookie.js +3 -0
  149. package/dist/types/auth/AuthCookie.js.map +1 -0
  150. package/dist/types/auth/AuthCredential.d.ts +23 -0
  151. package/dist/types/auth/AuthCredential.js +3 -0
  152. package/dist/types/auth/AuthCredential.js.map +1 -0
  153. package/dist/types/auth/TidDynamicArgs.d.ts +10 -0
  154. package/dist/types/auth/TidDynamicArgs.js +3 -0
  155. package/dist/types/auth/TidDynamicArgs.js.map +1 -0
  156. package/dist/types/auth/TidHeader.d.ts +8 -0
  157. package/dist/types/auth/TidHeader.js +3 -0
  158. package/dist/types/auth/TidHeader.js.map +1 -0
  159. package/dist/types/auth/TidParams.d.ts +27 -0
  160. package/dist/types/auth/TidParams.js +3 -0
  161. package/dist/types/auth/TidParams.js.map +1 -0
  162. package/dist/types/auth/TidProvider.d.ts +18 -0
  163. package/dist/types/auth/TidProvider.js +3 -0
  164. package/dist/types/auth/TidProvider.js.map +1 -0
  165. package/dist/types/data/CursoredData.d.ts +16 -0
  166. package/dist/types/data/CursoredData.js +3 -0
  167. package/dist/types/data/CursoredData.js.map +1 -0
  168. package/dist/types/data/List.d.ts +21 -0
  169. package/dist/types/data/List.js +3 -0
  170. package/dist/types/data/List.js.map +1 -0
  171. package/dist/types/data/Notification.d.ts +20 -0
  172. package/dist/types/data/Notification.js +3 -0
  173. package/dist/types/data/Notification.js.map +1 -0
  174. package/dist/types/data/Tweet.d.ts +71 -0
  175. package/dist/types/data/Tweet.js +3 -0
  176. package/dist/types/data/Tweet.js.map +1 -0
  177. package/dist/types/data/User.d.ts +35 -0
  178. package/dist/types/data/User.js +3 -0
  179. package/dist/types/data/User.js.map +1 -0
  180. package/dist/types/params/Variables.d.ts +27 -0
  181. package/dist/types/params/Variables.js +3 -0
  182. package/dist/types/params/Variables.js.map +1 -0
  183. package/dist/types/raw/base/Analytic.d.ts +21 -0
  184. package/dist/types/raw/base/Analytic.js +4 -0
  185. package/dist/types/raw/base/Analytic.js.map +1 -0
  186. package/dist/types/raw/base/Cursor.d.ts +11 -0
  187. package/dist/types/raw/base/Cursor.js +4 -0
  188. package/dist/types/raw/base/Cursor.js.map +1 -0
  189. package/dist/types/raw/base/LimitedVisibilityTweet.d.ts +32 -0
  190. package/dist/types/raw/base/LimitedVisibilityTweet.js +4 -0
  191. package/dist/types/raw/base/LimitedVisibilityTweet.js.map +1 -0
  192. package/dist/types/raw/base/List.d.ts +43 -0
  193. package/dist/types/raw/base/List.js +4 -0
  194. package/dist/types/raw/base/List.js.map +1 -0
  195. package/dist/types/raw/base/Media.d.ts +43 -0
  196. package/dist/types/raw/base/Media.js +4 -0
  197. package/dist/types/raw/base/Media.js.map +1 -0
  198. package/dist/types/raw/base/Notification.d.ts +53 -0
  199. package/dist/types/raw/base/Notification.js +4 -0
  200. package/dist/types/raw/base/Notification.js.map +1 -0
  201. package/dist/types/raw/base/Space.d.ts +32 -0
  202. package/dist/types/raw/base/Space.js +4 -0
  203. package/dist/types/raw/base/Space.js.map +1 -0
  204. package/dist/types/raw/base/Tweet.d.ts +119 -0
  205. package/dist/types/raw/base/Tweet.js +4 -0
  206. package/dist/types/raw/base/Tweet.js.map +1 -0
  207. package/dist/types/raw/base/User.d.ts +140 -0
  208. package/dist/types/raw/base/User.js +4 -0
  209. package/dist/types/raw/base/User.js.map +1 -0
  210. package/dist/types/raw/composite/DataResult.d.ts +8 -0
  211. package/dist/types/raw/composite/DataResult.js +3 -0
  212. package/dist/types/raw/composite/DataResult.js.map +1 -0
  213. package/dist/types/raw/composite/TimelineTweet.d.ts +11 -0
  214. package/dist/types/raw/composite/TimelineTweet.js +4 -0
  215. package/dist/types/raw/composite/TimelineTweet.js.map +1 -0
  216. package/dist/types/raw/composite/TimelineUser.d.ts +10 -0
  217. package/dist/types/raw/composite/TimelineUser.js +4 -0
  218. package/dist/types/raw/composite/TimelineUser.js.map +1 -0
  219. package/dist/types/raw/generic/Error.d.ts +30 -0
  220. package/dist/types/raw/generic/Error.js +3 -0
  221. package/dist/types/raw/generic/Error.js.map +1 -0
  222. package/dist/types/raw/generic/Response.d.ts +12 -0
  223. package/dist/types/raw/generic/Response.js +3 -0
  224. package/dist/types/raw/generic/Response.js.map +1 -0
  225. package/dist/types/raw/list/Details.d.ts +122 -0
  226. package/dist/types/raw/list/Details.js +4 -0
  227. package/dist/types/raw/list/Details.js.map +1 -0
  228. package/dist/types/raw/list/Members.d.ts +134 -0
  229. package/dist/types/raw/list/Members.js +4 -0
  230. package/dist/types/raw/list/Members.js.map +1 -0
  231. package/dist/types/raw/list/Tweets.d.ts +1968 -0
  232. package/dist/types/raw/list/Tweets.js +4 -0
  233. package/dist/types/raw/list/Tweets.js.map +1 -0
  234. package/dist/types/raw/media/FinalizeUpload.d.ts +18 -0
  235. package/dist/types/raw/media/FinalizeUpload.js +4 -0
  236. package/dist/types/raw/media/FinalizeUpload.js.map +1 -0
  237. package/dist/types/raw/media/InitalizeUpload.d.ts +10 -0
  238. package/dist/types/raw/media/InitalizeUpload.js +4 -0
  239. package/dist/types/raw/media/InitalizeUpload.js.map +1 -0
  240. package/dist/types/raw/media/LiveVideoStream.d.ts +19 -0
  241. package/dist/types/raw/media/LiveVideoStream.js +4 -0
  242. package/dist/types/raw/media/LiveVideoStream.js.map +1 -0
  243. package/dist/types/raw/space/Details.d.ts +315 -0
  244. package/dist/types/raw/space/Details.js +4 -0
  245. package/dist/types/raw/space/Details.js.map +1 -0
  246. package/dist/types/raw/tweet/Details.d.ts +183 -0
  247. package/dist/types/raw/tweet/Details.js +4 -0
  248. package/dist/types/raw/tweet/Details.js.map +1 -0
  249. package/dist/types/raw/tweet/Like.d.ts +12 -0
  250. package/dist/types/raw/tweet/Like.js +4 -0
  251. package/dist/types/raw/tweet/Like.js.map +1 -0
  252. package/dist/types/raw/tweet/Likers.d.ts +170 -0
  253. package/dist/types/raw/tweet/Likers.js +4 -0
  254. package/dist/types/raw/tweet/Likers.js.map +1 -0
  255. package/dist/types/raw/tweet/Post.d.ts +133 -0
  256. package/dist/types/raw/tweet/Post.js +4 -0
  257. package/dist/types/raw/tweet/Post.js.map +1 -0
  258. package/dist/types/raw/tweet/Replies.d.ts +465 -0
  259. package/dist/types/raw/tweet/Replies.js +4 -0
  260. package/dist/types/raw/tweet/Replies.js.map +1 -0
  261. package/dist/types/raw/tweet/Retweet.d.ts +25 -0
  262. package/dist/types/raw/tweet/Retweet.js +4 -0
  263. package/dist/types/raw/tweet/Retweet.js.map +1 -0
  264. package/dist/types/raw/tweet/Retweeters.d.ts +177 -0
  265. package/dist/types/raw/tweet/Retweeters.js +4 -0
  266. package/dist/types/raw/tweet/Retweeters.js.map +1 -0
  267. package/dist/types/raw/tweet/Schedule.d.ts +15 -0
  268. package/dist/types/raw/tweet/Schedule.js +4 -0
  269. package/dist/types/raw/tweet/Schedule.js.map +1 -0
  270. package/dist/types/raw/tweet/Search.d.ts +518 -0
  271. package/dist/types/raw/tweet/Search.js +4 -0
  272. package/dist/types/raw/tweet/Search.js.map +1 -0
  273. package/dist/types/raw/tweet/Unlike.d.ts +12 -0
  274. package/dist/types/raw/tweet/Unlike.js +4 -0
  275. package/dist/types/raw/tweet/Unlike.js.map +1 -0
  276. package/dist/types/raw/tweet/Unpost.d.ts +17 -0
  277. package/dist/types/raw/tweet/Unpost.js +4 -0
  278. package/dist/types/raw/tweet/Unpost.js.map +1 -0
  279. package/dist/types/raw/tweet/Unretweet.d.ts +25 -0
  280. package/dist/types/raw/tweet/Unretweet.js +4 -0
  281. package/dist/types/raw/tweet/Unretweet.js.map +1 -0
  282. package/dist/types/raw/tweet/Unschedule.d.ts +12 -0
  283. package/dist/types/raw/tweet/Unschedule.js +4 -0
  284. package/dist/types/raw/tweet/Unschedule.js.map +1 -0
  285. package/dist/types/raw/user/Affiliates.d.ts +154 -0
  286. package/dist/types/raw/user/Affiliates.js +4 -0
  287. package/dist/types/raw/user/Affiliates.js.map +1 -0
  288. package/dist/types/raw/user/Analytics.d.ts +32 -0
  289. package/dist/types/raw/user/Analytics.js +4 -0
  290. package/dist/types/raw/user/Analytics.js.map +1 -0
  291. package/dist/types/raw/user/Bookmarks.d.ts +550 -0
  292. package/dist/types/raw/user/Bookmarks.js +4 -0
  293. package/dist/types/raw/user/Bookmarks.js.map +1 -0
  294. package/dist/types/raw/user/Details.d.ts +157 -0
  295. package/dist/types/raw/user/Details.js +4 -0
  296. package/dist/types/raw/user/Details.js.map +1 -0
  297. package/dist/types/raw/user/Follow.d.ts +248 -0
  298. package/dist/types/raw/user/Follow.js +4 -0
  299. package/dist/types/raw/user/Follow.js.map +1 -0
  300. package/dist/types/raw/user/Followed.d.ts +1666 -0
  301. package/dist/types/raw/user/Followed.js +4 -0
  302. package/dist/types/raw/user/Followed.js.map +1 -0
  303. package/dist/types/raw/user/Followers.d.ts +182 -0
  304. package/dist/types/raw/user/Followers.js +4 -0
  305. package/dist/types/raw/user/Followers.js.map +1 -0
  306. package/dist/types/raw/user/Following.d.ts +182 -0
  307. package/dist/types/raw/user/Following.js +4 -0
  308. package/dist/types/raw/user/Following.js.map +1 -0
  309. package/dist/types/raw/user/Highlights.d.ts +1106 -0
  310. package/dist/types/raw/user/Highlights.js +4 -0
  311. package/dist/types/raw/user/Highlights.js.map +1 -0
  312. package/dist/types/raw/user/Likes.d.ts +1065 -0
  313. package/dist/types/raw/user/Likes.js +4 -0
  314. package/dist/types/raw/user/Likes.js.map +1 -0
  315. package/dist/types/raw/user/Media.d.ts +1492 -0
  316. package/dist/types/raw/user/Media.js +4 -0
  317. package/dist/types/raw/user/Media.js.map +1 -0
  318. package/dist/types/raw/user/Notifications.d.ts +142 -0
  319. package/dist/types/raw/user/Notifications.js +4 -0
  320. package/dist/types/raw/user/Notifications.js.map +1 -0
  321. package/dist/types/raw/user/Recommended.d.ts +1991 -0
  322. package/dist/types/raw/user/Recommended.js +4 -0
  323. package/dist/types/raw/user/Recommended.js.map +1 -0
  324. package/dist/types/raw/user/Scheduled.d.ts +31 -0
  325. package/dist/types/raw/user/Scheduled.js +4 -0
  326. package/dist/types/raw/user/Scheduled.js.map +1 -0
  327. package/dist/types/raw/user/Subscriptions.d.ts +151 -0
  328. package/dist/types/raw/user/Subscriptions.js +4 -0
  329. package/dist/types/raw/user/Subscriptions.js.map +1 -0
  330. package/dist/types/raw/user/Tweets.d.ts +1065 -0
  331. package/dist/types/raw/user/Tweets.js +4 -0
  332. package/dist/types/raw/user/Tweets.js.map +1 -0
  333. package/dist/types/raw/user/TweetsAndReplies.d.ts +1065 -0
  334. package/dist/types/raw/user/TweetsAndReplies.js +4 -0
  335. package/dist/types/raw/user/TweetsAndReplies.js.map +1 -0
  336. package/dist/types/raw/user/Unfollow.d.ts +248 -0
  337. package/dist/types/raw/user/Unfollow.js +4 -0
  338. package/dist/types/raw/user/Unfollow.js.map +1 -0
  339. package/eslint.config.mjs +17 -0
  340. package/package.json +22 -19
  341. package/src/Rettiwt.ts +22 -7
  342. package/src/cli.ts +0 -2
  343. package/src/collections/Extractors.ts +40 -34
  344. package/src/collections/Groups.ts +4 -0
  345. package/src/collections/Requests.ts +46 -44
  346. package/src/commands/Tweet.ts +35 -7
  347. package/src/commands/User.ts +13 -2
  348. package/src/enums/Authentication.ts +10 -0
  349. package/src/enums/Data.ts +3 -3
  350. package/src/enums/Media.ts +10 -0
  351. package/src/enums/Notification.ts +12 -0
  352. package/src/enums/Resource.ts +4 -0
  353. package/src/enums/raw/Analytics.ts +29 -0
  354. package/src/enums/raw/Media.ts +10 -0
  355. package/src/enums/raw/Notification.ts +11 -0
  356. package/src/enums/raw/Tweet.ts +9 -0
  357. package/src/helper/JsonUtils.ts +1 -1
  358. package/src/helper/TidUtils.ts +189 -0
  359. package/src/index.ts +78 -44
  360. package/src/models/RettiwtConfig.ts +64 -0
  361. package/src/models/args/FetchArgs.ts +86 -436
  362. package/src/models/args/PostArgs.ts +24 -249
  363. package/src/models/auth/AuthCookie.ts +58 -0
  364. package/src/models/auth/AuthCredential.ts +85 -0
  365. package/src/models/data/CursoredData.ts +21 -26
  366. package/src/models/data/List.ts +18 -15
  367. package/src/models/data/Notification.ts +25 -38
  368. package/src/models/data/Tweet.ts +143 -104
  369. package/src/models/data/User.ts +74 -44
  370. package/src/models/errors/RettiwtError.ts +3 -2
  371. package/src/models/params/Variables.ts +62 -0
  372. package/src/requests/List.ts +121 -0
  373. package/src/requests/Media.ts +67 -0
  374. package/src/requests/Tweet.ts +496 -0
  375. package/src/requests/User.ts +783 -0
  376. package/src/services/{public → internal}/AuthService.ts +28 -60
  377. package/src/services/internal/LogService.ts +4 -19
  378. package/src/services/internal/TidService.ts +147 -0
  379. package/src/services/public/FetcherService.ts +89 -59
  380. package/src/services/public/ListService.ts +4 -4
  381. package/src/services/public/TweetService.ts +129 -42
  382. package/src/services/public/UserService.ts +49 -37
  383. package/src/types/RettiwtConfig.ts +18 -12
  384. package/src/types/args/FetchArgs.ts +148 -0
  385. package/src/types/args/PostArgs.ts +112 -0
  386. package/src/types/auth/AuthCookie.ts +22 -0
  387. package/src/types/auth/AuthCredential.ts +28 -0
  388. package/src/types/auth/TidDynamicArgs.ts +10 -0
  389. package/src/types/auth/TidHeader.ts +12 -0
  390. package/src/types/auth/TidParams.ts +36 -0
  391. package/src/types/auth/TidProvider.ts +19 -0
  392. package/src/types/data/CursoredData.ts +18 -0
  393. package/src/types/data/List.ts +27 -0
  394. package/src/types/data/Notification.ts +26 -0
  395. package/src/types/data/Tweet.ts +96 -0
  396. package/src/types/data/User.ts +48 -0
  397. package/src/types/params/Variables.ts +41 -0
  398. package/src/types/raw/base/Analytic.ts +26 -0
  399. package/src/types/raw/base/Cursor.ts +13 -0
  400. package/src/types/raw/base/LimitedVisibilityTweet.ts +40 -0
  401. package/src/types/raw/base/List.ts +50 -0
  402. package/src/types/raw/base/Media.ts +53 -0
  403. package/src/types/raw/base/Notification.ts +67 -0
  404. package/src/types/raw/base/Space.ts +35 -0
  405. package/src/types/raw/base/Tweet.ts +139 -0
  406. package/src/types/raw/base/User.ts +164 -0
  407. package/src/types/raw/composite/DataResult.ts +8 -0
  408. package/src/types/raw/composite/TimelineTweet.ts +14 -0
  409. package/src/types/raw/composite/TimelineUser.ts +13 -0
  410. package/src/types/raw/generic/Error.ts +35 -0
  411. package/src/types/raw/generic/Response.ts +13 -0
  412. package/src/types/raw/list/Details.ts +137 -0
  413. package/src/types/raw/list/Members.ts +154 -0
  414. package/src/types/raw/list/Tweets.ts +2296 -0
  415. package/src/types/raw/media/FinalizeUpload.ts +20 -0
  416. package/src/types/raw/media/InitalizeUpload.ts +12 -0
  417. package/src/types/raw/media/LiveVideoStream.ts +21 -0
  418. package/src/types/raw/space/Details.ts +359 -0
  419. package/src/types/raw/tweet/Details.ts +210 -0
  420. package/src/types/raw/tweet/Like.ts +14 -0
  421. package/src/types/raw/tweet/Likers.ts +200 -0
  422. package/src/types/raw/tweet/Post.ts +150 -0
  423. package/src/types/raw/tweet/Replies.ts +539 -0
  424. package/src/types/raw/tweet/Retweet.ts +31 -0
  425. package/src/types/raw/tweet/Retweeters.ts +208 -0
  426. package/src/types/raw/tweet/Schedule.ts +18 -0
  427. package/src/types/raw/tweet/Search.ts +597 -0
  428. package/src/types/raw/tweet/Unlike.ts +14 -0
  429. package/src/types/raw/tweet/Unpost.ts +20 -0
  430. package/src/types/raw/tweet/Unretweet.ts +31 -0
  431. package/src/types/raw/tweet/Unschedule.ts +14 -0
  432. package/src/types/raw/user/Affiliates.ts +179 -0
  433. package/src/types/raw/user/Analytics.ts +39 -0
  434. package/src/types/raw/user/Bookmarks.ts +637 -0
  435. package/src/types/raw/user/Details.ts +185 -0
  436. package/src/types/raw/user/Follow.ts +280 -0
  437. package/src/types/raw/user/Followed.ts +1942 -0
  438. package/src/types/raw/user/Followers.ts +215 -0
  439. package/src/types/raw/user/Following.ts +215 -0
  440. package/src/types/raw/user/Highlights.ts +1287 -0
  441. package/src/types/raw/user/Likes.ts +1254 -0
  442. package/src/types/raw/user/Media.ts +1738 -0
  443. package/src/types/raw/user/Notifications.ts +175 -0
  444. package/src/types/raw/user/Recommended.ts +2319 -0
  445. package/src/types/raw/user/Scheduled.ts +37 -0
  446. package/src/types/raw/user/Subscriptions.ts +176 -0
  447. package/src/types/raw/user/Tweets.ts +1254 -0
  448. package/src/types/raw/user/TweetsAndReplies.ts +1254 -0
  449. package/src/types/raw/user/Unfollow.ts +280 -0
  450. package/tsconfig.json +7 -5
  451. package/.eslintignore +0 -3
  452. package/dist/commands/Auth.d.ts +0 -10
  453. package/dist/commands/Auth.js +0 -101
  454. package/dist/commands/Auth.js.map +0 -1
  455. package/dist/models/errors/DataValidationError.d.ts +0 -30
  456. package/dist/models/errors/DataValidationError.js +0 -34
  457. package/dist/models/errors/DataValidationError.js.map +0 -1
  458. package/dist/services/public/AuthService.d.ts +0 -91
  459. package/dist/services/public/AuthService.js +0 -205
  460. package/dist/services/public/AuthService.js.map +0 -1
  461. package/dist/types/ReturnTypes.d.ts +0 -21
  462. package/dist/types/ReturnTypes.js.map +0 -1
  463. package/src/commands/Auth.ts +0 -46
  464. package/src/models/errors/DataValidationError.ts +0 -44
  465. package/src/types/ReturnTypes.ts +0 -24
@@ -0,0 +1,162 @@
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.TidService = void 0;
40
+ const http_1 = require("http");
41
+ const axios_1 = __importDefault(require("axios"));
42
+ const htmlParser = __importStar(require("node-html-parser"));
43
+ const Logging_1 = require("../../enums/Logging");
44
+ const TidUtils_1 = require("../../helper/TidUtils");
45
+ const LogService_1 = require("./LogService");
46
+ /**
47
+ * Handles transaction ID generation for requests to Twitter.
48
+ *
49
+ * @internal
50
+ */
51
+ class TidService {
52
+ _cdnUrl;
53
+ _httpsAgent;
54
+ _requestHeaders;
55
+ _dynamicArgs;
56
+ /**
57
+ * @param httpsAgent - The HTTPS agent to use. If none is provided, default is used.
58
+ */
59
+ constructor(httpsAgent) {
60
+ this._cdnUrl = 'https://abs.twimg.com/responsive-web/client-web';
61
+ this._httpsAgent = httpsAgent ?? new http_1.Agent();
62
+ this._requestHeaders = {
63
+ /* eslint-disable @typescript-eslint/naming-convention */
64
+ Authority: 'x.com',
65
+ 'Accept-Language': 'en-US,en;q=0.9',
66
+ 'Cache-Control': 'no-cache',
67
+ Referer: 'https://x.com',
68
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36',
69
+ 'X-Twitter-Active-User': 'yes',
70
+ 'X-Twitter-Client-Language': 'en',
71
+ /* eslint-enable @typescript-eslint/naming-convention */
72
+ };
73
+ }
74
+ /**
75
+ * Fetches the dynamic args embedded in the homepage.
76
+ *
77
+ * @returns The new dynamic args.
78
+ */
79
+ async getDynamicArgs() {
80
+ const html = await this.getHomepageHtml();
81
+ const root = htmlParser.parse(html);
82
+ const keyElement = root.querySelector("[name='twitter-site-verification']");
83
+ const frameElements = root.querySelectorAll("[id^='loading-x-anim']");
84
+ return {
85
+ verificationKey: keyElement?.getAttribute('content') ?? '',
86
+ frames: frameElements.map((el) => this.parseFrameElement(el)),
87
+ indices: await this.getKeyBytesIndices(html),
88
+ };
89
+ }
90
+ /**
91
+ * Fetches the HTML content of Twitter's homepage.
92
+ *
93
+ * @returns The stringified HTML content of the homepage.
94
+ */
95
+ async getHomepageHtml() {
96
+ const response = await axios_1.default.get('https://x.com', {
97
+ headers: this._requestHeaders,
98
+ httpAgent: this._httpsAgent,
99
+ httpsAgent: this._httpsAgent,
100
+ });
101
+ return response.data;
102
+ }
103
+ async getKeyBytesIndices(html) {
104
+ const ondemandFileMatch = html.match(/ondemand\.s":"([^"]+)"/);
105
+ if (!ondemandFileMatch || !ondemandFileMatch[1]) {
106
+ LogService_1.LogService.log(Logging_1.ELogActions.WARNING, { message: 'ondemand.s file not found' });
107
+ return [0, 0, 0, 0];
108
+ }
109
+ const onDemandFileHash = ondemandFileMatch ? ondemandFileMatch[1] : '';
110
+ const response = await axios_1.default.get(`${this._cdnUrl}/ondemand.s.${onDemandFileHash}a.js`, {
111
+ httpAgent: this._httpsAgent,
112
+ httpsAgent: this._httpsAgent,
113
+ });
114
+ const match = response.data.matchAll(/(\(\w\[(\d{1,2})],\s*16\))+?/gm);
115
+ return Array.from(match).map((m) => Number(m[2]));
116
+ }
117
+ parseFrameElement(element) {
118
+ const pathElement = element.children[0].children[1];
119
+ const value = pathElement.getAttribute('d');
120
+ if (!value) {
121
+ return [[]];
122
+ }
123
+ const rawFrames = value.substring(9).split('C');
124
+ return rawFrames.map((str) => str.replaceAll(/\D+/g, ' ').trim().split(' ')).map((arr) => arr.map(Number));
125
+ }
126
+ /**
127
+ * Generate an `x-client-transaction-id` for the specific URL method and path.
128
+ *
129
+ * @param method - The target method.
130
+ * @param path - The target path.
131
+ *
132
+ * @returns The specific `x-client-transaction-id` token.
133
+ */
134
+ async generate(method, path) {
135
+ try {
136
+ if (!this._dynamicArgs) {
137
+ this._dynamicArgs = await this.getDynamicArgs();
138
+ }
139
+ const { verificationKey, frames, indices } = this._dynamicArgs;
140
+ return (0, TidUtils_1.calculateClientTransactionIdHeader)({
141
+ keyword: 'obfiowerehiring',
142
+ method: method,
143
+ path: path,
144
+ verificationKey: verificationKey,
145
+ frames: frames,
146
+ indices: indices,
147
+ extraByte: 3,
148
+ });
149
+ }
150
+ catch {
151
+ return;
152
+ }
153
+ }
154
+ /**
155
+ * Refreshes the dynamic args from the homepage.
156
+ */
157
+ async refreshDynamicArgs() {
158
+ this._dynamicArgs = await this.getDynamicArgs();
159
+ }
160
+ }
161
+ exports.TidService = TidService;
162
+ //# sourceMappingURL=TidService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TidService.js","sourceRoot":"","sources":["../../../src/services/internal/TidService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA6B;AAE7B,kDAA0B;AAC1B,6DAA+C;AAE/C,iDAAkD;AAElD,oDAA2E;AAK3E,6CAA0C;AAE1C;;;;GAIG;AACH,MAAa,UAAU;IACL,OAAO,CAAS;IAChB,WAAW,CAAQ;IACnB,eAAe,CAAuB;IAC/C,YAAY,CAAmB;IAEvC;;OAEG;IACH,YAAmB,UAAkB;QACpC,IAAI,CAAC,OAAO,GAAG,iDAAiD,CAAC;QACjE,IAAI,CAAC,WAAW,GAAG,UAAU,IAAI,IAAI,YAAK,EAAE,CAAC;QAC7C,IAAI,CAAC,eAAe,GAAG;YACtB,yDAAyD;YAEzD,SAAS,EAAE,OAAO;YAClB,iBAAiB,EAAE,gBAAgB;YACnC,eAAe,EAAE,UAAU;YAC3B,OAAO,EAAE,eAAe;YACxB,YAAY,EACX,iHAAiH;YAClH,uBAAuB,EAAE,KAAK;YAC9B,2BAA2B,EAAE,IAAI;YAEjC,wDAAwD;SACxD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,cAAc;QAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,oCAAoC,CAAC,CAAC;QAC5E,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;QAEtE,OAAO;YACN,eAAe,EAAE,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE;YAC1D,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAC7D,OAAO,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;SAC5C,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,eAAe;QAC5B,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAS,eAAe,EAAE;YACzD,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,UAAU,EAAE,IAAI,CAAC,WAAW;SAC5B,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,IAAY;QAC5C,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC/D,IAAI,CAAC,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,uBAAU,CAAC,GAAG,CAAC,qBAAW,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC,CAAC;YAE9E,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrB,CAAC;QAED,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAS,GAAG,IAAI,CAAC,OAAO,eAAe,gBAAgB,MAAM,EAAE;YAC9F,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,UAAU,EAAE,IAAI,CAAC,WAAW;SAC5B,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;QAEvE,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAEO,iBAAiB,CAAC,OAA+B;QACxD,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO,CAAC,EAAE,CAAC,CAAC;QACb,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEhD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5G,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,IAAY;QACjD,IAAI,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACxB,IAAI,CAAC,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YACjD,CAAC;YAED,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;YAE/D,OAAO,IAAA,6CAAkC,EAAC;gBACzC,OAAO,EAAE,iBAAiB;gBAC1B,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI;gBACV,eAAe,EAAE,eAAe;gBAChC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,OAAO;gBAChB,SAAS,EAAE,CAAC;aACZ,CAAC,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACR,OAAO;QACR,CAAC;IACF,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,kBAAkB;QAC9B,IAAI,CAAC,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IACjD,CAAC;CACD;AA/HD,gCA+HC"}
@@ -1,31 +1,29 @@
1
1
  import { EResourceType } from '../../enums/Resource';
2
- import { FetchArgs } from '../../models/args/FetchArgs';
3
- import { PostArgs } from '../../models/args/PostArgs';
4
- import { IRettiwtConfig } from '../../types/RettiwtConfig';
2
+ import { RettiwtConfig } from '../../models/RettiwtConfig';
3
+ import { IFetchArgs } from '../../types/args/FetchArgs';
4
+ import { IPostArgs } from '../../types/args/PostArgs';
5
5
  /**
6
6
  * The base service that handles all HTTP requests.
7
7
  *
8
8
  * @public
9
9
  */
10
10
  export declare class FetcherService {
11
- /** The api key to use for authenticating against Twitter API as user. */
12
- private readonly _apiKey?;
11
+ /** The AuthService instance to use. */
12
+ private readonly _auth;
13
+ /** The delay/delay function to use (ms). */
14
+ private readonly _delay?;
13
15
  /** The service used to handle HTTP and API errors */
14
16
  private readonly _errorHandler;
15
- /** The guest key to use for authenticating against Twitter API as guest. */
16
- private readonly _guestKey?;
17
- /** The URL To the proxy server to use for all others. */
18
- private readonly _proxyUrl?;
17
+ /** Service responsible for generating the `x-client-transaction-id` header. */
18
+ private readonly _tidProvider;
19
19
  /** The max wait time for a response. */
20
20
  private readonly _timeout;
21
- /** The URL to the proxy server to use only for authentication. */
22
- protected readonly authProxyUrl?: URL;
23
- /** The id of the authenticated user (if any). */
24
- protected readonly userId?: string;
21
+ /** The config object. */
22
+ protected readonly config: RettiwtConfig;
25
23
  /**
26
24
  * @param config - The config object for configuring the Rettiwt instance.
27
25
  */
28
- constructor(config?: IRettiwtConfig);
26
+ constructor(config: RettiwtConfig);
29
27
  /**
30
28
  * Checks the authorization status based on the requested resource.
31
29
  *
@@ -41,13 +39,14 @@ export declare class FetcherService {
41
39
  */
42
40
  private getCredential;
43
41
  /**
44
- * Gets the https agent based on whether a proxy is used or not.
42
+ * Generates the header for the transaction ID.
45
43
  *
46
- * @param proxyUrl - Optional URL with proxy configuration to use for requests to Twitter API.
44
+ * @param method - The target method.
45
+ * @param url - The target URL.
47
46
  *
48
- * @returns The https agent to use.
47
+ * @returns The header containing the transaction ID.
49
48
  */
50
- private getHttpsAgent;
49
+ private getTransactionHeader;
51
50
  /**
52
51
  * Validates the given args against the given resource.
53
52
  *
@@ -57,6 +56,10 @@ export declare class FetcherService {
57
56
  * @returns The validated args.
58
57
  */
59
58
  private validateArgs;
59
+ /**
60
+ * Introduces a delay using the configured delay/delay function.
61
+ */
62
+ private wait;
60
63
  /**
61
64
  * Makes an HTTP request according to the given parameters.
62
65
  *
@@ -85,5 +88,5 @@ export declare class FetcherService {
85
88
  * })
86
89
  * ```
87
90
  */
88
- request<T>(resource: EResourceType, args: FetchArgs | PostArgs): Promise<T>;
91
+ request<T = unknown>(resource: EResourceType, args: IFetchArgs | IPostArgs): Promise<T>;
89
92
  }
@@ -1,88 +1,51 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
- return new (P || (P = Promise))(function (resolve, reject) {
16
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
- step((generator = generator.apply(thisArg, _arguments || [])).next());
20
- });
21
- };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
50
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
51
4
  };
52
5
  Object.defineProperty(exports, "__esModule", { value: true });
53
6
  exports.FetcherService = void 0;
54
- var https_1 = __importDefault(require("https"));
55
- var axios_1 = __importDefault(require("axios"));
56
- var https_proxy_agent_1 = require("https-proxy-agent");
57
- var rettiwt_auth_1 = require("rettiwt-auth");
58
- var Groups_1 = require("../../collections/Groups");
59
- var Requests_1 = require("../../collections/Requests");
60
- var Api_1 = require("../../enums/Api");
61
- var Logging_1 = require("../../enums/Logging");
62
- var FetchArgs_1 = require("../../models/args/FetchArgs");
63
- var PostArgs_1 = require("../../models/args/PostArgs");
64
- var ErrorService_1 = require("../internal/ErrorService");
65
- var LogService_1 = require("../internal/LogService");
66
- var AuthService_1 = require("./AuthService");
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const cookiejar_1 = require("cookiejar");
9
+ const Groups_1 = require("../../collections/Groups");
10
+ const Requests_1 = require("../../collections/Requests");
11
+ const Api_1 = require("../../enums/Api");
12
+ const Logging_1 = require("../../enums/Logging");
13
+ const FetchArgs_1 = require("../../models/args/FetchArgs");
14
+ const PostArgs_1 = require("../../models/args/PostArgs");
15
+ const AuthCredential_1 = require("../../models/auth/AuthCredential");
16
+ const AuthService_1 = require("../internal/AuthService");
17
+ const ErrorService_1 = require("../internal/ErrorService");
18
+ const LogService_1 = require("../internal/LogService");
19
+ const TidService_1 = require("../internal/TidService");
67
20
  /**
68
21
  * The base service that handles all HTTP requests.
69
22
  *
70
23
  * @public
71
24
  */
72
- var FetcherService = /** @class */ (function () {
25
+ class FetcherService {
26
+ /** The AuthService instance to use. */
27
+ _auth;
28
+ /** The delay/delay function to use (ms). */
29
+ _delay;
30
+ /** The service used to handle HTTP and API errors */
31
+ _errorHandler;
32
+ /** Service responsible for generating the `x-client-transaction-id` header. */
33
+ _tidProvider;
34
+ /** The max wait time for a response. */
35
+ _timeout;
36
+ /** The config object. */
37
+ config;
73
38
  /**
74
39
  * @param config - The config object for configuring the Rettiwt instance.
75
40
  */
76
- function FetcherService(config) {
77
- var _a, _b, _c, _d;
78
- LogService_1.LogService.enabled = (_a = config === null || config === void 0 ? void 0 : config.logging) !== null && _a !== void 0 ? _a : false;
79
- this._apiKey = config === null || config === void 0 ? void 0 : config.apiKey;
80
- this._guestKey = config === null || config === void 0 ? void 0 : config.guestKey;
81
- this.userId = (config === null || config === void 0 ? void 0 : config.apiKey) ? AuthService_1.AuthService.getUserId(config.apiKey) : undefined;
82
- this.authProxyUrl = (_b = config === null || config === void 0 ? void 0 : config.authProxyUrl) !== null && _b !== void 0 ? _b : config === null || config === void 0 ? void 0 : config.proxyUrl;
83
- this._proxyUrl = config === null || config === void 0 ? void 0 : config.proxyUrl;
84
- this._timeout = (_c = config === null || config === void 0 ? void 0 : config.timeout) !== null && _c !== void 0 ? _c : 0;
85
- this._errorHandler = (_d = config === null || config === void 0 ? void 0 : config.errorHandler) !== null && _d !== void 0 ? _d : new ErrorService_1.ErrorService();
41
+ constructor(config) {
42
+ LogService_1.LogService.enabled = config.logging ?? false;
43
+ this.config = config;
44
+ this._delay = config.delay;
45
+ this._errorHandler = config.errorHandler ?? new ErrorService_1.ErrorService();
46
+ this._tidProvider = config.tidProvider ?? new TidService_1.TidService(config.httpsAgent);
47
+ this._timeout = config.timeout ?? 0;
48
+ this._auth = new AuthService_1.AuthService(config.httpsAgent);
86
49
  }
87
50
  /**
88
51
  * Checks the authorization status based on the requested resource.
@@ -91,61 +54,57 @@ var FetcherService = /** @class */ (function () {
91
54
  *
92
55
  * @throws An error if not authorized to access the requested resource.
93
56
  */
94
- FetcherService.prototype.checkAuthorization = function (resource) {
57
+ checkAuthorization(resource) {
95
58
  // Logging
96
- LogService_1.LogService.log(Logging_1.ELogActions.AUTHORIZATION, { authenticated: this.userId != undefined });
59
+ LogService_1.LogService.log(Logging_1.ELogActions.AUTHORIZATION, { authenticated: this.config.userId != undefined });
97
60
  // Checking authorization status
98
- if (!Groups_1.allowGuestAuthentication.includes(resource) && this.userId == undefined) {
61
+ if (!Groups_1.allowGuestAuthentication.includes(resource) && this.config.userId == undefined) {
99
62
  throw new Error(Api_1.EApiErrors.RESOURCE_NOT_ALLOWED);
100
63
  }
101
- };
64
+ }
102
65
  /**
103
66
  * Returns the AuthCredentials based on the type of key present.
104
67
  *
105
68
  * @returns The generated AuthCredential
106
69
  */
107
- FetcherService.prototype.getCredential = function () {
108
- return __awaiter(this, void 0, void 0, function () {
109
- return __generator(this, function (_a) {
110
- switch (_a.label) {
111
- case 0:
112
- if (!this._apiKey) return [3 /*break*/, 1];
113
- // Logging
114
- LogService_1.LogService.log(Logging_1.ELogActions.GET, { target: 'USER_CREDENTIAL' });
115
- return [2 /*return*/, new rettiwt_auth_1.AuthCredential(AuthService_1.AuthService.decodeCookie(this._apiKey).split(';'))];
116
- case 1:
117
- if (!this._guestKey) return [3 /*break*/, 2];
118
- // Logging
119
- LogService_1.LogService.log(Logging_1.ELogActions.GET, { target: 'GUEST_CREDENTIAL' });
120
- return [2 /*return*/, new rettiwt_auth_1.AuthCredential(undefined, this._guestKey)];
121
- case 2:
122
- // Logging
123
- LogService_1.LogService.log(Logging_1.ELogActions.GET, { target: 'NEW_GUEST_CREDENTIAL' });
124
- return [4 /*yield*/, new rettiwt_auth_1.Auth({ proxyUrl: this.authProxyUrl }).getGuestCredential()];
125
- case 3: return [2 /*return*/, _a.sent()];
126
- }
127
- });
128
- });
129
- };
70
+ async getCredential() {
71
+ if (this.config.apiKey) {
72
+ // Logging
73
+ LogService_1.LogService.log(Logging_1.ELogActions.GET, { target: 'USER_CREDENTIAL' });
74
+ return new AuthCredential_1.AuthCredential(AuthService_1.AuthService.decodeCookie(this.config.apiKey)
75
+ .split(';')
76
+ .map((item) => new cookiejar_1.Cookie(item)));
77
+ }
78
+ else {
79
+ // Logging
80
+ LogService_1.LogService.log(Logging_1.ELogActions.GET, { target: 'NEW_GUEST_CREDENTIAL' });
81
+ return this._auth.guest();
82
+ }
83
+ }
130
84
  /**
131
- * Gets the https agent based on whether a proxy is used or not.
85
+ * Generates the header for the transaction ID.
132
86
  *
133
- * @param proxyUrl - Optional URL with proxy configuration to use for requests to Twitter API.
87
+ * @param method - The target method.
88
+ * @param url - The target URL.
134
89
  *
135
- * @returns The https agent to use.
90
+ * @returns The header containing the transaction ID.
136
91
  */
137
- FetcherService.prototype.getHttpsAgent = function (proxyUrl) {
138
- if (proxyUrl) {
139
- // Logging
140
- LogService_1.LogService.log(Logging_1.ELogActions.GET, { target: 'HTTPS_PROXY_AGENT' });
141
- return new https_proxy_agent_1.HttpsProxyAgent(proxyUrl);
92
+ async getTransactionHeader(method, url) {
93
+ // Getting the URL path excluding all params
94
+ const path = new URL(url).pathname.split('?')[0].trim();
95
+ // Generating the transaction ID
96
+ const tid = await this._tidProvider.generate(method.toUpperCase(), path);
97
+ if (tid) {
98
+ return {
99
+ /* eslint-disable @typescript-eslint/naming-convention */
100
+ 'x-client-transaction-id': tid,
101
+ /* eslint-enable @typescript-eslint/naming-convention */
102
+ };
142
103
  }
143
104
  else {
144
- // Logging
145
- LogService_1.LogService.log(Logging_1.ELogActions.GET, { target: 'HTTPS_AGENT' });
146
- return new https_1.default.Agent();
105
+ return undefined;
147
106
  }
148
- };
107
+ }
149
108
  /**
150
109
  * Validates the given args against the given resource.
151
110
  *
@@ -154,7 +113,7 @@ var FetcherService = /** @class */ (function () {
154
113
  *
155
114
  * @returns The validated args.
156
115
  */
157
- FetcherService.prototype.validateArgs = function (resource, args) {
116
+ validateArgs(resource, args) {
158
117
  if (Groups_1.fetchResources.includes(resource)) {
159
118
  // Logging
160
119
  LogService_1.LogService.log(Logging_1.ELogActions.VALIDATE, { target: 'FETCH_ARGS' });
@@ -165,7 +124,27 @@ var FetcherService = /** @class */ (function () {
165
124
  LogService_1.LogService.log(Logging_1.ELogActions.VALIDATE, { target: 'POST_ARGS' });
166
125
  return new PostArgs_1.PostArgs(resource, args);
167
126
  }
168
- };
127
+ }
128
+ /**
129
+ * Introduces a delay using the configured delay/delay function.
130
+ */
131
+ async wait() {
132
+ // If no delay is set, skip
133
+ if (this._delay == undefined) {
134
+ return;
135
+ }
136
+ /** The delay (in ms) to use. */
137
+ let delay = 0;
138
+ // Getting the delay
139
+ if (this._delay && typeof this._delay == 'number') {
140
+ delay = this._delay;
141
+ }
142
+ else if (this._delay && typeof this._delay == 'function') {
143
+ delay = await this._delay();
144
+ }
145
+ // Awaiting for the delay time
146
+ await new Promise((resolve) => setTimeout(resolve, delay));
147
+ }
169
148
  /**
170
149
  * Makes an HTTP request according to the given parameters.
171
150
  *
@@ -194,46 +173,40 @@ var FetcherService = /** @class */ (function () {
194
173
  * })
195
174
  * ```
196
175
  */
197
- FetcherService.prototype.request = function (resource, args) {
198
- return __awaiter(this, void 0, void 0, function () {
199
- var httpsAgent, cred, config, error_1;
200
- return __generator(this, function (_a) {
201
- switch (_a.label) {
202
- case 0:
203
- // Logging
204
- LogService_1.LogService.log(Logging_1.ELogActions.REQUEST, { resource: resource, args: args });
205
- // Checking authorization for the requested resource
206
- this.checkAuthorization(resource);
207
- // Validating args
208
- args = this.validateArgs(resource, args);
209
- httpsAgent = this.getHttpsAgent(this._proxyUrl);
210
- return [4 /*yield*/, this.getCredential()];
211
- case 1:
212
- cred = _a.sent();
213
- config = Requests_1.requests[resource](args);
214
- // Setting additional request parameters
215
- config.headers = __assign(__assign({}, config.headers), cred.toHeader());
216
- config.httpAgent = httpsAgent;
217
- config.httpsAgent = httpsAgent;
218
- config.timeout = this._timeout;
219
- _a.label = 2;
220
- case 2:
221
- _a.trys.push([2, 4, , 5]);
222
- return [4 /*yield*/, (0, axios_1.default)(config)];
223
- case 3:
224
- // Returning the reponse body
225
- return [2 /*return*/, (_a.sent()).data];
226
- case 4:
227
- error_1 = _a.sent();
228
- // If error, delegate handling to error handler
229
- this._errorHandler.handle(error_1);
230
- throw error_1;
231
- case 5: return [2 /*return*/];
232
- }
233
- });
234
- });
235
- };
236
- return FetcherService;
237
- }());
176
+ async request(resource, args) {
177
+ // Logging
178
+ LogService_1.LogService.log(Logging_1.ELogActions.REQUEST, { resource: resource, args: args });
179
+ // Checking authorization for the requested resource
180
+ this.checkAuthorization(resource);
181
+ // Validating args
182
+ args = this.validateArgs(resource, args);
183
+ // Getting credentials from key
184
+ const cred = await this.getCredential();
185
+ // Getting request configuration
186
+ const config = Requests_1.requests[resource](args);
187
+ // Setting additional request parameters
188
+ config.headers = {
189
+ ...config.headers,
190
+ ...cred.toHeader(),
191
+ ...(await this.getTransactionHeader(config.method ?? '', config.url ?? '')),
192
+ ...this.config.headers,
193
+ };
194
+ config.httpAgent = this.config.httpsAgent;
195
+ config.httpsAgent = this.config.httpsAgent;
196
+ config.timeout = this._timeout;
197
+ // Sending the request
198
+ try {
199
+ // Introducing a delay
200
+ await this.wait();
201
+ // Returning the reponse body
202
+ return (await (0, axios_1.default)(config)).data;
203
+ }
204
+ catch (error) {
205
+ // If error, delegate handling to error handler
206
+ this._errorHandler.handle(error);
207
+ throw error;
208
+ }
209
+ }
210
+ }
238
211
  exports.FetcherService = FetcherService;
239
212
  //# sourceMappingURL=FetcherService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FetcherService.js","sourceRoot":"","sources":["../../../src/services/public/FetcherService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAqC;AAErC,gDAA0B;AAC1B,uDAAoD;AACpD,6CAAoD;AAEpD,mDAAmG;AACnG,uDAAsD;AACtD,uCAA6C;AAC7C,+CAAkD;AAElD,yDAAwD;AACxD,uDAAsD;AAItD,yDAAwD;AACxD,qDAAoD;AAEpD,6CAA4C;AAE5C;;;;GAIG;AACH;IAsBC;;OAEG;IACH,wBAAmB,MAAuB;;QACzC,uBAAU,CAAC,OAAO,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,mCAAI,KAAK,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,EAAC,CAAC,CAAC,yBAAW,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChF,IAAI,CAAC,YAAY,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,mCAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAC;QAC7D,IAAI,CAAC,SAAS,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,mCAAI,CAAC,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,mCAAI,IAAI,2BAAY,EAAE,CAAC;IACjE,CAAC;IAED;;;;;;OAMG;IACK,2CAAkB,GAA1B,UAA2B,QAAuB;QACjD,UAAU;QACV,uBAAU,CAAC,GAAG,CAAC,qBAAW,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC;QAEvF,gCAAgC;QAChC,IAAI,CAAC,iCAAwB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE;YAC7E,MAAM,IAAI,KAAK,CAAC,gBAAU,CAAC,oBAAoB,CAAC,CAAC;SACjD;IACF,CAAC;IAED;;;;OAIG;IACW,sCAAa,GAA3B;;;;;6BACK,IAAI,CAAC,OAAO,EAAZ,wBAAY;wBACf,UAAU;wBACV,uBAAU,CAAC,GAAG,CAAC,qBAAW,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;wBAE/D,sBAAO,IAAI,6BAAc,CAAC,yBAAW,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAC;;6BACnE,IAAI,CAAC,SAAS,EAAd,wBAAc;wBACxB,UAAU;wBACV,uBAAU,CAAC,GAAG,CAAC,qBAAW,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;wBAEhE,sBAAO,IAAI,6BAAc,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAC;;wBAErD,UAAU;wBACV,uBAAU,CAAC,GAAG,CAAC,qBAAW,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC,CAAC;wBAE7D,qBAAM,IAAI,mBAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,kBAAkB,EAAE,EAAA;4BAA3E,sBAAO,SAAoE,EAAC;;;;KAE7E;IAED;;;;;;OAMG;IACK,sCAAa,GAArB,UAAsB,QAAc;QACnC,IAAI,QAAQ,EAAE;YACb,UAAU;YACV,uBAAU,CAAC,GAAG,CAAC,qBAAW,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC;YAEjE,OAAO,IAAI,mCAAe,CAAC,QAAQ,CAAC,CAAC;SACrC;aAAM;YACN,UAAU;YACV,uBAAU,CAAC,GAAG,CAAC,qBAAW,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;YAE3D,OAAO,IAAI,eAAK,CAAC,KAAK,EAAE,CAAC;SACzB;IACF,CAAC;IAED;;;;;;;OAOG;IACK,qCAAY,GAApB,UAAqB,QAAuB,EAAE,IAA0B;QACvE,IAAI,uBAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACtC,UAAU;YACV,uBAAU,CAAC,GAAG,CAAC,qBAAW,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;YAE/D,OAAO,IAAI,qBAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;SACrC;aAAM,IAAI,sBAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAC5C,UAAU;YACV,uBAAU,CAAC,GAAG,CAAC,qBAAW,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YAE9D,OAAO,IAAI,mBAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;SACpC;IACF,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACU,gCAAO,GAApB,UAAwB,QAAuB,EAAE,IAA0B;;;;;;wBAC1E,UAAU;wBACV,uBAAU,CAAC,GAAG,CAAC,qBAAW,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;wBAExE,oDAAoD;wBACpD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;wBAElC,kBAAkB;wBAClB,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAE,CAAC;wBAGpC,UAAU,GAAU,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBAGhC,qBAAM,IAAI,CAAC,aAAa,EAAE,EAAA;;wBAAjD,IAAI,GAAmB,SAA0B;wBAGjD,MAAM,GAAG,mBAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;wBAExC,wCAAwC;wBACxC,MAAM,CAAC,OAAO,yBAAQ,MAAM,CAAC,OAAO,GAAK,IAAI,CAAC,QAAQ,EAAE,CAAE,CAAC;wBAC3D,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC;wBAC9B,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;wBAC/B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;;;;wBAKtB,qBAAM,IAAA,eAAK,EAAI,MAAM,CAAC,EAAA;;oBAD9B,6BAA6B;oBAC7B,sBAAO,CAAC,SAAsB,CAAC,CAAC,IAAI,EAAC;;;wBAErC,+CAA+C;wBAC/C,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAK,CAAC,CAAC;wBACjC,MAAM,OAAK,CAAC;;;;;KAEb;IACF,qBAAC;AAAD,CAAC,AAvLD,IAuLC;AAvLY,wCAAc"}
1
+ {"version":3,"file":"FetcherService.js","sourceRoot":"","sources":["../../../src/services/public/FetcherService.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { CursoredData } from '../../models/data/CursoredData';
2
2
  import { Tweet } from '../../models/data/Tweet';
3
3
  import { User } from '../../models/data/User';
4
- import { IRettiwtConfig } from '../../types/RettiwtConfig';
4
+ import { RettiwtConfig } from '../../models/RettiwtConfig';
5
5
  import { FetcherService } from './FetcherService';
6
6
  export declare class ListService extends FetcherService {
7
7
  /**
@@ -9,7 +9,7 @@ export declare class ListService extends FetcherService {
9
9
  *
10
10
  * @internal
11
11
  */
12
- constructor(config?: IRettiwtConfig);
12
+ constructor(config: RettiwtConfig);
13
13
  /**
14
14
  * Get the list of members of a tweet list.
15
15
  *