rettiwt-api 1.3.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/.eslintignore +3 -0
  2. package/.eslintrc.js +54 -0
  3. package/.github/workflows/documentation.yml +47 -0
  4. package/.github/workflows/{publish-to-npm.yml → publish.yml} +8 -8
  5. package/.prettierignore +3 -0
  6. package/.prettierrc +13 -0
  7. package/README.md +59 -61
  8. package/dist/Rettiwt.d.ts +19 -0
  9. package/dist/Rettiwt.js +30 -0
  10. package/dist/Rettiwt.js.map +1 -0
  11. package/dist/enums/ApiErrors.d.ts +30 -0
  12. package/dist/enums/ApiErrors.js +35 -0
  13. package/dist/enums/ApiErrors.js.map +1 -0
  14. package/dist/enums/HTTP.d.ts +11 -11
  15. package/dist/enums/HTTP.js +15 -16
  16. package/dist/enums/HTTP.js.map +1 -1
  17. package/dist/helper/JsonUtils.d.ts +26 -0
  18. package/dist/helper/JsonUtils.js +88 -0
  19. package/dist/helper/JsonUtils.js.map +1 -0
  20. package/dist/index.d.ts +10 -43
  21. package/dist/index.js +16 -55
  22. package/dist/index.js.map +1 -1
  23. package/dist/models/CursoredData.d.ts +37 -0
  24. package/dist/models/CursoredData.js +59 -0
  25. package/dist/models/CursoredData.js.map +1 -0
  26. package/dist/models/{data/Tweet.d.ts → Tweet.d.ts} +4 -4
  27. package/dist/models/{data/Tweet.js → Tweet.js} +7 -32
  28. package/dist/models/Tweet.js.map +1 -0
  29. package/dist/models/{data/User.d.ts → User.d.ts} +3 -3
  30. package/dist/models/{data/User.js → User.js} +3 -3
  31. package/dist/models/User.js.map +1 -0
  32. package/dist/services/FetcherService.d.ts +66 -0
  33. package/dist/services/FetcherService.js +207 -0
  34. package/dist/services/FetcherService.js.map +1 -0
  35. package/dist/services/TweetService.d.ts +88 -0
  36. package/dist/services/TweetService.js +244 -0
  37. package/dist/services/TweetService.js.map +1 -0
  38. package/dist/services/UserService.d.ts +60 -0
  39. package/dist/services/UserService.js +188 -0
  40. package/dist/services/UserService.js.map +1 -0
  41. package/dist/types/{Service.d.ts → CursoredData.d.ts} +3 -3
  42. package/dist/types/CursoredData.js +3 -0
  43. package/dist/types/CursoredData.js.map +1 -0
  44. package/dist/types/Tweet.js +1 -1
  45. package/dist/types/User.js +1 -1
  46. package/package.json +15 -19
  47. package/src/Rettiwt.ts +33 -0
  48. package/src/enums/ApiErrors.ts +30 -0
  49. package/src/enums/HTTP.ts +12 -12
  50. package/src/helper/JsonUtils.ts +86 -0
  51. package/src/index.ts +14 -57
  52. package/src/models/CursoredData.ts +64 -0
  53. package/src/models/Tweet.ts +116 -0
  54. package/src/models/User.ts +72 -0
  55. package/src/services/FetcherService.ts +183 -0
  56. package/src/services/TweetService.ts +153 -0
  57. package/src/services/UserService.ts +117 -0
  58. package/src/types/CursoredData.ts +24 -0
  59. package/src/types/Tweet.ts +35 -35
  60. package/src/types/User.ts +30 -30
  61. package/tsconfig.json +9 -9
  62. package/.github/workflows/build-docs.yml +0 -28
  63. package/dist/config/env.d.ts +0 -5
  64. package/dist/config/env.js +0 -9
  65. package/dist/config/env.js.map +0 -1
  66. package/dist/enums/Errors.d.ts +0 -21
  67. package/dist/enums/Errors.js +0 -29
  68. package/dist/enums/Errors.js.map +0 -1
  69. package/dist/graphql/enums/Errors.d.ts +0 -21
  70. package/dist/graphql/enums/Errors.js +0 -29
  71. package/dist/graphql/enums/Errors.js.map +0 -1
  72. package/dist/graphql/queries/RootQuery.d.ts +0 -4
  73. package/dist/graphql/queries/RootQuery.js +0 -78
  74. package/dist/graphql/queries/RootQuery.js.map +0 -1
  75. package/dist/graphql/resolvers/AccountResolver.d.ts +0 -12
  76. package/dist/graphql/resolvers/AccountResolver.js +0 -84
  77. package/dist/graphql/resolvers/AccountResolver.js.map +0 -1
  78. package/dist/graphql/resolvers/ResolverBase.d.ts +0 -16
  79. package/dist/graphql/resolvers/ResolverBase.js +0 -23
  80. package/dist/graphql/resolvers/ResolverBase.js.map +0 -1
  81. package/dist/graphql/resolvers/TweetResolver.d.ts +0 -46
  82. package/dist/graphql/resolvers/TweetResolver.js +0 -312
  83. package/dist/graphql/resolvers/TweetResolver.js.map +0 -1
  84. package/dist/graphql/resolvers/UserResolver.d.ts +0 -48
  85. package/dist/graphql/resolvers/UserResolver.js +0 -334
  86. package/dist/graphql/resolvers/UserResolver.js.map +0 -1
  87. package/dist/graphql/types/Global.d.ts +0 -4
  88. package/dist/graphql/types/Global.js +0 -13
  89. package/dist/graphql/types/Global.js.map +0 -1
  90. package/dist/graphql/types/TweetTypes.d.ts +0 -4
  91. package/dist/graphql/types/TweetTypes.js +0 -160
  92. package/dist/graphql/types/TweetTypes.js.map +0 -1
  93. package/dist/graphql/types/UserTypes.d.ts +0 -3
  94. package/dist/graphql/types/UserTypes.js +0 -137
  95. package/dist/graphql/types/UserTypes.js.map +0 -1
  96. package/dist/models/args/TweetListArgs.d.ts +0 -21
  97. package/dist/models/args/TweetListArgs.js +0 -54
  98. package/dist/models/args/TweetListArgs.js.map +0 -1
  99. package/dist/models/args/UserListArgs.d.ts +0 -21
  100. package/dist/models/args/UserListArgs.js +0 -54
  101. package/dist/models/args/UserListArgs.js.map +0 -1
  102. package/dist/models/auth/AuthCookie.d.ts +0 -21
  103. package/dist/models/auth/AuthCookie.js +0 -33
  104. package/dist/models/auth/AuthCookie.js.map +0 -1
  105. package/dist/models/data/CursoredData.d.ts +0 -34
  106. package/dist/models/data/CursoredData.js +0 -42
  107. package/dist/models/data/CursoredData.js.map +0 -1
  108. package/dist/models/data/Tweet.js.map +0 -1
  109. package/dist/models/data/User.js.map +0 -1
  110. package/dist/server.d.ts +0 -1
  111. package/dist/server.js +0 -76
  112. package/dist/server.js.map +0 -1
  113. package/dist/services/auth/AccountService.d.ts +0 -83
  114. package/dist/services/auth/AccountService.js +0 -412
  115. package/dist/services/auth/AccountService.js.map +0 -1
  116. package/dist/services/auth/AuthService.d.ts +0 -31
  117. package/dist/services/auth/AuthService.js +0 -118
  118. package/dist/services/auth/AuthService.js.map +0 -1
  119. package/dist/services/data/TweetService.d.ts +0 -60
  120. package/dist/services/data/TweetService.js +0 -251
  121. package/dist/services/data/TweetService.js.map +0 -1
  122. package/dist/services/data/UserService.d.ts +0 -71
  123. package/dist/services/data/UserService.js +0 -278
  124. package/dist/services/data/UserService.js.map +0 -1
  125. package/dist/services/helper/Headers.d.ts +0 -19
  126. package/dist/services/helper/Headers.js +0 -62
  127. package/dist/services/helper/Headers.js.map +0 -1
  128. package/dist/services/helper/Parser.d.ts +0 -22
  129. package/dist/services/helper/Parser.js +0 -84
  130. package/dist/services/helper/Parser.js.map +0 -1
  131. package/dist/services/helper/extractors/Tweets.d.ts +0 -23
  132. package/dist/services/helper/extractors/Tweets.js +0 -200
  133. package/dist/services/helper/extractors/Tweets.js.map +0 -1
  134. package/dist/services/helper/extractors/Users.d.ts +0 -17
  135. package/dist/services/helper/extractors/Users.js +0 -151
  136. package/dist/services/helper/extractors/Users.js.map +0 -1
  137. package/dist/services/helper/payloads/LoginFlows.d.ts +0 -77
  138. package/dist/services/helper/payloads/LoginFlows.js +0 -92
  139. package/dist/services/helper/payloads/LoginFlows.js.map +0 -1
  140. package/dist/services/helper/urls/Authentication.d.ts +0 -4
  141. package/dist/services/helper/urls/Authentication.js +0 -11
  142. package/dist/services/helper/urls/Authentication.js.map +0 -1
  143. package/dist/services/util/CacheService.d.ts +0 -33
  144. package/dist/services/util/CacheService.js +0 -96
  145. package/dist/services/util/CacheService.js.map +0 -1
  146. package/dist/services/util/FetcherService.d.ts +0 -65
  147. package/dist/services/util/FetcherService.js +0 -202
  148. package/dist/services/util/FetcherService.js.map +0 -1
  149. package/dist/types/Args.d.ts +0 -11
  150. package/dist/types/Args.js +0 -4
  151. package/dist/types/Args.js.map +0 -1
  152. package/dist/types/Authentication.d.ts +0 -55
  153. package/dist/types/Authentication.js +0 -6
  154. package/dist/types/Authentication.js.map +0 -1
  155. package/dist/types/Resolvers.d.ts +0 -15
  156. package/dist/types/Resolvers.js +0 -3
  157. package/dist/types/Resolvers.js.map +0 -1
  158. package/dist/types/Rettiwt.d.ts +0 -16
  159. package/dist/types/Rettiwt.js +0 -3
  160. package/dist/types/Rettiwt.js.map +0 -1
  161. package/dist/types/Service.js +0 -5
  162. package/dist/types/Service.js.map +0 -1
  163. package/docs/.nojekyll +0 -1
  164. package/docs/assets/highlight.css +0 -64
  165. package/docs/assets/main.js +0 -58
  166. package/docs/assets/search.js +0 -1
  167. package/docs/assets/style.css +0 -1280
  168. package/docs/classes/AccountService.html +0 -286
  169. package/docs/classes/AuthCookie.html +0 -146
  170. package/docs/classes/AuthService.html +0 -147
  171. package/docs/classes/CacheService.html +0 -157
  172. package/docs/classes/Cursor.html +0 -102
  173. package/docs/classes/CursoredData.html +0 -126
  174. package/docs/classes/DataValidationError.html +0 -120
  175. package/docs/classes/FetcherService.html +0 -225
  176. package/docs/classes/Tweet.html +0 -210
  177. package/docs/classes/TweetEntities.html +0 -128
  178. package/docs/classes/TweetFilter.html +0 -223
  179. package/docs/classes/TweetListArgs.html +0 -118
  180. package/docs/classes/TweetService.html +0 -319
  181. package/docs/classes/User.html +0 -230
  182. package/docs/classes/UserListArgs.html +0 -118
  183. package/docs/classes/UserService.html +0 -355
  184. package/docs/enums/HttpMethods.html +0 -74
  185. package/docs/functions/Rettiwt.html +0 -100
  186. package/docs/index.html +0 -159
  187. package/docs/interfaces/IAuthCookie.html +0 -104
  188. package/docs/interfaces/ICursor.html +0 -77
  189. package/docs/interfaces/ICursoredData.html +0 -93
  190. package/docs/interfaces/IDataContext.html +0 -91
  191. package/docs/interfaces/IDataValidationError.html +0 -109
  192. package/docs/interfaces/IListArgs.html +0 -87
  193. package/docs/interfaces/ITweet.html +0 -176
  194. package/docs/interfaces/ITweetEntities.html +0 -104
  195. package/docs/interfaces/ITweetFilter.html +0 -158
  196. package/docs/interfaces/IUser.html +0 -194
  197. package/docs/modules.html +0 -111
  198. package/environment.d.ts +0 -11
  199. package/src/config/env.ts +0 -5
  200. package/src/enums/Errors.ts +0 -22
  201. package/src/graphql/enums/Errors.ts +0 -22
  202. package/src/graphql/queries/RootQuery.ts +0 -75
  203. package/src/graphql/resolvers/AccountResolver.ts +0 -22
  204. package/src/graphql/resolvers/ResolverBase.ts +0 -26
  205. package/src/graphql/resolvers/TweetResolver.ts +0 -237
  206. package/src/graphql/resolvers/UserResolver.ts +0 -257
  207. package/src/graphql/types/Global.ts +0 -10
  208. package/src/graphql/types/TweetTypes.ts +0 -158
  209. package/src/graphql/types/UserTypes.ts +0 -135
  210. package/src/models/args/TweetListArgs.ts +0 -47
  211. package/src/models/args/UserListArgs.ts +0 -47
  212. package/src/models/auth/AuthCookie.ts +0 -43
  213. package/src/models/data/CursoredData.ts +0 -45
  214. package/src/models/data/Tweet.ts +0 -118
  215. package/src/models/data/User.ts +0 -72
  216. package/src/server.ts +0 -37
  217. package/src/services/auth/AccountService.ts +0 -283
  218. package/src/services/auth/AuthService.ts +0 -81
  219. package/src/services/data/TweetService.ts +0 -198
  220. package/src/services/data/UserService.ts +0 -221
  221. package/src/services/helper/Headers.ts +0 -60
  222. package/src/services/helper/Parser.ts +0 -89
  223. package/src/services/helper/extractors/Tweets.ts +0 -190
  224. package/src/services/helper/extractors/Users.ts +0 -141
  225. package/src/services/helper/payloads/LoginFlows.ts +0 -90
  226. package/src/services/helper/urls/Authentication.ts +0 -6
  227. package/src/services/util/CacheService.ts +0 -76
  228. package/src/services/util/FetcherService.ts +0 -143
  229. package/src/types/Args.ts +0 -12
  230. package/src/types/Authentication.ts +0 -63
  231. package/src/types/Resolvers.ts +0 -18
  232. package/src/types/Rettiwt.ts +0 -20
  233. package/src/types/Service.ts +0 -24
