e621 2.0.0-dev.9 → 2.0.3

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 (45) hide show
  1. package/.node-version +1 -0
  2. package/README.md +66 -47
  3. package/build/package.json +1 -1
  4. package/build/src/index.d.ts +10 -1
  5. package/build/src/index.js +18 -2
  6. package/build/src/modules/Artists.d.ts +106 -0
  7. package/build/src/modules/Artists.js +240 -0
  8. package/build/src/modules/Pools.d.ts +4 -4
  9. package/build/src/modules/Pools.js +9 -7
  10. package/build/src/modules/PostSets.d.ts +2 -2
  11. package/build/src/modules/PostSets.js +4 -4
  12. package/build/src/modules/Posts.d.ts +38 -2
  13. package/build/src/modules/Posts.js +85 -3
  14. package/build/src/modules/UserFeedback.d.ts +1 -0
  15. package/build/src/modules/UserFeedback.js +3 -2
  16. package/build/src/modules/Users.d.ts +2 -1
  17. package/build/src/modules/Users.js +4 -3
  18. package/build/src/modules/WikiPages.d.ts +99 -0
  19. package/build/src/modules/WikiPages.js +210 -0
  20. package/build/src/structures/Artist.d.ts +36 -0
  21. package/build/src/structures/Artist.js +51 -0
  22. package/build/src/structures/ArtistHistory.d.ts +39 -0
  23. package/build/src/structures/ArtistHistory.js +50 -0
  24. package/build/src/structures/AuthenticatedUser.js +4 -4
  25. package/build/src/structures/Pool.js +10 -8
  26. package/build/src/structures/PoolHistory.d.ts +1 -8
  27. package/build/src/structures/PoolHistory.js +5 -11
  28. package/build/src/structures/Post.js +11 -9
  29. package/build/src/structures/PostHistory.d.ts +52 -0
  30. package/build/src/structures/PostHistory.js +93 -0
  31. package/build/src/structures/PostSet.js +9 -7
  32. package/build/src/structures/User.js +5 -5
  33. package/build/src/structures/WikiPage.d.ts +17 -0
  34. package/build/src/structures/WikiPage.js +27 -0
  35. package/build/src/structures/WikiPageHistory.d.ts +38 -0
  36. package/build/src/structures/WikiPageHistory.js +49 -0
  37. package/build/src/types/artists.d.ts +75 -0
  38. package/build/src/types/index.d.ts +3 -1
  39. package/build/src/types/pools.d.ts +2 -2
  40. package/build/src/types/post_sets.d.ts +2 -2
  41. package/build/src/types/posts.d.ts +46 -1
  42. package/build/src/types/user_feedback.d.ts +0 -0
  43. package/build/src/types/users.d.ts +2 -2
  44. package/build/src/types/wiki_pages.d.ts +65 -0
  45. package/package.json +1 -1
package/.node-version ADDED
@@ -0,0 +1 @@
1
+ 16.13.0
package/README.md CHANGED
@@ -7,17 +7,17 @@ We support almost anything normal users can do, with plans to bring everything e
7
7
  ### Features:
8
8
  - [x] Creating Posts (Buffer & URL)
9
9
  - [x] Listing/Creating/Editing/Voting On/Favoriting Posts
10
- - [x] Listing/Creating/Editing/Deleting/Modifying/Adding To/Removing From Post Sets
11
- - [x] Listing/Creating/Editing/Deleting/Modifying/Adding To/Removing From Pools
10
+ - [x] Listing/Creating/Editing/Deleting/Adding To/Removing From Post Sets
11
+ - [x] Listing/Creating/Editing/Deleting/Adding To/Removing From Pools
12
+ - [x] Listing/Creating/Editing/Deleting Wiki Pages
13
+ - [x] Listing/Creating/Editing/Deleting Artists
12
14
  - [x] Listing/Creating/Deleting/Editing User Feedback
13
15
  - [x] Reverting Pool Changes
14
16
  - [x] Listing Post History
15
17
  - [x] Editing The Authenticated User (all properties minus password and email)
16
18
  - [ ] Deleting/Approving/Unapproving/Destroying Posts
17
19
  - [ ] Creating/Solving/Deleting Post Flags
18
- - [ ] Listing/Creating/Editing/Deleting/Modifying Wiki Pages
19
- - [ ] Listing/Creating/Editing/Deleting/Modifying Artists
20
- - [ ] Listing/Editing/Deleting/Modifying Tags
20
+ - [ ] Listing/Editing/Deleting Tags
21
21
  - [ ] General Janitorial/Moderative/Admninistrative Actions
22
22
  - [ ] More Planned!
23
23
 
@@ -60,48 +60,67 @@ A map of features we support to their methods is listed below.
60
60
 
61
61
  ## Methods
62
62
  The legend for the symbols can be found after the table.
