e621 3.0.3 → 3.2.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 (294) hide show
  1. package/README.md +52 -0
  2. package/dist/browser/e621.d.ts +2 -0
  3. package/dist/browser/e621.js +19289 -0
  4. package/dist/browser/e621.js.map +7 -0
  5. package/dist/lib/Debug.browser.d.ts +6 -0
  6. package/dist/lib/Debug.browser.js +8 -0
  7. package/dist/lib/client.d.ts +59 -0
  8. package/dist/lib/client.js +72 -0
  9. package/dist/lib/errors.d.ts +3 -3
  10. package/dist/lib/errors.js +6 -2
  11. package/dist/lib/generated/client/client.js +105 -124
  12. package/dist/lib/generated/client/types.d.ts +6 -3
  13. package/dist/lib/generated/client/utils.d.ts +7 -3
  14. package/dist/lib/generated/client/utils.js +4 -4
  15. package/dist/lib/generated/core/params.js +5 -5
  16. package/dist/lib/generated/core/serverSentEvents.d.ts +1 -1
  17. package/dist/lib/generated/core/serverSentEvents.js +4 -5
  18. package/dist/lib/generated/schemas.d.ts +1192 -219
  19. package/dist/lib/generated/schemas.js +1780 -483
  20. package/dist/lib/generated/sdk.d.ts +612 -380
  21. package/dist/lib/generated/sdk.js +895 -546
  22. package/dist/lib/generated/types.d.ts +6241 -4549
  23. package/dist/lib/index.d.ts +2 -43
  24. package/dist/lib/index.js +5 -61
  25. package/dist/lib/models/Appeal.d.ts +48 -0
  26. package/dist/lib/models/Appeal.js +74 -0
  27. package/dist/lib/models/Artist.d.ts +15 -18
  28. package/dist/lib/models/Artist.js +24 -27
  29. package/dist/lib/models/AvoidPosting.d.ts +11 -15
  30. package/dist/lib/models/AvoidPosting.js +21 -25
  31. package/dist/lib/models/Base.browser.d.ts +14 -0
  32. package/dist/lib/models/Base.browser.js +22 -0
  33. package/dist/lib/models/BasicPost.d.ts +14 -0
  34. package/dist/lib/models/BasicPost.js +17 -0
  35. package/dist/lib/models/Blip.d.ts +19 -24
  36. package/dist/lib/models/Blip.js +30 -35
  37. package/dist/lib/models/BulkUpdateRequest.d.ts +9 -12
  38. package/dist/lib/models/BulkUpdateRequest.js +18 -21
  39. package/dist/lib/models/Comment.d.ts +25 -32
  40. package/dist/lib/models/Comment.js +39 -46
  41. package/dist/lib/models/CommentVote.d.ts +47 -0
  42. package/dist/lib/models/CommentVote.js +74 -0
  43. package/dist/lib/models/CurrentUser.d.ts +33 -1
  44. package/dist/lib/models/CurrentUser.js +54 -3
  45. package/dist/lib/models/DMail.d.ts +15 -9
  46. package/dist/lib/models/DMail.js +27 -13
  47. package/dist/lib/models/DbExport.d.ts +14 -0
  48. package/dist/lib/models/DbExport.js +17 -0
  49. package/dist/lib/models/EmailBlacklist.d.ts +2 -3
  50. package/dist/lib/models/EmailBlacklist.js +4 -5
  51. package/dist/lib/models/ExceptionLog.d.ts +14 -0
  52. package/dist/lib/models/ExceptionLog.js +17 -0
  53. package/dist/lib/models/ExtendedPost.d.ts +14 -0
  54. package/dist/lib/models/ExtendedPost.js +17 -0
  55. package/dist/lib/models/ForumPost.d.ts +37 -34
  56. package/dist/lib/models/ForumPost.js +57 -47
  57. package/dist/lib/models/ForumPostVote.d.ts +2 -3
  58. package/dist/lib/models/ForumPostVote.js +5 -6
  59. package/dist/lib/models/ForumTopic.d.ts +20 -26
  60. package/dist/lib/models/ForumTopic.js +33 -39
  61. package/dist/lib/models/HelpPage.d.ts +37 -0
  62. package/dist/lib/models/HelpPage.js +55 -0
  63. package/dist/lib/models/IpBan.d.ts +2 -3
  64. package/dist/lib/models/IpBan.js +4 -5
  65. package/dist/lib/models/Mascot.d.ts +6 -8
  66. package/dist/lib/models/Mascot.js +10 -12
  67. package/dist/lib/models/MinimalUser.d.ts +14 -0
  68. package/dist/lib/models/MinimalUser.js +17 -0
  69. package/dist/lib/models/NewsUpdate.d.ts +6 -8
  70. package/dist/lib/models/NewsUpdate.js +10 -12
  71. package/dist/lib/models/Note.d.ts +9 -12
  72. package/dist/lib/models/Note.js +18 -21
  73. package/dist/lib/models/NoteVersion.d.ts +2 -3
  74. package/dist/lib/models/NoteVersion.js +4 -5
  75. package/dist/lib/models/Pool.d.ts +15 -20
  76. package/dist/lib/models/Pool.js +28 -33
  77. package/dist/lib/models/PoolVersion.d.ts +2 -3
  78. package/dist/lib/models/PoolVersion.js +4 -5
  79. package/dist/lib/models/Post.d.ts +5 -174
  80. package/dist/lib/models/Post.js +8 -294
  81. package/dist/lib/models/PostApproval.d.ts +2 -3
  82. package/dist/lib/models/PostApproval.js +4 -5
  83. package/dist/lib/models/PostFlag.d.ts +4 -6
  84. package/dist/lib/models/PostFlag.js +8 -10
  85. package/dist/lib/models/PostReplacement.d.ts +10 -15
  86. package/dist/lib/models/PostReplacement.js +16 -21
  87. package/dist/lib/models/PostSet.d.ts +15 -20
  88. package/dist/lib/models/PostSet.js +26 -31
  89. package/dist/lib/models/PostVersion.d.ts +8 -12
  90. package/dist/lib/models/PostVersion.js +13 -17
  91. package/dist/lib/models/PostVote.d.ts +6 -9
  92. package/dist/lib/models/PostVote.js +11 -14
  93. package/dist/lib/models/SearchTrendBlacklist.d.ts +23 -0
  94. package/dist/lib/models/SearchTrendBlacklist.js +41 -3
  95. package/dist/lib/models/StaffFile.d.ts +37 -0
  96. package/dist/lib/models/StaffFile.js +55 -0
  97. package/dist/lib/models/StaffNote.d.ts +10 -13
  98. package/dist/lib/models/StaffNote.js +19 -22
  99. package/dist/lib/models/StaffWiki.d.ts +59 -0
  100. package/dist/lib/models/StaffWiki.js +93 -0
  101. package/dist/lib/models/StaffWikiVersion.d.ts +14 -0
  102. package/dist/lib/models/StaffWikiVersion.js +17 -0
  103. package/dist/lib/models/Tag.d.ts +16 -20
  104. package/dist/lib/models/Tag.js +28 -32
  105. package/dist/lib/models/TagAlias.d.ts +11 -14
  106. package/dist/lib/models/TagAlias.js +20 -23
  107. package/dist/lib/models/TagImplication.d.ts +11 -14
  108. package/dist/lib/models/TagImplication.js +20 -23
  109. package/dist/lib/models/Takedown.d.ts +18 -24
  110. package/dist/lib/models/Takedown.js +27 -33
  111. package/dist/lib/models/ThumbnailPost.d.ts +14 -0
  112. package/dist/lib/models/ThumbnailPost.js +17 -0
  113. package/dist/lib/models/Ticket.d.ts +11 -14
  114. package/dist/lib/models/Ticket.js +20 -23
  115. package/dist/lib/models/UploadWhitelist.d.ts +6 -8
  116. package/dist/lib/models/UploadWhitelist.js +10 -12
  117. package/dist/lib/models/User.d.ts +27 -23
  118. package/dist/lib/models/User.js +43 -31
  119. package/dist/lib/models/UserFeedback.d.ts +11 -15
  120. package/dist/lib/models/UserFeedback.js +21 -25
  121. package/dist/lib/models/UserNameChangeRequest.d.ts +2 -3
  122. package/dist/lib/models/UserNameChangeRequest.js +4 -5
  123. package/dist/lib/models/WikiPage.d.ts +11 -14
  124. package/dist/lib/models/WikiPage.js +20 -23
  125. package/dist/lib/models/WikiPageVersion.d.ts +2 -3
  126. package/dist/lib/models/WikiPageVersion.js +4 -5
  127. package/dist/lib/models/index.d.ts +12 -1
  128. package/dist/lib/models/index.js +13 -2
  129. package/dist/lib/models/posts/Actions.d.ts +279 -0
  130. package/dist/lib/models/posts/Actions.js +476 -0
  131. package/dist/lib/modules/Appeals.d.ts +69 -0
  132. package/dist/lib/modules/Appeals.js +125 -0
  133. package/dist/lib/modules/ArtistUrls.d.ts +5 -5
  134. package/dist/lib/modules/ArtistUrls.js +7 -7
  135. package/dist/lib/modules/ArtistVersions.d.ts +5 -5
  136. package/dist/lib/modules/ArtistVersions.js +7 -7
  137. package/dist/lib/modules/Artists.d.ts +31 -36
  138. package/dist/lib/modules/Artists.js +53 -58
  139. package/dist/lib/modules/AvoidPostingVersions.d.ts +5 -5
  140. package/dist/lib/modules/AvoidPostingVersions.js +7 -7
  141. package/dist/lib/modules/AvoidPostings.d.ts +29 -55
  142. package/dist/lib/modules/AvoidPostings.js +51 -75
  143. package/dist/lib/modules/Bans.d.ts +7 -8
  144. package/dist/lib/modules/Bans.js +11 -12
  145. package/dist/lib/modules/Base.d.ts +15 -4
  146. package/dist/lib/modules/Base.js +15 -4
  147. package/dist/lib/modules/Blips.d.ts +34 -41
  148. package/dist/lib/modules/Blips.js +59 -64
  149. package/dist/lib/modules/BulkUpdateRequests.d.ts +25 -30
  150. package/dist/lib/modules/BulkUpdateRequests.js +47 -52
  151. package/dist/lib/modules/CommentVotes.d.ts +45 -6
  152. package/dist/lib/modules/CommentVotes.js +75 -12
  153. package/dist/lib/modules/Comments.d.ts +34 -43
  154. package/dist/lib/modules/Comments.js +57 -66
  155. package/dist/lib/modules/DMails.d.ts +25 -20
  156. package/dist/lib/modules/DMails.js +37 -32
  157. package/dist/lib/modules/DText.d.ts +6 -6
  158. package/dist/lib/modules/DText.js +7 -7
  159. package/dist/lib/modules/DbExports.d.ts +13 -0
  160. package/dist/lib/modules/DbExports.js +27 -0
  161. package/dist/lib/modules/EditHistories.d.ts +8 -9
  162. package/dist/lib/modules/EditHistories.js +11 -12
  163. package/dist/lib/modules/EmailBlacklists.d.ts +10 -12
  164. package/dist/lib/modules/EmailBlacklists.js +16 -18
  165. package/dist/lib/modules/Favorites.d.ts +15 -17
  166. package/dist/lib/modules/Favorites.js +20 -20
  167. package/dist/lib/modules/ForumPostVotes.d.ts +40 -0
  168. package/dist/lib/modules/ForumPostVotes.js +71 -0
  169. package/dist/lib/modules/ForumPosts.d.ts +32 -41
  170. package/dist/lib/modules/ForumPosts.js +55 -64
  171. package/dist/lib/modules/ForumTopics.d.ts +36 -50
  172. package/dist/lib/modules/ForumTopics.js +61 -84
  173. package/dist/lib/modules/Health.d.ts +12 -0
  174. package/dist/lib/modules/Health.js +26 -0
  175. package/dist/lib/modules/HelpPages.d.ts +27 -26
  176. package/dist/lib/modules/HelpPages.js +58 -47
  177. package/dist/lib/modules/IpBans.d.ts +10 -12
  178. package/dist/lib/modules/IpBans.js +16 -18
  179. package/dist/lib/modules/IqdbQueries.d.ts +14 -14
  180. package/dist/lib/modules/IqdbQueries.js +25 -18
  181. package/dist/lib/modules/Mascots.d.ts +19 -22
  182. package/dist/lib/modules/Mascots.js +33 -36
  183. package/dist/lib/modules/ModActions.d.ts +7 -8
  184. package/dist/lib/modules/ModActions.js +11 -12
  185. package/dist/lib/modules/NewsUpdates.d.ts +19 -22
  186. package/dist/lib/modules/NewsUpdates.js +35 -38
  187. package/dist/lib/modules/NoteVersions.d.ts +5 -5
  188. package/dist/lib/modules/NoteVersions.js +7 -7
  189. package/dist/lib/modules/Notes.d.ts +24 -29
  190. package/dist/lib/modules/Notes.js +45 -50
  191. package/dist/lib/modules/PoolVersions.d.ts +5 -5
  192. package/dist/lib/modules/PoolVersions.js +7 -7
  193. package/dist/lib/modules/Pools.d.ts +33 -41
  194. package/dist/lib/modules/Pools.js +58 -66
  195. package/dist/lib/modules/Popular.d.ts +7 -7
  196. package/dist/lib/modules/Popular.js +13 -11
  197. package/dist/lib/modules/PostApprovals.d.ts +9 -11
  198. package/dist/lib/modules/PostApprovals.js +15 -17
  199. package/dist/lib/modules/PostDisapprovals.d.ts +11 -9
  200. package/dist/lib/modules/PostDisapprovals.js +12 -13
  201. package/dist/lib/modules/PostEvents.d.ts +5 -5
  202. package/dist/lib/modules/PostEvents.js +13 -9
  203. package/dist/lib/modules/PostFlags.d.ts +26 -15
  204. package/dist/lib/modules/PostFlags.js +42 -23
  205. package/dist/lib/modules/PostReplacements.d.ts +20 -26
  206. package/dist/lib/modules/PostReplacements.js +36 -38
  207. package/dist/lib/modules/PostSets.d.ts +34 -42
  208. package/dist/lib/modules/PostSets.js +60 -68
  209. package/dist/lib/modules/PostVersions.d.ts +11 -14
  210. package/dist/lib/modules/PostVersions.js +19 -22
  211. package/dist/lib/modules/PostVotes.d.ts +33 -12
  212. package/dist/lib/modules/PostVotes.js +56 -17
  213. package/dist/lib/modules/Posts.d.ts +130 -70
  214. package/dist/lib/modules/Posts.js +215 -115
  215. package/dist/lib/modules/RelatedTags.d.ts +7 -7
  216. package/dist/lib/modules/RelatedTags.js +7 -7
  217. package/dist/lib/modules/SearchTrendBlacklists.d.ts +11 -28
  218. package/dist/lib/modules/SearchTrendBlacklists.js +15 -40
  219. package/dist/lib/modules/SearchTrends.d.ts +30 -19
  220. package/dist/lib/modules/SearchTrends.js +41 -22
  221. package/dist/lib/modules/StaffAutomodDMails.d.ts +55 -0
  222. package/dist/lib/modules/StaffAutomodDMails.js +98 -0
  223. package/dist/lib/modules/{users/DMails.d.ts → StaffDMails.d.ts} +8 -9
  224. package/dist/lib/modules/StaffDMails.js +54 -0
  225. package/dist/lib/modules/StaffExceptionLogs.d.ts +33 -0
  226. package/dist/lib/modules/StaffExceptionLogs.js +54 -0
  227. package/dist/lib/modules/StaffFiles.d.ts +72 -0
  228. package/dist/lib/modules/StaffFiles.js +121 -0
  229. package/dist/lib/modules/StaffNotes.d.ts +26 -31
  230. package/dist/lib/modules/StaffNotes.js +47 -52
  231. package/dist/lib/modules/StaffUserCleanups.d.ts +60 -0
  232. package/dist/lib/modules/StaffUserCleanups.js +124 -0
  233. package/dist/lib/modules/StaffUsers.d.ts +43 -0
  234. package/dist/lib/modules/StaffUsers.js +75 -0
  235. package/dist/lib/modules/StaffVoteTrends.d.ts +26 -0
  236. package/dist/lib/modules/StaffVoteTrends.js +39 -0
  237. package/dist/lib/modules/StaffWikiVersions.d.ts +33 -0
  238. package/dist/lib/modules/StaffWikiVersions.js +54 -0
  239. package/dist/lib/modules/StaffWikis.d.ts +94 -0
  240. package/dist/lib/modules/StaffWikis.js +165 -0
  241. package/dist/lib/modules/TagAliases.d.ts +26 -31
  242. package/dist/lib/modules/TagAliases.js +47 -52
  243. package/dist/lib/modules/TagCorrections.d.ts +6 -7
  244. package/dist/lib/modules/TagCorrections.js +12 -13
  245. package/dist/lib/modules/TagImplications.d.ts +26 -31
  246. package/dist/lib/modules/TagImplications.js +47 -52
  247. package/dist/lib/modules/TagTypeVersions.d.ts +5 -5
  248. package/dist/lib/modules/TagTypeVersions.js +7 -7
  249. package/dist/lib/modules/Tags.d.ts +23 -27
  250. package/dist/lib/modules/Tags.js +42 -46
  251. package/dist/lib/modules/Takedowns.d.ts +37 -45
  252. package/dist/lib/modules/Takedowns.js +59 -67
  253. package/dist/lib/modules/Tickets.d.ts +24 -28
  254. package/dist/lib/modules/Tickets.js +44 -48
  255. package/dist/lib/modules/UploadWhitelists.d.ts +21 -25
  256. package/dist/lib/modules/UploadWhitelists.js +37 -41
  257. package/dist/lib/modules/Uploads.d.ts +11 -13
  258. package/dist/lib/modules/Uploads.js +16 -18
  259. package/dist/lib/modules/UserFeedbacks.d.ts +28 -34
  260. package/dist/lib/modules/UserFeedbacks.js +52 -58
  261. package/dist/lib/modules/UserNameChangeRequests.d.ts +12 -15
  262. package/dist/lib/modules/UserNameChangeRequests.js +20 -23
  263. package/dist/lib/modules/Users.d.ts +56 -40
  264. package/dist/lib/modules/Users.js +91 -63
  265. package/dist/lib/modules/WikiPageVersions.d.ts +7 -8
  266. package/dist/lib/modules/WikiPageVersions.js +11 -12
  267. package/dist/lib/modules/WikiPages.d.ts +26 -31
  268. package/dist/lib/modules/WikiPages.js +47 -52
  269. package/dist/lib/modules/index.d.ts +39 -10
  270. package/dist/lib/modules/index.js +27 -5
  271. package/dist/lib/modules/posts/Format.d.ts +27 -0
  272. package/dist/lib/modules/posts/Format.js +17 -0
  273. package/dist/lib/standalone.d.ts +20 -0
  274. package/dist/lib/standalone.js +17 -0
  275. package/dist/lib/util.js +4 -10
  276. package/dist/lib/version.d.ts +2 -0
  277. package/dist/lib/version.js +3 -0
  278. package/package.json +34 -10
  279. package/tsconfig.json +2 -2
  280. package/dist/lib/generated/source.json +0 -19075
  281. package/dist/lib/models/Help.d.ts +0 -39
  282. package/dist/lib/models/Help.js +0 -57
  283. package/dist/lib/modules/admin/Users.d.ts +0 -45
  284. package/dist/lib/modules/admin/Users.js +0 -77
  285. package/dist/lib/modules/comments/Votes.d.ts +0 -31
  286. package/dist/lib/modules/comments/Votes.js +0 -51
  287. package/dist/lib/modules/forum_posts/Votes.d.ts +0 -29
  288. package/dist/lib/modules/forum_posts/Votes.js +0 -51
  289. package/dist/lib/modules/posts/Flag.d.ts +0 -16
  290. package/dist/lib/modules/posts/Flag.js +0 -31
  291. package/dist/lib/modules/posts/Votes.d.ts +0 -31
  292. package/dist/lib/modules/posts/Votes.js +0 -51
  293. package/dist/lib/modules/users/DMails.js +0 -55
  294. package/dist/package.json +0 -73
