e621 2.0.0-dev.6 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/.node-version +1 -0
  2. package/README.md +64 -56
  3. package/build/package.json +3 -2
  4. package/build/src/index.d.ts +2 -0
  5. package/build/src/index.js +24 -11
  6. package/build/src/modules/Pools.d.ts +2 -2
  7. package/build/src/modules/Pools.js +4 -4
  8. package/build/src/modules/PostSets.d.ts +1 -1
  9. package/build/src/modules/PostSets.js +3 -3
  10. package/build/src/modules/Posts.d.ts +38 -2
  11. package/build/src/modules/Posts.js +85 -3
  12. package/build/src/modules/UserFeedback.d.ts +1 -0
  13. package/build/src/modules/UserFeedback.js +3 -2
  14. package/build/src/modules/Users.d.ts +1 -0
  15. package/build/src/modules/Users.js +3 -2
  16. package/build/src/modules/WikiPages.d.ts +99 -0
  17. package/build/src/modules/WikiPages.js +208 -0
  18. package/build/src/structures/PoolHistory.d.ts +1 -8
  19. package/build/src/structures/PoolHistory.js +2 -8
  20. package/build/src/structures/Post.d.ts +6 -0
  21. package/build/src/structures/Post.js +17 -1
  22. package/build/src/structures/PostHistory.d.ts +52 -0
  23. package/build/src/structures/PostHistory.js +93 -0
  24. package/build/src/structures/WikiPage.d.ts +16 -0
  25. package/build/src/structures/WikiPage.js +26 -0
  26. package/build/src/structures/WikiPageHistory.d.ts +37 -0
  27. package/build/src/structures/WikiPageHistory.js +49 -0
  28. package/build/src/types/index.d.ts +21 -28
  29. package/build/src/types/pools.d.ts +0 -0
  30. package/build/src/types/post_sets.d.ts +0 -0
  31. package/build/src/types/posts.d.ts +46 -1
  32. package/build/src/types/user_feedback.d.ts +0 -0
  33. package/build/src/types/users.d.ts +0 -0
  34. package/build/src/types/wiki_pages.d.ts +65 -0
  35. package/build/src/util/RequestHandler.d.ts +3 -0
  36. package/build/src/util/RequestHandler.js +27 -10
  37. package/package.json +3 -2
@@ -1,4 +1,3 @@
1
- import type Post from "./Post";
2
1
  import type User from "./User";
3
2
  import type Pool from "./Pool";
4
3
  import type { PoolCategory, PoolHistoryProperties } from "../types";
