seyfert 4.5.0 → 4.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/lib/api/Routes/guilds.d.ts +12 -1
  2. package/lib/api/Routes/index.d.ts +3 -1
  3. package/lib/api/Routes/invites.d.ts +1 -1
  4. package/lib/api/Routes/oauth2.d.ts +11 -0
  5. package/lib/api/Routes/oauth2.js +2 -0
  6. package/lib/api/Routes/skus.d.ts +11 -4
  7. package/lib/api/Routes/users.d.ts +2 -1
  8. package/lib/api/Routes/voice.d.ts +4 -0
  9. package/lib/api/Routes/webhooks.d.ts +1 -1
  10. package/lib/api/api.d.ts +15 -5
  11. package/lib/api/api.js +243 -114
  12. package/lib/api/bucket.js +13 -7
  13. package/lib/api/shared.d.ts +3 -1
  14. package/lib/api/utils/constants.d.ts +1 -1
  15. package/lib/api/utils/constants.js +1 -1
  16. package/lib/builders/Attachment.d.ts +6 -1
  17. package/lib/builders/Attachment.js +13 -9
  18. package/lib/builders/CheckboxGroup.js +1 -1
  19. package/lib/builders/FileUpload.d.ts +8 -1
  20. package/lib/builders/FileUpload.js +9 -0
  21. package/lib/builders/RadioGroup.js +1 -1
  22. package/lib/client/base.d.ts +3 -3
  23. package/lib/client/collectors.d.ts +10 -8
  24. package/lib/client/transformers.d.ts +5 -0
  25. package/lib/client/workerclient.d.ts +8 -1
  26. package/lib/client/workerclient.js +28 -9
  27. package/lib/commands/applications/chat.d.ts +6 -4
  28. package/lib/commands/applications/options.d.ts +6 -4
  29. package/lib/commands/applications/shared.d.ts +2 -2
  30. package/lib/commands/handle.d.ts +7 -3
  31. package/lib/commands/handle.js +36 -11
  32. package/lib/commands/handler.js +11 -0
  33. package/lib/commands/optionresolver.d.ts +6 -7
  34. package/lib/common/it/error.d.ts +13 -0
  35. package/lib/common/it/error.js +15 -1
  36. package/lib/common/it/logger.js +12 -9
  37. package/lib/common/shorters/application.d.ts +1 -1
  38. package/lib/common/shorters/application.js +1 -1
  39. package/lib/common/shorters/bans.js +1 -1
  40. package/lib/common/shorters/guilds.js +5 -1
  41. package/lib/common/shorters/interaction.js +7 -4
  42. package/lib/common/shorters/invites.d.ts +5 -0
  43. package/lib/common/shorters/members.js +2 -1
  44. package/lib/common/shorters/messages.js +2 -2
  45. package/lib/common/shorters/threads.js +1 -1
  46. package/lib/common/shorters/webhook.js +3 -3
  47. package/lib/common/types/util.d.ts +7 -0
  48. package/lib/components/componentcommand.js +2 -2
  49. package/lib/components/customId.d.ts +3 -0
  50. package/lib/components/customId.js +11 -0
  51. package/lib/components/handler.js +2 -3
  52. package/lib/components/modalcommand.js +2 -2
  53. package/lib/events/hooks/invite.d.ts +1 -0
  54. package/lib/events/hooks/presence.d.ts +1 -0
  55. package/lib/events/hooks/thread.d.ts +1 -0
  56. package/lib/structures/AnonymousGuild.d.ts +1 -1
  57. package/lib/structures/AnonymousGuild.js +1 -1
  58. package/lib/structures/Guild.d.ts +3 -0
  59. package/lib/structures/GuildMember.d.ts +2 -2
  60. package/lib/structures/GuildMember.js +22 -4
  61. package/lib/structures/GuildPreview.d.ts +1 -1
  62. package/lib/structures/GuildPreview.js +1 -1
  63. package/lib/structures/GuildRole.d.ts +13 -0
  64. package/lib/structures/GuildRole.js +21 -0
  65. package/lib/structures/GuildTemplate.js +1 -1
  66. package/lib/structures/Interaction.d.ts +7 -7
  67. package/lib/structures/Interaction.js +35 -21
  68. package/lib/structures/Message.d.ts +2 -1
  69. package/lib/structures/channels.d.ts +29 -16
  70. package/lib/structures/channels.js +59 -19
  71. package/lib/structures/extra/BaseGuild.d.ts +4 -4
  72. package/lib/structures/extra/BaseGuild.js +4 -4
  73. package/lib/types/gateway.d.ts +243 -239
  74. package/lib/types/index.d.ts +2 -2
  75. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/attachment.d.ts +5 -2
  76. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/shared.d.ts +2 -2
  77. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/shared.js +1 -1
  78. package/lib/types/payloads/_interactions/_applicationCommands/chatInput.d.ts +7 -7
  79. package/lib/types/payloads/_interactions/_applicationCommands/contextMenu.d.ts +13 -13
  80. package/lib/types/payloads/_interactions/_applicationCommands/permissions.d.ts +4 -4
  81. package/lib/types/payloads/_interactions/_applicationCommands/permissions.js +2 -2
  82. package/lib/types/payloads/_interactions/applicationCommands.d.ts +10 -10
  83. package/lib/types/payloads/_interactions/applicationCommands.js +4 -4
  84. package/lib/types/payloads/_interactions/autocomplete.d.ts +2 -2
  85. package/lib/types/payloads/_interactions/base.d.ts +13 -7
  86. package/lib/types/payloads/_interactions/modalSubmit.d.ts +4 -4
  87. package/lib/types/payloads/_interactions/responses.d.ts +10 -10
  88. package/lib/types/payloads/_interactions/responses.js +2 -2
  89. package/lib/types/payloads/application.d.ts +21 -15
  90. package/lib/types/payloads/application.js +7 -7
  91. package/lib/types/payloads/auditLog.d.ts +22 -17
  92. package/lib/types/payloads/auditLog.js +7 -2
  93. package/lib/types/payloads/autoModeration.d.ts +11 -11
  94. package/lib/types/payloads/autoModeration.js +5 -5
  95. package/lib/types/payloads/channel.d.ts +87 -78
  96. package/lib/types/payloads/channel.js +16 -11
  97. package/lib/types/payloads/components.d.ts +41 -31
  98. package/lib/types/payloads/components.js +9 -5
  99. package/lib/types/payloads/emoji.d.ts +2 -2
  100. package/lib/types/payloads/emoji.js +1 -1
  101. package/lib/types/payloads/gateway.d.ts +33 -29
  102. package/lib/types/payloads/gateway.js +5 -5
  103. package/lib/types/payloads/guild.d.ts +68 -68
  104. package/lib/types/payloads/guild.js +14 -14
  105. package/lib/types/payloads/guildScheduledEvent.d.ts +11 -11
  106. package/lib/types/payloads/guildScheduledEvent.js +3 -3
  107. package/lib/types/payloads/index.d.ts +2 -2
  108. package/lib/types/payloads/interactions.d.ts +3 -3
  109. package/lib/types/payloads/invite.d.ts +11 -11
  110. package/lib/types/payloads/invite.js +3 -3
  111. package/lib/types/payloads/monetization.d.ts +4 -4
  112. package/lib/types/payloads/monetization.js +2 -2
  113. package/lib/types/payloads/oauth2.d.ts +21 -17
  114. package/lib/types/payloads/oauth2.js +21 -17
  115. package/lib/types/payloads/permissions.d.ts +5 -5
  116. package/lib/types/payloads/permissions.js +2 -2
  117. package/lib/types/payloads/poll.d.ts +7 -7
  118. package/lib/types/payloads/poll.js +2 -2
  119. package/lib/types/payloads/soundboard.d.ts +2 -2
  120. package/lib/types/payloads/soundboard.js +1 -1
  121. package/lib/types/payloads/stageInstance.d.ts +5 -5
  122. package/lib/types/payloads/stageInstance.js +1 -1
  123. package/lib/types/payloads/sticker.d.ts +8 -8
  124. package/lib/types/payloads/sticker.js +3 -3
  125. package/lib/types/payloads/teams.d.ts +8 -8
  126. package/lib/types/payloads/teams.js +3 -3
  127. package/lib/types/payloads/template.d.ts +3 -3
  128. package/lib/types/payloads/template.js +1 -1
  129. package/lib/types/payloads/user.d.ts +24 -22
  130. package/lib/types/payloads/user.js +7 -5
  131. package/lib/types/payloads/voice.d.ts +4 -4
  132. package/lib/types/payloads/voice.js +1 -1
  133. package/lib/types/payloads/webhokEvents.d.ts +5 -5
  134. package/lib/types/payloads/webhokEvents.js +2 -2
  135. package/lib/types/payloads/webhook.d.ts +4 -4
  136. package/lib/types/payloads/webhook.js +1 -1
  137. package/lib/types/rest/application.d.ts +14 -14
  138. package/lib/types/rest/auditLog.d.ts +1 -1
  139. package/lib/types/rest/autoModeration.d.ts +7 -7
  140. package/lib/types/rest/channel.d.ts +79 -74
  141. package/lib/types/rest/channel.js +1 -1
  142. package/lib/types/rest/emoji.d.ts +8 -8
  143. package/lib/types/rest/gateway.d.ts +2 -2
  144. package/lib/types/rest/guild.d.ts +98 -98
  145. package/lib/types/rest/guild.js +5 -5
  146. package/lib/types/rest/guildScheduledEvent.d.ts +11 -11
  147. package/lib/types/rest/index.d.ts +34 -3
  148. package/lib/types/rest/index.js +33 -2
  149. package/lib/types/rest/interactions.d.ts +48 -48
  150. package/lib/types/rest/invite.d.ts +5 -5
  151. package/lib/types/rest/monetization.d.ts +9 -9
  152. package/lib/types/rest/monetization.js +1 -1
  153. package/lib/types/rest/oauth2.d.ts +22 -18
  154. package/lib/types/rest/poll.d.ts +4 -4
  155. package/lib/types/rest/soundboard.d.ts +8 -8
  156. package/lib/types/rest/stageInstance.d.ts +6 -6
  157. package/lib/types/rest/sticker.d.ts +10 -10
  158. package/lib/types/rest/template.d.ts +11 -11
  159. package/lib/types/rest/user.d.ts +18 -14
  160. package/lib/types/rest/voice.d.ts +5 -5
  161. package/lib/types/rest/webhook.d.ts +38 -38
  162. package/lib/types/utils/index.d.ts +19 -19
  163. package/lib/types/utils/index.js +19 -19
  164. package/lib/websocket/SharedTypes.d.ts +2 -2
  165. package/lib/websocket/constants/index.js +2 -2
  166. package/lib/websocket/discord/heartbeater.d.ts +1 -0
  167. package/lib/websocket/discord/heartbeater.js +8 -0
  168. package/lib/websocket/discord/shard.d.ts +19 -10
  169. package/lib/websocket/discord/shard.js +254 -121
  170. package/lib/websocket/discord/sharder.d.ts +2 -2
  171. package/lib/websocket/discord/sharder.js +1 -1
  172. package/lib/websocket/discord/shared.d.ts +7 -2
  173. package/lib/websocket/discord/workermanager.d.ts +3 -1
  174. package/lib/websocket/discord/workermanager.js +31 -24
  175. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  import type { Identify, OmitInsert } from '../../common';
