Skip to content

Releases: abalabahaha/eris

0.18.0

22 Sep 12:20
Compare
Choose a tag to compare

Breaking Changes

  • Remove all user account features (0b3ef10)
  • Removed system message content handling (clashes with stage system messages) (1f61e8e, 55a8a69)
  • Restructure Channel classes (737e9f7, 4dbb828)
    • TextVoiceChannel removed
    • Channel.client hidden (renamed Channel._client)
    • DMChannel.recipient removed, replaced with DMChannel.recipients collection (should ever only contain one entry)
    • Channel class tree reworked
  • GuildAuditLogEntry channel, guild, message, user, and Invite.guild can now return uncached with object containing id only (7bfc88b)
  • MessageActivityFlags constant renamed to ActivityFlags (e4edf0b)
  • StoreChannel removed (3429b8f)
  • Application Command Permissions v2 (3139ca9)
    • bulkEditCommandPermissions() removed, endpoint no longer exists
  • getActiveThreads() removed, endpoint no longer exists (v10) (a331615)
  • User.globalName exposed, username migration, default avatar recalculated (d0269ad)

Deprecations

  • Restructure Channel classes (737e9f7)
    • PrivateChannel is now DMChannel
    • Client.privateChannelMap is now Client.dmChannelMap
    • Client.privateChannels is now Client.dmChannels
  • Various permission names replaced, e.g. voicePrioritySpeaker is now prioritySpeaker (e7a9022)
  • banGuildMember() deleteMessageDays is replaced by deleteMessageSeconds (bd88d30)

Additions

  • Expose Polls (31c4608)
  • Expose Voice channel status (a1a449f)
  • Expose Super reactions (793e858)
  • Expose getThreadMembers() pagination options (0d81657)
  • Expose Application Role Connections (37f5e52)
  • Expose Message.roleSubscriptionData (37f5e52)
  • Support resuming voice connection (552dbb0)
  • Supprt message forwarding (c3e3a31)
  • Support bulk banning (577afc8)
  • Restructure Channel classes (737e9f7)
    • Support Text in Stage
    • New GuildTextableChannel class, acts as a "middleman" class with common props/methods for textable guild channels
    • Support adding users to Group Channels (requires OAuth gdm.join scope)
    • Expose getThreadMember()
  • Add Discord locales (f09ba3e)
  • Expose Forum and Media Channels (6084d6a, 0f71727)
  • Support returning member/presence counts in getRESTGuild() (8a2b212)
  • Add AttachmentFlags constant (8a2b212)
  • Expose Role flags (e54cc76)
  • Expose guildAuditLogEntryCreate event (ca2c47c)
  • Expose User avatar decoration (50988d8)
  • Expose Guild Onboarding (9f24d0d)
  • Expose editGuildMFALevel() (3b0dd35)
  • Expose Auto Moderation (dcfee4c, e0c352d)
  • Support getInvite() new parameters (e4edf0b)
  • Update constants (e7a9022, e4edf0b, cc32510)
  • Expose modals (6be96b3)
  • Expose getGuildWidgetImageURL() (52da08c)
  • Support banGuildMember() deleting messages in seconds (bd88d30)
  • Expose messageContent intent (v10) (a331615)
  • New deprecation emit handling (ae5f0f0)

Fixes

  • Fix member/user update on voice state update (bcf7dee, 0c22f54)
  • Fix removal of Voice State when leaving stage channel (f97e0f7)
  • Fix library file direct imports (a3d4d7a, 692521c)
  • Properly parse request errors in DiscordRESTError (805cb6e)
  • Fix User#defaultAvatar calculation (e0ff926)
  • Fix ThreadMember null check (7f07a7c)
  • Fix DMChannel message handling error (171bf7e)
  • Fix OggOpusTransformer not emitting end when file stream finishes (ea0f133)
  • Fix BigInt 0 assignment if deny not in permission data (7f9ef8c)
  • Restructure Channel classes (737e9f7, d026803, f48547b)
    • Fix ThreadMember.guildMember population
    • Fix deleteChannel() return type (will now return deleted channel)
  • Fix nsfw channel handling (cfdcf49)
  • Make createGuild() options parameter optional (43bf5e9)
  • Return undefined on 204 responses in runtime (c3e1b73)
  • Fix Chat Input command name regex validation (bb4b058)
  • Fix editGuildWidget() calling wrong endpoint (6ca661c)
  • Update audit log reason handling (v10) (a331615)
  • Improve handling of sending attachments (65ab87b, 7524a40)

