@neontechspace/fluxerly 1000.0.0-nightly.12

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 (1319) hide show
  1. package/CHANGELOG.md +833 -0
  2. package/LICENSE +201 -0
  3. package/README.md +129 -0
  4. package/agents/AGENTS.md +195 -0
  5. package/dist/api/default/application.d.ts +34 -0
  6. package/dist/api/default/application.d.ts.map +1 -0
  7. package/dist/api/default/application.js +2 -0
  8. package/dist/api/default/application.js.map +1 -0
  9. package/dist/api/default/attachments.d.ts +89 -0
  10. package/dist/api/default/attachments.d.ts.map +1 -0
  11. package/dist/api/default/attachments.js +2 -0
  12. package/dist/api/default/attachments.js.map +1 -0
  13. package/dist/api/default/audit-logs.d.ts +48 -0
  14. package/dist/api/default/audit-logs.d.ts.map +1 -0
  15. package/dist/api/default/audit-logs.js +2 -0
  16. package/dist/api/default/audit-logs.js.map +1 -0
  17. package/dist/api/default/bot.d.ts +200 -0
  18. package/dist/api/default/bot.d.ts.map +1 -0
  19. package/dist/api/default/bot.js +309 -0
  20. package/dist/api/default/bot.js.map +1 -0
  21. package/dist/api/default/cache.d.ts +105 -0
  22. package/dist/api/default/cache.d.ts.map +1 -0
  23. package/dist/api/default/cache.js +2 -0
  24. package/dist/api/default/cache.js.map +1 -0
  25. package/dist/api/default/channels.d.ts +249 -0
  26. package/dist/api/default/channels.d.ts.map +1 -0
  27. package/dist/api/default/channels.js +2 -0
  28. package/dist/api/default/channels.js.map +1 -0
  29. package/dist/api/default/client.d.ts +528 -0
  30. package/dist/api/default/client.d.ts.map +1 -0
  31. package/dist/api/default/client.js +301 -0
  32. package/dist/api/default/client.js.map +1 -0
  33. package/dist/api/default/collectors.d.ts +76 -0
  34. package/dist/api/default/collectors.d.ts.map +1 -0
  35. package/dist/api/default/collectors.js +2 -0
  36. package/dist/api/default/collectors.js.map +1 -0
  37. package/dist/api/default/commands.d.ts +91 -0
  38. package/dist/api/default/commands.d.ts.map +1 -0
  39. package/dist/api/default/commands.js +92 -0
  40. package/dist/api/default/commands.js.map +1 -0
  41. package/dist/api/default/direct-messages.d.ts +111 -0
  42. package/dist/api/default/direct-messages.d.ts.map +1 -0
  43. package/dist/api/default/direct-messages.js +2 -0
  44. package/dist/api/default/direct-messages.js.map +1 -0
  45. package/dist/api/default/discovery.d.ts +76 -0
  46. package/dist/api/default/discovery.d.ts.map +1 -0
  47. package/dist/api/default/discovery.js +2 -0
  48. package/dist/api/default/discovery.js.map +1 -0
  49. package/dist/api/default/emojis.d.ts +88 -0
  50. package/dist/api/default/emojis.d.ts.map +1 -0
  51. package/dist/api/default/emojis.js +2 -0
  52. package/dist/api/default/emojis.js.map +1 -0
  53. package/dist/api/default/events.d.ts +127 -0
  54. package/dist/api/default/events.d.ts.map +1 -0
  55. package/dist/api/default/events.js +2 -0
  56. package/dist/api/default/events.js.map +1 -0
  57. package/dist/api/default/gateway.d.ts +62 -0
  58. package/dist/api/default/gateway.d.ts.map +1 -0
  59. package/dist/api/default/gateway.js +2 -0
  60. package/dist/api/default/gateway.js.map +1 -0
  61. package/dist/api/default/guards.d.ts +87 -0
  62. package/dist/api/default/guards.d.ts.map +1 -0
  63. package/dist/api/default/guards.js +78 -0
  64. package/dist/api/default/guards.js.map +1 -0
  65. package/dist/api/default/guilds.d.ts +230 -0
  66. package/dist/api/default/guilds.d.ts.map +1 -0
  67. package/dist/api/default/guilds.js +2 -0
  68. package/dist/api/default/guilds.js.map +1 -0
  69. package/dist/api/default/helpers.d.ts +79 -0
  70. package/dist/api/default/helpers.d.ts.map +1 -0
  71. package/dist/api/default/helpers.js +79 -0
  72. package/dist/api/default/helpers.js.map +1 -0
  73. package/dist/api/default/instance.d.ts +47 -0
  74. package/dist/api/default/instance.d.ts.map +1 -0
  75. package/dist/api/default/instance.js +2 -0
  76. package/dist/api/default/instance.js.map +1 -0
  77. package/dist/api/default/invites.d.ts +57 -0
  78. package/dist/api/default/invites.d.ts.map +1 -0
  79. package/dist/api/default/invites.js +2 -0
  80. package/dist/api/default/invites.js.map +1 -0
  81. package/dist/api/default/logging.d.ts +37 -0
  82. package/dist/api/default/logging.d.ts.map +1 -0
  83. package/dist/api/default/logging.js +2 -0
  84. package/dist/api/default/logging.js.map +1 -0
  85. package/dist/api/default/members.d.ts +442 -0
  86. package/dist/api/default/members.d.ts.map +1 -0
  87. package/dist/api/default/members.js +2 -0
  88. package/dist/api/default/members.js.map +1 -0
  89. package/dist/api/default/messages.d.ts +898 -0
  90. package/dist/api/default/messages.d.ts.map +1 -0
  91. package/dist/api/default/messages.js +2 -0
  92. package/dist/api/default/messages.js.map +1 -0
  93. package/dist/api/default/oauth.d.ts +168 -0
  94. package/dist/api/default/oauth.d.ts.map +1 -0
  95. package/dist/api/default/oauth.js +84 -0
  96. package/dist/api/default/oauth.js.map +1 -0
  97. package/dist/api/default/permissions.d.ts +44 -0
  98. package/dist/api/default/permissions.d.ts.map +1 -0
  99. package/dist/api/default/permissions.js +2 -0
  100. package/dist/api/default/permissions.js.map +1 -0
  101. package/dist/api/default/presence.d.ts +88 -0
  102. package/dist/api/default/presence.d.ts.map +1 -0
  103. package/dist/api/default/presence.js +2 -0
  104. package/dist/api/default/presence.js.map +1 -0
  105. package/dist/api/default/rest.d.ts +28 -0
  106. package/dist/api/default/rest.d.ts.map +1 -0
  107. package/dist/api/default/rest.js +2 -0
  108. package/dist/api/default/rest.js.map +1 -0
  109. package/dist/api/default/results.d.ts +31 -0
  110. package/dist/api/default/results.d.ts.map +1 -0
  111. package/dist/api/default/results.js +14 -0
  112. package/dist/api/default/results.js.map +1 -0
  113. package/dist/api/default/roles.d.ts +119 -0
  114. package/dist/api/default/roles.d.ts.map +1 -0
  115. package/dist/api/default/roles.js +2 -0
  116. package/dist/api/default/roles.js.map +1 -0
  117. package/dist/api/default/stickers.d.ts +92 -0
  118. package/dist/api/default/stickers.d.ts.map +1 -0
  119. package/dist/api/default/stickers.js +2 -0
  120. package/dist/api/default/stickers.js.map +1 -0
  121. package/dist/api/default/supervisor.d.ts +51 -0
  122. package/dist/api/default/supervisor.d.ts.map +1 -0
  123. package/dist/api/default/supervisor.js +53 -0
  124. package/dist/api/default/supervisor.js.map +1 -0
  125. package/dist/api/default/threads.d.ts +158 -0
  126. package/dist/api/default/threads.d.ts.map +1 -0
  127. package/dist/api/default/threads.js +2 -0
  128. package/dist/api/default/threads.js.map +1 -0
  129. package/dist/api/default/users.d.ts +73 -0
  130. package/dist/api/default/users.d.ts.map +1 -0
  131. package/dist/api/default/users.js +2 -0
  132. package/dist/api/default/users.js.map +1 -0
  133. package/dist/api/default/webhook-client.d.ts +149 -0
  134. package/dist/api/default/webhook-client.d.ts.map +1 -0
  135. package/dist/api/default/webhook-client.js +69 -0
  136. package/dist/api/default/webhook-client.js.map +1 -0
  137. package/dist/api/default/webhooks.d.ts +62 -0
  138. package/dist/api/default/webhooks.d.ts.map +1 -0
  139. package/dist/api/default/webhooks.js +2 -0
  140. package/dist/api/default/webhooks.js.map +1 -0
  141. package/dist/api/effect/application.d.ts +29 -0
  142. package/dist/api/effect/application.d.ts.map +1 -0
  143. package/dist/api/effect/application.js +2 -0
  144. package/dist/api/effect/application.js.map +1 -0
  145. package/dist/api/effect/attachments.d.ts +84 -0
  146. package/dist/api/effect/attachments.d.ts.map +1 -0
  147. package/dist/api/effect/attachments.js +2 -0
  148. package/dist/api/effect/attachments.js.map +1 -0
  149. package/dist/api/effect/audit-logs.d.ts +42 -0
  150. package/dist/api/effect/audit-logs.d.ts.map +1 -0
  151. package/dist/api/effect/audit-logs.js +2 -0
  152. package/dist/api/effect/audit-logs.js.map +1 -0
  153. package/dist/api/effect/bot.d.ts +233 -0
  154. package/dist/api/effect/bot.d.ts.map +1 -0
  155. package/dist/api/effect/bot.js +230 -0
  156. package/dist/api/effect/bot.js.map +1 -0
  157. package/dist/api/effect/cache.d.ts +103 -0
  158. package/dist/api/effect/cache.d.ts.map +1 -0
  159. package/dist/api/effect/cache.js +2 -0
  160. package/dist/api/effect/cache.js.map +1 -0
  161. package/dist/api/effect/channels.d.ts +231 -0
  162. package/dist/api/effect/channels.d.ts.map +1 -0
  163. package/dist/api/effect/channels.js +2 -0
  164. package/dist/api/effect/channels.js.map +1 -0
  165. package/dist/api/effect/client.d.ts +622 -0
  166. package/dist/api/effect/client.d.ts.map +1 -0
  167. package/dist/api/effect/client.js +191 -0
  168. package/dist/api/effect/client.js.map +1 -0
  169. package/dist/api/effect/collectors.d.ts +90 -0
  170. package/dist/api/effect/collectors.d.ts.map +1 -0
  171. package/dist/api/effect/collectors.js +2 -0
  172. package/dist/api/effect/collectors.js.map +1 -0
  173. package/dist/api/effect/commands.d.ts +86 -0
  174. package/dist/api/effect/commands.d.ts.map +1 -0
  175. package/dist/api/effect/commands.js +87 -0
  176. package/dist/api/effect/commands.js.map +1 -0
  177. package/dist/api/effect/direct-messages.d.ts +102 -0
  178. package/dist/api/effect/direct-messages.d.ts.map +1 -0
  179. package/dist/api/effect/direct-messages.js +2 -0
  180. package/dist/api/effect/direct-messages.js.map +1 -0
  181. package/dist/api/effect/discovery.d.ts +68 -0
  182. package/dist/api/effect/discovery.d.ts.map +1 -0
  183. package/dist/api/effect/discovery.js +2 -0
  184. package/dist/api/effect/discovery.js.map +1 -0
  185. package/dist/api/effect/emojis.d.ts +77 -0
  186. package/dist/api/effect/emojis.d.ts.map +1 -0
  187. package/dist/api/effect/emojis.js +2 -0
  188. package/dist/api/effect/emojis.js.map +1 -0
  189. package/dist/api/effect/events.d.ts +78 -0
  190. package/dist/api/effect/events.d.ts.map +1 -0
  191. package/dist/api/effect/events.js +12 -0
  192. package/dist/api/effect/events.js.map +1 -0
  193. package/dist/api/effect/failures.d.ts +14 -0
  194. package/dist/api/effect/failures.d.ts.map +1 -0
  195. package/dist/api/effect/failures.js +2 -0
  196. package/dist/api/effect/failures.js.map +1 -0
  197. package/dist/api/effect/gateway.d.ts +63 -0
  198. package/dist/api/effect/gateway.d.ts.map +1 -0
  199. package/dist/api/effect/gateway.js +2 -0
  200. package/dist/api/effect/gateway.js.map +1 -0
  201. package/dist/api/effect/guards.d.ts +91 -0
  202. package/dist/api/effect/guards.d.ts.map +1 -0
  203. package/dist/api/effect/guards.js +94 -0
  204. package/dist/api/effect/guards.js.map +1 -0
  205. package/dist/api/effect/guilds.d.ts +221 -0
  206. package/dist/api/effect/guilds.d.ts.map +1 -0
  207. package/dist/api/effect/guilds.js +2 -0
  208. package/dist/api/effect/guilds.js.map +1 -0
  209. package/dist/api/effect/helpers.d.ts +300 -0
  210. package/dist/api/effect/helpers.d.ts.map +1 -0
  211. package/dist/api/effect/helpers.js +156 -0
  212. package/dist/api/effect/helpers.js.map +1 -0
  213. package/dist/api/effect/hierarchy.d.ts +26 -0
  214. package/dist/api/effect/hierarchy.d.ts.map +1 -0
  215. package/dist/api/effect/hierarchy.js +26 -0
  216. package/dist/api/effect/hierarchy.js.map +1 -0
  217. package/dist/api/effect/instance.d.ts +46 -0
  218. package/dist/api/effect/instance.d.ts.map +1 -0
  219. package/dist/api/effect/instance.js +8 -0
  220. package/dist/api/effect/instance.js.map +1 -0
  221. package/dist/api/effect/invites.d.ts +49 -0
  222. package/dist/api/effect/invites.d.ts.map +1 -0
  223. package/dist/api/effect/invites.js +2 -0
  224. package/dist/api/effect/invites.js.map +1 -0
  225. package/dist/api/effect/logging.d.ts +37 -0
  226. package/dist/api/effect/logging.d.ts.map +1 -0
  227. package/dist/api/effect/logging.js +2 -0
  228. package/dist/api/effect/logging.js.map +1 -0
  229. package/dist/api/effect/members.d.ts +433 -0
  230. package/dist/api/effect/members.d.ts.map +1 -0
  231. package/dist/api/effect/members.js +2 -0
  232. package/dist/api/effect/members.js.map +1 -0
  233. package/dist/api/effect/messages.d.ts +877 -0
  234. package/dist/api/effect/messages.d.ts.map +1 -0
  235. package/dist/api/effect/messages.js +2 -0
  236. package/dist/api/effect/messages.js.map +1 -0
  237. package/dist/api/effect/oauth.d.ts +148 -0
  238. package/dist/api/effect/oauth.d.ts.map +1 -0
  239. package/dist/api/effect/oauth.js +51 -0
  240. package/dist/api/effect/oauth.js.map +1 -0
  241. package/dist/api/effect/permissions.d.ts +41 -0
  242. package/dist/api/effect/permissions.d.ts.map +1 -0
  243. package/dist/api/effect/permissions.js +2 -0
  244. package/dist/api/effect/permissions.js.map +1 -0
  245. package/dist/api/effect/presence.d.ts +83 -0
  246. package/dist/api/effect/presence.d.ts.map +1 -0
  247. package/dist/api/effect/presence.js +2 -0
  248. package/dist/api/effect/presence.js.map +1 -0
  249. package/dist/api/effect/rest.d.ts +27 -0
  250. package/dist/api/effect/rest.d.ts.map +1 -0
  251. package/dist/api/effect/rest.js +2 -0
  252. package/dist/api/effect/rest.js.map +1 -0
  253. package/dist/api/effect/roles.d.ts +104 -0
  254. package/dist/api/effect/roles.d.ts.map +1 -0
  255. package/dist/api/effect/roles.js +2 -0
  256. package/dist/api/effect/roles.js.map +1 -0
  257. package/dist/api/effect/service.d.ts +76 -0
  258. package/dist/api/effect/service.d.ts.map +1 -0
  259. package/dist/api/effect/service.js +79 -0
  260. package/dist/api/effect/service.js.map +1 -0
  261. package/dist/api/effect/stickers.d.ts +81 -0
  262. package/dist/api/effect/stickers.d.ts.map +1 -0
  263. package/dist/api/effect/stickers.js +2 -0
  264. package/dist/api/effect/stickers.js.map +1 -0
  265. package/dist/api/effect/supervisor.d.ts +56 -0
  266. package/dist/api/effect/supervisor.d.ts.map +1 -0
  267. package/dist/api/effect/supervisor.js +58 -0
  268. package/dist/api/effect/supervisor.js.map +1 -0
  269. package/dist/api/effect/threads.d.ts +154 -0
  270. package/dist/api/effect/threads.d.ts.map +1 -0
  271. package/dist/api/effect/threads.js +2 -0
  272. package/dist/api/effect/threads.js.map +1 -0
  273. package/dist/api/effect/users.d.ts +62 -0
  274. package/dist/api/effect/users.d.ts.map +1 -0
  275. package/dist/api/effect/users.js +2 -0
  276. package/dist/api/effect/users.js.map +1 -0
  277. package/dist/api/effect/webhook-client.d.ts +140 -0
  278. package/dist/api/effect/webhook-client.d.ts.map +1 -0
  279. package/dist/api/effect/webhook-client.js +50 -0
  280. package/dist/api/effect/webhook-client.js.map +1 -0
  281. package/dist/api/effect/webhooks.d.ts +54 -0
  282. package/dist/api/effect/webhooks.d.ts.map +1 -0
  283. package/dist/api/effect/webhooks.js +2 -0
  284. package/dist/api/effect/webhooks.js.map +1 -0
  285. package/dist/api-errors.d.ts +609 -0
  286. package/dist/api-errors.d.ts.map +1 -0
  287. package/dist/api-errors.js +589 -0
  288. package/dist/api-errors.js.map +1 -0
  289. package/dist/application.d.ts +85 -0
  290. package/dist/application.d.ts.map +1 -0
  291. package/dist/application.js +44 -0
  292. package/dist/application.js.map +1 -0
  293. package/dist/assets.d.ts +197 -0
  294. package/dist/assets.d.ts.map +1 -0
  295. package/dist/assets.js +419 -0
  296. package/dist/assets.js.map +1 -0
  297. package/dist/attachments.d.ts +400 -0
  298. package/dist/attachments.d.ts.map +1 -0
  299. package/dist/attachments.js +88 -0
  300. package/dist/attachments.js.map +1 -0
  301. package/dist/audit-logs.d.ts +292 -0
  302. package/dist/audit-logs.d.ts.map +1 -0
  303. package/dist/audit-logs.js +46 -0
  304. package/dist/audit-logs.js.map +1 -0
  305. package/dist/bot-runner.d.ts +69 -0
  306. package/dist/bot-runner.d.ts.map +1 -0
  307. package/dist/bot-runner.js +41 -0
  308. package/dist/bot-runner.js.map +1 -0
  309. package/dist/builders.d.ts +153 -0
  310. package/dist/builders.d.ts.map +1 -0
  311. package/dist/builders.js +326 -0
  312. package/dist/builders.js.map +1 -0
  313. package/dist/cache.d.ts +187 -0
  314. package/dist/cache.d.ts.map +1 -0
  315. package/dist/cache.js +2 -0
  316. package/dist/cache.js.map +1 -0
  317. package/dist/channels.d.ts +903 -0
  318. package/dist/channels.d.ts.map +1 -0
  319. package/dist/channels.js +125 -0
  320. package/dist/channels.js.map +1 -0
  321. package/dist/cli.d.ts +9 -0
  322. package/dist/cli.d.ts.map +1 -0
  323. package/dist/cli.js +65 -0
  324. package/dist/cli.js.map +1 -0
  325. package/dist/client.d.ts +645 -0
  326. package/dist/client.d.ts.map +1 -0
  327. package/dist/client.js +2 -0
  328. package/dist/client.js.map +1 -0
  329. package/dist/collectors.d.ts +205 -0
  330. package/dist/collectors.d.ts.map +1 -0
  331. package/dist/collectors.js +71 -0
  332. package/dist/collectors.js.map +1 -0
  333. package/dist/colors.d.ts +55 -0
  334. package/dist/colors.d.ts.map +1 -0
  335. package/dist/colors.js +40 -0
  336. package/dist/colors.js.map +1 -0
  337. package/dist/command-arguments.d.ts +353 -0
  338. package/dist/command-arguments.d.ts.map +1 -0
  339. package/dist/command-arguments.js +2 -0
  340. package/dist/command-arguments.js.map +1 -0
  341. package/dist/command-help.d.ts +54 -0
  342. package/dist/command-help.d.ts.map +1 -0
  343. package/dist/command-help.js +2 -0
  344. package/dist/command-help.js.map +1 -0
  345. package/dist/commands.d.ts +328 -0
  346. package/dist/commands.d.ts.map +1 -0
  347. package/dist/commands.js +62 -0
  348. package/dist/commands.js.map +1 -0
  349. package/dist/counts.d.ts +124 -0
  350. package/dist/counts.d.ts.map +1 -0
  351. package/dist/counts.js +52 -0
  352. package/dist/counts.js.map +1 -0
  353. package/dist/default-commands.d.ts +400 -0
  354. package/dist/default-commands.d.ts.map +1 -0
  355. package/dist/default-commands.js +488 -0
  356. package/dist/default-commands.js.map +1 -0
  357. package/dist/default-supervisor.d.ts +111 -0
  358. package/dist/default-supervisor.d.ts.map +1 -0
  359. package/dist/default-supervisor.js +277 -0
  360. package/dist/default-supervisor.js.map +1 -0
  361. package/dist/discovery.d.ts +223 -0
  362. package/dist/discovery.d.ts.map +1 -0
  363. package/dist/discovery.js +18 -0
  364. package/dist/discovery.js.map +1 -0
  365. package/dist/effect-testing.d.ts +388 -0
  366. package/dist/effect-testing.d.ts.map +1 -0
  367. package/dist/effect-testing.js +261 -0
  368. package/dist/effect-testing.js.map +1 -0
  369. package/dist/effect.d.ts +220 -0
  370. package/dist/effect.d.ts.map +1 -0
  371. package/dist/effect.js +101 -0
  372. package/dist/effect.js.map +1 -0
  373. package/dist/embeds.d.ts +243 -0
  374. package/dist/embeds.d.ts.map +1 -0
  375. package/dist/embeds.js +2 -0
  376. package/dist/embeds.js.map +1 -0
  377. package/dist/error-tools.d.ts +101 -0
  378. package/dist/error-tools.d.ts.map +1 -0
  379. package/dist/error-tools.js +125 -0
  380. package/dist/error-tools.js.map +1 -0
  381. package/dist/errors.d.ts +386 -0
  382. package/dist/errors.d.ts.map +1 -0
  383. package/dist/errors.js +440 -0
  384. package/dist/errors.js.map +1 -0
  385. package/dist/events.d.ts +798 -0
  386. package/dist/events.d.ts.map +1 -0
  387. package/dist/events.js +2 -0
  388. package/dist/events.js.map +1 -0
  389. package/dist/expressions.d.ts +188 -0
  390. package/dist/expressions.d.ts.map +1 -0
  391. package/dist/expressions.js +2 -0
  392. package/dist/expressions.js.map +1 -0
  393. package/dist/failures.d.ts +53 -0
  394. package/dist/failures.d.ts.map +1 -0
  395. package/dist/failures.js +2 -0
  396. package/dist/failures.js.map +1 -0
  397. package/dist/gateway.d.ts +48 -0
  398. package/dist/gateway.d.ts.map +1 -0
  399. package/dist/gateway.js +60 -0
  400. package/dist/gateway.js.map +1 -0
  401. package/dist/guilds.d.ts +923 -0
  402. package/dist/guilds.d.ts.map +1 -0
  403. package/dist/guilds.js +204 -0
  404. package/dist/guilds.js.map +1 -0
  405. package/dist/helpers.d.ts +423 -0
  406. package/dist/helpers.d.ts.map +1 -0
  407. package/dist/helpers.js +434 -0
  408. package/dist/helpers.js.map +1 -0
  409. package/dist/index.d.ts +228 -0
  410. package/dist/index.d.ts.map +1 -0
  411. package/dist/index.js +109 -0
  412. package/dist/index.js.map +1 -0
  413. package/dist/input-validation.d.ts +51 -0
  414. package/dist/input-validation.d.ts.map +1 -0
  415. package/dist/input-validation.js +34 -0
  416. package/dist/input-validation.js.map +1 -0
  417. package/dist/instance.d.ts +101 -0
  418. package/dist/instance.d.ts.map +1 -0
  419. package/dist/instance.js +2 -0
  420. package/dist/instance.js.map +1 -0
  421. package/dist/internal/agents-section.d.ts +22 -0
  422. package/dist/internal/agents-section.d.ts.map +1 -0
  423. package/dist/internal/agents-section.js +101 -0
  424. package/dist/internal/agents-section.js.map +1 -0
  425. package/dist/internal/application.d.ts +16 -0
  426. package/dist/internal/application.d.ts.map +1 -0
  427. package/dist/internal/application.js +33 -0
  428. package/dist/internal/application.js.map +1 -0
  429. package/dist/internal/attachment-refresh.d.ts +18 -0
  430. package/dist/internal/attachment-refresh.d.ts.map +1 -0
  431. package/dist/internal/attachment-refresh.js +39 -0
  432. package/dist/internal/attachment-refresh.js.map +1 -0
  433. package/dist/internal/attachments.d.ts +45 -0
  434. package/dist/internal/attachments.d.ts.map +1 -0
  435. package/dist/internal/attachments.js +230 -0
  436. package/dist/internal/attachments.js.map +1 -0
  437. package/dist/internal/audit-logs.d.ts +13 -0
  438. package/dist/internal/audit-logs.d.ts.map +1 -0
  439. package/dist/internal/audit-logs.js +295 -0
  440. package/dist/internal/audit-logs.js.map +1 -0
  441. package/dist/internal/audit.d.ts +12 -0
  442. package/dist/internal/audit.d.ts.map +1 -0
  443. package/dist/internal/audit.js +22 -0
  444. package/dist/internal/audit.js.map +1 -0
  445. package/dist/internal/binding/default-adapters.d.ts +22 -0
  446. package/dist/internal/binding/default-adapters.d.ts.map +1 -0
  447. package/dist/internal/binding/default-adapters.js +304 -0
  448. package/dist/internal/binding/default-adapters.js.map +1 -0
  449. package/dist/internal/binding/default.d.ts +45 -0
  450. package/dist/internal/binding/default.d.ts.map +1 -0
  451. package/dist/internal/binding/default.js +86 -0
  452. package/dist/internal/binding/default.js.map +1 -0
  453. package/dist/internal/binding/execute.d.ts +51 -0
  454. package/dist/internal/binding/execute.d.ts.map +1 -0
  455. package/dist/internal/binding/execute.js +123 -0
  456. package/dist/internal/binding/execute.js.map +1 -0
  457. package/dist/internal/binding/native-adapters.d.ts +23 -0
  458. package/dist/internal/binding/native-adapters.d.ts.map +1 -0
  459. package/dist/internal/binding/native-adapters.js +90 -0
  460. package/dist/internal/binding/native-adapters.js.map +1 -0
  461. package/dist/internal/binding/native.d.ts +41 -0
  462. package/dist/internal/binding/native.d.ts.map +1 -0
  463. package/dist/internal/binding/native.js +34 -0
  464. package/dist/internal/binding/native.js.map +1 -0
  465. package/dist/internal/binding/operations.d.ts +361 -0
  466. package/dist/internal/binding/operations.d.ts.map +1 -0
  467. package/dist/internal/binding/operations.js +272 -0
  468. package/dist/internal/binding/operations.js.map +1 -0
  469. package/dist/internal/bot-runner.d.ts +65 -0
  470. package/dist/internal/bot-runner.d.ts.map +1 -0
  471. package/dist/internal/bot-runner.js +363 -0
  472. package/dist/internal/bot-runner.js.map +1 -0
  473. package/dist/internal/cache-changes.d.ts +43 -0
  474. package/dist/internal/cache-changes.d.ts.map +1 -0
  475. package/dist/internal/cache-changes.js +320 -0
  476. package/dist/internal/cache-changes.js.map +1 -0
  477. package/dist/internal/cache.d.ts +57 -0
  478. package/dist/internal/cache.d.ts.map +1 -0
  479. package/dist/internal/cache.js +318 -0
  480. package/dist/internal/cache.js.map +1 -0
  481. package/dist/internal/calls.d.ts +16 -0
  482. package/dist/internal/calls.d.ts.map +1 -0
  483. package/dist/internal/calls.js +108 -0
  484. package/dist/internal/calls.js.map +1 -0
  485. package/dist/internal/channel-cache.d.ts +69 -0
  486. package/dist/internal/channel-cache.d.ts.map +1 -0
  487. package/dist/internal/channel-cache.js +413 -0
  488. package/dist/internal/channel-cache.js.map +1 -0
  489. package/dist/internal/channel-decode.d.ts +44 -0
  490. package/dist/internal/channel-decode.d.ts.map +1 -0
  491. package/dist/internal/channel-decode.js +377 -0
  492. package/dist/internal/channel-decode.js.map +1 -0
  493. package/dist/internal/channels.d.ts +60 -0
  494. package/dist/internal/channels.d.ts.map +1 -0
  495. package/dist/internal/channels.js +605 -0
  496. package/dist/internal/channels.js.map +1 -0
  497. package/dist/internal/client/backoff.d.ts +42 -0
  498. package/dist/internal/client/backoff.d.ts.map +1 -0
  499. package/dist/internal/client/backoff.js +36 -0
  500. package/dist/internal/client/backoff.js.map +1 -0
  501. package/dist/internal/client/configuration-fields.d.ts +14 -0
  502. package/dist/internal/client/configuration-fields.d.ts.map +1 -0
  503. package/dist/internal/client/configuration-fields.js +11 -0
  504. package/dist/internal/client/configuration-fields.js.map +1 -0
  505. package/dist/internal/client/drain.d.ts +33 -0
  506. package/dist/internal/client/drain.d.ts.map +1 -0
  507. package/dist/internal/client/drain.js +109 -0
  508. package/dist/internal/client/drain.js.map +1 -0
  509. package/dist/internal/client/intake.d.ts +27 -0
  510. package/dist/internal/client/intake.d.ts.map +1 -0
  511. package/dist/internal/client/intake.js +198 -0
  512. package/dist/internal/client/intake.js.map +1 -0
  513. package/dist/internal/client/lifetime.d.ts +35 -0
  514. package/dist/internal/client/lifetime.d.ts.map +1 -0
  515. package/dist/internal/client/lifetime.js +109 -0
  516. package/dist/internal/client/lifetime.js.map +1 -0
  517. package/dist/internal/client/shard-loop.d.ts +93 -0
  518. package/dist/internal/client/shard-loop.d.ts.map +1 -0
  519. package/dist/internal/client/shard-loop.js +452 -0
  520. package/dist/internal/client/shard-loop.js.map +1 -0
  521. package/dist/internal/client-registry.d.ts +26 -0
  522. package/dist/internal/client-registry.d.ts.map +1 -0
  523. package/dist/internal/client-registry.js +11 -0
  524. package/dist/internal/client-registry.js.map +1 -0
  525. package/dist/internal/client.d.ts +189 -0
  526. package/dist/internal/client.d.ts.map +1 -0
  527. package/dist/internal/client.js +1935 -0
  528. package/dist/internal/client.js.map +1 -0
  529. package/dist/internal/clock.d.ts +9 -0
  530. package/dist/internal/clock.d.ts.map +1 -0
  531. package/dist/internal/clock.js +5 -0
  532. package/dist/internal/clock.js.map +1 -0
  533. package/dist/internal/code-catalogue.d.ts +712 -0
  534. package/dist/internal/code-catalogue.d.ts.map +1 -0
  535. package/dist/internal/code-catalogue.js +655 -0
  536. package/dist/internal/code-catalogue.js.map +1 -0
  537. package/dist/internal/collector.d.ts +34 -0
  538. package/dist/internal/collector.d.ts.map +1 -0
  539. package/dist/internal/collector.js +400 -0
  540. package/dist/internal/collector.js.map +1 -0
  541. package/dist/internal/command-arguments.d.ts +29 -0
  542. package/dist/internal/command-arguments.d.ts.map +1 -0
  543. package/dist/internal/command-arguments.js +484 -0
  544. package/dist/internal/command-arguments.js.map +1 -0
  545. package/dist/internal/command-guards.d.ts +57 -0
  546. package/dist/internal/command-guards.d.ts.map +1 -0
  547. package/dist/internal/command-guards.js +81 -0
  548. package/dist/internal/command-guards.js.map +1 -0
  549. package/dist/internal/command-help.d.ts +15 -0
  550. package/dist/internal/command-help.d.ts.map +1 -0
  551. package/dist/internal/command-help.js +121 -0
  552. package/dist/internal/command-help.js.map +1 -0
  553. package/dist/internal/commands.d.ts +212 -0
  554. package/dist/internal/commands.d.ts.map +1 -0
  555. package/dist/internal/commands.js +1004 -0
  556. package/dist/internal/commands.js.map +1 -0
  557. package/dist/internal/configuration.d.ts +86 -0
  558. package/dist/internal/configuration.d.ts.map +1 -0
  559. package/dist/internal/configuration.js +401 -0
  560. package/dist/internal/configuration.js.map +1 -0
  561. package/dist/internal/counts.d.ts +33 -0
  562. package/dist/internal/counts.d.ts.map +1 -0
  563. package/dist/internal/counts.js +348 -0
  564. package/dist/internal/counts.js.map +1 -0
  565. package/dist/internal/decode/primitives.d.ts +30 -0
  566. package/dist/internal/decode/primitives.d.ts.map +1 -0
  567. package/dist/internal/decode/primitives.js +56 -0
  568. package/dist/internal/decode/primitives.js.map +1 -0
  569. package/dist/internal/decode/timestamp.d.ts +13 -0
  570. package/dist/internal/decode/timestamp.d.ts.map +1 -0
  571. package/dist/internal/decode/timestamp.js +27 -0
  572. package/dist/internal/decode/timestamp.js.map +1 -0
  573. package/dist/internal/decode/trace.d.ts +11 -0
  574. package/dist/internal/decode/trace.d.ts.map +1 -0
  575. package/dist/internal/decode/trace.js +69 -0
  576. package/dist/internal/decode/trace.js.map +1 -0
  577. package/dist/internal/defects.d.ts +48 -0
  578. package/dist/internal/defects.d.ts.map +1 -0
  579. package/dist/internal/defects.js +100 -0
  580. package/dist/internal/defects.js.map +1 -0
  581. package/dist/internal/effect-failures.d.ts +12 -0
  582. package/dist/internal/effect-failures.d.ts.map +1 -0
  583. package/dist/internal/effect-failures.js +45 -0
  584. package/dist/internal/effect-failures.js.map +1 -0
  585. package/dist/internal/embeds.d.ts +12 -0
  586. package/dist/internal/embeds.d.ts.map +1 -0
  587. package/dist/internal/embeds.js +308 -0
  588. package/dist/internal/embeds.js.map +1 -0
  589. package/dist/internal/events.d.ts +156 -0
  590. package/dist/internal/events.d.ts.map +1 -0
  591. package/dist/internal/events.js +1071 -0
  592. package/dist/internal/events.js.map +1 -0
  593. package/dist/internal/expiry-queue.d.ts +42 -0
  594. package/dist/internal/expiry-queue.d.ts.map +1 -0
  595. package/dist/internal/expiry-queue.js +138 -0
  596. package/dist/internal/expiry-queue.js.map +1 -0
  597. package/dist/internal/expressions.d.ts +35 -0
  598. package/dist/internal/expressions.d.ts.map +1 -0
  599. package/dist/internal/expressions.js +311 -0
  600. package/dist/internal/expressions.js.map +1 -0
  601. package/dist/internal/failures.d.ts +107 -0
  602. package/dist/internal/failures.d.ts.map +1 -0
  603. package/dist/internal/failures.js +416 -0
  604. package/dist/internal/failures.js.map +1 -0
  605. package/dist/internal/field-text.d.ts +10 -0
  606. package/dist/internal/field-text.d.ts.map +1 -0
  607. package/dist/internal/field-text.js +37 -0
  608. package/dist/internal/field-text.js.map +1 -0
  609. package/dist/internal/gateway/commands.d.ts +92 -0
  610. package/dist/internal/gateway/commands.d.ts.map +1 -0
  611. package/dist/internal/gateway/commands.js +223 -0
  612. package/dist/internal/gateway/commands.js.map +1 -0
  613. package/dist/internal/gateway/dispatch-table.d.ts +42 -0
  614. package/dist/internal/gateway/dispatch-table.d.ts.map +1 -0
  615. package/dist/internal/gateway/dispatch-table.js +288 -0
  616. package/dist/internal/gateway/dispatch-table.js.map +1 -0
  617. package/dist/internal/gateway/event-dispatches.d.ts +97 -0
  618. package/dist/internal/gateway/event-dispatches.d.ts.map +1 -0
  619. package/dist/internal/gateway/event-dispatches.js +172 -0
  620. package/dist/internal/gateway/event-dispatches.js.map +1 -0
  621. package/dist/internal/gateway/frames.d.ts +45 -0
  622. package/dist/internal/gateway/frames.d.ts.map +1 -0
  623. package/dist/internal/gateway/frames.js +121 -0
  624. package/dist/internal/gateway/frames.js.map +1 -0
  625. package/dist/internal/gateway/options.d.ts +24 -0
  626. package/dist/internal/gateway/options.d.ts.map +1 -0
  627. package/dist/internal/gateway/options.js +103 -0
  628. package/dist/internal/gateway/options.js.map +1 -0
  629. package/dist/internal/gateway/session.d.ts +104 -0
  630. package/dist/internal/gateway/session.d.ts.map +1 -0
  631. package/dist/internal/gateway/session.js +420 -0
  632. package/dist/internal/gateway/session.js.map +1 -0
  633. package/dist/internal/gateway-requests.d.ts +10 -0
  634. package/dist/internal/gateway-requests.d.ts.map +1 -0
  635. package/dist/internal/gateway-requests.js +26 -0
  636. package/dist/internal/gateway-requests.js.map +1 -0
  637. package/dist/internal/gateway.d.ts +19 -0
  638. package/dist/internal/gateway.d.ts.map +1 -0
  639. package/dist/internal/gateway.js +11 -0
  640. package/dist/internal/gateway.js.map +1 -0
  641. package/dist/internal/guild-cache.d.ts +69 -0
  642. package/dist/internal/guild-cache.d.ts.map +1 -0
  643. package/dist/internal/guild-cache.js +402 -0
  644. package/dist/internal/guild-cache.js.map +1 -0
  645. package/dist/internal/guild-discovery.d.ts +15 -0
  646. package/dist/internal/guild-discovery.d.ts.map +1 -0
  647. package/dist/internal/guild-discovery.js +258 -0
  648. package/dist/internal/guild-discovery.js.map +1 -0
  649. package/dist/internal/guild-lifecycle.d.ts +18 -0
  650. package/dist/internal/guild-lifecycle.d.ts.map +1 -0
  651. package/dist/internal/guild-lifecycle.js +119 -0
  652. package/dist/internal/guild-lifecycle.js.map +1 -0
  653. package/dist/internal/guild-settings.d.ts +11 -0
  654. package/dist/internal/guild-settings.d.ts.map +1 -0
  655. package/dist/internal/guild-settings.js +150 -0
  656. package/dist/internal/guild-settings.js.map +1 -0
  657. package/dist/internal/guilds.d.ts +94 -0
  658. package/dist/internal/guilds.d.ts.map +1 -0
  659. package/dist/internal/guilds.js +785 -0
  660. package/dist/internal/guilds.js.map +1 -0
  661. package/dist/internal/init-command.d.ts +54 -0
  662. package/dist/internal/init-command.d.ts.map +1 -0
  663. package/dist/internal/init-command.js +248 -0
  664. package/dist/internal/init-command.js.map +1 -0
  665. package/dist/internal/instance.d.ts +69 -0
  666. package/dist/internal/instance.d.ts.map +1 -0
  667. package/dist/internal/instance.js +455 -0
  668. package/dist/internal/instance.js.map +1 -0
  669. package/dist/internal/invalid-callback-return.d.ts +3 -0
  670. package/dist/internal/invalid-callback-return.d.ts.map +1 -0
  671. package/dist/internal/invalid-callback-return.js +26 -0
  672. package/dist/internal/invalid-callback-return.js.map +1 -0
  673. package/dist/internal/invites.d.ts +19 -0
  674. package/dist/internal/invites.d.ts.map +1 -0
  675. package/dist/internal/invites.js +182 -0
  676. package/dist/internal/invites.js.map +1 -0
  677. package/dist/internal/logging.d.ts +129 -0
  678. package/dist/internal/logging.d.ts.map +1 -0
  679. package/dist/internal/logging.js +868 -0
  680. package/dist/internal/logging.js.map +1 -0
  681. package/dist/internal/logical-scheduler.d.ts +27 -0
  682. package/dist/internal/logical-scheduler.d.ts.map +1 -0
  683. package/dist/internal/logical-scheduler.js +102 -0
  684. package/dist/internal/logical-scheduler.js.map +1 -0
  685. package/dist/internal/masking.d.ts +13 -0
  686. package/dist/internal/masking.d.ts.map +1 -0
  687. package/dist/internal/masking.js +235 -0
  688. package/dist/internal/masking.js.map +1 -0
  689. package/dist/internal/member-chunks.d.ts +96 -0
  690. package/dist/internal/member-chunks.d.ts.map +1 -0
  691. package/dist/internal/member-chunks.js +557 -0
  692. package/dist/internal/member-chunks.js.map +1 -0
  693. package/dist/internal/member-search-workflow.d.ts +19 -0
  694. package/dist/internal/member-search-workflow.d.ts.map +1 -0
  695. package/dist/internal/member-search-workflow.js +143 -0
  696. package/dist/internal/member-search-workflow.js.map +1 -0
  697. package/dist/internal/member-search.d.ts +20 -0
  698. package/dist/internal/member-search.d.ts.map +1 -0
  699. package/dist/internal/member-search.js +201 -0
  700. package/dist/internal/member-search.js.map +1 -0
  701. package/dist/internal/message-cleanup.d.ts +9 -0
  702. package/dist/internal/message-cleanup.d.ts.map +1 -0
  703. package/dist/internal/message-cleanup.js +368 -0
  704. package/dist/internal/message-cleanup.js.map +1 -0
  705. package/dist/internal/message-fields.d.ts +9 -0
  706. package/dist/internal/message-fields.d.ts.map +1 -0
  707. package/dist/internal/message-fields.js +55 -0
  708. package/dist/internal/message-fields.js.map +1 -0
  709. package/dist/internal/message-search-workflow.d.ts +14 -0
  710. package/dist/internal/message-search-workflow.d.ts.map +1 -0
  711. package/dist/internal/message-search-workflow.js +101 -0
  712. package/dist/internal/message-search-workflow.js.map +1 -0
  713. package/dist/internal/message-search.d.ts +19 -0
  714. package/dist/internal/message-search.d.ts.map +1 -0
  715. package/dist/internal/message-search.js +317 -0
  716. package/dist/internal/message-search.js.map +1 -0
  717. package/dist/internal/message.d.ts +34 -0
  718. package/dist/internal/message.d.ts.map +1 -0
  719. package/dist/internal/message.js +723 -0
  720. package/dist/internal/message.js.map +1 -0
  721. package/dist/internal/metrics.d.ts +16 -0
  722. package/dist/internal/metrics.d.ts.map +1 -0
  723. package/dist/internal/metrics.js +49 -0
  724. package/dist/internal/metrics.js.map +1 -0
  725. package/dist/internal/moderation.d.ts +20 -0
  726. package/dist/internal/moderation.d.ts.map +1 -0
  727. package/dist/internal/moderation.js +219 -0
  728. package/dist/internal/moderation.js.map +1 -0
  729. package/dist/internal/multipart.d.ts +10 -0
  730. package/dist/internal/multipart.d.ts.map +1 -0
  731. package/dist/internal/multipart.js +156 -0
  732. package/dist/internal/multipart.js.map +1 -0
  733. package/dist/internal/node-version.d.ts +10 -0
  734. package/dist/internal/node-version.d.ts.map +1 -0
  735. package/dist/internal/node-version.js +21 -0
  736. package/dist/internal/node-version.js.map +1 -0
  737. package/dist/internal/oauth.d.ts +29 -0
  738. package/dist/internal/oauth.d.ts.map +1 -0
  739. package/dist/internal/oauth.js +721 -0
  740. package/dist/internal/oauth.js.map +1 -0
  741. package/dist/internal/observer.d.ts +21 -0
  742. package/dist/internal/observer.d.ts.map +1 -0
  743. package/dist/internal/observer.js +48 -0
  744. package/dist/internal/observer.js.map +1 -0
  745. package/dist/internal/operation-signal.d.ts +9 -0
  746. package/dist/internal/operation-signal.d.ts.map +1 -0
  747. package/dist/internal/operation-signal.js +19 -0
  748. package/dist/internal/operation-signal.js.map +1 -0
  749. package/dist/internal/pagination.d.ts +67 -0
  750. package/dist/internal/pagination.d.ts.map +1 -0
  751. package/dist/internal/pagination.js +306 -0
  752. package/dist/internal/pagination.js.map +1 -0
  753. package/dist/internal/permission-requirements.d.ts +34 -0
  754. package/dist/internal/permission-requirements.d.ts.map +1 -0
  755. package/dist/internal/permission-requirements.js +204 -0
  756. package/dist/internal/permission-requirements.js.map +1 -0
  757. package/dist/internal/permissions.d.ts +28 -0
  758. package/dist/internal/permissions.d.ts.map +1 -0
  759. package/dist/internal/permissions.js +314 -0
  760. package/dist/internal/permissions.js.map +1 -0
  761. package/dist/internal/pins.d.ts +24 -0
  762. package/dist/internal/pins.d.ts.map +1 -0
  763. package/dist/internal/pins.js +83 -0
  764. package/dist/internal/pins.js.map +1 -0
  765. package/dist/internal/presence.d.ts +101 -0
  766. package/dist/internal/presence.d.ts.map +1 -0
  767. package/dist/internal/presence.js +581 -0
  768. package/dist/internal/presence.js.map +1 -0
  769. package/dist/internal/protocol/gateway.d.ts +116 -0
  770. package/dist/internal/protocol/gateway.d.ts.map +1 -0
  771. package/dist/internal/protocol/gateway.js +258 -0
  772. package/dist/internal/protocol/gateway.js.map +1 -0
  773. package/dist/internal/rate-limit-templates.d.ts +2 -0
  774. package/dist/internal/rate-limit-templates.d.ts.map +1 -0
  775. package/dist/internal/rate-limit-templates.js +132 -0
  776. package/dist/internal/rate-limit-templates.js.map +1 -0
  777. package/dist/internal/rate-limits.d.ts +32 -0
  778. package/dist/internal/rate-limits.d.ts.map +1 -0
  779. package/dist/internal/rate-limits.js +306 -0
  780. package/dist/internal/rate-limits.js.map +1 -0
  781. package/dist/internal/reaction-collector.d.ts +39 -0
  782. package/dist/internal/reaction-collector.d.ts.map +1 -0
  783. package/dist/internal/reaction-collector.js +441 -0
  784. package/dist/internal/reaction-collector.js.map +1 -0
  785. package/dist/internal/reaction-pages.d.ts +18 -0
  786. package/dist/internal/reaction-pages.d.ts.map +1 -0
  787. package/dist/internal/reaction-pages.js +213 -0
  788. package/dist/internal/reaction-pages.js.map +1 -0
  789. package/dist/internal/reactions.d.ts +30 -0
  790. package/dist/internal/reactions.d.ts.map +1 -0
  791. package/dist/internal/reactions.js +160 -0
  792. package/dist/internal/reactions.js.map +1 -0
  793. package/dist/internal/rejection-scope.d.ts +25 -0
  794. package/dist/internal/rejection-scope.d.ts.map +1 -0
  795. package/dist/internal/rejection-scope.js +103 -0
  796. package/dist/internal/rejection-scope.js.map +1 -0
  797. package/dist/internal/response-json.d.ts +12 -0
  798. package/dist/internal/response-json.d.ts.map +1 -0
  799. package/dist/internal/response-json.js +74 -0
  800. package/dist/internal/response-json.js.map +1 -0
  801. package/dist/internal/rest/admission.d.ts +77 -0
  802. package/dist/internal/rest/admission.d.ts.map +1 -0
  803. package/dist/internal/rest/admission.js +178 -0
  804. package/dist/internal/rest/admission.js.map +1 -0
  805. package/dist/internal/rest/attempt.d.ts +124 -0
  806. package/dist/internal/rest/attempt.d.ts.map +1 -0
  807. package/dist/internal/rest/attempt.js +410 -0
  808. package/dist/internal/rest/attempt.js.map +1 -0
  809. package/dist/internal/rest/classify.d.ts +93 -0
  810. package/dist/internal/rest/classify.d.ts.map +1 -0
  811. package/dist/internal/rest/classify.js +304 -0
  812. package/dist/internal/rest/classify.js.map +1 -0
  813. package/dist/internal/rest/download.d.ts +66 -0
  814. package/dist/internal/rest/download.d.ts.map +1 -0
  815. package/dist/internal/rest/download.js +552 -0
  816. package/dist/internal/rest/download.js.map +1 -0
  817. package/dist/internal/rest/options.d.ts +42 -0
  818. package/dist/internal/rest/options.d.ts.map +1 -0
  819. package/dist/internal/rest/options.js +99 -0
  820. package/dist/internal/rest/options.js.map +1 -0
  821. package/dist/internal/rest/owner.d.ts +154 -0
  822. package/dist/internal/rest/owner.d.ts.map +1 -0
  823. package/dist/internal/rest/owner.js +1292 -0
  824. package/dist/internal/rest/owner.js.map +1 -0
  825. package/dist/internal/rest/request.d.ts +31 -0
  826. package/dist/internal/rest/request.d.ts.map +1 -0
  827. package/dist/internal/rest/request.js +227 -0
  828. package/dist/internal/rest/request.js.map +1 -0
  829. package/dist/internal/rest.d.ts +10 -0
  830. package/dist/internal/rest.d.ts.map +1 -0
  831. package/dist/internal/rest.js +9 -0
  832. package/dist/internal/rest.js.map +1 -0
  833. package/dist/internal/retention-age.d.ts +11 -0
  834. package/dist/internal/retention-age.d.ts.map +1 -0
  835. package/dist/internal/retention-age.js +29 -0
  836. package/dist/internal/retention-age.js.map +1 -0
  837. package/dist/internal/role-hierarchy-workflow.d.ts +15 -0
  838. package/dist/internal/role-hierarchy-workflow.d.ts.map +1 -0
  839. package/dist/internal/role-hierarchy-workflow.js +122 -0
  840. package/dist/internal/role-hierarchy-workflow.js.map +1 -0
  841. package/dist/internal/role-hierarchy.d.ts +11 -0
  842. package/dist/internal/role-hierarchy.d.ts.map +1 -0
  843. package/dist/internal/role-hierarchy.js +87 -0
  844. package/dist/internal/role-hierarchy.js.map +1 -0
  845. package/dist/internal/scheduled-tasks.d.ts +46 -0
  846. package/dist/internal/scheduled-tasks.d.ts.map +1 -0
  847. package/dist/internal/scheduled-tasks.js +190 -0
  848. package/dist/internal/scheduled-tasks.js.map +1 -0
  849. package/dist/internal/sharding.d.ts +62 -0
  850. package/dist/internal/sharding.d.ts.map +1 -0
  851. package/dist/internal/sharding.js +205 -0
  852. package/dist/internal/sharding.js.map +1 -0
  853. package/dist/internal/starter-project.d.ts +27 -0
  854. package/dist/internal/starter-project.d.ts.map +1 -0
  855. package/dist/internal/starter-project.js +224 -0
  856. package/dist/internal/starter-project.js.map +1 -0
  857. package/dist/internal/suggest.d.ts +12 -0
  858. package/dist/internal/suggest.d.ts.map +1 -0
  859. package/dist/internal/suggest.js +51 -0
  860. package/dist/internal/suggest.js.map +1 -0
  861. package/dist/internal/supervisor.d.ts +95 -0
  862. package/dist/internal/supervisor.d.ts.map +1 -0
  863. package/dist/internal/supervisor.js +1829 -0
  864. package/dist/internal/supervisor.js.map +1 -0
  865. package/dist/internal/testing/discovery.d.ts +24 -0
  866. package/dist/internal/testing/discovery.d.ts.map +1 -0
  867. package/dist/internal/testing/discovery.js +22 -0
  868. package/dist/internal/testing/discovery.js.map +1 -0
  869. package/dist/internal/testing/errors.d.ts +43 -0
  870. package/dist/internal/testing/errors.d.ts.map +1 -0
  871. package/dist/internal/testing/errors.js +63 -0
  872. package/dist/internal/testing/errors.js.map +1 -0
  873. package/dist/internal/testing/fixtures.d.ts +477 -0
  874. package/dist/internal/testing/fixtures.d.ts.map +1 -0
  875. package/dist/internal/testing/fixtures.js +233 -0
  876. package/dist/internal/testing/fixtures.js.map +1 -0
  877. package/dist/internal/testing/gateway.d.ts +51 -0
  878. package/dist/internal/testing/gateway.d.ts.map +1 -0
  879. package/dist/internal/testing/gateway.js +265 -0
  880. package/dist/internal/testing/gateway.js.map +1 -0
  881. package/dist/internal/testing/harness.d.ts +60 -0
  882. package/dist/internal/testing/harness.d.ts.map +1 -0
  883. package/dist/internal/testing/harness.js +280 -0
  884. package/dist/internal/testing/harness.js.map +1 -0
  885. package/dist/internal/testing/http.d.ts +31 -0
  886. package/dist/internal/testing/http.d.ts.map +1 -0
  887. package/dist/internal/testing/http.js +347 -0
  888. package/dist/internal/testing/http.js.map +1 -0
  889. package/dist/internal/testing/types.d.ts +222 -0
  890. package/dist/internal/testing/types.d.ts.map +1 -0
  891. package/dist/internal/testing/types.js +2 -0
  892. package/dist/internal/testing/types.js.map +1 -0
  893. package/dist/internal/testing/wait.d.ts +16 -0
  894. package/dist/internal/testing/wait.d.ts.map +1 -0
  895. package/dist/internal/testing/wait.js +55 -0
  896. package/dist/internal/testing/wait.js.map +1 -0
  897. package/dist/internal/thread-events.d.ts +40 -0
  898. package/dist/internal/thread-events.d.ts.map +1 -0
  899. package/dist/internal/thread-events.js +121 -0
  900. package/dist/internal/thread-events.js.map +1 -0
  901. package/dist/internal/threads.d.ts +47 -0
  902. package/dist/internal/threads.d.ts.map +1 -0
  903. package/dist/internal/threads.js +587 -0
  904. package/dist/internal/threads.js.map +1 -0
  905. package/dist/internal/transfer-source.d.ts +29 -0
  906. package/dist/internal/transfer-source.d.ts.map +1 -0
  907. package/dist/internal/transfer-source.js +347 -0
  908. package/dist/internal/transfer-source.js.map +1 -0
  909. package/dist/internal/transport/http.d.ts +12 -0
  910. package/dist/internal/transport/http.d.ts.map +1 -0
  911. package/dist/internal/transport/http.js +44 -0
  912. package/dist/internal/transport/http.js.map +1 -0
  913. package/dist/internal/transport/index.d.ts +21 -0
  914. package/dist/internal/transport/index.d.ts.map +1 -0
  915. package/dist/internal/transport/index.js +15 -0
  916. package/dist/internal/transport/index.js.map +1 -0
  917. package/dist/internal/transport/socket.d.ts +51 -0
  918. package/dist/internal/transport/socket.d.ts.map +1 -0
  919. package/dist/internal/transport/socket.js +27 -0
  920. package/dist/internal/transport/socket.js.map +1 -0
  921. package/dist/internal/transport/user-agent.d.ts +7 -0
  922. package/dist/internal/transport/user-agent.d.ts.map +1 -0
  923. package/dist/internal/transport/user-agent.js +42 -0
  924. package/dist/internal/transport/user-agent.js.map +1 -0
  925. package/dist/internal/uploads.d.ts +23 -0
  926. package/dist/internal/uploads.d.ts.map +1 -0
  927. package/dist/internal/uploads.js +89 -0
  928. package/dist/internal/uploads.js.map +1 -0
  929. package/dist/internal/user-cache.d.ts +50 -0
  930. package/dist/internal/user-cache.d.ts.map +1 -0
  931. package/dist/internal/user-cache.js +273 -0
  932. package/dist/internal/user-cache.js.map +1 -0
  933. package/dist/internal/users.d.ts +41 -0
  934. package/dist/internal/users.d.ts.map +1 -0
  935. package/dist/internal/users.js +333 -0
  936. package/dist/internal/users.js.map +1 -0
  937. package/dist/internal/vanity-url.d.ts +11 -0
  938. package/dist/internal/vanity-url.d.ts.map +1 -0
  939. package/dist/internal/vanity-url.js +58 -0
  940. package/dist/internal/vanity-url.js.map +1 -0
  941. package/dist/internal/webhooks.d.ts +58 -0
  942. package/dist/internal/webhooks.d.ts.map +1 -0
  943. package/dist/internal/webhooks.js +490 -0
  944. package/dist/internal/webhooks.js.map +1 -0
  945. package/dist/invites.d.ts +86 -0
  946. package/dist/invites.d.ts.map +1 -0
  947. package/dist/invites.js +2 -0
  948. package/dist/invites.js.map +1 -0
  949. package/dist/logging.d.ts +228 -0
  950. package/dist/logging.d.ts.map +1 -0
  951. package/dist/logging.js +2 -0
  952. package/dist/logging.js.map +1 -0
  953. package/dist/member-chunks.d.ts +145 -0
  954. package/dist/member-chunks.d.ts.map +1 -0
  955. package/dist/member-chunks.js +68 -0
  956. package/dist/member-chunks.js.map +1 -0
  957. package/dist/member-search.d.ts +140 -0
  958. package/dist/member-search.d.ts.map +1 -0
  959. package/dist/member-search.js +14 -0
  960. package/dist/member-search.js.map +1 -0
  961. package/dist/message-cleanup.d.ts +227 -0
  962. package/dist/message-cleanup.d.ts.map +1 -0
  963. package/dist/message-cleanup.js +101 -0
  964. package/dist/message-cleanup.js.map +1 -0
  965. package/dist/message-errors.d.ts +172 -0
  966. package/dist/message-errors.d.ts.map +1 -0
  967. package/dist/message-errors.js +173 -0
  968. package/dist/message-errors.js.map +1 -0
  969. package/dist/message-search.d.ts +201 -0
  970. package/dist/message-search.d.ts.map +1 -0
  971. package/dist/message-search.js +2 -0
  972. package/dist/message-search.js.map +1 -0
  973. package/dist/messages.d.ts +694 -0
  974. package/dist/messages.d.ts.map +1 -0
  975. package/dist/messages.js +37 -0
  976. package/dist/messages.js.map +1 -0
  977. package/dist/native-commands.d.ts +451 -0
  978. package/dist/native-commands.d.ts.map +1 -0
  979. package/dist/native-commands.js +432 -0
  980. package/dist/native-commands.js.map +1 -0
  981. package/dist/native-supervisor.d.ts +125 -0
  982. package/dist/native-supervisor.d.ts.map +1 -0
  983. package/dist/native-supervisor.js +126 -0
  984. package/dist/native-supervisor.js.map +1 -0
  985. package/dist/oauth.d.ts +298 -0
  986. package/dist/oauth.d.ts.map +1 -0
  987. package/dist/oauth.js +128 -0
  988. package/dist/oauth.js.map +1 -0
  989. package/dist/observer.d.ts +111 -0
  990. package/dist/observer.d.ts.map +1 -0
  991. package/dist/observer.js +2 -0
  992. package/dist/observer.js.map +1 -0
  993. package/dist/pagination.d.ts +117 -0
  994. package/dist/pagination.d.ts.map +1 -0
  995. package/dist/pagination.js +61 -0
  996. package/dist/pagination.js.map +1 -0
  997. package/dist/permissions.d.ts +73 -0
  998. package/dist/permissions.d.ts.map +1 -0
  999. package/dist/permissions.js +2 -0
  1000. package/dist/permissions.js.map +1 -0
  1001. package/dist/pins.d.ts +62 -0
  1002. package/dist/pins.d.ts.map +1 -0
  1003. package/dist/pins.js +2 -0
  1004. package/dist/pins.js.map +1 -0
  1005. package/dist/presence.d.ts +84 -0
  1006. package/dist/presence.d.ts.map +1 -0
  1007. package/dist/presence.js +46 -0
  1008. package/dist/presence.js.map +1 -0
  1009. package/dist/reaction-pages.d.ts +99 -0
  1010. package/dist/reaction-pages.d.ts.map +1 -0
  1011. package/dist/reaction-pages.js +2 -0
  1012. package/dist/reaction-pages.js.map +1 -0
  1013. package/dist/reactions.d.ts +118 -0
  1014. package/dist/reactions.d.ts.map +1 -0
  1015. package/dist/reactions.js +2 -0
  1016. package/dist/reactions.js.map +1 -0
  1017. package/dist/rest.d.ts +260 -0
  1018. package/dist/rest.d.ts.map +1 -0
  1019. package/dist/rest.js +46 -0
  1020. package/dist/rest.js.map +1 -0
  1021. package/dist/role-hierarchy.d.ts +81 -0
  1022. package/dist/role-hierarchy.d.ts.map +1 -0
  1023. package/dist/role-hierarchy.js +53 -0
  1024. package/dist/role-hierarchy.js.map +1 -0
  1025. package/dist/sharding.d.ts +219 -0
  1026. package/dist/sharding.d.ts.map +1 -0
  1027. package/dist/sharding.js +86 -0
  1028. package/dist/sharding.js.map +1 -0
  1029. package/dist/supervisor.d.ts +392 -0
  1030. package/dist/supervisor.d.ts.map +1 -0
  1031. package/dist/supervisor.js +101 -0
  1032. package/dist/supervisor.js.map +1 -0
  1033. package/dist/testing.d.ts +258 -0
  1034. package/dist/testing.d.ts.map +1 -0
  1035. package/dist/testing.js +202 -0
  1036. package/dist/testing.js.map +1 -0
  1037. package/dist/text.d.ts +38 -0
  1038. package/dist/text.d.ts.map +1 -0
  1039. package/dist/text.js +46 -0
  1040. package/dist/text.js.map +1 -0
  1041. package/dist/threads.d.ts +258 -0
  1042. package/dist/threads.d.ts.map +1 -0
  1043. package/dist/threads.js +2 -0
  1044. package/dist/threads.js.map +1 -0
  1045. package/dist/users.d.ts +204 -0
  1046. package/dist/users.d.ts.map +1 -0
  1047. package/dist/users.js +44 -0
  1048. package/dist/users.js.map +1 -0
  1049. package/dist/webhooks.d.ts +423 -0
  1050. package/dist/webhooks.d.ts.map +1 -0
  1051. package/dist/webhooks.js +68 -0
  1052. package/dist/webhooks.js.map +1 -0
  1053. package/esm-only.cjs +3 -0
  1054. package/examples/starter/bot-effect.ts +17 -0
  1055. package/examples/starter/bot.js +13 -0
  1056. package/examples/starter/bot.ts +13 -0
  1057. package/package.json +82 -0
  1058. package/src/api/default/application.ts +40 -0
  1059. package/src/api/default/attachments.ts +106 -0
  1060. package/src/api/default/audit-logs.ts +58 -0
  1061. package/src/api/default/bot.ts +586 -0
  1062. package/src/api/default/cache.ts +106 -0
  1063. package/src/api/default/channels.ts +317 -0
  1064. package/src/api/default/client.ts +829 -0
  1065. package/src/api/default/collectors.ts +81 -0
  1066. package/src/api/default/commands.ts +92 -0
  1067. package/src/api/default/direct-messages.ts +143 -0
  1068. package/src/api/default/discovery.ts +103 -0
  1069. package/src/api/default/emojis.ts +125 -0
  1070. package/src/api/default/events.ts +144 -0
  1071. package/src/api/default/gateway.ts +67 -0
  1072. package/src/api/default/guards.ts +173 -0
  1073. package/src/api/default/guilds.ts +271 -0
  1074. package/src/api/default/helpers.ts +97 -0
  1075. package/src/api/default/instance.ts +49 -0
  1076. package/src/api/default/invites.ts +73 -0
  1077. package/src/api/default/logging.ts +37 -0
  1078. package/src/api/default/members.ts +550 -0
  1079. package/src/api/default/messages.ts +1053 -0
  1080. package/src/api/default/oauth.ts +293 -0
  1081. package/src/api/default/permissions.ts +47 -0
  1082. package/src/api/default/presence.ts +88 -0
  1083. package/src/api/default/rest.ts +30 -0
  1084. package/src/api/default/results.ts +44 -0
  1085. package/src/api/default/roles.ts +154 -0
  1086. package/src/api/default/stickers.ts +129 -0
  1087. package/src/api/default/supervisor.ts +53 -0
  1088. package/src/api/default/threads.ts +233 -0
  1089. package/src/api/default/users.ts +82 -0
  1090. package/src/api/default/webhook-client.ts +266 -0
  1091. package/src/api/default/webhooks.ts +89 -0
  1092. package/src/api/effect/application.ts +29 -0
  1093. package/src/api/effect/attachments.ts +100 -0
  1094. package/src/api/effect/audit-logs.ts +50 -0
  1095. package/src/api/effect/bot.ts +546 -0
  1096. package/src/api/effect/cache.ts +110 -0
  1097. package/src/api/effect/channels.ts +293 -0
  1098. package/src/api/effect/client.ts +792 -0
  1099. package/src/api/effect/collectors.ts +103 -0
  1100. package/src/api/effect/commands.ts +87 -0
  1101. package/src/api/effect/direct-messages.ts +119 -0
  1102. package/src/api/effect/discovery.ts +87 -0
  1103. package/src/api/effect/emojis.ts +108 -0
  1104. package/src/api/effect/events.ts +92 -0
  1105. package/src/api/effect/failures.ts +14 -0
  1106. package/src/api/effect/gateway.ts +63 -0
  1107. package/src/api/effect/guards.ts +194 -0
  1108. package/src/api/effect/guilds.ts +247 -0
  1109. package/src/api/effect/helpers.ts +359 -0
  1110. package/src/api/effect/hierarchy.ts +26 -0
  1111. package/src/api/effect/instance.ts +50 -0
  1112. package/src/api/effect/invites.ts +59 -0
  1113. package/src/api/effect/logging.ts +37 -0
  1114. package/src/api/effect/members.ts +521 -0
  1115. package/src/api/effect/messages.ts +1003 -0
  1116. package/src/api/effect/oauth.ts +208 -0
  1117. package/src/api/effect/permissions.ts +44 -0
  1118. package/src/api/effect/presence.ts +83 -0
  1119. package/src/api/effect/rest.ts +27 -0
  1120. package/src/api/effect/roles.ts +136 -0
  1121. package/src/api/effect/service.ts +104 -0
  1122. package/src/api/effect/stickers.ts +112 -0
  1123. package/src/api/effect/supervisor.ts +58 -0
  1124. package/src/api/effect/threads.ts +221 -0
  1125. package/src/api/effect/users.ts +66 -0
  1126. package/src/api/effect/webhook-client.ts +206 -0
  1127. package/src/api/effect/webhooks.ts +75 -0
  1128. package/src/api-errors.ts +985 -0
  1129. package/src/application.ts +103 -0
  1130. package/src/assets.ts +731 -0
  1131. package/src/attachments.ts +469 -0
  1132. package/src/audit-logs.ts +355 -0
  1133. package/src/bot-runner.ts +91 -0
  1134. package/src/builders.ts +390 -0
  1135. package/src/cache.ts +190 -0
  1136. package/src/channels.ts +1051 -0
  1137. package/src/cli.ts +60 -0
  1138. package/src/client.ts +663 -0
  1139. package/src/collectors.ts +248 -0
  1140. package/src/colors.ts +91 -0
  1141. package/src/command-arguments.ts +432 -0
  1142. package/src/command-help.ts +55 -0
  1143. package/src/commands.ts +403 -0
  1144. package/src/counts.ts +160 -0
  1145. package/src/default-commands.ts +1147 -0
  1146. package/src/default-supervisor.ts +484 -0
  1147. package/src/discovery.ts +241 -0
  1148. package/src/effect-testing.ts +603 -0
  1149. package/src/effect.ts +751 -0
  1150. package/src/embeds.ts +253 -0
  1151. package/src/error-tools.ts +191 -0
  1152. package/src/errors.ts +849 -0
  1153. package/src/events.ts +830 -0
  1154. package/src/expressions.ts +198 -0
  1155. package/src/failures.ts +55 -0
  1156. package/src/gateway.ts +86 -0
  1157. package/src/guilds.ts +1108 -0
  1158. package/src/helpers.ts +836 -0
  1159. package/src/index.ts +796 -0
  1160. package/src/input-validation.ts +94 -0
  1161. package/src/instance.ts +111 -0
  1162. package/src/internal/agents-section.ts +114 -0
  1163. package/src/internal/application.ts +51 -0
  1164. package/src/internal/attachment-refresh.ts +57 -0
  1165. package/src/internal/attachments.ts +313 -0
  1166. package/src/internal/audit-logs.ts +336 -0
  1167. package/src/internal/audit.ts +33 -0
  1168. package/src/internal/binding/default-adapters.ts +482 -0
  1169. package/src/internal/binding/default.ts +155 -0
  1170. package/src/internal/binding/execute.ts +221 -0
  1171. package/src/internal/binding/native-adapters.ts +199 -0
  1172. package/src/internal/binding/native.ts +72 -0
  1173. package/src/internal/binding/operations.ts +1171 -0
  1174. package/src/internal/bot-runner.ts +480 -0
  1175. package/src/internal/cache-changes.ts +363 -0
  1176. package/src/internal/cache.ts +323 -0
  1177. package/src/internal/calls.ts +119 -0
  1178. package/src/internal/channel-cache.ts +435 -0
  1179. package/src/internal/channel-decode.ts +399 -0
  1180. package/src/internal/channels.ts +874 -0
  1181. package/src/internal/client/backoff.ts +69 -0
  1182. package/src/internal/client/configuration-fields.ts +18 -0
  1183. package/src/internal/client/drain.ts +150 -0
  1184. package/src/internal/client/intake.ts +228 -0
  1185. package/src/internal/client/lifetime.ts +165 -0
  1186. package/src/internal/client/shard-loop.ts +586 -0
  1187. package/src/internal/client-registry.ts +35 -0
  1188. package/src/internal/client.ts +2448 -0
  1189. package/src/internal/clock.ts +11 -0
  1190. package/src/internal/code-catalogue.ts +739 -0
  1191. package/src/internal/collector.ts +452 -0
  1192. package/src/internal/command-arguments.ts +585 -0
  1193. package/src/internal/command-guards.ts +96 -0
  1194. package/src/internal/command-help.ts +156 -0
  1195. package/src/internal/commands.ts +1319 -0
  1196. package/src/internal/configuration.ts +529 -0
  1197. package/src/internal/counts.ts +471 -0
  1198. package/src/internal/decode/primitives.ts +67 -0
  1199. package/src/internal/decode/timestamp.ts +29 -0
  1200. package/src/internal/decode/trace.ts +65 -0
  1201. package/src/internal/defects.ts +115 -0
  1202. package/src/internal/effect-failures.ts +65 -0
  1203. package/src/internal/embeds.ts +355 -0
  1204. package/src/internal/events.ts +1345 -0
  1205. package/src/internal/expiry-queue.ts +148 -0
  1206. package/src/internal/expressions.ts +415 -0
  1207. package/src/internal/failures.ts +492 -0
  1208. package/src/internal/field-text.ts +40 -0
  1209. package/src/internal/gateway/commands.ts +328 -0
  1210. package/src/internal/gateway/dispatch-table.ts +383 -0
  1211. package/src/internal/gateway/event-dispatches.ts +201 -0
  1212. package/src/internal/gateway/frames.ts +176 -0
  1213. package/src/internal/gateway/options.ts +144 -0
  1214. package/src/internal/gateway/session.ts +625 -0
  1215. package/src/internal/gateway-requests.ts +26 -0
  1216. package/src/internal/gateway.ts +22 -0
  1217. package/src/internal/guild-cache.ts +424 -0
  1218. package/src/internal/guild-discovery.ts +332 -0
  1219. package/src/internal/guild-lifecycle.ts +128 -0
  1220. package/src/internal/guild-settings.ts +209 -0
  1221. package/src/internal/guilds.ts +949 -0
  1222. package/src/internal/init-command.ts +305 -0
  1223. package/src/internal/instance.ts +645 -0
  1224. package/src/internal/invalid-callback-return.ts +28 -0
  1225. package/src/internal/invites.ts +234 -0
  1226. package/src/internal/logging.ts +1007 -0
  1227. package/src/internal/logical-scheduler.ts +139 -0
  1228. package/src/internal/masking.ts +224 -0
  1229. package/src/internal/member-chunks.ts +649 -0
  1230. package/src/internal/member-search-workflow.ts +237 -0
  1231. package/src/internal/member-search.ts +272 -0
  1232. package/src/internal/message-cleanup.ts +515 -0
  1233. package/src/internal/message-fields.ts +71 -0
  1234. package/src/internal/message-search-workflow.ts +166 -0
  1235. package/src/internal/message-search.ts +476 -0
  1236. package/src/internal/message.ts +879 -0
  1237. package/src/internal/metrics.ts +55 -0
  1238. package/src/internal/moderation.ts +288 -0
  1239. package/src/internal/multipart.ts +171 -0
  1240. package/src/internal/node-version.ts +22 -0
  1241. package/src/internal/oauth.ts +1146 -0
  1242. package/src/internal/observer.ts +62 -0
  1243. package/src/internal/operation-signal.ts +26 -0
  1244. package/src/internal/pagination.ts +494 -0
  1245. package/src/internal/permission-requirements.ts +359 -0
  1246. package/src/internal/permissions.ts +417 -0
  1247. package/src/internal/pins.ts +115 -0
  1248. package/src/internal/presence.ts +745 -0
  1249. package/src/internal/protocol/gateway.ts +299 -0
  1250. package/src/internal/rate-limit-templates.ts +138 -0
  1251. package/src/internal/rate-limits.ts +346 -0
  1252. package/src/internal/reaction-collector.ts +499 -0
  1253. package/src/internal/reaction-pages.ts +260 -0
  1254. package/src/internal/reactions.ts +174 -0
  1255. package/src/internal/rejection-scope.ts +119 -0
  1256. package/src/internal/response-json.ts +76 -0
  1257. package/src/internal/rest/admission.ts +210 -0
  1258. package/src/internal/rest/attempt.ts +617 -0
  1259. package/src/internal/rest/classify.ts +391 -0
  1260. package/src/internal/rest/download.ts +658 -0
  1261. package/src/internal/rest/options.ts +145 -0
  1262. package/src/internal/rest/owner.ts +1828 -0
  1263. package/src/internal/rest/request.ts +289 -0
  1264. package/src/internal/rest.ts +9 -0
  1265. package/src/internal/retention-age.ts +33 -0
  1266. package/src/internal/role-hierarchy-workflow.ts +150 -0
  1267. package/src/internal/role-hierarchy.ts +93 -0
  1268. package/src/internal/scheduled-tasks.ts +217 -0
  1269. package/src/internal/sharding.ts +270 -0
  1270. package/src/internal/starter-project.ts +251 -0
  1271. package/src/internal/suggest.ts +50 -0
  1272. package/src/internal/supervisor.ts +2253 -0
  1273. package/src/internal/testing/discovery.ts +23 -0
  1274. package/src/internal/testing/errors.ts +67 -0
  1275. package/src/internal/testing/fixtures.ts +714 -0
  1276. package/src/internal/testing/gateway.ts +305 -0
  1277. package/src/internal/testing/harness.ts +328 -0
  1278. package/src/internal/testing/http.ts +395 -0
  1279. package/src/internal/testing/types.ts +240 -0
  1280. package/src/internal/testing/wait.ts +63 -0
  1281. package/src/internal/thread-events.ts +128 -0
  1282. package/src/internal/threads.ts +718 -0
  1283. package/src/internal/transfer-source.ts +359 -0
  1284. package/src/internal/transport/http.ts +46 -0
  1285. package/src/internal/transport/index.ts +23 -0
  1286. package/src/internal/transport/socket.ts +71 -0
  1287. package/src/internal/transport/user-agent.ts +46 -0
  1288. package/src/internal/uploads.ts +111 -0
  1289. package/src/internal/user-cache.ts +294 -0
  1290. package/src/internal/users.ts +402 -0
  1291. package/src/internal/vanity-url.ts +80 -0
  1292. package/src/internal/webhooks.ts +690 -0
  1293. package/src/invites.ts +87 -0
  1294. package/src/logging.ts +247 -0
  1295. package/src/member-chunks.ts +195 -0
  1296. package/src/member-search.ts +152 -0
  1297. package/src/message-cleanup.ts +308 -0
  1298. package/src/message-errors.ts +245 -0
  1299. package/src/message-search.ts +213 -0
  1300. package/src/messages.ts +768 -0
  1301. package/src/native-commands.ts +1249 -0
  1302. package/src/native-supervisor.ts +345 -0
  1303. package/src/oauth.ts +413 -0
  1304. package/src/observer.ts +118 -0
  1305. package/src/pagination.ts +172 -0
  1306. package/src/permissions.ts +74 -0
  1307. package/src/pins.ts +65 -0
  1308. package/src/presence.ts +124 -0
  1309. package/src/reaction-pages.ts +106 -0
  1310. package/src/reactions.ts +126 -0
  1311. package/src/rest.ts +282 -0
  1312. package/src/role-hierarchy.ts +127 -0
  1313. package/src/sharding.ts +272 -0
  1314. package/src/supervisor.ts +460 -0
  1315. package/src/testing.ts +424 -0
  1316. package/src/text.ts +76 -0
  1317. package/src/threads.ts +274 -0
  1318. package/src/users.ts +237 -0
  1319. package/src/webhooks.ts +512 -0