2
- import type { APIThreadChannel, RESTDeleteAPIAutoModerationRuleResult, RESTDeleteAPIGuildBanResult, RESTDeleteAPIGuildEmojiResult, RESTDeleteAPIGuildIntegrationResult, RESTDeleteAPIGuildMemberResult, RESTDeleteAPIGuildMemberRoleResult, RESTDeleteAPIGuildResult, RESTDeleteAPIGuildRoleResult, RESTDeleteAPIGuildScheduledEventResult, RESTDeleteAPIGuildStickerResult, RESTDeleteAPIGuildTemplateResult, RESTGetAPIAuditLogQuery, RESTGetAPIAuditLogResult, RESTGetAPIAutoModerationRuleResult, RESTGetAPIAutoModerationRulesResult, RESTGetAPIGuildBanResult, RESTGetAPIGuildBansQuery, RESTGetAPIGuildBansResult, RESTGetAPIGuildChannelsResult, RESTGetAPIGuildEmojiResult, RESTGetAPIGuildEmojisResult, RESTGetAPIGuildIntegrationsResult, RESTGetAPIGuildInvitesResult, RESTGetAPIGuildMemberResult, RESTGetAPIGuildMembersQuery, RESTGetAPIGuildMembersResult, RESTGetAPIGuildMembersSearchQuery, RESTGetAPIGuildMembersSearchResult, RESTGetAPIGuildMessagesSearchQuery, RESTGetAPIGuildMessagesSearchResult, RESTGetAPIGuildPreviewResult, RESTGetAPIGuildPruneCountQuery, RESTGetAPIGuildPruneCountResult, RESTGetAPIGuildQuery, RESTGetAPIGuildResult, RESTGetAPIGuildRoleMemberCountsResult, RESTGetAPIGuildRoleResult, RESTGetAPIGuildRolesResult, RESTGetAPIGuildScheduledEventQuery, RESTGetAPIGuildScheduledEventResult, RESTGetAPIGuildScheduledEventsQuery, RESTGetAPIGuildScheduledEventsResult, RESTGetAPIGuildScheduledEventUsersQuery, RESTGetAPIGuildScheduledEventUsersResult, RESTGetAPIGuildSoundboardSoundsResult, RESTGetAPIGuildStickerResult, RESTGetAPIGuildStickersResult, RESTGetAPIGuildTemplatesResult, RESTGetAPIGuildThreadsResult, RESTGetAPIGuildVanityUrlResult, RESTGetAPIGuildVoiceRegionsResult, RESTGetAPIGuildVoiceStateCurrentMemberResult, RESTGetAPIGuildVoiceStateUserResult, RESTGetAPIGuildWebhooksResult, RESTGetAPIGuildWelcomeScreenResult, RESTGetAPIGuildWidgetImageQuery, RESTGetAPIGuildWidgetImageResult, RESTGetAPIGuildWidgetJSONResult, RESTGetAPIGuildWidgetSettingsResult, RESTGetAPITemplateResult, RESTPatchAPIAutoModerationRuleJSONBody, RESTPatchAPIAutoModerationRuleResult, RESTPatchAPICurrentGuildMemberJSONBody, RESTPatchAPIGuildChannelPositionsJSONBody, RESTPatchAPIGuildChannelPositionsResult, RESTPatchAPIGuildEmojiJSONBody, RESTPatchAPIGuildEmojiResult, RESTPatchAPIGuildJSONBody, RESTPatchAPIGuildMemberJSONBody, RESTPatchAPIGuildMemberResult, RESTPatchAPIGuildResult, RESTPatchAPIGuildRoleJSONBody, RESTPatchAPIGuildRolePositionsJSONBody, RESTPatchAPIGuildRolePositionsResult, RESTPatchAPIGuildRoleResult, RESTPatchAPIGuildScheduledEventJSONBody, RESTPatchAPIGuildScheduledEventResult, RESTPatchAPIGuildSoundboardSoundJSONBody, RESTPatchAPIGuildSoundboardSoundResult, RESTPatchAPIGuildStickerJSONBody, RESTPatchAPIGuildStickerResult, RESTPatchAPIGuildTemplateJSONBody, RESTPatchAPIGuildTemplateResult, RESTPatchAPIGuildVoiceStateCurrentMemberJSONBody, RESTPatchAPIGuildVoiceStateCurrentMemberResult, RESTPatchAPIGuildVoiceStateUserJSONBody, RESTPatchAPIGuildVoiceStateUserResult, RESTPatchAPIGuildWelcomeScreenJSONBody, RESTPatchAPIGuildWelcomeScreenResult, RESTPatchAPIGuildWidgetSettingsJSONBody, RESTPatchAPIGuildWidgetSettingsResult, RESTPostAPIAutoModerationRuleJSONBody, RESTPostAPIAutoModerationRuleResult, RESTPostAPIGuildBulkBanJSONBody, RESTPostAPIGuildBulkBanResult, RESTPostAPIGuildChannelJSONBody, RESTPostAPIGuildChannelResult, RESTPostAPIGuildEmojiJSONBody, RESTPostAPIGuildEmojiResult, RESTPostAPIGuildPruneJSONBody, RESTPostAPIGuildPruneResult, RESTPostAPIGuildRoleJSONBody, RESTPostAPIGuildRoleResult, RESTPostAPIGuildScheduledEventJSONBody, RESTPostAPIGuildScheduledEventResult, RESTPostAPIGuildSoundboardSoundJSONBody, RESTPostAPIGuildSoundboardSoundResult, RESTPostAPIGuildStickerFormDataBody, RESTPostAPIGuildStickerResult, RESTPostAPIGuildsMFAJSONBody, RESTPostAPIGuildsMFAResult, RESTPostAPIGuildTemplatesJSONBody, RESTPostAPIGuildTemplatesResult, RESTPostAPITemplateCreateGuildJSONBody, RESTPostAPITemplateCreateGuildResult, RESTPutAPIGuildBanJSONBody, RESTPutAPIGuildBanResult, RESTPutAPIGuildMemberJSONBody, RESTPutAPIGuildMemberResult, RESTPutAPIGuildMemberRoleResult, RESTPutAPIGuildTemplateSyncResult } from '../../types';
2
+ import type { APIThreadChannel, RESTDeleteAPIAutoModerationRuleResult, RESTDeleteAPIGuildBanResult, RESTDeleteAPIGuildEmojiResult, RESTDeleteAPIGuildIntegrationResult, RESTDeleteAPIGuildMemberResult, RESTDeleteAPIGuildMemberRoleResult, RESTDeleteAPIGuildResult, RESTDeleteAPIGuildRoleResult, RESTDeleteAPIGuildScheduledEventResult, RESTDeleteAPIGuildStickerResult, RESTDeleteAPIGuildTemplateResult, RESTGetAPIAuditLogQuery, RESTGetAPIAuditLogResult, RESTGetAPIAutoModerationRuleResult, RESTGetAPIAutoModerationRulesResult, RESTGetAPIGuildBanResult, RESTGetAPIGuildBansQuery, RESTGetAPIGuildBansResult, RESTGetAPIGuildChannelsResult, RESTGetAPIGuildEmojiResult, RESTGetAPIGuildEmojisResult, RESTGetAPIGuildIntegrationsResult, RESTGetAPIGuildInvitesResult, RESTGetAPIGuildMemberResult, RESTGetAPIGuildMembersQuery, RESTGetAPIGuildMembersResult, RESTGetAPIGuildMembersSearchQuery, RESTGetAPIGuildMembersSearchResult, RESTGetAPIGuildMessagesSearchQuery, RESTGetAPIGuildMessagesSearchResult, RESTGetAPIGuildOnboardingResult, RESTGetAPIGuildPreviewResult, RESTGetAPIGuildPruneCountQuery, RESTGetAPIGuildPruneCountResult, RESTGetAPIGuildQuery, RESTGetAPIGuildResult, RESTGetAPIGuildRoleMemberCountsResult, RESTGetAPIGuildRoleResult, RESTGetAPIGuildRolesResult, RESTGetAPIGuildScheduledEventQuery, RESTGetAPIGuildScheduledEventResult, RESTGetAPIGuildScheduledEventsQuery, RESTGetAPIGuildScheduledEventsResult, RESTGetAPIGuildScheduledEventUsersQuery, RESTGetAPIGuildScheduledEventUsersResult, RESTGetAPIGuildSoundboardSoundsResult, RESTGetAPIGuildStickerResult, RESTGetAPIGuildStickersResult, RESTGetAPIGuildTemplatesResult, RESTGetAPIGuildThreadsResult, RESTGetAPIGuildVanityUrlResult, RESTGetAPIGuildVoiceRegionsResult, RESTGetAPIGuildVoiceStateCurrentMemberResult, RESTGetAPIGuildVoiceStateUserResult, RESTGetAPIGuildWebhooksResult, RESTGetAPIGuildWelcomeScreenResult, RESTGetAPIGuildWidgetImageQuery, RESTGetAPIGuildWidgetImageResult, RESTGetAPIGuildWidgetJSONResult, RESTGetAPIGuildWidgetSettingsResult, RESTGetAPITemplateResult, RESTPatchAPIAutoModerationRuleJSONBody, RESTPatchAPIAutoModerationRuleResult, RESTPatchAPICurrentGuildMemberJSONBody, RESTPatchAPIGuildChannelPositionsJSONBody, RESTPatchAPIGuildChannelPositionsResult, RESTPatchAPIGuildEmojiJSONBody, RESTPatchAPIGuildEmojiResult, RESTPatchAPIGuildJSONBody, RESTPatchAPIGuildMemberJSONBody, RESTPatchAPIGuildMemberResult, RESTPatchAPIGuildResult, RESTPatchAPIGuildRoleJSONBody, RESTPatchAPIGuildRolePositionsJSONBody, RESTPatchAPIGuildRolePositionsResult, RESTPatchAPIGuildRoleResult, RESTPatchAPIGuildScheduledEventJSONBody, RESTPatchAPIGuildScheduledEventResult, RESTPatchAPIGuildSoundboardSoundJSONBody, RESTPatchAPIGuildSoundboardSoundResult, RESTPatchAPIGuildStickerJSONBody, RESTPatchAPIGuildStickerResult, RESTPatchAPIGuildTemplateJSONBody, RESTPatchAPIGuildTemplateResult, RESTPatchAPIGuildVoiceStateCurrentMemberJSONBody, RESTPatchAPIGuildVoiceStateCurrentMemberResult, RESTPatchAPIGuildVoiceStateUserJSONBody, RESTPatchAPIGuildVoiceStateUserResult, RESTPatchAPIGuildWelcomeScreenJSONBody, RESTPatchAPIGuildWelcomeScreenResult, RESTPatchAPIGuildWidgetSettingsJSONBody, RESTPatchAPIGuildWidgetSettingsResult, RESTPostAPIAutoModerationRuleJSONBody, RESTPostAPIAutoModerationRuleResult, RESTPostAPIGuildBulkBanJSONBody, RESTPostAPIGuildBulkBanResult, RESTPostAPIGuildChannelJSONBody, RESTPostAPIGuildChannelResult, RESTPostAPIGuildEmojiJSONBody, RESTPostAPIGuildEmojiResult, RESTPostAPIGuildPruneJSONBody, RESTPostAPIGuildPruneResult, RESTPostAPIGuildRoleJSONBody, RESTPostAPIGuildRoleResult, RESTPostAPIGuildScheduledEventJSONBody, RESTPostAPIGuildScheduledEventResult, RESTPostAPIGuildSoundboardSoundJSONBody, RESTPostAPIGuildSoundboardSoundResult, RESTPostAPIGuildStickerFormDataBody, RESTPostAPIGuildStickerResult, RESTPostAPIGuildsMFAJSONBody, RESTPostAPIGuildsMFAResult, RESTPostAPIGuildTemplatesJSONBody, RESTPostAPIGuildTemplatesResult, RESTPostAPITemplateCreateGuildJSONBody, RESTPostAPITemplateCreateGuildResult, RESTPutAPIGuildBanJSONBody, RESTPutAPIGuildBanResult, RESTPutAPIGuildIncidentActionsJSONBody, RESTPutAPIGuildIncidentActionsResult, RESTPutAPIGuildMemberJSONBody, RESTPutAPIGuildMemberResult, RESTPutAPIGuildMemberRoleResult, RESTPutAPIGuildOnboardingJSONBody, RESTPutAPIGuildOnboardingResult, RESTPutAPIGuildTemplateSyncResult } from '../../types';
3
3
  import type { RestArguments, RestArgumentsNoBody } from '../api';
