@discordeno/bot 19.0.0-next.cebe1f4 → 19.0.0-next.d0db342

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 (104) hide show
  1. package/dist/bot.d.ts +4 -1
  2. package/dist/bot.d.ts.map +1 -1
  3. package/dist/bot.js +5 -0
  4. package/dist/bot.js.map +1 -1
  5. package/dist/handlers/channels/index.d.ts +1 -0
  6. package/dist/handlers/channels/index.d.ts.map +1 -1
  7. package/dist/handlers/channels/index.js +1 -0
  8. package/dist/handlers/channels/index.js.map +1 -1
  9. package/dist/handlers/guilds/GUILD_DELETE.d.ts.map +1 -1
  10. package/dist/handlers/guilds/GUILD_DELETE.js +4 -0
  11. package/dist/handlers/guilds/GUILD_DELETE.js.map +1 -1
  12. package/dist/handlers.js +1 -1
  13. package/dist/handlers.js.map +1 -1
  14. package/dist/helpers.d.ts +205 -0
  15. package/dist/helpers.d.ts.map +1 -0
  16. package/dist/helpers.js +553 -0
  17. package/dist/helpers.js.map +1 -0
  18. package/dist/index.d.ts +4 -0
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +4 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/transformers/activity.d.ts +15 -15
  23. package/dist/transformers/application.d.ts +4 -3
  24. package/dist/transformers/application.d.ts.map +1 -1
  25. package/dist/transformers/applicationCommand.d.ts +3 -3
  26. package/dist/transformers/applicationCommandPermission.d.ts +1 -1
  27. package/dist/transformers/attachment.d.ts +3 -3
  28. package/dist/transformers/auditLogEntry.d.ts +6 -6
  29. package/dist/transformers/automodActionExecution.d.ts +5 -5
  30. package/dist/transformers/channel.d.ts +3 -3
  31. package/dist/transformers/channel.d.ts.map +1 -1
  32. package/dist/transformers/channel.js +3 -2
  33. package/dist/transformers/channel.js.map +1 -1
  34. package/dist/transformers/component.d.ts +3 -1
  35. package/dist/transformers/component.d.ts.map +1 -1
  36. package/dist/transformers/component.js +1 -0
  37. package/dist/transformers/component.js.map +1 -1
  38. package/dist/transformers/embed.d.ts +3 -3
  39. package/dist/transformers/emoji.d.ts +5 -4
  40. package/dist/transformers/emoji.d.ts.map +1 -1
  41. package/dist/transformers/guild.d.ts +1 -1
  42. package/dist/transformers/guild.d.ts.map +1 -1
  43. package/dist/transformers/guild.js +4 -1
  44. package/dist/transformers/guild.js.map +1 -1
  45. package/dist/transformers/index.d.ts +2 -0
  46. package/dist/transformers/index.d.ts.map +1 -1
  47. package/dist/transformers/index.js +2 -0
  48. package/dist/transformers/index.js.map +1 -1
  49. package/dist/transformers/integration.d.ts +9 -7
  50. package/dist/transformers/integration.d.ts.map +1 -1
  51. package/dist/transformers/interaction.d.ts +18 -2
  52. package/dist/transformers/interaction.d.ts.map +1 -1
  53. package/dist/transformers/interaction.js +56 -1
  54. package/dist/transformers/interaction.js.map +1 -1
  55. package/dist/transformers/invite.d.ts +16 -13
  56. package/dist/transformers/invite.d.ts.map +1 -1
  57. package/dist/transformers/member.d.ts +2 -2
  58. package/dist/transformers/member.d.ts.map +1 -1
  59. package/dist/transformers/member.js +3 -3
  60. package/dist/transformers/member.js.map +1 -1
  61. package/dist/transformers/message.d.ts.map +1 -1
  62. package/dist/transformers/message.js +3 -4
  63. package/dist/transformers/message.js.map +1 -1
  64. package/dist/transformers/presence.d.ts +1 -1
  65. package/dist/transformers/reverse/component.d.ts.map +1 -1
  66. package/dist/transformers/reverse/component.js +1 -0
  67. package/dist/transformers/reverse/component.js.map +1 -1
  68. package/dist/transformers/reverse/index.d.ts +3 -0
  69. package/dist/transformers/reverse/index.d.ts.map +1 -1
  70. package/dist/transformers/reverse/index.js +3 -0
  71. package/dist/transformers/reverse/index.js.map +1 -1
  72. package/dist/transformers/reverse/member.d.ts.map +1 -1
  73. package/dist/transformers/reverse/member.js +1 -0
  74. package/dist/transformers/reverse/member.js.map +1 -1
  75. package/dist/transformers/role.d.ts +2 -2
  76. package/dist/transformers/role.d.ts.map +1 -1
  77. package/dist/transformers/role.js +2 -2
  78. package/dist/transformers/role.js.map +1 -1
  79. package/dist/transformers/scheduledEvent.d.ts +6 -5
  80. package/dist/transformers/scheduledEvent.d.ts.map +1 -1
  81. package/dist/transformers/sticker.d.ts +6 -5
  82. package/dist/transformers/sticker.d.ts.map +1 -1
  83. package/dist/transformers/template.d.ts +101 -95
  84. package/dist/transformers/template.d.ts.map +1 -1
  85. package/dist/transformers/toggles/index.d.ts +2 -0
  86. package/dist/transformers/toggles/index.d.ts.map +1 -1
  87. package/dist/transformers/toggles/index.js +2 -0
  88. package/dist/transformers/toggles/index.js.map +1 -1
  89. package/dist/transformers/user.d.ts +3 -1
  90. package/dist/transformers/user.d.ts.map +1 -1
  91. package/dist/transformers/user.js +2 -1
  92. package/dist/transformers/user.js.map +1 -1
  93. package/dist/transformers/voiceRegion.d.ts +1 -1
  94. package/dist/transformers/voiceState.d.ts +2 -2
  95. package/dist/transformers/webhook.d.ts +7 -6
  96. package/dist/transformers/webhook.d.ts.map +1 -1
  97. package/dist/transformers.d.ts +8 -3
  98. package/dist/transformers.d.ts.map +1 -1
  99. package/dist/transformers.js +13 -0
  100. package/dist/transformers.js.map +1 -1
  101. package/dist/typings.d.ts +4 -2
  102. package/dist/typings.d.ts.map +1 -1
  103. package/dist/typings.js.map +1 -1
  104. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/transformers/component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACtG,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAErD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAoCjF;AAID,MAAM,WAAW,SAAS;IACxB,qBAAqB;IACrB,IAAI,EAAE,qBAAqB,CAAA;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iDAAiD;IACjD,KAAK,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;IACjC,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2FAA2F;IAC3F,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wGAAwG;IACxG,KAAK,CAAC,EAAE;QACN,eAAe;QACf,EAAE,CAAC,EAAE,MAAM,CAAA;QACX,iBAAiB;QACjB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,qCAAqC;QACrC,QAAQ,CAAC,EAAE,OAAO,CAAA;KACnB,CAAA;IACD,uHAAuH;IACvH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,wCAAwC;IACxC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;IACxB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iCAAiC;IACjC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAA;CACzB"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/transformers/component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACpH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAErD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAqCjF;AAID,MAAM,WAAW,SAAS;IACxB,qBAAqB;IACrB,IAAI,EAAE,qBAAqB,CAAA;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iDAAiD;IACjD,KAAK,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;IACjC,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2FAA2F;IAC3F,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wGAAwG;IACxG,KAAK,CAAC,EAAE;QACN,eAAe;QACf,EAAE,CAAC,EAAE,MAAM,CAAA;QACX,iBAAiB;QACjB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,qCAAqC;QACrC,QAAQ,CAAC,EAAE,OAAO,CAAA;KACnB,CAAA;IACD,uHAAuH;IACvH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,6EAA6E;IAC7E,YAAY,CAAC,EAAE,YAAY,EAAE,CAAA;IAC7B,wCAAwC;IACxC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;IACxB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iCAAiC;IACjC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAA;CACzB"}
