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.
- package/.github/workflows/build-docs.yml +22 -21
- package/.github/workflows/publish-to-npm.yml +29 -0
- package/README.md +52 -40
- package/dist/config/env.d.ts +5 -5
- package/dist/config/env.js +8 -8
- package/dist/enums/Errors.d.ts +21 -20
- package/dist/enums/Errors.js +28 -27
- package/dist/enums/Errors.js.map +1 -1
- package/dist/enums/HTTP.d.ts +17 -17
- package/dist/enums/HTTP.js +22 -22
- package/dist/graphql/enums/Errors.d.ts +21 -21
- package/dist/graphql/enums/Errors.js +28 -28
- package/dist/graphql/queries/RootQuery.d.ts +4 -4
- package/dist/graphql/queries/RootQuery.js +77 -77
- package/dist/graphql/queries/RootQuery.js.map +1 -1
- package/dist/graphql/resolvers/AccountResolver.d.ts +12 -12
- package/dist/graphql/resolvers/AccountResolver.js +83 -83
- package/dist/graphql/resolvers/ResolverBase.d.ts +16 -16
- package/dist/graphql/resolvers/ResolverBase.js +22 -22
- package/dist/graphql/resolvers/TweetResolver.d.ts +46 -46
- package/dist/graphql/resolvers/TweetResolver.js +311 -311
- package/dist/graphql/resolvers/TweetResolver.js.map +1 -1
- package/dist/graphql/resolvers/UserResolver.d.ts +48 -48
- package/dist/graphql/resolvers/UserResolver.js +333 -333
- package/dist/graphql/resolvers/UserResolver.js.map +1 -1
- package/dist/graphql/types/Global.d.ts +4 -4
- package/dist/graphql/types/Global.js +12 -12
- package/dist/graphql/types/TweetTypes.d.ts +4 -4
- package/dist/graphql/types/TweetTypes.js +159 -159
- package/dist/graphql/types/UserTypes.d.ts +3 -3
- package/dist/graphql/types/UserTypes.js +136 -136
- package/dist/graphql/types/UserTypes.js.map +1 -1
- package/dist/index.d.ts +45 -43
- package/dist/index.js +72 -70
- package/dist/index.js.map +1 -1
- package/dist/models/args/TweetListArgs.d.ts +21 -21
- package/dist/models/args/TweetListArgs.js +53 -53
- package/dist/models/args/TweetListArgs.js.map +1 -1
- package/dist/models/args/UserListArgs.d.ts +21 -21
- package/dist/models/args/UserListArgs.js +53 -53
- package/dist/models/args/UserListArgs.js.map +1 -1
- package/dist/models/auth/AuthCookie.d.ts +21 -21
- package/dist/models/auth/AuthCookie.js +32 -32
- package/dist/models/data/CursoredData.d.ts +34 -34
- package/dist/models/data/CursoredData.js +41 -41
- package/dist/models/data/Tweet.d.ts +53 -53
- package/dist/models/data/Tweet.js +103 -103
- package/dist/models/data/Tweet.js.map +1 -1
- package/dist/models/data/User.d.ts +41 -41
- package/dist/models/data/User.js +31 -31
- package/dist/models/data/User.js.map +1 -1
- package/dist/server.d.ts +1 -1
- package/dist/server.js +75 -75
- package/dist/services/auth/AccountService.d.ts +83 -83
- package/dist/services/auth/AccountService.js +411 -411
- package/dist/services/auth/AuthService.d.ts +31 -31
- package/dist/services/auth/AuthService.js +117 -117
- package/dist/services/data/TweetService.d.ts +60 -74
- package/dist/services/data/TweetService.js +250 -254
- package/dist/services/data/TweetService.js.map +1 -1
- package/dist/services/data/UserService.d.ts +71 -87
- package/dist/services/data/UserService.js +277 -296
- package/dist/services/data/UserService.js.map +1 -1
- package/dist/services/helper/Headers.d.ts +19 -19
- package/dist/services/helper/Headers.js +61 -61
- package/dist/services/helper/Headers.js.map +1 -1
- package/dist/services/helper/Parser.d.ts +22 -28
- package/dist/services/helper/Parser.js +83 -104
- package/dist/services/helper/Parser.js.map +1 -1
- package/dist/services/helper/extractors/Tweets.d.ts +23 -32
- package/dist/services/helper/extractors/Tweets.js +199 -263
- package/dist/services/helper/extractors/Tweets.js.map +1 -1
- package/dist/services/helper/extractors/Users.d.ts +17 -26
- package/dist/services/helper/extractors/Users.js +150 -202
- package/dist/services/helper/extractors/Users.js.map +1 -1
- package/dist/services/helper/payloads/LoginFlows.d.ts +77 -77
- package/dist/services/helper/payloads/LoginFlows.js +91 -91
- package/dist/services/helper/urls/Authentication.d.ts +4 -4
- package/dist/services/helper/urls/Authentication.js +10 -10
- package/dist/services/util/CacheService.d.ts +33 -33
- package/dist/services/util/CacheService.js +95 -95
- package/dist/services/util/FetcherService.d.ts +65 -65
- package/dist/services/util/FetcherService.js +201 -213
- package/dist/services/util/FetcherService.js.map +1 -1
- package/dist/types/Args.d.ts +11 -38
- package/dist/types/Args.js +3 -4
- package/dist/types/Args.js.map +1 -1
- package/dist/types/Authentication.d.ts +55 -55
- package/dist/types/Authentication.js +5 -5
- package/dist/types/Resolvers.d.ts +15 -15
- package/dist/types/Resolvers.js +2 -2
- package/dist/types/Rettiwt.d.ts +16 -16
- package/dist/types/Rettiwt.js +2 -2
- package/dist/types/Service.d.ts +22 -22
- package/dist/types/Service.js +4 -4
- package/dist/types/Tweet.d.ts +46 -46
- package/dist/types/Tweet.js +2 -2
- package/dist/types/User.d.ts +35 -35
- package/dist/types/User.js +2 -2
- package/docs/.nojekyll +1 -0
- package/docs/assets/highlight.css +64 -0
- package/docs/assets/main.js +58 -0
- package/docs/assets/search.js +1 -0
- package/docs/assets/style.css +1280 -0
- package/docs/classes/AccountService.html +286 -0
- package/docs/classes/AuthCookie.html +146 -0
- package/docs/classes/AuthService.html +147 -0
- package/docs/classes/CacheService.html +157 -0
- package/docs/classes/Cursor.html +102 -0
- package/docs/classes/CursoredData.html +126 -0
- package/docs/classes/DataValidationError.html +120 -0
- package/docs/classes/FetcherService.html +225 -0
- package/docs/classes/Tweet.html +210 -0
- package/docs/classes/TweetEntities.html +128 -0
- package/docs/classes/TweetFilter.html +223 -0
- package/docs/classes/TweetListArgs.html +118 -0
- package/docs/classes/TweetService.html +319 -0
- package/docs/classes/User.html +230 -0
- package/docs/classes/UserListArgs.html +118 -0
- package/docs/classes/UserService.html +355 -0
- package/docs/enums/HttpMethods.html +74 -0
- package/docs/functions/Rettiwt.html +100 -0
- package/docs/index.html +159 -0
- package/docs/interfaces/IAuthCookie.html +104 -0
- package/docs/interfaces/ICursor.html +77 -0
- package/docs/interfaces/ICursoredData.html +93 -0
- package/docs/interfaces/IDataContext.html +91 -0
- package/docs/interfaces/IDataValidationError.html +109 -0
- package/docs/interfaces/IListArgs.html +87 -0
- package/docs/interfaces/ITweet.html +176 -0
- package/docs/interfaces/ITweetEntities.html +104 -0
- package/docs/interfaces/ITweetFilter.html +158 -0
- package/docs/interfaces/IUser.html +194 -0
- package/docs/modules.html +111 -0
- package/package.json +4 -3
- package/src/enums/Errors.ts +2 -1
- package/src/graphql/queries/RootQuery.ts +1 -1
- package/src/graphql/resolvers/TweetResolver.ts +12 -59
- package/src/graphql/resolvers/UserResolver.ts +4 -4
- package/src/graphql/types/UserTypes.ts +2 -2
- package/src/index.ts +5 -3
- package/src/models/args/TweetListArgs.ts +2 -2
- package/src/models/args/UserListArgs.ts +1 -1
- package/src/models/data/Tweet.ts +3 -3
- package/src/models/data/User.ts +2 -2
- package/src/services/data/TweetService.ts +45 -72
- package/src/services/data/UserService.ts +61 -71
- package/src/services/helper/Headers.ts +34 -34
- package/src/services/helper/Parser.ts +5 -26
- package/src/services/helper/extractors/Tweets.ts +35 -97
- package/src/services/helper/extractors/Users.ts +11 -62
- package/src/services/util/FetcherService.ts +15 -22
- package/src/types/Args.ts +0 -37
- package/Dockerfile +0 -9
- package/dist/Test.d.ts +0 -0
- package/dist/Test.js +0 -2
- package/dist/Test.js.map +0 -1
- package/dist/endpoints/Endpoints.d.ts +0 -14
- package/dist/endpoints/Endpoints.js +0 -20
- package/dist/endpoints/Endpoints.js.map +0 -1
- package/dist/endpoints/Url.d.ts +0 -5
- package/dist/endpoints/Url.js +0 -12
- package/dist/endpoints/Url.js.map +0 -1
- package/dist/enums/Endpoints.d.ts +0 -25
- package/dist/enums/Endpoints.js +0 -31
- package/dist/enums/Endpoints.js.map +0 -1
- package/dist/graphql/types/Errors.d.ts +0 -20
- package/dist/graphql/types/Errors.js +0 -28
- package/dist/graphql/types/Errors.js.map +0 -1
- package/dist/middlewares/Authentication.d.ts +0 -0
- package/dist/middlewares/Authentication.js +0 -2
- package/dist/middlewares/Authentication.js.map +0 -1
- package/dist/models/args/TweetFilter.d.ts +0 -59
- package/dist/models/args/TweetFilter.js +0 -101
- package/dist/models/args/TweetFilter.js.map +0 -1
- package/dist/models/data/DataValidationError.d.ts +0 -18
- package/dist/models/data/DataValidationError.js +0 -21
- package/dist/models/data/DataValidationError.js.map +0 -1
- package/dist/models/data/Errors.d.ts +0 -18
- package/dist/models/data/Errors.js +0 -21
- package/dist/models/data/Errors.js.map +0 -1
- package/dist/models/data/Service.d.ts +0 -33
- package/dist/models/data/Service.js +0 -41
- package/dist/models/data/Service.js.map +0 -1
- package/dist/models/errors/DataValidationError.d.ts +0 -20
- package/dist/models/errors/DataValidationError.js +0 -23
- package/dist/models/errors/DataValidationError.js.map +0 -1
- package/dist/models/graphql/Global.d.ts +0 -4
- package/dist/models/graphql/Global.js +0 -13
- package/dist/models/graphql/Global.js.map +0 -1
- package/dist/models/graphql/TweetTypes.d.ts +0 -6
- package/dist/models/graphql/TweetTypes.js +0 -156
- package/dist/models/graphql/TweetTypes.js.map +0 -1
- package/dist/models/graphql/UserTypes.d.ts +0 -3
- package/dist/models/graphql/UserTypes.js +0 -139
- package/dist/models/graphql/UserTypes.js.map +0 -1
- package/dist/models/query/Variables.d.ts +0 -2
- package/dist/models/query/Variables.js +0 -10
- package/dist/models/query/Variables.js.map +0 -1
- package/dist/queries/RootQuery.d.ts +0 -4
- package/dist/queries/RootQuery.js +0 -70
- package/dist/queries/RootQuery.js.map +0 -1
- package/dist/requests/Url.d.ts +0 -5
- package/dist/requests/Url.js +0 -12
- package/dist/requests/Url.js.map +0 -1
- package/dist/requests/payloads/Variables.d.ts +0 -23
- package/dist/requests/payloads/Variables.js +0 -24
- package/dist/requests/payloads/Variables.js.map +0 -1
- package/dist/resolvers/AccountResolver.d.ts +0 -12
- package/dist/resolvers/AccountResolver.js +0 -84
- package/dist/resolvers/AccountResolver.js.map +0 -1
- package/dist/resolvers/ResolverBase.d.ts +0 -5
- package/dist/resolvers/ResolverBase.js +0 -11
- package/dist/resolvers/ResolverBase.js.map +0 -1
- package/dist/resolvers/TweetResolver.d.ts +0 -54
- package/dist/resolvers/TweetResolver.js +0 -332
- package/dist/resolvers/TweetResolver.js.map +0 -1
- package/dist/resolvers/UserResolver.d.ts +0 -38
- package/dist/resolvers/UserResolver.js +0 -253
- package/dist/resolvers/UserResolver.js.map +0 -1
- package/dist/services/AuthService.d.ts +0 -22
- package/dist/services/AuthService.js +0 -106
- package/dist/services/AuthService.js.map +0 -1
- package/dist/services/CacheService.d.ts +0 -30
- package/dist/services/CacheService.js +0 -93
- package/dist/services/CacheService.js.map +0 -1
- package/dist/services/FetcherService.d.ts +0 -61
- package/dist/services/FetcherService.js +0 -209
- package/dist/services/FetcherService.js.map +0 -1
- package/dist/services/accounts/AccountService.d.ts +0 -65
- package/dist/services/accounts/AccountService.js +0 -336
- package/dist/services/accounts/AccountService.js.map +0 -1
- package/dist/services/accounts/LoginFlows.d.ts +0 -77
- package/dist/services/accounts/LoginFlows.js +0 -92
- package/dist/services/accounts/LoginFlows.js.map +0 -1
- package/dist/services/auth/LoginFlows.d.ts +0 -77
- package/dist/services/auth/LoginFlows.js +0 -92
- package/dist/services/auth/LoginFlows.js.map +0 -1
- package/dist/services/data/TrendService.d.ts +0 -17
- package/dist/services/data/TrendService.js +0 -116
- package/dist/services/data/TrendService.js.map +0 -1
- package/dist/services/data/UserAccountService.d.ts +0 -42
- package/dist/services/data/UserAccountService.js +0 -239
- package/dist/services/data/UserAccountService.js.map +0 -1
- package/dist/services/helper/Deserializers.d.ts +0 -19
- package/dist/services/helper/Deserializers.js +0 -115
- package/dist/services/helper/Deserializers.js.map +0 -1
- package/dist/services/helper/Extractors.d.ts +0 -104
- package/dist/services/helper/Extractors.js +0 -432
- package/dist/services/helper/Extractors.js.map +0 -1
- package/dist/services/helper/Urls.d.ts +0 -85
- package/dist/services/helper/Urls.js +0 -130
- package/dist/services/helper/Urls.js.map +0 -1
- package/dist/services/helper/deserializers/Tweets.d.ts +0 -12
- package/dist/services/helper/deserializers/Tweets.js +0 -92
- package/dist/services/helper/deserializers/Tweets.js.map +0 -1
- package/dist/services/helper/deserializers/Users.d.ts +0 -7
- package/dist/services/helper/deserializers/Users.js +0 -27
- package/dist/services/helper/deserializers/Users.js.map +0 -1
- package/dist/services/helper/extractors/Trends.d.ts +0 -3
- package/dist/services/helper/extractors/Trends.js +0 -51
- package/dist/services/helper/extractors/Trends.js.map +0 -1
- package/dist/services/helper/urls/Trends.d.ts +0 -7
- package/dist/services/helper/urls/Trends.js +0 -13
- package/dist/services/helper/urls/Trends.js.map +0 -1
- package/dist/services/helper/urls/Tweets.d.ts +0 -32
- package/dist/services/helper/urls/Tweets.js +0 -51
- package/dist/services/helper/urls/Tweets.js.map +0 -1
- package/dist/services/helper/urls/Users.d.ts +0 -38
- package/dist/services/helper/urls/Users.js +0 -76
- package/dist/services/helper/urls/Users.js.map +0 -1
- package/dist/types/HTTP.d.ts +0 -17
- package/dist/types/HTTP.js +0 -23
- package/dist/types/HTTP.js.map +0 -1
- package/dist/types/Query.d.ts +0 -80
- package/dist/types/Query.js +0 -3
- package/dist/types/Query.js.map +0 -1
- package/dist/types/Trends.d.ts +0 -50
- package/dist/types/Trends.js +0 -3
- package/dist/types/Trends.js.map +0 -1
- package/dist/types/UserAccount.d.ts +0 -19
- package/dist/types/UserAccount.js +0 -4
- package/dist/types/UserAccount.js.map +0 -1
- package/dist/types/args/TweetFilter.d.ts +0 -54
- package/dist/types/args/TweetFilter.js +0 -96
- package/dist/types/args/TweetFilter.js.map +0 -1
- package/dist/types/args/TweetListArg.d.ts +0 -10
- package/dist/types/args/TweetListArg.js +0 -42
- package/dist/types/args/TweetListArg.js.map +0 -1
- package/dist/types/args/TweetListArgs.d.ts +0 -20
- package/dist/types/args/TweetListArgs.js +0 -52
- package/dist/types/args/TweetListArgs.js.map +0 -1
- package/dist/types/args/UserListArgs.d.ts +0 -16
- package/dist/types/args/UserListArgs.js +0 -48
- package/dist/types/args/UserListArgs.js.map +0 -1
- package/dist/types/data/Errors.d.ts +0 -35
- package/dist/types/data/Errors.js +0 -45
- package/dist/types/data/Errors.js.map +0 -1
- package/dist/types/data/Service.d.ts +0 -43
- package/dist/types/data/Service.js +0 -22
- package/dist/types/data/Service.js.map +0 -1
- package/dist/types/data/Tweet.d.ts +0 -98
- package/dist/types/data/Tweet.js +0 -4
- package/dist/types/data/Tweet.js.map +0 -1
- package/dist/types/data/TweetFilter.d.ts +0 -49
- package/dist/types/data/TweetFilter.js +0 -63
- package/dist/types/data/TweetFilter.js.map +0 -1
- package/dist/types/data/User.d.ts +0 -38
- package/dist/types/data/User.js +0 -3
- package/dist/types/data/User.js.map +0 -1
- package/dist/types/graphql/Errors.d.ts +0 -15
- package/dist/types/graphql/Errors.js +0 -23
- package/dist/types/graphql/Errors.js.map +0 -1
- package/dist/types/interfaces/Args.d.ts +0 -38
- package/dist/types/interfaces/Args.js +0 -5
- package/dist/types/interfaces/Args.js.map +0 -1
- package/dist/types/interfaces/Authentication.d.ts +0 -40
- package/dist/types/interfaces/Authentication.js +0 -5
- package/dist/types/interfaces/Authentication.js.map +0 -1
- package/dist/types/interfaces/Resolvers.d.ts +0 -14
- package/dist/types/interfaces/Resolvers.js +0 -3
- package/dist/types/interfaces/Resolvers.js.map +0 -1
- package/dist/types/interfaces/Rettiwt.d.ts +0 -16
- package/dist/types/interfaces/Rettiwt.js +0 -3
- package/dist/types/interfaces/Rettiwt.js.map +0 -1
- package/dist/types/interfaces/Service.d.ts +0 -13
- package/dist/types/interfaces/Service.js +0 -3
- package/dist/types/interfaces/Service.js.map +0 -1
- package/dist/types/interfaces/Services.d.ts +0 -13
- package/dist/types/interfaces/Services.js +0 -3
- package/dist/types/interfaces/Services.js.map +0 -1
- package/dist/types/interfaces/Tweet.d.ts +0 -46
- package/dist/types/interfaces/Tweet.js +0 -3
- package/dist/types/interfaces/Tweet.js.map +0 -1
- package/dist/types/interfaces/TweetFilter.d.ts +0 -0
- package/dist/types/interfaces/TweetFilter.js +0 -2
- package/dist/types/interfaces/TweetFilter.js.map +0 -1
- package/dist/types/interfaces/User.d.ts +0 -35
- package/dist/types/interfaces/User.js +0 -3
- package/dist/types/interfaces/User.js.map +0 -1
- package/dist/types/raw/auth/Cookie.d.ts +0 -16
- package/dist/types/raw/auth/Cookie.js +0 -3
- package/dist/types/raw/auth/Cookie.js.map +0 -1
- package/dist/types/raw/data/tweet/Favouriters.d.ts +0 -164
- package/dist/types/raw/data/tweet/Favouriters.js +0 -3
- package/dist/types/raw/data/tweet/Favouriters.js.map +0 -1
- package/dist/types/raw/data/tweet/Retweeters.d.ts +0 -171
- package/dist/types/raw/data/tweet/Retweeters.js +0 -3
- package/dist/types/raw/data/tweet/Retweeters.js.map +0 -1
- package/dist/types/raw/data/tweet/Tweet.d.ts +0 -746
- package/dist/types/raw/data/tweet/Tweet.js +0 -3
- package/dist/types/raw/data/tweet/Tweet.js.map +0 -1
- package/dist/types/raw/data/tweet/Tweets.d.ts +0 -386
- package/dist/types/raw/data/tweet/Tweets.js +0 -3
- package/dist/types/raw/data/tweet/Tweets.js.map +0 -1
- package/dist/types/raw/data/user/Followers.d.ts +0 -176
- package/dist/types/raw/data/user/Followers.js +0 -3
- package/dist/types/raw/data/user/Followers.js.map +0 -1
- package/dist/types/raw/data/user/Following.d.ts +0 -176
- package/dist/types/raw/data/user/Following.js +0 -3
- package/dist/types/raw/data/user/Following.js.map +0 -1
- package/dist/types/raw/data/user/Likes.d.ts +0 -1059
- package/dist/types/raw/data/user/Likes.js +0 -3
- package/dist/types/raw/data/user/Likes.js.map +0 -1
- package/dist/types/raw/data/user/User.d.ts +0 -117
- package/dist/types/raw/data/user/User.js +0 -3
- package/dist/types/raw/data/user/User.js.map +0 -1
- package/dist/types/raw/general/Trends.d.ts +0 -324
- package/dist/types/raw/general/Trends.js +0 -3
- package/dist/types/raw/general/Trends.js.map +0 -1
- package/dist/types/raw/query/tweet/Details.d.ts +0 -80
- package/dist/types/raw/query/tweet/Details.js +0 -5
- package/dist/types/raw/query/tweet/Details.js.map +0 -1
- package/dist/types/raw/query/tweet/Engagements.d.ts +0 -29
- package/dist/types/raw/query/tweet/Engagements.js +0 -3
- package/dist/types/raw/query/tweet/Engagements.js.map +0 -1
- package/dist/types/raw/query/tweet/Likes.d.ts +0 -29
- package/dist/types/raw/query/tweet/Likes.js +0 -3
- package/dist/types/raw/query/tweet/Likes.js.map +0 -1
- package/dist/types/raw/query/tweet/Retweets.d.ts +0 -29
- package/dist/types/raw/query/tweet/Retweets.js +0 -3
- package/dist/types/raw/query/tweet/Retweets.js.map +0 -1
- package/dist/types/raw/query/tweet/Search.d.ts +0 -40
- package/dist/types/raw/query/tweet/Search.js +0 -3
- package/dist/types/raw/query/tweet/Search.js.map +0 -1
- package/dist/types/raw/query/tweet/TweetDetails.d.ts +0 -34
- package/dist/types/raw/query/tweet/TweetDetails.js +0 -5
- package/dist/types/raw/query/tweet/TweetDetails.js.map +0 -1
- package/dist/types/raw/query/tweet/TweetLike.d.ts +0 -29
- package/dist/types/raw/query/tweet/TweetLike.js +0 -3
- package/dist/types/raw/query/tweet/TweetLike.js.map +0 -1
- package/dist/types/raw/query/tweet/TweetLikes.d.ts +0 -29
- package/dist/types/raw/query/tweet/TweetLikes.js +0 -3
- package/dist/types/raw/query/tweet/TweetLikes.js.map +0 -1
- package/dist/types/raw/query/tweet/TweetRetweets.d.ts +0 -0
- package/dist/types/raw/query/tweet/TweetRetweets.js +0 -2
- package/dist/types/raw/query/tweet/TweetRetweets.js.map +0 -1
- package/dist/types/raw/query/user/Details.d.ts +0 -34
- package/dist/types/raw/query/user/Details.js +0 -3
- package/dist/types/raw/query/user/Details.js.map +0 -1
- package/dist/types/raw/tweet/Favouriters.d.ts +0 -164
- package/dist/types/raw/tweet/Favouriters.js +0 -3
- package/dist/types/raw/tweet/Favouriters.js.map +0 -1
- package/dist/types/raw/tweet/Retweeters.d.ts +0 -171
- package/dist/types/raw/tweet/Retweeters.js +0 -3
- package/dist/types/raw/tweet/Retweeters.js.map +0 -1
- package/dist/types/raw/tweet/Tweet.d.ts +0 -746
- package/dist/types/raw/tweet/Tweet.js +0 -3
- package/dist/types/raw/tweet/Tweet.js.map +0 -1
- package/dist/types/raw/tweet/Tweets.d.ts +0 -386
- package/dist/types/raw/tweet/Tweets.js +0 -3
- package/dist/types/raw/tweet/Tweets.js.map +0 -1
- package/dist/types/raw/user/Followers.d.ts +0 -176
- package/dist/types/raw/user/Followers.js +0 -3
- package/dist/types/raw/user/Followers.js.map +0 -1
- package/dist/types/raw/user/Following.d.ts +0 -176
- package/dist/types/raw/user/Following.js +0 -3
- package/dist/types/raw/user/Following.js.map +0 -1
- package/dist/types/raw/user/Likes.d.ts +0 -1059
- package/dist/types/raw/user/Likes.js +0 -3
- package/dist/types/raw/user/Likes.js.map +0 -1
- package/dist/types/raw/user/Tweets.d.ts +0 -1512
- package/dist/types/raw/user/Tweets.js +0 -3
- package/dist/types/raw/user/Tweets.js.map +0 -1
- package/dist/types/raw/user/User.d.ts +0 -117
- package/dist/types/raw/user/User.js +0 -3
- package/dist/types/raw/user/User.js.map +0 -1
- package/dist/types/services/args/TweetFilter.d.ts +0 -50
- package/dist/types/services/args/TweetFilter.js +0 -76
- package/dist/types/services/args/TweetFilter.js.map +0 -1
- package/src/models/args/TweetFilter.ts +0 -119
- package/src/models/errors/DataValidationError.ts +0 -29
- package/src/services/helper/urls/Tweets.ts +0 -46
- package/src/services/helper/urls/Users.ts +0 -78
- package/src/types/raw/tweet/Favouriters.ts +0 -193
- package/src/types/raw/tweet/Retweeters.ts +0 -201
- package/src/types/raw/tweet/Tweet.ts +0 -882
- package/src/types/raw/tweet/Tweets.ts +0 -444
- package/src/types/raw/user/Followers.ts +0 -208
- package/src/types/raw/user/Following.ts +0 -208
- package/src/types/raw/user/Likes.ts +0 -1247
- package/src/types/raw/user/Tweets.ts +0 -1747
- 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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"}
|