Docs/Typings

  • Add ModalSubmitInteraction to Anyinteraction union (4dbb828)
  • Remove unnecessary typings related to channel restructure (4dbb828)
  • Clarify Interaction's createdAt (cef72ac)
  • Fix flags property editing using AdvancedMessageContentEdit (TS) (b7f9343)
  • Better localization property typings (TS) (f09ba3e)
  • Add missing Attachment properties (TS) (8a2b212)
  • Add missing Role tags properties (e54cc76)
  • Fix ApplicationCommandCreateOptions documentation description and type property (TS) (f259808)
  • Add custom status to editStatus() (9b18e0e)
  • FetchMembersOptions renamed to RequestGuildMembersOptions (e4edf0b)
  • Add linting for docs (e4edf0b, 7cf456b)
  • Sort documentation into alphabetical order (both) (7751f96)
  • Fix Member.communicationDisabledUntil type (TS) (81ca52c)
  • createChannel() typings streamlined (TS) (0790534)
  • Fix Interaction#createMessage() flag type (129501e)
  • Fix Message#edit() parameter type (TS) (6a165cd)
  • Add RawRESTRequest.latency type (TS) (6a165cd)
  • Fix Member.status type (TS) (13c93e0)
  • Add banner to EditSelfOptions (TS) (880483d)

Updated Channel Class Tree

  • Channel
    • DMChannel
    • GroupChannel
    • GuildChannel
      • CategoryChannel
      • MediaChannel
        • ForumChannel
      • GuildTextableChannel
        • TextChannel
          • NewsChannel
        • VoiceChannel
          • StageChannel
        • ThreadChannel
          • PrivateThreadChannel
          • PublicThreadChannel
          • NewsThreadChannel

Only properties/methods relevant to each channel class will be present, all others have been removed without deprecation.

Contributors

0.17.2

09 Mar 05:00
Compare
Choose a tag to compare

Additions

  • Support Discord's gateway resume URLs (d27ef56)
    • In theory, bots may disconnect less after this change
  • Support GuildScheduledEvents (3e62ca7)
  • Support Member#dynamicAvatarURL() (eb40373)
  • Support addGuildMember() (OAuth2-only) (61b3b4f)

Fixes

  • Fixed audio send/receive in VoiceConnections (135dc35)
  • Added missing props in guildUpdate event (9320ab2)
  • Fixed the permissions check for the CommandClient help command (e43418d)

Contributors

0.16.2

09 Mar 04:52
Compare
Choose a tag to compare

Fixes

  • Fixed audio send/receive in VoiceConnections (bf03a54)

0.17.1

30 Jun 07:07
Compare
Choose a tag to compare

Additions

  • Added config option for shard concurrency (05a932a)
  • Support pagination in getGuildBans() (fe16a8f)
  • Support batch-editing channel positions editChannelPositions() (99b1376)
  • Support setting permissionOverwrites in editChannel() (ba4cb94)
  • Support custom intent numbers (f886ebc)
  • Support interaction appPermissions (c7689d0)

Fixes

  • Fixed Guild#editCommandPermissions() acting like getCommandPermissions() (b8dcd62)
  • Fixed missing presences when getAllUsers and the presences intent are enabled (f7a8e50)
  • Fixed handling of uncached users/threads in getGuildAuditLog() (e888253)
  • Fixed joinVoiceChannel() erroring when the bot member is uncached (162d4ef)
  • Fixed videoQualityMode option in editChannel() (ba4cb94)
  • Fixed voice receive stopping when reconnecting (a9ad12f)
  • Improved handling of shard concurrency (05a932a, 34cd985)
  • Improved error thrown when calling connect() without a token present (bd58677)
  • Fixed docs (d0099b1), typings (a2e3a00, a2a60a5)

Contributors

0.14.2

15 Jun 18:32
Compare
Choose a tag to compare

Fixes:

  • Fixed error when handling null GuildChannel#name (2351da1)

Contributors:

0.17.0

29 Jun 15:53
Compare
Choose a tag to compare

Breaking Changes

  • TextVoiceChannel now exists. Previous assumptions about GuildChannels being text XOR voice are no longer valid.
  • The type of Member#premiumSince has been changed to match the documented behaviour. It was previously being (incorrectly) passed through as the Discord-provided ISO timestamp string.

Additions

  • Support timeouts (1a6e043)
  • Support text-in-voice channels (d6df49a)
  • Support Moderate Members permission (1a6e043)
  • Support concurrent sharding for large bots (36e7a76)
  • Support editing individual channel positions (bb8a45e)
  • Support new 5/20s editStatus() ratelimit (072db2e)
  • Support passing BigInt to Permission#has() (e963166)
  • Expose headers in DiscordHTTPError and DiscordRESTError (2712a85)