@@ -11,6 +11,7 @@ export function transformComponent(bot, payload) {
11
11
  animated: payload.emoji.animated
12
12
  } : undefined,
13
13
  url: payload.url,
14
+ channelTypes: payload.channel_types,
14
15
  options: payload.options?.map((option)=>({
15
16
  label: option.label,
16
17
  value: option.value,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/transformers/component.ts"],"sourcesContent":["import type { ButtonStyles, MessageComponentTypes, SelectOption, TextStyles } from '@discordeno/types'\nimport type { Bot } from '../index.js'\nimport type { DiscordComponent } from '../typings.js'\n\nexport function transformComponent(bot: Bot, payload: DiscordComponent): Component {\n return {\n type: payload.type,\n customId: payload.custom_id,\n disabled: payload.disabled,\n style: payload.style,\n label: payload.label,\n emoji: payload.emoji\n ? {\n id: payload.emoji.id ? bot.transformers.snowflake(payload.emoji.id) : undefined,\n name: payload.emoji.name,\n animated: payload.emoji.animated,\n }\n : undefined,\n url: payload.url,\n options: payload.options?.map((option) => ({\n label: option.label,\n value: option.value,\n description: option.description,\n emoji: option.emoji\n ? {\n id: option.emoji.id ? bot.transformers.snowflake(option.emoji.id) : undefined,\n name: option.emoji.name,\n animated: option.emoji.animated,\n }\n : undefined,\n default: option.default,\n })),\n placeholder: payload.placeholder,\n minValues: payload.min_values,\n maxValues: payload.max_values,\n minLength: payload.min_length,\n maxLength: payload.max_length,\n value: payload.value,\n components: payload.components?.map((component) => bot.transformers.component(bot, component)),\n }\n}\n\n// THIS TRANSFORMER HAS A CIRCULAR REFERENCE TO CALL ITSELF FOR COMPONENTS SO AN AUTOMATED TYPE CAN NOT BE CREATED!\n\nexport interface Component {\n /** component type */\n type: MessageComponentTypes\n /** a developer-defined identifier for the component, max 100 characters */\n customId?: string\n /** whether this component is required to be filled, default true */\n required?: boolean\n /** whether the component is disabled, default false */\n disabled?: boolean\n /** For different styles/colors of the buttons */\n style?: ButtonStyles | TextStyles\n /** text that appears on the button (max 80 characters) */\n label?: string\n /** the dev-define value of the option, max 100 characters for select or 4000 for input. */\n value?: string\n /** Emoji object that includes fields of name, id, and animated supporting unicode and custom emojis. */\n emoji?: {\n /** Emoji id */\n id?: bigint\n /** Emoji name */\n name?: string\n /** Whether this emoji is animated */\n animated?: boolean\n }\n /** optional url for link-style buttons that can navigate a user to the web. Only type 5 Link buttons can have a url */\n url?: string\n /** The choices! Maximum of 25 items. */\n options?: SelectOption[]\n /** A custom placeholder text if nothing is selected. Maximum 150 characters. */\n placeholder?: string\n /** The minimum number of items that must be selected. Default 1. Between 1-25. */\n minValues?: number\n /** The maximum number of items that can be selected. Default 1. Between 1-25. */\n maxValues?: number\n /** The minimum input length for a text input. Between 0-4000. */\n minLength?: number\n /** The maximum input length for a text input. Between 1-4000. */\n maxLength?: number\n /** a list of child components */\n components?: Component[]\n}\n"],"names":["transformComponent","bot","payload","type","customId","custom_id","disabled","style","label","emoji","id","transformers","snowflake","undefined","name","animated","url","options","map","option","value","description","default","placeholder","minValues","min_values","maxValues","max_values","minLength","min_length","maxLength","max_length","components","component"],"mappings":"AAIA,OAAO,SAASA,mBAAmBC,GAAQ,EAAEC,OAAyB,EAAa;IACjF,OAAO;QACLC,MAAMD,QAAQC,IAAI;QAClBC,UAAUF,QAAQG,SAAS;QAC3BC,UAAUJ,QAAQI,QAAQ;QAC1BC,OAAOL,QAAQK,KAAK;QACpBC,OAAON,QAAQM,KAAK;QACpBC,OAAOP,QAAQO,KAAK,GAChB;YACEC,IAAIR,QAAQO,KAAK,CAACC,EAAE,GAAGT,IAAIU,YAAY,CAACC,SAAS,CAACV,QAAQO,KAAK,CAACC,EAAE,IAAIG,SAAS;YAC/EC,MAAMZ,QAAQO,KAAK,CAACK,IAAI;YACxBC,UAAUb,QAAQO,KAAK,CAACM,QAAQ;QAClC,IACAF,SAAS;QACbG,KAAKd,QAAQc,GAAG;QAChBC,SAASf,QAAQe,OAAO,EAAEC,IAAI,CAACC,SAAY,CAAA;gBACzCX,OAAOW,OAAOX,KAAK;gBACnBY,OAAOD,OAAOC,KAAK;gBACnBC,aAAaF,OAAOE,WAAW;gBAC/BZ,OAAOU,OAAOV,KAAK,GACf;oBACEC,IAAIS,OAAOV,KAAK,CAACC,EAAE,GAAGT,IAAIU,YAAY,CAACC,SAAS,CAACO,OAAOV,KAAK,CAACC,EAAE,IAAIG,SAAS;oBAC7EC,MAAMK,OAAOV,KAAK,CAACK,IAAI;oBACvBC,UAAUI,OAAOV,KAAK,CAACM,QAAQ;gBACjC,IACAF,SAAS;gBACbS,SAASH,OAAOG,OAAO;YACzB,CAAA;QACAC,aAAarB,QAAQqB,WAAW;QAChCC,WAAWtB,QAAQuB,UAAU;QAC7BC,WAAWxB,QAAQyB,UAAU;QAC7BC,WAAW1B,QAAQ2B,UAAU;QAC7BC,WAAW5B,QAAQ6B,UAAU;QAC7BX,OAAOlB,QAAQkB,KAAK;QACpBY,YAAY9B,QAAQ8B,UAAU,EAAEd,IAAI,CAACe,YAAchC,IAAIU,YAAY,CAACsB,SAAS,CAAChC,KAAKgC;IACrF;AACF,CAAC"}
1
+ {"version":3,"sources":["../../src/transformers/component.ts"],"sourcesContent":["import type { ButtonStyles, ChannelTypes, MessageComponentTypes, SelectOption, TextStyles } from '@discordeno/types'\nimport type { Bot } from '../index.js'\nimport type { DiscordComponent } from '../typings.js'\n\nexport function transformComponent(bot: Bot, payload: DiscordComponent): Component {\n return {\n type: payload.type,\n customId: payload.custom_id,\n disabled: payload.disabled,\n style: payload.style,\n label: payload.label,\n emoji: payload.emoji\n ? {\n id: payload.emoji.id ? bot.transformers.snowflake(payload.emoji.id) : undefined,\n name: payload.emoji.name,\n animated: payload.emoji.animated,\n }\n : undefined,\n url: payload.url,\n channelTypes: payload.channel_types,\n options: payload.options?.map((option) => ({\n label: option.label,\n value: option.value,\n description: option.description,\n emoji: option.emoji\n ? {\n id: option.emoji.id ? bot.transformers.snowflake(option.emoji.id) : undefined,\n name: option.emoji.name,\n animated: option.emoji.animated,\n }\n : undefined,\n default: option.default,\n })),\n placeholder: payload.placeholder,\n minValues: payload.min_values,\n maxValues: payload.max_values,\n minLength: payload.min_length,\n maxLength: payload.max_length,\n value: payload.value,\n components: payload.components?.map((component) => bot.transformers.component(bot, component)),\n }\n}\n\n// THIS TRANSFORMER HAS A CIRCULAR REFERENCE TO CALL ITSELF FOR COMPONENTS SO AN AUTOMATED TYPE CAN NOT BE CREATED!\n\nexport interface Component {\n /** component type */\n type: MessageComponentTypes\n /** a developer-defined identifier for the component, max 100 characters */\n customId?: string\n /** whether this component is required to be filled, default true */\n required?: boolean\n /** whether the component is disabled, default false */\n disabled?: boolean\n /** For different styles/colors of the buttons */\n style?: ButtonStyles | TextStyles\n /** text that appears on the button (max 80 characters) */\n label?: string\n /** the dev-define value of the option, max 100 characters for select or 4000 for input. */\n value?: string\n /** Emoji object that includes fields of name, id, and animated supporting unicode and custom emojis. */\n emoji?: {\n /** Emoji id */\n id?: bigint\n /** Emoji name */\n name?: string\n /** Whether this emoji is animated */\n animated?: boolean\n }\n /** optional url for link-style buttons that can navigate a user to the web. Only type 5 Link buttons can have a url */\n url?: string\n /** List of channel types to include in a channel select menu options list */\n channelTypes?: ChannelTypes[]\n /** The choices! Maximum of 25 items. */\n options?: SelectOption[]\n /** A custom placeholder text if nothing is selected. Maximum 150 characters. */\n placeholder?: string\n /** The minimum number of items that must be selected. Default 1. Between 1-25. */\n minValues?: number\n /** The maximum number of items that can be selected. Default 1. Between 1-25. */\n maxValues?: number\n /** The minimum input length for a text input. Between 0-4000. */\n minLength?: number\n /** The maximum input length for a text input. Between 1-4000. */\n maxLength?: number\n /** a list of child components */\n components?: Component[]\n}\n"],"names":["transformComponent","bot","payload","type","customId","custom_id","disabled","style","label","emoji","id","transformers","snowflake","undefined","name","animated","url","channelTypes","channel_types","options","map","option","value","description","default","placeholder","minValues","min_values","maxValues","max_values","minLength","min_length","maxLength","max_length","components","component"],"mappings":"AAIA,OAAO,SAASA,mBAAmBC,GAAQ,EAAEC,OAAyB,EAAa;IACjF,OAAO;QACLC,MAAMD,QAAQC,IAAI;QAClBC,UAAUF,QAAQG,SAAS;QAC3BC,UAAUJ,QAAQI,QAAQ;QAC1BC,OAAOL,QAAQK,KAAK;QACpBC,OAAON,QAAQM,KAAK;QACpBC,OAAOP,QAAQO,KAAK,GAChB;YACEC,IAAIR,QAAQO,KAAK,CAACC,EAAE,GAAGT,IAAIU,YAAY,CAACC,SAAS,CAACV,QAAQO,KAAK,CAACC,EAAE,IAAIG,SAAS;YAC/EC,MAAMZ,QAAQO,KAAK,CAACK,IAAI;YACxBC,UAAUb,QAAQO,KAAK,CAACM,QAAQ;QAClC,IACAF,SAAS;QACbG,KAAKd,QAAQc,GAAG;QAChBC,cAAcf,QAAQgB,aAAa;QACnCC,SAASjB,QAAQiB,OAAO,EAAEC,IAAI,CAACC,SAAY,CAAA;gBACzCb,OAAOa,OAAOb,KAAK;gBACnBc,OAAOD,OAAOC,KAAK;gBACnBC,aAAaF,OAAOE,WAAW;gBAC/Bd,OAAOY,OAAOZ,KAAK,GACf;oBACEC,IAAIW,OAAOZ,KAAK,CAACC,EAAE,GAAGT,IAAIU,YAAY,CAACC,SAAS,CAACS,OAAOZ,KAAK,CAACC,EAAE,IAAIG,SAAS;oBAC7EC,MAAMO,OAAOZ,KAAK,CAACK,IAAI;oBACvBC,UAAUM,OAAOZ,KAAK,CAACM,QAAQ;gBACjC,IACAF,SAAS;gBACbW,SAASH,OAAOG,OAAO;YACzB,CAAA;QACAC,aAAavB,QAAQuB,WAAW;QAChCC,WAAWxB,QAAQyB,UAAU;QAC7BC,WAAW1B,QAAQ2B,UAAU;QAC7BC,WAAW5B,QAAQ6B,UAAU;QAC7BC,WAAW9B,QAAQ+B,UAAU;QAC7BX,OAAOpB,QAAQoB,KAAK;QACpBY,YAAYhC,QAAQgC,UAAU,EAAEd,IAAI,CAACe,YAAclC,IAAIU,YAAY,CAACwB,SAAS,CAAClC,KAAKkC;IACrF;AACF,CAAC"}
@@ -1,10 +1,8 @@
1
1
  import type { DiscordEmbed } from '@discordeno/types';
2
2
  import type { Bot } from '../index.js';
3
3
  export declare function transformEmbed(bot: Bot, payload: DiscordEmbed): {
4
- type?: import("@discordeno/types").EmbedTypes | undefined;
5
- url?: string | undefined;
6
4
  description?: string | undefined;
7
- color?: number | undefined;
5
+ type?: import("@discordeno/types").EmbedTypes | undefined;
8
6
  image?: {
9
7
  proxyUrl?: string | undefined;
10
8
  height?: number | undefined;
@@ -18,7 +16,9 @@ export declare function transformEmbed(bot: Bot, payload: DiscordEmbed): {
18
16
  width?: number | undefined;
19
17
  } | undefined;
20
18
  title?: string | undefined;
19
+ url?: string | undefined;
21
20
  timestamp?: number | undefined;
21
+ color?: number | undefined;
22
22
  footer?: {
23
23
  iconUrl?: string | undefined;
24
24
  proxyIconUrl?: string | undefined;
@@ -4,7 +4,9 @@ import { EmojiToggles } from './toggles/emoji.js';
4
4
  export declare function transformEmoji(bot: Bot, payload: DiscordEmoji): {
5
5
  id?: bigint | undefined;
6
6
  name?: string | undefined;
7
+ roles?: bigint[] | undefined;
7
8
  user?: {
9
+ locale?: string | undefined;
8
10
  flags?: {
9
11
  bitfield: number;
10
12
  contains: (bits: number) => boolean;
@@ -12,7 +14,6 @@ export declare function transformEmoji(bot: Bot, payload: DiscordEmoji): {
12
14
  remove: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
13
15
  toJSON: () => number;
14
16
  } | undefined;
15
- locale?: string | undefined;
16
17
  avatar?: bigint | undefined;
17
18
  email?: string | undefined;
18
19
  banner?: bigint | undefined;
@@ -22,13 +23,14 @@ export declare function transformEmoji(bot: Bot, payload: DiscordEmoji): {
22
23
  verified: boolean;
23
24
  mfaEnabled: boolean;
24
25
  bitfield: number;
25
- has: (permissions: "bot" | "system" | "verified" | "mfaEnabled" | ("bot" | "system" | "verified" | "mfaEnabled")[]) => boolean;
26
26
  list: () => Record<"bot" | "system" | "verified" | "mfaEnabled", boolean>;
27
+ has: (permissions: "bot" | "system" | "verified" | "mfaEnabled" | ("bot" | "system" | "verified" | "mfaEnabled")[]) => boolean;
27
28
  contains: (bits: number) => boolean;
28
29
  add: (bits: number) => import("./toggles/user.js").UserToggles;
29
30
  remove: (bits: number) => import("./toggles/user.js").UserToggles;
30
31
  toJSON: () => number;
31
32
  } | undefined;
33
+ globalName?: string | undefined;
32
34
  premiumType?: import("@discordeno/types").PremiumTypes | undefined;
33
35
  publicFlags?: {
34
36
  bitfield: number;
@@ -38,8 +40,8 @@ export declare function transformEmoji(bot: Bot, payload: DiscordEmoji): {
38
40
  toJSON: () => number;
39
41
  } | undefined;
40
42
  accentColor?: number | undefined;
41
- id: bigint;
42
43
  username: string;
44
+ id: bigint;
43
45
  discriminator: string;
44
46
  bot: boolean;
45
47
  system: boolean;
@@ -47,7 +49,6 @@ export declare function transformEmoji(bot: Bot, payload: DiscordEmoji): {
47
49
  tag: string;
48
50
  mfaEnabled: boolean;
49
51
  } | undefined;
50
- roles?: bigint[] | undefined;
51
52
  toggles: EmojiToggles;
52
53
  };
53
54
  export interface Emoji extends ReturnType<typeof transformEmoji> {
@@ -1 +1 @@
1
- {"version":3,"file":"emoji.d.ts","sourceRoot":"","sources":["../../src/transformers/emoji.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGjD,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU7D;AAED,MAAM,WAAW,KAAM,SAAQ,UAAU,CAAC,OAAO,cAAc,CAAC;CAAG"}
1
+ {"version":3,"file":"emoji.d.ts","sourceRoot":"","sources":["../../src/transformers/emoji.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGjD,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU7D;AAED,MAAM,WAAW,KAAM,SAAQ,UAAU,CAAC,OAAO,cAAc,CAAC;CAAG"}
@@ -8,10 +8,10 @@ export declare function transformGuild(bot: Bot, payload: {
8
8
  } & {
9
9
  shardId: number;
10
10
  }): {
11
- applicationId?: bigint | undefined;
12
11
  banner?: bigint | undefined;
13
12
  icon?: bigint | undefined;
14
13
  description?: string | null | undefined;
14
+ applicationId?: bigint | undefined;
15
15
  approximateMemberCount?: number | undefined;
16
16
  approximatePresenceCount?: number | undefined;
17
17
  maxMembers?: number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"guild.d.ts","sourceRoot":"","sources":["../../src/transformers/guild.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAoB,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGjD,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+F9F;AAED,MAAM,WAAW,KAAM,SAAQ,UAAU,CAAC,OAAO,cAAc,CAAC;CAAG"}
1
+ {"version":3,"file":"guild.d.ts","sourceRoot":"","sources":["../../src/transformers/guild.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAoB,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGjD,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8F9F;AAED,MAAM,WAAW,KAAM,SAAQ,UAAU,CAAC,OAAO,cAAc,CAAC;CAAG"}
@@ -46,7 +46,10 @@ export function transformGuild(bot, payload) {
46
46
  icon: payload.guild.icon ? iconHashToBigInt(payload.guild.icon) : undefined,
47
47
  banner: payload.guild.banner ? iconHashToBigInt(payload.guild.banner) : undefined,
48
48
  splash: payload.guild.splash ? iconHashToBigInt(payload.guild.splash) : undefined,
49
- channels: new Collection(payload.guild.channels?.map((channel)=>{
49
+ channels: new Collection([
50
+ ...payload.guild.channels ?? [],
51
+ ...payload.guild.threads ?? []
52
+ ].map((channel)=>{
50
53
  const result = bot.transformers.channel(bot, {
51
54
  channel,
52
55
  guildId
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/transformers/guild.ts"],"sourcesContent":["import type { DiscordGuild } from '@discordeno/types'\nimport { Collection, iconHashToBigInt } from '@discordeno/utils'\nimport type { Bot } from '../index.js'\nimport type { Optionalize } from '../optionalize.js'\nimport type { Emoji } from '../transformers/emoji.js'\nimport { GuildToggles } from './toggles/guild.js'\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function transformGuild(bot: Bot, payload: { guild: DiscordGuild } & { shardId: number }) {\n const guildId = bot.transformers.snowflake(payload.guild.id)\n\n const guild = {\n afkTimeout: payload.guild.afk_timeout,\n approximateMemberCount: payload.guild.approximate_member_count,\n approximatePresenceCount: payload.guild.approximate_presence_count,\n defaultMessageNotifications: payload.guild.default_message_notifications,\n description: payload.guild.description,\n explicitContentFilter: payload.guild.explicit_content_filter,\n toggles: new GuildToggles(payload.guild),\n maxMembers: payload.guild.max_members,\n maxPresences: payload.guild.max_presences ?? undefined,\n maxVideoChannelUsers: payload.guild.max_video_channel_users,\n maxStageVideoChannelUsers: payload.guild.max_stage_video_channel_users,\n mfaLevel: payload.guild.mfa_level,\n name: payload.guild.name,\n nsfwLevel: payload.guild.nsfw_level,\n preferredLocale: payload.guild.preferred_locale,\n premiumSubscriptionCount: payload.guild.premium_subscription_count,\n premiumTier: payload.guild.premium_tier,\n stageInstances: payload.guild.stage_instances?.map((si) => ({\n /** The id of this Stage instance */\n id: bot.transformers.snowflake(si.id),\n /** The guild id of the associated Stage channel */\n guildId,\n /** The id of the associated Stage channel */\n channelId: bot.transformers.snowflake(si.channel_id),\n /** The topic of the Stage instance (1-120 characters) */\n topic: si.topic,\n })),\n systemChannelFlags: payload.guild.system_channel_flags,\n vanityUrlCode: payload.guild.vanity_url_code,\n verificationLevel: payload.guild.verification_level,\n welcomeScreen: payload.guild.welcome_screen\n ? {\n description: payload.guild.welcome_screen.description ?? undefined,\n welcomeChannels: payload.guild.welcome_screen.welcome_channels.map((wc) => ({\n channelId: bot.transformers.snowflake(wc.channel_id),\n description: wc.description,\n emojiId: wc.emoji_id ? bot.transformers.snowflake(wc.emoji_id) : undefined,\n emojiName: wc.emoji_name ?? undefined,\n })),\n }\n : undefined,\n discoverySplash: payload.guild.discovery_splash ? iconHashToBigInt(payload.guild.discovery_splash) : undefined,\n\n joinedAt: payload.guild.joined_at ? Date.parse(payload.guild.joined_at) : undefined,\n memberCount: payload.guild.member_count ?? 0,\n shardId: payload.shardId,\n icon: payload.guild.icon ? iconHashToBigInt(payload.guild.icon) : undefined,\n banner: payload.guild.banner ? iconHashToBigInt(payload.guild.banner) : undefined,\n splash: payload.guild.splash ? iconHashToBigInt(payload.guild.splash) : undefined,\n channels: new Collection(\n payload.guild.channels?.map((channel) => {\n const result = bot.transformers.channel(bot, { channel, guildId })\n return [result.id, result]\n }),\n ),\n members: new Collection(\n payload.guild.members?.map((member) => {\n const result = bot.transformers.member(bot, member, guildId, bot.transformers.snowflake(member.user!.id))\n return [result.id, result]\n }),\n ),\n roles: new Collection(\n payload.guild.roles?.map((role) => {\n const result = bot.transformers.role(bot, { role, guildId })\n return [result.id, result]\n }),\n ),\n emojis: new Collection(\n (payload.guild.emojis || []).map((emoji) => {\n const em: Emoji = bot.transformers.emoji(bot, emoji)\n return [em.id!, em]\n }),\n ),\n voiceStates: new Collection(\n (payload.guild.voice_states ?? []).map((vs) => bot.transformers.voiceState(bot, { voiceState: vs, guildId })).map((vs) => [vs.userId, vs]),\n ),\n\n id: guildId,\n // WEIRD EDGE CASE WITH BOT CREATED SERVERS\n ownerId: payload.guild.owner_id ? bot.transformers.snowflake(payload.guild.owner_id) : 0n,\n permissions: payload.guild.permissions ? bot.transformers.snowflake(payload.guild.permissions) : 0n,\n afkChannelId: payload.guild.afk_channel_id ? bot.transformers.snowflake(payload.guild.afk_channel_id) : undefined,\n widgetChannelId: payload.guild.widget_channel_id ? bot.transformers.snowflake(payload.guild.widget_channel_id) : undefined,\n applicationId: payload.guild.application_id ? bot.transformers.snowflake(payload.guild.application_id) : undefined,\n systemChannelId: payload.guild.system_channel_id ? bot.transformers.snowflake(payload.guild.system_channel_id) : undefined,\n rulesChannelId: payload.guild.rules_channel_id ? bot.transformers.snowflake(payload.guild.rules_channel_id) : undefined,\n publicUpdatesChannelId: payload.guild.public_updates_channel_id ? bot.transformers.snowflake(payload.guild.public_updates_channel_id) : undefined,\n premiumProgressBarEnabled: payload.guild.premium_progress_bar_enabled,\n }\n\n return guild as Optionalize<typeof guild>\n}\n\nexport interface Guild extends ReturnType<typeof transformGuild> {}\n"],"names":["Collection","iconHashToBigInt","GuildToggles","transformGuild","bot","payload","guildId","transformers","snowflake","guild","id","afkTimeout","afk_timeout","approximateMemberCount","approximate_member_count","approximatePresenceCount","approximate_presence_count","defaultMessageNotifications","default_message_notifications","description","explicitContentFilter","explicit_content_filter","toggles","maxMembers","max_members","maxPresences","max_presences","undefined","maxVideoChannelUsers","max_video_channel_users","maxStageVideoChannelUsers","max_stage_video_channel_users","mfaLevel","mfa_level","name","nsfwLevel","nsfw_level","preferredLocale","preferred_locale","premiumSubscriptionCount","premium_subscription_count","premiumTier","premium_tier","stageInstances","stage_instances","map","si","channelId","channel_id","topic","systemChannelFlags","system_channel_flags","vanityUrlCode","vanity_url_code","verificationLevel","verification_level","welcomeScreen","welcome_screen","welcomeChannels","welcome_channels","wc","emojiId","emoji_id","emojiName","emoji_name","discoverySplash","discovery_splash","joinedAt","joined_at","Date","parse","memberCount","member_count","shardId","icon","banner","splash","channels","channel","result","members","member","user","roles","role","emojis","emoji","em","voiceStates","voice_states","vs","voiceState","userId","ownerId","owner_id","permissions","afkChannelId","afk_channel_id","widgetChannelId","widget_channel_id","applicationId","application_id","systemChannelId","system_channel_id","rulesChannelId","rules_channel_id","publicUpdatesChannelId","public_updates_channel_id","premiumProgressBarEnabled","premium_progress_bar_enabled"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/transformers/guild.ts"],"sourcesContent":["import type { DiscordGuild } from '@discordeno/types'\nimport { Collection, iconHashToBigInt } from '@discordeno/utils'\nimport type { Bot } from '../index.js'\nimport type { Optionalize } from '../optionalize.js'\nimport type { Emoji } from '../transformers/emoji.js'\nimport { GuildToggles } from './toggles/guild.js'\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function transformGuild(bot: Bot, payload: { guild: DiscordGuild } & { shardId: number }) {\n const guildId = bot.transformers.snowflake(payload.guild.id)\n\n const guild = {\n afkTimeout: payload.guild.afk_timeout,\n approximateMemberCount: payload.guild.approximate_member_count,\n approximatePresenceCount: payload.guild.approximate_presence_count,\n defaultMessageNotifications: payload.guild.default_message_notifications,\n description: payload.guild.description,\n explicitContentFilter: payload.guild.explicit_content_filter,\n toggles: new GuildToggles(payload.guild),\n maxMembers: payload.guild.max_members,\n maxPresences: payload.guild.max_presences ?? undefined,\n maxVideoChannelUsers: payload.guild.max_video_channel_users,\n maxStageVideoChannelUsers: payload.guild.max_stage_video_channel_users,\n mfaLevel: payload.guild.mfa_level,\n name: payload.guild.name,\n nsfwLevel: payload.guild.nsfw_level,\n preferredLocale: payload.guild.preferred_locale,\n premiumSubscriptionCount: payload.guild.premium_subscription_count,\n premiumTier: payload.guild.premium_tier,\n stageInstances: payload.guild.stage_instances?.map((si) => ({\n /** The id of this Stage instance */\n id: bot.transformers.snowflake(si.id),\n /** The guild id of the associated Stage channel */\n guildId,\n /** The id of the associated Stage channel */\n channelId: bot.transformers.snowflake(si.channel_id),\n /** The topic of the Stage instance (1-120 characters) */\n topic: si.topic,\n })),\n systemChannelFlags: payload.guild.system_channel_flags,\n vanityUrlCode: payload.guild.vanity_url_code,\n verificationLevel: payload.guild.verification_level,\n welcomeScreen: payload.guild.welcome_screen\n ? {\n description: payload.guild.welcome_screen.description ?? undefined,\n welcomeChannels: payload.guild.welcome_screen.welcome_channels.map((wc) => ({\n channelId: bot.transformers.snowflake(wc.channel_id),\n description: wc.description,\n emojiId: wc.emoji_id ? bot.transformers.snowflake(wc.emoji_id) : undefined,\n emojiName: wc.emoji_name ?? undefined,\n })),\n }\n : undefined,\n discoverySplash: payload.guild.discovery_splash ? iconHashToBigInt(payload.guild.discovery_splash) : undefined,\n\n joinedAt: payload.guild.joined_at ? Date.parse(payload.guild.joined_at) : undefined,\n memberCount: payload.guild.member_count ?? 0,\n shardId: payload.shardId,\n icon: payload.guild.icon ? iconHashToBigInt(payload.guild.icon) : undefined,\n banner: payload.guild.banner ? iconHashToBigInt(payload.guild.banner) : undefined,\n splash: payload.guild.splash ? iconHashToBigInt(payload.guild.splash) : undefined,\n channels: new Collection(\n [...(payload.guild.channels ?? []), ...(payload.guild.threads ?? [])].map((channel) => {\n const result = bot.transformers.channel(bot, { channel, guildId })\n return [result.id, result]\n }),\n ),\n members: new Collection(\n payload.guild.members?.map((member) => {\n const result = bot.transformers.member(bot, member, guildId, bot.transformers.snowflake(member.user!.id))\n return [result.id, result]\n }),\n ),\n roles: new Collection(\n payload.guild.roles?.map((role) => {\n const result = bot.transformers.role(bot, { role, guildId })\n return [result.id, result]\n }),\n ),\n emojis: new Collection(\n (payload.guild.emojis || []).map((emoji) => {\n const em: Emoji = bot.transformers.emoji(bot, emoji)\n return [em.id!, em]\n }),\n ),\n voiceStates: new Collection(\n (payload.guild.voice_states ?? []).map((vs) => bot.transformers.voiceState(bot, { voiceState: vs, guildId })).map((vs) => [vs.userId, vs]),\n ),\n id: guildId,\n // WEIRD EDGE CASE WITH BOT CREATED SERVERS\n ownerId: payload.guild.owner_id ? bot.transformers.snowflake(payload.guild.owner_id) : 0n,\n permissions: payload.guild.permissions ? bot.transformers.snowflake(payload.guild.permissions) : 0n,\n afkChannelId: payload.guild.afk_channel_id ? bot.transformers.snowflake(payload.guild.afk_channel_id) : undefined,\n widgetChannelId: payload.guild.widget_channel_id ? bot.transformers.snowflake(payload.guild.widget_channel_id) : undefined,\n applicationId: payload.guild.application_id ? bot.transformers.snowflake(payload.guild.application_id) : undefined,\n systemChannelId: payload.guild.system_channel_id ? bot.transformers.snowflake(payload.guild.system_channel_id) : undefined,\n rulesChannelId: payload.guild.rules_channel_id ? bot.transformers.snowflake(payload.guild.rules_channel_id) : undefined,\n publicUpdatesChannelId: payload.guild.public_updates_channel_id ? bot.transformers.snowflake(payload.guild.public_updates_channel_id) : undefined,\n premiumProgressBarEnabled: payload.guild.premium_progress_bar_enabled,\n }\n\n return guild as Optionalize<typeof guild>\n}\n\nexport interface Guild extends ReturnType<typeof transformGuild> {}\n"],"names":["Collection","iconHashToBigInt","GuildToggles","transformGuild","bot","payload","guildId","transformers","snowflake","guild","id","afkTimeout","afk_timeout","approximateMemberCount","approximate_member_count","approximatePresenceCount","approximate_presence_count","defaultMessageNotifications","default_message_notifications","description","explicitContentFilter","explicit_content_filter","toggles","maxMembers","max_members","maxPresences","max_presences","undefined","maxVideoChannelUsers","max_video_channel_users","maxStageVideoChannelUsers","max_stage_video_channel_users","mfaLevel","mfa_level","name","nsfwLevel","nsfw_level","preferredLocale","preferred_locale","premiumSubscriptionCount","premium_subscription_count","premiumTier","premium_tier","stageInstances","stage_instances","map","si","channelId","channel_id","topic","systemChannelFlags","system_channel_flags","vanityUrlCode","vanity_url_code","verificationLevel","verification_level","welcomeScreen","welcome_screen","welcomeChannels","welcome_channels","wc","emojiId","emoji_id","emojiName","emoji_name","discoverySplash","discovery_splash","joinedAt","joined_at","Date","parse","memberCount","member_count","shardId","icon","banner","splash","channels","threads","channel","result","members","member","user","roles","role","emojis","emoji","em","voiceStates","voice_states","vs","voiceState","userId","ownerId","owner_id","permissions","afkChannelId","afk_channel_id","widgetChannelId","widget_channel_id","applicationId","application_id","systemChannelId","system_channel_id","rulesChannelId","rules_channel_id","publicUpdatesChannelId","public_updates_channel_id","premiumProgressBarEnabled","premium_progress_bar_enabled"],"mappings":"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"}
@@ -6,6 +6,7 @@ export * from './applicationCommandOptionChoice.js';
6
6
  export * from './applicationCommandPermission.js';
7
7
  export * from './attachment.js';
8
8
  export * from './auditLogEntry.js';
9
+ export * from './automodActionExecution.js';
9
10
  export * from './automodRule.js';
10
11
  export * from './channel.js';
11
12
  export * from './component.js';
@@ -28,6 +29,7 @@ export * from './team.js';
28
29
  export * from './template.js';
29
30
  export * from './threadMember.js';
30
31
  export * from './toggles/index.js';
32
+ export * from './user.js';
31
33
  export * from './voiceRegion.js';
32
34
  export * from './voiceState.js';
33
35
  export * from './webhook.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transformers/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,qCAAqC,CAAA;AACnD,cAAc,mCAAmC,CAAA;AACjD,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transformers/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,qCAAqC,CAAA;AACnD,cAAc,mCAAmC,CAAA;AACjD,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,qBAAqB,CAAA"}
@@ -6,6 +6,7 @@ export * from './applicationCommandOptionChoice.js';
6
6
  export * from './applicationCommandPermission.js';
7
7
  export * from './attachment.js';
8
8
  export * from './auditLogEntry.js';
9
+ export * from './automodActionExecution.js';
9
10
  export * from './automodRule.js';
10
11
  export * from './channel.js';
11
12
  export * from './component.js';
@@ -28,6 +29,7 @@ export * from './team.js';
28
29
  export * from './template.js';
29
30
  export * from './threadMember.js';
30
31
  export * from './toggles/index.js';
32
+ export * from './user.js';
31
33
  export * from './voiceRegion.js';
32
34
  export * from './voiceState.js';
33
35
  export * from './webhook.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/transformers/index.ts"],"sourcesContent":["export * from './activity.js'\nexport * from './application.js'\nexport * from './applicationCommand.js'\nexport * from './applicationCommandOption.js'\nexport * from './applicationCommandOptionChoice.js'\nexport * from './applicationCommandPermission.js'\nexport * from './attachment.js'\nexport * from './auditLogEntry.js'\nexport * from './automodRule.js'\nexport * from './channel.js'\nexport * from './component.js'\nexport * from './embed.js'\nexport * from './emoji.js'\nexport * from './gatewayBot.js'\nexport * from './guild.js'\nexport * from './integration.js'\nexport * from './interaction.js'\nexport * from './invite.js'\nexport * from './member.js'\nexport * from './message.js'\nexport * from './presence.js'\nexport * from './reverse/index.js'\nexport * from './role.js'\nexport * from './scheduledEvent.js'\nexport * from './stageInstance.js'\nexport * from './sticker.js'\nexport * from './team.js'\nexport * from './template.js'\nexport * from './threadMember.js'\nexport * from './toggles/index.js'\nexport * from './voiceRegion.js'\nexport * from './voiceState.js'\nexport * from './webhook.js'\nexport * from './welcomeScreen.js'\nexport * from './widget.js'\nexport * from './widgetSettings.js'\n"],"names":[],"mappings":"AAAA,cAAc,gBAAe;AAC7B,cAAc,mBAAkB;AAChC,cAAc,0BAAyB;AACvC,cAAc,gCAA+B;AAC7C,cAAc,sCAAqC;AACnD,cAAc,oCAAmC;AACjD,cAAc,kBAAiB;AAC/B,cAAc,qBAAoB;AAClC,cAAc,mBAAkB;AAChC,cAAc,eAAc;AAC5B,cAAc,iBAAgB;AAC9B,cAAc,aAAY;AAC1B,cAAc,aAAY;AAC1B,cAAc,kBAAiB;AAC/B,cAAc,aAAY;AAC1B,cAAc,mBAAkB;AAChC,cAAc,mBAAkB;AAChC,cAAc,cAAa;AAC3B,cAAc,cAAa;AAC3B,cAAc,eAAc;AAC5B,cAAc,gBAAe;AAC7B,cAAc,qBAAoB;AAClC,cAAc,YAAW;AACzB,cAAc,sBAAqB;AACnC,cAAc,qBAAoB;AAClC,cAAc,eAAc;AAC5B,cAAc,YAAW;AACzB,cAAc,gBAAe;AAC7B,cAAc,oBAAmB;AACjC,cAAc,qBAAoB;AAClC,cAAc,mBAAkB;AAChC,cAAc,kBAAiB;AAC/B,cAAc,eAAc;AAC5B,cAAc,qBAAoB;AAClC,cAAc,cAAa;AAC3B,cAAc,sBAAqB"}
1
+ {"version":3,"sources":["../../src/transformers/index.ts"],"sourcesContent":["export * from './activity.js'\nexport * from './application.js'\nexport * from './applicationCommand.js'\nexport * from './applicationCommandOption.js'\nexport * from './applicationCommandOptionChoice.js'\nexport * from './applicationCommandPermission.js'\nexport * from './attachment.js'\nexport * from './auditLogEntry.js'\nexport * from './automodActionExecution.js'\nexport * from './automodRule.js'\nexport * from './channel.js'\nexport * from './component.js'\nexport * from './embed.js'\nexport * from './emoji.js'\nexport * from './gatewayBot.js'\nexport * from './guild.js'\nexport * from './integration.js'\nexport * from './interaction.js'\nexport * from './invite.js'\nexport * from './member.js'\nexport * from './message.js'\nexport * from './presence.js'\nexport * from './reverse/index.js'\nexport * from './role.js'\nexport * from './scheduledEvent.js'\nexport * from './stageInstance.js'\nexport * from './sticker.js'\nexport * from './team.js'\nexport * from './template.js'\nexport * from './threadMember.js'\nexport * from './toggles/index.js'\nexport * from './user.js'\nexport * from './voiceRegion.js'\nexport * from './voiceState.js'\nexport * from './webhook.js'\nexport * from './welcomeScreen.js'\nexport * from './widget.js'\nexport * from './widgetSettings.js'\n"],"names":[],"mappings":"AAAA,cAAc,gBAAe;AAC7B,cAAc,mBAAkB;AAChC,cAAc,0BAAyB;AACvC,cAAc,gCAA+B;AAC7C,cAAc,sCAAqC;AACnD,cAAc,oCAAmC;AACjD,cAAc,kBAAiB;AAC/B,cAAc,qBAAoB;AAClC,cAAc,8BAA6B;AAC3C,cAAc,mBAAkB;AAChC,cAAc,eAAc;AAC5B,cAAc,iBAAgB;AAC9B,cAAc,aAAY;AAC1B,cAAc,aAAY;AAC1B,cAAc,kBAAiB;AAC/B,cAAc,aAAY;AAC1B,cAAc,mBAAkB;AAChC,cAAc,mBAAkB;AAChC,cAAc,cAAa;AAC3B,cAAc,cAAa;AAC3B,cAAc,eAAc;AAC5B,cAAc,gBAAe;AAC7B,cAAc,qBAAoB;AAClC,cAAc,YAAW;AACzB,cAAc,sBAAqB;AACnC,cAAc,qBAAoB;AAClC,cAAc,eAAc;AAC5B,cAAc,YAAW;AACzB,cAAc,gBAAe;AAC7B,cAAc,oBAAmB;AACjC,cAAc,qBAAoB;AAClC,cAAc,YAAW;AACzB,cAAc,mBAAkB;AAChC,cAAc,kBAAiB;AAC/B,cAAc,eAAc;AAC5B,cAAc,qBAAoB;AAClC,cAAc,cAAa;AAC3B,cAAc,sBAAqB"}
@@ -3,6 +3,7 @@ import { type Bot } from '../index.js';
3
3
  export declare function transformIntegration(bot: Bot, payload: DiscordIntegrationCreateUpdate): {
4
4
  enabled?: boolean | undefined;
5
5
  user?: {
6
+ locale?: string | undefined;
6
7
  flags?: {
7
8
  bitfield: number;
8
9
  contains: (bits: number) => boolean;
@@ -10,7 +11,6 @@ export declare function transformIntegration(bot: Bot, payload: DiscordIntegrati
10
11
  remove: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
11
12
  toJSON: () => number;
12
13
  } | undefined;
13
- locale?: string | undefined;
14
14
  avatar?: bigint | undefined;
15
15
  email?: string | undefined;
16
16
  banner?: bigint | undefined;
@@ -20,13 +20,14 @@ export declare function transformIntegration(bot: Bot, payload: DiscordIntegrati
20
20
  verified: boolean;
21
21
  mfaEnabled: boolean;
22
22
  bitfield: number;
23
- has: (permissions: "bot" | "system" | "verified" | "mfaEnabled" | ("bot" | "system" | "verified" | "mfaEnabled")[]) => boolean;
24
23
  list: () => Record<"bot" | "system" | "verified" | "mfaEnabled", boolean>;
24
+ has: (permissions: "bot" | "system" | "verified" | "mfaEnabled" | ("bot" | "system" | "verified" | "mfaEnabled")[]) => boolean;
25
25
  contains: (bits: number) => boolean;
26
26
  add: (bits: number) => import("./toggles/user.js").UserToggles;
27
27
  remove: (bits: number) => import("./toggles/user.js").UserToggles;
28
28
  toJSON: () => number;
29
29
  } | undefined;
30
+ globalName?: string | undefined;
30
31
  premiumType?: import("@discordeno/types").PremiumTypes | undefined;
31
32
  publicFlags?: {
32
33
  bitfield: number;
@@ -36,8 +37,8 @@ export declare function transformIntegration(bot: Bot, payload: DiscordIntegrati
36
37
  toJSON: () => number;
37
38
  } | undefined;
38
39
  accentColor?: number | undefined;
39
- id: bigint;
40
40
  username: string;
41
+ id: bigint;
41
42
  discriminator: string;
42
43
  bot: boolean;
43
44
  system: boolean;
@@ -55,6 +56,7 @@ export declare function transformIntegration(bot: Bot, payload: DiscordIntegrati
55
56
  revoked?: boolean | undefined;
56
57
  application?: {
57
58
  bot?: {
59
+ locale?: string | undefined;
58
60
  flags?: {
59
61
  bitfield: number;
60
62
  contains: (bits: number) => boolean;
@@ -62,7 +64,6 @@ export declare function transformIntegration(bot: Bot, payload: DiscordIntegrati
62
64
  remove: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
63
65
  toJSON: () => number;
64
66
  } | undefined;
65
- locale?: string | undefined;
66
67
  avatar?: bigint | undefined;
67
68
  email?: string | undefined;
68
69
  banner?: bigint | undefined;
@@ -72,13 +73,14 @@ export declare function transformIntegration(bot: Bot, payload: DiscordIntegrati
72
73
  verified: boolean;
73
74
  mfaEnabled: boolean;
74
75
  bitfield: number;
75
- has: (permissions: "bot" | "system" | "verified" | "mfaEnabled" | ("bot" | "system" | "verified" | "mfaEnabled")[]) => boolean;
76
76
  list: () => Record<"bot" | "system" | "verified" | "mfaEnabled", boolean>;
77
+ has: (permissions: "bot" | "system" | "verified" | "mfaEnabled" | ("bot" | "system" | "verified" | "mfaEnabled")[]) => boolean;
77
78
  contains: (bits: number) => boolean;
78
79
  add: (bits: number) => import("./toggles/user.js").UserToggles;
79
80
  remove: (bits: number) => import("./toggles/user.js").UserToggles;
80
81
  toJSON: () => number;
81
82
  } | undefined;
83
+ globalName?: string | undefined;
82
84
  premiumType?: import("@discordeno/types").PremiumTypes | undefined;
83
85
  publicFlags?: {
84
86
  bitfield: number;
@@ -88,8 +90,8 @@ export declare function transformIntegration(bot: Bot, payload: DiscordIntegrati
88
90
  toJSON: () => number;
89
91
  } | undefined;
90
92
  accentColor?: number | undefined;
91
- id: bigint;
92
93
  username: string;
94
+ id: bigint;
93
95
  discriminator: string;
94
96
  bot: boolean;
95
97
  system: boolean;
@@ -104,8 +106,8 @@ export declare function transformIntegration(bot: Bot, payload: DiscordIntegrati
104
106
  } | undefined;
105
107
  id: bigint;
106
108
  name: string;
107
- type: "twitch" | "youtube" | "discord";
108
109
  guildId: bigint;
110
+ type: "twitch" | "youtube" | "discord";
109
111
  account: {
110
112
  id: bigint;
111
113
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"integration.d.ts","sourceRoot":"","sources":["../../src/transformers/integration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAoB,KAAK,GAAG,EAAE,MAAM,aAAa,CAAA;AAIxD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCrF;AAED,MAAM,WAAW,WAAY,SAAQ,UAAU,CAAC,OAAO,oBAAoB,CAAC;CAAG"}
1
+ {"version":3,"file":"integration.d.ts","sourceRoot":"","sources":["../../src/transformers/integration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAoB,KAAK,GAAG,EAAE,MAAM,aAAa,CAAA;AAIxD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCrF;AAED,MAAM,WAAW,WAAY,SAAQ,UAAU,CAAC,OAAO,oBAAoB,CAAC;CAAG"}
@@ -1,4 +1,4 @@
1
- import type { ApplicationCommandOptionTypes, ApplicationCommandTypes, ChannelTypes, DiscordInteraction, DiscordInteractionDataOption, InteractionTypes, MessageComponentTypes } from '@discordeno/types';
1
+ import { InteractionTypes, type ApplicationCommandOptionTypes, type ApplicationCommandTypes, type BigString, type CamelizedDiscordMessage, type ChannelTypes, type DiscordInteraction, type DiscordInteractionDataOption, type InteractionCallbackData, type MessageComponentTypes } from '@discordeno/types';
2
2
  import { Collection } from '@discordeno/utils';
3
3
  import type { Bot, Component } from '../index.js';
4
4
  import type { DiscordInteractionDataResolved } from '../typings.js';
@@ -7,7 +7,11 @@ import type { Member } from './member.js';
7
7
  import type { Message } from './message.js';
8
8
  import type { Role } from './role.js';
9
9
  import type { User } from './user.js';
10
- export interface Interaction {
10
+ export interface Interaction extends BaseInteraction {
11
+ /** The bot object */
12
+ bot: Bot;
13
+ /** Whether or not this interaction has been responded to. */
14
+ acknowledged: boolean;
11
15
  /** Id of the interaction */
12
16
  id: bigint;
13
17
  /** Id of the application this interaction is for */
@@ -48,6 +52,18 @@ export interface Interaction {
48
52
  /** The computed permissions for a bot or app in the context of a specific interaction (including channel overwrites) */
49
53
  appPermissions: bigint;
50
54
  }
55
+ export interface BaseInteraction {
56
+ /** Sends a response to an interaction. */
57
+ respond: (response: string | InteractionCallbackData, options?: {
58
+ isPrivate?: boolean;
59
+ }) => Promise<CamelizedDiscordMessage | void>;
60
+ /** Edit the original response of an interaction. */
61
+ edit: (response: string | InteractionCallbackData) => Promise<CamelizedDiscordMessage>;
62
+ /** Defer the interaction. */
63
+ defer: (isPrivate?: boolean) => Promise<void>;
64
+ /** Delete the original interaction response or a followup message */
65
+ delete: (messageId?: BigString) => Promise<void>;
66
+ }
51
67
  export declare function transformInteraction(bot: Bot, payload: DiscordInteraction): Interaction;
52
68
  export declare function transformInteractionDataOption(bot: Bot, option: DiscordInteractionDataOption): InteractionDataOption;
53
69
  export declare function transformInteractionDataResolved(bot: Bot, resolved: DiscordInteractionDataResolved, guildId?: bigint): InteractionDataResolved;
@@ -1 +1 @@
1
- {"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../../src/transformers/interaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../../src/transformers/interaction.ts"],"names":[],"mappings":"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"}
@@ -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;
@@ -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 }\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":"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"}