baff.js 0.0.0-stage → 0.1.1

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 (262) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/LICENSE +7 -0
  3. package/README.md +244 -3
  4. package/dist/cjs/builders/EmbedBuilder.d.ts +51 -0
  5. package/dist/cjs/builders/EmbedBuilder.js +150 -0
  6. package/dist/cjs/builders/SlashCommandBuilder.d.ts +69 -0
  7. package/dist/cjs/builders/SlashCommandBuilder.js +185 -0
  8. package/dist/cjs/builders/components/ActionRowBuilder.d.ts +14 -0
  9. package/dist/cjs/builders/components/ActionRowBuilder.js +53 -0
  10. package/dist/cjs/builders/components/ButtonBuilder.d.ts +19 -0
  11. package/dist/cjs/builders/components/ButtonBuilder.js +69 -0
  12. package/dist/cjs/builders/components/LayoutBuilders.d.ts +63 -0
  13. package/dist/cjs/builders/components/LayoutBuilders.js +179 -0
  14. package/dist/cjs/builders/components/ModalBuilder.d.ts +36 -0
  15. package/dist/cjs/builders/components/ModalBuilder.js +118 -0
  16. package/dist/cjs/builders/components/SelectMenuBuilder.d.ts +80 -0
  17. package/dist/cjs/builders/components/SelectMenuBuilder.js +192 -0
  18. package/dist/cjs/builders/components/shared.d.ts +16 -0
  19. package/dist/cjs/builders/components/shared.js +32 -0
  20. package/dist/cjs/builders/messagePayload.d.ts +35 -0
  21. package/dist/cjs/builders/messagePayload.js +88 -0
  22. package/dist/cjs/builders/validate.d.ts +12 -0
  23. package/dist/cjs/builders/validate.js +54 -0
  24. package/dist/cjs/client/Client.d.ts +63 -0
  25. package/dist/cjs/client/Client.js +152 -0
  26. package/dist/cjs/client/dispatch.d.ts +2 -0
  27. package/dist/cjs/client/dispatch.js +224 -0
  28. package/dist/cjs/client/events.d.ts +129 -0
  29. package/dist/cjs/client/events.js +2 -0
  30. package/dist/cjs/collectors/Collector.d.ts +37 -0
  31. package/dist/cjs/collectors/Collector.js +84 -0
  32. package/dist/cjs/collectors/InteractionCollector.d.ts +21 -0
  33. package/dist/cjs/collectors/InteractionCollector.js +44 -0
  34. package/dist/cjs/collectors/MessageCollector.d.ts +14 -0
  35. package/dist/cjs/collectors/MessageCollector.js +23 -0
  36. package/dist/cjs/errors/BaffError.d.ts +26 -0
  37. package/dist/cjs/errors/BaffError.js +39 -0
  38. package/dist/cjs/gateway/Gateway.d.ts +53 -0
  39. package/dist/cjs/gateway/Gateway.js +128 -0
  40. package/dist/cjs/http/handler.d.ts +11 -0
  41. package/dist/cjs/http/handler.js +72 -0
  42. package/dist/cjs/http/verify.d.ts +11 -0
  43. package/dist/cjs/http/verify.js +28 -0
  44. package/dist/cjs/index.d.ts +51 -0
  45. package/dist/cjs/index.js +185 -0
  46. package/dist/cjs/managers/CachedManager.d.ts +16 -0
  47. package/dist/cjs/managers/CachedManager.js +18 -0
  48. package/dist/cjs/managers/ChannelManager.d.ts +23 -0
  49. package/dist/cjs/managers/ChannelManager.js +85 -0
  50. package/dist/cjs/managers/CommandManager.d.ts +32 -0
  51. package/dist/cjs/managers/CommandManager.js +72 -0
  52. package/dist/cjs/managers/EventManager.d.ts +15 -0
  53. package/dist/cjs/managers/EventManager.js +36 -0
  54. package/dist/cjs/managers/ExpressionManagers.d.ts +36 -0
  55. package/dist/cjs/managers/ExpressionManagers.js +73 -0
  56. package/dist/cjs/managers/InviteManager.d.ts +17 -0
  57. package/dist/cjs/managers/InviteManager.js +26 -0
  58. package/dist/cjs/managers/MemberManager.d.ts +31 -0
  59. package/dist/cjs/managers/MemberManager.js +62 -0
  60. package/dist/cjs/managers/MessageManager.d.ts +32 -0
  61. package/dist/cjs/managers/MessageManager.js +79 -0
  62. package/dist/cjs/managers/RoleManager.d.ts +22 -0
  63. package/dist/cjs/managers/RoleManager.js +73 -0
  64. package/dist/cjs/managers/ServerChannelManager.d.ts +20 -0
  65. package/dist/cjs/managers/ServerChannelManager.js +30 -0
  66. package/dist/cjs/managers/ServerManager.d.ts +12 -0
  67. package/dist/cjs/managers/ServerManager.js +62 -0
  68. package/dist/cjs/managers/ThreadManager.d.ts +12 -0
  69. package/dist/cjs/managers/ThreadManager.js +20 -0
  70. package/dist/cjs/managers/UserManager.d.ts +11 -0
  71. package/dist/cjs/managers/UserManager.js +38 -0
  72. package/dist/cjs/managers/VoiceManager.d.ts +8 -0
  73. package/dist/cjs/managers/VoiceManager.js +17 -0
  74. package/dist/cjs/package.json +1 -0
  75. package/dist/cjs/rest/REST.d.ts +58 -0
  76. package/dist/cjs/rest/REST.js +193 -0
  77. package/dist/cjs/rest/Routes.d.ts +54 -0
  78. package/dist/cjs/rest/Routes.js +58 -0
  79. package/dist/cjs/rest/files.d.ts +19 -0
  80. package/dist/cjs/rest/files.js +37 -0
  81. package/dist/cjs/structures/Base.d.ts +13 -0
  82. package/dist/cjs/structures/Base.js +30 -0
  83. package/dist/cjs/structures/Message.d.ts +91 -0
  84. package/dist/cjs/structures/Message.js +200 -0
  85. package/dist/cjs/structures/Role.d.ts +34 -0
  86. package/dist/cjs/structures/Role.js +84 -0
  87. package/dist/cjs/structures/ScheduledEvent.d.ts +37 -0
  88. package/dist/cjs/structures/ScheduledEvent.js +73 -0
  89. package/dist/cjs/structures/Server.d.ts +68 -0
  90. package/dist/cjs/structures/Server.js +124 -0
  91. package/dist/cjs/structures/ServerAssets.d.ts +48 -0
  92. package/dist/cjs/structures/ServerAssets.js +104 -0
  93. package/dist/cjs/structures/ServerMember.d.ts +47 -0
  94. package/dist/cjs/structures/ServerMember.js +138 -0
  95. package/dist/cjs/structures/User.d.ts +35 -0
  96. package/dist/cjs/structures/User.js +87 -0
  97. package/dist/cjs/structures/Webhook.d.ts +30 -0
  98. package/dist/cjs/structures/Webhook.js +68 -0
  99. package/dist/cjs/structures/channels/BaseChannel.d.ts +49 -0
  100. package/dist/cjs/structures/channels/BaseChannel.js +81 -0
  101. package/dist/cjs/structures/channels/DMChannel.d.ts +9 -0
  102. package/dist/cjs/structures/channels/DMChannel.js +21 -0
  103. package/dist/cjs/structures/channels/ServerChannels.d.ts +57 -0
  104. package/dist/cjs/structures/channels/ServerChannels.js +138 -0
  105. package/dist/cjs/structures/channels/TextBasedChannel.d.ts +25 -0
  106. package/dist/cjs/structures/channels/TextBasedChannel.js +53 -0
  107. package/dist/cjs/structures/interactions/BaseInteraction.d.ts +74 -0
  108. package/dist/cjs/structures/interactions/BaseInteraction.js +221 -0
  109. package/dist/cjs/structures/interactions/CommandInteraction.d.ts +44 -0
  110. package/dist/cjs/structures/interactions/CommandInteraction.js +109 -0
  111. package/dist/cjs/structures/interactions/ComponentInteraction.d.ts +44 -0
  112. package/dist/cjs/structures/interactions/ComponentInteraction.js +64 -0
  113. package/dist/cjs/structures/interactions/ModalSubmitInteraction.d.ts +29 -0
  114. package/dist/cjs/structures/interactions/ModalSubmitInteraction.js +42 -0
  115. package/dist/cjs/structures/interactions/createInteraction.d.ts +4 -0
  116. package/dist/cjs/structures/interactions/createInteraction.js +34 -0
  117. package/dist/cjs/types.d.ts +369 -0
  118. package/dist/cjs/types.js +2 -0
  119. package/dist/cjs/util/Collection.d.ts +32 -0
  120. package/dist/cjs/util/Collection.js +145 -0
  121. package/dist/cjs/util/Permissions.d.ts +87 -0
  122. package/dist/cjs/util/Permissions.js +115 -0
  123. package/dist/cjs/util/Snowflake.d.ts +20 -0
  124. package/dist/cjs/util/Snowflake.js +40 -0
  125. package/dist/cjs/util/TypedEmitter.d.ts +17 -0
  126. package/dist/cjs/util/TypedEmitter.js +5 -0
  127. package/dist/cjs/util/constants.d.ts +78 -0
  128. package/dist/cjs/util/constants.js +81 -0
  129. package/dist/cjs/util/emoji.d.ts +8 -0
  130. package/dist/cjs/util/emoji.js +10 -0
  131. package/dist/cjs/util/formatters.d.ts +29 -0
  132. package/dist/cjs/util/formatters.js +55 -0
  133. package/dist/esm/builders/EmbedBuilder.d.ts +51 -0
  134. package/dist/esm/builders/EmbedBuilder.js +145 -0
  135. package/dist/esm/builders/SlashCommandBuilder.d.ts +69 -0
  136. package/dist/esm/builders/SlashCommandBuilder.js +170 -0
  137. package/dist/esm/builders/components/ActionRowBuilder.d.ts +14 -0
  138. package/dist/esm/builders/components/ActionRowBuilder.js +49 -0
  139. package/dist/esm/builders/components/ButtonBuilder.d.ts +19 -0
  140. package/dist/esm/builders/components/ButtonBuilder.js +65 -0
  141. package/dist/esm/builders/components/LayoutBuilders.d.ts +63 -0
  142. package/dist/esm/builders/components/LayoutBuilders.js +169 -0
  143. package/dist/esm/builders/components/ModalBuilder.d.ts +36 -0
  144. package/dist/esm/builders/components/ModalBuilder.js +113 -0
  145. package/dist/esm/builders/components/SelectMenuBuilder.d.ts +80 -0
  146. package/dist/esm/builders/components/SelectMenuBuilder.js +183 -0
  147. package/dist/esm/builders/components/shared.d.ts +16 -0
  148. package/dist/esm/builders/components/shared.js +26 -0
  149. package/dist/esm/builders/messagePayload.d.ts +35 -0
  150. package/dist/esm/builders/messagePayload.js +83 -0
  151. package/dist/esm/builders/validate.d.ts +12 -0
  152. package/dist/esm/builders/validate.js +46 -0
  153. package/dist/esm/client/Client.d.ts +63 -0
  154. package/dist/esm/client/Client.js +147 -0
  155. package/dist/esm/client/dispatch.d.ts +2 -0
  156. package/dist/esm/client/dispatch.js +221 -0
  157. package/dist/esm/client/events.d.ts +129 -0
  158. package/dist/esm/client/events.js +1 -0
  159. package/dist/esm/collectors/Collector.d.ts +37 -0
  160. package/dist/esm/collectors/Collector.js +78 -0
  161. package/dist/esm/collectors/InteractionCollector.d.ts +21 -0
  162. package/dist/esm/collectors/InteractionCollector.js +40 -0
  163. package/dist/esm/collectors/MessageCollector.d.ts +14 -0
  164. package/dist/esm/collectors/MessageCollector.js +19 -0
  165. package/dist/esm/errors/BaffError.d.ts +26 -0
  166. package/dist/esm/errors/BaffError.js +33 -0
  167. package/dist/esm/gateway/Gateway.d.ts +53 -0
  168. package/dist/esm/gateway/Gateway.js +124 -0
  169. package/dist/esm/http/handler.d.ts +11 -0
  170. package/dist/esm/http/handler.js +68 -0
  171. package/dist/esm/http/verify.d.ts +11 -0
  172. package/dist/esm/http/verify.js +22 -0
  173. package/dist/esm/index.d.ts +51 -0
  174. package/dist/esm/index.js +49 -0
  175. package/dist/esm/managers/CachedManager.d.ts +16 -0
  176. package/dist/esm/managers/CachedManager.js +14 -0
  177. package/dist/esm/managers/ChannelManager.d.ts +23 -0
  178. package/dist/esm/managers/ChannelManager.js +81 -0
  179. package/dist/esm/managers/CommandManager.d.ts +32 -0
  180. package/dist/esm/managers/CommandManager.js +67 -0
  181. package/dist/esm/managers/EventManager.d.ts +15 -0
  182. package/dist/esm/managers/EventManager.js +32 -0
  183. package/dist/esm/managers/ExpressionManagers.d.ts +36 -0
  184. package/dist/esm/managers/ExpressionManagers.js +68 -0
  185. package/dist/esm/managers/InviteManager.d.ts +17 -0
  186. package/dist/esm/managers/InviteManager.js +22 -0
  187. package/dist/esm/managers/MemberManager.d.ts +31 -0
  188. package/dist/esm/managers/MemberManager.js +58 -0
  189. package/dist/esm/managers/MessageManager.d.ts +32 -0
  190. package/dist/esm/managers/MessageManager.js +75 -0
  191. package/dist/esm/managers/RoleManager.d.ts +22 -0
  192. package/dist/esm/managers/RoleManager.js +69 -0
  193. package/dist/esm/managers/ServerChannelManager.d.ts +20 -0
  194. package/dist/esm/managers/ServerChannelManager.js +26 -0
  195. package/dist/esm/managers/ServerManager.d.ts +12 -0
  196. package/dist/esm/managers/ServerManager.js +58 -0
  197. package/dist/esm/managers/ThreadManager.d.ts +12 -0
  198. package/dist/esm/managers/ThreadManager.js +16 -0
  199. package/dist/esm/managers/UserManager.d.ts +11 -0
  200. package/dist/esm/managers/UserManager.js +34 -0
  201. package/dist/esm/managers/VoiceManager.d.ts +8 -0
  202. package/dist/esm/managers/VoiceManager.js +13 -0
  203. package/dist/esm/package.json +1 -0
  204. package/dist/esm/rest/REST.d.ts +58 -0
  205. package/dist/esm/rest/REST.js +188 -0
  206. package/dist/esm/rest/Routes.d.ts +54 -0
  207. package/dist/esm/rest/Routes.js +55 -0
  208. package/dist/esm/rest/files.d.ts +19 -0
  209. package/dist/esm/rest/files.js +31 -0
  210. package/dist/esm/structures/Base.d.ts +13 -0
  211. package/dist/esm/structures/Base.js +25 -0
  212. package/dist/esm/structures/Message.d.ts +91 -0
  213. package/dist/esm/structures/Message.js +194 -0
  214. package/dist/esm/structures/Role.d.ts +34 -0
  215. package/dist/esm/structures/Role.js +79 -0
  216. package/dist/esm/structures/ScheduledEvent.d.ts +37 -0
  217. package/dist/esm/structures/ScheduledEvent.js +68 -0
  218. package/dist/esm/structures/Server.d.ts +68 -0
  219. package/dist/esm/structures/Server.js +120 -0
  220. package/dist/esm/structures/ServerAssets.d.ts +48 -0
  221. package/dist/esm/structures/ServerAssets.js +98 -0
  222. package/dist/esm/structures/ServerMember.d.ts +47 -0
  223. package/dist/esm/structures/ServerMember.js +133 -0
  224. package/dist/esm/structures/User.d.ts +35 -0
  225. package/dist/esm/structures/User.js +82 -0
  226. package/dist/esm/structures/Webhook.d.ts +30 -0
  227. package/dist/esm/structures/Webhook.js +63 -0
  228. package/dist/esm/structures/channels/BaseChannel.d.ts +49 -0
  229. package/dist/esm/structures/channels/BaseChannel.js +77 -0
  230. package/dist/esm/structures/channels/DMChannel.d.ts +9 -0
  231. package/dist/esm/structures/channels/DMChannel.js +17 -0
  232. package/dist/esm/structures/channels/ServerChannels.d.ts +57 -0
  233. package/dist/esm/structures/channels/ServerChannels.js +129 -0
  234. package/dist/esm/structures/channels/TextBasedChannel.d.ts +25 -0
  235. package/dist/esm/structures/channels/TextBasedChannel.js +49 -0
  236. package/dist/esm/structures/interactions/BaseInteraction.d.ts +74 -0
  237. package/dist/esm/structures/interactions/BaseInteraction.js +217 -0
  238. package/dist/esm/structures/interactions/CommandInteraction.d.ts +44 -0
  239. package/dist/esm/structures/interactions/CommandInteraction.js +104 -0
  240. package/dist/esm/structures/interactions/ComponentInteraction.d.ts +44 -0
  241. package/dist/esm/structures/interactions/ComponentInteraction.js +53 -0
  242. package/dist/esm/structures/interactions/ModalSubmitInteraction.d.ts +29 -0
  243. package/dist/esm/structures/interactions/ModalSubmitInteraction.js +37 -0
  244. package/dist/esm/structures/interactions/createInteraction.d.ts +4 -0
  245. package/dist/esm/structures/interactions/createInteraction.js +31 -0
  246. package/dist/esm/types.d.ts +369 -0
  247. package/dist/esm/types.js +1 -0
  248. package/dist/esm/util/Collection.d.ts +32 -0
  249. package/dist/esm/util/Collection.js +141 -0
  250. package/dist/esm/util/Permissions.d.ts +87 -0
  251. package/dist/esm/util/Permissions.js +111 -0
  252. package/dist/esm/util/Snowflake.d.ts +20 -0
  253. package/dist/esm/util/Snowflake.js +37 -0
  254. package/dist/esm/util/TypedEmitter.d.ts +17 -0
  255. package/dist/esm/util/TypedEmitter.js +2 -0
  256. package/dist/esm/util/constants.d.ts +78 -0
  257. package/dist/esm/util/constants.js +78 -0
  258. package/dist/esm/util/emoji.d.ts +8 -0
  259. package/dist/esm/util/emoji.js +7 -0
  260. package/dist/esm/util/formatters.d.ts +29 -0
  261. package/dist/esm/util/formatters.js +34 -0
  262. package/package.json +57 -5
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Message = exports.MessageMentions = exports.MessageReaction = void 0;
4
+ const InteractionCollector_js_1 = require("../collectors/InteractionCollector.js");
5
+ const Collector_js_1 = require("../collectors/Collector.js");
6
+ const Routes_js_1 = require("../rest/Routes.js");
7
+ const Collection_js_1 = require("../util/Collection.js");
8
+ const emoji_js_1 = require("../util/emoji.js");
9
+ const constants_js_1 = require("../util/constants.js");
10
+ const Base_js_1 = require("./Base.js");
11
+ class MessageReaction {
12
+ message;
13
+ emoji;
14
+ count;
15
+ me;
16
+ constructor(message, emoji, count, me) {
17
+ this.message = message;
18
+ this.emoji = emoji;
19
+ this.count = count;
20
+ this.me = me;
21
+ }
22
+ async fetchUsers() {
23
+ const list = await this.message.client.rest.get(Routes_js_1.Routes.messageReaction(this.message.channelId, this.message.id, this.emoji));
24
+ return new Collection_js_1.Collection(list.map((u) => [u.id, this.message.client.users._add(u)]));
25
+ }
26
+ async remove() {
27
+ await this.message.client.rest.delete(Routes_js_1.Routes.messageReaction(this.message.channelId, this.message.id, this.emoji));
28
+ this.me = false;
29
+ this.count = Math.max(0, this.count - 1);
30
+ if (this.count === 0)
31
+ this.message.reactions.delete(this.emoji);
32
+ }
33
+ }
34
+ exports.MessageReaction = MessageReaction;
35
+ class MessageMentions {
36
+ message;
37
+ userIds;
38
+ roleIds;
39
+ everyone;
40
+ constructor(message, userIds, roleIds, everyone) {
41
+ this.message = message;
42
+ this.userIds = userIds;
43
+ this.roleIds = roleIds;
44
+ this.everyone = everyone;
45
+ }
46
+ get users() {
47
+ const out = new Collection_js_1.Collection();
48
+ for (const id of this.userIds) {
49
+ const user = this.message.client.users.cache.get(id);
50
+ if (user)
51
+ out.set(id, user);
52
+ }
53
+ return out;
54
+ }
55
+ has(target, options = {}) {
56
+ const id = typeof target === 'string' ? target : target.id;
57
+ return this.userIds.includes(id) || this.roleIds.includes(id) || (!options.ignoreEveryone && this.everyone);
58
+ }
59
+ }
60
+ exports.MessageMentions = MessageMentions;
61
+ class Message extends Base_js_1.Identified {
62
+ id;
63
+ channelId;
64
+ serverId;
65
+ author;
66
+ content = '';
67
+ editedAt = null;
68
+ type = 0;
69
+ attachments = new Collection_js_1.Collection();
70
+ embeds = [];
71
+ components = [];
72
+ flags = 0;
73
+ reactions = new Collection_js_1.Collection();
74
+ mentions = new MessageMentions(this, [], [], false);
75
+ reference = null;
76
+ replyDeleted = false;
77
+ pinned = false;
78
+ crossposted = false;
79
+ stickers = [];
80
+ poll = null;
81
+ forward = null;
82
+ interaction = null;
83
+ nonce = null;
84
+ constructor(client, data) {
85
+ super(client);
86
+ this.id = data.id;
87
+ this.channelId = data.channelId;
88
+ this.serverId = data.serverId ?? null;
89
+ this.author = client.users._add(data.author);
90
+ this._patch(data);
91
+ }
92
+ _patch(data) {
93
+ if (data.serverId !== undefined)
94
+ this.serverId = data.serverId;
95
+ if (data.author)
96
+ this.author = this.client.users._add(data.author);
97
+ if (data.content !== undefined)
98
+ this.content = data.content;
99
+ if (data.editedAt !== undefined)
100
+ this.editedAt = data.editedAt ? new Date(data.editedAt) : null;
101
+ if (data.type !== undefined)
102
+ this.type = data.type;
103
+ if (data.attachments)
104
+ this.attachments = new Collection_js_1.Collection(data.attachments.map((a) => [a.id, a]));
105
+ if (data.embeds)
106
+ this.embeds = data.embeds;
107
+ if (data.components)
108
+ this.components = data.components;
109
+ if (data.flags !== undefined)
110
+ this.flags = data.flags;
111
+ if (data.reactions)
112
+ this.reactions = new Collection_js_1.Collection(data.reactions.map((r) => [r.emoji, new MessageReaction(this, r.emoji, r.count, r.me)]));
113
+ if (data.mentions || data.mentionRoles || data.mentionEveryone !== undefined) {
114
+ this.mentions = new MessageMentions(this, data.mentions ?? this.mentions.userIds, data.mentionRoles ?? this.mentions.roleIds, data.mentionEveryone ?? this.mentions.everyone);
115
+ }
116
+ if (data.reply !== undefined)
117
+ this.reference = data.reply ? { id: data.reply.id, author: data.reply.author, content: data.reply.content } : null;
118
+ if (data.replyDeleted !== undefined)
119
+ this.replyDeleted = data.replyDeleted;
120
+ if (data.pinned !== undefined)
121
+ this.pinned = data.pinned;
122
+ if (data.crossposted !== undefined)
123
+ this.crossposted = data.crossposted;
124
+ if (data.stickers)
125
+ this.stickers = data.stickers;
126
+ if (data.poll !== undefined)
127
+ this.poll = data.poll;
128
+ if (data.forward !== undefined)
129
+ this.forward = data.forward;
130
+ if (data.interaction !== undefined)
131
+ this.interaction = data.interaction;
132
+ if (data.nonce !== undefined)
133
+ this.nonce = data.nonce;
134
+ return this;
135
+ }
136
+ get channel() {
137
+ return this.client.channels._textChannel(this.channelId, this.serverId);
138
+ }
139
+ get server() {
140
+ return this.serverId ? (this.client.servers.cache.get(this.serverId) ?? null) : null;
141
+ }
142
+ get member() {
143
+ return this.server?.members.cache.get(this.author.id) ?? null;
144
+ }
145
+ get url() {
146
+ return `${this.channel.url}?message=${this.id}`;
147
+ }
148
+ get editable() {
149
+ return this.author.id === this.client.user?.id;
150
+ }
151
+ get isComponentsV2() {
152
+ return (this.flags & constants_js_1.MessageFlags.IsComponentsV2) !== 0;
153
+ }
154
+ reply(options) {
155
+ const body = typeof options === 'string' ? { content: options } : options;
156
+ return this.channel.send({ ...body, replyTo: this.id });
157
+ }
158
+ edit(options) {
159
+ return this.channel.messages.edit(this.id, options);
160
+ }
161
+ delete() {
162
+ return this.channel.messages.delete(this.id);
163
+ }
164
+ react(emoji) {
165
+ return this.channel.messages.react(this.id, emoji);
166
+ }
167
+ async unreact(emoji) {
168
+ await this.client.rest.delete(Routes_js_1.Routes.messageReaction(this.channelId, this.id, (0, emoji_js_1.resolveEmoji)(emoji)));
169
+ }
170
+ pin() {
171
+ return this.channel.messages.pin(this.id);
172
+ }
173
+ unpin() {
174
+ return this.channel.messages.unpin(this.id);
175
+ }
176
+ async crosspost() {
177
+ await this.client.rest.post(Routes_js_1.Routes.messageCrosspost(this.channelId, this.id));
178
+ }
179
+ async startThread(options) {
180
+ const data = await this.client.rest.post(Routes_js_1.Routes.channelThreads(this.channelId), { body: { ...options, messageId: this.id } });
181
+ return this.client.channels._addThread(data);
182
+ }
183
+ async endPoll() {
184
+ await this.client.rest.post(Routes_js_1.Routes.pollExpire(this.channelId, this.id));
185
+ }
186
+ async fetch() {
187
+ return (await this.channel.messages.fetch(this.id, { force: true }));
188
+ }
189
+ createMessageComponentCollector(options = {}) {
190
+ return new InteractionCollector_js_1.InteractionCollector(this.client, { ...options, messageId: this.id, channelId: this.channelId });
191
+ }
192
+ async awaitMessageComponent(options = {}) {
193
+ const collected = await (0, Collector_js_1.awaitCollector)(this.createMessageComponentCollector({ ...options, max: 1 }), ['time']);
194
+ return collected.first();
195
+ }
196
+ toString() {
197
+ return this.content;
198
+ }
199
+ }
200
+ exports.Message = Message;
@@ -0,0 +1,34 @@
1
+ import type { Client } from '../client/Client.js';
2
+ import type { APIRole } from '../types.js';
3
+ import { PermissionsBitField, type PermissionResolvable } from '../util/Permissions.js';
4
+ import { Identified } from './Base.js';
5
+ import type { Server } from './Server.js';
6
+ export interface RoleEditData {
7
+ name?: string;
8
+ color?: number | `#${string}` | null;
9
+ hoist?: boolean;
10
+ permissions?: PermissionResolvable;
11
+ }
12
+ export declare function roleEditBody(data: RoleEditData): Record<string, unknown>;
13
+ export declare class Role extends Identified {
14
+ readonly serverId: string;
15
+ readonly id: string;
16
+ name: string;
17
+ color: number;
18
+ hoist: boolean;
19
+ position: number;
20
+ permissions: PermissionsBitField;
21
+ icon: string | null;
22
+ botId: string | null;
23
+ booster: boolean;
24
+ constructor(client: Client, serverId: string, data: APIRole);
25
+ _patch(data: Partial<APIRole>): this;
26
+ get hexColor(): string;
27
+ get managed(): boolean;
28
+ get isEveryone(): boolean;
29
+ get server(): Server | null;
30
+ comparePositionTo(other: Role): number;
31
+ edit(data: RoleEditData): Promise<Role>;
32
+ delete(): Promise<void>;
33
+ toString(): string;
34
+ }
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Role = void 0;
4
+ exports.roleEditBody = roleEditBody;
5
+ const Routes_js_1 = require("../rest/Routes.js");
6
+ const formatters_js_1 = require("../util/formatters.js");
7
+ const Permissions_js_1 = require("../util/Permissions.js");
8
+ const Base_js_1 = require("./Base.js");
9
+ function roleEditBody(data) {
10
+ const body = {};
11
+ if (data.name !== undefined)
12
+ body.name = data.name;
13
+ if (data.color !== undefined)
14
+ body.color = data.color === null ? null : typeof data.color === 'number' ? `#${data.color.toString(16).padStart(6, '0')}` : data.color;
15
+ if (data.hoist !== undefined)
16
+ body.hoist = data.hoist;
17
+ if (data.permissions !== undefined)
18
+ body.permissions = Number(Permissions_js_1.PermissionsBitField.resolve(data.permissions));
19
+ return body;
20
+ }
21
+ class Role extends Base_js_1.Identified {
22
+ serverId;
23
+ id;
24
+ name = '';
25
+ color = 0;
26
+ hoist = false;
27
+ position = 0;
28
+ permissions = new Permissions_js_1.PermissionsBitField();
29
+ icon = null;
30
+ botId = null;
31
+ booster = false;
32
+ constructor(client, serverId, data) {
33
+ super(client);
34
+ this.serverId = serverId;
35
+ this.id = data.id;
36
+ this._patch(data);
37
+ }
38
+ _patch(data) {
39
+ if (data.name !== undefined)
40
+ this.name = data.name;
41
+ if (data.color !== undefined)
42
+ this.color = data.color ? parseInt(data.color.slice(1), 16) : 0;
43
+ if (data.hoist !== undefined)
44
+ this.hoist = data.hoist;
45
+ if (data.position !== undefined)
46
+ this.position = data.position;
47
+ if (data.permissions !== undefined)
48
+ this.permissions = Permissions_js_1.PermissionsBitField.fromBits(data.permissions);
49
+ if (data.icon !== undefined)
50
+ this.icon = data.icon ?? null;
51
+ if (data.botId !== undefined)
52
+ this.botId = data.botId ?? null;
53
+ if (data.booster !== undefined)
54
+ this.booster = data.booster;
55
+ return this;
56
+ }
57
+ get hexColor() {
58
+ return `#${this.color.toString(16).padStart(6, '0')}`;
59
+ }
60
+ get managed() {
61
+ return this.botId !== null || this.booster;
62
+ }
63
+ get isEveryone() {
64
+ return this.id === this.serverId;
65
+ }
66
+ get server() {
67
+ return this.client.servers.cache.get(this.serverId) ?? null;
68
+ }
69
+ comparePositionTo(other) {
70
+ return this.position - other.position;
71
+ }
72
+ async edit(data) {
73
+ const updated = await this.client.rest.patch(Routes_js_1.Routes.serverRole(this.serverId, this.id), { body: roleEditBody(data) });
74
+ return this._patch(updated);
75
+ }
76
+ async delete() {
77
+ await this.client.rest.delete(Routes_js_1.Routes.serverRole(this.serverId, this.id));
78
+ this.server?.roles.cache.delete(this.id);
79
+ }
80
+ toString() {
81
+ return (0, formatters_js_1.roleMention)(this.id);
82
+ }
83
+ }
84
+ exports.Role = Role;
@@ -0,0 +1,37 @@
1
+ import type { Client } from '../client/Client.js';
2
+ import type { APIServerEvent } from '../types.js';
3
+ import { Identified } from './Base.js';
4
+ export interface ScheduledEventData {
5
+ name?: string;
6
+ description?: string;
7
+ locationKind?: 'voice' | 'external';
8
+ channelId?: string | null;
9
+ location?: string | null;
10
+ startAt?: Date | string;
11
+ endAt?: Date | string | null;
12
+ }
13
+ export declare function eventBody(data: ScheduledEventData): Record<string, unknown>;
14
+ export declare class ScheduledEvent extends Identified {
15
+ readonly id: string;
16
+ readonly serverId: string;
17
+ creatorId: string | null;
18
+ name: string;
19
+ description: string;
20
+ locationKind: 'voice' | 'external';
21
+ channelId: string | null;
22
+ location: string | null;
23
+ startAt: Date;
24
+ endAt: Date | null;
25
+ coverUrl: string | null;
26
+ status: APIServerEvent['status'];
27
+ interestedCount: number;
28
+ constructor(client: Client, data: APIServerEvent);
29
+ _patch(data: Partial<APIServerEvent>): this;
30
+ edit(data: ScheduledEventData & {
31
+ status?: 'active' | 'completed' | 'canceled';
32
+ }): Promise<ScheduledEvent>;
33
+ start(): Promise<ScheduledEvent>;
34
+ end(): Promise<ScheduledEvent>;
35
+ cancel(): Promise<ScheduledEvent>;
36
+ delete(): Promise<void>;
37
+ }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScheduledEvent = void 0;
4
+ exports.eventBody = eventBody;
5
+ const Routes_js_1 = require("../rest/Routes.js");
6
+ const Base_js_1 = require("./Base.js");
7
+ function eventBody(data) {
8
+ const iso = (value) => (value instanceof Date ? value.toISOString() : value);
9
+ return { ...data, startAt: iso(data.startAt), endAt: iso(data.endAt) };
10
+ }
11
+ class ScheduledEvent extends Base_js_1.Identified {
12
+ id;
13
+ serverId;
14
+ creatorId = null;
15
+ name = '';
16
+ description = '';
17
+ locationKind = 'voice';
18
+ channelId = null;
19
+ location = null;
20
+ startAt = new Date(0);
21
+ endAt = null;
22
+ coverUrl = null;
23
+ status = 'scheduled';
24
+ interestedCount = 0;
25
+ constructor(client, data) {
26
+ super(client);
27
+ this.id = data.id;
28
+ this.serverId = data.serverId;
29
+ this._patch(data);
30
+ }
31
+ _patch(data) {
32
+ if (data.creatorId !== undefined)
33
+ this.creatorId = data.creatorId;
34
+ if (data.name !== undefined)
35
+ this.name = data.name;
36
+ if (data.description !== undefined)
37
+ this.description = data.description;
38
+ if (data.locationKind !== undefined)
39
+ this.locationKind = data.locationKind;
40
+ if (data.channelId !== undefined)
41
+ this.channelId = data.channelId;
42
+ if (data.location !== undefined)
43
+ this.location = data.location;
44
+ if (data.startAt !== undefined)
45
+ this.startAt = new Date(data.startAt);
46
+ if (data.endAt !== undefined)
47
+ this.endAt = data.endAt ? new Date(data.endAt) : null;
48
+ if (data.coverUrl !== undefined)
49
+ this.coverUrl = data.coverUrl;
50
+ if (data.status !== undefined)
51
+ this.status = data.status;
52
+ if (data.interestedCount !== undefined)
53
+ this.interestedCount = data.interestedCount;
54
+ return this;
55
+ }
56
+ async edit(data) {
57
+ const updated = await this.client.rest.patch(Routes_js_1.Routes.serverEvent(this.serverId, this.id), { body: eventBody(data) });
58
+ return this._patch(updated);
59
+ }
60
+ start() {
61
+ return this.edit({ status: 'active' });
62
+ }
63
+ end() {
64
+ return this.edit({ status: 'completed' });
65
+ }
66
+ cancel() {
67
+ return this.edit({ status: 'canceled' });
68
+ }
69
+ async delete() {
70
+ await this.client.rest.delete(Routes_js_1.Routes.serverEvent(this.serverId, this.id));
71
+ }
72
+ }
73
+ exports.ScheduledEvent = ScheduledEvent;
@@ -0,0 +1,68 @@
1
+ import type { Client } from '../client/Client.js';
2
+ import { ApplicationCommandManager } from '../managers/CommandManager.js';
3
+ import { EventManager } from '../managers/EventManager.js';
4
+ import { EmojiManager, StickerManager } from '../managers/ExpressionManagers.js';
5
+ import { InviteManager } from '../managers/InviteManager.js';
6
+ import { MemberManager } from '../managers/MemberManager.js';
7
+ import { RoleManager } from '../managers/RoleManager.js';
8
+ import { ServerChannelManager } from '../managers/ServerChannelManager.js';
9
+ import type { APIAuditEntry, APIServer, APIServerSummary, APIVoiceState } from '../types.js';
10
+ import { Collection } from '../util/Collection.js';
11
+ import { Identified } from './Base.js';
12
+ import type { ServerMember } from './ServerMember.js';
13
+ import type { User } from './User.js';
14
+ export interface ServerEditData {
15
+ name?: string;
16
+ systemChannelId?: string | null;
17
+ systemFlags?: number;
18
+ defaultNotifications?: 'all' | 'mentions';
19
+ }
20
+ export interface AuditLogEntry extends Omit<APIAuditEntry, 'actorId' | 'createdAt'> {
21
+ actorId: string | null;
22
+ actor: User | null;
23
+ createdAt: Date;
24
+ }
25
+ export interface AuditLogQuery {
26
+ limit?: number;
27
+ before?: string;
28
+ userId?: string;
29
+ action?: string;
30
+ }
31
+ export declare class Server extends Identified {
32
+ readonly id: string;
33
+ name: string;
34
+ iconUrl: string | null;
35
+ bannerUrl: string | null;
36
+ ownerId: string;
37
+ types: string[];
38
+ community: boolean;
39
+ listed: boolean;
40
+ invitesPaused: boolean;
41
+ systemChannelId: string | null;
42
+ boostCount: number;
43
+ boostTier: number;
44
+ myRoleIds: string[];
45
+ detailed: boolean;
46
+ readonly channels: ServerChannelManager;
47
+ readonly roles: RoleManager;
48
+ readonly members: MemberManager;
49
+ readonly emojis: EmojiManager;
50
+ readonly stickers: StickerManager;
51
+ readonly invites: InviteManager;
52
+ readonly events: EventManager;
53
+ readonly commands: ApplicationCommandManager;
54
+ readonly voiceStates: Collection<string, APIVoiceState>;
55
+ constructor(client: Client, data: APIServerSummary | APIServer);
56
+ _patch(data: Partial<APIServer>): this;
57
+ _applyDetail(data: APIServer): void;
58
+ get me(): ServerMember | null;
59
+ get url(): string;
60
+ get systemChannel(): import("./channels/ServerChannels.js").ServerChannel | null;
61
+ fetch(): Promise<Server>;
62
+ edit(data: ServerEditData): Promise<Server>;
63
+ setName(name: string): Promise<Server>;
64
+ leave(): Promise<void>;
65
+ fetchAuditLog(query?: AuditLogQuery): Promise<Collection<string, AuditLogEntry>>;
66
+ fetchVoiceStates(): Promise<Collection<string, APIVoiceState>>;
67
+ toString(): string;
68
+ }
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Server = void 0;
4
+ const CommandManager_js_1 = require("../managers/CommandManager.js");
5
+ const EventManager_js_1 = require("../managers/EventManager.js");
6
+ const ExpressionManagers_js_1 = require("../managers/ExpressionManagers.js");
7
+ const InviteManager_js_1 = require("../managers/InviteManager.js");
8
+ const MemberManager_js_1 = require("../managers/MemberManager.js");
9
+ const RoleManager_js_1 = require("../managers/RoleManager.js");
10
+ const ServerChannelManager_js_1 = require("../managers/ServerChannelManager.js");
11
+ const Routes_js_1 = require("../rest/Routes.js");
12
+ const Collection_js_1 = require("../util/Collection.js");
13
+ const Base_js_1 = require("./Base.js");
14
+ class Server extends Base_js_1.Identified {
15
+ id;
16
+ name;
17
+ iconUrl = null;
18
+ bannerUrl = null;
19
+ ownerId = '';
20
+ types = [];
21
+ community = false;
22
+ listed = false;
23
+ invitesPaused = false;
24
+ systemChannelId = null;
25
+ boostCount = 0;
26
+ boostTier = 0;
27
+ myRoleIds = [];
28
+ detailed = false;
29
+ channels;
30
+ roles;
31
+ members;
32
+ emojis;
33
+ stickers;
34
+ invites;
35
+ events;
36
+ commands;
37
+ voiceStates = new Collection_js_1.Collection();
38
+ constructor(client, data) {
39
+ super(client);
40
+ this.id = data.id;
41
+ this.name = data.name;
42
+ this.channels = new ServerChannelManager_js_1.ServerChannelManager(client, data.id);
43
+ this.roles = new RoleManager_js_1.RoleManager(client, data.id);
44
+ this.members = new MemberManager_js_1.MemberManager(client, data.id);
45
+ this.emojis = new ExpressionManagers_js_1.EmojiManager(client, data.id);
46
+ this.stickers = new ExpressionManagers_js_1.StickerManager(client, data.id);
47
+ this.invites = new InviteManager_js_1.InviteManager(client, data.id);
48
+ this.events = new EventManager_js_1.EventManager(client, data.id);
49
+ this.commands = new CommandManager_js_1.ApplicationCommandManager(client, () => client.requireApplicationId(), data.id);
50
+ this._patch(data);
51
+ }
52
+ _patch(data) {
53
+ if (data.name !== undefined)
54
+ this.name = data.name;
55
+ if (data.iconUrl !== undefined)
56
+ this.iconUrl = data.iconUrl;
57
+ if (data.bannerUrl !== undefined)
58
+ this.bannerUrl = data.bannerUrl;
59
+ if (data.ownerId !== undefined)
60
+ this.ownerId = data.ownerId;
61
+ if (data.types !== undefined)
62
+ this.types = data.types;
63
+ if (data.community !== undefined)
64
+ this.community = data.community;
65
+ if (data.listed !== undefined)
66
+ this.listed = data.listed;
67
+ if (data.invitesPaused !== undefined)
68
+ this.invitesPaused = data.invitesPaused;
69
+ if (data.systemChannelId !== undefined)
70
+ this.systemChannelId = data.systemChannelId;
71
+ if (data.boostCount !== undefined)
72
+ this.boostCount = data.boostCount;
73
+ if (data.boostTier !== undefined)
74
+ this.boostTier = data.boostTier;
75
+ if (data.myRoles !== undefined)
76
+ this.myRoleIds = data.myRoles;
77
+ return this;
78
+ }
79
+ _applyDetail(data) {
80
+ this.detailed = true;
81
+ this.roles._setAll(data.roles);
82
+ this.client.channels._replaceServer(this.id, data.channels);
83
+ }
84
+ get me() {
85
+ return this.members.me;
86
+ }
87
+ get url() {
88
+ return `${this.client.appUrl}/channels/${this.id}`;
89
+ }
90
+ get systemChannel() {
91
+ return this.systemChannelId ? (this.channels.cache.get(this.systemChannelId) ?? null) : null;
92
+ }
93
+ fetch() {
94
+ return this.client.servers.fetch(this.id, { force: true });
95
+ }
96
+ async edit(data) {
97
+ await this.client.rest.patch(Routes_js_1.Routes.serverSettings(this.id), { body: data });
98
+ return this._patch(data);
99
+ }
100
+ setName(name) {
101
+ return this.edit({ name });
102
+ }
103
+ leave() {
104
+ return this.client.servers.leave(this.id);
105
+ }
106
+ async fetchAuditLog(query = {}) {
107
+ const res = await this.client.rest.get(Routes_js_1.Routes.auditLog(this.id), { query: { ...query } });
108
+ for (const u of res.users)
109
+ this.client.users._add(u);
110
+ return new Collection_js_1.Collection(res.entries.map((e) => [e.id, { ...e, actor: e.actorId ? (this.client.users.cache.get(e.actorId) ?? null) : null, createdAt: new Date(e.createdAt) }]));
111
+ }
112
+ async fetchVoiceStates() {
113
+ const list = await this.client.rest.get(Routes_js_1.Routes.voiceStates(this.id));
114
+ this.voiceStates.clear();
115
+ for (const state of list)
116
+ if (state.channelId)
117
+ this.voiceStates.set(state.userId, state);
118
+ return this.voiceStates;
119
+ }
120
+ toString() {
121
+ return this.name;
122
+ }
123
+ }
124
+ exports.Server = Server;
@@ -0,0 +1,48 @@
1
+ import type { Client } from '../client/Client.js';
2
+ import type { APIEmoji, APIInvite, APISticker } from '../types.js';
3
+ import { Base, Identified } from './Base.js';
4
+ export declare class Emoji extends Identified {
5
+ readonly id: string;
6
+ readonly serverId: string;
7
+ name: string;
8
+ animated: boolean;
9
+ url: string;
10
+ uploader: string | null;
11
+ constructor(client: Client, data: APIEmoji);
12
+ get identifier(): string;
13
+ setName(name: string): Promise<Emoji>;
14
+ delete(): Promise<void>;
15
+ toString(): string;
16
+ }
17
+ export declare class Sticker extends Identified {
18
+ readonly id: string;
19
+ readonly serverId: string | null;
20
+ name: string;
21
+ description: string;
22
+ emoji: string | null;
23
+ animated: boolean;
24
+ url: string | null;
25
+ constructor(client: Client, data: APISticker, serverId?: string);
26
+ edit(data: {
27
+ name?: string;
28
+ description?: string;
29
+ emoji?: string;
30
+ }): Promise<Sticker>;
31
+ delete(): Promise<void>;
32
+ }
33
+ export declare class Invite extends Base {
34
+ readonly serverId: string | null;
35
+ readonly code: string;
36
+ maxAgeSecs: number | null;
37
+ maxUses: number | null;
38
+ uses: number;
39
+ temporary: boolean;
40
+ expiresAt: Date | null;
41
+ inviterId: string | null;
42
+ vanity: boolean;
43
+ server: APIInvite['server'];
44
+ constructor(client: Client, data: APIInvite, serverId?: string | null);
45
+ get url(): string;
46
+ delete(): Promise<void>;
47
+ toString(): string;
48
+ }