@@ -21,12 +20,6 @@ export default class PoolHistory implements PoolHistoryProperties {
21
20
  category: PoolCategory;
22
21
  version: number;
23
22
  constructor(main: E621, info: PoolHistoryProperties);
24
- /**
25
- * Get the post object for this history
26
- *
27
- * @returns {Promise<Post | null>}
28
- */
29
- getPost(): Promise<Post | null>;
30
23
  /**
31
24
  * Get the updater for this history
32
25
  *
@@ -40,7 +33,7 @@ export default class PoolHistory implements PoolHistoryProperties {
40
33
  */
41
34
  getPool(): Promise<Pool | null>;
42
35
  /**
43
- * Revert the post to this version
36
+ * Revert the pool to this version
44
37
  *
45
38
  * * Requires Authentication
46
39
  *
@@ -26,12 +26,6 @@ class PoolHistory {
26
26
  writable: false
27
27
  });
28
28
  }
29
- /**
30
- * Get the post object for this history
31
- *
32
- * @returns {Promise<Post | null>}
33
- */
34
- async getPost() { return this.main.posts.get(this.id); }
35
29
  /**
36
30
  * Get the updater for this history
37
31
  *
@@ -45,7 +39,7 @@ class PoolHistory {
45
39
  */
46
40
  async getPool() { return this.main.pools.get(this.pool_id); }
47
41
  /**
48
- * Revert the post to this version
42
+ * Revert the pool to this version
49
43
  *
50
44
  * * Requires Authentication
51
45
  *
@@ -56,4 +50,4 @@ class PoolHistory {
56
50
  }
57
51
  }
58
52
  exports.default = PoolHistory;
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9vbEhpc3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RydWN0dXJlcy9Qb29sSGlzdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU1BLE1BQXFCLFdBQVc7SUFDdkIsSUFBSSxDQUFPO0lBQ25CLEVBQUUsQ0FBUztJQUNYLE9BQU8sQ0FBUztJQUNoQixRQUFRLENBQWdCO0lBQ3hCLGNBQWMsQ0FBZ0I7SUFDOUIsZ0JBQWdCLENBQWdCO0lBQ2hDLFVBQVUsQ0FBUztJQUNuQixXQUFXLENBQVM7SUFDcEIsbUJBQW1CLENBQVU7SUFDN0IsSUFBSSxDQUFTO0lBQ2IsVUFBVSxDQUFTO0lBQ25CLFVBQVUsQ0FBUztJQUNuQixTQUFTLENBQVU7SUFDbkIsVUFBVSxDQUFVO0lBQ3BCLFFBQVEsQ0FBZTtJQUN2QixPQUFPLENBQVM7SUFDaEIsWUFBWSxJQUFVLEVBQUUsSUFBMkI7UUFDbEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ25DLEtBQUssRUFBRSxJQUFJO1lBQ1gsWUFBWSxFQUFFLEtBQUs7WUFDbkIsVUFBVSxFQUFFLEtBQUs7WUFDakIsUUFBUSxFQUFFLEtBQUs7U0FDZixDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxPQUFPLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV4RDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLFVBQVUsS0FBSyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRW5FOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsT0FBTyxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFHN0Q7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsUUFBUTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7Q0FDRDtBQTNERCw4QkEyREMifQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9vbEhpc3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RydWN0dXJlcy9Qb29sSGlzdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLE1BQXFCLFdBQVc7SUFDdkIsSUFBSSxDQUFPO0lBQ25CLEVBQUUsQ0FBUztJQUNYLE9BQU8sQ0FBUztJQUNoQixRQUFRLENBQWdCO0lBQ3hCLGNBQWMsQ0FBZ0I7SUFDOUIsZ0JBQWdCLENBQWdCO0lBQ2hDLFVBQVUsQ0FBUztJQUNuQixXQUFXLENBQVM7SUFDcEIsbUJBQW1CLENBQVU7SUFDN0IsSUFBSSxDQUFTO0lBQ2IsVUFBVSxDQUFTO0lBQ25CLFVBQVUsQ0FBUztJQUNuQixTQUFTLENBQVU7SUFDbkIsVUFBVSxDQUFVO0lBQ3BCLFFBQVEsQ0FBZTtJQUN2QixPQUFPLENBQVM7SUFDaEIsWUFBWSxJQUFVLEVBQUUsSUFBMkI7UUFDbEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ25DLEtBQUssRUFBRSxJQUFJO1lBQ1gsWUFBWSxFQUFFLEtBQUs7WUFDbkIsVUFBVSxFQUFFLEtBQUs7WUFDakIsUUFBUSxFQUFFLEtBQUs7U0FDZixDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxVQUFVLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVuRTs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sS0FBSyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRzdEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLFFBQVE7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNwRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDO0NBQ0Q7QUFwREQsOEJBb0RDIn0=
@@ -138,4 +138,10 @@ export default class Post implements PostProperties {
138
138
  * @returns {Promise<PostVoteResult>}
139
139
  */
140
140
  vote(up: boolean): Promise<PostVoteResult>;
141
+ /**
142
+ * Remove tags from this post with implication checks (this WILL fire a request for EVERY SINGLE TAG specified.)
143
+ *
144
+ * @param tags
145
+ */
146
+ removeTagsWithImplicationChecks(tags: Array<string> | string): Promise<void>;
141
147
  }
@@ -33,6 +33,13 @@ class Post {
33
33
  enumerable: false,
34
34
  writable: false
35
35
  });
36
+ // blacklisted or deleted
37
+ if (this.file.url === null)
38
+ this.file.url = this.flags.deleted ? this.main.request.deletedImageURL : this.main.request.constructURL(this.file.md5, "original", this.file.ext);
39
+ if (this.preview.url === null)
40
+ this.preview.url = this.flags.deleted ? this.main.request.deletedImageURL : this.main.request.constructURL(this.file.md5, "preview", this.file.ext);
41
+ if (this.sample.has && this.sample.url === null)
42
+ this.sample.url = this.flags.deleted ? this.main.request.deletedImageURL : this.main.request.constructURL(this.file.md5, "sample", this.file.ext);
36
43
  }
37
44
  /**
38
45
  * Get the user object for creator of this post
@@ -134,6 +141,15 @@ class Post {
134
141
  this.main.request.authCheck("Post#vote");
135
142
  return this.main.posts.vote(this.id, up);
136
143
  }
144
+ /**
145
+ * Remove tags from this post with implication checks (this WILL fire a request for EVERY SINGLE TAG specified.)
146
+ *
147
+ * @param tags
148
+ */
149
+ async removeTagsWithImplicationChecks(tags) {
150
+ if (!Array.isArray(tags))
151
+ tags = tags.split(" ");
152
+ }
137
153
  }