63
- | Section | Description | Location |
64
- |:-------------:|:------------------------:|:----------------------:|
65
- | Pools | Get Pool | `pools.get` |
66
- | Pools | Get Pool By Name | `pools.getByName` |
67
- | Pools | Search Pools | `pools.search` |
68
- | Pools | Create Pool* | `pools.create` |
69
- | Pools | Modify Pool* | `pools.modify` |
70
- | Pools | Delete Pool^ | `pools.delete` |
71
- | Pools | Revert Pool* | `pools.revert` |
72
- | Pools | Search Pool History | `pools.searchHistory` |
73
- | Pools | Add Post To Pool | `pools.addPost` |
74
- | Pools | Remove Post From Pool | `pools.removePost` |
75
- | Type | Description | Location |
76
- | Posts | Get Post By ID | `posts.get` |
77
- | Posts | Get Post By MD5 | `posts.getByMD5` |
78
- | Posts | Search Posts | `posts.search` |
79
- | Posts | Create Post* | `posts.create` |
80
- | Posts | Modify Post* | `posts.modify` |
81
- | Posts | Vote On Post* | `posts.vote` |
82
- | Type | Description | Location |
83
- | Post Sets | Get Post Set | `postSets.get` |
84
- | Post Sets | Search Sets | `postSets.search` |
85
- | Post Sets | Create Post Set* | `postSets.create` |
86
- | Post Sets | Modify Post Set* | `postSets.modify` |
87
- | Post Sets | Delete Post Set* | `postSets.delete` |
88
- | Post Sets | Add Post To Set* | `postSets.addPost` |
89
- | Post Sets | Remove Post From Set* | `postSets.removePost` |
90
- | Type | Description | Location |
91
- | User Feedback | Get Feedback | `userFeedback.get` |
92
- | User Feedback | Search Feedback | `userFeedback.search` |
93
- | User Feedback | Create Feedback# | `userFeedback.create` |
94
- | User Feedback | Modify Feedback# | `userFeedback.modify` |
95
- | User Feedback | Delete Feedback# | `userFeedback.delete` |
96
- | Type | Description | Location |
97
- | Users | Get User (ID/Name) | `users.get` |
98
- | Users | Search Users | `users.search` |
99
- | Users | Get Authenticated User* | `users.getSelf` |
100
- | Users | Edit Authenticated User* | `users.editSelf` |
101
- | Users | Get Upload Limit* | `users.getUploadLimit` |
102
- | Users | Get Favorites | `users.getFavorites` |
103
- | Users | Add Favorite* | `users.addFavorite` |
104
- | Users | Remove Favorite* | `users.removeFavorite` |
63
+ | Section | Description | Location |
64
+ |:---:|:---:|:---:|
65
+ | Artists | Get Artist | `artists.get` |
66
+ | Artists | Get Artist By Name | `artists.getByName` |
67
+ | Artists | Search Artists | `artists.search` |
68
+ | Artists | Create Artist* | `artists.create` |
69
+ | Artists | Modify Artist* | `artists.modify` |
70
+ | Artists | Delete Artist^ | `artists.delete` |
71
+ | Artists | Revert Artist* | `artists.revert` |
72
+ | Artists | Search Artist History | `artists.searchHistory` |
73
+ | Type | Description | Location || Pools | Get Pool | `pools.get` |
74
+ | Pools | Get Pool By Name | `pools.getByName` |
75
+ | Pools | Search Pools | `pools.search` |
76
+ | Pools | Create Pool* | `pools.create` |
77
+ | Pools | Modify Pool* | `pools.modify` |
78
+ | Pools | Delete Pool^ | `pools.delete` |
79
+ | Pools | Revert Pool* | `pools.revert` |
80
+ | Pools | Search Pool History | `pools.searchHistory` |
81
+ | Pools | Add Post To Pool | `pools.addPost` |
82
+ | Pools | Remove Post From Pool | `pools.removePost` |
83
+ | Type | Description | Location |
84
+ | Posts | Get Post By ID | `posts.get` |
85
+ | Posts | Get Post By MD5 | `posts.getByMD5` |
86
+ | Posts | Search Posts | `posts.search` |
87
+ | Posts | Create Post* | `posts.create` |
88
+ | Posts | Modify Post* | `posts.modify` |
89
+ | Posts | Vote On Post* | `posts.vote` |
90
+ | Posts | Revert Post* | `posts.revert` |
91
+ | Posts | Search Post History | `posts.searchHistory` |
92
+ | Type | Description | Location |
93
+ | Post Sets | Get Post Set | `postSets.get` |
94
+ | Post Sets | Search Sets | `postSets.search` |
95
+ | Post Sets | Create Post Set* | `postSets.create` |
96
+ | Post Sets | Modify Post Set* | `postSets.modify` |
97
+ | Post Sets | Delete Post Set* | `postSets.delete` |
98
+ | Post Sets | Add Post To Set* | `postSets.addPost` |
99
+ | Post Sets | Remove Post From Set* | `postSets.removePost` |
100
+ | Type | Description | Location |
101
+ | User Feedback | Get Feedback | `userFeedback.get` |
102
+ | User Feedback | Search Feedback | `userFeedback.search` |
103
+ | User Feedback | Create Feedback# | `userFeedback.create` |
104
+ | User Feedback | Modify Feedback# | `userFeedback.modify` |
105
+ | User Feedback | Delete Feedback# | `userFeedback.delete` |
106
+ | Type | Description | Location |
107
+ | Users | Get User (ID/Name) | `users.get` |
108
+ | Users | Search Users | `users.search` |
109
+ | Users | Get Authenticated User* | `users.getSelf` |
110
+ | Users | Edit Authenticated User* | `users.editSelf` |
111
+ | Users | Get Upload Limit* | `users.getUploadLimit` |
112
+ | Users | Get Favorites | `users.getFavorites` |
113
+ | Users | Add Favorite* | `users.addFavorite` |
114
+ | Users | Remove Favorite* | `users.removeFavorite` |
115
+ | Type | Description | Location |
116
+ | Wiki Page | Get Wiki Page | `wikiPages.get` |
117
+ | Wiki Page | Get Wiki Page (By Name) | `wikiPages.getByName` |
118
+ | Wiki Page | Search Wiki Pages | `wikiPages.search` |
119
+ | Wiki Page | Create Wiki Page* | `wikiPages.create` |
120
+ | Wiki Page | Modify Wiki Page* | `wikiPages.modify` |
121
+ | Wiki Page | Delete Wiki Page^ | `wikiPages.delete` |
122
+ | Wiki Page | Revert Wiki Page* | `wikiPages.revert` |
123
+ | Wiki Page | Search Wiki Page History | `wikiPages.searchHistory` |
105
124
 