package/dist/index.d.ts CHANGED
@@ -1,45 +1,12 @@
1
- import 'reflect-metadata';
2
- import { UserService } from "./services/data/UserService";
3
- import { TweetService } from "./services/data/TweetService";
4
- import { AccountService } from "./services/auth/AccountService";
5
- import { IAuthCookie } from './types/Authentication';
6
- /**
7
- * The instance for fetching data from Twitter.
8
- *
9
- * @public
10
- *
11
- * @param cookie The cookie to use to fetch data.
12
- *
13
- * @returns The API for fetching user and tweet data.
14
- *
15
- * @remarks The cookie can be obtained by using {@link AccountService.login} method.
16
- * To use the {@link AccountService.login} method, create a {@link Rettiwt} instance without passing any cookie .
17
- * Then use the {@link AccountService.login} method of {@link AccountService} to get the cookie.
18
- */
19
- export declare const Rettiwt: (cookie?: IAuthCookie | undefined) => {
20
- users: UserService;
21
- tweets: TweetService;
22
- account: AccountService;
23
- };
24
- export * from './services/auth/AuthService';
25
- export * from './services/auth/AccountService';
26
- export * from './services/data/TweetService';
27
- export * from './services/data/UserService';
28
- export * from './services/util/CacheService';
29
- export * from './services/util/FetcherService';
30
- export { ITweetFilter } from 'rettiwt-core';
31
- export * from './types/Args';
32
- export { IAuthCookie } from './types/Authentication';
33
- export * from './types/Rettiwt';
34
- export * from './types/Service';
1
+ export * from './Rettiwt';
2
+ export * from './enums/ApiErrors';
3
+ export * from './enums/HTTP';
4
+ export * from './models/CursoredData';
5
+ export * from './models/Tweet';
6
+ export * from './models/User';
7
+ export * from './services/FetcherService';
8
+ export * from './services/TweetService';
9
+ export * from './services/UserService';
10
+ export * from './types/CursoredData';
35
11
  export * from './types/Tweet';
