lunibee 0.1.6 → 0.1.8

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 (80) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +223 -223
  3. package/dist/builders/commands.d.ts +39 -0
  4. package/dist/builders/components.d.ts +37 -12
  5. package/dist/builders/embed.d.ts +3 -1
  6. package/dist/builders/index.d.ts +2 -2
  7. package/dist/builders/index.js +192 -29
  8. package/dist/builders/index.js.map +9 -7
  9. package/dist/collection/index.d.ts +30 -0
  10. package/dist/collection/index.js +79 -5
  11. package/dist/collection/index.js.map +4 -4
  12. package/dist/core/events.d.ts +88 -2
  13. package/dist/core/index.d.ts +46 -85
  14. package/dist/core/index.js +2395 -789
  15. package/dist/core/index.js.map +44 -22
  16. package/dist/core/permissions.d.ts +112 -53
  17. package/dist/formatters/index.d.ts +43 -3
  18. package/dist/formatters/index.js +64 -1
  19. package/dist/formatters/index.js.map +3 -3
  20. package/dist/handlers/index.js.map +2 -2
  21. package/dist/index.d.ts +2 -2
  22. package/dist/index.js +3783 -1009
  23. package/dist/index.js.map +63 -38
  24. package/dist/managers/emoji.d.ts +38 -0
  25. package/dist/managers/guild-resources.d.ts +109 -0
  26. package/dist/managers/guild.d.ts +117 -1
  27. package/dist/managers/index.d.ts +37 -1
  28. package/dist/managers/index.js +1125 -81
  29. package/dist/managers/index.js.map +25 -20
  30. package/dist/rest/decoder.d.ts +23 -0
  31. package/dist/rest/errors.d.ts +20 -0
  32. package/dist/rest/index.d.ts +119 -25
  33. package/dist/rest/index.js +676 -204
  34. package/dist/rest/index.js.map +14 -6
  35. package/dist/rest/limiter.d.ts +42 -0
  36. package/dist/rest/redis.d.ts +54 -0
  37. package/dist/rest/route.d.ts +31 -0
  38. package/dist/rest/routes.d.ts +24 -0
  39. package/dist/rest/scheduler.d.ts +42 -0
  40. package/dist/rest/store.d.ts +67 -0
  41. package/dist/rest/transport.d.ts +40 -0
  42. package/dist/rest/webhook.d.ts +2 -2
  43. package/dist/sharding/bus.d.ts +31 -0
  44. package/dist/sharding/cluster.d.ts +71 -0
  45. package/dist/sharding/index.d.ts +18 -2
  46. package/dist/sharding/index.js +1202 -317
  47. package/dist/sharding/index.js.map +18 -7
  48. package/dist/structures/audit-log.d.ts +26 -0
  49. package/dist/structures/base.d.ts +40 -0
  50. package/dist/structures/channels.d.ts +56 -0
  51. package/dist/structures/index.d.ts +30 -1
  52. package/dist/structures/index.js +963 -87
  53. package/dist/structures/index.js.map +17 -10
  54. package/dist/structures/interactions.d.ts +12 -52
  55. package/dist/structures/options.d.ts +55 -0
  56. package/dist/structures/resources.d.ts +194 -6
  57. package/dist/types/gateway-events.d.ts +132 -0
  58. package/dist/types/gateway.d.ts +181 -0
  59. package/dist/types/index.d.ts +78 -263
  60. package/dist/types/index.js +44 -2
  61. package/dist/types/index.js.map +5 -4
  62. package/dist/utils/index.js.map +2 -2
  63. package/dist/voice/index.d.ts +116 -0
  64. package/dist/voice/index.js +261 -10
  65. package/dist/voice/index.js.map +3 -3
  66. package/dist/ws/close-codes.d.ts +23 -0
  67. package/dist/ws/decoder.d.ts +58 -0
  68. package/dist/ws/heartbeat.d.ts +87 -0
  69. package/dist/ws/index.d.ts +24 -32
  70. package/dist/ws/index.js +920 -318
  71. package/dist/ws/index.js.map +15 -5
  72. package/dist/ws/opcodes.d.ts +14 -0
  73. package/dist/ws/protocol.d.ts +110 -0
  74. package/dist/ws/reconnect.d.ts +108 -0
  75. package/dist/ws/send-budget.d.ts +17 -0
  76. package/dist/ws/session.d.ts +100 -0
  77. package/dist/ws/state.d.ts +27 -0
  78. package/dist/ws/transport.d.ts +80 -0
  79. package/package.json +23 -22
  80. package/dist/structures/permissions.d.ts +0 -73
