oceanic.js 1.0.0-dev.eb00c81 → 1.0.0-dev.eb63add

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 (183) hide show
  1. package/.github/workflows/dev-publish.yml +6 -4
  2. package/.github/workflows/docs.yml +2 -6
  3. package/.github/workflows/should-publish-dev.yml +29 -0
  4. package/README.md +4 -2
  5. package/dist/lib/Client.d.ts +21 -10
  6. package/dist/lib/Client.js +58 -24
  7. package/dist/lib/Constants.js +2 -1
  8. package/dist/lib/gateway/GatewayError.d.ts +2 -0
  9. package/dist/lib/gateway/GatewayError.js +3 -1
  10. package/dist/lib/gateway/Shard.d.ts +1 -1
  11. package/dist/lib/gateway/Shard.js +77 -73
  12. package/dist/lib/gateway/ShardManager.d.ts +2 -0
  13. package/dist/lib/gateway/ShardManager.js +3 -1
  14. package/dist/lib/rest/Bucket.d.ts +1 -0
  15. package/dist/lib/rest/Bucket.js +2 -1
  16. package/dist/lib/rest/DiscordHTTPError.d.ts +2 -0
  17. package/dist/lib/rest/DiscordHTTPError.js +2 -1
  18. package/dist/lib/rest/DiscordRESTError.d.ts +2 -0
  19. package/dist/lib/rest/DiscordRESTError.js +2 -1
  20. package/dist/lib/rest/RESTManager.d.ts +6 -2
  21. package/dist/lib/rest/RESTManager.js +10 -8
  22. package/dist/lib/rest/RequestHandler.d.ts +1 -0
  23. package/dist/lib/rest/RequestHandler.js +2 -1
  24. package/dist/lib/rest/SequentialBucket.d.ts +1 -0
  25. package/dist/lib/rest/SequentialBucket.js +2 -1
  26. package/dist/lib/routes/ApplicationCommands.d.ts +1 -0
  27. package/dist/lib/routes/ApplicationCommands.js +3 -1
  28. package/dist/lib/routes/Channels.d.ts +16 -13
  29. package/dist/lib/routes/Channels.js +9 -8
  30. package/dist/lib/routes/Guilds.d.ts +5 -2
  31. package/dist/lib/routes/Guilds.js +61 -38
  32. package/dist/lib/routes/Interactions.d.ts +9 -6
  33. package/dist/lib/routes/Interactions.js +2 -1
  34. package/dist/lib/routes/OAuth.d.ts +2 -0
  35. package/dist/lib/routes/OAuth.js +2 -1
  36. package/dist/lib/routes/Users.d.ts +2 -0
  37. package/dist/lib/routes/Users.js +2 -1
  38. package/dist/lib/routes/Webhooks.d.ts +9 -6
  39. package/dist/lib/routes/Webhooks.js +2 -1
  40. package/dist/lib/structures/AnnouncementChannel.d.ts +5 -4
  41. package/dist/lib/structures/AnnouncementChannel.js +4 -3
  42. package/dist/lib/structures/AnnouncementThreadChannel.d.ts +2 -1
  43. package/dist/lib/structures/AnnouncementThreadChannel.js +3 -2
  44. package/dist/lib/structures/Application.d.ts +1 -0
  45. package/dist/lib/structures/Application.js +1 -1
  46. package/dist/lib/structures/ApplicationCommand.d.ts +2 -0
  47. package/dist/lib/structures/ApplicationCommand.js +3 -1
  48. package/dist/lib/structures/Attachment.d.ts +1 -0
  49. package/dist/lib/structures/Attachment.js +2 -1
  50. package/dist/lib/structures/AuditLogEntry.d.ts +1 -0
  51. package/dist/lib/structures/AuditLogEntry.js +2 -1
  52. package/dist/lib/structures/AutoModerationRule.d.ts +1 -0
  53. package/dist/lib/structures/AutoModerationRule.js +3 -2
  54. package/dist/lib/structures/AutocompleteInteraction.d.ts +22 -13
  55. package/dist/lib/structures/AutocompleteInteraction.js +30 -11
  56. package/dist/lib/structures/Base.d.ts +1 -0
  57. package/dist/lib/structures/Base.js +7 -6
  58. package/dist/lib/structures/CategoryChannel.d.ts +1 -0
  59. package/dist/lib/structures/CategoryChannel.js +3 -2
  60. package/dist/lib/structures/Channel.d.ts +1 -0
  61. package/dist/lib/structures/Channel.js +2 -1
  62. package/dist/lib/structures/ClientApplication.d.ts +1 -0
  63. package/dist/lib/structures/ClientApplication.js +2 -1
  64. package/dist/lib/structures/CommandInteraction.d.ts +26 -17
  65. package/dist/lib/structures/CommandInteraction.js +34 -15
  66. package/dist/lib/structures/ComponentInteraction.d.ts +28 -19
  67. package/dist/lib/structures/ComponentInteraction.js +32 -13
  68. package/dist/lib/structures/ExtendedUser.d.ts +2 -1
  69. package/dist/lib/structures/ExtendedUser.js +3 -2
  70. package/dist/lib/structures/ForumChannel.d.ts +1 -0
  71. package/dist/lib/structures/ForumChannel.js +3 -2
  72. package/dist/lib/structures/GroupChannel.d.ts +4 -3
  73. package/dist/lib/structures/GroupChannel.js +2 -1
  74. package/dist/lib/structures/Guild.d.ts +16 -5
  75. package/dist/lib/structures/Guild.js +60 -8
  76. package/dist/lib/structures/GuildChannel.d.ts +1 -0
  77. package/dist/lib/structures/GuildChannel.js +3 -2
  78. package/dist/lib/structures/GuildPreview.d.ts +2 -1
  79. package/dist/lib/structures/GuildPreview.js +3 -2
  80. package/dist/lib/structures/GuildScheduledEvent.d.ts +2 -0
  81. package/dist/lib/structures/GuildScheduledEvent.js +4 -2
  82. package/dist/lib/structures/GuildTemplate.d.ts +2 -0
  83. package/dist/lib/structures/GuildTemplate.js +9 -8
  84. package/dist/lib/structures/Integration.d.ts +12 -3
  85. package/dist/lib/structures/Integration.js +15 -4
  86. package/dist/lib/structures/Interaction.d.ts +2 -0
  87. package/dist/lib/structures/Interaction.js +3 -1
  88. package/dist/lib/structures/Invite.d.ts +4 -3
  89. package/dist/lib/structures/Invite.js +26 -23
  90. package/dist/lib/structures/Member.d.ts +2 -1
  91. package/dist/lib/structures/Member.js +6 -4
  92. package/dist/lib/structures/Message.d.ts +11 -3
  93. package/dist/lib/structures/Message.js +18 -23
  94. package/dist/lib/structures/ModalSubmitInteraction.d.ts +26 -17
  95. package/dist/lib/structures/ModalSubmitInteraction.js +30 -11
  96. package/dist/lib/structures/PartialApplication.d.ts +2 -0
  97. package/dist/lib/structures/PartialApplication.js +3 -1
  98. package/dist/lib/structures/Permission.d.ts +3 -1
  99. package/dist/lib/structures/Permission.js +14 -7
  100. package/dist/lib/structures/PermissionOverwrite.d.ts +3 -1
  101. package/dist/lib/structures/PermissionOverwrite.js +3 -1
  102. package/dist/lib/structures/PingInteraction.d.ts +1 -0
  103. package/dist/lib/structures/PingInteraction.js +2 -1
  104. package/dist/lib/structures/PrivateChannel.d.ts +1 -0
  105. package/dist/lib/structures/PrivateChannel.js +2 -1
  106. package/dist/lib/structures/PrivateThreadChannel.d.ts +2 -1
  107. package/dist/lib/structures/PrivateThreadChannel.js +3 -2
  108. package/dist/lib/structures/PublicThreadChannel.d.ts +2 -1
  109. package/dist/lib/structures/PublicThreadChannel.js +3 -2
  110. package/dist/lib/structures/Role.d.ts +1 -0
  111. package/dist/lib/structures/Role.js +3 -2
  112. package/dist/lib/structures/StageChannel.d.ts +8 -4
  113. package/dist/lib/structures/StageChannel.js +19 -4
  114. package/dist/lib/structures/StageInstance.d.ts +3 -1
  115. package/dist/lib/structures/StageInstance.js +4 -2
  116. package/dist/lib/structures/Team.d.ts +2 -0
  117. package/dist/lib/structures/Team.js +3 -1
  118. package/dist/lib/structures/TextChannel.d.ts +1 -0
  119. package/dist/lib/structures/TextChannel.js +3 -3
  120. package/dist/lib/structures/TextableChannel.d.ts +2 -1
  121. package/dist/lib/structures/TextableChannel.js +4 -3
  122. package/dist/lib/structures/ThreadChannel.d.ts +1 -0
  123. package/dist/lib/structures/ThreadChannel.js +3 -2
  124. package/dist/lib/structures/UnavailableGuild.d.ts +1 -0
  125. package/dist/lib/structures/UnavailableGuild.js +2 -1
  126. package/dist/lib/structures/User.d.ts +1 -0
  127. package/dist/lib/structures/User.js +2 -1
  128. package/dist/lib/structures/VoiceChannel.d.ts +7 -3
  129. package/dist/lib/structures/VoiceChannel.js +19 -4
  130. package/dist/lib/structures/VoiceState.d.ts +1 -0
  131. package/dist/lib/structures/VoiceState.js +2 -1
  132. package/dist/lib/structures/Webhook.d.ts +2 -0
  133. package/dist/lib/structures/Webhook.js +3 -1
  134. package/dist/lib/types/application-commands.d.ts +1 -0
  135. package/dist/lib/types/audit-log.d.ts +1 -0
  136. package/dist/lib/types/auto-moderation.d.ts +1 -0
  137. package/dist/lib/types/channels.d.ts +5 -0
  138. package/dist/lib/types/client.d.ts +1 -7
  139. package/dist/lib/types/events.d.ts +1 -3
  140. package/dist/lib/types/gateway-raw.d.ts +2 -1
  141. package/dist/lib/types/gateway.d.ts +1 -0
  142. package/dist/lib/types/guild-template.d.ts +1 -0
  143. package/dist/lib/types/guilds.d.ts +14 -2
  144. package/dist/lib/types/index.d.ts +1 -0
  145. package/dist/lib/types/interactions.d.ts +12 -11
  146. package/dist/lib/types/json.d.ts +1 -0
  147. package/dist/lib/types/oauth.d.ts +1 -0
  148. package/dist/lib/types/request-handler.d.ts +1 -0
  149. package/dist/lib/types/scheduled-events.d.ts +1 -0
  150. package/dist/lib/types/shared.d.ts +2 -2
  151. package/dist/lib/types/users.d.ts +1 -0
  152. package/dist/lib/types/voice.d.ts +20 -0
  153. package/dist/lib/types/webhooks.d.ts +1 -0
  154. package/dist/lib/util/Collection.d.ts +1 -0
  155. package/dist/lib/util/Collection.js +2 -1
  156. package/dist/lib/util/InteractionOptionsWrapper.d.ts +7 -0
  157. package/dist/lib/util/InteractionOptionsWrapper.js +22 -1
  158. package/dist/lib/util/Routes.d.ts +1 -0
  159. package/dist/lib/util/Routes.js +2 -1
  160. package/dist/lib/util/TypedCollection.d.ts +1 -0
  161. package/dist/lib/util/TypedCollection.js +2 -1
  162. package/dist/lib/util/TypedEmitter.d.ts +1 -0
  163. package/dist/lib/util/TypedEmitter.js +2 -1
  164. package/dist/lib/util/Util.d.ts +4 -2
  165. package/dist/lib/util/Util.js +28 -2
  166. package/dist/package.json +6 -2
  167. package/examples/applicationCommand.js +20 -20
  168. package/examples/audio.mp3 +0 -0
  169. package/examples/components.js +17 -17
  170. package/examples/embeds.js +25 -24
  171. package/examples/intents.js +10 -11
  172. package/examples/interactions.js +171 -0
  173. package/examples/voice.js +47 -0
  174. package/package.json +6 -2
  175. package/build.js +0 -6
  176. package/dist/lib/types/stage-instances.d.ts +0 -12
  177. package/dist/lib/util/Properties.d.ts +0 -9
  178. package/dist/lib/util/Properties.js +0 -27
  179. package/dist/lib/voice/VoiceConnection.d.ts +0 -7
  180. package/dist/lib/voice/VoiceConnection.js +0 -16
  181. package/dist/lib/voice/VoiceConnectionManager.d.ts +0 -7
  182. package/dist/lib/voice/VoiceConnectionManager.js +0 -15
  183. package/doc-test.js +0 -39
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ /** @module TypedEmitter */
6
7
  /* eslint-disable @typescript-eslint/ban-types, @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument */
7
8
  const events_1 = __importDefault(require("events"));
8
9
  class TypedEmitter extends events_1.default {
@@ -14,4 +15,4 @@ class TypedEmitter extends events_1.default {
14
15
  }
15
16
  }
16
17
  exports.default = TypedEmitter;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZWRFbWl0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3V0aWwvVHlwZWRFbWl0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNEhBQTRIO0FBQzVILG9EQUFrQztBQWtCbEMsTUFBTSxZQUEwRCxTQUFRLGdCQUFZO0lBQ2hGLElBQUksQ0FBeUIsU0FBWSxFQUFFLEdBQUcsSUFBZTtRQUN6RCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQW1CLEVBQUUsR0FBRyxJQUFrQixDQUFDLENBQUM7SUFDbEUsQ0FBQztDQUNKO0FBRUQsa0JBQWUsWUFBWSxDQUFDIn0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZWRFbWl0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3V0aWwvVHlwZWRFbWl0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkJBQTJCO0FBQzNCLDRIQUE0SDtBQUM1SCxvREFBa0M7QUFrQmxDLE1BQU0sWUFBMEQsU0FBUSxnQkFBWTtJQUNoRixJQUFJLENBQXlCLFNBQVksRUFBRSxHQUFHLElBQWU7UUFDekQsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNyQyxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFtQixFQUFFLEdBQUcsSUFBa0IsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7Q0FDSjtBQUVELGtCQUFlLFlBQVksQ0FBQyJ9
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import type Client from "../Client";
3
3
  import type { ImageFormat } from "../Constants";
