@discordeno/bot 19.0.0-next.dfb7f93 → 19.0.0-next.dfbee47

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 (75) hide show
  1. package/dist/bot.d.ts +3 -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/CHANNEL_CREATE.d.ts.map +1 -1
  6. package/dist/handlers/channels/CHANNEL_CREATE.js +3 -1
  7. package/dist/handlers/channels/CHANNEL_CREATE.js.map +1 -1
  8. package/dist/handlers/channels/index.d.ts +1 -0
  9. package/dist/handlers/channels/index.d.ts.map +1 -1
  10. package/dist/handlers/channels/index.js +1 -0
  11. package/dist/handlers/channels/index.js.map +1 -1
  12. package/dist/helpers.d.ts +205 -0
  13. package/dist/helpers.d.ts.map +1 -0
  14. package/dist/helpers.js +553 -0
  15. package/dist/helpers.js.map +1 -0
  16. package/dist/index.d.ts +4 -0
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +4 -0
  19. package/dist/index.js.map +1 -1
  20. package/dist/transformers/activity.d.ts +15 -15
  21. package/dist/transformers/application.d.ts +3 -3
  22. package/dist/transformers/applicationCommand.d.ts +3 -3
  23. package/dist/transformers/applicationCommandPermission.d.ts +1 -1
  24. package/dist/transformers/attachment.d.ts +3 -3
  25. package/dist/transformers/auditLogEntry.d.ts +6 -6
  26. package/dist/transformers/automodActionExecution.d.ts +5 -5
  27. package/dist/transformers/channel.d.ts +3 -3
  28. package/dist/transformers/channel.d.ts.map +1 -1
  29. package/dist/transformers/channel.js +3 -2
  30. package/dist/transformers/channel.js.map +1 -1
  31. package/dist/transformers/embed.d.ts +3 -3
  32. package/dist/transformers/emoji.d.ts +4 -4
  33. package/dist/transformers/guild.d.ts +1 -1
  34. package/dist/transformers/index.d.ts +2 -0
  35. package/dist/transformers/index.d.ts.map +1 -1
  36. package/dist/transformers/index.js +2 -0
  37. package/dist/transformers/index.js.map +1 -1
  38. package/dist/transformers/integration.d.ts +7 -7
  39. package/dist/transformers/interaction.d.ts +18 -2
  40. package/dist/transformers/interaction.d.ts.map +1 -1
  41. package/dist/transformers/interaction.js +56 -1
  42. package/dist/transformers/interaction.js.map +1 -1
  43. package/dist/transformers/invite.d.ts +13 -13
  44. package/dist/transformers/member.d.ts +2 -2
  45. package/dist/transformers/member.d.ts.map +1 -1
  46. package/dist/transformers/member.js +3 -3
  47. package/dist/transformers/member.js.map +1 -1
  48. package/dist/transformers/message.js +3 -3
  49. package/dist/transformers/message.js.map +1 -1
  50. package/dist/transformers/presence.d.ts +1 -1
  51. package/dist/transformers/reverse/index.d.ts +3 -0
  52. package/dist/transformers/reverse/index.d.ts.map +1 -1
  53. package/dist/transformers/reverse/index.js +3 -0
  54. package/dist/transformers/reverse/index.js.map +1 -1
  55. package/dist/transformers/role.d.ts +2 -2
  56. package/dist/transformers/role.d.ts.map +1 -1
  57. package/dist/transformers/role.js +2 -2
  58. package/dist/transformers/role.js.map +1 -1
  59. package/dist/transformers/scheduledEvent.d.ts +5 -5
  60. package/dist/transformers/sticker.d.ts +5 -5
  61. package/dist/transformers/template.d.ts +95 -95
  62. package/dist/transformers/toggles/index.d.ts +2 -0
  63. package/dist/transformers/toggles/index.d.ts.map +1 -1
  64. package/dist/transformers/toggles/index.js +2 -0
  65. package/dist/transformers/toggles/index.js.map +1 -1
  66. package/dist/transformers/user.js +1 -1
  67. package/dist/transformers/user.js.map +1 -1
  68. package/dist/transformers/voiceRegion.d.ts +1 -1
  69. package/dist/transformers/voiceState.d.ts +2 -2
  70. package/dist/transformers/webhook.d.ts +6 -6
  71. package/dist/transformers.d.ts +7 -3
  72. package/dist/transformers.d.ts.map +1 -1
  73. package/dist/transformers.js +12 -0
  74. package/dist/transformers.js.map +1 -1
  75. package/package.json +5 -5
