rettiwt-api 2.7.1 → 3.0.1

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 (139) hide show
  1. package/.eslintrc.js +73 -5
  2. package/.tool-versions +1 -0
  3. package/README.md +87 -20
  4. package/dist/Rettiwt.js +0 -1
  5. package/dist/Rettiwt.js.map +1 -1
  6. package/dist/cli.js +2 -4
  7. package/dist/cli.js.map +1 -1
  8. package/dist/collections/Extractors.d.ts +37 -0
  9. package/dist/collections/Extractors.js +67 -0
  10. package/dist/collections/Extractors.js.map +1 -0
  11. package/dist/collections/Groups.d.ts +19 -0
  12. package/dist/collections/Groups.js +55 -0
  13. package/dist/collections/Groups.js.map +1 -0
  14. package/dist/collections/Requests.d.ts +12 -0
  15. package/dist/collections/Requests.js +46 -0
  16. package/dist/collections/Requests.js.map +1 -0
  17. package/dist/commands/Auth.d.ts +6 -0
  18. package/dist/commands/Auth.js +26 -8
  19. package/dist/commands/Auth.js.map +1 -1
  20. package/dist/commands/Tweet.js +237 -82
  21. package/dist/commands/Tweet.js.map +1 -1
  22. package/dist/commands/User.js +197 -36
  23. package/dist/commands/User.js.map +1 -1
  24. package/dist/enums/Api.d.ts +30 -0
  25. package/dist/enums/Api.js +32 -1
  26. package/dist/enums/Api.js.map +1 -1
  27. package/dist/enums/Data.d.ts +9 -0
  28. package/dist/enums/Data.js +14 -0
  29. package/dist/enums/Data.js.map +1 -0
  30. package/dist/enums/Http.d.ts +1 -1
  31. package/dist/enums/Http.js +1 -1
  32. package/dist/enums/Logging.d.ts +6 -5
  33. package/dist/enums/Logging.js +6 -5
  34. package/dist/enums/Logging.js.map +1 -1
  35. package/dist/enums/Resource.d.ts +33 -0
  36. package/dist/enums/Resource.js +42 -0
  37. package/dist/enums/Resource.js.map +1 -0
  38. package/dist/helper/CliUtils.d.ts +1 -1
  39. package/dist/helper/CliUtils.js.map +1 -1
  40. package/dist/index.d.ts +11 -9
  41. package/dist/index.js +11 -14
  42. package/dist/index.js.map +1 -1
  43. package/dist/models/args/FetchArgs.d.ts +129 -0
  44. package/dist/models/args/FetchArgs.js +263 -0
  45. package/dist/models/args/FetchArgs.js.map +1 -0
  46. package/dist/models/args/PostArgs.d.ts +116 -0
  47. package/dist/models/args/PostArgs.js +232 -0
  48. package/dist/models/args/PostArgs.js.map +1 -0
  49. package/dist/models/data/CursoredData.d.ts +11 -11
  50. package/dist/models/data/CursoredData.js +21 -16
  51. package/dist/models/data/CursoredData.js.map +1 -1
  52. package/dist/models/data/List.d.ts +8 -10
  53. package/dist/models/data/List.js +2 -4
  54. package/dist/models/data/List.js.map +1 -1
  55. package/dist/models/data/Tweet.d.ts +44 -29
  56. package/dist/models/data/Tweet.js +74 -15
  57. package/dist/models/data/Tweet.js.map +1 -1
  58. package/dist/models/data/User.d.ts +38 -20
  59. package/dist/models/data/User.js +71 -7
  60. package/dist/models/data/User.js.map +1 -1
  61. package/dist/models/errors/ApiError.d.ts +1 -3
  62. package/dist/models/errors/ApiError.js +1 -4
  63. package/dist/models/errors/ApiError.js.map +1 -1
  64. package/dist/models/errors/DataValidationError.d.ts +30 -0
  65. package/dist/models/errors/DataValidationError.js +34 -0
  66. package/dist/models/errors/DataValidationError.js.map +1 -0
  67. package/dist/models/errors/HttpError.d.ts +1 -3
  68. package/dist/models/errors/HttpError.js +1 -4
  69. package/dist/models/errors/HttpError.js.map +1 -1
  70. package/dist/models/errors/TimeoutError.d.ts +2 -4
  71. package/dist/models/errors/TimeoutError.js +2 -5
  72. package/dist/models/errors/TimeoutError.js.map +1 -1
  73. package/dist/services/internal/ErrorService.d.ts +45 -35
  74. package/dist/services/internal/ErrorService.js +70 -68
  75. package/dist/services/internal/ErrorService.js.map +1 -1
  76. package/dist/services/internal/LogService.d.ts +7 -5
  77. package/dist/services/internal/LogService.js +28 -9
  78. package/dist/services/internal/LogService.js.map +1 -1
  79. package/dist/services/public/AuthService.d.ts +24 -20
  80. package/dist/services/public/AuthService.js +38 -36
  81. package/dist/services/public/AuthService.js.map +1 -1
  82. package/dist/services/public/FetcherService.d.ts +89 -0
  83. package/dist/services/public/FetcherService.js +240 -0
  84. package/dist/services/public/FetcherService.js.map +1 -0
  85. package/dist/services/public/TweetService.d.ts +213 -94
  86. package/dist/services/public/TweetService.js +409 -209
  87. package/dist/services/public/TweetService.js.map +1 -1
  88. package/dist/services/public/UserService.d.ts +185 -52
  89. package/dist/services/public/UserService.js +338 -103
  90. package/dist/services/public/UserService.js.map +1 -1
  91. package/dist/types/ReturnTypes.d.ts +21 -0
  92. package/dist/types/ReturnTypes.js +3 -0
  93. package/dist/types/ReturnTypes.js.map +1 -0
  94. package/package.json +4 -2
  95. package/src/Rettiwt.ts +0 -3
  96. package/src/cli.ts +2 -4
  97. package/src/collections/Extractors.ts +84 -0
  98. package/src/collections/Groups.ts +54 -0
  99. package/src/collections/Requests.ts +52 -0
  100. package/src/commands/Auth.ts +19 -7
  101. package/src/commands/Tweet.ts +179 -91
  102. package/src/commands/User.ts +118 -25
  103. package/src/enums/Api.ts +31 -0
  104. package/src/enums/Data.ts +9 -0
  105. package/src/enums/Http.ts +1 -1
  106. package/src/enums/Logging.ts +6 -5
  107. package/src/enums/Resource.ts +40 -0
  108. package/src/helper/CliUtils.ts +1 -1
  109. package/src/index.ts +41 -14
  110. package/src/models/args/FetchArgs.ts +296 -0
  111. package/src/models/args/PostArgs.ts +263 -0
  112. package/src/models/data/CursoredData.ts +23 -15
  113. package/src/models/data/List.ts +12 -15
  114. package/src/models/data/Tweet.ts +108 -39
  115. package/src/models/data/User.ts +99 -30
  116. package/src/models/errors/ApiError.ts +1 -4
  117. package/src/models/errors/DataValidationError.ts +44 -0
  118. package/src/models/errors/HttpError.ts +1 -4
  119. package/src/models/errors/TimeoutError.ts +2 -5
  120. package/src/services/internal/ErrorService.ts +76 -75
  121. package/src/services/internal/LogService.ts +20 -10
  122. package/src/services/public/AuthService.ts +39 -38
  123. package/src/services/public/FetcherService.ts +209 -0
  124. package/src/services/public/TweetService.ts +384 -179
  125. package/src/services/public/UserService.ts +319 -86
  126. package/src/types/RettiwtConfig.ts +0 -1
  127. package/src/types/ReturnTypes.ts +24 -0
  128. package/dist/models/args/TweetArgs.d.ts +0 -44
  129. package/dist/models/args/TweetArgs.js +0 -82
  130. package/dist/models/args/TweetArgs.js.map +0 -1
  131. package/dist/models/data/Media.d.ts +0 -14
  132. package/dist/models/data/Media.js +0 -19
  133. package/dist/models/data/Media.js.map +0 -1
  134. package/dist/services/internal/FetcherService.d.ts +0 -106
  135. package/dist/services/internal/FetcherService.js +0 -365
  136. package/dist/services/internal/FetcherService.js.map +0 -1
  137. package/src/models/args/TweetArgs.ts +0 -98
  138. package/src/models/data/Media.ts +0 -19
  139. package/src/services/internal/FetcherService.ts +0 -365
