@discordeno/bot 19.0.0-next.e70bfc3 → 19.0.0-next.eb6dd97

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 (364) hide show
  1. package/dist/bot.d.ts +12 -2
  2. package/dist/bot.d.ts.map +1 -1
  3. package/dist/bot.js +10 -1
  4. package/dist/bot.js.map +1 -1
  5. package/dist/commandOptionsParser.d.ts +3 -0
  6. package/dist/commandOptionsParser.d.ts.map +1 -0
  7. package/dist/commandOptionsParser.js +41 -0
  8. package/dist/commandOptionsParser.js.map +1 -0
  9. package/dist/handlers/channels/CHANNEL_CREATE.d.ts.map +1 -1
  10. package/dist/handlers/channels/CHANNEL_CREATE.js +2 -1
  11. package/dist/handlers/channels/CHANNEL_CREATE.js.map +1 -1
  12. package/dist/handlers/channels/CHANNEL_DELETE.d.ts.map +1 -1
  13. package/dist/handlers/channels/CHANNEL_DELETE.js +2 -1
  14. package/dist/handlers/channels/CHANNEL_DELETE.js.map +1 -1
  15. package/dist/handlers/channels/CHANNEL_PINS_UPDATE.d.ts.map +1 -1
  16. package/dist/handlers/channels/CHANNEL_PINS_UPDATE.js +2 -1
  17. package/dist/handlers/channels/CHANNEL_PINS_UPDATE.js.map +1 -1
  18. package/dist/handlers/channels/CHANNEL_UPDATE.d.ts.map +1 -1
  19. package/dist/handlers/channels/CHANNEL_UPDATE.js +2 -1
  20. package/dist/handlers/channels/CHANNEL_UPDATE.js.map +1 -1
  21. package/dist/handlers/channels/STAGE_INSTANCE_CREATE.d.ts.map +1 -1
  22. package/dist/handlers/channels/STAGE_INSTANCE_CREATE.js +2 -1
  23. package/dist/handlers/channels/STAGE_INSTANCE_CREATE.js.map +1 -1
  24. package/dist/handlers/channels/STAGE_INSTANCE_DELETE.d.ts.map +1 -1
  25. package/dist/handlers/channels/STAGE_INSTANCE_DELETE.js +2 -1
  26. package/dist/handlers/channels/STAGE_INSTANCE_DELETE.js.map +1 -1
  27. package/dist/handlers/channels/STAGE_INSTANCE_UPDATE.d.ts.map +1 -1
  28. package/dist/handlers/channels/STAGE_INSTANCE_UPDATE.js +2 -1
  29. package/dist/handlers/channels/STAGE_INSTANCE_UPDATE.js.map +1 -1
  30. package/dist/handlers/channels/THREAD_CREATE.d.ts.map +1 -1
  31. package/dist/handlers/channels/THREAD_CREATE.js +2 -1
  32. package/dist/handlers/channels/THREAD_CREATE.js.map +1 -1
  33. package/dist/handlers/channels/THREAD_DELETE.d.ts.map +1 -1
  34. package/dist/handlers/channels/THREAD_DELETE.js +2 -1
  35. package/dist/handlers/channels/THREAD_DELETE.js.map +1 -1
  36. package/dist/handlers/channels/THREAD_LIST_SYNC.d.ts.map +1 -1
  37. package/dist/handlers/channels/THREAD_LIST_SYNC.js +5 -3
  38. package/dist/handlers/channels/THREAD_LIST_SYNC.js.map +1 -1
  39. package/dist/handlers/channels/THREAD_MEMBERS_UPDATE.d.ts.map +1 -1
  40. package/dist/handlers/channels/THREAD_MEMBERS_UPDATE.js +2 -1
  41. package/dist/handlers/channels/THREAD_MEMBERS_UPDATE.js.map +1 -1
  42. package/dist/handlers/channels/THREAD_MEMBER_UPDATE.d.ts.map +1 -1
  43. package/dist/handlers/channels/THREAD_MEMBER_UPDATE.js +2 -1
  44. package/dist/handlers/channels/THREAD_MEMBER_UPDATE.js.map +1 -1
  45. package/dist/handlers/channels/THREAD_UPDATE.d.ts.map +1 -1
  46. package/dist/handlers/channels/THREAD_UPDATE.js +2 -1
  47. package/dist/handlers/channels/THREAD_UPDATE.js.map +1 -1
  48. package/dist/handlers/emojis/GUILD_EMOJIS_UPDATE.d.ts.map +1 -1
  49. package/dist/handlers/emojis/GUILD_EMOJIS_UPDATE.js +2 -1
  50. package/dist/handlers/emojis/GUILD_EMOJIS_UPDATE.js.map +1 -1
  51. package/dist/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.d.ts.map +1 -1
  52. package/dist/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.js +2 -1
  53. package/dist/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.js.map +1 -1
  54. package/dist/handlers/guilds/GUILD_BAN_ADD.d.ts.map +1 -1
  55. package/dist/handlers/guilds/GUILD_BAN_ADD.js +2 -1
  56. package/dist/handlers/guilds/GUILD_BAN_ADD.js.map +1 -1
  57. package/dist/handlers/guilds/GUILD_BAN_REMOVE.d.ts.map +1 -1
  58. package/dist/handlers/guilds/GUILD_BAN_REMOVE.js +2 -1
  59. package/dist/handlers/guilds/GUILD_BAN_REMOVE.js.map +1 -1
  60. package/dist/handlers/guilds/GUILD_CREATE.d.ts.map +1 -1
  61. package/dist/handlers/guilds/GUILD_CREATE.js +2 -1
  62. package/dist/handlers/guilds/GUILD_CREATE.js.map +1 -1
  63. package/dist/handlers/guilds/GUILD_DELETE.d.ts.map +1 -1
  64. package/dist/handlers/guilds/GUILD_DELETE.js +6 -1
  65. package/dist/handlers/guilds/GUILD_DELETE.js.map +1 -1
  66. package/dist/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.d.ts.map +1 -1
  67. package/dist/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.js +2 -1
  68. package/dist/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.js.map +1 -1
  69. package/dist/handlers/guilds/GUILD_STICKERS_UPDATE.d.ts.map +1 -1
  70. package/dist/handlers/guilds/GUILD_STICKERS_UPDATE.js +2 -1
  71. package/dist/handlers/guilds/GUILD_STICKERS_UPDATE.js.map +1 -1
  72. package/dist/handlers/guilds/GUILD_UPDATE.d.ts.map +1 -1
  73. package/dist/handlers/guilds/GUILD_UPDATE.js +2 -1
  74. package/dist/handlers/guilds/GUILD_UPDATE.js.map +1 -1
  75. package/dist/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.d.ts.map +1 -1
  76. package/dist/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.js +2 -1
  77. package/dist/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.js.map +1 -1
  78. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.d.ts.map +1 -1
  79. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.js +2 -1
  80. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.js.map +1 -1
  81. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.d.ts.map +1 -1
  82. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.js +2 -1
  83. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.js.map +1 -1
  84. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.d.ts.map +1 -1
  85. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.js +2 -1
  86. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.js.map +1 -1
  87. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.d.ts.map +1 -1
  88. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.js +2 -1
  89. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.js.map +1 -1
  90. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.d.ts.map +1 -1
  91. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.js +2 -1
  92. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.js.map +1 -1
  93. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.d.ts.map +1 -1
  94. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.js +2 -1
  95. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.js.map +1 -1
  96. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.d.ts.map +1 -1
  97. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.js +2 -1
  98. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.js.map +1 -1
  99. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.d.ts.map +1 -1
  100. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.js +2 -1
  101. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.js.map +1 -1
  102. package/dist/handlers/integrations/INTEGRATION_CREATE.d.ts.map +1 -1
  103. package/dist/handlers/integrations/INTEGRATION_CREATE.js +2 -1
  104. package/dist/handlers/integrations/INTEGRATION_CREATE.js.map +1 -1
  105. package/dist/handlers/integrations/INTEGRATION_DELETE.d.ts.map +1 -1
  106. package/dist/handlers/integrations/INTEGRATION_DELETE.js +2 -1
  107. package/dist/handlers/integrations/INTEGRATION_DELETE.js.map +1 -1
  108. package/dist/handlers/integrations/INTEGRATION_UPDATE.d.ts.map +1 -1
  109. package/dist/handlers/integrations/INTEGRATION_UPDATE.js +2 -1
  110. package/dist/handlers/integrations/INTEGRATION_UPDATE.js.map +1 -1
  111. package/dist/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.d.ts.map +1 -1
  112. package/dist/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +2 -1
  113. package/dist/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js.map +1 -1
  114. package/dist/handlers/interactions/INTERACTION_CREATE.d.ts.map +1 -1
  115. package/dist/handlers/interactions/INTERACTION_CREATE.js +2 -1
  116. package/dist/handlers/interactions/INTERACTION_CREATE.js.map +1 -1
  117. package/dist/handlers/invites/INVITE_CREATE.d.ts.map +1 -1
  118. package/dist/handlers/invites/INVITE_CREATE.js +2 -1
  119. package/dist/handlers/invites/INVITE_CREATE.js.map +1 -1
  120. package/dist/handlers/invites/INVITE_DELETE.d.ts.map +1 -1
  121. package/dist/handlers/invites/INVITE_DELETE.js +2 -1
  122. package/dist/handlers/invites/INVITE_DELETE.js.map +1 -1
  123. package/dist/handlers/members/GUILD_MEMBERS_CHUNK.d.ts +1 -1
  124. package/dist/handlers/members/GUILD_MEMBERS_CHUNK.d.ts.map +1 -1
  125. package/dist/handlers/members/GUILD_MEMBERS_CHUNK.js +15 -21
  126. package/dist/handlers/members/GUILD_MEMBERS_CHUNK.js.map +1 -1
  127. package/dist/handlers/members/GUILD_MEMBER_ADD.d.ts.map +1 -1
  128. package/dist/handlers/members/GUILD_MEMBER_ADD.js +2 -1
  129. package/dist/handlers/members/GUILD_MEMBER_ADD.js.map +1 -1
  130. package/dist/handlers/members/GUILD_MEMBER_REMOVE.d.ts.map +1 -1
  131. package/dist/handlers/members/GUILD_MEMBER_REMOVE.js +2 -1
  132. package/dist/handlers/members/GUILD_MEMBER_REMOVE.js.map +1 -1
  133. package/dist/handlers/members/GUILD_MEMBER_UPDATE.d.ts.map +1 -1
  134. package/dist/handlers/members/GUILD_MEMBER_UPDATE.js +2 -1
  135. package/dist/handlers/members/GUILD_MEMBER_UPDATE.js.map +1 -1
  136. package/dist/handlers/messages/MESSAGE_CREATE.d.ts.map +1 -1
  137. package/dist/handlers/messages/MESSAGE_CREATE.js +2 -1
  138. package/dist/handlers/messages/MESSAGE_CREATE.js.map +1 -1
  139. package/dist/handlers/messages/MESSAGE_DELETE.d.ts.map +1 -1
  140. package/dist/handlers/messages/MESSAGE_DELETE.js +2 -1
  141. package/dist/handlers/messages/MESSAGE_DELETE.js.map +1 -1
  142. package/dist/handlers/messages/MESSAGE_DELETE_BULK.d.ts.map +1 -1
  143. package/dist/handlers/messages/MESSAGE_DELETE_BULK.js +2 -1
  144. package/dist/handlers/messages/MESSAGE_DELETE_BULK.js.map +1 -1
  145. package/dist/handlers/messages/MESSAGE_REACTION_ADD.d.ts.map +1 -1
  146. package/dist/handlers/messages/MESSAGE_REACTION_ADD.js +4 -2
  147. package/dist/handlers/messages/MESSAGE_REACTION_ADD.js.map +1 -1
  148. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE.d.ts.map +1 -1
  149. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE.js +2 -1
  150. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE.js.map +1 -1
  151. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.d.ts.map +1 -1
  152. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.js +2 -1
  153. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.js.map +1 -1
  154. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts.map +1 -1
  155. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.js +2 -1
  156. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.js.map +1 -1
  157. package/dist/handlers/messages/MESSAGE_UPDATE.d.ts.map +1 -1
  158. package/dist/handlers/messages/MESSAGE_UPDATE.js +2 -1
  159. package/dist/handlers/messages/MESSAGE_UPDATE.js.map +1 -1
  160. package/dist/handlers/misc/PRESENCE_UPDATE.d.ts.map +1 -1
  161. package/dist/handlers/misc/PRESENCE_UPDATE.js +2 -1
  162. package/dist/handlers/misc/PRESENCE_UPDATE.js.map +1 -1
  163. package/dist/handlers/misc/READY.d.ts.map +1 -1
  164. package/dist/handlers/misc/READY.js +2 -1
  165. package/dist/handlers/misc/READY.js.map +1 -1
  166. package/dist/handlers/misc/TYPING_START.d.ts.map +1 -1
  167. package/dist/handlers/misc/TYPING_START.js +2 -1
  168. package/dist/handlers/misc/TYPING_START.js.map +1 -1
  169. package/dist/handlers/misc/USER_UPDATE.d.ts.map +1 -1
  170. package/dist/handlers/misc/USER_UPDATE.js +2 -1
  171. package/dist/handlers/misc/USER_UPDATE.js.map +1 -1
  172. package/dist/handlers/roles/GUILD_ROLE_CREATE.d.ts.map +1 -1
  173. package/dist/handlers/roles/GUILD_ROLE_CREATE.js +2 -1
  174. package/dist/handlers/roles/GUILD_ROLE_CREATE.js.map +1 -1
  175. package/dist/handlers/roles/GUILD_ROLE_DELETE.d.ts.map +1 -1
  176. package/dist/handlers/roles/GUILD_ROLE_DELETE.js +2 -1
  177. package/dist/handlers/roles/GUILD_ROLE_DELETE.js.map +1 -1
  178. package/dist/handlers/roles/GUILD_ROLE_UPDATE.d.ts.map +1 -1
  179. package/dist/handlers/roles/GUILD_ROLE_UPDATE.js +2 -1
  180. package/dist/handlers/roles/GUILD_ROLE_UPDATE.js.map +1 -1
  181. package/dist/handlers/voice/VOICE_SERVER_UPDATE.d.ts.map +1 -1
  182. package/dist/handlers/voice/VOICE_SERVER_UPDATE.js +2 -1
  183. package/dist/handlers/voice/VOICE_SERVER_UPDATE.js.map +1 -1
  184. package/dist/handlers/voice/VOICE_STATE_UPDATE.d.ts.map +1 -1
  185. package/dist/handlers/voice/VOICE_STATE_UPDATE.js +2 -1
  186. package/dist/handlers/voice/VOICE_STATE_UPDATE.js.map +1 -1
  187. package/dist/handlers/webhooks/WEBHOOKS_UPDATE.d.ts.map +1 -1
  188. package/dist/handlers/webhooks/WEBHOOKS_UPDATE.js +2 -1
  189. package/dist/handlers/webhooks/WEBHOOKS_UPDATE.js.map +1 -1
  190. package/dist/handlers.js +1 -1
  191. package/dist/handlers.js.map +1 -1
  192. package/dist/helpers.d.ts +222 -0
  193. package/dist/helpers.d.ts.map +1 -0
  194. package/dist/helpers.js +602 -0
  195. package/dist/helpers.js.map +1 -0
  196. package/dist/index.d.ts +2 -0
  197. package/dist/index.d.ts.map +1 -1
  198. package/dist/index.js +2 -0
  199. package/dist/index.js.map +1 -1
  200. package/dist/transformers/activity.d.ts +27 -28
  201. package/dist/transformers/activity.d.ts.map +1 -1
  202. package/dist/transformers/activity.js +1 -2
  203. package/dist/transformers/activity.js.map +1 -1
  204. package/dist/transformers/application.d.ts +14 -68
  205. package/dist/transformers/application.d.ts.map +1 -1
  206. package/dist/transformers/application.js +1 -2
  207. package/dist/transformers/application.js.map +1 -1
  208. package/dist/transformers/applicationCommand.d.ts +12 -187
  209. package/dist/transformers/applicationCommand.d.ts.map +1 -1
  210. package/dist/transformers/applicationCommand.js +1 -2
  211. package/dist/transformers/applicationCommand.js.map +1 -1
  212. package/dist/transformers/applicationCommandOption.d.ts.map +1 -1
  213. package/dist/transformers/applicationCommandOption.js +2 -1
  214. package/dist/transformers/applicationCommandOption.js.map +1 -1
  215. package/dist/transformers/applicationCommandOptionChoice.d.ts +4 -36
  216. package/dist/transformers/applicationCommandOptionChoice.d.ts.map +1 -1
  217. package/dist/transformers/applicationCommandOptionChoice.js +2 -3
  218. package/dist/transformers/applicationCommandOptionChoice.js.map +1 -1
  219. package/dist/transformers/applicationCommandPermission.d.ts +7 -8
  220. package/dist/transformers/applicationCommandPermission.d.ts.map +1 -1
  221. package/dist/transformers/applicationCommandPermission.js +1 -2
  222. package/dist/transformers/applicationCommandPermission.js.map +1 -1
  223. package/dist/transformers/attachment.d.ts +23 -10
  224. package/dist/transformers/attachment.d.ts.map +1 -1
  225. package/dist/transformers/attachment.js +13 -14
  226. package/dist/transformers/attachment.js.map +1 -1
  227. package/dist/transformers/auditLogEntry.d.ts +34 -35
  228. package/dist/transformers/auditLogEntry.d.ts.map +1 -1
  229. package/dist/transformers/auditLogEntry.js +13 -8
  230. package/dist/transformers/auditLogEntry.js.map +1 -1
  231. package/dist/transformers/automodActionExecution.d.ts +14 -15
  232. package/dist/transformers/automodActionExecution.d.ts.map +1 -1
  233. package/dist/transformers/automodActionExecution.js +1 -2
  234. package/dist/transformers/automodActionExecution.js.map +1 -1
  235. package/dist/transformers/automodRule.d.ts +18 -19
  236. package/dist/transformers/automodRule.d.ts.map +1 -1
  237. package/dist/transformers/automodRule.js +1 -2
  238. package/dist/transformers/automodRule.js.map +1 -1
  239. package/dist/transformers/channel.d.ts +4 -4
  240. package/dist/transformers/channel.d.ts.map +1 -1
  241. package/dist/transformers/channel.js +4 -3
  242. package/dist/transformers/channel.js.map +1 -1
  243. package/dist/transformers/component.d.ts +3 -1
  244. package/dist/transformers/component.d.ts.map +1 -1
  245. package/dist/transformers/component.js +3 -1
  246. package/dist/transformers/component.js.map +1 -1
  247. package/dist/transformers/embed.d.ts +35 -36
  248. package/dist/transformers/embed.d.ts.map +1 -1
  249. package/dist/transformers/embed.js +1 -2
  250. package/dist/transformers/embed.js.map +1 -1
  251. package/dist/transformers/emoji.d.ts +19 -50
  252. package/dist/transformers/emoji.d.ts.map +1 -1
  253. package/dist/transformers/emoji.js +8 -9
  254. package/dist/transformers/emoji.js.map +1 -1
  255. package/dist/transformers/gatewayBot.d.ts +3 -3
  256. package/dist/transformers/gatewayBot.d.ts.map +1 -1
  257. package/dist/transformers/gatewayBot.js +2 -3
  258. package/dist/transformers/gatewayBot.js.map +1 -1
  259. package/dist/transformers/guild.d.ts +104 -58
  260. package/dist/transformers/guild.d.ts.map +1 -1
  261. package/dist/transformers/guild.js +124 -97
  262. package/dist/transformers/guild.js.map +1 -1
  263. package/dist/transformers/integration.d.ts +19 -104
  264. package/dist/transformers/integration.d.ts.map +1 -1
  265. package/dist/transformers/integration.js +1 -2
  266. package/dist/transformers/integration.js.map +1 -1
  267. package/dist/transformers/interaction.d.ts +18 -2
  268. package/dist/transformers/interaction.d.ts.map +1 -1
  269. package/dist/transformers/interaction.js +57 -2
  270. package/dist/transformers/interaction.js.map +1 -1
  271. package/dist/transformers/invite.d.ts +36 -169
  272. package/dist/transformers/invite.d.ts.map +1 -1
  273. package/dist/transformers/invite.js +37 -17
  274. package/dist/transformers/invite.js.map +1 -1
  275. package/dist/transformers/member.d.ts +2 -2
  276. package/dist/transformers/member.d.ts.map +1 -1
  277. package/dist/transformers/member.js +2 -2
  278. package/dist/transformers/member.js.map +1 -1
  279. package/dist/transformers/message.d.ts +1 -1
  280. package/dist/transformers/message.d.ts.map +1 -1
  281. package/dist/transformers/message.js +3 -4
  282. package/dist/transformers/message.js.map +1 -1
  283. package/dist/transformers/presence.d.ts +8 -9
  284. package/dist/transformers/presence.d.ts.map +1 -1
  285. package/dist/transformers/presence.js +1 -2
  286. package/dist/transformers/presence.js.map +1 -1
  287. package/dist/transformers/reverse/auditLogEntry.d.ts +1 -1
  288. package/dist/transformers/reverse/auditLogEntry.d.ts.map +1 -1
  289. package/dist/transformers/reverse/auditLogEntry.js +12 -6
  290. package/dist/transformers/reverse/auditLogEntry.js.map +1 -1
  291. package/dist/transformers/reverse/component.d.ts.map +1 -1
  292. package/dist/transformers/reverse/component.js +1 -0
  293. package/dist/transformers/reverse/component.js.map +1 -1
  294. package/dist/transformers/reverse/member.d.ts.map +1 -1
  295. package/dist/transformers/reverse/member.js +1 -0
  296. package/dist/transformers/reverse/member.js.map +1 -1
  297. package/dist/transformers/role.d.ts +2 -2
  298. package/dist/transformers/role.d.ts.map +1 -1
  299. package/dist/transformers/role.js +1 -1
  300. package/dist/transformers/role.js.map +1 -1
  301. package/dist/transformers/scheduledEvent.d.ts +33 -60
  302. package/dist/transformers/scheduledEvent.d.ts.map +1 -1
  303. package/dist/transformers/scheduledEvent.js +19 -20
  304. package/dist/transformers/scheduledEvent.js.map +1 -1
  305. package/dist/transformers/stageInstance.d.ts +9 -5
  306. package/dist/transformers/stageInstance.d.ts.map +1 -1
  307. package/dist/transformers/stageInstance.js +8 -9
  308. package/dist/transformers/stageInstance.js.map +1 -1
  309. package/dist/transformers/stageInviteInstance.d.ts +16 -0
  310. package/dist/transformers/stageInviteInstance.d.ts.map +1 -0
  311. package/dist/transformers/stageInviteInstance.js +13 -0
  312. package/dist/transformers/stageInviteInstance.js.map +1 -0
  313. package/dist/transformers/sticker.d.ts +27 -60
  314. package/dist/transformers/sticker.d.ts.map +1 -1
  315. package/dist/transformers/sticker.js +15 -17
  316. package/dist/transformers/sticker.js.map +1 -1
  317. package/dist/transformers/team.d.ts +9 -10
  318. package/dist/transformers/team.d.ts.map +1 -1
  319. package/dist/transformers/team.js +1 -2
  320. package/dist/transformers/team.js.map +1 -1
  321. package/dist/transformers/template.d.ts +8 -401
  322. package/dist/transformers/template.d.ts.map +1 -1
  323. package/dist/transformers/template.js +1 -2
  324. package/dist/transformers/template.js.map +1 -1
  325. package/dist/transformers/threadMember.d.ts +7 -9
  326. package/dist/transformers/threadMember.d.ts.map +1 -1
  327. package/dist/transformers/threadMember.js +2 -4
  328. package/dist/transformers/threadMember.js.map +1 -1
  329. package/dist/transformers/user.d.ts +3 -1
  330. package/dist/transformers/user.d.ts.map +1 -1
  331. package/dist/transformers/user.js +1 -0
  332. package/dist/transformers/user.js.map +1 -1
  333. package/dist/transformers/voiceRegion.d.ts +3 -4
  334. package/dist/transformers/voiceRegion.d.ts.map +1 -1
  335. package/dist/transformers/voiceRegion.js +1 -3
  336. package/dist/transformers/voiceRegion.js.map +1 -1
  337. package/dist/transformers/voiceState.d.ts +5 -6
  338. package/dist/transformers/voiceState.d.ts.map +1 -1
  339. package/dist/transformers/voiceState.js +1 -2
  340. package/dist/transformers/voiceState.js.map +1 -1
  341. package/dist/transformers/webhook.d.ts +27 -65
  342. package/dist/transformers/webhook.d.ts.map +1 -1
  343. package/dist/transformers/webhook.js +21 -22
  344. package/dist/transformers/webhook.js.map +1 -1
  345. package/dist/transformers/welcomeScreen.d.ts +7 -8
  346. package/dist/transformers/welcomeScreen.d.ts.map +1 -1
  347. package/dist/transformers/welcomeScreen.js +1 -2
  348. package/dist/transformers/welcomeScreen.js.map +1 -1
  349. package/dist/transformers/widget.d.ts +7 -8
  350. package/dist/transformers/widget.d.ts.map +1 -1
  351. package/dist/transformers/widget.js +1 -2
  352. package/dist/transformers/widget.js.map +1 -1
  353. package/dist/transformers/widgetSettings.d.ts +3 -4
  354. package/dist/transformers/widgetSettings.d.ts.map +1 -1
  355. package/dist/transformers/widgetSettings.js +1 -2
  356. package/dist/transformers/widgetSettings.js.map +1 -1
  357. package/dist/transformers.d.ts +76 -10
  358. package/dist/transformers.d.ts.map +1 -1
  359. package/dist/transformers.js +134 -2
  360. package/dist/transformers.js.map +1 -1
  361. package/dist/typings.d.ts +4 -2
  362. package/dist/typings.d.ts.map +1 -1
  363. package/dist/typings.js.map +1 -1
  364. package/package.json +5 -5
