rettiwt-api 1.0.5 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/README.md +2 -2
  2. package/dist/{queries → graphql/queries}/RootQuery.d.ts +0 -0
  3. package/dist/{queries → graphql/queries}/RootQuery.js +15 -3
  4. package/dist/graphql/queries/RootQuery.js.map +1 -0
  5. package/dist/graphql/resolvers/AccountResolver.d.ts +12 -0
  6. package/dist/graphql/resolvers/AccountResolver.js +84 -0
  7. package/dist/graphql/resolvers/AccountResolver.js.map +1 -0
  8. package/dist/{resolvers → graphql/resolvers}/ResolverBase.d.ts +1 -1
  9. package/dist/{resolvers → graphql/resolvers}/ResolverBase.js +0 -0
  10. package/dist/graphql/resolvers/ResolverBase.js.map +1 -0
  11. package/dist/{resolvers → graphql/resolvers}/TweetResolver.d.ts +10 -9
  12. package/dist/{resolvers → graphql/resolvers}/TweetResolver.js +51 -35
  13. package/dist/graphql/resolvers/TweetResolver.js.map +1 -0
  14. package/dist/{resolvers → graphql/resolvers}/UserResolver.d.ts +5 -4
  15. package/dist/{resolvers → graphql/resolvers}/UserResolver.js +51 -35
  16. package/dist/graphql/resolvers/UserResolver.js.map +1 -0
  17. package/dist/{models/graphql → graphql/types}/Global.d.ts +0 -0
  18. package/dist/{models/graphql → graphql/types}/Global.js +0 -0
  19. package/dist/graphql/types/Global.js.map +1 -0
  20. package/dist/graphql/types/TweetTypes.d.ts +4 -0
  21. package/dist/{models/graphql → graphql/types}/TweetTypes.js +5 -7
  22. package/dist/graphql/types/TweetTypes.js.map +1 -0
  23. package/dist/graphql/types/UserTypes.d.ts +3 -0
  24. package/dist/{models/graphql → graphql/types}/UserTypes.js +9 -11
  25. package/dist/graphql/types/UserTypes.js.map +1 -0
  26. package/dist/index.d.ts +4 -2
  27. package/dist/index.js +5 -3
  28. package/dist/index.js.map +1 -1
  29. package/dist/server.js +6 -4
  30. package/dist/server.js.map +1 -1
  31. package/dist/services/AuthService.js +2 -2
  32. package/dist/services/AuthService.js.map +1 -1
  33. package/dist/services/CacheService.d.ts +3 -3
  34. package/dist/services/CacheService.js +22 -75
  35. package/dist/services/CacheService.js.map +1 -1
  36. package/dist/services/FetcherService.d.ts +14 -4
  37. package/dist/services/FetcherService.js +58 -52
  38. package/dist/services/FetcherService.js.map +1 -1
  39. package/dist/services/accounts/AccountService.d.ts +42 -0
  40. package/dist/services/accounts/AccountService.js +291 -0
  41. package/dist/services/accounts/AccountService.js.map +1 -0
  42. package/dist/services/accounts/LoginFlows.d.ts +77 -0
  43. package/dist/services/accounts/LoginFlows.js +92 -0
  44. package/dist/services/accounts/LoginFlows.js.map +1 -0
  45. package/dist/services/data/TweetService.d.ts +6 -6
  46. package/dist/services/data/TweetService.js +44 -27
  47. package/dist/services/data/TweetService.js.map +1 -1
  48. package/dist/services/data/UserAccountService.d.ts +3 -3
  49. package/dist/services/data/UserAccountService.js +22 -8
  50. package/dist/services/data/UserAccountService.js.map +1 -1
  51. package/dist/services/data/UserService.d.ts +42 -0
  52. package/dist/services/data/UserService.js +255 -0
  53. package/dist/services/data/UserService.js.map +1 -0
  54. package/dist/services/helper/Extractors.js +1 -1
  55. package/dist/services/helper/Extractors.js.map +1 -1
  56. package/dist/services/helper/Headers.d.ts +11 -1
  57. package/dist/services/helper/Headers.js +28 -2
  58. package/dist/services/helper/Headers.js.map +1 -1
  59. package/dist/services/helper/Parser.d.ts +1 -1
  60. package/dist/services/helper/Parser.js +4 -3
  61. package/dist/services/helper/Parser.js.map +1 -1
  62. package/dist/services/helper/Urls.d.ts +2 -2
  63. package/dist/services/helper/Urls.js +19 -3
  64. package/dist/services/helper/Urls.js.map +1 -1
  65. package/dist/services/helper/deserializers/Tweets.d.ts +12 -0
  66. package/dist/services/helper/deserializers/Tweets.js +92 -0
  67. package/dist/services/helper/deserializers/Tweets.js.map +1 -0
  68. package/dist/services/helper/deserializers/User.d.ts +0 -0
  69. package/dist/services/helper/deserializers/User.js +2 -0
  70. package/dist/services/helper/deserializers/User.js.map +1 -0
  71. package/dist/services/helper/deserializers/Users.d.ts +7 -0
  72. package/dist/services/helper/deserializers/Users.js +27 -0
  73. package/dist/services/helper/deserializers/Users.js.map +1 -0
  74. package/dist/services/helper/extractors/TweetExtractors.d.ts +0 -0
  75. package/dist/services/helper/extractors/TweetExtractors.js +2 -0
  76. package/dist/services/helper/extractors/TweetExtractors.js.map +1 -0
  77. package/dist/services/helper/extractors/Tweets.d.ts +32 -0
  78. package/dist/services/helper/extractors/Tweets.js +264 -0
  79. package/dist/services/helper/extractors/Tweets.js.map +1 -0
  80. package/dist/services/helper/extractors/UserExtractors.d.ts +45 -0
  81. package/dist/services/helper/extractors/UserExtractors.js +176 -0
  82. package/dist/services/helper/extractors/UserExtractors.js.map +1 -0
  83. package/dist/services/helper/extractors/Users.d.ts +20 -0
  84. package/dist/services/helper/extractors/Users.js +151 -0
  85. package/dist/services/helper/extractors/Users.js.map +1 -0
  86. package/dist/services/helper/urls/Authentication.d.ts +4 -0
  87. package/dist/services/helper/urls/Authentication.js +11 -0
  88. package/dist/services/helper/urls/Authentication.js.map +1 -0
  89. package/dist/services/helper/urls/Tweets.d.ts +32 -0
  90. package/dist/services/helper/urls/Tweets.js +51 -0
  91. package/dist/services/helper/urls/Tweets.js.map +1 -0
  92. package/dist/services/helper/urls/Urls.d.ts +4 -0
  93. package/dist/services/helper/urls/Urls.js +11 -0
  94. package/dist/services/helper/urls/Urls.js.map +1 -0
  95. package/dist/services/helper/urls/Users.d.ts +31 -0
  96. package/dist/services/helper/urls/Users.js +66 -0
  97. package/dist/services/helper/urls/Users.js.map +1 -0
  98. package/dist/types/{graphql/Errors.d.ts → Errors.d.ts} +0 -0
  99. package/dist/types/{graphql/Errors.js → Errors.js} +0 -0
  100. package/dist/types/Errors.js.map +1 -0
  101. package/dist/types/HTTP.d.ts +0 -7
  102. package/dist/types/HTTP.js +1 -10
  103. package/dist/types/HTTP.js.map +1 -1
  104. package/dist/types/Resolvers.d.ts +9 -0
  105. package/dist/types/Resolvers.js +3 -0
  106. package/dist/types/Resolvers.js.map +1 -0
  107. package/dist/types/Service.d.ts +2 -0
  108. package/dist/types/Service.js.map +1 -1
  109. package/dist/types/Tweet.d.ts +1 -0
  110. package/dist/types/Tweet.js.map +1 -1
  111. package/dist/types/User.d.ts +19 -0
  112. package/dist/types/User.js +4 -0
  113. package/dist/types/User.js.map +1 -0
  114. package/dist/types/data/Errors.d.ts +26 -0
  115. package/dist/types/data/Errors.js +36 -0
  116. package/dist/types/data/Errors.js.map +1 -0
  117. package/dist/types/data/Service.d.ts +29 -0
  118. package/dist/types/data/Service.js +19 -0
  119. package/dist/types/data/Service.js.map +1 -0
  120. package/dist/types/data/Tweet.d.ts +41 -0
  121. package/dist/types/data/Tweet.js +5 -0
  122. package/dist/types/data/Tweet.js.map +1 -0
  123. package/dist/types/data/User.d.ts +19 -0
  124. package/dist/types/data/User.js +4 -0
  125. package/dist/types/data/User.js.map +1 -0
  126. package/dist/types/raw/http/Error.d.ts +34 -0
  127. package/dist/types/raw/{user/Users.js → http/Error.js} +1 -1
  128. package/dist/types/raw/http/Error.js.map +1 -0
  129. package/dist/types/raw/http/Response.d.ts +34 -0
  130. package/dist/types/raw/http/Response.js +3 -0
  131. package/dist/types/raw/http/Response.js.map +1 -0
  132. package/package.json +4 -2
  133. package/src/{queries → graphql/queries}/RootQuery.ts +16 -4
  134. package/src/graphql/resolvers/AccountResolver.ts +22 -0
  135. package/src/{resolvers → graphql/resolvers}/ResolverBase.ts +1 -1
  136. package/src/{resolvers → graphql/resolvers}/TweetResolver.ts +43 -30
  137. package/src/{resolvers → graphql/resolvers}/UserResolver.ts +41 -27
  138. package/src/{models/graphql → graphql/types}/Global.ts +0 -0
  139. package/src/{models/graphql → graphql/types}/TweetTypes.ts +9 -11
  140. package/src/{models/graphql → graphql/types}/UserTypes.ts +13 -15
  141. package/src/index.ts +5 -3
  142. package/src/server.ts +6 -4
  143. package/src/services/AuthService.ts +1 -1
  144. package/src/services/CacheService.ts +6 -8
  145. package/src/services/FetcherService.ts +37 -22
  146. package/src/services/accounts/AccountService.ts +156 -0
  147. package/src/services/accounts/LoginFlows.ts +90 -0
  148. package/src/services/data/TweetService.ts +53 -37
  149. package/src/services/data/UserService.ts +187 -0
  150. package/src/services/helper/Headers.ts +27 -1
  151. package/src/services/helper/Parser.ts +6 -4
  152. package/src/services/helper/{Deserializers.ts → deserializers/Tweets.ts} +3 -28
  153. package/src/services/helper/deserializers/Users.ts +26 -0
  154. package/src/services/helper/extractors/Tweets.ts +252 -0
  155. package/src/services/helper/extractors/Users.ts +137 -0
  156. package/src/services/helper/urls/Authentication.ts +6 -0
  157. package/src/services/helper/urls/Tweets.ts +46 -0
  158. package/src/services/helper/urls/Users.ts +62 -0
  159. package/src/types/HTTP.ts +0 -8
  160. package/src/types/Resolvers.ts +9 -0
  161. package/src/types/data/Errors.ts +28 -0
  162. package/src/types/{Service.ts → data/Service.ts} +6 -5
  163. package/src/types/{Tweet.ts → data/Tweet.ts} +1 -0
  164. package/src/types/{UserAccount.ts → data/User.ts} +0 -0
  165. package/tsconfig.json +2 -2
  166. package/dist/models/graphql/Global.js.map +0 -1
  167. package/dist/models/graphql/TweetTypes.d.ts +0 -6
  168. package/dist/models/graphql/TweetTypes.js.map +0 -1
  169. package/dist/models/graphql/UserTypes.d.ts +0 -3
  170. package/dist/models/graphql/UserTypes.js.map +0 -1
  171. package/dist/queries/RootQuery.js.map +0 -1
  172. package/dist/resolvers/ResolverBase.js.map +0 -1
  173. package/dist/resolvers/TweetResolver.js.map +0 -1
  174. package/dist/resolvers/UserResolver.js.map +0 -1
  175. package/dist/test/Test.js +0 -2
  176. package/dist/test/Test.js.map +0 -1
  177. package/dist/types/graphql/Errors.js.map +0 -1
  178. package/dist/types/raw/user/Users.d.ts +0 -120
  179. package/dist/types/raw/user/Users.js.map +0 -1
  180. package/src/services/data/UserAccountService.ts +0 -176
  181. package/src/services/helper/Extractors.ts +0 -455
  182. package/src/services/helper/Urls.ts +0 -109
  183. package/src/types/graphql/Errors.ts +0 -16
  184. package/src/types/raw/user/Tweets.ts +0 -2847
