rettiwt-api 1.1.8 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (443) hide show
  1. package/.github/workflows/build-docs.yml +22 -21
  2. package/.github/workflows/publish-to-npm.yml +29 -0
  3. package/README.md +52 -40
  4. package/dist/config/env.d.ts +5 -5
  5. package/dist/config/env.js +8 -8
  6. package/dist/enums/Errors.d.ts +21 -20
  7. package/dist/enums/Errors.js +28 -27
  8. package/dist/enums/Errors.js.map +1 -1
  9. package/dist/enums/HTTP.d.ts +17 -17
  10. package/dist/enums/HTTP.js +22 -22
  11. package/dist/graphql/enums/Errors.d.ts +21 -21
  12. package/dist/graphql/enums/Errors.js +28 -28
  13. package/dist/graphql/queries/RootQuery.d.ts +4 -4
  14. package/dist/graphql/queries/RootQuery.js +77 -77
  15. package/dist/graphql/queries/RootQuery.js.map +1 -1
  16. package/dist/graphql/resolvers/AccountResolver.d.ts +12 -12
  17. package/dist/graphql/resolvers/AccountResolver.js +83 -83
  18. package/dist/graphql/resolvers/ResolverBase.d.ts +16 -16
  19. package/dist/graphql/resolvers/ResolverBase.js +22 -22
  20. package/dist/graphql/resolvers/TweetResolver.d.ts +46 -46
  21. package/dist/graphql/resolvers/TweetResolver.js +311 -311
  22. package/dist/graphql/resolvers/TweetResolver.js.map +1 -1
  23. package/dist/graphql/resolvers/UserResolver.d.ts +48 -48
  24. package/dist/graphql/resolvers/UserResolver.js +333 -333
  25. package/dist/graphql/resolvers/UserResolver.js.map +1 -1
  26. package/dist/graphql/types/Global.d.ts +4 -4
  27. package/dist/graphql/types/Global.js +12 -12
  28. package/dist/graphql/types/TweetTypes.d.ts +4 -4
  29. package/dist/graphql/types/TweetTypes.js +159 -159
  30. package/dist/graphql/types/UserTypes.d.ts +3 -3
  31. package/dist/graphql/types/UserTypes.js +136 -136
  32. package/dist/graphql/types/UserTypes.js.map +1 -1
  33. package/dist/index.d.ts +45 -43
  34. package/dist/index.js +72 -70
  35. package/dist/index.js.map +1 -1
  36. package/dist/models/args/TweetListArgs.d.ts +21 -21
  37. package/dist/models/args/TweetListArgs.js +53 -53
  38. package/dist/models/args/TweetListArgs.js.map +1 -1
  39. package/dist/models/args/UserListArgs.d.ts +21 -21
  40. package/dist/models/args/UserListArgs.js +53 -53
  41. package/dist/models/args/UserListArgs.js.map +1 -1
  42. package/dist/models/auth/AuthCookie.d.ts +21 -21
  43. package/dist/models/auth/AuthCookie.js +32 -32
  44. package/dist/models/data/CursoredData.d.ts +34 -34
  45. package/dist/models/data/CursoredData.js +41 -41
  46. package/dist/models/data/Tweet.d.ts +53 -53
  47. package/dist/models/data/Tweet.js +103 -103
  48. package/dist/models/data/Tweet.js.map +1 -1
  49. package/dist/models/data/User.d.ts +41 -41
  50. package/dist/models/data/User.js +31 -31
  51. package/dist/models/data/User.js.map +1 -1
  52. package/dist/server.d.ts +1 -1
  53. package/dist/server.js +75 -75
  54. package/dist/services/auth/AccountService.d.ts +83 -83
  55. package/dist/services/auth/AccountService.js +411 -411
  56. package/dist/services/auth/AuthService.d.ts +31 -31
  57. package/dist/services/auth/AuthService.js +117 -117
  58. package/dist/services/data/TweetService.d.ts +60 -74
  59. package/dist/services/data/TweetService.js +250 -254
  60. package/dist/services/data/TweetService.js.map +1 -1
  61. package/dist/services/data/UserService.d.ts +71 -87
  62. package/dist/services/data/UserService.js +277 -296
  63. package/dist/services/data/UserService.js.map +1 -1
  64. package/dist/services/helper/Headers.d.ts +19 -19
  65. package/dist/services/helper/Headers.js +61 -61
  66. package/dist/services/helper/Headers.js.map +1 -1
  67. package/dist/services/helper/Parser.d.ts +22 -28
  68. package/dist/services/helper/Parser.js +83 -104
  69. package/dist/services/helper/Parser.js.map +1 -1
  70. package/dist/services/helper/extractors/Tweets.d.ts +23 -32
  71. package/dist/services/helper/extractors/Tweets.js +199 -263
  72. package/dist/services/helper/extractors/Tweets.js.map +1 -1
  73. package/dist/services/helper/extractors/Users.d.ts +17 -26
  74. package/dist/services/helper/extractors/Users.js +150 -202
  75. package/dist/services/helper/extractors/Users.js.map +1 -1
  76. package/dist/services/helper/payloads/LoginFlows.d.ts +77 -77
  77. package/dist/services/helper/payloads/LoginFlows.js +91 -91
  78. package/dist/services/helper/urls/Authentication.d.ts +4 -4
  79. package/dist/services/helper/urls/Authentication.js +10 -10
  80. package/dist/services/util/CacheService.d.ts +33 -33
  81. package/dist/services/util/CacheService.js +95 -95
  82. package/dist/services/util/FetcherService.d.ts +65 -65
  83. package/dist/services/util/FetcherService.js +201 -213
  84. package/dist/services/util/FetcherService.js.map +1 -1
  85. package/dist/types/Args.d.ts +11 -38
  86. package/dist/types/Args.js +3 -4
  87. package/dist/types/Args.js.map +1 -1
  88. package/dist/types/Authentication.d.ts +55 -55
  89. package/dist/types/Authentication.js +5 -5
  90. package/dist/types/Resolvers.d.ts +15 -15
  91. package/dist/types/Resolvers.js +2 -2
  92. package/dist/types/Rettiwt.d.ts +16 -16
  93. package/dist/types/Rettiwt.js +2 -2
  94. package/dist/types/Service.d.ts +22 -22
  95. package/dist/types/Service.js +4 -4
  96. package/dist/types/Tweet.d.ts +46 -46
  97. package/dist/types/Tweet.js +2 -2
  98. package/dist/types/User.d.ts +35 -35
  99. package/dist/types/User.js +2 -2
  100. package/docs/.nojekyll +1 -0
  101. package/docs/assets/highlight.css +64 -0
  102. package/docs/assets/main.js +58 -0
  103. package/docs/assets/search.js +1 -0
  104. package/docs/assets/style.css +1280 -0
  105. package/docs/classes/AccountService.html +286 -0
  106. package/docs/classes/AuthCookie.html +146 -0
  107. package/docs/classes/AuthService.html +147 -0
  108. package/docs/classes/CacheService.html +157 -0
  109. package/docs/classes/Cursor.html +102 -0
  110. package/docs/classes/CursoredData.html +126 -0
  111. package/docs/classes/DataValidationError.html +120 -0
  112. package/docs/classes/FetcherService.html +225 -0
  113. package/docs/classes/Tweet.html +210 -0
  114. package/docs/classes/TweetEntities.html +128 -0
  115. package/docs/classes/TweetFilter.html +223 -0
  116. package/docs/classes/TweetListArgs.html +118 -0
  117. package/docs/classes/TweetService.html +319 -0
  118. package/docs/classes/User.html +230 -0
  119. package/docs/classes/UserListArgs.html +118 -0
  120. package/docs/classes/UserService.html +355 -0
  121. package/docs/enums/HttpMethods.html +74 -0
  122. package/docs/functions/Rettiwt.html +100 -0
  123. package/docs/index.html +159 -0
  124. package/docs/interfaces/IAuthCookie.html +104 -0
  125. package/docs/interfaces/ICursor.html +77 -0
  126. package/docs/interfaces/ICursoredData.html +93 -0
  127. package/docs/interfaces/IDataContext.html +91 -0
  128. package/docs/interfaces/IDataValidationError.html +109 -0
  129. package/docs/interfaces/IListArgs.html +87 -0
  130. package/docs/interfaces/ITweet.html +176 -0
  131. package/docs/interfaces/ITweetEntities.html +104 -0
  132. package/docs/interfaces/ITweetFilter.html +158 -0
  133. package/docs/interfaces/IUser.html +194 -0
  134. package/docs/modules.html +111 -0
  135. package/package.json +4 -3
  136. package/src/enums/Errors.ts +2 -1
  137. package/src/graphql/queries/RootQuery.ts +1 -1
  138. package/src/graphql/resolvers/TweetResolver.ts +12 -59
  139. package/src/graphql/resolvers/UserResolver.ts +4 -4
  140. package/src/graphql/types/UserTypes.ts +2 -2
  141. package/src/index.ts +5 -3
  142. package/src/models/args/TweetListArgs.ts +2 -2
  143. package/src/models/args/UserListArgs.ts +1 -1
  144. package/src/models/data/Tweet.ts +3 -3
  145. package/src/models/data/User.ts +2 -2
  146. package/src/services/data/TweetService.ts +45 -72
  147. package/src/services/data/UserService.ts +61 -71
  148. package/src/services/helper/Headers.ts +34 -34
  149. package/src/services/helper/Parser.ts +5 -26
  150. package/src/services/helper/extractors/Tweets.ts +35 -97
  151. package/src/services/helper/extractors/Users.ts +11 -62
  152. package/src/services/util/FetcherService.ts +15 -22
  153. package/src/types/Args.ts +0 -37
  154. package/Dockerfile +0 -9
  155. package/dist/Test.d.ts +0 -0
  156. package/dist/Test.js +0 -2
  157. package/dist/Test.js.map +0 -1
  158. package/dist/endpoints/Endpoints.d.ts +0 -14
  159. package/dist/endpoints/Endpoints.js +0 -20
  160. package/dist/endpoints/Endpoints.js.map +0 -1
  161. package/dist/endpoints/Url.d.ts +0 -5
  162. package/dist/endpoints/Url.js +0 -12
  163. package/dist/endpoints/Url.js.map +0 -1
  164. package/dist/enums/Endpoints.d.ts +0 -25
  165. package/dist/enums/Endpoints.js +0 -31
  166. package/dist/enums/Endpoints.js.map +0 -1
  167. package/dist/graphql/types/Errors.d.ts +0 -20
  168. package/dist/graphql/types/Errors.js +0 -28
  169. package/dist/graphql/types/Errors.js.map +0 -1
  170. package/dist/middlewares/Authentication.d.ts +0 -0
  171. package/dist/middlewares/Authentication.js +0 -2
  172. package/dist/middlewares/Authentication.js.map +0 -1
  173. package/dist/models/args/TweetFilter.d.ts +0 -59
  174. package/dist/models/args/TweetFilter.js +0 -101
  175. package/dist/models/args/TweetFilter.js.map +0 -1
  176. package/dist/models/data/DataValidationError.d.ts +0 -18
  177. package/dist/models/data/DataValidationError.js +0 -21
  178. package/dist/models/data/DataValidationError.js.map +0 -1
  179. package/dist/models/data/Errors.d.ts +0 -18
  180. package/dist/models/data/Errors.js +0 -21
  181. package/dist/models/data/Errors.js.map +0 -1
  182. package/dist/models/data/Service.d.ts +0 -33
  183. package/dist/models/data/Service.js +0 -41
  184. package/dist/models/data/Service.js.map +0 -1
  185. package/dist/models/errors/DataValidationError.d.ts +0 -20
  186. package/dist/models/errors/DataValidationError.js +0 -23
  187. package/dist/models/errors/DataValidationError.js.map +0 -1
  188. package/dist/models/graphql/Global.d.ts +0 -4
  189. package/dist/models/graphql/Global.js +0 -13
  190. package/dist/models/graphql/Global.js.map +0 -1
  191. package/dist/models/graphql/TweetTypes.d.ts +0 -6
  192. package/dist/models/graphql/TweetTypes.js +0 -156
  193. package/dist/models/graphql/TweetTypes.js.map +0 -1
  194. package/dist/models/graphql/UserTypes.d.ts +0 -3
  195. package/dist/models/graphql/UserTypes.js +0 -139
  196. package/dist/models/graphql/UserTypes.js.map +0 -1
  197. package/dist/models/query/Variables.d.ts +0 -2
  198. package/dist/models/query/Variables.js +0 -10
  199. package/dist/models/query/Variables.js.map +0 -1
  200. package/dist/queries/RootQuery.d.ts +0 -4
  201. package/dist/queries/RootQuery.js +0 -70
  202. package/dist/queries/RootQuery.js.map +0 -1
  203. package/dist/requests/Url.d.ts +0 -5
  204. package/dist/requests/Url.js +0 -12
  205. package/dist/requests/Url.js.map +0 -1
  206. package/dist/requests/payloads/Variables.d.ts +0 -23
  207. package/dist/requests/payloads/Variables.js +0 -24
  208. package/dist/requests/payloads/Variables.js.map +0 -1
  209. package/dist/resolvers/AccountResolver.d.ts +0 -12
  210. package/dist/resolvers/AccountResolver.js +0 -84
  211. package/dist/resolvers/AccountResolver.js.map +0 -1
  212. package/dist/resolvers/ResolverBase.d.ts +0 -5
  213. package/dist/resolvers/ResolverBase.js +0 -11
  214. package/dist/resolvers/ResolverBase.js.map +0 -1
  215. package/dist/resolvers/TweetResolver.d.ts +0 -54
  216. package/dist/resolvers/TweetResolver.js +0 -332
  217. package/dist/resolvers/TweetResolver.js.map +0 -1
  218. package/dist/resolvers/UserResolver.d.ts +0 -38
  219. package/dist/resolvers/UserResolver.js +0 -253
  220. package/dist/resolvers/UserResolver.js.map +0 -1
  221. package/dist/services/AuthService.d.ts +0 -22
  222. package/dist/services/AuthService.js +0 -106
  223. package/dist/services/AuthService.js.map +0 -1
  224. package/dist/services/CacheService.d.ts +0 -30
  225. package/dist/services/CacheService.js +0 -93
  226. package/dist/services/CacheService.js.map +0 -1
  227. package/dist/services/FetcherService.d.ts +0 -61
  228. package/dist/services/FetcherService.js +0 -209
  229. package/dist/services/FetcherService.js.map +0 -1
  230. package/dist/services/accounts/AccountService.d.ts +0 -65
  231. package/dist/services/accounts/AccountService.js +0 -336
  232. package/dist/services/accounts/AccountService.js.map +0 -1
  233. package/dist/services/accounts/LoginFlows.d.ts +0 -77
  234. package/dist/services/accounts/LoginFlows.js +0 -92
  235. package/dist/services/accounts/LoginFlows.js.map +0 -1
  236. package/dist/services/auth/LoginFlows.d.ts +0 -77
  237. package/dist/services/auth/LoginFlows.js +0 -92
  238. package/dist/services/auth/LoginFlows.js.map +0 -1
  239. package/dist/services/data/TrendService.d.ts +0 -17
  240. package/dist/services/data/TrendService.js +0 -116
  241. package/dist/services/data/TrendService.js.map +0 -1
  242. package/dist/services/data/UserAccountService.d.ts +0 -42
  243. package/dist/services/data/UserAccountService.js +0 -239
  244. package/dist/services/data/UserAccountService.js.map +0 -1
  245. package/dist/services/helper/Deserializers.d.ts +0 -19
  246. package/dist/services/helper/Deserializers.js +0 -115
  247. package/dist/services/helper/Deserializers.js.map +0 -1
  248. package/dist/services/helper/Extractors.d.ts +0 -104
  249. package/dist/services/helper/Extractors.js +0 -432
  250. package/dist/services/helper/Extractors.js.map +0 -1
  251. package/dist/services/helper/Urls.d.ts +0 -85
  252. package/dist/services/helper/Urls.js +0 -130
  253. package/dist/services/helper/Urls.js.map +0 -1
  254. package/dist/services/helper/deserializers/Tweets.d.ts +0 -12
  255. package/dist/services/helper/deserializers/Tweets.js +0 -92
  256. package/dist/services/helper/deserializers/Tweets.js.map +0 -1
  257. package/dist/services/helper/deserializers/Users.d.ts +0 -7
  258. package/dist/services/helper/deserializers/Users.js +0 -27
  259. package/dist/services/helper/deserializers/Users.js.map +0 -1
  260. package/dist/services/helper/extractors/Trends.d.ts +0 -3
  261. package/dist/services/helper/extractors/Trends.js +0 -51
  262. package/dist/services/helper/extractors/Trends.js.map +0 -1
  263. package/dist/services/helper/urls/Trends.d.ts +0 -7
  264. package/dist/services/helper/urls/Trends.js +0 -13
  265. package/dist/services/helper/urls/Trends.js.map +0 -1
  266. package/dist/services/helper/urls/Tweets.d.ts +0 -32
  267. package/dist/services/helper/urls/Tweets.js +0 -51
  268. package/dist/services/helper/urls/Tweets.js.map +0 -1
  269. package/dist/services/helper/urls/Users.d.ts +0 -38
  270. package/dist/services/helper/urls/Users.js +0 -76
  271. package/dist/services/helper/urls/Users.js.map +0 -1
  272. package/dist/types/HTTP.d.ts +0 -17
  273. package/dist/types/HTTP.js +0 -23
  274. package/dist/types/HTTP.js.map +0 -1
  275. package/dist/types/Query.d.ts +0 -80
  276. package/dist/types/Query.js +0 -3
  277. package/dist/types/Query.js.map +0 -1
  278. package/dist/types/Trends.d.ts +0 -50
  279. package/dist/types/Trends.js +0 -3
  280. package/dist/types/Trends.js.map +0 -1
  281. package/dist/types/UserAccount.d.ts +0 -19
  282. package/dist/types/UserAccount.js +0 -4
  283. package/dist/types/UserAccount.js.map +0 -1
  284. package/dist/types/args/TweetFilter.d.ts +0 -54
  285. package/dist/types/args/TweetFilter.js +0 -96
  286. package/dist/types/args/TweetFilter.js.map +0 -1
  287. package/dist/types/args/TweetListArg.d.ts +0 -10
  288. package/dist/types/args/TweetListArg.js +0 -42
  289. package/dist/types/args/TweetListArg.js.map +0 -1
  290. package/dist/types/args/TweetListArgs.d.ts +0 -20
  291. package/dist/types/args/TweetListArgs.js +0 -52
  292. package/dist/types/args/TweetListArgs.js.map +0 -1
  293. package/dist/types/args/UserListArgs.d.ts +0 -16
  294. package/dist/types/args/UserListArgs.js +0 -48
  295. package/dist/types/args/UserListArgs.js.map +0 -1
  296. package/dist/types/data/Errors.d.ts +0 -35
  297. package/dist/types/data/Errors.js +0 -45
  298. package/dist/types/data/Errors.js.map +0 -1
  299. package/dist/types/data/Service.d.ts +0 -43
  300. package/dist/types/data/Service.js +0 -22
  301. package/dist/types/data/Service.js.map +0 -1
  302. package/dist/types/data/Tweet.d.ts +0 -98
  303. package/dist/types/data/Tweet.js +0 -4
  304. package/dist/types/data/Tweet.js.map +0 -1
  305. package/dist/types/data/TweetFilter.d.ts +0 -49
  306. package/dist/types/data/TweetFilter.js +0 -63
  307. package/dist/types/data/TweetFilter.js.map +0 -1
  308. package/dist/types/data/User.d.ts +0 -38
  309. package/dist/types/data/User.js +0 -3
  310. package/dist/types/data/User.js.map +0 -1
  311. package/dist/types/graphql/Errors.d.ts +0 -15
  312. package/dist/types/graphql/Errors.js +0 -23
  313. package/dist/types/graphql/Errors.js.map +0 -1
  314. package/dist/types/interfaces/Args.d.ts +0 -38
  315. package/dist/types/interfaces/Args.js +0 -5
  316. package/dist/types/interfaces/Args.js.map +0 -1
  317. package/dist/types/interfaces/Authentication.d.ts +0 -40
  318. package/dist/types/interfaces/Authentication.js +0 -5
  319. package/dist/types/interfaces/Authentication.js.map +0 -1
  320. package/dist/types/interfaces/Resolvers.d.ts +0 -14
  321. package/dist/types/interfaces/Resolvers.js +0 -3
  322. package/dist/types/interfaces/Resolvers.js.map +0 -1
  323. package/dist/types/interfaces/Rettiwt.d.ts +0 -16
  324. package/dist/types/interfaces/Rettiwt.js +0 -3
  325. package/dist/types/interfaces/Rettiwt.js.map +0 -1
  326. package/dist/types/interfaces/Service.d.ts +0 -13
  327. package/dist/types/interfaces/Service.js +0 -3
  328. package/dist/types/interfaces/Service.js.map +0 -1
  329. package/dist/types/interfaces/Services.d.ts +0 -13
  330. package/dist/types/interfaces/Services.js +0 -3
  331. package/dist/types/interfaces/Services.js.map +0 -1
  332. package/dist/types/interfaces/Tweet.d.ts +0 -46
  333. package/dist/types/interfaces/Tweet.js +0 -3
  334. package/dist/types/interfaces/Tweet.js.map +0 -1
  335. package/dist/types/interfaces/TweetFilter.d.ts +0 -0
  336. package/dist/types/interfaces/TweetFilter.js +0 -2
  337. package/dist/types/interfaces/TweetFilter.js.map +0 -1
  338. package/dist/types/interfaces/User.d.ts +0 -35
  339. package/dist/types/interfaces/User.js +0 -3
  340. package/dist/types/interfaces/User.js.map +0 -1
  341. package/dist/types/raw/auth/Cookie.d.ts +0 -16
  342. package/dist/types/raw/auth/Cookie.js +0 -3
  343. package/dist/types/raw/auth/Cookie.js.map +0 -1
  344. package/dist/types/raw/data/tweet/Favouriters.d.ts +0 -164
  345. package/dist/types/raw/data/tweet/Favouriters.js +0 -3
  346. package/dist/types/raw/data/tweet/Favouriters.js.map +0 -1
  347. package/dist/types/raw/data/tweet/Retweeters.d.ts +0 -171
  348. package/dist/types/raw/data/tweet/Retweeters.js +0 -3
  349. package/dist/types/raw/data/tweet/Retweeters.js.map +0 -1
  350. package/dist/types/raw/data/tweet/Tweet.d.ts +0 -746
  351. package/dist/types/raw/data/tweet/Tweet.js +0 -3
  352. package/dist/types/raw/data/tweet/Tweet.js.map +0 -1
  353. package/dist/types/raw/data/tweet/Tweets.d.ts +0 -386
  354. package/dist/types/raw/data/tweet/Tweets.js +0 -3
  355. package/dist/types/raw/data/tweet/Tweets.js.map +0 -1
  356. package/dist/types/raw/data/user/Followers.d.ts +0 -176
  357. package/dist/types/raw/data/user/Followers.js +0 -3
  358. package/dist/types/raw/data/user/Followers.js.map +0 -1
  359. package/dist/types/raw/data/user/Following.d.ts +0 -176
  360. package/dist/types/raw/data/user/Following.js +0 -3
  361. package/dist/types/raw/data/user/Following.js.map +0 -1
  362. package/dist/types/raw/data/user/Likes.d.ts +0 -1059
  363. package/dist/types/raw/data/user/Likes.js +0 -3
  364. package/dist/types/raw/data/user/Likes.js.map +0 -1
  365. package/dist/types/raw/data/user/User.d.ts +0 -117
  366. package/dist/types/raw/data/user/User.js +0 -3
  367. package/dist/types/raw/data/user/User.js.map +0 -1
  368. package/dist/types/raw/general/Trends.d.ts +0 -324
  369. package/dist/types/raw/general/Trends.js +0 -3
  370. package/dist/types/raw/general/Trends.js.map +0 -1
  371. package/dist/types/raw/query/tweet/Details.d.ts +0 -80
  372. package/dist/types/raw/query/tweet/Details.js +0 -5
  373. package/dist/types/raw/query/tweet/Details.js.map +0 -1
  374. package/dist/types/raw/query/tweet/Engagements.d.ts +0 -29
  375. package/dist/types/raw/query/tweet/Engagements.js +0 -3
  376. package/dist/types/raw/query/tweet/Engagements.js.map +0 -1
  377. package/dist/types/raw/query/tweet/Likes.d.ts +0 -29
  378. package/dist/types/raw/query/tweet/Likes.js +0 -3
  379. package/dist/types/raw/query/tweet/Likes.js.map +0 -1
  380. package/dist/types/raw/query/tweet/Retweets.d.ts +0 -29
  381. package/dist/types/raw/query/tweet/Retweets.js +0 -3
  382. package/dist/types/raw/query/tweet/Retweets.js.map +0 -1
  383. package/dist/types/raw/query/tweet/Search.d.ts +0 -40
  384. package/dist/types/raw/query/tweet/Search.js +0 -3
  385. package/dist/types/raw/query/tweet/Search.js.map +0 -1
  386. package/dist/types/raw/query/tweet/TweetDetails.d.ts +0 -34
  387. package/dist/types/raw/query/tweet/TweetDetails.js +0 -5
  388. package/dist/types/raw/query/tweet/TweetDetails.js.map +0 -1
  389. package/dist/types/raw/query/tweet/TweetLike.d.ts +0 -29
  390. package/dist/types/raw/query/tweet/TweetLike.js +0 -3
  391. package/dist/types/raw/query/tweet/TweetLike.js.map +0 -1
  392. package/dist/types/raw/query/tweet/TweetLikes.d.ts +0 -29
  393. package/dist/types/raw/query/tweet/TweetLikes.js +0 -3
  394. package/dist/types/raw/query/tweet/TweetLikes.js.map +0 -1
  395. package/dist/types/raw/query/tweet/TweetRetweets.d.ts +0 -0
  396. package/dist/types/raw/query/tweet/TweetRetweets.js +0 -2
  397. package/dist/types/raw/query/tweet/TweetRetweets.js.map +0 -1
  398. package/dist/types/raw/query/user/Details.d.ts +0 -34
  399. package/dist/types/raw/query/user/Details.js +0 -3
  400. package/dist/types/raw/query/user/Details.js.map +0 -1
  401. package/dist/types/raw/tweet/Favouriters.d.ts +0 -164
  402. package/dist/types/raw/tweet/Favouriters.js +0 -3
  403. package/dist/types/raw/tweet/Favouriters.js.map +0 -1
  404. package/dist/types/raw/tweet/Retweeters.d.ts +0 -171
  405. package/dist/types/raw/tweet/Retweeters.js +0 -3
  406. package/dist/types/raw/tweet/Retweeters.js.map +0 -1
  407. package/dist/types/raw/tweet/Tweet.d.ts +0 -746
  408. package/dist/types/raw/tweet/Tweet.js +0 -3
  409. package/dist/types/raw/tweet/Tweet.js.map +0 -1
  410. package/dist/types/raw/tweet/Tweets.d.ts +0 -386
  411. package/dist/types/raw/tweet/Tweets.js +0 -3
  412. package/dist/types/raw/tweet/Tweets.js.map +0 -1
  413. package/dist/types/raw/user/Followers.d.ts +0 -176
  414. package/dist/types/raw/user/Followers.js +0 -3
  415. package/dist/types/raw/user/Followers.js.map +0 -1
  416. package/dist/types/raw/user/Following.d.ts +0 -176
  417. package/dist/types/raw/user/Following.js +0 -3
  418. package/dist/types/raw/user/Following.js.map +0 -1
  419. package/dist/types/raw/user/Likes.d.ts +0 -1059
  420. package/dist/types/raw/user/Likes.js +0 -3
  421. package/dist/types/raw/user/Likes.js.map +0 -1
  422. package/dist/types/raw/user/Tweets.d.ts +0 -1512
  423. package/dist/types/raw/user/Tweets.js +0 -3
  424. package/dist/types/raw/user/Tweets.js.map +0 -1
  425. package/dist/types/raw/user/User.d.ts +0 -117
  426. package/dist/types/raw/user/User.js +0 -3
  427. package/dist/types/raw/user/User.js.map +0 -1
  428. package/dist/types/services/args/TweetFilter.d.ts +0 -50
  429. package/dist/types/services/args/TweetFilter.js +0 -76
  430. package/dist/types/services/args/TweetFilter.js.map +0 -1
  431. package/src/models/args/TweetFilter.ts +0 -119
  432. package/src/models/errors/DataValidationError.ts +0 -29
  433. package/src/services/helper/urls/Tweets.ts +0 -46
  434. package/src/services/helper/urls/Users.ts +0 -78
  435. package/src/types/raw/tweet/Favouriters.ts +0 -193
  436. package/src/types/raw/tweet/Retweeters.ts +0 -201
  437. package/src/types/raw/tweet/Tweet.ts +0 -882
  438. package/src/types/raw/tweet/Tweets.ts +0 -444
  439. package/src/types/raw/user/Followers.ts +0 -208
  440. package/src/types/raw/user/Following.ts +0 -208
  441. package/src/types/raw/user/Likes.ts +0 -1247
  442. package/src/types/raw/user/Tweets.ts +0 -1747
  443. package/src/types/raw/user/User.ts +0 -135