@@ -1,9 +1,64 @@
1
+ import { InteractionResponseTypes, InteractionTypes } from '@discordeno/types';
1
2
  import { Collection } from '@discordeno/utils';
3
+ const baseInteraction = {
4
+ async respond (response, options) {
5
+ let type = InteractionResponseTypes.ChannelMessageWithSource;
6
+ // If user provides a string, change it to a response object
7
+ if (typeof response === 'string') response = {
8
+ content: response
9
+ };
10
+ else if (response.title) type = InteractionResponseTypes.Modal;
11
+ else if (this.type === InteractionTypes.ApplicationCommandAutocomplete) type = InteractionResponseTypes.ApplicationCommandAutocompleteResult;
12
+ // If user wants to send a private message
13
+ if (type === InteractionResponseTypes.ChannelMessageWithSource && options?.isPrivate) response.flags = 64;
14
+ // Since this has already been given a response, any further responses must be followups.
15
+ if (this.acknowledged) return await this.bot?.rest.sendFollowupMessage(this.token, response);
16
+ // Modals cannot be chained
17
+ if (this.type === InteractionTypes.ModalSubmit && type === InteractionResponseTypes.Modal) throw new Error('Cannot respond to a modal interaction with another modal.');
18
+ // Autocomplete response can only be used for autocomplete interactions
19
+ if (this.type === InteractionTypes.ApplicationCommandAutocomplete && type !== InteractionResponseTypes.ApplicationCommandAutocompleteResult) throw new Error('Cannot respond to an autocomplete interaction with a modal or message.');
20
+ // If user has not already responded to this interaction we need to send an original response
21
+ this.acknowledged = true;
22
+ return await this.bot?.rest.sendInteractionResponse(this.id, this.token, {
23
+ type,
24
+ data: response
25
+ });
26
+ },
27
+ async edit (response) {
28
+ if (this.type === InteractionTypes.ApplicationCommandAutocomplete) throw new Error('Cannot edit an autocomplete interaction');
29
+ // If user provides a string, change it to a response object
30
+ if (typeof response === 'string') response = {
31
+ content: response
32
+ };
33
+ return await this.bot.rest.editOriginalInteractionResponse(this.token, response);
34
+ },
35
+ async defer (isPrivate) {
36
+ if (this.type === InteractionTypes.ApplicationCommandAutocomplete) throw new Error('Cannot defer an autocomplete interaction');
37
+ if (this.acknowledged) throw new Error('Cannot defer an already responded interaction');
38
+ // Determine the type of defer response
39
+ const type = this.type === InteractionTypes.MessageComponent ? InteractionResponseTypes.DeferredUpdateMessage : InteractionResponseTypes.DeferredChannelMessageWithSource;
40
+ // If user wants to send a private message
41
+ const data = {};
42
+ if (isPrivate) data.flags = 64;
43
+ this.acknowledged = true;
44
+ return await this.bot?.rest.sendInteractionResponse(this.id, this.token, {
45
+ type,
46
+ data
47
+ });
48
+ },
49
+ async delete (messageId) {
50
+ if (this.type === InteractionTypes.ApplicationCommandAutocomplete) throw new Error('Cannot delete an autocomplete interaction');
51
+ if (messageId) return await this.bot?.rest.deleteFollowupMessage(this.token, messageId);
52
+ else return await this.bot?.rest.deleteOriginalInteractionResponse(this.token);
53
+ }
54
+ };
2
55
  export function transformInteraction(bot, payload) {
3
56
  const guildId = payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined;
4
57
  const user = bot.transformers.user(bot, payload.member?.user ?? payload.user);
5
- const interaction = Object.create({});
58
+ const interaction = Object.create(baseInteraction);
6
59
  const props = bot.transformers.desiredProperties.interaction;
60
+ interaction.bot = bot;
61
+ interaction.acknowledged = false;
7
62
  if (payload.id && props.id) interaction.id = bot.transformers.snowflake(payload.id);
8
63
  if (payload.application_id && props.applicationId) interaction.applicationId = bot.transformers.snowflake(payload.application_id);
9
64
  if (payload.type && props.type) interaction.type = payload.type;
@@ -41,7 +96,7 @@ export function transformInteractionDataOption(bot, option) {
41
96
  options: option.options,
42
97
  focused: option.focused
43
98
  };
44
- return opt;
99
+ return bot.transformers.customizers.interactionDataOptions(bot, option, opt);
45
100
  }