Fixes

  • Fixed Member#user property de-sync issues (6619b17)
  • Improve handling of shared ratelimits (2712a85)
  • Fixed incorrect Guild#shard calculation (c1f1f86)
  • Fixed some disconnect-related gateway race conditions (a9b8ad4)
    • Including the occasional zlib data error
  • Fixed bitwise overflow error in VoiceConnection (52db153)
  • Updated Constants.Permissions.all with new permissions (b485352)
  • Fixed error when handling USER_UPDATE for uncached users (c223725)
  • Fixed missing audit log reason when using deleteMessages() (017c18a)
  • Fixed Member#premiumSince parsing (65b1850)
  • Fixed error in unknown interaction type handling (c6b380b)
  • Fixed missing file in interaction createMessage() (9a55be5)
  • Fixed missing defaultPermission in command-related requests (90fad3a)
  • Fixed undefined ThreadChannel#ownerID (4ca306d)
  • Fixed errors in THREAD_MEMBERS_UPDATE handling (6ba5b05, 1a79ef6)
  • Fixed error when building Message#jump for private channel messages (2f7526a)
  • Fixed docs (f4db90e, b7a1189), typings (4c631f5, 98c5c8b, 44dba49, cb8971a, 42e713b, f163a56)

Contributors

0.16.1

17 Nov 13:13
Compare
Choose a tag to compare

Additions

  • Exposed methods for directly sending voice packets (dcf8ff1, 7c39e1a)

Fixes

  • Fixed reconnect handling (4ac1103)
  • Fixed voice receive errors (56e37c0, fa36f0b)
  • Fixed incorrect thread method references in Guild#getActiveThreads() and Message#createThreadWithMessage() (87473ba)
  • Improved ratelimit handling for deleting messages <=10s old (0f3ebc8)
  • Improved ratelimit handling for getRESTGuildChannels() (7743366)
  • Fixed docs (9dd304b), typings (a4023da, 0bc76c9, 67b28a2)

Contributors

0.16.0

15 Nov 03:19
Compare
Choose a tag to compare

Breaking Changes

  • Discord API v8 and v9 breaking changes:
    • Discord now requires users to specify Gateway Intents to receive certain events. To ease the transition, Eris defaults to requesting all non-privileged intents, configurable through the intents Client option.
    • getGuildEmbed() is removed in favor of getGuildWidget() (e194a71)
    • PermissionOverwrite#type is now a number instead of a string (e194a71)
    • The guildSubscriptions Client option is removed in favor of intents (e194a71)
    • Member#joinedAt is now nullable (3fe4d21)
    • Guild#region is removed in favor of VoiceChannel#rtcRegion (3fe4d21)
  • The voiceStateUpdate event can now emit with a partial member and null oldState (ee960c0)
  • The ws Client option has breaking changes (see ws@8.0.0 release notes)

Deprecations

  • Discord v8 and v9 deprecations:
    • Guild#nsfw is superseded by Guild#nsfwLevel (0abf61a)
    • On new messages, Message#stickers is superseded by Message#stickerItems (b483ff3)
  • getGuildAuditLogs() is replaced by getGuildAuditLog() (ec777a1)
  • Paginated functions now take options objects instead of flat lists of parameters (ec777a1)
    • e.g. getMessages(channelID, { limit: 5, around: msgID }) instead of getMessages(channelID, 5, undefined, undefined, msgID)
    • Includes getGuildAuditLog(), getMessageReaction(), getMessages(), purgeChannel(), getRESTGuilds(), and getRESTMembers()

Additions

Fixes

Contributors

0.15.1

03 May 22:28
Compare
Choose a tag to compare

Deprecations

  • Discord has seemingly never supported the before parameter of getMessageReaction(), so that has been removed but is not considered a breaking change (3e86cd7)
  • createMessage() now uses content.messageReference for referencing messages. The content.messageReferenceID parameter is deprecated (c3d491d)
  • Some requests with paginated responses now use an options object for parameters. The old call style is deprecated (ec777a1)
    • e.g. getMessages(channelID, limit, before, after, ...) => getMessages(channelID, { limit, before, after, ... })
    • Includes: getMessageReaction(), getMessages(), getGuildAuditLogs(), getRESTGuildMembers(), getRESTGuilds(), and purgeChannel()
  • getGuildAuditLogs() was renamed to getGuildAuditLog(). The old name is deprecated (ec777a1)

