Compare commits

...

203 Commits

Author SHA1 Message Date
github-actions[bot]
04ee6ac7f1 chore(release): 0.38.2 🎉 (#1229)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-05-01 15:28:01 +03:00
Jiralite
f5f850eb10 docs: update privilege intents link (#1227) 2025-04-28 17:19:09 +03:00
Vlad Frangu
771745c424 chore(release): 0.38.1 🎉 2025-04-22 11:37:43 +03:00
Vlad Frangu
d3ef6c9fd8 chore: cannot be a release without a .1 2025-04-22 11:34:25 +03:00
github-actions[bot]
a50d6f4fd3 chore(release): 0.38.0 🎉 (#1223)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Vlad Frangu <me@vladfrangu.dev>
2025-04-22 11:23:45 +03:00
Vlad Frangu
a2c1eccc68 chore: mark as breaking
BREAKING CHANGE: Certain Component alias types have been renamed (for example APIMessageActionRowComponent is now APIComponentInMessageActionRow
2025-04-22 11:16:29 +03:00
Danial Raza
ebd9814412 refactor(ImageSize): allow other sizes (#1221) 2025-04-22 02:11:59 +03:00
Andrew
527ac2fe0f feat(CDNQuery)!: add ImageSize type (#1098)
Co-authored-by: Noro95 <66942330+Noro95@users.noreply.github.com>
Co-authored-by: Danial Raza <danialrazafb@gmail.com>
Co-authored-by: Vlad Frangu <me@vladfrangu.dev>
2025-04-22 01:38:55 +03:00
dependabot[bot]
aa68bd5336 chore(deps): bump http-proxy-middleware from 2.0.7 to 2.0.9 in /website (#1220)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-22 00:59:24 +03:00
dependabot[bot]
bf3a9f3c35 chore(deps): bump @babel/runtime-corejs3 in /website (#1216)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-22 00:59:13 +03:00
dependabot[bot]
0799b367db chore(deps): bump @babel/helpers from 7.26.0 to 7.27.0 in /website (#1218)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-22 00:59:04 +03:00
dependabot[bot]
8f675f6a95 chore(deps): bump @babel/runtime from 7.26.0 to 7.27.0 in /website (#1217)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-22 00:58:56 +03:00
dependabot[bot]
f0918bbdef chore(deps): bump estree-util-value-to-estree in /website (#1213)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-22 00:58:40 +03:00
dependabot[bot]
e981f95482 chore(deps): bump image-size from 1.1.1 to 1.2.1 in /website (#1212)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-22 00:58:33 +03:00
dependabot[bot]
65a0e8a12d chore(deps): bump prismjs from 1.29.0 to 1.30.0 in /website (#1209)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-22 00:58:17 +03:00
renovate[bot]
b66c4af72a chore(deps): update patch/minor dependencies (#1204)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Vlad Frangu <me@vladfrangu.dev>
2025-04-22 00:55:34 +03:00
advaith
9f769c319e feat!: components v2 (#1190) 2025-04-22 00:52:14 +03:00
github-actions[bot]
076e7b8f7b chore(release): 0.37.120 🎉 (#1215)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-04-10 19:54:21 +03:00
Almeida
048772d1f1 docs: resolve api-extractor warnings (#1205)
* docs: resolve api-extractor warnings

* docs: solo links

* fix: new changes

* fix: more

* fix: again
2025-04-09 22:54:09 +03:00
Almeida
5b6f0d43a4 feat(APIBaseInteraction): add attachment_size_limit (#1214) 2025-04-09 21:59:06 +03:00
Jiralite
cfac62e44a fix: Ensure autocomplete option values resolve to string for numerical types (#1198)
* fix: string values for autocomplete

* fix: default types

* test: add tests
2025-04-08 23:54:35 +03:00
Danial Raza
def67dbe90 feat(webhook): add with_components query param (#1208)
* feat(webhook): add `with_components` query param

* docs: use `defaultValue`

Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com>

---------

Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com>
2025-04-08 23:53:38 +03:00
Micah Benac
ac4d59d17e feat(RPC): types (#1200)
* feat: rpc types

Co-authored-by: Danial Raza <danialrazafb@gmail.com>

* feat: complete documented types

Co-authored-by: Danial Raza <danialrazafb@gmail.com>

* feat: implement all of the interfaces and documented types

Co-authored-by: Danial Raza <danialrazafb@gmail.com>

* chore: minor type changes

* feat: type changes

* feat: shortcut and relationship types

* feat: more types

* fix: subscribe args types should be truly empty types

* feat: more types

* types: lobby/achievement stuff

* types: now I remove the lobby types

* types: now I remove the lobby types

* chore: totally didn't forget this

* fix: lol

* types: forgor to test out these undocumented types

* Update rpc/v10.ts

Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com>

* chore: suggested changes

* chore: requested changes

---------

Co-authored-by: Danial Raza <danialrazafb@gmail.com>
Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com>
2025-04-08 23:52:19 +03:00
dependabot[bot]
d12dcb103c chore(deps-dev): bump undici from 6.21.0 to 6.21.1 (#1196)
Bumps [undici](https://github.com/nodejs/undici) from 6.21.0 to 6.21.1.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v6.21.0...v6.21.1)

---
updated-dependencies:
- dependency-name: undici
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-16 17:05:03 +02:00
renovate[bot]
699c3df1ec chore(deps): lock file maintenance (#1185)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-16 16:43:14 +02:00
github-actions[bot]
78d6acfdb8 chore(release): 0.37.119 🎉 (#1202)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-02-02 02:27:06 +02:00
renovate[bot]
19a8371695 chore(deps): update patch/minor dependencies (#1194)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-02 02:23:25 +02:00
Vlad Frangu
d5cdb37a8f fix: route escaping round three 2025-02-02 02:22:59 +02:00
github-actions[bot]
2023a0ab2a chore(release): 0.37.118 🎉 (#1201)
Build ran for 8fe9c072b3

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-27 14:28:08 +02:00
Danial Raza
8fe9c072b3 feat(APIGuild): add incidents_data (#822) 2025-01-25 21:16:48 +02:00
Jiralite
d446be5ecd feat(MessageFlags): add HasSnapshot (#1141) 2025-01-24 11:35:38 +02:00
github-actions[bot]
27840d1086 chore(release): 0.37.117 🎉 (#1195)
Build ran for 1fc2a6ece8

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-20 14:27:35 +02:00
Jiralite
1fc2a6ece8 refactor: remove flags override (#1193) 2025-01-16 18:27:55 +02:00
github-actions[bot]
f90b47c95c chore(release): 0.37.116 🎉 (#1192)
Build ran for cf076b868b

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-16 14:25:47 +02:00
HotDog640
cf076b868b docs(MessageEmbed): remove deprecation for EmbedType (#1187)
Co-authored-by: Vlad Frangu <me@vladfrangu.dev>
2025-01-15 12:07:55 +02:00
renovate[bot]
470f340e75 chore(deps): update patch/minor dependencies (#1184)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-15 12:06:53 +02:00
Almeida
d9b6935b01 feat(VoiceCloseCodes): add BadRequest (#1191) 2025-01-15 12:06:37 +02:00
github-actions[bot]
907c1685a3 chore(release): 0.37.115 🎉 (#1189)
Build ran for 3f61ce43e9

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-02 14:42:09 +02:00
Vlad Frangu
3f61ce43e9 chore: revert for now and make the script fail in CI 2024-12-28 21:47:37 +02:00
Vlad Frangu
92d0ef46d9 ci: use correct on target 2024-12-28 21:35:36 +02:00
Vlad Frangu
b648c89b5e ci: assert the token used for the flow 2024-12-28 21:28:58 +02:00
Vlad Frangu
6ace234311 ci: use custom token for automatic deno reviews 2024-12-28 21:23:24 +02:00
github-actions[bot]
a9ba1e18bc chore(release): 0.37.114 🎉 (#1183)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-23 08:22:09 +02:00
Vlad Frangu
ee53ef7306 fix: reset pattern index after testing an input
Otherwise, we flip flop between validations
See https://github.com/discordjs/discord-api-types/issues/1181#issuecomment-2558971449
2024-12-23 08:17:44 +02:00
github-actions[bot]
cddd038a8b chore(release): 0.37.113 🎉 (#1182)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-22 22:13:56 +02:00
Vlad Frangu
fc4e7bebc5 fix: skip encoded url parts from re-encoding
DJS or other users may already do a sanity encoding, so we dont need to re-encode
2024-12-22 22:11:26 +02:00
renovate[bot]
a81f31178f chore(deps): lock file maintenance (#1180)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-20 12:17:28 +02:00
renovate[bot]
5c6e5ca7bb chore(deps): update dependency is-ci to v4 (#1168)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-20 12:16:07 +02:00
renovate[bot]
6c13d341a6 chore(deps): update patch/minor dependencies (#1164)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-20 12:15:19 +02:00
renovate[bot]
a7d019eab9 chore(deps): lock file maintenance (#1177)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-20 12:14:58 +02:00
dependabot[bot]
936a03982b chore(deps): bump nanoid from 3.3.6 to 3.3.8 in /website (#1169)
Bumps [nanoid](https://github.com/ai/nanoid) from 3.3.6 to 3.3.8.
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/3.3.6...3.3.8)

---
updated-dependencies:
- dependency-name: nanoid
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-20 12:14:46 +02:00
dependabot[bot]
6d8fd9f3d8 chore(deps): bump path-to-regexp and express in /website (#1178)
Bumps [path-to-regexp](https://github.com/pillarjs/path-to-regexp) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together.

Updates `path-to-regexp` from 1.8.0 to 1.9.0
- [Release notes](https://github.com/pillarjs/path-to-regexp/releases)
- [Changelog](https://github.com/pillarjs/path-to-regexp/blob/master/History.md)
- [Commits](https://github.com/pillarjs/path-to-regexp/compare/v1.8.0...v1.9.0)

Updates `express` from 4.21.1 to 4.21.2
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.21.2/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.21.1...4.21.2)

---
updated-dependencies:
- dependency-name: path-to-regexp
  dependency-type: indirect
- dependency-name: express
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-20 12:14:14 +02:00
dependabot[bot]
d222c61e0a chore(deps): bump ws from 7.5.8 to 7.5.10 in /website (#1179)
Bumps [ws](https://github.com/websockets/ws) from 7.5.8 to 7.5.10.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.5.8...7.5.10)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-20 12:13:23 +02:00
Vlad Frangu
9f327dd999 chore: docusaurus upgrade (#1163)
* chore: docusaurus upgrade

* chore: lock my file

* fix: oi

* chore: drop broken links to a warn

* chore: screw it, no direct link

* chore: doing it live

* chore: bring it back

* chore: remove client redirect as its needless

* chore: deno install bc why not

* chore: tabs
2024-12-20 12:09:23 +02:00
renovate[bot]
5d472cbfba chore(deps): lock file maintenance (#1165)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-20 01:04:56 +02:00
Naiyar
bcb13de75b feat(payloads): add entrypoint command payloads (#1166)
* feat: add entrypoint command payloads

* fix: data is present for entry point command interactions

* fix: missed export

* fix: lint

* fix: deno
2024-12-19 21:43:27 +02:00
Almeida
61592d6a85 feat(ConnectionService): Bluesky and Mastodon (#1174) 2024-12-19 21:40:25 +02:00
Jiralite
b3e818fd33 chore: use feature request label for feature requests (#1176) 2024-12-19 21:32:20 +02:00
github-actions[bot]
3faaf75970 chore(release): 0.37.112 🎉 (#1173)
Build ran for fb7c6b8903

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-19 14:29:49 +02:00
Danial Raza
fb7c6b8903 feat(APISubscription): add renewal_sku_ids (#1172) 2024-12-18 17:35:29 +02:00
github-actions[bot]
20f44ac7d9 chore(release): 0.37.111 🎉 (#1167)
Build ran for 68e19d38e4

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-09 13:29:27 +01:00
Danial Raza
68e19d38e4 chore(APIEntitlement): update ends_at and starts_at to be nullable (#1158) 2024-12-05 16:15:44 +00:00
renovate[bot]
534dc2f1be chore(deps): lock file maintenance (#1162)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-29 08:39:27 +02:00
github-actions[bot]
5c48554c8d chore(release): 0.37.110 🎉 (#1160)
Build ran for 92b1ce2fae

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-29 08:23:12 +02:00
renovate[bot]
c69bb52384 chore(deps): update patch/minor dependencies (#1161)
* chore(deps): update patch/minor dependencies

* chore: lint

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Vlad Frangu <me@vladfrangu.dev>
2024-11-29 08:22:51 +02:00
Jiralite
92b1ce2fae feat: add Chrunchyroll (#1159) 2024-11-27 22:01:56 +02:00
github-actions[bot]
4a47ef8c83 chore(release): 0.37.109 🎉 (#1157)
Build ran for c52a3f6721

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-26 23:37:12 +02:00
Vlad Frangu
c52a3f6721 chore: trim down the website 2024-11-26 23:20:21 +02:00
Jiralite
079fcd6c00 feat: New entitlement endpoint behaviour (#1145)
* feat: new entitlement endpoint behaviour

* fix: correct `RESTGetAPIEntitlementResult`

* docs: update changes
2024-11-26 08:34:36 +02:00
github-actions[bot]
566ae49c74 chore(release): 0.37.108 🎉 (#1156)
Build ran for 2d22f2fcef

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-25 19:25:46 +02:00
Jiralite
2d22f2fcef refactor(GatewayThreadListSync): narrow threads (#1155) 2024-11-22 20:40:14 +02:00
Vlad Frangu
9b47ba562f chore(ci): unify flow in one 2024-11-22 19:34:49 +02:00
Vlad Frangu
2e6ad68151 chore: bye tsd 2024-11-22 19:33:17 +02:00
Vlad Frangu
9f1fa8c722 chore: bump tsd and ts 2024-11-22 19:05:35 +02:00
Vlad Frangu
ace02e2b9b chore: try to fix CI 2024-11-22 18:59:17 +02:00
Jiralite
e7f0caabaa refactor(APIThreadMetadata): locked is always present (#1154) 2024-11-22 18:55:35 +02:00
renovate[bot]
5350806773 chore(deps): lock file maintenance (#1153)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-22 08:09:29 +02:00
Danial Raza
ced86e4b42 feat: webhook events (#1128)
* feat: webhook events

* chore: fix naming because someone was high at Discord

* chore: fix build errors

* chore: woops

* chore: and now consistent

* docs: remove `.`

---------

Co-authored-by: Vlad Frangu <me@vladfrangu.dev>
Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com>
2024-11-22 08:03:15 +02:00
Jiralite
8659ac8b8d refactor: narrow channel gateway events types (#1148) 2024-11-22 08:03:01 +02:00
renovate[bot]
029002b171 chore(deps): lock file maintenance (#1152)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-22 08:01:41 +02:00
renovate[bot]
68273caf10 chore(deps): update patch/minor dependencies (#1151)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-22 08:01:09 +02:00
github-actions[bot]
f65246f8fd chore(release): 0.37.107 🎉 (#1150)
Build ran for 1ba3472938

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-21 22:43:38 +02:00
Vlad Frangu
1ba3472938 fix(security): escape path parameters 2024-11-21 22:40:24 +02:00
github-actions[bot]
00954701e8 chore(release): 0.37.106 🎉 (#1149)
Build ran for 7debb55f03

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-21 14:27:54 +02:00
Danial Raza
7debb55f03 refactor: split interaction metadata objects (#1129) 2024-11-19 14:56:47 +02:00
Jiralite
f5ebb2088b refactor(GatewayGuildCreateDispatchData): Narrow channels and threads types (#1146)
* refactor: narrow guild create types

* refactor: use `GuildChannelType` and `ThreadChannelType`
2024-11-19 14:49:25 +02:00
renovate[bot]
999e48fae0 chore(deps): lock file maintenance (#1144)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-19 14:18:29 +02:00
github-actions[bot]
b3b4eb66c0 chore(release): 0.37.105 🎉 (#1143)
Build ran for 408165e96f

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-14 14:26:40 +02:00
Jiralite
408165e96f feat(_interactions): Support partial guild objects (#1142)
* feat: support partial guild objects

* docs: use `@unstable`
2024-11-13 17:09:19 +02:00
Almeida
3f489f18dc feat: guild member banners (#1057) 2024-11-13 08:03:59 +02:00
Jiralite
df0d390303 docs(RESTPostAPIChannelMessageJSONBody): Make message reference generic (#1139)
* docs: make message reference generic

* docs: keep 1:1 with Discord
2024-11-12 20:49:52 +02:00
renovate[bot]
7fa0e159d0 chore(deps): update dependency @typescript-eslint/utils to v8.14.0 (#1130)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-12 20:48:22 +02:00
Jiralite
f6984045f1 refactor: use Locale only (#1138) 2024-11-12 20:48:09 +02:00
renovate[bot]
092cf01f45 chore(deps): lock file maintenance (#1137)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-12 20:47:00 +02:00
Jiralite
3512262194 feat: full message object on message update (#1140) 2024-11-12 20:45:11 +02:00
github-actions[bot]
8ada51ac6d chore(release): 0.37.104 🎉 (#1136)
Build ran for 6813c62e9e

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-07 14:24:46 +02:00
renovate[bot]
6813c62e9e chore(deps): update dependency @types/node to v22 (#1131)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-05 23:38:15 +02:00
Danial Raza
88d8bed1ca fix: add missing soundboard types (#1134) 2024-11-05 23:38:00 +02:00
Danial Raza
736479cab3 fix(isInteractionButton): handle ButtonStyle.Premium (#1135) 2024-11-05 23:36:46 +02:00
dependabot[bot]
d673e5f9bb chore(deps): bump http-proxy-middleware from 2.0.6 to 2.0.7 in /website (#1126)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-01 08:02:34 +02:00
renovate[bot]
7af532c383 chore(deps): lock file maintenance (#1132)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-01 08:00:45 +02:00
renovate[bot]
76b393a7e4 chore(deps): lock file maintenance (#1127)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-25 08:07:47 +03:00
renovate[bot]
daacd2d1b5 chore(deps): update patch/minor dependencies (#1117)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-25 08:05:04 +03:00
renovate[bot]
756658ba85 chore(deps): lock file maintenance (#1118)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-25 08:02:00 +03:00
renovate[bot]
cc6121c2c0 chore(deps): update dependency @favware/npm-deprecate to v2 (#1124)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-25 08:01:42 +03:00
renovate[bot]
bfeaaae9a8 chore(deps): update dependency npm-run-all2 to v7 (#1125)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-25 08:01:26 +03:00
github-actions[bot]
82d02a487f chore(release): 0.37.103 🎉 (#1123)
Build ran for 76fc8f035b

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-10-21 15:26:21 +03:00
Pablo
76fc8f035b feat: soundboard audit log events (#1122) 2024-10-21 12:17:24 +03:00
Pablo
0fe6059753 feat: audit log change key for boost bar (#1120) 2024-10-21 09:27:52 +03:00
github-actions[bot]
122ddcb6b1 chore(release): 0.37.102 🎉 (#1116)
Build ran for 32cabcfcb3

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-10-14 15:26:32 +03:00
dependabot[bot]
32cabcfcb3 chore(deps): bump rollup from 2.75.4 to 2.79.2 in /website (#1110)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-13 19:04:35 +03:00
dependabot[bot]
6962103023 chore(deps): bump micromatch and markdownlint-cli2 in /website (#1115)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-13 19:04:24 +03:00
Pablo
4746e8d486 feat: recurrence rule change key on audit logs (#1112)
Co-authored-by: Vlad Frangu <me@vladfrangu.dev>
2024-10-13 19:04:02 +03:00
dependabot[bot]
ecf1a17b73 chore(deps): bump cookie and express in /website (#1114)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-13 19:03:33 +03:00
renovate[bot]
a0b7487a09 chore(deps): lock file maintenance (#1109)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-13 19:03:21 +03:00
Danial Raza
8d46830046 feat: soundboard (#1113)
Co-authored-by: Micah Benac <OfficialSirH@users.noreply.github.com>
2024-10-13 19:03:05 +03:00
renovate[bot]
ec9819bb2d chore(deps): update patch/minor dependencies (#1108)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-09 19:34:35 +03:00
github-actions[bot]
21e9732d85 chore(release): 0.37.101 🎉 (#1107)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-23 15:27:58 +03:00
advaith
240226f3d2 feat: add VoiceChannelEffectSend event (#739)
Co-authored-by: Almeida <almeidx@pm.me>
Co-authored-by: almeidx <github@almeidx.dev>
2024-09-23 14:15:59 +03:00
Almeida
57ee8db3b1 docs: missing gateway documentation links (#1106) 2024-09-22 17:56:52 +03:00
Almeida
2b653a00b3 feat: missing subscription dispatch types (#1105) 2024-09-22 16:02:23 +03:00
René
2ae232477a fix(rest/oauth2): correct string literal types containing bot scope (#1101) 2024-09-22 16:01:27 +03:00
renovate[bot]
5d95d970cf chore(deps): lock file maintenance (#1104)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-22 15:59:03 +03:00
renovate[bot]
2cc5730d32 chore(deps): lock file maintenance (#1103)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-20 03:56:29 +03:00
dependabot[bot]
b30a016db3 chore(deps): bump webpack from 5.73.0 to 5.94.0 in /website (#1087)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-18 07:18:58 +03:00
renovate[bot]
a620bb9f70 chore(deps): lock file maintenance (#1097)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-18 07:18:21 +03:00
renovate[bot]
087d682c3b chore(deps): update dependency tsd to v0.31.2 (#1095)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-18 07:06:25 +03:00
renovate[bot]
29944fee29 chore(deps): update patch/minor dependencies (#1096)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-18 07:05:34 +03:00
dependabot[bot]
a47eca9cb5 chore(deps): bump send and express in /website (#1100)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-18 07:05:02 +03:00
github-actions[bot]
7fe434114e chore(release): 0.37.100 🎉 (#1093)
Build ran for 258fb72f38

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-06 00:12:32 +03:00
Danial Raza
258fb72f38 fix(GatewayGuildDeleteDispatchData): make unavailable optional (#1092) 2024-09-05 23:24:48 +03:00
Almeida
93e649a20d feat(RESTJSONErrorCodes): add 40018, 40019, and 40094 (#1056) 2024-09-05 21:43:00 +03:00
Danial Raza
d3b5187c77 fix: replace deprecated RESTAPIPollCreate with RESTAPIPoll (#1091) 2024-09-05 19:01:05 +03:00
Almeida
344274b56c feat(MessageType): PurchaseNotification and PollResult (#1040) 2024-09-05 18:30:06 +03:00
Almeida
f770290717 feat(RESTPatchAPIWebhookWithTokenMessageJSONBody): poll (#1067) 2024-09-05 18:29:38 +03:00
Almeida
b4b70d8bdc feat: entry point commands and interaction callback response (#1077) 2024-09-05 18:29:23 +03:00
Almeida
3de4ca8933 feat(APIMessageSnapshotFields): add more fields (#1085) 2024-09-05 18:26:22 +03:00
Danial Raza
8f781909f1 feat: add subscriptions (#1078)
Co-authored-by: TÆMBØ <TAEMBO@users.noreply.github.com>
2024-09-05 18:26:11 +03:00
Danial Raza
3f3fe21e15 fix(APIMessageSnapshot): mark guild_id as deprecated (#1084) 2024-09-05 18:25:51 +03:00
Naiyar
011d439971 feat(ConnectionService): add Amazon Music connection (#1074) 2024-09-05 18:25:21 +03:00
Almeida
0938b664ce feat(FormattingPatterns): GuildNavigation and LinkedRole (#1089) 2024-09-05 18:25:01 +03:00
Naiyar
d1e64eea8d refactor(APIApplication): mark role_connections_verification_url and interactions_endpoint_url as nullable (#1090) 2024-09-05 18:23:26 +03:00
github-actions[bot]
557c534b67 chore(release): 0.37.99 🎉 (#1088)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-02 15:25:08 +03:00
renovate[bot]
8054f50230 chore(deps): update patch/minor dependencies (#1081)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-31 04:00:52 +03:00
renovate[bot]
74d80b1e77 chore(deps): lock file maintenance (#1082)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-31 04:00:40 +03:00
Danial Raza
a9c6985d63 docs: mark APIApplication#summary and APISticker#asset as unstable (#1080) 2024-08-31 04:00:22 +03:00
Almeida
4b64f84ddf feat: remove unstable from stable fields (#1086) 2024-08-31 03:59:52 +03:00
Almeida
2803e8df2f feat(GuildMemberFlags): IsGuest and DmSettingsUpsellAcknowledged (#1079) 2024-08-29 22:50:15 +03:00
github-actions[bot]
58848bed54 chore(release): 0.37.98 🎉 (#1076)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-08-26 15:23:06 +03:00
Almeida
f019f0fe97 feat(RESTAPIAttachment): add more properties (#1073) 2024-08-23 12:09:08 +03:00
renovate[bot]
e09ded64b3 chore(deps): lock file maintenance (#1072)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-23 12:08:21 +03:00
renovate[bot]
3aee5c4a0d chore(deps): lock file maintenance (#1071)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-23 11:46:22 +03:00
renovate[bot]
3455ed4cce chore(deps): update patch/minor dependencies (#1070)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-23 03:58:15 +03:00
github-actions[bot]
4ef182d009 chore(release): 0.37.97 🎉 (#1068)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-08-22 15:22:57 +03:00
Almeida
86a9f965dd refactor(rest): ensure types follow naming pattern (#1065)
Co-authored-by: Synbulat Biishev <signin@syjalo.dev>
2024-08-22 14:41:56 +03:00
github-actions[bot]
b90fddc285 chore(release): 0.37.96 🎉 (#1066)
Build ran for f67043b3f4

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-08-20 11:22:06 +03:00
Almeida
f67043b3f4 fix: nullable fields for scheduled event editing (#1064) 2024-08-19 17:48:33 +03:00
Almeida
19d2aeb4a8 fix: nullable recurrence_rule on patch (#1063) 2024-08-19 17:39:07 +03:00
github-actions[bot]
31b3766b19 chore(release): 0.37.95 🎉 (#1062)
Build ran for 1b1a865efe

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-08-19 15:23:04 +03:00
Naiyar
1b1a865efe feat(Routes): voice state endpoint (#1046) 2024-08-16 15:33:15 +03:00
renovate[bot]
a85521aa8b chore(deps): lock file maintenance (#1061)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-16 15:30:44 +03:00
renovate[bot]
8b00031c51 chore(deps): lock file maintenance (#1060)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-16 03:34:11 +03:00
Almeida
147e459a16 fix: interface name (#1059) 2024-08-15 21:16:59 +03:00
Almeida
fbfbc6b23f feat: recurring scheduled events (#1058) 2024-08-15 20:43:55 +03:00
Almeida
906dd8e241 feat(RESTJSONErrorCodes): UnknownStickerPack (#1055) 2024-08-15 20:02:28 +03:00
github-actions[bot]
25efb9c403 chore(release): 0.37.94 🎉 (#1054)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-08-15 15:32:12 +03:00
Almeida
822956fe78 feat: add Get Sticker Pack endpoint (#1053) 2024-08-15 01:58:20 +03:00
Almeida
d5047639e6 feat(APIApplication): approximate_user_install_count (#1052) 2024-08-15 01:54:52 +03:00
renovate[bot]
cbd8d108ee chore(deps): lock file maintenance (#1049)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-14 23:56:11 +03:00
renovate[bot]
d816bf31ab chore(deps): update dependency eslint-plugin-local to v6 (#1048)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-14 23:46:49 +03:00
renovate[bot]
71602b5c49 chore(deps): update patch/minor dependencies (#1047)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-14 23:46:07 +03:00
Lars_und_so
6ead98b782 feat(RESTOAuth2): add RESTPostOAuth2TokenRevocationQuery (#1050) 2024-08-14 23:45:29 +03:00
TÆMBØ
ea1a6c3c86 feat(Routes): get method on role endpoint (#1051) 2024-08-14 19:03:52 +01:00
renovate[bot]
a59f9f002f chore(deps): lock file maintenance (#1045)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-02 13:22:10 +03:00
renovate[bot]
ace41f38e4 chore(deps): lock file maintenance (#1044)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-02 13:12:14 +03:00
renovate[bot]
25a6f5330f chore(deps): update dependency @typescript-eslint/utils to v8 (#1042)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-02 12:59:39 +03:00
renovate[bot]
4409fc24c1 chore(deps): update dependency @types/node to v20.14.14 (#1041)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-02 12:59:29 +03:00
renovate[bot]
1178c23389 chore(deps): lock file maintenance (#1043)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-02 12:54:09 +03:00
renovate[bot]
34b0ddd105 chore(deps): lock file maintenance (#1039)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-26 09:40:44 +03:00
renovate[bot]
9c1fc9bdee chore(deps): update patch/minor dependencies (#1038)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-26 09:08:53 +03:00
github-actions[bot]
472fe5f837 chore(release): 0.37.93 🎉 (#1037)
Build ran for 588140c0a9

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-07-22 16:31:52 +04:00
Vlad Frangu
588140c0a9 chore: test for this in tsd land not ts land 2024-07-20 17:18:54 +04:00
Vlad Frangu
799044d3f0 chore: ensure routes definitions emit correct paths
to prevent a repeat of a bug
2024-07-20 17:07:37 +04:00
Back
eb7b3d90dd fix(CDNRoutes): inconsistency in route and wrong JSDoc (#1033) 2024-07-20 12:13:31 +03:00
Suneet Tipirneni
2c1ff0ea34 feat: add support for message forwarding (#971) 2024-07-20 12:11:45 +03:00
Danial Raza
5f22a6baca feat: application emojis (#1036) 2024-07-20 12:07:31 +03:00
renovate[bot]
cbcd51d093 chore(deps): lock file maintenance (#1035)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-20 12:07:01 +03:00
Almeida
4f66b4dd04 feat(ConnectionService): add Roblox (#1032) 2024-07-20 12:05:47 +03:00
Almeida
da9496f291 feat(RESTAPIPartialCurrentUserGuild): add banner (#1028) 2024-07-20 12:05:30 +03:00
renovate[bot]
b1e1c60a07 chore(deps): update patch/minor dependencies (#1034)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-20 12:04:12 +03:00
renovate[bot]
4fdc6db296 chore(deps): update dependency rimraf to v6 (#1030)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-15 01:23:09 +03:00
renovate[bot]
608f0fa8cd chore(deps): lock file maintenance (#1031)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-15 01:15:25 +03:00
renovate[bot]
0e8b624c3e chore(deps): update patch/minor dependencies (#1029)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-15 01:15:04 +03:00
renovate[bot]
1301b3417c chore(deps): update patch/minor dependencies (#1025)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-08 22:19:52 +03:00
renovate[bot]
e098870a08 chore(deps): lock file maintenance (#1026)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-06 13:58:10 +03:00
github-actions[bot]
2049dde09a chore(release): 0.37.92 🎉 (#1024)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-07-04 15:21:59 +03:00
Almeida
ea7cafaafa chore: ignore deprecated versions on linters (#1023) 2024-07-02 23:55:34 +03:00
Almeida
c05998de27 fix(RESTAPIPollCreate): optional properties (#1022) 2024-07-02 23:34:48 +03:00
renovate[bot]
f50ae60ea9 chore(deps): lock file maintenance (#1021)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-28 15:57:19 +03:00
renovate[bot]
0ebf2afb58 chore(deps): lock file maintenance (#1020)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-28 14:26:19 +03:00
renovate[bot]
ee09eafb76 chore(deps): lock file maintenance (#1019)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-28 04:38:05 +03:00
renovate[bot]
a7fac3dc04 chore(deps): update dependency eslint-plugin-local to v5 (#1018)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-28 04:12:39 +03:00
renovate[bot]
1fd407f481 chore(deps): update patch/minor dependencies (#1017)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-28 04:08:44 +03:00
351 changed files with 48099 additions and 26868 deletions

View File

@@ -37,6 +37,9 @@ const schema = [
},
] as const;
const REST_TYPE_NAME_REGEX =
/^REST(?:Get|Patch|Post|Put|Delete)[a-zA-Z0-9]+(?:JSONBody|FormDataBody|URLEncodedData|Result|Query)$/;
export = {
rules: {
'explicitly-optional-undefined-properties': ESLintUtils.RuleCreator.withoutDocs<Options, 'missingOptional'>({
@@ -131,5 +134,54 @@ export = {
},
defaultOptions: [{ interfaceEndings: [] }],
}),
'rest-type-naming-convention': ESLintUtils.RuleCreator.withoutDocs<[{ whitelist: string[] }], 'invalidName'>({
create: (context) => {
const { whitelist } = context.options[0];
const whitelistSet = new Set(whitelist);
return {
'TSTypeAliasDeclaration, TSInterfaceDeclaration': (
node: TSESTree.TSTypeAliasDeclaration | TSESTree.TSInterfaceDeclaration,
) => {
if (node.id.type !== AST_NODE_TYPES.Identifier) {
return;
}
const { name } = node.id;
if (whitelistSet.has(name)) {
return;
}
if (!REST_TYPE_NAME_REGEX.test(name)) {
context.report({
node: node.id,
messageId: 'invalidName',
data: { name },
});
}
},
};
},
meta: {
messages: {
invalidName: `{{ name }} does not match REST type naming convention. Must match ${REST_TYPE_NAME_REGEX.source}.`,
},
type: 'problem',
schema: [
{
type: 'object',
properties: {
whitelist: {
type: 'array',
items: {
type: 'string',
},
},
},
},
] as const,
},
defaultOptions: [{ whitelist: [] }],
}),
},
};

View File

@@ -1 +1,12 @@
deno/
gateway/v6/*
payloads/v6/*
rest/v6/*
v6.ts
gateway/v8/*
payloads/v8/*
rest/v8/*
utils/v8.ts
v8.ts

View File

@@ -17,5 +17,57 @@
"typescript-sort-keys/string-enum": "off",
"unicorn/prefer-math-trunc": "off",
"jsdoc/no-undefined-types": "off"
}
},
"overrides": [
{
"files": ["rest/v10/*.ts", "rest/v9/*.ts"],
"excludedFiles": ["rest/v10/index.ts", "rest/v9/index.ts"],
"rules": {
"local/rest-type-naming-convention": [
"error",
{
"whitelist": [
"RESTAPIAttachment",
"RESTAPIChannelPatchOverwrite",
"RESTAPIGuildChannelResolvable",
"RESTAPIGuildCreateOverwrite",
"RESTAPIGuildCreatePartialChannel",
"RESTAPIGuildCreateRole",
"RESTAPIGuildOnboardingPrompt",
"RESTAPIGuildOnboardingPromptOption",
"RESTAPIInteractionCallbackActivityInstanceResource",
"RESTAPIInteractionCallbackObject",
"RESTAPIInteractionCallbackResourceObject",
"RESTAPIMessageReference",
"RESTAPIPartialCurrentUserGuild",
"RESTAPIPoll",
"RESTOAuth2AdvancedBotAuthorizationQuery",
"RESTOAuth2AdvancedBotAuthorizationQueryResult",
"RESTOAuth2AuthorizationQuery",
"RESTOAuth2BotAuthorizationQuery",
"RESTOAuth2ImplicitAuthorizationQuery",
"RESTOAuth2ImplicitAuthorizationURLFragmentResult",
// Deprecated types
"APIChannelPatchOverwrite",
"APIGuildChannelResolvable",
"APIGuildCreateOverwrite",
"APIGuildCreatePartialChannel",
"APIGuildCreateRole",
"APIMessageReferenceSend",
"GetAPIVoiceRegionsResult",
"RESTAPIModifyGuildOnboardingPromptData",
"RESTAPIModifyGuildOnboardingPromptOptionData",
"RESTAPIPollCreate",
"RESTDeleteAPIChannelMessageOwnReaction",
"RESTGetAPIStickerPack",
"RESTOAuth2AuthorizationQueryResult",
"RESTPostAPIEntitlementBody"
]
}
]
}
}
]
}

1
.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
deno/** linguist-generated

View File

@@ -14,22 +14,22 @@ appearance, race, religion, or sexual identity and orientation.
Examples of behavior that contributes to creating a positive environment
include:
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
- The use of sexualized language or imagery and unwelcome sexual attention or
advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic
address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting
- The use of sexualized language or imagery and unwelcome sexual attention or
advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic
address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities

View File

@@ -74,9 +74,9 @@ The scope could be anything specifying the place of the commit change. For examp
The subject contains a succinct description of the change:
- use the imperative, present tense: "change" not "changed" nor "changes"
- don't capitalize the first letter
- no dot (.) at the end
- use the imperative, present tense: "change" not "changed" nor "changes"
- don't capitalize the first letter
- no dot (.) at the end
### Body

View File

@@ -2,23 +2,23 @@
**The issue tracker is only for bug reports and enhancement suggestions. If you have a question, please ask it in the [Discord server](https://discord.gg/djs) instead of opening an issue, or on [GitHub Discussions](https://github.com/discordjs/discord-api-types/discussions) you will get redirected there anyway.**
- [Code of Conduct](https://github.com/discordjs/discord-api-types/blob/main/.github/CODE_OF_CONDUCT.md)
- [Pull Request Guidelines](#pull-request-guidelines)
- [Development Setup](#development-setup)
- [Project Structure](#project-structure)
- [Contributing Tests](#contributing-tests)
- [Code of Conduct](https://github.com/discordjs/discord-api-types/blob/main/.github/CODE_OF_CONDUCT.md)
- [Pull Request Guidelines](#pull-request-guidelines)
- [Development Setup](#development-setup)
- [Project Structure](#project-structure)
- [Contributing Tests](#contributing-tests)
## Pull Request Guidelines
- Checkout a topic branch from a base branch, e.g. `main`, and merge back against that branch.
- Checkout a topic branch from a base branch, e.g. `main`, and merge back against that branch.
- If adding a new feature:
- If adding a new feature:
- Provide a convincing reason to add this feature. Ideally, you should open a suggestion issue first and have it approved before working on it.
- Provide a convincing reason to add this feature. Ideally, you should open a suggestion issue first and have it approved before working on it.
- If fixing a bug:
- If fixing a bug:
- If you are resolving a special issue, add `fix/close #xxxx[,#xxxx]` (#xxxx is the issue id) in your PR body for a better release log, e.g.
- If you are resolving a special issue, add `fix/close #xxxx[,#xxxx]` (#xxxx is the issue id) in your PR body for a better release log, e.g.
```
fix(Guild): handle events correctly
@@ -26,15 +26,15 @@
close #28
```
- Provide a detailed description of the bug in the PR. Live demo preferred.
- Provide a detailed description of the bug in the PR. Live demo preferred.
- It's OK to have multiple small commits as you work on the PR - GitHub can automatically squash them before merging.
- It's OK to have multiple small commits as you work on the PR - GitHub can automatically squash them before merging.
- Make sure tests pass!
- Make sure tests pass!
- Commit messages must follow the [commit message convention](./COMMIT_CONVENTION.md) so that changelogs can be automatically generated. Commit messages are automatically validated before commit (by invoking [Git Hooks](https://git-scm.com/docs/githooks) via [husky](https://github.com/typicode/husky)).
- Commit messages must follow the [commit message convention](./COMMIT_CONVENTION.md) so that changelogs can be automatically generated. Commit messages are automatically validated before commit (by invoking [Git Hooks](https://git-scm.com/docs/githooks) via [husky](https://github.com/typicode/husky)).
- No need to worry about code style as long as you have installed the dev dependencies - modified files are automatically formatted with Prettier on commit (by invoking [Git Hooks](https://git-scm.com/docs/githooks) via [husky](https://github.com/typicode/husky)).
- No need to worry about code style as long as you have installed the dev dependencies - modified files are automatically formatted with Prettier on commit (by invoking [Git Hooks](https://git-scm.com/docs/githooks) via [husky](https://github.com/typicode/husky)).
## Development Setup
@@ -48,6 +48,6 @@ $ npm i # install the dependencies of the project
A high level overview of tools used:
- [TypeScript](https://www.typescriptlang.org/) as the development language
- [ESLint](https://eslint.org/) for code-style
- [Prettier](https://prettier.io/) for code formatting
- [TypeScript](https://www.typescriptlang.org/) as the development language
- [ESLint](https://eslint.org/) for code-style
- [Prettier](https://prettier.io/) for code formatting

View File

@@ -1,6 +1,6 @@
name: Feature request
description: Request a feature for the discord-api-types library (we accept documented features of the official Discord developer API only!)
labels: [discussion]
labels: [feature request]
body:
- type: markdown
attributes:

View File

@@ -33,24 +33,5 @@ jobs:
- name: Run TSC
run: npm run build:ci
tsd:
name: TSD checks
runs-on: ubuntu-latest
needs: testing
if: needs.testing.result == 'success'
steps:
- name: Checkout Project
uses: actions/checkout@v4
- name: Use Node.js v20
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install Dependencies
run: npm ci
- name: Run TSD
- name: Run Type Tests
run: npm run test:types

View File

@@ -24,3 +24,15 @@ CHANGELOG.md
# Format all of scripts
!scripts/**/*
!.prettierrc.mjs
# Deprecated versions
gateway/v6/*
payloads/v6/*
rest/v6/*
v6.ts
gateway/v8/*
payloads/v8/*
rest/v8/*
utils/v8.ts
v8.ts

View File

@@ -6,5 +6,10 @@
"source.fixAll": "explicit",
"source.fixAll.eslint": "explicit"
},
"cSpell.enableFiletypes": ["mdx"]
"cSpell.enableFiletypes": ["mdx"],
"search.exclude": {
"**/v6": true,
"**/v8": true,
"deno": true
}
}

View File

@@ -1,3 +1,316 @@
## [0.38.2](https://github.com/discordjs/discord-api-types/compare/0.38.1...0.38.2) (2025-05-01)
# [0.38.1](https://github.com/discordjs/discord-api-types/compare/0.37.120...0.38.1) (2025-04-22)
### Features
* components v2 ([9f769c3](https://github.com/discordjs/discord-api-types/commit/9f769c319eed0cb3d26d5a5c0cb06f8f4a78c071))
* **CDNQuery:** add ImageSize type ([527ac2f](https://github.com/discordjs/discord-api-types/commit/527ac2fe0f80d88e62c025bcdab48d251ac171d6))
### BREAKING CHANGES
* Certain Component alias types have been renamed (for example APIMessageActionRowComponent is now APIComponentInMessageActionRow
## [0.37.120](https://github.com/discordjs/discord-api-types/compare/0.37.119...0.37.120) (2025-04-10)
### Bug Fixes
* Ensure autocomplete option values resolve to string for numerical types ([#1198](https://github.com/discordjs/discord-api-types/issues/1198)) ([cfac62e](https://github.com/discordjs/discord-api-types/commit/cfac62e44a02a535b8ed412dae263b8c31475c4a))
### Features
* **APIBaseInteraction:** add `attachment_size_limit` ([#1214](https://github.com/discordjs/discord-api-types/issues/1214)) ([5b6f0d4](https://github.com/discordjs/discord-api-types/commit/5b6f0d43a4e4886a924af840b388c3f482b79f5e))
* **RPC:** types ([#1200](https://github.com/discordjs/discord-api-types/issues/1200)) ([ac4d59d](https://github.com/discordjs/discord-api-types/commit/ac4d59d17edfa77cf28c644f8797204035508a0a))
* **webhook:** add `with_components` query param ([#1208](https://github.com/discordjs/discord-api-types/issues/1208)) ([def67db](https://github.com/discordjs/discord-api-types/commit/def67dbe90206a2a5c7d08ce734a2db6a9175ca3))
## [0.37.119](https://github.com/discordjs/discord-api-types/compare/0.37.118...0.37.119) (2025-02-02)
### Bug Fixes
* route escaping round three ([d5cdb37](https://github.com/discordjs/discord-api-types/commit/d5cdb37a8f06128e472f1ef13ec4d7823f956e7d))
## [0.37.118](https://github.com/discordjs/discord-api-types/compare/0.37.117...0.37.118) (2025-01-27)
### Features
* **APIGuild:** add `incidents_data` ([#822](https://github.com/discordjs/discord-api-types/issues/822)) ([8fe9c07](https://github.com/discordjs/discord-api-types/commit/8fe9c072b3188c51bb3713dae640ba227a266438))
* **MessageFlags:** add HasSnapshot ([#1141](https://github.com/discordjs/discord-api-types/issues/1141)) ([d446be5](https://github.com/discordjs/discord-api-types/commit/d446be5ecdcc3889e30a8af1ce2ac598ffe1b49d))
## [0.37.117](https://github.com/discordjs/discord-api-types/compare/0.37.116...0.37.117) (2025-01-20)
## [0.37.116](https://github.com/discordjs/discord-api-types/compare/0.37.115...0.37.116) (2025-01-16)
### Features
* **VoiceCloseCodes:** add `BadRequest` ([#1191](https://github.com/discordjs/discord-api-types/issues/1191)) ([d9b6935](https://github.com/discordjs/discord-api-types/commit/d9b6935b01665db70ddf8971be5ee42c96f12706))
## [0.37.115](https://github.com/discordjs/discord-api-types/compare/0.37.114...0.37.115) (2025-01-02)
## [0.37.114](https://github.com/discordjs/discord-api-types/compare/0.37.113...0.37.114) (2024-12-23)
### Bug Fixes
* reset pattern index after testing an input ([ee53ef7](https://github.com/discordjs/discord-api-types/commit/ee53ef7306e73d6b9bf341503231186ef27403fb)), closes [/github.com/discordjs/discord-api-types/issues/1181#issuecomment-2558971449](https://github.com//github.com/discordjs/discord-api-types/issues/1181/issues/issuecomment-2558971449)
## [0.37.113](https://github.com/discordjs/discord-api-types/compare/0.37.112...0.37.113) (2024-12-22)
### Bug Fixes
* skip encoded url parts from re-encoding ([fc4e7be](https://github.com/discordjs/discord-api-types/commit/fc4e7bebc50fe67a0aa5c49a95793e53d3ff0da9))
### Features
* **ConnectionService:** `Bluesky` and `Mastodon` ([#1174](https://github.com/discordjs/discord-api-types/issues/1174)) ([61592d6](https://github.com/discordjs/discord-api-types/commit/61592d6a85232a6d675a6faeddc096ae3467df6a))
* **payloads:** add entrypoint command payloads ([#1166](https://github.com/discordjs/discord-api-types/issues/1166)) ([bcb13de](https://github.com/discordjs/discord-api-types/commit/bcb13de75b6b45e2a5c1ebde5fa77719123b7993))
## [0.37.112](https://github.com/discordjs/discord-api-types/compare/0.37.111...0.37.112) (2024-12-19)
### Features
* **APISubscription:** add `renewal_sku_ids` ([#1172](https://github.com/discordjs/discord-api-types/issues/1172)) ([fb7c6b8](https://github.com/discordjs/discord-api-types/commit/fb7c6b8903bded49c379ba61a520818ba5ab15ba))
## [0.37.111](https://github.com/discordjs/discord-api-types/compare/0.37.110...0.37.111) (2024-12-09)
## [0.37.110](https://github.com/discordjs/discord-api-types/compare/0.37.109...0.37.110) (2024-11-28)
### Features
* add Chrunchyroll ([#1159](https://github.com/discordjs/discord-api-types/issues/1159)) ([92b1ce2](https://github.com/discordjs/discord-api-types/commit/92b1ce2faee4c4b43bfe524e78cfde1fbbfa5792))
## [0.37.109](https://github.com/discordjs/discord-api-types/compare/0.37.108...0.37.109) (2024-11-26)
### Features
* New entitlement endpoint behaviour ([#1145](https://github.com/discordjs/discord-api-types/issues/1145)) ([079fcd6](https://github.com/discordjs/discord-api-types/commit/079fcd6c006759193ea0b4b97d0d5a34c0459041))
## [0.37.108](https://github.com/discordjs/discord-api-types/compare/0.37.107...0.37.108) (2024-11-25)
### Features
* webhook events ([#1128](https://github.com/discordjs/discord-api-types/issues/1128)) ([ced86e4](https://github.com/discordjs/discord-api-types/commit/ced86e4b42c170c855ee148fb9bdb699ddf1a15b))
## [0.37.107](https://github.com/discordjs/discord-api-types/compare/0.37.106...0.37.107) (2024-11-21)
### Bug Fixes
* **security:** escape path parameters ([1ba3472](https://github.com/discordjs/discord-api-types/commit/1ba34729386c9b9dece237e761114f6d1ef11143))
## [0.37.106](https://github.com/discordjs/discord-api-types/compare/0.37.105...0.37.106) (2024-11-21)
## [0.37.105](https://github.com/discordjs/discord-api-types/compare/0.37.104...0.37.105) (2024-11-14)
### Features
* **_interactions:** Support partial guild objects ([#1142](https://github.com/discordjs/discord-api-types/issues/1142)) ([408165e](https://github.com/discordjs/discord-api-types/commit/408165e96fdd08d56183cf3c5348ee08e8aec056))
* full message object on message update ([#1140](https://github.com/discordjs/discord-api-types/issues/1140)) ([3512262](https://github.com/discordjs/discord-api-types/commit/35122621946ab797d4c0b83cecdec1c3df05b6e0))
* guild member banners ([#1057](https://github.com/discordjs/discord-api-types/issues/1057)) ([3f489f1](https://github.com/discordjs/discord-api-types/commit/3f489f18dccf5efe9e4983e66606998fafffc4dd))
## [0.37.104](https://github.com/discordjs/discord-api-types/compare/0.37.103...0.37.104) (2024-11-07)
### Bug Fixes
* add missing soundboard types ([#1134](https://github.com/discordjs/discord-api-types/issues/1134)) ([88d8bed](https://github.com/discordjs/discord-api-types/commit/88d8bed1caa88b604fec8f60ae1450f556c26c8e))
* **isInteractionButton:** handle `ButtonStyle.Premium` ([#1135](https://github.com/discordjs/discord-api-types/issues/1135)) ([736479c](https://github.com/discordjs/discord-api-types/commit/736479cab3332f6be122965963d37c8d4c99fc7f))
## [0.37.103](https://github.com/discordjs/discord-api-types/compare/0.37.102...0.37.103) (2024-10-21)
### Features
* audit log change key for boost bar ([#1120](https://github.com/discordjs/discord-api-types/issues/1120)) ([0fe6059](https://github.com/discordjs/discord-api-types/commit/0fe605975312829702df02b6432fce6d58a00e1f))
* soundboard audit log events ([#1122](https://github.com/discordjs/discord-api-types/issues/1122)) ([76fc8f0](https://github.com/discordjs/discord-api-types/commit/76fc8f035b4c92329896eb8110eaa8d640bf8ec8))
## [0.37.102](https://github.com/discordjs/discord-api-types/compare/0.37.101...0.37.102) (2024-10-14)
### Features
* recurrence rule change key on audit logs ([#1112](https://github.com/discordjs/discord-api-types/issues/1112)) ([4746e8d](https://github.com/discordjs/discord-api-types/commit/4746e8d48600edf905037a9cb9507884876d9508))
* soundboard ([#1113](https://github.com/discordjs/discord-api-types/issues/1113)) ([8d46830](https://github.com/discordjs/discord-api-types/commit/8d468300467db1c0a1726b4dfc6e92018e40e800))
## [0.37.101](https://github.com/discordjs/discord-api-types/compare/0.37.100...0.37.101) (2024-09-23)
### Bug Fixes
* **rest/oauth2:** correct string literal types containing bot scope ([#1101](https://github.com/discordjs/discord-api-types/issues/1101)) ([2ae2324](https://github.com/discordjs/discord-api-types/commit/2ae232477a1362eb0bd5c4aeee4a97bfbca7b2a2))
### Features
* add `VoiceChannelEffectSend` event ([#739](https://github.com/discordjs/discord-api-types/issues/739)) ([240226f](https://github.com/discordjs/discord-api-types/commit/240226f3d2d32df378400671a6bf31ceb2468a3c))
* missing subscription dispatch types ([#1105](https://github.com/discordjs/discord-api-types/issues/1105)) ([2b653a0](https://github.com/discordjs/discord-api-types/commit/2b653a00b3acb04979b7656142f3d8ef986fd561))
## [0.37.100](https://github.com/discordjs/discord-api-types/compare/0.37.99...0.37.100) (2024-09-05)
### Bug Fixes
* **APIMessageSnapshot:** mark `guild_id` as deprecated ([#1084](https://github.com/discordjs/discord-api-types/issues/1084)) ([3f3fe21](https://github.com/discordjs/discord-api-types/commit/3f3fe21e153f2fbe6c76ba1cc916367551b175b6))
* **GatewayGuildDeleteDispatchData:** make `unavailable` optional ([#1092](https://github.com/discordjs/discord-api-types/issues/1092)) ([258fb72](https://github.com/discordjs/discord-api-types/commit/258fb72f38c0513030dc5e1ae60e34fc3f83006d))
* replace deprecated `RESTAPIPollCreate` with `RESTAPIPoll` ([#1091](https://github.com/discordjs/discord-api-types/issues/1091)) ([d3b5187](https://github.com/discordjs/discord-api-types/commit/d3b5187c77f845eba29ab56de41408bcea7e9cb4))
### Features
* add subscriptions ([#1078](https://github.com/discordjs/discord-api-types/issues/1078)) ([8f78190](https://github.com/discordjs/discord-api-types/commit/8f781909f1f5a0d1db8c3e134f4e9e1e22837277))
* **APIMessageSnapshotFields:** add more fields ([#1085](https://github.com/discordjs/discord-api-types/issues/1085)) ([3de4ca8](https://github.com/discordjs/discord-api-types/commit/3de4ca8933be23ac05bf780957aea99e4a70c2fe))
* **ConnectionService:** add Amazon Music connection ([#1074](https://github.com/discordjs/discord-api-types/issues/1074)) ([011d439](https://github.com/discordjs/discord-api-types/commit/011d439971e1f5ee11ba7caea5ed10131cafd6a6))
* entry point commands and interaction callback response ([#1077](https://github.com/discordjs/discord-api-types/issues/1077)) ([b4b70d8](https://github.com/discordjs/discord-api-types/commit/b4b70d8bdcdbc175497366e6bb74dd3bc22c6738))
* **FormattingPatterns:** `GuildNavigation` and `LinkedRole` ([#1089](https://github.com/discordjs/discord-api-types/issues/1089)) ([0938b66](https://github.com/discordjs/discord-api-types/commit/0938b664cef8fd3758506a2f689bb20ead616bb4))
* **MessageType:** `PurchaseNotification` and `PollResult` ([#1040](https://github.com/discordjs/discord-api-types/issues/1040)) ([344274b](https://github.com/discordjs/discord-api-types/commit/344274b56c25b9a35a64fc61b170c177ee702e95))
* **RESTJSONErrorCodes:** add `40018`, `40019`, and `40094` ([#1056](https://github.com/discordjs/discord-api-types/issues/1056)) ([93e649a](https://github.com/discordjs/discord-api-types/commit/93e649a20de0fda31b3276f8affb3cf6890ea693))
* **RESTPatchAPIWebhookWithTokenMessageJSONBody:** `poll` ([#1067](https://github.com/discordjs/discord-api-types/issues/1067)) ([f770290](https://github.com/discordjs/discord-api-types/commit/f7702907172f84b57175b6f6c80eb2de210f6a7b))
## [0.37.99](https://github.com/discordjs/discord-api-types/compare/0.37.98...0.37.99) (2024-09-02)
### Features
* **GuildMemberFlags:** `IsGuest` and `DmSettingsUpsellAcknowledged` ([#1079](https://github.com/discordjs/discord-api-types/issues/1079)) ([2803e8d](https://github.com/discordjs/discord-api-types/commit/2803e8df2f2105099a1dc6e04193355a926718b9))
* remove unstable from stable fields ([#1086](https://github.com/discordjs/discord-api-types/issues/1086)) ([4b64f84](https://github.com/discordjs/discord-api-types/commit/4b64f84ddf0390f0a8979f57623c5f8c9051484d))
## [0.37.98](https://github.com/discordjs/discord-api-types/compare/0.37.97...0.37.98) (2024-08-26)
### Features
* **RESTAPIAttachment:** add more properties ([#1073](https://github.com/discordjs/discord-api-types/issues/1073)) ([f019f0f](https://github.com/discordjs/discord-api-types/commit/f019f0fe97ad47471dd6656e5fb148dc5761e1e0))
## [0.37.97](https://github.com/discordjs/discord-api-types/compare/0.37.96...0.37.97) (2024-08-22)
## [0.37.96](https://github.com/discordjs/discord-api-types/compare/0.37.95...0.37.96) (2024-08-20)
### Bug Fixes
* nullable `recurrence_rule` on patch ([#1063](https://github.com/discordjs/discord-api-types/issues/1063)) ([19d2aeb](https://github.com/discordjs/discord-api-types/commit/19d2aeb4a82dc781558240a674c36eadce270abf))
* nullable fields for scheduled event editing ([#1064](https://github.com/discordjs/discord-api-types/issues/1064)) ([f67043b](https://github.com/discordjs/discord-api-types/commit/f67043b3f46eea7286e959d223b78d140deac318))
## [0.37.95](https://github.com/discordjs/discord-api-types/compare/0.37.94...0.37.95) (2024-08-19)
### Bug Fixes
* interface name ([#1059](https://github.com/discordjs/discord-api-types/issues/1059)) ([147e459](https://github.com/discordjs/discord-api-types/commit/147e459a16c8b0e15a0dd50f75d62c6dd9098815))
### Features
* recurring scheduled events ([#1058](https://github.com/discordjs/discord-api-types/issues/1058)) ([fbfbc6b](https://github.com/discordjs/discord-api-types/commit/fbfbc6b23f2696f6db5fad8ea1543327d5b3cf07))
* **RESTJSONErrorCodes:** `UnknownStickerPack` ([#1055](https://github.com/discordjs/discord-api-types/issues/1055)) ([906dd8e](https://github.com/discordjs/discord-api-types/commit/906dd8e241be6acdf4d6d7b10ce4e7c139b0fd8b))
* **Routes:** voice state endpoint ([#1046](https://github.com/discordjs/discord-api-types/issues/1046)) ([1b1a865](https://github.com/discordjs/discord-api-types/commit/1b1a865efe4d95b34055616ed18dc3613b58f317))
## [0.37.94](https://github.com/discordjs/discord-api-types/compare/0.37.93...0.37.94) (2024-08-15)
### Features
* add Get Sticker Pack endpoint ([#1053](https://github.com/discordjs/discord-api-types/issues/1053)) ([822956f](https://github.com/discordjs/discord-api-types/commit/822956fe788f8eeda5da683189973bd6667cbc96))
* **APIApplication:** `approximate_user_install_count` ([#1052](https://github.com/discordjs/discord-api-types/issues/1052)) ([d504763](https://github.com/discordjs/discord-api-types/commit/d5047639e691cc26e865cc6c06a312e09f0fb4c7))
* **RESTOAuth2:** add RESTPostOAuth2TokenRevocationQuery ([#1050](https://github.com/discordjs/discord-api-types/issues/1050)) ([6ead98b](https://github.com/discordjs/discord-api-types/commit/6ead98b78218830fee308a0425d9078957a662b2))
* **Routes:** get method on role endpoint ([#1051](https://github.com/discordjs/discord-api-types/issues/1051)) ([ea1a6c3](https://github.com/discordjs/discord-api-types/commit/ea1a6c3c86ec0d4c663e2191a488a3716ecdd7cc))
## [0.37.93](https://github.com/discordjs/discord-api-types/compare/0.37.92...0.37.93) (2024-07-22)
### Bug Fixes
* **CDNRoutes:** inconsistency in route and wrong JSDoc ([#1033](https://github.com/discordjs/discord-api-types/issues/1033)) ([eb7b3d9](https://github.com/discordjs/discord-api-types/commit/eb7b3d90dd6a847b80d051006a597e77d70caab2))
### Features
* add support for message forwarding ([#971](https://github.com/discordjs/discord-api-types/issues/971)) ([2c1ff0e](https://github.com/discordjs/discord-api-types/commit/2c1ff0ea3443fb500315d6c69674a875a11addf6))
* application emojis ([#1036](https://github.com/discordjs/discord-api-types/issues/1036)) ([5f22a6b](https://github.com/discordjs/discord-api-types/commit/5f22a6bacabef6b11e170a6f67694359bb3180e8))
* **ConnectionService:** add `Roblox` ([#1032](https://github.com/discordjs/discord-api-types/issues/1032)) ([4f66b4d](https://github.com/discordjs/discord-api-types/commit/4f66b4dd049d2ace638374c09a06272bd517ad3a))
* **RESTAPIPartialCurrentUserGuild:** add `banner` ([#1028](https://github.com/discordjs/discord-api-types/issues/1028)) ([da9496f](https://github.com/discordjs/discord-api-types/commit/da9496f291fff364b8d35b02363b93933c19823a))
## [0.37.92](https://github.com/discordjs/discord-api-types/compare/0.37.91...0.37.92) (2024-07-04)
### Bug Fixes
* **RESTAPIPollCreate:** optional properties ([#1022](https://github.com/discordjs/discord-api-types/issues/1022)) ([c05998d](https://github.com/discordjs/discord-api-types/commit/c05998de274ef7a8d570db9d23c9ad9c228eeccc))
## [0.37.91](https://github.com/discordjs/discord-api-types/compare/0.37.90...0.37.91) (2024-06-27)

View File

@@ -77,25 +77,25 @@ import { APIUser } from 'https://cdn.skypack.dev/discord-api-types/v10?dts';
The exports of each API version is split into three main parts:
- Everything exported with the `API` prefix represents a payload you may get from the REST API _or_ the Gateway.
- Everything exported with the `API` prefix represents a payload you may get from the REST API _or_ the Gateway.
- Everything exported with the `Gateway` prefix represents data that ONLY comes from or is directly related to the Gateway.
- Everything exported with the `Gateway` prefix represents data that ONLY comes from or is directly related to the Gateway.
- Everything exported with the `REST` prefix represents data that ONLY comes from or is directly related to the REST API.
- Everything exported with the `REST` prefix represents data that ONLY comes from or is directly related to the REST API.
- For endpoint options, they will follow the following structure: `REST<HTTP Method><Type><Query|(JSON|FormData)Body|Result>` where the type represents what it will return.
- For endpoint options, they will follow the following structure: `REST<HTTP Method><Type><Query|(JSON|FormData)Body|Result>` where the type represents what it will return.
- For example, `RESTPostAPIChannelMessageJSONBody` or `RESTGetAPIGatewayBotInfoResult`.
- For example, `RESTPostAPIChannelMessageJSONBody` or `RESTGetAPIGatewayBotInfoResult`.
- Some exported types (specifically OAuth2 related ones) may not respect this entire structure due to the nature of the fields. They will start with either `RESTOAuth2` or with something similar to `REST<HTTP Method>OAuth2`
- Some exported types (specifically OAuth2 related ones) may not respect this entire structure due to the nature of the fields. They will start with either `RESTOAuth2` or with something similar to `REST<HTTP Method>OAuth2`
- If a type ends with `Result`, then it represents the expected result by calling its accompanying route.
- If a type ends with `Result`, then it represents the expected result by calling its accompanying route.
- Types that are exported as `never` usually mean the result will be a `204 No Content`, so you can safely ignore it. This does **not** account for errors.
- Types that are exported as `never` usually mean the result will be a `204 No Content`, so you can safely ignore it. This does **not** account for errors.
- Anything else that is miscellaneous will be exported based on what it represents (for example the `REST` route object).
- Anything else that is miscellaneous will be exported based on what it represents (for example the `REST` route object).
- There may be types exported that are identical for all versions. These will be exported as is and can be found in the `globals` file. They will still be prefixed accordingly as described above.
- There may be types exported that are identical for all versions. These will be exported as is and can be found in the `globals` file. They will still be prefixed accordingly as described above.
**A note about how types are documented**: This package will add types only for known and documented properties that are present in Discord's [API Documentation repository](https://github.com/discord/discord-api-docs),
that are mentioned in an open pull request, or known through other means _and have received the green light to be used_.

313
deno/CHANGELOG.md generated
View File

@@ -1,3 +1,316 @@
## [0.38.2](https://github.com/discordjs/discord-api-types/compare/0.38.1...0.38.2) (2025-05-01)
# [0.38.1](https://github.com/discordjs/discord-api-types/compare/0.37.120...0.38.1) (2025-04-22)
### Features
* components v2 ([9f769c3](https://github.com/discordjs/discord-api-types/commit/9f769c319eed0cb3d26d5a5c0cb06f8f4a78c071))
* **CDNQuery:** add ImageSize type ([527ac2f](https://github.com/discordjs/discord-api-types/commit/527ac2fe0f80d88e62c025bcdab48d251ac171d6))
### BREAKING CHANGES
* Certain Component alias types have been renamed (for example APIMessageActionRowComponent is now APIComponentInMessageActionRow
## [0.37.120](https://github.com/discordjs/discord-api-types/compare/0.37.119...0.37.120) (2025-04-10)
### Bug Fixes
* Ensure autocomplete option values resolve to string for numerical types ([#1198](https://github.com/discordjs/discord-api-types/issues/1198)) ([cfac62e](https://github.com/discordjs/discord-api-types/commit/cfac62e44a02a535b8ed412dae263b8c31475c4a))
### Features
* **APIBaseInteraction:** add `attachment_size_limit` ([#1214](https://github.com/discordjs/discord-api-types/issues/1214)) ([5b6f0d4](https://github.com/discordjs/discord-api-types/commit/5b6f0d43a4e4886a924af840b388c3f482b79f5e))
* **RPC:** types ([#1200](https://github.com/discordjs/discord-api-types/issues/1200)) ([ac4d59d](https://github.com/discordjs/discord-api-types/commit/ac4d59d17edfa77cf28c644f8797204035508a0a))
* **webhook:** add `with_components` query param ([#1208](https://github.com/discordjs/discord-api-types/issues/1208)) ([def67db](https://github.com/discordjs/discord-api-types/commit/def67dbe90206a2a5c7d08ce734a2db6a9175ca3))
## [0.37.119](https://github.com/discordjs/discord-api-types/compare/0.37.118...0.37.119) (2025-02-02)
### Bug Fixes
* route escaping round three ([d5cdb37](https://github.com/discordjs/discord-api-types/commit/d5cdb37a8f06128e472f1ef13ec4d7823f956e7d))
## [0.37.118](https://github.com/discordjs/discord-api-types/compare/0.37.117...0.37.118) (2025-01-27)
### Features
* **APIGuild:** add `incidents_data` ([#822](https://github.com/discordjs/discord-api-types/issues/822)) ([8fe9c07](https://github.com/discordjs/discord-api-types/commit/8fe9c072b3188c51bb3713dae640ba227a266438))
* **MessageFlags:** add HasSnapshot ([#1141](https://github.com/discordjs/discord-api-types/issues/1141)) ([d446be5](https://github.com/discordjs/discord-api-types/commit/d446be5ecdcc3889e30a8af1ce2ac598ffe1b49d))
## [0.37.117](https://github.com/discordjs/discord-api-types/compare/0.37.116...0.37.117) (2025-01-20)
## [0.37.116](https://github.com/discordjs/discord-api-types/compare/0.37.115...0.37.116) (2025-01-16)
### Features
* **VoiceCloseCodes:** add `BadRequest` ([#1191](https://github.com/discordjs/discord-api-types/issues/1191)) ([d9b6935](https://github.com/discordjs/discord-api-types/commit/d9b6935b01665db70ddf8971be5ee42c96f12706))
## [0.37.115](https://github.com/discordjs/discord-api-types/compare/0.37.114...0.37.115) (2025-01-02)
## [0.37.114](https://github.com/discordjs/discord-api-types/compare/0.37.113...0.37.114) (2024-12-23)
### Bug Fixes
* reset pattern index after testing an input ([ee53ef7](https://github.com/discordjs/discord-api-types/commit/ee53ef7306e73d6b9bf341503231186ef27403fb)), closes [/github.com/discordjs/discord-api-types/issues/1181#issuecomment-2558971449](https://github.com//github.com/discordjs/discord-api-types/issues/1181/issues/issuecomment-2558971449)
## [0.37.113](https://github.com/discordjs/discord-api-types/compare/0.37.112...0.37.113) (2024-12-22)
### Bug Fixes
* skip encoded url parts from re-encoding ([fc4e7be](https://github.com/discordjs/discord-api-types/commit/fc4e7bebc50fe67a0aa5c49a95793e53d3ff0da9))
### Features
* **ConnectionService:** `Bluesky` and `Mastodon` ([#1174](https://github.com/discordjs/discord-api-types/issues/1174)) ([61592d6](https://github.com/discordjs/discord-api-types/commit/61592d6a85232a6d675a6faeddc096ae3467df6a))
* **payloads:** add entrypoint command payloads ([#1166](https://github.com/discordjs/discord-api-types/issues/1166)) ([bcb13de](https://github.com/discordjs/discord-api-types/commit/bcb13de75b6b45e2a5c1ebde5fa77719123b7993))
## [0.37.112](https://github.com/discordjs/discord-api-types/compare/0.37.111...0.37.112) (2024-12-19)
### Features
* **APISubscription:** add `renewal_sku_ids` ([#1172](https://github.com/discordjs/discord-api-types/issues/1172)) ([fb7c6b8](https://github.com/discordjs/discord-api-types/commit/fb7c6b8903bded49c379ba61a520818ba5ab15ba))
## [0.37.111](https://github.com/discordjs/discord-api-types/compare/0.37.110...0.37.111) (2024-12-09)
## [0.37.110](https://github.com/discordjs/discord-api-types/compare/0.37.109...0.37.110) (2024-11-28)
### Features
* add Chrunchyroll ([#1159](https://github.com/discordjs/discord-api-types/issues/1159)) ([92b1ce2](https://github.com/discordjs/discord-api-types/commit/92b1ce2faee4c4b43bfe524e78cfde1fbbfa5792))
## [0.37.109](https://github.com/discordjs/discord-api-types/compare/0.37.108...0.37.109) (2024-11-26)
### Features
* New entitlement endpoint behaviour ([#1145](https://github.com/discordjs/discord-api-types/issues/1145)) ([079fcd6](https://github.com/discordjs/discord-api-types/commit/079fcd6c006759193ea0b4b97d0d5a34c0459041))
## [0.37.108](https://github.com/discordjs/discord-api-types/compare/0.37.107...0.37.108) (2024-11-25)
### Features
* webhook events ([#1128](https://github.com/discordjs/discord-api-types/issues/1128)) ([ced86e4](https://github.com/discordjs/discord-api-types/commit/ced86e4b42c170c855ee148fb9bdb699ddf1a15b))
## [0.37.107](https://github.com/discordjs/discord-api-types/compare/0.37.106...0.37.107) (2024-11-21)
### Bug Fixes
* **security:** escape path parameters ([1ba3472](https://github.com/discordjs/discord-api-types/commit/1ba34729386c9b9dece237e761114f6d1ef11143))
## [0.37.106](https://github.com/discordjs/discord-api-types/compare/0.37.105...0.37.106) (2024-11-21)
## [0.37.105](https://github.com/discordjs/discord-api-types/compare/0.37.104...0.37.105) (2024-11-14)
### Features
* **_interactions:** Support partial guild objects ([#1142](https://github.com/discordjs/discord-api-types/issues/1142)) ([408165e](https://github.com/discordjs/discord-api-types/commit/408165e96fdd08d56183cf3c5348ee08e8aec056))
* full message object on message update ([#1140](https://github.com/discordjs/discord-api-types/issues/1140)) ([3512262](https://github.com/discordjs/discord-api-types/commit/35122621946ab797d4c0b83cecdec1c3df05b6e0))
* guild member banners ([#1057](https://github.com/discordjs/discord-api-types/issues/1057)) ([3f489f1](https://github.com/discordjs/discord-api-types/commit/3f489f18dccf5efe9e4983e66606998fafffc4dd))
## [0.37.104](https://github.com/discordjs/discord-api-types/compare/0.37.103...0.37.104) (2024-11-07)
### Bug Fixes
* add missing soundboard types ([#1134](https://github.com/discordjs/discord-api-types/issues/1134)) ([88d8bed](https://github.com/discordjs/discord-api-types/commit/88d8bed1caa88b604fec8f60ae1450f556c26c8e))
* **isInteractionButton:** handle `ButtonStyle.Premium` ([#1135](https://github.com/discordjs/discord-api-types/issues/1135)) ([736479c](https://github.com/discordjs/discord-api-types/commit/736479cab3332f6be122965963d37c8d4c99fc7f))
## [0.37.103](https://github.com/discordjs/discord-api-types/compare/0.37.102...0.37.103) (2024-10-21)
### Features
* audit log change key for boost bar ([#1120](https://github.com/discordjs/discord-api-types/issues/1120)) ([0fe6059](https://github.com/discordjs/discord-api-types/commit/0fe605975312829702df02b6432fce6d58a00e1f))
* soundboard audit log events ([#1122](https://github.com/discordjs/discord-api-types/issues/1122)) ([76fc8f0](https://github.com/discordjs/discord-api-types/commit/76fc8f035b4c92329896eb8110eaa8d640bf8ec8))
## [0.37.102](https://github.com/discordjs/discord-api-types/compare/0.37.101...0.37.102) (2024-10-14)
### Features
* recurrence rule change key on audit logs ([#1112](https://github.com/discordjs/discord-api-types/issues/1112)) ([4746e8d](https://github.com/discordjs/discord-api-types/commit/4746e8d48600edf905037a9cb9507884876d9508))
* soundboard ([#1113](https://github.com/discordjs/discord-api-types/issues/1113)) ([8d46830](https://github.com/discordjs/discord-api-types/commit/8d468300467db1c0a1726b4dfc6e92018e40e800))
## [0.37.101](https://github.com/discordjs/discord-api-types/compare/0.37.100...0.37.101) (2024-09-23)
### Bug Fixes
* **rest/oauth2:** correct string literal types containing bot scope ([#1101](https://github.com/discordjs/discord-api-types/issues/1101)) ([2ae2324](https://github.com/discordjs/discord-api-types/commit/2ae232477a1362eb0bd5c4aeee4a97bfbca7b2a2))
### Features
* add `VoiceChannelEffectSend` event ([#739](https://github.com/discordjs/discord-api-types/issues/739)) ([240226f](https://github.com/discordjs/discord-api-types/commit/240226f3d2d32df378400671a6bf31ceb2468a3c))
* missing subscription dispatch types ([#1105](https://github.com/discordjs/discord-api-types/issues/1105)) ([2b653a0](https://github.com/discordjs/discord-api-types/commit/2b653a00b3acb04979b7656142f3d8ef986fd561))
## [0.37.100](https://github.com/discordjs/discord-api-types/compare/0.37.99...0.37.100) (2024-09-05)
### Bug Fixes
* **APIMessageSnapshot:** mark `guild_id` as deprecated ([#1084](https://github.com/discordjs/discord-api-types/issues/1084)) ([3f3fe21](https://github.com/discordjs/discord-api-types/commit/3f3fe21e153f2fbe6c76ba1cc916367551b175b6))
* **GatewayGuildDeleteDispatchData:** make `unavailable` optional ([#1092](https://github.com/discordjs/discord-api-types/issues/1092)) ([258fb72](https://github.com/discordjs/discord-api-types/commit/258fb72f38c0513030dc5e1ae60e34fc3f83006d))
* replace deprecated `RESTAPIPollCreate` with `RESTAPIPoll` ([#1091](https://github.com/discordjs/discord-api-types/issues/1091)) ([d3b5187](https://github.com/discordjs/discord-api-types/commit/d3b5187c77f845eba29ab56de41408bcea7e9cb4))
### Features
* add subscriptions ([#1078](https://github.com/discordjs/discord-api-types/issues/1078)) ([8f78190](https://github.com/discordjs/discord-api-types/commit/8f781909f1f5a0d1db8c3e134f4e9e1e22837277))
* **APIMessageSnapshotFields:** add more fields ([#1085](https://github.com/discordjs/discord-api-types/issues/1085)) ([3de4ca8](https://github.com/discordjs/discord-api-types/commit/3de4ca8933be23ac05bf780957aea99e4a70c2fe))
* **ConnectionService:** add Amazon Music connection ([#1074](https://github.com/discordjs/discord-api-types/issues/1074)) ([011d439](https://github.com/discordjs/discord-api-types/commit/011d439971e1f5ee11ba7caea5ed10131cafd6a6))
* entry point commands and interaction callback response ([#1077](https://github.com/discordjs/discord-api-types/issues/1077)) ([b4b70d8](https://github.com/discordjs/discord-api-types/commit/b4b70d8bdcdbc175497366e6bb74dd3bc22c6738))
* **FormattingPatterns:** `GuildNavigation` and `LinkedRole` ([#1089](https://github.com/discordjs/discord-api-types/issues/1089)) ([0938b66](https://github.com/discordjs/discord-api-types/commit/0938b664cef8fd3758506a2f689bb20ead616bb4))
* **MessageType:** `PurchaseNotification` and `PollResult` ([#1040](https://github.com/discordjs/discord-api-types/issues/1040)) ([344274b](https://github.com/discordjs/discord-api-types/commit/344274b56c25b9a35a64fc61b170c177ee702e95))
* **RESTJSONErrorCodes:** add `40018`, `40019`, and `40094` ([#1056](https://github.com/discordjs/discord-api-types/issues/1056)) ([93e649a](https://github.com/discordjs/discord-api-types/commit/93e649a20de0fda31b3276f8affb3cf6890ea693))
* **RESTPatchAPIWebhookWithTokenMessageJSONBody:** `poll` ([#1067](https://github.com/discordjs/discord-api-types/issues/1067)) ([f770290](https://github.com/discordjs/discord-api-types/commit/f7702907172f84b57175b6f6c80eb2de210f6a7b))
## [0.37.99](https://github.com/discordjs/discord-api-types/compare/0.37.98...0.37.99) (2024-09-02)
### Features
* **GuildMemberFlags:** `IsGuest` and `DmSettingsUpsellAcknowledged` ([#1079](https://github.com/discordjs/discord-api-types/issues/1079)) ([2803e8d](https://github.com/discordjs/discord-api-types/commit/2803e8df2f2105099a1dc6e04193355a926718b9))
* remove unstable from stable fields ([#1086](https://github.com/discordjs/discord-api-types/issues/1086)) ([4b64f84](https://github.com/discordjs/discord-api-types/commit/4b64f84ddf0390f0a8979f57623c5f8c9051484d))
## [0.37.98](https://github.com/discordjs/discord-api-types/compare/0.37.97...0.37.98) (2024-08-26)
### Features
* **RESTAPIAttachment:** add more properties ([#1073](https://github.com/discordjs/discord-api-types/issues/1073)) ([f019f0f](https://github.com/discordjs/discord-api-types/commit/f019f0fe97ad47471dd6656e5fb148dc5761e1e0))
## [0.37.97](https://github.com/discordjs/discord-api-types/compare/0.37.96...0.37.97) (2024-08-22)
## [0.37.96](https://github.com/discordjs/discord-api-types/compare/0.37.95...0.37.96) (2024-08-20)
### Bug Fixes
* nullable `recurrence_rule` on patch ([#1063](https://github.com/discordjs/discord-api-types/issues/1063)) ([19d2aeb](https://github.com/discordjs/discord-api-types/commit/19d2aeb4a82dc781558240a674c36eadce270abf))
* nullable fields for scheduled event editing ([#1064](https://github.com/discordjs/discord-api-types/issues/1064)) ([f67043b](https://github.com/discordjs/discord-api-types/commit/f67043b3f46eea7286e959d223b78d140deac318))
## [0.37.95](https://github.com/discordjs/discord-api-types/compare/0.37.94...0.37.95) (2024-08-19)
### Bug Fixes
* interface name ([#1059](https://github.com/discordjs/discord-api-types/issues/1059)) ([147e459](https://github.com/discordjs/discord-api-types/commit/147e459a16c8b0e15a0dd50f75d62c6dd9098815))
### Features
* recurring scheduled events ([#1058](https://github.com/discordjs/discord-api-types/issues/1058)) ([fbfbc6b](https://github.com/discordjs/discord-api-types/commit/fbfbc6b23f2696f6db5fad8ea1543327d5b3cf07))
* **RESTJSONErrorCodes:** `UnknownStickerPack` ([#1055](https://github.com/discordjs/discord-api-types/issues/1055)) ([906dd8e](https://github.com/discordjs/discord-api-types/commit/906dd8e241be6acdf4d6d7b10ce4e7c139b0fd8b))
* **Routes:** voice state endpoint ([#1046](https://github.com/discordjs/discord-api-types/issues/1046)) ([1b1a865](https://github.com/discordjs/discord-api-types/commit/1b1a865efe4d95b34055616ed18dc3613b58f317))
## [0.37.94](https://github.com/discordjs/discord-api-types/compare/0.37.93...0.37.94) (2024-08-15)
### Features
* add Get Sticker Pack endpoint ([#1053](https://github.com/discordjs/discord-api-types/issues/1053)) ([822956f](https://github.com/discordjs/discord-api-types/commit/822956fe788f8eeda5da683189973bd6667cbc96))
* **APIApplication:** `approximate_user_install_count` ([#1052](https://github.com/discordjs/discord-api-types/issues/1052)) ([d504763](https://github.com/discordjs/discord-api-types/commit/d5047639e691cc26e865cc6c06a312e09f0fb4c7))
* **RESTOAuth2:** add RESTPostOAuth2TokenRevocationQuery ([#1050](https://github.com/discordjs/discord-api-types/issues/1050)) ([6ead98b](https://github.com/discordjs/discord-api-types/commit/6ead98b78218830fee308a0425d9078957a662b2))
* **Routes:** get method on role endpoint ([#1051](https://github.com/discordjs/discord-api-types/issues/1051)) ([ea1a6c3](https://github.com/discordjs/discord-api-types/commit/ea1a6c3c86ec0d4c663e2191a488a3716ecdd7cc))
## [0.37.93](https://github.com/discordjs/discord-api-types/compare/0.37.92...0.37.93) (2024-07-22)
### Bug Fixes
* **CDNRoutes:** inconsistency in route and wrong JSDoc ([#1033](https://github.com/discordjs/discord-api-types/issues/1033)) ([eb7b3d9](https://github.com/discordjs/discord-api-types/commit/eb7b3d90dd6a847b80d051006a597e77d70caab2))
### Features
* add support for message forwarding ([#971](https://github.com/discordjs/discord-api-types/issues/971)) ([2c1ff0e](https://github.com/discordjs/discord-api-types/commit/2c1ff0ea3443fb500315d6c69674a875a11addf6))
* application emojis ([#1036](https://github.com/discordjs/discord-api-types/issues/1036)) ([5f22a6b](https://github.com/discordjs/discord-api-types/commit/5f22a6bacabef6b11e170a6f67694359bb3180e8))
* **ConnectionService:** add `Roblox` ([#1032](https://github.com/discordjs/discord-api-types/issues/1032)) ([4f66b4d](https://github.com/discordjs/discord-api-types/commit/4f66b4dd049d2ace638374c09a06272bd517ad3a))
* **RESTAPIPartialCurrentUserGuild:** add `banner` ([#1028](https://github.com/discordjs/discord-api-types/issues/1028)) ([da9496f](https://github.com/discordjs/discord-api-types/commit/da9496f291fff364b8d35b02363b93933c19823a))
## [0.37.92](https://github.com/discordjs/discord-api-types/compare/0.37.91...0.37.92) (2024-07-04)
### Bug Fixes
* **RESTAPIPollCreate:** optional properties ([#1022](https://github.com/discordjs/discord-api-types/issues/1022)) ([c05998d](https://github.com/discordjs/discord-api-types/commit/c05998de274ef7a8d570db9d23c9ad9c228eeccc))
## [0.37.91](https://github.com/discordjs/discord-api-types/compare/0.37.90...0.37.91) (2024-06-27)

20
deno/README.md generated
View File

@@ -77,25 +77,25 @@ import { APIUser } from 'https://cdn.skypack.dev/discord-api-types/v10?dts';
The exports of each API version is split into three main parts:
- Everything exported with the `API` prefix represents a payload you may get from the REST API _or_ the Gateway.
- Everything exported with the `API` prefix represents a payload you may get from the REST API _or_ the Gateway.
- Everything exported with the `Gateway` prefix represents data that ONLY comes from or is directly related to the Gateway.
- Everything exported with the `Gateway` prefix represents data that ONLY comes from or is directly related to the Gateway.
- Everything exported with the `REST` prefix represents data that ONLY comes from or is directly related to the REST API.
- Everything exported with the `REST` prefix represents data that ONLY comes from or is directly related to the REST API.
- For endpoint options, they will follow the following structure: `REST<HTTP Method><Type><Query|(JSON|FormData)Body|Result>` where the type represents what it will return.
- For endpoint options, they will follow the following structure: `REST<HTTP Method><Type><Query|(JSON|FormData)Body|Result>` where the type represents what it will return.
- For example, `RESTPostAPIChannelMessageJSONBody` or `RESTGetAPIGatewayBotInfoResult`.
- For example, `RESTPostAPIChannelMessageJSONBody` or `RESTGetAPIGatewayBotInfoResult`.
- Some exported types (specifically OAuth2 related ones) may not respect this entire structure due to the nature of the fields. They will start with either `RESTOAuth2` or with something similar to `REST<HTTP Method>OAuth2`
- Some exported types (specifically OAuth2 related ones) may not respect this entire structure due to the nature of the fields. They will start with either `RESTOAuth2` or with something similar to `REST<HTTP Method>OAuth2`
- If a type ends with `Result`, then it represents the expected result by calling its accompanying route.
- If a type ends with `Result`, then it represents the expected result by calling its accompanying route.
- Types that are exported as `never` usually mean the result will be a `204 No Content`, so you can safely ignore it. This does **not** account for errors.
- Types that are exported as `never` usually mean the result will be a `204 No Content`, so you can safely ignore it. This does **not** account for errors.
- Anything else that is miscellaneous will be exported based on what it represents (for example the `REST` route object).
- Anything else that is miscellaneous will be exported based on what it represents (for example the `REST` route object).
- There may be types exported that are identical for all versions. These will be exported as is and can be found in the `globals` file. They will still be prefixed accordingly as described above.
- There may be types exported that are identical for all versions. These will be exported as is and can be found in the `globals` file. They will still be prefixed accordingly as described above.
**A note about how types are documented**: This package will add types only for known and documented properties that are present in Discord's [API Documentation repository](https://github.com/discord/discord-api-docs),
that are mentioned in an open pull request, or known through other means _and have received the green light to be used_.

View File

@@ -1,5 +1,5 @@
/**
* https://discord.com/developers/docs/topics/gateway#connecting-gateway-url-query-string-params
* @see {@link https://discord.com/developers/docs/topics/gateway#connecting-gateway-url-query-string-params}
*/
export interface GatewayURLQuery {
v: string;

1029
deno/gateway/v10.ts generated

File diff suppressed because it is too large Load Diff

4
deno/gateway/v8.ts generated
View File

@@ -24,7 +24,7 @@ import type {
InviteTargetType,
PresenceUpdateStatus,
} from '../payloads/v8/mod.ts';
import type { Nullable } from '../utils/internals.ts';
import type { _Nullable } from '../utils/internals.ts';
export * from './common.ts';
@@ -805,7 +805,7 @@ export type GatewayGuildMemberUpdateDispatch = DataPayload<
*
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type GatewayGuildMemberUpdateDispatchData = Nullable<Pick<APIGuildMember, 'joined_at'>> &
export type GatewayGuildMemberUpdateDispatchData = _Nullable<Pick<APIGuildMember, 'joined_at'>> &
Omit<APIGuildMember, 'deaf' | 'joined_at' | 'mute' | 'user'> &
Partial<Pick<APIGuildMember, 'deaf' | 'mute'>> &
Required<Pick<APIGuildMember, 'user'>> & {

1029
deno/gateway/v9.ts generated

File diff suppressed because it is too large Load Diff

20
deno/globals.ts generated
View File

@@ -1,17 +1,15 @@
/**
* https://discord.com/developers/docs/reference#snowflakes
* @see {@link https://discord.com/developers/docs/reference#snowflakes}
*/
export type Snowflake = string;
/**
* https://discord.com/developers/docs/topics/permissions
*
* @internal
* @see {@link https://discord.com/developers/docs/topics/permissions}
*/
export type Permissions = string;
/**
* https://discord.com/developers/docs/reference#message-formatting-formats
* @see {@link https://discord.com/developers/docs/reference#message-formatting-formats}
*/
export const FormattingPatterns = {
/**
@@ -93,6 +91,18 @@ export const FormattingPatterns = {
* The `timestamp` and `style` group properties are present on the `exec` result of this expression
*/
StyledTimestamp: /<t:(?<timestamp>-?\d{1,13}):(?<style>[DFRTdft])>/,
/**
* Regular expression for matching a guild navigation mention
*
* The `type` group property is present on the `exec` result of this expression
*/
GuildNavigation: /<id:(?<type>customize|browse|guide|linked-roles)>/,
/**
* Regular expression for matching a linked role mention
*
* The `id` group property is present on the `exec` result of this expression
*/
LinkedRole: /<id:linked-roles:(?<id>\d{17,20})>/,
} as const;
/**

View File

@@ -1,7 +1,7 @@
import type { LocaleString } from '../rest/common.ts';
import type { Locale } from '../rest/common.ts';
/**
* https://discord.com/developers/docs/topics/permissions#permissions-bitwise-permission-flags
* @see {@link https://discord.com/developers/docs/topics/permissions#permissions-bitwise-permission-flags}
*
* These flags are exported as `BigInt`s and NOT numbers. Wrapping them in `Number()`
* may cause issues, try to use BigInts as much as possible or modules that can
@@ -178,7 +178,7 @@ export const PermissionFlagsBits = {
/**
* Allows management and editing of emojis, stickers, and soundboard sounds
*
* @deprecated This is the old name for {@apilink PermissionFlagsBits#ManageGuildExpressions}
* @deprecated This is the old name for {@link PermissionFlagsBits.ManageGuildExpressions}
*/
ManageEmojisAndStickers: 1n << 30n,
/**
@@ -234,7 +234,7 @@ export const PermissionFlagsBits = {
*/
SendMessagesInThreads: 1n << 38n,
/**
* Allows for using Activities (applications with the {@apilink ApplicationFlags.Embedded} flag) in a voice channel
* Allows for using Activities (applications with the {@link ApplicationFlags.Embedded} flag) in a voice channel
*
* Applies to channel types: Voice
*/
@@ -297,10 +297,10 @@ export const PermissionFlagsBits = {
*/
Object.freeze(PermissionFlagsBits);
export type LocalizationMap = Partial<Record<LocaleString, string | null>>;
export type LocalizationMap = Partial<Record<Locale, string | null>>;
/**
* https://discord.com/developers/docs/topics/opcodes-and-status-codes#json
* @see {@link https://discord.com/developers/docs/topics/opcodes-and-status-codes#json}
*/
export interface RESTError {
code: number;
@@ -320,7 +320,7 @@ export interface RESTErrorGroupWrapper {
export type RESTErrorData = RESTErrorFieldInformation | RESTErrorGroupWrapper | string | { [k: string]: RESTErrorData };
/**
* https://discord.com/developers/docs/topics/rate-limits#exceeding-a-rate-limit-rate-limit-response-structure
* @see {@link https://discord.com/developers/docs/topics/rate-limits#exceeding-a-rate-limit-rate-limit-response-structure}
*/
export interface RESTRateLimit {
/**

View File

@@ -1,3 +1,4 @@
import type { InteractionType } from '../../responses.ts';
import type {
APIApplicationCommandOptionBase,
APIApplicationCommandOptionWithAutocompleteOrChoicesWrapper,
@@ -5,7 +6,7 @@ import type {
} from './base.ts';
import type { APIApplicationCommandOptionChoice, ApplicationCommandOptionType } from './shared.ts';
interface APIApplicationCommandIntegerOptionBase
export interface APIApplicationCommandIntegerOptionBase
extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.Integer> {
/**
* If the option is an `INTEGER` or `NUMBER` type, the minimum value permitted.
@@ -22,7 +23,10 @@ export type APIApplicationCommandIntegerOption = APIApplicationCommandOptionWith
APIApplicationCommandOptionChoice<number>
>;
export interface APIApplicationCommandInteractionDataIntegerOption
extends APIInteractionDataOptionBase<ApplicationCommandOptionType.Integer, number> {
export interface APIApplicationCommandInteractionDataIntegerOption<Type extends InteractionType = InteractionType>
extends APIInteractionDataOptionBase<
ApplicationCommandOptionType.Integer,
Type extends InteractionType.ApplicationCommandAutocomplete ? string : number
> {
focused?: boolean;
}

View File

@@ -1,3 +1,4 @@
import type { InteractionType } from '../../responses.ts';
import type {
APIApplicationCommandOptionBase,
APIApplicationCommandOptionWithAutocompleteOrChoicesWrapper,
@@ -5,7 +6,7 @@ import type {
} from './base.ts';
import type { APIApplicationCommandOptionChoice, ApplicationCommandOptionType } from './shared.ts';
interface APIApplicationCommandNumberOptionBase
export interface APIApplicationCommandNumberOptionBase
extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.Number> {
/**
* If the option is an `INTEGER` or `NUMBER` type, the minimum value permitted.
@@ -22,7 +23,10 @@ export type APIApplicationCommandNumberOption = APIApplicationCommandOptionWithA
APIApplicationCommandOptionChoice<number>
>;
export interface APIApplicationCommandInteractionDataNumberOption
extends APIInteractionDataOptionBase<ApplicationCommandOptionType.Number, number> {
export interface APIApplicationCommandInteractionDataNumberOption<Type extends InteractionType = InteractionType>
extends APIInteractionDataOptionBase<
ApplicationCommandOptionType.Number,
Type extends InteractionType.ApplicationCommandAutocomplete ? string : number
> {
focused?: boolean;
}

View File

@@ -1,7 +1,7 @@
import type { LocalizationMap } from '../../../../../v10.ts';
/**
* https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-type
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-type}
*/
export enum ApplicationCommandOptionType {
Subcommand = 1,
@@ -18,7 +18,7 @@ export enum ApplicationCommandOptionType {
}
/**
* https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-choice-structure
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-choice-structure}
*/
export interface APIApplicationCommandOptionChoice<ValueType = number | string> {
name: string;

View File

@@ -5,7 +5,7 @@ import type {
} from './base.ts';
import type { APIApplicationCommandOptionChoice, ApplicationCommandOptionType } from './shared.ts';
interface APIApplicationCommandStringOptionBase
export interface APIApplicationCommandStringOptionBase
extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.String> {
/**
* For option type `STRING`, the minimum allowed length (minimum of `0`, maximum of `6000`).

View File

@@ -1,3 +1,4 @@
import type { InteractionType } from '../../responses.ts';
import type { APIApplicationCommandBasicOption, APIApplicationCommandInteractionDataBasicOption } from '../chatInput.ts';
import type { APIApplicationCommandOptionBase } from './base.ts';
import type { ApplicationCommandOptionType } from './shared.ts';
@@ -7,8 +8,8 @@ export interface APIApplicationCommandSubcommandOption
options?: APIApplicationCommandBasicOption[];
}
export interface APIApplicationCommandInteractionDataSubcommandOption {
export interface APIApplicationCommandInteractionDataSubcommandOption<Type extends InteractionType = InteractionType> {
name: string;
type: ApplicationCommandOptionType.Subcommand;
options?: APIApplicationCommandInteractionDataBasicOption[];
options?: APIApplicationCommandInteractionDataBasicOption<Type>[];
}

View File

@@ -1,3 +1,4 @@
import type { InteractionType } from '../../responses.ts';
import type { APIApplicationCommandOptionBase } from './base.ts';
import type { ApplicationCommandOptionType } from './shared.ts';
import type {
@@ -10,8 +11,10 @@ export interface APIApplicationCommandSubcommandGroupOption
options?: APIApplicationCommandSubcommandOption[];
}
export interface APIApplicationCommandInteractionDataSubcommandGroupOption {
export interface APIApplicationCommandInteractionDataSubcommandGroupOption<
Type extends InteractionType = InteractionType,
> {
name: string;
type: ApplicationCommandOptionType.SubcommandGroup;
options: APIApplicationCommandInteractionDataSubcommandOption[];
options: APIApplicationCommandInteractionDataSubcommandOption<Type>[];
}

View File

@@ -1,4 +1,4 @@
import type { APIInteractionDataResolved } from '../../mod.ts';
import type { APIInteractionDataResolved, InteractionType } from '../../mod.ts';
import type { APIApplicationCommandInteractionWrapper, ApplicationCommandType } from '../applicationCommands.ts';
import type { APIDMInteractionWrapper, APIGuildInteractionWrapper } from '../base.ts';
import type {
@@ -62,7 +62,7 @@ export * from './_chatInput/subcommandGroup.ts';
export * from './_chatInput/user.ts';
/**
* https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-structure
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-structure}
*/
export type APIApplicationCommandBasicOption =
| APIApplicationCommandAttachmentOption
@@ -76,7 +76,7 @@ export type APIApplicationCommandBasicOption =
| APIApplicationCommandUserOption;
/**
* https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-structure
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-structure}
*/
export type APIApplicationCommandOption =
| APIApplicationCommandBasicOption
@@ -84,47 +84,56 @@ export type APIApplicationCommandOption =
| APIApplicationCommandSubcommandOption;
/**
* https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-interaction-data-option-structure
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-interaction-data-option-structure}
*/
export type APIApplicationCommandInteractionDataOption =
| APIApplicationCommandInteractionDataBasicOption
| APIApplicationCommandInteractionDataSubcommandGroupOption
| APIApplicationCommandInteractionDataSubcommandOption;
export type APIApplicationCommandInteractionDataOption<Type extends InteractionType = InteractionType> =
| APIApplicationCommandInteractionDataBasicOption<Type>
| APIApplicationCommandInteractionDataSubcommandGroupOption<Type>
| APIApplicationCommandInteractionDataSubcommandOption<Type>;
export type APIApplicationCommandInteractionDataBasicOption =
export type APIApplicationCommandInteractionDataBasicOption<Type extends InteractionType = InteractionType> =
| APIApplicationCommandInteractionDataAttachmentOption
| APIApplicationCommandInteractionDataBooleanOption
| APIApplicationCommandInteractionDataChannelOption
| APIApplicationCommandInteractionDataIntegerOption
| APIApplicationCommandInteractionDataIntegerOption<Type>
| APIApplicationCommandInteractionDataMentionableOption
| APIApplicationCommandInteractionDataNumberOption
| APIApplicationCommandInteractionDataNumberOption<Type>
| APIApplicationCommandInteractionDataRoleOption
| APIApplicationCommandInteractionDataStringOption
| APIApplicationCommandInteractionDataUserOption;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-data
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-data}
*/
export interface APIChatInputApplicationCommandInteractionData
extends APIBaseApplicationCommandInteractionData<ApplicationCommandType.ChatInput> {
options?: APIApplicationCommandInteractionDataOption[];
options?: APIApplicationCommandInteractionDataOption<InteractionType.ApplicationCommand>[];
resolved?: APIInteractionDataResolved;
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-data}
*/
export interface APIAutocompleteApplicationCommandInteractionData
extends APIBaseApplicationCommandInteractionData<ApplicationCommandType.ChatInput> {
options?: APIApplicationCommandInteractionDataOption<InteractionType.ApplicationCommandAutocomplete>[];
resolved?: APIInteractionDataResolved;
}
/**
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIChatInputApplicationCommandInteraction =
APIApplicationCommandInteractionWrapper<APIChatInputApplicationCommandInteractionData>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIChatInputApplicationCommandDMInteraction =
APIDMInteractionWrapper<APIChatInputApplicationCommandInteraction>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIChatInputApplicationCommandGuildInteraction =
APIGuildInteractionWrapper<APIChatInputApplicationCommandInteraction>;

View File

@@ -5,7 +5,7 @@ import type { APIDMInteractionWrapper, APIGuildInteractionWrapper, APIUserIntera
import type { APIBaseApplicationCommandInteractionData } from './internals.ts';
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-data
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-data}
*/
export interface APIUserApplicationCommandInteractionData
extends APIBaseApplicationCommandInteractionData<ApplicationCommandType.User> {
@@ -14,7 +14,7 @@ export interface APIUserApplicationCommandInteractionData
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-data
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-data}
*/
export interface APIMessageApplicationCommandInteractionData
extends APIBaseApplicationCommandInteractionData<ApplicationCommandType.Message> {
@@ -23,68 +23,68 @@ export interface APIMessageApplicationCommandInteractionData
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-resolved-data-structure
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-resolved-data-structure}
*/
export interface APIMessageApplicationCommandInteractionDataResolved {
messages: Record<Snowflake, APIMessage>;
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-data
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-data}
*/
export type APIContextMenuInteractionData =
| APIMessageApplicationCommandInteractionData
| APIUserApplicationCommandInteractionData;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIUserApplicationCommandInteraction =
APIApplicationCommandInteractionWrapper<APIUserApplicationCommandInteractionData>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIUserApplicationCommandDMInteraction = APIDMInteractionWrapper<APIUserApplicationCommandInteraction>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIUserApplicationCommandGuildInteraction =
APIGuildInteractionWrapper<APIUserApplicationCommandInteraction>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIMessageApplicationCommandInteraction =
APIApplicationCommandInteractionWrapper<APIMessageApplicationCommandInteractionData>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIMessageApplicationCommandDMInteraction =
APIDMInteractionWrapper<APIMessageApplicationCommandInteraction>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIMessageApplicationCommandGuildInteraction =
APIGuildInteractionWrapper<APIMessageApplicationCommandInteraction>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIContextMenuInteraction = APIMessageApplicationCommandInteraction | APIUserApplicationCommandInteraction;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIContextMenuDMInteraction =
| APIMessageApplicationCommandDMInteraction
| APIUserApplicationCommandDMInteraction;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIContextMenuGuildInteraction =
| APIMessageApplicationCommandGuildInteraction

View File

@@ -0,0 +1,26 @@
import type { APIApplicationCommandInteractionWrapper, ApplicationCommandType } from '../applicationCommands.ts';
import type { APIDMInteractionWrapper, APIGuildInteractionWrapper } from '../base.ts';
import type { APIBaseApplicationCommandInteractionData } from './internals.ts';
/**
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-data}
*/
export type APIPrimaryEntryPointCommandInteractionData =
APIBaseApplicationCommandInteractionData<ApplicationCommandType.PrimaryEntryPoint>;
/**
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIPrimaryEntryPointCommandInteraction =
APIApplicationCommandInteractionWrapper<APIPrimaryEntryPointCommandInteractionData>;
/**
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIPrimaryEntryPointCommandDMInteraction = APIDMInteractionWrapper<APIPrimaryEntryPointCommandInteraction>;
/**
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIPrimaryEntryPointCommandGuildInteraction =
APIGuildInteractionWrapper<APIPrimaryEntryPointCommandInteraction>;

View File

@@ -1,7 +1,7 @@
import type { Snowflake } from '../../../../globals.ts';
/**
* https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-guild-application-command-permissions-structure
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-guild-application-command-permissions-structure}
*/
export interface APIGuildApplicationCommandPermissions {
/**
@@ -23,7 +23,7 @@ export interface APIGuildApplicationCommandPermissions {
}
/**
* https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-application-command-permissions-structure
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-application-command-permissions-structure}
*/
export interface APIApplicationCommandPermission {
/**
@@ -41,7 +41,7 @@ export interface APIApplicationCommandPermission {
}
/**
* https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-application-command-permission-type
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-application-command-permission-type}
*/
export enum ApplicationCommandPermissionType {
Role = 1,
@@ -50,7 +50,7 @@ export enum ApplicationCommandPermissionType {
}
/**
* https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-application-command-permissions-constants
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-application-command-permissions-constants}
*/
export const APIApplicationCommandPermissionsConstant = {
// eslint-disable-next-line unicorn/prefer-native-coercion-functions

View File

@@ -13,15 +13,23 @@ import type {
APIContextMenuInteraction,
APIContextMenuInteractionData,
} from './_applicationCommands/contextMenu.ts';
import type {
APIPrimaryEntryPointCommandDMInteraction,
APIPrimaryEntryPointCommandGuildInteraction,
APIPrimaryEntryPointCommandInteraction,
APIPrimaryEntryPointCommandInteractionData,
} from './_applicationCommands/entryPoint.ts';
import type { APIBaseInteraction } from './base.ts';
import type { InteractionType } from './responses.ts';
export * from './_applicationCommands/chatInput.ts';
export * from './_applicationCommands/contextMenu.ts';
export * from './_applicationCommands/permissions.ts';
export * from './_applicationCommands/entryPoint.ts';
export * from './_applicationCommands/internals.ts';
/**
* https://discord.com/developers/docs/interactions/application-commands#application-command-object
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-object}
*/
export interface APIApplicationCommand {
/**
@@ -75,7 +83,7 @@ export interface APIApplicationCommand {
/**
* Indicates whether the command is available in DMs with the app, only for globally-scoped commands. By default, commands are visible
*
* @deprecated Use `contexts` instead
* @deprecated Use {@link APIApplicationCommand.contexts} instead
*/
dm_permission?: boolean;
/**
@@ -83,7 +91,7 @@ export interface APIApplicationCommand {
*
* If missing, this property should be assumed as `true`
*
* @deprecated Use `dm_permission` and/or `default_member_permissions` instead
* @deprecated Use {@link APIApplicationCommand.dm_permission} and/or {@link APIApplicationCommand.default_member_permissions} instead
*/
default_permission?: boolean;
/**
@@ -92,72 +100,104 @@ export interface APIApplicationCommand {
nsfw?: boolean;
/**
* Installation context(s) where the command is available, only for globally-scoped commands. Defaults to `GUILD_INSTALL ([0])`
*
* @unstable
*/
integration_types?: ApplicationIntegrationType[];
/**
* Interaction context(s) where the command can be used, only for globally-scoped commands. By default, all interaction context types included for new commands `[0,1,2]`.
*
* @unstable
*/
contexts?: InteractionContextType[] | null;
/**
* Autoincrementing version identifier updated during substantial record changes
*/
version: Snowflake;
/**
* Determines whether the interaction is handled by the app's interactions handler or by Discord
*
* @remarks
* This is only available for {@link ApplicationCommandType.PrimaryEntryPoint} commands
*/
handler?: EntryPointCommandHandlerType;
}
/**
* https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-types
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-types}
*/
export enum ApplicationCommandType {
/**
* Slash commands; a text-based command that shows up when a user types `/`
*/
ChatInput = 1,
/**
* A UI-based command that shows up when you right click or tap on a user
*/
User,
/**
* A UI-based command that shows up when you right click or tap on a message
*/
Message,
/**
* A UI-based command that represents the primary way to invoke an app's Activity
*/
PrimaryEntryPoint,
}
/**
* https://discord.com/developers/docs/resources/application#application-object-application-integration-types
* @see {@link https://discord.com/developers/docs/resources/application#application-object-application-integration-types}
*/
export enum ApplicationIntegrationType {
/**
* App is installable to servers
*/
GuildInstall = 0,
GuildInstall,
/**
* App is installable to users
*/
UserInstall = 1,
UserInstall,
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-context-types
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-context-types}
*/
export enum InteractionContextType {
/**
* Interaction can be used within servers
*/
Guild = 0,
Guild,
/**
* Interaction can be used within DMs with the app's bot user
*/
BotDM = 1,
BotDM,
/**
* Interaction can be used within Group DMs and DMs other than the app's bot user
*/
PrivateChannel = 2,
PrivateChannel,
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-data
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-object-entry-point-command-handler-types}
*/
export enum EntryPointCommandHandlerType {
/**
* The app handles the interaction using an interaction token
*/
AppHandler = 1,
/**
* Discord handles the interaction by launching an Activity and sending a follow-up message without coordinating with
* the app
*/
DiscordLaunchActivity,
}
/**
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-data}
*/
export type APIApplicationCommandInteractionData =
| APIChatInputApplicationCommandInteractionData
| APIContextMenuInteractionData;
| APIContextMenuInteractionData
| APIPrimaryEntryPointCommandInteractionData;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIApplicationCommandInteractionWrapper<Data extends APIApplicationCommandInteractionData> =
APIBaseInteraction<InteractionType.ApplicationCommand, Data> &
@@ -169,20 +209,25 @@ export type APIApplicationCommandInteractionWrapper<Data extends APIApplicationC
>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIApplicationCommandInteraction = APIChatInputApplicationCommandInteraction | APIContextMenuInteraction;
export type APIApplicationCommandInteraction =
| APIChatInputApplicationCommandInteraction
| APIContextMenuInteraction
| APIPrimaryEntryPointCommandInteraction;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIApplicationCommandDMInteraction =
| APIChatInputApplicationCommandDMInteraction
| APIContextMenuDMInteraction;
| APIContextMenuDMInteraction
| APIPrimaryEntryPointCommandDMInteraction;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIApplicationCommandGuildInteraction =
| APIChatInputApplicationCommandGuildInteraction
| APIContextMenuGuildInteraction;
| APIContextMenuGuildInteraction
| APIPrimaryEntryPointCommandGuildInteraction;

View File

@@ -1,6 +1,6 @@
import type {
APIBaseInteraction,
APIChatInputApplicationCommandInteractionData,
APIAutocompleteApplicationCommandInteractionData,
APIDMInteractionWrapper,
APIGuildInteractionWrapper,
InteractionType,
@@ -8,26 +8,26 @@ import type {
export type APIApplicationCommandAutocompleteInteraction = APIBaseInteraction<
InteractionType.ApplicationCommandAutocomplete,
APIChatInputApplicationCommandInteractionData
APIAutocompleteApplicationCommandInteractionData
> &
Required<
Pick<
APIBaseInteraction<
InteractionType.ApplicationCommandAutocomplete,
Required<Pick<APIChatInputApplicationCommandInteractionData, 'options'>>
Required<Pick<APIAutocompleteApplicationCommandInteractionData, 'options'>>
>,
'data'
>
>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIApplicationCommandAutocompleteDMInteraction =
APIDMInteractionWrapper<APIApplicationCommandAutocompleteInteraction>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIApplicationCommandAutocompleteGuildInteraction =
APIGuildInteractionWrapper<APIApplicationCommandAutocompleteInteraction>;

View File

@@ -1,5 +1,5 @@
import type { Permissions, Snowflake } from '../../../globals.ts';
import type { APIRole, ApplicationIntegrationType, InteractionContextType, LocaleString } from '../../../v10.ts';
import type { APIRole, ApplicationIntegrationType, InteractionContextType, Locale } from '../../../v10.ts';
import type {
APIAttachment,
APIChannel,
@@ -9,15 +9,20 @@ import type {
ChannelType,
ThreadChannelType,
} from '../channel.ts';
import type { APIGuildMember } from '../guild.ts';
import type { APIGuildMember, APIPartialInteractionGuild } from '../guild.ts';
import type { APIEntitlement } from '../monetization.ts';
import type { APIUser } from '../user.ts';
import type { InteractionType } from './responses.ts';
/**
* https://discord.com/developers/docs/resources/channel#message-interaction-metadata-object
* @see {@link https://discord.com/developers/docs/resources/channel#message-interaction-metadata-object}
*/
export interface APIMessageInteractionMetadata {
export type APIMessageInteractionMetadata =
| APIApplicationCommandInteractionMetadata
| APIMessageComponentInteractionMetadata
| APIModalSubmitInteractionMetadata;
export interface APIBaseInteractionMetadata<Type extends InteractionType> {
/**
* ID of the interaction
*/
@@ -25,27 +30,56 @@ export interface APIMessageInteractionMetadata {
/**
* Type of interaction
*/
type: InteractionType;
type: Type;
/**
* User who triggered the interaction
*/
user: APIUser;
/**
* IDs for installation context(s) related to an interaction. Details in Authorizing Integration Owners Object
* IDs for installation context(s) related to an interaction
*/
authorizing_integration_owners: APIAuthorizingIntegrationOwnersMap;
/**
* ID of the original response message, present only on follow-up messages
*/
original_response_message_id?: Snowflake;
}
/**
* @see {@link https://discord.com/developers/docs/resources/message#message-interaction-metadata-object-application-command-interaction-metadata-structure}
*/
export interface APIApplicationCommandInteractionMetadata
extends APIBaseInteractionMetadata<InteractionType.ApplicationCommand> {
/**
* ID of the message that contained interactive component, present only on messages created from component interactions
* The user the command was run on, present only on user commands interactions
*/
interacted_message_id?: Snowflake;
target_user?: APIUser;
/**
* Metadata for the interaction that was used to open the modal, present only on modal submit interactions
* The ID of the message the command was run on, present only on message command interactions.
* The original response message will also have `message_reference` and `referenced_message` pointing to this message.
*/
triggering_interaction_metadata?: APIMessageInteractionMetadata;
target_message_id?: Snowflake;
}
/**
* @see {@link https://discord.com/developers/docs/resources/message#message-interaction-metadata-object-message-command-interaction-metadata-structure}
*/
export interface APIMessageComponentInteractionMetadata
extends APIBaseInteractionMetadata<InteractionType.MessageComponent> {
/**
* ID of the message that contained the interactive component
*/
interacted_message_id: Snowflake;
}
/**
* @see {@link https://discord.com/developers/docs/resources/message#message-interaction-metadata-object-modal-submit-interaction-metadata-structure}
*/
export interface APIModalSubmitInteractionMetadata extends APIBaseInteractionMetadata<InteractionType.ModalSubmit> {
/**
* Metadata for the interaction that was used to open the modal
*/
triggering_interaction_metadata: APIApplicationCommandInteractionMetadata | APIMessageComponentInteractionMetadata;
}
export type PartialAPIMessageInteractionGuildMember = Pick<
@@ -62,7 +96,7 @@ export type PartialAPIMessageInteractionGuildMember = Pick<
>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#message-interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#message-interaction-object}
*/
export interface APIMessageInteraction {
/**
@@ -88,7 +122,7 @@ export interface APIMessageInteraction {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-member-object
* @see {@link https://discord.com/developers/docs/resources/guild#guild-member-object}
*/
export interface APIInteractionGuildMember extends APIGuildMember {
permissions: Permissions;
@@ -98,7 +132,7 @@ export interface APIInteractionGuildMember extends APIGuildMember {
// INTERACTIONS RECEIVED
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export interface APIBaseInteraction<Type extends InteractionType, Data> {
/**
@@ -118,7 +152,11 @@ export interface APIBaseInteraction<Type extends InteractionType, Data> {
*/
data?: Data;
/**
* The guild it was sent from
* Guild that the interaction was sent from
*/
guild?: APIPartialInteractionGuild;
/**
* Guild that the interaction was sent from
*/
guild_id?: Snowflake;
/**
@@ -128,7 +166,7 @@ export interface APIBaseInteraction<Type extends InteractionType, Data> {
/**
* The id of the channel it was sent from
*
* @deprecated Use {@apilink APIBaseInteraction#channel} instead
* @deprecated Use {@link APIBaseInteraction.channel} instead
*/
channel_id?: Snowflake;
/**
@@ -160,11 +198,11 @@ export interface APIBaseInteraction<Type extends InteractionType, Data> {
/**
* The selected language of the invoking user
*/
locale: LocaleString;
locale: Locale;
/**
* The guild's preferred locale, if invoked in a guild
*/
guild_locale?: LocaleString;
guild_locale?: Locale;
/**
* For monetized apps, any entitlements for the invoking user, representing access to premium SKUs
*/
@@ -177,6 +215,10 @@ export interface APIBaseInteraction<Type extends InteractionType, Data> {
* Context where the interaction was triggered from
*/
context?: InteractionContextType;
/**
* Attachment size limit in bytes
*/
attachment_size_limit: number;
}
export type APIAuthorizingIntegrationOwnersMap = {
@@ -201,7 +243,7 @@ export interface APIInteractionDataResolvedChannelBase<T extends ChannelType> ex
}
/**
* https://discord.com/developers/docs/resources/channel#channel-object
* @see {@link https://discord.com/developers/docs/resources/channel#channel-object}
*/
export type APIInteractionDataResolvedChannel =
| APIInteractionDataResolvedChannelBase<Exclude<ChannelType, ThreadChannelType>>
@@ -209,14 +251,14 @@ export type APIInteractionDataResolvedChannel =
Pick<APIThreadChannel, 'parent_id' | 'thread_metadata'>);
/**
* https://discord.com/developers/docs/resources/guild#guild-member-object
* @see {@link https://discord.com/developers/docs/resources/guild#guild-member-object}
*/
export interface APIInteractionDataResolvedGuildMember extends Omit<APIGuildMember, 'deaf' | 'mute' | 'user'> {
permissions: Permissions;
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-resolved-data-structure
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-resolved-data-structure}
*/
export interface APIInteractionDataResolved {
users?: Record<Snowflake, APIUser>;

View File

@@ -1,4 +1,4 @@
import type { APIActionRowComponent, APIModalActionRowComponent } from '../channel.ts';
import type { APIActionRowComponent, APIComponentInModalActionRow } from '../channel.ts';
import type {
APIBaseInteraction,
APIDMInteractionWrapper,
@@ -14,12 +14,12 @@ export interface ModalSubmitComponent {
}
export interface ModalSubmitActionRowComponent
extends Omit<APIActionRowComponent<APIModalActionRowComponent>, 'components'> {
extends Omit<APIActionRowComponent<APIComponentInModalActionRow>, 'components'> {
components: ModalSubmitComponent[];
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-modal-submit-data-structure
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-modal-submit-data-structure}
*/
export interface APIModalSubmission {
/**
@@ -33,17 +33,17 @@ export interface APIModalSubmission {
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIModalSubmitInteraction = APIBaseInteraction<InteractionType.ModalSubmit, APIModalSubmission> &
Required<Pick<APIBaseInteraction<InteractionType.ModalSubmit, APIModalSubmission>, 'data'>>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIModalSubmitDMInteraction = APIDMInteractionWrapper<APIModalSubmitInteraction>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIModalSubmitGuildInteraction = APIGuildInteractionWrapper<APIModalSubmitInteraction>;

View File

@@ -1,10 +1,9 @@
import type { RESTPostAPIWebhookWithTokenJSONBody } from '../../../v10.ts';
import type { APIActionRowComponent, APIModalActionRowComponent } from '../channel.ts';
import type { MessageFlags } from '../mod.ts';
import type { APIActionRowComponent, APIComponentInModalActionRow } from '../channel.ts';
import type { APIApplicationCommandOptionChoice } from './applicationCommands.ts';
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-type
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-type}
*/
export enum InteractionType {
Ping = 1,
@@ -15,13 +14,14 @@ export enum InteractionType {
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object}
*/
export type APIInteractionResponse =
| APIApplicationCommandAutocompleteResponse
| APIInteractionResponseChannelMessageWithSource
| APIInteractionResponseDeferredChannelMessageWithSource
| APIInteractionResponseDeferredMessageUpdate
| APIInteractionResponseLaunchActivity
| APIInteractionResponsePong
| APIInteractionResponseUpdateMessage
| APIModalInteractionResponse
@@ -64,8 +64,12 @@ export interface APIInteractionResponseUpdateMessage {
data?: APIInteractionResponseCallbackData;
}
export interface APIInteractionResponseLaunchActivity {
type: InteractionResponseType.LaunchActivity;
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-interaction-callback-type
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-interaction-callback-type}
*/
export enum InteractionResponseType {
/**
@@ -99,25 +103,31 @@ export enum InteractionResponseType {
/**
* Respond to an interaction with an upgrade button, only available for apps with monetization enabled
*
* @deprecated See https://discord.com/developers/docs/change-log#premium-apps-new-premium-button-style-deep-linking-url-schemes
* @deprecated Send a button with Premium type instead.
* {@link https://discord.com/developers/docs/change-log#premium-apps-new-premium-button-style-deep-linking-url-schemes | Learn more here}
*/
PremiumRequired,
/**
* Launch the Activity associated with the app.
*
* @remarks
* Only available for apps with Activities enabled
*/
LaunchActivity = 12,
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-interaction-callback-data-structure
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-interaction-callback-data-structure}
*/
export type APIInteractionResponseCallbackData = Omit<
RESTPostAPIWebhookWithTokenJSONBody,
'avatar_url' | 'username'
> & { flags?: MessageFlags };
export type APIInteractionResponseCallbackData = Omit<RESTPostAPIWebhookWithTokenJSONBody, 'avatar_url' | 'username'>;
export interface APICommandAutocompleteInteractionResponseCallbackData {
choices?: APIApplicationCommandOptionChoice[];
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-modal
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-modal}
*/
export interface APIModalInteractionResponseCallbackData {
/**
@@ -131,5 +141,5 @@ export interface APIModalInteractionResponseCallbackData {
/**
* Between 1 and 5 (inclusive) components that make up the modal
*/
components: APIActionRowComponent<APIModalActionRowComponent>[];
components: APIActionRowComponent<APIComponentInModalActionRow>[];
}

View File

@@ -9,9 +9,10 @@ import type { ApplicationIntegrationType } from './interactions.ts';
import type { OAuth2Scopes } from './oauth2.ts';
import type { APITeam } from './teams.ts';
import type { APIUser } from './user.ts';
import type { ApplicationWebhookEventType } from './webhook.ts';
/**
* https://discord.com/developers/docs/resources/application#application-object
* @see {@link https://discord.com/developers/docs/resources/application#application-object}
*/
export interface APIApplication {
/**
@@ -57,25 +58,26 @@ export interface APIApplication {
/**
* Partial user object containing info on the owner of the application
*
* See https://discord.com/developers/docs/resources/user#user-object
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
owner?: APIUser;
/**
* An empty string
*
* @deprecated This field will be removed in v11
* @unstable This field is no longer documented by Discord and will be removed in v11
*/
summary: '';
/**
* The hexadecimal encoded key for verification in interactions and the GameSDK's GetTicket function
*
* See https://discord.com/developers/docs/game-sdk/applications#getticket
* @see {@link https://discord.com/developers/docs/game-sdk/applications#getticket}
*/
verify_key: string;
/**
* The team this application belongs to
*
* See https://discord.com/developers/docs/topics/teams#data-models-team-object
* @see {@link https://discord.com/developers/docs/topics/teams#data-models-team-object}
*/
team: APITeam | null;
/**
@@ -101,13 +103,17 @@ export interface APIApplication {
/**
* The application's public flags
*
* See https://discord.com/developers/docs/resources/application#application-object-application-flags
* @see {@link https://discord.com/developers/docs/resources/application#application-object-application-flags}
*/
flags: ApplicationFlags;
/**
* Approximate count of guilds the application has been added to
*/
approximate_guild_count?: number;
/**
* Approximate count of users that have installed the app
*/
approximate_user_install_count?: number;
/**
* Array of redirect URIs for the application
*/
@@ -115,12 +121,12 @@ export interface APIApplication {
/**
* The interactions endpoint URL for the application
*/
interactions_endpoint_url?: string;
interactions_endpoint_url?: string | null;
/**
* The application's role connection verification entry point,
* which when configured will render the app as a verification method in the guild role verification configuration
*/
role_connections_verification_url?: string;
role_connections_verification_url?: string | null;
/**
* Up to 5 tags of max 20 characters each describing the content and functionality of the application
*/
@@ -131,14 +137,24 @@ export interface APIApplication {
install_params?: APIApplicationInstallParams;
/**
* Default scopes and permissions for each supported installation context. Value for each key is an integration type configuration object
*
* @unstable
*/
integration_types_config?: APIApplicationIntegrationTypesConfigMap;
/**
* The application's default custom authorization link, if enabled
*/
custom_install_url?: string;
/**
* Event webhook URL for the app to receive webhook events
*/
event_webhooks_url?: string | null;
/**
* If webhook events are enabled for the app
*/
event_webhooks_status: ApplicationWebhookEventStatus;
/**
* List of webhook event types the app subscribes to
*/
event_webhooks_types?: ApplicationWebhookEventType[];
}
export interface APIApplicationInstallParams {
@@ -155,7 +171,7 @@ export type APIApplicationIntegrationTypesConfigMap = {
};
/**
* https://discord.com/developers/docs/resources/application#application-object-application-flags
* @see {@link https://discord.com/developers/docs/resources/application#application-object-application-flags}
*/
export enum ApplicationFlags {
/**
@@ -192,12 +208,14 @@ export enum ApplicationFlags {
GatewayPresenceLimited = 1 << 13,
/**
* Intent required for bots in 100 or more servers to receive member-related events like `guild_member_add`.
* See list of member-related events [under `GUILD_MEMBERS`](https://discord.com/developers/docs/topics/gateway#list-of-intents)
*
* @see List of member-related events {@link https://discord.com/developers/docs/topics/gateway#list-of-intents | under `GUILD_MEMBERS`}
*/
GatewayGuildMembers = 1 << 14,
/**
* Intent required for bots in under 100 servers to receive member-related events like `guild_member_add`, found in Bot Settings.
* See list of member-related events [under `GUILD_MEMBERS`](https://discord.com/developers/docs/topics/gateway#list-of-intents)
*
* @see List of member-related events {@link https://discord.com/developers/docs/topics/gateway#list-of-intents | under `GUILD_MEMBERS`}
*/
GatewayGuildMembersLimited = 1 << 15,
/**
@@ -209,11 +227,11 @@ export enum ApplicationFlags {
*/
Embedded = 1 << 17,
/**
* Intent required for bots in 100 or more servers to receive [message content](https://support-dev.discord.com/hc/en-us/articles/4404772028055)
* Intent required for bots in 100 or more servers to receive {@link https://support-dev.discord.com/hc/articles/6207308062871 | message content}
*/
GatewayMessageContent = 1 << 18,
/**
* Intent required for bots in under 100 servers to receive [message content](https://support-dev.discord.com/hc/en-us/articles/4404772028055),
* Intent required for bots in under 100 servers to receive {@link https://support-dev.discord.com/hc/articles/6207308062871 | message content},
* found in Bot Settings
*/
GatewayMessageContentLimited = 1 << 19,
@@ -222,13 +240,13 @@ export enum ApplicationFlags {
*/
EmbeddedFirstParty = 1 << 20,
/**
* Indicates if an app has registered global [application commands](https://discord.com/developers/docs/interactions/application-commands)
* Indicates if an app has registered global {@link https://discord.com/developers/docs/interactions/application-commands | application commands}
*/
ApplicationCommandBadge = 1 << 23,
}
/**
* https://discord.com/developers/docs/resources/application-role-connection-metadata#application-role-connection-metadata-object-application-role-connection-metadata-structure
* @see {@link https://discord.com/developers/docs/resources/application-role-connection-metadata#application-role-connection-metadata-object-application-role-connection-metadata-structure}
*/
export interface APIApplicationRoleConnectionMetadata {
/**
@@ -258,7 +276,7 @@ export interface APIApplicationRoleConnectionMetadata {
}
/**
* https://discord.com/developers/docs/resources/application-role-connection-metadata#application-role-connection-metadata-object-application-role-connection-metadata-type
* @see {@link https://discord.com/developers/docs/resources/application-role-connection-metadata#application-role-connection-metadata-object-application-role-connection-metadata-type}
*/
export enum ApplicationRoleConnectionMetadataType {
/**
@@ -294,3 +312,21 @@ export enum ApplicationRoleConnectionMetadataType {
*/
BooleanNotEqual,
}
/**
* @see {@link https://discord.com/developers/docs/resources/application#application-object-application-event-webhook-status}
*/
export enum ApplicationWebhookEventStatus {
/**
* Webhook events are disabled by developer
*/
Disabled = 1,
/**
* Webhook events are enabled by developer
*/
Enabled,
/**
* Webhook events are disabled by Discord, usually due to inactivity
*/
DisabledByDiscord,
}

View File

@@ -23,6 +23,7 @@ import type {
} from './guild.ts';
import type {
APIGuildScheduledEvent,
APIGuildScheduledEventRecurrenceRule,
GuildScheduledEventEntityType,
GuildScheduledEventStatus,
} from './guildScheduledEvent.ts';
@@ -34,43 +35,43 @@ import type { APIUser } from './user.ts';
import type { APIWebhook } from './webhook.ts';
/**
* https://discord.com/developers/docs/resources/audit-log#audit-log-object-audit-log-structure
* @see {@link https://discord.com/developers/docs/resources/audit-log#audit-log-object-audit-log-structure}
*/
export interface APIAuditLog {
/**
* List of application commands found in the audit log
*
* See https://discord.com/developers/docs/interactions/application-commands#application-command-object
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-object}
*/
application_commands: APIApplicationCommand[];
/**
* Webhooks found in the audit log
*
* See https://discord.com/developers/docs/resources/webhook#webhook-object
* @see {@link https://discord.com/developers/docs/resources/webhook#webhook-object}
*/
webhooks: APIWebhook[];
/**
* Users found in the audit log
*
* See https://discord.com/developers/docs/resources/user#user-object
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
users: APIUser[];
/**
* Audit log entries
*
* See https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object
* @see {@link https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object}
*/
audit_log_entries: APIAuditLogEntry[];
/**
* List of auto moderation rules referenced in the audit log
*
* See https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object
* @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object}
*/
auto_moderation_rules: APIAutoModerationRule[];
/**
* Partial integration objects
*
* See https://discord.com/developers/docs/resources/guild#integration-object
* @see {@link https://discord.com/developers/docs/resources/guild#integration-object}
*/
integrations: APIGuildIntegration[];
/**
@@ -78,19 +79,19 @@ export interface APIAuditLog {
*
* Threads referenced in THREAD_CREATE and THREAD_UPDATE events are included in the threads map, since archived threads might not be kept in memory by clients.
*
* See https://discord.com/developers/docs/resources/channel#channel-object
* @see {@link https://discord.com/developers/docs/resources/channel#channel-object}
*/
threads: APIChannel[];
/**
* The guild scheduled events in the audit log
*
* See https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object}
*/
guild_scheduled_events: APIGuildScheduledEvent[];
}
/**
* https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-audit-log-entry-structure
* @see {@link https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-audit-log-entry-structure}
*/
export interface APIAuditLogEntry {
/**
@@ -100,7 +101,7 @@ export interface APIAuditLogEntry {
/**
* Changes made to the `target_id`
*
* See https://discord.com/developers/docs/resources/audit-log#audit-log-change-object
* @see {@link https://discord.com/developers/docs/resources/audit-log#audit-log-change-object}
*/
changes?: APIAuditLogChange[];
/**
@@ -116,13 +117,13 @@ export interface APIAuditLogEntry {
/**
* Type of action that occurred
*
* See https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-audit-log-events
* @see {@link https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-audit-log-events}
*/
action_type: AuditLogEvent;
/**
* Additional info for certain action types
*
* See https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-optional-audit-entry-info
* @see {@link https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-optional-audit-entry-info}
*/
options?: APIAuditLogOptions;
/**
@@ -132,7 +133,7 @@ export interface APIAuditLogEntry {
}
/**
* https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-audit-log-events
* @see {@link https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-audit-log-events}
*/
export enum AuditLogEvent {
GuildUpdate = 1,
@@ -196,6 +197,10 @@ export enum AuditLogEvent {
ApplicationCommandPermissionUpdate = 121,
SoundboardSoundCreate = 130,
SoundboardSoundUpdate,
SoundboardSoundDelete,
AutoModerationRuleCreate = 140,
AutoModerationRuleUpdate,
AutoModerationRuleDelete,
@@ -217,7 +222,7 @@ export enum AuditLogEvent {
}
/**
* https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-optional-audit-entry-info
* @see {@link https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-optional-audit-entry-info}
*/
export interface APIAuditLogOptions {
/**
@@ -320,7 +325,7 @@ export interface APIAuditLogOptions {
* - CHANNEL_OVERWRITE_UPDATE
* - CHANNEL_OVERWRITE_DELETE
*
* **Present only if the {@link APIAuditLogOptions#type entry type} is "0"**
* **Present only if the {@link APIAuditLogOptions.type | entry type} is "0"**
*/
role_name?: string;
@@ -342,7 +347,7 @@ export enum AuditLogOptionsType {
export type AuditLogRuleTriggerType = `${AutoModerationRuleTriggerType}`;
/**
* https://discord.com/developers/docs/resources/audit-log#audit-log-change-object-audit-log-change-structure
* @see {@link https://discord.com/developers/docs/resources/audit-log#audit-log-change-object-audit-log-change-structure}
*/
export type APIAuditLogChange =
| APIAuditLogChangeKey$Add
@@ -372,6 +377,8 @@ export type APIAuditLogChange =
| APIAuditLogChangeKeyDeny
| APIAuditLogChangeKeyDescription
| APIAuditLogChangeKeyDiscoverySplashHash
| APIAuditLogChangeKeyEmojiId
| APIAuditLogChangeKeyEmojiName
| APIAuditLogChangeKeyEnabled
| APIAuditLogChangeKeyEnableEmoticons
| APIAuditLogChangeKeyEntityType
@@ -404,12 +411,15 @@ export type APIAuditLogChange =
| APIAuditLogChangeKeyPermissions
| APIAuditLogChangeKeyPosition
| APIAuditLogChangeKeyPreferredLocale
| APIAuditLogChangeKeyPremiumProgressBarEnabled
| APIAuditLogChangeKeyPrivacyLevel
| APIAuditLogChangeKeyPruneDeleteDays
| APIAuditLogChangeKeyPublicUpdatesChannelId
| APIAuditLogChangeKeyRateLimitPerUser
| APIAuditLogChangeKeyRecurrenceRule
| APIAuditLogChangeKeyRegion
| APIAuditLogChangeKeyRulesChannelId
| APIAuditLogChangeKeySoundId
| APIAuditLogChangeKeySplashHash
| APIAuditLogChangeKeyStatus
| APIAuditLogChangeKeySystemChannelFlags
@@ -420,102 +430,104 @@ export type APIAuditLogChange =
| APIAuditLogChangeKeyTriggerMetadata
| APIAuditLogChangeKeyTriggerType
| APIAuditLogChangeKeyType
| APIAuditLogChangeKeyUserId
| APIAuditLogChangeKeyUserLimit
| APIAuditLogChangeKeyUses
| APIAuditLogChangeKeyVanityURLCode
| APIAuditLogChangeKeyVerificationLevel
| APIAuditLogChangeKeyVolume
| APIAuditLogChangeKeyWidgetChannelId
| APIAuditLogChangeKeyWidgetEnabled;
/**
* Returned when an entity's name is changed
*/
export type APIAuditLogChangeKeyName = AuditLogChangeData<'name', string>;
export type APIAuditLogChangeKeyName = APIAuditLogChangeData<'name', string>;
/**
* Returned when a guild's or sticker's or guild scheduled event's description is changed
*/
export type APIAuditLogChangeKeyDescription = AuditLogChangeData<'description', string>;
export type APIAuditLogChangeKeyDescription = APIAuditLogChangeData<'description', string>;
/**
* Returned when a guild's icon is changed
*/
export type APIAuditLogChangeKeyIconHash = AuditLogChangeData<'icon_hash', string>;
export type APIAuditLogChangeKeyIconHash = APIAuditLogChangeData<'icon_hash', string>;
/**
* Returned when a guild's scheduled event's cover image is changed
*/
export type APIAuditLogChangeKeyImageHash = AuditLogChangeData<'image_hash', string>;
export type APIAuditLogChangeKeyImageHash = APIAuditLogChangeData<'image_hash', string>;
/**
* Returned when a guild's splash is changed
*/
export type APIAuditLogChangeKeySplashHash = AuditLogChangeData<'splash_hash', string>;
export type APIAuditLogChangeKeySplashHash = APIAuditLogChangeData<'splash_hash', string>;
/**
* Returned when a guild's discovery splash is changed
*/
export type APIAuditLogChangeKeyDiscoverySplashHash = AuditLogChangeData<'discovery_splash_hash', string>;
export type APIAuditLogChangeKeyDiscoverySplashHash = APIAuditLogChangeData<'discovery_splash_hash', string>;
/**
* Returned when a guild's banner hash is changed
*/
export type APIAuditLogChangeKeyBannerHash = AuditLogChangeData<'banner_hash', string>;
export type APIAuditLogChangeKeyBannerHash = APIAuditLogChangeData<'banner_hash', string>;
/**
* Returned when a guild's owner_id is changed
*/
export type APIAuditLogChangeKeyOwnerId = AuditLogChangeData<'owner_id', Snowflake>;
export type APIAuditLogChangeKeyOwnerId = APIAuditLogChangeData<'owner_id', Snowflake>;
/**
* Returned when a guild's region is changed
*/
export type APIAuditLogChangeKeyRegion = AuditLogChangeData<'region', string>;
export type APIAuditLogChangeKeyRegion = APIAuditLogChangeData<'region', string>;
/**
* Returned when a guild's preferred_locale is changed
*/
export type APIAuditLogChangeKeyPreferredLocale = AuditLogChangeData<'preferred_locale', string>;
export type APIAuditLogChangeKeyPreferredLocale = APIAuditLogChangeData<'preferred_locale', string>;
/**
* Returned when a guild's afk_channel_id is changed
*/
export type APIAuditLogChangeKeyAFKChannelId = AuditLogChangeData<'afk_channel_id', Snowflake>;
export type APIAuditLogChangeKeyAFKChannelId = APIAuditLogChangeData<'afk_channel_id', Snowflake>;
/**
* Returned when a guild's afk_timeout is changed
*/
export type APIAuditLogChangeKeyAFKTimeout = AuditLogChangeData<'afk_timeout', number>;
export type APIAuditLogChangeKeyAFKTimeout = APIAuditLogChangeData<'afk_timeout', number>;
/**
* Returned when a guild's rules_channel_id is changed
*/
export type APIAuditLogChangeKeyRulesChannelId = AuditLogChangeData<'rules_channel_id', string>;
export type APIAuditLogChangeKeyRulesChannelId = APIAuditLogChangeData<'rules_channel_id', string>;
/**
* Returned when a guild's public_updates_channel_id is changed
*/
export type APIAuditLogChangeKeyPublicUpdatesChannelId = AuditLogChangeData<'public_updates_channel_id', string>;
export type APIAuditLogChangeKeyPublicUpdatesChannelId = APIAuditLogChangeData<'public_updates_channel_id', string>;
/**
* Returned when a guild's safety_alerts_channel_id is changed
*/
export type APIAuditLogChangeKeySafetyAlertsChannelId = AuditLogChangeData<'safety_alerts_channel_id', string>;
export type APIAuditLogChangeKeySafetyAlertsChannelId = APIAuditLogChangeData<'safety_alerts_channel_id', string>;
/**
* Returned when a guild's mfa_level is changed
*/
export type APIAuditLogChangeKeyMFALevel = AuditLogChangeData<'mfa_level', GuildMFALevel>;
export type APIAuditLogChangeKeyMFALevel = APIAuditLogChangeData<'mfa_level', GuildMFALevel>;
/**
* Returned when a guild's verification_level is changed
*/
export type APIAuditLogChangeKeyVerificationLevel = AuditLogChangeData<'verification_level', GuildVerificationLevel>;
export type APIAuditLogChangeKeyVerificationLevel = APIAuditLogChangeData<'verification_level', GuildVerificationLevel>;
/**
* Returned when a guild's explicit_content_filter is changed
*/
export type APIAuditLogChangeKeyExplicitContentFilter = AuditLogChangeData<
export type APIAuditLogChangeKeyExplicitContentFilter = APIAuditLogChangeData<
'explicit_content_filter',
GuildExplicitContentFilter
>;
@@ -523,7 +535,7 @@ export type APIAuditLogChangeKeyExplicitContentFilter = AuditLogChangeData<
/**
* Returned when a guild's default_message_notifications is changed
*/
export type APIAuditLogChangeKeyDefaultMessageNotifications = AuditLogChangeData<
export type APIAuditLogChangeKeyDefaultMessageNotifications = APIAuditLogChangeData<
'default_message_notifications',
GuildDefaultMessageNotifications
>;
@@ -531,37 +543,45 @@ export type APIAuditLogChangeKeyDefaultMessageNotifications = AuditLogChangeData
/**
* Returned when a guild's vanity_url_code is changed
*/
export type APIAuditLogChangeKeyVanityURLCode = AuditLogChangeData<'vanity_url_code', string>;
export type APIAuditLogChangeKeyVanityURLCode = APIAuditLogChangeData<'vanity_url_code', string>;
/**
* Returned when a guild's boost progress bar is enabled
*/
export type APIAuditLogChangeKeyPremiumProgressBarEnabled = APIAuditLogChangeData<
'premium_progress_bar_enabled',
boolean
>;
/**
* Returned when new role(s) are added
*/
export type APIAuditLogChangeKey$Add = AuditLogChangeData<'$add', Pick<APIRole, 'id' | 'name'>[]>;
export type APIAuditLogChangeKey$Add = APIAuditLogChangeData<'$add', Pick<APIRole, 'id' | 'name'>[]>;
/**
* Returned when role(s) are removed
*/
export type APIAuditLogChangeKey$Remove = AuditLogChangeData<'$remove', Pick<APIRole, 'id' | 'name'>[]>;
export type APIAuditLogChangeKey$Remove = APIAuditLogChangeData<'$remove', Pick<APIRole, 'id' | 'name'>[]>;
/**
* Returned when there is a change in number of days after which inactive and role-unassigned members are kicked
*/
export type APIAuditLogChangeKeyPruneDeleteDays = AuditLogChangeData<'prune_delete_days', number>;
export type APIAuditLogChangeKeyPruneDeleteDays = APIAuditLogChangeData<'prune_delete_days', number>;
/**
* Returned when a guild's widget is enabled
*/
export type APIAuditLogChangeKeyWidgetEnabled = AuditLogChangeData<'widget_enabled', boolean>;
export type APIAuditLogChangeKeyWidgetEnabled = APIAuditLogChangeData<'widget_enabled', boolean>;
/**
* Returned when a guild's widget_channel_id is changed
*/
export type APIAuditLogChangeKeyWidgetChannelId = AuditLogChangeData<'widget_channel_id', Snowflake>;
export type APIAuditLogChangeKeyWidgetChannelId = APIAuditLogChangeData<'widget_channel_id', Snowflake>;
/**
* Returned when a guild's system_channel_flags is changed
*/
export type APIAuditLogChangeKeySystemChannelFlags = AuditLogChangeData<
export type APIAuditLogChangeKeySystemChannelFlags = APIAuditLogChangeData<
'system_channel_flags',
GuildSystemChannelFlags
>;
@@ -569,214 +589,222 @@ export type APIAuditLogChangeKeySystemChannelFlags = AuditLogChangeData<
/**
* Returned when a guild's system_channel_id is changed
*/
export type APIAuditLogChangeKeySystemChannelId = AuditLogChangeData<'system_channel_id', Snowflake>;
export type APIAuditLogChangeKeySystemChannelId = APIAuditLogChangeData<'system_channel_id', Snowflake>;
/**
* Returned when a channel's position is changed
*/
export type APIAuditLogChangeKeyPosition = AuditLogChangeData<'position', number>;
export type APIAuditLogChangeKeyPosition = APIAuditLogChangeData<'position', number>;
/**
* Returned when a channel's topic is changed
*/
export type APIAuditLogChangeKeyTopic = AuditLogChangeData<'topic', string>;
export type APIAuditLogChangeKeyTopic = APIAuditLogChangeData<'topic', string>;
/**
* Returned when a voice channel's bitrate is changed
*/
export type APIAuditLogChangeKeyBitrate = AuditLogChangeData<'bitrate', number>;
export type APIAuditLogChangeKeyBitrate = APIAuditLogChangeData<'bitrate', number>;
/**
* Returned when a channel's permission overwrites is changed
*/
export type APIAuditLogChangeKeyPermissionOverwrites = AuditLogChangeData<'permission_overwrites', APIOverwrite[]>;
export type APIAuditLogChangeKeyPermissionOverwrites = APIAuditLogChangeData<'permission_overwrites', APIOverwrite[]>;
/**
* Returned when a channel's NSFW restriction is changed
*/
export type APIAuditLogChangeKeyNSFW = AuditLogChangeData<'nsfw', boolean>;
export type APIAuditLogChangeKeyNSFW = APIAuditLogChangeData<'nsfw', boolean>;
/**
* The application ID of the added or removed Webhook or Bot
*/
export type APIAuditLogChangeKeyApplicationId = AuditLogChangeData<'application_id', Snowflake>;
export type APIAuditLogChangeKeyApplicationId = APIAuditLogChangeData<'application_id', Snowflake>;
/**
* Returned when a channel's amount of seconds a user has to wait before sending another message
* is changed
*/
export type APIAuditLogChangeKeyRateLimitPerUser = AuditLogChangeData<'rate_limit_per_user', number>;
export type APIAuditLogChangeKeyRateLimitPerUser = APIAuditLogChangeData<'rate_limit_per_user', number>;
/**
* Returned when a guild scheduled event's recurrence_rule is changed
*/
export type APIAuditLogChangeKeyRecurrenceRule = APIAuditLogChangeData<
'recurrence_rule',
APIGuildScheduledEventRecurrenceRule
>;
/**
* Returned when a permission bitfield is changed
*/
export type APIAuditLogChangeKeyPermissions = AuditLogChangeData<'permissions', string>;
export type APIAuditLogChangeKeyPermissions = APIAuditLogChangeData<'permissions', string>;
/**
* Returned when a role's color is changed
*/
export type APIAuditLogChangeKeyColor = AuditLogChangeData<'color', number>;
export type APIAuditLogChangeKeyColor = APIAuditLogChangeData<'color', number>;
/**
* Represents a change where the key is a snowflake.
* Currently, the only known instance of this is returned when permissions for a command were updated (<insert name of object here>)
* Currently, the only known instance of this is returned when permissions for a command were updated
*/
export type APIAuditLogChangeKeySnowflake = AuditLogChangeData<Snowflake, unknown>;
export type APIAuditLogChangeKeySnowflake = APIAuditLogChangeData<Snowflake, unknown>;
/**
* Returned when a role's hoist status is changed
*/
export type APIAuditLogChangeKeyHoist = AuditLogChangeData<'hoist', boolean>;
export type APIAuditLogChangeKeyHoist = APIAuditLogChangeData<'hoist', boolean>;
/**
* Returned when a role's mentionable status is changed
*/
export type APIAuditLogChangeKeyMentionable = AuditLogChangeData<'mentionable', boolean>;
export type APIAuditLogChangeKeyMentionable = APIAuditLogChangeData<'mentionable', boolean>;
/**
* Returned when an overwrite's allowed permissions bitfield is changed
*/
export type APIAuditLogChangeKeyAllow = AuditLogChangeData<'allow', string>;
export type APIAuditLogChangeKeyAllow = APIAuditLogChangeData<'allow', string>;
/**
* Returned when an overwrite's denied permissions bitfield is changed
*/
export type APIAuditLogChangeKeyDeny = AuditLogChangeData<'deny', string>;
export type APIAuditLogChangeKeyDeny = APIAuditLogChangeData<'deny', string>;
/**
* Returned when an invite's code is changed
*/
export type APIAuditLogChangeKeyCode = AuditLogChangeData<'code', string>;
export type APIAuditLogChangeKeyCode = APIAuditLogChangeData<'code', string>;
/**
* Returned when an invite's or guild scheduled event's channel_id is changed
*/
export type APIAuditLogChangeKeyChannelId = AuditLogChangeData<'channel_id', Snowflake>;
export type APIAuditLogChangeKeyChannelId = APIAuditLogChangeData<'channel_id', Snowflake>;
/**
* Returned when an invite's inviter_id is changed
*/
export type APIAuditLogChangeKeyInviterId = AuditLogChangeData<'inviter_id', Snowflake>;
export type APIAuditLogChangeKeyInviterId = APIAuditLogChangeData<'inviter_id', Snowflake>;
/**
* Returned when an invite's max_uses is changed
*/
export type APIAuditLogChangeKeyMaxUses = AuditLogChangeData<'max_uses', number>;
export type APIAuditLogChangeKeyMaxUses = APIAuditLogChangeData<'max_uses', number>;
/**
* Returned when an invite's uses is changed
*/
export type APIAuditLogChangeKeyUses = AuditLogChangeData<'uses', number>;
export type APIAuditLogChangeKeyUses = APIAuditLogChangeData<'uses', number>;
/**
* Returned when an invite's max_age is changed
*/
export type APIAuditLogChangeKeyMaxAge = AuditLogChangeData<'max_age', number>;
export type APIAuditLogChangeKeyMaxAge = APIAuditLogChangeData<'max_age', number>;
/**
* Returned when an invite's temporary status is changed
*/
export type APIAuditLogChangeKeyTemporary = AuditLogChangeData<'temporary', boolean>;
export type APIAuditLogChangeKeyTemporary = APIAuditLogChangeData<'temporary', boolean>;
/**
* Returned when a user's deaf status is changed
*/
export type APIAuditLogChangeKeyDeaf = AuditLogChangeData<'deaf', boolean>;
export type APIAuditLogChangeKeyDeaf = APIAuditLogChangeData<'deaf', boolean>;
/**
* Returned when a user's mute status is changed
*/
export type APIAuditLogChangeKeyMute = AuditLogChangeData<'mute', boolean>;
export type APIAuditLogChangeKeyMute = APIAuditLogChangeData<'mute', boolean>;
/**
* Returned when a user's nick is changed
*/
export type APIAuditLogChangeKeyNick = AuditLogChangeData<'nick', string>;
export type APIAuditLogChangeKeyNick = APIAuditLogChangeData<'nick', string>;
/**
* Returned when a user's avatar_hash is changed
*/
export type APIAuditLogChangeKeyAvatarHash = AuditLogChangeData<'avatar_hash', string>;
export type APIAuditLogChangeKeyAvatarHash = APIAuditLogChangeData<'avatar_hash', string>;
/**
* The ID of the changed entity - sometimes used in conjunction with other keys
*/
export type APIAuditLogChangeKeyId = AuditLogChangeData<'id', Snowflake>;
export type APIAuditLogChangeKeyId = APIAuditLogChangeData<'id', Snowflake>;
/**
* The type of entity created
*/
export type APIAuditLogChangeKeyType = AuditLogChangeData<'type', number | string>;
export type APIAuditLogChangeKeyType = APIAuditLogChangeData<'type', number | string>;
/**
* Returned when an integration's enable_emoticons is changed
*/
export type APIAuditLogChangeKeyEnableEmoticons = AuditLogChangeData<'enable_emoticons', boolean>;
export type APIAuditLogChangeKeyEnableEmoticons = APIAuditLogChangeData<'enable_emoticons', boolean>;
/**
* Returned when an integration's expire_behavior is changed
*/
export type APIAuditLogChangeKeyExpireBehavior = AuditLogChangeData<'expire_behavior', IntegrationExpireBehavior>;
export type APIAuditLogChangeKeyExpireBehavior = APIAuditLogChangeData<'expire_behavior', IntegrationExpireBehavior>;
/**
* Returned when an integration's expire_grace_period is changed
*/
export type APIAuditLogChangeKeyExpireGracePeriod = AuditLogChangeData<'expire_grace_period', number>;
export type APIAuditLogChangeKeyExpireGracePeriod = APIAuditLogChangeData<'expire_grace_period', number>;
/**
* Returned when a voice channel's user_limit is changed
*/
export type APIAuditLogChangeKeyUserLimit = AuditLogChangeData<'user_limit', number>;
export type APIAuditLogChangeKeyUserLimit = APIAuditLogChangeData<'user_limit', number>;
/**
* Returned when privacy level of a stage instance or guild scheduled event is changed
*/
export type APIAuditLogChangeKeyPrivacyLevel = AuditLogChangeData<'privacy_level', StageInstancePrivacyLevel>;
export type APIAuditLogChangeKeyPrivacyLevel = APIAuditLogChangeData<'privacy_level', StageInstancePrivacyLevel>;
/**
* Returned when a sticker's related emoji is changed
*/
export type APIAuditLogChangeKeyTags = AuditLogChangeData<'tags', string>;
export type APIAuditLogChangeKeyTags = APIAuditLogChangeData<'tags', string>;
/**
* Returned when a sticker's format_type is changed
*/
export type APIAuditLogChangeKeyFormatType = AuditLogChangeData<'format_type', StickerFormatType>;
export type APIAuditLogChangeKeyFormatType = APIAuditLogChangeData<'format_type', StickerFormatType>;
/**
* Empty string
*/
export type APIAuditLogChangeKeyAsset = AuditLogChangeData<'asset', ''>;
export type APIAuditLogChangeKeyAsset = APIAuditLogChangeData<'asset', ''>;
/**
* Returned when a sticker's availability is changed
*/
export type APIAuditLogChangeKeyAvailable = AuditLogChangeData<'available', boolean>;
export type APIAuditLogChangeKeyAvailable = APIAuditLogChangeData<'available', boolean>;
/**
* Returned when a sticker's guild_id is changed
*/
export type APIAuditLogChangeKeyGuildId = AuditLogChangeData<'guild_id', Snowflake>;
export type APIAuditLogChangeKeyGuildId = APIAuditLogChangeData<'guild_id', Snowflake>;
/**
* Returned when a thread's archive status is changed
*/
export type APIAuditLogChangeKeyArchived = AuditLogChangeData<'archived', boolean>;
export type APIAuditLogChangeKeyArchived = APIAuditLogChangeData<'archived', boolean>;
/**
* Returned when a thread's lock status is changed
*/
export type APIAuditLogChangeKeyLocked = AuditLogChangeData<'locked', boolean>;
export type APIAuditLogChangeKeyLocked = APIAuditLogChangeData<'locked', boolean>;
/**
* Returned when a thread's auto archive duration is changed
*/
export type APIAuditLogChangeKeyAutoArchiveDuration = AuditLogChangeData<'auto_archive_duration', number>;
export type APIAuditLogChangeKeyAutoArchiveDuration = APIAuditLogChangeData<'auto_archive_duration', number>;
/**
* Returned when a channel's default auto archive duration for newly created threads is changed
*/
export type APIAuditLogChangeKeyDefaultAutoArchiveDuration = AuditLogChangeData<
export type APIAuditLogChangeKeyDefaultAutoArchiveDuration = APIAuditLogChangeData<
'default_auto_archive_duration',
number
>;
@@ -784,37 +812,40 @@ export type APIAuditLogChangeKeyDefaultAutoArchiveDuration = AuditLogChangeData<
/**
* Returned when entity type of a guild scheduled event is changed
*/
export type APIAuditLogChangeKeyEntityType = AuditLogChangeData<'entity_type', GuildScheduledEventEntityType>;
export type APIAuditLogChangeKeyEntityType = APIAuditLogChangeData<'entity_type', GuildScheduledEventEntityType>;
/**
* Returned when status of a guild scheduled event is changed
*/
export type APIAuditLogChangeKeyStatus = AuditLogChangeData<'status', GuildScheduledEventStatus>;
export type APIAuditLogChangeKeyStatus = APIAuditLogChangeData<'status', GuildScheduledEventStatus>;
/**
* Returned when location of a guild scheduled event is changed
*/
export type APIAuditLogChangeKeyLocation = AuditLogChangeData<'location', string>;
export type APIAuditLogChangeKeyLocation = APIAuditLogChangeData<'location', string>;
/**
* Returned when a user's timeout is changed
*/
export type APIAuditLogChangeKeyCommunicationDisabledUntil = AuditLogChangeData<'communication_disabled_until', string>;
export type APIAuditLogChangeKeyCommunicationDisabledUntil = APIAuditLogChangeData<
'communication_disabled_until',
string
>;
/**
* Returned when an auto moderation rule's trigger type is changed (only in rule creation or deletion)
*/
export type APIAuditLogChangeKeyTriggerType = AuditLogChangeData<'trigger_type', AutoModerationRuleTriggerType>;
export type APIAuditLogChangeKeyTriggerType = APIAuditLogChangeData<'trigger_type', AutoModerationRuleTriggerType>;
/**
* Returned when an auto moderation rule's event type is changed
*/
export type APIAuditLogChangeKeyEventType = AuditLogChangeData<'event_type', AutoModerationRuleEventType>;
export type APIAuditLogChangeKeyEventType = APIAuditLogChangeData<'event_type', AutoModerationRuleEventType>;
/**
* Returned when an auto moderation rule's trigger metadata is changed
*/
export type APIAuditLogChangeKeyTriggerMetadata = AuditLogChangeData<
export type APIAuditLogChangeKeyTriggerMetadata = APIAuditLogChangeData<
'trigger_metadata',
APIAutoModerationRuleTriggerMetadata
>;
@@ -822,32 +853,32 @@ export type APIAuditLogChangeKeyTriggerMetadata = AuditLogChangeData<
/**
* Returned when an auto moderation rule's actions is changed
*/
export type APIAuditLogChangeKeyActions = AuditLogChangeData<'actions', APIAutoModerationAction[]>;
export type APIAuditLogChangeKeyActions = APIAuditLogChangeData<'actions', APIAutoModerationAction[]>;
/**
* Returned when an auto moderation rule's enabled status is changed
*/
export type APIAuditLogChangeKeyEnabled = AuditLogChangeData<'enabled', boolean>;
export type APIAuditLogChangeKeyEnabled = APIAuditLogChangeData<'enabled', boolean>;
/**
* Returned when an auto moderation rule's exempt roles is changed
*/
export type APIAuditLogChangeKeyExemptRoles = AuditLogChangeData<'exempt_roles', Snowflake[]>;
export type APIAuditLogChangeKeyExemptRoles = APIAuditLogChangeData<'exempt_roles', Snowflake[]>;
/**
* Returned when an auto moderation rule's exempt channels is changed
*/
export type APIAuditLogChangeKeyExemptChannels = AuditLogChangeData<'exempt_channels', Snowflake[]>;
export type APIAuditLogChangeKeyExemptChannels = APIAuditLogChangeData<'exempt_channels', Snowflake[]>;
/**
* Returned when a guild forum's available tags gets changed
*/
export type APIAuditLogChangeKeyAvailableTags = AuditLogChangeData<'available_tags', APIGuildForumTag[]>;
export type APIAuditLogChangeKeyAvailableTags = APIAuditLogChangeData<'available_tags', APIGuildForumTag[]>;
/**
* Returned when a guild forum's default reaction emoji gets changed
*/
export type APIAuditLogChangeKeyDefaultReactionEmoji = AuditLogChangeData<
export type APIAuditLogChangeKeyDefaultReactionEmoji = APIAuditLogChangeData<
'default_reaction_emoji',
APIGuildForumDefaultReactionEmoji
>;
@@ -855,18 +886,43 @@ export type APIAuditLogChangeKeyDefaultReactionEmoji = AuditLogChangeData<
/**
* Returned when a channel flag gets changed
*/
export type APIAuditLogChangeKeyFlags = AuditLogChangeData<'flags', number>;
export type APIAuditLogChangeKeyFlags = APIAuditLogChangeData<'flags', number>;
/**
* Returned when a thread's amount of seconds a user has to wait before creating another thread
* gets changed
*/
export type APIAuditLogChangeKeyDefaultThreadRateLimitPerUser = AuditLogChangeData<
export type APIAuditLogChangeKeyDefaultThreadRateLimitPerUser = APIAuditLogChangeData<
'default_thread_rate_limit_per_user',
number
>;
interface AuditLogChangeData<K extends string, D> {
/**
* Returned when a soundboard is create or deleted
*/
export type APIAuditLogChangeKeySoundId = APIAuditLogChangeData<'sound_id', Snowflake>;
/**
* Returned when a soundboard's volume is changed
*/
export type APIAuditLogChangeKeyVolume = APIAuditLogChangeData<'volume', number>;
/**
* Returned when a soundboard's custom emoji is changed
*/
export type APIAuditLogChangeKeyEmojiId = APIAuditLogChangeData<'emoji_id', Snowflake>;
/**
* Returned when a soundboard's unicode emoji is changed
*/
export type APIAuditLogChangeKeyEmojiName = APIAuditLogChangeData<'emoji_name', string>;
/**
* Returned when a sounboard is created
*/
export type APIAuditLogChangeKeyUserId = APIAuditLogChangeData<'user_id', Snowflake>;
export interface APIAuditLogChangeData<K extends string, D> {
key: K;
/**
* The new value

View File

@@ -5,7 +5,7 @@
import type { Snowflake } from '../../globals.ts';
/**
* https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-auto-moderation-rule-structure
* @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-auto-moderation-rule-structure}
*/
export interface APIAutoModerationRule {
/**
@@ -55,7 +55,7 @@ export interface APIAutoModerationRule {
}
/**
* https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-trigger-types
* @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-trigger-types}
*/
export enum AutoModerationRuleTriggerType {
/**
@@ -81,14 +81,15 @@ export enum AutoModerationRuleTriggerType {
}
/**
* https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-trigger-metadata
* @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-trigger-metadata}
*/
export interface APIAutoModerationRuleTriggerMetadata {
/**
* Substrings which will be searched for in content (Maximum of 1000)
*
* A keyword can be a phrase which contains multiple words. Wildcard symbols can be used to customize how each string will be matched. Each keyword must be 60 characters or less
* See [keyword matching strategies](https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-keyword-matching-strategies)
*
* @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-keyword-matching-strategies | Keyword matching strategies}
*
* Associated trigger types: {@link AutoModerationRuleTriggerType.Keyword}, {@link AutoModerationRuleTriggerType.MemberProfile}
*/
@@ -103,7 +104,8 @@ export interface APIAutoModerationRuleTriggerMetadata {
* Substrings which will be exempt from triggering the preset trigger type (Maximum of 1000)
*
* A allowed-word can be a phrase which contains multiple words. Wildcard symbols can be used to customize how each string will be matched. Each keyword must be 60 characters or less
* See [keyword matching strategies](https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-keyword-matching-strategies)
*
* @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-keyword-matching-strategies | Keyword matching strategies}
*
* Associated trigger types: {@link AutoModerationRuleTriggerType.Keyword}, {@link AutoModerationRuleTriggerType.KeywordPreset}, {@link AutoModerationRuleTriggerType.MemberProfile}
*/
@@ -131,7 +133,7 @@ export interface APIAutoModerationRuleTriggerMetadata {
}
/**
* https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-keyword-preset-types
* @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-keyword-preset-types}
*/
export enum AutoModerationRuleKeywordPresetType {
/**
@@ -149,7 +151,7 @@ export enum AutoModerationRuleKeywordPresetType {
}
/**
* https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-event-types
* @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-event-types}
*/
export enum AutoModerationRuleEventType {
/**
@@ -163,7 +165,7 @@ export enum AutoModerationRuleEventType {
}
/**
* https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-action-object-auto-moderation-action-structure
* @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-action-object-auto-moderation-action-structure}
*/
export interface APIAutoModerationAction {
/**
@@ -179,7 +181,7 @@ export interface APIAutoModerationAction {
}
/**
* https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-action-object-action-types
* @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-action-object-action-types}
*/
export enum AutoModerationActionType {
/**
@@ -202,7 +204,7 @@ export enum AutoModerationActionType {
}
/**
* https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-action-object-action-metadata
* @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-action-object-action-metadata}
*/
export interface APIAutoModerationActionMetadata {
/**

File diff suppressed because it is too large Load Diff

View File

@@ -25,7 +25,7 @@ export interface APIPartialEmoji {
}
/**
* https://discord.com/developers/docs/resources/emoji#emoji-object-emoji-structure
* @see {@link https://discord.com/developers/docs/resources/emoji#emoji-object-emoji-structure}
*/
export interface APIEmoji extends APIPartialEmoji {
/**

View File

@@ -5,12 +5,12 @@
*/
import type { Snowflake } from '../../globals.ts';
import type { APIChannel, APIThreadMember } from './channel.ts';
import type { APIThreadChannel, APIThreadMember } from './channel.ts';
import type { APIEmoji } from './emoji.ts';
import type { APIUser } from './user.ts';
/**
* https://discord.com/developers/docs/topics/gateway#get-gateway
* @see {@link https://discord.com/developers/docs/topics/gateway#get-gateway}
*/
export interface APIGatewayInfo {
/**
@@ -20,25 +20,25 @@ export interface APIGatewayInfo {
}
/**
* https://discord.com/developers/docs/topics/gateway#get-gateway-bot
* @see {@link https://discord.com/developers/docs/topics/gateway#get-gateway-bot}
*/
export interface APIGatewayBotInfo extends APIGatewayInfo {
/**
* The recommended number of shards to use when connecting
*
* See https://discord.com/developers/docs/topics/gateway#sharding
* @see {@link https://discord.com/developers/docs/topics/gateway#sharding}
*/
shards: number;
/**
* Information on the current session start limit
*
* See https://discord.com/developers/docs/topics/gateway#session-start-limit-object
* @see {@link https://discord.com/developers/docs/topics/gateway#session-start-limit-object}
*/
session_start_limit: APIGatewaySessionStartLimit;
}
/**
* https://discord.com/developers/docs/topics/gateway#session-start-limit-object
* @see {@link https://discord.com/developers/docs/topics/gateway#session-start-limit-object}
*/
export interface APIGatewaySessionStartLimit {
/**
@@ -60,7 +60,7 @@ export interface APIGatewaySessionStartLimit {
}
/**
* https://discord.com/developers/docs/topics/gateway-events#presence-update-presence-update-event-fields
* @see {@link https://discord.com/developers/docs/topics/gateway-events#presence-update-presence-update-event-fields}
*/
export interface GatewayPresenceUpdate {
/**
@@ -69,7 +69,7 @@ export interface GatewayPresenceUpdate {
* **The user object within this event can be partial, the only field which must be sent is the `id` field,
* everything else is optional.**
*
* See https://discord.com/developers/docs/resources/user#user-object
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
user: Partial<APIUser> & Pick<APIUser, 'id'>;
/**
@@ -83,19 +83,19 @@ export interface GatewayPresenceUpdate {
/**
* User's current activities
*
* See https://discord.com/developers/docs/topics/gateway-events#activity-object
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object}
*/
activities?: GatewayActivity[];
/**
* User's platform-dependent status
*
* See https://discord.com/developers/docs/topics/gateway-events#client-status-object
* @see {@link https://discord.com/developers/docs/topics/gateway-events#client-status-object}
*/
client_status?: GatewayPresenceClientStatus;
}
/**
* https://discord.com/developers/docs/topics/gateway-events#update-presence-status-types
* @see {@link https://discord.com/developers/docs/topics/gateway-events#update-presence-status-types}
*/
export enum PresenceUpdateStatus {
Online = 'online',
@@ -111,7 +111,7 @@ export enum PresenceUpdateStatus {
export type PresenceUpdateReceiveStatus = Exclude<PresenceUpdateStatus, PresenceUpdateStatus.Invisible>;
/**
* https://discord.com/developers/docs/topics/gateway-events#client-status-object
* @see {@link https://discord.com/developers/docs/topics/gateway-events#client-status-object}
*/
export interface GatewayPresenceClientStatus {
/**
@@ -129,7 +129,7 @@ export interface GatewayPresenceClientStatus {
}
/**
* https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-structure
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-structure}
*/
export interface GatewayActivity {
/**
@@ -145,7 +145,7 @@ export interface GatewayActivity {
/**
* Activity type
*
* See https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-types
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-types}
*/
type: ActivityType;
/**
@@ -187,7 +187,7 @@ export interface GatewayActivity {
/**
* The emoji used for a custom status
*
* See https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-emoji
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-emoji}
*/
emoji?: GatewayActivityEmoji;
/**
@@ -197,19 +197,19 @@ export interface GatewayActivity {
/**
* Information for the current party of the player
*
* See https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-party
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-party}
*/
party?: GatewayActivityParty;
/**
* Images for the presence and their hover texts
*
* See https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-assets
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-assets}
*/
assets?: GatewayActivityAssets;
/**
* Secrets for Rich Presence joining and spectating
*
* See https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-secrets
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-secrets}
*/
secrets?: GatewayActivitySecrets;
/**
@@ -219,9 +219,8 @@ export interface GatewayActivity {
/**
* Activity flags `OR`d together, describes what the payload includes
*
* See https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-flags
*
* See https://en.wikipedia.org/wiki/Bit_field
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-flags}
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
flags?: ActivityFlags;
/**
@@ -246,37 +245,37 @@ export enum ActivityPlatform {
}
/**
* https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-types
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-types}
*/
export enum ActivityType {
/**
* Playing {game}
* Playing \{game\}
*/
Playing,
/**
* Streaming {details}
* Streaming \{details\}
*/
Streaming,
/**
* Listening to {name}
* Listening to \{name\}
*/
Listening,
/**
* Watching {details}
* Watching \{details\}
*/
Watching,
/**
* {emoji} {state}
* \{emoji\} \{state\}
*/
Custom,
/**
* Competing in {name}
* Competing in \{name\}
*/
Competing,
}
/**
* https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-timestamps
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-timestamps}
*/
export interface GatewayActivityTimestamps {
/**
@@ -290,12 +289,12 @@ export interface GatewayActivityTimestamps {
}
/**
* https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-emoji
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-emoji}
*/
export type GatewayActivityEmoji = Partial<Pick<APIEmoji, 'animated' | 'id'>> & Pick<APIEmoji, 'name'>;
/**
* https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-party
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-party}
*/
export interface GatewayActivityParty {
/**
@@ -309,19 +308,19 @@ export interface GatewayActivityParty {
}
/**
* https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-assets
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-assets}
*/
export type GatewayActivityAssets = Partial<
Record<'large_image' | 'large_text' | 'small_image' | 'small_text', string>
>;
/**
* https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-secrets
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-secrets}
*/
export type GatewayActivitySecrets = Partial<Record<'join' | 'match' | 'spectate', string>>;
/**
* https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-flags
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-flags}
*/
export enum ActivityFlags {
Instance = 1 << 0,
@@ -347,7 +346,7 @@ export interface GatewayActivityButton {
}
/**
* https://discord.com/developers/docs/topics/gateway-events#thread-list-sync-thread-list-sync-event-fields
* @see {@link https://discord.com/developers/docs/topics/gateway-events#thread-list-sync-thread-list-sync-event-fields}
*/
export interface GatewayThreadListSync {
/**
@@ -361,7 +360,7 @@ export interface GatewayThreadListSync {
/**
* Array of the synced threads
*/
threads: APIChannel[];
threads: APIThreadChannel[];
/**
* The member objects for the client user in each joined thread that was synced
*/
@@ -369,7 +368,7 @@ export interface GatewayThreadListSync {
}
/**
* https://discord.com/developers/docs/topics/gateway-events#thread-members-update-thread-members-update-event-fields
* @see {@link https://discord.com/developers/docs/topics/gateway-events#thread-members-update-thread-members-update-event-fields}
*/
export interface GatewayThreadMembersUpdate {
/**

View File

@@ -3,6 +3,7 @@
*/
import type { Permissions, Snowflake } from '../../globals.ts';
import type { Locale } from '../../rest/common.ts';
import type { APIEmoji, APIPartialEmoji } from './emoji.ts';
import type { PresenceUpdateReceiveStatus } from './gateway.ts';
import type { OAuth2Scopes } from './oauth2.ts';
@@ -11,7 +12,7 @@ import type { APISticker } from './sticker.ts';
import type { APIAvatarDecorationData, APIUser } from './user.ts';
/**
* https://discord.com/developers/docs/resources/guild#unavailable-guild-object
* @see {@link https://discord.com/developers/docs/resources/guild#unavailable-guild-object}
*/
export interface APIUnavailableGuild {
/**
@@ -25,7 +26,7 @@ export interface APIUnavailableGuild {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-object-guild-structure
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-guild-structure}
*/
export interface APIPartialGuild extends Omit<APIUnavailableGuild, 'unavailable'>, Pick<APIGuild, 'welcome_screen'> {
/**
@@ -35,19 +36,19 @@ export interface APIPartialGuild extends Omit<APIUnavailableGuild, 'unavailable'
/**
* Icon hash
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
icon: string | null;
/**
* Splash hash
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
splash: string | null;
/**
* Banner hash
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
banner?: string | null;
/**
@@ -57,13 +58,13 @@ export interface APIPartialGuild extends Omit<APIUnavailableGuild, 'unavailable'
/**
* Enabled guild features
*
* See https://discord.com/developers/docs/resources/guild#guild-object-guild-features
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-guild-features}
*/
features?: GuildFeature[];
/**
* Verification level required for the guild
*
* See https://discord.com/developers/docs/resources/guild#guild-object-verification-level
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-verification-level}
*/
verification_level?: GuildVerificationLevel;
/**
@@ -73,19 +74,19 @@ export interface APIPartialGuild extends Omit<APIUnavailableGuild, 'unavailable'
}
/**
* https://discord.com/developers/docs/resources/guild#guild-object-guild-structure
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-guild-structure}
*/
export interface APIGuild extends APIPartialGuild {
/**
* Icon hash, returned when in the template object
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
icon_hash?: string | null;
/**
* Discovery splash hash; only present for guilds with the "DISCOVERABLE" feature
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
discovery_splash: string | null;
/**
@@ -103,14 +104,13 @@ export interface APIGuild extends APIPartialGuild {
*
* **This field is only received from https://discord.com/developers/docs/resources/user#get-current-user-guilds**
*
* See https://en.wikipedia.org/wiki/Bit_field
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
permissions?: Permissions;
/**
* Voice region id for the guild
*
* See https://discord.com/developers/docs/resources/voice#voice-region-object
*
* @see {@link https://discord.com/developers/docs/resources/voice#voice-region-object}
* @deprecated This field has been deprecated in favor of `rtc_region` on the channel.
*/
region: string;
@@ -133,43 +133,43 @@ export interface APIGuild extends APIPartialGuild {
/**
* Verification level required for the guild
*
* See https://discord.com/developers/docs/resources/guild#guild-object-verification-level
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-verification-level}
*/
verification_level: GuildVerificationLevel;
/**
* Default message notifications level
*
* See https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level}
*/
default_message_notifications: GuildDefaultMessageNotifications;
/**
* Explicit content filter level
*
* See https://discord.com/developers/docs/resources/guild#guild-object-explicit-content-filter-level
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-explicit-content-filter-level}
*/
explicit_content_filter: GuildExplicitContentFilter;
/**
* Roles in the guild
*
* See https://discord.com/developers/docs/topics/permissions#role-object
* @see {@link https://discord.com/developers/docs/topics/permissions#role-object}
*/
roles: APIRole[];
/**
* Custom guild emojis
*
* See https://discord.com/developers/docs/resources/emoji#emoji-object
* @see {@link https://discord.com/developers/docs/resources/emoji#emoji-object}
*/
emojis: APIEmoji[];
/**
* Enabled guild features
*
* See https://discord.com/developers/docs/resources/guild#guild-object-guild-features
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-guild-features}
*/
features: GuildFeature[];
/**
* Required MFA level for the guild
*
* See https://discord.com/developers/docs/resources/guild#guild-object-mfa-level
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-mfa-level}
*/
mfa_level: GuildMFALevel;
/**
@@ -183,7 +183,7 @@ export interface APIGuild extends APIPartialGuild {
/**
* System channel flags
*
* See https://discord.com/developers/docs/resources/guild#guild-object-system-channel-flags
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-system-channel-flags}
*/
system_channel_flags: GuildSystemChannelFlags;
/**
@@ -209,13 +209,13 @@ export interface APIGuild extends APIPartialGuild {
/**
* Banner hash
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
banner: string | null;
/**
* Premium tier (Server Boost level)
*
* See https://discord.com/developers/docs/resources/guild#guild-object-premium-tier
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-premium-tier}
*/
premium_tier: GuildPremiumTier;
/**
@@ -225,9 +225,9 @@ export interface APIGuild extends APIPartialGuild {
/**
* The preferred locale of a Community guild; used in guild discovery and notices from Discord; defaults to "en-US"
*
* @default "en-US"
* @defaultValue `"en-US"`
*/
preferred_locale: string;
preferred_locale: Locale;
/**
* The id of the channel where admins and moderators of Community guilds receive notices from Discord
*/
@@ -259,13 +259,13 @@ export interface APIGuild extends APIPartialGuild {
/**
* The nsfw level of the guild
*
* See https://discord.com/developers/docs/resources/guild#guild-object-guild-nsfw-level
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-guild-nsfw-level}
*/
nsfw_level: GuildNSFWLevel;
/**
* Custom guild stickers
*
* See https://discord.com/developers/docs/resources/sticker#sticker-object
* @see {@link https://discord.com/developers/docs/resources/sticker#sticker-object}
*/
stickers: APISticker[];
/**
@@ -280,10 +280,27 @@ export interface APIGuild extends APIPartialGuild {
* The id of the channel where admins and moderators of Community guilds receive safety alerts from Discord
*/
safety_alerts_channel_id: Snowflake | null;
/**
* The incidents data for this guild
*/
incidents_data: APIIncidentsData | null;
}
/**
* https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-guild-structure}
*/
export interface APIPartialInteractionGuild extends Pick<APIGuild, 'features' | 'id'> {
/**
* The preferred locale of a Community guild; used in guild discovery and notices from Discord; defaults to "en-US"
*
* @unstable https://github.com/discord/discord-api-docs/issues/6938
* @defaultValue `"en-US"`
*/
locale: Locale;
}
/**
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level}
*/
export enum GuildDefaultMessageNotifications {
AllMessages,
@@ -291,7 +308,7 @@ export enum GuildDefaultMessageNotifications {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-object-explicit-content-filter-level
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-explicit-content-filter-level}
*/
export enum GuildExplicitContentFilter {
Disabled,
@@ -300,7 +317,7 @@ export enum GuildExplicitContentFilter {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-object-mfa-level
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-mfa-level}
*/
export enum GuildMFALevel {
None,
@@ -308,7 +325,7 @@ export enum GuildMFALevel {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-object-guild-nsfw-level
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-guild-nsfw-level}
*/
export enum GuildNSFWLevel {
Default,
@@ -318,7 +335,7 @@ export enum GuildNSFWLevel {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-object-verification-level
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-verification-level}
*/
export enum GuildVerificationLevel {
/**
@@ -344,7 +361,7 @@ export enum GuildVerificationLevel {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-object-premium-tier
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-premium-tier}
*/
export enum GuildPremiumTier {
None,
@@ -360,7 +377,7 @@ export enum GuildHubType {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-object-system-channel-flags
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-system-channel-flags}
*/
export enum GuildSystemChannelFlags {
/**
@@ -390,7 +407,7 @@ export enum GuildSystemChannelFlags {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-object-guild-features
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-guild-features}
*/
export enum GuildFeature {
/**
@@ -404,7 +421,7 @@ export enum GuildFeature {
/**
* Guild is using the old permissions configuration behavior
*
* See https://discord.com/developers/docs/change-log#upcoming-application-command-permission-changes
* @see {@link https://discord.com/developers/docs/change-log#upcoming-application-command-permission-changes}
*/
ApplicationCommandPermissionsV2 = 'APPLICATION_COMMAND_PERMISSIONS_V2',
/**
@@ -446,8 +463,7 @@ export enum GuildFeature {
/**
* Guild is a Student Hub
*
* See https://support.discord.com/hc/articles/4406046651927
*
* @see {@link https://support.discord.com/hc/articles/4406046651927}
* @unstable This feature is currently not documented by Discord, but has known value
*/
Hub = 'HUB',
@@ -462,8 +478,7 @@ export enum GuildFeature {
/**
* Guild is in a Student Hub
*
* See https://support.discord.com/hc/articles/4406046651927
*
* @see {@link https://support.discord.com/hc/articles/4406046651927}
* @unstable This feature is currently not documented by Discord, but has known value
*/
LinkedToHub = 'LINKED_TO_HUB',
@@ -471,6 +486,10 @@ export enum GuildFeature {
* Guild has enabled Membership Screening
*/
MemberVerificationGateEnabled = 'MEMBER_VERIFICATION_GATE_ENABLED',
/**
* Guild has increased custom soundboard sound slots
*/
MoreSoundboard = 'MORE_SOUNDBOARD',
/**
* Guild has enabled monetization
*
@@ -514,6 +533,10 @@ export enum GuildFeature {
* Guild has enabled role subscriptions
*/
RoleSubscriptionsEnabled = 'ROLE_SUBSCRIPTIONS_ENABLED',
/**
* Guild has created soundboard sounds
*/
Soundboard = 'SOUNDBOARD',
/**
* Guild has enabled ticketed events
*/
@@ -537,7 +560,7 @@ export enum GuildFeature {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-preview-object
* @see {@link https://discord.com/developers/docs/resources/guild#guild-preview-object}
*/
export interface APIGuildPreview {
/**
@@ -551,31 +574,31 @@ export interface APIGuildPreview {
/**
* Icon hash
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
icon: string | null;
/**
* Splash hash
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
splash: string | null;
/**
* Discovery splash hash; only present for guilds with the "DISCOVERABLE" feature
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
discovery_splash: string | null;
/**
* Custom guild emojis
*
* See https://discord.com/developers/docs/resources/emoji#emoji-object
* @see {@link https://discord.com/developers/docs/resources/emoji#emoji-object}
*/
emojis: APIEmoji[];
/**
* Enabled guild features
*
* See https://discord.com/developers/docs/resources/guild#guild-object-guild-features
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-guild-features}
*/
features: GuildFeature[];
/**
@@ -597,7 +620,7 @@ export interface APIGuildPreview {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-widget-object
* @see {@link https://discord.com/developers/docs/resources/guild#guild-widget-object}
*/
export interface APIGuildWidgetSettings {
/**
@@ -611,7 +634,7 @@ export interface APIGuildWidgetSettings {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-member-object
* @see {@link https://discord.com/developers/docs/resources/guild#guild-member-object}
*/
export interface APIGuildMember {
/**
@@ -619,7 +642,7 @@ export interface APIGuildMember {
*
* **This field won't be included in the member object attached to `MESSAGE_CREATE` and `MESSAGE_UPDATE` gateway events.**
*
* See https://discord.com/developers/docs/resources/user#user-object
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
user: APIUser;
/**
@@ -630,10 +653,14 @@ export interface APIGuildMember {
* The member's guild avatar hash
*/
avatar?: string | null;
/**
* The member's guild banner hash
*/
banner?: string | null;
/**
* Array of role object ids
*
* See https://discord.com/developers/docs/topics/permissions#role-object
* @see {@link https://discord.com/developers/docs/topics/permissions#role-object}
*/
roles: Snowflake[];
/**
@@ -643,7 +670,7 @@ export interface APIGuildMember {
/**
* When the user started boosting the guild
*
* See https://support.discord.com/hc/articles/360028038352
* @see {@link https://support.discord.com/hc/articles/360028038352}
*/
premium_since?: string | null;
/**
@@ -671,13 +698,13 @@ export interface APIGuildMember {
/**
* The data for the member's guild avatar decoration
*
* See https://discord.com/developers/docs/resources/user#avatar-decoration-data-object
* @see {@link https://discord.com/developers/docs/resources/user#avatar-decoration-data-object}
*/
avatar_decoration_data?: APIAvatarDecorationData | null;
}
/**
* https://discord.com/developers/docs/resources/guild#guild-member-object-guild-member-flags
* @see {@link https://discord.com/developers/docs/resources/guild#guild-member-object-guild-member-flags}
*/
export enum GuildMemberFlags {
/**
@@ -689,7 +716,7 @@ export enum GuildMemberFlags {
*/
CompletedOnboarding = 1 << 1,
/**
* Member bypasses guild verification requirements
* Member is exempt from guild verification requirements
*/
BypassesVerification = 1 << 2,
/**
@@ -697,25 +724,34 @@ export enum GuildMemberFlags {
*/
StartedOnboarding = 1 << 3,
/**
* @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
* Member is a guest and can only access the voice channel they were invited to
*/
IsGuest = 1 << 4,
/**
* Member has started Server Guide new member actions
*/
StartedHomeActions = 1 << 5,
/**
* @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
* Member has completed Server Guide new member actions
*/
CompletedHomeActions = 1 << 6,
/**
* @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
* Member's username, display name, or nickname is blocked by AutoMod
*/
AutomodQuarantinedUsernameOrGuildNickname = 1 << 7,
/**
* @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
* @deprecated
* {@link https://github.com/discord/discord-api-docs/pull/7113 | discord-api-docs#7113}
*/
AutomodQuarantinedBio = 1 << 8,
/**
* Member has dismissed the DM settings upsell
*/
DmSettingsUpsellAcknowledged = 1 << 9,
}
/**
* https://discord.com/developers/docs/resources/guild#integration-object
* @see {@link https://discord.com/developers/docs/resources/guild#integration-object}
*/
export interface APIGuildIntegration {
/**
@@ -757,7 +793,7 @@ export interface APIGuildIntegration {
*
* **This field is not provided for `discord` bot integrations.**
*
* See https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors
* @see {@link https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors}
*/
expire_behavior?: IntegrationExpireBehavior;
/**
@@ -771,13 +807,13 @@ export interface APIGuildIntegration {
*
* **Some older integrations may not have an attached user.**
*
* See https://discord.com/developers/docs/resources/user#user-object
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
user?: APIUser;
/**
* Integration account information
*
* See https://discord.com/developers/docs/resources/guild#integration-account-object
* @see {@link https://discord.com/developers/docs/resources/guild#integration-account-object}
*/
account: APIIntegrationAccount;
/**
@@ -801,7 +837,7 @@ export interface APIGuildIntegration {
/**
* The bot/OAuth2 application for discord integrations
*
* See https://discord.com/developers/docs/resources/guild#integration-application-object
* @see {@link https://discord.com/developers/docs/resources/guild#integration-application-object}
*
* **This field is not provided for `discord` bot integrations.**
*/
@@ -815,7 +851,7 @@ export interface APIGuildIntegration {
export type APIGuildIntegrationType = 'discord' | 'guild_subscription' | 'twitch' | 'youtube';
/**
* https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors
* @see {@link https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors}
*/
export enum IntegrationExpireBehavior {
RemoveRole,
@@ -823,7 +859,7 @@ export enum IntegrationExpireBehavior {
}
/**
* https://discord.com/developers/docs/resources/guild#integration-account-object
* @see {@link https://discord.com/developers/docs/resources/guild#integration-account-object}
*/
export interface APIIntegrationAccount {
/**
@@ -837,7 +873,7 @@ export interface APIIntegrationAccount {
}
/**
* https://discord.com/developers/docs/resources/guild#integration-application-object
* @see {@link https://discord.com/developers/docs/resources/guild#integration-application-object}
*/
export interface APIGuildIntegrationApplication {
/**
@@ -851,7 +887,7 @@ export interface APIGuildIntegrationApplication {
/**
* The icon hash of the app
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
icon: string | null;
/**
@@ -861,13 +897,13 @@ export interface APIGuildIntegrationApplication {
/**
* The bot associated with this application
*
* See https://discord.com/developers/docs/resources/user#user-object
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
bot?: APIUser;
}
/**
* https://discord.com/developers/docs/resources/guild#ban-object
* @see {@link https://discord.com/developers/docs/resources/guild#ban-object}
*/
export interface APIBan {
/**
@@ -881,7 +917,7 @@ export interface APIBan {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-widget-object
* @see {@link https://discord.com/developers/docs/resources/guild#guild-widget-object}
*/
export interface APIGuildWidget {
id: Snowflake;
@@ -893,7 +929,7 @@ export interface APIGuildWidget {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-widget-object-example-guild-widget
* @see {@link https://discord.com/developers/docs/resources/guild#guild-widget-object-example-guild-widget}
*/
export interface APIGuildWidgetChannel {
id: Snowflake;
@@ -902,7 +938,7 @@ export interface APIGuildWidgetChannel {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-widget-object-example-guild-widget
* @see {@link https://discord.com/developers/docs/resources/guild#guild-widget-object-example-guild-widget}
*/
export interface APIGuildWidgetMember {
id: string;
@@ -915,7 +951,7 @@ export interface APIGuildWidgetMember {
}
/**
* https://discord.com/developers/docs/resources/guild#get-guild-widget-image-widget-style-options
* @see {@link https://discord.com/developers/docs/resources/guild#get-guild-widget-image-widget-style-options}
*/
export enum GuildWidgetStyle {
/**
@@ -1015,7 +1051,7 @@ export enum MembershipScreeningFieldType {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-onboarding-object-guild-onboarding-structure
* @see {@link https://discord.com/developers/docs/resources/guild#guild-onboarding-object-guild-onboarding-structure}
*/
export interface APIGuildOnboarding {
/**
@@ -1041,7 +1077,7 @@ export interface APIGuildOnboarding {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-onboarding-object-onboarding-prompt-structure
* @see {@link https://discord.com/developers/docs/resources/guild#guild-onboarding-object-onboarding-prompt-structure}
*/
export interface APIGuildOnboardingPrompt {
/**
@@ -1076,7 +1112,7 @@ export interface APIGuildOnboardingPrompt {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-onboarding-object-prompt-option-structure
* @see {@link https://discord.com/developers/docs/resources/guild#guild-onboarding-object-prompt-option-structure}
*/
export interface APIGuildOnboardingPromptOption {
/**
@@ -1106,7 +1142,7 @@ export interface APIGuildOnboardingPromptOption {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-onboarding-object-onboarding-mode
* @see {@link https://discord.com/developers/docs/resources/guild#guild-onboarding-object-onboarding-mode}
*/
export enum GuildOnboardingMode {
/**
@@ -1120,9 +1156,28 @@ export enum GuildOnboardingMode {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-onboarding-object-prompt-types
* @see {@link https://discord.com/developers/docs/resources/guild#guild-onboarding-object-prompt-types}
*/
export enum GuildOnboardingPromptType {
MultipleChoice,
Dropdown,
}
export interface APIIncidentsData {
/**
* When invites get enabled again
*/
invites_disabled_until: string | null;
/**
* When direct messages get enabled again
*/
dms_disabled_until: string | null;
/**
* When the dm spam was detected
*/
dm_spam_detected_at?: string | null;
/**
* When the raid was detected
*/
raid_detected_at?: string | null;
}

View File

@@ -2,7 +2,7 @@ import type { Snowflake } from '../../globals.ts';
import type { APIGuildMember } from './guild.ts';
import type { APIUser } from './user.ts';
interface APIGuildScheduledEventBase<Type extends GuildScheduledEventEntityType> {
export interface APIGuildScheduledEventBase<Type extends GuildScheduledEventEntityType> {
/**
* The id of the guild event
*/
@@ -67,8 +67,120 @@ interface APIGuildScheduledEventBase<Type extends GuildScheduledEventEntityType>
* The cover image of the scheduled event
*/
image?: string | null;
/**
* The definition for how often this event should recur
*/
recurrence_rule: APIGuildScheduledEventRecurrenceRule | null;
}
/**
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-recurrence-rule-object-guild-scheduled-event-recurrence-rule-structure}
*/
export interface APIGuildScheduledEventRecurrenceRule {
/**
* Starting time of the recurrence interval
*/
start: string;
/**
* Ending time of the recurrence interval
*/
end: string | null;
/**
* How often the event occurs
*/
frequency: GuildScheduledEventRecurrenceRuleFrequency;
/**
* The spacing between the events, defined by `frequency`.
* For example, `frequency` of {@link GuildScheduledEventRecurrenceRuleFrequency.Weekly} and an `interval` of `2`
* would be "every-other week"
*/
interval: number;
/**
* Set of specific days within a week for the event to recur on
*/
by_weekday: GuildScheduledEventRecurrenceRuleWeekday[] | null;
/**
* List of specific days within a specific week (1-5) to recur on
*/
by_n_weekday: APIGuildScheduledEventRecurrenceRuleNWeekday[] | null;
/**
* Set of specific months to recur on
*/
by_month: GuildScheduledEventRecurrenceRuleMonth[] | null;
/**
* Set of specific dates within a month to recur on
*/
by_month_day: number[] | null;
/**
* Set of days within a year to recur on (1-364)
*/
by_year_day: number[] | null;
/**
* The total amount of times that the event is allowed to recur before stopping
*/
count: number | null;
}
/**
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-recurrence-rule-object-guild-scheduled-event-recurrence-rule-frequency}
*/
export enum GuildScheduledEventRecurrenceRuleFrequency {
Yearly,
Monthly,
Weekly,
Daily,
}
/**
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-recurrence-rule-object-guild-scheduled-event-recurrence-rule-weekday}
*/
export enum GuildScheduledEventRecurrenceRuleWeekday {
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday,
}
/**
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-recurrence-rule-object-guild-scheduled-event-recurrence-rule-month}
*/
export enum GuildScheduledEventRecurrenceRuleMonth {
January = 1,
February,
March,
April,
May,
June,
July,
August,
September,
October,
November,
December,
}
/**
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-recurrence-rule-object-guild-scheduled-event-recurrence-rule-nweekday-structure}
*/
export interface APIGuildScheduledEventRecurrenceRuleNWeekday {
/**
* The week to reoccur on.
*/
n: 1 | 2 | 3 | 4 | 5;
/**
* The day within the week to reoccur on
*/
day: GuildScheduledEventRecurrenceRuleWeekday;
}
/**
* @deprecated Use {@link APIGuildScheduledEventRecurrenceRuleNWeekday} instead
*/
export type GuildScheduledEventRecurrenceRuleNWeekday = APIGuildScheduledEventRecurrenceRuleNWeekday;
export interface APIStageInstanceGuildScheduledEvent
extends APIGuildScheduledEventBase<GuildScheduledEventEntityType.StageInstance> {
channel_id: Snowflake;
@@ -87,7 +199,7 @@ export interface APIExternalGuildScheduledEvent
}
/**
* https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-structure
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-structure}
*/
export type APIGuildScheduledEvent =
| APIExternalGuildScheduledEvent
@@ -95,7 +207,7 @@ export type APIGuildScheduledEvent =
| APIVoiceGuildScheduledEvent;
/**
* https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-metadata
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-metadata}
*/
export interface APIGuildScheduledEventEntityMetadata {
/**
@@ -105,7 +217,7 @@ export interface APIGuildScheduledEventEntityMetadata {
}
/**
* https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-types
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-types}
*/
export enum GuildScheduledEventEntityType {
StageInstance = 1,
@@ -114,7 +226,7 @@ export enum GuildScheduledEventEntityType {
}
/**
* https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-status
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-status}
*/
export enum GuildScheduledEventStatus {
Scheduled = 1,
@@ -124,7 +236,7 @@ export enum GuildScheduledEventStatus {
}
/**
* https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-privacy-level
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-privacy-level}
*/
export enum GuildScheduledEventPrivacyLevel {
/**
@@ -134,7 +246,7 @@ export enum GuildScheduledEventPrivacyLevel {
}
/**
* https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-user-object-guild-scheduled-event-user-structure
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-user-object-guild-scheduled-event-user-structure}
*/
export interface APIGuildScheduledEventUser {
/**

View File

@@ -29,7 +29,7 @@ export * from './_interactions/ping.ts';
export * from './_interactions/responses.ts';
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIInteraction =
| APIApplicationCommandAutocompleteInteraction
@@ -39,7 +39,7 @@ export type APIInteraction =
| APIPingInteraction;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIDMInteraction =
| APIApplicationCommandAutocompleteDMInteraction
@@ -48,7 +48,7 @@ export type APIDMInteraction =
| APIModalSubmitDMInteraction;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIGuildInteraction =
| APIApplicationCommandAutocompleteGuildInteraction

View File

@@ -25,7 +25,7 @@ export type APIInviteGuild = Pick<
>;
/**
* https://discord.com/developers/docs/resources/invite#invite-object
* @see {@link https://discord.com/developers/docs/resources/invite#invite-object}
*/
export interface APIInvite {
/**
@@ -35,37 +35,37 @@ export interface APIInvite {
/**
* The guild this invite is for
*
* See https://discord.com/developers/docs/resources/guild#guild-object
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object}
*/
guild?: APIInviteGuild;
/**
* The channel this invite is for
*
* See https://discord.com/developers/docs/resources/channel#channel-object
* @see {@link https://discord.com/developers/docs/resources/channel#channel-object}
*/
channel: Required<APIPartialChannel> | null;
/**
* The user who created the invite
*
* See https://discord.com/developers/docs/resources/user#user-object
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
inviter?: APIUser;
/**
* The type of target for this voice channel invite
*
* See https://discord.com/developers/docs/resources/invite#invite-object-invite-target-types
* @see {@link https://discord.com/developers/docs/resources/invite#invite-object-invite-target-types}
*/
target_type?: InviteTargetType;
/**
* The user whose stream to display for this voice channel stream invite
*
* See https://discord.com/developers/docs/resources/user#user-object
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
target_user?: APIUser;
/**
* The embedded application to open for this voice channel embedded application invite
*
* See https://discord.com/developers/docs/resources/application#application-object
* @see {@link https://discord.com/developers/docs/resources/application#application-object}
*/
target_application?: Partial<APIApplication>;
/**
@@ -84,6 +84,7 @@ export interface APIInvite {
* The stage instance data if there is a public stage instance in the stage channel this invite is for
*
* @deprecated
* {@link https://github.com/discord/discord-api-docs/pull/4479 | discord-api-docs#4479}
*/
stage_instance?: APIInviteStageInstance;
/**
@@ -97,7 +98,7 @@ export interface APIInvite {
}
/**
* https://discord.com/developers/docs/resources/invite#invite-object-invite-types
* @see {@link https://discord.com/developers/docs/resources/invite#invite-object-invite-types}
*/
export enum InviteType {
Guild,
@@ -106,7 +107,7 @@ export enum InviteType {
}
/**
* https://discord.com/developers/docs/resources/invite#invite-object-invite-target-types
* @see {@link https://discord.com/developers/docs/resources/invite#invite-object-invite-target-types}
*/
export enum InviteTargetType {
Stream = 1,
@@ -114,7 +115,7 @@ export enum InviteTargetType {
}
/**
* https://discord.com/developers/docs/resources/invite#invite-metadata-object
* @see {@link https://discord.com/developers/docs/resources/invite#invite-metadata-object}
*/
export interface APIExtendedInvite extends APIInvite {
/**

View File

@@ -9,9 +9,11 @@ export * from './guild.ts';
export * from './guildScheduledEvent.ts';
export * from './interactions.ts';
export * from './invite.ts';
export * from './monetization.ts';
export * from './oauth2.ts';
export * from './poll.ts';
export * from './permissions.ts';
export * from './poll.ts';
export * from './soundboard.ts';
export * from './stageInstance.ts';
export * from './sticker.ts';
export * from './teams.ts';
@@ -19,4 +21,3 @@ export * from './template.ts';
export * from './user.ts';
export * from './voice.ts';
export * from './webhook.ts';
export * from './monetization.ts';

View File

@@ -1,7 +1,7 @@
import type { Snowflake } from '../../globals.ts';
/**
* https://discord.com/developers/docs/monetization/entitlements#entitlement-object-entitlement-structure
* @see {@link https://discord.com/developers/docs/monetization/entitlements#entitlement-object-entitlement-structure}
*/
export interface APIEntitlement {
/**
@@ -33,13 +33,13 @@ export interface APIEntitlement {
*/
deleted: boolean;
/**
* Start date at which the entitlement is valid. Not present when using test entitlements.
* Start date at which the entitlement is valid.
*/
starts_at?: string;
starts_at: string | null;
/**
* Date at which the entitlement is no longer valid. Not present when using test entitlements.
* Date at which the entitlement is no longer valid.
*/
ends_at?: string;
ends_at: string | null;
/**
* For consumable items, whether or not the entitlement has been consumed
*/
@@ -47,7 +47,7 @@ export interface APIEntitlement {
}
/**
* https://discord.com/developers/docs/monetization/entitlements#entitlement-object-entitlement-types
* @see {@link https://discord.com/developers/docs/monetization/entitlements#entitlement-object-entitlement-types}
*/
export enum EntitlementType {
/**
@@ -85,7 +85,7 @@ export enum EntitlementType {
}
/**
* https://discord.com/developers/docs/monetization/skus#sku-object-sku-structure
* @see {@link https://discord.com/developers/docs/monetization/skus#sku-object-sku-structure}
*/
export interface APISKU {
/**
@@ -111,13 +111,13 @@ export interface APISKU {
/**
* SKU flags combined as a bitfield
*
* See https://en.wikipedia.org/wiki/Bit_field
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
flags: SKUFlags;
}
/**
* https://discord.com/developers/docs/monetization/skus#sku-object-sku-flags
* @see {@link https://discord.com/developers/docs/monetization/skus#sku-object-sku-flags}
*/
export enum SKUFlags {
/**
@@ -135,6 +135,9 @@ export enum SKUFlags {
UserSubscription = 1 << 8,
}
/**
* @see {@link https://discord.com/developers/docs/resources/sku#sku-object-sku-types}
*/
export enum SKUType {
/**
* Durable one-time purchase
@@ -153,3 +156,67 @@ export enum SKUType {
*/
SubscriptionGroup = 6,
}
/**
* @see {@link https://discord.com/developers/docs/resources/subscription#subscription-object}
*/
export interface APISubscription {
/**
* ID of the subscription
*/
id: Snowflake;
/**
* ID of the user who is subscribed
*/
user_id: Snowflake;
/**
* List of SKUs subscribed to
*/
sku_ids: Snowflake[];
/**
* List of entitlements granted for this subscription
*/
entitlement_ids: Snowflake[];
/**
* List of SKUs that this user will be subscribed to at renewal
*/
renewal_sku_ids: Snowflake[] | null;
/**
* Start of the current subscription period
*/
current_period_start: string;
/**
* End of the current subscription period
*/
current_period_end: string;
/**
* Current status of the subscription
*/
status: SubscriptionStatus;
/**
* When the subscription was canceled
*/
canceled_at: string | null;
/**
* ISO3166-1 alpha-2 country code of the payment source used to purchase the subscription. Missing unless queried with a private OAuth scope.
*/
country?: string;
}
/**
* @see {@link https://discord.com/developers/docs/resources/subscription#subscription-statuses}
*/
export enum SubscriptionStatus {
/**
* Subscription is active and scheduled to renew.
*/
Active,
/**
* Subscription is active but will not renew.
*/
Ending,
/**
* Subscription is inactive and not being charged.
*/
Inactive,
}

View File

@@ -8,10 +8,10 @@ export enum OAuth2Scopes {
*/
Bot = 'bot',
/**
* Allows [/users/@me/connections](https://discord.com/developers/docs/resources/user#get-user-connections)
* Allows {@link https://discord.com/developers/docs/resources/user#get-user-connections | `/users/@me/connections`}
* to return linked third-party accounts
*
* See https://discord.com/developers/docs/resources/user#get-user-connections
* @see {@link https://discord.com/developers/docs/resources/user#get-user-connections}
*/
Connections = 'connections',
/**
@@ -19,41 +19,41 @@ export enum OAuth2Scopes {
*/
DMChannelsRead = 'dm_channels.read',
/**
* Enables [/users/@me](https://discord.com/developers/docs/resources/user#get-current-user) to return an `email`
* Enables {@link https://discord.com/developers/docs/resources/user#get-current-user | `/users/@me`} to return an `email`
*
* See https://discord.com/developers/docs/resources/user#get-current-user
* @see {@link https://discord.com/developers/docs/resources/user#get-current-user}
*/
Email = 'email',
/**
* Allows [/users/@me](https://discord.com/developers/docs/resources/user#get-current-user) without `email`
* Allows {@link https://discord.com/developers/docs/resources/user#get-current-user | `/users/@me`} without `email`
*
* See https://discord.com/developers/docs/resources/user#get-current-user
* @see {@link https://discord.com/developers/docs/resources/user#get-current-user}
*/
Identify = 'identify',
/**
* Allows [/users/@me/guilds](https://discord.com/developers/docs/resources/user#get-current-user-guilds)
* Allows {@link https://discord.com/developers/docs/resources/user#get-current-user-guilds | `/users/@me/guilds`}
* to return basic information about all of a user's guilds
*
* See https://discord.com/developers/docs/resources/user#get-current-user-guilds
* @see {@link https://discord.com/developers/docs/resources/user#get-current-user-guilds}
*/
Guilds = 'guilds',
/**
* Allows [/guilds/{guild.id}/members/{user.id}](https://discord.com/developers/docs/resources/guild#add-guild-member)
* Allows {@link https://discord.com/developers/docs/resources/guild#add-guild-member | `/guilds/[guild.id]/members/[user.id]`}
* to be used for joining users to a guild
*
* See https://discord.com/developers/docs/resources/guild#add-guild-member
* @see {@link https://discord.com/developers/docs/resources/guild#add-guild-member}
*/
GuildsJoin = 'guilds.join',
/**
* Allows /users/@me/guilds/{guild.id}/member to return a user's member information in a guild
* Allows /users/\@me/guilds/\{guild.id\}/member to return a user's member information in a guild
*
* See https://discord.com/developers/docs/resources/user#get-current-user-guild-member
* @see {@link https://discord.com/developers/docs/resources/user#get-current-user-guild-member}
*/
GuildsMembersRead = 'guilds.members.read',
/**
* Allows your app to join users to a group dm
*
* See https://discord.com/developers/docs/resources/channel#group-dm-add-recipient
* @see {@link https://discord.com/developers/docs/resources/channel#group-dm-add-recipient}
*/
GroupDMJoins = 'gdm.join',
/**
@@ -69,6 +69,18 @@ export enum OAuth2Scopes {
* For local rpc server access, this allows you to control a user's local Discord client - requires Discord approval
*/
RPC = 'rpc',
/**
* For local rpc server access, this allows you to update a user's activity - requires Discord approval
*/
RPCActivitiesWrite = 'rpc.activities.write',
/**
* For local rpc server access, this allows you to read a user's voice settings and listen for voice events - requires Discord approval
*/
RPCVoiceRead = 'rpc.voice.read',
/**
* For local rpc server access, this allows you to update a user's voice settings - requires Discord approval
*/
RPCVoiceWrite = 'rpc.voice.write',
/**
* For local rpc server api access, this allows you to receive notifications pushed out to the user - requires Discord approval
*/
@@ -108,25 +120,25 @@ export enum OAuth2Scopes {
/**
* Allows your app to update a user's activity - requires Discord approval (NOT REQUIRED FOR GAMESDK ACTIVITY MANAGER)
*
* See https://discord.com/developers/docs/game-sdk/activities
* @see {@link https://discord.com/developers/docs/game-sdk/activities}
*/
ActivitiesWrite = 'activities.write',
/**
* Allows your app to use Application Commands in a guild
*
* See https://discord.com/developers/docs/interactions/application-commands
* @see {@link https://discord.com/developers/docs/interactions/application-commands}
*/
ApplicationsCommands = 'applications.commands',
/**
* Allows your app to update its Application Commands via this bearer token - client credentials grant only
*
* See https://discord.com/developers/docs/interactions/application-commands
* @see {@link https://discord.com/developers/docs/interactions/application-commands}
*/
ApplicationsCommandsUpdate = 'applications.commands.update',
/**
* Allows your app to update permissions for its commands using a Bearer token - client credentials grant only
*
* See https://discord.com/developers/docs/interactions/application-commands
* @see {@link https://discord.com/developers/docs/interactions/application-commands}
*/
ApplicationCommandsPermissionsUpdate = 'applications.commands.permissions.update',
}

View File

@@ -5,7 +5,7 @@
import type { Permissions, Snowflake } from '../../globals.ts';
/**
* https://discord.com/developers/docs/topics/permissions#role-object
* @see {@link https://discord.com/developers/docs/topics/permissions#role-object}
*/
export interface APIRole {
/**
@@ -39,7 +39,7 @@ export interface APIRole {
/**
* Permission bit set
*
* See https://en.wikipedia.org/wiki/Bit_field
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
permissions: Permissions;
/**
@@ -61,7 +61,7 @@ export interface APIRole {
}
/**
* https://discord.com/developers/docs/topics/permissions#role-object-role-tags-structure
* @see {@link https://discord.com/developers/docs/topics/permissions#role-object-role-tags-structure}
*/
export interface APIRoleTags {
/**
@@ -91,7 +91,7 @@ export interface APIRoleTags {
}
/**
* https://discord.com/developers/docs/topics/permissions#role-object-role-flags
* @see {@link https://discord.com/developers/docs/topics/permissions#role-object-role-flags}
*/
export enum RoleFlags {
/**

View File

@@ -5,7 +5,7 @@
import type { APIPartialEmoji } from './emoji.ts';
/**
* https://discord.com/developers/docs/resources/poll#poll-object-poll-object-structure
* @see {@link https://discord.com/developers/docs/resources/poll#poll-object-poll-object-structure}
*/
export interface APIPoll {
/**
@@ -22,10 +22,14 @@ export interface APIPoll {
expiry: string;
/**
* Whether a user can select multiple answers
*
* @defaultValue `false`
*/
allow_multiselect: boolean;
/**
* The layout type of the poll
*
* @defaultValue `PollLayoutType.Default`
*/
layout_type: PollLayoutType;
/**
@@ -35,7 +39,7 @@ export interface APIPoll {
}
/**
* https://discord.com/developers/docs/resources/poll#layout-type
* @see {@link https://discord.com/developers/docs/resources/poll#layout-type}
*/
export enum PollLayoutType {
/**
@@ -45,7 +49,7 @@ export enum PollLayoutType {
}
/**
* https://discord.com/developers/docs/resources/poll#poll-media-object-poll-media-object-structure
* @see {@link https://discord.com/developers/docs/resources/poll#poll-media-object-poll-media-object-structure}
*/
export interface APIPollMedia {
/**
@@ -61,7 +65,7 @@ export interface APIPollMedia {
}
/**
* https://discord.com/developers/docs/resources/poll#poll-answer-object-poll-answer-object-structure
* @see {@link https://discord.com/developers/docs/resources/poll#poll-answer-object-poll-answer-object-structure}
*/
export interface APIPollAnswer {
/**
@@ -75,7 +79,7 @@ export interface APIPollAnswer {
}
/**
* https://discord.com/developers/docs/resources/poll#poll-results-object-poll-results-object-structure
* @see {@link https://discord.com/developers/docs/resources/poll#poll-results-object-poll-results-object-structure}
*/
export interface APIPollResults {
/**
@@ -89,7 +93,7 @@ export interface APIPollResults {
}
/**
* https://discord.com/developers/docs/resources/poll#poll-results-object-poll-answer-count-object-structure
* @see {@link https://discord.com/developers/docs/resources/poll#poll-results-object-poll-answer-count-object-structure}
*/
export interface APIPollAnswerCount {
/**

44
deno/payloads/v10/soundboard.ts generated Normal file
View File

@@ -0,0 +1,44 @@
/**
* Types extracted from https://discord.com/developers/docs/resources/soundboard
*/
import type { Snowflake } from '../../globals.ts';
import type { APIUser } from './user.ts';
/**
* @see {@link https://discord.com/developers/docs/resources/soundboard#soundboard-sound-object}
*/
export interface APISoundboardSound {
/**
* The name of this sound
*/
name: string;
/**
* The id of this sound
*/
sound_id: Snowflake;
/**
* The volume of this sound, from 0 to 1
*/
volume: number;
/**
* The id of this sound's custom emoji
*/
emoji_id: Snowflake | null;
/**
* The unicode character of this sound's standard emoji
*/
emoji_name: string | null;
/**
* The id of the guild that this sound is in
*/
guild_id?: Snowflake;
/**
* Whether this sound can be used (for guild sounds), may be false due to loss of Server Boosts
*/
available: boolean;
/**
* The user who created this sound
*/
user?: APIUser;
}

View File

@@ -2,7 +2,7 @@ import type { Snowflake } from '../../globals.ts';
import type { APIGuildMember } from './guild.ts';
/**
* https://discord.com/developers/docs/resources/stage-instance#stage-instance-object
* @see {@link https://discord.com/developers/docs/resources/stage-instance#stage-instance-object}
*/
export interface APIStageInstance {
/**
@@ -24,13 +24,14 @@ export interface APIStageInstance {
/**
* The privacy level of the stage instance
*
* See https://discord.com/developers/docs/resources/stage-instance#stage-instance-object-privacy-level
* @see {@link https://discord.com/developers/docs/resources/stage-instance#stage-instance-object-privacy-level}
*/
privacy_level: StageInstancePrivacyLevel;
/**
* Whether or not stage discovery is disabled
*
* @deprecated
* {@link https://github.com/discord/discord-api-docs/pull/4296 | discord-api-docs#4296}
*/
discoverable_disabled: boolean;
/**
@@ -40,13 +41,14 @@ export interface APIStageInstance {
}
/**
* https://discord.com/developers/docs/resources/stage-instance#stage-instance-object-privacy-level
* @see {@link https://discord.com/developers/docs/resources/stage-instance#stage-instance-object-privacy-level}
*/
export enum StageInstancePrivacyLevel {
/**
* The stage instance is visible publicly, such as on stage discovery
*
* @deprecated
* {@link https://github.com/discord/discord-api-docs/pull/4296 | discord-api-docs#4296}
*/
Public = 1,
/**
@@ -56,7 +58,9 @@ export enum StageInstancePrivacyLevel {
}
/**
* https://discord.com/developers/docs/resources/invite#invite-stage-instance-object-invite-stage-instance-structure
* @see {@link https://discord.com/developers/docs/resources/invite#invite-stage-instance-object-invite-stage-instance-structure}
* @deprecated
* {@link https://github.com/discord/discord-api-docs/pull/4479 | discord-api-docs#4479}
*/
export interface APIInviteStageInstance {
/**
@@ -74,7 +78,7 @@ export interface APIInviteStageInstance {
/**
* The members speaking in the stage
*
* See https://discord.com/developers/docs/resources/guild#guild-member-object-guild-member-structure
* @see {@link https://discord.com/developers/docs/resources/guild#guild-member-object-guild-member-structure}
*/
members: APIGuildMember[];
}

View File

@@ -6,7 +6,7 @@ import type { Snowflake } from '../../globals.ts';
import type { APIUser } from './user.ts';
/**
* https://discord.com/developers/docs/resources/sticker#sticker-object
* @see {@link https://discord.com/developers/docs/resources/sticker#sticker-object}
*/
export interface APISticker {
/**
@@ -32,19 +32,20 @@ export interface APISticker {
/**
* Previously the sticker asset hash, now an empty string
*
* @deprecated
* @deprecated This field is no longer documented by Discord and will be removed in v11
* @unstable This field is no longer documented by Discord and will be removed in v11
*/
asset?: '';
/**
* Type of sticker
*
* See https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-types
* @see {@link https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-types}
*/
type: StickerType;
/**
* Type of sticker format
*
* See https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-format-types
* @see {@link https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-format-types}
*/
format_type: StickerFormatType;
/**
@@ -66,7 +67,7 @@ export interface APISticker {
}
/**
* https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-types
* @see {@link https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-types}
*/
export enum StickerType {
/**
@@ -80,7 +81,7 @@ export enum StickerType {
}
/**
* https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-format-types
* @see {@link https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-format-types}
*/
export enum StickerFormatType {
PNG = 1,
@@ -90,12 +91,12 @@ export enum StickerFormatType {
}
/**
* https://discord.com/developers/docs/resources/sticker#sticker-item-object
* @see {@link https://discord.com/developers/docs/resources/sticker#sticker-item-object}
*/
export type APIStickerItem = Pick<APISticker, 'format_type' | 'id' | 'name'>;
/**
* https://discord.com/developers/docs/resources/sticker#sticker-pack-object
* @see {@link https://discord.com/developers/docs/resources/sticker#sticker-pack-object}
*/
export interface APIStickerPack {
/**

View File

@@ -6,7 +6,7 @@ import type { Snowflake } from '../../globals.ts';
import type { APIUser } from './user.ts';
/**
* https://discord.com/developers/docs/topics/teams#data-models-team-object
* @see {@link https://discord.com/developers/docs/topics/teams#data-models-team-object}
*/
export interface APITeam {
/**
@@ -32,19 +32,19 @@ export interface APITeam {
}
/**
* https://discord.com/developers/docs/topics/teams#data-models-team-member-object
* @see {@link https://discord.com/developers/docs/topics/teams#data-models-team-member-object}
*/
export interface APITeamMember {
/**
* The user's membership state on the team
*
* See https://discord.com/developers/docs/topics/teams#data-models-membership-state-enum
* @see {@link https://discord.com/developers/docs/topics/teams#data-models-membership-state-enum}
*/
membership_state: TeamMemberMembershipState;
/**
* Will always be `["*"]`
*
* @deprecated Use `role` instead
* @deprecated Use {@link APITeamMember.role} instead.
*/
permissions: ['*'];
/**
@@ -54,19 +54,19 @@ export interface APITeamMember {
/**
* The avatar, discriminator, id, and username of the user
*
* See https://discord.com/developers/docs/resources/user#user-object
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
user: APIUser;
/**
* The user's role in the team.
*
* See https://discord.com/developers/docs/topics/teams#team-member-roles
* @see {@link https://discord.com/developers/docs/topics/teams#team-member-roles}
*/
role: TeamMemberRole;
}
/**
* https://discord.com/developers/docs/topics/teams#data-models-membership-state-enum
* @see {@link https://discord.com/developers/docs/topics/teams#data-models-membership-state-enum}
*/
export enum TeamMemberMembershipState {
Invited = 1,
@@ -74,7 +74,7 @@ export enum TeamMemberMembershipState {
}
/**
* https://discord.com/developers/docs/topics/teams#team-member-roles-team-member-role-types
* @see {@link https://discord.com/developers/docs/topics/teams#team-member-roles-team-member-role-types}
*/
export enum TeamMemberRole {
Admin = 'admin',

View File

@@ -3,11 +3,12 @@
*/
import type { Snowflake } from '../../globals.ts';
import type { Locale } from '../../rest/common.ts';
import type { RESTPostAPIGuildsJSONBody } from '../../rest/v10/mod.ts';
import type { APIUser } from './user.ts';
/**
* https://discord.com/developers/docs/resources/guild-template#guild-template-object
* @see {@link https://discord.com/developers/docs/resources/guild-template#guild-template-object}
*/
export interface APITemplate {
/**
@@ -33,7 +34,7 @@ export interface APITemplate {
/**
* The user who created the template
*
* See https://discord.com/developers/docs/resources/user#user-object
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
creator: APIUser;
/**
@@ -60,6 +61,6 @@ export interface APITemplate {
export interface APITemplateSerializedSourceGuild extends Omit<RESTPostAPIGuildsJSONBody, 'icon'> {
description: string | null;
preferred_locale: string;
preferred_locale: Locale;
icon_hash: string | null;
}

View File

@@ -6,7 +6,7 @@ import type { Snowflake } from '../../globals.ts';
import type { APIGuildIntegration } from './guild.ts';
/**
* https://discord.com/developers/docs/resources/user#user-object
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
export interface APIUser {
/**
@@ -28,7 +28,7 @@ export interface APIUser {
/**
* The user's avatar hash
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
avatar: string | null;
/**
@@ -46,7 +46,7 @@ export interface APIUser {
/**
* The user's banner hash
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
banner?: string | null;
/**
@@ -68,39 +68,38 @@ export interface APIUser {
/**
* The flags on a user's account
*
* See https://discord.com/developers/docs/resources/user#user-object-user-flags
* @see {@link https://discord.com/developers/docs/resources/user#user-object-user-flags}
*/
flags?: UserFlags;
/**
* The type of Nitro subscription on a user's account
*
* See https://discord.com/developers/docs/resources/user#user-object-premium-types
* @see {@link https://discord.com/developers/docs/resources/user#user-object-premium-types}
*/
premium_type?: UserPremiumType;
/**
* The public flags on a user's account
*
* See https://discord.com/developers/docs/resources/user#user-object-user-flags
* @see {@link https://discord.com/developers/docs/resources/user#user-object-user-flags}
*/
public_flags?: UserFlags;
/**
* The user's avatar decoration hash
*
* See https://discord.com/developers/docs/reference#image-formatting
*
* @deprecated Use `avatar_decoration_data` instead
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
* @deprecated Use {@link APIUser.avatar_decoration_data} instead
*/
avatar_decoration?: string | null;
/**
* The data for the user's avatar decoration
*
* See https://discord.com/developers/docs/resources/user#avatar-decoration-data-object
* @see {@link https://discord.com/developers/docs/resources/user#avatar-decoration-data-object}
*/
avatar_decoration_data?: APIAvatarDecorationData | null;
}
/**
* https://discord.com/developers/docs/resources/user#user-object-user-flags
* @see {@link https://discord.com/developers/docs/resources/user#user-object-user-flags}
*/
export enum UserFlags {
/**
@@ -144,7 +143,7 @@ export enum UserFlags {
*/
PremiumEarlySupporter = 1 << 9,
/**
* User is a [team](https://discord.com/developers/docs/topics/teams)
* User is a {@link https://discord.com/developers/docs/topics/teams | team}
*/
TeamPseudoUser = 1 << 10,
/**
@@ -168,7 +167,7 @@ export enum UserFlags {
*/
CertifiedModerator = 1 << 18,
/**
* Bot uses only [HTTP interactions](https://discord.com/developers/docs/interactions/receiving-and-responding#receiving-an-interaction) and is shown in the online member list
* Bot uses only {@link https://discord.com/developers/docs/interactions/receiving-and-responding#receiving-an-interaction | HTTP interactions} and is shown in the online member list
*/
BotHTTPInteractions = 1 << 19,
/**
@@ -182,36 +181,36 @@ export enum UserFlags {
*/
DisablePremium = 1 << 21,
/**
* User is an [Active Developer](https://support-dev.discord.com/hc/articles/10113997751447)
* User is an {@link https://support-dev.discord.com/hc/articles/10113997751447 | Active Developer}
*/
ActiveDeveloper = 1 << 22,
/**
* User's account has been [quarantined](https://support.discord.com/hc/articles/6461420677527) based on recent activity
* User's account has been {@link https://support.discord.com/hc/articles/6461420677527 | quarantined} based on recent activity
*
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
* @privateRemarks
*
* This value would be 1 << 44, but bit shifting above 1 << 30 requires bigints
* This value would be `1 << 44`, but bit shifting above `1 << 30` requires bigints
*/
Quarantined = 17_592_186_044_416,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
* @privateRemarks
*
* This value would be 1 << 50, but bit shifting above 1 << 30 requires bigints
* This value would be `1 << 50`, but bit shifting above `1 << 30` requires bigints
*/
Collaborator = 1_125_899_906_842_624,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
* @privateRemarks
*
* This value would be 1 << 51, but bit shifting above 1 << 30 requires bigints
* This value would be `1 << 51`, but bit shifting above `1 << 30` requires bigints
*/
RestrictedCollaborator = 2_251_799_813_685_248,
}
/**
* https://discord.com/developers/docs/resources/user#user-object-premium-types
* @see {@link https://discord.com/developers/docs/resources/user#user-object-premium-types}
*/
export enum UserPremiumType {
None,
@@ -221,7 +220,7 @@ export enum UserPremiumType {
}
/**
* https://discord.com/developers/docs/resources/user#connection-object
* @see {@link https://discord.com/developers/docs/resources/user#connection-object}
*/
export interface APIConnection {
/**
@@ -235,7 +234,7 @@ export interface APIConnection {
/**
* The service of the connection
*
* See https://discord.com/developers/docs/resources/user#connection-object-services
* @see {@link https://discord.com/developers/docs/resources/user#connection-object-services}
*/
type: ConnectionService;
/**
@@ -245,7 +244,7 @@ export interface APIConnection {
/**
* An array of partial server integrations
*
* See https://discord.com/developers/docs/resources/guild#integration-object
* @see {@link https://discord.com/developers/docs/resources/guild#integration-object}
*/
integrations?: Partial<APIGuildIntegration>[];
/**
@@ -267,14 +266,17 @@ export interface APIConnection {
/**
* Visibility of this connection
*
* See https://discord.com/developers/docs/resources/user#connection-object-visibility-types
* @see {@link https://discord.com/developers/docs/resources/user#connection-object-visibility-types}
*/
visibility: ConnectionVisibility;
}
export enum ConnectionService {
AmazonMusic = 'amazon-music',
BattleNet = 'battlenet',
Bluesky = 'bluesky',
BungieNet = 'bungie',
Crunchyroll = 'crunchyroll',
Domain = 'domain',
eBay = 'ebay',
EpicGames = 'epicgames',
@@ -282,10 +284,12 @@ export enum ConnectionService {
GitHub = 'github',
Instagram = 'instagram',
LeagueOfLegends = 'leagueoflegends',
Mastodon = 'mastodon',
PayPal = 'paypal',
PlayStationNetwork = 'playstation',
Reddit = 'reddit',
RiotGames = 'riotgames',
Roblox = 'roblox',
Spotify = 'spotify',
Skype = 'skype',
Steam = 'steam',
@@ -293,7 +297,7 @@ export enum ConnectionService {
Twitch = 'twitch',
X = 'twitter',
/**
* @deprecated This is the old name for {@apilink ConnectionService#X}
* @deprecated This is the old name for {@link ConnectionService.X}
*/
Twitter = X,
Xbox = 'xbox',
@@ -312,7 +316,7 @@ export enum ConnectionVisibility {
}
/**
* https://discord.com/developers/docs/resources/user#application-role-connection-object-application-role-connection-structure
* @see {@link https://discord.com/developers/docs/resources/user#application-role-connection-object-application-role-connection-structure}
*/
export interface APIApplicationRoleConnection {
/**
@@ -330,13 +334,13 @@ export interface APIApplicationRoleConnection {
}
/**
* https://discord.com/developers/docs/resources/user#avatar-decoration-data-object
* @see {@link https://discord.com/developers/docs/resources/user#avatar-decoration-data-object}
*/
export interface APIAvatarDecorationData {
/**
* The avatar decoration hash
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
asset: string;
/**

View File

@@ -6,9 +6,15 @@ import type { Snowflake } from '../../globals.ts';
import type { APIGuildMember } from './guild.ts';
/**
* https://discord.com/developers/docs/resources/voice#voice-state-object
* @see {@link https://discord.com/developers/docs/resources/voice#voice-state-object}
* @deprecated This is deprecated, use {@link APIVoiceState}
*/
export interface GatewayVoiceState {
export type GatewayVoiceState = APIVoiceState;
/**
* @see {@link https://discord.com/developers/docs/resources/voice#voice-state-object}
*/
export interface APIVoiceState {
/**
* The guild id this voice state is for
*/
@@ -24,7 +30,7 @@ export interface GatewayVoiceState {
/**
* The guild member this voice state is for
*
* See https://discord.com/developers/docs/resources/guild#guild-member-object
* @see {@link https://discord.com/developers/docs/resources/guild#guild-member-object}
*/
member?: APIGuildMember;
/**
@@ -66,7 +72,7 @@ export interface GatewayVoiceState {
}
/**
* https://discord.com/developers/docs/resources/voice#voice-region-object
* @see {@link https://discord.com/developers/docs/resources/voice#voice-region-object}
*/
export interface APIVoiceRegion {
/**

View File

@@ -3,10 +3,18 @@
*/
import type { Snowflake } from '../../globals.ts';
import type { APIPartialChannel, APIPartialGuild, APIUser } from './mod.ts';
import type {
APIEntitlement,
APIGuild,
APIPartialChannel,
APIPartialGuild,
APIUser,
ApplicationIntegrationType,
OAuth2Scopes,
} from './mod.ts';
/**
* https://discord.com/developers/docs/resources/webhook#webhook-object
* @see {@link https://discord.com/developers/docs/resources/webhook#webhook-object}
*/
export interface APIWebhook {
/**
@@ -16,7 +24,7 @@ export interface APIWebhook {
/**
* The type of the webhook
*
* See https://discord.com/developers/docs/resources/webhook#webhook-object-webhook-types
* @see {@link https://discord.com/developers/docs/resources/webhook#webhook-object-webhook-types}
*/
type: WebhookType;
/**
@@ -30,7 +38,7 @@ export interface APIWebhook {
/**
* The user this webhook was created by (not returned when getting a webhook with its token)
*
* See https://discord.com/developers/docs/resources/user#user-object
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
user?: APIUser;
/**
@@ -63,6 +71,116 @@ export interface APIWebhook {
url?: string;
}
/**
* @see {@link https://discord.com/developers/docs/events/webhook-events#webhook-event-payloads}
*/
export type APIWebhookEvent =
| APIWebhookEventBase<ApplicationWebhookType.Event, APIWebhookEventBody>
| APIWebhookEventBase<ApplicationWebhookType.Ping, never>;
/**
* @see {@link https://discord.com/developers/docs/events/webhook-events#event-body-object}
*/
export type APIWebhookEventBody =
| APIWebhookEventEventBase<
ApplicationWebhookEventType.ApplicationAuthorized,
APIWebhookEventApplicationAuthorizedData
>
| APIWebhookEventEventBase<ApplicationWebhookEventType.EntitlementCreate, APIWebhookEventEntitlementCreateData>
| APIWebhookEventEventBase<ApplicationWebhookEventType.QuestUserEnrollment, APIWebhookEventQuestUserEnrollmentData>;
export interface APIWebhookEventApplicationAuthorizedData {
/**
* Installation context for the authorization. Either guild (`0`) if installed to a server or user (`1`) if installed to a user's account
*/
integration_type?: ApplicationIntegrationType;
/**
* User who authorized the app
*/
user: APIUser;
/**
* List of scopes the user authorized
*/
scopes: OAuth2Scopes[];
/**
* Server which app was authorized for (when integration type is `0`)
*/
guild?: APIGuild;
}
export type APIWebhookEventEntitlementCreateData = APIEntitlement;
export type APIWebhookEventQuestUserEnrollmentData = never;
export interface APIWebhookEventBase<Type extends ApplicationWebhookType, Event> {
/**
* Version scheme for the webhook event. Currently always `1`
*/
version: 1;
/**
* ID of your app
*/
application_id: Snowflake;
/**
* Type of webhook
*/
type: Type;
/**
* Event data payload
*/
event: Event;
}
/**
* @see {@link https://discord.com/developers/docs/events/webhook-events#webhook-types}
*/
export enum ApplicationWebhookType {
/**
* PING event sent to verify your Webhook Event URL is active
*/
Ping,
/**
* Webhook event (details for event in event body object)
*/
Event,
}
export interface APIWebhookEventEventBase<Type extends ApplicationWebhookEventType, Data> {
/**
* Event type
*/
type: Type;
/**
* Timestamp of when the event occurred in ISO8601 format
*/
timestamp: string;
/**
* Data for the event. The shape depends on the event type
*/
data: Data;
}
/**
* @see {@link https://discord.com/developers/docs/events/webhook-events#event-types}
*/
export enum ApplicationWebhookEventType {
/**
* Sent when an app was authorized by a user to a server or their account
*/
ApplicationAuthorized = 'APPLICATION_AUTHORIZED',
/**
* Entitlement was created
*/
EntitlementCreate = 'ENTITLEMENT_CREATE',
/**
* User was added to a Quest (currently unavailable)
*/
QuestUserEnrollment = 'QUEST_USER_ENROLLMENT',
}
/**
* @see {@link https://discord.com/developers/docs/resources/webhook#webhook-object-webhook-types}
*/
export enum WebhookType {
/**
* Incoming Webhooks can post messages to channels with a generated token

View File

@@ -219,9 +219,6 @@ export enum OverwriteType {
*/
export interface APIEmbed {
title?: string;
/**
* @deprecated *Embed types should be considered deprecated and might be removed in a future API version*
*/
type?: EmbedType;
description?: string;
url?: string;
@@ -239,7 +236,6 @@ export interface APIEmbed {
/**
* https://discord.com/developers/docs/resources/channel#embed-object-embed-types
*
* @deprecated *Embed types should be considered deprecated and might be removed in a future API version*
* @deprecated API and Gateway v6 are deprecated and the types will not receive further updates, please update to v8.
*/
export enum EmbedType {

View File

@@ -693,10 +693,6 @@ export interface APIEmbed {
title?: string;
/**
* Type of embed (always "rich" for webhook embeds)
*
* @deprecated *Embed types should be considered deprecated and might be removed in a future API version*
*
* See https://discord.com/developers/docs/resources/channel#embed-object-embed-types
*/
type?: EmbedType;
/**
@@ -766,7 +762,6 @@ export interface APIEmbed {
/**
* https://discord.com/developers/docs/resources/channel#embed-object-embed-types
*
* @deprecated *Embed types should be considered deprecated and might be removed in a future API version*
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export enum EmbedType {

View File

@@ -1,3 +1,4 @@
import type { InteractionType } from '../../responses.ts';
import type {
APIApplicationCommandOptionBase,
APIApplicationCommandOptionWithAutocompleteOrChoicesWrapper,
@@ -5,7 +6,7 @@ import type {
} from './base.ts';
import type { APIApplicationCommandOptionChoice, ApplicationCommandOptionType } from './shared.ts';
interface APIApplicationCommandIntegerOptionBase
export interface APIApplicationCommandIntegerOptionBase
extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.Integer> {
/**
* If the option is an `INTEGER` or `NUMBER` type, the minimum value permitted.
@@ -22,7 +23,10 @@ export type APIApplicationCommandIntegerOption = APIApplicationCommandOptionWith
APIApplicationCommandOptionChoice<number>
>;
export interface APIApplicationCommandInteractionDataIntegerOption
extends APIInteractionDataOptionBase<ApplicationCommandOptionType.Integer, number> {
export interface APIApplicationCommandInteractionDataIntegerOption<Type extends InteractionType = InteractionType>
extends APIInteractionDataOptionBase<
ApplicationCommandOptionType.Integer,
Type extends InteractionType.ApplicationCommandAutocomplete ? string : number
> {
focused?: boolean;
}

View File

@@ -1,3 +1,4 @@
import type { InteractionType } from '../../responses.ts';
import type {
APIApplicationCommandOptionBase,
APIApplicationCommandOptionWithAutocompleteOrChoicesWrapper,
@@ -5,7 +6,7 @@ import type {
} from './base.ts';
import type { APIApplicationCommandOptionChoice, ApplicationCommandOptionType } from './shared.ts';
interface APIApplicationCommandNumberOptionBase
export interface APIApplicationCommandNumberOptionBase
extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.Number> {
/**
* If the option is an `INTEGER` or `NUMBER` type, the minimum value permitted.
@@ -22,7 +23,10 @@ export type APIApplicationCommandNumberOption = APIApplicationCommandOptionWithA
APIApplicationCommandOptionChoice<number>
>;
export interface APIApplicationCommandInteractionDataNumberOption
extends APIInteractionDataOptionBase<ApplicationCommandOptionType.Number, number> {
export interface APIApplicationCommandInteractionDataNumberOption<Type extends InteractionType = InteractionType>
extends APIInteractionDataOptionBase<
ApplicationCommandOptionType.Number,
Type extends InteractionType.ApplicationCommandAutocomplete ? string : number
> {
focused?: boolean;
}

View File

@@ -1,7 +1,7 @@
import type { LocalizationMap } from '../../../../../v9.ts';
/**
* https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-type
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-type}
*/
export enum ApplicationCommandOptionType {
Subcommand = 1,
@@ -18,7 +18,7 @@ export enum ApplicationCommandOptionType {
}
/**
* https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-choice-structure
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-choice-structure}
*/
export interface APIApplicationCommandOptionChoice<ValueType = number | string> {
name: string;

View File

@@ -5,7 +5,7 @@ import type {
} from './base.ts';
import type { APIApplicationCommandOptionChoice, ApplicationCommandOptionType } from './shared.ts';
interface APIApplicationCommandStringOptionBase
export interface APIApplicationCommandStringOptionBase
extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.String> {
/**
* For option type `STRING`, the minimum allowed length (minimum of `0`, maximum of `6000`).

View File

@@ -1,3 +1,4 @@
import type { InteractionType } from '../../responses.ts';
import type { APIApplicationCommandBasicOption, APIApplicationCommandInteractionDataBasicOption } from '../chatInput.ts';
import type { APIApplicationCommandOptionBase } from './base.ts';
import type { ApplicationCommandOptionType } from './shared.ts';
@@ -7,8 +8,8 @@ export interface APIApplicationCommandSubcommandOption
options?: APIApplicationCommandBasicOption[];
}
export interface APIApplicationCommandInteractionDataSubcommandOption {
export interface APIApplicationCommandInteractionDataSubcommandOption<Type extends InteractionType = InteractionType> {
name: string;
type: ApplicationCommandOptionType.Subcommand;
options?: APIApplicationCommandInteractionDataBasicOption[];
options?: APIApplicationCommandInteractionDataBasicOption<Type>[];
}

View File

@@ -1,3 +1,4 @@
import type { InteractionType } from '../../responses.ts';
import type { APIApplicationCommandOptionBase } from './base.ts';
import type { ApplicationCommandOptionType } from './shared.ts';
import type {
@@ -10,8 +11,10 @@ export interface APIApplicationCommandSubcommandGroupOption
options?: APIApplicationCommandSubcommandOption[];
}
export interface APIApplicationCommandInteractionDataSubcommandGroupOption {
export interface APIApplicationCommandInteractionDataSubcommandGroupOption<
Type extends InteractionType = InteractionType,
> {
name: string;
type: ApplicationCommandOptionType.SubcommandGroup;
options: APIApplicationCommandInteractionDataSubcommandOption[];
options: APIApplicationCommandInteractionDataSubcommandOption<Type>[];
}

View File

@@ -1,4 +1,4 @@
import type { APIInteractionDataResolved } from '../../mod.ts';
import type { APIInteractionDataResolved, InteractionType } from '../../mod.ts';
import type { APIApplicationCommandInteractionWrapper, ApplicationCommandType } from '../applicationCommands.ts';
import type { APIDMInteractionWrapper, APIGuildInteractionWrapper } from '../base.ts';
import type {
@@ -62,7 +62,7 @@ export * from './_chatInput/subcommandGroup.ts';
export * from './_chatInput/user.ts';
/**
* https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-structure
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-structure}
*/
export type APIApplicationCommandBasicOption =
| APIApplicationCommandAttachmentOption
@@ -76,7 +76,7 @@ export type APIApplicationCommandBasicOption =
| APIApplicationCommandUserOption;
/**
* https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-structure
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-structure}
*/
export type APIApplicationCommandOption =
| APIApplicationCommandBasicOption
@@ -84,47 +84,56 @@ export type APIApplicationCommandOption =
| APIApplicationCommandSubcommandOption;
/**
* https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-interaction-data-option-structure
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-interaction-data-option-structure}
*/
export type APIApplicationCommandInteractionDataOption =
| APIApplicationCommandInteractionDataBasicOption
| APIApplicationCommandInteractionDataSubcommandGroupOption
| APIApplicationCommandInteractionDataSubcommandOption;
export type APIApplicationCommandInteractionDataOption<Type extends InteractionType = InteractionType> =
| APIApplicationCommandInteractionDataBasicOption<Type>
| APIApplicationCommandInteractionDataSubcommandGroupOption<Type>
| APIApplicationCommandInteractionDataSubcommandOption<Type>;
export type APIApplicationCommandInteractionDataBasicOption =
export type APIApplicationCommandInteractionDataBasicOption<Type extends InteractionType = InteractionType> =
| APIApplicationCommandInteractionDataAttachmentOption
| APIApplicationCommandInteractionDataBooleanOption
| APIApplicationCommandInteractionDataChannelOption
| APIApplicationCommandInteractionDataIntegerOption
| APIApplicationCommandInteractionDataIntegerOption<Type>
| APIApplicationCommandInteractionDataMentionableOption
| APIApplicationCommandInteractionDataNumberOption
| APIApplicationCommandInteractionDataNumberOption<Type>
| APIApplicationCommandInteractionDataRoleOption
| APIApplicationCommandInteractionDataStringOption
| APIApplicationCommandInteractionDataUserOption;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-data
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-data}
*/
export interface APIChatInputApplicationCommandInteractionData
extends APIBaseApplicationCommandInteractionData<ApplicationCommandType.ChatInput> {
options?: APIApplicationCommandInteractionDataOption[];
options?: APIApplicationCommandInteractionDataOption<InteractionType.ApplicationCommand>[];
resolved?: APIInteractionDataResolved;
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-data}
*/
export interface APIAutocompleteApplicationCommandInteractionData
extends APIBaseApplicationCommandInteractionData<ApplicationCommandType.ChatInput> {
options?: APIApplicationCommandInteractionDataOption<InteractionType.ApplicationCommandAutocomplete>[];
resolved?: APIInteractionDataResolved;
}
/**
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIChatInputApplicationCommandInteraction =
APIApplicationCommandInteractionWrapper<APIChatInputApplicationCommandInteractionData>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIChatInputApplicationCommandDMInteraction =
APIDMInteractionWrapper<APIChatInputApplicationCommandInteraction>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIChatInputApplicationCommandGuildInteraction =
APIGuildInteractionWrapper<APIChatInputApplicationCommandInteraction>;

View File

@@ -5,7 +5,7 @@ import type { APIDMInteractionWrapper, APIGuildInteractionWrapper, APIUserIntera
import type { APIBaseApplicationCommandInteractionData } from './internals.ts';
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-data
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-data}
*/
export interface APIUserApplicationCommandInteractionData
extends APIBaseApplicationCommandInteractionData<ApplicationCommandType.User> {
@@ -14,7 +14,7 @@ export interface APIUserApplicationCommandInteractionData
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-data
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-data}
*/
export interface APIMessageApplicationCommandInteractionData
extends APIBaseApplicationCommandInteractionData<ApplicationCommandType.Message> {
@@ -23,68 +23,68 @@ export interface APIMessageApplicationCommandInteractionData
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-resolved-data-structure
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-resolved-data-structure}
*/
export interface APIMessageApplicationCommandInteractionDataResolved {
messages: Record<Snowflake, APIMessage>;
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-data
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-data}
*/
export type APIContextMenuInteractionData =
| APIMessageApplicationCommandInteractionData
| APIUserApplicationCommandInteractionData;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIUserApplicationCommandInteraction =
APIApplicationCommandInteractionWrapper<APIUserApplicationCommandInteractionData>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIUserApplicationCommandDMInteraction = APIDMInteractionWrapper<APIUserApplicationCommandInteraction>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIUserApplicationCommandGuildInteraction =
APIGuildInteractionWrapper<APIUserApplicationCommandInteraction>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIMessageApplicationCommandInteraction =
APIApplicationCommandInteractionWrapper<APIMessageApplicationCommandInteractionData>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIMessageApplicationCommandDMInteraction =
APIDMInteractionWrapper<APIMessageApplicationCommandInteraction>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIMessageApplicationCommandGuildInteraction =
APIGuildInteractionWrapper<APIMessageApplicationCommandInteraction>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIContextMenuInteraction = APIMessageApplicationCommandInteraction | APIUserApplicationCommandInteraction;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIContextMenuDMInteraction =
| APIMessageApplicationCommandDMInteraction
| APIUserApplicationCommandDMInteraction;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIContextMenuGuildInteraction =
| APIMessageApplicationCommandGuildInteraction

View File

@@ -0,0 +1,26 @@
import type { APIApplicationCommandInteractionWrapper, ApplicationCommandType } from '../applicationCommands.ts';
import type { APIDMInteractionWrapper, APIGuildInteractionWrapper } from '../base.ts';
import type { APIBaseApplicationCommandInteractionData } from './internals.ts';
/**
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-data}
*/
export type APIPrimaryEntryPointCommandInteractionData =
APIBaseApplicationCommandInteractionData<ApplicationCommandType.PrimaryEntryPoint>;
/**
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIPrimaryEntryPointCommandInteraction =
APIApplicationCommandInteractionWrapper<APIPrimaryEntryPointCommandInteractionData>;
/**
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIPrimaryEntryPointCommandDMInteraction = APIDMInteractionWrapper<APIPrimaryEntryPointCommandInteraction>;
/**
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIPrimaryEntryPointCommandGuildInteraction =
APIGuildInteractionWrapper<APIPrimaryEntryPointCommandInteraction>;

View File

@@ -1,7 +1,7 @@
import type { Snowflake } from '../../../../globals.ts';
/**
* https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-guild-application-command-permissions-structure
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-guild-application-command-permissions-structure}
*/
export interface APIGuildApplicationCommandPermissions {
/**
@@ -23,7 +23,7 @@ export interface APIGuildApplicationCommandPermissions {
}
/**
* https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-application-command-permissions-structure
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-application-command-permissions-structure}
*/
export interface APIApplicationCommandPermission {
/**
@@ -41,7 +41,7 @@ export interface APIApplicationCommandPermission {
}
/**
* https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-application-command-permission-type
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-application-command-permission-type}
*/
export enum ApplicationCommandPermissionType {
Role = 1,
@@ -50,7 +50,7 @@ export enum ApplicationCommandPermissionType {
}
/**
* https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-application-command-permissions-constants
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-application-command-permissions-constants}
*/
export const APIApplicationCommandPermissionsConstant = {
// eslint-disable-next-line unicorn/prefer-native-coercion-functions

View File

@@ -13,15 +13,23 @@ import type {
APIContextMenuInteraction,
APIContextMenuInteractionData,
} from './_applicationCommands/contextMenu.ts';
import type {
APIPrimaryEntryPointCommandDMInteraction,
APIPrimaryEntryPointCommandGuildInteraction,
APIPrimaryEntryPointCommandInteraction,
APIPrimaryEntryPointCommandInteractionData,
} from './_applicationCommands/entryPoint.ts';
import type { APIBaseInteraction } from './base.ts';
import type { InteractionType } from './responses.ts';
export * from './_applicationCommands/chatInput.ts';
export * from './_applicationCommands/contextMenu.ts';
export * from './_applicationCommands/permissions.ts';
export * from './_applicationCommands/entryPoint.ts';
export * from './_applicationCommands/internals.ts';
/**
* https://discord.com/developers/docs/interactions/application-commands#application-command-object
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-object}
*/
export interface APIApplicationCommand {
/**
@@ -75,7 +83,7 @@ export interface APIApplicationCommand {
/**
* Indicates whether the command is available in DMs with the app, only for globally-scoped commands. By default, commands are visible
*
* @deprecated Use `contexts` instead
* @deprecated Use {@link APIApplicationCommand.contexts} instead
*/
dm_permission?: boolean;
/**
@@ -83,7 +91,7 @@ export interface APIApplicationCommand {
*
* If missing, this property should be assumed as `true`
*
* @deprecated Use `dm_permission` and/or `default_member_permissions` instead
* @deprecated Use {@link APIApplicationCommand.dm_permission} and/or {@link APIApplicationCommand.default_member_permissions} instead
*/
default_permission?: boolean;
/**
@@ -92,72 +100,104 @@ export interface APIApplicationCommand {
nsfw?: boolean;
/**
* Installation context(s) where the command is available, only for globally-scoped commands. Defaults to `GUILD_INSTALL ([0])`
*
* @unstable
*/
integration_types?: ApplicationIntegrationType[];
/**
* Interaction context(s) where the command can be used, only for globally-scoped commands. By default, all interaction context types included for new commands `[0,1,2]`.
*
* @unstable
*/
contexts?: InteractionContextType[] | null;
/**
* Autoincrementing version identifier updated during substantial record changes
*/
version: Snowflake;
/**
* Determines whether the interaction is handled by the app's interactions handler or by Discord
*
* @remarks
* This is only available for {@link ApplicationCommandType.PrimaryEntryPoint} commands
*/
handler?: EntryPointCommandHandlerType;
}
/**
* https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-types
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-types}
*/
export enum ApplicationCommandType {
/**
* Slash commands; a text-based command that shows up when a user types `/`
*/
ChatInput = 1,
/**
* A UI-based command that shows up when you right click or tap on a user
*/
User,
/**
* A UI-based command that shows up when you right click or tap on a message
*/
Message,
/**
* A UI-based command that represents the primary way to invoke an app's Activity
*/
PrimaryEntryPoint,
}
/**
* https://discord.com/developers/docs/resources/application#application-object-application-integration-types
* @see {@link https://discord.com/developers/docs/resources/application#application-object-application-integration-types}
*/
export enum ApplicationIntegrationType {
/**
* App is installable to servers
*/
GuildInstall = 0,
GuildInstall,
/**
* App is installable to users
*/
UserInstall = 1,
UserInstall,
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-context-types
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-context-types}
*/
export enum InteractionContextType {
/**
* Interaction can be used within servers
*/
Guild = 0,
Guild,
/**
* Interaction can be used within DMs with the app's bot user
*/
BotDM = 1,
BotDM,
/**
* Interaction can be used within Group DMs and DMs other than the app's bot user
*/
PrivateChannel = 2,
PrivateChannel,
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-data
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-object-entry-point-command-handler-types}
*/
export enum EntryPointCommandHandlerType {
/**
* The app handles the interaction using an interaction token
*/
AppHandler = 1,
/**
* Discord handles the interaction by launching an Activity and sending a follow-up message without coordinating with
* the app
*/
DiscordLaunchActivity,
}
/**
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-data}
*/
export type APIApplicationCommandInteractionData =
| APIChatInputApplicationCommandInteractionData
| APIContextMenuInteractionData;
| APIContextMenuInteractionData
| APIPrimaryEntryPointCommandInteractionData;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIApplicationCommandInteractionWrapper<Data extends APIApplicationCommandInteractionData> =
APIBaseInteraction<InteractionType.ApplicationCommand, Data> &
@@ -169,20 +209,25 @@ export type APIApplicationCommandInteractionWrapper<Data extends APIApplicationC
>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIApplicationCommandInteraction = APIChatInputApplicationCommandInteraction | APIContextMenuInteraction;
export type APIApplicationCommandInteraction =
| APIChatInputApplicationCommandInteraction
| APIContextMenuInteraction
| APIPrimaryEntryPointCommandInteraction;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIApplicationCommandDMInteraction =
| APIChatInputApplicationCommandDMInteraction
| APIContextMenuDMInteraction;
| APIContextMenuDMInteraction
| APIPrimaryEntryPointCommandDMInteraction;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIApplicationCommandGuildInteraction =
| APIChatInputApplicationCommandGuildInteraction
| APIContextMenuGuildInteraction;
| APIContextMenuGuildInteraction
| APIPrimaryEntryPointCommandGuildInteraction;

View File

@@ -1,6 +1,6 @@
import type {
APIBaseInteraction,
APIChatInputApplicationCommandInteractionData,
APIAutocompleteApplicationCommandInteractionData,
APIDMInteractionWrapper,
APIGuildInteractionWrapper,
InteractionType,
@@ -8,26 +8,26 @@ import type {
export type APIApplicationCommandAutocompleteInteraction = APIBaseInteraction<
InteractionType.ApplicationCommandAutocomplete,
APIChatInputApplicationCommandInteractionData
APIAutocompleteApplicationCommandInteractionData
> &
Required<
Pick<
APIBaseInteraction<
InteractionType.ApplicationCommandAutocomplete,
Required<Pick<APIChatInputApplicationCommandInteractionData, 'options'>>
Required<Pick<APIAutocompleteApplicationCommandInteractionData, 'options'>>
>,
'data'
>
>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIApplicationCommandAutocompleteDMInteraction =
APIDMInteractionWrapper<APIApplicationCommandAutocompleteInteraction>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIApplicationCommandAutocompleteGuildInteraction =
APIGuildInteractionWrapper<APIApplicationCommandAutocompleteInteraction>;

View File

@@ -1,5 +1,5 @@
import type { Permissions, Snowflake } from '../../../globals.ts';
import type { APIRole, ApplicationIntegrationType, InteractionContextType, LocaleString } from '../../../v9.ts';
import type { APIRole, ApplicationIntegrationType, InteractionContextType, Locale } from '../../../v9.ts';
import type {
APIAttachment,
APIChannel,
@@ -9,15 +9,23 @@ import type {
ChannelType,
ThreadChannelType,
} from '../channel.ts';
import type { APIGuildMember } from '../guild.ts';
import type { APIGuildMember, APIPartialInteractionGuild } from '../guild.ts';
import type { APIEntitlement } from '../monetization.ts';
import type { APIUser } from '../user.ts';
import type { InteractionType } from './responses.ts';
/**
* https://discord.com/developers/docs/resources/channel#message-interaction-metadata-object
* @see {@link https://discord.com/developers/docs/resources/channel#message-interaction-metadata-object}
*/
export interface APIMessageInteractionMetadata {
export type APIMessageInteractionMetadata =
| APIApplicationCommandInteractionMetadata
| APIMessageComponentInteractionMetadata
| APIModalSubmitInteractionMetadata;
/**
* @see {@link https://discord.com/developers/docs/resources/channel#message-interaction-metadata-object}
*/
export interface APIBaseInteractionMetadata<Type extends InteractionType> {
/**
* ID of the interaction
*/
@@ -25,27 +33,56 @@ export interface APIMessageInteractionMetadata {
/**
* Type of interaction
*/
type: InteractionType;
type: Type;
/**
* User who triggered the interaction
*/
user: APIUser;
/**
* IDs for installation context(s) related to an interaction. Details in Authorizing Integration Owners Object
* IDs for installation context(s) related to an interaction
*/
authorizing_integration_owners: APIAuthorizingIntegrationOwnersMap;
/**
* ID of the original response message, present only on follow-up messages
*/
original_response_message_id?: Snowflake;
}
/**
* @see {@link https://discord.com/developers/docs/resources/message#message-interaction-metadata-object-application-command-interaction-metadata-structure}
*/
export interface APIApplicationCommandInteractionMetadata
extends APIBaseInteractionMetadata<InteractionType.ApplicationCommand> {
/**
* ID of the message that contained interactive component, present only on messages created from component interactions
* The user the command was run on, present only on user commands interactions
*/
interacted_message_id?: Snowflake;
target_user?: APIUser;
/**
* Metadata for the interaction that was used to open the modal, present only on modal submit interactions
* The ID of the message the command was run on, present only on message command interactions.
* The original response message will also have `message_reference` and `referenced_message` pointing to this message.
*/
triggering_interaction_metadata?: APIMessageInteractionMetadata;
target_message_id?: Snowflake;
}
/**
* @see {@link https://discord.com/developers/docs/resources/message#message-interaction-metadata-object-message-command-interaction-metadata-structure}
*/
export interface APIMessageComponentInteractionMetadata
extends APIBaseInteractionMetadata<InteractionType.MessageComponent> {
/**
* ID of the message that contained the interactive component
*/
interacted_message_id: Snowflake;
}
/**
* @see {@link https://discord.com/developers/docs/resources/message#message-interaction-metadata-object-modal-submit-interaction-metadata-structure}
*/
export interface APIModalSubmitInteractionMetadata extends APIBaseInteractionMetadata<InteractionType.ModalSubmit> {
/**
* Metadata for the interaction that was used to open the modal
*/
triggering_interaction_metadata: APIApplicationCommandInteractionMetadata | APIMessageComponentInteractionMetadata;
}
export type PartialAPIMessageInteractionGuildMember = Pick<
@@ -62,7 +99,7 @@ export type PartialAPIMessageInteractionGuildMember = Pick<
>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#message-interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#message-interaction-object}
*/
export interface APIMessageInteraction {
/**
@@ -88,7 +125,7 @@ export interface APIMessageInteraction {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-member-object
* @see {@link https://discord.com/developers/docs/resources/guild#guild-member-object}
*/
export interface APIInteractionGuildMember extends APIGuildMember {
permissions: Permissions;
@@ -98,7 +135,7 @@ export interface APIInteractionGuildMember extends APIGuildMember {
// INTERACTIONS RECEIVED
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export interface APIBaseInteraction<Type extends InteractionType, Data> {
/**
@@ -118,7 +155,11 @@ export interface APIBaseInteraction<Type extends InteractionType, Data> {
*/
data?: Data;
/**
* The guild it was sent from
* Guild that the interaction was sent from
*/
guild?: APIPartialInteractionGuild;
/**
* Guild that the interaction was sent from
*/
guild_id?: Snowflake;
/**
@@ -128,7 +169,7 @@ export interface APIBaseInteraction<Type extends InteractionType, Data> {
/**
* The id of the channel it was sent from
*
* @deprecated Use {@apilink APIBaseInteraction#channel} instead
* @deprecated Use {@link APIBaseInteraction.channel} instead
*/
channel_id?: Snowflake;
/**
@@ -160,11 +201,11 @@ export interface APIBaseInteraction<Type extends InteractionType, Data> {
/**
* The selected language of the invoking user
*/
locale: LocaleString;
locale: Locale;
/**
* The guild's preferred locale, if invoked in a guild
*/
guild_locale?: LocaleString;
guild_locale?: Locale;
/**
* For monetized apps, any entitlements for the invoking user, representing access to premium SKUs
*/
@@ -177,6 +218,10 @@ export interface APIBaseInteraction<Type extends InteractionType, Data> {
* Context where the interaction was triggered from
*/
context?: InteractionContextType;
/**
* Attachment size limit in bytes
*/
attachment_size_limit: number;
}
export type APIAuthorizingIntegrationOwnersMap = {
@@ -201,7 +246,7 @@ export interface APIInteractionDataResolvedChannelBase<T extends ChannelType> ex
}
/**
* https://discord.com/developers/docs/resources/channel#channel-object
* @see {@link https://discord.com/developers/docs/resources/channel#channel-object}
*/
export type APIInteractionDataResolvedChannel =
| APIInteractionDataResolvedChannelBase<Exclude<ChannelType, ThreadChannelType>>
@@ -209,14 +254,14 @@ export type APIInteractionDataResolvedChannel =
Pick<APIThreadChannel, 'parent_id' | 'thread_metadata'>);
/**
* https://discord.com/developers/docs/resources/guild#guild-member-object
* @see {@link https://discord.com/developers/docs/resources/guild#guild-member-object}
*/
export interface APIInteractionDataResolvedGuildMember extends Omit<APIGuildMember, 'deaf' | 'mute' | 'user'> {
permissions: Permissions;
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-resolved-data-structure
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-resolved-data-structure}
*/
export interface APIInteractionDataResolved {
users?: Record<Snowflake, APIUser>;

View File

@@ -1,4 +1,4 @@
import type { APIActionRowComponent, APIModalActionRowComponent } from '../channel.ts';
import type { APIActionRowComponent, APIComponentInModalActionRow } from '../channel.ts';
import type {
APIBaseInteraction,
APIDMInteractionWrapper,
@@ -14,12 +14,12 @@ export interface ModalSubmitComponent {
}
export interface ModalSubmitActionRowComponent
extends Omit<APIActionRowComponent<APIModalActionRowComponent>, 'components'> {
extends Omit<APIActionRowComponent<APIComponentInModalActionRow>, 'components'> {
components: ModalSubmitComponent[];
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-modal-submit-data-structure
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-modal-submit-data-structure}
*/
export interface APIModalSubmission {
/**
@@ -33,17 +33,17 @@ export interface APIModalSubmission {
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIModalSubmitInteraction = APIBaseInteraction<InteractionType.ModalSubmit, APIModalSubmission> &
Required<Pick<APIBaseInteraction<InteractionType.ModalSubmit, APIModalSubmission>, 'data'>>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIModalSubmitDMInteraction = APIDMInteractionWrapper<APIModalSubmitInteraction>;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIModalSubmitGuildInteraction = APIGuildInteractionWrapper<APIModalSubmitInteraction>;

View File

@@ -1,10 +1,9 @@
import type { RESTPostAPIWebhookWithTokenJSONBody } from '../../../v9.ts';
import type { APIActionRowComponent, APIModalActionRowComponent } from '../channel.ts';
import type { MessageFlags } from '../mod.ts';
import type { APIActionRowComponent, APIComponentInModalActionRow } from '../channel.ts';
import type { APIApplicationCommandOptionChoice } from './applicationCommands.ts';
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-type
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-type}
*/
export enum InteractionType {
Ping = 1,
@@ -15,13 +14,14 @@ export enum InteractionType {
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object}
*/
export type APIInteractionResponse =
| APIApplicationCommandAutocompleteResponse
| APIInteractionResponseChannelMessageWithSource
| APIInteractionResponseDeferredChannelMessageWithSource
| APIInteractionResponseDeferredMessageUpdate
| APIInteractionResponseLaunchActivity
| APIInteractionResponsePong
| APIInteractionResponseUpdateMessage
| APIModalInteractionResponse
@@ -64,8 +64,12 @@ export interface APIInteractionResponseUpdateMessage {
data?: APIInteractionResponseCallbackData;
}
export interface APIInteractionResponseLaunchActivity {
type: InteractionResponseType.LaunchActivity;
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-interaction-callback-type
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-interaction-callback-type}
*/
export enum InteractionResponseType {
/**
@@ -99,25 +103,31 @@ export enum InteractionResponseType {
/**
* Respond to an interaction with an upgrade button, only available for apps with monetization enabled
*
* @deprecated See https://discord.com/developers/docs/change-log#premium-apps-new-premium-button-style-deep-linking-url-schemes
* @deprecated Send a button with Premium type instead.
* {@link https://discord.com/developers/docs/change-log#premium-apps-new-premium-button-style-deep-linking-url-schemes | Learn more here}
*/
PremiumRequired,
/**
* Launch the Activity associated with the app.
*
* @remarks
* Only available for apps with Activities enabled
*/
LaunchActivity = 12,
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-interaction-callback-data-structure
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-interaction-callback-data-structure}
*/
export type APIInteractionResponseCallbackData = Omit<
RESTPostAPIWebhookWithTokenJSONBody,
'avatar_url' | 'username'
> & { flags?: MessageFlags };
export type APIInteractionResponseCallbackData = Omit<RESTPostAPIWebhookWithTokenJSONBody, 'avatar_url' | 'username'>;
export interface APICommandAutocompleteInteractionResponseCallbackData {
choices?: APIApplicationCommandOptionChoice[];
}
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-modal
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-modal}
*/
export interface APIModalInteractionResponseCallbackData {
/**
@@ -131,5 +141,5 @@ export interface APIModalInteractionResponseCallbackData {
/**
* Between 1 and 5 (inclusive) components that make up the modal
*/
components: APIActionRowComponent<APIModalActionRowComponent>[];
components: APIActionRowComponent<APIComponentInModalActionRow>[];
}

View File

@@ -9,9 +9,10 @@ import type { ApplicationIntegrationType } from './interactions.ts';
import type { OAuth2Scopes } from './oauth2.ts';
import type { APITeam } from './teams.ts';
import type { APIUser } from './user.ts';
import type { ApplicationWebhookEventType } from './webhook.ts';
/**
* https://discord.com/developers/docs/resources/application#application-object
* @see {@link https://discord.com/developers/docs/resources/application#application-object}
*/
export interface APIApplication {
/**
@@ -57,25 +58,26 @@ export interface APIApplication {
/**
* Partial user object containing info on the owner of the application
*
* See https://discord.com/developers/docs/resources/user#user-object
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
owner?: APIUser;
/**
* An empty string
*
* @deprecated This field will be removed in v11
* @unstable This field is no longer documented by Discord and will be removed in v11
*/
summary: '';
/**
* The hexadecimal encoded key for verification in interactions and the GameSDK's GetTicket function
*
* See https://discord.com/developers/docs/game-sdk/applications#getticket
* @see {@link https://discord.com/developers/docs/game-sdk/applications#getticket}
*/
verify_key: string;
/**
* The team this application belongs to
*
* See https://discord.com/developers/docs/topics/teams#data-models-team-object
* @see {@link https://discord.com/developers/docs/topics/teams#data-models-team-object}
*/
team: APITeam | null;
/**
@@ -101,13 +103,17 @@ export interface APIApplication {
/**
* The application's public flags
*
* See https://discord.com/developers/docs/resources/application#application-object-application-flags
* @see {@link https://discord.com/developers/docs/resources/application#application-object-application-flags}
*/
flags: ApplicationFlags;
/**
* Approximate count of guilds the application has been added to
*/
approximate_guild_count?: number;
/**
* Approximate count of users that have installed the app
*/
approximate_user_install_count?: number;
/**
* Array of redirect URIs for the application
*/
@@ -115,12 +121,12 @@ export interface APIApplication {
/**
* The interactions endpoint URL for the application
*/
interactions_endpoint_url?: string;
interactions_endpoint_url?: string | null;
/**
* The application's role connection verification entry point,
* which when configured will render the app as a verification method in the guild role verification configuration
*/
role_connections_verification_url?: string;
role_connections_verification_url?: string | null;
/**
* Up to 5 tags of max 20 characters each describing the content and functionality of the application
*/
@@ -131,14 +137,24 @@ export interface APIApplication {
install_params?: APIApplicationInstallParams;
/**
* Default scopes and permissions for each supported installation context. Value for each key is an integration type configuration object
*
* @unstable
*/
integration_types_config?: APIApplicationIntegrationTypesConfigMap;
/**
* The application's default custom authorization link, if enabled
*/
custom_install_url?: string;
/**
* Event webhook URL for the app to receive webhook events
*/
event_webhooks_url?: string | null;
/**
* If webhook events are enabled for the app
*/
event_webhooks_status: ApplicationWebhookEventStatus;
/**
* List of webhook event types the app subscribes to
*/
event_webhooks_types?: ApplicationWebhookEventType[];
}
export interface APIApplicationInstallParams {
@@ -155,7 +171,7 @@ export type APIApplicationIntegrationTypesConfigMap = {
};
/**
* https://discord.com/developers/docs/resources/application#application-object-application-flags
* @see {@link https://discord.com/developers/docs/resources/application#application-object-application-flags}
*/
export enum ApplicationFlags {
/**
@@ -192,12 +208,14 @@ export enum ApplicationFlags {
GatewayPresenceLimited = 1 << 13,
/**
* Intent required for bots in 100 or more servers to receive member-related events like `guild_member_add`.
* See list of member-related events [under `GUILD_MEMBERS`](https://discord.com/developers/docs/topics/gateway#list-of-intents)
*
* @see List of member-related events {@link https://discord.com/developers/docs/topics/gateway#list-of-intents | under `GUILD_MEMBERS`}
*/
GatewayGuildMembers = 1 << 14,
/**
* Intent required for bots in under 100 servers to receive member-related events like `guild_member_add`, found in Bot Settings.
* See list of member-related events [under `GUILD_MEMBERS`](https://discord.com/developers/docs/topics/gateway#list-of-intents)
*
* @see List of member-related events {@link https://discord.com/developers/docs/topics/gateway#list-of-intents | under `GUILD_MEMBERS`}
*/
GatewayGuildMembersLimited = 1 << 15,
/**
@@ -209,11 +227,11 @@ export enum ApplicationFlags {
*/
Embedded = 1 << 17,
/**
* Intent required for bots in 100 or more servers to receive [message content](https://support-dev.discord.com/hc/en-us/articles/4404772028055)
* Intent required for bots in 100 or more servers to receive {@link https://support-dev.discord.com/hc/articles/6207308062871 | message content}
*/
GatewayMessageContent = 1 << 18,
/**
* Intent required for bots in under 100 servers to receive [message content](https://support-dev.discord.com/hc/en-us/articles/4404772028055),
* Intent required for bots in under 100 servers to receive {@link https://support-dev.discord.com/hc/articles/6207308062871 | message content},
* found in Bot Settings
*/
GatewayMessageContentLimited = 1 << 19,
@@ -222,13 +240,13 @@ export enum ApplicationFlags {
*/
EmbeddedFirstParty = 1 << 20,
/**
* Indicates if an app has registered global [application commands](https://discord.com/developers/docs/interactions/application-commands)
* Indicates if an app has registered global {@link https://discord.com/developers/docs/interactions/application-commands | application commands}
*/
ApplicationCommandBadge = 1 << 23,
}
/**
* https://discord.com/developers/docs/resources/application-role-connection-metadata#application-role-connection-metadata-object-application-role-connection-metadata-structure
* @see {@link https://discord.com/developers/docs/resources/application-role-connection-metadata#application-role-connection-metadata-object-application-role-connection-metadata-structure}
*/
export interface APIApplicationRoleConnectionMetadata {
/**
@@ -258,7 +276,7 @@ export interface APIApplicationRoleConnectionMetadata {
}
/**
* https://discord.com/developers/docs/resources/application-role-connection-metadata#application-role-connection-metadata-object-application-role-connection-metadata-type
* @see {@link https://discord.com/developers/docs/resources/application-role-connection-metadata#application-role-connection-metadata-object-application-role-connection-metadata-type}
*/
export enum ApplicationRoleConnectionMetadataType {
/**
@@ -294,3 +312,21 @@ export enum ApplicationRoleConnectionMetadataType {
*/
BooleanNotEqual,
}
/**
* @see {@link https://discord.com/developers/docs/resources/application#application-object-application-event-webhook-status}
*/
export enum ApplicationWebhookEventStatus {
/**
* Webhook events are disabled by developer
*/
Disabled = 1,
/**
* Webhook events are enabled by developer
*/
Enabled,
/**
* Webhook events are disabled by Discord, usually due to inactivity
*/
DisabledByDiscord,
}

View File

@@ -23,6 +23,7 @@ import type {
} from './guild.ts';
import type {
APIGuildScheduledEvent,
APIGuildScheduledEventRecurrenceRule,
GuildScheduledEventEntityType,
GuildScheduledEventStatus,
} from './guildScheduledEvent.ts';
@@ -34,43 +35,43 @@ import type { APIUser } from './user.ts';
import type { APIWebhook } from './webhook.ts';
/**
* https://discord.com/developers/docs/resources/audit-log#audit-log-object-audit-log-structure
* @see {@link https://discord.com/developers/docs/resources/audit-log#audit-log-object-audit-log-structure}
*/
export interface APIAuditLog {
/**
* List of application commands found in the audit log
*
* See https://discord.com/developers/docs/interactions/application-commands#application-command-object
* @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-object}
*/
application_commands: APIApplicationCommand[];
/**
* Webhooks found in the audit log
*
* See https://discord.com/developers/docs/resources/webhook#webhook-object
* @see {@link https://discord.com/developers/docs/resources/webhook#webhook-object}
*/
webhooks: APIWebhook[];
/**
* Users found in the audit log
*
* See https://discord.com/developers/docs/resources/user#user-object
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
users: APIUser[];
/**
* Audit log entries
*
* See https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object
* @see {@link https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object}
*/
audit_log_entries: APIAuditLogEntry[];
/**
* List of auto moderation rules referenced in the audit log
*
* See https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object
* @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object}
*/
auto_moderation_rules: APIAutoModerationRule[];
/**
* Partial integration objects
*
* See https://discord.com/developers/docs/resources/guild#integration-object
* @see {@link https://discord.com/developers/docs/resources/guild#integration-object}
*/
integrations: APIGuildIntegration[];
/**
@@ -78,19 +79,19 @@ export interface APIAuditLog {
*
* Threads referenced in THREAD_CREATE and THREAD_UPDATE events are included in the threads map, since archived threads might not be kept in memory by clients.
*
* See https://discord.com/developers/docs/resources/channel#channel-object
* @see {@link https://discord.com/developers/docs/resources/channel#channel-object}
*/
threads: APIChannel[];
/**
* The guild scheduled events in the audit log
*
* See https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object}
*/
guild_scheduled_events: APIGuildScheduledEvent[];
}
/**
* https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-audit-log-entry-structure
* @see {@link https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-audit-log-entry-structure}
*/
export interface APIAuditLogEntry {
/**
@@ -100,7 +101,7 @@ export interface APIAuditLogEntry {
/**
* Changes made to the `target_id`
*
* See https://discord.com/developers/docs/resources/audit-log#audit-log-change-object
* @see {@link https://discord.com/developers/docs/resources/audit-log#audit-log-change-object}
*/
changes?: APIAuditLogChange[];
/**
@@ -116,13 +117,13 @@ export interface APIAuditLogEntry {
/**
* Type of action that occurred
*
* See https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-audit-log-events
* @see {@link https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-audit-log-events}
*/
action_type: AuditLogEvent;
/**
* Additional info for certain action types
*
* See https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-optional-audit-entry-info
* @see {@link https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-optional-audit-entry-info}
*/
options?: APIAuditLogOptions;
/**
@@ -132,7 +133,7 @@ export interface APIAuditLogEntry {
}
/**
* https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-audit-log-events
* @see {@link https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-audit-log-events}
*/
export enum AuditLogEvent {
GuildUpdate = 1,
@@ -196,6 +197,10 @@ export enum AuditLogEvent {
ApplicationCommandPermissionUpdate = 121,
SoundboardSoundCreate = 130,
SoundboardSoundUpdate,
SoundboardSoundDelete,
AutoModerationRuleCreate = 140,
AutoModerationRuleUpdate,
AutoModerationRuleDelete,
@@ -217,7 +222,7 @@ export enum AuditLogEvent {
}
/**
* https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-optional-audit-entry-info
* @see {@link https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-optional-audit-entry-info}
*/
export interface APIAuditLogOptions {
/**
@@ -320,7 +325,7 @@ export interface APIAuditLogOptions {
* - CHANNEL_OVERWRITE_UPDATE
* - CHANNEL_OVERWRITE_DELETE
*
* **Present only if the {@link APIAuditLogOptions#type entry type} is "0"**
* **Present only if the {@link APIAuditLogOptions.type | entry type} is "0"**
*/
role_name?: string;
@@ -342,7 +347,7 @@ export enum AuditLogOptionsType {
export type AuditLogRuleTriggerType = `${AutoModerationRuleTriggerType}`;
/**
* https://discord.com/developers/docs/resources/audit-log#audit-log-change-object-audit-log-change-structure
* @see {@link https://discord.com/developers/docs/resources/audit-log#audit-log-change-object-audit-log-change-structure}
*/
export type APIAuditLogChange =
| APIAuditLogChangeKey$Add
@@ -372,6 +377,8 @@ export type APIAuditLogChange =
| APIAuditLogChangeKeyDeny
| APIAuditLogChangeKeyDescription
| APIAuditLogChangeKeyDiscoverySplashHash
| APIAuditLogChangeKeyEmojiId
| APIAuditLogChangeKeyEmojiName
| APIAuditLogChangeKeyEnabled
| APIAuditLogChangeKeyEnableEmoticons
| APIAuditLogChangeKeyEntityType
@@ -404,12 +411,15 @@ export type APIAuditLogChange =
| APIAuditLogChangeKeyPermissions
| APIAuditLogChangeKeyPosition
| APIAuditLogChangeKeyPreferredLocale
| APIAuditLogChangeKeyPremiumProgressBarEnabled
| APIAuditLogChangeKeyPrivacyLevel
| APIAuditLogChangeKeyPruneDeleteDays
| APIAuditLogChangeKeyPublicUpdatesChannelId
| APIAuditLogChangeKeyRateLimitPerUser
| APIAuditLogChangeKeyRecurrenceRule
| APIAuditLogChangeKeyRegion
| APIAuditLogChangeKeyRulesChannelId
| APIAuditLogChangeKeySoundId
| APIAuditLogChangeKeySplashHash
| APIAuditLogChangeKeyStatus
| APIAuditLogChangeKeySystemChannelFlags
@@ -420,102 +430,104 @@ export type APIAuditLogChange =
| APIAuditLogChangeKeyTriggerMetadata
| APIAuditLogChangeKeyTriggerType
| APIAuditLogChangeKeyType
| APIAuditLogChangeKeyUserId
| APIAuditLogChangeKeyUserLimit
| APIAuditLogChangeKeyUses
| APIAuditLogChangeKeyVanityURLCode
| APIAuditLogChangeKeyVerificationLevel
| APIAuditLogChangeKeyVolume
| APIAuditLogChangeKeyWidgetChannelId
| APIAuditLogChangeKeyWidgetEnabled;
/**
* Returned when an entity's name is changed
*/
export type APIAuditLogChangeKeyName = AuditLogChangeData<'name', string>;
export type APIAuditLogChangeKeyName = APIAuditLogChangeData<'name', string>;
/**
* Returned when a guild's or sticker's or guild scheduled event's description is changed
*/
export type APIAuditLogChangeKeyDescription = AuditLogChangeData<'description', string>;
export type APIAuditLogChangeKeyDescription = APIAuditLogChangeData<'description', string>;
/**
* Returned when a guild's icon is changed
*/
export type APIAuditLogChangeKeyIconHash = AuditLogChangeData<'icon_hash', string>;
export type APIAuditLogChangeKeyIconHash = APIAuditLogChangeData<'icon_hash', string>;
/**
* Returned when a guild's scheduled event's cover image is changed
*/
export type APIAuditLogChangeKeyImageHash = AuditLogChangeData<'image_hash', string>;
export type APIAuditLogChangeKeyImageHash = APIAuditLogChangeData<'image_hash', string>;
/**
* Returned when a guild's splash is changed
*/
export type APIAuditLogChangeKeySplashHash = AuditLogChangeData<'splash_hash', string>;
export type APIAuditLogChangeKeySplashHash = APIAuditLogChangeData<'splash_hash', string>;
/**
* Returned when a guild's discovery splash is changed
*/
export type APIAuditLogChangeKeyDiscoverySplashHash = AuditLogChangeData<'discovery_splash_hash', string>;
export type APIAuditLogChangeKeyDiscoverySplashHash = APIAuditLogChangeData<'discovery_splash_hash', string>;
/**
* Returned when a guild's banner hash is changed
*/
export type APIAuditLogChangeKeyBannerHash = AuditLogChangeData<'banner_hash', string>;
export type APIAuditLogChangeKeyBannerHash = APIAuditLogChangeData<'banner_hash', string>;
/**
* Returned when a guild's owner_id is changed
*/
export type APIAuditLogChangeKeyOwnerId = AuditLogChangeData<'owner_id', Snowflake>;
export type APIAuditLogChangeKeyOwnerId = APIAuditLogChangeData<'owner_id', Snowflake>;
/**
* Returned when a guild's region is changed
*/
export type APIAuditLogChangeKeyRegion = AuditLogChangeData<'region', string>;
export type APIAuditLogChangeKeyRegion = APIAuditLogChangeData<'region', string>;
/**
* Returned when a guild's preferred_locale is changed
*/
export type APIAuditLogChangeKeyPreferredLocale = AuditLogChangeData<'preferred_locale', string>;
export type APIAuditLogChangeKeyPreferredLocale = APIAuditLogChangeData<'preferred_locale', string>;
/**
* Returned when a guild's afk_channel_id is changed
*/
export type APIAuditLogChangeKeyAFKChannelId = AuditLogChangeData<'afk_channel_id', Snowflake>;
export type APIAuditLogChangeKeyAFKChannelId = APIAuditLogChangeData<'afk_channel_id', Snowflake>;
/**
* Returned when a guild's afk_timeout is changed
*/
export type APIAuditLogChangeKeyAFKTimeout = AuditLogChangeData<'afk_timeout', number>;
export type APIAuditLogChangeKeyAFKTimeout = APIAuditLogChangeData<'afk_timeout', number>;
/**
* Returned when a guild's rules_channel_id is changed
*/
export type APIAuditLogChangeKeyRulesChannelId = AuditLogChangeData<'rules_channel_id', string>;
export type APIAuditLogChangeKeyRulesChannelId = APIAuditLogChangeData<'rules_channel_id', string>;
/**
* Returned when a guild's public_updates_channel_id is changed
*/
export type APIAuditLogChangeKeyPublicUpdatesChannelId = AuditLogChangeData<'public_updates_channel_id', string>;
export type APIAuditLogChangeKeyPublicUpdatesChannelId = APIAuditLogChangeData<'public_updates_channel_id', string>;
/**
* Returned when a guild's safety_alerts_channel_id is changed
*/
export type APIAuditLogChangeKeySafetyAlertsChannelId = AuditLogChangeData<'safety_alerts_channel_id', string>;
export type APIAuditLogChangeKeySafetyAlertsChannelId = APIAuditLogChangeData<'safety_alerts_channel_id', string>;
/**
* Returned when a guild's mfa_level is changed
*/
export type APIAuditLogChangeKeyMFALevel = AuditLogChangeData<'mfa_level', GuildMFALevel>;
export type APIAuditLogChangeKeyMFALevel = APIAuditLogChangeData<'mfa_level', GuildMFALevel>;
/**
* Returned when a guild's verification_level is changed
*/
export type APIAuditLogChangeKeyVerificationLevel = AuditLogChangeData<'verification_level', GuildVerificationLevel>;
export type APIAuditLogChangeKeyVerificationLevel = APIAuditLogChangeData<'verification_level', GuildVerificationLevel>;
/**
* Returned when a guild's explicit_content_filter is changed
*/
export type APIAuditLogChangeKeyExplicitContentFilter = AuditLogChangeData<
export type APIAuditLogChangeKeyExplicitContentFilter = APIAuditLogChangeData<
'explicit_content_filter',
GuildExplicitContentFilter
>;
@@ -523,7 +535,7 @@ export type APIAuditLogChangeKeyExplicitContentFilter = AuditLogChangeData<
/**
* Returned when a guild's default_message_notifications is changed
*/
export type APIAuditLogChangeKeyDefaultMessageNotifications = AuditLogChangeData<
export type APIAuditLogChangeKeyDefaultMessageNotifications = APIAuditLogChangeData<
'default_message_notifications',
GuildDefaultMessageNotifications
>;
@@ -531,37 +543,45 @@ export type APIAuditLogChangeKeyDefaultMessageNotifications = AuditLogChangeData
/**
* Returned when a guild's vanity_url_code is changed
*/
export type APIAuditLogChangeKeyVanityURLCode = AuditLogChangeData<'vanity_url_code', string>;
export type APIAuditLogChangeKeyVanityURLCode = APIAuditLogChangeData<'vanity_url_code', string>;
/**
* Returned when a guild's boost progress bar is enabled
*/
export type APIAuditLogChangeKeyPremiumProgressBarEnabled = APIAuditLogChangeData<
'premium_progress_bar_enabled',
boolean
>;
/**
* Returned when new role(s) are added
*/
export type APIAuditLogChangeKey$Add = AuditLogChangeData<'$add', Pick<APIRole, 'id' | 'name'>[]>;
export type APIAuditLogChangeKey$Add = APIAuditLogChangeData<'$add', Pick<APIRole, 'id' | 'name'>[]>;
/**
* Returned when role(s) are removed
*/
export type APIAuditLogChangeKey$Remove = AuditLogChangeData<'$remove', Pick<APIRole, 'id' | 'name'>[]>;
export type APIAuditLogChangeKey$Remove = APIAuditLogChangeData<'$remove', Pick<APIRole, 'id' | 'name'>[]>;
/**
* Returned when there is a change in number of days after which inactive and role-unassigned members are kicked
*/
export type APIAuditLogChangeKeyPruneDeleteDays = AuditLogChangeData<'prune_delete_days', number>;
export type APIAuditLogChangeKeyPruneDeleteDays = APIAuditLogChangeData<'prune_delete_days', number>;
/**
* Returned when a guild's widget is enabled
*/
export type APIAuditLogChangeKeyWidgetEnabled = AuditLogChangeData<'widget_enabled', boolean>;
export type APIAuditLogChangeKeyWidgetEnabled = APIAuditLogChangeData<'widget_enabled', boolean>;
/**
* Returned when a guild's widget_channel_id is changed
*/
export type APIAuditLogChangeKeyWidgetChannelId = AuditLogChangeData<'widget_channel_id', Snowflake>;
export type APIAuditLogChangeKeyWidgetChannelId = APIAuditLogChangeData<'widget_channel_id', Snowflake>;
/**
* Returned when a guild's system_channel_flags is changed
*/
export type APIAuditLogChangeKeySystemChannelFlags = AuditLogChangeData<
export type APIAuditLogChangeKeySystemChannelFlags = APIAuditLogChangeData<
'system_channel_flags',
GuildSystemChannelFlags
>;
@@ -569,214 +589,222 @@ export type APIAuditLogChangeKeySystemChannelFlags = AuditLogChangeData<
/**
* Returned when a guild's system_channel_id is changed
*/
export type APIAuditLogChangeKeySystemChannelId = AuditLogChangeData<'system_channel_id', Snowflake>;
export type APIAuditLogChangeKeySystemChannelId = APIAuditLogChangeData<'system_channel_id', Snowflake>;
/**
* Returned when a channel's position is changed
*/
export type APIAuditLogChangeKeyPosition = AuditLogChangeData<'position', number>;
export type APIAuditLogChangeKeyPosition = APIAuditLogChangeData<'position', number>;
/**
* Returned when a channel's topic is changed
*/
export type APIAuditLogChangeKeyTopic = AuditLogChangeData<'topic', string>;
export type APIAuditLogChangeKeyTopic = APIAuditLogChangeData<'topic', string>;
/**
* Returned when a voice channel's bitrate is changed
*/
export type APIAuditLogChangeKeyBitrate = AuditLogChangeData<'bitrate', number>;
export type APIAuditLogChangeKeyBitrate = APIAuditLogChangeData<'bitrate', number>;
/**
* Returned when a channel's permission overwrites is changed
*/
export type APIAuditLogChangeKeyPermissionOverwrites = AuditLogChangeData<'permission_overwrites', APIOverwrite[]>;
export type APIAuditLogChangeKeyPermissionOverwrites = APIAuditLogChangeData<'permission_overwrites', APIOverwrite[]>;
/**
* Returned when a channel's NSFW restriction is changed
*/
export type APIAuditLogChangeKeyNSFW = AuditLogChangeData<'nsfw', boolean>;
export type APIAuditLogChangeKeyNSFW = APIAuditLogChangeData<'nsfw', boolean>;
/**
* The application ID of the added or removed Webhook or Bot
*/
export type APIAuditLogChangeKeyApplicationId = AuditLogChangeData<'application_id', Snowflake>;
export type APIAuditLogChangeKeyApplicationId = APIAuditLogChangeData<'application_id', Snowflake>;
/**
* Returned when a channel's amount of seconds a user has to wait before sending another message
* is changed
*/
export type APIAuditLogChangeKeyRateLimitPerUser = AuditLogChangeData<'rate_limit_per_user', number>;
export type APIAuditLogChangeKeyRateLimitPerUser = APIAuditLogChangeData<'rate_limit_per_user', number>;
/**
* Returned when a guild scheduled event's recurrence_rule is changed
*/
export type APIAuditLogChangeKeyRecurrenceRule = APIAuditLogChangeData<
'recurrence_rule',
APIGuildScheduledEventRecurrenceRule
>;
/**
* Returned when a permission bitfield is changed
*/
export type APIAuditLogChangeKeyPermissions = AuditLogChangeData<'permissions', string>;
export type APIAuditLogChangeKeyPermissions = APIAuditLogChangeData<'permissions', string>;
/**
* Returned when a role's color is changed
*/
export type APIAuditLogChangeKeyColor = AuditLogChangeData<'color', number>;
export type APIAuditLogChangeKeyColor = APIAuditLogChangeData<'color', number>;
/**
* Represents a change where the key is a snowflake.
* Currently, the only known instance of this is returned when permissions for a command were updated (<insert name of object here>)
* Currently, the only known instance of this is returned when permissions for a command were updated
*/
export type APIAuditLogChangeKeySnowflake = AuditLogChangeData<Snowflake, unknown>;
export type APIAuditLogChangeKeySnowflake = APIAuditLogChangeData<Snowflake, unknown>;
/**
* Returned when a role's hoist status is changed
*/
export type APIAuditLogChangeKeyHoist = AuditLogChangeData<'hoist', boolean>;
export type APIAuditLogChangeKeyHoist = APIAuditLogChangeData<'hoist', boolean>;
/**
* Returned when a role's mentionable status is changed
*/
export type APIAuditLogChangeKeyMentionable = AuditLogChangeData<'mentionable', boolean>;
export type APIAuditLogChangeKeyMentionable = APIAuditLogChangeData<'mentionable', boolean>;
/**
* Returned when an overwrite's allowed permissions bitfield is changed
*/
export type APIAuditLogChangeKeyAllow = AuditLogChangeData<'allow', string>;
export type APIAuditLogChangeKeyAllow = APIAuditLogChangeData<'allow', string>;
/**
* Returned when an overwrite's denied permissions bitfield is changed
*/
export type APIAuditLogChangeKeyDeny = AuditLogChangeData<'deny', string>;
export type APIAuditLogChangeKeyDeny = APIAuditLogChangeData<'deny', string>;
/**
* Returned when an invite's code is changed
*/
export type APIAuditLogChangeKeyCode = AuditLogChangeData<'code', string>;
export type APIAuditLogChangeKeyCode = APIAuditLogChangeData<'code', string>;
/**
* Returned when an invite's or guild scheduled event's channel_id is changed
*/
export type APIAuditLogChangeKeyChannelId = AuditLogChangeData<'channel_id', Snowflake>;
export type APIAuditLogChangeKeyChannelId = APIAuditLogChangeData<'channel_id', Snowflake>;
/**
* Returned when an invite's inviter_id is changed
*/
export type APIAuditLogChangeKeyInviterId = AuditLogChangeData<'inviter_id', Snowflake>;
export type APIAuditLogChangeKeyInviterId = APIAuditLogChangeData<'inviter_id', Snowflake>;
/**
* Returned when an invite's max_uses is changed
*/
export type APIAuditLogChangeKeyMaxUses = AuditLogChangeData<'max_uses', number>;
export type APIAuditLogChangeKeyMaxUses = APIAuditLogChangeData<'max_uses', number>;
/**
* Returned when an invite's uses is changed
*/
export type APIAuditLogChangeKeyUses = AuditLogChangeData<'uses', number>;
export type APIAuditLogChangeKeyUses = APIAuditLogChangeData<'uses', number>;
/**
* Returned when an invite's max_age is changed
*/
export type APIAuditLogChangeKeyMaxAge = AuditLogChangeData<'max_age', number>;
export type APIAuditLogChangeKeyMaxAge = APIAuditLogChangeData<'max_age', number>;
/**
* Returned when an invite's temporary status is changed
*/
export type APIAuditLogChangeKeyTemporary = AuditLogChangeData<'temporary', boolean>;
export type APIAuditLogChangeKeyTemporary = APIAuditLogChangeData<'temporary', boolean>;
/**
* Returned when a user's deaf status is changed
*/
export type APIAuditLogChangeKeyDeaf = AuditLogChangeData<'deaf', boolean>;
export type APIAuditLogChangeKeyDeaf = APIAuditLogChangeData<'deaf', boolean>;
/**
* Returned when a user's mute status is changed
*/
export type APIAuditLogChangeKeyMute = AuditLogChangeData<'mute', boolean>;
export type APIAuditLogChangeKeyMute = APIAuditLogChangeData<'mute', boolean>;
/**
* Returned when a user's nick is changed
*/
export type APIAuditLogChangeKeyNick = AuditLogChangeData<'nick', string>;
export type APIAuditLogChangeKeyNick = APIAuditLogChangeData<'nick', string>;
/**
* Returned when a user's avatar_hash is changed
*/
export type APIAuditLogChangeKeyAvatarHash = AuditLogChangeData<'avatar_hash', string>;
export type APIAuditLogChangeKeyAvatarHash = APIAuditLogChangeData<'avatar_hash', string>;
/**
* The ID of the changed entity - sometimes used in conjunction with other keys
*/
export type APIAuditLogChangeKeyId = AuditLogChangeData<'id', Snowflake>;
export type APIAuditLogChangeKeyId = APIAuditLogChangeData<'id', Snowflake>;
/**
* The type of entity created
*/
export type APIAuditLogChangeKeyType = AuditLogChangeData<'type', number | string>;
export type APIAuditLogChangeKeyType = APIAuditLogChangeData<'type', number | string>;
/**
* Returned when an integration's enable_emoticons is changed
*/
export type APIAuditLogChangeKeyEnableEmoticons = AuditLogChangeData<'enable_emoticons', boolean>;
export type APIAuditLogChangeKeyEnableEmoticons = APIAuditLogChangeData<'enable_emoticons', boolean>;
/**
* Returned when an integration's expire_behavior is changed
*/
export type APIAuditLogChangeKeyExpireBehavior = AuditLogChangeData<'expire_behavior', IntegrationExpireBehavior>;
export type APIAuditLogChangeKeyExpireBehavior = APIAuditLogChangeData<'expire_behavior', IntegrationExpireBehavior>;
/**
* Returned when an integration's expire_grace_period is changed
*/
export type APIAuditLogChangeKeyExpireGracePeriod = AuditLogChangeData<'expire_grace_period', number>;
export type APIAuditLogChangeKeyExpireGracePeriod = APIAuditLogChangeData<'expire_grace_period', number>;
/**
* Returned when a voice channel's user_limit is changed
*/
export type APIAuditLogChangeKeyUserLimit = AuditLogChangeData<'user_limit', number>;
export type APIAuditLogChangeKeyUserLimit = APIAuditLogChangeData<'user_limit', number>;
/**
* Returned when privacy level of a stage instance or guild scheduled event is changed
*/
export type APIAuditLogChangeKeyPrivacyLevel = AuditLogChangeData<'privacy_level', StageInstancePrivacyLevel>;
export type APIAuditLogChangeKeyPrivacyLevel = APIAuditLogChangeData<'privacy_level', StageInstancePrivacyLevel>;
/**
* Returned when a sticker's related emoji is changed
*/
export type APIAuditLogChangeKeyTags = AuditLogChangeData<'tags', string>;
export type APIAuditLogChangeKeyTags = APIAuditLogChangeData<'tags', string>;
/**
* Returned when a sticker's format_type is changed
*/
export type APIAuditLogChangeKeyFormatType = AuditLogChangeData<'format_type', StickerFormatType>;
export type APIAuditLogChangeKeyFormatType = APIAuditLogChangeData<'format_type', StickerFormatType>;
/**
* Empty string
*/
export type APIAuditLogChangeKeyAsset = AuditLogChangeData<'asset', ''>;
export type APIAuditLogChangeKeyAsset = APIAuditLogChangeData<'asset', ''>;
/**
* Returned when a sticker's availability is changed
*/
export type APIAuditLogChangeKeyAvailable = AuditLogChangeData<'available', boolean>;
export type APIAuditLogChangeKeyAvailable = APIAuditLogChangeData<'available', boolean>;
/**
* Returned when a sticker's guild_id is changed
*/
export type APIAuditLogChangeKeyGuildId = AuditLogChangeData<'guild_id', Snowflake>;
export type APIAuditLogChangeKeyGuildId = APIAuditLogChangeData<'guild_id', Snowflake>;
/**
* Returned when a thread's archive status is changed
*/
export type APIAuditLogChangeKeyArchived = AuditLogChangeData<'archived', boolean>;
export type APIAuditLogChangeKeyArchived = APIAuditLogChangeData<'archived', boolean>;
/**
* Returned when a thread's lock status is changed
*/
export type APIAuditLogChangeKeyLocked = AuditLogChangeData<'locked', boolean>;
export type APIAuditLogChangeKeyLocked = APIAuditLogChangeData<'locked', boolean>;
/**
* Returned when a thread's auto archive duration is changed
*/
export type APIAuditLogChangeKeyAutoArchiveDuration = AuditLogChangeData<'auto_archive_duration', number>;
export type APIAuditLogChangeKeyAutoArchiveDuration = APIAuditLogChangeData<'auto_archive_duration', number>;
/**
* Returned when a channel's default auto archive duration for newly created threads is changed
*/
export type APIAuditLogChangeKeyDefaultAutoArchiveDuration = AuditLogChangeData<
export type APIAuditLogChangeKeyDefaultAutoArchiveDuration = APIAuditLogChangeData<
'default_auto_archive_duration',
number
>;
@@ -784,37 +812,40 @@ export type APIAuditLogChangeKeyDefaultAutoArchiveDuration = AuditLogChangeData<
/**
* Returned when entity type of a guild scheduled event is changed
*/
export type APIAuditLogChangeKeyEntityType = AuditLogChangeData<'entity_type', GuildScheduledEventEntityType>;
export type APIAuditLogChangeKeyEntityType = APIAuditLogChangeData<'entity_type', GuildScheduledEventEntityType>;
/**
* Returned when status of a guild scheduled event is changed
*/
export type APIAuditLogChangeKeyStatus = AuditLogChangeData<'status', GuildScheduledEventStatus>;
export type APIAuditLogChangeKeyStatus = APIAuditLogChangeData<'status', GuildScheduledEventStatus>;
/**
* Returned when location of a guild scheduled event is changed
*/
export type APIAuditLogChangeKeyLocation = AuditLogChangeData<'location', string>;
export type APIAuditLogChangeKeyLocation = APIAuditLogChangeData<'location', string>;
/**
* Returned when a user's timeout is changed
*/
export type APIAuditLogChangeKeyCommunicationDisabledUntil = AuditLogChangeData<'communication_disabled_until', string>;
export type APIAuditLogChangeKeyCommunicationDisabledUntil = APIAuditLogChangeData<
'communication_disabled_until',
string
>;
/**
* Returned when an auto moderation rule's trigger type is changed (only in rule creation or deletion)
*/
export type APIAuditLogChangeKeyTriggerType = AuditLogChangeData<'trigger_type', AutoModerationRuleTriggerType>;
export type APIAuditLogChangeKeyTriggerType = APIAuditLogChangeData<'trigger_type', AutoModerationRuleTriggerType>;
/**
* Returned when an auto moderation rule's event type is changed
*/
export type APIAuditLogChangeKeyEventType = AuditLogChangeData<'event_type', AutoModerationRuleEventType>;
export type APIAuditLogChangeKeyEventType = APIAuditLogChangeData<'event_type', AutoModerationRuleEventType>;
/**
* Returned when an auto moderation rule's trigger metadata is changed
*/
export type APIAuditLogChangeKeyTriggerMetadata = AuditLogChangeData<
export type APIAuditLogChangeKeyTriggerMetadata = APIAuditLogChangeData<
'trigger_metadata',
APIAutoModerationRuleTriggerMetadata
>;
@@ -822,32 +853,32 @@ export type APIAuditLogChangeKeyTriggerMetadata = AuditLogChangeData<
/**
* Returned when an auto moderation rule's actions is changed
*/
export type APIAuditLogChangeKeyActions = AuditLogChangeData<'actions', APIAutoModerationAction[]>;
export type APIAuditLogChangeKeyActions = APIAuditLogChangeData<'actions', APIAutoModerationAction[]>;
/**
* Returned when an auto moderation rule's enabled status is changed
*/
export type APIAuditLogChangeKeyEnabled = AuditLogChangeData<'enabled', boolean>;
export type APIAuditLogChangeKeyEnabled = APIAuditLogChangeData<'enabled', boolean>;
/**
* Returned when an auto moderation rule's exempt roles is changed
*/
export type APIAuditLogChangeKeyExemptRoles = AuditLogChangeData<'exempt_roles', Snowflake[]>;
export type APIAuditLogChangeKeyExemptRoles = APIAuditLogChangeData<'exempt_roles', Snowflake[]>;
/**
* Returned when an auto moderation rule's exempt channels is changed
*/
export type APIAuditLogChangeKeyExemptChannels = AuditLogChangeData<'exempt_channels', Snowflake[]>;
export type APIAuditLogChangeKeyExemptChannels = APIAuditLogChangeData<'exempt_channels', Snowflake[]>;
/**
* Returned when a guild forum's available tags gets changed
*/
export type APIAuditLogChangeKeyAvailableTags = AuditLogChangeData<'available_tags', APIGuildForumTag[]>;
export type APIAuditLogChangeKeyAvailableTags = APIAuditLogChangeData<'available_tags', APIGuildForumTag[]>;
/**
* Returned when a guild forum's default reaction emoji gets changed
*/
export type APIAuditLogChangeKeyDefaultReactionEmoji = AuditLogChangeData<
export type APIAuditLogChangeKeyDefaultReactionEmoji = APIAuditLogChangeData<
'default_reaction_emoji',
APIGuildForumDefaultReactionEmoji
>;
@@ -855,18 +886,43 @@ export type APIAuditLogChangeKeyDefaultReactionEmoji = AuditLogChangeData<
/**
* Returned when a channel flag gets changed
*/
export type APIAuditLogChangeKeyFlags = AuditLogChangeData<'flags', number>;
export type APIAuditLogChangeKeyFlags = APIAuditLogChangeData<'flags', number>;
/**
* Returned when a thread's amount of seconds a user has to wait before creating another thread
* gets changed
*/
export type APIAuditLogChangeKeyDefaultThreadRateLimitPerUser = AuditLogChangeData<
export type APIAuditLogChangeKeyDefaultThreadRateLimitPerUser = APIAuditLogChangeData<
'default_thread_rate_limit_per_user',
number
>;
interface AuditLogChangeData<K extends string, D> {
/**
* Returned when a soundboard is create or deleted
*/
export type APIAuditLogChangeKeySoundId = APIAuditLogChangeData<'sound_id', Snowflake>;
/**
* Returned when a soundboard's volume is changed
*/
export type APIAuditLogChangeKeyVolume = APIAuditLogChangeData<'volume', number>;
/**
* Returned when a soundboard's custom emoji is changed
*/
export type APIAuditLogChangeKeyEmojiId = APIAuditLogChangeData<'emoji_id', Snowflake>;
/**
* Returned when a soundboard's unicode emoji is changed
*/
export type APIAuditLogChangeKeyEmojiName = APIAuditLogChangeData<'emoji_name', string>;
/**
* Returned when a sounboard is created
*/
export type APIAuditLogChangeKeyUserId = APIAuditLogChangeData<'user_id', Snowflake>;
export interface APIAuditLogChangeData<K extends string, D> {
key: K;
/**
* The new value

View File

@@ -5,7 +5,7 @@
import type { Snowflake } from '../../globals.ts';
/**
* https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-auto-moderation-rule-structure
* @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-auto-moderation-rule-structure}
*/
export interface APIAutoModerationRule {
/**
@@ -55,7 +55,7 @@ export interface APIAutoModerationRule {
}
/**
* https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-trigger-types
* @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-trigger-types}
*/
export enum AutoModerationRuleTriggerType {
/**
@@ -81,14 +81,15 @@ export enum AutoModerationRuleTriggerType {
}
/**
* https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-trigger-metadata
* @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-trigger-metadata}
*/
export interface APIAutoModerationRuleTriggerMetadata {
/**
* Substrings which will be searched for in content (Maximum of 1000)
*
* A keyword can be a phrase which contains multiple words. Wildcard symbols can be used to customize how each string will be matched. Each keyword must be 60 characters or less
* See [keyword matching strategies](https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-keyword-matching-strategies)
*
* @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-keyword-matching-strategies | Keyword matching strategies}
*
* Associated trigger types: {@link AutoModerationRuleTriggerType.Keyword}, {@link AutoModerationRuleTriggerType.MemberProfile}
*/
@@ -103,7 +104,8 @@ export interface APIAutoModerationRuleTriggerMetadata {
* Substrings which will be exempt from triggering the preset trigger type (Maximum of 1000)
*
* A allowed-word can be a phrase which contains multiple words. Wildcard symbols can be used to customize how each string will be matched. Each keyword must be 60 characters or less
* See [keyword matching strategies](https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-keyword-matching-strategies)
*
* @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-keyword-matching-strategies | Keyword matching strategies}
*
* Associated trigger types: {@link AutoModerationRuleTriggerType.Keyword}, {@link AutoModerationRuleTriggerType.KeywordPreset}, {@link AutoModerationRuleTriggerType.MemberProfile}
*/
@@ -131,7 +133,7 @@ export interface APIAutoModerationRuleTriggerMetadata {
}
/**
* https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-keyword-preset-types
* @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-keyword-preset-types}
*/
export enum AutoModerationRuleKeywordPresetType {
/**
@@ -149,7 +151,7 @@ export enum AutoModerationRuleKeywordPresetType {
}
/**
* https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-event-types
* @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-event-types}
*/
export enum AutoModerationRuleEventType {
/**
@@ -163,7 +165,7 @@ export enum AutoModerationRuleEventType {
}
/**
* https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-action-object-auto-moderation-action-structure
* @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-action-object-auto-moderation-action-structure}
*/
export interface APIAutoModerationAction {
/**
@@ -179,7 +181,7 @@ export interface APIAutoModerationAction {
}
/**
* https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-action-object-action-types
* @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-action-object-action-types}
*/
export enum AutoModerationActionType {
/**
@@ -202,7 +204,7 @@ export enum AutoModerationActionType {
}
/**
* https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-action-object-action-metadata
* @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-action-object-action-metadata}
*/
export interface APIAutoModerationActionMetadata {
/**

File diff suppressed because it is too large Load Diff

View File

@@ -25,7 +25,7 @@ export interface APIPartialEmoji {
}
/**
* https://discord.com/developers/docs/resources/emoji#emoji-object-emoji-structure
* @see {@link https://discord.com/developers/docs/resources/emoji#emoji-object-emoji-structure}
*/
export interface APIEmoji extends APIPartialEmoji {
/**

View File

@@ -5,12 +5,12 @@
*/
import type { Snowflake } from '../../globals.ts';
import type { APIChannel, APIThreadMember } from './channel.ts';
import type { APIThreadChannel, APIThreadMember } from './channel.ts';
import type { APIEmoji } from './emoji.ts';
import type { APIUser } from './user.ts';
/**
* https://discord.com/developers/docs/topics/gateway#get-gateway
* @see {@link https://discord.com/developers/docs/topics/gateway#get-gateway}
*/
export interface APIGatewayInfo {
/**
@@ -20,25 +20,25 @@ export interface APIGatewayInfo {
}
/**
* https://discord.com/developers/docs/topics/gateway#get-gateway-bot
* @see {@link https://discord.com/developers/docs/topics/gateway#get-gateway-bot}
*/
export interface APIGatewayBotInfo extends APIGatewayInfo {
/**
* The recommended number of shards to use when connecting
*
* See https://discord.com/developers/docs/topics/gateway#sharding
* @see {@link https://discord.com/developers/docs/topics/gateway#sharding}
*/
shards: number;
/**
* Information on the current session start limit
*
* See https://discord.com/developers/docs/topics/gateway#session-start-limit-object
* @see {@link https://discord.com/developers/docs/topics/gateway#session-start-limit-object}
*/
session_start_limit: APIGatewaySessionStartLimit;
}
/**
* https://discord.com/developers/docs/topics/gateway#session-start-limit-object
* @see {@link https://discord.com/developers/docs/topics/gateway#session-start-limit-object}
*/
export interface APIGatewaySessionStartLimit {
/**
@@ -60,7 +60,7 @@ export interface APIGatewaySessionStartLimit {
}
/**
* https://discord.com/developers/docs/topics/gateway-events#presence-update-presence-update-event-fields
* @see {@link https://discord.com/developers/docs/topics/gateway-events#presence-update-presence-update-event-fields}
*/
export interface GatewayPresenceUpdate {
/**
@@ -69,7 +69,7 @@ export interface GatewayPresenceUpdate {
* **The user object within this event can be partial, the only field which must be sent is the `id` field,
* everything else is optional.**
*
* See https://discord.com/developers/docs/resources/user#user-object
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
user: Partial<APIUser> & Pick<APIUser, 'id'>;
/**
@@ -83,19 +83,19 @@ export interface GatewayPresenceUpdate {
/**
* User's current activities
*
* See https://discord.com/developers/docs/topics/gateway-events#activity-object
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object}
*/
activities?: GatewayActivity[];
/**
* User's platform-dependent status
*
* See https://discord.com/developers/docs/topics/gateway-events#client-status-object
* @see {@link https://discord.com/developers/docs/topics/gateway-events#client-status-object}
*/
client_status?: GatewayPresenceClientStatus;
}
/**
* https://discord.com/developers/docs/topics/gateway-events#update-presence-status-types
* @see {@link https://discord.com/developers/docs/topics/gateway-events#update-presence-status-types}
*/
export enum PresenceUpdateStatus {
Online = 'online',
@@ -111,7 +111,7 @@ export enum PresenceUpdateStatus {
export type PresenceUpdateReceiveStatus = Exclude<PresenceUpdateStatus, PresenceUpdateStatus.Invisible>;
/**
* https://discord.com/developers/docs/topics/gateway-events#client-status-object
* @see {@link https://discord.com/developers/docs/topics/gateway-events#client-status-object}
*/
export interface GatewayPresenceClientStatus {
/**
@@ -129,7 +129,7 @@ export interface GatewayPresenceClientStatus {
}
/**
* https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-structure
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-structure}
*/
export interface GatewayActivity {
/**
@@ -143,7 +143,7 @@ export interface GatewayActivity {
/**
* Activity type
*
* See https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-types
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-types}
*/
type: ActivityType;
/**
@@ -178,26 +178,26 @@ export interface GatewayActivity {
/**
* The emoji used for a custom status
*
* See https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-emoji
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-emoji}
*/
emoji?: GatewayActivityEmoji;
session_id?: string;
/**
* Information for the current party of the player
*
* See https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-party
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-party}
*/
party?: GatewayActivityParty;
/**
* Images for the presence and their hover texts
*
* See https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-assets
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-assets}
*/
assets?: GatewayActivityAssets;
/**
* Secrets for Rich Presence joining and spectating
*
* See https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-secrets
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-secrets}
*/
secrets?: GatewayActivitySecrets;
/**
@@ -207,9 +207,8 @@ export interface GatewayActivity {
/**
* Activity flags `OR`d together, describes what the payload includes
*
* See https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-flags
*
* See https://en.wikipedia.org/wiki/Bit_field
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-flags}
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
flags?: ActivityFlags;
/**
@@ -234,37 +233,37 @@ export enum ActivityPlatform {
}
/**
* https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-types
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-types}
*/
export enum ActivityType {
/**
* Playing {game}
* Playing \{game\}
*/
Playing,
/**
* Streaming {details}
* Streaming \{details\}
*/
Streaming,
/**
* Listening to {name}
* Listening to \{name\}
*/
Listening,
/**
* Watching {details}
* Watching \{details\}
*/
Watching,
/**
* {emoji} {state}
* \{emoji\} \{state\}
*/
Custom,
/**
* Competing in {name}
* Competing in \{name\}
*/
Competing,
}
/**
* https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-timestamps
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-timestamps}
*/
export interface GatewayActivityTimestamps {
/**
@@ -278,12 +277,12 @@ export interface GatewayActivityTimestamps {
}
/**
* https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-emoji
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-emoji}
*/
export type GatewayActivityEmoji = Partial<Pick<APIEmoji, 'animated' | 'id'>> & Pick<APIEmoji, 'name'>;
/**
* https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-party
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-party}
*/
export interface GatewayActivityParty {
/**
@@ -297,19 +296,19 @@ export interface GatewayActivityParty {
}
/**
* https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-assets
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-assets}
*/
export type GatewayActivityAssets = Partial<
Record<'large_image' | 'large_text' | 'small_image' | 'small_text', string>
>;
/**
* https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-secrets
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-secrets}
*/
export type GatewayActivitySecrets = Partial<Record<'join' | 'match' | 'spectate', string>>;
/**
* https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-flags
* @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-flags}
*/
export enum ActivityFlags {
Instance = 1 << 0,
@@ -335,7 +334,7 @@ export interface GatewayActivityButton {
}
/**
* https://discord.com/developers/docs/topics/gateway-events#thread-list-sync-thread-list-sync-event-fields
* @see {@link https://discord.com/developers/docs/topics/gateway-events#thread-list-sync-thread-list-sync-event-fields}
*/
export interface GatewayThreadListSync {
/**
@@ -349,7 +348,7 @@ export interface GatewayThreadListSync {
/**
* Array of the synced threads
*/
threads: APIChannel[];
threads: APIThreadChannel[];
/**
* The member objects for the client user in each joined thread that was synced
*/
@@ -357,7 +356,7 @@ export interface GatewayThreadListSync {
}
/**
* https://discord.com/developers/docs/topics/gateway-events#thread-members-update-thread-members-update-event-fields
* @see {@link https://discord.com/developers/docs/topics/gateway-events#thread-members-update-thread-members-update-event-fields}
*/
export interface GatewayThreadMembersUpdate {
/**

View File

@@ -3,6 +3,7 @@
*/
import type { Permissions, Snowflake } from '../../globals.ts';
import type { Locale } from '../../rest/common.ts';
import type { APIEmoji, APIPartialEmoji } from './emoji.ts';
import type { PresenceUpdateReceiveStatus } from './gateway.ts';
import type { OAuth2Scopes } from './oauth2.ts';
@@ -11,7 +12,7 @@ import type { APISticker } from './sticker.ts';
import type { APIAvatarDecorationData, APIUser } from './user.ts';
/**
* https://discord.com/developers/docs/resources/guild#unavailable-guild-object
* @see {@link https://discord.com/developers/docs/resources/guild#unavailable-guild-object}
*/
export interface APIUnavailableGuild {
/**
@@ -25,7 +26,7 @@ export interface APIUnavailableGuild {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-object-guild-structure
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-guild-structure}
*/
export interface APIPartialGuild extends Omit<APIUnavailableGuild, 'unavailable'>, Pick<APIGuild, 'welcome_screen'> {
/**
@@ -35,19 +36,19 @@ export interface APIPartialGuild extends Omit<APIUnavailableGuild, 'unavailable'
/**
* Icon hash
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
icon: string | null;
/**
* Splash hash
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
splash: string | null;
/**
* Banner hash
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
banner?: string | null;
/**
@@ -57,13 +58,13 @@ export interface APIPartialGuild extends Omit<APIUnavailableGuild, 'unavailable'
/**
* Enabled guild features
*
* See https://discord.com/developers/docs/resources/guild#guild-object-guild-features
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-guild-features}
*/
features?: GuildFeature[];
/**
* Verification level required for the guild
*
* See https://discord.com/developers/docs/resources/guild#guild-object-verification-level
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-verification-level}
*/
verification_level?: GuildVerificationLevel;
/**
@@ -73,19 +74,19 @@ export interface APIPartialGuild extends Omit<APIUnavailableGuild, 'unavailable'
}
/**
* https://discord.com/developers/docs/resources/guild#guild-object-guild-structure
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-guild-structure}
*/
export interface APIGuild extends APIPartialGuild {
/**
* Icon hash, returned when in the template object
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
icon_hash?: string | null;
/**
* Discovery splash hash; only present for guilds with the "DISCOVERABLE" feature
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
discovery_splash: string | null;
/**
@@ -103,14 +104,13 @@ export interface APIGuild extends APIPartialGuild {
*
* **This field is only received from https://discord.com/developers/docs/resources/user#get-current-user-guilds**
*
* See https://en.wikipedia.org/wiki/Bit_field
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
permissions?: Permissions;
/**
* Voice region id for the guild
*
* See https://discord.com/developers/docs/resources/voice#voice-region-object
*
* @see {@link https://discord.com/developers/docs/resources/voice#voice-region-object}
* @deprecated This field has been deprecated in favor of `rtc_region` on the channel.
*/
region: string;
@@ -133,43 +133,43 @@ export interface APIGuild extends APIPartialGuild {
/**
* Verification level required for the guild
*
* See https://discord.com/developers/docs/resources/guild#guild-object-verification-level
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-verification-level}
*/
verification_level: GuildVerificationLevel;
/**
* Default message notifications level
*
* See https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level}
*/
default_message_notifications: GuildDefaultMessageNotifications;
/**
* Explicit content filter level
*
* See https://discord.com/developers/docs/resources/guild#guild-object-explicit-content-filter-level
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-explicit-content-filter-level}
*/
explicit_content_filter: GuildExplicitContentFilter;
/**
* Roles in the guild
*
* See https://discord.com/developers/docs/topics/permissions#role-object
* @see {@link https://discord.com/developers/docs/topics/permissions#role-object}
*/
roles: APIRole[];
/**
* Custom guild emojis
*
* See https://discord.com/developers/docs/resources/emoji#emoji-object
* @see {@link https://discord.com/developers/docs/resources/emoji#emoji-object}
*/
emojis: APIEmoji[];
/**
* Enabled guild features
*
* See https://discord.com/developers/docs/resources/guild#guild-object-guild-features
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-guild-features}
*/
features: GuildFeature[];
/**
* Required MFA level for the guild
*
* See https://discord.com/developers/docs/resources/guild#guild-object-mfa-level
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-mfa-level}
*/
mfa_level: GuildMFALevel;
/**
@@ -183,7 +183,7 @@ export interface APIGuild extends APIPartialGuild {
/**
* System channel flags
*
* See https://discord.com/developers/docs/resources/guild#guild-object-system-channel-flags
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-system-channel-flags}
*/
system_channel_flags: GuildSystemChannelFlags;
/**
@@ -209,13 +209,13 @@ export interface APIGuild extends APIPartialGuild {
/**
* Banner hash
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
banner: string | null;
/**
* Premium tier (Server Boost level)
*
* See https://discord.com/developers/docs/resources/guild#guild-object-premium-tier
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-premium-tier}
*/
premium_tier: GuildPremiumTier;
/**
@@ -225,9 +225,9 @@ export interface APIGuild extends APIPartialGuild {
/**
* The preferred locale of a Community guild; used in guild discovery and notices from Discord; defaults to "en-US"
*
* @default "en-US"
* @defaultValue `"en-US"`
*/
preferred_locale: string;
preferred_locale: Locale;
/**
* The id of the channel where admins and moderators of Community guilds receive notices from Discord
*/
@@ -259,13 +259,13 @@ export interface APIGuild extends APIPartialGuild {
/**
* The nsfw level of the guild
*
* See https://discord.com/developers/docs/resources/guild#guild-object-guild-nsfw-level
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-guild-nsfw-level}
*/
nsfw_level: GuildNSFWLevel;
/**
* Custom guild stickers
*
* See https://discord.com/developers/docs/resources/sticker#sticker-object
* @see {@link https://discord.com/developers/docs/resources/sticker#sticker-object}
*/
stickers: APISticker[];
/**
@@ -280,10 +280,27 @@ export interface APIGuild extends APIPartialGuild {
* The id of the channel where admins and moderators of Community guilds receive safety alerts from Discord
*/
safety_alerts_channel_id: Snowflake | null;
/**
* The incidents data for this guild
*/
incidents_data: APIIncidentsData | null;
}
/**
* https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-guild-structure}
*/
export interface APIPartialInteractionGuild extends Pick<APIGuild, 'features' | 'id'> {
/**
* The preferred locale of a Community guild; used in guild discovery and notices from Discord; defaults to "en-US"
*
* @unstable https://github.com/discord/discord-api-docs/issues/6938
* @defaultValue `"en-US"`
*/
locale: Locale;
}
/**
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level}
*/
export enum GuildDefaultMessageNotifications {
AllMessages,
@@ -291,7 +308,7 @@ export enum GuildDefaultMessageNotifications {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-object-explicit-content-filter-level
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-explicit-content-filter-level}
*/
export enum GuildExplicitContentFilter {
Disabled,
@@ -300,7 +317,7 @@ export enum GuildExplicitContentFilter {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-object-mfa-level
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-mfa-level}
*/
export enum GuildMFALevel {
None,
@@ -308,7 +325,7 @@ export enum GuildMFALevel {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-object-guild-nsfw-level
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-guild-nsfw-level}
*/
export enum GuildNSFWLevel {
Default,
@@ -318,7 +335,7 @@ export enum GuildNSFWLevel {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-object-verification-level
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-verification-level}
*/
export enum GuildVerificationLevel {
/**
@@ -344,7 +361,7 @@ export enum GuildVerificationLevel {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-object-premium-tier
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-premium-tier}
*/
export enum GuildPremiumTier {
None,
@@ -360,7 +377,7 @@ export enum GuildHubType {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-object-system-channel-flags
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-system-channel-flags}
*/
export enum GuildSystemChannelFlags {
/**
@@ -382,7 +399,7 @@ export enum GuildSystemChannelFlags {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-object-guild-features
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-guild-features}
*/
export enum GuildFeature {
/**
@@ -396,7 +413,7 @@ export enum GuildFeature {
/**
* Guild is using the old permissions configuration behavior
*
* See https://discord.com/developers/docs/change-log#upcoming-application-command-permission-changes
* @see {@link https://discord.com/developers/docs/change-log#upcoming-application-command-permission-changes}
*/
ApplicationCommandPermissionsV2 = 'APPLICATION_COMMAND_PERMISSIONS_V2',
/**
@@ -438,8 +455,7 @@ export enum GuildFeature {
/**
* Guild is a Student Hub
*
* See https://support.discord.com/hc/articles/4406046651927
*
* @see {@link https://support.discord.com/hc/articles/4406046651927}
* @unstable This feature is currently not documented by Discord, but has known value
*/
Hub = 'HUB',
@@ -454,8 +470,7 @@ export enum GuildFeature {
/**
* Guild is in a Student Hub
*
* See https://support.discord.com/hc/articles/4406046651927
*
* @see {@link https://support.discord.com/hc/articles/4406046651927}
* @unstable This feature is currently not documented by Discord, but has known value
*/
LinkedToHub = 'LINKED_TO_HUB',
@@ -463,6 +478,10 @@ export enum GuildFeature {
* Guild has enabled Membership Screening
*/
MemberVerificationGateEnabled = 'MEMBER_VERIFICATION_GATE_ENABLED',
/**
* Guild has increased custom soundboard sound slots
*/
MoreSoundboard = 'MORE_SOUNDBOARD',
/**
* Guild has enabled monetization
*
@@ -506,6 +525,10 @@ export enum GuildFeature {
* Guild has enabled role subscriptions
*/
RoleSubscriptionsEnabled = 'ROLE_SUBSCRIPTIONS_ENABLED',
/**
* Guild has created soundboard sounds
*/
Soundboard = 'SOUNDBOARD',
/**
* Guild has enabled ticketed events
*/
@@ -529,7 +552,7 @@ export enum GuildFeature {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-preview-object
* @see {@link https://discord.com/developers/docs/resources/guild#guild-preview-object}
*/
export interface APIGuildPreview {
/**
@@ -543,31 +566,31 @@ export interface APIGuildPreview {
/**
* Icon hash
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
icon: string | null;
/**
* Splash hash
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
splash: string | null;
/**
* Discovery splash hash; only present for guilds with the "DISCOVERABLE" feature
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
discovery_splash: string | null;
/**
* Custom guild emojis
*
* See https://discord.com/developers/docs/resources/emoji#emoji-object
* @see {@link https://discord.com/developers/docs/resources/emoji#emoji-object}
*/
emojis: APIEmoji[];
/**
* Enabled guild features
*
* See https://discord.com/developers/docs/resources/guild#guild-object-guild-features
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object-guild-features}
*/
features: GuildFeature[];
/**
@@ -589,7 +612,7 @@ export interface APIGuildPreview {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-widget-object
* @see {@link https://discord.com/developers/docs/resources/guild#guild-widget-object}
*/
export interface APIGuildWidgetSettings {
/**
@@ -603,7 +626,7 @@ export interface APIGuildWidgetSettings {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-member-object
* @see {@link https://discord.com/developers/docs/resources/guild#guild-member-object}
*/
export interface APIGuildMember {
/**
@@ -611,7 +634,7 @@ export interface APIGuildMember {
*
* **This field won't be included in the member object attached to `MESSAGE_CREATE` and `MESSAGE_UPDATE` gateway events.**
*
* See https://discord.com/developers/docs/resources/user#user-object
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
user: APIUser;
/**
@@ -622,10 +645,14 @@ export interface APIGuildMember {
* The member's guild avatar hash
*/
avatar?: string | null;
/**
* The member's guild banner hash
*/
banner?: string | null;
/**
* Array of role object ids
*
* See https://discord.com/developers/docs/topics/permissions#role-object
* @see {@link https://discord.com/developers/docs/topics/permissions#role-object}
*/
roles: Snowflake[];
/**
@@ -635,7 +662,7 @@ export interface APIGuildMember {
/**
* When the user started boosting the guild
*
* See https://support.discord.com/hc/articles/360028038352
* @see {@link https://support.discord.com/hc/articles/360028038352}
*/
premium_since?: string | null;
/**
@@ -663,13 +690,13 @@ export interface APIGuildMember {
/**
* The data for the member's guild avatar decoration
*
* See https://discord.com/developers/docs/resources/user#avatar-decoration-data-object
* @see {@link https://discord.com/developers/docs/resources/user#avatar-decoration-data-object}
*/
avatar_decoration_data?: APIAvatarDecorationData | null;
}
/**
* https://discord.com/developers/docs/resources/guild#guild-member-object-guild-member-flags
* @see {@link https://discord.com/developers/docs/resources/guild#guild-member-object-guild-member-flags}
*/
export enum GuildMemberFlags {
/**
@@ -681,7 +708,7 @@ export enum GuildMemberFlags {
*/
CompletedOnboarding = 1 << 1,
/**
* Member bypasses guild verification requirements
* Member is exempt from guild verification requirements
*/
BypassesVerification = 1 << 2,
/**
@@ -689,25 +716,34 @@ export enum GuildMemberFlags {
*/
StartedOnboarding = 1 << 3,
/**
* @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
* Member is a guest and can only access the voice channel they were invited to
*/
IsGuest = 1 << 4,
/**
* Member has started Server Guide new member actions
*/
StartedHomeActions = 1 << 5,
/**
* @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
* Member has completed Server Guide new member actions
*/
CompletedHomeActions = 1 << 6,
/**
* @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
* Member's username, display name, or nickname is blocked by AutoMod
*/
AutomodQuarantinedUsernameOrGuildNickname = 1 << 7,
/**
* @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
* @deprecated
* {@link https://github.com/discord/discord-api-docs/pull/7113 | discord-api-docs#7113}
*/
AutomodQuarantinedBio = 1 << 8,
/**
* Member has dismissed the DM settings upsell
*/
DmSettingsUpsellAcknowledged = 1 << 9,
}
/**
* https://discord.com/developers/docs/resources/guild#integration-object
* @see {@link https://discord.com/developers/docs/resources/guild#integration-object}
*/
export interface APIGuildIntegration {
/**
@@ -749,7 +785,7 @@ export interface APIGuildIntegration {
*
* **This field is not provided for `discord` bot integrations.**
*
* See https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors
* @see {@link https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors}
*/
expire_behavior?: IntegrationExpireBehavior;
/**
@@ -763,13 +799,13 @@ export interface APIGuildIntegration {
*
* **Some older integrations may not have an attached user.**
*
* See https://discord.com/developers/docs/resources/user#user-object
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
user?: APIUser;
/**
* Integration account information
*
* See https://discord.com/developers/docs/resources/guild#integration-account-object
* @see {@link https://discord.com/developers/docs/resources/guild#integration-account-object}
*/
account: APIIntegrationAccount;
/**
@@ -793,7 +829,7 @@ export interface APIGuildIntegration {
/**
* The bot/OAuth2 application for discord integrations
*
* See https://discord.com/developers/docs/resources/guild#integration-application-object
* @see {@link https://discord.com/developers/docs/resources/guild#integration-application-object}
*
* **This field is not provided for `discord` bot integrations.**
*/
@@ -807,7 +843,7 @@ export interface APIGuildIntegration {
export type APIGuildIntegrationType = 'discord' | 'guild_subscription' | 'twitch' | 'youtube';
/**
* https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors
* @see {@link https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors}
*/
export enum IntegrationExpireBehavior {
RemoveRole,
@@ -815,7 +851,7 @@ export enum IntegrationExpireBehavior {
}
/**
* https://discord.com/developers/docs/resources/guild#integration-account-object
* @see {@link https://discord.com/developers/docs/resources/guild#integration-account-object}
*/
export interface APIIntegrationAccount {
/**
@@ -829,7 +865,7 @@ export interface APIIntegrationAccount {
}
/**
* https://discord.com/developers/docs/resources/guild#integration-application-object
* @see {@link https://discord.com/developers/docs/resources/guild#integration-application-object}
*/
export interface APIGuildIntegrationApplication {
/**
@@ -843,7 +879,7 @@ export interface APIGuildIntegrationApplication {
/**
* The icon hash of the app
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
icon: string | null;
/**
@@ -853,13 +889,13 @@ export interface APIGuildIntegrationApplication {
/**
* The bot associated with this application
*
* See https://discord.com/developers/docs/resources/user#user-object
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
bot?: APIUser;
}
/**
* https://discord.com/developers/docs/resources/guild#ban-object
* @see {@link https://discord.com/developers/docs/resources/guild#ban-object}
*/
export interface APIBan {
/**
@@ -873,7 +909,7 @@ export interface APIBan {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-widget-object
* @see {@link https://discord.com/developers/docs/resources/guild#guild-widget-object}
*/
export interface APIGuildWidget {
id: Snowflake;
@@ -885,7 +921,7 @@ export interface APIGuildWidget {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-widget-object-example-guild-widget
* @see {@link https://discord.com/developers/docs/resources/guild#guild-widget-object-example-guild-widget}
*/
export interface APIGuildWidgetChannel {
id: Snowflake;
@@ -894,7 +930,7 @@ export interface APIGuildWidgetChannel {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-widget-object-example-guild-widget
* @see {@link https://discord.com/developers/docs/resources/guild#guild-widget-object-example-guild-widget}
*/
export interface APIGuildWidgetMember {
id: string;
@@ -907,7 +943,7 @@ export interface APIGuildWidgetMember {
}
/**
* https://discord.com/developers/docs/resources/guild#get-guild-widget-image-widget-style-options
* @see {@link https://discord.com/developers/docs/resources/guild#get-guild-widget-image-widget-style-options}
*/
export enum GuildWidgetStyle {
/**
@@ -1007,7 +1043,7 @@ export enum MembershipScreeningFieldType {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-onboarding-object-guild-onboarding-structure
* @see {@link https://discord.com/developers/docs/resources/guild#guild-onboarding-object-guild-onboarding-structure}
*/
export interface APIGuildOnboarding {
/**
@@ -1033,7 +1069,7 @@ export interface APIGuildOnboarding {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-onboarding-object-onboarding-prompt-structure
* @see {@link https://discord.com/developers/docs/resources/guild#guild-onboarding-object-onboarding-prompt-structure}
*/
export interface APIGuildOnboardingPrompt {
/**
@@ -1068,7 +1104,7 @@ export interface APIGuildOnboardingPrompt {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-onboarding-object-prompt-option-structure
* @see {@link https://discord.com/developers/docs/resources/guild#guild-onboarding-object-prompt-option-structure}
*/
export interface APIGuildOnboardingPromptOption {
/**
@@ -1098,7 +1134,7 @@ export interface APIGuildOnboardingPromptOption {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-onboarding-object-onboarding-mode
* @see {@link https://discord.com/developers/docs/resources/guild#guild-onboarding-object-onboarding-mode}
*/
export enum GuildOnboardingMode {
/**
@@ -1112,9 +1148,28 @@ export enum GuildOnboardingMode {
}
/**
* https://discord.com/developers/docs/resources/guild#guild-onboarding-object-prompt-types
* @see {@link https://discord.com/developers/docs/resources/guild#guild-onboarding-object-prompt-types}
*/
export enum GuildOnboardingPromptType {
MultipleChoice,
Dropdown,
}
export interface APIIncidentsData {
/**
* When invites get enabled again
*/
invites_disabled_until: string | null;
/**
* When direct messages get enabled again
*/
dms_disabled_until: string | null;
/**
* When the dm spam was detected
*/
dm_spam_detected_at?: string | null;
/**
* When the raid was detected
*/
raid_detected_at?: string | null;
}

View File

@@ -2,7 +2,7 @@ import type { Snowflake } from '../../globals.ts';
import type { APIGuildMember } from './guild.ts';
import type { APIUser } from './user.ts';
interface APIGuildScheduledEventBase<Type extends GuildScheduledEventEntityType> {
export interface APIGuildScheduledEventBase<Type extends GuildScheduledEventEntityType> {
/**
* The id of the guild event
*/
@@ -67,8 +67,120 @@ interface APIGuildScheduledEventBase<Type extends GuildScheduledEventEntityType>
* The cover image of the scheduled event
*/
image?: string | null;
/**
* The definition for how often this event should recur
*/
recurrence_rule: APIGuildScheduledEventRecurrenceRule | null;
}
/**
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-recurrence-rule-object-guild-scheduled-event-recurrence-rule-structure}
*/
export interface APIGuildScheduledEventRecurrenceRule {
/**
* Starting time of the recurrence interval
*/
start: string;
/**
* Ending time of the recurrence interval
*/
end: string | null;
/**
* How often the event occurs
*/
frequency: GuildScheduledEventRecurrenceRuleFrequency;
/**
* The spacing between the events, defined by `frequency`.
* For example, `frequency` of {@link GuildScheduledEventRecurrenceRuleFrequency.Weekly} and an `interval` of `2`
* would be "every-other week"
*/
interval: number;
/**
* Set of specific days within a week for the event to recur on
*/
by_weekday: GuildScheduledEventRecurrenceRuleWeekday[] | null;
/**
* List of specific days within a specific week (1-5) to recur on
*/
by_n_weekday: APIGuildScheduledEventRecurrenceRuleNWeekday[] | null;
/**
* Set of specific months to recur on
*/
by_month: GuildScheduledEventRecurrenceRuleMonth[] | null;
/**
* Set of specific dates within a month to recur on
*/
by_month_day: number[] | null;
/**
* Set of days within a year to recur on (1-364)
*/
by_year_day: number[] | null;
/**
* The total amount of times that the event is allowed to recur before stopping
*/
count: number | null;
}
/**
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-recurrence-rule-object-guild-scheduled-event-recurrence-rule-frequency}
*/
export enum GuildScheduledEventRecurrenceRuleFrequency {
Yearly,
Monthly,
Weekly,
Daily,
}
/**
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-recurrence-rule-object-guild-scheduled-event-recurrence-rule-weekday}
*/
export enum GuildScheduledEventRecurrenceRuleWeekday {
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday,
}
/**
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-recurrence-rule-object-guild-scheduled-event-recurrence-rule-month}
*/
export enum GuildScheduledEventRecurrenceRuleMonth {
January = 1,
February,
March,
April,
May,
June,
July,
August,
September,
October,
November,
December,
}
/**
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-recurrence-rule-object-guild-scheduled-event-recurrence-rule-nweekday-structure}
*/
export interface APIGuildScheduledEventRecurrenceRuleNWeekday {
/**
* The week to reoccur on.
*/
n: 1 | 2 | 3 | 4 | 5;
/**
* The day within the week to reoccur on
*/
day: GuildScheduledEventRecurrenceRuleWeekday;
}
/**
* @deprecated Use {@link APIGuildScheduledEventRecurrenceRuleNWeekday} instead
*/
export type GuildScheduledEventRecurrenceRuleNWeekday = APIGuildScheduledEventRecurrenceRuleNWeekday;
export interface APIStageInstanceGuildScheduledEvent
extends APIGuildScheduledEventBase<GuildScheduledEventEntityType.StageInstance> {
channel_id: Snowflake;
@@ -87,7 +199,7 @@ export interface APIExternalGuildScheduledEvent
}
/**
* https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-structure
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-structure}
*/
export type APIGuildScheduledEvent =
| APIExternalGuildScheduledEvent
@@ -95,7 +207,7 @@ export type APIGuildScheduledEvent =
| APIVoiceGuildScheduledEvent;
/**
* https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-metadata
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-metadata}
*/
export interface APIGuildScheduledEventEntityMetadata {
/**
@@ -105,7 +217,7 @@ export interface APIGuildScheduledEventEntityMetadata {
}
/**
* https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-types
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-types}
*/
export enum GuildScheduledEventEntityType {
StageInstance = 1,
@@ -114,7 +226,7 @@ export enum GuildScheduledEventEntityType {
}
/**
* https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-status
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-status}
*/
export enum GuildScheduledEventStatus {
Scheduled = 1,
@@ -124,7 +236,7 @@ export enum GuildScheduledEventStatus {
}
/**
* https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-privacy-level
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-privacy-level}
*/
export enum GuildScheduledEventPrivacyLevel {
/**
@@ -134,7 +246,7 @@ export enum GuildScheduledEventPrivacyLevel {
}
/**
* https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-user-object-guild-scheduled-event-user-structure
* @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-user-object-guild-scheduled-event-user-structure}
*/
export interface APIGuildScheduledEventUser {
/**

View File

@@ -29,7 +29,7 @@ export * from './_interactions/ping.ts';
export * from './_interactions/responses.ts';
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIInteraction =
| APIApplicationCommandAutocompleteInteraction
@@ -39,7 +39,7 @@ export type APIInteraction =
| APIPingInteraction;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIDMInteraction =
| APIApplicationCommandAutocompleteDMInteraction
@@ -48,7 +48,7 @@ export type APIDMInteraction =
| APIModalSubmitDMInteraction;
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object
* @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object}
*/
export type APIGuildInteraction =
| APIApplicationCommandAutocompleteGuildInteraction

View File

@@ -25,7 +25,7 @@ export type APIInviteGuild = Pick<
>;
/**
* https://discord.com/developers/docs/resources/invite#invite-object
* @see {@link https://discord.com/developers/docs/resources/invite#invite-object}
*/
export interface APIInvite {
/**
@@ -35,37 +35,37 @@ export interface APIInvite {
/**
* The guild this invite is for
*
* See https://discord.com/developers/docs/resources/guild#guild-object
* @see {@link https://discord.com/developers/docs/resources/guild#guild-object}
*/
guild?: APIInviteGuild;
/**
* The channel this invite is for
*
* See https://discord.com/developers/docs/resources/channel#channel-object
* @see {@link https://discord.com/developers/docs/resources/channel#channel-object}
*/
channel: Required<APIPartialChannel> | null;
/**
* The user who created the invite
*
* See https://discord.com/developers/docs/resources/user#user-object
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
inviter?: APIUser;
/**
* The type of target for this voice channel invite
*
* See https://discord.com/developers/docs/resources/invite#invite-object-invite-target-types
* @see {@link https://discord.com/developers/docs/resources/invite#invite-object-invite-target-types}
*/
target_type?: InviteTargetType;
/**
* The user whose stream to display for this voice channel stream invite
*
* See https://discord.com/developers/docs/resources/user#user-object
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
target_user?: APIUser;
/**
* The embedded application to open for this voice channel embedded application invite
*
* See https://discord.com/developers/docs/resources/application#application-object
* @see {@link https://discord.com/developers/docs/resources/application#application-object}
*/
target_application?: Partial<APIApplication>;
/**
@@ -84,6 +84,7 @@ export interface APIInvite {
* The stage instance data if there is a public stage instance in the stage channel this invite is for
*
* @deprecated
* {@link https://github.com/discord/discord-api-docs/pull/4479 | discord-api-docs#4479}
*/
stage_instance?: APIInviteStageInstance;
/**
@@ -97,7 +98,7 @@ export interface APIInvite {
}
/**
* https://discord.com/developers/docs/resources/invite#invite-object-invite-types
* @see {@link https://discord.com/developers/docs/resources/invite#invite-object-invite-types}
*/
export enum InviteType {
Guild,
@@ -106,7 +107,7 @@ export enum InviteType {
}
/**
* https://discord.com/developers/docs/resources/invite#invite-object-invite-target-types
* @see {@link https://discord.com/developers/docs/resources/invite#invite-object-invite-target-types}
*/
export enum InviteTargetType {
Stream = 1,
@@ -114,7 +115,7 @@ export enum InviteTargetType {
}
/**
* https://discord.com/developers/docs/resources/invite#invite-metadata-object
* @see {@link https://discord.com/developers/docs/resources/invite#invite-metadata-object}
*/
export interface APIExtendedInvite extends APIInvite {
/**

View File

@@ -9,9 +9,11 @@ export * from './guild.ts';
export * from './guildScheduledEvent.ts';
export * from './interactions.ts';
export * from './invite.ts';
export * from './monetization.ts';
export * from './oauth2.ts';
export * from './poll.ts';
export * from './permissions.ts';
export * from './poll.ts';
export * from './soundboard.ts';
export * from './stageInstance.ts';
export * from './sticker.ts';
export * from './teams.ts';
@@ -19,4 +21,3 @@ export * from './template.ts';
export * from './user.ts';
export * from './voice.ts';
export * from './webhook.ts';
export * from './monetization.ts';

View File

@@ -1,7 +1,7 @@
import type { Snowflake } from '../../globals.ts';
/**
* https://discord.com/developers/docs/monetization/entitlements#entitlement-object-entitlement-structure
* @see {@link https://discord.com/developers/docs/monetization/entitlements#entitlement-object-entitlement-structure}
*/
export interface APIEntitlement {
/**
@@ -33,13 +33,13 @@ export interface APIEntitlement {
*/
deleted: boolean;
/**
* Start date at which the entitlement is valid. Not present when using test entitlements.
* Start date at which the entitlement is valid.
*/
starts_at?: string;
starts_at: string | null;
/**
* Date at which the entitlement is no longer valid. Not present when using test entitlements.
* Date at which the entitlement is no longer valid.
*/
ends_at?: string;
ends_at: string | null;
/**
* For consumable items, whether or not the entitlement has been consumed
*/
@@ -47,7 +47,7 @@ export interface APIEntitlement {
}
/**
* https://discord.com/developers/docs/monetization/entitlements#entitlement-object-entitlement-types
* @see {@link https://discord.com/developers/docs/monetization/entitlements#entitlement-object-entitlement-types}
*/
export enum EntitlementType {
/**
@@ -85,7 +85,7 @@ export enum EntitlementType {
}
/**
* https://discord.com/developers/docs/monetization/skus#sku-object-sku-structure
* @see {@link https://discord.com/developers/docs/monetization/skus#sku-object-sku-structure}
*/
export interface APISKU {
/**
@@ -111,13 +111,13 @@ export interface APISKU {
/**
* SKU flags combined as a bitfield
*
* See https://en.wikipedia.org/wiki/Bit_field
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
flags: SKUFlags;
}
/**
* https://discord.com/developers/docs/monetization/skus#sku-object-sku-flags
* @see {@link https://discord.com/developers/docs/monetization/skus#sku-object-sku-flags}
*/
export enum SKUFlags {
/**
@@ -135,6 +135,9 @@ export enum SKUFlags {
UserSubscription = 1 << 8,
}
/**
* @see {@link https://discord.com/developers/docs/resources/sku#sku-object-sku-types}
*/
export enum SKUType {
/**
* Durable one-time purchase
@@ -153,3 +156,67 @@ export enum SKUType {
*/
SubscriptionGroup = 6,
}
/**
* @see {@link https://discord.com/developers/docs/resources/subscription#subscription-object}
*/
export interface APISubscription {
/**
* ID of the subscription
*/
id: Snowflake;
/**
* ID of the user who is subscribed
*/
user_id: Snowflake;
/**
* List of SKUs subscribed to
*/
sku_ids: Snowflake[];
/**
* List of entitlements granted for this subscription
*/
entitlement_ids: Snowflake[];
/**
* List of SKUs that this user will be subscribed to at renewal
*/
renewal_sku_ids: Snowflake[] | null;
/**
* Start of the current subscription period
*/
current_period_start: string;
/**
* End of the current subscription period
*/
current_period_end: string;
/**
* Current status of the subscription
*/
status: SubscriptionStatus;
/**
* When the subscription was canceled
*/
canceled_at: string | null;
/**
* ISO3166-1 alpha-2 country code of the payment source used to purchase the subscription. Missing unless queried with a private OAuth scope.
*/
country?: string;
}
/**
* @see {@link https://discord.com/developers/docs/resources/subscription#subscription-statuses}
*/
export enum SubscriptionStatus {
/**
* Subscription is active and scheduled to renew.
*/
Active,
/**
* Subscription is active but will not renew.
*/
Ending,
/**
* Subscription is inactive and not being charged.
*/
Inactive,
}

View File

@@ -8,10 +8,10 @@ export enum OAuth2Scopes {
*/
Bot = 'bot',
/**
* Allows [/users/@me/connections](https://discord.com/developers/docs/resources/user#get-user-connections)
* Allows {@link https://discord.com/developers/docs/resources/user#get-user-connections | `/users/@me/connections`}
* to return linked third-party accounts
*
* See https://discord.com/developers/docs/resources/user#get-user-connections
* @see {@link https://discord.com/developers/docs/resources/user#get-user-connections}
*/
Connections = 'connections',
/**
@@ -19,41 +19,41 @@ export enum OAuth2Scopes {
*/
DMChannelsRead = 'dm_channels.read',
/**
* Enables [/users/@me](https://discord.com/developers/docs/resources/user#get-current-user) to return an `email`
* Enables {@link https://discord.com/developers/docs/resources/user#get-current-user | `/users/@me`} to return an `email`
*
* See https://discord.com/developers/docs/resources/user#get-current-user
* @see {@link https://discord.com/developers/docs/resources/user#get-current-user}
*/
Email = 'email',
/**
* Allows [/users/@me](https://discord.com/developers/docs/resources/user#get-current-user) without `email`
* Allows {@link https://discord.com/developers/docs/resources/user#get-current-user | `/users/@me`} without `email`
*
* See https://discord.com/developers/docs/resources/user#get-current-user
* @see {@link https://discord.com/developers/docs/resources/user#get-current-user}
*/
Identify = 'identify',
/**
* Allows [/users/@me/guilds](https://discord.com/developers/docs/resources/user#get-current-user-guilds)
* Allows {@link https://discord.com/developers/docs/resources/user#get-current-user-guilds | `/users/@me/guilds`}
* to return basic information about all of a user's guilds
*
* See https://discord.com/developers/docs/resources/user#get-current-user-guilds
* @see {@link https://discord.com/developers/docs/resources/user#get-current-user-guilds}
*/
Guilds = 'guilds',
/**
* Allows [/guilds/{guild.id}/members/{user.id}](https://discord.com/developers/docs/resources/guild#add-guild-member)
* Allows {@link https://discord.com/developers/docs/resources/guild#add-guild-member | `/guilds/[guild.id]/members/[user.id]`}
* to be used for joining users to a guild
*
* See https://discord.com/developers/docs/resources/guild#add-guild-member
* @see {@link https://discord.com/developers/docs/resources/guild#add-guild-member}
*/
GuildsJoin = 'guilds.join',
/**
* Allows /users/@me/guilds/{guild.id}/member to return a user's member information in a guild
* Allows /users/\@me/guilds/\{guild.id\}/member to return a user's member information in a guild
*
* See https://discord.com/developers/docs/resources/user#get-current-user-guild-member
* @see {@link https://discord.com/developers/docs/resources/user#get-current-user-guild-member}
*/
GuildsMembersRead = 'guilds.members.read',
/**
* Allows your app to join users to a group dm
*
* See https://discord.com/developers/docs/resources/channel#group-dm-add-recipient
* @see {@link https://discord.com/developers/docs/resources/channel#group-dm-add-recipient}
*/
GroupDMJoins = 'gdm.join',
/**
@@ -108,25 +108,25 @@ export enum OAuth2Scopes {
/**
* Allows your app to update a user's activity - requires Discord approval (NOT REQUIRED FOR GAMESDK ACTIVITY MANAGER)
*
* See https://discord.com/developers/docs/game-sdk/activities
* @see {@link https://discord.com/developers/docs/game-sdk/activities}
*/
ActivitiesWrite = 'activities.write',
/**
* Allows your app to use Application Commands in a guild
*
* See https://discord.com/developers/docs/interactions/application-commands
* @see {@link https://discord.com/developers/docs/interactions/application-commands}
*/
ApplicationsCommands = 'applications.commands',
/**
* Allows your app to update its Application Commands via this bearer token - client credentials grant only
*
* See https://discord.com/developers/docs/interactions/application-commands
* @see {@link https://discord.com/developers/docs/interactions/application-commands}
*/
ApplicationsCommandsUpdate = 'applications.commands.update',
/**
* Allows your app to update permissions for its commands using a Bearer token - client credentials grant only
*
* See https://discord.com/developers/docs/interactions/application-commands
* @see {@link https://discord.com/developers/docs/interactions/application-commands}
*/
ApplicationCommandsPermissionsUpdate = 'applications.commands.permissions.update',
}

View File

@@ -5,7 +5,7 @@
import type { Permissions, Snowflake } from '../../globals.ts';
/**
* https://discord.com/developers/docs/topics/permissions#role-object
* @see {@link https://discord.com/developers/docs/topics/permissions#role-object}
*/
export interface APIRole {
/**
@@ -39,7 +39,7 @@ export interface APIRole {
/**
* Permission bit set
*
* See https://en.wikipedia.org/wiki/Bit_field
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
permissions: Permissions;
/**
@@ -61,7 +61,7 @@ export interface APIRole {
}
/**
* https://discord.com/developers/docs/topics/permissions#role-object-role-tags-structure
* @see {@link https://discord.com/developers/docs/topics/permissions#role-object-role-tags-structure}
*/
export interface APIRoleTags {
/**
@@ -91,7 +91,7 @@ export interface APIRoleTags {
}
/**
* https://discord.com/developers/docs/topics/permissions#role-object-role-flags
* @see {@link https://discord.com/developers/docs/topics/permissions#role-object-role-flags}
*/
export enum RoleFlags {
/**

View File

@@ -5,7 +5,7 @@
import type { APIPartialEmoji } from './emoji.ts';
/**
* https://discord.com/developers/docs/resources/poll#poll-object-poll-object-structure
* @see {@link https://discord.com/developers/docs/resources/poll#poll-object-poll-object-structure}
*/
export interface APIPoll {
/**
@@ -22,10 +22,14 @@ export interface APIPoll {
expiry: string;
/**
* Whether a user can select multiple answers
*
* @defaultValue `false`
*/
allow_multiselect: boolean;
/**
* The layout type of the poll
*
* @defaultValue `PollLayoutType.Default`
*/
layout_type: PollLayoutType;
/**
@@ -35,7 +39,7 @@ export interface APIPoll {
}
/**
* https://discord.com/developers/docs/resources/poll#layout-type
* @see {@link https://discord.com/developers/docs/resources/poll#layout-type}
*/
export enum PollLayoutType {
/**
@@ -45,7 +49,7 @@ export enum PollLayoutType {
}
/**
* https://discord.com/developers/docs/resources/poll#poll-media-object-poll-media-object-structure
* @see {@link https://discord.com/developers/docs/resources/poll#poll-media-object-poll-media-object-structure}
*/
export interface APIPollMedia {
/**
@@ -61,7 +65,7 @@ export interface APIPollMedia {
}
/**
* https://discord.com/developers/docs/resources/poll#poll-answer-object-poll-answer-object-structure
* @see {@link https://discord.com/developers/docs/resources/poll#poll-answer-object-poll-answer-object-structure}
*/
export interface APIPollAnswer {
/**
@@ -75,7 +79,7 @@ export interface APIPollAnswer {
}
/**
* https://discord.com/developers/docs/resources/poll#poll-results-object-poll-results-object-structure
* @see {@link https://discord.com/developers/docs/resources/poll#poll-results-object-poll-results-object-structure}
*/
export interface APIPollResults {
/**
@@ -89,7 +93,7 @@ export interface APIPollResults {
}
/**
* https://discord.com/developers/docs/resources/poll#poll-results-object-poll-answer-count-object-structure
* @see {@link https://discord.com/developers/docs/resources/poll#poll-results-object-poll-answer-count-object-structure}
*/
export interface APIPollAnswerCount {
/**

44
deno/payloads/v9/soundboard.ts generated Normal file
View File

@@ -0,0 +1,44 @@
/**
* Types extracted from https://discord.com/developers/docs/resources/soundboard
*/
import type { Snowflake } from '../../globals.ts';
import type { APIUser } from './user.ts';
/**
* @see {@link https://discord.com/developers/docs/resources/soundboard#soundboard-sound-object}
*/
export interface APISoundboardSound {
/**
* The name of this sound
*/
name: string;
/**
* The id of this sound
*/
sound_id: Snowflake;
/**
* The volume of this sound, from 0 to 1
*/
volume: number;
/**
* The id of this sound's custom emoji
*/
emoji_id: Snowflake | null;
/**
* The unicode character of this sound's standard emoji
*/
emoji_name: string | null;
/**
* The id of the guild that this sound is in
*/
guild_id?: Snowflake;
/**
* Whether this sound can be used (for guild sounds), may be false due to loss of Server Boosts
*/
available: boolean;
/**
* The user who created this sound
*/
user?: APIUser;
}

View File

@@ -2,7 +2,7 @@ import type { Snowflake } from '../../globals.ts';
import type { APIGuildMember } from './guild.ts';
/**
* https://discord.com/developers/docs/resources/stage-instance#stage-instance-object
* @see {@link https://discord.com/developers/docs/resources/stage-instance#stage-instance-object}
*/
export interface APIStageInstance {
/**
@@ -24,13 +24,14 @@ export interface APIStageInstance {
/**
* The privacy level of the stage instance
*
* See https://discord.com/developers/docs/resources/stage-instance#stage-instance-object-privacy-level
* @see {@link https://discord.com/developers/docs/resources/stage-instance#stage-instance-object-privacy-level}
*/
privacy_level: StageInstancePrivacyLevel;
/**
* Whether or not stage discovery is disabled
*
* @deprecated
* {@link https://github.com/discord/discord-api-docs/pull/4296 | discord-api-docs#4296}
*/
discoverable_disabled: boolean;
/**
@@ -40,13 +41,14 @@ export interface APIStageInstance {
}
/**
* https://discord.com/developers/docs/resources/stage-instance#stage-instance-object-privacy-level
* @see {@link https://discord.com/developers/docs/resources/stage-instance#stage-instance-object-privacy-level}
*/
export enum StageInstancePrivacyLevel {
/**
* The stage instance is visible publicly, such as on stage discovery
*
* @deprecated
* {@link https://github.com/discord/discord-api-docs/pull/4296 | discord-api-docs#4296}
*/
Public = 1,
/**
@@ -56,9 +58,9 @@ export enum StageInstancePrivacyLevel {
}
/**
* https://discord.com/developers/docs/resources/invite#invite-stage-instance-object-invite-stage-instance-structure
*
* @see {@link https://discord.com/developers/docs/resources/invite#invite-stage-instance-object-invite-stage-instance-structure}
* @deprecated
* {@link https://github.com/discord/discord-api-docs/pull/4479 | discord-api-docs#4479}
*/
export interface APIInviteStageInstance {
/**
@@ -76,7 +78,7 @@ export interface APIInviteStageInstance {
/**
* The members speaking in the stage
*
* See https://discord.com/developers/docs/resources/guild#guild-member-object-guild-member-structure
* @see {@link https://discord.com/developers/docs/resources/guild#guild-member-object-guild-member-structure}
*/
members: APIGuildMember[];
}

View File

@@ -6,7 +6,7 @@ import type { Snowflake } from '../../globals.ts';
import type { APIUser } from './user.ts';
/**
* https://discord.com/developers/docs/resources/sticker#sticker-object
* @see {@link https://discord.com/developers/docs/resources/sticker#sticker-object}
*/
export interface APISticker {
/**
@@ -32,19 +32,20 @@ export interface APISticker {
/**
* Previously the sticker asset hash, now an empty string
*
* @deprecated
* @deprecated This field is no longer documented by Discord and will be removed in v11
* @unstable This field is no longer documented by Discord and will be removed in v11
*/
asset?: '';
/**
* Type of sticker
*
* See https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-types
* @see {@link https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-types}
*/
type: StickerType;
/**
* Type of sticker format
*
* See https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-format-types
* @see {@link https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-format-types}
*/
format_type: StickerFormatType;
/**
@@ -66,7 +67,7 @@ export interface APISticker {
}
/**
* https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-types
* @see {@link https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-types}
*/
export enum StickerType {
/**
@@ -80,7 +81,7 @@ export enum StickerType {
}
/**
* https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-format-types
* @see {@link https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-format-types}
*/
export enum StickerFormatType {
PNG = 1,
@@ -90,12 +91,12 @@ export enum StickerFormatType {
}
/**
* https://discord.com/developers/docs/resources/sticker#sticker-item-object
* @see {@link https://discord.com/developers/docs/resources/sticker#sticker-item-object}
*/
export type APIStickerItem = Pick<APISticker, 'format_type' | 'id' | 'name'>;
/**
* https://discord.com/developers/docs/resources/sticker#sticker-pack-object
* @see {@link https://discord.com/developers/docs/resources/sticker#sticker-pack-object}
*/
export interface APIStickerPack {
/**

View File

@@ -6,7 +6,7 @@ import type { Snowflake } from '../../globals.ts';
import type { APIUser } from './user.ts';
/**
* https://discord.com/developers/docs/topics/teams#data-models-team-object
* @see {@link https://discord.com/developers/docs/topics/teams#data-models-team-object}
*/
export interface APITeam {
/**
@@ -32,19 +32,19 @@ export interface APITeam {
}
/**
* https://discord.com/developers/docs/topics/teams#data-models-team-member-object
* @see {@link https://discord.com/developers/docs/topics/teams#data-models-team-member-object}
*/
export interface APITeamMember {
/**
* The user's membership state on the team
*
* See https://discord.com/developers/docs/topics/teams#data-models-membership-state-enum
* @see {@link https://discord.com/developers/docs/topics/teams#data-models-membership-state-enum}
*/
membership_state: TeamMemberMembershipState;
/**
* Will always be `["*"]`
*
* @deprecated Use `role` instead
* @deprecated Use {@link APITeamMember.role} instead.
*/
permissions: ['*'];
/**
@@ -54,19 +54,19 @@ export interface APITeamMember {
/**
* The avatar, discriminator, id, and username of the user
*
* See https://discord.com/developers/docs/resources/user#user-object
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
user: APIUser;
/**
* The user's role in the team.
*
* See https://discord.com/developers/docs/topics/teams#team-member-roles
* @see {@link https://discord.com/developers/docs/topics/teams#team-member-roles}
*/
role: TeamMemberRole;
}
/**
* https://discord.com/developers/docs/topics/teams#data-models-membership-state-enum
* @see {@link https://discord.com/developers/docs/topics/teams#data-models-membership-state-enum}
*/
export enum TeamMemberMembershipState {
Invited = 1,
@@ -74,7 +74,7 @@ export enum TeamMemberMembershipState {
}
/**
* https://discord.com/developers/docs/topics/teams#team-member-roles-team-member-role-types
* @see {@link https://discord.com/developers/docs/topics/teams#team-member-roles-team-member-role-types}
*/
export enum TeamMemberRole {
Admin = 'admin',

View File

@@ -3,11 +3,12 @@
*/
import type { Snowflake } from '../../globals.ts';
import type { Locale } from '../../rest/common.ts';
import type { RESTPostAPIGuildsJSONBody } from '../../rest/v9/mod.ts';
import type { APIUser } from './user.ts';
/**
* https://discord.com/developers/docs/resources/guild-template#template-object
* @see {@link https://discord.com/developers/docs/resources/guild-template#template-object}
*/
export interface APITemplate {
/**
@@ -33,7 +34,7 @@ export interface APITemplate {
/**
* The user who created the template
*
* See https://discord.com/developers/docs/resources/user#user-object
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
creator: APIUser;
/**
@@ -60,6 +61,6 @@ export interface APITemplate {
export interface APITemplateSerializedSourceGuild extends Omit<RESTPostAPIGuildsJSONBody, 'icon'> {
description: string | null;
preferred_locale: string;
preferred_locale: Locale;
icon_hash: string | null;
}

View File

@@ -6,7 +6,7 @@ import type { Snowflake } from '../../globals.ts';
import type { APIGuildIntegration } from './guild.ts';
/**
* https://discord.com/developers/docs/resources/user#user-object
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
export interface APIUser {
/**
@@ -28,7 +28,7 @@ export interface APIUser {
/**
* The user's avatar hash
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
avatar: string | null;
/**
@@ -46,7 +46,7 @@ export interface APIUser {
/**
* The user's banner hash
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
banner?: string | null;
/**
@@ -68,39 +68,38 @@ export interface APIUser {
/**
* The flags on a user's account
*
* See https://discord.com/developers/docs/resources/user#user-object-user-flags
* @see {@link https://discord.com/developers/docs/resources/user#user-object-user-flags}
*/
flags?: UserFlags;
/**
* The type of Nitro subscription on a user's account
*
* See https://discord.com/developers/docs/resources/user#user-object-premium-types
* @see {@link https://discord.com/developers/docs/resources/user#user-object-premium-types}
*/
premium_type?: UserPremiumType;
/**
* The public flags on a user's account
*
* See https://discord.com/developers/docs/resources/user#user-object-user-flags
* @see {@link https://discord.com/developers/docs/resources/user#user-object-user-flags}
*/
public_flags?: UserFlags;
/**
* The user's avatar decoration hash
*
* See https://discord.com/developers/docs/reference#image-formatting
*
* @deprecated Use `avatar_decoration_data` instead
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
* @deprecated Use {@link APIUser.avatar_decoration_data} instead
*/
avatar_decoration?: string | null;
/**
* The data for the user's avatar decoration
*
* See https://discord.com/developers/docs/resources/user#avatar-decoration-data-object
* @see {@link https://discord.com/developers/docs/resources/user#avatar-decoration-data-object}
*/
avatar_decoration_data?: APIAvatarDecorationData | null;
}
/**
* https://discord.com/developers/docs/resources/user#user-object-user-flags
* @see {@link https://discord.com/developers/docs/resources/user#user-object-user-flags}
*/
export enum UserFlags {
/**
@@ -144,7 +143,7 @@ export enum UserFlags {
*/
PremiumEarlySupporter = 1 << 9,
/**
* User is a [team](https://discord.com/developers/docs/topics/teams)
* User is a {@link https://discord.com/developers/docs/topics/teams | team}
*/
TeamPseudoUser = 1 << 10,
/**
@@ -168,7 +167,7 @@ export enum UserFlags {
*/
CertifiedModerator = 1 << 18,
/**
* Bot uses only [HTTP interactions](https://discord.com/developers/docs/interactions/receiving-and-responding#receiving-an-interaction) and is shown in the online member list
* Bot uses only {@link https://discord.com/developers/docs/interactions/receiving-and-responding#receiving-an-interaction | HTTP interactions} and is shown in the online member list
*/
BotHTTPInteractions = 1 << 19,
/**
@@ -182,36 +181,36 @@ export enum UserFlags {
*/
DisablePremium = 1 << 21,
/**
* User is an [Active Developer](https://support-dev.discord.com/hc/articles/10113997751447)
* User is an {@link https://support-dev.discord.com/hc/articles/10113997751447 | Active Developer}
*/
ActiveDeveloper = 1 << 22,
/**
* User's account has been [quarantined](https://support.discord.com/hc/articles/6461420677527) based on recent activity
* User's account has been {@link https://support.discord.com/hc/articles/6461420677527 | quarantined} based on recent activity
*
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
* @privateRemarks
*
* This value would be 1 << 44, but bit shifting above 1 << 30 requires bigints
* This value would be `1 << 44`, but bit shifting above `1 << 30` requires bigints
*/
Quarantined = 17_592_186_044_416,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
* @privateRemarks
*
* This value would be 1 << 50, but bit shifting above 1 << 30 requires bigints
* This value would be `1 << 50`, but bit shifting above `1 << 30` requires bigints
*/
Collaborator = 1_125_899_906_842_624,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
* @privateRemarks
*
* This value would be 1 << 51, but bit shifting above 1 << 30 requires bigints
* This value would be `1 << 51`, but bit shifting above `1 << 30` requires bigints
*/
RestrictedCollaborator = 2_251_799_813_685_248,
}
/**
* https://discord.com/developers/docs/resources/user#user-object-premium-types
* @see {@link https://discord.com/developers/docs/resources/user#user-object-premium-types}
*/
export enum UserPremiumType {
None,
@@ -221,7 +220,7 @@ export enum UserPremiumType {
}
/**
* https://discord.com/developers/docs/resources/user#connection-object
* @see {@link https://discord.com/developers/docs/resources/user#connection-object}
*/
export interface APIConnection {
/**
@@ -235,7 +234,7 @@ export interface APIConnection {
/**
* The service of the connection
*
* See https://discord.com/developers/docs/resources/user#connection-object-services
* @see {@link https://discord.com/developers/docs/resources/user#connection-object-services}
*/
type: ConnectionService;
/**
@@ -245,7 +244,7 @@ export interface APIConnection {
/**
* An array of partial server integrations
*
* See https://discord.com/developers/docs/resources/guild#integration-object
* @see {@link https://discord.com/developers/docs/resources/guild#integration-object}
*/
integrations?: Partial<APIGuildIntegration>[];
/**
@@ -267,14 +266,17 @@ export interface APIConnection {
/**
* Visibility of this connection
*
* See https://discord.com/developers/docs/resources/user#connection-object-visibility-types
* @see {@link https://discord.com/developers/docs/resources/user#connection-object-visibility-types}
*/
visibility: ConnectionVisibility;
}
export enum ConnectionService {
AmazonMusic = 'amazon-music',
BattleNet = 'battlenet',
Bluesky = 'bluesky',
BungieNet = 'bungie',
Crunchyroll = 'crunchyroll',
Domain = 'domain',
eBay = 'ebay',
EpicGames = 'epicgames',
@@ -282,10 +284,12 @@ export enum ConnectionService {
GitHub = 'github',
Instagram = 'instagram',
LeagueOfLegends = 'leagueoflegends',
Mastodon = 'mastodon',
PayPal = 'paypal',
PlayStationNetwork = 'playstation',
Reddit = 'reddit',
RiotGames = 'riotgames',
PayPal = 'paypal',
Roblox = 'roblox',
Spotify = 'spotify',
Skype = 'skype',
Steam = 'steam',
@@ -293,7 +297,7 @@ export enum ConnectionService {
Twitch = 'twitch',
X = 'twitter',
/**
* @deprecated This is the old name for {@apilink ConnectionService#X}
* @deprecated This is the old name for {@link ConnectionService.X}
*/
Twitter = X,
Xbox = 'xbox',
@@ -312,7 +316,7 @@ export enum ConnectionVisibility {
}
/**
* https://discord.com/developers/docs/resources/user#application-role-connection-object-application-role-connection-structure
* @see {@link https://discord.com/developers/docs/resources/user#application-role-connection-object-application-role-connection-structure}
*/
export interface APIApplicationRoleConnection {
/**
@@ -330,13 +334,13 @@ export interface APIApplicationRoleConnection {
}
/**
* https://discord.com/developers/docs/resources/user#avatar-decoration-data-object
* @see {@link https://discord.com/developers/docs/resources/user#avatar-decoration-data-object}
*/
export interface APIAvatarDecorationData {
/**
* The avatar decoration hash
*
* See https://discord.com/developers/docs/reference#image-formatting
* @see {@link https://discord.com/developers/docs/reference#image-formatting}
*/
asset: string;
/**

View File

@@ -6,9 +6,15 @@ import type { Snowflake } from '../../globals.ts';
import type { APIGuildMember } from './guild.ts';
/**
* https://discord.com/developers/docs/resources/voice#voice-state-object
* @see {@link https://discord.com/developers/docs/resources/voice#voice-state-object}
* @deprecated This is deprecated, use {@link APIVoiceState}
*/
export interface GatewayVoiceState {
export type GatewayVoiceState = APIVoiceState;
/**
* @see {@link https://discord.com/developers/docs/resources/voice#voice-state-object}
*/
export interface APIVoiceState {
/**
* The guild id this voice state is for
*/
@@ -24,7 +30,7 @@ export interface GatewayVoiceState {
/**
* The guild member this voice state is for
*
* See https://discord.com/developers/docs/resources/guild#guild-member-object
* @see {@link https://discord.com/developers/docs/resources/guild#guild-member-object}
*/
member?: APIGuildMember;
/**
@@ -66,7 +72,7 @@ export interface GatewayVoiceState {
}
/**
* https://discord.com/developers/docs/resources/voice#voice-region-object
* @see {@link https://discord.com/developers/docs/resources/voice#voice-region-object}
*/
export interface APIVoiceRegion {
/**

View File

@@ -3,10 +3,18 @@
*/
import type { Snowflake } from '../../globals.ts';
import type { APIPartialChannel, APIPartialGuild, APIUser } from './mod.ts';
import type {
APIEntitlement,
APIGuild,
APIPartialChannel,
APIPartialGuild,
APIUser,
ApplicationIntegrationType,
OAuth2Scopes,
} from './mod.ts';
/**
* https://discord.com/developers/docs/resources/webhook#webhook-object
* @see {@link https://discord.com/developers/docs/resources/webhook#webhook-object}
*/
export interface APIWebhook {
/**
@@ -16,7 +24,7 @@ export interface APIWebhook {
/**
* The type of the webhook
*
* See https://discord.com/developers/docs/resources/webhook#webhook-object-webhook-types
* @see {@link https://discord.com/developers/docs/resources/webhook#webhook-object-webhook-types}
*/
type: WebhookType;
/**
@@ -30,7 +38,7 @@ export interface APIWebhook {
/**
* The user this webhook was created by (not returned when getting a webhook with its token)
*
* See https://discord.com/developers/docs/resources/user#user-object
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
user?: APIUser;
/**
@@ -63,6 +71,116 @@ export interface APIWebhook {
url?: string;
}
/**
* @see {@link https://discord.com/developers/docs/events/webhook-events#webhook-event-payloads}
*/
export type APIWebhookEvent =
| APIWebhookEventBase<ApplicationWebhookType.Event, APIWebhookEventBody>
| APIWebhookEventBase<ApplicationWebhookType.Ping, never>;
/**
* @see {@link https://discord.com/developers/docs/events/webhook-events#event-body-object}
*/
export type APIWebhookEventBody =
| APIWebhookEventEventBase<
ApplicationWebhookEventType.ApplicationAuthorized,
APIWebhookEventApplicationAuthorizedData
>
| APIWebhookEventEventBase<ApplicationWebhookEventType.EntitlementCreate, APIWebhookEventEntitlementCreateData>
| APIWebhookEventEventBase<ApplicationWebhookEventType.QuestUserEnrollment, APIWebhookEventQuestUserEnrollmentData>;
export interface APIWebhookEventApplicationAuthorizedData {
/**
* Installation context for the authorization. Either guild (`0`) if installed to a server or user (`1`) if installed to a user's account
*/
integration_type?: ApplicationIntegrationType;
/**
* User who authorized the app
*/
user: APIUser;
/**
* List of scopes the user authorized
*/
scopes: OAuth2Scopes[];
/**
* Server which app was authorized for (when integration type is `0`)
*/
guild?: APIGuild;
}
export type APIWebhookEventEntitlementCreateData = APIEntitlement;
export type APIWebhookEventQuestUserEnrollmentData = never;
export interface APIWebhookEventBase<Type extends ApplicationWebhookType, Event> {
/**
* Version scheme for the webhook event. Currently always `1`
*/
version: 1;
/**
* ID of your app
*/
application_id: Snowflake;
/**
* Type of webhook
*/
type: Type;
/**
* Event data payload
*/
event: Event;
}
/**
* @see {@link https://discord.com/developers/docs/events/webhook-events#webhook-types}
*/
export enum ApplicationWebhookType {
/**
* PING event sent to verify your Webhook Event URL is active
*/
Ping,
/**
* Webhook event (details for event in event body object)
*/
Event,
}
export interface APIWebhookEventEventBase<Type extends ApplicationWebhookEventType, Data> {
/**
* Event type
*/
type: Type;
/**
* Timestamp of when the event occurred in ISO8601 format
*/
timestamp: string;
/**
* Data for the event. The shape depends on the event type
*/
data: Data;
}
/**
* @see {@link https://discord.com/developers/docs/events/webhook-events#event-types}
*/
export enum ApplicationWebhookEventType {
/**
* Sent when an app was authorized by a user to a server or their account
*/
ApplicationAuthorized = 'APPLICATION_AUTHORIZED',
/**
* Entitlement was created
*/
EntitlementCreate = 'ENTITLEMENT_CREATE',
/**
* User was added to a Quest (currently unavailable)
*/
QuestUserEnrollment = 'QUEST_USER_ENROLLMENT',
}
/**
* @see {@link https://discord.com/developers/docs/resources/webhook#webhook-object-webhook-types}
*/
export enum WebhookType {
/**
* Incoming Webhooks can post messages to channels with a generated token

30
deno/rest/common.ts generated
View File

@@ -1,5 +1,5 @@
/**
* https://discord.com/developers/docs/topics/opcodes-and-status-codes#json-json-error-codes
* @see {@link https://discord.com/developers/docs/topics/opcodes-and-status-codes#json-json-error-codes}
*/
export enum RESTJSONErrorCodes {
GeneralError,
@@ -22,6 +22,7 @@ export enum RESTJSONErrorCodes {
UnknownWebhookService,
UnknownSession = 10_020,
UnknownAsset,
UnknownBan = 10_026,
UnknownSKU,
@@ -43,8 +44,8 @@ export enum RESTJSONErrorCodes {
UnknownDiscoverableServerCategory = 10_059,
UnknownSticker,
UnknownInteraction = 10_062,
UnknownStickerPack,
UnknownInteraction,
UnknownApplicationCommand,
UnknownVoiceState = 10_065,
@@ -57,6 +58,8 @@ export enum RESTJSONErrorCodes {
UnknownTag = 10_087,
UnknownSound = 10_097,
BotsCannotUseThisEndpoint = 20_001,
OnlyBotsCanUseThisEndpoint,
@@ -115,7 +118,8 @@ export enum RESTJSONErrorCodes {
MaximumNumberOfGuildWidgetSettingsUpdatesHasBeenReached = 30_042,
MaximumNumberOfEditsToMessagesOlderThanOneHourReached = 30_046,
MaximumNumberOfSoundboardSoundsReached = 30_045,
MaximumNumberOfEditsToMessagesOlderThanOneHourReached,
MaximumNumberOfPinnedThreadsInForumHasBeenReached,
MaximumNumberOfTagsInForumHasBeenReached,
@@ -138,6 +142,9 @@ export enum RESTJSONErrorCodes {
ConnectionHasBeenRevoked = 40_012,
OnlyConsumableSKUsCanBeConsumed = 40_018,
YouCanOnlyDeleteSandboxEntitlements,
TargetUserIsNotConnectedToVoice = 40_032,
ThisMessageWasAlreadyCrossposted,
@@ -156,6 +163,8 @@ export enum RESTJSONErrorCodes {
AnEntitlementHasAlreadyBeenGrantedForThisResource = 40_074,
ThisInteractionHasHitTheMaximumNumberOfFollowUpMessages = 40_094,
CloudflareIsBlockingYourRequest = 40_333,
MissingAccess = 50_001,
@@ -229,6 +238,10 @@ export enum RESTJSONErrorCodes {
ServerNeedsMoreBoostsToPerformThisAction = 50_101,
RequestBodyContainsInvalidJSON = 50_109,
ProvidedFileIsInvalid,
ProvidedFileTypeIsInvalid = 50_123,
ProvidedFileDurationExceedsMaximumLength,
OwnerCannotBePendingMember = 50_131,
OwnershipCannotBeMovedToABotUser,
@@ -239,6 +252,8 @@ export enum RESTJSONErrorCodes {
CannotConvertBetweenPremiumEmojiAndNormalEmoji,
UploadedFileNotFound,
SpecifiedEmojiIsInvalid = 50_151,
VoiceMessagesDoNotSupportAdditionalContent = 50_159,
VoiceMessagesMustHaveASingleAudioAttachment,
VoiceMessagesMustHaveSupportingMetadata,
@@ -249,6 +264,8 @@ export enum RESTJSONErrorCodes {
TheUserAccountMustFirstBeVerified = 50_178,
ProvidedFileDoesNotHaveAValidDuration = 50_192,
YouDoNotHavePermissionToSendThisSticker = 50_600,
TwoFactorAuthenticationIsRequired = 60_003,
@@ -308,7 +325,7 @@ export enum RESTJSONErrorCodes {
}
/**
* https://discord.com/developers/docs/reference#locales
* @see {@link https://discord.com/developers/docs/reference#locales}
*/
export enum Locale {
Indonesian = 'id',
@@ -345,4 +362,7 @@ export enum Locale {
Vietnamese = 'vi',
}
/**
* @deprecated Use {@link Locale} instead.
*/
export type LocaleString = `${Locale}`;

Some files were not shown because too many files have changed in this diff Show More