e621 2.1.3 → 2.1.4

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.
@@ -3,6 +3,7 @@
3
3
  - [Future Plans](FuturePlans.md)
4
4
  - [E621 Search Inconsistencies](E621SearchInconsistencies.md)
5
5
  - **Artists**
6
+ - [Notes](Notes.md)
6
7
  - [Pools](Pools.md)
7
8
  - [Posts](Posts.md)
8
9
  - [Post Sets](PostSets.md)
@@ -0,0 +1,30 @@
1
+ ## Table Of Contents
2
+ - [Index](README.md)
3
+ - [Future Plans](FuturePlans.md)
4
+ - [E621 Search Inconsistencies](E621SearchInconsistencies.md)
5
+ - [Artists](Artists.md)
6
+ - **Notes**
7
+ - [Pools](Pools.md)
8
+ - [Posts](Posts.md)
9
+ - [Post Sets](PostSets.md)
10
+ - [Tags](Tags.md)
11
+ - [User Feedback](UserFeedback.md)
12
+ - [Users](Users.md)
13
+ - **Wiki Pages**
14
+
15
+ <hr>
16
+
17
+ | Feature | Implemented | Method |
18
+ |:--------------:|:-----------:|:---------------------:|
19
+ | Get By ID | ✔️ | `notes.get` |
20
+ | Search | ✔️ | `notes.search` |
21
+ | Create[^1] | ✔️ | `notes.create` |
22
+ | Modify[^1] | ✔️ | `notes.modify` |
23
+ | Delete[^1] | ✔️ | `notes.delete` |
24
+ | Search History | ✔️ | `notes.searchHistory` |
25
+
26
+ [^1]: Requires Authentication
27
+ [^2]: Requires Privileged
28
+ [^3]: Requires Janitor
29
+ [^4]: Requires Moderator
30
+ [^5]: Requires Admin
package/Features/Pools.md CHANGED
@@ -3,6 +3,7 @@
3
3
  - [Future Plans](FuturePlans.md)
4
4
  - [E621 Search Inconsistencies](E621SearchInconsistencies.md)
5
5
  - [Artists](Artists.md)
6
+ - [Notes](Notes.md)
6
7
  - **Pools**
7
8
  - [Posts](Posts.md)
8
9
  - [Post Sets](PostSets.md)
@@ -3,6 +3,7 @@
3
3
  - [Future Plans](FuturePlans.md)
4
4
  - [E621 Search Inconsistencies](E621SearchInconsistencies.md)
5
5
  - [Artists](Artists.md)
6
+ - [Notes](Notes.md)
6
7
  - [Pools](Pools.md)
7
8
  - [Posts](Posts.md)
8
9
  - **Post Sets**
package/Features/Posts.md CHANGED
@@ -3,6 +3,7 @@
3
3
  - [Future Plans](FuturePlans.md)
4
4
  - [E621 Search Inconsistencies](E621SearchInconsistencies.md)
5
5
  - [Artists](Artists.md)
6
+ - [Notes](Notes.md)
6
7
  - [Pools](Pools.md)
7
8
  - **Posts**
8
9
  - [Post Sets](PostSets.md)
@@ -3,6 +3,7 @@
3
3
  - [Future Plans](FuturePlans.md)
4
4
  - [E621 Search Inconsistencies](E621SearchInconsistencies.md)
5
5
  - [Artists](Artists.md)
6
+ - [Notes](Notes.md)
6
7
  - [Pools](Pools.md)
7
8
  - [Posts](Posts.md)
8
9
  - [Post Sets](PostSets.md)
package/Features/Tags.md CHANGED
@@ -3,6 +3,7 @@
3
3
  - [Future Plans](FuturePlans.md)
4
4
  - [E621 Search Inconsistencies](E621SearchInconsistencies.md)
5
5
  - [Artists](Artists.md)
6
+ - [Notes](Notes.md)
6
7
  - [Pools](Pools.md)
7
8
  - [Posts](Posts.md)
8
9
  - [Post Sets](PostSets.md)
@@ -3,6 +3,7 @@
3
3
  - [Future Plans](FuturePlans.md)
4
4
  - [E621 Search Inconsistencies](E621SearchInconsistencies.md)
5
5
  - [Artists](Artists.md)
6
+ - [Notes](Notes.md)
6
7
  - [Pools](Pools.md)
7
8
  - [Posts](Posts.md)
8
9
  - [Post Sets](PostSets.md)
package/Features/Users.md CHANGED
@@ -3,6 +3,7 @@
3
3
  - [Future Plans](FuturePlans.md)
4
4
  - [E621 Search Inconsistencies](E621SearchInconsistencies.md)
5
5
  - [Artists](Artists.md)
6
+ - [Notes](Notes.md)
6
7
  - [Pools](Pools.md)
7
8
  - [Posts](Posts.md)
8
9
  - [Post Sets](PostSets.md)
@@ -3,6 +3,7 @@
3
3
  - [Future Plans](FuturePlans.md)
4
4
  - [E621 Search Inconsistencies](E621SearchInconsistencies.md)