106
125
  #### Method Symbol Legend
107
126
  | Symbol | Meaning |
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "e621",
3
- "version": "2.0.0-dev.9",
3
+ "version": "2.0.3",
4
4
  "description": "A module for interfacing with e621.",
5
5
  "main": "build/src/index.js",
6
6
  "scripts": {
@@ -1,27 +1,36 @@
1
1
  import type { Options, InstanceOptions } from "./types";
2
2
  import RequestHandler from "./util/RequestHandler";
3
+ import Artists from "./modules/Artists";
3
4
  import Posts from "./modules/Posts";
4
5
  import UserFeedback from "./modules/UserFeedback";
5
6
  import Users from "./modules/Users";
6
7
  import PostSets from "./modules/PostSets";
7
8
  import Pools from "./modules/Pools";
9
+ import WikiPages from "./modules/WikiPages";
10
+ import Artist from "./structures/Artist";
11
+ import ArtistHistory from "./structures/ArtistHistory";
8
12
  import AuthenticatedUser from "./structures/AuthenticatedUser";
9
13
  import Pool from "./structures/Pool";
10
14
  import PoolHistory from "./structures/PoolHistory";
11
15
  import Post from "./structures/Post";
16
+ import PostHistory from "./structures/PostHistory";
12
17
  import PostSet from "./structures/PostSet";
13
18
  import User from "./structures/User";
19
+ import WikiPage from "./structures/WikiPage";
20
+ import WikiPageHistory from "./structures/WikiPageHistory";
14
21
  export default class E621 {
22
+ artists: Artists;
15
23
  request: RequestHandler;
16
24
  postSets: PostSets;
17
25
  pools: Pools;
18
26
  posts: Posts;
19
27
  userFeedback: UserFeedback;
20
28
  users: Users;
29
+ wikiPages: WikiPages;
21
30
  private readonly auth;
22
31
  readonly options: InstanceOptions;
23
32
  constructor(options?: Options);
24
33
  }
25
34
  export * from "./types";
26
35
  export { APIError } from "./util/RequestHandler";
27
- export { AuthenticatedUser, Pool, PoolHistory, Post, PostSet, User };
36
+ export { Artist, ArtistHistory, AuthenticatedUser, Pool, PoolHistory, Post, PostHistory, PostSet, User, WikiPage, WikiPageHistory };
@@ -13,13 +13,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  return (mod && mod.__esModule) ? mod : { "default": mod };
14
14
  };
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.User = exports.PostSet = exports.Post = exports.PoolHistory = exports.Pool = exports.AuthenticatedUser = exports.APIError = void 0;
16
+ exports.WikiPageHistory = exports.WikiPage = exports.User = exports.PostSet = exports.PostHistory = exports.Post = exports.PoolHistory = exports.Pool = exports.AuthenticatedUser = exports.ArtistHistory = exports.Artist = exports.APIError = void 0;
17
17
  const RequestHandler_1 = __importDefault(require("./util/RequestHandler"));
18
+ // Modules
19
+ const Artists_1 = __importDefault(require("./modules/Artists"));
18
20
  const Posts_1 = __importDefault(require("./modules/Posts"));
19
21
  const UserFeedback_1 = __importDefault(require("./modules/UserFeedback"));
20
22
  const Users_1 = __importDefault(require("./modules/Users"));
21
23
  const PostSets_1 = __importDefault(require("./modules/PostSets"));
22
24
  const Pools_1 = __importDefault(require("./modules/Pools"));
25
+ const WikiPages_1 = __importDefault(require("./modules/WikiPages"));
26
+ // Structures
27
+ const Artist_1 = __importDefault(require("./structures/Artist"));
28
+ exports.Artist = Artist_1.default;
29
+ const ArtistHistory_1 = __importDefault(require("./structures/ArtistHistory"));
30
+ exports.ArtistHistory = ArtistHistory_1.default;
23
31
  const AuthenticatedUser_1 = __importDefault(require("./structures/AuthenticatedUser"));
24
32
  exports.AuthenticatedUser = AuthenticatedUser_1.default;
25
33
  const Pool_1 = __importDefault(require("./structures/Pool"));
@@ -28,20 +36,28 @@ const PoolHistory_1 = __importDefault(require("./structures/PoolHistory"));
28
36
  exports.PoolHistory = PoolHistory_1.default;
29
37
  const Post_1 = __importDefault(require("./structures/Post"));
30
38
  exports.Post = Post_1.default;
39
+ const PostHistory_1 = __importDefault(require("./structures/PostHistory"));
40
+ exports.PostHistory = PostHistory_1.default;
31
41
  const PostSet_1 = __importDefault(require("./structures/PostSet"));
32
42
  exports.PostSet = PostSet_1.default;
33
43
  const User_1 = __importDefault(require("./structures/User"));
34
44
  exports.User = User_1.default;
45
+ const WikiPage_1 = __importDefault(require("./structures/WikiPage"));
46
+ exports.WikiPage = WikiPage_1.default;
47
+ const WikiPageHistory_1 = __importDefault(require("./structures/WikiPageHistory"));
48
+ exports.WikiPageHistory = WikiPageHistory_1.default;
35
49
  const package_json_1 = __importDefault(require("../package.json"));
36
50
  // note for future reference (browser compatibility?)
37
51
  // POST with "_method=*" can be used in place of PUT/PATCH/DELETE