@@ -0,0 +1,181 @@
1
+ /** Gateway intent bit flags supported by Discord (PascalCase). */
2
+ export declare const GatewayIntentBits: {
3
+ readonly Guilds: number;
4
+ readonly GuildMembers: number;
5
+ readonly GuildModeration: number;
6
+ readonly GuildExpressions: number;
7
+ readonly GuildIntegrations: number;
8
+ readonly GuildWebhooks: number;
9
+ readonly GuildInvites: number;
10
+ readonly GuildVoiceStates: number;
11
+ readonly GuildPresences: number;
12
+ readonly GuildMessages: number;
13
+ readonly GuildMessageReactions: number;
14
+ readonly GuildMessageTyping: number;
15
+ readonly DirectMessages: number;
16
+ readonly DirectMessageReactions: number;
17
+ readonly DirectMessageTyping: number;
18
+ readonly MessageContent: number;
19
+ readonly GuildScheduledEvents: number;
20
+ readonly AutoModerationConfiguration: number;
21
+ readonly AutoModerationExecution: number;
22
+ readonly GuildMessagePolls: number;
23
+ readonly DirectMessagePolls: number;
24
+ };
25
+ /** Idiomatic camelCase Gateway intent bit flags supported by Discord. */
26
+ export declare const IntentBits: {
27
+ readonly guild: number;
28
+ readonly guilds: number;
29
+ readonly guildMembers: number;
30
+ readonly guildModeration: number;
31
+ readonly guildBans: number;
32
+ readonly guildExpressions: number;
33
+ readonly guildEmojis: number;
34
+ readonly guildEmojisAndStickers: number;
35
+ readonly guildIntegrations: number;
36
+ readonly guildWebhooks: number;
37
+ readonly guildInvites: number;
38
+ readonly guildVoiceStates: number;
39
+ readonly guildPresences: number;
40
+ readonly guildMessages: number;
41
+ readonly guildMessage: number;
42
+ readonly guildMessageReactions: number;
43
+ readonly guildMessageTyping: number;
44
+ readonly directMessages: number;
45
+ readonly directMessageReactions: number;
46
+ readonly directMessageTyping: number;
47
+ readonly messageContent: number;
48
+ readonly guildScheduledEvents: number;
49
+ readonly autoModerationConfiguration: number;
50
+ readonly autoModerationExecution: number;
51
+ readonly guildMessagePolls: number;
52
+ readonly directMessagePolls: number;
53
+ };
54
+ /** Alias for IntentBits. */
55
+ export declare const Intents: {
56
+ readonly guild: number;
57
+ readonly guilds: number;
58
+ readonly guildMembers: number;
59
+ readonly guildModeration: number;
60
+ readonly guildBans: number;
61
+ readonly guildExpressions: number;
62
+ readonly guildEmojis: number;
63
+ readonly guildEmojisAndStickers: number;
64
+ readonly guildIntegrations: number;
65
+ readonly guildWebhooks: number;
66
+ readonly guildInvites: number;
67
+ readonly guildVoiceStates: number;
68
+ readonly guildPresences: number;
69
+ readonly guildMessages: number;
70
+ readonly guildMessage: number;
71
+ readonly guildMessageReactions: number;
72
+ readonly guildMessageTyping: number;
73
+ readonly directMessages: number;
74
+ readonly directMessageReactions: number;
75
+ readonly directMessageTyping: number;
76
+ readonly messageContent: number;
77
+ readonly guildScheduledEvents: number;
78
+ readonly autoModerationConfiguration: number;
79
+ readonly autoModerationExecution: number;
80
+ readonly guildMessagePolls: number;
81
+ readonly directMessagePolls: number;
82
+ };
83
+ /** Gateway intent resolvable value (single bitfield, enum key, or array of bitfields/strings). */
84
+ export type GatewayIntentResolvable = number | keyof typeof GatewayIntentBits | keyof typeof IntentBits | (number | keyof typeof GatewayIntentBits | keyof typeof IntentBits | string)[] | {
85
+ readonly bitfield: number;
86
+ };
87
+ /** Resolves any GatewayIntentResolvable into a raw bitfield integer. */
88
+ export declare function resolveGatewayIntents(intents: GatewayIntentResolvable): number;
89
+ /**
90
+ * Discord.js-familiar intent bitfield.
91
+ * @example new IntentsBitField([IntentsBitField.Flags.Guilds, "GuildMessages"])
92
+ */
93
+ export declare class IntentsBitField {
94
+ /** Intent flag values by name. */
95
+ static readonly Flags: {
96
+ readonly Guilds: number;
97
+ readonly GuildMembers: number;
98
+ readonly GuildModeration: number;
99
+ readonly GuildExpressions: number;
100
+ readonly GuildIntegrations: number;
101
+ readonly GuildWebhooks: number;
102
+ readonly GuildInvites: number;
103
+ readonly GuildVoiceStates: number;
104
+ readonly GuildPresences: number;
105
+ readonly GuildMessages: number;
106
+ readonly GuildMessageReactions: number;
107
+ readonly GuildMessageTyping: number;
108
+ readonly DirectMessages: number;
109
+ readonly DirectMessageReactions: number;
110
+ readonly DirectMessageTyping: number;
111
+ readonly MessageContent: number;
112
+ readonly GuildScheduledEvents: number;
113
+ readonly AutoModerationConfiguration: number;
114
+ readonly AutoModerationExecution: number;
115
+ readonly GuildMessagePolls: number;
116
+ readonly DirectMessagePolls: number;
117
+ };
118
+ /** Raw intent bitfield. */
119
+ bitfield: number;
120
+ constructor(bits?: GatewayIntentResolvable);
121
+ /** Whether every given intent is set. */
122
+ has(bits: GatewayIntentResolvable): boolean;
123
+ /** Whether any given intent is set. */
124
+ any(bits: GatewayIntentResolvable): boolean;
125
+ /** Adds intents in place. @returns This bitfield. */
126
+ add(...bits: GatewayIntentResolvable[]): this;
127
+ /** Removes intents in place. @returns This bitfield. */
128
+ remove(...bits: GatewayIntentResolvable[]): this;
129
+ /** Names of the set intents. */
130
+ toArray(): (keyof typeof GatewayIntentBits)[];
131
+ /** Whether this equals another bitfield. */
132
+ equals(bits: GatewayIntentResolvable): boolean;
133
+ valueOf(): number;
134
+ toJSON(): number;
135
+ }
136
+ /** Gateway connection properties (OS, browser, device). */
137
+ export interface GatewayProperties {
138
+ os?: string;
139
+ browser?: string;
140
+ device?: string;
141
+ [key: string]: unknown;
142
+ }
143
+ /** Gateway presence activity. */
144
+ export interface GatewayPresenceActivity {
145
+ name: string;
146
+ type?: number;
147
+ url?: string;
148
+ state?: string;
149
+ }
150
+ /** Gateway presence data. */
151
+ export interface GatewayPresence {
152
+ status?: "online" | "dnd" | "idle" | "invisible" | "offline";
153
+ activities?: GatewayPresenceActivity[];
154
+ afk?: boolean;
155
+ since?: number | null;
156
+ }
157
+ /** Client configuration. */
158
+ export interface ClientOptions {
159
+ token: string;
160
+ intents: GatewayIntentResolvable;
161
+ gateway?: GatewayOptions;
162
+ rest?: RESTOptions;
163
+ }
164
+ /** Gateway connection configuration. */
165
+ export interface GatewayOptions {
166
+ intents?: GatewayIntentResolvable;
167
+ reconnect?: boolean;
168
+ maxReconnectAttempts?: number;
169
+ reconnectBaseDelay?: number;
170
+ reconnectMaxDelay?: number;
171
+ shardId?: number;
172
+ shardCount?: number;
173
+ properties?: GatewayProperties;
174
+ presence?: GatewayPresence;
175
+ }
176
+ /** REST request configuration. */
177
+ export interface RESTOptions {
178
+ timeout?: number;
179
+ retries?: number;
180
+ baseURL?: string;
181
+ }
@@ -1,137 +1,7 @@
1
1
  /** Discord API snowflake identifier. */