4
- import type { AllowedMentions, ApplicationCommandOptions, MessageActionRow, ModalActionRow, RawAllowedMentions, RawApplicationCommandOption, RawMember, RawMessageActionRow, RawModalActionRow, EmbedOptions, RawEmbedOptions, Embed, RawEmbed } from "../types";
4
+ import type { AllowedMentions, ApplicationCommandOptions, MessageActionRow, ModalActionRow, RawAllowedMentions, RawApplicationCommandOption, RawMember, RawMessageActionRow, RawModalActionRow, EmbedOptions, RawEmbedOptions, Embed, RawEmbed, RawThreadChannel, AnyThreadChannel, RawChannel, AnyChannel } from "../types";
5
5
  import Member from "../structures/Member";
6
6
  /** A general set of utilities. These are intentionally poorly documented, as they serve almost no usefulness to outside developers. */
7
7
  export default class Util {
@@ -19,6 +19,8 @@ export default class Util {
19
19
  formatImage(url: string, format?: ImageFormat, size?: number): string;
20
20
  optionToParsed(option: RawApplicationCommandOption): ApplicationCommandOptions;
21
21
  optionToRaw(option: ApplicationCommandOptions): RawApplicationCommandOption;
22
- updateMember(guildID: string, memberID: string | undefined, member: RawMember): Member;
22
+ updateChannel<T extends AnyChannel>(channelData: RawChannel): T;
23
+ updateMember(guildID: string, memberID: string, member: RawMember): Member;
24
+ updateThread<T extends AnyThreadChannel>(threadData: RawThreadChannel): T;
23
25
  }
24
26
  export declare function is<T>(input: unknown): input is T;
@@ -4,9 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.is = void 0;
7
+ /** @module Util */
7
8
  const Routes_1 = require("./Routes");
8
9
  const Constants_1 = require("../Constants");
9
10
  const Member_1 = __importDefault(require("../structures/Member"));
11
+ const Channel_1 = __importDefault(require("../structures/Channel"));
10
12
  /** A general set of utilities. These are intentionally poorly documented, as they serve almost no usefulness to outside developers. */
11
13
  class Util {
12
14
  static BASE64URL_REGEX = /^data:image\/(?:jpeg|png|gif);base64,(?:[A-Za-z0-9+/]{2}[A-Za-z0-9+/]{2})*(?:[A-Za-z0-9+/]{2}(==)?|[A-Za-z0-9+/]{3}=?)?$/;
@@ -297,6 +299,17 @@ class Util {
297
299
  type: opt.type
298
300
  };
299
301
  }
302
+ updateChannel(channelData) {
303
+ if (channelData.guild_id) {
304
+ const guild = this.#client.guilds.get(channelData.guild_id);
305
+ if (guild) {
306
+ this.#client.channelGuildMap[channelData.id] = channelData.guild_id;
307
+ const channel = guild.channels.has(channelData.id) ? guild.channels.update(channelData) : guild.channels.add(Channel_1.default.from(channelData, this.#client));
308
+ return channel;
309
+ }
310
+ }
311
+ return Channel_1.default.from(channelData, this.#client);
312
+ }
300
313
  updateMember(guildID, memberID, member) {
301
314
  const guild = this.#client.guilds.get(guildID);
302
315
  if (guild && this.#client.user.id === memberID) {
@@ -308,7 +321,20 @@ class Util {
308
321
  }
309
322
  return guild["_clientMember"];
310
323
  }
311
- return guild ? guild.members.update({ ...member, id: memberID }, guildID) : new Member_1.default(member, this.#client, guildID);
324
+ return guild ? guild.members.update({ ...member, id: memberID }, guildID) : new Member_1.default({ ...member, id: memberID }, this.#client, guildID);
325
+ }
326
+ updateThread(threadData) {
327
+ const guild = this.#client.guilds.get(threadData.guild_id);
328
+ if (guild) {
329
+ this.#client.threadGuildMap[threadData.id] = threadData.guild_id;
330
+ const thread = guild.threads.has(threadData.id) ? guild.threads.update(threadData) : guild.threads.add(Channel_1.default.from(threadData, this.#client));
331
+ const channel = guild.channels.get(threadData.parent_id);
332
+ if (channel && "threads" in channel) {
333
+ channel.threads.update(thread);
334
+ }
335
+ return thread;
336
+ }
337
+ return Channel_1.default.from(threadData, this.#client);
312
338
  }
313
339
  }
314
340
  exports.default = Util;
@@ -316,4 +342,4 @@ function is(input) {
316
342
  return true;
317
343
  }
318
344
  exports.is = is;
319
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi91dGlsL1V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEscUNBQW1DO0FBR25DLDRDQU1zQjtBQWlCdEIsa0VBQTBDO0FBRTFDLHVJQUF1STtBQUN2SSxNQUFxQixJQUFJO0lBQ3JCLE1BQU0sQ0FBQyxlQUFlLEdBQUcsMEhBQTBILENBQUM7SUFDcEosT0FBTyxDQUFTO0lBRWhCLFlBQVksTUFBYztRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUMxQixDQUFDO0lBRUQsMEVBQTBFO0lBQzFFLGFBQWEsQ0FBQyxLQUFzQixFQUFFLElBQVk7UUFDOUMsSUFBSTtZQUNBLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNuQztRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLElBQUksMEVBQTBFLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBWSxFQUFFLENBQUMsQ0FBQztTQUN2STtJQUNMLENBQUM7SUFFRCxrQkFBa0IsQ0FBb0QsVUFBb0I7UUFDdEYsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMxQixJQUFJLEVBQVEsR0FBRyxDQUFDLElBQUk7WUFDcEIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUN2QyxJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssMEJBQWMsQ0FBQyxNQUFNLEVBQUU7b0JBQzFDLElBQUksU0FBUyxDQUFDLEtBQUssS0FBSyx3QkFBWSxDQUFDLElBQUksRUFBRTt3QkFDdkMsT0FBTyxTQUFTLENBQUM7cUJBQ3BCO3lCQUFNO3dCQUNILE9BQU87NEJBQ0gsUUFBUSxFQUFFLFNBQVMsQ0FBQyxTQUFTOzRCQUM3QixRQUFRLEVBQUUsU0FB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
345
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi91dGlsL1V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbUJBQW1CO0FBQ25CLHFDQUFtQztBQUduQyw0Q0FNc0I7QUF1QnRCLGtFQUEwQztBQUMxQyxvRUFBNEM7QUFFNUMsdUlBQXVJO0FBQ3ZJLE1BQXFCLElBQUk7SUFDckIsTUFBTSxDQUFDLGVBQWUsR0FBRywwSEFBMEgsQ0FBQztJQUNwSixPQUFPLENBQVM7SUFFaEIsWUFBWSxNQUFjO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQzFCLENBQUM7SUFFRCwwRUFBMEU7SUFDMUUsYUFBYSxDQUFDLEtBQXNCLEVBQUUsSUFBWTtRQUM5QyxJQUFJO1lBQ0EsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ25DO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLFdBQVcsSUFBSSwwRUFBMEUsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFZLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZJO0lBQ0wsQ0FBQztJQUVELGtCQUFrQixDQUFvRCxVQUFvQjtRQUN0RixPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzFCLElBQUksRUFBUSxHQUFHLENBQUMsSUFBSTtZQUNwQixVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3ZDLElBQUksU0FBUyxDQUFDLElBQUksS0FBSywwQkFBYyxDQUFDLE1BQU0sRUFBRTtvQkFDMUMsSUFBSSxTQUFTLENBQUMsS0FBSyxLQUFLLHdCQUFZLENBQUMsSUFBSSxFQUFFO3dCQUN2QyxPQUFPLFNBQVMsQ0FBQztxQkFDcEI7eUJBQU07d0JBQ0gsT0FBTzs0QkFDSCxRQUFRLEVBQUUsU0FBUyxDQUFD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
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oceanic.js",
3
- "version": "1.0.0-dev.eb00c81",
3
+ "version": "1.0.0-dev.eb63add",
4
4
  "description": "A NodeJS library for interfacing with Discord.",
5
5
  "main": "./dist/lib/index.js",
6
6
  "types": "./dist/lib/index.d.ts",
@@ -15,7 +15,8 @@
15
15
  "scripts": {
16
16
  "lint": "eslint lib --ext .ts",
17
17
  "lint:fix": "eslint lib --ext .ts --fix",
18
- "prepublishOnly": "node build"
18
+ "prepublishOnly": "node scripts/build",
19
+ "test:docs": "npm i --no-save --ignore-scripts typedoc typedoc-plugin-extras typedoc-plugin-rename-defaults && node scripts/doc-test.js && npx --yes typedoc"
19
20
  },
20
21
  "repository": {
21
22
  "type": "git",
@@ -58,5 +59,8 @@
58
59
  },
59
60
  "engines": {
60
61
  "node": ">=16.16.0"
62
+ },
63
+ "optionalDependencies": {
64
+ "@discordjs/voice": "^0.11.0"
61
65
  }
62
66
  }
@@ -1,6 +1,6 @@
1
- // the application command management functions are on ClientApplication (client.application) & client.rest.applicationCommands
2
- // https://oceanic.owo-whats-this.dev/classes/structures_ClientApplication.ClientApplication.html
3
- // https://oceanic.owo-whats-this.dev/classes/routes_ApplicationCommands.ApplicationCommands.html
1
+ // The application command management functions are on ClientApplication (client.application) & client.rest.applicationCommands
2
+ // https://oceanic.owo-whats-this.dev/latest/classes/ClientApplication.ClientApplication.html
3
+ // https://oceanic.owo-whats-this.dev/latest/classes/Routes_ApplicationCommands.ApplicationCommands.html
4
4
  const { ApplicationCommandOptionTypes, ApplicationCommandTypes, Client } = require("oceanic.js");
5
5
 
6
6
  const client = new Client({
@@ -13,24 +13,24 @@ const client = new Client({
13
13
  client.on("ready", async() => {
14
14
  console.log("Ready as", client.user.tag);
15
15
 
16
- // https://oceanic.owo-whats-this.dev/classes/structures_ClientApplication.ClientApplication.html#createGlobalCommand
16
+ // https://oceanic.owo-whats-this.dev/classes/ClientApplication.ClientApplication.html#createGlobalCommand
17
17
  // Create a single command
18
18
  await client.application.createGlobalCommand({
19
- type: ApplicationCommandTypes.CHAT_INPUT, // CHAT_INPUT = slash commands - full list: https://oceanic.owo-whats-this.dev/enums/Constants.ApplicationCommandTypes.html
19
+ type: ApplicationCommandTypes.CHAT_INPUT, // CHAT_INPUT = slash commands - full list: https://oceanic.owo-whats-this.dev/latest/enums/Constants.ApplicationCommandTypes.html
20
20
  name: "global-command",
21
21
  description: "A global command.",
22
22
  options: [
23
23
  {
24
- type: ApplicationCommandOptionTypes.STRING, // A string input - full list: https://oceanic.owo-whats-this.dev/enums/Constants.ApplicationCommandOptionTypes.html
24
+ type: ApplicationCommandOptionTypes.STRING, // A string input - full list: https://oceanic.owo-whats-this.dev/latest/enums/Constants.ApplicationCommandOptionTypes.html
25
25
  name: "suspicious",
26
26
  nameLocalizations: { // (optional) a dictionary of locales to localized names (see: https://discord.com/developers/docs/reference#locales)
27
27
  "es-ES": "sospechoso"
28
28
  },
29
29
  description: "Are you sus?",
30
- descriptionLocalizations: { // same as above
30
+ descriptionLocalizations: { // Same as above
31
31
  "es-ES": "¿Eres sus?"
32
32
  },
33
- choices: [ // a BOOLEAN can also be used instead
33
+ choices: [ // A BOOLEAN can also be used instead
34
34
  {
35
35
  name: "Yes",
36
36
  nameLocalizations: {
@@ -49,10 +49,10 @@ client.on("ready", async() => {
49
49
  }
50
50
  ],
51
51
  dmPermission: false, // false = usable in guilds only, true = both guild & direct message
52
- defaultMemberPermissions: "8" // The default permissions required to use this command (8 = Administrator)
52
+ defaultMemberPermissions: "8" // The bitfield of the default permissions required to use this command (8 = Administrator)
53
53
  });
54
54
 
55
- // https://oceanic.owo-whats-this.dev/classes/structures_ClientApplication.ClientApplication.html#bulkEditGlobalCommands
55
+ // https://oceanic.owo-whats-this.dev/latest/classes/ClientApplication.ClientApplication.html#bulkEditGlobalCommands
56
56
  // Instead of deleting individual commands or creating commands one at a time, you can create them in bulk.
57
57
  await client.application.bulkEditGlobalCommands([
58
58
  {
@@ -65,7 +65,7 @@ client.on("ready", async() => {
65
65
  },
66
66
  {
67
67
  type: ApplicationCommandTypes.MESSAGE, // This will display in the `Apps` context menu, when clicking on a message.
68
- // same as above
68
+ // Same as above
69
69
  name: "Raw Json",
70
70
  nameLocalizations: {
71
71
  "es-ES": "json crudo"
@@ -73,18 +73,18 @@ client.on("ready", async() => {
73
73
  }
74
74
  ]);
75
75
 
76
- // https://oceanic.owo-whats-this.dev/classes/structures_ClientApplication.ClientApplication.html#getGlobalCommands
76
+ // https://oceanic.owo-whats-this.dev/latest/classes/ClientApplication.ClientApplication.html#getGlobalCommands
77
77
  // if you need to fetch your commands
78
78
  const commands = await client.application.getGlobalCommands();
79
- console.log(commands); // an array of ApplicationCommand classes
79
+ console.log(commands); // An array of ApplicationCommand classes
80
80
 
81
- for(const command of commands) {
82
- // https://oceanic.owo-whats-this.dev/classes/structures_ApplicationCommand.ApplicationCommand.html#delete
83
- await command.delete(); // DON'T DO THIS! This is just an example. Use `bulkedit` with an empty array if you want to delete all commands.
81
+ for (const command of commands) {
82
+ // https://oceanic.owo-whats-this.dev/latest/classes/ApplicationCommand.ApplicationCommand.html#delete
83
+ await command.delete(); // DON'T DO THIS! This is just an example. Use `bulkEdit` with an empty array if you want to delete all commands
84
84
  }
85
85
 
86
- // https://oceanic.owo-whats-this.dev/classes/structures_ClientApplication.ClientApplication.html#createGuildCommand
87
- // guilds commands are exactly the same thing, but with a guild id included.
86
+ // https://oceanic.owo-whats-this.dev/latest/classes/ClientApplication.ClientApplication.html#createGuildCommand
87
+ // Guilds commands are exactly the same thing, but with a guild ID included
88
88
  await client.application.createGuildCommand("1005489770278953112", {
89
89
  type: ApplicationCommandTypes.CHAT_INPUT,
90
90
  name: "guild-command",
@@ -98,10 +98,10 @@ client.on("ready", async() => {
98
98
  });
99
99
  });
100
100
 
101
- // an error handler
101
+ // An error handler
102
102
  client.on("error", (error) => {
103
103
  console.error("Something went wrong:", error);
104
104
  });
105
105
 
106
- // connect to Discord
106
+ // Connect to Discord
107
107
  client.connect();
Binary file
@@ -9,25 +9,25 @@ const client = new Client({
9
9
 
10
10
  client.on("ready", () => console.log("Ready as", client.user.tag));
11
11
 
12
- client.on("messageCreate", async(msg) => {
12
+ client.on("messageCreate", async (msg) => {
13
13
  if(msg.content.includes("!component")) {
14
14
  await client.rest.channels.createMessage(msg.channel.id, {
15
15
  content: `Here's some buttons for you, ${msg.author.mention}.`,
16
16
  components: [
17
17
  {
18
- // the top level component must always be an action row.
19
- // Full list of types: https://oceanic.owo-whats-this.dev/enums/Constants.ComponentTypes.html
20
- // https://oceanic.owo-whats-this.dev/interfaces/types_channels.MessageActionRow.html
18
+ // The top level component must always be an action row.
19
+ // Full list of types: https://oceanic.owo-whats-this.dev/latest/enums/Constants.ComponentTypes.html
20
+ // https://oceanic.owo-whats-this.dev/latest/interfaces/types_channels.MessageActionRow.html
21
21
  type: ComponentTypes.ACTION_ROW,
22
22
  components: [
23
23
  {
24
- // https://oceanic.owo-whats-this.dev/interfaces/types_channels.TextButton.html
24
+ // https://oceanic.owo-whats-this.dev/latest/interfaces/types_channels.TextButton.html
25
25
  type: ComponentTypes.BUTTON,
26
- style: ButtonStyles.PRIMARY, // the style of button - full list: https://oceanic.owo-whats-this.dev/enums/Constants.ButtonStyles.html
26
+ style: ButtonStyles.PRIMARY, // The style of button - full list: https://oceanic.owo-whats-this.dev/latest/enums/Constants.ButtonStyles.html
27
27
  customID: "some-string-you-will-see-later",
28
28
  label: "Click!",
29
29
  disabled: false, // If the button is disabled, false by default.
30
- emoji: { // an optional emoji
30
+ emoji: { // An optional emoji
31
31
  id: "1013346070606123009",
32
32
  name: "oceanic"
33
33
  }
@@ -40,25 +40,25 @@ client.on("messageCreate", async(msg) => {
40
40
  disabled: true
41
41
  },
42
42
  {
43
- // https://oceanic.owo-whats-this.dev/interfaces/types_channels.URLButton.html
43
+ // https://oceanic.owo-whats-this.dev/latest/interfaces/types_channels.URLButton.html
44
44
  type: ComponentTypes.BUTTON,
45
45
  style: ButtonStyles.LINK,
46
46
  label: "Open Link",
47
47
  url: "https://oceanic.owo-whats-this.dev"
48
48
  },
49
49
  {
50
- // https://oceanic.owo-whats-this.dev/interfaces/types_channels.SelectMenu.html
50
+ // https://oceanic.owo-whats-this.dev/latest/interfaces/types_channels.SelectMenu.html
51
51
  type: ComponentTypes.SELECT_MENU,
52
52
  customID: "select-menu",
53
53
  disabled: false,
54
- maxValues: 1, // the maximum number of values that can be selected (default 1)
55
- minValues: 1, // the minimum number of values that can be selected (default 1)
54
+ maxValues: 1, // The maximum number of values that can be selected (default 1)
55
+ minValues: 1, // The minimum number of values that can be selected (default 1)
56
56
  options: [
57
- // https://oceanic.owo-whats-this.dev/interfaces/types_channels.SelectOption.html
57
+ // https://oceanic.owo-whats-this.dev/latest/interfaces/types_channels.SelectOption.html
58
58
  {
59
- default: true, // if this option is selected by default
60
- description: "The description of the option", // optional description
61
- emoji: { // an optional emoji
59
+ default: true, // If this option is selected by default
60
+ description: "The description of the option", // Optional description
61
+ emoji: { // An optional emoji
62
62
  id: "1013346070606123009",
63
63
  name: "oceanic"
64
64
  },
@@ -79,10 +79,10 @@ client.on("messageCreate", async(msg) => {
79
79
  }
80
80
  });
81
81
 
82
- // an error handler
82
+ // An error handler
83
83
  client.on("error", (error) => {
84
84
  console.error("Something went wrong:", error);
85
85
  });
86
86
 
87
- // connect to Discord
87
+ // Connect to Discord
88
88
  client.connect();
@@ -1,5 +1,5 @@
1
1
  const { Client } = require("oceanic.js");
2
- const fs = require("fs");
2
+ const { readFileSync } = require("fs");
3
3
 
4
4
  const client = new Client({
5
5
  auth: "Bot [TOKEN]",
@@ -10,26 +10,27 @@ const client = new Client({
10
10
 
11
11
  client.on("ready", () => console.log("Ready as", client.user.tag));
12
12
 
13
- client.on("messageCreate", async(msg) => {
13
+ client.on("messageCreate", async (msg) => {
14
14
  if(msg.content.includes("!embed")) {
15
15
  await client.rest.channels.createMessage(msg.channel.id, {
16
- // https://oceanic.owo-whats-this.dev/interfaces/types_channels.EmbedOptions.html
17
- // up to 10 in one message
16
+ // https://oceanic.owo-whats-this.dev/latest/interfaces/types_channels.EmbedOptions.html
17
+ // Up to 10 in one message
18
18
  embeds: [
19
19
  {
20
- // https://oceanic.owo-whats-this.dev/interfaces/types_channels.EmbedAuthorOptions.html
20
+ // https://oceanic.owo-whats-this.dev/latest/interfaces/types_channels.EmbedAuthorOptions.html
21
21
  author: {
22
22
  name: "Author Name",
23
- // an image url, or attachment://filename.ext
24
- icon_url: "https://i.furry.cool/DonPride.png", // optional
25
- url: "https://oceanic.owo-whats-this.dev" // optional
23
+ // An image url, or attachment://filename.ext
24
+ iconURL: "https://i.furry.cool/DonPride.png", // Optional
25
+ url: "https://oceanic.owo-whats-this.dev" // Optional
26
26
  },
27
- // array of https://oceanic.owo-whats-this.dev/interfaces/types_channels.EmbedField.html
27
+ // Array of https://oceanic.owo-whats-this.dev/latest/interfaces/types_channels.EmbedField.html
28
+ // Up to 25 in one message
28
29
  fields: [
29
30
  {
30
31
  name: "Field One",
31
32
  value: "Field One Value",
32
- inline: true // if this field should be displayed inline (default: true)
33
+ inline: true // If this field should be displayed inline (default: false)
33
34
  },
34
35
  {
35
36
  name: "Field Two",
@@ -37,26 +38,26 @@ client.on("messageCreate", async(msg) => {
37
38
  inline: false
38
39
  }
39
40
  ],
40
- // https://oceanic.owo-whats-this.dev/interfaces/types_channels.EmbedFooterOptions.html
41
+ // https://oceanic.owo-whats-this.dev/latest/interfaces/types_channels.EmbedFooterOptions.html
41
42
  footer: {
42
43
  text: "Footer Text",
43
- // an image url, or attachment://filename.ext
44
- icon_url: "https://i.furry.cool/DonPride.png" // optional
44
+ // An image url, or attachment://filename.ext
45
+ iconURL: "https://i.furry.cool/DonPride.png" // Optional
45
46
  },
46
- // https://oceanic.owo-whats-this.dev/interfaces/types_channels.EmbedImageOptions.html
47
+ // https://oceanic.owo-whats-this.dev/latest/interfaces/types_channels.EmbedImageOptions.html
47
48
  image: {
48
- // an image url, or attachment://filename.ext
49
+ // An image url, or attachment://filename.ext
49
50
  url: "https://i.furry.cool/DonPride.png"
50
51
  },
51
- // https://oceanic.owo-whats-this.dev/interfaces/types_channels.EmbedThumbnailOptions.html
52
+ // https://oceanic.owo-whats-this.dev/latest/interfaces/types_channels.EmbedThumbnailOptions.html
52
53
  thumbnail: {
53
- // an image url, or attachment://filename.ext
54
+ // An image url, or attachment://filename.ext
54
55
  url: "https://i.furry.cool/DonPride.png"
55
56
  },
56
- // https://oceanic.owo-whats-this.dev/interfaces/types_channels.EmbedOptions.html
57
- color: 0xFFA500, // base-10 color (0x prefix can be used for hex codes)
57
+ // https://oceanic.owo-whats-this.dev/latest/interfaces/types_channels.EmbedOptions.html
58
+ color: 0xFFA500, // Base-10 color (0x prefix can be used for hex codes)
58
59
  description: "My Cool Embed",
59
- timestamp: new Date().toISOString(), // the current time - ISO 8601 format
60
+ timestamp: new Date().toISOString(), // The current time - ISO 8601 format
60
61
  title: "My Amazing Embed",
61
62
  url: "https://oceanic.owo-whats-this.dev"
62
63
  }
@@ -67,7 +68,7 @@ client.on("messageCreate", async(msg) => {
67
68
  embeds: [
68
69
  {
69
70
  image: {
70
- // this can also be used for author & footer images
71
+ // This can also be used for author & footer images
71
72
  url: "attachment://image.png"
72
73
  }
73
74
  }
@@ -75,17 +76,17 @@ client.on("messageCreate", async(msg) => {
75
76
  files: [
76
77
  {
77
78
  name: "image.png",
78
- contents: fs.readFileSync(`${__dirname}/image.png`)
79
+ contents: readFileSync(`${__dirname}/image.png`)
79
80
  }
80
81
  ]
81
82
  });
82
83
  }
83
84
  });
84
85
 
85
- // an error handler
86
+ // An error handler
86
87
  client.on("error", (error) => {
87
88
  console.error("Something went wrong:", error);
88
89
  });
89
90
 
90
- // connect to Discord
91
+ // Connect to Discord
91
92
  client.connect();
@@ -1,41 +1,40 @@
1
1
  const { Client } = require("oceanic.js");
2
- const fs = require("fs");
3
2
 
4
3
  const client = new Client({
5
4
  auth: "Bot [TOKEN]",
6
5
  gateway: {
7
- // list of intents: https://discord.com/developers/docs/topics/gateway#list-of-intents
8
- // they roughly map on to events we use
9
- // most events also list if they require an intent: https://oceanic.owo-whats-this.dev/dev/interfaces/types_events.ClientEvents.html
6
+ // List of intents: https://discord.com/developers/docs/topics/gateway#list-of-intents
7
+ // They change what events our client receives to lower the amount of computer power needed to run it
8
+ // Most events also list if they require an intent: https://oceanic.owo-whats-this.dev/latest/interfaces/types_events.ClientEvents.html
10
9
  intents: ["GUILDS", "GUILD_MESSAGES", "MESSAGE_CONTENT"]
11
- // if you do not have the MESSAGE_CONTENT intent, various fields like `content`, `components`, `embeds` and more will be empty unless your client is specifically addressed.
10
+ // If you do not have the MESSAGE_CONTENT intent, various fields like `content`, `components`, `embeds` and more will be empty unless the message belongs to or mentions your client
12
11
  }
13
12
  });
14
13
 
15
14
  client.on("ready", () => console.log("Ready as", client.user.tag));
16
15
 
17
- // an error handler
16
+ // An error handler
18
17
  client.on("error", (error) => {
19
18
  console.error("Something went wrong:", error);
20
19
  });
21
20
 
22
21
  // New Guild Joined
23
- // https://oceanic.owo-whats-this.dev/dev/interfaces/types_events.ClientEvents.html#guildCreate
22
+ // https://oceanic.owo-whats-this.dev/latest/interfaces/types_events.ClientEvents.html#guildCreate
24
23
  bot.on("guildCreate", (guild) => {
25
24
  console.log("Guild Joined:", guild.name);
26
25
  });
27
26
 
28
27
  // Message Sent
29
- // https://oceanic.owo-whats-this.dev/dev/interfaces/types_events.ClientEvents.html#messageCreate
28
+ // https://oceanic.owo-whats-this.dev/latest/interfaces/types_events.ClientEvents.html#messageCreate
30
29
  bot.on("messageCreate", (msg) => {
31
30
  console.log(`New message: ${msg.content}`);
32
31
  });
33
32
 
34
33
  // This event will never be seen as neither `GUILD_MESSAGE_TYPING` or `DIRECT_MESSAGE_TYPING` were included in the intents
35
- // https://oceanic.owo-whats-this.dev/dev/interfaces/types_events.ClientEvents.html#typingStart
34
+ // https://oceanic.owo-whats-this.dev/latest/interfaces/types_events.ClientEvents.html#typingStart
36
35
  bot.on("typingStart", (channel, user) => { // When a user starts typing
37
- console.log(`${user.username} is typing in ${channel.name}`);
36
+ console.log(`${user.id} is typing in ${channel.id}`); // User or channel are not necessarily complete (Uncached) to retrieve names
38
37
  });
39
38
 
40
- // connect to Discord
39
+ // Connect to Discord
41
40
  client.connect();