@@ -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,8 +23,8 @@ 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;
@@ -38,8 +39,8 @@ export declare function transformEmoji(bot: Bot, payload: DiscordEmoji): {
38
39
  toJSON: () => number;
39
40
  } | undefined;
40
41
  accentColor?: number | undefined;
41
- id: bigint;
42
42
  username: string;
43
+ id: bigint;
43
44
  discriminator: string;
44
45
  bot: boolean;
45
46
  system: boolean;
@@ -47,7 +48,6 @@ export declare function transformEmoji(bot: Bot, payload: DiscordEmoji): {
47
48
  tag: string;
48
49
  mfaEnabled: boolean;
49
50
  } | undefined;
50
- roles?: bigint[] | undefined;
51
51
  toggles: EmojiToggles;
52
52
  };
53
53
  export interface Emoji extends ReturnType<typeof transformEmoji> {
@@ -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;
@@ -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,8 +20,8 @@ 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;
@@ -36,8 +36,8 @@ export declare function transformIntegration(bot: Bot, payload: DiscordIntegrati
36
36
  toJSON: () => number;
37
37
  } | undefined;
38
38
  accentColor?: number | undefined;
39
- id: bigint;
40
39
  username: string;
40
+ id: bigint;
41
41
  discriminator: string;
42
42
  bot: boolean;
43
43
  system: boolean;
@@ -55,6 +55,7 @@ export declare function transformIntegration(bot: Bot, payload: DiscordIntegrati
55
55
  revoked?: boolean | undefined;
56
56
  application?: {
57
57
  bot?: {
58
+ locale?: string | undefined;
58
59
  flags?: {
59
60
  bitfield: number;
60
61
  contains: (bits: number) => boolean;
@@ -62,7 +63,6 @@ export declare function transformIntegration(bot: Bot, payload: DiscordIntegrati
62
63
  remove: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
63
64
  toJSON: () => number;
64
65
  } | undefined;
65
- locale?: string | undefined;
66
66
  avatar?: bigint | undefined;
67
67
  email?: string | undefined;
68
68
  banner?: bigint | undefined;
@@ -72,8 +72,8 @@ export declare function transformIntegration(bot: Bot, payload: DiscordIntegrati
72
72
  verified: boolean;
73
73
  mfaEnabled: boolean;
74
74
  bitfield: number;
75
- has: (permissions: "bot" | "system" | "verified" | "mfaEnabled" | ("bot" | "system" | "verified" | "mfaEnabled")[]) => boolean;
76
75
  list: () => Record<"bot" | "system" | "verified" | "mfaEnabled", boolean>;
76
+ has: (permissions: "bot" | "system" | "verified" | "mfaEnabled" | ("bot" | "system" | "verified" | "mfaEnabled")[]) => boolean;
77
77
  contains: (bits: number) => boolean;
78
78
  add: (bits: number) => import("./toggles/user.js").UserToggles;
79
79
  remove: (bits: number) => import("./toggles/user.js").UserToggles;
@@ -88,8 +88,8 @@ export declare function transformIntegration(bot: Bot, payload: DiscordIntegrati
88
88
  toJSON: () => number;
89
89
  } | undefined;
90
90
  accentColor?: number | undefined;
91
- id: bigint;
92
91
  username: string;
92
+ id: bigint;
93
93
  discriminator: string;
94
94
  bot: boolean;
95
95
  system: boolean;
@@ -104,8 +104,8 @@ export declare function transformIntegration(bot: Bot, payload: DiscordIntegrati
104
104
  } | undefined;
105
105
  id: bigint;
106
106
  name: string;
107
- type: "twitch" | "youtube" | "discord";
108
107
  guildId: bigint;
108
+ type: "twitch" | "youtube" | "discord";
109
109
  account: {
110
110
  id: bigint;
111
111
  name: string;
@@ -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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"}
@@ -3,6 +3,7 @@ import type { Bot } from '../index.js';
3
3
  export declare function transformInvite(bot: Bot, invite: DiscordInviteCreate): {
4
4
  guildId?: bigint | undefined;
5
5
  inviter?: {
6
+ locale?: string | undefined;
6
7
  flags?: {
7
8
  bitfield: number;
8
9
  contains: (bits: number) => boolean;
@@ -10,7 +11,6 @@ export declare function transformInvite(bot: Bot, invite: DiscordInviteCreate):
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,8 +20,8 @@ export declare function transformInvite(bot: Bot, invite: DiscordInviteCreate):
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;
@@ -36,8 +36,8 @@ export declare function transformInvite(bot: Bot, invite: DiscordInviteCreate):
36
36
  toJSON: () => number;
37
37
  } | undefined;
38
38
  accentColor?: number | undefined;
39
- id: bigint;
40
39
  username: string;
40
+ id: bigint;
41
41
  discriminator: string;
42
42
  bot: boolean;
43
43
  system: boolean;
@@ -46,6 +46,7 @@ export declare function transformInvite(bot: Bot, invite: DiscordInviteCreate):
46
46
  mfaEnabled: boolean;
47
47
  } | undefined;
48
48
  targetUser?: {
49
+ locale?: string | undefined;
49
50
  flags?: {
50
51
  bitfield: number;
51
52
  contains: (bits: number) => boolean;
@@ -53,7 +54,6 @@ export declare function transformInvite(bot: Bot, invite: DiscordInviteCreate):
53
54
  remove: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
54
55
  toJSON: () => number;
55
56
  } | undefined;
56
- locale?: string | undefined;
57
57
  avatar?: bigint | undefined;
58
58
  email?: string | undefined;
59
59
  banner?: bigint | undefined;
@@ -63,8 +63,8 @@ export declare function transformInvite(bot: Bot, invite: DiscordInviteCreate):
63
63
  verified: boolean;
64
64
  mfaEnabled: boolean;
65
65
  bitfield: number;
66
- has: (permissions: "bot" | "system" | "verified" | "mfaEnabled" | ("bot" | "system" | "verified" | "mfaEnabled")[]) => boolean;
67
66
  list: () => Record<"bot" | "system" | "verified" | "mfaEnabled", boolean>;
67
+ has: (permissions: "bot" | "system" | "verified" | "mfaEnabled" | ("bot" | "system" | "verified" | "mfaEnabled")[]) => boolean;
68
68
  contains: (bits: number) => boolean;
69
69
  add: (bits: number) => import("./toggles/user.js").UserToggles;
70
70
  remove: (bits: number) => import("./toggles/user.js").UserToggles;
@@ -79,8 +79,8 @@ export declare function transformInvite(bot: Bot, invite: DiscordInviteCreate):
79
79
  toJSON: () => number;
80
80
  } | undefined;
81
81
  accentColor?: number | undefined;
82
- id: bigint;
83
82
  username: string;
83
+ id: bigint;
84
84
  discriminator: string;
85
85
  bot: boolean;
86
86
  system: boolean;
@@ -98,6 +98,7 @@ export declare function transformInvite(bot: Bot, invite: DiscordInviteCreate):
98
98
  slug?: string | undefined;
99
99
  coverImage?: bigint | undefined;
100
100
  owner?: {
101
+ locale?: string | undefined;
101
102
  flags?: {
102
103
  bitfield: number;
103
104
  contains: (bits: number) => boolean;
@@ -105,7 +106,6 @@ export declare function transformInvite(bot: Bot, invite: DiscordInviteCreate):
105
106
  remove: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
106
107
  toJSON: () => number;
107
108
  } | undefined;
108
- locale?: string | undefined;
109
109
  avatar?: bigint | undefined;
110
110
  email?: string | undefined;
111
111
  banner?: bigint | undefined;
@@ -115,8 +115,8 @@ export declare function transformInvite(bot: Bot, invite: DiscordInviteCreate):
115
115
  verified: boolean;
116
116
  mfaEnabled: boolean;
117
117
  bitfield: number;
118
- has: (permissions: "bot" | "system" | "verified" | "mfaEnabled" | ("bot" | "system" | "verified" | "mfaEnabled")[]) => boolean;
119
118
  list: () => Record<"bot" | "system" | "verified" | "mfaEnabled", boolean>;
119
+ has: (permissions: "bot" | "system" | "verified" | "mfaEnabled" | ("bot" | "system" | "verified" | "mfaEnabled")[]) => boolean;
120
120
  contains: (bits: number) => boolean;
121
121
  add: (bits: number) => import("./toggles/user.js").UserToggles;
122
122
  remove: (bits: number) => import("./toggles/user.js").UserToggles;
@@ -131,8 +131,8 @@ export declare function transformInvite(bot: Bot, invite: DiscordInviteCreate):
131
131
  toJSON: () => number;
132
132
  } | undefined;
133
133
  accentColor?: number | undefined;
134
- id: bigint;
135
134
  username: string;
135
+ id: bigint;
136
136
  discriminator: string;
137
137
  bot: boolean;
138
138
  system: boolean;
@@ -160,14 +160,14 @@ export declare function transformInvite(bot: Bot, invite: DiscordInviteCreate):
160
160
  botRequireCodeGrant: boolean;
161
161
  verifyKey: string;
162
162
  } | undefined;
163
- createdAt: number;
163
+ channelId: bigint;
164
164
  code: string;
165
+ createdAt: number;
166
+ targetType: import("@discordeno/types").TargetTypes;
165
167
  uses: number;
166
168
  temporary: boolean;
167
- channelId: bigint;
168
- maxAge: number;
169
169
  maxUses: number;
170
- targetType: import("@discordeno/types").TargetTypes;
170
+ maxAge: number;
171
171
  };
172
172
  export interface Invite extends ReturnType<typeof transformInvite> {
173
173
  }
@@ -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));
@@ -28,7 +28,7 @@ export function transformMember(bot, payload, guildId, userId) {
28
28
  if (props.deaf || props.mute || props.pending) {
29
29
  member.toggles = new MemberToggles(payload);
30
30
  }
31
- return member;
31
+ return bot.transformers.customizers.member(bot, payload, member);
32
32
  }
33
33
 
34
34
  //# sourceMappingURL=member.js.map
@@ -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 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"],"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,OAAOG;AACT,CAAC"}
1
+ {"version":3,"sources":["../../src/transformers/member.ts"],"sourcesContent":["import type { BigString, DiscordMember } from '@discordeno/types'\nimport { iconHashToBigInt } from '@discordeno/utils'\nimport type { Bot } from '../bot.js'\nimport { Permissions } from './toggles/Permissions.js'\nimport { MemberToggles } from './toggles/member.js'\nimport type { User } from './user.js'\n\nconst baseMember: Partial<Member> & BaseMember = {\n get deaf() {\n return !!this.toggles?.has('deaf')\n },\n get mute() {\n return !!this.toggles?.has('mute')\n },\n get pending() {\n return !!this.toggles?.has('pending')\n },\n}\n\nexport function transformMember(bot: Bot, payload: DiscordMember, guildId: BigString, userId: BigString): Member {\n const member: Member = Object.create(baseMember)\n const props = bot.transformers.desiredProperties.member\n\n if (userId && props.id) member.id = typeof userId === \"string\" ? bot.transformers.snowflake(userId) : userId\n if (guildId && props.guildId) member.guildId = typeof guildId === \"string\" ? bot.transformers.snowflake(guildId) : guildId\n if (payload.user && props.user) member.user = bot.transformers.user(bot, payload.user)\n if (payload.nick && props.nick) member.nick = payload.nick\n if (payload.roles && props.roles) member.roles = payload.roles.map((id) => bot.transformers.snowflake(id))\n if (payload.joined_at && props.joinedAt) member.joinedAt = Date.parse(payload.joined_at)\n if (payload.premium_since && props.premiumSince) member.premiumSince = Date.parse(payload.premium_since)\n if (payload.communication_disabled_until && props.communicationDisabledUntil)\n member.communicationDisabledUntil = Date.parse(payload.communication_disabled_until)\n if (payload.avatar && props.avatar) member.avatar = iconHashToBigInt(payload.avatar)\n if (payload.permissions && props.permissions) member.permissions = new Permissions(payload.permissions)\n if (props.deaf || props.mute || props.pending) {\n member.toggles = new MemberToggles(payload)\n }\n\n return bot.transformers.customizers.member(bot, payload, member)\n}\n\nexport interface BaseMember {\n /** Whether the user is deafened in voice channels */\n deaf?: boolean\n /** Whether the user is muted in voice channels */\n mute?: boolean\n /** Whether the user has not yet passed the guild's Membership Screening requirements */\n pending?: boolean\n}\n\nexport interface Member extends BaseMember {\n /** The user id of the member. */\n id: bigint\n /** The compressed form of all the boolean values on this user. */\n toggles?: MemberToggles\n /** The guild id where this member is. */\n guildId: bigint\n /** The user this guild member represents */\n user?: User\n /** This users guild nickname */\n nick?: string\n /** The members custom avatar for this server. */\n avatar?: bigint\n /** Array of role object ids */\n roles: bigint[]\n /** When the user joined the guild */\n joinedAt: number\n /** When the user started boosting the guild */\n premiumSince?: number\n /** The permissions this member has in the guild. Only present on interaction events. */\n permissions?: Permissions\n /** when the user's timeout will expire and the user will be able to communicate in the guild again (set null to remove timeout), null or a time in the past if the user is not timed out */\n communicationDisabledUntil?: number\n}\n"],"names":["iconHashToBigInt","Permissions","MemberToggles","baseMember","deaf","toggles","has","mute","pending","transformMember","bot","payload","guildId","userId","member","Object","create","props","transformers","desiredProperties","id","snowflake","user","nick","roles","map","joined_at","joinedAt","Date","parse","premium_since","premiumSince","communication_disabled_until","communicationDisabledUntil","avatar","permissions","customizers"],"mappings":"AACA,SAASA,gBAAgB,QAAQ,oBAAmB;AAEpD,SAASC,WAAW,QAAQ,2BAA0B;AACtD,SAASC,aAAa,QAAQ,sBAAqB;AAGnD,MAAMC,aAA2C;IAC/C,IAAIC,QAAO;QACT,OAAO,CAAC,CAAC,IAAI,CAACC,OAAO,EAAEC,IAAI;IAC7B;IACA,IAAIC,QAAO;QACT,OAAO,CAAC,CAAC,IAAI,CAACF,OAAO,EAAEC,IAAI;IAC7B;IACA,IAAIE,WAAU;QACZ,OAAO,CAAC,CAAC,IAAI,CAACH,OAAO,EAAEC,IAAI;IAC7B;AACF;AAEA,OAAO,SAASG,gBAAgBC,GAAQ,EAAEC,OAAsB,EAAEC,OAAkB,EAAEC,MAAiB,EAAU;IAC/G,MAAMC,SAAiBC,OAAOC,MAAM,CAACb;IACrC,MAAMc,QAAQP,IAAIQ,YAAY,CAACC,iBAAiB,CAACL,MAAM;IAEvD,IAAID,UAAUI,MAAMG,EAAE,EAAEN,OAAOM,EAAE,GAAG,OAAOP,WAAW,WAAYH,IAAIQ,YAAY,CAACG,SAAS,CAACR,UAAUA,MAAM;IAC7G,IAAID,WAAWK,MAAML,OAAO,EAAEE,OAAOF,OAAO,GAAG,OAAOA,YAAY,WAAYF,IAAIQ,YAAY,CAACG,SAAS,CAACT,WAAWA,OAAO;IAC3H,IAAID,QAAQW,IAAI,IAAIL,MAAMK,IAAI,EAAER,OAAOQ,IAAI,GAAGZ,IAAIQ,YAAY,CAACI,IAAI,CAACZ,KAAKC,QAAQW,IAAI;IACrF,IAAIX,QAAQY,IAAI,IAAIN,MAAMM,IAAI,EAAET,OAAOS,IAAI,GAAGZ,QAAQY,IAAI;IAC1D,IAAIZ,QAAQa,KAAK,IAAIP,MAAMO,KAAK,EAAEV,OAAOU,KAAK,GAAGb,QAAQa,KAAK,CAACC,GAAG,CAAC,CAACL,KAAOV,IAAIQ,YAAY,CAACG,SAAS,CAACD;IACtG,IAAIT,QAAQe,SAAS,IAAIT,MAAMU,QAAQ,EAAEb,OAAOa,QAAQ,GAAGC,KAAKC,KAAK,CAAClB,QAAQe,SAAS;IACvF,IAAIf,QAAQmB,aAAa,IAAIb,MAAMc,YAAY,EAAEjB,OAAOiB,YAAY,GAAGH,KAAKC,KAAK,CAAClB,QAAQmB,aAAa;IACvG,IAAInB,QAAQqB,4BAA4B,IAAIf,MAAMgB,0BAA0B,EAC1EnB,OAAOmB,0BAA0B,GAAGL,KAAKC,KAAK,CAAClB,QAAQqB,4BAA4B;IACrF,IAAIrB,QAAQuB,MAAM,IAAIjB,MAAMiB,MAAM,EAAEpB,OAAOoB,MAAM,GAAGlC,iBAAiBW,QAAQuB,MAAM;IACnF,IAAIvB,QAAQwB,WAAW,IAAIlB,MAAMkB,WAAW,EAAErB,OAAOqB,WAAW,GAAG,IAAIlC,YAAYU,QAAQwB,WAAW;IACtG,IAAIlB,MAAMb,IAAI,IAAIa,MAAMV,IAAI,IAAIU,MAAMT,OAAO,EAAE;QAC7CM,OAAOT,OAAO,GAAG,IAAIH,cAAcS;IACrC,CAAC;IAED,OAAOD,IAAIQ,YAAY,CAACkB,WAAW,CAACtB,MAAM,CAACJ,KAAKC,SAASG;AAC3D,CAAC"}
@@ -123,14 +123,14 @@ export function transformMessage(bot, payload) {
123
123
  message.bitfield = new ToggleBitfield();
124
124
  message.flags = new ToggleBitfield(payload.flags);
125
125
  const props = bot.transformers.desiredProperties.message;
126
- if (props.author && props.author) message.author = bot.transformers.user(bot, payload.author);
126
+ if (props.author && payload.author) message.author = bot.transformers.user(bot, payload.author);
127
127
  if (payload.application_id && props.applicationId) message.applicationId = bot.transformers.snowflake(payload.application_id);
128
128
  if (payload.attachments?.length && props.attachments) {
129
129
  message.attachments = payload.attachments.map((attachment)=>bot.transformers.attachment(bot, attachment));
130
130
  }
131
- if (props.channelId && props.channelId) message.channelId = bot.transformers.snowflake(payload.channel_id);
131
+ if (props.channelId && payload.channel_id) message.channelId = bot.transformers.snowflake(payload.channel_id);
132
132
  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;
133
+ if (props.content && payload.content) message.content = payload.content ?? EMPTY_STRING;
134
134
  if (payload.edited_timestamp && props.editedTimestamp) message.editedTimestamp = Date.parse(payload.edited_timestamp);
135
135
  if (payload.embeds?.length && props.embeds) message.embeds = payload.embeds.map((embed)=>bot.transformers.embed(bot, embed));
136
136
  if (guildId && props.guildId) message.guildId = guildId;