2
2
  export type Snowflake = string;
3
- /** Gateway intent bit flags supported by Discord (PascalCase). */
4
- export declare const GatewayIntentBits: {
5
- readonly Guilds: number;
6
- readonly GuildMembers: number;
7
- readonly GuildModeration: number;
8
- readonly GuildExpressions: number;
9
- readonly GuildIntegrations: number;
10
- readonly GuildWebhooks: number;
11
- readonly GuildInvites: number;
12
- readonly GuildVoiceStates: number;
13
- readonly GuildPresences: number;
14
- readonly GuildMessages: number;
15
- readonly GuildMessageReactions: number;
16
- readonly GuildMessageTyping: number;
17
- readonly DirectMessages: number;
18
- readonly DirectMessageReactions: number;
19
- readonly DirectMessageTyping: number;
20
- readonly MessageContent: number;
21
- readonly GuildScheduledEvents: number;
22
- readonly AutoModerationConfiguration: number;
23
- readonly AutoModerationExecution: number;
24
- readonly GuildMessagePolls: number;
25
- readonly DirectMessagePolls: number;
26
- };
27
- /** Idiomatic camelCase Gateway intent bit flags supported by Discord. */
28
- export declare const IntentBits: {
29
- readonly guild: number;
30
- readonly guilds: number;
31
- readonly guildMembers: number;
32
- readonly guildModeration: number;
33
- readonly guildBans: number;
34
- readonly guildExpressions: number;
35
- readonly guildEmojis: number;
36
- readonly guildEmojisAndStickers: number;
37
- readonly guildIntegrations: number;
38
- readonly guildWebhooks: number;
39
- readonly guildInvites: number;
40
- readonly guildVoiceStates: number;
41
- readonly guildPresences: number;
42
- readonly guildMessages: number;
43
- readonly guildMessage: number;
44
- readonly guildMessageReactions: number;
45
- readonly guildMessageTyping: number;
46
- readonly directMessages: number;
47
- readonly directMessageReactions: number;
48
- readonly directMessageTyping: number;
49
- readonly messageContent: number;
50
- readonly guildScheduledEvents: number;
51
- readonly autoModerationConfiguration: number;
52
- readonly autoModerationExecution: number;
53
- readonly guildMessagePolls: number;
54
- readonly directMessagePolls: number;
55
- };
56
- /** Alias for IntentBits. */
57
- export declare const Intents: {
58
- readonly guild: number;
59
- readonly guilds: number;
60
- readonly guildMembers: number;
61
- readonly guildModeration: number;
62
- readonly guildBans: number;
63
- readonly guildExpressions: number;
64
- readonly guildEmojis: number;
65
- readonly guildEmojisAndStickers: number;
66
- readonly guildIntegrations: number;
67
- readonly guildWebhooks: number;
68
- readonly guildInvites: number;
69
- readonly guildVoiceStates: number;
70
- readonly guildPresences: number;
71
- readonly guildMessages: number;
72
- readonly guildMessage: number;
73
- readonly guildMessageReactions: number;
74
- readonly guildMessageTyping: number;
75
- readonly directMessages: number;
76
- readonly directMessageReactions: number;
77
- readonly directMessageTyping: number;
78
- readonly messageContent: number;
79
- readonly guildScheduledEvents: number;
80
- readonly autoModerationConfiguration: number;
81
- readonly autoModerationExecution: number;
82
- readonly guildMessagePolls: number;
83
- readonly directMessagePolls: number;
84
- };
85
- /** Gateway intent resolvable value (single bitfield, enum key, or array of bitfields/strings). */
86
- export type GatewayIntentResolvable = number | keyof typeof GatewayIntentBits | keyof typeof IntentBits | (number | keyof typeof GatewayIntentBits | keyof typeof IntentBits | string)[];
87
- /** Resolves any GatewayIntentResolvable into a raw bitfield integer. */
88
- export declare function resolveGatewayIntents(intents: GatewayIntentResolvable): number;
89
- /** Gateway connection properties (OS, browser, device). */
90
- export interface GatewayProperties {
91
- os?: string;
92
- browser?: string;
93
- device?: string;
94
- [key: string]: unknown;
95
- }
96
- /** Gateway presence activity. */
97
- export interface GatewayPresenceActivity {
98
- name: string;
99
- type?: number;
100
- url?: string;
101
- state?: string;
102
- }
103
- /** Gateway presence data. */
104
- export interface GatewayPresence {
105
- status?: "online" | "dnd" | "idle" | "invisible" | "offline";
106
- activities?: GatewayPresenceActivity[];
107
- afk?: boolean;
108
- since?: number | null;
109
- }
110
- /** Client configuration. */
111
- export interface ClientOptions {
112
- token: string;
113
- intents: GatewayIntentResolvable;
114
- gateway?: GatewayOptions;
115
- rest?: RESTOptions;
116
- }
117
- /** Gateway connection configuration. */
118
- export interface GatewayOptions {
119
- intents?: GatewayIntentResolvable;
120
- reconnect?: boolean;
121
- maxReconnectAttempts?: number;
122
- reconnectBaseDelay?: number;
123
- reconnectMaxDelay?: number;
124
- shardId?: number;
125
- shardCount?: number;
126
- properties?: GatewayProperties;
127
- presence?: GatewayPresence;
128
- }
129
- /** REST request configuration. */
130
- export interface RESTOptions {
131
- timeout?: number;
132
- retries?: number;
133
- baseURL?: string;
134
- }
3
+ export * from "./gateway.js";
4
+ export * from "./gateway-events.js";
135
5
  /** Discord user object. */
