e621 2.2.6 → 3.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 (386) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +14 -41
  3. package/dist/lib/Debug.d.ts +1 -0
  4. package/dist/lib/Debug.js +16 -0
  5. package/dist/lib/errors.d.ts +8 -0
  6. package/dist/lib/errors.js +37 -0
  7. package/dist/lib/generated/client/client.d.ts +2 -0
  8. package/dist/lib/generated/client/client.js +236 -0
  9. package/dist/lib/generated/client/index.d.ts +8 -0
  10. package/dist/lib/generated/client/index.js +7 -0
  11. package/dist/lib/generated/client/types.d.ts +117 -0
  12. package/dist/lib/generated/client/types.js +3 -0
  13. package/dist/lib/generated/client/utils.d.ts +33 -0
  14. package/dist/lib/generated/client/utils.js +229 -0
  15. package/dist/lib/generated/client.d.ts +12 -0
  16. package/dist/lib/generated/client.js +4 -0
  17. package/dist/lib/generated/core/auth.d.ts +18 -0
  18. package/dist/lib/generated/core/auth.js +15 -0
  19. package/dist/lib/generated/core/bodySerializer.d.ts +25 -0
  20. package/dist/lib/generated/core/bodySerializer.js +58 -0
  21. package/dist/lib/generated/core/params.d.ts +43 -0
  22. package/dist/lib/generated/core/params.js +101 -0
  23. package/dist/lib/generated/core/pathSerializer.d.ts +33 -0
  24. package/dist/lib/generated/core/pathSerializer.js +107 -0
  25. package/dist/lib/generated/core/queryKeySerializer.d.ts +18 -0
  26. package/dist/lib/generated/core/queryKeySerializer.js +93 -0
  27. package/dist/lib/generated/core/serverSentEvents.d.ts +71 -0
  28. package/dist/lib/generated/core/serverSentEvents.js +134 -0
  29. package/dist/lib/generated/core/types.d.ts +78 -0
  30. package/dist/lib/generated/core/types.js +3 -0
  31. package/dist/lib/generated/core/utils.d.ts +19 -0
  32. package/dist/lib/generated/core/utils.js +88 -0
  33. package/dist/lib/generated/schemas.d.ts +2908 -0
  34. package/dist/lib/generated/schemas.js +3911 -0
  35. package/dist/lib/generated/sdk.d.ts +1373 -0
  36. package/dist/lib/generated/sdk.js +2557 -0
  37. package/dist/lib/generated/source.json +19299 -0
  38. package/dist/lib/generated/types.d.ts +9663 -0
  39. package/dist/lib/generated/types.js +3 -0
  40. package/dist/lib/generated.d.ts +4 -0
  41. package/dist/lib/generated.js +5 -0
  42. package/dist/lib/index.d.ts +58 -0
  43. package/dist/lib/index.js +74 -0
  44. package/dist/lib/models/ApiKey.d.ts +14 -0
  45. package/dist/lib/models/ApiKey.js +17 -0
  46. package/dist/lib/models/Artist.d.ts +61 -0
  47. package/dist/lib/models/Artist.js +86 -0
  48. package/dist/lib/models/ArtistUrl.d.ts +14 -0
  49. package/dist/lib/models/ArtistUrl.js +17 -0
  50. package/dist/lib/models/ArtistVersion.d.ts +14 -0
  51. package/dist/lib/models/ArtistVersion.js +17 -0
  52. package/dist/lib/models/AvoidPosting.d.ts +63 -0
  53. package/dist/lib/models/AvoidPosting.js +97 -0
  54. package/dist/lib/models/AvoidPostingVersion.d.ts +14 -0
  55. package/dist/lib/models/AvoidPostingVersion.js +17 -0
  56. package/dist/lib/models/Ban.d.ts +14 -0
  57. package/dist/lib/models/Ban.js +17 -0
  58. package/dist/lib/models/Base.d.ts +11 -0
  59. package/dist/lib/models/Base.js +39 -0
  60. package/dist/lib/models/Blip.d.ts +79 -0
  61. package/dist/lib/models/Blip.js +120 -0
  62. package/dist/lib/models/BulkUpdateRequest.d.ts +49 -0
  63. package/dist/lib/models/BulkUpdateRequest.js +75 -0
  64. package/dist/lib/models/Comment.d.ts +100 -0
  65. package/dist/lib/models/Comment.js +157 -0
  66. package/dist/lib/models/CurrentUser.d.ts +14 -0
  67. package/dist/lib/models/CurrentUser.js +17 -0
  68. package/dist/lib/models/DMail.d.ts +46 -0
  69. package/dist/lib/models/DMail.js +73 -0
  70. package/dist/lib/models/EditHistory.d.ts +14 -0
  71. package/dist/lib/models/EditHistory.js +17 -0
  72. package/dist/lib/models/EmailBlacklist.d.ts +26 -0
  73. package/dist/lib/models/EmailBlacklist.js +37 -0
  74. package/dist/lib/models/ForumPost.d.ts +97 -0
  75. package/dist/lib/models/ForumPost.js +154 -0
  76. package/dist/lib/models/ForumPostVote.d.ts +24 -0
  77. package/dist/lib/models/ForumPostVote.js +35 -0
  78. package/dist/lib/models/ForumTopic.d.ts +81 -0
  79. package/dist/lib/models/ForumTopic.js +131 -0
  80. package/dist/lib/models/FullCurrentUser.d.ts +14 -0
  81. package/dist/lib/models/FullCurrentUser.js +17 -0
  82. package/dist/lib/models/FullUser.d.ts +14 -0
  83. package/dist/lib/models/FullUser.js +17 -0
  84. package/dist/lib/models/Help.d.ts +39 -0
  85. package/dist/lib/models/Help.js +57 -0
  86. package/dist/lib/models/IpBan.d.ts +28 -0
  87. package/dist/lib/models/IpBan.js +39 -0
  88. package/dist/lib/models/IqdbPost.d.ts +14 -0
  89. package/dist/lib/models/IqdbPost.js +17 -0
  90. package/dist/lib/models/Mascot.d.ts +39 -0
  91. package/dist/lib/models/Mascot.js +57 -0
  92. package/dist/lib/models/ModAction.d.ts +14 -0
  93. package/dist/lib/models/ModAction.js +17 -0
  94. package/dist/lib/models/NewsUpdate.d.ts +39 -0
  95. package/dist/lib/models/NewsUpdate.js +57 -0
  96. package/dist/lib/models/Note.d.ts +45 -0
  97. package/dist/lib/models/Note.js +71 -0
  98. package/dist/lib/models/NoteVersion.d.ts +24 -0
  99. package/dist/lib/models/NoteVersion.js +35 -0
  100. package/dist/lib/models/Pool.d.ts +67 -0
  101. package/dist/lib/models/Pool.js +109 -0
  102. package/dist/lib/models/PoolVersion.d.ts +24 -0
  103. package/dist/lib/models/PoolVersion.js +35 -0
  104. package/dist/lib/models/Post.d.ts +174 -0
  105. package/dist/lib/models/Post.js +287 -0
  106. package/dist/lib/models/PostApproval.d.ts +26 -0
  107. package/dist/lib/models/PostApproval.js +37 -0
  108. package/dist/lib/models/PostDisapproval.d.ts +14 -0
  109. package/dist/lib/models/PostDisapproval.js +17 -0
  110. package/dist/lib/models/PostEvent.d.ts +14 -0
  111. package/dist/lib/models/PostEvent.js +17 -0
  112. package/dist/lib/models/PostFlag.d.ts +38 -0
  113. package/dist/lib/models/PostFlag.js +57 -0
  114. package/dist/lib/models/PostReplacement.d.ts +75 -0
  115. package/dist/lib/models/PostReplacement.js +117 -0
  116. package/dist/lib/models/PostSet.d.ts +75 -0
  117. package/dist/lib/models/PostSet.js +117 -0
  118. package/dist/lib/models/PostVersion.d.ts +58 -0
  119. package/dist/lib/models/PostVersion.js +93 -0
  120. package/dist/lib/models/StaffNote.d.ts +53 -0
  121. package/dist/lib/models/StaffNote.js +79 -0
  122. package/dist/lib/models/Tag.d.ts +59 -0
  123. package/dist/lib/models/Tag.js +91 -0
  124. package/dist/lib/models/TagAlias.d.ts +51 -0
  125. package/dist/lib/models/TagAlias.js +77 -0
  126. package/dist/lib/models/TagCorrection.d.ts +15 -0
  127. package/dist/lib/models/TagCorrection.js +20 -0
  128. package/dist/lib/models/TagImplication.d.ts +51 -0
  129. package/dist/lib/models/TagImplication.js +77 -0
  130. package/dist/lib/models/TagPreview.d.ts +14 -0
  131. package/dist/lib/models/TagPreview.js +17 -0
  132. package/dist/lib/models/TagTypeVersion.d.ts +14 -0
  133. package/dist/lib/models/TagTypeVersion.js +17 -0
  134. package/dist/lib/models/Takedown.d.ts +87 -0
  135. package/dist/lib/models/Takedown.js +137 -0
  136. package/dist/lib/models/Ticket.d.ts +51 -0
  137. package/dist/lib/models/Ticket.js +77 -0
  138. package/dist/lib/models/Upload.d.ts +14 -0
  139. package/dist/lib/models/Upload.js +17 -0
  140. package/dist/lib/models/UploadWhitelist.d.ts +37 -0
  141. package/dist/lib/models/UploadWhitelist.js +55 -0
  142. package/dist/lib/models/User.d.ts +97 -0
  143. package/dist/lib/models/User.js +160 -0
  144. package/dist/lib/models/UserFeedback.d.ts +63 -0
  145. package/dist/lib/models/UserFeedback.js +97 -0
  146. package/dist/lib/models/UserNameChangeRequest.d.ts +26 -0
  147. package/dist/lib/models/UserNameChangeRequest.js +37 -0
  148. package/dist/lib/models/WikiPage.d.ts +49 -0
  149. package/dist/lib/models/WikiPage.js +75 -0
  150. package/dist/lib/models/WikiPageVersion.d.ts +24 -0
  151. package/dist/lib/models/WikiPageVersion.js +35 -0
  152. package/dist/lib/models/index.d.ts +53 -0
  153. package/dist/lib/models/index.js +54 -0
  154. package/dist/lib/modules/ArtistUrls.d.ts +18 -0
  155. package/dist/lib/modules/ArtistUrls.js +28 -0
  156. package/dist/lib/modules/ArtistVersions.d.ts +18 -0
  157. package/dist/lib/modules/ArtistVersions.js +28 -0
  158. package/dist/lib/modules/Artists.d.ts +90 -0
  159. package/dist/lib/modules/Artists.js +151 -0
  160. package/dist/lib/modules/AvoidPostingVersions.d.ts +18 -0
  161. package/dist/lib/modules/AvoidPostingVersions.js +28 -0
  162. package/dist/lib/modules/AvoidPostings.d.ts +112 -0
  163. package/dist/lib/modules/AvoidPostings.js +181 -0
  164. package/dist/lib/modules/Bans.d.ts +26 -0
  165. package/dist/lib/modules/Bans.js +47 -0
  166. package/dist/lib/modules/Base.d.ts +20 -0
  167. package/dist/lib/modules/Base.js +39 -0
  168. package/dist/lib/modules/Blips.d.ts +105 -0
  169. package/dist/lib/modules/Blips.js +188 -0
  170. package/dist/lib/modules/BulkUpdateRequests.d.ts +76 -0
  171. package/dist/lib/modules/BulkUpdateRequests.js +136 -0
  172. package/dist/lib/modules/CommentVotes.d.ts +30 -0
  173. package/dist/lib/modules/CommentVotes.js +56 -0
  174. package/dist/lib/modules/Comments.d.ts +112 -0
  175. package/dist/lib/modules/Comments.js +195 -0
  176. package/dist/lib/modules/DMails.d.ts +70 -0
  177. package/dist/lib/modules/DMails.js +134 -0
  178. package/dist/lib/modules/DText.d.ts +18 -0
  179. package/dist/lib/modules/DText.js +32 -0
  180. package/dist/lib/modules/EditHistories.d.ts +34 -0
  181. package/dist/lib/modules/EditHistories.js +56 -0
  182. package/dist/lib/modules/EmailBlacklists.d.ts +45 -0
  183. package/dist/lib/modules/EmailBlacklists.js +74 -0
  184. package/dist/lib/modules/Favorites.d.ts +38 -0
  185. package/dist/lib/modules/Favorites.js +73 -0
  186. package/dist/lib/modules/ForumPosts.d.ts +107 -0
  187. package/dist/lib/modules/ForumPosts.js +190 -0
  188. package/dist/lib/modules/ForumTopics.d.ts +125 -0
  189. package/dist/lib/modules/ForumTopics.js +237 -0
  190. package/dist/lib/modules/HelpPages.d.ts +67 -0
  191. package/dist/lib/modules/HelpPages.js +118 -0
  192. package/dist/lib/modules/IpBans.d.ts +47 -0
  193. package/dist/lib/modules/IpBans.js +76 -0
  194. package/dist/lib/modules/IqdbQueries.d.ts +36 -0
  195. package/dist/lib/modules/IqdbQueries.js +63 -0
  196. package/dist/lib/modules/Mascots.d.ts +60 -0
  197. package/dist/lib/modules/Mascots.js +98 -0
  198. package/dist/lib/modules/ModActions.d.ts +34 -0
  199. package/dist/lib/modules/ModActions.js +55 -0
  200. package/dist/lib/modules/NewsUpdates.d.ts +60 -0
  201. package/dist/lib/modules/NewsUpdates.js +98 -0
  202. package/dist/lib/modules/NoteVersions.d.ts +18 -0
  203. package/dist/lib/modules/NoteVersions.js +28 -0
  204. package/dist/lib/modules/Notes.d.ts +72 -0
  205. package/dist/lib/modules/Notes.js +133 -0
  206. package/dist/lib/modules/PoolVersions.d.ts +18 -0
  207. package/dist/lib/modules/PoolVersions.js +28 -0
  208. package/dist/lib/modules/Pools.d.ts +104 -0
  209. package/dist/lib/modules/Pools.js +197 -0
  210. package/dist/lib/modules/Popular.d.ts +18 -0
  211. package/dist/lib/modules/Popular.js +31 -0
  212. package/dist/lib/modules/PostApprovals.d.ts +42 -0
  213. package/dist/lib/modules/PostApprovals.js +77 -0
  214. package/dist/lib/modules/PostDisapprovals.d.ts +37 -0
  215. package/dist/lib/modules/PostDisapprovals.js +55 -0
  216. package/dist/lib/modules/PostEvents.d.ts +20 -0
  217. package/dist/lib/modules/PostEvents.js +30 -0
  218. package/dist/lib/modules/PostFlags.d.ts +53 -0
  219. package/dist/lib/modules/PostFlags.js +93 -0
  220. package/dist/lib/modules/PostReplacements.d.ts +94 -0
  221. package/dist/lib/modules/PostReplacements.js +167 -0
  222. package/dist/lib/modules/PostSets.d.ts +116 -0
  223. package/dist/lib/modules/PostSets.js +211 -0
  224. package/dist/lib/modules/PostVersions.d.ts +51 -0
  225. package/dist/lib/modules/PostVersions.js +94 -0
  226. package/dist/lib/modules/PostVotes.d.ts +28 -0
  227. package/dist/lib/modules/PostVotes.js +54 -0
  228. package/dist/lib/modules/Posts.d.ts +193 -0
  229. package/dist/lib/modules/Posts.js +395 -0
  230. package/dist/lib/modules/RelatedTags.d.ts +19 -0
  231. package/dist/lib/modules/RelatedTags.js +29 -0
  232. package/dist/lib/modules/StaffNotes.d.ts +80 -0
  233. package/dist/lib/modules/StaffNotes.js +140 -0
  234. package/dist/lib/modules/TagAliases.d.ts +80 -0
  235. package/dist/lib/modules/TagAliases.js +140 -0
  236. package/dist/lib/modules/TagCorrections.d.ts +25 -0
  237. package/dist/lib/modules/TagCorrections.js +52 -0
  238. package/dist/lib/modules/TagImplications.d.ts +80 -0
  239. package/dist/lib/modules/TagImplications.js +140 -0
  240. package/dist/lib/modules/TagTypeVersions.d.ts +18 -0
  241. package/dist/lib/modules/TagTypeVersions.js +28 -0
  242. package/dist/lib/modules/Tags.d.ts +64 -0
  243. package/dist/lib/modules/Tags.js +116 -0
  244. package/dist/lib/modules/Takedowns.d.ts +114 -0
  245. package/dist/lib/modules/Takedowns.js +211 -0
  246. package/dist/lib/modules/Tickets.d.ts +71 -0
  247. package/dist/lib/modules/Tickets.js +123 -0
  248. package/dist/lib/modules/UploadWhitelists.d.ts +68 -0
  249. package/dist/lib/modules/UploadWhitelists.js +117 -0
  250. package/dist/lib/modules/Uploads.d.ts +42 -0
  251. package/dist/lib/modules/Uploads.js +78 -0
  252. package/dist/lib/modules/UserFeedbacks.d.ts +94 -0
  253. package/dist/lib/modules/UserFeedbacks.js +165 -0
  254. package/dist/lib/modules/UserNameChangeRequests.d.ts +59 -0
  255. package/dist/lib/modules/UserNameChangeRequests.js +99 -0
  256. package/dist/lib/modules/Users.d.ts +132 -0
  257. package/dist/lib/modules/Users.js +263 -0
  258. package/dist/lib/modules/WikiPageVersions.d.ts +26 -0
  259. package/dist/lib/modules/WikiPageVersions.js +47 -0
  260. package/dist/lib/modules/WikiPages.d.ts +76 -0
  261. package/dist/lib/modules/WikiPages.js +137 -0
  262. package/dist/lib/modules/admin/Users.d.ts +45 -0
  263. package/dist/lib/modules/admin/Users.js +77 -0
  264. package/dist/lib/modules/comments/Votes.d.ts +26 -0
  265. package/dist/lib/modules/comments/Votes.js +51 -0
  266. package/dist/lib/modules/forum_posts/Votes.d.ts +26 -0
  267. package/dist/lib/modules/forum_posts/Votes.js +51 -0
  268. package/dist/lib/modules/index.d.ts +172 -0
  269. package/dist/lib/modules/index.js +114 -0
  270. package/dist/lib/modules/posts/Flag.d.ts +16 -0
  271. package/dist/lib/modules/posts/Flag.js +31 -0
  272. package/dist/lib/modules/posts/Votes.d.ts +26 -0
  273. package/dist/lib/modules/posts/Votes.js +51 -0
  274. package/dist/lib/modules/users/DMails.d.ts +29 -0
  275. package/dist/lib/modules/users/DMails.js +55 -0
  276. package/dist/lib/util.d.ts +48 -0
  277. package/dist/lib/util.js +49 -0
  278. package/dist/package.json +73 -0
  279. package/package.json +46 -20
  280. package/tsconfig.json +54 -0
  281. package/.mocharc.json +0 -6
  282. package/.ncurc.json +0 -3
  283. package/.node-version +0 -1
  284. package/Features/Artists.md +0 -39
  285. package/Features/Blips.md +0 -33
  286. package/Features/E621SearchInconsistencies.md +0 -54
  287. package/Features/FuturePlans.md +0 -50
  288. package/Features/Notes.md +0 -34
  289. package/Features/Pools.md +0 -38
  290. package/Features/PostFlags.md +0 -31
  291. package/Features/PostSets.md +0 -36
  292. package/Features/Posts.md +0 -46
  293. package/Features/README.md +0 -15
  294. package/Features/Tags.md +0 -34
  295. package/Features/Takedowns.md +0 -32
  296. package/Features/UserFeedback.md +0 -32
  297. package/Features/Users.md +0 -36
  298. package/Features/WikiPages.md +0 -36
  299. package/build/package.json +0 -45
  300. package/build/src/index.d.ts +0 -68
  301. package/build/src/index.js +0 -194
  302. package/build/src/modules/Artists.d.ts +0 -128
  303. package/build/src/modules/Artists.js +0 -295
  304. package/build/src/modules/Blips.d.ts +0 -79
  305. package/build/src/modules/Blips.js +0 -157
  306. package/build/src/modules/Notes.d.ts +0 -88
  307. package/build/src/modules/Notes.js +0 -189
  308. package/build/src/modules/Pools.d.ts +0 -130
  309. package/build/src/modules/Pools.js +0 -261
  310. package/build/src/modules/PostFlags.d.ts +0 -55
  311. package/build/src/modules/PostFlags.js +0 -126
  312. package/build/src/modules/PostSets.d.ts +0 -102
  313. package/build/src/modules/PostSets.js +0 -208
  314. package/build/src/modules/Posts.d.ts +0 -154
  315. package/build/src/modules/Posts.js +0 -390
  316. package/build/src/modules/Tags.d.ts +0 -78
  317. package/build/src/modules/Tags.js +0 -174
  318. package/build/src/modules/Takedowns.d.ts +0 -81
  319. package/build/src/modules/Takedowns.js +0 -195
  320. package/build/src/modules/UserFeedback.d.ts +0 -66
  321. package/build/src/modules/UserFeedback.js +0 -136
  322. package/build/src/modules/Users.d.ts +0 -117
  323. package/build/src/modules/Users.js +0 -261
  324. package/build/src/modules/WikiPages.d.ts +0 -107
  325. package/build/src/modules/WikiPages.js +0 -220
  326. package/build/src/structures/Artist.d.ts +0 -36
  327. package/build/src/structures/Artist.js +0 -51
  328. package/build/src/structures/ArtistHistory.d.ts +0 -39
  329. package/build/src/structures/ArtistHistory.js +0 -50
  330. package/build/src/structures/AuthenticatedUser.d.ts +0 -109
  331. package/build/src/structures/AuthenticatedUser.js +0 -128
  332. package/build/src/structures/Blip.d.ts +0 -66
  333. package/build/src/structures/Blip.js +0 -85
  334. package/build/src/structures/Note.d.ts +0 -32
  335. package/build/src/structures/Note.js +0 -41
  336. package/build/src/structures/NoteHistory.d.ts +0 -38
  337. package/build/src/structures/NoteHistory.js +0 -47
  338. package/build/src/structures/Pool.d.ts +0 -85
  339. package/build/src/structures/Pool.js +0 -112
  340. package/build/src/structures/PoolHistory.d.ts +0 -43
  341. package/build/src/structures/PoolHistory.js +0 -54
  342. package/build/src/structures/Post.d.ts +0 -157
  343. package/build/src/structures/Post.js +0 -170
  344. package/build/src/structures/PostApproval.d.ts +0 -25
  345. package/build/src/structures/PostApproval.js +0 -33
  346. package/build/src/structures/PostFlag.d.ts +0 -38
  347. package/build/src/structures/PostFlag.js +0 -47
  348. package/build/src/structures/PostHistory.d.ts +0 -52
  349. package/build/src/structures/PostHistory.js +0 -93
  350. package/build/src/structures/PostSet.d.ts +0 -71
  351. package/build/src/structures/PostSet.js +0 -93
  352. package/build/src/structures/Tag.d.ts +0 -61
  353. package/build/src/structures/Tag.js +0 -87
  354. package/build/src/structures/TagHistory.d.ts +0 -28
  355. package/build/src/structures/TagHistory.js +0 -36
  356. package/build/src/structures/Takedown.d.ts +0 -49
  357. package/build/src/structures/Takedown.js +0 -64
  358. package/build/src/structures/User.d.ts +0 -62
  359. package/build/src/structures/User.js +0 -80
  360. package/build/src/structures/WikiPage.d.ts +0 -17
  361. package/build/src/structures/WikiPage.js +0 -27
  362. package/build/src/structures/WikiPageHistory.d.ts +0 -38
  363. package/build/src/structures/WikiPageHistory.js +0 -49
  364. package/build/src/types/artists.d.ts +0 -82
  365. package/build/src/types/blips.d.ts +0 -37
  366. package/build/src/types/index.d.ts +0 -96
  367. package/build/src/types/notes.d.ts +0 -64
  368. package/build/src/types/pools.d.ts +0 -62
  369. package/build/src/types/post_flags.d.ts +0 -36
  370. package/build/src/types/post_sets.d.ts +0 -33
  371. package/build/src/types/posts.d.ts +0 -181
  372. package/build/src/types/tags.d.ts +0 -56
  373. package/build/src/types/takedowns.d.ts +0 -62
  374. package/build/src/types/user_feedback.d.ts +0 -27
  375. package/build/src/types/users.d.ts +0 -277
  376. package/build/src/types/wiki_pages.d.ts +0 -66
  377. package/build/src/util/Debug.d.ts +0 -1
  378. package/build/src/util/Debug.js +0 -16
  379. package/build/src/util/FormHelper.d.ts +0 -9
  380. package/build/src/util/FormHelper.js +0 -15
  381. package/build/src/util/MultipartData.d.ts +0 -7
  382. package/build/src/util/MultipartData.js +0 -39
  383. package/build/src/util/RequestHandler.d.ts +0 -38
  384. package/build/src/util/RequestHandler.js +0 -343
  385. package/build/src/util/Timer.d.ts +0 -6
  386. package/build/src/util/Timer.js +0 -74