@@ -1,27 +1,27 @@
1
+ var _a, _b, _c, _d, _e, _f, _g;
1
2
  import { __decorate, __metadata } from "tslib";
2
- import { aiCheckPost, copyNotesToPost, deletePost, expungePost, getPost, getPostInSequence, getRandomPost, getRecommendedPosts, listPostFavorites, markPostAsTranslated, movePostFavorites, regeneratePostThumbnails, regeneratePostVideos, revertPost, searchPosts, undeletePost, updatePostIqdb, } from "../generated/sdk.js";
3
+ import { staffPostPosts_aiCheck, posts_copyNotes, staffPostPosts_delete, staffPostPosts_expunge, posts_show, posts_showSeq, staffPostPosts_previousOwners, posts_random, postRecommendations_artist, postRecommendations_tags, postFavorites_index, posts_markAsTranslated, staffPostPosts_moveFavorites, staffPostPosts_regenerateThumbnails, staffPostPosts_regenerateVideos, staffPostPosts_reowner, posts_revert, posts_index, staffPostPosts_undelete, posts_update, posts_updateIqdb, } from "../generated/sdk.js";
4
+ import MinimalUser from "../models/MinimalUser.js";
3
5
  import Post from "../models/Post.js";
4
- import { OperationID } from "../util.js";
6
+ import ThumbnailPost from "../models/ThumbnailPost.js";
7
+ import { OperationID, prefixKeys } from "../util.js";
5
8
  import Base from "./Base.js";