136
6
  export interface UserData {
137
7
  id: Snowflake;
@@ -582,6 +452,40 @@ export interface APIGuild {
582
452
  safety_alerts_channel_id?: Snowflake | null;
583
453
  member_count?: number;
584
454
  }
455
+ export interface APIWelcomeScreenChannel {
456
+ channel_id: Snowflake;
457
+ description: string;
458
+ emoji_id: Snowflake | null;
459
+ emoji_name: string | null;
460
+ }
461
+ export interface APIGuildWelcomeScreen {
462
+ description: string | null;
463
+ welcome_channels: APIWelcomeScreenChannel[];
464
+ }
465
+ export interface APIOnboardingPromptOption {
466
+ id: Snowflake;
467
+ channel_ids: Snowflake[];
468
+ role_ids: Snowflake[];
469
+ emoji?: APIPartialEmoji;
470
+ title: string;
471
+ description: string | null;
472
+ }
473
+ export interface APIOnboardingPrompt {
474
+ id: Snowflake;
475
+ type: number;
476
+ options: APIOnboardingPromptOption[];
477
+ title: string;
478
+ single_select: boolean;
479
+ required: boolean;
480
+ in_onboarding: boolean;
481
+ }
482
+ export interface APIGuildOnboarding {
483
+ guild_id: Snowflake;
484
+ prompts: APIOnboardingPrompt[];
485
+ default_channel_ids: Snowflake[];
486
+ enabled: boolean;
487
+ mode: number;
488
+ }
585
489
  /** Raw Discord guild member object. */
586
490
  export interface APIGuildMember {
587
491
  user: UserData;
@@ -724,6 +628,48 @@ export interface APIAutoModerationAction {
724
628
  custom_message?: string;
725
629
  };
726
630
  }
631
+ /** Raw Discord audit log change object. */
632
+ export interface APIAuditLogChange {
633
+ new_value?: unknown;
634
+ old_value?: unknown;
635
+ key: string;
636
+ }
637
+ /** Raw Discord audit log entry options object. */
638
+ export interface APIAuditLogOptions {
639
+ app_id?: Snowflake;
640
+ auto_moderation_rule_name?: string;
641
+ auto_moderation_rule_trigger_type?: string;
642
+ channel_id?: Snowflake;
643
+ count?: string;
644
+ delete_member_days?: string;
645
+ id?: Snowflake;
646
+ members_removed?: string;
647
+ message_id?: Snowflake;
648
+ role_name?: string;
649
+ type?: string;
650
+ integration_type?: string;
651
+ }
652
+ /** Raw Discord audit log entry object. */
653
+ export interface APIAuditLogEntry {
654
+ target_id: string | null;
655
+ changes?: APIAuditLogChange[];
656
+ user_id: Snowflake | null;
657
+ id: Snowflake;
658
+ action_type: number;
659
+ options?: APIAuditLogOptions;
660
+ reason?: string;
661
+ }
662
+ /** Raw Discord audit log object. */
663
+ export interface APIAuditLog {
664
+ audit_log_entries: APIAuditLogEntry[];
665
+ guild_scheduled_events: APIGuildScheduledEvent[];
666
+ integrations: Array<Record<string, unknown>>;
667
+ threads: APIChannel[];
668
+ users: UserData[];
669
+ webhooks: APIWebhook[];
670
+ application_commands: APIApplicationCommand[];
671
+ auto_moderation_rules: APIAutoModerationRule[];
672
+ }
727
673
  /** Raw Discord AutoMod rule object. */
728
674
  export interface APIAutoModerationRule {
729
675
  id: Snowflake;
@@ -847,134 +793,3 @@ export interface ApplicationCommandData {
847
793
  dm_permission?: boolean;
848
794
  nsfw?: boolean;
849
795
  }
850
- /** Raw Discord READY event payload. */
851
- export interface APIReadyEvent {
852
- v: number;
853
- user: UserData;
854
- guilds: Array<{
855
- id: Snowflake;
856
- unavailable?: boolean;
857
- }>;
858
- session_id: string;
859
- resume_gateway_url: string;
860
- shard?: [number, number];
861
- application?: {
862
- id: Snowflake;
863
- flags: number;
864
- [key: string]: unknown;
865
- };
866
- }
867
- /** Raw Discord reaction event payload. */
868
- export interface APIMessageReactionEvent {
869
- user_id: Snowflake;
870
- channel_id: Snowflake;
871
- message_id: Snowflake;
872
- guild_id?: Snowflake;
873
- member?: APIGuildMember;
874
- emoji: APIPartialEmoji;
875
- message_author_id?: Snowflake;
876
- burst?: boolean;
877
- type?: number;
878
- }
879
- /** Raw Discord reaction remove emoji event payload. */
880
- export interface APIMessageReactionRemoveEmojiEvent {
881
- channel_id: Snowflake;
882
- guild_id?: Snowflake;
883
- message_id: Snowflake;
884
- emoji: APIPartialEmoji;
885
- }
886
- /** Raw Discord message deletion event payload. */
887
- export interface APIMessageDeleteEvent {
888
- id: Snowflake;
889
- channel_id: Snowflake;
890
- guild_id?: Snowflake;
891
- }
892
- /** Raw Discord bulk message deletion event payload. */
893
- export interface APIMessageDeleteBulkEvent {
894
- ids: Snowflake[];
895
- channel_id: Snowflake;
896
- guild_id?: Snowflake;
897
- }
898
- /** Raw Discord channel deletion event payload. */
899
- export interface APIChannelDeleteEvent extends APIChannel {
900
- }
901
- /** Raw Discord guild deletion event payload. */
902
- export interface APIGuildDeleteEvent {
903
- id: Snowflake;
904
- unavailable?: boolean;
905
- }
906
- /** Raw Discord thread lifecycle payload. */
907
- export interface APIThreadEvent extends APIChannel {
908
- guild_id: Snowflake;
909
- member?: APIThreadMember;
910
- }
911
- /** Raw Discord thread list sync event. */
912
- export interface APIThreadListSync {
913
- guild_id: Snowflake;
914
- channel_ids?: Snowflake[];
915
- threads: APIChannel[];
916
- members: APIThreadMember[];
917
- }
918
- /** Raw Discord thread members update event. */
919
- export interface APIThreadMembersUpdate {
920
- id: Snowflake;
921
- guild_id: Snowflake;
922
- member_count: number;
923
- added_members?: APIThreadMember[];
924
- removed_member_ids?: Snowflake[];
925
- }
926
- /** Raw Discord guild role event payload. */
927
- export interface APIGuildRoleEvent {
928
- guild_id: Snowflake;
929
- role: APIRole;
930
- }
931
- /** Raw Discord guild role delete event payload. */
932
- export interface APIGuildRoleDeleteEvent {
933
- guild_id: Snowflake;
934
- role_id: Snowflake;
935
- }
936
- /** Raw Discord guild ban event payload. */
937
- export interface APIGuildBanEvent {
938
- guild_id: Snowflake;
939
- user: UserData;
940
- }
941
- /** Raw Discord guild emojis update event payload. */
942
- export interface APIGuildEmojisUpdateEvent {
943
- guild_id: Snowflake;
944
- emojis: APIEmoji[];
945
- }
946
- /** Raw Discord guild stickers update event payload. */
947
- export interface APIGuildStickersUpdateEvent {
948
- guild_id: Snowflake;
949
- stickers: APISticker[];
950
- }
951
- /** Raw Discord channel pins update event. */
952
- export interface APIChannelPinsUpdate {
953
- guild_id?: Snowflake;
954
- channel_id: Snowflake;
955
- last_pin_timestamp?: string | null;
956
- }
957
- /** Raw Discord guild members chunk event. */
958
- export interface APIGuildMembersChunk {
959
- guild_id: Snowflake;
960
- members: APIGuildMember[];
961
- chunk_index: number;
962
- chunk_count: number;
963
- not_found?: Snowflake[];
964
- presences?: APIPresenceUpdate[];
965
- nonce?: string;
966
- }
967
- /** Raw Discord guild scheduled event user add/remove event. */
968
- export interface APIGuildScheduledEventUserEvent {
969
- guild_scheduled_event_id: Snowflake;
970
- user_id: Snowflake;
971
- guild_id: Snowflake;
972
- }
973
- /** Raw Discord message poll vote add/remove event. */
974
- export interface APIMessagePollVoteEvent {
975
- user_id: Snowflake;
976
- channel_id: Snowflake;
977
- message_id: Snowflake;
978
- guild_id?: Snowflake;
979
- answer_id: number;
980
- }
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- // packages/types/src/index.ts
2
+ // packages/types/src/gateway.ts
3
3
  var GatewayIntentBits = {
4
4
  Guilds: 1 << 0,
5
5
  GuildMembers: 1 << 1,
@@ -55,6 +55,8 @@ var Intents = IntentBits;
55
55
  function resolveGatewayIntents(intents) {
56
56
  if (typeof intents === "number")
57
57
  return intents;
58
+ if (intents && typeof intents === "object" && !Array.isArray(intents))
59
+ return intents.bitfield;
58
60
  if (Array.isArray(intents)) {
59
61
  return intents.reduce((acc, intent) => {
60
62
  return acc | resolveGatewayIntents(intent);
@@ -74,6 +76,45 @@ function resolveGatewayIntents(intents) {
74
76
  }
75
77
  return 0;
76
78
  }
79
+
80
+ class IntentsBitField {
81
+ static Flags = GatewayIntentBits;
82
+ bitfield;
83
+ constructor(bits = 0) {
84
+ this.bitfield = resolveGatewayIntents(bits);
85
+ }
86
+ has(bits) {
87
+ const resolved = resolveGatewayIntents(bits);
88
+ return (this.bitfield & resolved) === resolved;
89
+ }
90
+ any(bits) {
91
+ return (this.bitfield & resolveGatewayIntents(bits)) !== 0;
92
+ }
93
+ add(...bits) {
94
+ for (const bit of bits)
95
+ this.bitfield |= resolveGatewayIntents(bit);
96
+ return this;
97
+ }
98
+ remove(...bits) {
99
+ for (const bit of bits)
100
+ this.bitfield &= ~resolveGatewayIntents(bit);
101
+ return this;
102
+ }
103
+ toArray() {
104
+ return Object.keys(GatewayIntentBits).filter((name) => this.has(GatewayIntentBits[name]));
105
+ }
106
+ equals(bits) {
107
+ return this.bitfield === resolveGatewayIntents(bits);
108
+ }
109
+ valueOf() {
110
+ return this.bitfield;
111
+ }
112
+ toJSON() {
113
+ return this.bitfield;
114
+ }
115
+ }
116
+
117
+ // packages/types/src/index.ts
77
118
  var MessageFlags = {
78
119
  Crossposted: 1,
79
120
  IsCrosspost: 2,
@@ -189,6 +230,7 @@ export {
189
230
  GatewayIntentBits,
190
231
  IntentBits,
191
232
  Intents,
233
+ IntentsBitField,
192
234
  InteractionResponseType,
193
235
  MessageFlags,
194
236
  PremiumTier,
@@ -199,4 +241,4 @@ export {
199
241
  resolveGatewayIntents
200
242
  };
201
243
 
202
- //# debugId=02206D15DB14DD1464756E2164756E21
244
+ //# debugId=C1043445F681533C64756E2164756E21