5
5
  - [Artists](Artists.md)
6
+ - [Notes](Notes.md)
6
7
  - [Pools](Pools.md)
7
8
  - [Posts](Posts.md)
8
9
  - [Post Sets](PostSets.md)
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "e621",
3
- "version": "2.1.3",
3
+ "version": "2.1.4",
4
4
  "description": "A module for interfacing with e621.",
5
5
  "main": "build/src/index.js",
6
6
  "scripts": {
@@ -1,6 +1,7 @@
1
1
  import type { Options, InstanceOptions } from "./types";
2
2
  import RequestHandler from "./util/RequestHandler";
3
3
  import Artists from "./modules/Artists";
4
+ import Notes from "./modules/Notes";
4
5
  import Pools from "./modules/Pools";
5
6
  import Posts from "./modules/Posts";
6
7
  import PostSets from "./modules/PostSets";
@@ -10,10 +11,12 @@ import Users from "./modules/Users";
10
11
  import WikiPages from "./modules/WikiPages";
11
12
  import Artist from "./structures/Artist";
12
13
  import ArtistHistory from "./structures/ArtistHistory";
14
+ import NoteHistory from "./structures/NoteHistory";
13
15
  import AuthenticatedUser from "./structures/AuthenticatedUser";
14
16
  import Pool from "./structures/Pool";
15
17
  import PoolHistory from "./structures/PoolHistory";
16
18
  import Post from "./structures/Post";
19
+ import PostApproval from "./structures/PostApproval";
17
20
  import PostHistory from "./structures/PostHistory";
18
21
  import PostSet from "./structures/PostSet";
19
22
  import Tag from "./structures/Tag";
@@ -25,6 +28,7 @@ export default class E621 {
25
28
  POST_LIMIT_PER_REQUEST: number;
26
29
  request: RequestHandler;
27
30
  artists: Artists;
31
+ notes: Notes;
28
32
  pools: Pools;
29
33
  posts: Posts;
30
34
  postSets: PostSets;
@@ -38,4 +42,4 @@ export default class E621 {
38
42
  }
39
43
  export * from "./types";
40
44
  export { APIError } from "./util/RequestHandler";
41
- export { Artist, ArtistHistory, AuthenticatedUser, Pool, PoolHistory, Post, PostHistory, PostSet, Tag, TagHistory, User, WikiPage, WikiPageHistory };
45
+ export { Artist, ArtistHistory, Notes, NoteHistory, AuthenticatedUser, Pool, PoolHistory, Post, PostApproval, PostHistory, PostSet, Tag, TagHistory, User, WikiPage, WikiPageHistory };
@@ -13,10 +13,12 @@ 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.WikiPageHistory = exports.WikiPage = exports.User = exports.TagHistory = exports.Tag = exports.PostSet = exports.PostHistory = exports.Post = exports.PoolHistory = exports.Pool = exports.AuthenticatedUser = exports.ArtistHistory = exports.Artist = exports.APIError = void 0;
16
+ exports.WikiPageHistory = exports.WikiPage = exports.User = exports.TagHistory = exports.Tag = exports.PostSet = exports.PostHistory = exports.PostApproval = exports.Post = exports.PoolHistory = exports.Pool = exports.AuthenticatedUser = exports.NoteHistory = exports.Notes = exports.ArtistHistory = exports.Artist = exports.APIError = void 0;
17
17
  const RequestHandler_1 = __importDefault(require("./util/RequestHandler"));
18
18
  // Modules
19
19
  const Artists_1 = __importDefault(require("./modules/Artists"));
20
+ const Notes_1 = __importDefault(require("./modules/Notes"));
21
+ exports.Notes = Notes_1.default;
20
22
  const Pools_1 = __importDefault(require("./modules/Pools"));
21
23
  const Posts_1 = __importDefault(require("./modules/Posts"));
22
24
  const PostSets_1 = __importDefault(require("./modules/PostSets"));
@@ -29,6 +31,8 @@ const Artist_1 = __importDefault(require("./structures/Artist"));
29
31
  exports.Artist = Artist_1.default;
30
32
  const ArtistHistory_1 = __importDefault(require("./structures/ArtistHistory"));
31
33
  exports.ArtistHistory = ArtistHistory_1.default;
34
+ const NoteHistory_1 = __importDefault(require("./structures/NoteHistory"));
35
+ exports.NoteHistory = NoteHistory_1.default;
32
36
  const AuthenticatedUser_1 = __importDefault(require("./structures/AuthenticatedUser"));
33
37
  exports.AuthenticatedUser = AuthenticatedUser_1.default;
34
38
  const Pool_1 = __importDefault(require("./structures/Pool"));
@@ -37,6 +41,8 @@ const PoolHistory_1 = __importDefault(require("./structures/PoolHistory"));
37
41
  exports.PoolHistory = PoolHistory_1.default;
38
42
  const Post_1 = __importDefault(require("./structures/Post"));
39
43
  exports.Post = Post_1.default;
44
+ const PostApproval_1 = __importDefault(require("./structures/PostApproval"));
45
+ exports.PostApproval = PostApproval_1.default;
40
46
  const PostHistory_1 = __importDefault(require("./structures/PostHistory"));
41
47
  exports.PostHistory = PostHistory_1.default;
42
48
  const PostSet_1 = __importDefault(require("./structures/PostSet"));
@@ -58,6 +64,7 @@ class E621 {
58
64
  POST_LIMIT_PER_REQUEST = 320;
59
65
  request = new RequestHandler_1.default(this);
60
66
  artists = new Artists_1.default(this);
67
+ notes = new Notes_1.default(this);
61
68
  pools = new Pools_1.default(this);
62
69
  posts = new Posts_1.default(this);
63
70
  postSets = new PostSets_1.default(this);
@@ -124,4 +131,4 @@ class E621 {
124
131
  exports.default = E621;
125
132
  var RequestHandler_2 = require("./util/RequestHandler");
126
133
  Object.defineProperty(exports, "APIError", { enumerable: true, get: function () { return RequestHandler_2.APIError; } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDJFQUFtRDtBQUNuRCxVQUFVO0FBQ1YsZ0VBQXdDO0FBQ3hDLDREQUFvQztBQUNwQyw0REFBb0M7QUFDcEMsa0VBQTBDO0FBQzFDLDBEQUFrQztBQUNsQywwRUFBa0Q7QUFDbEQsNERBQW9DO0FBQ3BDLG9FQUE0QztBQUM1QyxhQUFhO0FBQ2IsaUVBQXlDO0FBK0V4QyxpQkEvRU0sZ0JBQU0sQ0ErRU47QUE5RVAsK0VBQXVEO0FBK0V0RCx3QkEvRU0sdUJBQWEsQ0ErRU47QUE5RWQsdUZBQStEO0FBK0U5RCw0QkEvRU0sMkJBQWlCLENBK0VOO0FBOUVsQiw2REFBcUM7QUErRXBDLGVBL0VNLGNBQUksQ0ErRU47QUE5RUwsMkVBQW1EO0FBK0VsRCxzQkEvRU0scUJBQVcsQ0ErRU47QUE5RVosNkRBQXFDO0FBK0VwQyxlQS9FTSxjQUFJLENBK0VOO0FBOUVMLDJFQUFtRDtBQStFbEQsc0JBL0VNLHFCQUFXLENBK0VOO0FBOUVaLG1FQUEyQztBQStFMUMsa0JBL0VNLGlCQUFPLENBK0VOO0FBOUVSLDJEQUFtQztBQStFbEMsY0EvRU0sYUFBRyxDQStFTjtBQTlFSix5RUFBaUQ7QUErRWhELHFCQS9FTSxvQkFBVSxDQStFTjtBQTlFWCw2REFBcUM7QUErRXBDLGVBL0VNLGNBQUksQ0ErRU47QUE5RUwscUVBQTZDO0FBK0U1QyxtQkEvRU0sa0JBQVEsQ0ErRU47QUE5RVQsbUZBQTJEO0FBK0UxRCwwQkEvRU0seUJBQWUsQ0ErRU47QUE3RWhCLG1FQUFrQztBQUVsQyxxREFBcUQ7QUFDckQsaUVBQWlFO0FBQ2pFLE1BQXFCLElBQUk7SUFDeEIsc0JBQXNCLEdBQUcsR0FBRyxDQUFDO0lBQzdCLE9BQU8sR0FBRyxJQUFJLHdCQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsT0FBTyxHQUFHLElBQUksaUJBQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixLQUFLLEdBQUcsSUFBSSxlQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsS0FBSyxHQUFHLElBQUksZUFBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLFFBQVEsR0FBRyxJQUFJLGtCQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsSUFBSSxHQUFHLElBQUksY0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RCLFlBQVksR0FBRyxJQUFJLHNCQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsS0FBSyxHQUFHLElBQUksZUFBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLFNBQVMsR0FBRyxJQUFJLG1CQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDZixJQUFJLENBQWdCO0lBQzVCLE9BQU8sQ0FBa0I7SUFDbEMsWUFBWSxPQUFpQjtRQUM1QixJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFFM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZO1lBQUUsT0FBTyxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUM7UUFDN0QsT0FBTyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZO1lBQUUsT0FBTyxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNqRixJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFO1lBQ3JDLFFBQVEsT0FBTyxDQUFDLFlBQVksRUFBRTtnQkFDN0IsS0FBSyxVQUFVO29CQUFFLE9BQU8sQ0FBQyx1QkFBdUIsR0FBRyxNQUFNLENBQUM7b0JBQUMsTUFBTTtnQkFDakUsS0FBSyxXQUFXO29CQUFFLE9BQU8sQ0FBQyx1QkFBdUIsR0FBRyxPQUFPLENBQUM7b0JBQUMsTUFBTTtnQkFDbkUsS0FBSyxZQUFZLENBQUM7Z0JBQUMsS0FBSyxXQUFXO29CQUFFLE9BQU8sQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7b0JBQUMsTUFBTTtnQkFDcEYsT0FBTyxDQUFDLENBQUM7b0JBQ1IsT0FBTyxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQztvQkFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0I7d0JBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxzTkFBc04sQ0FBQyxDQUFDO2lCQUMvUTthQUNEO1NBQ0Q7UUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFO1lBQzdCLElBQUksRUFBRTtnQkFDTCxHQUFHO29CQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDL0osQ0FBQztnQkFDRCxZQUFZLEVBQUUsS0FBSztnQkFDbkIsVUFBVSxFQUFFLEtBQUs7YUFDakI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1IsS0FBSyxFQUFFO29CQUNOLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtvQkFDbEMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZO29CQUNsQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7b0JBQ2hDLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUk7b0JBQ2xDLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUk7b0JBQ2hDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxvQkFBb0IsSUFBSSxJQUFJO29CQUMxRCx1QkFBdUIsRUFBRSxPQUFPLENBQUMsdUJBQXVCLElBQUksV0FBVztvQkFDdkUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLElBQUksUUFBUSxzQkFBRyxDQUFDLE9BQU8sdUNBQXVDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxRQUFRLEdBQUcsR0FBRztvQkFDL0ksY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjLElBQUksRUFBRTtpQkFDNUM7Z0JBQ0QsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLFVBQVUsRUFBRSxLQUFLO2dCQUNqQixRQUFRLEVBQUUsS0FBSzthQUNmO1NBQ0QsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNEO0FBekRELHVCQXlEQztBQUNELDBDQUF3QjtBQUN4Qix3REFBaUQ7QUFBeEMsMEdBQUEsUUFBUSxPQUFBIn0=
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDJFQUFtRDtBQUNuRCxVQUFVO0FBQ1YsZ0VBQXdDO0FBQ3hDLDREQUFvQztBQThGbkMsZ0JBOUZNLGVBQUssQ0E4Rk47QUE3Rk4sNERBQW9DO0FBQ3BDLDREQUFvQztBQUNwQyxrRUFBMEM7QUFDMUMsMERBQWtDO0FBQ2xDLDBFQUFrRDtBQUNsRCw0REFBb0M7QUFDcEMsb0VBQTRDO0FBQzVDLGFBQWE7QUFDYixpRUFBeUM7QUFtRnhDLGlCQW5GTSxnQkFBTSxDQW1GTjtBQWxGUCwrRUFBdUQ7QUFtRnRELHdCQW5GTSx1QkFBYSxDQW1GTjtBQWpGZCwyRUFBbUQ7QUFtRmxELHNCQW5GTSxxQkFBVyxDQW1GTjtBQWxGWix1RkFBK0Q7QUFtRjlELDRCQW5GTSwyQkFBaUIsQ0FtRk47QUFsRmxCLDZEQUFxQztBQW1GcEMsZUFuRk0sY0FBSSxDQW1GTjtBQWxGTCwyRUFBbUQ7QUFtRmxELHNCQW5GTSxxQkFBVyxDQW1GTjtBQWxGWiw2REFBcUM7QUFtRnBDLGVBbkZNLGNBQUksQ0FtRk47QUFsRkwsNkVBQXFEO0FBbUZwRCx1QkFuRk0sc0JBQVksQ0FtRk47QUFsRmIsMkVBQW1EO0FBbUZsRCxzQkFuRk0scUJBQVcsQ0FtRk47QUFsRlosbUVBQTJDO0FBbUYxQyxrQkFuRk0saUJBQU8sQ0FtRk47QUFsRlIsMkRBQW1DO0FBbUZsQyxjQW5GTSxhQUFHLENBbUZOO0FBbEZKLHlFQUFpRDtBQW1GaEQscUJBbkZNLG9CQUFVLENBbUZOO0FBbEZYLDZEQUFxQztBQW1GcEMsZUFuRk0sY0FBSSxDQW1GTjtBQWxGTCxxRUFBNkM7QUFtRjVDLG1CQW5GTSxrQkFBUSxDQW1GTjtBQWxGVCxtRkFBMkQ7QUFtRjFELDBCQW5GTSx5QkFBZSxDQW1GTjtBQWpGaEIsbUVBQWtDO0FBRWxDLHFEQUFxRDtB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
@@ -0,0 +1,80 @@
1
+ import type E621 from "..";
2
+ import type { SearchNotesOptions, CreateNoteOptions, ModifyNoteOptions, SearchNoteHistoryOptions } from "../types";
3
+ import Note from "../structures/Note";
4
+ import NoteHistory from "../structures/NoteHistory";
5
+ export default class Notes {
6
+ private readonly auth;
7
+ private readonly main;
8
+ constructor(main: E621);
9
+ /**
10
+ * Get a note by its id
11
+ *
12
+ * @param {number} id - The id of the note to get
13
+ * @returns {Promise<(Note | null)>}
14
+ */
15
+ get(id: number): Promise<Note | null>;
16
+ /**
17
+ * Search for notes
18
+ *
19
+ * @param {object} [options]
20
+ * @param {string} [options.body] - narrow the results by the body of the note
21
+ * @param {string} [options.author] - narrow the results by the (name of the) creator of the note
22
+ * @param {(string | Array<string>)} [options.tags] - narrow the results by the tags of the post the note is on
23
+ * @param {(number |`${"" | "a" | "b"}${number}`)} [options.page] - page of results to get
24
+ * @param {number} [options.limit] - limit the maximum amount of results returned
25
+ * @returns {Promise<Array<Note>>}
26
+ */
27
+ search(options?: SearchNotesOptions): Promise<Note[]>;
28
+ /**
29
+ * Create a note
30
+ *
31
+ * * Requires Authentication
32
+ *
33
+ * @param {object} options
34
+ * @param {number} options.postId - the id of the post to make the note on
35
+ * @param {number} options.x - the x location of the note
36
+ * @param {number} options.y - the y location of the note
37
+ * @param {number} options.width - the width of the note
38
+ * @param {number} options.height - the height of the note
39
+ * @param {string} options.body - the body of the note
40
+ * @returns {Promise<Note>}
41
+ */
42
+ create(options: CreateNoteOptions): Promise<never[] | Note>;
43
+ /**
44
+ * modify a note
45
+ *
46
+ * * Requires Authentication
47
+ *
48
+ * @param {number} id - the id of the note to edit
49
+ * @param {object} options
50
+ * @param {number} [options.x] - the x location of the note
51
+ * @param {number} [options.y] - the y location of the note
52
+ * @param {number} [options.width] - the width of the note
53
+ * @param {number} [options.height] - the height of the note
54
+ * @param {string} [options.body] - the body of the note
55
+ * @returns {Promise<Note>}
56
+ */
57
+ modify(id: number, options: ModifyNoteOptions): Promise<Note>;
58
+ /**
59
+ * Delete a note
60
+ *
61
+ * * Requires Authentication
62
+ *
63
+ * @param {number} id - the id of the note to delete
64
+ * @returns {Promise<null>}
65
+ */
66
+ delete(id: number): Promise<null>;
67
+ /**
68
+ * Search the notes history
69
+ *
70
+ * @param {object} [options]
71
+ * @param {number} [options.noteId] - narrow the results by the note id
72
+ * @param {number} [options.postId] - narrow the results by the id of the post the note is on
73
+ * @param {string} [options.body] - narrow the results by the content
74
+ * @param {(number |`${"" | "a" | "b"}${number}`)} [options.page] - page of results to get
75
+ * @param {number} [options.limit] - limit the maximum amount of results returned
76
+ * @param
77
+ * @returns {Promise<Array<NoteHistory>>}
78
+ */
79
+ searchHistory(options?: SearchNoteHistoryOptions): Promise<NoteHistory[]>;
80
+ }
@@ -0,0 +1,179 @@
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 FormHelper_1 = __importDefault(require("../util/FormHelper"));
7
+ const RequestHandler_1 = require("../util/RequestHandler");
8
+ const Note_1 = __importDefault(require("../structures/Note"));
9
+ const NoteHistory_1 = __importDefault(require("../structures/NoteHistory"));
10
+ class Notes {
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 a note by its id
32
+ *
33
+ * @param {number} id - The id of the note to get
34
+ * @returns {Promise<(Note | null)>}
35
+ */
36
+ async get(id) {
37
+ const res = await this.main.request.get(`/notes/${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 Note_1.default(this.main, res);
43
+ }
44
+ /**
45
+ * Search for notes
46
+ *
47
+ * @param {object} [options]
48
+ * @param {string} [options.body] - narrow the results by the body of the note
49
+ * @param {string} [options.author] - narrow the results by the (name of the) creator of the note
50
+ * @param {(string | Array<string>)} [options.tags] - narrow the results by the tags of the post the note is on
51
+ * @param {(number |`${"" | "a" | "b"}${number}`)} [options.page] - page of results to get
52
+ * @param {number} [options.limit] - limit the maximum amount of results returned
53
+ * @returns {Promise<Array<Note>>}
54
+ */
55
+ async search(options) {
56
+ options = options ?? {};
57
+ const qs = new FormHelper_1.default();
58
+ if (typeof options.body === "string")
59
+ qs.add("search[body_matches]", options.body);
60
+ if (typeof options.author === "string")
61
+ qs.add("search[creator_name]", options.author);
62
+ if (typeof options.tags === "string")
63
+ qs.add("search[post_tags_match]", options.tags);
64
+ if (Array.isArray(options.tags) && options.tags.length > 0)
65
+ qs.add("search[post_tags_match]", options.tags.join(" "));
66
+ if (typeof options.page !== "undefined")
67
+ qs.add("page", options.page);
68
+ if (typeof options.limit === "number")
69
+ qs.add("limit", options.limit);
70
+ const res = await this.main.request.get(`/notes.json?${qs.build()}`);
71
+ return res.map(info => new Note_1.default(this.main, info));
72
+ }
73
+ /**
74
+ * Create a note
75
+ *
76
+ * * Requires Authentication
77
+ *
78
+ * @param {object} options
79
+ * @param {number} options.postId - the id of the post to make the note on
80
+ * @param {number} options.x - the x location of the note
81
+ * @param {number} options.y - the y location of the note
82
+ * @param {number} options.width - the width of the note
83
+ * @param {number} options.height - the height of the note
84
+ * @param {string} options.body - the body of the note
85
+ * @returns {Promise<Note>}
86
+ */
87
+ async create(options) {
88
+ this.main.request.authCheck.call(this, "Notes#create");
89
+ if (!options)
90
+ throw new Error("options is required in Notes#create");
91
+ const qs = new FormHelper_1.default()
92
+ .add("note[post_id]", options.postId)
93
+ .add("note[x]", options.x)
94
+ .add("note[y]", options.y)
95
+ .add("note[width]", options.width)
96
+ .add("note[height]", options.height)
97
+ .add("note[body]", options.body);
98
+ const res = await this.main.request.post("/notes.json", qs.build());
99
+ if (res && !Array.isArray(res) && "notes" in res)
100
+ return [];
101
+ return new Note_1.default(this.main, res);
102
+ }
103
+ /**
104
+ * modify a note
105
+ *
106
+ * * Requires Authentication
107
+ *
108
+ * @param {number} id - the id of the note to edit
109
+ * @param {object} options
110
+ * @param {number} [options.x] - the x location of the note
111
+ * @param {number} [options.y] - the y location of the note
112
+ * @param {number} [options.width] - the width of the note
113
+ * @param {number} [options.height] - the height of the note
114
+ * @param {string} [options.body] - the body of the note
115
+ * @returns {Promise<Note>}
116
+ */
117
+ async modify(id, options) {
118
+ this.main.request.authCheck.call(this, "Notes#modify");
119
+ if (!options)
120
+ throw new Error("options is required in Notes#modify");
121
+ const qs = new FormHelper_1.default();
122
+ if (typeof options.x === "number")
123
+ qs.add("note[x]", options.x);
124
+ if (typeof options.y === "number")
125
+ qs.add("note[y]", options.y);
126
+ if (typeof options.width === "number")
127
+ qs.add("note[width]", options.width);
128
+ if (typeof options.height === "number")
129
+ qs.add("note[height]", options.height);
130
+ if (typeof options.body === "string")
131
+ qs.add("note[body]", options.body);
132
+ const res = await this.main.request.put(`/notes/${id}.json`, qs.build());
133
+ return new Note_1.default(this.main, res);
134
+ }
135
+ /**
136
+ * Delete a note
137
+ *
138
+ * * Requires Authentication
139
+ *
140
+ * @param {number} id - the id of the note to delete
141
+ * @returns {Promise<null>}
142
+ */
143
+ async delete(id) {
144
+ this.main.request.authCheck.call(this, "Notes#delete");
145
+ return this.main.request.delete(`/notes/${id}.json`);
146
+ }
147
+ /**
148
+ * Search the notes history
149
+ *
150
+ * @param {object} [options]
151
+ * @param {number} [options.noteId] - narrow the results by the note id
152
+ * @param {number} [options.postId] - narrow the results by the id of the post the note is on
153
+ * @param {string} [options.body] - narrow the results by the content
154
+ * @param {(number |`${"" | "a" | "b"}${number}`)} [options.page] - page of results to get
155
+ * @param {number} [options.limit] - limit the maximum amount of results returned
156
+ * @param
157
+ * @returns {Promise<Array<NoteHistory>>}
158
+ */
159
+ async searchHistory(options) {
160
+ options = options ?? {};
161
+ const qs = new FormHelper_1.default();
162
+ if (typeof options.noteId === "number")
163
+ qs.add("search[note_id]", options.noteId);
164
+ if (typeof options.postId === "number")
165
+ qs.add("search[post_id]", options.postId);
166
+ if (typeof options.body === "string")
167
+ qs.add("search[body_matches]", options.body);
168
+ if (typeof options.page !== "undefined")
169
+ qs.add("page", options.page);
170
+ if (typeof options.limit === "number")
171
+ qs.add("limit", options.limit);
172
+ const res = await this.main.request.get(`/note_versions.json?${qs.build()}`);
173
+ if (res && !Array.isArray(res) && "note_versions" in res)
174
+ return [];
175
+ return res.map(info => new NoteHistory_1.default(this.main, info));
176
+ }
177
+ }
178
+ exports.default = Notes;
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm90ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kdWxlcy9Ob3Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVNBLG9FQUE0QztBQUM1QywyREFBa0Q7QUFDbEQsOERBQXNDO0FBQ3RDLDRFQUFvRDtBQUVwRCxNQUFxQixLQUFLO0lBQ1IsSUFBSSxDQUFnQjtJQUNwQixJQUFJLENBQU87SUFDNUIsWUFBWSxJQUFVO1FBQ3JCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUU7WUFDN0IsSUFBSSxFQUFFO2dCQUNMLEdBQUc7b0JBQ0YsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDbkwsQ0FBQztnQkFDRCxZQUFZLEVBQUUsS0FBSztnQkFDbkIsVUFBVSxFQUFFLEtBQUs7YUFDakI7WUFDRCxJQUFJLEVBQUU7Z0JBQ0wsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLFVBQVUsRUFBRSxLQUFLO2dCQUNqQixRQUFRLEVBQUUsS0FBSzthQUNmO1NBQ0QsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFVO1FBQ25CLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFpQixVQUFVLEVBQUUsT0FBTyxD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
@@ -0,0 +1,32 @@
1
+ import type { NoteProperties } from "../types";
2
+ import type E621 from "..";
3
+ import { Post, User } from "..";
4
+ export default class Note implements NoteProperties {
5
+ private main;
6
+ id: number;
7
+ post_id: number;
8
+ created_at: string;
9
+ updated_at: string;
10
+ creator_id: number | null;
11
+ creator_name: string;
12
+ x: number;
13
+ y: number;
14
+ width: number;
15
+ height: number;
16
+ version: number;
17
+ is_active: boolean;
18
+ body: string;
19
+ constructor(main: E621, info: NoteProperties);
20
+ /**
21
+ * Get the creator of this note
22
+ *
23
+ * @returns {Promise<User | null>}
24
+ */
25
+ getCreator(): Promise<User | null>;
26
+ /**
27
+ * Get the post this note is on
28
+ *
29
+ * @returns {Promise<Post | null>}
30
+ */
31
+ getPost(): Promise<Post | null>;
32
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class Note {
4
+ main;
5
+ id;
6
+ post_id;
7
+ created_at;
8
+ updated_at;
9
+ creator_id;
10
+ creator_name;
11
+ x;
12
+ y;
13
+ width;
14
+ height;
15
+ version;
16
+ is_active;
17
+ body;
18
+ constructor(main, info) {
19
+ Object.assign(this, info);
20
+ Object.defineProperty(this, "main", {
21
+ value: main,
22
+ configurable: false,
23
+ enumerable: false,
24
+ writable: false
25
+ });
26
+ }
27
+ /**
28
+ * Get the creator of this note
29
+ *
30
+ * @returns {Promise<User | null>}
31
+ */
32
+ async getCreator() { return this.creator_id === null ? null : this.main.users.get.call(this.main.users, this.creator_id); }
33
+ /**
34
+ * Get the post this note is on
35
+ *
36
+ * @returns {Promise<Post | null>}
37
+ */
38
+ async getPost() { return this.main.posts.get.call(this.main.posts, this.post_id); }
39
+ }
40
+ exports.default = Note;
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm90ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdHJ1Y3R1cmVzL05vdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxNQUFxQixJQUFJO0lBQ2hCLElBQUksQ0FBTztJQUNuQixFQUFFLENBQVM7SUFDWCxPQUFPLENBQVM7SUFDaEIsVUFBVSxDQUFTO0lBQ25CLFVBQVUsQ0FBUztJQUNuQixVQUFVLENBQWdCO0lBQzFCLFlBQVksQ0FBUztJQUNyQixDQUFDLENBQVM7SUFDVixDQUFDLENBQVM7SUFDVixLQUFLLENBQVM7SUFDZCxNQUFNLENBQVM7SUFDZixPQUFPLENBQVM7SUFDaEIsU0FBUyxDQUFVO0lBQ25CLElBQUksQ0FBUztJQUNiLFlBQVksSUFBVSxFQUFFLElBQW9CO1FBQzNDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFCLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUNuQyxLQUFLLEVBQUUsSUFBSTtZQUNYLFlBQVksRUFBRSxLQUFLO1lBQ25CLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFFBQVEsRUFBRSxLQUFLO1NBQ2YsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsVUFBVSxLQUFLLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTNIOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsT0FBTyxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ25GO0FBdENELHVCQXNDQyJ9
@@ -0,0 +1,38 @@
1
+ import type { NoteHistoryProperties } from "../types";
2
+ import type E621 from "..";
3
+ import { Post, User } from "..";
4
+ export default class NoteHistory implements NoteHistoryProperties {
5
+ private main;
6
+ id: number;
7
+ note_id: number;
8
+ post_id: number;
9
+ created_at: string;
10
+ updated_at: string;
11
+ updater_id: number | null;
12
+ x: number;
13
+ y: number;
14
+ width: number;
15
+ height: number;
16
+ body: string;
17
+ version: number;
18
+ is_active: boolean;
19
+ constructor(main: E621, info: NoteHistoryProperties);
20
+ /**
21
+ * Get the updater for this history
22
+ *
23
+ * @returns {Promise<User | null>}
24
+ */
25
+ getUpdater(): Promise<User | null>;
26
+ /**
27
+ * Get the post for this history
28
+ *
29
+ * @returns {Promise<Post | null>}
30
+ */
31
+ getPost(): Promise<Post | null>;
32
+ /**
33
+ * Get the post for this history
34
+ *
35
+ * @returns {Promise<Note | null>}
36
+ */
37
+ getNote(): Promise<Post | null>;
38
+ }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class NoteHistory {
4
+ main;
5
+ id;
6
+ note_id;
7
+ post_id;
8
+ created_at;
9
+ updated_at;
10
+ updater_id;
11
+ x;
12
+ y;
13
+ width;
14
+ height;
15
+ body;
16
+ version;
17
+ is_active;
18
+ constructor(main, info) {
19
+ Object.assign(this, info);
20
+ Object.defineProperty(this, "main", {
21
+ value: main,
22
+ configurable: false,
23
+ enumerable: false,
24
+ writable: false
25
+ });
26
+ }
27
+ /**
28
+ * Get the updater for this history
29
+ *
30
+ * @returns {Promise<User | null>}
31
+ */
32
+ async getUpdater() { return this.updater_id === null ? null : this.main.users.get.call(this.main.users, this.updater_id); }
33
+ /**
34
+ * Get the post for this history
35
+ *
36
+ * @returns {Promise<Post | null>}
37
+ */
38
+ async getPost() { return this.main.posts.get.call(this.main.posts, this.post_id); }
39
+ /**
40
+ * Get the post for this history
41
+ *
42
+ * @returns {Promise<Note | null>}
43
+ */
44
+ async getNote() { return this.main.posts.get.call(this.main.posts, this.note_id); }
45
+ }
46
+ exports.default = NoteHistory;
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm90ZUhpc3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RydWN0dXJlcy9Ob3RlSGlzdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLE1BQXFCLFdBQVc7SUFDdkIsSUFBSSxDQUFPO0lBQ25CLEVBQUUsQ0FBUztJQUNYLE9BQU8sQ0FBUztJQUNoQixPQUFPLENBQVM7SUFDaEIsVUFBVSxDQUFTO0lBQ25CLFVBQVUsQ0FBUztJQUNuQixVQUFVLENBQWdCO0lBQzFCLENBQUMsQ0FBUztJQUNWLENBQUMsQ0FBUztJQUNWLEtBQUssQ0FBUztJQUNkLE1BQU0sQ0FBUztJQUNmLElBQUksQ0FBUztJQUNiLE9BQU8sQ0FBUztJQUNoQixTQUFTLENBQVU7SUFDbkIsWUFBWSxJQUFVLEVBQUUsSUFBMkI7UUFDbEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ25DLEtBQUssRUFBRSxJQUFJO1lBQ1gsWUFBWSxFQUFFLEtBQUs7WUFDbkIsVUFBVSxFQUFFLEtBQUs7WUFDakIsUUFBUSxFQUFFLEtBQUs7U0FDZixDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxVQUFVLEtBQUssT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFM0g7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxPQUFPLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFbkY7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxPQUFPLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDbkY7QUE3Q0QsOEJBNkNDIn0=
@@ -85,6 +85,7 @@ export interface GenericSearchOptions {
85
85
  }
86
86
 
87
87
  export * from "./artists";
88
+ export * from "./notes";
88
89
  export * from "./pools";
89
90
  export * from "./post_sets";
90
91
  export * from "./posts";
@@ -0,0 +1,63 @@
1
+ import type { GenericSearchOptions } from ".";
2
+
3
+ export interface NoteProperties {
4
+ id: number;
5
+ post_id: number;
6
+ created_at: string;
7
+ updated_at: string;
8
+ creator_id: number | null;
9
+ creator_name: string;
10
+ x: number;
11
+ y: number;
12
+ width: number;
13
+ height: number;
14
+ version: number;
15
+ is_active: boolean;
16
+ body: string;
17
+ }
18
+
19
+ export interface SearchNotesOptions extends GenericSearchOptions {
20
+ body?: string;
21
+ author?: string;
22
+ tags?: string | Array<string>;
23
+ }
24
+
25
+ // POST /notes/:id.json
26
+ export interface CreateNoteOptions {
27
+ postId: number;
28
+ x: number;
29
+ y: number;
30
+ width: number;
31
+ height: number;
32
+ body: string;
33
+ }
34
+
35
+ export interface ModifyNoteOptions {
36
+ x?: number;
37
+ y?: number;
38
+ width?: number;
39
+ height?: number;
40
+ body?: string;
41
+ }
42
+
43
+ export interface NoteHistoryProperties {
44
+ id: number;
45
+ note_id: number;
46
+ post_id: number;
47
+ created_at: string;
48
+ updated_at: string;
49
+ updater_id: number | null;
50
+ x: number;
51
+ y: number;
52
+ width: number;
53
+ height: number;
54
+ body: string;
55
+ version: number;
56
+ is_active: boolean;
57
+ }
58
+
59
+ export interface SearchNoteHistoryOptions extends GenericSearchOptions {
60
+ noteId?: number;
61
+ postId?: number;
62
+ body?: string;
63
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "e621",
3
- "version": "2.1.3",
3
+ "version": "2.1.4",
4
4
  "description": "A module for interfacing with e621.",
5
5
  "main": "build/src/index.js",
6
6
  "scripts": {