6
- import PostFlag from "./posts/Flag.js";
7
- import PostVotes from "./posts/Votes.js";
9
+ import { wrapPost, wrapPosts } from "./posts/Format.js";
8
10
  /** @category Modules */
9
11
  export default class Posts extends Base {
10
- flag = new PostFlag(this.e621, this.client);
11
- votes = new PostVotes(this.e621, this.client);
12
+ static moduleKey = "posts";
12
13
  /**
13
- * AI Check Post
14
14
  *
15
15
  * You must be Janitor+.
16
16
  *
17
17
  * @requiresApiKeyAuth
18
18
  *
19
- * @operationId {@link https://e621.wiki/#operations-Posts-aiCheckPost aiCheckPost}
19
+ * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\#ai_check staff/post/posts#ai_check}
20
20
  *
21
- * @see {@link https://e621.wiki/#operations-Posts-aiCheckPost Documentation} for more details.
21
+ * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\#ai_check Documentation} for more details.
22
22
  */
23
23
  async aiCheck(id) {
24
- const res = await aiCheckPost({
24
+ const res = await staffPostPosts_aiCheck({
25
25
  client: this.client,
26
26
  path: { id },
27
27
  redirect: "manual",
@@ -29,173 +29,206 @@ export default class Posts extends Base {
29
29
  return this._handleResponse(res, 302, true);
30
30
  }
31
31
  /**
32
- * Copy Notes To Post
33
32
  *
34
33
  * @requiresApiKeyAuth
35
34
  *
36
- * @operationId {@link https://e621.wiki/#operations-Posts-copyNotesToPost copyNotesToPost}
35
+ * @operationId {@link https://e621.wiki/#operations-Posts-posts\#copy_notes posts#copy_notes}
37
36
  *
38
- * @see {@link https://e621.wiki/#operations-Posts-copyNotesToPost Documentation} for more details.
37
+ * @see {@link https://e621.wiki/#operations-Posts-posts\#copy_notes Documentation} for more details.
39
38
  */
40
39
  async copyNotes(id, other_post_id) {
41
- return copyNotesToPost({
40
+ return posts_copyNotes({
42
41
  client: this.client,
43
42
  path: { id },
44
43
  body: { other_post_id },
45
44
  }).then(res => this._handleResponse(res, 204, true));
46
45
  }
47
46
  /**
48
- * Delete Post
49
47
  *
50
48
  * You must have the "Approve Posts" permission. `commit=Delete` must be set.
51
49
  *
52
50
  * @requiresApiKeyAuth
53
51
  *
54
- * @operationId {@link https://e621.wiki/#operations-Posts-deletePost deletePost}
52
+ * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\#delete staff/post/posts#delete}
55
53
  *
56
- * @see {@link https://e621.wiki/#operations-Posts-deletePost Documentation} for more details.
54
+ * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\#delete Documentation} for more details.
57
55
  */
58
56
  async delete(id, options) {
59
- return deletePost({
57
+ return staffPostPosts_delete({
60
58
  client: this.client,
61
59
  path: { id },
62
60
  body: options,
63
61
  }).then(res => this._handleResponse(res, 200, true));
64
62
  }
65
63
  /**
66
- * Expunge Post
67
64
  *
68
65
  * You must have the "Approve Posts" permission and be Admin+.
69
66
  *
70
67
  * @requiresApiKeyAuth
71
68
  *
72
- * @operationId {@link https://e621.wiki/#operations-Posts-expungePost expungePost}
69
+ * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\#expunge staff/post/posts#expunge}
73
70
  *
74
- * @see {@link https://e621.wiki/#operations-Posts-expungePost Documentation} for more details.
71
+ * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\#expunge Documentation} for more details.
75
72
  */
76
73
  async expunge(id, reason) {
77
- return expungePost({
74
+ return staffPostPosts_expunge({
78
75
  client: this.client,
79
76
  path: { id },
80
77
  body: { reason },
81
78
  }).then((res) => {
82
79
  const data = this._handleResponse(res, 201, true);
80
+ // NOTE: the spec still references the "Post" (v2 base) schema here, but this endpoint has no v2 param - the response is actually legacy-shaped.
83
81
  return new Post(this.e621, data.post);
84
82
  });
85
83
  }
86
84
  /**
87
- * List Post Favorites
88
85
  *
89
86
  * You must be the user or Moderator+ to see users that have their favorites hidden.
90
87
  *
91
- * @operationId {@link https://e621.wiki/#operations-Posts-listPostFavorites listPostFavorites}
88
+ * @operationId {@link https://e621.wiki/#operations-Post_Favorites-post_favorites\#index post_favorites#index}
92
89
  *
93
- * @see {@link https://e621.wiki/#operations-Posts-listPostFavorites Documentation} for more details.
90
+ * @see {@link https://e621.wiki/#operations-Post_Favorites-post_favorites\#index Documentation} for more details.
94
91
  */
95
92
  async favorites(id, options) {
96
- return listPostFavorites({
93
+ return postFavorites_index({
97
94
  client: this.client,
98
95
  path: { id },
99
96
  query: options,
100
- }).then(res => this._handleResponse(res, 200, true, Post));
97
+ }).then(res => this._handleResponse(res, 200, true, MinimalUser));
101
98
  }
102
99
  /**
103
- * Get Post
104
100
  *
105
- * @operationId {@link https://e621.wiki/#operations-Posts-getPost getPost}
101
+ * @operationId {@link https://e621.wiki/#operations-Posts-posts\#show posts#show}
106
102
  *
107
- * @see {@link https://e621.wiki/#operations-Posts-getPost Documentation} for more details.
103
+ * @see {@link https://e621.wiki/#operations-Posts-posts\#show Documentation} for more details.
108
104
  */
109
- async get(id) {
110
- return getPost({
105
+ async get(id, options) {
106
+ return posts_show({
111
107
  client: this.client,
112
108
  path: { id },
109
+ query: options,
113
110
  }).then((res) => {
114
111
  const data = this._handleResponse(res, 200, false);
115
- return data === null ? null : new Post(this.e621, data.post);
112
+ if (data === null)
113
+ return null;
114
+ const raw = (options?.v2 ? data : data.post);
115
+ return wrapPost(this.e621, raw, options?.v2, options?.mode);
116
116
  });
117
117
  }
118
118
  /**
119
- * Mark Post As Translated
120
119
  *
121
120
  * Will error if no body is provided.
122
121
  *
123
122
  * @requiresApiKeyAuth
124
123
  *
125
- * @operationId {@link https://e621.wiki/#operations-Posts-markPostAsTranslated markPostAsTranslated}
124
+ * @operationId {@link https://e621.wiki/#operations-Posts-posts\#mark_as_translated posts#mark_as_translated}
126
125
  *
127
- * @see {@link https://e621.wiki/#operations-Posts-markPostAsTranslated Documentation} for more details.
126
+ * @see {@link https://e621.wiki/#operations-Posts-posts\#mark_as_translated Documentation} for more details.
128
127
  */
129
- async markTranslated(id) {
130
- return markPostAsTranslated({
128
+ async markTranslated(id, options) {
129
+ return posts_markAsTranslated({
131
130
  client: this.client,
132
131
  path: { id },
132
+ query: options,
133
133
  }).then((res) => {
134
134
  const data = this._handleResponse(res, 200, true);
135
- return new Post(this.e621, data.post);
135
+ const raw = (options?.v2 ? data : data.post);
136
+ return wrapPost(this.e621, raw, options?.v2, options?.mode);
136
137
  });
137
138
  }
138
139
  /**
139
- * Move Post Favorites
140
140
  *
141
141
  * You must have the "Approve Posts" permission. `commit=Submit`` must be set.
142
142
  *
143
143
  * @requiresApiKeyAuth
144
144
  *
145
- * @operationId {@link https://e621.wiki/#operations-Posts-movePostFavorites movePostFavorites}
145
+ * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\#move_favorites staff/post/posts#move_favorites}
146
146
  *
147
- * @see {@link https://e621.wiki/#operations-Posts-movePostFavorites Documentation} for more details.
147
+ * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\#move_favorites Documentation} for more details.
148
148
  */
149
149
  async moveFavorites(id, options) {
150
- return movePostFavorites({
150
+ return staffPostPosts_moveFavorites({
151
151
  client: this.client,
152
152
  path: { id },
153
153
  body: options,
154
154
  }).then(res => this._handleResponse(res, 200, true));
155
155
  }
156
156
  /**
157
- * Get Random Post
158
157
  *
159
- * @operationId {@link https://e621.wiki/#operations-Posts-getRandomPost getRandomPost}
158
+ * You must be an Approver
159
+ *
160
+ * @requiresApiKeyAuth
161
+ *
162
+ * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\#previous_owners staff/post/posts#previous_owners}
163
+ *
164
+ * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\#previous_owners Documentation} for more details.
165
+ */
166
+ async previousOwners(id) {
167
+ return staffPostPosts_previousOwners({
168
+ client: this.client,
169
+ path: { id },
170
+ }).then(res => this._handleResponse(res, 200, true));
171
+ }
172
+ /**
173
+ *
174
+ * @operationId {@link https://e621.wiki/#operations-Posts-posts\#random posts#random}
160
175
  *
161
- * @see {@link https://e621.wiki/#operations-Posts-getRandomPost Documentation} for more details.
176
+ * @see {@link https://e621.wiki/#operations-Posts-posts\#random Documentation} for more details.
162
177
  */
163
- async random(tags) {
164
- return getRandomPost({
178
+ async random(options) {
179
+ return posts_random({
165
180
  client: this.client,
166
- query: { tags },
181
+ query: options,
167
182
  }).then((res) => {
168
183
  const data = this._handleResponse(res, 200, true);
169
- return new Post(this.e621, data.post);
184
+ const raw = (options?.v2 ? data : data.post);
185
+ return wrapPost(this.e621, raw, options?.v2, options?.mode);
170
186
  });
171
187
  }
172
188
  /**
173
- * Get Recommended Posts
174
189
  *
175
- * @operationId {@link https://e621.wiki/#operations-Posts-getRecommendedPosts getRecommendedPosts}
190
+ * @operationId {@link https://e621.wiki/#operations-Posts-post_recommendations\#artist post_recommendations#artist}
176
191
  *
177
- * @see {@link https://e621.wiki/#operations-Posts-getRecommendedPosts Documentation} for more details.
192
+ * @see {@link https://e621.wiki/#operations-Posts-post_recommendations\#artist Documentation} for more details.
178
193
  */
179
- async recommended(id, options) {
180
- return getRecommendedPosts({
194
+ async recommendedByArtist(id, options) {
195
+ return postRecommendations_artist({
181
196
  client: this.client,
182
197
  path: { id },
183
198
  query: options,
184
- }).then(res => this._handleResponse(res, 200, true));
199
+ }).then((res) => {
200
+ const data = this._handleResponse(res, 200, true);
201
+ return { ...data, post_data: data.post_data.map(post => new ThumbnailPost(this.e621, post)) };
202
+ });
203
+ }
204
+ /**
205
+ *
206
+ * @operationId {@link https://e621.wiki/#operations-Posts-post_recommendations\#tags post_recommendations#tags}
207
+ *
208
+ * @see {@link https://e621.wiki/#operations-Posts-post_recommendations\#tags Documentation} for more details.
209
+ */
210
+ async recommendedByTags(id, options) {
211
+ return postRecommendations_tags({
212
+ client: this.client,
213
+ path: { id },
214
+ query: options,
215
+ }).then((res) => {
216
+ const data = this._handleResponse(res, 200, true);
217
+ return { ...data, post_data: data.post_data.map(post => new ThumbnailPost(this.e621, post)) };
218
+ });
185
219
  }
186
220
  /**
187
- * Regenerate Post Thumbnails
188
221
  *
189
222
  * You must be Janitor+.
190
223
  *
191
224
  * @requiresApiKeyAuth
192
225
  *
193
- * @operationId {@link https://e621.wiki/#operations-Posts-regeneratePostThumbnails regeneratePostThumbnails}
226
+ * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\#regenerate_thumbnails staff/post/posts#regenerate_thumbnails}
194
227
  *
195
- * @see {@link https://e621.wiki/#operations-Posts-regeneratePostThumbnails Documentation} for more details.
228
+ * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\#regenerate_thumbnails Documentation} for more details.
196
229
  */
197
230
  async regenerateThumbnails(id) {
198
- return regeneratePostThumbnails({
231
+ return staffPostPosts_regenerateThumbnails({
199
232
  client: this.client,
200
233
  path: { id },
201
234
  }).then((res) => {
@@ -204,84 +237,103 @@ export default class Posts extends Base {
204
237
  });
205
238
  }
206
239
  /**
207
- * Regenerate Post Videos
208
240
  *
209
241
  * You must be Janitor+.
210
242
  *
211
243
  * @requiresApiKeyAuth
212
244
  *
213
- * @operationId {@link https://e621.wiki/#operations-Posts-regeneratePostVideos regeneratePostVideos}
245
+ * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\#regenerate_videos staff/post/posts#regenerate_videos}
214
246
  *
215
- * @see {@link https://e621.wiki/#operations-Posts-regeneratePostVideos Documentation} for more details.
247
+ * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\#regenerate_videos Documentation} for more details.
216
248
  */
217
249
  async regenerateVideos(id) {
218
- return regeneratePostVideos({
250
+ return staffPostPosts_regenerateVideos({
219
251
  client: this.client,
220
252
  path: { id },
221
253
  }).then(res => this._handleResponse(res, 204, true));
222
254
  }
223
255
  /**
224
- * Revert Post
256
+ *
257
+ * You must have be Janitor+ and an Approver
258
+ *
259
+ * @requiresApiKeyAuth
260
+ *
261
+ * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\#reowner staff/post/posts#reowner}
262
+ *
263
+ * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\#reowner Documentation} for more details.
264
+ */
265
+ async reown(id, options) {
266
+ return staffPostPosts_reowner({
267
+ client: this.client,
268
+ path: { id },
269
+ body: prefixKeys(options, "reowner"),
270
+ redirect: "manual",
271
+ }).then(res => this._handleResponse(res, 302, true));
272
+ }
273
+ /**
225
274
  *
226
275
  * @requiresApiKeyAuth
227
276
  *
228
- * @operationId {@link https://e621.wiki/#operations-Posts-revertPost revertPost}
277
+ * @operationId {@link https://e621.wiki/#operations-Posts-posts\#revert posts#revert}
229
278
  *
230
- * @see {@link https://e621.wiki/#operations-Posts-revertPost Documentation} for more details.
279
+ * @see {@link https://e621.wiki/#operations-Posts-posts\#revert Documentation} for more details.
231
280
  */
232
281
  async revert(id, version_id) {
233
- return revertPost({
282
+ return posts_revert({
234
283
  client: this.client,
235
284
  path: { id },
236
285
  query: { version_id },
237
286
  }).then(res => this._handleResponse(res, 204, true));
238
287
  }
239
288
  /**
240
- * Search Posts
241
289
  *
242
- * @operationId {@link https://e621.wiki/#operations-Posts-searchPosts searchPosts}
290
+ * @operationId {@link https://e621.wiki/#operations-Posts-posts\#index posts#index}
243
291
  *
244
- * @see {@link https://e621.wiki/#operations-Posts-searchPosts Documentation} for more details.
292
+ * @see {@link https://e621.wiki/#operations-Posts-posts\#index Documentation} for more details.
245
293
  */
246
294
  async search(options) {
247
- return searchPosts({
295
+ return posts_index({
248
296
  client: this.client,
249
297
  query: options,
250
298
  }).then((res) => {
251
299
  const data = this._handleResponse(res, 200, true);
252
- return data.posts.map(post => new Post(this.e621, post));
300
+ if (options?.md5) {
301
+ const raw = (options.v2 ? data : data.post);
302
+ return wrapPost(this.e621, raw, options.v2, options.mode);
303
+ }
304
+ const raw = (options?.v2 ? data : data.posts);
305
+ return wrapPosts(this.e621, raw, options?.v2, options?.mode);
253
306
  });
254
307
  }
255
308
  /**
256
- * Get Post In Sequence
257
309
  *
258
- * @operationId {@link https://e621.wiki/#operations-Posts-getPostInSequence getPostInSequence}
310
+ * @operationId {@link https://e621.wiki/#operations-Posts-posts\#show_seq posts#show_seq}
259
311
  *
260
- * @see {@link https://e621.wiki/#operations-Posts-getPostInSequence Documentation} for more details.
312
+ * @see {@link https://e621.wiki/#operations-Posts-posts\#show_seq Documentation} for more details.
261
313
  */
262
- async sequence(id, seq) {
263
- return getPostInSequence({
314
+ async sequence(id, options) {
315
+ return posts_showSeq({
264
316
  client: this.client,
265
317
  path: { id },
266
- query: { seq },
318
+ query: options,
267
319
  }).then((res) => {
268
320
  const data = this._handleResponse(res, 200, true);
269
- return new Post(this.e621, data.post);
321
+ const raw = (options?.v2 ? data : data.post);
322
+ return wrapPost(this.e621, raw, options?.v2, options?.mode);
270
323
  });
271
324
  }
272
325
  /**
273
- * Undelete Post
274
326
  *
275
327
  * You must have the "Approve Posts" permission.
276
328
  *
277
329
  * @requiresApiKeyAuth
278
330
  *
279
- * @operationId {@link https://e621.wiki/#operations-Posts-undeletePost undeletePost}
331
+ * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\#undelete staff/post/posts#undelete}
280
332
  *
281
- * @see {@link https://e621.wiki/#operations-Posts-undeletePost Documentation} for more details.
333
+ * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\#undelete Documentation} for more details.
282
334
  */
283
335
  async undelete(id) {
284
- return undeletePost({
336
+ return staffPostPosts_undelete({
285
337
  client: this.client,
286
338
  path: { id },
287
339
  }).then((res) => {
@@ -290,126 +342,174 @@ export default class Posts extends Base {
290
342
  });
291
343
  }
292
344
  /**
293
- * Update Post IQDB
345
+ *
346
+ * Most errors are silently swallowed.
347
+ *
348
+ * @requiresApiKeyAuth
349
+ *
350
+ * @operationId {@link https://e621.wiki/#operations-Posts-posts\#update posts#update}
351
+ *
352
+ * @see {@link https://e621.wiki/#operations-Posts-posts\#update Documentation} for more details.
353
+ */
354
+ async update(id, options) {
355
+ const { v2, mode, ...body } = (options ?? {});
356
+ return posts_update({
357
+ client: this.client,
358
+ path: { id },
359
+ query: { v2, mode },
360
+ body,
361
+ }).then((res) => {
362
+ const data = this._handleResponse(res, 200, true);
363
+ const raw = (v2 ? data : data.post);
364
+ return wrapPost(this.e621, raw, v2, mode);
365
+ });
366
+ }
367
+ /**
294
368
  *
295
369
  * You must be Admin+.
296
370
  *
297
371
  * @requiresApiKeyAuth
298
372
  *
299
- * @operationId {@link https://e621.wiki/#operations-Posts-updatePostIqdb updatePostIqdb}
373
+ * @operationId {@link https://e621.wiki/#operations-Posts-posts\#update_iqdb posts#update_iqdb}
300
374
  *
301
- * @see {@link https://e621.wiki/#operations-Posts-updatePostIqdb Documentation} for more details.
375
+ * @see {@link https://e621.wiki/#operations-Posts-posts\#update_iqdb Documentation} for more details.
302
376
  */
303
- async updateIqdb(id) {
304
- return updatePostIqdb({
377
+ async updateIqdb(id, options) {
378
+ return posts_updateIqdb({
305
379
  client: this.client,
306
380
  path: { id },
381
+ query: options,
307
382
  }).then((res) => {
308
383
  const data = this._handleResponse(res, 200, true);
309
- return new Post(this.e621, data.post);
384
+ const raw = (options?.v2 ? data : data.post);
385
+ return wrapPost(this.e621, raw, options?.v2, options?.mode);
310
386
  });
311
387
  }
312
388
  }
313
389
  __decorate([
314
- OperationID("aiCheckPost"),
390
+ OperationID("staff/post/posts#ai_check"),
315
391
  __metadata("design:type", Function),
316
392
  __metadata("design:paramtypes", [Number]),
317
393
  __metadata("design:returntype", Promise)
318
394
  ], Posts.prototype, "aiCheck", null);
319
395
  __decorate([
320
- OperationID("copyNotesToPost"),
396
+ OperationID("posts#copy_notes"),
321
397
  __metadata("design:type", Function),
322
398
  __metadata("design:paramtypes", [Number, Number]),
323
399
  __metadata("design:returntype", Promise)
324
400
  ], Posts.prototype, "copyNotes", null);
325
401
  __decorate([
326
- OperationID("deletePost"),
402
+ OperationID("staff/post/posts#delete"),
327
403
  __metadata("design:type", Function),
328
404
  __metadata("design:paramtypes", [Number, Object]),
329
405
  __metadata("design:returntype", Promise)
330
406
  ], Posts.prototype, "delete", null);
331
407
  __decorate([
332
- OperationID("expungePost"),
408
+ OperationID("staff/post/posts#expunge"),
333
409
  __metadata("design:type", Function),
334
410
  __metadata("design:paramtypes", [Number, String]),
335
411
  __metadata("design:returntype", Promise)
336
412
  ], Posts.prototype, "expunge", null);
337
413
  __decorate([
338
- OperationID("listPostFavorites"),
414
+ OperationID("post_favorites#index"),
339
415
  __metadata("design:type", Function),
340
416
  __metadata("design:paramtypes", [Number, Object]),
341
417
  __metadata("design:returntype", Promise)
342
418
  ], Posts.prototype, "favorites", null);
343
419
  __decorate([
344
- OperationID("getPost"),
420
+ OperationID("posts#show"),
345
421
  __metadata("design:type", Function),
346
- __metadata("design:paramtypes", [Number]),
422
+ __metadata("design:paramtypes", [Number, typeof (_a = typeof O !== "undefined" && O) === "function" ? _a : Object]),
347
423
  __metadata("design:returntype", Promise)
348
424
  ], Posts.prototype, "get", null);
349
425
  __decorate([
350
- OperationID("markPostAsTranslated"),
426
+ OperationID("posts#mark_as_translated"),
351
427
  __metadata("design:type", Function),
352
- __metadata("design:paramtypes", [Number]),
428
+ __metadata("design:paramtypes", [Number, typeof (_b = typeof O !== "undefined" && O) === "function" ? _b : Object]),
353
429
  __metadata("design:returntype", Promise)
354
430
  ], Posts.prototype, "markTranslated", null);
355
431
  __decorate([
356
- OperationID("movePostFavorites"),
432
+ OperationID("staff/post/posts#move_favorites"),
357
433
  __metadata("design:type", Function),
358
434
  __metadata("design:paramtypes", [Number, Object]),
359
435
  __metadata("design:returntype", Promise)
360
436
  ], Posts.prototype, "moveFavorites", null);
361
437
  __decorate([
362
- OperationID("getRandomPost"),
438
+ OperationID("staff/post/posts#previous_owners"),
439
+ __metadata("design:type", Function),
440
+ __metadata("design:paramtypes", [Number]),
441
+ __metadata("design:returntype", Promise)
442
+ ], Posts.prototype, "previousOwners", null);
443
+ __decorate([
444
+ OperationID("posts#random"),
363
445
  __metadata("design:type", Function),
364
- __metadata("design:paramtypes", [String]),
446
+ __metadata("design:paramtypes", [typeof (_c = typeof O !== "undefined" && O) === "function" ? _c : Object]),
365
447
  __metadata("design:returntype", Promise)
366
448
  ], Posts.prototype, "random", null);
367
449
  __decorate([
368
- OperationID("getRecommendedPosts"),
450
+ OperationID("post_recommendations#artist"),
451
+ __metadata("design:type", Function),
452
+ __metadata("design:paramtypes", [Number, Object]),
453
+ __metadata("design:returntype", Promise)
454
+ ], Posts.prototype, "recommendedByArtist", null);
455
+ __decorate([
456
+ OperationID("post_recommendations#tags"),
369
457
  __metadata("design:type", Function),
370
458
  __metadata("design:paramtypes", [Number, Object]),
371
459
  __metadata("design:returntype", Promise)
372
- ], Posts.prototype, "recommended", null);
460
+ ], Posts.prototype, "recommendedByTags", null);
373
461
  __decorate([
374
- OperationID("regeneratePostThumbnails"),
462
+ OperationID("staff/post/posts#regenerate_thumbnails"),
375
463
  __metadata("design:type", Function),
376
464
  __metadata("design:paramtypes", [Number]),
377
465
  __metadata("design:returntype", Promise)
378
466
  ], Posts.prototype, "regenerateThumbnails", null);
379
467
  __decorate([
380
- OperationID("regeneratePostVideos"),
468
+ OperationID("staff/post/posts#regenerate_videos"),
381
469
  __metadata("design:type", Function),
382
470
  __metadata("design:paramtypes", [Number]),
383
471
  __metadata("design:returntype", Promise)
384
472
  ], Posts.prototype, "regenerateVideos", null);
385
473
  __decorate([
386
- OperationID("revertPost"),
474
+ OperationID("staff/post/posts#reowner"),
475
+ __metadata("design:type", Function),
476
+ __metadata("design:paramtypes", [Number, Object]),
477
+ __metadata("design:returntype", Promise)
478
+ ], Posts.prototype, "reown", null);
479
+ __decorate([
480
+ OperationID("posts#revert"),
387
481
  __metadata("design:type", Function),
388
482
  __metadata("design:paramtypes", [Number, Number]),
389
483
  __metadata("design:returntype", Promise)
390
484
  ], Posts.prototype, "revert", null);
391
485
  __decorate([
392
- OperationID("searchPosts"),
486
+ OperationID("posts#index"),
393
487
  __metadata("design:type", Function),
394
- __metadata("design:paramtypes", [Object]),
488
+ __metadata("design:paramtypes", [typeof (_d = typeof O !== "undefined" && O) === "function" ? _d : Object]),
395
489
  __metadata("design:returntype", Promise)
396
490
  ], Posts.prototype, "search", null);
397
491
  __decorate([
398
- OperationID("getPostInSequence"),
492
+ OperationID("posts#show_seq"),
399
493
  __metadata("design:type", Function),
400
- __metadata("design:paramtypes", [Number, Object]),
494
+ __metadata("design:paramtypes", [Number, typeof (_e = typeof O !== "undefined" && O) === "function" ? _e : Object]),
401
495
  __metadata("design:returntype", Promise)
402
496
  ], Posts.prototype, "sequence", null);
403
497
  __decorate([
404
- OperationID("undeletePost"),
498
+ OperationID("staff/post/posts#undelete"),
405
499
  __metadata("design:type", Function),
406
500
  __metadata("design:paramtypes", [Number]),
407
501
  __metadata("design:returntype", Promise)
408
502
  ], Posts.prototype, "undelete", null);
409
503
  __decorate([
410
- OperationID("updatePostIqdb"),
504
+ OperationID("posts#update"),
411
505
  __metadata("design:type", Function),
412
- __metadata("design:paramtypes", [Number]),
506
+ __metadata("design:paramtypes", [Number, typeof (_f = typeof O !== "undefined" && O) === "function" ? _f : Object]),
507
+ __metadata("design:returntype", Promise)
508
+ ], Posts.prototype, "update", null);
509
+ __decorate([
510
+ OperationID("posts#update_iqdb"),
511
+ __metadata("design:type", Function),
512
+ __metadata("design:paramtypes", [Number, typeof (_g = typeof O !== "undefined" && O) === "function" ? _g : Object]),
413
513
  __metadata("design:returntype", Promise)
414
514
  ], Posts.prototype, "updateIqdb", null);
415
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9zdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvbW9kdWxlcy9Qb3N0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILFdBQVcsRUFDWCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFdBQVcsRUFDWCxPQUFPLEVBQ1AsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQixVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixjQUFjLEdBQ2pCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxJQUFJLE1BQU0sbUJBQW1CLENBQUM7QUFDckMsT0FBTyxFQUFFLFdBQVcsRUFBd0YsTUFBTSxZQUFZLENBQUM7QUFFL0gsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sUUFBUSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sU0FBUyxNQUFNLGtCQUFrQixDQUFDO0FBdUJ6Qyx3QkFBd0I7QUFDeEIsTUFBTSxDQUFDLE9BQU8sT0FBTyxLQUFNLFNBQVEsSUFBSTtJQUNuQyxJQUFJLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUMsS0FBSyxHQUFHLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTlDOzs7Ozs7Ozs7O09BVUE7SUFFTSxBQUFOLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBVTtRQUNwQixNQUFNLEdBQUcsR0FBRyxNQUFNLFdBQVcsQ0FBQztZQUMxQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ1osUUFBUSxFQUFFLFFBQVE7U0FDckIsQ0FB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
515
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9zdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvbW9kdWxlcy9Qb3N0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIsZUFBZSxFQUNmLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsVUFBVSxFQUNWLGFBQWEsRUFDYiw2QkFBNkIsRUFDN0IsWUFBWSxFQUNaLDBCQUEwQixFQUMxQix3QkFBd0IsRUFDeEIsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUN0Qiw0QkFBNEIsRUFDNUIsbUNBQW1DLEVBQ25DLCtCQUErQixFQUMvQixzQkFBc0IsRUFDdEIsWUFBWSxFQUNaLFdBQVcsRUFDWCx1QkFBdUIsRUFDdkIsWUFBWSxFQUNaLGdCQUFnQixHQUNuQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sV0FBVyxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sSUFBSSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JDLE9BQU8sYUFBYSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFxRSxNQUFNLFlBQVksQ0FBQztBQUV4SCxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFDN0IsT0FBTyxFQUF1RCxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUE2RDdHLHdCQUF3QjtBQUN4QixNQUFNLENBQUMsT0FBTyxPQUFPLEtBQU0sU0FBUSxJQUFJO0lBQ25DLE1BQU0sQ0FBVSxTQUFTLEdBQUcsT0FBZ0IsQ0FBQztJQUM3Qzs7Ozs7Ozs7O09BU0E7SUFFTSxBQUFOLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBVTtRQUNwQixNQUFNLEdBQUcsR0FBRyxNQUFNLHNCQUFzQixDQUFDO1lBQ3JDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDWixRQUFRLEVBQUUsUUFB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