4
4
  import type { RawFile } from '../shared';
5
5
  export interface GuildRoutes {
@@ -89,9 +89,13 @@ export interface GuildRoutes {
89
89
  delete(args?: RestArgumentsNoBody): Promise<RESTDeleteAPIGuildBanResult>;
90
90
  };
91
91
  };
92
+ /** @deprecated Discord uses `bulk-ban`; this legacy path is retained for v4 compatibility. */
92
93
  'bulk-bans': {
93
94
  post(args: RestArguments<RESTPostAPIGuildBulkBanJSONBody>): Promise<RESTPostAPIGuildBulkBanResult>;
94
95
  };
96
+ 'bulk-ban': {
97
+ post(args: RestArguments<RESTPostAPIGuildBulkBanJSONBody>): Promise<RESTPostAPIGuildBulkBanResult>;
98
+ };
95
99
  mfa: {
96
100
  post(args: RestArguments<RESTPostAPIGuildsMFAJSONBody>): Promise<RESTPostAPIGuildsMFAResult>;
97
101
  };
@@ -130,6 +134,13 @@ export interface GuildRoutes {
130
134
  get(args?: RestArgumentsNoBody): Promise<RESTGetAPIGuildWelcomeScreenResult>;
131
135
  patch(args: RestArguments<RESTPatchAPIGuildWelcomeScreenJSONBody>): Promise<RESTPatchAPIGuildWelcomeScreenResult>;
132
136
  };
