payload: {"push_id":3810717978,"size":201,"distinct_size":116,"ref":"refs/heads/constants","head":"7b0e38dde7649ab29811a0a521ca9ade230bb80a","before":"ae6cfc563e6cd2902d0accc79ae81f8f41c3238a","commits":[{"sha":"ab3a43919890f0a45812fd91788ea911a106f937","author":{"name":"Schuyler Cebulskie","email":"12a65081ac8a7d916e22e9f4980ffe6031d7a30d@gmail.com"},"message":"Add worker-based sharding to the ShardingManager (#2908)\n\n* Add worker-based sharding mode to ShardingManager\r\n\r\n* Fix ClientShardUtil mode\r\n\r\n* Fix worker not being cleared on shard death\r\n\r\n* Update docs and typings\r\n\r\n* Clean up Client sharding logic a bit\r\n\r\n* Add info about requirements for worker mode","distinct":false,"url":"https://api.github.com/repos/TomSputz/discord.js/commits/ab3a43919890f0a45812fd91788ea911a106f937"},{"sha":"18f065867ce7f8369e2c660b62b093e092433822","author":{"name":"Schuyler Cebulskie","email":"12a65081ac8a7d916e22e9f4980ffe6031d7a30d@gawdl3y.com"},"message":"Fix #2924 with a bandage (Node typings not updated)","distinct":false,"url":"https://api.github.com/repos/TomSputz/discord.js/commits/18f065867ce7f8369e2c660b62b093e092433822"},{"sha":"f3cad81f5314a3997ac188277e2471ba84cbd771","author":{"name":"Isabella","email":"3659ed0643b286c035278b0cc4242943b2d13560@gmail.com"},"message":"feat: Internal sharding (#2902)\n\n* internal sharding\r\n\r\n* ready event\r\n\r\n* the square deal\r\n\r\n* the new deal\r\n\r\n* the second new deal\r\n\r\n* add actual documentation\r\n\r\n* the new freedom\r\n\r\n* the great society\r\n\r\n* federal intervention\r\n\r\n* some of requested changes\r\n\r\n* i ran out of things to call these\r\n\r\n* destroy this\r\n\r\n* fix: Client#uptime went missing\r\n\r\n* fix(Client): destroy the client on login failure\r\n\r\nThis may happen duo invalid sharding config / invalid token / user requested destroy\r\n\r\n* fix(Client): reject login promise when the client is destroyed before ready\r\n\r\n* fix(WebSocketManager): remove redundancy in destroy method (#2491)\r\n\r\n* typo(ErrorMessages): duo -> duo to\r\n\r\n* typo(ErrorMessages): duo -> due\r\n\r\n* fix: docs and options\r\n\r\n* docs(WebSocketManager): WebSockethard -> WebSocketShard (#2502)\r\n\r\n* fix(ClientUser): lazily load to account for extended user structure (#2501)\r\n\r\n* docs(WebSocketShard): document class to make it visible in documentation (#2504)\r\n\r\n* fix: WebSocketShard#reconnect\r\n\r\n* fix: presenceUpdate & userUpdate\r\n* presenceUpdate wasn't really being handled at all\r\n* userUpdate handled incorrectly because as of v7 in the Discord API, it comes inside presenceUpdate\r\n\r\n* re-add raw event\r\n\r\n* member is now part of message create payload\r\n\r\n* feat: Add functionality to support multiple servers with different shards (#2395)\r\n\r\n* Added functionallity to spawn multiple sharding managers due to adding start and end shards\r\n\r\n* Small fixes and limiting shard amount to max recommended\r\n\r\n* Forgot a check in spawn()\r\n\r\n* Fixed indentation\r\n\r\n* Removed optiosn object documentation for totalShards\r\n\r\n* More fixes and a check that the startShard + amount doesnt go over the recommended shard amount\r\n\r\n* fix getting max recommended\r\n\r\n* Removed async from constructor (my fault)\r\n\r\n* Changed start and end shard to a shardList or \"auto\" + fixed some brainfarts with isNaN\r\n\r\n* Changed the loop and totalShard count calculation\r\n\r\n* shards are actually 0 based\r\n\r\n* Fixed a problem with the gateway and handled some range errors and type errors\r\n\r\n* Changed Number.isNan to isNaN and changed a few Integer checks to use Number.isInteger\r\n\r\n* Added check if shardList contains smth greater than totalShards; made spawn use totalShards again; shardList will be ignored and rebuild if totalShards is 'auto'; fixed docs\r\n\r\n* ShardingManager#spawn now uses a for..of loop; fixed the if statement inside the new for..of loop to still work as intended; made the totalShards be set to a new amount if smth manual is put into ShardingManager#spawn just like before; Fixed some spelling\r\n\r\n* internal sharding\r\n\r\n* ready event\r\n\r\n* the square deal\r\n\r\n* the new deal\r\n\r\n* the second new deal\r\n\r\n* add actual documentation\r\n\r\n* the new freedom\r\n\r\n* the great society\r\n\r\n* federal intervention\r\n\r\n* some of requested changes\r\n\r\n* i ran out of things to call these\r\n\r\n* destroy this\r\n\r\n* fix: Client#uptime went missing\r\n\r\n* fix(Client): destroy the client on login failure\r\n\r\nThis may happen duo invalid sharding config / invalid token / user requested destroy\r\n\r\n* fix(Client): reject login promise when the client is destroyed before ready\r\n\r\n* fix(WebSocketManager): remove redundancy in destroy method (#2491)\r\n\r\n* typo(ErrorMessages): duo -> duo to\r\n\r\n* typo(ErrorMessages): duo -> due\r\n\r\n* fix: docs and options\r\n\r\n* docs(WebSocketManager): WebSockethard -> WebSocketShard (#2502)\r\n\r\n* fix(ClientUser): lazily load to account for extended user structure (#2501)\r\n\r\n* docs(WebSocketShard): document class to make it visible in documentation (#2504)\r\n\r\n* fix: WebSocketShard#reconnect\r\n\r\n* fix: presenceUpdate & userUpdate\r\n* presenceUpdate wasn't really being handled at all\r\n* userUpdate handled incorrectly because as of v7 in the Discord API, it comes inside presenceUpdate\r\n\r\n* Internal Sharding adaptation\r\n\r\nAdapted to internal sharding\r\nFixed a bug where non ready invalidated sessions wouldnt respawn\r\n\r\n* Fixed shardCount not retrieving\r\n\r\n* Fixing style\r\n\r\nremoved unnecessary parenthesis\r\n\r\n* Fixing and rebasing\r\n\r\nlets hope i didnt dun hecklered it\r\n\r\n* Fixing my own retardation\r\n\r\n* Thanks git rebase\r\n\r\n* fix: assigning member in message create payload\r\n\r\n* fix: resumes\r\n\r\n* fix: IS wont give up reconnecting now\r\n\r\n* docs: add missing docs mostly\r\n\r\n* fix: found lost methods\r\n\r\n* fix: WebSocketManager#broadcast check if shard exists\r\n\r\n* fix: ShardClientUtil#id returning undefined\r\n\r\n* feat: handle new session rate limits (#2796)\r\n\r\n* feat: handle new session rate limits\r\n\r\n* i have no idea what i was doing last night\r\n\r\n* fix if statement weirdness\r\n\r\n* fix: re-add presence parsing from ClientOptions (#2893)\r\n\r\n* resolve conflicts\r\n\r\n* typings: missing typings\r\n\r\n* re-add missing linter rule\r\n\r\n* fix: replacing ClientUser wrongly\r\n\r\n* address unecessary performance waste\r\n\r\n* docs: missing disconnect event\r\n\r\n* fix(typings): Fix 2 issues with typings (#2909)\r\n\r\n* (Typings) Update typings to reflect current ClientOptions\r\n\r\n* fix(Typings) fixes a bug with Websockets and DOM Types\r\n\r\n* fix travis\r\n\r\n* feat: allow setting presence per shard\r\n\r\n* add WebSocketManager#shardX events\r\n\r\n* adjust typings, docs and performance issues\r\n\r\n* readjust shard events, now provide shardId parameter instead\r\n\r\n* fix: ready event should check shardCount, not actualShardCount\r\n\r\n* fix: re-add replayed parameter of Client#resume\r\n\r\n* fix(Sharding): fixes several things in Internal Sharding (#2914)\r\n\r\n* fix(Sharding) fixes several things in Internal Sharding\r\n\r\n* add default value for shards property\r\n\r\n* better implement checking for shards array\r\n\r\n* fix travis & some casing\r\n\r\n* split shard count into 2 words\r\n\r\n* update to latest Internal Sharding, fix requested changes\r\n\r\n* make sure totalShardCount is a number\r\n\r\n* fix comment\r\n\r\n* fix small typo\r\n\r\n* dynamically set totalShardCount if either shards or shardCount is provided\r\n\r\n* consistency: rename shardID to shardId\r\n\r\n* remove Client#shardIds\r\n\r\n* fix: typo in GuildIntegrationsUpdate handler\r\n\r\n* fix: incorrect packet data being passed in some events (#2919)\r\n\r\n* fix: edgecase of ShardingManager and totalShardCount (#2918)\r\n\r\n* fix: Client#userUpdate being passed wrong parameter\r\nand fix a potential edgecase of returning null in ClientUser#edit from this event\r\n\r\n* fix consistency and typings issues\r\n\r\n* consistency: shardId instances renamed to shardID\r\n\r\n* typings: fix typings regarding WebSocket\r\n\r\n* style(.eslintrc): remove additional whitespace\r\n\r\n* fix(Client): remove ondisconnect handler on timeout\r\n\r\n* docs(BaseClient): fix typo of Immediate\r\n\r\n* nitpick: typings, private fields and methods\r\n\r\n* typo: improve grammar a bit\r\n\r\n* fix: error assigning client in WebSocketManager\r\n\r\n* typo: actually spell milliseconds properly","distinct":false,"url":"https://api.github.com/repos/TomSputz/discord.js/commits/f3cad81f5314a3997ac188277e2471ba84cbd771"},{"sha":"be0d1cd6637bca837f687bfd00e07e8bacf52838","author":{"name":"Lewdcario","email":"3659ed0643b286c035278b0cc4242943b2d13560@gmail.com"},"message":"fix: Client#shards not being set properly","distinct":false,"url":"https://api.github.com/repos/TomSputz/discord.js/commits/be0d1cd6637bca837f687bfd00e07e8bacf52838"},{"sha":"7796cb5d0589a40fa719676d4b8b129a3598732e","author":{"name":"Lewdcario","email":"3659ed0643b286c035278b0cc4242943b2d13560@gmail.com"},"message":"fix: Client#raw emitting twice","distinct":false,"url":"https://api.github.com/repos/TomSputz/discord.js/commits/7796cb5d0589a40fa719676d4b8b129a3598732e"},{"sha":"905f1c326259b841e47f7bccdad1fe8c79e36e95","author":{"name":"Souji","email":"acaf688556381fb22d52962d102471469c5f1a9b@gmail.com"},"message":"docs: add missing docstring for Client#userUpdate (#2930)\n\n* docs: add missing docstring for Client#userUpdate\r\n\r\n* docs: indentn't\r\n\r\n* docs: indentn't 2","distinct":false,"url":"https://api.github.com/repos/TomSputz/discord.js/commits/905f1c326259b841e47f7bccdad1fe8c79e36e95"},{"sha":"b59c75e402b91d8a7ecec6f0b67180598e8ccdb5","author":{"name":"Lewdcario","email":"3659ed0643b286c035278b0cc4242943b2d13560@gmail.com"},"message":"docs: add missing docstring for Client#guildDelete","distinct":false,"url":"https://api.github.com/repos/TomSputz/discord.js/commits/b59c75e402b91d8a7ecec6f0b67180598e8ccdb5"},{"sha":"08002d0576c7dae89a625a8f11944ab81c4ff4c9","author":{"name":"Lewdcario","email":"3659ed0643b286c035278b0cc4242943b2d13560@gmail.com"},"message":"fix: Client#userUpdate receiving wrong packet","distinct":false,"url":"https://api.github.com/repos/TomSputz/discord.js/commits/08002d0576c7dae89a625a8f11944ab81c4ff4c9"},{"sha":"6b886b0abad86a314cbdf76ab85872b46ed2ef63","author":{"name":"Lewdcario","email":"3659ed0643b286c035278b0cc4242943b2d13560@gmail.com"},"message":"typings: add Guild#shard and Guild#shardID","distinct":false,"url":"https://api.github.com/repos/TomSputz/discord.js/commits/6b886b0abad86a314cbdf76ab85872b46ed2ef63"},{"sha":"3418b5a1a2e2e424369da42f0a04dc3523f3d933","author":{"name":"Lewdcario","email":"3659ed0643b286c035278b0cc4242943b2d13560@gmail.com"},"message":"docs: restore Client#error docs that went missing","distinct":false,"url":"https://api.github.com/repos/TomSputz/discord.js/commits/3418b5a1a2e2e424369da42f0a04dc3523f3d933"},{"sha":"2d68e837e5003baf5ac86e79b7f7d0e0bcd4c26a","author":{"name":"Amish Shah","email":"d734f3ab47d75604a17b87491f40fec6231c9c75@gmail.com"},"message":"voice: fix receiver null on immediate voiceStateUpdate","distinct":false,"url":"https://api.github.com/repos/TomSputz/discord.js/commits/2d68e837e5003baf5ac86e79b7f7d0e0bcd4c26a"},{"sha":"54aff3191e3576dce519634fdbf31bbaabfd907c","author":{"name":"Kyra","email":"fbc2fbaaf119a868f459bd1dcde87d4f618b6bd7@gmail.com"},"message":"feat(Constants): add error code 50020 (#2953)\n\n* feat(Constants): Add error code 50020\r\n\r\nWhich is throw when using the vanity-url endpoint: https://github.com/discordapp/discord-api-docs/pull/748/\r\n\r\n* docs: Document the new code","distinct":false,"url":"https://api.github.com/repos/TomSputz/discord.js/commits/54aff3191e3576dce519634fdbf31bbaabfd907c"},{"sha":"e793338d7403c98589e92943fee28068c18d481c","author":{"name":"Yukine","email":"ec8243cad4fe100ed8e6acc3247f4f577b513503@gmx.de"},"message":"fix: ShardClientUtil#count and ShardClientUtil#id typedef (#2956)","distinct":false,"url":"https://api.github.com/repos/TomSputz/discord.js/commits/e793338d7403c98589e92943fee28068c18d481c"},{"sha":"81ff5075e4e353c6f5e036f1ead7b85a5aec430e","author":{"name":"Charalampos Fanoulis","email":"1c066f7d23ca0163512848e584740ee55398bc74@users.noreply.github.com"},"message":"chore: remove user account checkbox from bug report template","distinct":false,"url":"https://api.github.com/repos/TomSputz/discord.js/commits/81ff5075e4e353c6f5e036f1ead7b85a5aec430e"},{"sha":"d92ee2ff999954899c891c093f5f107dd686b64f","author":{"name":"SpaceEEC","email":"8fab3a84635be30879c9e37507df532964d633c1@yahoo.com"},"message":"feat(GuildChannel): allow to set all options when cloning (#2937)","distinct":false,"url":"https://api.github.com/repos/TomSputz/discord.js/commits/d92ee2ff999954899c891c093f5f107dd686b64f"},{"sha":"377ecd73ea1c9c1f5dba47768d97a105075d6bac","author":{"name":"Crawl","email":"199f4712477b3d83a9e73baa95addb87192ad5b7@gmail.com"},"message":"docs(GuildChannel): fix doc string for clone method","distinct":false,"url":"https://api.github.com/repos/TomSputz/discord.js/commits/377ecd73ea1c9c1f5dba47768d97a105075d6bac"},{"sha":"9085138f0d0845cb52442c62e4dbe67bd1d284aa","author":{"name":"Frangu Vlad","email":"94e42cc6a2dda580223061ad0917d930d58c02a8@gmail.com"},"message":"fix: Sharding Issues & Cleanup (#2952)\n\n* fix: Sharding causing constant heartbeat / identify spam\r\n\r\n* misc: Remove wait param in connect\r\n\r\n* misc: Wait 2.5 seconds before sending identify again if session is resumable\r\n\r\n* misc: Remove useless destroy call\r\n\r\n* nit: Capitalization\r\n\r\n* fix: Identify on HELLO not connectionOpen\r\n\r\n* misc: Add different intervals for identify after invalid session\r\n- 2500 if we couldn't resume in time\r\n- 5000 if we didn't have a session ID (per the docs on identify, that a client can only connect every 5 seconds)\r\n- Otherwise, just identify again\r\n\r\n* misc: Only clear heartbeat if shard is fully dead\r\n\r\nReconnect clears it otherwise\r\n\r\n* fix: Accessing .length on a Collection","distinct":false,"url":"https://api.github.com/repos/TomSputz/discord.js/commits/9085138f0d0845cb52442c62e4dbe67bd1d284aa"},{"sha":"a8b47a7a6cfa7a823dbb47f250fa5447f4c5320f","author":{"name":"SpaceEEC","email":"5300edaff0e984a7cd510daf380ae7e55213ff8c@yahoo.de"},"message":"feat(GuildChannelStore): add support for create to accept a position","distinct":false,"url":"https://api.github.com/repos/TomSputz/discord.js/commits/a8b47a7a6cfa7a823dbb47f250fa5447f4c5320f"},{"sha":"1d1b3f25e1ede5207212f8aafe985b423bf9c464","author":{"name":"Skillz4Killz","email":"ad8ee8b8589303beb35f9374d18d41262e9d82f0@users.noreply.github.com"},"message":"docs: add documentation for Client#channelCreate (#2967)","distinct":false,"url":"https://api.github.com/repos/TomSputz/discord.js/commits/1d1b3f25e1ede5207212f8aafe985b423bf9c464"},{"sha":"fd21bbb7bfbfe0b51111653e140248145525d95f","author":{"name":"SpaceEEC","email":"5300edaff0e984a7cd510daf380ae7e55213ff8c@yahoo.de"},"message":"docs: move event docstrings to the emitting line of code","distinct":false,"url":"https://api.github.com/repos/TomSputz/discord.js/commits/fd21bbb7bfbfe0b51111653e140248145525d95f"}]}
other: {"actor":{"display_login":"iCrawl"}}