36
12
  export * from './types/User';
37
- export { IDataValidationError } from 'rettiwt-core';
38
- export { TweetFilter } from 'rettiwt-core';
39
- export * from './models/args/TweetListArgs';
40
- export * from './models/args/UserListArgs';
41
- export { AuthCookie } from './models/auth/AuthCookie';
42
- export * from './models/data/CursoredData';
43
- export * from './models/data/Tweet';
44
- export * from './models/data/User';
45
- export { DataValidationError } from 'rettiwt-core';
package/dist/index.js CHANGED
@@ -13,61 +13,22 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
13
13
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
- exports.__esModule = true;
17
- exports.DataValidationError = exports.AuthCookie = exports.TweetFilter = exports.Rettiwt = void 0;
18
- // PACKAGES
19
- require("reflect-metadata");
20
- // SERVICES
21
- var AuthService_1 = require("./services/auth/AuthService");
22
- var UserService_1 = require("./services/data/UserService");
23
- var TweetService_1 = require("./services/data/TweetService");
24
- var AccountService_1 = require("./services/auth/AccountService");
25
- /**
26
- * The instance for fetching data from Twitter.
27
- *
28
- * @public
29
- *
30
- * @param cookie The cookie to use to fetch data.
31
- *
32
- * @returns The API for fetching user and tweet data.
33
- *
34
- * @remarks The cookie can be obtained by using {@link AccountService.login} method.
35
- * To use the {@link AccountService.login} method, create a {@link Rettiwt} instance without passing any cookie .
36
- * Then use the {@link AccountService.login} method of {@link AccountService} to get the cookie.
37
- */
38
- var Rettiwt = function (cookie) {
39
- // Creating new auth service instance using the given cookie
40
- var auth = new AuthService_1.AuthService(cookie);
41
- // Using the auth service instance to create data services instances
42
- return {
43
- users: new UserService_1.UserService(auth),
44
- tweets: new TweetService_1.TweetService(auth),
45
- account: new AccountService_1.AccountService()
46
- };
47
- };
48
- exports.Rettiwt = Rettiwt;
49
- // Exporting classes
50
- __exportStar(require("./services/auth/AuthService"), exports);
51
- __exportStar(require("./services/auth/AccountService"), exports);
52
- __exportStar(require("./services/data/TweetService"), exports);
53
- __exportStar(require("./services/data/UserService"), exports);
54
- __exportStar(require("./services/util/CacheService"), exports);
55
- __exportStar(require("./services/util/FetcherService"), exports);
56
- __exportStar(require("./types/Args"), exports);
57
- __exportStar(require("./types/Rettiwt"), exports);
58
- __exportStar(require("./types/Service"), exports);
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ // MAIN
18
+ __exportStar(require("./Rettiwt"), exports);
19
+ // Exporting enums
20
+ __exportStar(require("./enums/ApiErrors"), exports);
21
+ __exportStar(require("./enums/HTTP"), exports);
22
+ // Exporting models
23
+ __exportStar(require("./models/CursoredData"), exports);
24
+ __exportStar(require("./models/Tweet"), exports);
25
+ __exportStar(require("./models/User"), exports);
26
+ // Exporting services
27
+ __exportStar(require("./services/FetcherService"), exports);
28
+ __exportStar(require("./services/TweetService"), exports);
29
+ __exportStar(require("./services/UserService"), exports);
30
+ // Exporting types
31
+ __exportStar(require("./types/CursoredData"), exports);
59
32
  __exportStar(require("./types/Tweet"), exports);