138
154
  exports.default = Post;
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdHJ1Y3R1cmVzL1Bvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSxNQUFxQixJQUFJO0lBQ2hCLElBQUksQ0FBTztJQUNuQixFQUFFLENBQVM7SUFDWCxVQUFVLENBQVM7SUFDbkIsVUFBVSxDQUFTO0lBQ25CLElBQUksQ0FPRjtJQUNGLE9BQU8sQ0FJTDtJQUNGLE1BQU0sQ0FZSjtJQUNGLEtBQUssQ0FBMEM7SUFDL0MsSUFBSSxDQUFvSDtJQUN4SCxXQUFXLENBQWdCO0lBQzNCLFVBQVUsQ0FBUztJQUNuQixLQUFLLENBQXlHO0lBQzlHLE1BQU0sQ0FBVTtJQUNoQixTQUFTLENBQVM7SUFDbEIsT0FBTyxDQUFnQjtJQUN2QixLQUFLLENBQWdCO0lBQ3JCLGFBQWEsQ0FLWDtJQUNGLFdBQVcsQ0FBZ0I7SUFDM0IsV0FBVyxDQUFTO0lBQ3BCLFdBQVcsQ0FBUztJQUNwQixhQUFhLENBQVM7SUFDdEIsWUFBWSxDQUFVO0lBQ3RCLFNBQVMsQ0FBVTtJQUNuQixRQUFRLENBQWdCO0lBQ3hCLFlBQVksSUFBVSxFQUFFLElBQW9CO1FBQzNDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFCLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUNuQyxLQUFLLEVBQUUsSUFBSTtZQUNYLFlBQVksRUFBRSxLQUFLO1lBQ25CLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFFBQVEsRUFBRSxLQUFLO1NBQ2YsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsV0FBVyxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFckU7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxXQUFXLEtBQUssT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV4Rzs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFVO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM3QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFVO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQVU7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDOUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQUMsRUFBVTtRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNuRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F1Qkc7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQTBCO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFXO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRDtBQTFLRCx1QkEwS0MifQ==
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdHJ1Y3R1cmVzL1Bvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSxNQUFxQixJQUFJO0lBQ2hCLElBQUksQ0FBTztJQUNuQixFQUFFLENBQVM7SUFDWCxVQUFVLENBQVM7SUFDbkIsVUFBVSxDQUFTO0lBQ25CLElBQUksQ0FPRjtJQUNGLE9BQU8sQ0FJTDtJQUNGLE1BQU0sQ0FZSjtJQUNGLEtBQUssQ0FBMEM7SUFDL0MsSUFBSSxDQUFvSDtJQUN4SCxXQUFXLENBQWdCO0lBQzNCLFVBQVUsQ0FBUztJQUNuQixLQUFLLENBQXlHO0lBQzlHLE1BQU0sQ0FBVTtJQUNoQixTQUFTLENBQVM7SUFDbEIsT0FBTyxDQUFnQjtJQUN2QixLQUFLLENBQWdCO0lBQ3JCLGFBQWEsQ0FLWDtJQUNGLFdBQVcsQ0FBZ0I7SUFDM0IsV0FBVyxDQUFTO0lBQ3BCLFdBQVcsQ0FBUztJQUNwQixhQUFhLENBQVM7SUFDdEIsWUFBWSxDQUFVO0lBQ3RCLFNBQVMsQ0FBVTtJQUNuQixRQUFRLENBQWdCO0lBQ3hCLFlBQVksSUFBVSxFQUFFLElBQW9CO1FBQzNDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFCLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUNuQyxLQUFLLEVBQUUsSUFBSTtZQUNYLFlBQVksRUFBRSxLQUFLO1lBQ25CLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFFBQVEsRUFBRSxLQUFLO1NBQ2YsQ0FBQyxDQUFDO1FBRUgseUJBQXlCO1FBQ3pCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssSUFBSTtZQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8s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
@@ -0,0 +1,52 @@
1
+ import type User from "./User";
2
+ import type Post from "./Post";
3
+ import type { PostHistoryProperties, Ratings } from "../types";
4
+ import type E621 from "..";
5
+ export default class PostHistory implements PostHistoryProperties {
6
+ private main;
7
+ id: number;
8
+ post_id: number;
9
+ tags: string;
10
+ updater_id: number;
11
+ updater_name: string;
12
+ updated_at: string;
13
+ rating: Ratings;
14
+ parent_id: number | null;
15
+ source: string;
16
+ description: string;
17
+ reason: string;
18
+ locked_tags: string | null;
19
+ added_tags: Array<string>;
20
+ removed_tags: Array<string>;
21
+ added_locked_tags: Array<string>;
22
+ removed_locked_tags: Array<string>;
23
+ rating_changed: boolean;
24
+ parent_changed: boolean;
25
+ source_changed: boolean;
26
+ description_changed: boolean;
27
+ version: number;
28
+ obsolete_added_tags: string;
29
+ obsolete_removed_tags: string;
30
+ unchanged_tags: string;
31
+ extra: Readonly<Record<"tags" | "lockedTags" | "addedTags" | "removedTags" | "addedLockedTags" | "removedLockedTags" | "obsoleteAddedTags" | "obsoleteRemovedTags" | "unchangedTags" | "sources" | "addedSources" | "removedSources", Array<string>> & Record<"oldRating" | "newRating", Ratings | null>>;
32
+ constructor(main: E621, info: PostHistoryProperties);
33
+ /**
34
+ * Get the updater for this history
35
+ *
36
+ * @returns {Promise<User | null>}
37
+ */
38
+ getUpdater(): Promise<User | null>;
39
+ /**
40
+ * Get the post object for this history
41
+ *
42
+ * @returns {Promise<Post | null>}
43
+ */
44
+ getPost(): Promise<Post | null>;
45
+ /**
46
+ * Revert the post to this version
47
+ *
48
+ * * Requires Authentication
49
+ *
50
+ */
51
+ revertTo(): Promise<null>;
52
+ }
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class PostHistory {
4
+ main;
5
+ id;
6
+ post_id;
7
+ tags;
8
+ updater_id;
9
+ updater_name;
10
+ updated_at;
11
+ rating;
12
+ parent_id;
13
+ source;
14
+ description;
15
+ reason;
16
+ locked_tags;
17
+ added_tags;
18
+ removed_tags;
19
+ added_locked_tags;
20
+ removed_locked_tags;
21
+ rating_changed;
22
+ parent_changed;
23
+ source_changed;
24
+ description_changed;
25
+ version;
26
+ obsolete_added_tags;
27
+ obsolete_removed_tags;
28
+ unchanged_tags;
29
+ extra;
30
+ constructor(main, info) {
31
+ Object.assign(this, info);
32
+ Object.defineProperty(this, "main", {
33
+ value: main,
34
+ configurable: false,
35
+ enumerable: false,
36
+ writable: false
37
+ });
38
+ this.extra = {
39
+ get tags() { return info.tags.split(" "); },
40
+ get lockedTags() { return (info.locked_tags || "").split(" "); },
41
+ get addedTags() { return info.added_tags; },
42
+ get removedTags() { return info.removed_tags; },
43
+ get addedLockedTags() { return info.added_locked_tags; },
44
+ get removedLockedTags() { return info.added_locked_tags; },
45
+ get obsoleteAddedTags() { return info.obsolete_added_tags.split(" "); },
46
+ get obsoleteRemovedTags() { return info.obsolete_removed_tags.split(" "); },
47
+ get unchangedTags() { return info.unchanged_tags.split(" "); },
48
+ get sources() { return info.source.split("\n").filter(Boolean); },
49
+ // convinence method
50
+ get oldRating() {
51
+ if (!info.rating_changed)
52
+ return null;
53
+ const r = this.removedTags.find(t => t.startsWith("rating:"));
54
+ return !r ? null : r.replace(/rating:/, "");
55
+ },
56
+ // convinence method
57
+ get newRating() {
58
+ if (!info.rating_changed)
59
+ return null;
60
+ const r = this.addedTags.find(t => t.startsWith("rating:"));
61
+ return !r ? null : r.replace(/rating:/, "");
62
+ },
63
+ // convinence method
64
+ get addedSources() { return (this.addedTags.find(t => t.startsWith("source:"))?.replace(/source:/, "") ?? "").split("\n"); },
65
+ // convinence method
66
+ get removedSources() { return (this.removedTags.find(t => t.startsWith("source:"))?.replace(/source:/, "") ?? "").split("\n"); }
67
+ };
68
+ }
69
+ /**
70
+ * Get the updater for this history
71
+ *
72
+ * @returns {Promise<User | null>}
73
+ */
74
+ async getUpdater() { return this.main.users.get(this.updater_id); }
75
+ /**
76
+ * Get the post object for this history
77
+ *
78
+ * @returns {Promise<Post | null>}
79
+ */
80
+ async getPost() { return this.main.posts.get(this.post_id); }
81
+ /**
82
+ * Revert the post to this version
83
+ *
84
+ * * Requires Authentication
85
+ *
86
+ */
87
+ async revertTo() {
88
+ this.main.request.authCheck("PostHistory#revertTo");
89
+ return this.main.posts.revert(this.post_id, this.id);
90
+ }
91
+ }
92
+ exports.default = PostHistory;
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9zdEhpc3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RydWN0dXJlcy9Qb3N0SGlzdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLE1BQXFCLFdBQVc7SUFDdkIsSUFBSSxDQUFPO0lBQ25CLEVBQUUsQ0FBUztJQUNYLE9BQU8sQ0FBUztJQUNoQixJQUFJLENBQVM7SUFDYixVQUFVLENBQVM7SUFDbkIsWUFBWSxDQUFTO0lBQ3JCLFVBQVUsQ0FBUztJQUNuQixNQUFNLENBQVU7SUFDaEIsU0FBUyxDQUFnQjtJQUN6QixNQUFNLENBQVM7SUFDZixXQUFXLENBQVM7SUFDcEIsTUFBTSxDQUFTO0lBQ2YsV0FBVyxDQUFnQjtJQUMzQixVQUFVLENBQWdCO0lBQzFCLFlBQVksQ0FBZ0I7SUFDNUIsaUJBQWlCLENBQWdCO0lBQ2pDLG1CQUFtQixDQUFnQjtJQUNuQyxjQUFjLENBQVU7SUFDeEIsY0FBYyxDQUFVO0lBQ3hCLGNBQWMsQ0FBVTtJQUN4QixtQkFBbUIsQ0FBVTtJQUM3QixPQUFPLENBQVM7SUFDaEIsbUJBQW1CLENBQVM7SUFDNUIscUJBQXFCLENBQVM7SUFDOUIsY0FBYyxDQUFTO0lBQ3ZCLEtBQUssQ0FLK0Q7SUFDcEUsWUFBWSxJQUFVLEVBQUUsSUFBMkI7UUFDbEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ25DLEtBQUssRUFBRSxJQUFJO1lBQ1gsWUFBWSxFQUFFLEtBQUs7WUFDbkIsVUFBVSxFQUFFLEtBQUs7WUFDakIsUUFBUSxFQUFFLEtBQUs7U0FDZixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1osSUFBSSxJQUFJLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENB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
@@ -0,0 +1,16 @@
1
+ import type { WikiPageProperties } from "../types";
2
+ import type E621 from "..";
3
+ export default class Pool implements WikiPageProperties {
4
+ id: number;
5
+ creator_id: number;
6
+ creator_name: string;
7
+ category_name: number;
8
+ body: string;
9
+ is_locked: boolean;
10
+ created_at: string;
11
+ updated_at: string;
12
+ updater_id: number;
13
+ other_names: Array<string>;
14
+ is_deleted: boolean;
15
+ constructor(main: E621, info: WikiPageProperties);
16
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class Pool {
4
+ id;
5
+ creator_id;
6
+ creator_name;
7
+ category_name;
8
+ body;
9
+ is_locked;
10
+ created_at;
11
+ updated_at;
12
+ updater_id;
13
+ other_names;
14
+ is_deleted;
15
+ constructor(main, info) {
16
+ Object.assign(this, info);
17
+ Object.defineProperty(this, "main", {
18
+ value: main,
19
+ configurable: false,
20
+ enumerable: false,
21
+ writable: false
22
+ });
23
+ }
24
+ }
25
+ exports.default = Pool;
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2lraVBhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RydWN0dXJlcy9XaWtpUGFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLE1BQXFCLElBQUk7SUFDeEIsRUFBRSxDQUFTO0lBQ1gsVUFBVSxDQUFTO0lBQ25CLFlBQVksQ0FBUztJQUNyQixhQUFhLENBQVM7SUFDdEIsSUFBSSxDQUFTO0lBQ2IsU0FBUyxDQUFVO0lBQ25CLFVBQVUsQ0FBUztJQUNuQixVQUFVLENBQVM7SUFDbkIsVUFBVSxDQUFTO0lBQ25CLFdBQVcsQ0FBZ0I7SUFDM0IsVUFBVSxDQUFVO0lBQ3BCLFlBQVksSUFBVSxFQUFFLElBQXdCO1FBQy9DLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFCLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUNuQyxLQUFLLEVBQUUsSUFBSTtZQUNYLFlBQVksRUFBRSxLQUFLO1lBQ25CLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFFBQVEsRUFBRSxLQUFLO1NBQ2YsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNEO0FBckJELHVCQXFCQyJ9
@@ -0,0 +1,37 @@
1
+ import type User from "./User";
2
+ import type { WikiPageHistoryProperties } from "../types";
3
+ import type E621 from "..";
4
+ export default class WikiPageHistory implements WikiPageHistoryProperties {
5
+ private main;
6
+ id: number;
7
+ wiki_page_id: number;
8
+ updater_id: number;
9
+ title: string;
10
+ body: string;
11
+ is_locked: boolean;
12
+ created_at: string;
13
+ updated_at: string;
14
+ other_names: Array<string>;
15
+ is_deleted: boolean;
16
+ reason: string;
17
+ constructor(main: E621, info: WikiPageHistoryProperties);
18
+ /**
19
+ * Get the updater for this history
20
+ *
21
+ * @returns {Promise<User | null>}
22
+ */
23
+ getUpdater(): Promise<User | null>;
24
+ /**
25
+ * Get the wiki page object for this history
26
+ *
27
+ * @returns {Promise<WikiPage | null>}
28
+ */
29
+ getWikiPage(): Promise<import("./Pool").default | null>;
30
+ /**
31
+ * Revert the wiki page to this version
32
+ *
33
+ * * Requires Authentication
34
+ *
35
+ */
36
+ revertTo(): Promise<null>;
37
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class WikiPageHistory {
4
+ main;
5
+ id;
6
+ wiki_page_id;
7
+ updater_id;
8
+ title;
9
+ body;
10
+ is_locked;
11
+ created_at;
12
+ updated_at;
13
+ other_names;
14
+ is_deleted;
15
+ reason;
16
+ constructor(main, info) {
17
+ Object.assign(this, info);
18
+ Object.defineProperty(this, "main", {
19
+ value: main,
20
+ configurable: false,
21
+ enumerable: false,
22
+ writable: false
23
+ });
24
+ }
25
+ /**
26
+ * Get the updater for this history
27
+ *
28
+ * @returns {Promise<User | null>}
29
+ */
30
+ async getUpdater() { return this.main.users.get(this.updater_id); }
31
+ /**
32
+ * Get the wiki page object for this history
33
+ *
34
+ * @returns {Promise<WikiPage | null>}
35
+ */
36
+ async getWikiPage() { return this.main.pools.get(this.wiki_page_id); }
37
+ /**
38
+ * Revert the wiki page to this version
39
+ *
40
+ * * Requires Authentication
41
+ *
42
+ */
43
+ async revertTo() {
44
+ this.main.request.authCheck("WikiPageHistory#revertTo");
45
+ return this.main.pools.revert(this.wiki_page_id, this.id);
46
+ }
47
+ }
48
+ exports.default = WikiPageHistory;
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2lraVBhZ2VIaXN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0cnVjdHVyZXMvV2lraVBhZ2VIaXN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBS0EsTUFBcUIsZUFBZTtJQUMzQixJQUFJLENBQU87SUFDbkIsRUFBRSxDQUFTO0lBQ1gsWUFBWSxDQUFTO0lBQ3JCLFVBQVUsQ0FBUztJQUNuQixLQUFLLENBQVM7SUFDZCxJQUFJLENBQVM7SUFDYixTQUFTLENBQVU7SUFDbkIsVUFBVSxDQUFTO0lBQ25CLFVBQVUsQ0FBUztJQUNuQixXQUFXLENBQWdCO0lBQzNCLFVBQVUsQ0FBVTtJQUNwQixNQUFNLENBQVM7SUFDZixZQUFZLElBQVUsRUFBRSxJQUErQjtRQUN0RCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxQixNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDbkMsS0FBSyxFQUFFLElBQUk7WUFDWCxZQUFZLEVBQUUsS0FBSztZQUNuQixVQUFVLEVBQUUsS0FBSztZQUNqQixRQUFRLEVBQUUsS0FBSztTQUNmLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLFVBQVUsS0FBSyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRW5FOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsV0FBVyxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFHdEU7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsUUFBUTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7Q0FDRDtBQWhERCxrQ0FnREMifQ==
@@ -18,23 +18,27 @@ export interface Options {
18
18
  */
19
19
  instanceHost?: string;
20
20
  /**
21
- * If the static server of the instance you are targeting supports ssl
21
+ * Override our default url reconstruction when we see a null file url
22
22
  *
23
- * Default: true if `staticHost` is "static*.e621.net", or `instanceHost` is "e621.net", same as `instanceSSL` otherwise
24
- */
25
- staticSSL?: boolean;
26
- /**
27
- * The port of static server of the instance you are targeting
23
+ * Default (e621.net): https://static1.e621.net/data/(preview/|sample/)MD5[0,2]/MD5[2,4]/MD5.EXT
24
+ *
25
+ * Default (yiff.rest): https://v3.yiff.media/(preview/|sample/)MD5[0,2]/MD5[2,4]/MD5.EXT
28
26
  *
29
- * Default: 443 if `staticSSL` is true, same as `instancePort` otherwise
27
+ * Default (e621.local): http://e621.local/data/(preview/|sample/)MD5.EXT
28
+ *
29
+ * If you use a host that is not supported, and do not implement this, or set a construction type, an error will be thrown.
30
+ *
31
+ * @param {string} md5 - the md5 of the image
32
+ * @param {("original" | "preview" | "sample")} type - the type of url being constructed
33
+ * @param {string} ext - the extension of the file
30
34
  */
31
- staticPort?: number;
35
+ reconstructStaticURL?(this: void, md5: string, type: "original" | "preview" | "sample", ext: string): string;
32
36
  /**
33
- * The host of the instance you are targeting
37
+ * The method to use for image reconstructon (if you are not using E621, YiffyAPI, or e621ng, you MUST override the reconstructStaticURL function, as the static urls are hardcoded for these)
34
38
  *
35
- * Default: static1.e621.net if `instanceHost` is "e621.net", same as `instanceHost` otherwise
39
+ * Default: based on `instanceHost` - e621.net = e621 | yiff.rest = yiffy | e621.local = dev | other = null
36
40
  */
37
- staticHost?: string;
41
+ imageReconstructionType?: "e621" | "yiffy" | "dev" | null;
38
42
  /**
39
43
  * The uername of the user you want to authenticate with
40
44
  *
@@ -47,16 +51,6 @@ export interface Options {
47
51
  * Default: none
48
52
  */
49
53
  authKey?: string;
50
- /**
51
- * The method to use for image reconstructon (e621.net uses "hierarchy", default instances of e621ng use "root")
52
- *
53
- * * `hierarchy` - images sorted into sub folders based on md5
54
- *
55
- * * `root` - everything in the same top directory)
56
- *
57
- * Default: hierarchy
58
- */
59
- imageReconstructionType?: "hierarchy" | "root";
60
54
  /**
61
55
  * The user agent to use for requests
62
56
  *
@@ -66,9 +60,9 @@ export interface Options {
66
60
  */
67
61
  userAgent?: string;
68
62
  /**
69
- * The number of milliseconds before a request times out
63
+ * The number of seconds before a request times out
70
64
  *
71
- * Default: 60000
65
+ * Default: 30
72
66
  */
73
67
  requestTimeout?: number;
74
68
  }
@@ -77,19 +71,17 @@ export interface InstanceOptions {
77
71
  instanceSSL: boolean;
78
72
  instancePort: number;
79
73
  instanceHost: string;
80
- staticSSL: boolean;
81
- staticPort: number;
82
- staticHost: string;
83
74
  authUser: string | null;
84
75
  authKey: string | null;
85
- imageReconstructionType: "hierarchy" | "root";
76
+ reconstructStaticURL: ((this: void, md5: string, type: "original" | "preview" | "sample", ext: string) => string) | null;
77
+ imageReconstructionType: "e621" | "yiffy" | "dev" | null;
86
78
  userAgent: string;
87
79
  requestTimeout: number;
88
80
  }
89
81
 
90
82
  export interface GenericSearchOptions {
91
83
  limit?: number;
92
- page?: number;
84
+ page?: number | `${"a" | "b" | ""}${number}`;
93
85
  }
94
86
 
95
87
  export * from "./pools";
@@ -97,3 +89,4 @@ export * from "./post_sets";
97
89
  export * from "./posts";
98
90
  export * from "./user_feedback";
99
91
  export * from "./users";
92
+ export * from "./wiki_pages";
File without changes
File without changes
@@ -57,7 +57,6 @@ export interface PostProperties {
57
57
 
58
58
  export interface SearchPostsOptions extends GenericSearchOptions {
59
59
  tags?: string | Array<string>;
60
- page?: number | `${number}` | `${"a" | "b"}${number}`;
61
60
  }
62
61
 
63
62
  export type CreatePostOptions = {
@@ -118,3 +117,49 @@ export interface PostVoteResult {
118
117
  down: number;
119
118
  our_score: number;
120
119
  }
120
+
121
+ export interface SearchPostHistoryOptions extends GenericSearchOptions {
122
+ user?: string;
123
+ userID?: number;
124
+ post?: number;
125
+ reason?: string;
126
+ description?: string;
127
+ ratingChangedTo?: Ratings;
128
+ finalRating?: Ratings;
129
+ parent?: number;
130
+ parentChangedTo?: number;
131
+ finalTags?: Array<string> |string;
132
+ addedTags?: Array<string> | string;
133
+ removedTags?: Array<string> | string;
134
+ finalLockedTags?: Array<string> | string;
135
+ addedLockedTags?: Array<string> | string;
136
+ removedLockedTags?: Array<string> | string;
137
+ source?: string;
138
+ }
139
+
140
+ export interface PostHistoryProperties {
141
+ id: number;
142
+ post_id: number;
143
+ tags: string;
144
+ updater_id: number;
145
+ updater_name: string;
146
+ updated_at: string;
147
+ rating: Ratings;
148
+ parent_id: number | null;
149
+ source: string;
150
+ description: string;
151
+ reason: string;
152
+ locked_tags: string | null;
153
+ added_tags: Array<string>;
154
+ removed_tags: Array<string>;
155
+ added_locked_tags: Array<string>;
156
+ removed_locked_tags: Array<string>;
157
+ rating_changed: boolean;
158
+ parent_changed: boolean;
159
+ source_changed: boolean;
160
+ description_changed: boolean;
161
+ version: number;
162
+ obsolete_added_tags: string;
163
+ obsolete_removed_tags: string;
164
+ unchanged_tags: string;
165
+ }
File without changes
File without changes
@@ -0,0 +1,65 @@
1
+ import type { GenericSearchOptions } from ".";
2
+
3
+ export interface WikiPageProperties {
4
+ id: number;
5
+ creator_id: number;
6
+ creator_name: string;
7
+ category_name: number;
8
+ body: string;
9
+ is_locked: boolean;
10
+ created_at: string;
11
+ updated_at: string;
12
+ updater_id: number;
13
+ other_names: Array<string>;
14
+ is_deleted: boolean;
15
+ }
16
+
17
+ export type WikiPageOrder = "title" | "time" | "post_count";
18
+ export interface SearchWikiPagesOptions extends GenericSearchOptions {
19
+ title?: string;
20
+ creator?: string;
21
+ body?: string;
22
+ otherNames?: string;
23
+ hasOtherNames?: boolean;
24
+ hideDeleted?: boolean;
25
+ order?: WikiPageOrder;
26
+ }
27
+
28
+ export interface CreateWikiPageOptions {
29
+ title: string;
30
+ body: string;
31
+ /** requires janitor */
32
+ locked?: boolean;
33
+ /** requires janitor */
34
+ forceOverwrite?: boolean;
35
+ reason?: string;
36
+ }
37
+
38
+ export interface ModifyWikiPageOptions {
39
+ /** requires janitor */
40
+ title?: string;
41
+ body?: string;
42
+ /** requires janitor */
43
+ locked?: boolean;
44
+ /** requires janitor */
45
+ forceOverwrite?: boolean;
46
+ reason?: string;
47
+ }
48
+
49
+ export interface WikiPageHistoryProperties {
50
+ id: number;
51
+ wiki_page_id: number;
52
+ updater_id: number;
53
+ title: string;
54
+ body: string;
55
+ is_locked: boolean;
56
+ created_at: string;
57
+ updated_at: string;
58
+ other_names: Array<string>;
59
+ is_deleted: boolean;
60
+ reason: string;
61
+ }
62
+
63
+ export interface SearchWikiPageHistoryOptions extends GenericSearchOptions {
64
+ wikiPage?: number;
65
+ }
@@ -31,4 +31,7 @@ export default class RequestHandler {
31
31
  content: Buffer;
32
32
  name: string;
33
33
  }>): Promise<T | null>;
34
+ get instanceURL(): string;
35
+ get deletedImageURL(): string;
36
+ constructURL(md5: string, type: "original" | "preview" | "sample", ext?: string): string;
34
37
  }