@discordeno/bot 19.0.0-next.fdf0d53 → 19.0.0-next.fe00a6f

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 (202) hide show
  1. package/dist/bot.d.ts +8 -2
  2. package/dist/bot.d.ts.map +1 -1
  3. package/dist/bot.js +9 -5
  4. package/dist/bot.js.map +1 -1
  5. package/dist/handlers/channels/CHANNEL_CREATE.d.ts.map +1 -1
  6. package/dist/handlers/channels/CHANNEL_CREATE.js +3 -1
  7. package/dist/handlers/channels/CHANNEL_CREATE.js.map +1 -1
  8. package/dist/handlers/channels/index.d.ts +13 -12
  9. package/dist/handlers/channels/index.d.ts.map +1 -1
  10. package/dist/handlers/channels/index.js +13 -12
  11. package/dist/handlers/channels/index.js.map +1 -1
  12. package/dist/handlers/emojis/index.d.ts +1 -1
  13. package/dist/handlers/emojis/index.d.ts.map +1 -1
  14. package/dist/handlers/emojis/index.js +1 -1
  15. package/dist/handlers/emojis/index.js.map +1 -1
  16. package/dist/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.js +1 -1
  17. package/dist/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.js.map +1 -1
  18. package/dist/handlers/guilds/GUILD_DELETE.d.ts.map +1 -1
  19. package/dist/handlers/guilds/GUILD_DELETE.js +4 -0
  20. package/dist/handlers/guilds/GUILD_DELETE.js.map +1 -1
  21. package/dist/handlers/guilds/GUILD_STICKERS_UPDATE.d.ts +1 -1
  22. package/dist/handlers/guilds/GUILD_STICKERS_UPDATE.d.ts.map +1 -1
  23. package/dist/handlers/guilds/GUILD_STICKERS_UPDATE.js.map +1 -1
  24. package/dist/handlers/guilds/index.d.ts +10 -10
  25. package/dist/handlers/guilds/index.d.ts.map +1 -1
  26. package/dist/handlers/guilds/index.js +10 -10
  27. package/dist/handlers/guilds/index.js.map +1 -1
  28. package/dist/handlers/guilds/scheduledEvents/index.d.ts +5 -5
  29. package/dist/handlers/guilds/scheduledEvents/index.d.ts.map +1 -1
  30. package/dist/handlers/guilds/scheduledEvents/index.js +5 -5
  31. package/dist/handlers/guilds/scheduledEvents/index.js.map +1 -1
  32. package/dist/handlers/integrations/index.d.ts +3 -3
  33. package/dist/handlers/integrations/index.d.ts.map +1 -1
  34. package/dist/handlers/integrations/index.js +3 -3
  35. package/dist/handlers/integrations/index.js.map +1 -1
  36. package/dist/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.d.ts +1 -1
  37. package/dist/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.d.ts.map +1 -1
  38. package/dist/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js.map +1 -1
  39. package/dist/handlers/invites/index.d.ts +2 -2
  40. package/dist/handlers/invites/index.d.ts.map +1 -1
  41. package/dist/handlers/invites/index.js +2 -2
  42. package/dist/handlers/invites/index.js.map +1 -1
  43. package/dist/handlers/members/index.d.ts +4 -4
  44. package/dist/handlers/members/index.d.ts.map +1 -1
  45. package/dist/handlers/members/index.js +4 -4
  46. package/dist/handlers/members/index.js.map +1 -1
  47. package/dist/handlers/messages/index.d.ts +8 -8
  48. package/dist/handlers/messages/index.d.ts.map +1 -1
  49. package/dist/handlers/messages/index.js +8 -8
  50. package/dist/handlers/messages/index.js.map +1 -1
  51. package/dist/handlers/misc/index.d.ts +4 -4
  52. package/dist/handlers/misc/index.d.ts.map +1 -1
  53. package/dist/handlers/misc/index.js +4 -4
  54. package/dist/handlers/misc/index.js.map +1 -1
  55. package/dist/handlers/roles/index.d.ts +3 -3
  56. package/dist/handlers/roles/index.d.ts.map +1 -1
  57. package/dist/handlers/roles/index.js +3 -3
  58. package/dist/handlers/roles/index.js.map +1 -1
  59. package/dist/handlers/voice/index.d.ts +2 -2
  60. package/dist/handlers/voice/index.d.ts.map +1 -1
  61. package/dist/handlers/voice/index.js +2 -2
  62. package/dist/handlers/voice/index.js.map +1 -1
  63. package/dist/handlers/webhooks/WEBHOOKS_UPDATE.d.ts.map +1 -1
  64. package/dist/handlers/webhooks/WEBHOOKS_UPDATE.js.map +1 -1
  65. package/dist/handlers/webhooks/index.d.ts +1 -1
  66. package/dist/handlers/webhooks/index.d.ts.map +1 -1
  67. package/dist/handlers/webhooks/index.js +1 -1
  68. package/dist/handlers/webhooks/index.js.map +1 -1
  69. package/dist/handlers.js +1 -1
  70. package/dist/handlers.js.map +1 -1
  71. package/dist/helpers.d.ts +205 -0
  72. package/dist/helpers.d.ts.map +1 -0
  73. package/dist/helpers.js +553 -0
  74. package/dist/helpers.js.map +1 -0
  75. package/dist/index.d.ts +6 -0
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +6 -0
  78. package/dist/index.js.map +1 -1
  79. package/dist/transformers/activity.d.ts +15 -15
  80. package/dist/transformers/application.d.ts +37 -5
  81. package/dist/transformers/application.d.ts.map +1 -1
  82. package/dist/transformers/applicationCommand.d.ts +36 -4
  83. package/dist/transformers/applicationCommand.d.ts.map +1 -1
  84. package/dist/transformers/applicationCommandPermission.d.ts +1 -1
  85. package/dist/transformers/attachment.d.ts +3 -3
  86. package/dist/transformers/auditLogEntry.d.ts +6 -6
  87. package/dist/transformers/automodActionExecution.d.ts +6 -6
  88. package/dist/transformers/automodRule.d.ts +3 -2
  89. package/dist/transformers/automodRule.d.ts.map +1 -1
  90. package/dist/transformers/automodRule.js +1 -0
  91. package/dist/transformers/automodRule.js.map +1 -1
  92. package/dist/transformers/channel.d.ts +99 -36
  93. package/dist/transformers/channel.d.ts.map +1 -1
  94. package/dist/transformers/channel.js +74 -37
  95. package/dist/transformers/channel.js.map +1 -1
  96. package/dist/transformers/component.d.ts +3 -1
  97. package/dist/transformers/component.d.ts.map +1 -1
  98. package/dist/transformers/component.js +1 -0
  99. package/dist/transformers/component.js.map +1 -1
  100. package/dist/transformers/embed.d.ts +3 -3
  101. package/dist/transformers/emoji.d.ts +37 -5
  102. package/dist/transformers/emoji.d.ts.map +1 -1
  103. package/dist/transformers/guild.d.ts +4 -3
  104. package/dist/transformers/guild.d.ts.map +1 -1
  105. package/dist/transformers/guild.js +5 -1
  106. package/dist/transformers/guild.js.map +1 -1
  107. package/dist/transformers/index.d.ts +2 -0
  108. package/dist/transformers/index.d.ts.map +1 -1
  109. package/dist/transformers/index.js +2 -0
  110. package/dist/transformers/index.js.map +1 -1
  111. package/dist/transformers/integration.d.ts +73 -9
  112. package/dist/transformers/integration.d.ts.map +1 -1
  113. package/dist/transformers/interaction.d.ts +80 -342
  114. package/dist/transformers/interaction.d.ts.map +1 -1
  115. package/dist/transformers/interaction.js +77 -27
  116. package/dist/transformers/interaction.js.map +1 -1
  117. package/dist/transformers/invite.d.ts +113 -17
  118. package/dist/transformers/invite.d.ts.map +1 -1
  119. package/dist/transformers/member.d.ts +31 -37
  120. package/dist/transformers/member.d.ts.map +1 -1
  121. package/dist/transformers/member.js +28 -32
  122. package/dist/transformers/member.js.map +1 -1
  123. package/dist/transformers/message.d.ts +124 -221
  124. package/dist/transformers/message.d.ts.map +1 -1
  125. package/dist/transformers/message.js +209 -73
  126. package/dist/transformers/message.js.map +1 -1
  127. package/dist/transformers/presence.d.ts +2 -14
  128. package/dist/transformers/presence.d.ts.map +1 -1
  129. package/dist/transformers/presence.js +1 -14
  130. package/dist/transformers/presence.js.map +1 -1
  131. package/dist/transformers/reverse/applicationCommandOptionChoice.d.ts +2 -2
  132. package/dist/transformers/reverse/applicationCommandOptionChoice.d.ts.map +1 -1
  133. package/dist/transformers/reverse/applicationCommandOptionChoice.js.map +1 -1
  134. package/dist/transformers/reverse/component.d.ts.map +1 -1
  135. package/dist/transformers/reverse/component.js +1 -0
  136. package/dist/transformers/reverse/component.js.map +1 -1
  137. package/dist/transformers/reverse/createApplicationCommand.d.ts.map +1 -1
  138. package/dist/transformers/reverse/createApplicationCommand.js.map +1 -1
  139. package/dist/transformers/reverse/index.d.ts +19 -16
  140. package/dist/transformers/reverse/index.d.ts.map +1 -1
  141. package/dist/transformers/reverse/index.js +19 -16
  142. package/dist/transformers/reverse/index.js.map +1 -1
  143. package/dist/transformers/reverse/member.d.ts +2 -1
  144. package/dist/transformers/reverse/member.d.ts.map +1 -1
  145. package/dist/transformers/reverse/member.js +10 -9
  146. package/dist/transformers/reverse/member.js.map +1 -1
  147. package/dist/transformers/role.d.ts +67 -13
  148. package/dist/transformers/role.d.ts.map +1 -1
  149. package/dist/transformers/role.js +51 -15
  150. package/dist/transformers/role.js.map +1 -1
  151. package/dist/transformers/scheduledEvent.d.ts +38 -6
  152. package/dist/transformers/scheduledEvent.d.ts.map +1 -1
  153. package/dist/transformers/sticker.d.ts +38 -6
  154. package/dist/transformers/sticker.d.ts.map +1 -1
  155. package/dist/transformers/team.d.ts +1 -1
  156. package/dist/transformers/template.d.ts +110 -114
  157. package/dist/transformers/template.d.ts.map +1 -1
  158. package/dist/transformers/toggles/Permissions.d.ts +9 -0
  159. package/dist/transformers/toggles/Permissions.d.ts.map +1 -0
  160. package/dist/transformers/toggles/Permissions.js +18 -0
  161. package/dist/transformers/toggles/Permissions.js.map +1 -0
  162. package/dist/transformers/toggles/ToggleBitfield.d.ts +2 -0
  163. package/dist/transformers/toggles/ToggleBitfield.d.ts.map +1 -1
  164. package/dist/transformers/toggles/ToggleBitfield.js +6 -0
  165. package/dist/transformers/toggles/ToggleBitfield.js.map +1 -1
  166. package/dist/transformers/toggles/channel.d.ts +33 -0
  167. package/dist/transformers/toggles/channel.d.ts.map +1 -0
  168. package/dist/transformers/toggles/channel.js +50 -0
  169. package/dist/transformers/toggles/channel.js.map +1 -0
  170. package/dist/transformers/toggles/guild.d.ts +0 -4
  171. package/dist/transformers/toggles/guild.d.ts.map +1 -1
  172. package/dist/transformers/toggles/guild.js +0 -6
  173. package/dist/transformers/toggles/guild.js.map +1 -1
  174. package/dist/transformers/toggles/index.d.ts +9 -7
  175. package/dist/transformers/toggles/index.d.ts.map +1 -1
  176. package/dist/transformers/toggles/index.js +9 -7
  177. package/dist/transformers/toggles/index.js.map +1 -1
  178. package/dist/transformers/toggles/role.d.ts +4 -0
  179. package/dist/transformers/toggles/role.d.ts.map +1 -1
  180. package/dist/transformers/toggles/role.js +6 -0
  181. package/dist/transformers/toggles/role.js.map +1 -1
  182. package/dist/transformers/user.d.ts +44 -0
  183. package/dist/transformers/user.d.ts.map +1 -0
  184. package/dist/transformers/user.js +42 -0
  185. package/dist/transformers/user.js.map +1 -0
  186. package/dist/transformers/voiceRegion.d.ts +1 -1
  187. package/dist/transformers/voiceState.d.ts +3 -3
  188. package/dist/transformers/webhook.d.ts +39 -7
  189. package/dist/transformers/webhook.d.ts.map +1 -1
  190. package/dist/transformers.d.ts +275 -5
  191. package/dist/transformers.d.ts.map +1 -1
  192. package/dist/transformers.js +282 -2
  193. package/dist/transformers.js.map +1 -1
  194. package/dist/typings.d.ts +28 -3
  195. package/dist/typings.d.ts.map +1 -1
  196. package/dist/typings.js +13 -0
  197. package/dist/typings.js.map +1 -1
  198. package/dist/utils.d.ts +1 -0
  199. package/dist/utils.d.ts.map +1 -1
  200. package/dist/utils.js +3 -0
  201. package/dist/utils.js.map +1 -1
  202. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/transformers/interaction.ts"],"sourcesContent":["import type { ChannelTypes, DiscordInteraction, DiscordInteractionDataOption } from '@discordeno/types'\nimport { Collection } from '@discordeno/utils'\nimport type { Bot } from '../index.js'\nimport type { Optionalize } from '../optionalize.js'\nimport type { DiscordInteractionDataResolved } from '../typings.js'\nimport type { Attachment } from './attachment.js'\nimport type { Member, User } from './member.js'\nimport type { Message } from './message.js'\nimport type { Role } from './role.js'\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function transformInteraction(bot: Bot, payload: DiscordInteraction) {\n const guildId = payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined\n const user = bot.transformers.user(bot, payload.member?.user ?? payload.user!)\n\n const interaction = {\n // UNTRANSFORMED STUFF HERE\n type: payload.type,\n token: payload.token,\n version: payload.version,\n locale: payload.locale,\n guildLocale: payload.guild_locale,\n\n // TRANSFORMED STUFF BELOW\n guildId,\n user,\n id: bot.transformers.snowflake(payload.id),\n applicationId: bot.transformers.snowflake(payload.application_id),\n appPermissions: payload.app_permissions ? bot.transformers.snowflake(payload.app_permissions) : undefined,\n message: payload.message ? bot.transformers.message(bot, payload.message) : undefined,\n channelId: payload.channel_id ? bot.transformers.snowflake(payload.channel_id) : undefined,\n member: payload.member && guildId ? bot.transformers.member(bot, payload.member, guildId, user.id) : undefined,\n\n data: payload.data\n ? {\n componentType: payload.data.component_type,\n customId: payload.data.custom_id,\n components: payload.data.components?.map((component) => bot.transformers.component(bot, component)),\n values: payload.data.values,\n id: payload.data.id ? bot.transformers.snowflake(payload.data.id) : undefined,\n name: payload.data.name,\n resolved: payload.data.resolved ? transformInteractionDataResolved(bot, payload.data.resolved, guildId) : undefined,\n options: payload.data.options?.map((opt) => bot.transformers.interactionDataOptions(bot, opt)),\n targetId: payload.data.target_id ? bot.transformers.snowflake(payload.data.target_id) : undefined,\n guildId: payload.data.guild_id ? bot.transformers.snowflake(payload.data.guild_id) : undefined,\n }\n : undefined,\n }\n\n return interaction as Optionalize<typeof interaction>\n}\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function transformInteractionDataOption(bot: Bot, option: DiscordInteractionDataOption) {\n const opt = {\n name: option.name,\n type: option.type,\n value: option.value,\n options: option.options,\n focused: option.focused,\n }\n\n return opt as Optionalize<typeof opt>\n}\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function transformInteractionDataResolved(bot: Bot, resolved: DiscordInteractionDataResolved, guildId?: bigint) {\n const transformed: {\n messages?: Collection<bigint, Message>\n users?: Collection<bigint, User>\n members?: Collection<bigint, Member>\n roles?: Collection<bigint, Role>\n channels?: Collection<bigint, { id: bigint; name: string; type: ChannelTypes; permissions: bigint }>\n attachments?: Collection<bigint, Attachment>\n } = {}\n\n if (resolved.messages) {\n transformed.messages = new Collection(\n Object.entries(resolved.messages).map(([id, value]) => {\n const message: Message = bot.transformers.message(bot, value)\n return [message.id, message]\n }),\n )\n }\n\n if (resolved.users) {\n transformed.users = new Collection(\n Object.entries(resolved.users).map(([id, value]) => {\n const user = bot.transformers.user(bot, value)\n return [user.id, user]\n }),\n )\n }\n\n if (guildId && resolved.members) {\n transformed.members = new Collection(\n Object.entries(resolved.members).map(([id, value]) => {\n const member: Member = bot.transformers.member(bot, value, guildId, bot.transformers.snowflake(id))\n return [member.id, member]\n }),\n )\n }\n\n if (guildId && resolved.roles) {\n transformed.roles = new Collection(\n Object.entries(resolved.roles).map(([id, value]) => {\n const role = bot.transformers.role(bot, { role: value, guildId })\n return [role.id, role]\n }),\n )\n }\n\n if (resolved.channels) {\n transformed.channels = new Collection(\n Object.entries(resolved.channels).map(([key, value]) => {\n const id = bot.transformers.snowflake(key)\n const channel = value as {\n id: string\n name: string\n type: ChannelTypes\n permissions: string\n }\n return [\n id,\n {\n id,\n name: channel.name,\n type: channel.type,\n permissions: bot.transformers.snowflake(channel.permissions),\n },\n ]\n }),\n )\n }\n\n if (resolved.attachments) {\n transformed.attachments = new Collection(\n Object.entries(resolved.attachments).map(([key, value]) => {\n const id = bot.transformers.snowflake(key)\n return [id, bot.transformers.attachment(bot, value)]\n }),\n )\n }\n\n // TODO: fix\n // return transformed as Optionalize<typeof transformed>\n return transformed as any\n}\n\nexport interface Interaction extends ReturnType<typeof transformInteraction> {}\nexport interface InteractionDataResolved extends ReturnType<typeof transformInteractionDataResolved> {}\nexport interface InteractionDataOption extends ReturnType<typeof transformInteractionDataOption> {}\n"],"names":["Collection","transformInteraction","bot","payload","guildId","guild_id","transformers","snowflake","undefined","user","member","interaction","type","token","version","locale","guildLocale","guild_locale","id","applicationId","application_id","appPermissions","app_permissions","message","channelId","channel_id","data","componentType","component_type","customId","custom_id","components","map","component","values","name","resolved","transformInteractionDataResolved","options","opt","interactionDataOptions","targetId","target_id","transformInteractionDataOption","option","value","focused","transformed","messages","Object","entries","users","members","roles","role","channels","key","channel","permissions","attachments","attachment"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/transformers/interaction.ts"],"sourcesContent":["import {\n InteractionResponseTypes,\n InteractionTypes,\n type ApplicationCommandOptionTypes,\n type ApplicationCommandTypes,\n type BigString,\n type CamelizedDiscordMessage,\n type ChannelTypes,\n type DiscordInteraction,\n type DiscordInteractionDataOption,\n type InteractionCallbackData,\n type MessageComponentTypes,\n} from '@discordeno/types'\nimport { Collection } from '@discordeno/utils'\nimport type { Bot, Component } from '../index.js'\nimport type { DiscordInteractionDataResolved } from '../typings.js'\nimport type { Attachment } from './attachment.js'\nimport type { Member } from './member.js'\nimport type { Message } from './message.js'\nimport type { Role } from './role.js'\nimport type { User } from './user.js'\n\nexport interface Interaction extends BaseInteraction {\n /** The bot object */\n bot: Bot\n /** Whether or not this interaction has been responded to. */\n acknowledged: boolean\n /** Id of the interaction */\n id: bigint\n /** Id of the application this interaction is for */\n applicationId: bigint\n /** The type of interaction */\n type: InteractionTypes\n /** The guild it was sent from */\n guildId?: bigint\n /** The channel it was sent from */\n channelId?: bigint\n /** Guild member data for the invoking user, including permissions */\n member?: Member\n /** User object for the invoking user, if invoked in a DM */\n user: User\n /** A continuation token for responding to the interaction */\n token: string\n /** Read-only property, always `1` */\n version: 1\n /** For the message the button was attached to */\n message?: Message\n /** the command data payload */\n data?: {\n type?: ApplicationCommandTypes\n componentType?: MessageComponentTypes\n customId?: string\n components?: Component[]\n values?: string[]\n name: string\n resolved?: InteractionDataResolved\n options?: InteractionDataOption[]\n id?: bigint\n targetId?: bigint\n // guildId?: bigint\n }\n /** The selected language of the invoking user */\n locale?: string\n /** The guild's preferred locale, if invoked in a guild */\n guildLocale?: string\n /** The computed permissions for a bot or app in the context of a specific interaction (including channel overwrites) */\n appPermissions: bigint\n}\n\nexport interface BaseInteraction {\n /** Sends a response to an interaction. */\n respond: (response: string | InteractionCallbackData, options?: { isPrivate?: boolean }) => Promise<CamelizedDiscordMessage | void>\n /** Edit the original response of an interaction. */\n edit: (response: string | InteractionCallbackData) => Promise<CamelizedDiscordMessage>\n /** Defer the interaction. */\n defer: (isPrivate?: boolean) => Promise<void>\n /** Delete the original interaction response or a followup message */\n delete: (messageId?: BigString) => Promise<void>\n}\n\nconst baseInteraction: Partial<Interaction> & BaseInteraction = {\n async respond(response, options) {\n let type = InteractionResponseTypes.ChannelMessageWithSource\n\n // If user provides a string, change it to a response object\n if (typeof response === 'string') response = { content: response }\n // If user provides an object, determine if it should be an autocomplete or a modal response\n else if (response.title) type = InteractionResponseTypes.Modal\n else if (this.type === InteractionTypes.ApplicationCommandAutocomplete) type = InteractionResponseTypes.ApplicationCommandAutocompleteResult\n\n // If user wants to send a private message\n if (type === InteractionResponseTypes.ChannelMessageWithSource && options?.isPrivate) response.flags = 64\n\n // Since this has already been given a response, any further responses must be followups.\n if (this.acknowledged) return await this.bot?.rest.sendFollowupMessage(this.token!, response)\n\n // Modals cannot be chained\n if (this.type === InteractionTypes.ModalSubmit && type === InteractionResponseTypes.Modal)\n throw new Error('Cannot respond to a modal interaction with another modal.')\n\n // Autocomplete response can only be used for autocomplete interactions\n if (this.type === InteractionTypes.ApplicationCommandAutocomplete && type !== InteractionResponseTypes.ApplicationCommandAutocompleteResult)\n throw new Error('Cannot respond to an autocomplete interaction with a modal or message.')\n\n // If user has not already responded to this interaction we need to send an original response\n this.acknowledged = true\n return await this.bot?.rest.sendInteractionResponse(this.id!, this.token!, { type, data: response })\n },\n\n async edit(response) {\n if (this.type === InteractionTypes.ApplicationCommandAutocomplete) throw new Error('Cannot edit an autocomplete interaction')\n\n // If user provides a string, change it to a response object\n if (typeof response === 'string') response = { content: response }\n\n return await this.bot!.rest.editOriginalInteractionResponse(this.token!, response)\n },\n\n async defer(isPrivate) {\n if (this.type === InteractionTypes.ApplicationCommandAutocomplete) throw new Error('Cannot defer an autocomplete interaction')\n if (this.acknowledged) throw new Error('Cannot defer an already responded interaction')\n\n // Determine the type of defer response\n const type =\n this.type === InteractionTypes.MessageComponent\n ? InteractionResponseTypes.DeferredUpdateMessage\n : InteractionResponseTypes.DeferredChannelMessageWithSource\n\n // If user wants to send a private message\n const data: InteractionCallbackData = {}\n if (isPrivate) data.flags = 64\n\n this.acknowledged = true\n return await this.bot?.rest.sendInteractionResponse(this.id!, this.token!, { type, data })\n },\n\n async delete(messageId?: BigString) {\n if (this.type === InteractionTypes.ApplicationCommandAutocomplete) throw new Error('Cannot delete an autocomplete interaction')\n\n if (messageId) return await this.bot?.rest.deleteFollowupMessage(this.token!, messageId)\n else return await this.bot?.rest.deleteOriginalInteractionResponse(this.token!)\n },\n}\n\nexport function transformInteraction(bot: Bot, payload: DiscordInteraction): Interaction {\n const guildId = payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined\n const user = bot.transformers.user(bot, payload.member?.user ?? payload.user!)\n\n const interaction: Interaction = Object.create(baseInteraction)\n const props = bot.transformers.desiredProperties.interaction\n interaction.bot = bot\n interaction.acknowledged = false\n\n if (payload.id && props.id) interaction.id = bot.transformers.snowflake(payload.id)\n if (payload.application_id && props.applicationId) interaction.applicationId = bot.transformers.snowflake(payload.application_id)\n if (payload.type && props.type) interaction.type = payload.type\n if (payload.token && props.token) interaction.token = payload.token\n if (payload.version && props.version) interaction.version = payload.version\n if (payload.locale && props.locale) interaction.locale = payload.locale\n if (payload.guild_locale && props.guildLocale) interaction.guildLocale = payload.guild_locale\n if (guildId && props.guildId) interaction.guildId = guildId\n if (props.user) interaction.user = user\n if (payload.app_permissions && props.appPermissions) interaction.appPermissions = bot.transformers.snowflake(payload.app_permissions)\n if (payload.message && props.message) interaction.message = bot.transformers.message(bot, payload.message)\n if (payload.channel_id && props.channelId) interaction.channelId = bot.transformers.snowflake(payload.channel_id)\n if (payload.member && guildId && props.member) interaction.member = bot.transformers.member(bot, payload.member, guildId, user.id)\n if (payload.data && props.data) {\n interaction.data = {\n type: payload.data.type,\n componentType: payload.data.component_type,\n customId: payload.data.custom_id,\n components: payload.data.components?.map((component) => bot.transformers.component(bot, component)),\n values: payload.data.values,\n id: payload.data.id ? bot.transformers.snowflake(payload.data.id) : undefined,\n name: payload.data.name,\n resolved: payload.data.resolved ? transformInteractionDataResolved(bot, payload.data.resolved, guildId) : undefined,\n options: payload.data.options?.map((opt) => bot.transformers.interactionDataOptions(bot, opt)),\n targetId: payload.data.target_id ? bot.transformers.snowflake(payload.data.target_id) : undefined,\n // guildId: payload.data.guild_id ? bot.transformers.snowflake(payload.data.guild_id) : undefined,\n }\n }\n\n return bot.transformers.customizers.interaction(bot, payload, interaction)\n}\n\nexport function transformInteractionDataOption(bot: Bot, option: DiscordInteractionDataOption): InteractionDataOption {\n const opt = {\n name: option.name,\n type: option.type,\n value: option.value,\n options: option.options,\n focused: option.focused,\n }\n\n return opt\n}\n\nexport function transformInteractionDataResolved(bot: Bot, resolved: DiscordInteractionDataResolved, guildId?: bigint): InteractionDataResolved {\n const transformed: InteractionDataResolved = {}\n\n if (resolved.messages) {\n transformed.messages = new Collection(\n Object.entries(resolved.messages).map(([id, value]) => {\n const message: Message = bot.transformers.message(bot, value)\n return [message.id, message]\n }),\n )\n }\n\n if (resolved.users) {\n transformed.users = new Collection(\n Object.entries(resolved.users).map(([id, value]) => {\n const user = bot.transformers.user(bot, value)\n return [user.id, user]\n }),\n )\n }\n\n if (guildId && resolved.members) {\n transformed.members = new Collection(\n Object.entries(resolved.members).map(([id, value]) => {\n const member: Member = bot.transformers.member(bot, value, guildId, bot.transformers.snowflake(id))\n return [member.id, member]\n }),\n )\n }\n\n if (guildId && resolved.roles) {\n transformed.roles = new Collection(\n Object.entries(resolved.roles).map(([id, value]) => {\n const role = bot.transformers.role(bot, { role: value, guildId })\n return [role.id, role]\n }),\n )\n }\n\n if (resolved.channels) {\n transformed.channels = new Collection(\n Object.entries(resolved.channels).map(([key, value]) => {\n const id = bot.transformers.snowflake(key)\n const channel = value as {\n id: string\n name: string\n type: ChannelTypes\n permissions: string\n }\n return [\n id,\n {\n id,\n name: channel.name,\n type: channel.type,\n permissions: bot.transformers.snowflake(channel.permissions),\n },\n ]\n }),\n )\n }\n\n if (resolved.attachments) {\n transformed.attachments = new Collection(\n Object.entries(resolved.attachments).map(([key, value]) => {\n const id = bot.transformers.snowflake(key)\n return [id, bot.transformers.attachment(bot, value)]\n }),\n )\n }\n\n return transformed\n}\n\nexport interface InteractionDataResolved {\n messages?: Collection<bigint, Message>\n users?: Collection<bigint, User>\n members?: Collection<bigint, Member>\n roles?: Collection<bigint, Role>\n channels?: Collection<bigint, { id: bigint; name: string; type: ChannelTypes; permissions: bigint }>\n attachments?: Collection<bigint, Attachment>\n}\n\nexport interface InteractionDataOption {\n name: string\n type: ApplicationCommandOptionTypes\n value?: string | number | boolean\n options?: InteractionDataOption[]\n focused?: boolean\n}\n"],"names":["InteractionResponseTypes","InteractionTypes","Collection","baseInteraction","respond","response","options","type","ChannelMessageWithSource","content","title","Modal","ApplicationCommandAutocomplete","ApplicationCommandAutocompleteResult","isPrivate","flags","acknowledged","bot","rest","sendFollowupMessage","token","ModalSubmit","Error","sendInteractionResponse","id","data","edit","editOriginalInteractionResponse","defer","MessageComponent","DeferredUpdateMessage","DeferredChannelMessageWithSource","delete","messageId","deleteFollowupMessage","deleteOriginalInteractionResponse","transformInteraction","payload","guildId","guild_id","transformers","snowflake","undefined","user","member","interaction","Object","create","props","desiredProperties","application_id","applicationId","version","locale","guild_locale","guildLocale","app_permissions","appPermissions","message","channel_id","channelId","componentType","component_type","customId","custom_id","components","map","component","values","name","resolved","transformInteractionDataResolved","opt","interactionDataOptions","targetId","target_id","customizers","transformInteractionDataOption","option","value","focused","transformed","messages","entries","users","members","roles","role","channels","key","channel","permissions","attachments","attachment"],"mappings":"AAAA,SACEA,wBAAwB,EACxBC,gBAAgB,QAUX,oBAAmB;AAC1B,SAASC,UAAU,QAAQ,oBAAmB;AAmE9C,MAAMC,kBAA0D;IAC9D,MAAMC,SAAQC,QAAQ,EAAEC,OAAO,EAAE;QAC/B,IAAIC,OAAOP,yBAAyBQ,wBAAwB;QAE5D,4DAA4D;QAC5D,IAAI,OAAOH,aAAa,UAAUA,WAAW;YAAEI,SAASJ;QAAS;aAE5D,IAAIA,SAASK,KAAK,EAAEH,OAAOP,yBAAyBW,KAAK;aACzD,IAAI,IAAI,CAACJ,IAAI,KAAKN,iBAAiBW,8BAA8B,EAAEL,OAAOP,yBAAyBa,oCAAoC;QAE5I,0CAA0C;QAC1C,IAAIN,SAASP,yBAAyBQ,wBAAwB,IAAIF,SAASQ,WAAWT,SAASU,KAAK,GAAG;QAEvG,yFAAyF;QACzF,IAAI,IAAI,CAACC,YAAY,EAAE,OAAO,MAAM,IAAI,CAACC,GAAG,EAAEC,KAAKC,mBAAmB,CAAC,IAAI,CAACC,KAAK,EAAGf;QAEpF,2BAA2B;QAC3B,IAAI,IAAI,CAACE,IAAI,KAAKN,iBAAiBoB,WAAW,IAAId,SAASP,yBAAyBW,KAAK,EACvF,MAAM,IAAIW,MAAM,6DAA4D;QAE9E,uEAAuE;QACvE,IAAI,IAAI,CAACf,IAAI,KAAKN,iBAAiBW,8BAA8B,IAAIL,SAASP,yBAAyBa,oCAAoC,EACzI,MAAM,IAAIS,MAAM,0EAAyE;QAE3F,6FAA6F;QAC7F,IAAI,CAACN,YAAY,GAAG,IAAI;QACxB,OAAO,MAAM,IAAI,CAACC,GAAG,EAAEC,KAAKK,uBAAuB,CAAC,IAAI,CAACC,EAAE,EAAG,IAAI,CAACJ,KAAK,EAAG;YAAEb;YAAMkB,MAAMpB;QAAS;IACpG;IAEA,MAAMqB,MAAKrB,QAAQ,EAAE;QACnB,IAAI,IAAI,CAACE,IAAI,KAAKN,iBAAiBW,8BAA8B,EAAE,MAAM,IAAIU,MAAM,2CAA0C;QAE7H,4DAA4D;QAC5D,IAAI,OAAOjB,aAAa,UAAUA,WAAW;YAAEI,SAASJ;QAAS;QAEjE,OAAO,MAAM,IAAI,CAACY,GAAG,CAAEC,IAAI,CAACS,+BAA+B,CAAC,IAAI,CAACP,KAAK,EAAGf;IAC3E;IAEA,MAAMuB,OAAMd,SAAS,EAAE;QACrB,IAAI,IAAI,CAACP,IAAI,KAAKN,iBAAiBW,8BAA8B,EAAE,MAAM,IAAIU,MAAM,4CAA2C;QAC9H,IAAI,IAAI,CAACN,YAAY,EAAE,MAAM,IAAIM,MAAM,iDAAgD;QAEvF,uCAAuC;QACvC,MAAMf,OACJ,IAAI,CAACA,IAAI,KAAKN,iBAAiB4B,gBAAgB,GAC3C7B,yBAAyB8B,qBAAqB,GAC9C9B,yBAAyB+B,gCAAgC;QAE/D,0CAA0C;QAC1C,MAAMN,OAAgC,CAAC;QACvC,IAAIX,WAAWW,KAAKV,KAAK,GAAG;QAE5B,IAAI,CAACC,YAAY,GAAG,IAAI;QACxB,OAAO,MAAM,IAAI,CAACC,GAAG,EAAEC,KAAKK,uBAAuB,CAAC,IAAI,CAACC,EAAE,EAAG,IAAI,CAACJ,KAAK,EAAG;YAAEb;YAAMkB;QAAK;IAC1F;IAEA,MAAMO,QAAOC,SAAqB,EAAE;QAClC,IAAI,IAAI,CAAC1B,IAAI,KAAKN,iBAAiBW,8BAA8B,EAAE,MAAM,IAAIU,MAAM,6CAA4C;QAE/H,IAAIW,WAAW,OAAO,MAAM,IAAI,CAAChB,GAAG,EAAEC,KAAKgB,qBAAqB,CAAC,IAAI,CAACd,KAAK,EAAGa;aACzE,OAAO,MAAM,IAAI,CAAChB,GAAG,EAAEC,KAAKiB,iCAAiC,CAAC,IAAI,CAACf,KAAK;IAC/E;AACF;AAEA,OAAO,SAASgB,qBAAqBnB,GAAQ,EAAEoB,OAA2B,EAAe;IACvF,MAAMC,UAAUD,QAAQE,QAAQ,GAAGtB,IAAIuB,YAAY,CAACC,SAAS,CAACJ,QAAQE,QAAQ,IAAIG,SAAS;IAC3F,MAAMC,OAAO1B,IAAIuB,YAAY,CAACG,IAAI,CAAC1B,KAAKoB,QAAQO,MAAM,EAAED,QAAQN,QAAQM,IAAI;IAE5E,MAAME,cAA2BC,OAAOC,MAAM,CAAC5C;IAC/C,MAAM6C,QAAQ/B,IAAIuB,YAAY,CAACS,iBAAiB,CAACJ,WAAW;IAC5DA,YAAY5B,GAAG,GAAGA;IAClB4B,YAAY7B,YAAY,GAAG,KAAK;IAEhC,IAAIqB,QAAQb,EAAE,IAAIwB,MAAMxB,EAAE,EAAEqB,YAAYrB,EAAE,GAAGP,IAAIuB,YAAY,CAACC,SAAS,CAACJ,QAAQb,EAAE;IAClF,IAAIa,QAAQa,cAAc,IAAIF,MAAMG,aAAa,EAAEN,YAAYM,aAAa,GAAGlC,IAAIuB,YAAY,CAACC,SAAS,CAACJ,QAAQa,cAAc;IAChI,IAAIb,QAAQ9B,IAAI,IAAIyC,MAAMzC,IAAI,EAAEsC,YAAYtC,IAAI,GAAG8B,QAAQ9B,IAAI;IAC/D,IAAI8B,QAAQjB,KAAK,IAAI4B,MAAM5B,KAAK,EAAEyB,YAAYzB,KAAK,GAAGiB,QAAQjB,KAAK;IACnE,IAAIiB,QAAQe,OAAO,IAAIJ,MAAMI,OAAO,EAAEP,YAAYO,OAAO,GAAGf,QAAQe,OAAO;IAC3E,IAAIf,QAAQgB,MAAM,IAAIL,MAAMK,MAAM,EAAER,YAAYQ,MAAM,GAAGhB,QAAQgB,MAAM;IACvE,IAAIhB,QAAQiB,YAAY,IAAIN,MAAMO,WAAW,EAAEV,YAAYU,WAAW,GAAGlB,QAAQiB,YAAY;IAC7F,IAAIhB,WAAWU,MAAMV,OAAO,EAAEO,YAAYP,OAAO,GAAGA;IACpD,IAAIU,MAAML,IAAI,EAAEE,YAAYF,IAAI,GAAGA;IACnC,IAAIN,QAAQmB,eAAe,IAAIR,MAAMS,cAAc,EAAEZ,YAAYY,cAAc,GAAGxC,IAAIuB,YAAY,CAACC,SAAS,CAACJ,QAAQmB,eAAe;IACpI,IAAInB,QAAQqB,OAAO,IAAIV,MAAMU,OAAO,EAAEb,YAAYa,OAAO,GAAGzC,IAAIuB,YAAY,CAACkB,OAAO,CAACzC,KAAKoB,QAAQqB,OAAO;IACzG,IAAIrB,QAAQsB,UAAU,IAAIX,MAAMY,SAAS,EAAEf,YAAYe,SAAS,GAAG3C,IAAIuB,YAAY,CAACC,SAAS,CAACJ,QAAQsB,UAAU;IAChH,IAAItB,QAAQO,MAAM,IAAIN,WAAWU,MAAMJ,MAAM,EAAEC,YAAYD,MAAM,GAAG3B,IAAIuB,YAAY,CAACI,MAAM,CAAC3B,KAAKoB,QAAQO,MAAM,EAAEN,SAASK,KAAKnB,EAAE;IACjI,IAAIa,QAAQZ,IAAI,IAAIuB,MAAMvB,IAAI,EAAE;QAC9BoB,YAAYpB,IAAI,GAAG;YACjBlB,MAAM8B,QAAQZ,IAAI,CAAClB,IAAI;YACvBsD,eAAexB,QAAQZ,IAAI,CAACqC,cAAc;YAC1CC,UAAU1B,QAAQZ,IAAI,CAACuC,SAAS;YAChCC,YAAY5B,QAAQZ,IAAI,CAACwC,UAAU,EAAEC,IAAI,CAACC,YAAclD,IAAIuB,YAAY,CAAC2B,SAAS,CAAClD,KAAKkD;YACxFC,QAAQ/B,QAAQZ,IAAI,CAAC2C,MAAM;YAC3B5C,IAAIa,QAAQZ,IAAI,CAACD,EAAE,GAAGP,IAAIuB,YAAY,CAACC,SAAS,CAACJ,QAAQZ,IAAI,CAACD,EAAE,IAAIkB,SAAS;YAC7E2B,MAAMhC,QAAQZ,IAAI,CAAC4C,IAAI;YACvBC,UAAUjC,QAAQZ,IAAI,CAAC6C,QAAQ,GAAGC,iCAAiCtD,KAAKoB,QAAQZ,IAAI,CAAC6C,QAAQ,EAAEhC,WAAWI,SAAS;YACnHpC,SAAS+B,QAAQZ,IAAI,CAACnB,OAAO,EAAE4D,IAAI,CAACM,MAAQvD,IAAIuB,YAAY,CAACiC,sBAAsB,CAACxD,KAAKuD;YACzFE,UAAUrC,QAAQZ,IAAI,CAACkD,SAAS,GAAG1D,IAAIuB,YAAY,CAACC,SAAS,CAACJ,QAAQZ,IAAI,CAACkD,SAAS,IAAIjC,SAAS;QAEnG;IACF,CAAC;IAED,OAAOzB,IAAIuB,YAAY,CAACoC,WAAW,CAAC/B,WAAW,CAAC5B,KAAKoB,SAASQ;AAChE,CAAC;AAED,OAAO,SAASgC,+BAA+B5D,GAAQ,EAAE6D,MAAoC,EAAyB;IACpH,MAAMN,MAAM;QACVH,MAAMS,OAAOT,IAAI;QACjB9D,MAAMuE,OAAOvE,IAAI;QACjBwE,OAAOD,OAAOC,KAAK;QACnBzE,SAASwE,OAAOxE,OAAO;QACvB0E,SAASF,OAAOE,OAAO;IACzB;IAEA,OAAOR;AACT,CAAC;AAED,OAAO,SAASD,iCAAiCtD,GAAQ,EAAEqD,QAAwC,EAAEhC,OAAgB,EAA2B;IAC9I,MAAM2C,cAAuC,CAAC;IAE9C,IAAIX,SAASY,QAAQ,EAAE;QACrBD,YAAYC,QAAQ,GAAG,IAAIhF,WACzB4C,OAAOqC,OAAO,CAACb,SAASY,QAAQ,EAAEhB,GAAG,CAAC,CAAC,CAAC1C,IAAIuD,MAAM,GAAK;YACrD,MAAMrB,UAAmBzC,IAAIuB,YAAY,CAACkB,OAAO,CAACzC,KAAK8D;YACvD,OAAO;gBAACrB,QAAQlC,EAAE;gBAAEkC;aAAQ;QAC9B;IAEJ,CAAC;IAED,IAAIY,SAASc,KAAK,EAAE;QAClBH,YAAYG,KAAK,GAAG,IAAIlF,WACtB4C,OAAOqC,OAAO,CAACb,SAASc,KAAK,EAAElB,GAAG,CAAC,CAAC,CAAC1C,IAAIuD,MAAM,GAAK;YAClD,MAAMpC,OAAO1B,IAAIuB,YAAY,CAACG,IAAI,CAAC1B,KAAK8D;YACxC,OAAO;gBAACpC,KAAKnB,EAAE;gBAAEmB;aAAK;QACxB;IAEJ,CAAC;IAED,IAAIL,WAAWgC,SAASe,OAAO,EAAE;QAC/BJ,YAAYI,OAAO,GAAG,IAAInF,WACxB4C,OAAOqC,OAAO,CAACb,SAASe,OAAO,EAAEnB,GAAG,CAAC,CAAC,CAAC1C,IAAIuD,MAAM,GAAK;YACpD,MAAMnC,SAAiB3B,IAAIuB,YAAY,CAACI,MAAM,CAAC3B,KAAK8D,OAAOzC,SAASrB,IAAIuB,YAAY,CAACC,SAAS,CAACjB;YAC/F,OAAO;gBAACoB,OAAOpB,EAAE;gBAAEoB;aAAO;QAC5B;IAEJ,CAAC;IAED,IAAIN,WAAWgC,SAASgB,KAAK,EAAE;QAC7BL,YAAYK,KAAK,GAAG,IAAIpF,WACtB4C,OAAOqC,OAAO,CAACb,SAASgB,KAAK,EAAEpB,GAAG,CAAC,CAAC,CAAC1C,IAAIuD,MAAM,GAAK;YAClD,MAAMQ,OAAOtE,IAAIuB,YAAY,CAAC+C,IAAI,CAACtE,KAAK;gBAAEsE,MAAMR;gBAAOzC;YAAQ;YAC/D,OAAO;gBAACiD,KAAK/D,EAAE;gBAAE+D;aAAK;QACxB;IAEJ,CAAC;IAED,IAAIjB,SAASkB,QAAQ,EAAE;QACrBP,YAAYO,QAAQ,GAAG,IAAItF,WACzB4C,OAAOqC,OAAO,CAACb,SAASkB,QAAQ,EAAEtB,GAAG,CAAC,CAAC,CAACuB,KAAKV,MAAM,GAAK;YACtD,MAAMvD,KAAKP,IAAIuB,YAAY,CAACC,SAAS,CAACgD;YACtC,MAAMC,UAAUX;YAMhB,OAAO;gBACLvD;gBACA;oBACEA;oBACA6C,MAAMqB,QAAQrB,IAAI;oBAClB9D,MAAMmF,QAAQnF,IAAI;oBAClBoF,aAAa1E,IAAIuB,YAAY,CAACC,SAAS,CAACiD,QAAQC,WAAW;gBAC7D;aACD;QACH;IAEJ,CAAC;IAED,IAAIrB,SAASsB,WAAW,EAAE;QACxBX,YAAYW,WAAW,GAAG,IAAI1F,WAC5B4C,OAAOqC,OAAO,CAACb,SAASsB,WAAW,EAAE1B,GAAG,CAAC,CAAC,CAACuB,KAAKV,MAAM,GAAK;YACzD,MAAMvD,KAAKP,IAAIuB,YAAY,CAACC,SAAS,CAACgD;YACtC,OAAO;gBAACjE;gBAAIP,IAAIuB,YAAY,CAACqD,UAAU,CAAC5E,KAAK8D;aAAO;QACtD;IAEJ,CAAC;IAED,OAAOE;AACT,CAAC"}
@@ -3,28 +3,92 @@ import type { Bot } from '../index.js';
3
3
  export declare function transformInvite(bot: Bot, invite: DiscordInviteCreate): {
4
4
  guildId?: bigint | undefined;
5
5
  inviter?: {
6
- flags?: import("@discordeno/types").UserFlags | undefined;
7
6
  locale?: string | undefined;
7
+ flags?: {
8
+ bitfield: number;
9
+ contains: (bits: number) => boolean;
10
+ add: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
11
+ remove: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
12
+ toJSON: () => number;
13
+ } | undefined;
8
14
  avatar?: bigint | undefined;
9
15
  email?: string | undefined;
16
+ banner?: bigint | undefined;
17
+ toggles?: {
18
+ bot: boolean;
19
+ system: boolean;
20
+ verified: boolean;
21
+ mfaEnabled: boolean;
22
+ bitfield: number;
23
+ list: () => Record<"bot" | "system" | "verified" | "mfaEnabled", boolean>;
24
+ has: (permissions: "bot" | "system" | "verified" | "mfaEnabled" | ("bot" | "system" | "verified" | "mfaEnabled")[]) => boolean;
25
+ contains: (bits: number) => boolean;
26
+ add: (bits: number) => import("./toggles/user.js").UserToggles;
27
+ remove: (bits: number) => import("./toggles/user.js").UserToggles;
28
+ toJSON: () => number;
29
+ } | undefined;
30
+ globalName?: string | undefined;
10
31
  premiumType?: import("@discordeno/types").PremiumTypes | undefined;
11
- publicFlags?: import("@discordeno/types").UserFlags | undefined;
12
- id: bigint;
32
+ publicFlags?: {
33
+ bitfield: number;
34
+ contains: (bits: number) => boolean;
35
+ add: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
36
+ remove: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
37
+ toJSON: () => number;
38
+ } | undefined;
39
+ accentColor?: number | undefined;
13
40
  username: string;
41
+ id: bigint;
14
42
  discriminator: string;
15
- toggles: import("./index.js").UserToggles;
43
+ bot: boolean;
44
+ system: boolean;
45
+ verified: boolean;
46
+ tag: string;
47
+ mfaEnabled: boolean;
16
48
  } | undefined;
17
49
  targetUser?: {
18
- flags?: import("@discordeno/types").UserFlags | undefined;
19
50
  locale?: string | undefined;
51
+ flags?: {
52
+ bitfield: number;
53
+ contains: (bits: number) => boolean;
54
+ add: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
55
+ remove: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
56
+ toJSON: () => number;
57
+ } | undefined;
20
58
  avatar?: bigint | undefined;
21
59
  email?: string | undefined;
60
+ banner?: bigint | undefined;
61
+ toggles?: {
62
+ bot: boolean;
63
+ system: boolean;
64
+ verified: boolean;
65
+ mfaEnabled: boolean;
66
+ bitfield: number;
67
+ list: () => Record<"bot" | "system" | "verified" | "mfaEnabled", boolean>;
68
+ has: (permissions: "bot" | "system" | "verified" | "mfaEnabled" | ("bot" | "system" | "verified" | "mfaEnabled")[]) => boolean;
69
+ contains: (bits: number) => boolean;
70
+ add: (bits: number) => import("./toggles/user.js").UserToggles;
71
+ remove: (bits: number) => import("./toggles/user.js").UserToggles;
72
+ toJSON: () => number;
73
+ } | undefined;
74
+ globalName?: string | undefined;
22
75
  premiumType?: import("@discordeno/types").PremiumTypes | undefined;
23
- publicFlags?: import("@discordeno/types").UserFlags | undefined;
24
- id: bigint;
76
+ publicFlags?: {
77
+ bitfield: number;
78
+ contains: (bits: number) => boolean;
79
+ add: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
80
+ remove: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
81
+ toJSON: () => number;
82
+ } | undefined;
83
+ accentColor?: number | undefined;
25
84
  username: string;
85
+ id: bigint;
26
86
  discriminator: string;
27
- toggles: import("./index.js").UserToggles;
87
+ bot: boolean;
88
+ system: boolean;
89
+ verified: boolean;
90
+ tag: string;
91
+ mfaEnabled: boolean;
28
92
  } | undefined;
29
93
  targetApplication?: {
30
94
  flags?: import("@discordeno/types").ApplicationFlags | undefined;
@@ -36,16 +100,48 @@ export declare function transformInvite(bot: Bot, invite: DiscordInviteCreate):
36
100
  slug?: string | undefined;
37
101
  coverImage?: bigint | undefined;
38
102
  owner?: {
39
- flags?: import("@discordeno/types").UserFlags | undefined;
40
103
  locale?: string | undefined;
104
+ flags?: {
105
+ bitfield: number;
106
+ contains: (bits: number) => boolean;
107
+ add: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
108
+ remove: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
109
+ toJSON: () => number;
110
+ } | undefined;
41
111
  avatar?: bigint | undefined;
42
112
  email?: string | undefined;
113
+ banner?: bigint | undefined;
114
+ toggles?: {
115
+ bot: boolean;
116
+ system: boolean;
117
+ verified: boolean;
118
+ mfaEnabled: boolean;
119
+ bitfield: number;
120
+ list: () => Record<"bot" | "system" | "verified" | "mfaEnabled", boolean>;
121
+ has: (permissions: "bot" | "system" | "verified" | "mfaEnabled" | ("bot" | "system" | "verified" | "mfaEnabled")[]) => boolean;
122
+ contains: (bits: number) => boolean;
123
+ add: (bits: number) => import("./toggles/user.js").UserToggles;
124
+ remove: (bits: number) => import("./toggles/user.js").UserToggles;
125
+ toJSON: () => number;
126
+ } | undefined;
127
+ globalName?: string | undefined;
43
128
  premiumType?: import("@discordeno/types").PremiumTypes | undefined;
44
- publicFlags?: import("@discordeno/types").UserFlags | undefined;
45
- id: bigint;
129
+ publicFlags?: {
130
+ bitfield: number;
131
+ contains: (bits: number) => boolean;
132
+ add: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
133
+ remove: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
134
+ toJSON: () => number;
135
+ } | undefined;
136
+ accentColor?: number | undefined;
46
137
  username: string;
138
+ id: bigint;
47
139
  discriminator: string;
48
- toggles: import("./index.js").UserToggles;
140
+ bot: boolean;
141
+ system: boolean;
142
+ verified: boolean;
143
+ tag: string;
144
+ mfaEnabled: boolean;
49
145
  } | undefined;
50
146
  team?: {
51
147
  icon?: bigint | undefined;
@@ -56,7 +152,7 @@ export declare function transformInvite(bot: Bot, invite: DiscordInviteCreate):
56
152
  membershipState: import("@discordeno/types").TeamMembershipStates;
57
153
  permissions: "*"[];
58
154
  teamId: bigint;
59
- user: import("./member.js").User;
155
+ user: import("./user.js").User;
60
156
  }[];
61
157
  } | undefined;
62
158
  guildId?: bigint | undefined;
@@ -67,14 +163,14 @@ export declare function transformInvite(bot: Bot, invite: DiscordInviteCreate):
67
163
  botRequireCodeGrant: boolean;
68
164
  verifyKey: string;
69
165
  } | undefined;
70
- createdAt: number;
166
+ channelId: bigint;
71
167
  code: string;
168
+ createdAt: number;
169
+ targetType: import("@discordeno/types").TargetTypes;
72
170
  uses: number;
73
171
  temporary: boolean;
74
- channelId: bigint;
75
- maxAge: number;
76
172
  maxUses: number;
77
- targetType: import("@discordeno/types").TargetTypes;
173
+ maxAge: number;
78
174
  };
79
175
  export interface Invite extends ReturnType<typeof transformInvite> {
80
176
  }
@@ -1 +1 @@
1
- {"version":3,"file":"invite.d.ts","sourceRoot":"","sources":["../../src/transformers/invite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAItC,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCpE;AAED,MAAM,WAAW,MAAO,SAAQ,UAAU,CAAC,OAAO,eAAe,CAAC;CAAG"}
1
+ {"version":3,"file":"invite.d.ts","sourceRoot":"","sources":["../../src/transformers/invite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAItC,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCpE;AAED,MAAM,WAAW,MAAO,SAAQ,UAAU,CAAC,OAAO,eAAe,CAAC;CAAG"}
@@ -1,45 +1,39 @@
1
- import type { DiscordMember, DiscordUser } from '@discordeno/types';
1
+ import type { BigString, DiscordMember } from '@discordeno/types';
2
2
  import type { Bot } from '../bot.js';
3
+ import { Permissions } from './toggles/Permissions.js';
3
4
  import { MemberToggles } from './toggles/member.js';
4
- import { UserToggles } from './toggles/user.js';
5
- export declare function transformUser(bot: Bot, payload: DiscordUser): {
6
- flags?: import("@discordeno/types").UserFlags | undefined;
7
- locale?: string | undefined;
8
- avatar?: bigint | undefined;
9
- email?: string | undefined;
10
- premiumType?: import("@discordeno/types").PremiumTypes | undefined;
11
- publicFlags?: import("@discordeno/types").UserFlags | undefined;
12
- id: bigint;
13
- username: string;
14
- discriminator: string;
15
- toggles: UserToggles;
16
- };
17
- export declare function transformMember(bot: Bot, payload: DiscordMember, guildId: bigint, userId: bigint): {
18
- avatar?: bigint | undefined;
19
- permissions?: bigint | undefined;
20
- nick?: string | undefined;
21
- user?: {
22
- flags?: import("@discordeno/types").UserFlags | undefined;
23
- locale?: string | undefined;
24
- avatar?: bigint | undefined;
25
- email?: string | undefined;
26
- premiumType?: import("@discordeno/types").PremiumTypes | undefined;
27
- publicFlags?: import("@discordeno/types").UserFlags | undefined;
28
- id: bigint;
29
- username: string;
30
- discriminator: string;
31
- toggles: UserToggles;
32
- } | undefined;
33
- premiumSince?: number | undefined;
34
- communicationDisabledUntil?: number | undefined;
5
+ import type { User } from './user.js';
6
+ export declare function transformMember(bot: Bot, payload: DiscordMember, guildId: BigString, userId: BigString): Member;
7
+ export interface BaseMember {
8
+ /** Whether the user is deafened in voice channels */
9
+ deaf?: boolean;
10
+ /** Whether the user is muted in voice channels */
11
+ mute?: boolean;
12
+ /** Whether the user has not yet passed the guild's Membership Screening requirements */
13
+ pending?: boolean;
14
+ }
15
+ export interface Member extends BaseMember {
16
+ /** The user id of the member. */
35
17
  id: bigint;
36
- toggles: MemberToggles;
18
+ /** The compressed form of all the boolean values on this user. */
19
+ toggles?: MemberToggles;
20
+ /** The guild id where this member is. */
37
21
  guildId: bigint;
22
+ /** The user this guild member represents */
23
+ user?: User;
24
+ /** This users guild nickname */
25
+ nick?: string;
26
+ /** The members custom avatar for this server. */
27
+ avatar?: bigint;
28
+ /** Array of role object ids */
38
29
  roles: bigint[];
30
+ /** When the user joined the guild */
39
31
  joinedAt: number;
40
- };
41
- export interface Member extends ReturnType<typeof transformMember> {
42
- }
43
- export interface User extends ReturnType<typeof transformUser> {
32
+ /** When the user started boosting the guild */
33
+ premiumSince?: number;
34
+ /** The permissions this member has in the guild. Only present on interaction events. */
35
+ permissions?: Permissions;
36
+ /** when the user's timeout will expire and the user will be able to communicate in the guild again (set null to remove timeout), null or a time in the past if the user is not timed out */
37
+ communicationDisabledUntil?: number;
44
38
  }
45
39
  //# sourceMappingURL=member.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"member.d.ts","sourceRoot":"","sources":["../../src/transformers/member.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAG/C,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW;;;;;;;;;;;EAe3D;AAGD,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;EAgBhG;AAED,MAAM,WAAW,MAAO,SAAQ,UAAU,CAAC,OAAO,eAAe,CAAC;CAAG;AACrE,MAAM,WAAW,IAAK,SAAQ,UAAU,CAAC,OAAO,aAAa,CAAC;CAAG"}
1
+ {"version":3,"file":"member.d.ts","sourceRoot":"","sources":["../../src/transformers/member.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAcrC,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAoB/G;AAED,MAAM,WAAW,UAAU;IACzB,qDAAqD;IACrD,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,kDAAkD;IAClD,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,wFAAwF;IACxF,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,MAAO,SAAQ,UAAU;IACxC,iCAAiC;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,kEAAkE;IAClE,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAA;IACf,4CAA4C;IAC5C,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+BAA+B;IAC/B,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,wFAAwF;IACxF,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,4LAA4L;IAC5L,0BAA0B,CAAC,EAAE,MAAM,CAAA;CACpC"}
@@ -1,38 +1,34 @@
1
1
  import { iconHashToBigInt } from '@discordeno/utils';
2
+ import { Permissions } from './toggles/Permissions.js';
2
3
  import { MemberToggles } from './toggles/member.js';
3
- import { UserToggles } from './toggles/user.js';
4
- // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
5
- export function transformUser(bot, payload) {
6
- const user = {
7
- id: bot.transformers.snowflake(payload.id || ''),
8
- username: payload.username,
9
- discriminator: payload.discriminator,
10
- avatar: payload.avatar ? iconHashToBigInt(payload.avatar) : undefined,
11
- locale: payload.locale,
12
- email: payload.email ?? undefined,
13
- flags: payload.flags,
14
- premiumType: payload.premium_type,
15
- publicFlags: payload.public_flags,
16
- toggles: new UserToggles(payload)
17
- };
18
- return user;
19
- }
20
- // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
4
+ const baseMember = {
5
+ get deaf () {
6
+ return !!this.toggles?.has('deaf');
7
+ },
8
+ get mute () {
9
+ return !!this.toggles?.has('mute');
10
+ },
11
+ get pending () {
12
+ return !!this.toggles?.has('pending');
13
+ }
14
+ };
21
15
  export function transformMember(bot, payload, guildId, userId) {
22
- const member = {
23
- id: userId,
24
- guildId,
25
- user: payload.user ? bot.transformers.user(bot, payload.user) : undefined,
26
- nick: payload.nick ?? undefined,
27
- roles: payload.roles.map((id)=>bot.transformers.snowflake(id)),
28
- joinedAt: Date.parse(payload.joined_at),
29
- premiumSince: payload.premium_since ? Date.parse(payload.premium_since) : undefined,
30
- avatar: payload.avatar ? iconHashToBigInt(payload.avatar) : undefined,
31
- permissions: payload.permissions ? bot.transformers.snowflake(payload.permissions) : undefined,
32
- communicationDisabledUntil: payload.communication_disabled_until ? Date.parse(payload.communication_disabled_until) : undefined,
33
- toggles: new MemberToggles(payload)
34
- };
35
- return member;
16
+ const member = Object.create(baseMember);
17
+ const props = bot.transformers.desiredProperties.member;
18
+ if (userId && props.id) member.id = typeof userId === "string" ? bot.transformers.snowflake(userId) : userId;
19
+ if (guildId && props.guildId) member.guildId = typeof guildId === "string" ? bot.transformers.snowflake(guildId) : guildId;
20
+ if (payload.user && props.user) member.user = bot.transformers.user(bot, payload.user);
21
+ if (payload.nick && props.nick) member.nick = payload.nick;
22
+ if (payload.roles && props.roles) member.roles = payload.roles.map((id)=>bot.transformers.snowflake(id));
23
+ if (payload.joined_at && props.joinedAt) member.joinedAt = Date.parse(payload.joined_at);
24
+ if (payload.premium_since && props.premiumSince) member.premiumSince = Date.parse(payload.premium_since);
25
+ if (payload.communication_disabled_until && props.communicationDisabledUntil) member.communicationDisabledUntil = Date.parse(payload.communication_disabled_until);
26
+ if (payload.avatar && props.avatar) member.avatar = iconHashToBigInt(payload.avatar);
27
+ if (payload.permissions && props.permissions) member.permissions = new Permissions(payload.permissions);
28
+ if (props.deaf || props.mute || props.pending) {
29
+ member.toggles = new MemberToggles(payload);
30
+ }
31
+ return bot.transformers.customizers.member(bot, payload, member);
36
32
  }
37
33
 
38
34
  //# sourceMappingURL=member.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/transformers/member.ts"],"sourcesContent":["import type { DiscordMember, DiscordUser } from '@discordeno/types'\nimport { iconHashToBigInt } from '@discordeno/utils'\nimport type { Bot } from '../bot.js'\nimport type { Optionalize } from '../optionalize.js'\nimport { MemberToggles } from './toggles/member.js'\nimport { UserToggles } from './toggles/user.js'\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function transformUser(bot: Bot, payload: DiscordUser) {\n const user = {\n id: bot.transformers.snowflake(payload.id || ''),\n username: payload.username,\n discriminator: payload.discriminator,\n avatar: payload.avatar ? iconHashToBigInt(payload.avatar) : undefined,\n locale: payload.locale,\n email: payload.email ?? undefined,\n flags: payload.flags,\n premiumType: payload.premium_type,\n publicFlags: payload.public_flags,\n toggles: new UserToggles(payload),\n }\n\n return user as Optionalize<typeof user>\n}\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function transformMember(bot: Bot, payload: DiscordMember, guildId: bigint, userId: bigint) {\n const member = {\n id: userId,\n guildId,\n user: payload.user ? bot.transformers.user(bot, payload.user) : undefined,\n nick: payload.nick ?? undefined,\n roles: payload.roles.map((id) => bot.transformers.snowflake(id)),\n joinedAt: Date.parse(payload.joined_at),\n premiumSince: payload.premium_since ? Date.parse(payload.premium_since) : undefined,\n avatar: payload.avatar ? iconHashToBigInt(payload.avatar) : undefined,\n permissions: payload.permissions ? bot.transformers.snowflake(payload.permissions) : undefined,\n communicationDisabledUntil: payload.communication_disabled_until ? Date.parse(payload.communication_disabled_until) : undefined,\n toggles: new MemberToggles(payload),\n }\n\n return member as Optionalize<typeof member>\n}\n\nexport interface Member extends ReturnType<typeof transformMember> {}\nexport interface User extends ReturnType<typeof transformUser> {}\n"],"names":["iconHashToBigInt","MemberToggles","UserToggles","transformUser","bot","payload","user","id","transformers","snowflake","username","discriminator","avatar","undefined","locale","email","flags","premiumType","premium_type","publicFlags","public_flags","toggles","transformMember","guildId","userId","member","nick","roles","map","joinedAt","Date","parse","joined_at","premiumSince","premium_since","permissions","communicationDisabledUntil","communication_disabled_until"],"mappings":"AACA,SAASA,gBAAgB,QAAQ,oBAAmB;AAGpD,SAASC,aAAa,QAAQ,sBAAqB;AACnD,SAASC,WAAW,QAAQ,oBAAmB;AAE/C,4EAA4E;AAC5E,OAAO,SAASC,cAAcC,GAAQ,EAAEC,OAAoB,EAAE;IAC5D,MAAMC,OAAO;QACXC,IAAIH,IAAII,YAAY,CAACC,SAAS,CAACJ,QAAQE,EAAE,IAAI;QAC7CG,UAAUL,QAAQK,QAAQ;QAC1BC,eAAeN,QAAQM,aAAa;QACpCC,QAAQP,QAAQO,MAAM,GAAGZ,iBAAiBK,QAAQO,MAAM,IAAIC,SAAS;QACrEC,QAAQT,QAAQS,MAAM;QACtBC,OAAOV,QAAQU,KAAK,IAAIF;QACxBG,OAAOX,QAAQW,KAAK;QACpBC,aAAaZ,QAAQa,YAAY;QACjCC,aAAad,QAAQe,YAAY;QACjCC,SAAS,IAAInB,YAAYG;IAC3B;IAEA,OAAOC;AACT,CAAC;AAED,4EAA4E;AAC5E,OAAO,SAASgB,gBAAgBlB,GAAQ,EAAEC,OAAsB,EAAEkB,OAAe,EAAEC,MAAc,EAAE;IACjG,MAAMC,SAAS;QACblB,IAAIiB;QACJD;QACAjB,MAAMD,QAAQC,IAAI,GAAGF,IAAII,YAAY,CAACF,IAAI,CAACF,KAAKC,QAAQC,IAAI,IAAIO,SAAS;QACzEa,MAAMrB,QAAQqB,IAAI,IAAIb;QACtBc,OAAOtB,QAAQsB,KAAK,CAACC,GAAG,CAAC,CAACrB,KAAOH,IAAII,YAAY,CAACC,SAAS,CAACF;QAC5DsB,UAAUC,KAAKC,KAAK,CAAC1B,QAAQ2B,SAAS;QACtCC,cAAc5B,QAAQ6B,aAAa,GAAGJ,KAAKC,KAAK,CAAC1B,QAAQ6B,aAAa,IAAIrB,SAAS;QACnFD,QAAQP,QAAQO,MAAM,GAAGZ,iBAAiBK,QAAQO,MAAM,IAAIC,SAAS;QACrEsB,aAAa9B,QAAQ8B,WAAW,GAAG/B,IAAII,YAAY,CAACC,SAAS,CAACJ,QAAQ8B,WAAW,IAAItB,SAAS;QAC9FuB,4BAA4B/B,QAAQgC,4BAA4B,GAAGP,KAAKC,KAAK,CAAC1B,QAAQgC,4BAA4B,IAAIxB,SAAS;QAC/HQ,SAAS,IAAIpB,cAAcI;IAC7B;IAEA,OAAOoB;AACT,CAAC"}
1
+ {"version":3,"sources":["../../src/transformers/member.ts"],"sourcesContent":["import type { BigString, DiscordMember } from '@discordeno/types'\nimport { iconHashToBigInt } from '@discordeno/utils'\nimport type { Bot } from '../bot.js'\nimport { Permissions } from './toggles/Permissions.js'\nimport { MemberToggles } from './toggles/member.js'\nimport type { User } from './user.js'\n\nconst baseMember: Partial<Member> & BaseMember = {\n get deaf() {\n return !!this.toggles?.has('deaf')\n },\n get mute() {\n return !!this.toggles?.has('mute')\n },\n get pending() {\n return !!this.toggles?.has('pending')\n },\n}\n\nexport function transformMember(bot: Bot, payload: DiscordMember, guildId: BigString, userId: BigString): Member {\n const member: Member = Object.create(baseMember)\n const props = bot.transformers.desiredProperties.member\n\n if (userId && props.id) member.id = typeof userId === \"string\" ? bot.transformers.snowflake(userId) : userId\n if (guildId && props.guildId) member.guildId = typeof guildId === \"string\" ? bot.transformers.snowflake(guildId) : guildId\n if (payload.user && props.user) member.user = bot.transformers.user(bot, payload.user)\n if (payload.nick && props.nick) member.nick = payload.nick\n if (payload.roles && props.roles) member.roles = payload.roles.map((id) => bot.transformers.snowflake(id))\n if (payload.joined_at && props.joinedAt) member.joinedAt = Date.parse(payload.joined_at)\n if (payload.premium_since && props.premiumSince) member.premiumSince = Date.parse(payload.premium_since)\n if (payload.communication_disabled_until && props.communicationDisabledUntil)\n member.communicationDisabledUntil = Date.parse(payload.communication_disabled_until)\n if (payload.avatar && props.avatar) member.avatar = iconHashToBigInt(payload.avatar)\n if (payload.permissions && props.permissions) member.permissions = new Permissions(payload.permissions)\n if (props.deaf || props.mute || props.pending) {\n member.toggles = new MemberToggles(payload)\n }\n\n return bot.transformers.customizers.member(bot, payload, member)\n}\n\nexport interface BaseMember {\n /** Whether the user is deafened in voice channels */\n deaf?: boolean\n /** Whether the user is muted in voice channels */\n mute?: boolean\n /** Whether the user has not yet passed the guild's Membership Screening requirements */\n pending?: boolean\n}\n\nexport interface Member extends BaseMember {\n /** The user id of the member. */\n id: bigint\n /** The compressed form of all the boolean values on this user. */\n toggles?: MemberToggles\n /** The guild id where this member is. */\n guildId: bigint\n /** The user this guild member represents */\n user?: User\n /** This users guild nickname */\n nick?: string\n /** The members custom avatar for this server. */\n avatar?: bigint\n /** Array of role object ids */\n roles: bigint[]\n /** When the user joined the guild */\n joinedAt: number\n /** When the user started boosting the guild */\n premiumSince?: number\n /** The permissions this member has in the guild. Only present on interaction events. */\n permissions?: Permissions\n /** when the user's timeout will expire and the user will be able to communicate in the guild again (set null to remove timeout), null or a time in the past if the user is not timed out */\n communicationDisabledUntil?: number\n}\n"],"names":["iconHashToBigInt","Permissions","MemberToggles","baseMember","deaf","toggles","has","mute","pending","transformMember","bot","payload","guildId","userId","member","Object","create","props","transformers","desiredProperties","id","snowflake","user","nick","roles","map","joined_at","joinedAt","Date","parse","premium_since","premiumSince","communication_disabled_until","communicationDisabledUntil","avatar","permissions","customizers"],"mappings":"AACA,SAASA,gBAAgB,QAAQ,oBAAmB;AAEpD,SAASC,WAAW,QAAQ,2BAA0B;AACtD,SAASC,aAAa,QAAQ,sBAAqB;AAGnD,MAAMC,aAA2C;IAC/C,IAAIC,QAAO;QACT,OAAO,CAAC,CAAC,IAAI,CAACC,OAAO,EAAEC,IAAI;IAC7B;IACA,IAAIC,QAAO;QACT,OAAO,CAAC,CAAC,IAAI,CAACF,OAAO,EAAEC,IAAI;IAC7B;IACA,IAAIE,WAAU;QACZ,OAAO,CAAC,CAAC,IAAI,CAACH,OAAO,EAAEC,IAAI;IAC7B;AACF;AAEA,OAAO,SAASG,gBAAgBC,GAAQ,EAAEC,OAAsB,EAAEC,OAAkB,EAAEC,MAAiB,EAAU;IAC/G,MAAMC,SAAiBC,OAAOC,MAAM,CAACb;IACrC,MAAMc,QAAQP,IAAIQ,YAAY,CAACC,iBAAiB,CAACL,MAAM;IAEvD,IAAID,UAAUI,MAAMG,EAAE,EAAEN,OAAOM,EAAE,GAAG,OAAOP,WAAW,WAAYH,IAAIQ,YAAY,CAACG,SAAS,CAACR,UAAUA,MAAM;IAC7G,IAAID,WAAWK,MAAML,OAAO,EAAEE,OAAOF,OAAO,GAAG,OAAOA,YAAY,WAAYF,IAAIQ,YAAY,CAACG,SAAS,CAACT,WAAWA,OAAO;IAC3H,IAAID,QAAQW,IAAI,IAAIL,MAAMK,IAAI,EAAER,OAAOQ,IAAI,GAAGZ,IAAIQ,YAAY,CAACI,IAAI,CAACZ,KAAKC,QAAQW,IAAI;IACrF,IAAIX,QAAQY,IAAI,IAAIN,MAAMM,IAAI,EAAET,OAAOS,IAAI,GAAGZ,QAAQY,IAAI;IAC1D,IAAIZ,QAAQa,KAAK,IAAIP,MAAMO,KAAK,EAAEV,OAAOU,KAAK,GAAGb,QAAQa,KAAK,CAACC,GAAG,CAAC,CAACL,KAAOV,IAAIQ,YAAY,CAACG,SAAS,CAACD;IACtG,IAAIT,QAAQe,SAAS,IAAIT,MAAMU,QAAQ,EAAEb,OAAOa,QAAQ,GAAGC,KAAKC,KAAK,CAAClB,QAAQe,SAAS;IACvF,IAAIf,QAAQmB,aAAa,IAAIb,MAAMc,YAAY,EAAEjB,OAAOiB,YAAY,GAAGH,KAAKC,KAAK,CAAClB,QAAQmB,aAAa;IACvG,IAAInB,QAAQqB,4BAA4B,IAAIf,MAAMgB,0BAA0B,EAC1EnB,OAAOmB,0BAA0B,GAAGL,KAAKC,KAAK,CAAClB,QAAQqB,4BAA4B;IACrF,IAAIrB,QAAQuB,MAAM,IAAIjB,MAAMiB,MAAM,EAAEpB,OAAOoB,MAAM,GAAGlC,iBAAiBW,QAAQuB,MAAM;IACnF,IAAIvB,QAAQwB,WAAW,IAAIlB,MAAMkB,WAAW,EAAErB,OAAOqB,WAAW,GAAG,IAAIlC,YAAYU,QAAQwB,WAAW;IACtG,IAAIlB,MAAMb,IAAI,IAAIa,MAAMV,IAAI,IAAIU,MAAMT,OAAO,EAAE;QAC7CM,OAAOT,OAAO,GAAG,IAAIH,cAAcS;IACrC,CAAC;IAED,OAAOD,IAAIQ,YAAY,CAACkB,WAAW,CAACtB,MAAM,CAACJ,KAAKC,SAASG;AAC3D,CAAC"}