Additions

  • Added support for editGuildVanity() (c152aac)
  • Exposed Message#interaction (5837a31)
  • Exposed Guild#nsfw (9223266)
  • Added support for stage channel REST methods (b6d51ee)
  • Added support for getWebhookMessage() (2a840a0)
  • Added support for Guild welcome screen endpoints (fba1f7c)
  • Exposed Role#tags (824ccf7)

Fixes

Contributors

0.15.0

05 Apr 05:05
Compare
Choose a tag to compare

Breaking changes

  • @discordjs/opus replaces node-opus is now the supported native Opus library (voice connections) (9830082)
    • @discordjs/opus is a maintained almost-fork of the now-deprecated node-opus
  • GuildChannel#nsfw no longer uses old name-based logic (7d029d0)
    • Discord client used to (but no longer does) treat channels with name == "nsfw" or name starting with "nsfw-" as NSFW
    • GuildChannel#nsfw now strictly mirrors the API property
  • The messageCreate, messageUpdate, and messageDelete events now emit with partial messages/channels if possible (see docs) (c81b689, 8acd468)
  • Client#token was removed (99f4163)
    • The current location is Client#_token, which is non-enumerable and not stable
  • The guildEmojisUpdate event now emits with a partial guild if possible (see docs) (16c6a76)
  • Node.js >= 10.4.0 is now the minimum supported version (3649cd7)
    • Primarily for BigInt support
  • Permission#allow, Permission#deny, permission constants are now BigInts (3649cd7, f092b89, fd2ee5f, d7c69f2, 39dd05f)
    • Discord permissions have exceeded past 32-bits, so non-BigInt bitwise logic no longer works properly. Using BigInt helps with future-proofing
    • Permission sent in REST methods can be either BigInt or number type
  • uws is no longer supported (b459a94)
    • The library is abandoned and buggy

Deprecations

  • Existing REST-related Client options are deprecated (2095d3e, 7a5ec43)
    • Equivalent options are now under options.rest in the Client constructor
  • Support for bot tokens without Bot prefixes is deprecated (99f4163)
    • Bot tokens should be prefixed with Bot (see docs)
  • The requirement for URI-encoding audit log/ban reasons is deprecated (6771b3f)
    • Normal, unformatted reasons are now formatted properly in both the audit log and ban list
    • The Client option options.rest.decodeReasons was introduced for this transition. With the current default of true, URI-encoded reasons will be decoded, so URI-encoded reasons will function normally. In the future, options.rest.decodeReasons will be removed, and reasons will no longer be decoded.
  • Some permission constants are deprecated (0d68bf4)
    • viewAuditLog replaces viewAuditLogs, voiceStream replaces stream, viewChannel replaces readMessages, and useExternalEmojis replaces externalEmojis
    • The old names are deprecated, but still work for now

Additions

  • Exposed latency in rawREST event (e789deb)
  • Exposed member in typingStart event (98c261d)
  • Added support for system channel flags (984ffbb)
  • Added support for inline replies (5936086, c77b3af)
  • Added support for guild templates (8e32b98)
  • Added support for Guild#discoverySplash and URL getters (b910d1d)
  • Added support for util.inspect() to more classes (1281781)
  • Added support for userID filter and new properties in audit logs (8ab1ab7, 27b9704, 02e989c)
  • Added support for guild discovery (ed8f2ef)
  • Added support for editing/deleting webhook messages (4195ab8)
  • Exposed Client#application (after ready event) (d41dddf)
  • Exposed Member#pending (af877e7)
  • Added more async support in CommandClient message helpers/generators (fb440b2)
  • Exposed more oldMessage properties in messageUpdate event (936af87)
  • Exposed Message#stickers (9cd3a5d)
  • Added support for message types 20 & 22 (64cf536)
  • Exposed Guild#welcomeScreen (9a89483, c8ab1bb)
  • Exposed VoiceState#selfStream & VoiceState#selfVideo (011548e)
  • Added support for more properties in editChannelPosition() (fc038fa)
  • Added support for more properties in editGuild() (9d7e05e)
  • Exposed new GuildIntegration properties (c149e73)
  • Added new REST options in the Client constructor (2095d3e, 7a5ec43)
  • Added support for stage channels (5ae9f52, 3750145, 7b08976, 8087450)
  • Exposed VoiceChannel#rtcRegion and VoiceChannel#videoQualityMode (f994117, 9da9d05)
  • Added support for files in editWebhookMessage() (32b54c8)
  • Added support for useSlashCommands & voiceRequestToSpeak permissions (906690c, ab38c3f)
  • Added support for content objects in Command messages (4bce200)

Fixes

Contributors