38
52
  class E621 {
53
+ artists = new Artists_1.default(this);
39
54
  request = new RequestHandler_1.default(this);
40
55
  postSets = new PostSets_1.default(this);
41
56
  pools = new Pools_1.default(this);
42
57
  posts = new Posts_1.default(this);
43
58
  userFeedback = new UserFeedback_1.default(this);
44
59
  users = new Users_1.default(this);
60
+ wikiPages = new WikiPages_1.default(this);
45
61
  auth;
46
62
  options;
47
63
  constructor(options) {
@@ -100,4 +116,4 @@ class E621 {
100
116
  exports.default = E621;
101
117
  var RequestHandler_2 = require("./util/RequestHandler");
102
118
  Object.defineProperty(exports, "APIError", { enumerable: true, get: function () { return RequestHandler_2.APIError; } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDJFQUFtRDtBQUNuRCw0REFBb0M7QUFDcEMsMEVBQWtEO0FBQ2xELDREQUFvQztBQUNwQyxrRUFBMEM7QUFDMUMsNERBQW9DO0FBQ3BDLHVGQUErRDtBQWtFdEQsNEJBbEVGLDJCQUFpQixDQWtFRTtBQWpFMUIsNkRBQXFDO0FBaUVULGVBakVyQixjQUFJLENBaUVxQjtBQWhFaEMsMkVBQW1EO0FBZ0VqQixzQkFoRTNCLHFCQUFXLENBZ0UyQjtBQS9EN0MsNkRBQXFDO0FBK0RVLGVBL0R4QyxjQUFJLENBK0R3QztBQTlEbkQsbUVBQTJDO0FBOERVLGtCQTlEOUMsaUJBQU8sQ0E4RDhDO0FBN0Q1RCw2REFBcUM7QUE2RHlCLGVBN0R2RCxjQUFJLENBNkR1RDtBQTVEbEUsbUVBQWtDO0FBRWxDLHFEQUFxRDtBQUNyRCxpRUFBaUU7QUFDakUsTUFBcUIsSUFBSTtJQUN4QixPQUFPLEdBQUcsSUFBSSx3QkFBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLFFBQVEsR0FBRyxJQUFJLGtCQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsS0FBSyxHQUFHLElBQUksZUFBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLEtBQUssR0FBRyxJQUFJLGVBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixZQUFZLEdBQUcsSUFBSSxzQkFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLEtBQUssR0FBRyxJQUFJLGVBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNQLElBQUksQ0FBZ0I7SUFDNUIsT0FBTyxDQUFrQjtJQUNsQyxZQUFZLE9BQWlCO1FBQzVCLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUUzQixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVk7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
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDJFQUFtRDtBQUNuRCxVQUFVO0FBQ1YsZ0VBQXdDO0FBQ3hDLDREQUFvQztBQUNwQywwRUFBa0Q7QUFDbEQsNERBQW9DO0FBQ3BDLGtFQUEwQztBQUMxQyw0REFBb0M7QUFDcEMsb0VBQTRDO0FBQzVDLGFBQWE7QUFDYixpRUFBeUM7QUEyRXhDLGlCQTNFTSxnQkFBTSxDQTJFTjtBQTFFUCwrRUFBdUQ7QUEyRXRELHdCQTNFTSx1QkFBYSxDQTJFTjtBQTFFZCx1RkFBK0Q7QUEyRTlELDRCQTNFTSwyQkFBaUIsQ0EyRU47QUExRWxCLDZEQUFxQztBQTJFcEMsZUEzRU0sY0FBSSxDQTJFTjtBQTFFTCwyRUFBbUQ7QUEyRWxELHNCQTNFTSxxQkFBVyxDQTJFTjtBQTFFWiw2REFBcUM7QUEyRXBDLGVBM0VNLGNBQUksQ0EyRU47QUExRUwsMkVBQW1EO0FBMkVsRCxzQkEzRU0scUJBQVcsQ0EyRU47QUExRVosbUVBQTJDO0FBMkUxQyxrQkEzRU0saUJBQU8sQ0EyRU47QUExRVIsNkRBQXFDO0FBMkVwQyxlQTNFTSxjQUFJLENBMkVOO0FBMUVMLHFFQUE2QztBQTJFNUMsbUJBM0VNLGtCQUFRLENBMkVOO0FBMUVULG1GQUEyRDtBQTJFMUQsMEJBM0VNLHlCQUFlLENBMkVOO0FBekVoQixtRUFBa0M7QUFFbEMscURBQXFEO0FBQ3JELGlFQUFpRTtBQUNqRSxNQUFxQixJQUFJO0lBQ3hCLE9BQU8sR0FBRyxJQUFJLGlCQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsT0FBTyxHQUFHLElBQUksd0JBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxRQUFRLEdBQUcsSUFBSSxrQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLEtBQUssR0FBRyxJQUFJLGVBQUssQ0FBQyxJQUFJ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
@@ -0,0 +1,106 @@
1
+ import type E621 from "..";
2
+ import Artist from "../structures/Artist";
3
+ import type { SearchArtistsOptions, CreateArtistOptions, ModifyArtistOptions, SearchArtistHistoryOptions } from "../types";
4
+ import ArtistHistory from "../structures/ArtistHistory";
5
+ export default class Artists {
6
+ private readonly auth;
7
+ private readonly main;
8
+ constructor(main: E621);
9
+ /**
10
+ * Get an artist by their id
11
+ *
12
+ * @param {number} id - The id of the artist to get
13
+ * @returns {Promise<(Artist | null)>}
14
+ */
15
+ get(id: number): Promise<Artist | null>;
16
+ /**
17
+ * Get an artist by their name
18
+ *
19
+ * @param {string} name - The name of the artist to get
20
+ * @returns {Promise<(Artist | null)>}
21
+ */
22
+ getByTitle(name: string): Promise<Artist | null>;
23
+ /**
24
+ * Search for artists
25
+ *
26
+ * @param {object} [options]
27
+ * @param {string} [options.name] - narrow the results by the name of the artist
28
+ * @param {string} [options.url] - narrow the results by urls of the artist
29
+ * @param {string} [options.creator] - narrow the results by the (name of the) creator of the artist page
30
+ * @param {boolean} [options.active] - narrow the results by the artist being active
31
+ * @param {boolean} [options.banned] - narrow the results by the artist being banned
32
+ * @param {boolean} [options.has_tag] - narrow the results by the artist having a matching tag
33
+ * @param {SearchArtistsOrder} [options.order] - the order of the results
34
+ * @param {(number |`${"" | "a" | "b"}${number}`)} [options.page] - page of results to get
35
+ * @param {number} [options.limit] - limit the maximum amount of results returned
36
+ * @returns {Promise<Array<ArtistProperties>>}
37
+ */
38
+ search(options?: SearchArtistsOptions): Promise<Artist[]>;
39
+ /**
40
+ * Create an artist
41
+ *
42
+ * * Requires Authentication
43
+ *
44
+ * @param {object} options
45
+ * @param {string} options.name - the name of artist
46
+ * @param {number} [options.linkedUserID] - the id of the user associated with this artist (requires janitor)
47
+ * @param {boolean} [options.locked] - if the artist should be locked (requires janitor)
48
+ * @param {(Array<string> | string)} [options.otherNames] - the other names for this artist
49
+ * @param {string} [options.groupName] - the group name of this artist
50
+ * @param {(Array<string> | string)} [options.urls] - the urls associated with this artist
51
+ * @param {string} [options.notes] - notes for this artist
52
+ * @returns {Promise<Artist>}
53
+ */
54
+ create(options: CreateArtistOptions): Promise<Artist>;
55
+ /**
56
+ * modify an artist
57
+ *
58
+ * * Requires Authentication
59
+ *
60
+ * @param {number} id - the id of the artists to edit
61
+ * @param {object} options
62
+ * @param {string} [options.name] - the name of artist (requires janitor)
63
+ * @param {number} [options.linkedUserID] - the id of the user associated with this artist (requires janitor)
64
+ * @param {boolean} [options.locked] - if the artist should be locked (requires janitor)
65
+ * @param {(Array<string> | string)} [options.otherNames] - the other names for this artist
66
+ * @param {string} [options.groupName] - the group name of this artist
67
+ * @param {(Array<string> | string)} [options.urls] - the urls associated with this artist
68
+ * @param {string} [options.notes] - notes for this artist
69
+ * @returns {Promise<Artist>}
70
+ */
71
+ modify(id: number, options: ModifyArtistOptions): Promise<Artist>;
72
+ /**
73
+ * Delete an artist
74
+ *
75
+ * * Requires Authentication
76
+ *
77
+ * * Requires Janitor
78
+ *
79
+ * @param {number} id - the id of the artist to delete
80
+ * @returns {Promise<null>}
81
+ */
82
+ delete(id: number): Promise<null>;
83
+ /**
84
+ * Revert an artist to a previous version
85
+ *
86
+ * * Requires Authentication
87
+ *
88
+ * @param {number} id - the id of the artist to revert
89
+ * @param {number} versionID - the version id to revert to (see history)
90
+ */
91
+ revert(id: number, versionID: number): Promise<null>;
92
+ /**
93
+ * Search the artist history
94
+ *
95
+ * @param {object} [options]
96
+ * @param {number} [options.artistID] - narrow the results by artist id
97
+ * @param {string} [options.artistName] - narrow the results by artist name
98
+ * @param {number} [options.updaterID] - narrow the results by updater id
99
+ * @param {string} [options.updaterName] - narrow the results by updater name
100
+ * @param {(number |`${"" | "a" | "b"}${number}`)} [options.page] - page of results to get
101
+ * @param {number} [options.limit] - limit the maximum amount of results returned
102
+ * @param
103
+ * @returns {Promise<Array<ArtistHistory>>}
104
+ */
105
+ searchHistory(options?: SearchArtistHistoryOptions): Promise<ArtistHistory[]>;
106
+ }
@@ -0,0 +1,240 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const Artist_1 = __importDefault(require("../structures/Artist"));
7
+ const FormHelper_1 = __importDefault(require("../util/FormHelper"));
8
+ const RequestHandler_1 = require("../util/RequestHandler");
9
+ const ArtistHistory_1 = __importDefault(require("../structures/ArtistHistory"));
10
+ class Artists {
11
+ auth;
12
+ main;
13
+ constructor(main) {
14
+ Object.defineProperties(this, {
15
+ auth: {
16
+ get() {
17
+ return !this.main.options.authUser || !this.main.options.authKey ? null : `Basic ${Buffer.from(`${this.main.options.authUser}:${this.main.options.authKey}`).toString("base64")}`;
18
+ },
19
+ configurable: false,
20
+ enumerable: false
21
+ },
22
+ main: {
23
+ value: main,
24
+ configurable: false,
25
+ enumerable: false,
26
+ writable: false
27
+ }
28
+ });
29
+ }
30
+ /**
31
+ * Get an artist by their id
32
+ *
33
+ * @param {number} id - The id of the artist to get
34
+ * @returns {Promise<(Artist | null)>}
35
+ */
36
+ async get(id) {
37
+ const res = await this.main.request.get(`/artists/${id}.json`).catch(err => {
38
+ if (err instanceof RequestHandler_1.APIError && err.statusCode === 404)
39
+ return null;
40
+ throw err;
41
+ });
42
+ return res === null ? null : new Artist_1.default(this.main, res);
43
+ }
44
+ /**
45
+ * Get an artist by their name
46
+ *
47
+ * @param {string} name - The name of the artist to get
48
+ * @returns {Promise<(Artist | null)>}
49
+ */
50
+ async getByTitle(name) {
51
+ return this.search({
52
+ name,
53
+ limit: 1
54
+ }).then(r => r.length === 0 ? null : r[0]);
55
+ }
56
+ /**
57
+ * Search for artists
58
+ *
59
+ * @param {object} [options]
60
+ * @param {string} [options.name] - narrow the results by the name of the artist
61
+ * @param {string} [options.url] - narrow the results by urls of the artist
62
+ * @param {string} [options.creator] - narrow the results by the (name of the) creator of the artist page
63
+ * @param {boolean} [options.active] - narrow the results by the artist being active
64
+ * @param {boolean} [options.banned] - narrow the results by the artist being banned
65
+ * @param {boolean} [options.has_tag] - narrow the results by the artist having a matching tag
66
+ * @param {SearchArtistsOrder} [options.order] - the order of the results
67
+ * @param {(number |`${"" | "a" | "b"}${number}`)} [options.page] - page of results to get
68
+ * @param {number} [options.limit] - limit the maximum amount of results returned
69
+ * @returns {Promise<Array<ArtistProperties>>}
70
+ */
71
+ async search(options) {
72
+ options = options ?? {};
73
+ const qs = new FormHelper_1.default();
74
+ if (typeof options.name === "string")
75
+ qs.add("search[any_name_matches]", options.name);
76
+ if (typeof options.url === "string")
77
+ qs.add("search[url_matches]", options.url);
78
+ if (typeof options.creator === "string")
79
+ qs.add("search[creator_name]", options.creator);
80
+ if (typeof options.active === "boolean")
81
+ qs.add("search[is_active]", options.active);
82
+ if (typeof options.banned === "boolean")
83
+ qs.add("search[is_banned]", options.banned);
84
+ if (typeof options.has_tag === "boolean")
85
+ qs.add("search[has_tag]", options.has_tag);
86
+ if (typeof options.order === "string")
87
+ qs.add("search[order]", options.order);
88
+ if (typeof options.page !== "undefined")
89
+ qs.add("page", options.page);
90
+ if (typeof options.limit === "number")
91
+ qs.add("limit", options.limit);
92
+ const res = await this.main.request.get(`/artists.json?${qs.build()}`);
93
+ return res.map(info => new Artist_1.default(this.main, info));
94
+ }
95
+ /**
96
+ * Create an artist
97
+ *
98
+ * * Requires Authentication
99
+ *
100
+ * @param {object} options
101
+ * @param {string} options.name - the name of artist
102
+ * @param {number} [options.linkedUserID] - the id of the user associated with this artist (requires janitor)
103
+ * @param {boolean} [options.locked] - if the artist should be locked (requires janitor)
104
+ * @param {(Array<string> | string)} [options.otherNames] - the other names for this artist
105
+ * @param {string} [options.groupName] - the group name of this artist
106
+ * @param {(Array<string> | string)} [options.urls] - the urls associated with this artist
107
+ * @param {string} [options.notes] - notes for this artist
108
+ * @returns {Promise<Artist>}
109
+ */
110
+ async create(options) {
111
+ this.main.request.authCheck.call(this, "Artists#create");
112
+ if (!options)
113
+ throw new Error("options is required in Artists#create");
114
+ const qs = new FormHelper_1.default()
115
+ .add("artist[name]", options.name);
116
+ if (typeof options.linkedUserID === "number")
117
+ qs.add("artist[linked_user_id]", options.linkedUserID);
118
+ if (typeof options.locked === "boolean")
119
+ qs.add("artist[is_locked]", options.locked);
120
+ if (typeof options.otherNames === "string")
121
+ qs.add("artist[other_names_string]", options.otherNames);
122
+ if (Array.isArray(options.otherNames))
123
+ qs.add("artist[other_names_string]", options.otherNames.join(" "));
124
+ if (typeof options.groupName === "string")
125
+ qs.add("artist[group_name]", options.groupName);
126
+ if (typeof options.urls === "string")
127
+ qs.add("artist[url_string]", options.urls);
128
+ if (Array.isArray(options.urls))
129
+ qs.add("artist[url_string]", options.urls.join("\n"));
130
+ if (typeof options.notes === "string")
131
+ qs.add("artist[notes]", options.notes);
132
+ const res = await this.main.request.post("/artists.json", qs.build());
133
+ return new Artist_1.default(this.main, res);
134
+ }
135
+ /**
136
+ * modify an artist
137
+ *
138
+ * * Requires Authentication
139
+ *
140
+ * @param {number} id - the id of the artists to edit
141
+ * @param {object} options
142
+ * @param {string} [options.name] - the name of artist (requires janitor)
143
+ * @param {number} [options.linkedUserID] - the id of the user associated with this artist (requires janitor)
144
+ * @param {boolean} [options.locked] - if the artist should be locked (requires janitor)
145
+ * @param {(Array<string> | string)} [options.otherNames] - the other names for this artist
146
+ * @param {string} [options.groupName] - the group name of this artist
147
+ * @param {(Array<string> | string)} [options.urls] - the urls associated with this artist
148
+ * @param {string} [options.notes] - notes for this artist
149
+ * @returns {Promise<Artist>}
150
+ */
151
+ async modify(id, options) {
152
+ this.main.request.authCheck.call(this, "Artists#modify");
153
+ if (!options)
154
+ throw new Error("options is required in Artists#modify");
155
+ const qs = new FormHelper_1.default();
156
+ if (typeof options.name === "string")
157
+ qs.add("artist[name]", options.name);
158
+ if (typeof options.linkedUserID === "number")
159
+ qs.add("artist[linked_user_id]", options.linkedUserID);
160
+ if (typeof options.locked === "boolean")
161
+ qs.add("artist[is_locked]", options.locked);
162
+ if (typeof options.otherNames === "string")
163
+ qs.add("artist[other_names_string]", options.otherNames);
164
+ if (Array.isArray(options.otherNames))
165
+ qs.add("artist[other_names_string]", options.otherNames.join(" "));
166
+ if (typeof options.groupName === "string")
167
+ qs.add("artist[group_name]", options.groupName);
168
+ if (typeof options.urls === "string")
169
+ qs.add("artist[url_string]", options.urls);
170
+ if (Array.isArray(options.urls))
171
+ qs.add("artist[url_string]", options.urls.join("\n"));
172
+ if (typeof options.notes === "string")
173
+ qs.add("artist[notes]", options.notes);
174
+ const res = await this.main.request.patch(`/artists/${id}.json`, qs.build());
175
+ return new Artist_1.default(this.main, res);
176
+ }
177
+ /**
178
+ * Delete an artist
179
+ *
180
+ * * Requires Authentication
181
+ *
182
+ * * Requires Janitor
183
+ *
184
+ * @param {number} id - the id of the artist to delete
185
+ * @returns {Promise<null>}
186
+ */
187
+ async delete(id) {
188
+ this.main.request.authCheck.call(this, "Artists#delete");
189
+ return this.main.request.delete(`/artists/${id}.json`);
190
+ }
191
+ /**
192
+ * Revert an artist to a previous version
193
+ *
194
+ * * Requires Authentication
195
+ *
196
+ * @param {number} id - the id of the artist to revert
197
+ * @param {number} versionID - the version id to revert to (see history)
198
+ */
199
+ async revert(id, versionID) {
200
+ this.main.request.authCheck.call(this, "Artists#revert");
201
+ const qs = new FormHelper_1.default()
202
+ .add("version_id", versionID);
203
+ return this.main.request.put(`/artists/${id}/revert.json`, qs.build());
204
+ }
205
+ /**
206
+ * Search the artist history
207
+ *
208
+ * @param {object} [options]
209
+ * @param {number} [options.artistID] - narrow the results by artist id
210
+ * @param {string} [options.artistName] - narrow the results by artist name
211
+ * @param {number} [options.updaterID] - narrow the results by updater id
212
+ * @param {string} [options.updaterName] - narrow the results by updater name
213
+ * @param {(number |`${"" | "a" | "b"}${number}`)} [options.page] - page of results to get
214
+ * @param {number} [options.limit] - limit the maximum amount of results returned
215
+ * @param
216
+ * @returns {Promise<Array<ArtistHistory>>}
217
+ */
218
+ async searchHistory(options) {
219
+ options = options ?? {};
220
+ const qs = new FormHelper_1.default();
221
+ if (typeof options.artistID === "number")
222
+ qs.add("search[artist_id]", options.artistID);
223
+ if (typeof options.artistName === "number")
224
+ qs.add("search[name]", options.artistName);
225
+ if (typeof options.updaterID === "number")
226
+ qs.add("search[updater_id]", options.updaterID);
227
+ if (typeof options.updaterName === "number")
228
+ qs.add("search[updater]", options.updaterName);
229
+ if (typeof options.page !== "undefined")
230
+ qs.add("page", options.page);
231
+ if (typeof options.limit === "number")
232
+ qs.add("limit", options.limit);
233
+ const res = await this.main.request.get(`/artist_versions.json?${qs.build()}`);
234
+ if (res && !Array.isArray(res) && "artist_versions" in res)
235
+ return [];
236
+ return res.map(info => new ArtistHistory_1.default(this.main, info));
237
+ }
238
+ }
239
+ exports.default = Artists;
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJ0aXN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2R1bGVzL0FydGlzdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxrRUFBMEM7QUFVMUMsb0VBQTRDO0FBQzVDLDJEQUFrRDtBQUNsRCxnRkFBd0Q7QUFFeEQsTUFBcUIsT0FBTztJQUNWLElBQUksQ0FBZ0I7SUFDcEIsSUFBSSxDQUFPO0lBQzVCLFlBQVksSUFBVTtRQUNyQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFO1lBQzdCLElBQUksRUFBRTtnQkFDTCxHQUFHO29CQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ25MLENBQUM7Z0JBQ0QsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLFVBQVUsRUFBRSxLQUFLO2FBQ2pCO1lBQ0QsSUFBSSxFQUFFO2dCQUNMLEtBQUssRUFBRSxJQUFJO2dCQUNYLFlBQVksRUFBRSxLQUFLO2dCQUNuQixVQUFVLEVBQUUsS0FBSztnQkFDakIsUUFBUSxFQUFFLEtBQUs7YUFDZjtTQUNELENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBVTtRQUNuQixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBbUIsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM1RixJQUFJLEdBQUcsWUFBWSx5QkFBUSxJQUFJLEdBQUcsQ0FBQyxVQUFVLEtBQUssR0FBRztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUNuRSxNQUFNLEdBQUcsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksZ0JBQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFHRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBWTtRQUM1QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDbEIsSUFBSTtZQUNKLEtBQUssRUFBRSxDQUFDO1NBQ1IsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBOEI7UUFDMUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDeEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxvQkFBVSxFQUFFLENBQUM7UUFDNUIsSUFBSSxPQUFPLE9BQU8sQ0FBQyxJQUFJLEtBQVEsUUFBUTtZQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsMEJBQTBCLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdGLElBQUksT0FBTyxPQUFPLENBQUMsR0FBRyxLQUFTLFFBQVE7WUFBSyxFQUFFLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2RixJQUFJLE9BQU8sT0FBTyxDQUFDLE9BQU8sS0FBSyxRQUFRO1lBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUYsSUFBSSxPQUFPLE9BQU8sQ0FBQyxNQUFNLEtBQU0sU0FBUztZQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hGLElBQUksT0FBTyxPQUFPLENBQUMsTUFBTSxLQUFNLFNBQVM7WUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4RixJQUFJLE9BQU8sT0FBTyxDQUFDLE9BQU8sS0FBSyxTQUFTO1lBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkYsSUFBSSxPQUFPLE9BQU8sQ0FBQyxLQUFLLEtBQU8sUUFBUTtZQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRixJQUFJLE9BQU8sT0FBTyxDQUFDLElBQUksS0FBUSxXQUFXO1lBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pFLElBQUksT0FBTyxPQUFPLENBQUMsS0FBSyxLQUFPLFFBQVE7WUFBSyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQTBCLGlCQUFpQixFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hHLE9BQU8sR0FBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksZ0JBQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7OztPQWNHO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUE0QjtRQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxPQUFPO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sRUFBRSxHQUFHLElBQUksb0JBQVUsRUFBRTthQUN6QixHQUFHLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJLE9BQU8sT0FBTyxDQUFDLFlBQVksS0FBSyxRQUFRO1lBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEcsSUFBSSxPQUFPLE9BQU8sQ0FBQyxNQUFNLEtBQVcsU0FBUztZQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNGLElBQUksT0FBTyxPQUFPLENBQUMsVUFBVSxLQUFPLFFBQVE7WUFBRyxFQUFFLENBQUMsR0FBRyxDQUFDLDRCQUE0QixFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4RyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsNEJBQTRCLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsSCxJQUFJLE9BQU8sT0FBTyxDQUFDLFNBQVMsS0FBUSxRQUFRO1lBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0YsSUFBSSxPQUFPLE9BQU8sQ0FBQyxJQUFJLEtBQWEsUUFBUTtZQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFGLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQWdCLEVBQUUsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNyRyxJQUFJLE9BQU8sT0FBTyxDQUFDLEtBQUssS0FBWSxRQUFRO1lBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RGLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFtQixlQUFlLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDeEYsT0FBTyxJQUFJLGdCQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7OztPQWVHO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFVLEVBQUUsT0FBNEI7UUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsT0FBTztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztRQUN2RSxNQUFNLEVBQUUsR0FBRyxJQUFJLG9CQUFVLEVBQUUsQ0FBQztRQUM1QixJQUFJLE9BQU8sT0FBTyxDQUFDLElBQUksS0FBYSxRQUFRO1lBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BGLElBQUksT0FBTyxPQUFPLENBQUMsWUFBWSxLQUFLLFFBQVE7WUFBRyxFQUFFLENBQUMsR0FBRyxDQUFDLHdCQUF3QixFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0RyxJQUFJLE9BQU8sT0FBTyxDQUFDLE1BQU0sS0FBVyxTQUFTO1lBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0YsSUFBSSxPQUFPLE9BQU8sQ0FBQyxVQUFVLEtBQU8sUUFBUTtZQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsNEJBQTRCLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xILElBQUksT0FBTyxPQUFPLENBQUMsU0FBUyxLQUFRLFFBQVE7WUFBRyxFQUFFLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvRixJQUFJLE9BQU8sT0FBTyxDQUFDLElBQUksS0FBYSxRQUFRO1lBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUYsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFBZ0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3JHLElBQUksT0FBTyxPQUFPLENBQUMsS0FBSyxLQUFZLFFBQVE7WUFBRyxFQUFFLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEYsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQW1CLFlBQVksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDL0YsT0FBTyxJQUFJLGdCQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFVO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDekQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQU8sWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFVLEVBQUUsU0FBaUI7UUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUN6RCxNQUFNLEVBQUUsR0FBRyxJQUFJLG9CQUFVLEVBQUU7YUFDekIsR0FBRyxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBTyxZQUFZLEVBQUUsY0FBYyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQW9DO1FBQ3ZELE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3hCLE1BQU0sRUFBRSxHQUFHLElBQUksb0JBQVUsRUFBRSxDQUFDO1FBQzVCLElBQUksT0FBTyxPQUFPLENBQUMsUUFBUSxLQUFRLFFBQVE7WUFBSyxFQUFFLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5RixJQUFJLE9BQU8sT0FBTyxDQUFDLFVBQVUsS0FBTSxRQUFRO1lBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNGLElBQUksT0FBTyxPQUFPLENBQUMsU0FBUyxLQUFPLFFBQVE7WUFBSyxFQUFFLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRyxJQUFJLE9BQU8sT0FBTyxDQUFDLFdBQVcsS0FBSyxRQUFRO1lBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0YsSUFBSSxPQUFPLE9BQU8sQ0FBQyxJQUFJLEtBQVksV0FBVztZQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3RSxJQUFJLE9BQU8sT0FBTyxDQUFDLEtBQUssS0FBVyxRQUFRO1lBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9FLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUE0RCx5QkFBeUIsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksaUJBQWlCLElBQUksR0FBRztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3RFLE9BQU8sR0FBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksdUJBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUNEO0FBek1ELDBCQXlNQyJ9