Commit Graph
70 Commits
Author SHA1 Message Date
FlenyandLink 4581222cf4 feat(transformers)!: Partial transformers (#4436)
* refactor(bot)!: setup desired properties for all transformers

SetupDesiredProps when is given an object that does not corrispond to a transformer object that supports desired properties will behave like TransformProperty on the entire object as when it tries to get the properties for said object it will find `never` as the props and for `IsKeyDesired` a props of `never` means that all props are desired.

* feat(transformers)!: Handle partials in transformers

* Add expiresAt to invite create event

* Use Equals helper, clean up a bit the code

* Explicit the IsKeyDesired TProps never behavior

* Fix type errors

* format

* Add all trasformer objects to bot.transformers.$inferredTypes

* Use transfromerInformations for bot.transformers.$inferredTypes

* code review

* code review

* fix component transformer

* fix

* Update packages/bot/src/transformers/types.ts

* Fixes from Tri (+ GPT sol) code review

---------

Co-authored-by: Link <link20050703@gmail.com>
2026-07-31 15:12:15 +05:30
Flenyandstickz 5fc932f473 feat!: Document more attachment flags and fields (#5234)
* feat: Document more attachment flags and fields

* Update packages/types/src/discord/message.ts

Co-authored-by: stickz <38146668+AwesomeStickz@users.noreply.github.com>

* fix!: Add missing optionals, remove EmbedThumbnail
2026-07-30 12:39:32 +05:30
Fleny dac284a01e fix: make scope optional in createOAuth2Link (#5182) 2026-07-25 00:22:16 +05:30
Fleny a4a5f172d4 feat: update documentation links to new domain (#4767)
* feat: update documentation links to new domain

* fix some links in the docs
2026-02-16 07:46:51 +05:30
Awesome Stickz b93d1f9294 feat(utils): support animated webps in formatImageUrl() (#4725) 2026-02-01 09:47:40 +01:00
Fleny 27c261fee2 formatter: Use semicolons (#4686)
I prefer semicolors, they also help avoiding certain pitfalls in JavaScript/TypeScript, such as the following code sample:
```js
const xyz = "test"
(something.else as string) = "another"
```
This results in a TypeError: "test" is not a function, this is because js thinks we are trying to call the string "test" as a function.
To fix this it requires a `;` somewhere before the `(`, such as `;(something ... ` which in my opinion is ugly and less clean overall.
2026-01-17 21:54:15 +01:00
Louis JohnsonandFleny 288904fef9 feat(user)!: add more getters for user transformer (#4661)
* feat: enhance user tag getter

* feat(user): add `0000` condition and better jsdoc for tag

* chore(user): use this keyword instead of destructuring assignment

* fix(user): correct isLegacy logic

* feat(images): add ImageOptions

* refactor(images)!: split avatarUrl into more specific functions and add displayAvatarUrl

* feat(user)!: add more useful getters for user

* fix: update tests for images

* chore: using n suffix for bigint instead of converting to bigint

Co-authored-by: Fleny <Fleny113@outlook.com>

* fix: update dependencies for avatarUrl

Co-authored-by: Fleny <Fleny113@outlook.com>

* fix(user): correct the avatarUrl second parameter to avatar hash

Co-authored-by: Fleny <Fleny113@outlook.com>

* chore: undo unnecessary // from auto comment hotkey

Co-authored-by: Fleny <Fleny113@outlook.com>

---------

Co-authored-by: Fleny <Fleny113@outlook.com>
2025-12-31 17:46:11 +01:00
FlenyandAwesome Stickz 3d2ff13e4d feat(oauth2): PKCE support (#4425)
* feat(utils): Add base64url encoding

RFC 7636 (Proof Key for Code Exchange by OAuth Public Clients) requires to encode the data with base64url encoding.

We don't support decoding as we don't need it for PKCE.

* feat(oauth2): Add PKCE support

* make PKCE code verifier optional, fixup comments

---------

Co-authored-by: Awesome Stickz <awesome@stickz.dev>
2025-10-27 19:43:55 +01:00
FlenyandLink 269a5bf5f5 chore: Bump version to v22-beta.1 (#4377)
Co-authored-by: Link <link20050703@gmail.com>
2025-08-22 10:55:03 -07:00
FlenyandLink 8996169b9d build(deps-dev): Update typescript & @types/node (#4325)
Co-authored-by: Link <link20050703@gmail.com>
2025-08-22 09:39:52 -07:00
FlenyandLink 702b252396 fix(types)!: Fix discordeno/interactions.ts (#4360)
Co-authored-by: Link <link20050703@gmail.com>
2025-08-17 20:20:23 -07:00
Fleny 6679f2c0e4 chore(bot,utils): Move snowflake utils to @discordeno/utils (#4345) 2025-08-14 12:08:19 -07:00
FlenyandLink f199bbf71c build(dev-deps): Update biome to v2 (#4246)
* update biome to v2

* Run biome check --write

* Update biome.jsonc

Co-authored-by: Link <lts20050703@gmail.com>

* Fix config error

* Bump biome version

* Update website/yarn.lock

* Update biome to 2.1.3

---------

Co-authored-by: Link <lts20050703@gmail.com>
2025-08-09 12:45:04 -05:00
FlenyandLink cb8176c623 feat: user tags (#4238)
* feat: user tags

* Apply suggestions from code review

Co-authored-by: Link <lts20050703@gmail.com>

---------

Co-authored-by: Link <lts20050703@gmail.com>
2025-07-12 09:25:31 +02:00
Fleny 90f0507af0 feat(utils): animated webp emojis (#4199) 2025-06-01 08:28:27 +02:00
Max Zargov dff9df5a59 fix: Unexpected TypeError in GatewayManager.requestMembers (#4197)
* fix: Unexpected TypeError in `GatewayManager.requestMembers` debug message

closes #4196

* refactor: prefer JSON.stringify replacer parameter when serializing

* Order functions in utils.ts
2025-05-24 08:19:51 +02:00
Awesome Stickz 8eeda31769 refactor: set default format to webp instead of jpg in formatImageUrl() (#4193)
* refactor: set default format to webp instead of jpg in formatImageUrl

* fix: tests
2025-05-12 21:43:50 +05:30
Fleny 10731a180a chore(utils)!: Remove logger code related to Depth (#4106)
* Deprecate logger code related to Depth

* remove logger depth

* fix tests
2025-01-30 18:42:22 +01:00
Fleny 9914d38797 Add memberBannerUrl (#4091) 2025-01-16 22:25:39 -06:00
Fleny a55127fb93 feat(utils): Support 'random' in setColor (#4093)
* support 'random' in setColor

* use toLowerCase for color in setColor
2025-01-16 22:25:13 -06:00
Dominik Koch a0fec368fa fix(default-timestamp): add fallback to current date (#4081)
Uses a fallback value if nothing is passed because the timestamp property is marked as optional. This prevents errors when using the function without arguments.
2025-01-01 09:26:09 -08:00
Dominik KochandFleny 21e81c087b feat(utils): add EmbedsBuilder.addFields() (#4077)
* feat(embed-builder): add addFields function

* feat(embed-builder): add tests for addField and addFields function

* Update packages/utils/src/builders/embeds.ts

Co-authored-by: Fleny <Fleny113@outlook.com>

* feat(embed-builder): add undefined check to addFields

* fix: make inline field optional in push

* revert: EmbedBuilder tsdoc rename

* Update packages/utils/src/builders/embeds.ts

Co-authored-by: Fleny <Fleny113@outlook.com>

* fix(embed-builder): expect inline to be undefined

* revert: outdated changes

* fix(embed-builder): fix embed unit test

* feat(embed-builder): add stickz jsdoc suggestions

---------

Co-authored-by: Fleny <Fleny113@outlook.com>
2024-12-30 16:06:51 -08:00
Dominik Koch ceec87f3c7 fix: EmbedsBuilder missing s typo (#4078) 2024-12-30 19:05:13 +01:00
Fleny afb9e3a453 chore: Bump to v21 (#4062) 2024-12-28 21:51:59 +01:00
Awesome Stickz 3fd075a80f feat(utils): add an export for DISCORDENO_VERSION (#4060) 2024-12-29 00:43:34 +05:30
FlenyandAwesome Stickz cfdf77027a refactor(types,utils,rest,bot)!: Cleanup types & files (#3951)
* Cleanup some un-used & sort types, split files

* Remove commented code from reverse/component.ts

* Fix type error on the bot E2E test

* Add comment, remove DiscordInteractionResponse

* Remove camel.ts

* Error on unusedImport, refactor type imports

* Run biome check

* fix: typo

* Update comments for skuId and defaultValues

---------

Co-authored-by: Awesome Stickz <awesome@stickz.dev>
2024-11-09 17:27:55 +01:00
dfa7ff4045 feat(bot,rest,gateway,utils,types)!: Add soundboard support (#3919)
* Add soundboard support

* Add rest endpoints

* add comment to gateway requestSoundboardSounds

* Apply suggestions from code review

Co-authored-by: Awesome Stickz <awesome@stickz.dev>

* Update for discord/discord-api-docs#7207

* Update discord.ts

---------

Co-authored-by: Awesome Stickz <awesome@stickz.dev>
Co-authored-by: ITOH <to@itoh.at>
2024-11-05 19:44:37 +05:30
Fleny 2d02c3246c fix(website): Fix docusaurus build/typedoc warnings (#3929)
* Fix docusaurus build/typedoc warnings

* include the jsdoc fixes
2024-10-22 16:48:06 +02:00
Fleny b1bfe94b7d Use atob instead of node:buffer for getBotIdFromToken (#3893) 2024-09-02 15:12:09 +02:00
Fleny 919474069d chore: Migrate ESLint and prettier to Biome (#3634)
* Migrate eslint and prettier to biomejs

This does NOT include examples/bigbot as it has its own formatter

* Update to biome 1.8.0

* Readd dotenv dev dependency to rest

During a merge it got lost
2024-07-13 13:05:02 -05:00
Fleny 3daf71a507 Use bigint for permission flags (#3726)
Also convert the enum to an object as typescript doesn't like bigint in an enum
2024-07-09 09:23:46 -05:00
FlenyandSkillz4Killz a1af1ff910 Adds premium interaction (#3680)
Co-authored-by: Skillz4Killz <23035000+Skillz4Killz@users.noreply.github.com>
2024-07-06 17:04:05 -05:00
Fleny e12142daf6 Use %20 instead of ' ' for joining scopes (#3709) 2024-07-06 15:56:48 -05:00
FlenyandAwesome Stickz 5290078044 fix(bot,types,utils)!: change avatar decoration url link (#3621)
* Change the avatarDecorationUrl link

* Add User#avatarDecorationData & Member#avatarDecorationData

* Fix type error

* Fix format error

---------

Co-authored-by: Awesome Stickz <awesome@stickz.dev>
2024-05-26 19:14:11 +00:00
Fleny c570a881cf fix(utils): Use media.discordapp.net for gif stickers (#3625)
* Use media.discordapp.net for gif stickers

And add Gif to StickerFromatTypes as it was missing

* remove return undefined, use return
2024-05-26 18:39:42 +00:00
Fleny a361a53d57 Add poll transformer export (#3550)
& fix a typedoc warning for the oauth2 func
2024-05-06 07:40:08 +00:00
FlenyandMatt Hatcher 687c29dd7a feat(bot,rest,types,utils): Support User-Installed apps, Interaction contexts and install types (#3502)
* Support integrationTypesConfig in Application

* Add support for commands with integrationTypes and contexts

And deprecate the dmPermission boolean, it is being replaced by contexts

* Update contexts comment to make it more clear

* User-Installed apps

* Add integrationType oauth parameter

fixes #3517

* Add null to contexts

closes #3523

* Mark oauth2 install params as nullable

closes #3525

* Fix typescript errors

* Add preview notices

---------

Co-authored-by: Matt Hatcher <3768988+MatthewSH@users.noreply.github.com>
2024-04-29 15:36:29 +00:00
Fleny efe56fbe06 feat(bot, rest, gateway, utils): Add support for custom loggers (#3383)
* Add support for custom loggers

* update docs for loggerFactory

* Use union for names in the bot logger factory

* Fix formaating errors
2024-03-17 11:22:45 +00:00
FlenyandMatt Hatcher f0ac958903 chore(website): Cleanup docusaurus setup (#3355)
* Update docusaurus typescript setup for v3

And fix lint-staged and eslint

* Enable automatic JSX runtime

* Remove babel config and dependencies

* update yarn.lock

* add typecheck to site workflow

* update typedoc config

* downgrade docusaurus packages

* Update site.yml

* Type context and options in webpack-docusaurus-plugin.ts

---------

Co-authored-by: Matt Hatcher <3768988+MatthewSH@users.noreply.github.com>
2024-02-09 20:34:59 +00:00
dependabot[bot]andFleny a2d6ae836e build(deps-dev): bump eslint-config-standard-with-typescript from 42.0.0 to 43.0.0 (#3318)
* build(deps-dev): bump eslint-config-standard-with-typescript

Bumps [eslint-config-standard-with-typescript](https://github.com/standard/eslint-config-standard-with-typescript) from 42.0.0 to 43.0.0.
- [Release notes](https://github.com/standard/eslint-config-standard-with-typescript/releases)
- [Changelog](https://github.com/standard/eslint-config-standard-with-typescript/blob/master/CHANGELOG.md)
- [Commits](https://github.com/standard/eslint-config-standard-with-typescript/compare/v42.0.0...v43.0.0)

---
updated-dependencies:
- dependency-name: eslint-config-standard-with-typescript
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Fix lint error

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Fleny <fleny113@outlook.com>
2023-12-18 13:33:56 +00:00
dependabot[bot]andFleny e31c4d0a8a build(deps-dev): bump eslint-config-standard-with-typescript from 40.0.0 to 42.0.0 (#3297)
* build(deps-dev): bump eslint-config-standard-with-typescript

Bumps [eslint-config-standard-with-typescript](https://github.com/standard/eslint-config-standard-with-typescript) from 40.0.0 to 42.0.0.
- [Release notes](https://github.com/standard/eslint-config-standard-with-typescript/releases)
- [Changelog](https://github.com/standard/eslint-config-standard-with-typescript/blob/master/CHANGELOG.md)
- [Commits](https://github.com/standard/eslint-config-standard-with-typescript/compare/v40.0.0...v42.0.0)

---
updated-dependencies:
- dependency-name: eslint-config-standard-with-typescript
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Disable @typescript-eslint/no-unsafe-argument for the logger

* Fix eslint errors

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Fleny <Fleny113@outlook.com>
2023-12-11 22:04:40 +00:00
Matthew HatcherandFleny e47242a9e0 feat: api docs catchup part 1 (#3257)
* feat: add voice message support

Closes #3009

* fix: pre-commit hook EACCESS npx issue

* feat: add channel to interaction

Closes #2979

* feat: add role flags

Closes #3070

* feat: adds creator monetization, message flagged, and member timeout audit log event

Closes #3075

* feat: add attachment flags

Closes #3071

* feat: add avatar decorations

Closes #3081

* feat: update description for guild and channel permissions

Closes #3106

* feat: rename Nitro sticker packs to just sticker packs

Closes #3107

* feat: add integration type to audit log entry

Closes #3108

* feat: make position optional on modify guild channel position

Closes #3086

* feat: add guild media channel type and associated flag

Closes #3093

* feat: update remark for activities.write scope

Closes  #3213

* feat: add support for super reactions

Closes #3113

* fix: attempt to fix benchmarks

* fix: benchmark attempt #2

---------

Co-authored-by: Fleny <Fleny113@outlook.com>
2023-12-04 21:54:39 +00:00
Fleny c56bb063cb Add missing image url function (#3259)
Exceptions:
- Achievement Icon and Store Page Asset - Game SDK
- Guild Member Banner - Doesn't have documented the banner asset hash
- User Avatar Decoration - Already included in #3257
2023-12-04 19:12:34 +00:00
Matthew Hatcher a62f06c3e8 chore(deps)!: upgrade all deps to new major versions (#3195)
* chore(deps): upgrade deps to latest in range

* feat: upgrade node engine minimum

Closes #3173

* fix: typing errors after dep upgrade

* chore(deps): upgrade benchmark typescript version

* feat: upgrade eslint, lint staged, and es version

* fix: lint-staged failures

* style: formatting

* chore(deps): major version upgrades

* chore(deps): upgrade yarn to 4.0

* fix: lock typescript to 5.2.2 until ts-node/mocha fix

bug: https://github.com/mochajs/mocha/issues/5031

* chore: remove old Deno file

Went through history and can't find any reference to this after Deno rewrite

* chore(deps): more dep updates

* feat: typedoc config upgrade

* fix: temporarily reset docusaurus to main

* chore(deps): minor range upgrades

* chore(deps)!: docusaurus major upgrade

* revert: go back to original 2.x docusaurus
2023-12-04 13:57:15 +00:00
Fleny eb6dd978ed fix LeakyBucket to handle refills, queue process (#3159) 2023-10-28 12:51:06 +00:00
Matthew Hatcher 9f5e3ab9ff feat(utils): add embed builder (#3145)
* feat: add embed builder

* feat: account for if a parsed color is NaN

* feat: add code doc

* feat: add example to JSDoc

* feat: add ability to override the current embed index

* style: remove extra whitespace

* feat: add validate method logic

* feat: finish remaining todo

* fix: account for length value in the setCurrentEmbed call

* feat: removing custom error and throw generic

* feat: add initial tests

* feat: add builder object with embeds function

* feat: changing to a method instead of object

* feat: add more tests

* style: lint
2023-10-06 03:54:11 +00:00
6e8f15557c Pr/livelove1987/3138 (#3143)
* feat: Adding invite helper use transformer

* fix: Fix type error

* Update packages/bot/src/transformers/invite.ts

Co-authored-by: Skillz4Killz <23035000+Skillz4Killz@users.noreply.github.com>

* fixes

* fix: Fixed invite transformer

* Remove < > in comment

* Fix: remove useless const

* fix invite

* fix: ts error

---------

Co-authored-by: livelove1987 <mateusz.luboinski@gmail.com>
Co-authored-by: livelove1987 <82705913+livelove1987@users.noreply.github.com>
2023-09-30 14:58:14 -05:00
Sam Teeuwisse 1355d54035 Fix commandOptionsParser and move to bot package (#3135) 2023-09-20 14:04:41 +00:00
Sam Teeuwisse 940ef8dc39 fix(utils): Add missing export for interactions.ts (#3123) 2023-09-19 16:25:36 +00:00
FlenyandSkillz4Killz a7d645ec4b feat: Implement OAuth2 endpoints (#3114)
* add OAuth2 routes

* Add oauth2 methods to rest

* Add rest manager methods, Add token params

* Add authorization headers

* Add auth to editUserApplicationRoleConnection

* fix logging header always displaying bot as auth

* Add OAuth2Scope enum

* Start testing ratelimit handling

* Fix now scopes are separated by a space

* move webhook object to DiscordAccessTokenResponse

* convert payload to snake_case

* fix some typings

* more types fixes

* add support for upserting commands with tokens

* handle correctly ratelimit and concurrently

* add guild to DiscordAccessTokenResponse

* Add oauth2 create link function

* Fix removeTokenPrefix to support Bearer tokens

* update jsdoc comment for removeTokenPrefix

* fix removeTokenPrefix unit tests

* fix see link on getMember and getCurrentMember

* add bot helpers and fix some types

* Use objects to pass the bearer tokens

* fix Deno issue with Buffer.from

* Merge 'upstream/main' into feat/oauth2 to fix merge conflict

* Fix debug queue logging

* keep only 1 route for current user

* add Bearer prefixed url to the rest of the logs

---------

Co-authored-by: Skillz4Killz <23035000+Skillz4Killz@users.noreply.github.com>
2023-09-19 16:23:22 +00:00