@@ -1,209 +0,0 @@
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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
18
- }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
37
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38
- return new (P || (P = Promise))(function (resolve, reject) {
39
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
40
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
41
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
42
- step((generator = generator.apply(thisArg, _arguments || [])).next());
43
- });
44
- };
45
- var __generator = (this && this.__generator) || function (thisArg, body) {
46
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
47
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
48
- function verb(n) { return function (v) { return step([n, v]); }; }
49
- function step(op) {
50
- if (f) throw new TypeError("Generator is already executing.");
51
- while (_) try {
52
- 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;
53
- if (y = 0, t) op = [op[0] & 2, t.value];
54
- switch (op[0]) {
55
- case 0: case 1: t = op; break;
56
- case 4: _.label++; return { value: op[1], done: false };
57
- case 5: _.label++; y = op[1]; op = [0]; continue;
58
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
59
- default:
60
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
61
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
62
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
63
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
64
- if (t[2]) _.ops.pop();
65
- _.trys.pop(); continue;
66
- }
67
- op = body.call(thisArg, _);
68
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
69
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
70
- }
71
- };
72
- exports.__esModule = true;
73
- exports.FetcherService = exports.HttpMethods = void 0;
74
- // PACKAGES
75
- var node_libcurl_1 = require("node-libcurl");
76
- var CacheService_1 = require("./CacheService");
77
- // TYPES
78
- var HTTP_1 = require("../types/HTTP");
79
- // HELPERS
80
- var Headers = __importStar(require("./helper/Headers"));
81
- var UserDeserializers = __importStar(require("./helper/deserializers/Users"));
82
- var TweetDeserializers = __importStar(require("./helper/deserializers/Tweets"));
83
- /**
84
- * The different types of http requests.
85
- */
86
- var HttpMethods;
87
- (function (HttpMethods) {
88
- HttpMethods["POST"] = "POST";
89
- HttpMethods["GET"] = "GET";
90
- })(HttpMethods = exports.HttpMethods || (exports.HttpMethods = {}));
91
- ;
92
- /**
93
- * Handles all HTTP requests.
94
- * @internal
95
- *
96
- * This serves as the base service from which all other data services derive their behaviour.
97
- */
98
- var FetcherService = /** @class */ (function () {
99
- // MEMBER METHODS
100
- /**
101
- * @param auth The AuthService instance to use for authentication.
102
- */
103
- function FetcherService(auth) {
104
- this.auth = auth;
105
- this.cache = CacheService_1.CacheService.getInstance();
106
- this.isAuthenticated = this.auth.isAuthenticated;
107
- }
108
- /**
109
- * The middleware for handling any HTTP error.
110
- *
111
- * @param res The response object received.
112
- * @throws {@link HttpStatus}.
113
- * @returns The received response, if no HTTP errors are found.
114
- */
115
- FetcherService.prototype.handleHTTPError = function (res) {
116
- /**
117
- * If the status code is not 200 => the HTTP request was not successful. hence throwing error
118
- */
119
- if (res.statusCode != 200 && res.statusCode in HTTP_1.HttpStatus) {
120
- throw new Error(HTTP_1.HttpStatus[res.statusCode]);
121
- }
122
- return res;
123
- };
124
- /**
125
- * Creates an HTTP request according to the given parameters.
126
- *
127
- * This method internally uses node-libcurl library to make curl requests to the URL, instead of node-fetch.
128
- * This has been done since that way it better mimics the HTTP requests made from browser.
129
- *
130
- * @param url The url to fetch data from.
131
- * @param authenticate Whether to authenticate requests or not.
132
- * @param method The HTTP method (from {@link HttpMethods}) to use.
133
- * @param data The data to be sent along with the request (for POST request).
134
- * @returns The {@link CurlyResult} received.
135
- */
136
- FetcherService.prototype.request = function (url, authenticate, method, data) {
137
- if (authenticate === void 0) { authenticate = true; }
138
- if (method === void 0) { method = HttpMethods.GET; }
139
- return __awaiter(this, void 0, void 0, function () {
140
- var config, _a, _b, _c, _d, _e;
141
- var _f;
142
- var _this = this;
143
- return __generator(this, function (_g) {
144
- switch (_g.label) {
145
- case 0:
146
- _f = {};
147
- if (!authenticate) return [3 /*break*/, 2];
148
- _c = (_b = Headers).authorizedHeader;
149
- return [4 /*yield*/, this.auth.getAuthCredentials()];
150
- case 1:
151
- _a = _c.apply(_b, [_g.sent()]);
152
- return [3 /*break*/, 4];
153
- case 2:
154
- _e = (_d = Headers).guestHeader;
155
- return [4 /*yield*/, this.auth.getGuestCredentials()];
156
- case 3:
157
- _a = _e.apply(_d, [_g.sent()]);
158
- _g.label = 4;
159
- case 4:
160
- config = (
161
- /**
162
- * If authorization is required, using the authenticated header, using the authentication credentiials.
163
- * Else, using the guest header, using the guest credentials.
164
- */
165
- _f.httpHeader = _a,
166
- /**
167
- * Disabling SSL peer verification because verification causes Error 404 (only while fetching tweets), likely because peer verification fails.
168
- */
169
- _f.sslVerifyPeer = false,
170
- _f);
171
- if (!(method == HttpMethods.POST)) return [3 /*break*/, 6];
172
- return [4 /*yield*/, node_libcurl_1.curly.post(url, __assign(__assign({}, config), { postFields: JSON.stringify(data) })).then(function (res) { return _this.handleHTTPError(res); })];
173
- case 5: return [2 /*return*/, _g.sent()];
174
- case 6: return [4 /*yield*/, node_libcurl_1.curly.get(url, config).then(function (res) { return _this.handleHTTPError(res); })];
175
- case 7: return [2 /*return*/, _g.sent()];
176
- }
177
- });
178
- });
179
- };
180
- /**
181
- * Caches the extracted data into the {@link CacheService} instance.
182
- *
183
- * @param data The extracted data to be cached
184
- */
185
- FetcherService.prototype.cacheData = function (data) {
186
- /**
187
- * The extracted data is in raw form.
188
- * This raw data is deserialized into the respective known types.
189
- */
190
- var users = data.users.map(function (user) { return UserDeserializers.toUser(user); });
191
- var tweets = data.tweets.map(function (tweet) { return TweetDeserializers.toTweet(tweet); });
192
- // Caching the data
193
- this.cache.write(users);
194
- this.cache.write(tweets);
195
- };
196
- /**
197
- * Fetches the data with the given id from the cache.
198
- *
199
- * @param id The id of the data to be read from cache.
200
- * @returns The data with the given id. If does not exists, returns undefined.
201
- */
202
- FetcherService.prototype.readData = function (id) {
203
- // Reading data from cache
204
- return this.cache.read(id);
205
- };
206
- return FetcherService;
207
- }());
208
- exports.FetcherService = FetcherService;
209
- //# sourceMappingURL=FetcherService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FetcherService.js","sourceRoot":"","sources":["../../src/services/FetcherService.ts"],"names":[],"mappings":"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"}
@@ -1,65 +0,0 @@
1
- /**
2
- * Handles all operations related to a user's account, such as loggin in, managing account, etc
3
- * @public
4
- */
5
- export declare class AccountService {
6
- /** The AuthService instance to use for authentication. */
7
- private auth;
8
- /** The current guest credentials to use. */
9
- private guestCreds;
10
- /** The cookies received from Twitter after logging in. */
11
- private cookies;
12
- /** The flow token received after execution of current flow. */
13
- private flowToken;
14
- constructor();
15
- /**
16
- * @returns The current guest credentials to use. If if does not exists, then a new one is created
17
- */
18
- private getGuestCredentials;
19
- /**
20
- * Step 1: Initiates login
21
- * @internal
22
- */
23
- private initiateLogin;
24
- /**
25
- * Step 2: Does something
26
- * @internal
27
- */
28
- private jsInstrumentationSubtask;
29
- /**
30
- * Step 3: Takes the email for login
31
- * @internal
32
- *
33
- * @throws {@link AuthenticationErrors.InvalidEmail}, if email does not exist.
34
- */
35
- private enterUserIdentifier;
36
- /**
37
- * Step 4: Takes the username for login
38
- * @internal
39
- *
40
- * @throws {@link AuthenticationErrors.InvalidUsername}, if wrong username entered.
41
- */
42
- private enterAlternateUserIdentifier;
43
- /**
44
- * Step 5: Takes the password for login
45
- * @internal
46
- *
47
- * @throws {@link AuthenticationErrors.InvalidPassword}, incorrect password entered.
48
- */
49
- private enterPassword;
50
- /**
51
- * Step 6: Gets the actual cookies
52
- * @internal
53
- */
54
- private accountDuplicationCheck;
55
- /**
56
- * Login to Twitter using the given credentials and get back the cookies.
57
- * @public
58
- *
59
- * @param email The email of the account to be logged into
60
- * @param userName The username associated with the given account
61
- * @param password The password to the account
62
- * @returns The cookies for authenticating with the given account
63
- */
64
- login(email: string, userName: string, password: string): Promise<string>;
65
- }
@@ -1,336 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- 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;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- var __importDefault = (this && this.__importDefault) || function (mod) {
39
- return (mod && mod.__esModule) ? mod : { "default": mod };
40
- };
41
- exports.__esModule = true;
42
- exports.AccountService = void 0;
43
- // PACKAGES
44
- var node_libcurl_1 = require("node-libcurl");
45
- // SERVICES
46
- var AuthService_1 = require("../AuthService");
47
- var HTTP_1 = require("../../types/HTTP");
48
- var Errors_1 = require("../../types/data/Errors");
49
- // HELPERS
50
- var LoginFlows_1 = __importDefault(require("./LoginFlows"));
51
- var Headers_1 = require("../helper/Headers");
52
- var cookiejar_1 = require("cookiejar");
53
- /**
54
- * Handles all operations related to a user's account, such as loggin in, managing account, etc
55
- * @public
56
- */
57
- var AccountService = /** @class */ (function () {
58
- // MEMBER METHODS
59
- function AccountService() {
60
- this.auth = new AuthService_1.AuthService();
61
- this.guestCreds = { authToken: '', guestToken: '' };
62
- this.cookies = [];
63
- this.flowToken = '';
64
- }
65
- /**
66
- * @returns The current guest credentials to use. If if does not exists, then a new one is created
67
- */
68
- AccountService.prototype.getGuestCredentials = function () {
69
- return __awaiter(this, void 0, void 0, function () {
70
- var _a;
71
- return __generator(this, function (_b) {
72
- switch (_b.label) {
73
- case 0:
74
- if (!!this.guestCreds.guestToken) return [3 /*break*/, 2];
75
- _a = this;
76
- return [4 /*yield*/, this.auth.getGuestCredentials()];
77
- case 1:
78
- _a.guestCreds = _b.sent();
79
- _b.label = 2;
80
- case 2: return [2 /*return*/, this.guestCreds];
81
- }
82
- });
83
- });
84
- };
85
- /**
86
- * Step 1: Initiates login
87
- * @internal
88
- */
89
- AccountService.prototype.initiateLogin = function () {
90
- return __awaiter(this, void 0, void 0, function () {
91
- var res, _a, _b, _c, _d;
92
- var _e;
93
- return __generator(this, function (_f) {
94
- switch (_f.label) {
95
- case 0:
96
- _b = (_a = node_libcurl_1.curly).post;
97
- _c = [LoginFlows_1["default"].InitiateLogin.url];
98
- _e = {};
99
- _d = Headers_1.loginHeader;
100
- return [4 /*yield*/, this.getGuestCredentials()];
101
- case 1: return [4 /*yield*/, _b.apply(_a, _c.concat([(_e.httpHeader = _d.apply(void 0, [_f.sent(), this.cookies.toString()]),
102
- _e.sslVerifyPeer = false,
103
- _e.postFields = '',
104
- _e)]))];
105
- case 2:
106
- res = _f.sent();
107
- // Storing cookies received
108
- this.cookies = new cookiejar_1.CookieJar().setCookies(res.headers[0]['Set-Cookie']);
109
- // Getting the flow token
110
- this.flowToken = res.data['flow_token'];
111
- return [2 /*return*/];
112
- }
113
- });
114
- });
115
- };
116
- /**
117
- * Step 2: Does something
118
- * @internal
119
- */
120
- AccountService.prototype.jsInstrumentationSubtask = function () {
121
- return __awaiter(this, void 0, void 0, function () {
122
- var res, _a, _b, _c, _d;
123
- var _e;
124
- return __generator(this, function (_f) {
125
- switch (_f.label) {
126
- case 0:
127
- _b = (_a = node_libcurl_1.curly).post;
128
- _c = [LoginFlows_1["default"].JsInstrumentationSubtask.url];
129
- _e = {};
130
- _d = Headers_1.loginHeader;
131
- return [4 /*yield*/, this.getGuestCredentials()];
132
- case 1: return [4 /*yield*/, _b.apply(_a, _c.concat([(_e.httpHeader = _d.apply(void 0, [_f.sent(), this.cookies.join(';').toString()]),
133
- _e.sslVerifyPeer = false,
134
- _e.postFields = JSON.stringify(LoginFlows_1["default"].JsInstrumentationSubtask.body(this.flowToken)),
135
- _e)]))];
136
- case 2:
137
- res = _f.sent();
138
- // Getting the flow token
139
- this.flowToken = res.data['flow_token'];
140
- return [2 /*return*/];
141
- }
142
- });
143
- });
144
- };
145
- /**
146
- * Step 3: Takes the email for login
147
- * @internal
148
- *
149
- * @throws {@link AuthenticationErrors.InvalidEmail}, if email does not exist.
150
- */
151
- AccountService.prototype.enterUserIdentifier = function (email) {
152
- return __awaiter(this, void 0, void 0, function () {
153
- var res, _a, _b, _c, _d;
154
- var _e;
155
- return __generator(this, function (_f) {
156
- switch (_f.label) {
157
- case 0:
158
- _b = (_a = node_libcurl_1.curly).post;
159
- _c = [LoginFlows_1["default"].EnterUserIdentifier.url];
160
- _e = {};
161
- _d = Headers_1.loginHeader;
162
- return [4 /*yield*/, this.getGuestCredentials()];
163
- case 1: return [4 /*yield*/, _b.apply(_a, _c.concat([(_e.httpHeader = _d.apply(void 0, [_f.sent(), this.cookies.join(';').toString()]),
164
- _e.sslVerifyPeer = false,
165
- _e.postFields = JSON.stringify(LoginFlows_1["default"].EnterUserIdentifier.body(this.flowToken, email)),
166
- _e)]))];
167
- case 2:
168
- res = _f.sent();
169
- // If no account found with given email
170
- if (res.statusCode == HTTP_1.HttpStatus.BadRequest && res.data.errors[0].code == 399) {
171
- throw new Error(Errors_1.AuthenticationErrors.InvalidEmail);
172
- }
173
- // Getting the flow token
174
- this.flowToken = res.data['flow_token'];
175
- return [2 /*return*/];
176
- }
177
- });
178
- });
179
- };
180
- /**
181
- * Step 4: Takes the username for login
182
- * @internal
183
- *
184
- * @throws {@link AuthenticationErrors.InvalidUsername}, if wrong username entered.
185
- */
186
- AccountService.prototype.enterAlternateUserIdentifier = function (userName) {
187
- return __awaiter(this, void 0, void 0, function () {
188
- var res, _a, _b, _c, _d;
189
- var _e;
190
- return __generator(this, function (_f) {
191
- switch (_f.label) {
192
- case 0:
193
- _b = (_a = node_libcurl_1.curly).post;
194
- _c = [LoginFlows_1["default"].EnterAlternateUserIdentifier.url];
195
- _e = {};
196
- _d = Headers_1.loginHeader;
197
- return [4 /*yield*/, this.getGuestCredentials()];
198
- case 1: return [4 /*yield*/, _b.apply(_a, _c.concat([(_e.httpHeader = _d.apply(void 0, [_f.sent(), this.cookies.join(';').toString()]),
199
- _e.sslVerifyPeer = false,
200
- _e.postFields = JSON.stringify(LoginFlows_1["default"].EnterAlternateUserIdentifier.body(this.flowToken, userName)),
201
- _e)]))];
202
- case 2:
203
- res = _f.sent();
204
- // If invalid username for the given account
205
- if (res.statusCode == HTTP_1.HttpStatus.BadRequest && res.data.errors[0].code == 399) {
206
- throw new Error(Errors_1.AuthenticationErrors.InvalidUsername);
207
- }
208
- // Getting the flow token
209
- this.flowToken = res.data['flow_token'];
210
- return [2 /*return*/];
211
- }
212
- });
213
- });
214
- };
215
- /**
216
- * Step 5: Takes the password for login
217
- * @internal
218
- *
219
- * @throws {@link AuthenticationErrors.InvalidPassword}, incorrect password entered.
220
- */
221
- AccountService.prototype.enterPassword = function (password) {
222
- return __awaiter(this, void 0, void 0, function () {
223
- var res, _a, _b, _c, _d;
224
- var _e;
225
- return __generator(this, function (_f) {
226
- switch (_f.label) {
227
- case 0:
228
- _b = (_a = node_libcurl_1.curly).post;
229
- _c = [LoginFlows_1["default"].EnterPassword.url];
230
- _e = {};
231
- _d = Headers_1.loginHeader;
232
- return [4 /*yield*/, this.getGuestCredentials()];
233
- case 1: return [4 /*yield*/, _b.apply(_a, _c.concat([(_e.httpHeader = _d.apply(void 0, [_f.sent(), this.cookies.join(';').toString()]),
234
- _e.sslVerifyPeer = false,
235
- _e.postFields = JSON.stringify(LoginFlows_1["default"].EnterPassword.body(this.flowToken, password)),
236
- _e)]))];
237
- case 2:
238
- res = _f.sent();
239
- // If invalid password for the given account
240
- if (res.statusCode == HTTP_1.HttpStatus.BadRequest && res.data.errors[0].code == 399) {
241
- throw new Error(Errors_1.AuthenticationErrors.InvalidPassword);
242
- }
243
- // Getting the flow token
244
- this.flowToken = res.data['flow_token'];
245
- return [2 /*return*/];
246
- }
247
- });
248
- });
249
- };
250
- /**
251
- * Step 6: Gets the actual cookies
252
- * @internal
253
- */
254
- AccountService.prototype.accountDuplicationCheck = function () {
255
- return __awaiter(this, void 0, void 0, function () {
256
- var res, _a, _b, _c, _d;
257
- var _e;
258
- return __generator(this, function (_f) {
259
- switch (_f.label) {
260
- case 0:
261
- _b = (_a = node_libcurl_1.curly).post;
262
- _c = [LoginFlows_1["default"].AccountDuplicationCheck.url];
263
- _e = {};
264
- _d = Headers_1.loginHeader;
265
- return [4 /*yield*/, this.getGuestCredentials()];
266
- case 1: return [4 /*yield*/, _b.apply(_a, _c.concat([(_e.httpHeader = _d.apply(void 0, [_f.sent(), this.cookies.join(';').toString()]),
267
- _e.sslVerifyPeer = false,
268
- _e.postFields = JSON.stringify(LoginFlows_1["default"].AccountDuplicationCheck.body(this.flowToken)),
269
- _e)]))];
270
- case 2:
271
- res = _f.sent();
272
- // Getting the cookies from the set-cookie header of the reponse.
273
- this.cookies = new cookiejar_1.CookieJar().setCookies(res.headers[0]['Set-Cookie']);
274
- // Getting the flow token
275
- this.flowToken = res.data['flow_token'];
276
- return [2 /*return*/];
277
- }
278
- });
279
- });
280
- };
281
- /**
282
- * Login to Twitter using the given credentials and get back the cookies.
283
- * @public
284
- *
285
- * @param email The email of the account to be logged into
286
- * @param userName The username associated with the given account
287
- * @param password The password to the account
288
- * @returns The cookies for authenticating with the given account
289
- */
290
- AccountService.prototype.login = function (email, userName, password) {
291
- return __awaiter(this, void 0, void 0, function () {
292
- return __generator(this, function (_a) {
293
- switch (_a.label) {
294
- case 0:
295
- /**
296
- * This works by sending a chain of request that are required for login to twitter.
297
- * Each method in the chain returns a flow token that must be provied as payload in the next method in the chain.
298
- * Each such method is called a subtask.
299
- * Each subtask sets the {@link flowToken} property of the class which is then given in the payload of the next subtask.
300
- * The final subtask returns the headers which actually contains the cookie in the 'set-cookie' field.
301
- */
302
- return [4 /*yield*/, this.initiateLogin()];
303
- case 1:
304
- /**
305
- * This works by sending a chain of request that are required for login to twitter.
306
- * Each method in the chain returns a flow token that must be provied as payload in the next method in the chain.
307
- * Each such method is called a subtask.
308
- * Each subtask sets the {@link flowToken} property of the class which is then given in the payload of the next subtask.
309
- * The final subtask returns the headers which actually contains the cookie in the 'set-cookie' field.
310
- */
311
- _a.sent();
312
- return [4 /*yield*/, this.jsInstrumentationSubtask()];
313
- case 2:
314
- _a.sent();
315
- return [4 /*yield*/, this.enterUserIdentifier(email)];
316
- case 3:
317
- _a.sent();
318
- return [4 /*yield*/, this.enterAlternateUserIdentifier(userName)];
319
- case 4:
320
- _a.sent();
321
- return [4 /*yield*/, this.enterPassword(password)];
322
- case 5:
323
- _a.sent();
324
- return [4 /*yield*/, this.accountDuplicationCheck()];
325
- case 6:
326
- _a.sent();
327
- // Returning the final cookies
328
- return [2 /*return*/, this.cookies.join(';')];
329
- }
330
- });
331
- });
332
- };
333
- return AccountService;
334
- }());
335
- exports.AccountService = AccountService;
336
- //# sourceMappingURL=AccountService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AccountService.js","sourceRoot":"","sources":["../../../src/services/accounts/AccountService.ts"],"names":[],"mappings":"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"}