@@ -1 +1 @@
1
- {"version":3,"file":"CacheService.js","sourceRoot":"","sources":["../../src/services/CacheService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,WAAW;AACX,0DAAmC;AAEnC,UAAU;AACV,uDAA2C;AAE3C;;;;GAIG;AACH;IAKI,iBAAiB;IACjB;QACI,yBAAyB;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,uBAAS,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACU,wBAAW,GAAxB;;;gBACI,uCAAuC;gBACvC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;oBAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;oBACnC,sBAAO,IAAI,CAAC,QAAQ,EAAC;iBACxB;gBACD,8CAA8C;qBACzC;oBACD,sBAAO,IAAI,CAAC,QAAQ,EAAC;iBACxB;;;;KACJ;IAED;;;;OAIG;IACG,4BAAK,GAAX,UAAY,IAAS;;;;gBACjB,wCAAwC;gBACxC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAEhC,kCAAkC;gBAClC,WAAqB,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;oBAAd,IAAI;oBAEL,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;oBAE9D,0CAA0C;oBAC1C,IAAG,CAAC,MAAM,EAAE;wBACR,uBAAuB;wBACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;qBAC1D;iBACJ;;;;KACJ;IAED;;;OAGG;IACG,2BAAI,GAAV,UAAW,EAAU;;;;gBAEb,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAE9B,sBAAO,GAAG,EAAC;;;KACd;IACL,mBAAC;AAAD,CAAC,AA1DD,IA0DC;AA1DY,oCAAY"}
1
+ {"version":3,"file":"CacheService.js","sourceRoot":"","sources":["../../src/services/CacheService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,WAAW;AACX,0DAAmC;AAEnC,UAAU;AACV,uDAA2C;AAE3C;;;;GAIG;AACH;IAKI,iBAAiB;IACjB;QACI,yBAAyB;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,uBAAS,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACI,wBAAW,GAAlB;QACI,uCAAuC;QACvC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;SACtC;QAED,iCAAiC;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACI,4BAAK,GAAZ,UAAa,IAAS;QAClB,wCAAwC;QACxC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAEhC,kCAAkC;QAClC,KAAiB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;YAAlB,IAAI,IAAI,aAAA;YACT,gDAAgD;YAChD,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YAE9D,0CAA0C;YAC1C,IAAG,CAAC,MAAM,EAAE;gBACR,uBAAuB;gBACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;aAC1D;SACJ;IACL,CAAC;IAED;;;OAGG;IACI,2BAAI,GAAX,UAAY,EAAU;QAClB,0BAA0B;QAC1B,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAE9B,OAAO,GAAG,CAAC;IACf,CAAC;IACL,mBAAC;AAAD,CAAC,AAxDD,IAwDC;AAxDY,oCAAY"}
@@ -1,10 +1,18 @@
1
1
  import { CurlyResult } from 'node-libcurl';
2
2
  import { AuthService } from './AuthService';
3
+ /**
4
+ * @summary Stores all the different type of http requests
5
+ */
6
+ export declare enum HttpMethods {
7
+ POST = "POST",
8
+ GET = "GET"
9
+ }
3
10
  /**
4
11
  * @service The base serivice from which all other data services derive their behaviour
5
12
  */
6
13
  export declare class FetcherService {
7
14
  private auth;
15
+ private cache;
8
16
  protected isAuthenticated: boolean;
9
17
  constructor(auth: AuthService);
10
18
  /**
@@ -15,17 +23,19 @@ export declare class FetcherService {
15
23
  /**
16
24
  * @returns The absolute raw json data from give url
17
25
  * @param url The url to fetch data from
18
- * @param authenticated Whether to authenticate requests or not
26
+ * @param authenticate Whether to authenticate requests or not
27
+ * @param method The HTTP method to use
28
+ * @param data The data to be sent along with the request (works with only POST method)
19
29
  */
20
- protected request<DataType>(url: string, authenticated?: boolean): Promise<CurlyResult<DataType>>;
30
+ protected request<DataType>(url: string, authenticate?: boolean, method?: HttpMethods, data?: any): Promise<CurlyResult<DataType>>;
21
31
  /**
22
32
  * @summary Caches the extracted data
23
33
  * @param data The extracted data to be cached
24
34
  */
25
- protected cacheData(data: any): Promise<void>;
35
+ protected cacheData(data: any): void;
26
36
  /**
27
37
  * @returns The data with the given id (if it exists in cache)
28
38
  * @param id The id of the data to be read from cache
29
39
  */
30
- protected readData(id: string): Promise<any>;
40
+ protected readData(id: string): any;
31
41
  }
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
14
  if (k2 === undefined) k2 = k;
4
15
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -59,7 +70,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
59
70
  }
60
71
  };