@@ -1,20 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TweetMedia = exports.TweetEntities = exports.Tweet = void 0;
4
- // PACKAGES
5
4
  var rettiwt_core_1 = require("rettiwt-core");
6
- // MODELS
5
+ var Logging_1 = require("../../enums/Logging");
6
+ var JsonUtils_1 = require("../../helper/JsonUtils");
7
+ var LogService_1 = require("../../services/internal/LogService");
7
8
  var User_1 = require("./User");
8
9
  /**
9
- * The details of a single Tweet.
10
+ * The details of a single tweet.
10
11
  *
11
12
  * @public
12
13
  */
13
14
  var Tweet = /** @class */ (function () {
14
15
  /**
15
- * Initializes a new Tweet from the given raw tweet data.
16
- *
17
- * @param tweet - The raw tweet data.
16
+ * @param tweet - The raw tweet details.
18
17
  */
19
18
  function Tweet(tweet) {
20
19
  var _a, _b, _c, _d;
@@ -31,12 +30,76 @@ var Tweet = /** @class */ (function () {
31
30
  this.replyCount = tweet.legacy.reply_count;
32
31
  this.retweetCount = tweet.legacy.retweet_count;
33
32
  this.likeCount = tweet.legacy.favorite_count;
34
- this.viewCount = parseInt(tweet.views.count);
33
+ this.viewCount = tweet.views.count ? parseInt(tweet.views.count) : 0;
35
34
  this.bookmarkCount = tweet.legacy.bookmark_count;
36
35
  this.retweetedTweet = ((_d = (_c = tweet.legacy.retweeted_status_result) === null || _c === void 0 ? void 0 : _c.result) === null || _d === void 0 ? void 0 : _d.rest_id)
37
36
  ? new Tweet(tweet.legacy.retweeted_status_result.result)
38
37
  : undefined;
39
38
  }
39
+ /**
40
+ * Extracts and deserializes the list of tweets from the given raw response data.
41
+ *
42
+ * @param response - The raw response data.
43
+ *
44
+ * @returns The deserialized list of tweets.
45
+ *
46
+ * @internal
47
+ */
48
+ Tweet.list = function (response) {
49
+ var _a, _b;
50
+ var tweets = [];
51
+ // Extracting the matching data
52
+ var extract = (0, JsonUtils_1.findByFilter)(response, '__typename', 'TimelineTweet');
53
+ // Deserializing valid data
54
+ for (var _i = 0, extract_1 = extract; _i < extract_1.length; _i++) {
55
+ var item = extract_1[_i];
56
+ if ((_b = (_a = item.tweet_results) === null || _a === void 0 ? void 0 : _a.result) === null || _b === void 0 ? void 0 : _b.legacy) {
57
+ // Logging
58
+ LogService_1.LogService.log(Logging_1.ELogActions.DESERIALIZE, { id: item.tweet_results.result.rest_id });
59
+ tweets.push(new Tweet(item.tweet_results.result));
60
+ }
61
+ else {
62
+ // Logging
63
+ LogService_1.LogService.log(Logging_1.ELogActions.WARNING, {
64
+ action: Logging_1.ELogActions.DESERIALIZE,
65
+ message: "Tweet not found, skipping",
66
+ });
67
+ }
68
+ }
69
+ return tweets;
70
+ };
71
+ /**
72
+ * Extracts and deserializes a single target tweet from the given raw response data.
73
+ *
74
+ * @param response - The raw response data.
75
+ * @param id - The id of the target tweet.
76
+ *
77
+ * @returns The target deserialized tweet.
78
+ *
79
+ * @internal
80
+ */
81
+ Tweet.single = function (response, id) {
82
+ var tweets = [];
83
+ // Extracting the matching data
84
+ var extract = (0, JsonUtils_1.findByFilter)(response, 'rest_id', id);
85
+ // Deserializing valid data
86
+ for (var _i = 0, extract_2 = extract; _i < extract_2.length; _i++) {
87
+ var item = extract_2[_i];
88
+ if (item.legacy) {
89
+ // Logging
90
+ LogService_1.LogService.log(Logging_1.ELogActions.DESERIALIZE, { id: item.rest_id });
91
+ tweets.push(new Tweet(item));
92
+ }
93
+ else {
94
+ // Logging
95
+ LogService_1.LogService.log(Logging_1.ELogActions.WARNING, {
96
+ action: Logging_1.ELogActions.DESERIALIZE,
97
+ message: "Tweet not found, skipping",
98
+ });
99
+ }
100
+ }
101
+ return tweets.length ? tweets[0] : undefined;
102
+ };
40
103
  return Tweet;
41
104
  }());
42
105
  exports.Tweet = Tweet;
@@ -47,17 +110,15 @@ exports.Tweet = Tweet;
47
110
  */
48
111
  var TweetEntities = /** @class */ (function () {
49
112
  /**
50
- * Initializes the TweetEntities from the raw tweet entities.
51
- *
52
113
  * @param entities - The raw tweet entities.
53
114
  */
54
115
  function TweetEntities(entities) {
55
116
  /** The list of hashtags mentioned in the tweet. */
56
117
  this.hashtags = [];
57
- /** The list of urls mentioned in the tweet. */
58
- this.urls = [];
59
118
  /** The list of IDs of users mentioned in the tweet. */
60
119
  this.mentionedUsers = [];
120
+ /** The list of urls mentioned in the tweet. */
121
+ this.urls = [];
61
122
  // Extracting user mentions
62
123
  if (entities.user_mentions) {
63
124
  for (var _i = 0, _a = entities.user_mentions; _i < _a.length; _i++) {
@@ -84,15 +145,13 @@ var TweetEntities = /** @class */ (function () {
84
145
  }());
85
146
  exports.TweetEntities = TweetEntities;
86
147
  /**
87
- * A single media content.
148
+ * The details of a single media content included in a tweet.
88
149
  *
89
150
  * @public
90
151
  */
91
152
  var TweetMedia = /** @class */ (function () {
92
153
  /**
93
- * Initializes the TweetMedia from the raw tweet media.
94
- *
95
- * @param media - The raw tweet media.
154
+ * @param media - The raw media details.
96
155
  */
97
156
  function TweetMedia(media) {
98
157
  var _this = this;
@@ -1 +1 @@
1
- {"version":3,"file":"Tweet.js","sourceRoot":"","sources":["../../../src/models/data/Tweet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tweet.js","sourceRoot":"","sources":["../../../src/models/data/Tweet.ts"],"names":[],"mappings":"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"}
@@ -1,42 +1,60 @@
1
- import { IUser as IRawUser } from 'rettiwt-core';
1
+ import { IUser as IRawUser, IResponse } from 'rettiwt-core';
2
2
  /**
3
3
  * The details of a single user.
4
4
  *
5
5
  * @public
6
6
  */
7
7
  export declare class User {
8
- /** The rest id of the user. */
9
- id: string;
10
- /** The username/screenname of the user. */
11
- userName: string;
12
- /** The full name of the user. */
13
- fullName: string;
14
8
  /** The creation date of user's account. */
15
9
  createdAt: string;
16
10
  /** The user's description. */
17
- description: string;
18
- /** Whether the account is verified or not. */
19
- isVerified: boolean;
20
- /** The number of tweets liked by the user. */
21
- favouritesCount: number;
11
+ description?: string;
22
12
  /** The number of followers of the user. */
23
13
  followersCount: number;
24
14
  /** The number of following of the user. */
25
15
  followingsCount: number;
26
- /** The number of tweets made by the user. */
27
- statusesCount: number;
16
+ /** The full name of the user. */
17
+ fullName: string;
18
+ /** The rest id of the user. */
19
+ id: string;
20
+ /** Whether the account is verified or not. */
21
+ isVerified: boolean;
22
+ /** The number of tweets liked by the user. */
23
+ likeCount: number;
28
24
  /** The location of user as provided by user. */
29
- location: string;
25
+ location?: string;
30
26
  /** The rest id of the tweet pinned in the user's profile. */
31
- pinnedTweet: string;
27
+ pinnedTweet?: string;
32
28
  /** The url of the profile banner image. */
33
- profileBanner: string;
29
+ profileBanner?: string;
34
30
  /** The url of the profile image. */
35
31
  profileImage: string;
32
+ /** The number of tweets made by the user. */
33
+ statusesCount: number;
34
+ /** The username/screenname of the user. */
35
+ userName: string;
36
36
  /**
37
- * Initializes a new User from the given raw user data.
38
- *
39
- * @param user - The raw user data.
37
+ * @param user - The raw user details.
40
38
  */
41
39
  constructor(user: IRawUser);
40
+ /**
41
+ * Extracts and deserializes the list of users from the given raw response data.
42
+ *
43
+ * @param response - The raw response data.
44
+ *
45
+ * @returns The deserialized list of users.
46
+ *
47
+ * @internal
48
+ */
49
+ static list(response: IResponse<unknown>): User[];
50
+ /**
51
+ * Extracts and deserializes a single target user from the given raw response data.
52
+ *
53
+ * @param response - The raw response data.
54
+ *
55
+ * @returns The target deserialized user.
56
+ *
57
+ * @internal
58
+ */
59
+ static single(response: IResponse<unknown>): User | undefined;
42
60
  }
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.User = void 0;
4
+ var Logging_1 = require("../../enums/Logging");
5
+ var JsonUtils_1 = require("../../helper/JsonUtils");
6
+ var LogService_1 = require("../../services/internal/LogService");
4
7
  /**
5
8
  * The details of a single user.
6
9
  *
@@ -8,26 +11,87 @@ exports.User = void 0;
8
11
  */
9
12
  var User = /** @class */ (function () {
10
13
  /**
11
- * Initializes a new User from the given raw user data.
12
- *
13
- * @param user - The raw user data.
14
+ * @param user - The raw user details.
14
15
  */
15
16
  function User(user) {
16
17
  this.id = user.rest_id;
17
18
  this.userName = user.legacy.screen_name;
18
19
  this.fullName = user.legacy.name;
19
20
  this.createdAt = user.legacy.created_at;
20
- this.description = user.legacy.description;
21
- this.isVerified = user.legacy.verified;
22
- this.favouritesCount = user.legacy.favourites_count;
21
+ this.description = user.legacy.description.length ? user.legacy.description : undefined;
22
+ this.isVerified = user.is_blue_verified;
23
+ this.likeCount = user.legacy.favourites_count;
23
24
  this.followersCount = user.legacy.followers_count;
24
25
  this.followingsCount = user.legacy.friends_count;
25
26
  this.statusesCount = user.legacy.statuses_count;
26
- this.location = user.legacy.location;
27
+ this.location = user.legacy.location.length ? user.legacy.location : undefined;
27
28
  this.pinnedTweet = user.legacy.pinned_tweet_ids_str[0];
28
29
  this.profileBanner = user.legacy.profile_banner_url;
29
30
  this.profileImage = user.legacy.profile_image_url_https;
30
31
  }
32
+ /**
33
+ * Extracts and deserializes the list of users from the given raw response data.
34
+ *
35
+ * @param response - The raw response data.
36
+ *
37
+ * @returns The deserialized list of users.
38
+ *
39
+ * @internal
40
+ */
41
+ User.list = function (response) {
42
+ var _a, _b;
43
+ var users = [];
44
+ // Extracting the matching data
45
+ var extract = (0, JsonUtils_1.findByFilter)(response, '__typename', 'TimelineUser');
46
+ // Deserializing valid data
47
+ for (var _i = 0, extract_1 = extract; _i < extract_1.length; _i++) {
48
+ var item = extract_1[_i];
49
+ if ((_b = (_a = item.user_results) === null || _a === void 0 ? void 0 : _a.result) === null || _b === void 0 ? void 0 : _b.legacy) {
50
+ // Logging
51
+ LogService_1.LogService.log(Logging_1.ELogActions.DESERIALIZE, { id: item.user_results.result.rest_id });
52
+ users.push(new User(item.user_results.result));
53
+ }
54
+ else {
55
+ // Logging
56
+ LogService_1.LogService.log(Logging_1.ELogActions.WARNING, {
57
+ action: Logging_1.ELogActions.DESERIALIZE,
58
+ message: "User not found, skipping",
59
+ });
60
+ }
61
+ }
62
+ return users;
63
+ };
64
+ /**
65
+ * Extracts and deserializes a single target user from the given raw response data.
66
+ *
67
+ * @param response - The raw response data.
68
+ *
69
+ * @returns The target deserialized user.
70
+ *
71
+ * @internal
72
+ */
73
+ User.single = function (response) {
74
+ var users = [];
75
+ // Extracting the matching data
76
+ var extract = (0, JsonUtils_1.findByFilter)(response, '__typename', 'User');
77
+ // Deserializing valid data
78
+ for (var _i = 0, extract_2 = extract; _i < extract_2.length; _i++) {
79
+ var item = extract_2[_i];
80
+ if (item.legacy) {
81
+ // Logging
82
+ LogService_1.LogService.log(Logging_1.ELogActions.DESERIALIZE, { id: item.rest_id });
83
+ users.push(new User(item));
84
+ }
85
+ else {
86
+ // Logging
87
+ LogService_1.LogService.log(Logging_1.ELogActions.WARNING, {
88
+ action: Logging_1.ELogActions.DESERIALIZE,
89
+ message: "User not found, skipping",
90
+ });
91
+ }
92
+ }
93
+ return users.length ? users[0] : undefined;
94
+ };
31
95
  return User;
32
96
  }());
33
97
  exports.User = User;
@@ -1 +1 @@
1
- {"version":3,"file":"User.js","sourceRoot":"","sources":["../../../src/models/data/User.ts"],"names":[],"mappings":";;;AAGA;;;;GAIG;AACH;IA2CC;;;;OAIG;IACH,cAAmB,IAAc;QAChC,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,AAhED,IAgEC;AAhEY,oBAAI"}
1
+ {"version":3,"file":"User.js","sourceRoot":"","sources":["../../../src/models/data/User.ts"],"names":[],"mappings":"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"}
@@ -2,14 +2,12 @@ import { RettiwtError } from './RettiwtError';
2
2
  /**
3
3
  * Represents an error that is thrown by Twitter API.
4
4
  *
5
- * @internal
5
+ * @public
6
6
  */
7
7
  export declare class ApiError extends RettiwtError {
8
8
  /** The error code thrown by Twitter API. */
9
9
  code: number;
10
10
  /**
11
- * Initializes a new ApiError based on the given error details.
12
- *
13
11
  * @param errorCode - The error code thrown by Twitter API.
14
12
  * @param message - Any additional error message.
15
13
  */
@@ -16,18 +16,15 @@ var __extends = (this && this.__extends) || (function () {
16
16
  })();
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.ApiError = void 0;
19
- // ERRORS
20
19
  var RettiwtError_1 = require("./RettiwtError");
21
20
  /**
22
21
  * Represents an error that is thrown by Twitter API.
23
22
  *
24
- * @internal
23
+ * @public
25
24
  */
26
25
  var ApiError = /** @class */ (function (_super) {
27
26
  __extends(ApiError, _super);
28
27
  /**
29
- * Initializes a new ApiError based on the given error details.
30
- *
31
28
  * @param errorCode - The error code thrown by Twitter API.
32
29
  * @param message - Any additional error message.
33
30
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ApiError.js","sourceRoot":"","sources":["../../../src/models/errors/ApiError.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,SAAS;AACT,+CAA8C;AAE9C;;;;GAIG;AACH;IAA8B,4BAAY;IAIzC;;;;;OAKG;IACH,kBAAmB,SAAiB,EAAE,OAAgB;QAAtD,YACC,kBAAM,OAAO,CAAC,SAGd;QADA,KAAI,CAAC,IAAI,GAAG,SAAS,CAAC;;IACvB,CAAC;IACF,eAAC;AAAD,CAAC,AAfD,CAA8B,2BAAY,GAezC;AAfY,4BAAQ"}
1
+ {"version":3,"file":"ApiError.js","sourceRoot":"","sources":["../../../src/models/errors/ApiError.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,+CAA8C;AAE9C;;;;GAIG;AACH;IAA8B,4BAAY;IAIzC;;;OAGG;IACH,kBAAmB,SAAiB,EAAE,OAAgB;QAAtD,YACC,kBAAM,OAAO,CAAC,SAGd;QADA,KAAI,CAAC,IAAI,GAAG,SAAS,CAAC;;IACvB,CAAC;IACF,eAAC;AAAD,CAAC,AAbD,CAA8B,2BAAY,GAazC;AAbY,4BAAQ"}
@@ -0,0 +1,30 @@
1
+ import { ValidationError } from 'class-validator';
2
+ /**
3
+ * Represents and error when any fields of a validation-enabled class fails to validate.
4
+ *
5
+ * @public
6
+ */
7
+ export declare class DataValidationError {
8
+ /** The detaied error message(s). */
9
+ details: ValidationErrorDetails[];
10
+ /** The user-friendly error message. */
11
+ message: string;
12
+ /** The name of the error. */
13
+ name: string;
14
+ /**
15
+ * @param data - The error details, as a list of type {@link ValidationError}
16
+ */
17
+ constructor(errorDetails: ValidationError[]);
18
+ }
19
+ /**
20
+ * Represents the validation error details of a single field.
21
+ *
22
+ * @public
23
+ */
24
+ export declare class ValidationErrorDetails {
25
+ /** The constraints which failed to be validated for the given field. */
26
+ constraints: string[];
27
+ /** The name of the field which failed validation. */
28
+ field: string;
29
+ constructor(details: ValidationError);
30
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ValidationErrorDetails = exports.DataValidationError = void 0;
4
+ /**
5
+ * Represents and error when any fields of a validation-enabled class fails to validate.
6
+ *
7
+ * @public
8
+ */
9
+ var DataValidationError = /** @class */ (function () {
10
+ /**
11
+ * @param data - The error details, as a list of type {@link ValidationError}
12
+ */
13
+ function DataValidationError(errorDetails) {
14
+ this.name = 'VALIDATION_ERROR';
15
+ this.message = 'One or more validation error(s) occured, check details field.';
16
+ this.details = errorDetails.map(function (error) { return new ValidationErrorDetails(error); });
17
+ }
18
+ return DataValidationError;
19
+ }());
20
+ exports.DataValidationError = DataValidationError;
21
+ /**
22
+ * Represents the validation error details of a single field.
23
+ *
24
+ * @public
25
+ */
26
+ var ValidationErrorDetails = /** @class */ (function () {
27
+ function ValidationErrorDetails(details) {
28
+ this.field = details.property;
29
+ this.constraints = Object.values(details.constraints);
30
+ }
31
+ return ValidationErrorDetails;
32
+ }());
33
+ exports.ValidationErrorDetails = ValidationErrorDetails;
34
+ //# sourceMappingURL=DataValidationError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataValidationError.js","sourceRoot":"","sources":["../../../src/models/errors/DataValidationError.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH;IAUC;;OAEG;IACH,6BAAmB,YAA+B;QACjD,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,+DAA+D,CAAC;QAC/E,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,IAAI,sBAAsB,CAAC,KAAK,CAAC,EAAjC,CAAiC,CAAC,CAAC;IAC/E,CAAC;IACF,0BAAC;AAAD,CAAC,AAlBD,IAkBC;AAlBY,kDAAmB;AAoBhC;;;;GAIG;AACH;IAOC,gCAAmB,OAAwB;QAC1C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,WAAY,CAAC,CAAC;IACxD,CAAC;IACF,6BAAC;AAAD,CAAC,AAXD,IAWC;AAXY,wDAAsB"}
@@ -2,14 +2,12 @@ import { RettiwtError } from './RettiwtError';
2
2
  /**
3
3
  * Represents an HTTP error that occues while making a request to Twitter API.
4
4
  *
5
- * @internal
5
+ * @public
6
6
  */
7
7
  export declare class HttpError extends RettiwtError {
8
8
  /** The HTTP status code. */
9
9
  status: number;
10
10
  /**
11
- * Initializes a new HttpError based on the given error details.
12
- *
13
11
  * @param httpStatus - The HTTP status code received upon making the request
14
12
  * @param message - Any additional error message.
15
13
  */
@@ -16,18 +16,15 @@ var __extends = (this && this.__extends) || (function () {
16
16
  })();
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.HttpError = void 0;
19
- // ERRORS
20
19
  var RettiwtError_1 = require("./RettiwtError");
21
20
  /**
22
21
  * Represents an HTTP error that occues while making a request to Twitter API.
23
22
  *
24
- * @internal
23
+ * @public
25
24
  */
26
25
  var HttpError = /** @class */ (function (_super) {
27
26
  __extends(HttpError, _super);
28
27
  /**
29
- * Initializes a new HttpError based on the given error details.
30
- *
31
28
  * @param httpStatus - The HTTP status code received upon making the request
32
29
  * @param message - Any additional error message.
33
30
  */
@@ -1 +1 @@
1
- {"version":3,"file":"HttpError.js","sourceRoot":"","sources":["../../../src/models/errors/HttpError.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,SAAS;AACT,+CAA8C;AAE9C;;;;GAIG;AACH;IAA+B,6BAAY;IAI1C;;;;;OAKG;IACH,mBAAmB,UAAkB,EAAE,OAAgB;QAAvD,YACC,kBAAM,OAAO,CAAC,SAGd;QADA,KAAI,CAAC,MAAM,GAAG,UAAU,CAAC;;IAC1B,CAAC;IACF,gBAAC;AAAD,CAAC,AAfD,CAA+B,2BAAY,GAe1C;AAfY,8BAAS"}
1
+ {"version":3,"file":"HttpError.js","sourceRoot":"","sources":["../../../src/models/errors/HttpError.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,+CAA8C;AAE9C;;;;GAIG;AACH;IAA+B,6BAAY;IAI1C;;;OAGG;IACH,mBAAmB,UAAkB,EAAE,OAAgB;QAAvD,YACC,kBAAM,OAAO,CAAC,SAGd;QADA,KAAI,CAAC,MAAM,GAAG,UAAU,CAAC;;IAC1B,CAAC;IACF,gBAAC;AAAD,CAAC,AAbD,CAA+B,2BAAY,GAa1C;AAbY,8BAAS"}
@@ -1,13 +1,11 @@
1
1
  import { RettiwtError } from './RettiwtError';
2
2
  /**
3
- * Represents an HTTP error that occues while making a request to Twitter API.
3
+ * Represents a timeout error that occues while making a request to Twitter API.
4
4
  *
5
- * @internal
5
+ * @public
6
6
  */
7
7
  export declare class TimeoutError extends RettiwtError {
8
8
  /**
9
- * Initializes a new TimeoutError based on the given error details.
10
- *
11
9
  * @param message - Error message with the configured timeout.
12
10
  */
13
11
  constructor(message?: string);
@@ -16,18 +16,15 @@ var __extends = (this && this.__extends) || (function () {
16
16
  })();
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.TimeoutError = void 0;
19
- // ERRORS
20
19
  var RettiwtError_1 = require("./RettiwtError");
21
20
  /**
22
- * Represents an HTTP error that occues while making a request to Twitter API.
21
+ * Represents a timeout error that occues while making a request to Twitter API.
23
22
  *
24
- * @internal
23
+ * @public
25
24
  */
26
25
  var TimeoutError = /** @class */ (function (_super) {
27
26
  __extends(TimeoutError, _super);
28
27
  /**
29
- * Initializes a new TimeoutError based on the given error details.
30
- *
31
28
  * @param message - Error message with the configured timeout.
32
29
  */
33
30
  function TimeoutError(message) {
@@ -1 +1 @@
1
- {"version":3,"file":"TimeoutError.js","sourceRoot":"","sources":["../../../src/models/errors/TimeoutError.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,SAAS;AACT,+CAA8C;AAE9C;;;;GAIG;AACH;IAAkC,gCAAY;IAC7C;;;;OAIG;IACH,sBAAmB,OAAgB;eAClC,kBAAM,OAAO,CAAC;IACf,CAAC;IACF,mBAAC;AAAD,CAAC,AATD,CAAkC,2BAAY,GAS7C;AATY,oCAAY"}
1
+ {"version":3,"file":"TimeoutError.js","sourceRoot":"","sources":["../../../src/models/errors/TimeoutError.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,+CAA8C;AAE9C;;;;GAIG;AACH;IAAkC,gCAAY;IAC7C;;OAEG;IACH,sBAAmB,OAAgB;eAClC,kBAAM,OAAO,CAAC;IACf,CAAC;IACF,mBAAC;AAAD,CAAC,AAPD,CAAkC,2BAAY,GAO7C;AAPY,oCAAY"}