* feat(structures): presence structures
* feat(structures): add GatewayPresenceActivityTimestamps substructure
* feat(structures): add GatewayPresenceActivitySecrets
* feat(structures): add GatewayPresenceActivityParty
* feat(structures): add GatewayPresenceActivityEmoji
* feat(structures): add GatewayPresenceActivityButton
* feat(structures): add GatewayPresenceActivityAssets
* feat(structures): add ActivityFlagBitFields
* feat(structures): add GatewayPresenceActivity structure
* docs(structures): update class remark on GatewayPresenceActivityButton
* feat(structures): add GatewayPresenceClientStatus
* feat(structures): add GatewayPresenceUpdate
* docs(structures): update `GatewayPresenceActivity#flags` for clarity
* fix(structures): return correct value for getter on ActivitySecrets
* test(structures): add tests & use correct type on ActivityTimestamps
* docs: rm todo comment
* fix: correct incorrect implementation of party#id
* chore: rename structures
* feat(structures): update tests, comments, date getters
* feat: split `size` into 2 different getters
* test: update tests for new getters
* refactor(structures)!: use xDate convention in favour of xAt
* fix(structures): add `inviteCoverImage` getter + update tests
* test(structures): apply review feedback
* chore: use `dateToDiscordISOTimestamp` and cleanup tests
* feat: isArrayFieldSet typeguard & tidy up
* feat(structures): add URL getters, typeguards, update tests
* test(presence): review feedback
* test(presence): use realistic values
This uses values from the Discord API docs.
* test: rename tests to Presence instead of GatewayPresence
* test(structures): review feedback
* docs: use new discord docs links in jsdoc
* fix: address feedback for tests
Make some changes to all tests;
- use a standard beforeEach block to use a new instance on each test for robustness;
- check that the patched result contains the expected patched values as opposed to testing for any change across the structure, for accuracy.