@discordeno/bot 19.0.0-next.e19eca5 → 19.0.0-next.e2d86ea

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 (67) 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/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/helpers.d.ts +205 -0
  10. package/dist/helpers.d.ts.map +1 -0
  11. package/dist/helpers.js +553 -0
  12. package/dist/helpers.js.map +1 -0
  13. package/dist/index.d.ts +4 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +4 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/transformers/activity.d.ts +15 -15
  18. package/dist/transformers/application.d.ts +3 -3
  19. package/dist/transformers/applicationCommand.d.ts +3 -3
  20. package/dist/transformers/applicationCommandPermission.d.ts +1 -1
  21. package/dist/transformers/attachment.d.ts +3 -3
  22. package/dist/transformers/auditLogEntry.d.ts +6 -6
  23. package/dist/transformers/automodActionExecution.d.ts +5 -5
  24. package/dist/transformers/channel.d.ts +3 -3
  25. package/dist/transformers/channel.d.ts.map +1 -1
  26. package/dist/transformers/channel.js +2 -1
  27. package/dist/transformers/channel.js.map +1 -1
  28. package/dist/transformers/embed.d.ts +3 -3
  29. package/dist/transformers/emoji.d.ts +4 -4
  30. package/dist/transformers/guild.d.ts +1 -1
  31. package/dist/transformers/index.d.ts +2 -0
  32. package/dist/transformers/index.d.ts.map +1 -1
  33. package/dist/transformers/index.js +2 -0
  34. package/dist/transformers/index.js.map +1 -1
  35. package/dist/transformers/integration.d.ts +7 -7
  36. package/dist/transformers/interaction.d.ts +10 -1
  37. package/dist/transformers/interaction.d.ts.map +1 -1
  38. package/dist/transformers/interaction.js +26 -1
  39. package/dist/transformers/interaction.js.map +1 -1
  40. package/dist/transformers/invite.d.ts +13 -13
  41. package/dist/transformers/member.d.ts +2 -2
  42. package/dist/transformers/member.d.ts.map +1 -1
  43. package/dist/transformers/member.js +2 -2
  44. package/dist/transformers/member.js.map +1 -1
  45. package/dist/transformers/presence.d.ts +1 -1
  46. package/dist/transformers/reverse/index.d.ts +3 -0
  47. package/dist/transformers/reverse/index.d.ts.map +1 -1
  48. package/dist/transformers/reverse/index.js +3 -0
  49. package/dist/transformers/reverse/index.js.map +1 -1
  50. package/dist/transformers/role.d.ts +2 -2
  51. package/dist/transformers/role.d.ts.map +1 -1
  52. package/dist/transformers/role.js +1 -1
  53. package/dist/transformers/role.js.map +1 -1
  54. package/dist/transformers/scheduledEvent.d.ts +5 -5
  55. package/dist/transformers/sticker.d.ts +5 -5
  56. package/dist/transformers/template.d.ts +93 -93
  57. package/dist/transformers/toggles/index.d.ts +2 -0
  58. package/dist/transformers/toggles/index.d.ts.map +1 -1
  59. package/dist/transformers/toggles/index.js +2 -0
  60. package/dist/transformers/toggles/index.js.map +1 -1
  61. package/dist/transformers/voiceRegion.d.ts +1 -1
  62. package/dist/transformers/voiceState.d.ts +2 -2
  63. package/dist/transformers/webhook.d.ts +6 -6
  64. package/dist/transformers.d.ts +3 -3
  65. package/dist/transformers.d.ts.map +1 -1
  66. package/dist/transformers.js.map +1 -1
  67. 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 { type ApplicationCommandOptionTypes, type ApplicationCommandTypes, type CamelizedDiscordMessage, type ChannelTypes, type DiscordInteraction, type DiscordInteractionDataOption, type InteractionResponse, type InteractionTypes, 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';
@@ -8,6 +8,10 @@ import type { Message } from './message.js';
8
8
  import type { Role } from './role.js';
9
9
  import type { User } from './user.js';
10
10
  export interface Interaction {
11
+ /** The bot object */
12
+ bot: Bot;
13
+ /** Whether or not this interaction has been replied 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,11 @@ 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
+ respond: (response: string | InteractionResponse, options: {
57
+ private: boolean;
58
+ }) => Promise<CamelizedDiscordMessage | void>;
59
+ }
51
60
  export declare function transformInteraction(bot: Bot, payload: DiscordInteraction): Interaction;
52
61
  export declare function transformInteractionDataOption(bot: Bot, option: DiscordInteractionDataOption): InteractionDataOption;
53
62
  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,34 @@
1
+ import { InteractionResponseTypes } from '@discordeno/types';
1
2
  import { Collection } from '@discordeno/utils';
3
+ const baseInteraction = {
4
+ async respond (response, options) {
5
+ // If user provides a string, change it to response object
6
+ if (typeof response === 'string') {
7
+ response = {
8
+ type: InteractionResponseTypes.DeferredChannelMessageWithSource,
9
+ data: {
10
+ content: response
11
+ }
12
+ };
13
+ }
14
+ // If user wants to send a ephemeral message
15
+ if (options.private && response.data) response.data.flags = 64;
16
+ // If user has not already responded to this interaction we need to send an original response
17
+ if (!this.acknowledged) {
18
+ this.acknowledged = true;
19
+ return await this.bot?.rest.sendInteractionResponse(this.id, this.token, response);
20
+ }
21
+ // Since this has already been given a response, any further responses must be folloups.
22
+ return await this.bot?.rest.sendFollowupMessage(this.token, response.data);
23
+ }
24
+ };
2
25
  export function transformInteraction(bot, payload) {
3
26
  const guildId = payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined;
4
27
  const user = bot.transformers.user(bot, payload.member?.user ?? payload.user);
5
- const interaction = Object.create({});
28
+ const interaction = Object.create(baseInteraction);
6
29
  const props = bot.transformers.desiredProperties.interaction;
30
+ interaction.bot = bot;
31
+ interaction.acknowledged = false;
7
32
  if (payload.id && props.id) interaction.id = bot.transformers.snowflake(payload.id);
8
33
  if (payload.application_id && props.applicationId) interaction.applicationId = bot.transformers.snowflake(payload.application_id);
9
34
  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 type ApplicationCommandOptionTypes,\n type ApplicationCommandTypes,\n type CamelizedDiscordMessage,\n type ChannelTypes,\n type DiscordInteraction,\n type DiscordInteractionDataOption,\n type InteractionResponse,\n type InteractionTypes,\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 {\n /** The bot object */\n bot: Bot\n /** Whether or not this interaction has been replied 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 respond: (response: string | InteractionResponse, options: { private: boolean }) => Promise<CamelizedDiscordMessage | void>\n}\n\nconst baseInteraction: Partial<Interaction> & BaseInteraction = {\n async respond(response, options) {\n // If user provides a string, change it to response object\n if (typeof response === 'string') {\n response = {\n type: InteractionResponseTypes.DeferredChannelMessageWithSource,\n data: {\n content: response,\n },\n }\n }\n\n // If user wants to send a ephemeral message\n if (options.private && response.data) response.data.flags = 64\n // If user has not already responded to this interaction we need to send an original response\n if (!this.acknowledged) {\n this.acknowledged = true;\n return await this.bot?.rest.sendInteractionResponse(this.id!, this.token!, response)\n }\n // Since this has already been given a response, any further responses must be folloups.\n return await this.bot?.rest.sendFollowupMessage(this.token!, response.data!)\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","Collection","baseInteraction","respond","response","options","type","DeferredChannelMessageWithSource","data","content","private","flags","acknowledged","bot","rest","sendInteractionResponse","id","token","sendFollowupMessage","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));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/transformers/member.ts"],"sourcesContent":["import type { DiscordMember } from '@discordeno/types'\nimport { iconHashToBigInt } from '@discordeno/utils'\nimport type { Bot } from '../bot.js'\nimport { Permissions } from './toggles/Permissions.js'\nimport { MemberToggles } from './toggles/member.js'\nimport type { User } from './user.js'\n\nconst baseMember: Partial<Member> & BaseMember = {\n get deaf() {\n return !!this.toggles?.has('deaf')\n },\n get mute() {\n return !!this.toggles?.has('mute')\n },\n get pending() {\n return !!this.toggles?.has('pending')\n },\n}\n\nexport function transformMember(bot: Bot, payload: DiscordMember, guildId: bigint, userId: bigint): Member {\n const member: Member = Object.create(baseMember)\n const props = bot.transformers.desiredProperties.member\n\n if (userId && props.id) member.id = userId\n if (guildId && props.guildId) member.guildId = guildId\n if (payload.user && props.user) member.user = bot.transformers.user(bot, payload.user)\n if (payload.nick && props.nick) member.nick = payload.nick\n if (payload.roles && props.roles) member.roles = payload.roles.map((id) => bot.transformers.snowflake(id))\n if (payload.joined_at && props.joinedAt) member.joinedAt = Date.parse(payload.joined_at)\n if (payload.premium_since && props.premiumSince) member.premiumSince = Date.parse(payload.premium_since)\n if (payload.communication_disabled_until && props.communicationDisabledUntil)\n member.communicationDisabledUntil = Date.parse(payload.communication_disabled_until)\n if (payload.avatar && props.avatar) member.avatar = iconHashToBigInt(payload.avatar)\n if (payload.permissions && props.permissions) member.permissions = new Permissions(payload.permissions)\n if (props.deaf || props.mute || props.pending) {\n member.toggles = new MemberToggles(payload)\n }\n\n return bot.transformers.customizers.member(bot, payload, member)\n}\n\nexport interface BaseMember {\n /** Whether the user is deafened in voice channels */\n deaf?: boolean\n /** Whether the user is muted in voice channels */\n mute?: boolean\n /** Whether the user has not yet passed the guild's Membership Screening requirements */\n pending?: boolean\n}\n\nexport interface Member extends BaseMember {\n /** The user id of the member. */\n id: bigint\n /** The compressed form of all the boolean values on this user. */\n toggles?: MemberToggles\n /** The guild id where this member is. */\n guildId: bigint\n /** The user this guild member represents */\n user?: User\n /** This users guild nickname */\n nick?: string\n /** The members custom avatar for this server. */\n avatar?: bigint\n /** Array of role object ids */\n roles: bigint[]\n /** When the user joined the guild */\n joinedAt: number\n /** When the user started boosting the guild */\n premiumSince?: number\n /** The permissions this member has in the guild. Only present on interaction events. */\n permissions?: Permissions\n /** when the user's timeout will expire and the user will be able to communicate in the guild again (set null to remove timeout), null or a time in the past if the user is not timed out */\n communicationDisabledUntil?: number\n}\n"],"names":["iconHashToBigInt","Permissions","MemberToggles","baseMember","deaf","toggles","has","mute","pending","transformMember","bot","payload","guildId","userId","member","Object","create","props","transformers","desiredProperties","id","user","nick","roles","map","snowflake","joined_at","joinedAt","Date","parse","premium_since","premiumSince","communication_disabled_until","communicationDisabledUntil","avatar","permissions","customizers"],"mappings":"AACA,SAASA,gBAAgB,QAAQ,oBAAmB;AAEpD,SAASC,WAAW,QAAQ,2BAA0B;AACtD,SAASC,aAAa,QAAQ,sBAAqB;AAGnD,MAAMC,aAA2C;IAC/C,IAAIC,QAAO;QACT,OAAO,CAAC,CAAC,IAAI,CAACC,OAAO,EAAEC,IAAI;IAC7B;IACA,IAAIC,QAAO;QACT,OAAO,CAAC,CAAC,IAAI,CAACF,OAAO,EAAEC,IAAI;IAC7B;IACA,IAAIE,WAAU;QACZ,OAAO,CAAC,CAAC,IAAI,CAACH,OAAO,EAAEC,IAAI;IAC7B;AACF;AAEA,OAAO,SAASG,gBAAgBC,GAAQ,EAAEC,OAAsB,EAAEC,OAAe,EAAEC,MAAc,EAAU;IACzG,MAAMC,SAAiBC,OAAOC,MAAM,CAACb;IACrC,MAAMc,QAAQP,IAAIQ,YAAY,CAACC,iBAAiB,CAACL,MAAM;IAEvD,IAAID,UAAUI,MAAMG,EAAE,EAAEN,OAAOM,EAAE,GAAGP;IACpC,IAAID,WAAWK,MAAML,OAAO,EAAEE,OAAOF,OAAO,GAAGA;IAC/C,IAAID,QAAQU,IAAI,IAAIJ,MAAMI,IAAI,EAAEP,OAAOO,IAAI,GAAGX,IAAIQ,YAAY,CAACG,IAAI,CAACX,KAAKC,QAAQU,IAAI;IACrF,IAAIV,QAAQW,IAAI,IAAIL,MAAMK,IAAI,EAAER,OAAOQ,IAAI,GAAGX,QAAQW,IAAI;IAC1D,IAAIX,QAAQY,KAAK,IAAIN,MAAMM,KAAK,EAAET,OAAOS,KAAK,GAAGZ,QAAQY,KAAK,CAACC,GAAG,CAAC,CAACJ,KAAOV,IAAIQ,YAAY,CAACO,SAAS,CAACL;IACtG,IAAIT,QAAQe,SAAS,IAAIT,MAAMU,QAAQ,EAAEb,OAAOa,QAAQ,GAAGC,KAAKC,KAAK,CAAClB,QAAQe,SAAS;IACvF,IAAIf,QAAQmB,aAAa,IAAIb,MAAMc,YAAY,EAAEjB,OAAOiB,YAAY,GAAGH,KAAKC,KAAK,CAAClB,QAAQmB,aAAa;IACvG,IAAInB,QAAQqB,4BAA4B,IAAIf,MAAMgB,0BAA0B,EAC1EnB,OAAOmB,0BAA0B,GAAGL,KAAKC,KAAK,CAAClB,QAAQqB,4BAA4B;IACrF,IAAIrB,QAAQuB,MAAM,IAAIjB,MAAMiB,MAAM,EAAEpB,OAAOoB,MAAM,GAAGlC,iBAAiBW,QAAQuB,MAAM;IACnF,IAAIvB,QAAQwB,WAAW,IAAIlB,MAAMkB,WAAW,EAAErB,OAAOqB,WAAW,GAAG,IAAIlC,YAAYU,QAAQwB,WAAW;IACtG,IAAIlB,MAAMb,IAAI,IAAIa,MAAMV,IAAI,IAAIU,MAAMT,OAAO,EAAE;QAC7CM,OAAOT,OAAO,GAAG,IAAIH,cAAcS;IACrC,CAAC;IAED,OAAOD,IAAIQ,YAAY,CAACkB,WAAW,CAACtB,MAAM,CAACJ,KAAKC,SAASG;AAC3D,CAAC"}
1
+ {"version":3,"sources":["../../src/transformers/member.ts"],"sourcesContent":["import type { BigString, DiscordMember } from '@discordeno/types'\nimport { iconHashToBigInt } from '@discordeno/utils'\nimport type { Bot } from '../bot.js'\nimport { Permissions } from './toggles/Permissions.js'\nimport { MemberToggles } from './toggles/member.js'\nimport type { User } from './user.js'\n\nconst baseMember: Partial<Member> & BaseMember = {\n get deaf() {\n return !!this.toggles?.has('deaf')\n },\n get mute() {\n return !!this.toggles?.has('mute')\n },\n get pending() {\n return !!this.toggles?.has('pending')\n },\n}\n\nexport function transformMember(bot: Bot, payload: DiscordMember, guildId: BigString, userId: BigString): Member {\n const member: Member = Object.create(baseMember)\n const props = bot.transformers.desiredProperties.member\n\n if (userId && props.id) member.id = typeof userId === \"string\" ? bot.transformers.snowflake(userId) : userId\n if (guildId && props.guildId) member.guildId = typeof guildId === \"string\" ? bot.transformers.snowflake(guildId) : guildId\n if (payload.user && props.user) member.user = bot.transformers.user(bot, payload.user)\n if (payload.nick && props.nick) member.nick = payload.nick\n if (payload.roles && props.roles) member.roles = payload.roles.map((id) => bot.transformers.snowflake(id))\n if (payload.joined_at && props.joinedAt) member.joinedAt = Date.parse(payload.joined_at)\n if (payload.premium_since && props.premiumSince) member.premiumSince = Date.parse(payload.premium_since)\n if (payload.communication_disabled_until && props.communicationDisabledUntil)\n member.communicationDisabledUntil = Date.parse(payload.communication_disabled_until)\n if (payload.avatar && props.avatar) member.avatar = iconHashToBigInt(payload.avatar)\n if (payload.permissions && props.permissions) member.permissions = new Permissions(payload.permissions)\n if (props.deaf || props.mute || props.pending) {\n member.toggles = new MemberToggles(payload)\n }\n\n return bot.transformers.customizers.member(bot, payload, member)\n}\n\nexport interface BaseMember {\n /** Whether the user is deafened in voice channels */\n deaf?: boolean\n /** Whether the user is muted in voice channels */\n mute?: boolean\n /** Whether the user has not yet passed the guild's Membership Screening requirements */\n pending?: boolean\n}\n\nexport interface Member extends BaseMember {\n /** The user id of the member. */\n id: bigint\n /** The compressed form of all the boolean values on this user. */\n toggles?: MemberToggles\n /** The guild id where this member is. */\n guildId: bigint\n /** The user this guild member represents */\n user?: User\n /** This users guild nickname */\n nick?: string\n /** The members custom avatar for this server. */\n avatar?: bigint\n /** Array of role object ids */\n roles: bigint[]\n /** When the user joined the guild */\n joinedAt: number\n /** When the user started boosting the guild */\n premiumSince?: number\n /** The permissions this member has in the guild. Only present on interaction events. */\n permissions?: Permissions\n /** when the user's timeout will expire and the user will be able to communicate in the guild again (set null to remove timeout), null or a time in the past if the user is not timed out */\n communicationDisabledUntil?: number\n}\n"],"names":["iconHashToBigInt","Permissions","MemberToggles","baseMember","deaf","toggles","has","mute","pending","transformMember","bot","payload","guildId","userId","member","Object","create","props","transformers","desiredProperties","id","snowflake","user","nick","roles","map","joined_at","joinedAt","Date","parse","premium_since","premiumSince","communication_disabled_until","communicationDisabledUntil","avatar","permissions","customizers"],"mappings":"AACA,SAASA,gBAAgB,QAAQ,oBAAmB;AAEpD,SAASC,WAAW,QAAQ,2BAA0B;AACtD,SAASC,aAAa,QAAQ,sBAAqB;AAGnD,MAAMC,aAA2C;IAC/C,IAAIC,QAAO;QACT,OAAO,CAAC,CAAC,IAAI,CAACC,OAAO,EAAEC,IAAI;IAC7B;IACA,IAAIC,QAAO;QACT,OAAO,CAAC,CAAC,IAAI,CAACF,OAAO,EAAEC,IAAI;IAC7B;IACA,IAAIE,WAAU;QACZ,OAAO,CAAC,CAAC,IAAI,CAACH,OAAO,EAAEC,IAAI;IAC7B;AACF;AAEA,OAAO,SAASG,gBAAgBC,GAAQ,EAAEC,OAAsB,EAAEC,OAAkB,EAAEC,MAAiB,EAAU;IAC/G,MAAMC,SAAiBC,OAAOC,MAAM,CAACb;IACrC,MAAMc,QAAQP,IAAIQ,YAAY,CAACC,iBAAiB,CAACL,MAAM;IAEvD,IAAID,UAAUI,MAAMG,EAAE,EAAEN,OAAOM,EAAE,GAAG,OAAOP,WAAW,WAAYH,IAAIQ,YAAY,CAACG,SAAS,CAACR,UAAUA,MAAM;IAC7G,IAAID,WAAWK,MAAML,OAAO,EAAEE,OAAOF,OAAO,GAAG,OAAOA,YAAY,WAAYF,IAAIQ,YAAY,CAACG,SAAS,CAACT,WAAWA,OAAO;IAC3H,IAAID,QAAQW,IAAI,IAAIL,MAAMK,IAAI,EAAER,OAAOQ,IAAI,GAAGZ,IAAIQ,YAAY,CAACI,IAAI,CAACZ,KAAKC,QAAQW,IAAI;IACrF,IAAIX,QAAQY,IAAI,IAAIN,MAAMM,IAAI,EAAET,OAAOS,IAAI,GAAGZ,QAAQY,IAAI;IAC1D,IAAIZ,QAAQa,KAAK,IAAIP,MAAMO,KAAK,EAAEV,OAAOU,KAAK,GAAGb,QAAQa,KAAK,CAACC,GAAG,CAAC,CAACL,KAAOV,IAAIQ,YAAY,CAACG,SAAS,CAACD;IACtG,IAAIT,QAAQe,SAAS,IAAIT,MAAMU,QAAQ,EAAEb,OAAOa,QAAQ,GAAGC,KAAKC,KAAK,CAAClB,QAAQe,SAAS;IACvF,IAAIf,QAAQmB,aAAa,IAAIb,MAAMc,YAAY,EAAEjB,OAAOiB,YAAY,GAAGH,KAAKC,KAAK,CAAClB,QAAQmB,aAAa;IACvG,IAAInB,QAAQqB,4BAA4B,IAAIf,MAAMgB,0BAA0B,EAC1EnB,OAAOmB,0BAA0B,GAAGL,KAAKC,KAAK,CAAClB,QAAQqB,4BAA4B;IACrF,IAAIrB,QAAQuB,MAAM,IAAIjB,MAAMiB,MAAM,EAAEpB,OAAOoB,MAAM,GAAGlC,iBAAiBW,QAAQuB,MAAM;IACnF,IAAIvB,QAAQwB,WAAW,IAAIlB,MAAMkB,WAAW,EAAErB,OAAOqB,WAAW,GAAG,IAAIlC,YAAYU,QAAQwB,WAAW;IACtG,IAAIlB,MAAMb,IAAI,IAAIa,MAAMV,IAAI,IAAIU,MAAMT,OAAO,EAAE;QAC7CM,OAAOT,OAAO,GAAG,IAAIH,cAAcS;IACrC,CAAC;IAED,OAAOD,IAAIQ,YAAY,CAACkB,WAAW,CAACtB,MAAM,CAACJ,KAAKC,SAASG;AAC3D,CAAC"}
@@ -5,8 +5,8 @@ export declare function transformPresence(bot: Bot, payload: DiscordPresenceUpda
5
5
  mobile?: string | undefined;
6
6
  web?: string | undefined;
7
7
  guildId: bigint;
8
- status: PresenceStatus;
9
8
  user: import("./user.js").User;
9
+ status: PresenceStatus;
10
10
  activities: import("./activity.js").Activity[];
11
11
  };
12
12
  export interface PresenceUpdate extends ReturnType<typeof transformPresence> {
@@ -1,4 +1,5 @@
1
1
  export * from './activity.js';
2
+ export * from './allowedMentions.js';
2
3
  export * from './application.js';
3
4
  export * from './applicationCommand.js';
4
5
  export * from './applicationCommandOption.js';
@@ -7,9 +8,11 @@ export * from './applicationCommandPermission.js';
7
8
  export * from './attachment.js';
8
9
  export * from './auditLogEntry.js';
9
10
  export * from './component.js';
11
+ export * from './createApplicationCommand.js';
10
12
  export * from './embed.js';
11
13
  export * from './emoji.js';
12
14
  export * from './gatewayBot.js';
15
+ export * from './interactionResponse.js';
13
16
  export * from './member.js';
14
17
  export * from './presence.js';
15
18
  export * from './team.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transformers/reverse/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,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transformers/reverse/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,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,gBAAgB,CAAA;AAC9B,cAAc,+BAA+B,CAAA;AAC7C,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,qBAAqB,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export * from './activity.js';
2
+ export * from './allowedMentions.js';
2
3
  export * from './application.js';
3
4
  export * from './applicationCommand.js';
4
5
  export * from './applicationCommandOption.js';
@@ -7,9 +8,11 @@ export * from './applicationCommandPermission.js';
7
8
  export * from './attachment.js';
8
9
  export * from './auditLogEntry.js';
9
10
  export * from './component.js';
11
+ export * from './createApplicationCommand.js';
10
12
  export * from './embed.js';
11
13
  export * from './emoji.js';
12
14
  export * from './gatewayBot.js';
15
+ export * from './interactionResponse.js';
13
16
  export * from './member.js';
14
17
  export * from './presence.js';
15
18
  export * from './team.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/transformers/reverse/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 './component.js'\nexport * from './embed.js'\nexport * from './emoji.js'\nexport * from './gatewayBot.js'\nexport * from './member.js'\nexport * from './presence.js'\nexport * from './team.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,iBAAgB;AAC9B,cAAc,aAAY;AAC1B,cAAc,aAAY;AAC1B,cAAc,kBAAiB;AAC/B,cAAc,cAAa;AAC3B,cAAc,gBAAe;AAC7B,cAAc,YAAW;AACzB,cAAc,sBAAqB"}
1
+ {"version":3,"sources":["../../../src/transformers/reverse/index.ts"],"sourcesContent":["export * from './activity.js'\nexport * from './allowedMentions.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 './component.js'\nexport * from './createApplicationCommand.js'\nexport * from './embed.js'\nexport * from './emoji.js'\nexport * from './gatewayBot.js'\nexport * from './interactionResponse.js'\nexport * from './member.js'\nexport * from './presence.js'\nexport * from './team.js'\nexport * from './widgetSettings.js'\n\n"],"names":[],"mappings":"AAAA,cAAc,gBAAe;AAC7B,cAAc,uBAAsB;AACpC,cAAc,mBAAkB;AAChC,cAAc,0BAAyB;AACvC,cAAc,gCAA+B;AAC7C,cAAc,sCAAqC;AACnD,cAAc,oCAAmC;AACjD,cAAc,kBAAiB;AAC/B,cAAc,qBAAoB;AAClC,cAAc,iBAAgB;AAC9B,cAAc,gCAA+B;AAC7C,cAAc,aAAY;AAC1B,cAAc,aAAY;AAC1B,cAAc,kBAAiB;AAC/B,cAAc,2BAA0B;AACxC,cAAc,cAAa;AAC3B,cAAc,gBAAe;AAC7B,cAAc,YAAW;AACzB,cAAc,sBAAqB"}
@@ -1,11 +1,11 @@
1
- import type { DiscordRole } from '@discordeno/types';
1
+ import type { BigString, DiscordRole } from '@discordeno/types';
2
2
  import { type Bot } from '../index.js';
3
3
  import { Permissions } from './toggles/Permissions.js';
4
4
  import { RoleToggles } from './toggles/role.js';
5
5
  export declare function transformRole(bot: Bot, payload: {
6
6
  role: DiscordRole;
7
7
  } & {
8
- guildId: bigint;
8
+ guildId: BigString;
9
9
  }): Role;
10
10
  export interface BaseRole {
11
11
  /** The tags this role has */