61
72
  exports.__esModule = true;
62
- exports.FetcherService = void 0;
73
+ exports.FetcherService = exports.HttpMethods = void 0;
63
74
  // PACKAGES
64
75
  var node_libcurl_1 = require("node-libcurl");
65
76
  var CacheService_1 = require("./CacheService");
@@ -67,7 +78,17 @@ var CacheService_1 = require("./CacheService");
67
78
  var HTTP_1 = require("../types/HTTP");
68
79
  // HELPERS
69
80
  var Headers = __importStar(require("./helper/Headers"));
70
- var Deserializers = __importStar(require("./helper/Deserializers"));
81
+ var UserDeserializers = __importStar(require("./helper/deserializers/Users"));
82
+ var TweetDeserializers = __importStar(require("./helper/deserializers/Tweets"));
83
+ /**
84
+ * @summary Stores all the different type 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
+ ;
71
92
  /**
72
93
  * @service The base serivice from which all other data services derive their behaviour
73
94
  */
@@ -75,6 +96,7 @@ var FetcherService = /** @class */ (function () {
75
96
  // MEMBER METHODS
76
97
  function FetcherService(auth) {
77
98
  this.auth = auth;
99
+ this.cache = CacheService_1.CacheService.getInstance();
78
100
  this.isAuthenticated = this.auth.isAuthenticated;
79
101
  }
80
102
  /**
@@ -90,38 +112,42 @@ var FetcherService = /** @class */ (function () {
90
112
  /**
91
113
  * @returns The absolute raw json data from give url
92
114
  * @param url The url to fetch data from
93
- * @param authenticated Whether to authenticate requests or not
115
+ * @param authenticate Whether to authenticate requests or not
116
+ * @param method The HTTP method to use
117
+ * @param data The data to be sent along with the request (works with only POST method)
94
118
  */
95
- FetcherService.prototype.request = function (url, authenticated) {
96
- if (authenticated === void 0) { authenticated = true; }
119
+ FetcherService.prototype.request = function (url, authenticate, method, data) {
120
+ if (authenticate === void 0) { authenticate = true; }
121
+ if (method === void 0) { method = HttpMethods.GET; }
97
122
  return __awaiter(this, void 0, void 0, function () {
98
- var res, _a, _b, _c, _d, _e, _f, _g, _h;
99
- var _j;
123
+ var config, _a, _b, _c, _d, _e;
124
+ var _f;
100
125
  var _this = this;
101
- return __generator(this, function (_k) {
102
- switch (_k.label) {
126
+ return __generator(this, function (_g) {
127
+ switch (_g.label) {
103
128
  case 0:
104
- _b = (_a = node_libcurl_1.curly).get;
105
- _c = [url];
106
- _j = {};
107
- if (!authenticated) return [3 /*break*/, 2];
108
- _f = (_e = Headers).authorizedHeader;
129
+ _f = {};
130
+ if (!authenticate) return [3 /*break*/, 2];
131
+ _c = (_b = Headers).authorizedHeader;
109
132
  return [4 /*yield*/, this.auth.getAuthCredentials()];
110
133
  case 1:
111
- _d = _f.apply(_e, [_k.sent()]);
134
+ _a = _c.apply(_b, [_g.sent()]);
112
135
  return [3 /*break*/, 4];
113
136
  case 2:
114
- _h = (_g = Headers).guestHeader;
137
+ _e = (_d = Headers).guestHeader;
115
138
  return [4 /*yield*/, this.auth.getGuestCredentials()];
116
139
  case 3:
117
- _d = _h.apply(_g, [_k.sent()]);
118
- _k.label = 4;
119
- case 4: return [4 /*yield*/, _b.apply(_a, _c.concat([(_j.httpHeader = _d,
120
- _j.sslVerifyPeer = false,
121
- _j)])).then(function (res) { return _this.handleHTTPError(res); })];
122
- case 5:
123
- res = _k.sent();
124
- return [2 /*return*/, res];
140
+ _a = _e.apply(_d, [_g.sent()]);
141
+ _g.label = 4;
142
+ case 4:
143
+ config = (_f.httpHeader = _a,
144
+ _f.sslVerifyPeer = false,
145
+ _f);
146
+ if (!(method == HttpMethods.POST)) return [3 /*break*/, 6];
147
+ return [4 /*yield*/, node_libcurl_1.curly.post(url, __assign(__assign({}, config), { postFields: JSON.stringify(data) })).then(function (res) { return _this.handleHTTPError(res); })];
148
+ case 5: return [2 /*return*/, _g.sent()];
149
+ case 6: return [4 /*yield*/, node_libcurl_1.curly.get(url, config).then(function (res) { return _this.handleHTTPError(res); })];
150
+ case 7: return [2 /*return*/, _g.sent()];
125
151
  }
126
152
  });
127
153
  });
@@ -131,40 +157,20 @@ var FetcherService = /** @class */ (function () {
131
157
  * @param data The extracted data to be cached
132
158
  */
133
159
  FetcherService.prototype.cacheData = function (data) {
134
- return __awaiter(this, void 0, void 0, function () {
135
- var cache, users, tweets;
136
- return __generator(this, function (_a) {
137
- switch (_a.label) {
138
- case 0: return [4 /*yield*/, CacheService_1.CacheService.getInstance()];
139
- case 1:
140
- cache = _a.sent();
141
- users = data.users.map(function (user) { return Deserializers.toUser(user); });
142
- tweets = data.tweets.map(function (tweet) { return Deserializers.toTweet(tweet); });
143
- // Caching the data
144
- cache.write(users);
145
- cache.write(tweets);
146
- return [2 /*return*/];
147
- }
148
- });
149
- });
160
+ // Parsing the extracted data
161
+ var users = data.users.map(function (user) { return UserDeserializers.toUser(user); });
162
+ var tweets = data.tweets.map(function (tweet) { return TweetDeserializers.toTweet(tweet); });
163
+ // Caching the data
164
+ this.cache.write(users);
165
+ this.cache.write(tweets);
150
166
  };
151
167
  /**
152
168
  * @returns The data with the given id (if it exists in cache)
153
169
  * @param id The id of the data to be read from cache
154
170
  */
155
171
  FetcherService.prototype.readData = function (id) {
156
- return __awaiter(this, void 0, void 0, function () {
157
- var cache;
158
- return __generator(this, function (_a) {
159
- switch (_a.label) {
160
- case 0: return [4 /*yield*/, CacheService_1.CacheService.getInstance()];
161
- case 1:
162
- cache = _a.sent();
163
- // Reading data from cache
164
- return [2 /*return*/, cache.read(id)];
165
- }
166
- });
167
- });
172
+ // Reading data from cache
173
+ return this.cache.read(id);
168
174
  };
169
175
  return FetcherService;
170
176
  }());
@@ -1 +1 @@
1
- {"version":3,"file":"FetcherService.js","sourceRoot":"","sources":["../../src/services/FetcherService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,WAAW;AACX,6CAAkD;AAIlD,+CAA8C;AAE9C,QAAQ;AACR,sCAA2C;AAI3C,UAAU;AACV,wDAA2C;AAC3C,oEAAwD;AAExD;;GAEG;AACH;IAKI,iBAAiB;IACjB,wBAAY,IAAiB;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;IACrD,CAAC;IAED;;;MAGE;IACM,wCAAe,GAAvB,UAAwB,GAAgB;QACpC,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,iBAAU,EAAE;YACvD,MAAM,IAAI,KAAK,CAAC,iBAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;SAC9C;QAED,OAAO,GAAG,CAAC;IACf,CAAC;IAED;;;;OAIG;IACa,gCAAO,GAAvB,UAAkC,GAAW,EAAE,aAA6B;QAA7B,8BAAA,EAAA,oBAA6B;;;;;;;;wBAExD,KAAA,CAAA,KAAA,oBAAK,CAAA,CAAC,GAAG,CAAA;8BAAC,GAAG;;6BACb,aAAa,EAAb,wBAAa;wBAAG,KAAA,CAAA,KAAA,OAAO,CAAA,CAAC,gBAAgB,CAAA;wBAAC,qBAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAA;;wBAA7D,KAAA,cAAyB,SAAoC,EAAC,CAAA;;;wBAAG,KAAA,CAAA,KAAA,OAAO,CAAA,CAAC,WAAW,CAAA;wBAAC,qBAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAA;;wBAAzD,KAAA,cAAoB,SAAqC,EAAC,CAAA;;4BADjJ,qBAAM,yBACZ,aAAU,KAA6I;gCACvJ,gBAAa,GAAE,KAAK;sCACtB,CAAC,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,KAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAzB,CAAyB,CAAC,EAAA;;wBAHrC,GAAG,GAAG,SAG+B;wBAEzC,sBAAO,GAAG,EAAC;;;;KACd;IAED;;;OAGG;IACa,kCAAS,GAAzB,UAA0B,IAAS;;;;;4BAEnB,qBAAM,2BAAY,CAAC,WAAW,EAAE,EAAA;;wBAAxC,KAAK,GAAG,SAAgC;wBAGxC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,IAAa,IAAK,OAAA,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAA1B,CAA0B,CAAC,CAAC;wBACtE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,KAAe,IAAK,OAAA,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,EAA5B,CAA4B,CAAC,CAAC;wBAEhF,mBAAmB;wBACnB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACnB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;;;;;KACvB;IAED;;;OAGG;IACa,iCAAQ,GAAxB,UAAyB,EAAU;;;;;4BAEnB,qBAAM,2BAAY,CAAC,WAAW,EAAE,EAAA;;wBAAxC,KAAK,GAAG,SAAgC;wBAE5C,0BAA0B;wBAC1B,sBAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAC;;;;KACzB;IACL,qBAAC;AAAD,CAAC,AAlED,IAkEC;AAlEY,wCAAc"}
1
+ {"version":3,"file":"FetcherService.js","sourceRoot":"","sources":["../../src/services/FetcherService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ export declare class AccountService {
2
+ private auth;
3
+ private guestCreds;
4
+ private cookies;
5
+ private flowToken;
6
+ constructor();
7
+ /**
8
+ * @returns The current guest credentials to use. If if does not exists, then a new one is created
9
+ */
10
+ private getGuestCredentials;
11
+ /**
12
+ * @summary Step 1: Initiates login
13
+ */
14
+ private initiateLogin;
15
+ /**
16
+ * @summary Step 2: Does something
17
+ */
18
+ private jsInstrumentationSubtask;
19
+ /**
20
+ * @summary Step 3: Takes the email for login
21
+ */
22
+ private enterUserIdentifier;
23
+ /**
24
+ * @summary Step 4: Takes the username for login
25
+ */
26
+ private enterAlternateUserIdentifier;
27
+ /**
28
+ * @summary Step 5: Takes the password for login
29
+ */
30
+ private enterPassword;
31
+ /**
32
+ * @summary Step 6: Gets the actual cookies
33
+ */
34
+ private accountDuplicationCheck;
35
+ /**
36
+ * @param email The email of the account to be logged into
37
+ * @param userName The username associated with the given account
38
+ * @param password The password to the account
39
+ * @returns The cookies for authenticating with the given account
40
+ */
41
+ login(email: string, userName: string, password: string): Promise<string>;
42
+ }
@@ -0,0 +1,291 @@
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
+ // HELPERS
48
+ var LoginFlows_1 = __importDefault(require("./LoginFlows"));
49
+ var Headers_1 = require("../helper/Headers");
50
+ var cookiejar_1 = require("cookiejar");
51
+ var AccountService = /** @class */ (function () {
52
+ // MEMBER METHODS
53
+ function AccountService() {
54
+ this.auth = new AuthService_1.AuthService();
55
+ this.guestCreds = { authToken: '', guestToken: '' };
56
+ this.cookies = [];
57
+ this.flowToken = '';
58
+ }
59
+ /**
60
+ * @returns The current guest credentials to use. If if does not exists, then a new one is created
61
+ */
62
+ AccountService.prototype.getGuestCredentials = function () {
63
+ return __awaiter(this, void 0, void 0, function () {
64
+ var _a;
65
+ return __generator(this, function (_b) {
66
+ switch (_b.label) {
67
+ case 0:
68
+ if (!!this.guestCreds.guestToken) return [3 /*break*/, 2];
69
+ _a = this;
70
+ return [4 /*yield*/, this.auth.getGuestCredentials()];
71
+ case 1:
72
+ _a.guestCreds = _b.sent();
73
+ _b.label = 2;
74
+ case 2: return [2 /*return*/, this.guestCreds];
75
+ }
76
+ });
77
+ });
78
+ };
79
+ /**
80
+ * @summary Step 1: Initiates login
81
+ */
82
+ AccountService.prototype.initiateLogin = function () {
83
+ return __awaiter(this, void 0, void 0, function () {
84
+ var res, _a, _b, _c, _d;
85
+ var _e;
86
+ return __generator(this, function (_f) {
87
+ switch (_f.label) {
88
+ case 0:
89
+ _b = (_a = node_libcurl_1.curly).post;
90
+ _c = [LoginFlows_1["default"].InitiateLogin.url];
91
+ _e = {};
92
+ _d = Headers_1.loginHeader;
93
+ return [4 /*yield*/, this.getGuestCredentials()];
94
+ case 1: return [4 /*yield*/, _b.apply(_a, _c.concat([(_e.httpHeader = _d.apply(void 0, [_f.sent(), this.cookies.toString()]),
95
+ _e.sslVerifyPeer = false,
96
+ _e.postFields = '',
97
+ _e)]))];
98
+ case 2:
99
+ res = _f.sent();
100
+ // Storing cookies received
101
+ this.cookies = new cookiejar_1.CookieJar().setCookies(res.headers[0]['Set-Cookie']);
102
+ // Getting the flow token
103
+ this.flowToken = res.data['flow_token'];
104
+ return [2 /*return*/];
105
+ }
106
+ });
107
+ });
108
+ };
109
+ /**
110
+ * @summary Step 2: Does something
111
+ */
112
+ AccountService.prototype.jsInstrumentationSubtask = function () {
113
+ return __awaiter(this, void 0, void 0, function () {
114
+ var res, _a, _b, _c, _d;
115
+ var _e;
116
+ return __generator(this, function (_f) {
117
+ switch (_f.label) {
118
+ case 0:
119
+ _b = (_a = node_libcurl_1.curly).post;
120
+ _c = [LoginFlows_1["default"].JsInstrumentationSubtask.url];
121
+ _e = {};
122
+ _d = Headers_1.loginHeader;
123
+ return [4 /*yield*/, this.getGuestCredentials()];
124
+ case 1: return [4 /*yield*/, _b.apply(_a, _c.concat([(_e.httpHeader = _d.apply(void 0, [_f.sent(), this.cookies.join(';').toString()]),
125
+ _e.sslVerifyPeer = false,
126
+ _e.postFields = JSON.stringify(LoginFlows_1["default"].JsInstrumentationSubtask.body(this.flowToken)),
127
+ _e)]))];
128
+ case 2:
129
+ res = _f.sent();
130
+ // Getting the flow token
131
+ this.flowToken = res.data['flow_token'];
132
+ return [2 /*return*/];
133
+ }
134
+ });
135
+ });
136
+ };
137
+ /**
138
+ * @summary Step 3: Takes the email for login
139
+ */
140
+ AccountService.prototype.enterUserIdentifier = function (email) {
141
+ return __awaiter(this, void 0, void 0, function () {
142
+ var res, _a, _b, _c, _d;
143
+ var _e;
144
+ return __generator(this, function (_f) {
145
+ switch (_f.label) {
146
+ case 0:
147
+ _b = (_a = node_libcurl_1.curly).post;
148
+ _c = [LoginFlows_1["default"].EnterUserIdentifier.url];
149
+ _e = {};
150
+ _d = Headers_1.loginHeader;
151
+ return [4 /*yield*/, this.getGuestCredentials()];
152
+ case 1: return [4 /*yield*/, _b.apply(_a, _c.concat([(_e.httpHeader = _d.apply(void 0, [_f.sent(), this.cookies.join(';').toString()]),
153
+ _e.sslVerifyPeer = false,
154
+ _e.postFields = JSON.stringify(LoginFlows_1["default"].EnterUserIdentifier.body(this.flowToken, email)),
155
+ _e)]))];
156
+ case 2:
157
+ res = _f.sent();
158
+ // Getting the flow token
159
+ this.flowToken = res.data['flow_token'];
160
+ return [2 /*return*/];
161
+ }
162
+ });
163
+ });
164
+ };
165
+ /**
166
+ * @summary Step 4: Takes the username for login
167
+ */
168
+ AccountService.prototype.enterAlternateUserIdentifier = function (userName) {
169
+ return __awaiter(this, void 0, void 0, function () {
170
+ var res, _a, _b, _c, _d;
171
+ var _e;
172
+ return __generator(this, function (_f) {
173
+ switch (_f.label) {
174
+ case 0:
175
+ _b = (_a = node_libcurl_1.curly).post;
176
+ _c = [LoginFlows_1["default"].EnterAlternateUserIdentifier.url];
177
+ _e = {};
178
+ _d = Headers_1.loginHeader;
179
+ return [4 /*yield*/, this.getGuestCredentials()];
180
+ case 1: return [4 /*yield*/, _b.apply(_a, _c.concat([(_e.httpHeader = _d.apply(void 0, [_f.sent(), this.cookies.join(';').toString()]),
181
+ _e.sslVerifyPeer = false,
182
+ _e.postFields = JSON.stringify(LoginFlows_1["default"].EnterAlternateUserIdentifier.body(this.flowToken, userName)),
183
+ _e)]))];
184
+ case 2:
185
+ res = _f.sent();
186
+ // Getting the flow token
187
+ this.flowToken = res.data['flow_token'];
188
+ return [2 /*return*/];
189
+ }
190
+ });
191
+ });
192
+ };
193
+ /**
194
+ * @summary Step 5: Takes the password for login
195
+ */
196
+ AccountService.prototype.enterPassword = function (password) {
197
+ return __awaiter(this, void 0, void 0, function () {
198
+ var res, _a, _b, _c, _d;
199
+ var _e;
200
+ return __generator(this, function (_f) {
201
+ switch (_f.label) {
202
+ case 0:
203
+ _b = (_a = node_libcurl_1.curly).post;
204
+ _c = [LoginFlows_1["default"].EnterPassword.url];
205
+ _e = {};
206
+ _d = Headers_1.loginHeader;
207
+ return [4 /*yield*/, this.getGuestCredentials()];
208
+ case 1: return [4 /*yield*/, _b.apply(_a, _c.concat([(_e.httpHeader = _d.apply(void 0, [_f.sent(), this.cookies.join(';').toString()]),
209
+ _e.sslVerifyPeer = false,
210
+ _e.postFields = JSON.stringify(LoginFlows_1["default"].EnterPassword.body(this.flowToken, password)),
211
+ _e)]))];
212
+ case 2:
213
+ res = _f.sent();
214
+ // Getting the flow token
215
+ this.flowToken = res.data['flow_token'];
216
+ return [2 /*return*/];
217
+ }
218
+ });
219
+ });
220
+ };
221
+ /**
222
+ * @summary Step 6: Gets the actual cookies
223
+ */
224
+ AccountService.prototype.accountDuplicationCheck = function () {
225
+ return __awaiter(this, void 0, void 0, function () {
226
+ var res, _a, _b, _c, _d;
227
+ var _e;
228
+ return __generator(this, function (_f) {
229
+ switch (_f.label) {
230
+ case 0:
231
+ _b = (_a = node_libcurl_1.curly).post;
232
+ _c = [LoginFlows_1["default"].AccountDuplicationCheck.url];
233
+ _e = {};
234
+ _d = Headers_1.loginHeader;
235
+ return [4 /*yield*/, this.getGuestCredentials()];
236
+ case 1: return [4 /*yield*/, _b.apply(_a, _c.concat([(_e.httpHeader = _d.apply(void 0, [_f.sent(), this.cookies.join(';').toString()]),
237
+ _e.sslVerifyPeer = false,
238
+ _e.postFields = JSON.stringify(LoginFlows_1["default"].AccountDuplicationCheck.body(this.flowToken)),
239
+ _e)]))];
240
+ case 2:
241
+ res = _f.sent();
242
+ // Storing cookies received
243
+ this.cookies = new cookiejar_1.CookieJar().setCookies(res.headers[0]['Set-Cookie']);
244
+ // Getting the flow token
245
+ this.flowToken = res.data['flow_token'];
246
+ return [2 /*return*/];
247
+ }
248
+ });
249
+ });
250
+ };
251
+ /**
252
+ * @param email The email of the account to be logged into
253
+ * @param userName The username associated with the given account
254
+ * @param password The password to the account
255
+ * @returns The cookies for authenticating with the given account
256
+ */
257
+ AccountService.prototype.login = function (email, userName, password) {
258
+ return __awaiter(this, void 0, void 0, function () {
259
+ return __generator(this, function (_a) {
260
+ switch (_a.label) {
261
+ case 0:
262
+ // Executing each step of login flow
263
+ return [4 /*yield*/, this.initiateLogin()];
264
+ case 1:
265
+ // Executing each step of login flow
266
+ _a.sent();
267
+ return [4 /*yield*/, this.jsInstrumentationSubtask()];
268
+ case 2:
269
+ _a.sent();
270
+ return [4 /*yield*/, this.enterUserIdentifier(email)];
271
+ case 3:
272
+ _a.sent();
273
+ return [4 /*yield*/, this.enterAlternateUserIdentifier(userName)];
274
+ case 4:
275
+ _a.sent();
276
+ return [4 /*yield*/, this.enterPassword(password)];
277
+ case 5:
278
+ _a.sent();
279
+ return [4 /*yield*/, this.accountDuplicationCheck()];
280
+ case 6:
281
+ _a.sent();
282
+ // Returning the final cookies
283
+ return [2 /*return*/, this.cookies.join(';')];
284
+ }
285
+ });
286
+ });
287
+ };
288
+ return AccountService;
289
+ }());
290
+ exports.AccountService = AccountService;
291
+ //# sourceMappingURL=AccountService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountService.js","sourceRoot":"","sources":["../../../src/services/accounts/AccountService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ declare const LoginFlows: {
2
+ InitiateLogin: {
3
+ url: string;
4
+ };
5
+ JsInstrumentationSubtask: {
6
+ url: string;
7
+ body: (flowToken: string) => {
8
+ flow_token: string;
9
+ subtask_inputs: {
10
+ subtask_id: string;
11
+ js_instrumentation: {
12
+ response: string;
13
+ link: string;
14
+ };
15
+ }[];
16
+ };
17
+ };
18
+ EnterUserIdentifier: {
19
+ url: string;
20
+ body: (flowToken: string, email: string) => {
21
+ flow_token: string;
22
+ subtask_inputs: {
23
+ subtask_id: string;
24
+ settings_list: {
25
+ setting_responses: {
26
+ key: string;
27
+ response_data: {
28
+ text_data: {
29
+ result: string;
30
+ };
31
+ };
32
+ }[];
33
+ link: string;
34
+ };
35
+ }[];
36
+ };
37
+ };
38
+ EnterAlternateUserIdentifier: {
39
+ url: string;
40
+ body: (flowToken: string, userName: string) => {
41
+ flow_token: string;
42
+ subtask_inputs: {
43
+ subtask_id: string;
44
+ enter_text: {
45
+ text: string;
46
+ link: string;
47
+ };
48
+ }[];
49
+ };
50
+ };
51
+ EnterPassword: {
52
+ url: string;
53
+ body: (flowToken: string, password: string) => {
54
+ flow_token: string;
55
+ subtask_inputs: {
56
+ subtask_id: string;
57
+ enter_password: {
58
+ password: string;
59
+ link: string;
60
+ };
61
+ }[];
62
+ };
63
+ };
64
+ AccountDuplicationCheck: {
65
+ url: string;
66
+ body: (flowToken: string) => {
67
+ flow_token: string;
68
+ subtask_inputs: {
69
+ subtask_id: string;
70
+ check_logged_in_account: {
71
+ link: string;
72
+ };
73
+ }[];
74
+ };
75
+ };
76
+ };
77
+ export default LoginFlows;