@@ -0,0 +1,2557 @@
1
+ // This file is auto-generated by @hey-api/openapi-ts
2
+ import { client } from './client.js';
3
+ import { formDataBodySerializer, urlSearchParamsBodySerializer } from './client/index.js';
4
+ /**
5
+ * Get API Keys
6
+ *
7
+ * Requires [browser authentication](#operations-Sessions-login) (username & password), as well as hourly password confirmations (reauthentication).
8
+ */
9
+ export const getApiKeys = (options) => (options?.client ?? client).get({
10
+ security: [{
11
+ in: 'cookie',
12
+ name: '_danbooru_session',
13
+ type: 'apiKey'
14
+ }],
15
+ url: '/api_keys.json',
16
+ ...options
17
+ });
18
+ /**
19
+ * Create API Key
20
+ *
21
+ * Requires [browser authentication](#operations-Sessions-login) (username & password), as well as hourly password confirmations (reauthentication).
22
+ */
23
+ export const createApiKey = (options) => (options?.client ?? client).post({
24
+ ...urlSearchParamsBodySerializer,
25
+ security: [{
26
+ in: 'cookie',
27
+ name: '_danbooru_session',
28
+ type: 'apiKey'
29
+ }, {
30
+ in: 'query',
31
+ name: 'authenticity_token',
32
+ type: 'apiKey'
33
+ }],
34
+ url: '/api_keys.json',
35
+ ...options,
36
+ headers: {
37
+ 'Content-Type': 'application/x-www-form-urlencoded',
38
+ ...options?.headers
39
+ }
40
+ });
41
+ /**
42
+ * Delete API Key
43
+ *
44
+ * Requires [browser authentication](#operations-Sessions-login) (username & password), as well as hourly password confirmations (reauthentication).
45
+ */
46
+ export const deleteApiKey = (options) => (options.client ?? client).delete({
47
+ security: [{
48
+ in: 'cookie',
49
+ name: '_danbooru_session',
50
+ type: 'apiKey'
51
+ }, {
52
+ in: 'query',
53
+ name: 'authenticity_token',
54
+ type: 'apiKey'
55
+ }],
56
+ url: '/api_keys/{id}.json',
57
+ ...options
58
+ });
59
+ /**
60
+ * Regenerate API Key
61
+ *
62
+ * Requires [browser authentication](#operations-Sessions-login) (username & password), as well as hourly password confirmations (reauthentication).
63
+ */
64
+ export const regenerateApiKey = (options) => (options.client ?? client).post({
65
+ ...urlSearchParamsBodySerializer,
66
+ security: [{
67
+ in: 'cookie',
68
+ name: '_danbooru_session',
69
+ type: 'apiKey'
70
+ }, {
71
+ in: 'query',
72
+ name: 'authenticity_token',
73
+ type: 'apiKey'
74
+ }],
75
+ url: '/api_keys/{id}/regenerate.json',
76
+ ...options,
77
+ headers: {
78
+ 'Content-Type': 'application/x-www-form-urlencoded',
79
+ ...options.headers
80
+ }
81
+ });
82
+ /**
83
+ * Search Artists
84
+ */
85
+ export const searchArtists = (options) => (options?.client ?? client).get({ url: '/artists.json', ...options });
86
+ /**
87
+ * Create Artist
88
+ *
89
+ * `other_names` & `urls` are silently truncated to 25 entries.
90
+ * `notes` is silently truncated to the wiki page limit (250,000).
91
+ * Individual `other_names` are silently truncated to 100 characters.
92
+ *
93
+ */
94
+ export const createArtist = (options) => (options?.client ?? client).post({
95
+ ...urlSearchParamsBodySerializer,
96
+ security: [{ scheme: 'basic', type: 'http' }],
97
+ url: '/artists.json',
98
+ ...options,
99
+ headers: {
100
+ 'Content-Type': 'application/x-www-form-urlencoded',
101
+ ...options?.headers
102
+ }
103
+ });
104
+ /**
105
+ * Delete Artist
106
+ *
107
+ * You must be an Admin+ to delete an artist.
108
+ *
109
+ */
110
+ export const deleteArtist = (options) => (options.client ?? client).delete({
111
+ security: [{ scheme: 'basic', type: 'http' }],
112
+ url: '/artists/{idOrName}.json',
113
+ ...options
114
+ });
115
+ /**
116
+ * Get Artist
117
+ */
118
+ export const getArtist = (options) => (options.client ?? client).get({ url: '/artists/{idOrName}.json', ...options });
119
+ /**
120
+ * Edit Artist
121
+ *
122
+ * If an artist is locked, you must be Janitor+ to edit them.
123
+ * `other_names` & `urls` are silently truncated to 25 entries.
124
+ * `notes` is silently truncated to the wiki page limit (250,000).
125
+ * Individual `other_names` are silently truncated to 100 characters.
126
+ * If an artist is on the avoid posting list, you must have the bd staff user flag to edit name, other_names, or group_name.
127
+ *
128
+ */
129
+ export const editArtist = (options) => (options.client ?? client).patch({
130
+ ...urlSearchParamsBodySerializer,
131
+ security: [{ scheme: 'basic', type: 'http' }],
132
+ url: '/artists/{idOrName}.json',
133
+ ...options,
134
+ headers: {
135
+ 'Content-Type': 'application/x-www-form-urlencoded',
136
+ ...options.headers
137
+ }
138
+ });
139
+ /**
140
+ * Revert Artist
141
+ *
142
+ * If an artist is locked, you must be Janitor+ to revert them.
143
+ *
144
+ */
145
+ export const revertArtist = (options) => (options.client ?? client).put({
146
+ security: [{ scheme: 'basic', type: 'http' }],
147
+ url: '/artists/{idOrName}/revert.json',
148
+ ...options
149
+ });
150
+ /**
151
+ * Search Artist Versions
152
+ */
153
+ export const searchArtistVersions = (options) => (options?.client ?? client).get({ url: '/artist_versions.json', ...options });
154
+ /**
155
+ * Search Artist URLs
156
+ */
157
+ export const searchArtistUrls = (options) => (options?.client ?? client).get({
158
+ querySerializer: { parameters: { 'search[artist]': { object: { style: 'form' } } } },
159
+ url: '/artist_urls.json',
160
+ ...options
161
+ });
162
+ /**
163
+ * Search Avoid Posting Entries
164
+ */
165
+ export const searchAvoidPostings = (options) => (options?.client ?? client).get({ url: '/avoid_postings.json', ...options });
166
+ /**
167
+ * Create Avoid Posting Entry
168
+ *
169
+ * Must have the bd staff user flag.
170
+ */
171
+ export const createAvoidPosting = (options) => (options?.client ?? client).post({
172
+ ...urlSearchParamsBodySerializer,
173
+ security: [{ scheme: 'basic', type: 'http' }],
174
+ url: '/avoid_postings.json',
175
+ ...options,
176
+ headers: {
177
+ 'Content-Type': 'application/x-www-form-urlencoded',
178
+ ...options?.headers
179
+ }
180
+ });
181
+ /**
182
+ * Destroy Avoid Posting Entry
183
+ *
184
+ * Must have the bd staff user flag.
185
+ */
186
+ export const destroyAvoidPosting = (options) => (options.client ?? client).delete({
187
+ security: [{ scheme: 'basic', type: 'http' }],
188
+ url: '/avoid_postings/{idOrName}.json',
189
+ ...options
190
+ });
191
+ /**
192
+ * Get Avoid Posting Entry
193
+ */
194
+ export const getAvoidPosting = (options) => (options.client ?? client).get({ url: '/avoid_postings/{idOrName}.json', ...options });
195
+ /**
196
+ * Edit Avoid Posting Entry
197
+ *
198
+ * Must have the bd staff user flag.
199
+ */
200
+ export const editAvoidPosting = (options) => (options.client ?? client).patch({
201
+ ...urlSearchParamsBodySerializer,
202
+ security: [{ scheme: 'basic', type: 'http' }],
203
+ url: '/avoid_postings/{idOrName}.json',
204
+ ...options,
205
+ headers: {
206
+ 'Content-Type': 'application/x-www-form-urlencoded',
207
+ ...options.headers
208
+ }
209
+ });
210
+ /**
211
+ * Delete Avoid Posting Entry
212
+ *
213
+ * Must have the bd staff user flag.
214
+ */
215
+ export const deleteAvoidPosting = (options) => (options.client ?? client).put({
216
+ security: [{ scheme: 'basic', type: 'http' }],
217
+ url: '/avoid_postings/{idOrName}/delete.json',
218
+ ...options
219
+ });
220
+ /**
221
+ * Undelete Avoid Posting Entry
222
+ *
223
+ * Must have the bd staff user flag.
224
+ */
225
+ export const undeleteAvoidPosting = (options) => (options.client ?? client).put({
226
+ security: [{ scheme: 'basic', type: 'http' }],
227
+ url: '/avoid_postings/{idOrName}/undelete.json',
228
+ ...options
229
+ });
230
+ /**
231
+ * Search Avoid Posting Versions
232
+ */
233
+ export const searchAvoidPostingVersions = (options) => (options?.client ?? client).get({ url: '/avoid_posting_versions.json', ...options });
234
+ /**
235
+ * Search Bans
236
+ */
237
+ export const searchBans = (options) => (options?.client ?? client).get({ url: '/bans.json', ...options });
238
+ /**
239
+ * Get Ban
240
+ */
241
+ export const getBan = (options) => (options.client ?? client).get({ url: '/bans/{id}.json', ...options });
242
+ /**
243
+ * Search Blips
244
+ */
245
+ export const searchBlips = (options) => (options?.client ?? client).get({ url: '/blips.json', ...options });
246
+ /**
247
+ * Create Blip
248
+ */
249
+ export const createBlip = (options) => (options?.client ?? client).post({
250
+ ...urlSearchParamsBodySerializer,
251
+ security: [{ scheme: 'basic', type: 'http' }],
252
+ url: '/blips.json',
253
+ ...options,
254
+ headers: {
255
+ 'Content-Type': 'application/x-www-form-urlencoded',
256
+ ...options?.headers
257
+ }
258
+ });
259
+ /**
260
+ * Delete Blip
261
+ *
262
+ * You must be Admin+.
263
+ *
264
+ */
265
+ export const deleteBlip = (options) => (options.client ?? client).delete({
266
+ security: [{ scheme: 'basic', type: 'http' }],
267
+ url: '/blips/{id}.json',
268
+ ...options
269
+ });
270
+ /**
271
+ * Get Blip
272
+ */
273
+ export const getBlip = (options) => (options.client ?? client).get({ url: '/blips/{id}.json', ...options });
274
+ /**
275
+ * Edit Blip
276
+ *
277
+ * Unless Admin+, blips cannot be edited after 5 minutes. Marked blips cannot be edited.
278
+ */
279
+ export const editBlip = (options) => (options.client ?? client).patch({
280
+ ...urlSearchParamsBodySerializer,
281
+ security: [{ scheme: 'basic', type: 'http' }],
282
+ url: '/blips/{id}.json',
283
+ ...options,
284
+ headers: {
285
+ 'Content-Type': 'application/x-www-form-urlencoded',
286
+ ...options.headers
287
+ }
288
+ });
289
+ /**
290
+ * Hide Blip
291
+ *
292
+ * You must be the creator or Moderator+.
293
+ *
294
+ */
295
+ export const hideBlip = (options) => (options.client ?? client).post({
296
+ security: [{ scheme: 'basic', type: 'http' }],
297
+ url: '/blips/{id}/hide.json',
298
+ ...options
299
+ });
300
+ /**
301
+ * Unhide Blip
302
+ *
303
+ * You must be Moderator+.
304
+ *
305
+ */
306
+ export const unhideBlip = (options) => (options.client ?? client).post({
307
+ security: [{ scheme: 'basic', type: 'http' }],
308
+ url: '/blips/{id}/unhide.json',
309
+ ...options
310
+ });
311
+ /**
312
+ * Mark Blip
313
+ *
314
+ * You must be Moderator+.
315
+ */
316
+ export const markBlip = (options) => (options.client ?? client).post({
317
+ security: [{ scheme: 'basic', type: 'http' }],
318
+ url: '/blips/{id}/warning.json',
319
+ ...options,
320
+ headers: {
321
+ 'Content-Type': 'application/json',
322
+ ...options.headers
323
+ }
324
+ });
325
+ /**
326
+ * Search Bulk Update Requests
327
+ */
328
+ export const searchBulkUpdateRequests = (options) => (options?.client ?? client).get({ url: '/bulk_update_requests.json', ...options });
329
+ /**
330
+ * Create Bulk Update Request
331
+ */
332
+ export const createBulkUpdateRequest = (options) => (options?.client ?? client).post({
333
+ ...urlSearchParamsBodySerializer,
334
+ security: [{ scheme: 'basic', type: 'http' }],
335
+ url: '/bulk_update_requests.json',
336
+ ...options,
337
+ headers: {
338
+ 'Content-Type': 'application/x-www-form-urlencoded',
339
+ ...options?.headers
340
+ }
341
+ });
342
+ /**
343
+ * Reject Bulk Update Request
344
+ *
345
+ * You must be the creator of the BUR, or Admin+.
346
+ */
347
+ export const rejectBulkUpdateRequest = (options) => (options.client ?? client).delete({
348
+ security: [{ scheme: 'basic', type: 'http' }],
349
+ url: '/bulk_update_request/{id}.json',
350
+ ...options
351
+ });
352
+ /**
353
+ * Get Bulk Update Request
354
+ */
355
+ export const getBulkUpdateRequest = (options) => (options.client ?? client).get({ url: '/bulk_update_request/{id}.json', ...options });
356
+ /**
357
+ * Edit Bulk Update Request
358
+ *
359
+ * You must be the creator of the BUR, or Admin+.
360
+ */
361
+ export const editBulkUpdateRequest = (options) => (options.client ?? client).patch({
362
+ ...urlSearchParamsBodySerializer,
363
+ security: [{ scheme: 'basic', type: 'http' }],
364
+ url: '/bulk_update_request/{id}.json',
365
+ ...options,
366
+ headers: {
367
+ 'Content-Type': 'application/x-www-form-urlencoded',
368
+ ...options.headers
369
+ }
370
+ });
371
+ /**
372
+ * Approve Bulk Update Request
373
+ *
374
+ * Must be Admin+.
375
+ */
376
+ export const approveBulkUpdateRequest = (options) => (options.client ?? client).post({ url: '/bulk_update_request/{id}/approve.json', ...options });
377
+ /**
378
+ * Search Comments
379
+ *
380
+ * For searching comments, group_by=comment must be set.
381
+ */
382
+ export const searchComments = (options) => (options?.client ?? client).get({ url: '/comments.json', ...options });
383
+ /**
384
+ * Create Comment
385
+ */
386
+ export const createComment = (options) => (options?.client ?? client).post({
387
+ ...urlSearchParamsBodySerializer,
388
+ security: [{ scheme: 'basic', type: 'http' }],
389
+ url: '/comments.json',
390
+ ...options,
391
+ headers: {
392
+ 'Content-Type': 'application/x-www-form-urlencoded',
393
+ ...options?.headers
394
+ }
395
+ });
396
+ /**
397
+ * Delete Comment
398
+ *
399
+ * You must be Admin+.
400
+ *
401
+ */
402
+ export const deleteComment = (options) => (options.client ?? client).delete({
403
+ security: [{ scheme: 'basic', type: 'http' }],
404
+ url: '/comments/{id}.json',
405
+ ...options
406
+ });
407
+ /**
408
+ * Get Comment
409
+ *
410
+ * If the comment is hidden, you must be the creator or Janitor+ to see it.
411
+ */
412
+ export const getComment = (options) => (options.client ?? client).get({ url: '/comments/{id}.json', ...options });
413
+ /**
414
+ * Edit Comment
415
+ *
416
+ * You must be the creator of the comment, or Admin+ to edit. Marked comments cannot be edited.
417
+ *
418
+ */
419
+ export const editComment = (options) => (options.client ?? client).patch({
420
+ ...urlSearchParamsBodySerializer,
421
+ security: [{ scheme: 'basic', type: 'http' }],
422
+ url: '/comments/{id}.json',
423
+ ...options,
424
+ headers: {
425
+ 'Content-Type': 'application/x-www-form-urlencoded',
426
+ ...options.headers
427
+ }
428
+ });
429
+ /**
430
+ * Hide Comment
431
+ *
432
+ * You must be the creator or Moderator+.
433
+ *
434
+ */
435
+ export const hideComment = (options) => (options.client ?? client).post({
436
+ security: [{ scheme: 'basic', type: 'http' }],
437
+ url: '/comments/{id}/hide.json',
438
+ ...options
439
+ });
440
+ /**
441
+ * Unhide Comment
442
+ *
443
+ * You must be Moderator+.
444
+ *
445
+ */
446
+ export const unhideComment = (options) => (options.client ?? client).post({
447
+ security: [{ scheme: 'basic', type: 'http' }],
448
+ url: '/comments/{id}/unhide.json',
449
+ ...options
450
+ });
451
+ /**
452
+ * Mark Comment
453
+ *
454
+ * You must be Moderator+.
455
+ */
456
+ export const markComment = (options) => (options.client ?? client).post({
457
+ security: [{ scheme: 'basic', type: 'http' }],
458
+ url: '/comments/{id}/warning.json',
459
+ ...options,
460
+ headers: {
461
+ 'Content-Type': 'application/json',
462
+ ...options.headers
463
+ }
464
+ });
465
+ /**
466
+ * Delete Comment Vote
467
+ */
468
+ export const deleteCommentVote = (options) => (options.client ?? client).delete({
469
+ security: [{ scheme: 'basic', type: 'http' }],
470
+ url: '/comments/{id}/votes.json',
471
+ ...options
472
+ });
473
+ /**
474
+ * Create Comment Vote
475
+ */
476
+ export const createCommentVote = (options) => (options.client ?? client).post({
477
+ security: [{ scheme: 'basic', type: 'http' }],
478
+ url: '/comments/{id}/votes.json',
479
+ ...options
480
+ });
481
+ /**
482
+ * Lock Comment Votes
483
+ *
484
+ * You must be Moderator+. Errors if ids is not provided.
485
+ *
486
+ */
487
+ export const lockCommentVotes = (options) => (options.client ?? client).post({
488
+ security: [{ scheme: 'basic', type: 'http' }],
489
+ url: '/comment_votes/lock.json',
490
+ ...options
491
+ });
492
+ /**
493
+ * Delete Comment Votes
494
+ *
495
+ * You must be Admin+. Errors if ids is not provided.
496
+ *
497
+ */
498
+ export const deleteCommentVotes = (options) => (options.client ?? client).post({
499
+ security: [{ scheme: 'basic', type: 'http' }],
500
+ url: '/comment_votes/delete.json',
501
+ ...options
502
+ });
503
+ /**
504
+ * Search DMails
505
+ */
506
+ export const searchDMails = (options) => (options?.client ?? client).get({ url: '/dmails.json', ...options });
507
+ /**
508
+ * Delete DMail
509
+ *
510
+ * Deleting simply hides your copy of the dmail.
511
+ */
512
+ export const deleteDMail = (options) => (options.client ?? client).delete({
513
+ security: [{ scheme: 'basic', type: 'http' }],
514
+ url: '/dmails/{id}.json',
515
+ ...options
516
+ });
517
+ /**
518
+ * Get DMail
519
+ *
520
+ * Fetching a dmail will not mark it as read.
521
+ */
522
+ export const getDMail = (options) => (options.client ?? client).get({ url: '/dmails/{id}.json', ...options });
523
+ /**
524
+ * Mark DMail As Read
525
+ */
526
+ export const markDMailAsRead = (options) => (options.client ?? client).put({
527
+ security: [{ scheme: 'basic', type: 'http' }],
528
+ url: '/dmails/{id}/mark_as_read.json',
529
+ ...options
530
+ });
531
+ /**
532
+ * Mark DMail As Unread
533
+ */
534
+ export const markDMailAsUnread = (options) => (options.client ?? client).put({
535
+ security: [{ scheme: 'basic', type: 'http' }],
536
+ url: '/dmails/{id}/mark_as_unread.json',
537
+ ...options
538
+ });
539
+ /**
540
+ * Mark All DMails As Read
541
+ */
542
+ export const markAllDMailsAsRead = (options) => (options?.client ?? client).put({
543
+ security: [{ scheme: 'basic', type: 'http' }],
544
+ url: '/dmails/mark_all_as_read.json',
545
+ ...options
546
+ });
547
+ /**
548
+ * Preview DText
549
+ *
550
+ * Note while this route does not require auth, without auth it requires a CSRF token. For that reason it has been marked as requiring auth.
551
+ */
552
+ export const previewDText = (options) => (options?.client ?? client).post({
553
+ security: [{ scheme: 'basic', type: 'http' }, {
554
+ in: 'query',
555
+ name: 'authenticity_token',
556
+ type: 'apiKey'
557
+ }],
558
+ url: '/dtext_preview.json',
559
+ ...options,
560
+ headers: {
561
+ 'Content-Type': 'application/json',
562
+ ...options?.headers
563
+ }
564
+ });
565
+ /**
566
+ * Search Edit Histories
567
+ *
568
+ * You must be Moderator+.
569
+ */
570
+ export const searchEditHistories = (options) => (options?.client ?? client).get({
571
+ security: [{ scheme: 'basic', type: 'http' }],
572
+ url: '/edit_histories.json',
573
+ ...options
574
+ });
575
+ /**
576
+ * Get Edit History
577
+ *
578
+ * You must be Moderator+.
579
+ */
580
+ export const getEditHistory = (options) => (options.client ?? client).get({
581
+ security: [{ scheme: 'basic', type: 'http' }],
582
+ url: '/edit_histories/{id}.json',
583
+ ...options
584
+ });
585
+ /**
586
+ * Search Email Blacklists
587
+ */
588
+ export const searchEmailBlacklists = (options) => (options?.client ?? client).get({ url: '/email_blacklists.json', ...options });
589
+ /**
590
+ * Create Email Blacklist
591
+ *
592
+ * You must be Admin+.
593
+ */
594
+ export const createEmailBlacklist = (options) => (options?.client ?? client).post({
595
+ ...urlSearchParamsBodySerializer,
596
+ security: [{ scheme: 'basic', type: 'http' }],
597
+ url: '/email_blacklists.json',
598
+ ...options,
599
+ headers: {
600
+ 'Content-Type': 'application/x-www-form-urlencoded',
601
+ ...options?.headers
602
+ }
603
+ });
604
+ /**
605
+ * Delete Email Blacklist
606
+ *
607
+ * You must be Admin+.
608
+ */
609
+ export const deleteEmailBlacklist = (options) => (options.client ?? client).delete({
610
+ security: [{ scheme: 'basic', type: 'http' }],
611
+ url: '/email_blacklists/{id}.json',
612
+ ...options
613
+ });
614
+ /**
615
+ * List Favorites
616
+ */
617
+ export const listFavorites = (options) => (options?.client ?? client).get({ url: '/favorites.json', ...options });
618
+ /**
619
+ * Add Favorite
620
+ */
621
+ export const addFavorite = (options) => (options?.client ?? client).post({
622
+ security: [{ scheme: 'basic', type: 'http' }],
623
+ url: '/favorites.json',
624
+ ...options,
625
+ headers: {
626
+ 'Content-Type': 'application/json',
627
+ ...options?.headers
628
+ }
629
+ });
630
+ /**
631
+ * Remove Favorite
632
+ */
633
+ export const removeFavorite = (options) => (options.client ?? client).delete({
634
+ security: [{ scheme: 'basic', type: 'http' }],
635
+ url: '/favorites/{id}.json',
636
+ ...options
637
+ });
638
+ /**
639
+ * Search Forum Posts
640
+ */
641
+ export const searchForumPosts = (options) => (options?.client ?? client).get({ url: '/forum_posts.json', ...options });
642
+ /**
643
+ * Create Forum Post
644
+ */
645
+ export const createForumPost = (options) => (options?.client ?? client).post({
646
+ ...urlSearchParamsBodySerializer,
647
+ security: [{ scheme: 'basic', type: 'http' }],
648
+ url: '/forum_posts.json',
649
+ ...options,
650
+ headers: {
651
+ 'Content-Type': 'application/x-www-form-urlencoded',
652
+ ...options?.headers
653
+ }
654
+ });
655
+ /**
656
+ * Delete Forum Post
657
+ *
658
+ * You must be Admin+.
659
+ */
660
+ export const deleteForumPost = (options) => (options.client ?? client).delete({
661
+ security: [{ scheme: 'basic', type: 'http' }],
662
+ url: '/forum_posts/{id}.json',
663
+ ...options
664
+ });
665
+ /**
666
+ * Get Forum Post
667
+ *
668
+ * If the forum post is hidden, you must be the creator or Moderator+ to see it.
669
+ */
670
+ export const getForumPost = (options) => (options.client ?? client).get({ url: '/forum_posts/{id}.json', ...options });
671
+ /**
672
+ * Edit Forum Post
673
+ *
674
+ * You must be the creator of the forum post, or Admin+ to edit. Marked forum posts cannot be edited.
675
+ */
676
+ export const editForumPost = (options) => (options.client ?? client).patch({
677
+ ...urlSearchParamsBodySerializer,
678
+ security: [{ scheme: 'basic', type: 'http' }],
679
+ url: '/forum_posts/{id}.json',
680
+ ...options,
681
+ headers: {
682
+ 'Content-Type': 'application/x-www-form-urlencoded',
683
+ ...options.headers
684
+ }
685
+ });
686
+ /**
687
+ * Hide Forum Post
688
+ *
689
+ * You must be the creator or Moderator+.
690
+ */
691
+ export const hideForumPost = (options) => (options.client ?? client).post({
692
+ security: [{ scheme: 'basic', type: 'http' }],
693
+ url: '/forum_posts/{id}/hide.json',
694
+ ...options
695
+ });
696
+ /**
697
+ * Unhide Forum Post
698
+ *
699
+ * You must be Moderator+.
700
+ */
701
+ export const unhideForumPost = (options) => (options.client ?? client).post({
702
+ security: [{ scheme: 'basic', type: 'http' }],
703
+ url: '/forum_posts/{id}/unhide.json',
704
+ ...options
705
+ });
706
+ /**
707
+ * Mark Forum Post
708
+ *
709
+ * You must be Moderator+.
710
+ *
711
+ */
712
+ export const markForumPost = (options) => (options.client ?? client).post({
713
+ security: [{ scheme: 'basic', type: 'http' }],
714
+ url: '/forum_posts/{id}/warning.json',
715
+ ...options,
716
+ headers: {
717
+ 'Content-Type': 'application/json',
718
+ ...options.headers
719
+ }
720
+ });
721
+ /**
722
+ * Delete Forum Post Vote
723
+ */
724
+ export const deleteForumPostVote = (options) => (options.client ?? client).delete({
725
+ security: [{ scheme: 'basic', type: 'http' }],
726
+ url: '/forum_posts/{id}/votes.json',
727
+ ...options
728
+ });
729
+ /**
730
+ * Create Forum Post Vote
731
+ */
732
+ export const createForumPostVote = (options) => (options.client ?? client).post({
733
+ ...urlSearchParamsBodySerializer,
734
+ security: [{ scheme: 'basic', type: 'http' }],
735
+ url: '/forum_posts/{id}/votes.json',
736
+ ...options,
737
+ headers: {
738
+ 'Content-Type': 'application/x-www-form-urlencoded',
739
+ ...options.headers
740
+ }
741
+ });
742
+ /**
743
+ * Search Forum Topics
744
+ */
745
+ export const searchForumTopics = (options) => (options?.client ?? client).get({ url: '/forum_topics.json', ...options });
746
+ /**
747
+ * Create Forum Topic
748
+ */
749
+ export const createForumTopic = (options) => (options?.client ?? client).post({
750
+ ...urlSearchParamsBodySerializer,
751
+ security: [{ scheme: 'basic', type: 'http' }],
752
+ url: '/forum_topics.json',
753
+ ...options,
754
+ headers: {
755
+ 'Content-Type': 'application/x-www-form-urlencoded',
756
+ ...options?.headers
757
+ }
758
+ });
759
+ /**
760
+ * Delete Forum Topic
761
+ *
762
+ * You must be Admin+.
763
+ */
764
+ export const deleteForumTopic = (options) => (options.client ?? client).delete({
765
+ security: [{ scheme: 'basic', type: 'http' }],
766
+ url: '/forum_topics/{id}.json',
767
+ ...options
768
+ });
769
+ /**
770
+ * Get Forum Forum Topic
771
+ *
772
+ * If the forum topic is hidden, you must be the creator or Moderator+ to see it.
773
+ */
774
+ export const getForumTopic = (options) => (options.client ?? client).get({ url: '/forum_topics/{id}.json', ...options });
775
+ /**
776
+ * Edit Forum Topic
777
+ */
778
+ export const editForumTopic = (options) => (options.client ?? client).patch({
779
+ ...urlSearchParamsBodySerializer,
780
+ security: [{ scheme: 'basic', type: 'http' }],
781
+ url: '/forum_topics/{id}.json',
782
+ ...options,
783
+ headers: {
784
+ 'Content-Type': 'application/x-www-form-urlencoded',
785
+ ...options.headers
786
+ }
787
+ });
788
+ /**
789
+ * Hide Forum Topic
790
+ *
791
+ * You must be the creator or Moderator+.
792
+ */
793
+ export const hideForumTopic = (options) => (options.client ?? client).post({
794
+ security: [{ scheme: 'basic', type: 'http' }],
795
+ url: '/forum_topics/{id}/hide.json',
796
+ ...options
797
+ });
798
+ /**
799
+ * Unhide Forum Topic
800
+ *
801
+ * You must be Moderator+.
802
+ */
803
+ export const unhideForumTopic = (options) => (options.client ?? client).post({
804
+ security: [{ scheme: 'basic', type: 'http' }],
805
+ url: '/forum_topics/{id}/unhide.json',
806
+ ...options
807
+ });
808
+ /**
809
+ * Subscribe To Forum Topic
810
+ */
811
+ export const subscribeForumTopic = (options) => (options.client ?? client).post({
812
+ security: [{ scheme: 'basic', type: 'http' }],
813
+ url: '/forum_topics/{id}/subscribe.json',
814
+ ...options
815
+ });
816
+ /**
817
+ * Unsubscribe From Forum Topic
818
+ */
819
+ export const unsubscribeForumTopic = (options) => (options.client ?? client).post({
820
+ security: [{ scheme: 'basic', type: 'http' }],
821
+ url: '/forum_topics/{id}/unsubscribe.json',
822
+ ...options
823
+ });
824
+ /**
825
+ * Mark All Forum Topics As Read
826
+ */
827
+ export const markAllForumTopicsAsRead = (options) => (options?.client ?? client).post({
828
+ security: [{ scheme: 'basic', type: 'http' }],
829
+ url: '/forum_topics/mark_all_as_read.json',
830
+ ...options,
831
+ headers: {
832
+ 'Content-Type': 'application/json',
833
+ ...options?.headers
834
+ }
835
+ });
836
+ /**
837
+ * List Help Pages
838
+ *
839
+ * Will error if no help pages exist.
840
+ */
841
+ export const listHelpPages = (options) => (options?.client ?? client).get({ url: '/help.json', ...options });
842
+ /**
843
+ * Create Help Page
844
+ *
845
+ * You must be Admin+.
846
+ */
847
+ export const createHelpPage = (options) => (options?.client ?? client).post({
848
+ ...urlSearchParamsBodySerializer,
849
+ security: [{ scheme: 'basic', type: 'http' }],
850
+ url: '/help.json',
851
+ ...options,
852
+ headers: {
853
+ 'Content-Type': 'application/x-www-form-urlencoded',
854
+ ...options?.headers
855
+ }
856
+ });
857
+ /**
858
+ * Delete Help Page
859
+ *
860
+ * You must be Admin+.
861
+ */
862
+ export const deleteHelpPage = (options) => (options.client ?? client).delete({
863
+ security: [{ scheme: 'basic', type: 'http' }],
864
+ url: '/help/{id}.json',
865
+ ...options
866
+ });
867
+ /**
868
+ * Get Help Page
869
+ */
870
+ export const getHelpPage = (options) => (options.client ?? client).get({ url: '/help/{id}.json', ...options });
871
+ /**
872
+ * Edit Help Page
873
+ *
874
+ * You must be Admin+
875
+ */
876
+ export const editHelpPage = (options) => (options.client ?? client).patch({
877
+ ...urlSearchParamsBodySerializer,
878
+ security: [{ scheme: 'basic', type: 'http' }],
879
+ url: '/help/{id}.json',
880
+ ...options,
881
+ headers: {
882
+ 'Content-Type': 'application/x-www-form-urlencoded',
883
+ ...options.headers
884
+ }
885
+ });
886
+ /**
887
+ * List IP Bans
888
+ */
889
+ export const listIpBans = (options) => (options?.client ?? client).get({
890
+ security: [{ scheme: 'basic', type: 'http' }],
891
+ url: '/ip_bans.json',
892
+ ...options
893
+ });
894
+ /**
895
+ * Create IP Ban
896
+ *
897
+ * You must be Admin+.
898
+ */
899
+ export const createIpBan = (options) => (options?.client ?? client).post({
900
+ ...urlSearchParamsBodySerializer,
901
+ security: [{ scheme: 'basic', type: 'http' }],
902
+ url: '/ip_bans.json',
903
+ ...options,
904
+ headers: {
905
+ 'Content-Type': 'application/x-www-form-urlencoded',
906
+ ...options?.headers
907
+ }
908
+ });
909
+ /**
910
+ * Delete IP Ban
911
+ *
912
+ * You must be Admin+.
913
+ */
914
+ export const deleteIpBan = (options) => (options.client ?? client).delete({
915
+ security: [{ scheme: 'basic', type: 'http' }],
916
+ url: '/ip_bans/{id}.json',
917
+ ...options
918
+ });
919
+ /**
920
+ * Query IQDB
921
+ */
922
+ export const queryIqdbGet = (options) => (options?.client ?? client).get({ url: '/iqdb_queries.json', ...options });
923
+ /**
924
+ * Query IQDB
925
+ */
926
+ export const queryIqdbPost = (options) => (options?.client ?? client).post({
927
+ url: '/iqdb_queries.json',
928
+ ...options,
929
+ headers: {
930
+ 'Content-Type': 'application/json',
931
+ ...options?.headers
932
+ }
933
+ });
934
+ /**
935
+ * Search Mascots
936
+ */
937
+ export const searchMascots = (options) => (options?.client ?? client).get({ url: '/mascots.json', ...options });
938
+ /**
939
+ * Create Mascot
940
+ *
941
+ * You must be Admin+.
942
+ */
943
+ export const createMascot = (options) => (options?.client ?? client).post({
944
+ ...formDataBodySerializer,
945
+ security: [{ scheme: 'basic', type: 'http' }],
946
+ url: '/mascots.json',
947
+ ...options,
948
+ headers: {
949
+ 'Content-Type': null,
950
+ ...options?.headers
951
+ }
952
+ });
953
+ /**
954
+ * Delete Mascot
955
+ *
956
+ * You must be Admin+.
957
+ */
958
+ export const deleteMascot = (options) => (options.client ?? client).delete({
959
+ security: [{ scheme: 'basic', type: 'http' }],
960
+ url: '/mascots/{id}.json',
961
+ ...options
962
+ });
963
+ /**
964
+ * Edit Mascot
965
+ *
966
+ * You must be Admin+.
967
+ */
968
+ export const editMascot = (options) => (options.client ?? client).patch({
969
+ ...formDataBodySerializer,
970
+ security: [{ scheme: 'basic', type: 'http' }],
971
+ url: '/mascots/{id}.json',
972
+ ...options,
973
+ headers: {
974
+ 'Content-Type': null,
975
+ ...options.headers
976
+ }
977
+ });
978
+ /**
979
+ * Search Mod Actions
980
+ *
981
+ * Note that some mod actions are not in use anymore. Their entries exist for historical purposes only.<br>
982
+ * The current legacy actions are as follows:<br>
983
+ * * `created_positive_record`, `created_neutral_record`, `created_negative_record`
984
+ * * `created_flag_reason`, `edited_flag_reason`, `deleted_flag_reason`
985
+ * * `post_move_favorites`, `post_delete`, `post_undelete`, `post_destroy`, `post_rating_lock`, `post_unapprove`
986
+ * * `post_replacement_accept`, `post_replacement_reject`, `post_replacement_delete`
987
+ *
988
+ */
989
+ export const searchModActions = (options) => (options?.client ?? client).get({ url: '/mod_actions.json', ...options });
990
+ /**
991
+ * Get Mod Action
992
+ */
993
+ export const getModAction = (options) => (options.client ?? client).get({ url: '/mod_actions/{id}.json', ...options });
994
+ /**
995
+ * List News Updates
996
+ */
997
+ export const listNewsUpdates = (options) => (options?.client ?? client).get({ url: '/news_updates.json', ...options });
998
+ /**
999
+ * Create News Update
1000
+ *
1001
+ * You must be Admin+.
1002
+ */
1003
+ export const createNewsUpdate = (options) => (options?.client ?? client).post({
1004
+ ...urlSearchParamsBodySerializer,
1005
+ security: [{ scheme: 'basic', type: 'http' }],
1006
+ url: '/news_updates.json',
1007
+ ...options,
1008
+ headers: {
1009
+ 'Content-Type': 'application/x-www-form-urlencoded',
1010
+ ...options?.headers
1011
+ }
1012
+ });
1013
+ /**
1014
+ * Delete News Update
1015
+ *
1016
+ * You must be Admin+.
1017
+ */
1018
+ export const deleteNewsUpdate = (options) => (options.client ?? client).delete({
1019
+ security: [{ scheme: 'basic', type: 'http' }],
1020
+ url: '/news_updates/{id}.json',
1021
+ ...options
1022
+ });
1023
+ /**
1024
+ * Edit News Update
1025
+ *
1026
+ * You must be Admin+
1027
+ */
1028
+ export const editNewsUpdate = (options) => (options.client ?? client).patch({
1029
+ ...urlSearchParamsBodySerializer,
1030
+ security: [{ scheme: 'basic', type: 'http' }],
1031
+ url: '/news_updates/{id}.json',
1032
+ ...options,
1033
+ headers: {
1034
+ 'Content-Type': 'application/x-www-form-urlencoded',
1035
+ ...options.headers
1036
+ }
1037
+ });
1038
+ /**
1039
+ * Search Notes
1040
+ */
1041
+ export const searchNotes = (options) => (options?.client ?? client).get({ url: '/notes.json', ...options });
1042
+ /**
1043
+ * Create Note
1044
+ */
1045
+ export const createNote = (options) => (options?.client ?? client).post({
1046
+ ...urlSearchParamsBodySerializer,
1047
+ security: [{ scheme: 'basic', type: 'http' }],
1048
+ url: '/notes.json',
1049
+ ...options,
1050
+ headers: {
1051
+ 'Content-Type': 'application/x-www-form-urlencoded',
1052
+ ...options?.headers
1053
+ }
1054
+ });
1055
+ /**
1056
+ * Delete Note
1057
+ */
1058
+ export const deleteNote = (options) => (options.client ?? client).delete({
1059
+ security: [{ scheme: 'basic', type: 'http' }],
1060
+ url: '/notes/{id}.json',
1061
+ ...options
1062
+ });
1063
+ /**
1064
+ * Get Note
1065
+ */
1066
+ export const getNote = (options) => (options.client ?? client).get({ url: '/notes/{id}.json', ...options });
1067
+ /**
1068
+ * Edit Note
1069
+ */
1070
+ export const editNote = (options) => (options.client ?? client).patch({
1071
+ ...urlSearchParamsBodySerializer,
1072
+ security: [{ scheme: 'basic', type: 'http' }],
1073
+ url: '/notes/{id}.json',
1074
+ ...options,
1075
+ headers: {
1076
+ 'Content-Type': 'application/x-www-form-urlencoded',
1077
+ ...options.headers
1078
+ }
1079
+ });
1080
+ /**
1081
+ * Revert Note
1082
+ */
1083
+ export const revertNote = (options) => (options.client ?? client).post({
1084
+ security: [{ scheme: 'basic', type: 'http' }],
1085
+ url: '/notes/{id}/revert.json',
1086
+ ...options
1087
+ });
1088
+ /**
1089
+ * Search Note Versions
1090
+ */
1091
+ export const searchNoteVersions = (options) => (options?.client ?? client).get({ url: '/note_versions.json', ...options });
1092
+ /**
1093
+ * Search Pools
1094
+ */
1095
+ export const searchPools = (options) => (options?.client ?? client).get({ url: '/pools.json', ...options });
1096
+ /**
1097
+ * Create Pool
1098
+ */
1099
+ export const createPool = (options) => (options?.client ?? client).post({
1100
+ ...urlSearchParamsBodySerializer,
1101
+ security: [{ scheme: 'basic', type: 'http' }],
1102
+ url: '/pools.json',
1103
+ ...options,
1104
+ headers: {
1105
+ 'Content-Type': 'application/x-www-form-urlencoded',
1106
+ ...options?.headers
1107
+ }
1108
+ });
1109
+ /**
1110
+ * Delete Pool
1111
+ *
1112
+ * You must be Janitor+.
1113
+ */
1114
+ export const deletePool = (options) => (options.client ?? client).delete({
1115
+ security: [{ scheme: 'basic', type: 'http' }],
1116
+ url: '/pools/{id}.json',
1117
+ ...options
1118
+ });
1119
+ /**
1120
+ * Get Pool
1121
+ */
1122
+ export const getPool = (options) => (options.client ?? client).get({ url: '/pools/{id}.json', ...options });
1123
+ /**
1124
+ * Edit Pool
1125
+ */
1126
+ export const editPool = (options) => (options.client ?? client).patch({
1127
+ ...urlSearchParamsBodySerializer,
1128
+ security: [{ scheme: 'basic', type: 'http' }],
1129
+ url: '/pools/{id}.json',
1130
+ ...options,
1131
+ headers: {
1132
+ 'Content-Type': 'application/x-www-form-urlencoded',
1133
+ ...options.headers
1134
+ }
1135
+ });
1136
+ /**
1137
+ * Revert Pool
1138
+ */
1139
+ export const revertPool = (options) => (options.client ?? client).put({
1140
+ security: [{ scheme: 'basic', type: 'http' }],
1141
+ url: '/pools/{id}/revert.json',
1142
+ ...options
1143
+ });
1144
+ /**
1145
+ * Remove Post From Pool
1146
+ */
1147
+ export const removePostFromPool = (options) => (options?.client ?? client).delete({
1148
+ ...urlSearchParamsBodySerializer,
1149
+ security: [{ scheme: 'basic', type: 'http' }],
1150
+ url: '/pool_element.json',
1151
+ ...options,
1152
+ headers: {
1153
+ 'Content-Type': 'application/x-www-form-urlencoded',
1154
+ ...options?.headers
1155
+ }
1156
+ });
1157
+ /**
1158
+ * Add Post To Pool
1159
+ */
1160
+ export const addPostToPool = (options) => (options?.client ?? client).post({
1161
+ ...urlSearchParamsBodySerializer,
1162
+ security: [{ scheme: 'basic', type: 'http' }],
1163
+ url: '/pool_element.json',
1164
+ ...options,
1165
+ headers: {
1166
+ 'Content-Type': 'application/x-www-form-urlencoded',
1167
+ ...options?.headers
1168
+ }
1169
+ });
1170
+ /**
1171
+ * Get Recent Pools
1172
+ */
1173
+ export const getRecentPools = (options) => (options?.client ?? client).get({
1174
+ ...urlSearchParamsBodySerializer,
1175
+ security: [{ scheme: 'basic', type: 'http' }],
1176
+ url: '/pool_element/recent.json',
1177
+ ...options,
1178
+ headers: {
1179
+ 'Content-Type': 'application/x-www-form-urlencoded',
1180
+ ...options?.headers
1181
+ }
1182
+ });
1183
+ /**
1184
+ * Search Pool Versions
1185
+ */
1186
+ export const searchPoolVersions = (options) => (options?.client ?? client).get({ url: '/pool_versions.json', ...options });
1187
+ /**
1188
+ * List Most Upvoted Posts
1189
+ */
1190
+ export const listPopular = (options) => (options?.client ?? client).get({ url: '/popular.json', ...options });
1191
+ /**
1192
+ * Search Posts
1193
+ */
1194
+ export const searchPosts = (options) => (options?.client ?? client).get({ url: '/posts.json', ...options });
1195
+ /**
1196
+ * Get Random Post
1197
+ */
1198
+ export const getRandomPost = (options) => (options?.client ?? client).get({ url: '/posts/random.json', ...options });
1199
+ /**
1200
+ * Get Post
1201
+ */
1202
+ export const getPost = (options) => (options.client ?? client).get({ url: '/posts/{id}.json', ...options });
1203
+ /**
1204
+ * Edit Post
1205
+ *
1206
+ * Most errors are silently swallowed.
1207
+ */
1208
+ export const editPost = (options) => (options.client ?? client).patch({
1209
+ ...urlSearchParamsBodySerializer,
1210
+ security: [{ scheme: 'basic', type: 'http' }],
1211
+ url: '/posts/{id}.json',
1212
+ ...options,
1213
+ headers: {
1214
+ 'Content-Type': 'application/x-www-form-urlencoded',
1215
+ ...options.headers
1216
+ }
1217
+ });
1218
+ /**
1219
+ * Update Post IQDB
1220
+ *
1221
+ * You must be Admin+.
1222
+ */
1223
+ export const updatePostIqdb = (options) => (options.client ?? client).get({
1224
+ security: [{ scheme: 'basic', type: 'http' }],
1225
+ url: '/posts/{id}/update_iqdb.json',
1226
+ ...options
1227
+ });
1228
+ /**
1229
+ * Mark Post As Translated
1230
+ *
1231
+ * Will error if no body is provided.
1232
+ */
1233
+ export const markPostAsTranslated = (options) => (options.client ?? client).post({
1234
+ security: [{ scheme: 'basic', type: 'http' }],
1235
+ url: '/posts/{id}/mark_as_translated.json',
1236
+ ...options,
1237
+ headers: {
1238
+ 'Content-Type': 'application/json',
1239
+ ...options.headers
1240
+ }
1241
+ });
1242
+ /**
1243
+ * Copy Notes To Post
1244
+ */
1245
+ export const copyNotesToPost = (options) => (options.client ?? client).put({
1246
+ security: [{ scheme: 'basic', type: 'http' }],
1247
+ url: '/posts/{id}/copy_notes.json',
1248
+ ...options,
1249
+ headers: {
1250
+ 'Content-Type': 'application/json',
1251
+ ...options.headers
1252
+ }
1253
+ });
1254
+ /**
1255
+ * Revert Post
1256
+ */
1257
+ export const revertPost = (options) => (options.client ?? client).post({
1258
+ security: [{ scheme: 'basic', type: 'http' }],
1259
+ url: '/posts/{id}/revert.json',
1260
+ ...options
1261
+ });
1262
+ /**
1263
+ * Get Post In Sequence
1264
+ */
1265
+ export const getPostInSequence = (options) => (options.client ?? client).get({ url: '/posts/{id}/show_seq.json', ...options });
1266
+ /**
1267
+ * Unflag Post
1268
+ *
1269
+ * You must have the "Approve Posts" permission.
1270
+ */
1271
+ export const unflagPost = (options) => (options.client ?? client).delete({
1272
+ ...urlSearchParamsBodySerializer,
1273
+ security: [{ scheme: 'basic', type: 'http' }],
1274
+ url: '/posts/{id}/flag.json',
1275
+ ...options,
1276
+ headers: {
1277
+ 'Content-Type': 'application/x-www-form-urlencoded',
1278
+ ...options.headers
1279
+ }
1280
+ });
1281
+ /**
1282
+ * List Post Favorites
1283
+ *
1284
+ * You must be the user or Moderator+ to see users that have their favorites hidden.
1285
+ */
1286
+ export const listPostFavorites = (options) => (options.client ?? client).get({ url: '/posts/{id}/favorites.json', ...options });
1287
+ /**
1288
+ * Delete Post Vote
1289
+ */
1290
+ export const deletePostVote = (options) => (options.client ?? client).delete({
1291
+ security: [{ scheme: 'basic', type: 'http' }],
1292
+ url: '/posts/{id}/votes.json',
1293
+ ...options
1294
+ });
1295
+ /**
1296
+ * Create Post Vote
1297
+ */
1298
+ export const createPostVote = (options) => (options.client ?? client).post({
1299
+ security: [{ scheme: 'basic', type: 'http' }],
1300
+ url: '/posts/{id}/votes.json',
1301
+ ...options
1302
+ });
1303
+ /**
1304
+ * Search Post Sets
1305
+ */
1306
+ export const searchPostSets = (options) => (options?.client ?? client).get({ url: '/post_sets.json', ...options });
1307
+ /**
1308
+ * Create Post Set
1309
+ */
1310
+ export const createPostSet = (options) => (options?.client ?? client).post({
1311
+ ...urlSearchParamsBodySerializer,
1312
+ security: [{ scheme: 'basic', type: 'http' }],
1313
+ url: '/post_sets.json',
1314
+ ...options,
1315
+ headers: {
1316
+ 'Content-Type': 'application/x-www-form-urlencoded',
1317
+ ...options?.headers
1318
+ }
1319
+ });
1320
+ /**
1321
+ * Delete Post Set
1322
+ *
1323
+ * You must be the owner of the set, or Admin+.
1324
+ */
1325
+ export const deletePostSet = (options) => (options.client ?? client).delete({
1326
+ security: [{ scheme: 'basic', type: 'http' }],
1327
+ url: '/post_sets/{id}.json',
1328
+ ...options
1329
+ });
1330
+ /**
1331
+ * Get Post Set
1332
+ *
1333
+ * You must be Moderator+ if the set is not public.
1334
+ */
1335
+ export const getPostSet = (options) => (options.client ?? client).get({ url: '/post_sets/{id}.json', ...options });
1336
+ /**
1337
+ * Edit Post Set
1338
+ *
1339
+ * You must be the owner of the set, or Admin+.
1340
+ */
1341
+ export const editPostSet = (options) => (options.client ?? client).patch({
1342
+ ...urlSearchParamsBodySerializer,
1343
+ security: [{ scheme: 'basic', type: 'http' }],
1344
+ url: '/post_sets/{id}.json',
1345
+ ...options,
1346
+ headers: {
1347
+ 'Content-Type': 'application/x-www-form-urlencoded',
1348
+ ...options.headers
1349
+ }
1350
+ });
1351
+ /**
1352
+ * Update Post Set Posts
1353
+ *
1354
+ * You must be the owner of the set, a maintainer (if public), or Admin+.
1355
+ */
1356
+ export const updatePostSetPosts = (options) => (options.client ?? client).post({
1357
+ ...urlSearchParamsBodySerializer,
1358
+ security: [{ scheme: 'basic', type: 'http' }],
1359
+ url: '/post_sets/{id}/update_posts.json',
1360
+ ...options,
1361
+ headers: {
1362
+ 'Content-Type': 'application/x-www-form-urlencoded',
1363
+ ...options.headers
1364
+ }
1365
+ });
1366
+ /**
1367
+ * Add Posts To Post Set
1368
+ *
1369
+ * You must be the owner of the set, a maintainer (if public), or Admin+.
1370
+ */
1371
+ export const addPostsToPostSet = (options) => (options.client ?? client).post({
1372
+ ...urlSearchParamsBodySerializer,
1373
+ security: [{ scheme: 'basic', type: 'http' }],
1374
+ url: '/post_sets/{id}/add_posts.json',
1375
+ ...options,
1376
+ headers: {
1377
+ 'Content-Type': 'application/x-www-form-urlencoded',
1378
+ ...options.headers
1379
+ }
1380
+ });
1381
+ /**
1382
+ * Remove Posts From Post Set
1383
+ *
1384
+ * You must be the owner of the set, a maintainer (if public), or Admin+.
1385
+ */
1386
+ export const removePostsFromPostSet = (options) => (options.client ?? client).post({
1387
+ ...urlSearchParamsBodySerializer,
1388
+ security: [{ scheme: 'basic', type: 'http' }],
1389
+ url: '/post_sets/{id}/remove_posts.json',
1390
+ ...options,
1391
+ headers: {
1392
+ 'Content-Type': 'application/x-www-form-urlencoded',
1393
+ ...options.headers
1394
+ }
1395
+ });
1396
+ /**
1397
+ * List Post Sets For Select
1398
+ *
1399
+ * You must be the owner of the set, a maintainer (if public), or Admin+.
1400
+ */
1401
+ export const listPostSetsForSelect = (options) => (options?.client ?? client).get({
1402
+ security: [{ scheme: 'basic', type: 'http' }],
1403
+ url: '/post_sets/for_select.json',
1404
+ ...options
1405
+ });
1406
+ /**
1407
+ * Search Post Approvals
1408
+ */
1409
+ export const searchPostApprovals = (options) => (options?.client ?? client).get({ url: '/post_approvals.json', ...options });
1410
+ /**
1411
+ * Search Post Events
1412
+ */
1413
+ export const searchPostEvents = (options) => (options?.client ?? client).get({
1414
+ security: [{ scheme: 'basic', type: 'http' }],
1415
+ url: '/post_events.json',
1416
+ ...options
1417
+ });
1418
+ /**
1419
+ * Search Post Flags
1420
+ */
1421
+ export const searchPostFlags = (options) => (options?.client ?? client).get({ url: '/post_flags.json', ...options });
1422
+ /**
1423
+ * Create Post Flag
1424
+ *
1425
+ * Will error if post_id is not provided.
1426
+ */
1427
+ export const createPostFlag = (options) => (options?.client ?? client).post({
1428
+ ...urlSearchParamsBodySerializer,
1429
+ security: [{ scheme: 'basic', type: 'http' }],
1430
+ url: '/post_flags.json',
1431
+ ...options,
1432
+ headers: {
1433
+ 'Content-Type': 'application/x-www-form-urlencoded',
1434
+ ...options?.headers
1435
+ }
1436
+ });
1437
+ /**
1438
+ * Get Post Flag
1439
+ */
1440
+ export const getPostFlag = (options) => (options.client ?? client).get({ url: '/post_flags/{id}.json', ...options });
1441
+ /**
1442
+ * Clear Post Flag Note
1443
+ *
1444
+ * You must be Janitor+
1445
+ */
1446
+ export const clearPostFlagNote = (options) => (options.client ?? client).post({
1447
+ security: [{ scheme: 'basic', type: 'http' }],
1448
+ url: '/post_flags/{id}/clear_note.json',
1449
+ ...options
1450
+ });
1451
+ /**
1452
+ * Search Post Replacements
1453
+ *
1454
+ * Rejected replacements can only be seen by staff.
1455
+ */
1456
+ export const searchPostReplacements = (options) => (options?.client ?? client).get({ url: '/post_replacements.json', ...options });
1457
+ /**
1458
+ * Create Post Replacement
1459
+ */
1460
+ export const createPostReplacement = (options) => (options?.client ?? client).post({
1461
+ ...formDataBodySerializer,
1462
+ security: [{ scheme: 'basic', type: 'http' }],
1463
+ url: '/post_replacements.json',
1464
+ ...options,
1465
+ headers: {
1466
+ 'Content-Type': null,
1467
+ ...options?.headers
1468
+ }
1469
+ });
1470
+ /**
1471
+ * Delete Post Replacement
1472
+ *
1473
+ * You must be Admin+.
1474
+ */
1475
+ export const deletePostReplacement = (options) => (options.client ?? client).delete({
1476
+ security: [{ scheme: 'basic', type: 'http' }],
1477
+ url: '/post_replacements/{id}.json',
1478
+ ...options
1479
+ });
1480
+ /**
1481
+ * Approve Post Replacement
1482
+ *
1483
+ * You must have the "Approve Posts" permission.
1484
+ */
1485
+ export const approvePostReplacement = (options) => (options.client ?? client).put({
1486
+ security: [{ scheme: 'basic', type: 'http' }],
1487
+ url: '/post_replacements/{id}/approve.json',
1488
+ ...options
1489
+ });
1490
+ /**
1491
+ * Reject Post Replacement
1492
+ *
1493
+ * You must have the "Approve Posts" permission.
1494
+ */
1495
+ export const rejectPostReplacement = (options) => (options.client ?? client).put({
1496
+ security: [{ scheme: 'basic', type: 'http' }],
1497
+ url: '/post_replacements/{id}/reject.json',
1498
+ ...options
1499
+ });
1500
+ /**
1501
+ * Promote Post Replacement
1502
+ *
1503
+ * You must have the "Approve Posts" permission.
1504
+ */
1505
+ export const promotePostReplacement = (options) => (options.client ?? client).post({
1506
+ security: [{ scheme: 'basic', type: 'http' }],
1507
+ url: '/post_replacements/{id}/promote.json',
1508
+ ...options
1509
+ });
1510
+ /**
1511
+ * Toggle Post Replacement Penalty
1512
+ *
1513
+ * You must have the "Approve Posts" permission.
1514
+ */
1515
+ export const togglePostReplacementPenalty = (options) => (options.client ?? client).put({
1516
+ security: [{ scheme: 'basic', type: 'http' }],
1517
+ url: '/post_replacements/{id}/toggle_penalize.json',
1518
+ ...options
1519
+ });
1520
+ /**
1521
+ * Search Post Versions
1522
+ */
1523
+ export const searchPostVersions = (options) => (options?.client ?? client).get({ url: '/post_versions.json', ...options });
1524
+ /**
1525
+ * Hide Post Version
1526
+ *
1527
+ * You must be Admin+.
1528
+ */
1529
+ export const hidePostVersion = (options) => (options.client ?? client).put({
1530
+ security: [{ scheme: 'basic', type: 'http' }],
1531
+ url: '/post_versions/{id}/hide.json',
1532
+ ...options
1533
+ });
1534
+ /**
1535
+ * Unhide Post Version
1536
+ *
1537
+ * You must be Admin+.
1538
+ */
1539
+ export const unhidePostVersion = (options) => (options.client ?? client).put({
1540
+ security: [{ scheme: 'basic', type: 'http' }],
1541
+ url: '/post_versions/{id}/unhide.json',
1542
+ ...options
1543
+ });
1544
+ /**
1545
+ * Undo Post Version
1546
+ */
1547
+ export const undoPostVersion = (options) => (options.client ?? client).put({
1548
+ security: [{ scheme: 'basic', type: 'http' }],
1549
+ url: '/post_versions/{id}/undo.json',
1550
+ ...options
1551
+ });
1552
+ /**
1553
+ * Lock Post Votes
1554
+ *
1555
+ * You must be Moderator+. Errors if ids is not provided.
1556
+ */
1557
+ export const lockPostVotes = (options) => (options.client ?? client).post({
1558
+ security: [{ scheme: 'basic', type: 'http' }],
1559
+ url: '/post_votes/lock.json',
1560
+ ...options
1561
+ });
1562
+ /**
1563
+ * Delete Post Vote
1564
+ *
1565
+ * You must be Admin+. Errors if ids is not provided.
1566
+ */
1567
+ export const deletePostVotes = (options) => (options.client ?? client).post({
1568
+ security: [{ scheme: 'basic', type: 'http' }],
1569
+ url: '/post_votes/delete.json',
1570
+ ...options
1571
+ });
1572
+ /**
1573
+ * Search Tags
1574
+ */
1575
+ export const searchTags = (options) => (options?.client ?? client).get({ url: '/tags.json', ...options });
1576
+ /**
1577
+ * Delete Tag
1578
+ *
1579
+ * You must have the bd staff user flag.
1580
+ */
1581
+ export const deleteTag = (options) => (options.client ?? client).delete({
1582
+ security: [{ scheme: 'basic', type: 'http' }],
1583
+ url: '/tags/{id}.json',
1584
+ ...options
1585
+ });
1586
+ /**
1587
+ * Get Tag
1588
+ */
1589
+ export const getTag = (options) => (options.client ?? client).get({ url: '/tags/{id}.json', ...options });
1590
+ /**
1591
+ * Edit Tag
1592
+ *
1593
+ * Must be Admin+ if the tag is locked or post count is >100.
1594
+ */
1595
+ export const editTag = (options) => (options.client ?? client).patch({
1596
+ ...urlSearchParamsBodySerializer,
1597
+ security: [{ scheme: 'basic', type: 'http' }],
1598
+ url: '/tags/{id}.json',
1599
+ ...options,
1600
+ headers: {
1601
+ 'Content-Type': 'application/x-www-form-urlencoded',
1602
+ ...options.headers
1603
+ }
1604
+ });
1605
+ /**
1606
+ * Get Tag Correction
1607
+ */
1608
+ export const getTagCorrection = (options) => (options.client ?? client).get({ url: '/tags/{id}/correction.json', ...options });
1609
+ /**
1610
+ * Correct Tag
1611
+ *
1612
+ * You must be Janitor+. `commit=Fix` must be set.
1613
+ */
1614
+ export const correctTag = (options) => (options.client ?? client).post({
1615
+ ...urlSearchParamsBodySerializer,
1616
+ security: [{ scheme: 'basic', type: 'http' }],
1617
+ url: '/tags/{id}/correction.json',
1618
+ ...options,
1619
+ headers: {
1620
+ 'Content-Type': 'application/x-www-form-urlencoded',
1621
+ ...options.headers
1622
+ }
1623
+ });
1624
+ /**
1625
+ * Preview Tags
1626
+ */
1627
+ export const previewTags = (options) => (options?.client ?? client).post({
1628
+ ...urlSearchParamsBodySerializer,
1629
+ security: [{ scheme: 'basic', type: 'http' }],
1630
+ url: '/tags/preview.json',
1631
+ ...options,
1632
+ headers: {
1633
+ 'Content-Type': 'application/x-www-form-urlencoded',
1634
+ ...options?.headers
1635
+ }
1636
+ });
1637
+ /**
1638
+ * Search Tag Type Versions
1639
+ */
1640
+ export const searchTagTypeVersions = (options) => (options?.client ?? client).get({ url: '/tag_type_versions.json', ...options });
1641
+ /**
1642
+ * Search Tag Aliases
1643
+ */
1644
+ export const searchTagAliases = (options) => (options?.client ?? client).get({ url: '/tag_aliases.json', ...options });
1645
+ /**
1646
+ * Reject Tag Alias
1647
+ *
1648
+ * You must be the creator of the request (if pending), or Admin+.
1649
+ */
1650
+ export const rejectTagAlias = (options) => (options.client ?? client).delete({
1651
+ security: [{ scheme: 'basic', type: 'http' }],
1652
+ url: '/tag_aliases/{id}.json',
1653
+ ...options
1654
+ });
1655
+ /**
1656
+ * Get Tag Alias
1657
+ */
1658
+ export const getTagAlias = (options) => (options.client ?? client).get({ url: '/tag_aliases/{id}.json', ...options });
1659
+ /**
1660
+ * Edit Tag Alias
1661
+ *
1662
+ * You must be Admin+.
1663
+ */
1664
+ export const editTagAlias = (options) => (options.client ?? client).patch({
1665
+ ...urlSearchParamsBodySerializer,
1666
+ security: [{ scheme: 'basic', type: 'http' }],
1667
+ url: '/tag_aliases/{id}.json',
1668
+ ...options,
1669
+ headers: {
1670
+ 'Content-Type': 'application/x-www-form-urlencoded',
1671
+ ...options.headers
1672
+ }
1673
+ });
1674
+ /**
1675
+ * Approve Tag Alias
1676
+ *
1677
+ * You must be Admin+.
1678
+ */
1679
+ export const approveTagAlias = (options) => (options.client ?? client).post({
1680
+ security: [{ scheme: 'basic', type: 'http' }],
1681
+ url: '/tag_aliases/{id}/approve.json',
1682
+ ...options
1683
+ });
1684
+ /**
1685
+ * Create Tag Alias
1686
+ *
1687
+ * Errors will result in a 406 with no information.
1688
+ */
1689
+ export const createTagAlias = (options) => (options?.client ?? client).post({
1690
+ ...urlSearchParamsBodySerializer,
1691
+ security: [{ scheme: 'basic', type: 'http' }],
1692
+ url: '/tag_alias_requests.json',
1693
+ ...options,
1694
+ headers: {
1695
+ 'Content-Type': 'application/x-www-form-urlencoded',
1696
+ ...options?.headers
1697
+ }
1698
+ });
1699
+ /**
1700
+ * Search Tag Implications
1701
+ */
1702
+ export const searchTagImplications = (options) => (options?.client ?? client).get({ url: '/tag_implications.json', ...options });
1703
+ /**
1704
+ * Reject Tag Implication
1705
+ *
1706
+ * You must be the creator of the request (if pending), or Admin+.
1707
+ */
1708
+ export const rejectTagImplication = (options) => (options.client ?? client).delete({
1709
+ security: [{ scheme: 'basic', type: 'http' }],
1710
+ url: '/tag_implications/{id}.json',
1711
+ ...options
1712
+ });
1713
+ /**
1714
+ * Get Tag Implication
1715
+ */
1716
+ export const getTagImplication = (options) => (options.client ?? client).get({ url: '/tag_implications/{id}.json', ...options });
1717
+ /**
1718
+ * Edit Tag Implication
1719
+ *
1720
+ * You must be Admin+.
1721
+ */
1722
+ export const editTagImplication = (options) => (options.client ?? client).patch({
1723
+ ...urlSearchParamsBodySerializer,
1724
+ security: [{ scheme: 'basic', type: 'http' }],
1725
+ url: '/tag_implications/{id}.json',
1726
+ ...options,
1727
+ headers: {
1728
+ 'Content-Type': 'application/x-www-form-urlencoded',
1729
+ ...options.headers
1730
+ }
1731
+ });
1732
+ /**
1733
+ * Approve Tag Implication
1734
+ *
1735
+ * You must be Admin+.
1736
+ */
1737
+ export const approveTagImplication = (options) => (options.client ?? client).post({
1738
+ security: [{ scheme: 'basic', type: 'http' }],
1739
+ url: '/tag_implications/{id}/approve.json',
1740
+ ...options
1741
+ });
1742
+ /**
1743
+ * Create Tag Implication
1744
+ *
1745
+ * Errors will result in a 406 with no information.
1746
+ */
1747
+ export const createTagImplication = (options) => (options?.client ?? client).post({
1748
+ ...urlSearchParamsBodySerializer,
1749
+ security: [{ scheme: 'basic', type: 'http' }],
1750
+ url: '/tag_implication_requests.json',
1751
+ ...options,
1752
+ headers: {
1753
+ 'Content-Type': 'application/x-www-form-urlencoded',
1754
+ ...options?.headers
1755
+ }
1756
+ });
1757
+ /**
1758
+ * List Bulk Related Tags
1759
+ */
1760
+ export const listBulkRelatedTags = (options) => (options?.client ?? client).post({
1761
+ security: [{ scheme: 'basic', type: 'http' }],
1762
+ url: '/related_tag/bulk.json',
1763
+ ...options,
1764
+ headers: {
1765
+ 'Content-Type': 'application/json',
1766
+ ...options?.headers
1767
+ }
1768
+ });
1769
+ /**
1770
+ * Login
1771
+ */
1772
+ export const login = (options) => (options?.client ?? client).post({
1773
+ ...urlSearchParamsBodySerializer,
1774
+ security: [{
1775
+ in: 'query',
1776
+ name: 'authenticity_token',
1777
+ type: 'apiKey'
1778
+ }],
1779
+ url: '/session.json',
1780
+ ...options,
1781
+ headers: {
1782
+ 'Content-Type': 'application/x-www-form-urlencoded',
1783
+ ...options?.headers
1784
+ }
1785
+ });
1786
+ /**
1787
+ * Search Staff Notes
1788
+ */
1789
+ export const searchStaffNotes = (options) => (options?.client ?? client).get({ url: '/staff_notes.json', ...options });
1790
+ /**
1791
+ * Create Staff Note
1792
+ */
1793
+ export const createStaffNote = (options) => (options?.client ?? client).post({
1794
+ ...urlSearchParamsBodySerializer,
1795
+ security: [{ scheme: 'basic', type: 'http' }],
1796
+ url: '/staff_notes.json',
1797
+ ...options,
1798
+ headers: {
1799
+ 'Content-Type': 'application/x-www-form-urlencoded',
1800
+ ...options?.headers
1801
+ }
1802
+ });
1803
+ /**
1804
+ * Get Staff Note
1805
+ */
1806
+ export const getStaffNote = (options) => (options.client ?? client).get({ url: '/staff_notes/{id}.json', ...options });
1807
+ /**
1808
+ * Edit Staff Note
1809
+ *
1810
+ * You must be the creator or Admin+.
1811
+ */
1812
+ export const editStaffNote = (options) => (options.client ?? client).patch({
1813
+ ...urlSearchParamsBodySerializer,
1814
+ security: [{ scheme: 'basic', type: 'http' }],
1815
+ url: '/staff_notes/{id}.json',
1816
+ ...options,
1817
+ headers: {
1818
+ 'Content-Type': 'application/x-www-form-urlencoded',
1819
+ ...options.headers
1820
+ }
1821
+ });
1822
+ /**
1823
+ * Delete Staff Note
1824
+ *
1825
+ * You must be the creator or Admin+.
1826
+ *
1827
+ */
1828
+ export const deleteStaffNote = (options) => (options.client ?? client).put({
1829
+ security: [{ scheme: 'basic', type: 'http' }],
1830
+ url: '/staff_notes/{id}/delete.json',
1831
+ ...options
1832
+ });
1833
+ /**
1834
+ * Undelete Staff Note
1835
+ *
1836
+ * You must be the creator or Admin+.
1837
+ *
1838
+ */
1839
+ export const undeleteStaffNote = (options) => (options.client ?? client).put({
1840
+ security: [{ scheme: 'basic', type: 'http' }],
1841
+ url: '/staff_notes/{id}/undelete.json',
1842
+ ...options
1843
+ });
1844
+ /**
1845
+ * Search Takedowns
1846
+ */
1847
+ export const searchTakedowns = (options) => (options?.client ?? client).get({ url: '/takedowns.json', ...options });
1848
+ /**
1849
+ * Create Takedown
1850
+ */
1851
+ export const createTakedown = (options) => (options?.client ?? client).post({
1852
+ ...urlSearchParamsBodySerializer,
1853
+ security: [{ scheme: 'basic', type: 'http' }],
1854
+ url: '/takedowns.json',
1855
+ ...options,
1856
+ headers: {
1857
+ 'Content-Type': 'application/x-www-form-urlencoded',
1858
+ ...options?.headers
1859
+ }
1860
+ });
1861
+ /**
1862
+ * Delete Takedown
1863
+ *
1864
+ * You must have the bd staff user flag.
1865
+ */
1866
+ export const deleteTakedown = (options) => (options.client ?? client).delete({
1867
+ security: [{ scheme: 'basic', type: 'http' }],
1868
+ url: '/takedowns/{id}.json',
1869
+ ...options
1870
+ });
1871
+ /**
1872
+ * Get Takedown
1873
+ */
1874
+ export const getTakedown = (options) => (options.client ?? client).get({ url: '/takedowns/{id}.json', ...options });
1875
+ /**
1876
+ * Edit Takedown
1877
+ *
1878
+ * You must have the bd staff user flag.
1879
+ */
1880
+ export const editTakedown = (options) => (options.client ?? client).patch({
1881
+ ...urlSearchParamsBodySerializer,
1882
+ security: [{ scheme: 'basic', type: 'http' }],
1883
+ url: '/takedowns/{id}.json',
1884
+ ...options,
1885
+ headers: {
1886
+ 'Content-Type': 'application/x-www-form-urlencoded',
1887
+ ...options.headers
1888
+ }
1889
+ });
1890
+ /**
1891
+ * Add Posts To Takedown By IDs
1892
+ *
1893
+ * You must have the bd staff user flag.
1894
+ */
1895
+ export const addPostsToTakedownByIds = (options) => (options.client ?? client).post({
1896
+ ...urlSearchParamsBodySerializer,
1897
+ security: [{ scheme: 'basic', type: 'http' }],
1898
+ url: '/takedowns/{id}/add_by_ids.json',
1899
+ ...options,
1900
+ headers: {
1901
+ 'Content-Type': 'application/x-www-form-urlencoded',
1902
+ ...options.headers
1903
+ }
1904
+ });
1905
+ /**
1906
+ * Add Posts To Takedown By Tags
1907
+ *
1908
+ * You must have the bd staff user flag.
1909
+ */
1910
+ export const addPostsToTakedownByTags = (options) => (options.client ?? client).post({
1911
+ ...urlSearchParamsBodySerializer,
1912
+ security: [{ scheme: 'basic', type: 'http' }],
1913
+ url: '/takedowns/{id}/add_by_tags.json',
1914
+ ...options,
1915
+ headers: {
1916
+ 'Content-Type': 'application/x-www-form-urlencoded',
1917
+ ...options.headers
1918
+ }
1919
+ });
1920
+ /**
1921
+ * Count Matching Posts
1922
+ *
1923
+ * You must have the bd staff user flag.
1924
+ */
1925
+ export const countMatchingPosts = (options) => (options.client ?? client).post({
1926
+ ...urlSearchParamsBodySerializer,
1927
+ security: [{ scheme: 'basic', type: 'http' }],
1928
+ url: '/takedowns/{id}/count_matching_posts.json',
1929
+ ...options,
1930
+ headers: {
1931
+ 'Content-Type': 'application/x-www-form-urlencoded',
1932
+ ...options.headers
1933
+ }
1934
+ });
1935
+ /**
1936
+ * Remove Posts From Takedown By IDs
1937
+ *
1938
+ * You must have the bd staff user flag.
1939
+ */
1940
+ export const removePostsFromTakedownByIds = (options) => (options.client ?? client).post({
1941
+ ...urlSearchParamsBodySerializer,
1942
+ security: [{ scheme: 'basic', type: 'http' }],
1943
+ url: '/takedowns/{id}/remove_by_ids.json',
1944
+ ...options,
1945
+ headers: {
1946
+ 'Content-Type': 'application/x-www-form-urlencoded',
1947
+ ...options.headers
1948
+ }
1949
+ });
1950
+ /**
1951
+ * Search Tickets
1952
+ *
1953
+ * You must be Janitor+ to see tickets you did not create.
1954
+ */
1955
+ export const searchTickets = (options) => (options?.client ?? client).get({ url: '/tickets.json', ...options });
1956
+ /**
1957
+ * Get Ticket
1958
+ *
1959
+ * You must be Janitor+ to see tickets you did not create.
1960
+ */
1961
+ export const getTicket = (options) => (options.client ?? client).get({
1962
+ security: [{ scheme: 'basic', type: 'http' }],
1963
+ url: '/tickets/{id}.json',
1964
+ ...options
1965
+ });
1966
+ /**
1967
+ * Edit Ticket
1968
+ *
1969
+ * You must be Moderator+.
1970
+ */
1971
+ export const editTicket = (options) => (options.client ?? client).patch({
1972
+ ...urlSearchParamsBodySerializer,
1973
+ security: [{ scheme: 'basic', type: 'http' }],
1974
+ url: '/tickets/{id}.json',
1975
+ ...options,
1976
+ headers: {
1977
+ 'Content-Type': 'application/x-www-form-urlencoded',
1978
+ ...options.headers
1979
+ }
1980
+ });
1981
+ /**
1982
+ * Claim Ticket
1983
+ *
1984
+ * You must be Moderator+. Errors are quietly swallowed and shown as notices in html.
1985
+ */
1986
+ export const claimTicket = (options) => (options.client ?? client).post({
1987
+ security: [{ scheme: 'basic', type: 'http' }],
1988
+ url: '/tickets/{id}/claim.json',
1989
+ ...options
1990
+ });
1991
+ /**
1992
+ * Unclaim Ticket
1993
+ *
1994
+ * You must be Moderator+. Errors are quietly swallowed and shown as notices in html.
1995
+ */
1996
+ export const unclaimTicket = (options) => (options.client ?? client).post({
1997
+ security: [{ scheme: 'basic', type: 'http' }],
1998
+ url: '/tickets/{id}/unclaim.json',
1999
+ ...options
2000
+ });
2001
+ /**
2002
+ * Search Uploads
2003
+ */
2004
+ export const searchUploads = (options) => (options?.client ?? client).get({ url: '/uploads.json', ...options });
2005
+ /**
2006
+ * Upload Post
2007
+ */
2008
+ export const uploadPost = (options) => (options?.client ?? client).post({
2009
+ ...formDataBodySerializer,
2010
+ security: [{ scheme: 'basic', type: 'http' }],
2011
+ url: '/uploads.json',
2012
+ ...options,
2013
+ headers: {
2014
+ 'Content-Type': null,
2015
+ ...options?.headers
2016
+ }
2017
+ });
2018
+ /**
2019
+ * Get Upload
2020
+ *
2021
+ * You must be Janitor+.
2022
+ */
2023
+ export const getUpload = (options) => (options.client ?? client).get({ url: '/uploads/{id}.json', ...options });
2024
+ /**
2025
+ * Search Upload Whitelists
2026
+ */
2027
+ export const searchUploadWhitelists = (options) => (options?.client ?? client).get({ url: '/upload_whitelists.json', ...options });
2028
+ /**
2029
+ * Create Upload Whitelist
2030
+ *
2031
+ * You must be Admin+.
2032
+ */
2033
+ export const createUploadWhitelist = (options) => (options?.client ?? client).post({
2034
+ ...urlSearchParamsBodySerializer,
2035
+ security: [{ scheme: 'basic', type: 'http' }],
2036
+ url: '/upload_whitelists.json',
2037
+ ...options,
2038
+ headers: {
2039
+ 'Content-Type': 'application/x-www-form-urlencoded',
2040
+ ...options?.headers
2041
+ }
2042
+ });
2043
+ /**
2044
+ * Delete Upload Whitelist
2045
+ *
2046
+ * You must be Admin+.
2047
+ */
2048
+ export const deleteUploadWhitelist = (options) => (options.client ?? client).delete({
2049
+ security: [{ scheme: 'basic', type: 'http' }],
2050
+ url: '/upload_whitelists/{id}.json',
2051
+ ...options
2052
+ });
2053
+ /**
2054
+ * Edit Upload Whitelist
2055
+ */
2056
+ export const editUploadWhitelist = (options) => (options.client ?? client).patch({
2057
+ ...urlSearchParamsBodySerializer,
2058
+ security: [{ scheme: 'basic', type: 'http' }],
2059
+ url: '/upload_whitelists/{id}.json',
2060
+ ...options,
2061
+ headers: {
2062
+ 'Content-Type': 'application/x-www-form-urlencoded',
2063
+ ...options.headers
2064
+ }
2065
+ });
2066
+ /**
2067
+ * Check If URL Is Allowed
2068
+ */
2069
+ export const checkIfUrlIsAllowed = (options) => (options?.client ?? client).get({
2070
+ security: [{ scheme: 'basic', type: 'http' }],
2071
+ url: '/upload_whitelists/is_allowed.json',
2072
+ ...options
2073
+ });
2074
+ /**
2075
+ * Search Users
2076
+ */
2077
+ export const searchUsers = (options) => (options?.client ?? client).get({ url: '/users.json', ...options });
2078
+ /**
2079
+ * Get Current User
2080
+ *
2081
+ * This will return the default settings for anonymous users if no authentication is used.
2082
+ * This most interesting part is probably the default blacklist, located in `blacklisted_tags`.
2083
+ *
2084
+ */
2085
+ export const getMe = (options) => (options?.client ?? client).get({ url: '/users/me.json', ...options });
2086
+ /**
2087
+ * Get Avatar Menu
2088
+ */
2089
+ export const getAvatarMenu = (options) => (options?.client ?? client).get({
2090
+ security: [{ scheme: 'basic', type: 'http' }],
2091
+ url: '/users/avatar_menu.json',
2092
+ ...options
2093
+ });
2094
+ /**
2095
+ * Get User
2096
+ */
2097
+ export const getUser = (options) => (options.client ?? client).get({ url: '/users/{idOrName}.json', ...options });
2098
+ /**
2099
+ * Edit Current User
2100
+ */
2101
+ export const editCurrentUser = (options) => (options.client ?? client).patch({
2102
+ ...urlSearchParamsBodySerializer,
2103
+ security: [{ scheme: 'basic', type: 'http' }],
2104
+ url: '/users/{idOrName}.json',
2105
+ ...options,
2106
+ headers: {
2107
+ 'Content-Type': 'application/x-www-form-urlencoded',
2108
+ ...options.headers
2109
+ }
2110
+ });
2111
+ /**
2112
+ * Get User Upload Limit
2113
+ */
2114
+ export const getUserUploadLimit = (options) => (options.client ?? client).get({
2115
+ security: [{ scheme: 'basic', type: 'http' }],
2116
+ url: '/users/{idOrName}/upload_limit.json',
2117
+ ...options
2118
+ });
2119
+ /**
2120
+ * Clear User Favorites
2121
+ *
2122
+ * You must be Admin+.
2123
+ */
2124
+ export const clearUserFavorites = (options) => (options.client ?? client).post({
2125
+ security: [{ scheme: 'basic', type: 'http' }],
2126
+ url: '/users/{idOrName}/flush_favorites.json',
2127
+ ...options
2128
+ });
2129
+ /**
2130
+ * Staff Fix User Counts
2131
+ *
2132
+ * You must be Janitor+.
2133
+ */
2134
+ export const staffFixUserCounts = (options) => (options.client ?? client).get({
2135
+ security: [{ scheme: 'basic', type: 'http' }],
2136
+ url: '/users/{idOrName}/fix_counts.json',
2137
+ ...options
2138
+ });
2139
+ /**
2140
+ * Toggle User Uploads
2141
+ *
2142
+ * You must be Janitor+.
2143
+ * This endpoint will return HTML when disabling uploads (due to a reason being required), this endpoint should only be used for reenabling. Use [Disable User Uploads](#operation-Users-disableUserUploads) to disable uploads.
2144
+ *
2145
+ */
2146
+ export const toggleUserUploads = (options) => (options.client ?? client).get({
2147
+ security: [{ scheme: 'basic', type: 'http' }],
2148
+ url: '/users/{idOrName}/toggle_uploads.json',
2149
+ ...options
2150
+ });
2151
+ /**
2152
+ * Disable User Uploads
2153
+ *
2154
+ * You must be Janitor+.
2155
+ */
2156
+ export const disableUserUploads = (options) => (options.client ?? client).post({
2157
+ ...urlSearchParamsBodySerializer,
2158
+ security: [{ scheme: 'basic', type: 'http' }],
2159
+ url: '/users/{idOrName}/disable_uploads.json',
2160
+ ...options,
2161
+ headers: {
2162
+ 'Content-Type': 'application/x-www-form-urlencoded',
2163
+ ...options.headers
2164
+ }
2165
+ });
2166
+ /**
2167
+ * Audit User DMails
2168
+ *
2169
+ * Must have the bd auditor user flag.
2170
+ */
2171
+ export const auditUserDMails = (options) => (options.client ?? client).get({
2172
+ security: [{ scheme: 'basic', type: 'http' }],
2173
+ url: '/users/{user_id}/dmails.json',
2174
+ ...options
2175
+ });
2176
+ /**
2177
+ * Audit User DMail
2178
+ *
2179
+ * Must have the bd auditor user flag.
2180
+ */
2181
+ export const auditUserDMail = (options) => (options.client ?? client).get({
2182
+ security: [{ scheme: 'basic', type: 'http' }],
2183
+ url: '/users/{user_id}/dmails/{id}.json',
2184
+ ...options
2185
+ });
2186
+ /**
2187
+ * Fix User Counts
2188
+ */
2189
+ export const fixUserCounts = (options) => (options?.client ?? client).post({
2190
+ security: [{ scheme: 'basic', type: 'http' }],
2191
+ url: '/maintenance/user/count_fixes.json',
2192
+ ...options
2193
+ });
2194
+ /**
2195
+ * Update User Dmail Filter
2196
+ */
2197
+ export const updateUserDmailFilter = (options) => (options.client ?? client).patch({
2198
+ ...urlSearchParamsBodySerializer,
2199
+ security: [{ scheme: 'basic', type: 'http' }],
2200
+ url: '/maintenance/user/dmail_filter.json',
2201
+ ...options,
2202
+ headers: {
2203
+ 'Content-Type': 'application/x-www-form-urlencoded',
2204
+ ...options.headers
2205
+ }
2206
+ });
2207
+ /**
2208
+ * Search User Feedbacks
2209
+ */
2210
+ export const searchUserFeedbacks = (options) => (options?.client ?? client).get({ url: '/user_feedbacks.json', ...options });
2211
+ /**
2212
+ * Create User Feedback
2213
+ *
2214
+ * You must be Moderator+.
2215
+ */
2216
+ export const createUserFeedback = (options) => (options?.client ?? client).post({
2217
+ ...urlSearchParamsBodySerializer,
2218
+ security: [{ scheme: 'basic', type: 'http' }],
2219
+ url: '/user_feedbacks.json',
2220
+ ...options,
2221
+ headers: {
2222
+ 'Content-Type': 'application/x-www-form-urlencoded',
2223
+ ...options?.headers
2224
+ }
2225
+ });
2226
+ /**
2227
+ * Destroy User Feedback
2228
+ *
2229
+ * You must be Admin+, or the creator and Moderator+.
2230
+ */
2231
+ export const destroyUserFeedback = (options) => (options.client ?? client).delete({
2232
+ security: [{ scheme: 'basic', type: 'http' }],
2233
+ url: '/user_feedbacks/{id}.json',
2234
+ ...options
2235
+ });
2236
+ /**
2237
+ * Get User Feedback
2238
+ *
2239
+ * You must be Janitor+ if the feedback is deleted.
2240
+ */
2241
+ export const getUserFeedback = (options) => (options.client ?? client).get({ url: '/user_feedbacks/{id}.json', ...options });
2242
+ /**
2243
+ * Edit User Feedback
2244
+ *
2245
+ * You must be Moderator+.
2246
+ */
2247
+ export const editUserFeedback = (options) => (options.client ?? client).patch({
2248
+ ...urlSearchParamsBodySerializer,
2249
+ security: [{ scheme: 'basic', type: 'http' }],
2250
+ url: '/user_feedbacks/{id}.json',
2251
+ ...options,
2252
+ headers: {
2253
+ 'Content-Type': 'application/x-www-form-urlencoded',
2254
+ ...options.headers
2255
+ }
2256
+ });
2257
+ /**
2258
+ * Delete User Feedback
2259
+ *
2260
+ * You must be Moderator+.
2261
+ */
2262
+ export const deleteUserFeedback = (options) => (options.client ?? client).put({
2263
+ security: [{ scheme: 'basic', type: 'http' }],
2264
+ url: '/user_feedbacks/{id}/delete.json',
2265
+ ...options
2266
+ });
2267
+ /**
2268
+ * Undelete User Feedback
2269
+ *
2270
+ * You must be Moderator+.
2271
+ */
2272
+ export const undeleteUserFeedback = (options) => (options.client ?? client).put({
2273
+ security: [{ scheme: 'basic', type: 'http' }],
2274
+ url: '/user_feedbacks/{id}/undelete.json',
2275
+ ...options
2276
+ });
2277
+ /**
2278
+ * Search User Name Change Requests
2279
+ *
2280
+ * You must be Moderator+.
2281
+ */
2282
+ export const searchUserNameChangeRequests = (options) => (options?.client ?? client).get({
2283
+ security: [{ scheme: 'basic', type: 'http' }],
2284
+ url: '/user_name_change_requests.json',
2285
+ ...options
2286
+ });
2287
+ /**
2288
+ * Create User Name Change Request
2289
+ */
2290
+ export const createUserNameChangeRequest = (options) => (options?.client ?? client).post({
2291
+ ...urlSearchParamsBodySerializer,
2292
+ security: [{ scheme: 'basic', type: 'http' }],
2293
+ url: '/user_name_change_requests.json',
2294
+ ...options,
2295
+ headers: {
2296
+ 'Content-Type': 'application/x-www-form-urlencoded',
2297
+ ...options?.headers
2298
+ }
2299
+ });
2300
+ /**
2301
+ * Delete User Name Change Request
2302
+ *
2303
+ * You must be Moderator+.
2304
+ */
2305
+ export const deleteUserNameChangeRequest = (options) => (options.client ?? client).delete({
2306
+ security: [{ scheme: 'basic', type: 'http' }],
2307
+ url: '/user_name_change_requests/{id}.json',
2308
+ ...options
2309
+ });
2310
+ /**
2311
+ * Get User Name Change Request
2312
+ *
2313
+ * You must be the creator of the request or Moderator+.
2314
+ */
2315
+ export const getUserNameChangeRequest = (options) => (options.client ?? client).get({
2316
+ security: [{ scheme: 'basic', type: 'http' }],
2317
+ url: '/user_name_change_requests/{id}.json',
2318
+ ...options
2319
+ });
2320
+ /**
2321
+ * Search Wiki Pages
2322
+ */
2323
+ export const searchWikiPages = (options) => (options?.client ?? client).get({ url: '/wiki_pages.json', ...options });
2324
+ /**
2325
+ * Create Wiki Page
2326
+ */
2327
+ export const createWikiPage = (options) => (options?.client ?? client).post({
2328
+ ...urlSearchParamsBodySerializer,
2329
+ security: [{ scheme: 'basic', type: 'http' }],
2330
+ url: '/wiki_pages.json',
2331
+ ...options,
2332
+ headers: {
2333
+ 'Content-Type': 'application/x-www-form-urlencoded',
2334
+ ...options?.headers
2335
+ }
2336
+ });
2337
+ /**
2338
+ * Delete Wiki Page
2339
+ *
2340
+ * You must be Admin+
2341
+ */
2342
+ export const deleteWikiPage = (options) => (options.client ?? client).delete({
2343
+ security: [{ scheme: 'basic', type: 'http' }],
2344
+ url: '/wiki_pages/{id}.json',
2345
+ ...options
2346
+ });
2347
+ /**
2348
+ * Get Wiki Page
2349
+ */
2350
+ export const getWikiPage = (options) => (options.client ?? client).get({ url: '/wiki_pages/{id}.json', ...options });
2351
+ /**
2352
+ * Edit Wiki Page
2353
+ *
2354
+ * You must be Janitor+ if the wiki page is locked.
2355
+ */
2356
+ export const editWikiPage = (options) => (options.client ?? client).patch({
2357
+ ...urlSearchParamsBodySerializer,
2358
+ security: [{ scheme: 'basic', type: 'http' }],
2359
+ url: '/wiki_pages/{id}.json',
2360
+ ...options,
2361
+ headers: {
2362
+ 'Content-Type': 'application/x-www-form-urlencoded',
2363
+ ...options.headers
2364
+ }
2365
+ });
2366
+ /**
2367
+ * Revert Wiki Page
2368
+ */
2369
+ export const revertWikiPage = (options) => (options.client ?? client).put({
2370
+ security: [{ scheme: 'basic', type: 'http' }],
2371
+ url: '/wiki_page/{id}/revert.json',
2372
+ ...options
2373
+ });
2374
+ /**
2375
+ * Search Wiki Page Versions
2376
+ */
2377
+ export const searchWikiPageVersions = (options) => (options?.client ?? client).get({ url: '/wiki_page_versions.json', ...options });
2378
+ /**
2379
+ * Get Wiki Page Version
2380
+ */
2381
+ export const getWikiPageVersion = (options) => (options.client ?? client).get({ url: '/wiki_page_versions/{id}.json', ...options });
2382
+ /**
2383
+ * Get Alt List
2384
+ *
2385
+ * You must be Admin+.
2386
+ */
2387
+ export const getAltList = (options) => (options?.client ?? client).get({
2388
+ security: [{ scheme: 'basic', type: 'http' }],
2389
+ url: '/admin/users/alt_list.json',
2390
+ ...options
2391
+ });
2392
+ /**
2393
+ * Admin Edit User
2394
+ *
2395
+ * You must be Admin+. If editing an Admin+, you must be Owner+.
2396
+ */
2397
+ export const adminEditUser = (options) => (options.client ?? client).patch({
2398
+ ...urlSearchParamsBodySerializer,
2399
+ security: [{ scheme: 'basic', type: 'http' }],
2400
+ url: '/admins/users/{id}.json',
2401
+ ...options,
2402
+ headers: {
2403
+ 'Content-Type': 'application/x-www-form-urlencoded',
2404
+ ...options.headers
2405
+ }
2406
+ });
2407
+ /**
2408
+ * Admin Anonymize User
2409
+ *
2410
+ * You must have the bd staff user flag. Cannot be used on staff.
2411
+ */
2412
+ export const adminAnonymizeUser = (options) => (options.client ?? client).post({
2413
+ security: [{ scheme: 'basic', type: 'http' }],
2414
+ url: '/admins/users/{id}/anonymize.json',
2415
+ ...options
2416
+ });
2417
+ /**
2418
+ * Delete Post
2419
+ *
2420
+ * You must have the "Approve Posts" permission. `commit=Delete` must be set.
2421
+ */
2422
+ export const deletePost = (options) => (options.client ?? client).post({
2423
+ ...urlSearchParamsBodySerializer,
2424
+ security: [{ scheme: 'basic', type: 'http' }],
2425
+ url: '/moderator/post/posts/{id}/delete.json',
2426
+ ...options,
2427
+ headers: {
2428
+ 'Content-Type': 'application/x-www-form-urlencoded',
2429
+ ...options.headers
2430
+ }
2431
+ });
2432
+ /**
2433
+ * Undelete Post
2434
+ *
2435
+ * You must have the "Approve Posts" permission.
2436
+ */
2437
+ export const undeletePost = (options) => (options.client ?? client).post({
2438
+ security: [{ scheme: 'basic', type: 'http' }],
2439
+ url: '/moderator/post/posts/{id}/undelete.json',
2440
+ ...options
2441
+ });
2442
+ /**
2443
+ * Regenerate Post Thumbnails
2444
+ *
2445
+ * You must be Janitor+.
2446
+ */
2447
+ export const regeneratePostThumbnails = (options) => (options.client ?? client).post({
2448
+ security: [{ scheme: 'basic', type: 'http' }],
2449
+ url: '/moderator/post/posts/{id}/regenerate_thumbnails.json',
2450
+ ...options
2451
+ });
2452
+ /**
2453
+ * Regenerate Post Videos
2454
+ *
2455
+ * You must be Janitor+.
2456
+ */
2457
+ export const regeneratePostVideos = (options) => (options.client ?? client).post({
2458
+ security: [{ scheme: 'basic', type: 'http' }],
2459
+ url: '/moderator/post/posts/{id}/regenerate_videos.json',
2460
+ ...options
2461
+ });
2462
+ /**
2463
+ * Expunge Post
2464
+ *
2465
+ * You must have the "Approve Posts" permission and be Admin+.
2466
+ */
2467
+ export const expungePost = (options) => (options.client ?? client).post({
2468
+ ...urlSearchParamsBodySerializer,
2469
+ security: [{ scheme: 'basic', type: 'http' }],
2470
+ url: '/moderator/post/posts/{id}/expunge.json',
2471
+ ...options,
2472
+ headers: {
2473
+ 'Content-Type': 'application/x-www-form-urlencoded',
2474
+ ...options.headers
2475
+ }
2476
+ });
2477
+ /**
2478
+ * Move Post Favorites
2479
+ *
2480
+ * You must have the "Approve Posts" permission. `commit=Submit`` must be set.
2481
+ */
2482
+ export const movePostFavorites = (options) => (options.client ?? client).post({
2483
+ ...urlSearchParamsBodySerializer,
2484
+ security: [{ scheme: 'basic', type: 'http' }],
2485
+ url: '/moderator/post/posts/{id}/move_favorites.json',
2486
+ ...options,
2487
+ headers: {
2488
+ 'Content-Type': 'application/x-www-form-urlencoded',
2489
+ ...options.headers
2490
+ }
2491
+ });
2492
+ /**
2493
+ * AI Check Post
2494
+ *
2495
+ * You must be Janitor+.
2496
+ */
2497
+ export const aiCheckPost = (options) => (options.client ?? client).get({
2498
+ security: [{ scheme: 'basic', type: 'http' }],
2499
+ url: '/moderator/post/posts/{id}/ai_check.json',
2500
+ ...options
2501
+ });
2502
+ /**
2503
+ * Unapprove Post
2504
+ *
2505
+ * You must have the "Approve Posts" permission. The response does not differ for success or failure.
2506
+ */
2507
+ export const unapprovePost = (options) => (options?.client ?? client).delete({
2508
+ ...urlSearchParamsBodySerializer,
2509
+ security: [{ scheme: 'basic', type: 'http' }],
2510
+ url: '/moderator/post/approval.json',
2511
+ ...options,
2512
+ headers: {
2513
+ 'Content-Type': 'application/x-www-form-urlencoded',
2514
+ ...options?.headers
2515
+ }
2516
+ });
2517
+ /**
2518
+ * Approve Post
2519
+ *
2520
+ * You must have the "Approve Posts" permission.
2521
+ */
2522
+ export const approvePost = (options) => (options?.client ?? client).post({
2523
+ ...urlSearchParamsBodySerializer,
2524
+ security: [{ scheme: 'basic', type: 'http' }],
2525
+ url: '/moderator/post/approval.json',
2526
+ ...options,
2527
+ headers: {
2528
+ 'Content-Type': 'application/x-www-form-urlencoded',
2529
+ ...options?.headers
2530
+ }
2531
+ });
2532
+ /**
2533
+ * Search Post Disapprovals
2534
+ *
2535
+ * You must have the "Approve Posts" permission.
2536
+ */
2537
+ export const searchPostDisapprovals = (options) => (options?.client ?? client).get({
2538
+ security: [{ scheme: 'basic', type: 'http' }],
2539
+ url: '/moderator/post/disapprovals.json',
2540
+ ...options
2541
+ });
2542
+ /**
2543
+ * Create Post Disapproval
2544
+ *
2545
+ * You must have the "Approve Posts" permission.
2546
+ */
2547
+ export const createPostDisapproval = (options) => (options?.client ?? client).post({
2548
+ ...urlSearchParamsBodySerializer,
2549
+ security: [{ scheme: 'basic', type: 'http' }],
2550
+ url: '/moderator/post/disapprovals.json',
2551
+ ...options,
2552
+ headers: {
2553
+ 'Content-Type': 'application/x-www-form-urlencoded',
2554
+ ...options?.headers
2555
+ }
2556
+ });
2557
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2dlbmVyYXRlZC9zZGsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscURBQXFEO0FBRXJELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFlLHNCQUFzQixFQUE2Qyw2QkFBNkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBaUJsSjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQXVDLE9BQStDLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQXNEO0lBQ3RNLFFBQVEsRUFBRSxDQUFDO1lBQ0gsRUFBRSxFQUFFLFFBQVE7WUFDWixJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLElBQUksRUFBRSxRQUFRO1NBQ2pCLENBQUM7SUFDTixHQUFHLEVBQUUsZ0JBQWdCO0lBQ3JCLEdBQUcsT0FBTztDQUNiLENBQUMsQ0FBQztBQUVIOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBdUMsT0FBaUQsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBMEQ7SUFDL00sR0FBRyw2QkFBNkI7SUFDaEMsUUFBUSxFQUFFLENBQUM7WUFDSCxFQUFFLEVBQUUsUUFBUTtZQUNaLElBQUksRUFBRSxtQkFBbUI7WUFDekIsSUFBSSxFQUFFLFFBQVE7U0FDakIsRUFBRTtZQUNDLEVBQUUsRUFBRSxPQUFPO1lBQ1gsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixJQUFJLEVBQUUsUUFBUTtTQUNqQixDQUFDO0lBQ04sR0FBRyxFQUFFLGdCQUFnQjtJQUNyQixHQUFHLE9BQU87SUFDVixPQUFPLEVBQUU7UUFDTCxjQUFjLEVBQUUsbUNBQW1DO1FBQ25ELEdBQUcsT0FBTyxFQUFFLE9B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