Releases: abalabahaha/eris
Releases · abalabahaha/eris
0.18.0
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
removedChannel.client
hidden (renamedChannel._client
)DMChannel.recipient
removed, replaced withDMChannel.recipients
collection (should ever only contain one entry)- Channel class tree reworked
GuildAuditLogEntry
channel
,guild
,message
,user
, andInvite.guild
can now return uncached with object containingid
only (7bfc88b)MessageActivityFlags
constant renamed toActivityFlags
(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 nowDMChannel
Client.privateChannelMap
is nowClient.dmChannelMap
Client.privateChannels
is nowClient.dmChannels
- Various permission names replaced, e.g.
voicePrioritySpeaker
is nowprioritySpeaker
(e7a9022) banGuildMember()
deleteMessageDays
is replaced bydeleteMessageSeconds
(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 emittingend
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
- 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 usingAdvancedMessageContentEdit
(TS) (b7f9343) - Better localization property typings (TS) (f09ba3e)
- Add missing
Attachment
properties (TS) (8a2b212) - Add missing Role tags properties (e54cc76)
- Fix
ApplicationCommandCreateOptions
documentation description andtype
property (TS) (f259808) - Add
custom
status toeditStatus()
(9b18e0e) FetchMembersOptions
renamed toRequestGuildMembersOptions
(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
- TextChannel
Only properties/methods relevant to each channel class will be present, all others have been removed without deprecation.
Contributors
0.17.2
Additions
- Support Discord's gateway resume URLs (d27ef56)
- In theory, bots may disconnect less after this change
- Support
GuildScheduledEvent
s (3e62ca7) - Support
Member#dynamicAvatarURL()
(eb40373) - Support
addGuildMember()
(OAuth2-only) (61b3b4f)
Fixes
- Fixed audio send/receive in
VoiceConnection
s (135dc35) - Added missing props in
guildUpdate
event (9320ab2) - Fixed the permissions check for the
CommandClient
help command (e43418d)
Contributors
0.16.2
0.17.1
Additions
- Added config option for shard concurrency (05a932a)
- Support pagination in
getGuildBans()
(fe16a8f) - Support batch-editing channel positions
editChannelPositions()
(99b1376) - Support setting
permissionOverwrites
ineditChannel()
(ba4cb94) - Support custom intent numbers (f886ebc)
- Support interaction
appPermissions
(c7689d0)
Fixes
- Fixed
Guild#editCommandPermissions()
acting likegetCommandPermissions()
(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 ineditChannel()
(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
0.17.0
Breaking Changes
TextVoiceChannel
now exists. Previous assumptions aboutGuildChannel
s 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
toPermission#has()
(e963166) - Expose headers in
DiscordHTTPError
andDiscordRESTError
(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
- @Awoocado
- @beanjo55
- @bsian03
- @curtisf
- @d00mster0
- @davidffa
- @dd-pardal
- @DonovanDMC
- @Dramex
- @eritbh
- @frobinsonj
- @GweeKwee
- @HcgRandon
- @james58899
- @Linker-123
- @ray-1337
- @reinhello
- @thetimtoy
- @ZixeSea
0.16.1
Additions
Fixes
- Fixed reconnect handling (4ac1103)
- Fixed voice receive errors (56e37c0, fa36f0b)
- Fixed incorrect thread method references in
Guild#getActiveThreads()
andMessage#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
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 ofgetGuildWidget()
(e194a71)PermissionOverwrite#type
is now anumber
instead of astring
(e194a71)- The
guildSubscriptions
Client
option is removed in favor of intents (e194a71) Member#joinedAt
is now nullable (3fe4d21)Guild#region
is removed in favor ofVoiceChannel#rtcRegion
(3fe4d21)
- 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
- The
voiceStateUpdate
event can now emit with a partialmember
and nulloldState
(ee960c0) - The
ws
Client
option has breaking changes (see[email protected]
release notes)
Deprecations
- Discord v8 and v9 deprecations:
getGuildAuditLogs()
is replaced bygetGuildAuditLog()
(ec777a1)- Paginated functions now take
options
objects instead of flat lists of parameters (ec777a1)- e.g.
getMessages(channelID, { limit: 5, around: msgID })
instead ofgetMessages(channelID, 5, undefined, undefined, msgID)
- Includes
getGuildAuditLog()
,getMessageReaction()
,getMessages()
,purgeChannel()
,getRESTGuilds()
, andgetRESTMembers()
- e.g.
Additions
- Support
Message#stickerItems
(b483ff3) - Support new and renamed:
- Support sending multiple embeds (8e9a2b7, 0726aae)
- Support intents (e194a71, 1e95e62, a7bff54, a365531)
- Support
Member#activities
(e194a71) - Support
Message#components
(120f917, dc72ad9) - Support per-
Guild
avatars (a58cd69) - Support mute/deafen in
joinVoiceChannel()
(e357991) - Support stickers (daedb2b, 7145134)
- Support
User#banner
(558bbe5) - Support
Role#icon
(59a35bb) - Added/Updated various Constants (da84b35, 2d317cf)
- Support interactions (a9c4934, e8b819a, 3fe4d21, dc72ad9, 1a8ee35)
- Support
Guild#premiumProgressBarEnabled
(e8dfcbb) - Added
"identifying"
Shard#status
(5db41aa) - Support Discord Gateway/REST API v9 (3fe4d21)
- Support target options in
createInvite()
(117de32)
Fixes
- Fixed updating
VoiceConnection
state when kicked (ea9d670) - Fixed BigInt serialization in request body (ed6b24c)
- Fixed
Message#flag
cache updates (e54366b) - Fixed use of deprecated params in
getMessages()
andpurgeChannel()
(f90e56d, 15546c4) - Fixed
createChannelInvite()
for uncached channels (8582d3c) - Fixed incorrect GuildTemplate endpoint (11d21c9)
- Fixed handling of partial member objects in
permissionsOf()
(7e55222) - Fixed incorrect Invite endpoint (e194a71)
- Fixed uncached member handling in
voiceStateUpdate
event (ee960c0) - Fixed
createRole()
/editRole()
without permissions (4bb65f0) - Improved ratelimit header handling (c31685e)
- Fixed uncached author handling in
Message
constructor (6331536) - Fixed heartbeat-related disconnects during identify (5db41aa)
- Fixed use of removed method in
SharedStream#play()
(e195b59) - Fixed
Member#voiceState.selfStream
when user stops streaming (dd768ec) - Fixed docs (10cc6c4, d4a49a6, 756943d, 6e76e52), typings (49336e8, bccde64, 34f3d9c, 3d80d20, 840227e, 21a3ce5, 53da0d5, 93ce365, aa8bedf, e8dfcbb)
Contributors
- @5antos
- @abalabahaha
- @ak-s
- @Alirezarfe
- @Ashesh3
- @Awoocado
- @bsian03
- @Catboi8
- @DonovanDMC
- @Dragory
- @Dramex
- @eritbh
- @Exhabition
- @gegdev
- @HeadTriXz
- @iiFDCT
- @J-Human
- @Khaaz
- @luvaeria
- @NotMarx
- @oceaann
- @retraigo
- @untuned
0.15.1
Deprecations
- Discord has seemingly never supported the
before
parameter ofgetMessageReaction()
, so that has been removed but is not considered a breaking change (3e86cd7) createMessage()
now usescontent.messageReference
for referencing messages. Thecontent.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()
, andpurgeChannel()
- e.g.
getGuildAuditLogs()
was renamed togetGuildAuditLog()
. 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
- Fixed handling of
getGuildIntegrations()
options (0a3490f) - Improved ratelimit handling (d58b788)
- Particularly for deleting >=2-week-old messages and reactions
- Fixed handling of voice server switches and disconnects (e2814a2, 95cffe4)
- Fixed some voice (re)connect stability issues (94e7e18)
- Fixed an issue where voice receive occasionally stops working (94e7e18)
- Improved memory handling of voice sending (939b70f)
- Fixed an issue where recently-disconnected voice connections could prevent the process from exiting (ff4bcc0)
- Various typings/docs fixes (2dff361, ed23407, fcd608d, b3c1b38, c222bc5, 608524d, 90b0bb4, 8d3120e, 5f7769d, e06f38a, 340ffe9, 028efe3, 2f6c71e)
Contributors
0.15.0
Breaking changes
@discordjs/opus
replacesnode-opus
is now the supported native Opus library (voice connections) (9830082)@discordjs/opus
is a maintained almost-fork of the now-deprecatednode-opus
GuildChannel#nsfw
no longer uses old name-based logic (7d029d0)- Discord client used to (but no longer does) treat channels with
name
=="nsfw"
orname
starting with"nsfw-"
as NSFW GuildChannel#nsfw
now strictly mirrors the API property
- Discord client used to (but no longer does) treat channels with
- The
messageCreate
,messageUpdate
, andmessageDelete
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 current location is
- 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
- Primarily for
Permission#allow
,Permission#deny
, permission constants are nowBigInt
s (3649cd7, f092b89, fd2ee5f, d7c69f2, 39dd05f)- Discord permissions have exceeded past 32-bits, so non-
BigInt
bitwise logic no longer works properly. UsingBigInt
helps with future-proofing - Permission sent in REST methods can be either
BigInt
or number type
- Discord permissions have exceeded past 32-bits, so non-
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 theClient
constructor
- Equivalent options are now under
- Support for bot tokens without
Bot
prefixes is deprecated (99f4163)- Bot tokens should be prefixed with
Bot
(see docs)
- Bot tokens should be prefixed with
- 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
optionoptions.rest.decodeReasons
was introduced for this transition. With the current default oftrue
, 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
replacesviewAuditLogs
,voiceStream
replacesstream
,viewChannel
replacesreadMessages
, anduseExternalEmojis
replacesexternalEmojis
- 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
(afterready
event) (d41dddf) - Exposed
Member#pending
(af877e7) - Added more async support in CommandClient message helpers/generators (fb440b2)
- Exposed more
oldMessage
properties inmessageUpdate
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
andVoiceChannel#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
- Fixed editing of messages authored by others (4046281)
- Fixed mishandling of ban reasons causing empty reasons to appear in ban list (ad00c9b)
- Fixed cleaning of animated emotes in
Message#cleanContent
(03e9697) - Fixed administrator permission check in
Guild#permissionsOf()
(fb06856) - Fixed intents checks in
Shard#requestGuildMembers()
(6c6abb6) - Filtered undefined message content from REST
debug
events (19eb558) - Fixed error in
Guild#editWidget()
(c936232) - Improved memory handling in voice & file uploads (db7da38)
- Fixed misplaced/missing properties in various
toJSON()
methods (5670b27, 2974f72, cb7178d, 86ea307, ff8d901) - Changed the
messageReactionAdd
event to update the member cache (1381bba) - Fixed
CommandClient
reaction handling (c82c6a0) - Changed
RequestHandler
to gracefully handle errors during (6083e09) - Fixed mishandling of ban reasons causing URI-encoded reasons to appear in ban list (6771b3f)
- Fixed handling of
Message#channelMentions
when theMessage
has nocontent
(9ec347a) - Fixed
undefined
inPermission#toString()
(de317ca) - Fixed incorrect permission pseudo-groups (9d3958f)
- Delayed Opus import until Opus is needed in
VoiceConnection
(44f20b5) - Fixed setting Opus bitrate when using
@discordjs/opus
(88ae937) - Fixed
sodium-native
voice decoding (4bae89a) - Various typings/docs fixes (18229fe, b5a33f2, aca342e, 592313d, e9e01cb, 3c40871, 958103d, 3f602d1, 93c36cf, 2fd804e, 2171ffb, 35275f0, 75c2c49, 9e17bc3, 5e9c989, 19c1eb4, 0dbc496, ea4d079, 2f0c5d5, 148a578, 81e09cc, d9e12a7, 2a787f8, f2af4ac, 739bca0, 54fc78d, 886cb30, a2d925a)
Contributors
- @abalabahaha
- @apacheli
- @auguwu
- @bit0r1n
- @bsian03
- @davidffa
- @DedaDev
- @dev-kittens
- @DonovanDMC
- @Dragory
- @evanwashere
- @flamableassassin
- @Gleb-ko
- @iiFDCT
- @jtsshieh
- @Khaaz
- @macdja38
- @miyacoz
- @oathompsonjones
- @Pr0metheus42
- @retrixe
- @Snazzah
- @Thewsomeguy
- @tornadomc
- @wh0