137
+ onboarding: {
138
+ get(args?: RestArgumentsNoBody): Promise<RESTGetAPIGuildOnboardingResult>;
139
+ put(args: RestArguments<RESTPutAPIGuildOnboardingJSONBody>): Promise<RESTPutAPIGuildOnboardingResult>;
140
+ };
141
+ 'incident-actions': {
142
+ put(args: RestArguments<RESTPutAPIGuildIncidentActionsJSONBody>): Promise<RESTPutAPIGuildIncidentActionsResult>;
143
+ };
133
144
  emojis: {
134
145
  get(args?: RestArgumentsNoBody): Promise<RESTGetAPIGuildEmojisResult>;
135
146
  post(args: RestArguments<RESTPostAPIGuildEmojiJSONBody>): Promise<RESTPostAPIGuildEmojiResult>;
@@ -4,6 +4,8 @@ import type { GatewayRoutes } from './gateway';
4
4
  import type { GuildRoutes } from './guilds';
5
5
  import type { InteractionRoutes } from './interactions';
6
6
  import type { InviteRoutes } from './invites';
7
+ import type { OAuth2Routes } from './oauth2';
8
+ import type { SKURoutes } from './skus';
7
9
  import type { SoundboardRoutes } from './soundboard';
8
10
  import type { StageInstanceRoutes } from './stage-instances';
9
11
  import type { StickerRoutes } from './stickers';
@@ -11,5 +13,5 @@ import type { UserRoutes } from './users';
11
13
  import type { VoiceRoutes } from './voice';
12
14
  import type { WebhookRoutes } from './webhooks';
13
15
  export * from './cdn';
14
- export interface APIRoutes extends ApplicationRoutes, ChannelRoutes, GatewayRoutes, GuildRoutes, InteractionRoutes, InviteRoutes, StageInstanceRoutes, StickerRoutes, UserRoutes, VoiceRoutes, WebhookRoutes, SoundboardRoutes {
16
+ export interface APIRoutes extends ApplicationRoutes, ChannelRoutes, GatewayRoutes, GuildRoutes, InteractionRoutes, InviteRoutes, OAuth2Routes, SKURoutes, StageInstanceRoutes, StickerRoutes, UserRoutes, VoiceRoutes, WebhookRoutes, SoundboardRoutes {
15
17
  }
@@ -3,7 +3,7 @@ import type { RESTDeleteAPIInviteResult, RESTGetAPIInviteQuery, RESTGetAPIInvite
3
3
  import type { RestArguments, RestArgumentsNoBody } from '../api';
4
4
  export interface InviteRoutes {
5
5
  invites(id: string): {
6
- get(args?: RestArguments<RESTGetAPIInviteQuery>): Promise<RESTGetAPIInviteResult>;
6
+ get(args?: RestArguments<RESTGetAPIInviteQuery> | RestArgumentsNoBody<RESTGetAPIInviteQuery>): Promise<RESTGetAPIInviteResult>;
7
7
  delete(args?: RestArgumentsNoBody): Promise<RESTDeleteAPIInviteResult>;
8
8
  ['target-users']: {
9
9
  get(args?: RestArgumentsNoBody): Promise<RESTGetTargetUsersResult>;
@@ -0,0 +1,11 @@
1
+ import type { RESTGetAPIOAuth2CurrentApplicationResult } from '../../types';
2
+ import type { RestArgumentsNoBody } from '../api';
3
+ export interface OAuth2Routes {
4
+ oauth2: {
5
+ applications: {
6
+ '@me': {
7
+ get(args?: RestArgumentsNoBody): Promise<RESTGetAPIOAuth2CurrentApplicationResult>;
8
+ };
9
+ };
10
+ };
11
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,10 +1,17 @@
1
1
  import type { RESTGetAPISKUSubscriptionResult, RESTGetAPISKUSubscriptionsQuery, RESTGetAPISKUSubscriptionsResult } from '../../types';
2
2
  import type { RestArguments, RestArgumentsNoBody } from '../api';
3
- export interface SKuRoutes {
3
+ export interface SKURoutes {
4
4
  skus(id: string): {
5
- get: (args?: RestArguments<RESTGetAPISKUSubscriptionsQuery>) => Promise<RESTGetAPISKUSubscriptionsResult>;
6
- subscriptions(id: string): {
7
- get: (args?: RestArgumentsNoBody) => Promise<RESTGetAPISKUSubscriptionResult>;
5
+ /** @deprecated Use `subscriptions.get(...)` to list subscriptions. */
6
+ get(args?: RestArguments<RESTGetAPISKUSubscriptionsQuery>): Promise<RESTGetAPISKUSubscriptionsResult>;
7
+ subscriptions: {
8
+ get(args?: RestArgumentsNoBody<RESTGetAPISKUSubscriptionsQuery>): Promise<RESTGetAPISKUSubscriptionsResult>;
9
+ (id: string): {
10
+ get(args?: RestArgumentsNoBody): Promise<RESTGetAPISKUSubscriptionResult>;
11
+ };
8
12
  };
9
13
  };
10
14
  }
15
+ /** @deprecated Use {@link SKURoutes}. */
16
+ export interface SKuRoutes extends SKURoutes {
17
+ }
@@ -1,4 +1,4 @@
1
- import type { APIDMChannel, RESTDeleteAPIGuildResult, RESTGetAPICurrentUserApplicationRoleConnectionResult, RESTGetAPICurrentUserConnectionsResult, RESTGetAPICurrentUserGuildsQuery, RESTGetAPICurrentUserGuildsResult, RESTGetAPICurrentUserResult, RESTGetAPIUserResult, RESTGetCurrentUserGuildMemberResult, RESTPatchAPICurrentUserJSONBody, RESTPatchAPICurrentUserResult, RESTPostAPICurrentUserCreateDMChannelJSONBody, RESTPutAPICurrentUserApplicationRoleConnectionJSONBody, RESTPutAPICurrentUserApplicationRoleConnectionResult } from '../../types';
1
+ import type { APIDMChannel, RESTDeleteAPICurrentUserApplicationRoleConnectionResult, RESTDeleteAPIGuildResult, RESTGetAPICurrentUserApplicationRoleConnectionResult, RESTGetAPICurrentUserConnectionsResult, RESTGetAPICurrentUserGuildsQuery, RESTGetAPICurrentUserGuildsResult, RESTGetAPICurrentUserResult, RESTGetAPIUserResult, RESTGetCurrentUserGuildMemberResult, RESTPatchAPICurrentUserJSONBody, RESTPatchAPICurrentUserResult, RESTPostAPICurrentUserCreateDMChannelJSONBody, RESTPutAPICurrentUserApplicationRoleConnectionJSONBody, RESTPutAPICurrentUserApplicationRoleConnectionResult } from '../../types';
2
2
  import type { RestArguments, RestArgumentsNoBody } from '../api';
3
3
  export interface UserRoutes {
4
4
  users: {
@@ -26,6 +26,7 @@ export interface UserRoutes {
26
26
  applications(applicationId: string): {
27
27
  'role-connection': {
28
28
  get(args?: RestArgumentsNoBody): Promise<RESTGetAPICurrentUserApplicationRoleConnectionResult>;
29
+ delete(args?: RestArgumentsNoBody): Promise<RESTDeleteAPICurrentUserApplicationRoleConnectionResult>;
29
30
  put(args: RestArguments<RESTPutAPICurrentUserApplicationRoleConnectionJSONBody>): Promise<RESTPutAPICurrentUserApplicationRoleConnectionResult>;
30
31
  };
31
32
  };
@@ -2,8 +2,12 @@ import type { RESTGetAPIVoiceRegionsResult } from '../../types';
2
2
  import type { RestArgumentsNoBody } from '../api';
3
3
  export interface VoiceRoutes {
4
4
  voice: {
5
+ /** @deprecated Discord uses `regions`; this legacy path is retained for v4 compatibility. */
5
6
  region: {
6
7
  get(args?: RestArgumentsNoBody): Promise<RESTGetAPIVoiceRegionsResult>;
7
8
  };
9
+ regions: {
10
+ get(args?: RestArgumentsNoBody): Promise<RESTGetAPIVoiceRegionsResult>;
11
+ };
8
12
  };
9
13
  }
@@ -18,7 +18,7 @@ export interface WebhookRoutes {
18
18
  };
19
19
  messages: (id: string) => {
20
20
  get(args?: RestArgumentsNoBody<RESTGetAPIWebhookWithTokenMessageQuery>): Promise<RESTGetAPIWebhookWithTokenMessageResult>;
21
- patch(args: RestArguments<RESTPatchAPIWebhookWithTokenMessageJSONBody>): Promise<RESTPatchAPIWebhookWithTokenMessageResult>;
21
+ patch(args: RestArguments<RESTPatchAPIWebhookWithTokenMessageJSONBody, RESTPatchAPIWebhookWithTokenMessageQuery>): Promise<RESTPatchAPIWebhookWithTokenMessageResult>;
22
22
  delete(args?: RestArgumentsNoBody<RESTDeleteAPIWebhookWithTokenMessageQuery>): Promise<RESTDeleteAPIWebhookWithTokenMessageResult>;
23
23
  };
24
24
  };
package/lib/api/api.d.ts CHANGED
@@ -3,7 +3,7 @@ import { type Awaitable, Logger, SeyfertError } from '../common';
3
3
  import type { WorkerSendApiRequest } from '../websocket/discord/worker';
4
4
  import { Bucket } from './bucket';
5
5
  import type { APIRoutes } from './Routes';
6
- import { type ApiHandlerInternalOptions, type ApiHandlerOptions, type ApiRequestOptions, type HttpMethods, type RawFile, type RequestHeaders } from './shared';
6
+ import { type ApiHandlerInternalOptions, type ApiHandlerOptions, type ApiRequestBody, type ApiRequestOptions, type HttpMethods, type RawFile, type RequestHeaders } from './shared';
7
7
  export interface ApiHandler {
8
8
  debugger?: Logger;
9
9
  }
@@ -15,6 +15,9 @@ export declare class ApiHandler {
15
15
  globalBlock: boolean;
16
16
  ratelimits: Map<string, Bucket>;
17
17
  readyQueue: (() => void)[];
18
+ private bucketAliases;
19
+ private globalBlocks;
20
+ private globalTimers;
18
21
  cdn: import("./Routes").CDNRoute;
19
22
  workerPromises?: Map<string, {
20
23
  resolve: (value: any) => any;
@@ -32,15 +35,19 @@ export declare class ApiHandler {
32
35
  protected postMessage<T = unknown>(body: WorkerSendApiRequest): Promise<T>;
33
36
  private notifySuccessRequest;
34
37
  private notifyFailRequest;
35
- request<T = unknown>(method: HttpMethods, url: `/${string}`, { auth, ...request }?: ApiRequestOptions): Promise<T>;
38
+ request<T = unknown>(method: HttpMethods, url: `/${string}`, request?: ApiRequestOptions): Promise<T>;
39
+ private learnBucket;
40
+ private globalRateLimitKey;
41
+ private blockGlobal;
42
+ private unblockGlobal;
36
43
  parseError(method: HttpMethods, route: `/${string}`, response: Response, result: string | Record<string, any>, originTrace?: {
37
44
  stack?: string;
38
45
  }): SeyfertError;
39
46
  parseValidationError(data: Record<string, any>, path?: string, errors?: string[]): string[];
40
- handle50X(method: HttpMethods, url: `/${string}`, request: ApiRequestOptions, next: () => void): Promise<unknown>;
47
+ handle50X(method: HttpMethods, url: `/${string}`, request: ApiRequestOptions, attempts: number | (() => void), next?: () => void, resolve?: (value: unknown) => void, reject?: (err: unknown) => void): Promise<unknown>;
41
48
  handle429(route: string, method: HttpMethods, url: `/${string}`, request: ApiRequestOptions, response: Response, result: string, next: () => void, reject: (err: unknown) => void, now: number): Promise<unknown>;
42
49
  clearResetInterval(route: string): void;
43
- setResetBucket(route: string, resp: Response, now: number, headerNow: number): void;
50
+ setResetBucket(route: string, resp: Response, now: number, headerNow: number, normalizedRoute?: string): void;
44
51
  setRatelimitsBucket(route: string, resp: Response): void;
45
52
  parseRequest(options: {
46
53
  url: string;
@@ -53,7 +60,7 @@ export declare class ApiHandler {
53
60
  routefy(url: string, method: HttpMethods): `/${string}`;
54
61
  }
55
62
  export type RequestOptions = Pick<ApiRequestOptions, 'reason' | 'auth' | 'appendToFormData' | 'token'>;
56
- export type RestArguments<B extends Record<string, any> | undefined, Q extends never | Record<string, any> = never, F extends RawFile[] = RawFile[]> = ({
63
+ export type RestArguments<B extends ApiRequestBody | undefined, Q extends never | Record<string, any> = never, F extends RawFile[] = RawFile[]> = ({
57
64
  body: B;
58
65
  files?: F;
59
66
  } | (Q extends never | undefined ? {} : {
@@ -63,3 +70,6 @@ export type RestArgumentsNoBody<Q extends never | Record<string, any> = never> =
63
70
  query?: Q;
64
71
  files?: RawFile[];
65
72
  } & RequestOptions;
73
+ export type RestArgumentsRequiredQuery<Q extends Record<string, any>> = Omit<RestArgumentsNoBody<Q>, 'query'> & {
74
+ query: Q;
75
+ };