46
101
  export function transformInteractionDataResolved(bot, resolved, guildId) {
47
102
  const transformed = {};
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/transformers/interaction.ts"],"sourcesContent":["import type {\n ApplicationCommandOptionTypes,\n ApplicationCommandTypes,\n ChannelTypes,\n DiscordInteraction,\n DiscordInteractionDataOption,\n InteractionTypes,\n 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 {\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 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({})\n const props = bot.transformers.desiredProperties.interaction\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":["Collection","transformInteraction","bot","payload","guildId","guild_id","transformers","snowflake","undefined","user","member","interaction","Object","create","props","desiredProperties","id","application_id","applicationId","type","token","version","locale","guild_locale","guildLocale","app_permissions","appPermissions","message","channel_id","channelId","data","componentType","component_type","customId","custom_id","components","map","component","values","name","resolved","transformInteractionDataResolved","options","opt","interactionDataOptions","targetId","target_id","customizers","transformInteractionDataOption","option","value","focused","transformed","messages","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 } as InteractionDataOption\n\n return bot.transformers.customizers.interactionDataOptions(bot, option, 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":"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"}
@@ -1,174 +1,41 @@
1
- import type { DiscordInviteCreate } from '@discordeno/types';
2
- import type { Bot } from '../index.js';
3
- export declare function transformInvite(bot: Bot, invite: DiscordInviteCreate): {
4
- guildId?: bigint | undefined;
5
- inviter?: {
6
- flags?: {
7
- bitfield: number;
8
- contains: (bits: number) => boolean;
9
- add: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
10
- remove: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
11
- toJSON: () => number;
12
- } | undefined;
13
- locale?: string | undefined;
14
- avatar?: bigint | undefined;
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
- has: (permissions: "bot" | "system" | "verified" | "mfaEnabled" | ("bot" | "system" | "verified" | "mfaEnabled")[]) => boolean;
24
- list: () => Record<"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
- premiumType?: import("@discordeno/types").PremiumTypes | undefined;
31
- publicFlags?: {
32
- bitfield: number;
33
- contains: (bits: number) => boolean;
34
- add: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
35
- remove: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
36
- toJSON: () => number;
37
- } | undefined;
38
- accentColor?: number | undefined;
39
- id: bigint;
40
- username: string;
41
- discriminator: string;
42
- bot: boolean;
43
- system: boolean;
44
- verified: boolean;
45
- tag: string;
46
- mfaEnabled: boolean;
47
- } | undefined;
48
- targetUser?: {
49
- flags?: {
50
- bitfield: number;
51
- contains: (bits: number) => boolean;
52
- add: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
53
- remove: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
54
- toJSON: () => number;
55
- } | undefined;
56
- locale?: string | undefined;
57
- avatar?: bigint | undefined;
58
- email?: string | undefined;
59
- banner?: bigint | undefined;
60
- toggles?: {
61
- bot: boolean;
62
- system: boolean;
63
- verified: boolean;
64
- mfaEnabled: boolean;
65
- bitfield: number;
66
- has: (permissions: "bot" | "system" | "verified" | "mfaEnabled" | ("bot" | "system" | "verified" | "mfaEnabled")[]) => boolean;
67
- list: () => Record<"bot" | "system" | "verified" | "mfaEnabled", boolean>;
68
- contains: (bits: number) => boolean;
69
- add: (bits: number) => import("./toggles/user.js").UserToggles;
70
- remove: (bits: number) => import("./toggles/user.js").UserToggles;
71
- toJSON: () => number;
72
- } | undefined;
73
- premiumType?: import("@discordeno/types").PremiumTypes | undefined;
74
- publicFlags?: {
75
- bitfield: number;
76
- contains: (bits: number) => boolean;
77
- add: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
78
- remove: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
79
- toJSON: () => number;
80
- } | undefined;
81
- accentColor?: number | undefined;
82
- id: bigint;
83
- username: string;
84
- discriminator: string;
85
- bot: boolean;
86
- system: boolean;
87
- verified: boolean;
88
- tag: string;
89
- mfaEnabled: boolean;
90
- } | undefined;
91
- targetApplication?: {
92
- flags?: import("@discordeno/types").ApplicationFlags | undefined;
93
- icon?: bigint | undefined;
94
- rpcOrigins?: string[] | undefined;
95
- termsOfServiceUrl?: string | undefined;
96
- privacyPolicyUrl?: string | undefined;
97
- primarySkuId?: string | undefined;
98
- slug?: string | undefined;
99
- coverImage?: bigint | undefined;
100
- owner?: {
101
- flags?: {
102
- bitfield: number;
103
- contains: (bits: number) => boolean;
104
- add: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
105
- remove: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
106
- toJSON: () => number;
107
- } | undefined;
108
- locale?: string | undefined;
109
- avatar?: bigint | undefined;
110
- email?: string | undefined;
111
- banner?: bigint | undefined;
112
- toggles?: {
113
- bot: boolean;
114
- system: boolean;
115
- verified: boolean;
116
- mfaEnabled: boolean;
117
- bitfield: number;
118
- has: (permissions: "bot" | "system" | "verified" | "mfaEnabled" | ("bot" | "system" | "verified" | "mfaEnabled")[]) => boolean;
119
- list: () => Record<"bot" | "system" | "verified" | "mfaEnabled", boolean>;
120
- contains: (bits: number) => boolean;
121
- add: (bits: number) => import("./toggles/user.js").UserToggles;
122
- remove: (bits: number) => import("./toggles/user.js").UserToggles;
123
- toJSON: () => number;
124
- } | undefined;
125
- premiumType?: import("@discordeno/types").PremiumTypes | undefined;
126
- publicFlags?: {
127
- bitfield: number;
128
- contains: (bits: number) => boolean;
129
- add: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
130
- remove: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
131
- toJSON: () => number;
132
- } | undefined;
133
- accentColor?: number | undefined;
134
- id: bigint;
135
- username: string;
136
- discriminator: string;
137
- bot: boolean;
138
- system: boolean;
139
- verified: boolean;
140
- tag: string;
141
- mfaEnabled: boolean;
142
- } | undefined;
143
- team?: {
144
- icon?: bigint | undefined;
145
- id: bigint;
146
- name: string;
147
- ownerUserId: bigint;
148
- members: {
149
- membershipState: import("@discordeno/types").TeamMembershipStates;
150
- permissions: "*"[];
151
- teamId: bigint;
152
- user: import("./user.js").User;
153
- }[];
154
- } | undefined;
155
- guildId?: bigint | undefined;
156
- id: bigint;
157
- name: string;
158
- description: string;
159
- botPublic: boolean;
160
- botRequireCodeGrant: boolean;
161
- verifyKey: string;
162
- } | undefined;
163
- createdAt: number;
164
- code: string;
165
- uses: number;
166
- temporary: boolean;
1
+ import type { DiscordInviteCreate, DiscordInviteMetadata } from '@discordeno/types';
2
+ import { type Application, type Bot, type ScheduledEvent, type User } from '../index.js';
3
+ import type { InviteStageInstance } from './stageInviteInstance.js';
4
+ export declare function transformInvite(bot: Bot, payload: DiscordInviteCreate | DiscordInviteMetadata): Invite;
5
+ export interface Invite {
6
+ /** The channel the invite is for */
167
7
  channelId: bigint;
8
+ /** The unique invite code */
9
+ code: string;
10
+ /** The time at which the invite was created */
11
+ createdAt: number;
12
+ /** The guild of the invite */
13
+ guildId?: bigint;
14
+ /** The user that created the invite */
15
+ inviter?: User;
16
+ /** How long the invite is valid for (in seconds) */
168
17
  maxAge: number;
18
+ /** The maximum number of times the invite can be used */
169
19
  maxUses: number;
170
- targetType: import("@discordeno/types").TargetTypes;
171
- };
172
- export interface Invite extends ReturnType<typeof transformInvite> {
20
+ /** The type of target for this voice channel invite */
21
+ targetType: number;
22
+ /** The target user for this invite */
23
+ targetUser: User;
24
+ /** The embedded application to open for this voice channel embedded application invite */
25
+ targetApplication?: Application;
26
+ /** Whether or not the invite is temporary (invited users will be kicked on disconnect unless they're assigned a role) */
27
+ temporary: boolean;
28
+ /** How many times the invite has been used (always will be 0) */
29
+ uses: number;
30
+ /** Approximate count of online members (only present when target_user is set) */
31
+ approximateMemberCount: number;
32
+ /** Stage instance data if there is a public Stage instance in the Stage channel this invite is for */
33
+ stageInstance?: InviteStageInstance;
34
+ /** The expiration date of this invite, returned from the GET /invites/code endpoint when with_expiration is true */
35
+ expiresAt?: number;
36
+ /** guild scheduled event data */
37
+ guildScheduledEvent?: ScheduledEvent;
38
+ /** Approximate count of online members (only present when target_user is set) */
39
+ approximatePresenceCount?: number;
173
40
  }
174
41
  //# sourceMappingURL=invite.d.ts.map
@@ -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,EAAsB,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AACvG,OAAO,EAAwB,KAAK,WAAW,EAAE,KAAK,GAAG,EAAE,KAAK,cAAc,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAA;AAC9G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,mBAAmB,GAAG,qBAAqB,GAAG,MAAM,CA0CtG;AAED,MAAM,WAAW,MAAM;IACrB,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAA;IACjB,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAA;IACjB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,uCAAuC;IACvC,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAA;IACd,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAA;IACf,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAA;IAClB,sCAAsC;IACtC,UAAU,EAAE,IAAI,CAAA;IAChB,0FAA0F;IAC1F,iBAAiB,CAAC,EAAE,WAAW,CAAA;IAC/B,yHAAyH;IACzH,SAAS,EAAE,OAAO,CAAA;IAClB,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAA;IACZ,iFAAiF;IACjF,sBAAsB,EAAE,MAAM,CAAA;IAC9B,sGAAsG;IACtG,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,oHAAoH;IACpH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iCAAiC;IACjC,mBAAmB,CAAC,EAAE,cAAc,CAAA;IACpC,iFAAiF;IACjF,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAClC"}
@@ -1,20 +1,40 @@
1
- // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
2
- export function transformInvite(bot, invite) {
3
- const transformedInvite = {
4
- /** The channel the invite is for */ channelId: bot.transformers.snowflake(invite.channel_id),
5
- /** The unique invite code */ code: invite.code,
6
- /** The time at which the invite was created */ createdAt: Date.parse(invite.created_at),
7
- /** The guild of the invite */ guildId: invite.guild_id ? bot.transformers.snowflake(invite.guild_id) : undefined,
8
- /** The user that created the invite */ inviter: invite.inviter ? bot.transformers.user(bot, invite.inviter) : undefined,
9
- /** How long the invite is valid for (in seconds) */ maxAge: invite.max_age,
10
- /** The maximum number of times the invite can be used */ maxUses: invite.max_uses,
11
- /** The type of target for this voice channel invite */ targetType: invite.target_type,
12
- /** The target user for this invite */ targetUser: invite.target_user ? bot.transformers.user(bot, invite.target_user) : undefined,
13
- /** The embedded application to open for this voice channel embedded application invite */ targetApplication: invite.target_application ? bot.transformers.application(bot, invite.target_application) : undefined,
14
- /** Whether or not the invite is temporary (invited users will be kicked on disconnect unless they're assigned a role) */ temporary: invite.temporary,
15
- /** How many times the invite has been used (always will be 0) */ uses: invite.uses
16
- };
17
- return transformedInvite;
1
+ import { isInviteWithMetadata } from '../index.js';
2
+ export function transformInvite(bot, payload) {
3
+ const props = bot.transformers.desiredProperties.invite;
4
+ const invite = {};
5
+ const hasMetadata = isInviteWithMetadata(payload);
6
+ if (props.code && payload.code) invite.code = payload.code;
7
+ if (props.createdAt && payload.created_at) invite.createdAt = Date.parse(payload.created_at);
8
+ if (props.inviter && payload.inviter) invite.inviter = bot.transformers.user(bot, payload.inviter);
9
+ if (props.maxAge && payload.max_age) invite.maxAge = payload.max_age;
10
+ if (props.maxUses && payload.max_uses) invite.maxUses = payload.max_uses;
11
+ if (props.targetType && payload.target_type) invite.targetType = payload.target_type;
12
+ if (props.targetUser && payload.target_user) invite.targetUser = bot.transformers.user(bot, payload.target_user);
13
+ if (props.targetApplication && payload.target_application) invite.targetApplication = bot.transformers.application(bot, payload.target_application);
14
+ if (props.temporary && payload.temporary) invite.temporary = payload.temporary;
15
+ if (props.uses && payload.uses) invite.uses = payload.uses;
16
+ if (hasMetadata) {
17
+ if (props.channelId && payload.channel?.id) invite.channelId = bot.transformers.snowflake(payload.channel.id);
18
+ if (props.guildId && payload.guild?.id) invite.guildId = bot.transformers.snowflake(payload.guild.id);
19
+ if (props.approximateMemberCount && payload.approximate_member_count) invite.approximateMemberCount = payload.approximate_member_count;
20
+ if (props.approximatePresenceCount && payload.approximate_presence_count) invite.approximatePresenceCount = payload.approximate_presence_count;
21
+ if (props.guildScheduledEvent && payload.guild_scheduled_event) {
22
+ invite.guildScheduledEvent = payload.guild_scheduled_event ? bot.transformers.scheduledEvent(bot, payload.guild_scheduled_event) : undefined;
23
+ }
24
+ if (props.stageInstance && invite.guildId && payload.stage_instance) {
25
+ invite.stageInstance = payload.stage_instance ? bot.transformers.inviteStageInstance(bot, {
26
+ ...payload.stage_instance,
27
+ guildId: invite.guildId
28
+ }) : undefined;
29
+ }
30
+ if (props.expiresAt && payload.expires_at) {
31
+ invite.expiresAt = Date.parse(payload.expires_at);
32
+ }
33
+ } else {
34
+ if (props.channelId && payload.channel_id) invite.channelId = bot.transformers.snowflake(payload.channel_id);
35
+ if (props.guildId && payload.guild_id) invite.guildId = bot.transformers.snowflake(payload.guild_id);
36
+ }
37
+ return bot.transformers.customizers.invite(bot, payload, invite);
18
38
  }
19
39
 
20
40
  //# sourceMappingURL=invite.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/transformers/invite.ts"],"sourcesContent":["import type { DiscordInviteCreate } from '@discordeno/types'\nimport type { Bot } from '../index.js'\nimport type { Optionalize } from '../optionalize.js'\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function transformInvite(bot: Bot, invite: DiscordInviteCreate) {\n const transformedInvite = {\n /** The channel the invite is for */\n channelId: bot.transformers.snowflake(invite.channel_id),\n /** The unique invite code */\n code: invite.code,\n /** The time at which the invite was created */\n createdAt: Date.parse(invite.created_at),\n /** The guild of the invite */\n guildId: invite.guild_id ? bot.transformers.snowflake(invite.guild_id) : undefined,\n /** The user that created the invite */\n inviter: invite.inviter ? bot.transformers.user(bot, invite.inviter) : undefined,\n /** How long the invite is valid for (in seconds) */\n maxAge: invite.max_age,\n /** The maximum number of times the invite can be used */\n maxUses: invite.max_uses,\n /** The type of target for this voice channel invite */\n targetType: invite.target_type,\n /** The target user for this invite */\n targetUser: invite.target_user ? bot.transformers.user(bot, invite.target_user) : undefined,\n /** The embedded application to open for this voice channel embedded application invite */\n targetApplication: invite.target_application\n ? // @ts-expect-error should not break anything even though its partial. if it does blame wolf :)\n bot.transformers.application(bot, invite.target_application)\n : undefined,\n /** Whether or not the invite is temporary (invited users will be kicked on disconnect unless they're assigned a role) */\n temporary: invite.temporary,\n /** How many times the invite has been used (always will be 0) */\n uses: invite.uses,\n }\n\n return transformedInvite as Optionalize<typeof transformedInvite>\n}\n\nexport interface Invite extends ReturnType<typeof transformInvite> {}\n"],"names":["transformInvite","bot","invite","transformedInvite","channelId","transformers","snowflake","channel_id","code","createdAt","Date","parse","created_at","guildId","guild_id","undefined","inviter","user","maxAge","max_age","maxUses","max_uses","targetType","target_type","targetUser","target_user","targetApplication","target_application","application","temporary","uses"],"mappings":"AAIA,4EAA4E;AAC5E,OAAO,SAASA,gBAAgBC,GAAQ,EAAEC,MAA2B,EAAE;IACrE,MAAMC,oBAAoB;QACxB,kCAAkC,GAClCC,WAAWH,IAAII,YAAY,CAACC,SAAS,CAACJ,OAAOK,UAAU;QACvD,2BAA2B,GAC3BC,MAAMN,OAAOM,IAAI;QACjB,6CAA6C,GAC7CC,WAAWC,KAAKC,KAAK,CAACT,OAAOU,UAAU;QACvC,4BAA4B,GAC5BC,SAASX,OAAOY,QAAQ,GAAGb,IAAII,YAAY,CAACC,SAAS,CAACJ,OAAOY,QAAQ,IAAIC,SAAS;QAClF,qCAAqC,GACrCC,SAASd,OAAOc,OAAO,GAAGf,IAAII,YAAY,CAACY,IAAI,CAAChB,KAAKC,OAAOc,OAAO,IAAID,SAAS;QAChF,kDAAkD,GAClDG,QAAQhB,OAAOiB,OAAO;QACtB,uDAAuD,GACvDC,SAASlB,OAAOmB,QAAQ;QACxB,qDAAqD,GACrDC,YAAYpB,OAAOqB,WAAW;QAC9B,oCAAoC,GACpCC,YAAYtB,OAAOuB,WAAW,GAAGxB,IAAII,YAAY,CAACY,IAAI,CAAChB,KAAKC,OAAOuB,WAAW,IAAIV,SAAS;QAC3F,wFAAwF,GACxFW,mBAAmBxB,OAAOyB,kBAAkB,GAExC1B,IAAII,YAAY,CAACuB,WAAW,CAAC3B,KAAKC,OAAOyB,kBAAkB,IAC3DZ,SAAS;QACb,uHAAuH,GACvHc,WAAW3B,OAAO2B,SAAS;QAC3B,+DAA+D,GAC/DC,MAAM5B,OAAO4B,IAAI;IACnB;IAEA,OAAO3B;AACT,CAAC"}
1
+ {"version":3,"sources":["../../src/transformers/invite.ts"],"sourcesContent":["import type { DiscordApplication, DiscordInviteCreate, DiscordInviteMetadata } from '@discordeno/types'\nimport { isInviteWithMetadata, type Application, type Bot, type ScheduledEvent, type User } from '../index.js'\nimport type { InviteStageInstance } from './stageInviteInstance.js'\n\nexport function transformInvite(bot: Bot, payload: DiscordInviteCreate | DiscordInviteMetadata): Invite {\n const props = bot.transformers.desiredProperties.invite\n const invite = {} as Invite\n const hasMetadata = isInviteWithMetadata(payload)\n\n if (props.code && payload.code) invite.code = payload.code\n if (props.createdAt && payload.created_at) invite.createdAt = Date.parse(payload.created_at)\n if (props.inviter && payload.inviter) invite.inviter = bot.transformers.user(bot, payload.inviter)\n if (props.maxAge && payload.max_age) invite.maxAge = payload.max_age\n if (props.maxUses && payload.max_uses) invite.maxUses = payload.max_uses\n if (props.targetType && payload.target_type) invite.targetType = payload.target_type\n if (props.targetUser && payload.target_user) invite.targetUser = bot.transformers.user(bot, payload.target_user)\n if (props.targetApplication && payload.target_application)\n invite.targetApplication = bot.transformers.application(bot, payload.target_application as DiscordApplication)\n if (props.temporary && payload.temporary) invite.temporary = payload.temporary\n if (props.uses && payload.uses) invite.uses = payload.uses\n\n if (hasMetadata) {\n if (props.channelId && payload.channel?.id) invite.channelId = bot.transformers.snowflake(payload.channel.id)\n if (props.guildId && payload.guild?.id) invite.guildId = bot.transformers.snowflake(payload.guild.id)\n if (props.approximateMemberCount && payload.approximate_member_count) invite.approximateMemberCount = payload.approximate_member_count\n if (props.approximatePresenceCount && payload.approximate_presence_count) invite.approximatePresenceCount = payload.approximate_presence_count\n if (props.guildScheduledEvent && payload.guild_scheduled_event) {\n invite.guildScheduledEvent = payload.guild_scheduled_event ? bot.transformers.scheduledEvent(bot, payload.guild_scheduled_event) : undefined\n }\n if (props.stageInstance && invite.guildId && payload.stage_instance) {\n invite.stageInstance = payload.stage_instance\n ? bot.transformers.inviteStageInstance(bot, {\n ...payload.stage_instance,\n guildId: invite.guildId,\n })\n : undefined\n }\n if (props.expiresAt && payload.expires_at) {\n invite.expiresAt = Date.parse(payload.expires_at)\n }\n } else {\n if (props.channelId && payload.channel_id) invite.channelId = bot.transformers.snowflake(payload.channel_id)\n if (props.guildId && payload.guild_id) invite.guildId = bot.transformers.snowflake(payload.guild_id)\n }\n\n return bot.transformers.customizers.invite(bot, payload, invite)\n}\n\nexport interface Invite {\n /** The channel the invite is for */\n channelId: bigint\n /** The unique invite code */\n code: string\n /** The time at which the invite was created */\n createdAt: number\n /** The guild of the invite */\n guildId?: bigint\n /** The user that created the invite */\n inviter?: User\n /** How long the invite is valid for (in seconds) */\n maxAge: number\n /** The maximum number of times the invite can be used */\n maxUses: number\n /** The type of target for this voice channel invite */\n targetType: number\n /** The target user for this invite */\n targetUser: User\n /** The embedded application to open for this voice channel embedded application invite */\n targetApplication?: Application\n /** Whether or not the invite is temporary (invited users will be kicked on disconnect unless they're assigned a role) */\n temporary: boolean\n /** How many times the invite has been used (always will be 0) */\n uses: number\n /** Approximate count of online members (only present when target_user is set) */\n approximateMemberCount: number\n /** Stage instance data if there is a public Stage instance in the Stage channel this invite is for */\n stageInstance?: InviteStageInstance\n /** The expiration date of this invite, returned from the GET /invites/code endpoint when with_expiration is true */\n expiresAt?: number\n /** guild scheduled event data */\n guildScheduledEvent?: ScheduledEvent\n /** Approximate count of online members (only present when target_user is set) */\n approximatePresenceCount?: number\n}\n"],"names":["isInviteWithMetadata","transformInvite","bot","payload","props","transformers","desiredProperties","invite","hasMetadata","code","createdAt","created_at","Date","parse","inviter","user","maxAge","max_age","maxUses","max_uses","targetType","target_type","targetUser","target_user","targetApplication","target_application","application","temporary","uses","channelId","channel","id","snowflake","guildId","guild","approximateMemberCount","approximate_member_count","approximatePresenceCount","approximate_presence_count","guildScheduledEvent","guild_scheduled_event","scheduledEvent","undefined","stageInstance","stage_instance","inviteStageInstance","expiresAt","expires_at","channel_id","guild_id","customizers"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import type { DiscordMember } from '@discordeno/types';
1
+ import type { BigString, DiscordMember } from '@discordeno/types';
2
2
  import type { Bot } from '../bot.js';
3
3
  import { Permissions } from './toggles/Permissions.js';
4
4
  import { MemberToggles } from './toggles/member.js';
5
5
  import type { User } from './user.js';
6
- export declare function transformMember(bot: Bot, payload: DiscordMember, guildId: bigint, userId: bigint): Member;
6
+ export declare function transformMember(bot: Bot, payload: DiscordMember, guildId: BigString, userId: BigString): Member;
7
7
  export interface BaseMember {
8
8
  /** Whether the user is deafened in voice channels */
9
9
  deaf?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"member.d.ts","sourceRoot":"","sources":["../../src/transformers/member.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,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,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAoBzG;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
+ {"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"}
@@ -15,8 +15,8 @@ const baseMember = {
15
15
  export function transformMember(bot, payload, guildId, userId) {
16
16
  const member = Object.create(baseMember);
17
17
  const props = bot.transformers.desiredProperties.member;
18
- if (userId && props.id) member.id = userId;
19
- if (guildId && props.guildId) member.guildId = guildId;
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
20
  if (payload.user && props.user) member.user = bot.transformers.user(bot, payload.user);
21
21
  if (payload.nick && props.nick) member.nick = payload.nick;
22
22
  if (payload.roles && props.roles) member.roles = payload.roles.map((id)=>bot.transformers.snowflake(id));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/transformers/member.ts"],"sourcesContent":["import type { 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: bigint, userId: bigint): Member {\n const member: Member = Object.create(baseMember)\n const props = bot.transformers.desiredProperties.member\n\n if (userId && props.id) member.id = userId\n if (guildId && props.guildId) member.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","user","nick","roles","map","snowflake","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,OAAe,EAAEC,MAAc,EAAU;IACzG,MAAMC,SAAiBC,OAAOC,MAAM,CAACb;IACrC,MAAMc,QAAQP,IAAIQ,YAAY,CAACC,iBAAiB,CAACL,MAAM;IAEvD,IAAID,UAAUI,MAAMG,EAAE,EAAEN,OAAOM,EAAE,GAAGP;IACpC,IAAID,WAAWK,MAAML,OAAO,EAAEE,OAAOF,OAAO,GAAGA;IAC/C,IAAID,QAAQU,IAAI,IAAIJ,MAAMI,IAAI,EAAEP,OAAOO,IAAI,GAAGX,IAAIQ,YAAY,CAACG,IAAI,CAACX,KAAKC,QAAQU,IAAI;IACrF,IAAIV,QAAQW,IAAI,IAAIL,MAAMK,IAAI,EAAER,OAAOQ,IAAI,GAAGX,QAAQW,IAAI;IAC1D,IAAIX,QAAQY,KAAK,IAAIN,MAAMM,KAAK,EAAET,OAAOS,KAAK,GAAGZ,QAAQY,KAAK,CAACC,GAAG,CAAC,CAACJ,KAAOV,IAAIQ,YAAY,CAACO,SAAS,CAACL;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"}
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"}
@@ -89,7 +89,7 @@ export interface Message extends MessageBase {
89
89
  member?: Member;
90
90
  /** Users specifically mentioned in the message Note: The user objects in the mentions array will only have the partial member field present in MESSAGE_CREATE and MESSAGE_UPDATE events from text-based guild channels. */
91
91
  mentions?: User[];
92
- /** Channels specifically mentioned in this message Note: Not all channel mentions in a message will appear in mention_channels. Only textual channels that are visible to everyone in a lurkable guild will ever be included. Only crossposted messages (via Channel Following) currently include mention_channels at all. If no mentions in the message meet these requirements, this field will not be sent. */
92
+ /** Channels specifically mentioned in this message Note: Not all channel mentions in a message will appear in mention_channels. Only textual channels that are visible to everyone in a discoverable guild will ever be included. Only crossposted messages (via Channel Following) currently include mention_channels at all. If no mentions in the message meet these requirements, this field will not be sent. */
93
93
  mentionedChannelIds?: bigint[];
94
94
  /** Roles specifically mentioned in this message */
95
95
  mentionedRoleIds?: bigint[];
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/transformers/message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/transformers/message.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,6 @@ const baseMessage = {
7
7
  return this.flags?.contains(MessageFlags.Crossposted) ?? false;
8
8
  },
9
9
  set crossposted (value){
10
- if (!this.flags) return;
11
10
  if (!this.flags) return;
12
11
  if (value) this.flags.add(MessageFlags.Crossposted);
13
12
  else this.flags.remove(MessageFlags.Crossposted);
@@ -123,14 +122,14 @@ export function transformMessage(bot, payload) {
123
122
  message.bitfield = new ToggleBitfield();
124
123
  message.flags = new ToggleBitfield(payload.flags);
125
124
  const props = bot.transformers.desiredProperties.message;
126
- if (props.author && props.author) message.author = bot.transformers.user(bot, payload.author);
125
+ if (props.author && payload.author) message.author = bot.transformers.user(bot, payload.author);
127
126
  if (payload.application_id && props.applicationId) message.applicationId = bot.transformers.snowflake(payload.application_id);
128
127
  if (payload.attachments?.length && props.attachments) {
129
128
  message.attachments = payload.attachments.map((attachment)=>bot.transformers.attachment(bot, attachment));
130
129
  }
131
- if (props.channelId && props.channelId) message.channelId = bot.transformers.snowflake(payload.channel_id);
130
+ if (props.channelId && payload.channel_id) message.channelId = bot.transformers.snowflake(payload.channel_id);
132
131
  if (props.components && payload.components?.length) message.components = payload.components.map((comp)=>bot.transformers.component(bot, comp));
133
- if (props.content && props.content) message.content = payload.content ?? EMPTY_STRING;
132
+ if (props.content && payload.content) message.content = payload.content ?? EMPTY_STRING;
134
133
  if (payload.edited_timestamp && props.editedTimestamp) message.editedTimestamp = Date.parse(payload.edited_timestamp);
135
134
  if (payload.embeds?.length && props.embeds) message.embeds = payload.embeds.map((embed)=>bot.transformers.embed(bot, embed));
136
135
  if (guildId && props.guildId) message.guildId = guildId;