60
33
  __exportStar(require("./types/User"), exports);
61
- // Exporting models
62
- var rettiwt_core_1 = require("rettiwt-core");
63
- __createBinding(exports, rettiwt_core_1, "TweetFilter");
64
- __exportStar(require("./models/args/TweetListArgs"), exports);
65
- __exportStar(require("./models/args/UserListArgs"), exports);
66
- var AuthCookie_1 = require("./models/auth/AuthCookie");
67
- __createBinding(exports, AuthCookie_1, "AuthCookie");
68
- __exportStar(require("./models/data/CursoredData"), exports);
69
- __exportStar(require("./models/data/Tweet"), exports);
70
- __exportStar(require("./models/data/User"), exports);
71
- var rettiwt_core_2 = require("rettiwt-core");
72
- __createBinding(exports, rettiwt_core_2, "DataValidationError");
73
34
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,WAAW;AACX,4BAA0B;AAE1B,WAAW;AACX,2DAA0D;AAC1D,2DAA0D;AAC1D,6DAA4D;AAC5D,iEAAgE;AAKhE;;;;;;;;;;;;GAYG;AACI,IAAM,OAAO,GAAG,UAAC,MAAoB;IACxC,4DAA4D;IAC5D,IAAM,IAAI,GAAgB,IAAI,yBAAW,CAAC,MAAM,CAAC,CAAC;IAElD,oEAAoE;IACpE,OAAO;QACH,KAAK,EAAE,IAAI,yBAAW,CAAC,IAAI,CAAC;QAC5B,MAAM,EAAE,IAAI,2BAAY,CAAC,IAAI,CAAC;QAC9B,OAAO,EAAE,IAAI,+BAAc,EAAE;KAChC,CAAC;AACN,CAAC,CAAA;AAVY,QAAA,OAAO,WAUnB;AAED,oBAAoB;AACpB,8DAA4C;AAC5C,iEAA+C;AAC/C,+DAA6C;AAC7C,8DAA4C;AAC5C,+DAA6C;AAC7C,iEAA+C;AAI/C,+CAA6B;AAE7B,kDAAgC;AAChC,kDAAgC;AAChC,gDAA8B;AAC9B,+CAA6B;AAG7B,mBAAmB;AACnB,6CAA2C;AAAlC,wDAAW;AACpB,8DAA4C;AAC5C,6DAA2C;AAC3C,uDAAsD;AAA7C,qDAAU;AACnB,6DAA2C;AAC3C,sDAAoC;AACpC,qDAAmC;AACnC,6CAAmD;AAA1C,gEAAmB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAO;AACP,4CAA0B;AAE1B,kBAAkB;AAClB,oDAAkC;AAClC,+CAA6B;AAE7B,mBAAmB;AACnB,wDAAsC;AACtC,iDAA+B;AAC/B,gDAA8B;AAE9B,qBAAqB;AACrB,4DAA0C;AAC1C,0DAAwC;AACxC,yDAAuC;AAEvC,kBAAkB;AAClB,uDAAqC;AACrC,gDAA8B;AAC9B,+CAA6B"}
@@ -0,0 +1,37 @@
1
+ import { ITweet as IRawTweet, IUser as IRawUser } from 'rettiwt-core';
2
+ import { Tweet } from './Tweet';
3
+ import { User } from './User';
4
+ import { ICursor, ICursoredData } from '../types/CursoredData';
5
+ /**
6
+ * The cursor to the batch of data to be fetched.
7
+ *
8
+ * @public
9
+ */
10
+ export declare class Cursor implements ICursor {
11
+ /** The cursor string. */
12
+ value: string;
13
+ /**
14
+ * Initializes a new cursor from the given cursor string.
15
+ *
16
+ * @param cursorStr - The string representation of the cursor.
17
+ */
18
+ constructor(cursorStr: string);
19
+ }
20
+ /**
21
+ * The data that us fetched batch-wise along with a cursor.
22
+ *
23
+ * @typeParam T - Type of data to be stored in the list.
24
+ *
25
+ * @public
26
+ */
27
+ export declare class CursoredData<T extends Tweet | User> implements ICursoredData<T> {
28
+ /** The list of data of the given type. */
29
+ list: T[];
30
+ /** The cursor to the next batch of data. */
31
+ next: Cursor;
32
+ /**
33
+ * @param list - The list of data item to store.
34
+ * @param next - The cursor to the next batch of data.
35
+ */
36
+ constructor(list?: (IRawTweet | IRawUser)[], next?: string);
37
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CursoredData = exports.Cursor = void 0;
4
+ // MODELS
5
+ var Tweet_1 = require("./Tweet");
6
+ var User_1 = require("./User");
7
+ /**
8
+ * The cursor to the batch of data to be fetched.
9
+ *
10
+ * @public
11
+ */
12
+ var Cursor = /** @class */ (function () {
13
+ /**
14
+ * Initializes a new cursor from the given cursor string.
15
+ *
16
+ * @param cursorStr - The string representation of the cursor.
17
+ */
18
+ function Cursor(cursorStr) {
19
+ this.value = cursorStr;
20
+ }
21
+ return Cursor;
22
+ }());
23
+ exports.Cursor = Cursor;
24
+ /**
25
+ * The data that us fetched batch-wise along with a cursor.
26
+ *
27
+ * @typeParam T - Type of data to be stored in the list.
28
+ *
29
+ * @public
30
+ */
31
+ var CursoredData = /** @class */ (function () {
32
+ /**
33
+ * @param list - The list of data item to store.
34
+ * @param next - The cursor to the next batch of data.
35
+ */
36
+ function CursoredData(list, next) {
37
+ if (list === void 0) { list = []; }
38
+ if (next === void 0) { next = ''; }
39
+ /** The list of data of the given type. */
40
+ this.list = [];
41
+ // Deserializing the input raw data and storing it in the list
42
+ for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {
43
+ var item = list_1[_i];
44
+ // If the item is a valid raw tweet
45
+ if (item.__typename == 'Tweet' && item.rest_id) {
46
+ this.list.push(new Tweet_1.Tweet(item));
47
+ }
48
+ // If the item is a valid raw user
49
+ else if (item.__typename == 'User' && item.rest_id) {
50
+ this.list.push(new User_1.User(item));
51
+ }
52
+ }
53
+ // Initializing cursors
54
+ this.next = new Cursor(next);
55
+ }
56
+ return CursoredData;
57
+ }());
58
+ exports.CursoredData = CursoredData;
59
+ //# sourceMappingURL=CursoredData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CursoredData.js","sourceRoot":"","sources":["../../src/models/CursoredData.ts"],"names":[],"mappings":";;;AAGA,SAAS;AACT,iCAAgC;AAChC,+BAA8B;AAK9B;;;;GAIG;AACH;IAIC;;;;OAIG;IACH,gBAAY,SAAiB;QAC5B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IACxB,CAAC;IACF,aAAC;AAAD,CAAC,AAZD,IAYC;AAZY,wBAAM;AAcnB;;;;;;GAMG;AACH;IAOC;;;OAGG;IACH,sBAAY,IAAmC,EAAE,IAAiB;QAAtD,qBAAA,EAAA,SAAmC;QAAE,qBAAA,EAAA,SAAiB;QAVlE,0CAA0C;QAC1C,SAAI,GAAQ,EAAE,CAAC;QAUd,8DAA8D;QAC9D,KAAmB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;YAApB,IAAM,IAAI,aAAA;YACd,mCAAmC;YACnC,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE;gBAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,aAAK,CAAC,IAAiB,CAAM,CAAC,CAAC;aAClD;YACD,kCAAkC;iBAC7B,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;gBACnD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,WAAI,CAAC,IAAgB,CAAM,CAAC,CAAC;aAChD;SACD;QAED,uBAAuB;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IACF,mBAAC;AAAD,CAAC,AA3BD,IA2BC;AA3BY,oCAAY"}
@@ -1,9 +1,9 @@
1
- import { ITweet, ITweetEntities } from '../../types/Tweet';
1
+ import { ITweet, ITweetEntities } from '../types/Tweet';
2
2
  import { ITweet as IRawTweet, IEntities as IRawTweetEntities } from 'rettiwt-core';
3
3
  /**
4
4
  * The different types parsed entities like urls, media, mentions, hashtags, etc.
5
5
  *
6
- * @internal
6
+ * @public
7
7
  */
8
8
  export declare class TweetEntities implements ITweetEntities {
9
9
  /** The list of hashtags mentioned in the tweet. */
@@ -19,7 +19,7 @@ export declare class TweetEntities implements ITweetEntities {
19
19
  /**
20
20
  * The details of a single Tweet.
21
21
  *
22
- * @internal
22
+ * @public
23
23
  */
24
24
  export declare class Tweet implements ITweet {
25
25
  /** The rest id of the tweet. */
@@ -47,7 +47,7 @@ export declare class Tweet implements ITweet {
47
47
  /** The number of likes of the tweet. */
48
48
  likeCount: number;
49
49
  /**
50
- * @param tweet The raw tweet data.
50
+ * @param tweet - The raw tweet data.
51
51
  */
52
52
  constructor(tweet: IRawTweet);
53
53
  }
@@ -1,40 +1,15 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- exports.__esModule = true;
2
+ Object.defineProperty(exports, "__esModule", { value: true });
26
3
  exports.Tweet = exports.TweetEntities = void 0;
27
4
  // PARSERS
28
- var Parsers = __importStar(require("../../services/helper/Parser"));
5
+ var JsonUtils_1 = require("../helper/JsonUtils");
29
6
  /**
30
7
  * The different types parsed entities like urls, media, mentions, hashtags, etc.
31
8
  *
32
- * @internal
9
+ * @public
33
10
  */
34
11
  var TweetEntities = /** @class */ (function () {
35
- // MEMBER METHODS
36
12
  function TweetEntities(entities) {
37
- // MEMBER DATA
38
13
  /** The list of hashtags mentioned in the tweet. */
39
14
  this.hashtags = [];
40
15
  /** The list of urls mentioned in the tweet. */
@@ -47,7 +22,7 @@ var TweetEntities = /** @class */ (function () {
47
22
  if (entities.user_mentions) {
48
23
  for (var _i = 0, _a = entities.user_mentions; _i < _a.length; _i++) {
49
24
  var user = _a[_i];
50
- this.mentionedUsers.push(user.id_str);
25
+ this.mentionedUsers.push(user.screen_name);
51
26
  }
52
27
  }
53
28
  // Extracting urls
@@ -78,11 +53,11 @@ exports.TweetEntities = TweetEntities;
78
53
  /**
79
54
  * The details of a single Tweet.
80
55
  *
81
- * @internal
56
+ * @public
82
57
  */
83
58
  var Tweet = /** @class */ (function () {
84
59
  /**
85
- * @param tweet The raw tweet data.
60
+ * @param tweet - The raw tweet data.
86
61
  */
87
62
  function Tweet(tweet) {
88
63
  this.id = tweet.rest_id;
@@ -90,7 +65,7 @@ var Tweet = /** @class */ (function () {
90
65
  this.tweetBy = tweet.legacy.user_id_str;
91
66
  this.entities = new TweetEntities(tweet.legacy.entities);
92
67
  this.quoted = tweet.legacy.quoted_status_id_str;
93
- this.fullText = Parsers.normalizeText(tweet.legacy.full_text);
68
+ this.fullText = (0, JsonUtils_1.normalizeText)(tweet.legacy.full_text);
94
69
  this.replyTo = tweet.legacy.in_reply_to_status_id_str;
95
70
  this.lang = tweet.legacy.lang;
96
71
  this.quoteCount = tweet.legacy.quote_count;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tweet.js","sourceRoot":"","sources":["../../src/models/Tweet.ts"],"names":[],"mappings":";;;AAIA,UAAU;AACV,iDAAoD;AAEpD;;;;GAIG;AACH;IAaC,uBAAY,QAA2B;QAZvC,mDAAmD;QACnD,aAAQ,GAAa,EAAE,CAAC;QAExB,+CAA+C;QAC/C,SAAI,GAAa,EAAE,CAAC;QAEpB,uDAAuD;QACvD,mBAAc,GAAa,EAAE,CAAC;QAE9B,gEAAgE;QAChE,UAAK,GAAa,EAAE,CAAC;QAGpB,2BAA2B;QAC3B,IAAI,QAAQ,CAAC,aAAa,EAAE;YAC3B,KAAmB,UAAsB,EAAtB,KAAA,QAAQ,CAAC,aAAa,EAAtB,cAAsB,EAAtB,IAAsB,EAAE;gBAAtC,IAAM,IAAI,SAAA;gBACd,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAC3C;SACD;QAED,kBAAkB;QAClB,IAAI,QAAQ,CAAC,IAAI,EAAE;YAClB,KAAkB,UAAa,EAAb,KAAA,QAAQ,CAAC,IAAI,EAAb,cAAa,EAAb,IAAa,EAAE;gBAA5B,IAAM,GAAG,SAAA;gBACb,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;aACjC;SACD;QAED,sBAAsB;QACtB,IAAI,QAAQ,CAAC,QAAQ,EAAE;YACtB,KAAsB,UAAiB,EAAjB,KAAA,QAAQ,CAAC,QAAQ,EAAjB,cAAiB,EAAjB,IAAiB,EAAE;gBAApC,IAAM,OAAO,SAAA;gBACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aACjC;SACD;QAED,iCAAiC;QACjC,IAAI,QAAQ,CAAC,KAAK,EAAE;YACnB,KAAoB,UAAc,EAAd,KAAA,QAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc,EAAE;gBAA/B,IAAM,KAAK,SAAA;gBACf,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;aACvC;SACD;IACF,CAAC;IACF,oBAAC;AAAD,CAAC,AA1CD,IA0CC;AA1CY,sCAAa;AA4C1B;;;;GAIG;AACH;IAqCC;;OAEG;IACH,eAAY,KAAgB;QAC3B,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,IAAA,yBAAa,EAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAyB,CAAC;QACtD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC;IAC9C,CAAC;IACF,YAAC;AAAD,CAAC,AAtDD,IAsDC;AAtDY,sBAAK"}
@@ -1,9 +1,9 @@
1
- import { IUser } from '../../types/User';
1
+ import { IUser } from '../types/User';
2
2
  import { IUser as IRawUser } from 'rettiwt-core';
3
3
  /**
4
4
  * The details of a single user.
5
5
  *
6
- * @internal
6
+ * @public
7
7
  */
8
8
  export declare class User implements IUser {
9
9
  /** The rest id of the user. */
@@ -35,7 +35,7 @@ export declare class User implements IUser {
35
35
  /** The url of the profile image. */
36
36
  profileImage: string;
37
37
  /**
38
- * @param user The raw user data.
38
+ * @param user - The raw user data.
39
39
  */
40
40
  constructor(user: IRawUser);
41
41
  }
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
- exports.__esModule = true;
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.User = void 0;
4
4
  /**
5
5
  * The details of a single user.
6
6
  *
7
- * @internal
7
+ * @public
8
8
  */
9
9
  var User = /** @class */ (function () {
10
10
  /**
11
- * @param user The raw user data.
11
+ * @param user - The raw user data.
12
12
  */
13
13
  function User(user) {
14
14
  this.id = user.rest_id;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"User.js","sourceRoot":"","sources":["../../src/models/User.ts"],"names":[],"mappings":";;;AAIA;;;;GAIG;AACH;IA2CC;;OAEG;IACH,cAAY,IAAc;QACzB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QACvC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACpD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QACjD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;QACpD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC;IACzD,CAAC;IACF,WAAC;AAAD,CAAC,AA9DD,IA8DC;AA9DY,oBAAI"}
@@ -0,0 +1,66 @@
1
+ import { Args, EResourceType } from 'rettiwt-core';
2
+ import { AuthCredential } from 'rettiwt-auth';
3
+ import { CursoredData } from '../models/CursoredData';
4
+ import { Tweet } from '../models/Tweet';
5
+ import { User } from '../models/User';
6
+ /**
7
+ * The base service that handles all HTTP requests.
8
+ *
9
+ * @internal
10
+ */
11
+ export declare class FetcherService {
12
+ /** The credential to use for authenticating against Twitter API. */
13
+ private cred;
14
+ /**
15
+ * @param cred - The credentials to use for authenticating against Twitter API.
16
+ */
17
+ constructor(cred: AuthCredential);
18
+ /**
19
+ * The middleware for handling any http error.
20
+ *
21
+ * @param res - The response object received.
22
+ * @returns The received response, if no HTTP errors are found.
23
+ */
24
+ private handleHttpError;
25
+ /**
26
+ * The middleware for handling any Twitter API-level errors.
27
+ *
28
+ * @param res - The response object received.
29
+ * @returns The received response, if no API errors are found.
30
+ */
31
+ private handleApiError;
32
+ /**
33
+ * Makes an HTTP request according to the given parameters.
34
+ *
35
+ * @param config - The request configuration.
36
+ * @returns The response received.
37
+ */
38
+ private request;
39
+ /**
40
+ * Extracts the required data based on the type of resource passed as argument.
41
+ *
42
+ * @param data - The data from which extraction is to be done.
43
+ * @param type - The type of data to extract.
44
+ * @typeParam BaseType - The base type of the raw data present in the input.
45
+ * @typeParam DeserializedType - The type of data produced after deserialization of BaseType.
46
+ * @returns The extracted data.
47
+ */
48
+ private extractData;
49
+ /**
50
+ * Fetches the requested resource from Twitter and returns it after processing.
51
+ *
52
+ * @param resourceType - The type of resource to fetch.
53
+ * @param args - Resource specific arguments.
54
+ * @typeParam OutType - The type of deserialized data returned.
55
+ * @returns The processed data requested from Twitter.
56
+ */
57
+ protected fetch<OutType extends Tweet | User>(resourceType: EResourceType, args: Args): Promise<CursoredData<OutType>>;
58
+ /**
59
+ * Posts the requested resource to Twitter and returns the response.
60
+ *
61
+ * @param resourceType - The type of resource to post.
62
+ * @param args - Resource specific arguments.
63
+ * @returns Whether posting was successful or not.
64
+ */
65
+ protected post(resourceType: EResourceType, args: Args): Promise<boolean>;
66
+ }