@@ -0,0 +1,949 @@
1
+ /**
2
+ * Guild, member, role and voice-state operations and their gateway projections.
3
+ * Invariant: Operations validate requests and convert REST and gateway data without storing guild state, use separate rate-limit
4
+ * groups for guild and message routes, and never enter the message cache or synthesize gateway events after HTTP responses.
5
+ * Multi-step resource workflows are not transactions, and uncertain writes are never replayed as reads. Implements [SDK contracts: Delivery, requests and caches](/docs/SDK-CONTRACTS.md#delivery-requests-and-caches)
6
+ */
7
+ import type {
8
+ Guild,
9
+ GuildDeletion,
10
+ GuildContentWarningLevel,
11
+ GuildDefaultMessageNotification,
12
+ GuildExplicitContentFilter,
13
+ GuildMember,
14
+ MemberProfileEdit,
15
+ GuildSplashCardAlignment,
16
+ GuildVerificationLevel,
17
+ GuildMfaLevel,
18
+ GuildRole,
19
+ RoleCreate,
20
+ RoleEdit,
21
+ MemberQuery,
22
+ MemberReference,
23
+ RolePosition,
24
+ RoleHoistPosition,
25
+ RoleReference,
26
+ } from "#sdk/guilds"
27
+ import { GuildVerificationLevels } from "#sdk/guilds"
28
+ import type { GuildCreate, VoiceState, VoiceStateSnapshot } from "#sdk/events"
29
+ import { InputValidationFailure, inputValidationFailure, unsupportedKeyFailure } from "#sdk/input-validation"
30
+ import { count as nonNegativeInt32, identifier, int32, record } from "./decode/primitives.js"
31
+ import { rejectCheck } from "./decode/trace.js"
32
+ import type { ResourceRequest } from "./guild-cache.js"
33
+ import type { ChannelCacheRequest } from "./channel-cache.js"
34
+ import type { InstanceEndpointContext } from "./instance.js"
35
+ import { timestamp } from "./decode/timestamp.js"
36
+ import { memberNickname, normalizedText as text } from "./field-text.js"
37
+
38
+ /** Validated request description. The shared REST owner retains admission, cleanup and rate state */
39
+ export interface GuildRequest<A> {
40
+ readonly guildId: string
41
+ readonly bucket: string
42
+ readonly path: string
43
+ readonly method: "GET" | "POST" | "PATCH" | "PUT" | "DELETE"
44
+ readonly status: 200 | 202 | 204
45
+ readonly json?: string
46
+ /** Allows the shared REST owner to validate and send an operation audit reason */
47
+ readonly audited?: true
48
+ readonly moderation?: true
49
+ readonly auditReason?: string
50
+ /** Permits timeoutReason only on timeout and clear-timeout operation options */
51
+ readonly timeoutReason?: true
52
+ readonly deleteAuthorId?: string
53
+ readonly invalidateMessages?: true
54
+ /** Private client capabilities required for one explicit provider-gated replacement */
55
+ readonly features?: readonly string[]
56
+ /** REST supplies the immutable endpoint snapshot after request admission. One-argument decoders ignore it */
57
+ readonly decode: (value: unknown, instance?: InstanceEndpointContext) => A | undefined
58
+ readonly cache?: ResourceRequest
59
+ readonly channelCache?: ChannelCacheRequest
60
+ }
61
+
62
+ type GuildValidationResult<A> = GuildRequest<A> | InputValidationFailure
63
+
64
+ const nullableText = (value: unknown) => value === undefined || value === null || typeof value === "string"
65
+ const maximumSnowflake = "9223372036854775807"
66
+ const positiveIdentifier = (value: unknown): value is string =>
67
+ identifier(value) &&
68
+ value !== "0" &&
69
+ (value.length < maximumSnowflake.length || (value.length === maximumSnowflake.length && value <= maximumSnowflake))
70
+ const color = (value: unknown): value is number => nonNegativeInt32(value) && value <= 0xffffff
71
+ const mentionPreference = (value: unknown): value is 0 | 1 | 2 => value === 0 || value === 1 || value === 2
72
+ const guildDefaultMessageNotification = (value: unknown): value is GuildDefaultMessageNotification =>
73
+ value === 0 || value === 1
74
+ const guildVerificationLevel = (value: unknown): value is GuildVerificationLevel =>
75
+ value === 0 || value === 1 || value === 2 || value === 3
76
+ const guildMfaLevel = (value: unknown): value is GuildMfaLevel => value === 0 || value === 1
77
+ const guildExplicitContentFilter = (value: unknown): value is GuildExplicitContentFilter =>
78
+ value === 0 || value === 1 || value === 2
79
+ const guildContentWarningLevel = (value: unknown): value is GuildContentWarningLevel => value === 0 || value === 1
80
+ const guildSplashCardAlignment = (value: unknown): value is GuildSplashCardAlignment =>
81
+ value === 0 || value === 1 || value === 2
82
+ const imageDataUri = (value: unknown): value is string =>
83
+ typeof value === "string" && /^data:image\/[a-zA-Z0-9.+-]+;base64,[A-Za-z0-9+/]+={0,2}$/.test(value)
84
+
85
+ export const guildEvents = {
86
+ GUILD_MEMBER_ADD: "guildMemberAdd",
87
+ GUILD_MEMBER_UPDATE: "guildMemberUpdate",
88
+ GUILD_MEMBER_REMOVE: "guildMemberRemove",
89
+ GUILD_BAN_ADD: "guildBanAdd",
90
+ GUILD_BAN_REMOVE: "guildBanRemove",
91
+ GUILD_ROLE_DELETE: "guildRoleDelete",
92
+ GUILD_ROLE_CREATE: "guildRoleCreate",
93
+ GUILD_ROLE_UPDATE: "guildRoleUpdate",
94
+ GUILD_ROLE_UPDATE_BULK: "guildRoleUpdateBulk",
95
+ } as const
96
+
97
+ export const guildLifecycleEvents = {
98
+ GUILD_CREATE: "guildCreate",
99
+ GUILD_UPDATE: "guildUpdate",
100
+ GUILD_DELETE: "guildDelete",
101
+ } as const
102
+
103
+ export function decodeGuildEvent(event: keyof typeof guildEvents, value: unknown) {
104
+ if (!record(value) || !identifier(value.guild_id)) return undefined
105
+ if (event === "GUILD_ROLE_CREATE" || event === "GUILD_ROLE_UPDATE") return decodeRole(value.role, value.guild_id)
106
+ if (event === "GUILD_ROLE_UPDATE_BULK") {
107
+ const roles = decodeRoles(value.roles, value.guild_id)
108
+ return roles ? Object.freeze({ guildId: value.guild_id, roles }) : undefined
109
+ }
110
+ if (event === "GUILD_ROLE_DELETE") {
111
+ if (!identifier(value.role_id)) return undefined
112
+ return Object.freeze({ guildId: value.guild_id, id: value.role_id })
113
+ }
114
+ if (event === "GUILD_MEMBER_REMOVE" || event === "GUILD_BAN_ADD" || event === "GUILD_BAN_REMOVE") {
115
+ if (!record(value.user) || !identifier(value.user.id)) return undefined
116
+ return Object.freeze({ guildId: value.guild_id, userId: value.user.id })
117
+ }
118
+ return decodeMember(value, value.guild_id)
119
+ }
120
+
121
+ /** Decodes the documented complete snapshot/update forms without retaining gateway collections */
122
+ export function decodeGuildLifecycleEvent(event: keyof typeof guildLifecycleEvents, value: unknown) {
123
+ if (event === "GUILD_CREATE") {
124
+ if (!record(value) || (Object.hasOwn(value, "unavailable") && value.unavailable !== false)) return undefined
125
+ const guild = decodeGuildSnapshot(value)
126
+ return guild
127
+ ? Object.freeze({ ...guild, isNewJoin: !Object.hasOwn(value, "unavailable") } satisfies GuildCreate)
128
+ : undefined
129
+ }
130
+ if (event === "GUILD_DELETE") {
131
+ if (
132
+ !record(value) ||
133
+ !identifier(value.id) ||
134
+ (value.guild_id !== undefined && (!identifier(value.guild_id) || value.guild_id !== value.id)) ||
135
+ (value.unavailable !== undefined && typeof value.unavailable !== "boolean") ||
136
+ (value.unavailable_hidden !== undefined && typeof value.unavailable_hidden !== "boolean") ||
137
+ (value.unavailable_hidden === true && value.unavailable !== true)
138
+ )
139
+ return undefined
140
+ return Object.freeze({
141
+ id: value.id,
142
+ unavailable: value.unavailable ?? false,
143
+ unavailableHidden: value.unavailable_hidden ?? false,
144
+ } satisfies GuildDeletion)
145
+ }
146
+ if (
147
+ event === "GUILD_UPDATE" &&
148
+ (!record(value) ||
149
+ (value.guild_id !== undefined && (!identifier(value.guild_id) || value.guild_id !== value.id)))
150
+ )
151
+ return undefined
152
+ return decodeGuild(value)
153
+ }
154
+
155
+ /** Decodes a complete nested GUILD_CREATE snapshot while leaving its collections unretained */
156
+ export function decodeGuildSnapshot(value: unknown): Guild | undefined {
157
+ if (!record(value) || !identifier(value.id) || !record(value.properties) || value.properties.id !== value.id)
158
+ return undefined
159
+ return decodeGuild(value.properties)
160
+ }
161
+
162
+ export function decodeVoiceState(value: unknown, expectedGuildId?: string): VoiceState | undefined {
163
+ if (
164
+ !record(value) ||
165
+ !identifier(value.guild_id) ||
166
+ (expectedGuildId !== undefined && value.guild_id !== expectedGuildId) ||
167
+ (value.channel_id !== null && !identifier(value.channel_id)) ||
168
+ !identifier(value.user_id) ||
169
+ typeof value.connection_id !== "string" ||
170
+ // oxlint-disable-next-line typescript/no-misused-spread -- the length limit counts Unicode code points
171
+ [...value.connection_id].length < 1 ||
172
+ // oxlint-disable-next-line typescript/no-misused-spread -- the length limit counts Unicode code points
173
+ [...value.connection_id].length > 32 ||
174
+ (value.session_id !== undefined &&
175
+ value.session_id !== null &&
176
+ (typeof value.session_id !== "string" || value.session_id.length === 0)) ||
177
+ typeof value.mute !== "boolean" ||
178
+ typeof value.deaf !== "boolean" ||
179
+ typeof value.self_mute !== "boolean" ||
180
+ typeof value.self_deaf !== "boolean" ||
181
+ typeof value.is_mobile !== "boolean" ||
182
+ typeof value.suppress !== "boolean" ||
183
+ (value.self_video !== undefined && typeof value.self_video !== "boolean") ||
184
+ (value.self_stream !== undefined && typeof value.self_stream !== "boolean") ||
185
+ (value.viewer_stream_keys !== undefined &&
186
+ value.viewer_stream_keys !== null &&
187
+ (!Array.isArray(value.viewer_stream_keys) ||
188
+ !value.viewer_stream_keys.every((key) => typeof key === "string")))
189
+ )
190
+ return undefined
191
+ // Fluxer sends member null where no community member applies, such as in a private call
192
+ const hasMember = value.member !== undefined && value.member !== null
193
+ const member = hasMember ? decodeMember(value.member, value.guild_id) : undefined
194
+ if (hasMember && !member) return undefined
195
+ return Object.freeze({
196
+ guildId: value.guild_id,
197
+ channelId: value.channel_id,
198
+ userId: value.user_id,
199
+ connectionId: value.connection_id,
200
+ ...(typeof value.session_id === "string" ? { sessionId: value.session_id } : {}),
201
+ isMuted: value.mute,
202
+ isDeafened: value.deaf,
203
+ isSelfMuted: value.self_mute,
204
+ isSelfDeafened: value.self_deaf,
205
+ isMobile: value.is_mobile,
206
+ isSuppressed: value.suppress,
207
+ isSelfVideoOn: value.self_video === true,
208
+ isSelfStreaming: value.self_stream === true,
209
+ viewerStreamKeys: Object.freeze(
210
+ Array.isArray(value.viewer_stream_keys) ? ([...value.viewer_stream_keys] as string[]) : [],
211
+ ),
212
+ ...(member ? { member } : {}),
213
+ })
214
+ }
215
+
216
+ export function decodeVoiceStateSnapshot(value: unknown): VoiceStateSnapshot | undefined {
217
+ if (!record(value) || !identifier(value.id) || !Array.isArray(value.voice_states)) return undefined
218
+ const connectionIds = new Set<string>()
219
+ const voiceStates: VoiceState[] = []
220
+ for (const item of value.voice_states) {
221
+ const state = decodeVoiceState(item, value.id)
222
+ if (!state || state.channelId === null || connectionIds.has(state.connectionId)) return undefined
223
+ connectionIds.add(state.connectionId)
224
+ voiceStates.push(state)
225
+ }
226
+ return Object.freeze({ guildId: value.id, voiceStates: Object.freeze(voiceStates) })
227
+ }
228
+
229
+ export function decodeGuild(value: unknown): Guild | undefined {
230
+ if (
231
+ !record(value) ||
232
+ !identifier(value.id) ||
233
+ !identifier(value.owner_id) ||
234
+ typeof value.name !== "string" ||
235
+ !Array.isArray(value.features) ||
236
+ !value.features.every((item) => typeof item === "string") ||
237
+ !nullableText(value.icon) ||
238
+ !nullableText(value.banner) ||
239
+ !nullableText(value.splash) ||
240
+ !nullableText(value.embed_splash) ||
241
+ (value.splash_card_alignment !== undefined && !guildSplashCardAlignment(value.splash_card_alignment)) ||
242
+ (value.system_channel_id !== undefined &&
243
+ value.system_channel_id !== null &&
244
+ !identifier(value.system_channel_id)) ||
245
+ (value.system_channel_flags !== undefined && !nonNegativeInt32(value.system_channel_flags)) ||
246
+ (value.afk_channel_id !== undefined && value.afk_channel_id !== null && !identifier(value.afk_channel_id)) ||
247
+ (value.afk_timeout !== undefined && !nonNegativeInt32(value.afk_timeout)) ||
248
+ (value.default_message_notifications !== undefined &&
249
+ !guildDefaultMessageNotification(value.default_message_notifications)) ||
250
+ (value.verification_level !== undefined &&
251
+ value.verification_level !== 4 &&
252
+ !guildVerificationLevel(value.verification_level)) ||
253
+ (value.mfa_level !== undefined && !guildMfaLevel(value.mfa_level)) ||
254
+ (value.nsfw !== undefined && typeof value.nsfw !== "boolean") ||
255
+ (value.content_warning_level !== undefined && !guildContentWarningLevel(value.content_warning_level)) ||
256
+ !nullableText(value.content_warning_text) ||
257
+ (value.explicit_content_filter !== undefined && !guildExplicitContentFilter(value.explicit_content_filter)) ||
258
+ (value.message_history_cutoff !== undefined &&
259
+ value.message_history_cutoff !== null &&
260
+ !timestamp(value.message_history_cutoff))
261
+ )
262
+ return undefined
263
+ return Object.freeze({
264
+ id: value.id,
265
+ name: value.name,
266
+ ownerId: value.owner_id,
267
+ features: Object.freeze([...value.features] as string[]),
268
+ ...(value.icon === undefined ? {} : { icon: value.icon as string | null }),
269
+ ...(value.banner === undefined ? {} : { banner: value.banner as string | null }),
270
+ ...(value.splash === undefined ? {} : { splash: value.splash as string | null }),
271
+ ...(value.embed_splash === undefined ? {} : { embedSplash: value.embed_splash as string | null }),
272
+ ...(value.splash_card_alignment === undefined
273
+ ? {}
274
+ : { splashCardAlignment: value.splash_card_alignment as GuildSplashCardAlignment }),
275
+ ...(value.system_channel_id === undefined ? {} : { systemChannelId: value.system_channel_id as string | null }),
276
+ ...(value.system_channel_flags === undefined
277
+ ? {}
278
+ : { systemChannelFlags: value.system_channel_flags as number }),
279
+ ...(value.afk_channel_id === undefined ? {} : { afkChannelId: value.afk_channel_id as string | null }),
280
+ ...(value.afk_timeout === undefined ? {} : { afkTimeoutSeconds: value.afk_timeout as number }),
281
+ ...(value.default_message_notifications === undefined
282
+ ? {}
283
+ : { defaultMessageNotifications: value.default_message_notifications as GuildDefaultMessageNotification }),
284
+ // Legacy level 4 follows Fluxer's stored-guild normalization to High
285
+ // https://github.com/fluxerapp/fluxer/blob/597116a0b4bf3a212789bdebe7f284babc33b445/fluxer_api/src/api/models/Guild.ts
286
+ ...(value.verification_level === undefined
287
+ ? {}
288
+ : {
289
+ verificationLevel:
290
+ value.verification_level === 4
291
+ ? GuildVerificationLevels.High
292
+ : (value.verification_level as GuildVerificationLevel),
293
+ }),
294
+ ...(value.mfa_level === undefined ? {} : { mfaLevel: value.mfa_level as GuildMfaLevel }),
295
+ ...(value.nsfw === undefined ? {} : { nsfw: value.nsfw as boolean }),
296
+ ...(value.content_warning_level === undefined
297
+ ? {}
298
+ : { contentWarningLevel: value.content_warning_level as GuildContentWarningLevel }),
299
+ ...(value.content_warning_text === undefined
300
+ ? {}
301
+ : { contentWarningText: value.content_warning_text as string | null }),
302
+ ...(value.explicit_content_filter === undefined
303
+ ? {}
304
+ : { explicitContentFilter: value.explicit_content_filter as GuildExplicitContentFilter }),
305
+ ...(value.message_history_cutoff === undefined
306
+ ? {}
307
+ : { messageHistoryCutoff: value.message_history_cutoff as string | null }),
308
+ })
309
+ }
310
+
311
+ export function decodeMember(value: unknown, guildId: string): GuildMember | undefined {
312
+ if (
313
+ !record(value) ||
314
+ !record(value.user) ||
315
+ !identifier(value.user.id) ||
316
+ typeof value.user.username !== "string" ||
317
+ (value.user.bot !== undefined && typeof value.user.bot !== "boolean") ||
318
+ !Array.isArray(value.roles) ||
319
+ value.roles.length > 250 ||
320
+ !value.roles.every(identifier) ||
321
+ new Set(value.roles).size !== value.roles.length ||
322
+ !timestamp(value.joined_at) ||
323
+ !nullableText(value.nick) ||
324
+ !nullableText(value.avatar) ||
325
+ !nullableText(value.banner) ||
326
+ (value.accent_color !== undefined && value.accent_color !== null && !color(value.accent_color)) ||
327
+ (value.profile_flags !== undefined && value.profile_flags !== null && !nonNegativeInt32(value.profile_flags)) ||
328
+ (value.mention_flags !== undefined &&
329
+ value.mention_flags !== null &&
330
+ !mentionPreference(value.mention_flags)) ||
331
+ (value.mute !== undefined && typeof value.mute !== "boolean") ||
332
+ (value.deaf !== undefined && typeof value.deaf !== "boolean") ||
333
+ (value.communication_disabled_until !== undefined &&
334
+ value.communication_disabled_until !== null &&
335
+ !timestamp(value.communication_disabled_until))
336
+ )
337
+ return undefined
338
+ return Object.freeze({
339
+ guildId,
340
+ userId: value.user.id,
341
+ username: value.user.username,
342
+ isBot: value.user.bot === true,
343
+ roleIds: Object.freeze([...value.roles] as string[]),
344
+ joinedAt: value.joined_at,
345
+ ...(value.communication_disabled_until === undefined
346
+ ? {}
347
+ : { communicationDisabledUntil: value.communication_disabled_until as string | null }),
348
+ ...(value.nick === undefined ? {} : { nickname: value.nick as string | null }),
349
+ ...(value.avatar === undefined ? {} : { avatar: value.avatar as string | null }),
350
+ ...(value.banner === undefined ? {} : { banner: value.banner as string | null }),
351
+ ...(value.accent_color === undefined ? {} : { accentColor: value.accent_color as number | null }),
352
+ ...(value.profile_flags === undefined ? {} : { profileFlags: value.profile_flags as number | null }),
353
+ ...(value.mention_flags === undefined ? {} : { mentionFlags: value.mention_flags as 0 | 1 | 2 | null }),
354
+ ...(value.mute === undefined ? {} : { isMuted: value.mute as boolean }),
355
+ ...(value.deaf === undefined ? {} : { isDeafened: value.deaf as boolean }),
356
+ })
357
+ }
358
+
359
+ export function guildFetch(guildId: string): GuildValidationResult<Guild> {
360
+ if (!identifier(guildId)) return inputValidationFailure("guildId", "format", "Guild IDs must be decimal strings")
361
+ return {
362
+ guildId,
363
+ bucket: "guild:read",
364
+ cache: { selection: { kind: "guilds", guildId } },
365
+ path: `/guilds/${guildId}`,
366
+ method: "GET",
367
+ status: 200,
368
+ decode: (value) => {
369
+ const guild = decodeGuild(value)
370
+ return guild?.id === guildId ? guild : undefined
371
+ },
372
+ }
373
+ }
374
+
375
+ export function memberFetch(target: MemberReference): GuildValidationResult<GuildMember> {
376
+ if (!record(target)) return inputValidationFailure("target", "type", "Member targets must be objects")
377
+ if (!identifier(target.guildId))
378
+ return inputValidationFailure("target.guildId", "format", "Guild IDs must be decimal strings")
379
+ if (!identifier(target.userId))
380
+ return inputValidationFailure("target.userId", "format", "User IDs must be decimal strings")
381
+ const { guildId, userId } = target
382
+ return {
383
+ guildId,
384
+ bucket: "guild:members",
385
+ path: `/guilds/${guildId}/members/${userId}`,
386
+ cache: { selection: { kind: "members", guildId, id: userId } },
387
+ method: "GET",
388
+ status: 200,
389
+ decode: (value) => {
390
+ const member = decodeMember(value, guildId)
391
+ return member?.userId === userId ? member : undefined
392
+ },
393
+ }
394
+ }
395
+
396
+ export function memberSelf(guildId: string): GuildValidationResult<GuildMember> {
397
+ if (!identifier(guildId)) return inputValidationFailure("guildId", "format", "Guild IDs must be decimal strings")
398
+ return {
399
+ guildId,
400
+ bucket: "guild:members",
401
+ path: `/guilds/${guildId}/members/@me`,
402
+ cache: { selection: { kind: "members", guildId } },
403
+ method: "GET",
404
+ status: 200,
405
+ decode: (value) => decodeMember(value, guildId),
406
+ }
407
+ }
408
+
409
+ export function memberEditSelf(guildId: string, input: MemberProfileEdit): GuildValidationResult<GuildMember> {
410
+ if (!identifier(guildId)) return inputValidationFailure("guildId", "format", "Guild IDs must be decimal strings")
411
+ if (!record(input)) return inputValidationFailure("input", "type", "Member profile input must be an object")
412
+ if (Object.keys(input).length === 0)
413
+ return inputValidationFailure("input", "required", "Member profile input must contain at least one field")
414
+ const unsupported = unsupportedKeyFailure(
415
+ input,
416
+ ["nickname", "avatar", "banner", "bio", "pronouns", "accentColor", "profileFlags", "mentionFlags"],
417
+ "input",
418
+ "the member profile input",
419
+ )
420
+ if (unsupported) return unsupported
421
+ if (input.nickname !== undefined && input.nickname !== null && !memberNickname(input.nickname))
422
+ return inputValidationFailure(
423
+ "nickname",
424
+ "length",
425
+ "Nickname must contain 1 through 32 UTF-16 code units after Fluxer's normalization, or only whitespace to clear it",
426
+ )
427
+ if (input.avatar !== undefined && input.avatar !== null && !imageDataUri(input.avatar))
428
+ return inputValidationFailure("avatar", "format", "Avatar must be null or a base64 image data URI")
429
+ if (input.banner !== undefined && input.banner !== null && !imageDataUri(input.banner))
430
+ return inputValidationFailure("banner", "format", "Banner must be null or a base64 image data URI")
431
+ if (input.bio !== undefined && input.bio !== null && !text(input.bio, 1, 320))
432
+ return inputValidationFailure(
433
+ "bio",
434
+ "length",
435
+ "Bio must contain 1 through 320 UTF-16 code units after Fluxer's normalization",
436
+ )
437
+ if (input.pronouns !== undefined && input.pronouns !== null && !text(input.pronouns, 1, 40))
438
+ return inputValidationFailure(
439
+ "pronouns",
440
+ "length",
441
+ "Pronouns must contain 1 through 40 UTF-16 code units after Fluxer's normalization",
442
+ )
443
+ if (input.accentColor !== undefined && input.accentColor !== null && !color(input.accentColor))
444
+ return inputValidationFailure(
445
+ "accentColor",
446
+ "range",
447
+ "Accent color must be an integer from 0 through 16,777,215",
448
+ )
449
+ if (input.profileFlags !== undefined && input.profileFlags !== null && !nonNegativeInt32(input.profileFlags))
450
+ return inputValidationFailure(
451
+ "profileFlags",
452
+ "range",
453
+ "Profile flags must be an integer from 0 through 2,147,483,647",
454
+ )
455
+ if (input.mentionFlags !== undefined && input.mentionFlags !== null && !mentionPreference(input.mentionFlags))
456
+ return inputValidationFailure("mentionFlags", "allowedValue", "Mention flags must be 0, 1, or 2")
457
+ const json = JSON.stringify({
458
+ nick: input.nickname,
459
+ avatar: input.avatar,
460
+ banner: input.banner,
461
+ bio: input.bio,
462
+ pronouns: input.pronouns,
463
+ accent_color: input.accentColor,
464
+ profile_flags: input.profileFlags,
465
+ mention_flags: input.mentionFlags,
466
+ })
467
+ if (json === "{}")
468
+ return inputValidationFailure(
469
+ "input",
470
+ "required",
471
+ "Member profile input must set at least one field to a defined value",
472
+ )
473
+ if (Buffer.byteLength(json) > 4_194_304)
474
+ return inputValidationFailure("input", "size", "Member profile input must not exceed 4,194,304 encoded bytes")
475
+ return {
476
+ guildId,
477
+ bucket: "guild:member:self:update",
478
+ audited: true,
479
+ cache: { selection: { kind: "members", guildId }, mutation: true },
480
+ path: `/guilds/${guildId}/members/@me`,
481
+ method: "PATCH",
482
+ status: 200,
483
+ json,
484
+ decode: (value) => decodeMember(value, guildId),
485
+ }
486
+ }
487
+
488
+ /** Build the one-field member PATCH used for a moderator-controlled nickname change */
489
+ export function memberNicknameEdit(
490
+ target: MemberReference,
491
+ nickname: string | null,
492
+ ): GuildValidationResult<GuildMember> {
493
+ if (!record(target)) return inputValidationFailure("target", "type", "Member targets must be objects")
494
+ if (!identifier(target.guildId))
495
+ return inputValidationFailure("target.guildId", "format", "Guild IDs must be decimal strings")
496
+ if (!identifier(target.userId))
497
+ return inputValidationFailure("target.userId", "format", "User IDs must be decimal strings")
498
+ if (nickname !== null && !memberNickname(nickname))
499
+ return inputValidationFailure(
500
+ "nickname",
501
+ "length",
502
+ "Nickname must be null or only whitespace to clear it, or contain 1 through 32 UTF-16 code units after Fluxer's normalization",
503
+ )
504
+ const { guildId, userId } = target
505
+ return {
506
+ guildId,
507
+ bucket: "guild:member:nickname:update",
508
+ audited: true,
509
+ cache: { selection: { kind: "members", guildId, id: userId }, mutation: true },
510
+ path: `/guilds/${guildId}/members/${userId}`,
511
+ method: "PATCH",
512
+ status: 200,
513
+ json: JSON.stringify({ nick: nickname }),
514
+ decode: (value) => {
515
+ const member = decodeMember(value, guildId)
516
+ return member?.userId === userId ? member : undefined
517
+ },
518
+ }
519
+ }
520
+
521
+ /** Build the complete role-set PATCH for one member without reading or merging an existing role set */
522
+ export function memberRolesSet(
523
+ target: MemberReference,
524
+ roleIds: readonly string[],
525
+ ): GuildValidationResult<GuildMember> {
526
+ if (!record(target)) return inputValidationFailure("target", "type", "Member targets must be objects")
527
+ if (!positiveIdentifier(target.guildId))
528
+ return inputValidationFailure(
529
+ "target.guildId",
530
+ "format",
531
+ "Guild IDs must be decimal strings from 1 through 9,223,372,036,854,775,807",
532
+ )
533
+ if (!positiveIdentifier(target.userId))
534
+ return inputValidationFailure(
535
+ "target.userId",
536
+ "format",
537
+ "User IDs must be decimal strings from 1 through 9,223,372,036,854,775,807",
538
+ )
539
+ if (!Array.isArray(roleIds)) return inputValidationFailure("roleIds", "type", "Role IDs must be an array")
540
+ const count = roleIds.length
541
+ if (count > 250) return inputValidationFailure("roleIds", "length", "A member role set may contain at most 250 IDs")
542
+ // oxlint-disable-next-line unicorn/no-new-array -- preallocates the counted length once, and the loop below assigns every index
543
+ const roles = new Array<string>(count)
544
+ for (let index = 0; index < count; index++) roles[index] = roleIds[index]
545
+ if (!roles.every(positiveIdentifier))
546
+ return inputValidationFailure(
547
+ "roleIds[]",
548
+ "format",
549
+ "Role IDs must be decimal strings from 1 through 9,223,372,036,854,775,807",
550
+ )
551
+ if (new Set(roles).size !== roles.length)
552
+ return inputValidationFailure("roleIds", "unique", "Role IDs must be unique")
553
+ if (roles.some((roleId) => roleId === target.guildId))
554
+ return inputValidationFailure(
555
+ "roleIds[]",
556
+ "relationship",
557
+ "Role IDs must not include the community's default role, whose ID equals the guild ID",
558
+ )
559
+ const { guildId, userId } = target
560
+ return {
561
+ guildId,
562
+ bucket: "guild:member:roles:set",
563
+ audited: true,
564
+ cache: { selection: { kind: "members", guildId, id: userId }, mutation: true },
565
+ path: `/guilds/${guildId}/members/${userId}`,
566
+ method: "PATCH",
567
+ status: 200,
568
+ json: JSON.stringify({ roles }),
569
+ decode: (value) => {
570
+ const member = decodeMember(value, guildId)
571
+ return member?.userId === userId ? member : undefined
572
+ },
573
+ }
574
+ }
575
+
576
+ export function memberPage(guildId: string, query?: MemberQuery): GuildValidationResult<readonly GuildMember[]> {
577
+ const input = query === undefined ? {} : query
578
+ if (!identifier(guildId)) return inputValidationFailure("guildId", "format", "Guild IDs must be decimal strings")
579
+ if (!record(input)) return inputValidationFailure("query", "type", "Member query must be an object")
580
+ const unsupported = unsupportedKeyFailure(input, ["limit", "after"], "query", "the member query")
581
+ if (unsupported) return unsupported
582
+ const limit = input.limit === undefined ? 100 : input.limit
583
+ if (typeof limit !== "number" || !Number.isInteger(limit) || limit < 1 || limit > 1000)
584
+ return inputValidationFailure("query.limit", "range", "Member limit must be an integer from 1 through 1,000")
585
+ if (input.after !== undefined && !identifier(input.after))
586
+ return inputValidationFailure("query.after", "format", "Member cursor must be a decimal user ID string")
587
+ const after = input.after as string | undefined
588
+ const params = new URLSearchParams({ limit: String(limit) })
589
+ if (after !== undefined) params.set("after", after)
590
+ return {
591
+ guildId,
592
+ bucket: "guild:members",
593
+ path: `/guilds/${guildId}/members?${params}`,
594
+ cache: { selection: { kind: "members", guildId } },
595
+ method: "GET",
596
+ status: 200,
597
+ decode: (value) => {
598
+ if (!Array.isArray(value) || value.length > limit) return undefined
599
+ const members: GuildMember[] = []
600
+ let previous = after === undefined ? undefined : BigInt(after)
601
+ for (const item of value) {
602
+ const member = decodeMember(item, guildId)
603
+ if (!member) return undefined
604
+ if (previous !== undefined && BigInt(member.userId) <= previous) return rejectCheck("order")
605
+ previous = BigInt(member.userId)
606
+ members.push(member)
607
+ }
608
+ return Object.freeze(members)
609
+ },
610
+ }
611
+ }
612
+
613
+ export function memberRole(target: MemberReference, roleId: string, add: boolean): GuildValidationResult<void> {
614
+ if (!record(target)) return inputValidationFailure("target", "type", "Member targets must be objects")
615
+ if (!identifier(target.guildId))
616
+ return inputValidationFailure("target.guildId", "format", "Guild IDs must be decimal strings")
617
+ if (!identifier(target.userId))
618
+ return inputValidationFailure("target.userId", "format", "User IDs must be decimal strings")
619
+ if (!identifier(roleId)) return inputValidationFailure("roleId", "format", "Role IDs must be decimal strings")
620
+ if (roleId === target.guildId)
621
+ return inputValidationFailure(
622
+ "roleId",
623
+ "relationship",
624
+ "The community's default role, whose ID equals the guild ID, cannot be assigned explicitly",
625
+ )
626
+ const { guildId, userId } = target
627
+ return {
628
+ guildId,
629
+ bucket: add ? "guild:member:role:add" : "guild:member:role:remove",
630
+ audited: true,
631
+ path: `/guilds/${guildId}/members/${userId}/roles/${roleId}`,
632
+ cache: { selection: { kind: "members", guildId, id: userId }, mutation: true },
633
+ method: add ? "PUT" : "DELETE",
634
+ status: 204,
635
+ decode: () => undefined,
636
+ }
637
+ }
638
+
639
+ const maxUnsignedPermission = 18_446_744_073_709_551_615n
640
+ const maxWritablePermission = 9_223_372_036_854_775_807n
641
+ const unsignedPermission = (value: unknown): value is bigint =>
642
+ typeof value === "bigint" && value >= 0n && value <= maxUnsignedPermission
643
+ const writablePermission = (value: unknown): value is bigint =>
644
+ typeof value === "bigint" && value >= 0n && value <= maxWritablePermission
645
+
646
+ function decodeRole(value: unknown, guildId: string): GuildRole | undefined {
647
+ if (
648
+ !record(value) ||
649
+ !identifier(value.id) ||
650
+ typeof value.name !== "string" ||
651
+ !nonNegativeInt32(value.color) ||
652
+ !nonNegativeInt32(value.position) ||
653
+ typeof value.permissions !== "string" ||
654
+ !/^(0|[1-9][0-9]{0,19})$/.test(value.permissions) ||
655
+ !unsignedPermission(BigInt(value.permissions)) ||
656
+ typeof value.hoist !== "boolean" ||
657
+ typeof value.mentionable !== "boolean" ||
658
+ (value.hoist_position !== undefined && value.hoist_position !== null && !int32(value.hoist_position)) ||
659
+ !nullableText(value.unicode_emoji)
660
+ )
661
+ return undefined
662
+ return Object.freeze({
663
+ guildId,
664
+ id: value.id,
665
+ name: value.name,
666
+ color: value.color,
667
+ position: value.position,
668
+ permissions: BigInt(value.permissions),
669
+ hoist: value.hoist,
670
+ mentionable: value.mentionable,
671
+ ...(value.hoist_position === undefined ? {} : { hoistPosition: value.hoist_position as number | null }),
672
+ ...(value.unicode_emoji === undefined ? {} : { unicodeEmoji: value.unicode_emoji as string | null }),
673
+ })
674
+ }
675
+
676
+ export function decodeRoles(value: unknown, guildId: string): readonly GuildRole[] | undefined {
677
+ if (!Array.isArray(value)) return undefined
678
+ const roles: GuildRole[] = []
679
+ const ids = new Set<string>()
680
+ for (const item of value) {
681
+ const role = decodeRole(item, guildId)
682
+ if (!role || ids.has(role.id)) return undefined
683
+ ids.add(role.id)
684
+ roles.push(role)
685
+ }
686
+ return Object.freeze(roles)
687
+ }
688
+
689
+ export function roleList(guildId: string): GuildValidationResult<readonly GuildRole[]> {
690
+ if (!identifier(guildId)) return inputValidationFailure("guildId", "format", "Guild IDs must be decimal strings")
691
+ return {
692
+ guildId,
693
+ bucket: "guild:role:list",
694
+ cache: { selection: { kind: "roles", guildId }, replace: true },
695
+ path: `/guilds/${guildId}/roles`,
696
+ method: "GET",
697
+ status: 200,
698
+ decode: (value) => decodeRoles(value, guildId),
699
+ }
700
+ }
701
+
702
+ function roleBody(input: RoleCreate | RoleEdit, create: boolean): string | InputValidationFailure {
703
+ if (!record(input)) return inputValidationFailure("input", "type", "Role input must be an object")
704
+ const keys = create
705
+ ? ["name", "color", "permissions"]
706
+ : ["name", "color", "permissions", "hoist", "hoistPosition", "mentionable"]
707
+ const unsupported = unsupportedKeyFailure(input, keys, "input", "the role input")
708
+ if (unsupported) return unsupported
709
+ const { name, color, permissions, hoist, hoistPosition, mentionable } = input
710
+ if (create && name === undefined) return inputValidationFailure("name", "required", "Role name is required")
711
+ if (name !== undefined && !text(name, 1, 100))
712
+ return inputValidationFailure(
713
+ "name",
714
+ "length",
715
+ "Role name must contain 1 through 100 UTF-16 code units after Fluxer's normalization",
716
+ )
717
+ if (color !== undefined && (!int32(color) || color < 0 || color > 0xffffff))
718
+ return inputValidationFailure("color", "range", "Role color must be an integer from 0 through 16,777,215")
719
+ if (permissions !== undefined && !writablePermission(permissions))
720
+ return inputValidationFailure(
721
+ "permissions",
722
+ "range",
723
+ "Role permissions must be a bigint from 0 through 9,223,372,036,854,775,807",
724
+ )
725
+ if (hoist !== undefined && typeof hoist !== "boolean")
726
+ return inputValidationFailure("hoist", "type", "Role hoist must be a boolean")
727
+ if (mentionable !== undefined && typeof mentionable !== "boolean")
728
+ return inputValidationFailure("mentionable", "type", "Role mentionable must be a boolean")
729
+ if (hoistPosition !== undefined && hoistPosition !== null && !int32(hoistPosition))
730
+ return inputValidationFailure(
731
+ "hoistPosition",
732
+ "range",
733
+ "Role hoist position must be null or an integer from -2,147,483,648 through 2,147,483,647",
734
+ )
735
+ const body = {
736
+ name,
737
+ color: create ? (color ?? 0) : color,
738
+ permissions: create ? (permissions ?? 0n).toString() : permissions?.toString(),
739
+ hoist,
740
+ hoist_position: hoistPosition,
741
+ mentionable,
742
+ }
743
+ const json = JSON.stringify(body)
744
+ return json === "{}" ? inputValidationFailure("input", "required", "Role edit must contain a change") : json
745
+ }
746
+
747
+ export function roleCreate(guildId: string, input: RoleCreate): GuildValidationResult<GuildRole> {
748
+ if (!identifier(guildId)) return inputValidationFailure("guildId", "format", "Guild IDs must be decimal strings")
749
+ const json = roleBody(input, true)
750
+ if (json instanceof InputValidationFailure) return json
751
+ return {
752
+ guildId,
753
+ bucket: "guild:role:create",
754
+ audited: true,
755
+ cache: { selection: { kind: "roles", guildId }, mutation: true },
756
+ path: `/guilds/${guildId}/roles`,
757
+ method: "POST",
758
+ status: 200,
759
+ json,
760
+ ...(input.permissions === undefined ? {} : { features: ["view_channel_members_permission"] }),
761
+ decode: (value) => {
762
+ const role = decodeRole(value, guildId)
763
+ return role?.id !== guildId ? role : undefined
764
+ },
765
+ }
766
+ }
767
+
768
+ export function roleEdit(target: RoleReference, input: RoleEdit): GuildValidationResult<GuildRole> {
769
+ if (!record(target)) return inputValidationFailure("target", "type", "Role targets must be objects")
770
+ if (!identifier(target.guildId))
771
+ return inputValidationFailure("target.guildId", "format", "Guild IDs must be decimal strings")
772
+ if (!identifier(target.id)) return inputValidationFailure("target.id", "format", "Role IDs must be decimal strings")
773
+ const { guildId, id } = target
774
+ const json = roleBody(input, false)
775
+ if (json instanceof InputValidationFailure) return json
776
+ if (
777
+ id === guildId &&
778
+ (input.name !== undefined ||
779
+ input.hoist !== undefined ||
780
+ input.hoistPosition !== undefined ||
781
+ input.mentionable !== undefined)
782
+ )
783
+ return inputValidationFailure(
784
+ "input",
785
+ "relationship",
786
+ "The community's default role supports only color and permissions edits",
787
+ )
788
+ return {
789
+ guildId,
790
+ bucket: "guild:role:update",
791
+ audited: true,
792
+ cache: {
793
+ selection: { kind: "roles", guildId, ...(input.hoistPosition === undefined ? { id } : {}) },
794
+ mutation: true,
795
+ },
796
+ path: `/guilds/${guildId}/roles/${id}`,
797
+ method: "PATCH",
798
+ status: 200,
799
+ json,
800
+ ...(input.permissions === undefined ? {} : { features: ["view_channel_members_permission"] }),
801
+ decode: (value) => {
802
+ const role = decodeRole(value, guildId)
803
+ return role?.id === id ? role : undefined
804
+ },
805
+ }
806
+ }
807
+
808
+ export function roleDelete(target: RoleReference): GuildValidationResult<void> {
809
+ if (!record(target)) return inputValidationFailure("target", "type", "Role targets must be objects")
810
+ if (!identifier(target.guildId))
811
+ return inputValidationFailure("target.guildId", "format", "Guild IDs must be decimal strings")
812
+ if (!identifier(target.id)) return inputValidationFailure("target.id", "format", "Role IDs must be decimal strings")
813
+ if (target.id === target.guildId)
814
+ return inputValidationFailure("target.id", "relationship", "The community's default role cannot be deleted")
815
+ return {
816
+ guildId: target.guildId,
817
+ bucket: "guild:role:delete",
818
+ audited: true,
819
+ cache: { selection: { kind: "roles", guildId: target.guildId }, mutation: true, members: true },
820
+ path: `/guilds/${target.guildId}/roles/${target.id}`,
821
+ method: "DELETE",
822
+ status: 204,
823
+ decode: () => undefined,
824
+ }
825
+ }
826
+
827
+ export function roleReorder(guildId: string, positions: readonly RolePosition[]): GuildValidationResult<void> {
828
+ if (!identifier(guildId)) return inputValidationFailure("guildId", "format", "Guild IDs must be decimal strings")
829
+ if (!Array.isArray(positions)) return inputValidationFailure("positions", "type", "Role positions must be an array")
830
+ if (positions.length === 0)
831
+ return inputValidationFailure("positions", "length", "Role positions must contain at least one entry")
832
+ const ids = new Set<string>()
833
+ const updates: RolePosition[] = []
834
+ let bytes = 2
835
+ for (const item of positions) {
836
+ if (!record(item)) return inputValidationFailure("positions[]", "type", "Role position entries must be objects")
837
+ const unsupported = unsupportedKeyFailure(item, ["id", "position"], "positions[]", "a role position entry")
838
+ if (unsupported) return unsupported
839
+ if (!identifier(item.id))
840
+ return inputValidationFailure("positions[].id", "format", "Role IDs must be decimal strings")
841
+ if (item.id === guildId)
842
+ return inputValidationFailure(
843
+ "positions[].id",
844
+ "relationship",
845
+ "The community's default role cannot be reordered",
846
+ )
847
+ if (ids.has(item.id))
848
+ return inputValidationFailure("positions[].id", "unique", "Role position IDs must be unique")
849
+ if (typeof item.position !== "number" || !Number.isSafeInteger(item.position) || item.position < 0)
850
+ return inputValidationFailure(
851
+ "positions[].position",
852
+ "range",
853
+ "Role positions must be nonnegative safe integers",
854
+ )
855
+ const copy = { id: item.id, position: item.position }
856
+ bytes += Buffer.byteLength(JSON.stringify(copy)) + (updates.length ? 1 : 0)
857
+ if (bytes > 4_194_304)
858
+ return inputValidationFailure("positions", "size", "Role positions must not exceed 4,194,304 encoded bytes")
859
+ ids.add(item.id)
860
+ updates.push(copy)
861
+ }
862
+ return {
863
+ guildId,
864
+ bucket: "guild:role:positions",
865
+ audited: true,
866
+ cache: { selection: { kind: "roles", guildId }, mutation: true },
867
+ path: `/guilds/${guildId}/roles`,
868
+ method: "PATCH",
869
+ status: 204,
870
+ json: JSON.stringify(updates),
871
+ decode: () => undefined,
872
+ }
873
+ }
874
+
875
+ export function roleSetHoistPositions(
876
+ guildId: string,
877
+ positions: readonly RoleHoistPosition[],
878
+ ): GuildValidationResult<void> {
879
+ if (!identifier(guildId)) return inputValidationFailure("guildId", "format", "Guild IDs must be decimal strings")
880
+ if (!Array.isArray(positions))
881
+ return inputValidationFailure("positions", "type", "Role hoist positions must be an array")
882
+ if (positions.length === 0)
883
+ return inputValidationFailure("positions", "length", "Role hoist positions must contain at least one entry")
884
+ const ids = new Set<string>()
885
+ const updates: { id: string; hoist_position: number }[] = []
886
+ let bytes = 2
887
+ for (const item of positions) {
888
+ if (!record(item))
889
+ return inputValidationFailure("positions[]", "type", "Role hoist position entries must be objects")
890
+ const unsupported = unsupportedKeyFailure(
891
+ item,
892
+ ["id", "hoistPosition"],
893
+ "positions[]",
894
+ "a role hoist position entry",
895
+ )
896
+ if (unsupported) return unsupported
897
+ if (!identifier(item.id))
898
+ return inputValidationFailure("positions[].id", "format", "Role IDs must be decimal strings")
899
+ if (item.id === guildId)
900
+ return inputValidationFailure(
901
+ "positions[].id",
902
+ "relationship",
903
+ "The community's default role cannot be hoisted",
904
+ )
905
+ if (ids.has(item.id))
906
+ return inputValidationFailure("positions[].id", "unique", "Role hoist position IDs must be unique")
907
+ if (!int32(item.hoistPosition))
908
+ return inputValidationFailure(
909
+ "positions[].hoistPosition",
910
+ "range",
911
+ "Role hoist positions must be integers from -2,147,483,648 through 2,147,483,647",
912
+ )
913
+ const copy = { id: item.id, hoist_position: item.hoistPosition }
914
+ bytes += Buffer.byteLength(JSON.stringify(copy)) + (updates.length ? 1 : 0)
915
+ if (bytes > 4_194_304)
916
+ return inputValidationFailure(
917
+ "positions",
918
+ "size",
919
+ "Role hoist positions must not exceed 4,194,304 encoded bytes",
920
+ )
921
+ ids.add(item.id)
922
+ updates.push(copy)
923
+ }
924
+ return {
925
+ guildId,
926
+ bucket: "guild:role:hoist-positions",
927
+ audited: true,
928
+ cache: { selection: { kind: "roles", guildId }, mutation: true },
929
+ path: `/guilds/${guildId}/roles/hoist-positions`,
930
+ method: "PATCH",
931
+ status: 204,
932
+ json: JSON.stringify(updates),
933
+ decode: () => undefined,
934
+ }
935
+ }
936
+
937
+ export function roleResetHoistPositions(guildId: string): GuildValidationResult<void> {
938
+ if (!identifier(guildId)) return inputValidationFailure("guildId", "format", "Guild IDs must be decimal strings")
939
+ return {
940
+ guildId,
941
+ bucket: "guild:role:hoist-positions",
942
+ audited: true,
943
+ cache: { selection: { kind: "roles", guildId }, mutation: true },
944
+ path: `/guilds/${guildId}/roles/hoist-positions`,
945
+ method: "DELETE",
946
+ status: 204,
947
+ decode: () => undefined,
948
+ }
949
+ }