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