Compare commits

...

67 Commits

Author SHA1 Message Date
renovate[bot]
d96bfd3eea chore(deps): update commitlint monorepo to v21 2026-05-15 04:53:10 +00:00
renovate[bot]
5cd0686f1a chore(deps): update eslint/prettier to v8.59.3 (#1658)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-15 04:52:21 +00:00
renovate[bot]
391d0d4454 chore(deps): lock file maintenance (#1652)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-08 18:17:09 +00:00
renovate[bot]
2d3fc09ade chore(deps): update patch/minor dependencies (#1650)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-08 12:43:00 +00:00
renovate[bot]
3637535d28 chore(deps): update eslint/prettier to v8.59.2 (#1649)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-08 08:58:45 +00:00
renovate[bot]
14bca2694d chore(deps): lock file maintenance (#1647)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-01 22:30:13 +00:00
renovate[bot]
1e8075e41d chore(deps): update patch/minor dependencies (#1645)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-01 16:55:24 +00:00
renovate[bot]
bb1f5dfe5e chore(deps): update eslint/prettier to v8.59.1 (#1644)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-01 12:53:16 +00:00
renovate[bot]
b9df5c2d02 chore(deps): lock file maintenance (#1642)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-24 14:04:50 +00:00
renovate[bot]
812fbbe688 chore(deps): update eslint/prettier (#1641)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-24 11:36:29 +00:00
renovate[bot]
edf9a9651b chore(deps): update patch/minor dependencies (#1639)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-24 06:03:01 +00:00
renovate[bot]
9c2f1746b1 chore(deps): lock file maintenance (#1637)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-17 17:54:55 +00:00
renovate[bot]
f8f039867e chore(deps): update patch/minor dependencies (#1634)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-17 15:04:30 +00:00
renovate[bot]
8a4a6d1e43 chore(deps): update eslint/prettier (#1633)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-17 05:51:59 +00:00
discord-js-bot[bot]
2e5e31b4c4 chore(release): 0.38.47 🎉 (#1632)
Build ran for 0bd00dd111

Co-authored-by: discord-js[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-16 17:02:50 +03:00
Kshitij Anurag
0bd00dd111 refactor(RESTJSONErrorCodes): rename ServerSendRateLimit to ServerWriteRateLimit (#1629) 2026-04-16 13:42:53 +03:00
Almeida
d5dc47a36c feat(RESTJSONErrorCodes): rename ChannelSendRateLimit to ChannelWriteRateLimit (#1627)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 03:12:36 +03:00
Almeida
09c71fe9d1 feat(RESTJSONErrorCodes): add CannotForwardMessageWithUnreadableContent (#1628) 2026-04-15 01:28:24 +03:00
discord-js-bot[bot]
3691d77da3 chore(release): 0.38.46 🎉 (#1624)
Build ran for bece6b84ee

Co-authored-by: discord-js[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-13 17:01:14 +03:00
renovate[bot]
bece6b84ee chore(deps): lock file maintenance (#1623)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-10 14:47:51 +00:00
renovate[bot]
e9e7f5c24f chore(deps): update eslint/prettier (#1621)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-10 09:17:19 +00:00
renovate[bot]
e1b27cd5a9 chore(deps): update patch/minor dependencies (#1622)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-10 05:22:58 +00:00
Almeida
5acf5c5989 feat(UserFlags): mark ActiveDeveloper as deprecated (#1604) 2026-04-09 18:27:24 +03:00
Kshitij Anurag
d165766302 fix: APIUser global_name description (#1586) 2026-04-09 18:27:15 +03:00
Kshitij Anurag
702e541bf0 feat(Message): more attachment and embed fields and flags (#1609) 2026-04-09 18:25:47 +03:00
Almeida
27ef064f92 fix(Webhook): add delete message query, fix thread_id type (#1611)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 18:23:34 +03:00
Almeida
c21ae24f7a fix(ReactionType): rename Super to Burst (#1613)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 18:23:06 +03:00
Almeida
b2a8b740e5 fix(Gateway): correct scheduled event user remove dispatch type (#1614)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 18:22:45 +03:00
Almeida
19d04c00c9 fix(Channel): add applied_tags to forum thread form data body (#1615)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 18:22:25 +03:00
discord-js-bot[bot]
2802117c0b chore(release): 0.38.45 🎉 (#1620)
Co-authored-by: discord-js[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-09 16:58:03 +03:00
Kshitij Anurag
487c3b7980 docs(Message): update description for attachments (#1618) 2026-04-08 15:29:49 +01:00
Almeida
3a296fa929 fix(User): use Snowflake for DM recipient_id (#1612)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 19:48:05 +03:00
Almeida
1506ff0d2b fix(OAuth2): include flags in current application result (#1610)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 19:47:35 +03:00
renovate[bot]
d4248babd2 chore(deps): lock file maintenance (#1608)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-03 13:45:07 +00:00
renovate[bot]
07d7b05cde chore(deps): update patch/minor dependencies (#1607)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-03 09:23:04 +00:00
renovate[bot]
69bbc57575 chore(deps): update eslint/prettier to v8.58.0 (#1606)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-03 06:03:40 +00:00
discord-js-bot[bot]
6a29982d09 chore(release): 0.38.44 🎉 (#1605)
Build ran for ae75ee7863

Co-authored-by: discord-js[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-02 16:28:30 +03:00
dependabot[bot]
ae75ee7863 chore(deps): bump path-to-regexp from 0.1.12 to 0.1.13 in /website (#1600)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 02:29:33 +03:00
dependabot[bot]
763bfc810c chore(deps): bump brace-expansion in /website (#1601)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 02:29:22 +03:00
Almeida
c76a1bc372 fix(APIApplication): make event_webhooks_status optional (#1603) 2026-03-31 02:28:58 +03:00
discord-js-bot[bot]
afe009d84e chore(release): 0.38.43 🎉 (#1602)
Co-authored-by: discord-js[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-29 00:52:48 +02:00
Vlad Frangu
d4fc31de65 ci: fix token perms 2026-03-29 00:46:32 +02:00
Almeida
0a514f68d9 docs: wrap @everyone mention in codeblock (#1599) 2026-03-27 18:10:29 +02:00
Vlad Frangu
308308dfab chore: forgot to update tsconfig with types 2026-03-27 12:33:26 +02:00
renovate[bot]
ca423b001a chore(deps): update dependency typescript to v6 (#1594)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Vlad Frangu <me@vladfrangu.dev>
2026-03-27 12:30:08 +02:00
dependabot[bot]
3bc73f8b4f chore(deps): bump node-forge from 1.3.3 to 1.4.0 in /website (#1595)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-27 12:16:20 +02:00
dependabot[bot]
96a34ba74b chore(deps): bump handlebars from 4.7.8 to 4.7.9 (#1596)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-27 12:13:48 +02:00
dependabot[bot]
b63fafdfd4 chore(deps): bump picomatch from 2.3.1 to 2.3.2 (#1590)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-27 12:13:34 +02:00
renovate[bot]
1c722899a1 chore(deps): update actions/create-github-app-token action to v3 (#1593)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-27 12:12:58 +02:00
renovate[bot]
c5aa81d971 chore(deps): lock file maintenance (#1597)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-27 12:11:54 +02:00
renovate[bot]
ae938673f9 chore(deps): update patch/minor dependencies (#1592)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-27 08:54:58 +00:00
renovate[bot]
93e4c79e2e chore(deps): update eslint/prettier (#1591)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-27 05:43:11 +00:00
kshitijanurag
a99c8c0f53 feat: guild messages search (#1583)
Co-authored-by: Almeida <almeidx@pm.me>
2026-03-25 12:45:57 +00:00
Almeida
c080b2a838 refactor: rename duplicate error code (#1588) 2026-03-25 12:26:22 +02:00
Vlad Frangu
ed0c19aef7 ci: try to use app token 2026-03-24 14:14:02 +02:00
kshitijanurag
662cb0cb0a feat(RESTJSONErrorCodes): add error code 50278 (#1587) 2026-03-22 23:08:51 +02:00
kshitijanurag
e65e02f05f feat(BaseThemeType): add Unset base theme type (#1577) 2026-03-20 12:40:20 +02:00
dependabot[bot]
b4eaf0b607 chore(deps): bump rollup from 2.79.2 to 2.80.0 in /website (#1544)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-20 12:36:54 +02:00
dependabot[bot]
ebdb44eb79 chore(deps): bump flatted from 3.2.5 to 3.4.2 in /website (#1585)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-20 12:34:17 +02:00
renovate[bot]
d7192dc74e chore(deps): update dependency eslint-config-neon to ^0.4.0 (#1487)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Vlad Frangu <me@vladfrangu.dev>
2026-03-20 12:33:46 +02:00
Almeida
b985362252 feat(Application): add activity instance types and endpoint (#1578)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 12:16:08 +02:00
Almeida
25778aeee9 fix(webhook): correct nullability for guild_id and channel_id (#1567)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com>
2026-03-20 12:06:44 +02:00
renovate[bot]
899544f379 chore(deps): update pnpm/action-setup action to v5 (#1582)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-20 12:04:10 +02:00
renovate[bot]
76ee81b8e1 chore(deps): lock file maintenance (#1584)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-20 09:46:45 +00:00
renovate[bot]
93f3d45596 chore(deps): update patch/minor dependencies (#1581)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-20 05:28:35 +00:00
Almeida
811314a825 fix(Voice, AuditLog): voice state channel_id, audit log application_id (#1580)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 20:19:08 +02:00
Almeida
ba01bacfc0 feat(Rest): add missing JSON error codes (#1579)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 20:18:52 +02:00
82 changed files with 5871 additions and 3312 deletions

View File

@@ -67,7 +67,7 @@ jobs:
with:
swap-size-gb: 10
- uses: pnpm/action-setup@v4.3.0
- uses: pnpm/action-setup@v5.0.0
name: Install pnpm
with:
run_install: false

View File

@@ -59,6 +59,14 @@ jobs:
if: github.repository_owner == 'discordjs' && github.event_name != 'push'
steps:
- uses: actions/create-github-app-token@v3
id: app-token
with:
app-id: ${{ vars.DISCORDJS_APP_ID }}
private-key: ${{ secrets.DISCORDJS_APP_KEY_RELEASE }}
permission-contents: write
permission-pull-requests: write
- name: Checkout repository
uses: actions/checkout@v6
with:
@@ -78,13 +86,13 @@ jobs:
- name: Set Git User and Email
run: |
git config user.name "github-actions[bot]"
git config user.name "discord-js[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
- name: Bump version
run: node ./scripts/bump-version.mjs
env:
GITHUB_TOKEN: ${{ secrets.USER_PAT }}
GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}
- name: Create branch for changes, add all changes and push
run: |
@@ -103,7 +111,7 @@ jobs:
- name: Create Pull Request
run: node ./scripts/actions/create-pr.mjs
env:
GITHUB_TOKEN: ${{ secrets.USER_PAT }}
GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}
create_release:
name: Create release and publish
@@ -115,6 +123,14 @@ jobs:
if: github.repository_owner == 'discordjs' && github.event_name == 'push' && startsWith(github.event.head_commit.message, 'chore(release)') && !contains(github.event.head_commit.message, '[skip ci]')
steps:
- uses: actions/create-github-app-token@v3
id: app-token
with:
app-id: ${{ vars.DISCORDJS_APP_ID }}
private-key: ${{ secrets.DISCORDJS_APP_KEY_RELEASE }}
permission-contents: write
permission-pull-requests: write
- name: Checkout repository
uses: actions/checkout@v6
with:
@@ -136,4 +152,4 @@ jobs:
- name: Create GitHub release
run: node ./scripts/actions/create-release.mjs
env:
GITHUB_TOKEN: ${{ secrets.USER_PAT }}
GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}

File diff suppressed because one or more lines are too long

940
.yarn/releases/yarn-4.14.1.cjs vendored Executable file

File diff suppressed because one or more lines are too long

View File

@@ -2,7 +2,7 @@ enableGlobalCache: true
nodeLinker: node-modules
yarnPath: .yarn/releases/yarn-4.12.0.cjs
yarnPath: .yarn/releases/yarn-4.14.1.cjs
plugins:
- path: ./.yarn/plugins/postinstallDev.cjs

View File

@@ -1,3 +1,73 @@
## [0.38.47](https://github.com/discordjs/discord-api-types/compare/0.38.46...0.38.47) (2026-04-16)
### Features
* **RESTJSONErrorCodes:** add `CannotForwardMessageWithUnreadableContent` ([#1628](https://github.com/discordjs/discord-api-types/issues/1628)) ([09c71fe](https://github.com/discordjs/discord-api-types/commit/09c71fe9d19006d0b287be35456c25809e9afc1a))
* **RESTJSONErrorCodes:** rename `ChannelSendRateLimit` to `ChannelWriteRateLimit` ([#1627](https://github.com/discordjs/discord-api-types/issues/1627)) ([d5dc47a](https://github.com/discordjs/discord-api-types/commit/d5dc47a36c544ff8a83adcfb29684d5ac5e15af4))
## [0.38.46](https://github.com/discordjs/discord-api-types/compare/0.38.45...0.38.46) (2026-04-13)
### Bug Fixes
* `APIUser` `global_name` description ([#1586](https://github.com/discordjs/discord-api-types/issues/1586)) ([d165766](https://github.com/discordjs/discord-api-types/commit/d165766302c8ae7c9cd78c5a2989787351ca45fa))
* **Channel:** add applied_tags to forum thread form data body ([#1615](https://github.com/discordjs/discord-api-types/issues/1615)) ([19d04c0](https://github.com/discordjs/discord-api-types/commit/19d04c00c9f5ba585fc0d21dbf869b74f2ea2dda))
* **Gateway:** correct scheduled event user remove dispatch type ([#1614](https://github.com/discordjs/discord-api-types/issues/1614)) ([b2a8b74](https://github.com/discordjs/discord-api-types/commit/b2a8b740e5c7904c77bd6ba3359b3b4d30b0e0f9))
* **ReactionType:** rename Super to Burst ([#1613](https://github.com/discordjs/discord-api-types/issues/1613)) ([c21ae24](https://github.com/discordjs/discord-api-types/commit/c21ae24f7a3d8892a1126984223a5ddf996b3105))
* **Webhook:** add delete message query, fix thread_id type ([#1611](https://github.com/discordjs/discord-api-types/issues/1611)) ([27ef064](https://github.com/discordjs/discord-api-types/commit/27ef064f922922b8da6d8baedcc0aed6261f6d59))
### Features
* **Message:** more attachment and embed fields and flags ([#1609](https://github.com/discordjs/discord-api-types/issues/1609)) ([702e541](https://github.com/discordjs/discord-api-types/commit/702e541bf0bbcf54c85a47e1ba56dc982cb49b17))
* **UserFlags:** mark ActiveDeveloper as deprecated ([#1604](https://github.com/discordjs/discord-api-types/issues/1604)) ([5acf5c5](https://github.com/discordjs/discord-api-types/commit/5acf5c5989d09cabd73f3435155b9ca2cf07be81))
## [0.38.45](https://github.com/discordjs/discord-api-types/compare/0.38.44...0.38.45) (2026-04-09)
### Bug Fixes
* **OAuth2:** include flags in current application result ([#1610](https://github.com/discordjs/discord-api-types/issues/1610)) ([1506ff0](https://github.com/discordjs/discord-api-types/commit/1506ff0d2bf38cea590872fbc2a463096150baf6))
* **User:** use Snowflake for DM recipient_id ([#1612](https://github.com/discordjs/discord-api-types/issues/1612)) ([3a296fa](https://github.com/discordjs/discord-api-types/commit/3a296fa929470b0dba74ee7cdd4343c03d171916))
## [0.38.44](https://github.com/discordjs/discord-api-types/compare/0.38.43...0.38.44) (2026-04-02)
### Bug Fixes
* **APIApplication:** make event_webhooks_status optional ([#1603](https://github.com/discordjs/discord-api-types/issues/1603)) ([c76a1bc](https://github.com/discordjs/discord-api-types/commit/c76a1bc37208789b9b626a9363e8a3992edc2899))
## [0.38.43](https://github.com/discordjs/discord-api-types/compare/0.38.41...0.38.43) (2026-03-28)
### Bug Fixes
* **Channel:** correct PATCH channel field nullability ([#1575](https://github.com/discordjs/discord-api-types/issues/1575)) ([a4aa724](https://github.com/discordjs/discord-api-types/commit/a4aa724eb84ca0dea335b52c312af7a0e50696f6))
* **Gateway:** invite create timestamp type, zstd-stream ([#1569](https://github.com/discordjs/discord-api-types/issues/1569)) ([38b9467](https://github.com/discordjs/discord-api-types/commit/38b9467178783c71770a15905d5f6e716ed7cbbd))
* **Guild:** correct optionality and nullability ([#1574](https://github.com/discordjs/discord-api-types/issues/1574)) ([cf6476d](https://github.com/discordjs/discord-api-types/commit/cf6476dc8aeecb3d36cac629cb1d921b2805c573))
* **guildScheduledEvent:** entity_type required, channel_id nullable ([#1573](https://github.com/discordjs/discord-api-types/issues/1573)) ([bf12195](https://github.com/discordjs/discord-api-types/commit/bf121954013b21f9b8a2c35249791f96b275143a))
* **poll:** mark expiry as nullable ([#1576](https://github.com/discordjs/discord-api-types/issues/1576)) ([dea22dc](https://github.com/discordjs/discord-api-types/commit/dea22dc487d8af22827a15815ff79acd8607465b))
* role colors optionality, color deprecation, and stale annotations ([#1566](https://github.com/discordjs/discord-api-types/issues/1566)) ([0000e9a](https://github.com/discordjs/discord-api-types/commit/0000e9afe34f748d708c1d81441a08e1a06e0d50))
* send soundboard result type ([#1568](https://github.com/discordjs/discord-api-types/issues/1568)) ([f1a3cb7](https://github.com/discordjs/discord-api-types/commit/f1a3cb7bb7fb6fba6824fcad42e0ce54a0d9be94))
* split grouped gateway dispatch types ([#1563](https://github.com/discordjs/discord-api-types/issues/1563)) ([f76c2fa](https://github.com/discordjs/discord-api-types/commit/f76c2fa249b1b9ad02d4bfc26495f4cfa2349641))
* **Voice, AuditLog:** voice state channel_id, audit log application_id ([#1580](https://github.com/discordjs/discord-api-types/issues/1580)) ([811314a](https://github.com/discordjs/discord-api-types/commit/811314a825bbe32360f98109bd4981d67fdb6726))
* **webhook:** correct nullability for guild_id and channel_id ([#1567](https://github.com/discordjs/discord-api-types/issues/1567)) ([25778ae](https://github.com/discordjs/discord-api-types/commit/25778aeee9367c145fa841c977d4de6b247652c0))
### Features
* **Application:** add activity instance types and endpoint ([#1578](https://github.com/discordjs/discord-api-types/issues/1578)) ([b985362](https://github.com/discordjs/discord-api-types/commit/b9853622523d1be70e3f754d552f5b984fff8739))
* **Application:** add webhook event fields to PATCH ([#1570](https://github.com/discordjs/discord-api-types/issues/1570)) ([e1ff008](https://github.com/discordjs/discord-api-types/commit/e1ff008cd697cf0dd0185ed2d8aba653c6be91e4))
* **BaseThemeType:** add `Unset` base theme type ([#1577](https://github.com/discordjs/discord-api-types/issues/1577)) ([e65e02f](https://github.com/discordjs/discord-api-types/commit/e65e02f05f048cc57488deffb04e90313c92e4c2))
* guild messages search ([#1583](https://github.com/discordjs/discord-api-types/issues/1583)) ([a99c8c0](https://github.com/discordjs/discord-api-types/commit/a99c8c0f53b119e58841979f319eb3e49cbe9b5f))
* **Guild:** add collectibles to guild member ([#1572](https://github.com/discordjs/discord-api-types/issues/1572)) ([c8ef2fe](https://github.com/discordjs/discord-api-types/commit/c8ef2fefde5b8a37dee40863d2a2e24df8b50e28))
* **Guild:** add flags to modify guild member ([#1571](https://github.com/discordjs/discord-api-types/issues/1571)) ([46b8cbd](https://github.com/discordjs/discord-api-types/commit/46b8cbd46f5c5331652624d74048775bd0e9ff8d))
* mark new modal components as stable ([#1556](https://github.com/discordjs/discord-api-types/issues/1556)) ([818b899](https://github.com/discordjs/discord-api-types/commit/818b899f9dd8f93c93168550ba08976888927f77))
* **message:** shared client themes ([#1565](https://github.com/discordjs/discord-api-types/issues/1565)) ([c3b331d](https://github.com/discordjs/discord-api-types/commit/c3b331d80a1c4b97b260584f4c9afb5f81871ba9))
* **Rest:** add missing JSON error codes ([#1579](https://github.com/discordjs/discord-api-types/issues/1579)) ([ba01bac](https://github.com/discordjs/discord-api-types/commit/ba01bacfc073ec5b3476157a6d6f8f91836e0eb8))
* **RESTJSONErrorCodes:** add error code `50278` ([#1587](https://github.com/discordjs/discord-api-types/issues/1587)) ([662cb0c](https://github.com/discordjs/discord-api-types/commit/662cb0cb0ac9c6f9ad93e180849476714bfceb0c))
## [0.38.42](https://github.com/discordjs/discord-api-types/compare/0.38.41...0.38.42) (2026-03-09)

70
deno/CHANGELOG.md generated
View File

@@ -1,3 +1,73 @@
## [0.38.47](https://github.com/discordjs/discord-api-types/compare/0.38.46...0.38.47) (2026-04-16)
### Features
* **RESTJSONErrorCodes:** add `CannotForwardMessageWithUnreadableContent` ([#1628](https://github.com/discordjs/discord-api-types/issues/1628)) ([09c71fe](https://github.com/discordjs/discord-api-types/commit/09c71fe9d19006d0b287be35456c25809e9afc1a))
* **RESTJSONErrorCodes:** rename `ChannelSendRateLimit` to `ChannelWriteRateLimit` ([#1627](https://github.com/discordjs/discord-api-types/issues/1627)) ([d5dc47a](https://github.com/discordjs/discord-api-types/commit/d5dc47a36c544ff8a83adcfb29684d5ac5e15af4))
## [0.38.46](https://github.com/discordjs/discord-api-types/compare/0.38.45...0.38.46) (2026-04-13)
### Bug Fixes
* `APIUser` `global_name` description ([#1586](https://github.com/discordjs/discord-api-types/issues/1586)) ([d165766](https://github.com/discordjs/discord-api-types/commit/d165766302c8ae7c9cd78c5a2989787351ca45fa))
* **Channel:** add applied_tags to forum thread form data body ([#1615](https://github.com/discordjs/discord-api-types/issues/1615)) ([19d04c0](https://github.com/discordjs/discord-api-types/commit/19d04c00c9f5ba585fc0d21dbf869b74f2ea2dda))
* **Gateway:** correct scheduled event user remove dispatch type ([#1614](https://github.com/discordjs/discord-api-types/issues/1614)) ([b2a8b74](https://github.com/discordjs/discord-api-types/commit/b2a8b740e5c7904c77bd6ba3359b3b4d30b0e0f9))
* **ReactionType:** rename Super to Burst ([#1613](https://github.com/discordjs/discord-api-types/issues/1613)) ([c21ae24](https://github.com/discordjs/discord-api-types/commit/c21ae24f7a3d8892a1126984223a5ddf996b3105))
* **Webhook:** add delete message query, fix thread_id type ([#1611](https://github.com/discordjs/discord-api-types/issues/1611)) ([27ef064](https://github.com/discordjs/discord-api-types/commit/27ef064f922922b8da6d8baedcc0aed6261f6d59))
### Features
* **Message:** more attachment and embed fields and flags ([#1609](https://github.com/discordjs/discord-api-types/issues/1609)) ([702e541](https://github.com/discordjs/discord-api-types/commit/702e541bf0bbcf54c85a47e1ba56dc982cb49b17))
* **UserFlags:** mark ActiveDeveloper as deprecated ([#1604](https://github.com/discordjs/discord-api-types/issues/1604)) ([5acf5c5](https://github.com/discordjs/discord-api-types/commit/5acf5c5989d09cabd73f3435155b9ca2cf07be81))
## [0.38.45](https://github.com/discordjs/discord-api-types/compare/0.38.44...0.38.45) (2026-04-09)
### Bug Fixes
* **OAuth2:** include flags in current application result ([#1610](https://github.com/discordjs/discord-api-types/issues/1610)) ([1506ff0](https://github.com/discordjs/discord-api-types/commit/1506ff0d2bf38cea590872fbc2a463096150baf6))
* **User:** use Snowflake for DM recipient_id ([#1612](https://github.com/discordjs/discord-api-types/issues/1612)) ([3a296fa](https://github.com/discordjs/discord-api-types/commit/3a296fa929470b0dba74ee7cdd4343c03d171916))
## [0.38.44](https://github.com/discordjs/discord-api-types/compare/0.38.43...0.38.44) (2026-04-02)
### Bug Fixes
* **APIApplication:** make event_webhooks_status optional ([#1603](https://github.com/discordjs/discord-api-types/issues/1603)) ([c76a1bc](https://github.com/discordjs/discord-api-types/commit/c76a1bc37208789b9b626a9363e8a3992edc2899))
## [0.38.43](https://github.com/discordjs/discord-api-types/compare/0.38.41...0.38.43) (2026-03-28)
### Bug Fixes
* **Channel:** correct PATCH channel field nullability ([#1575](https://github.com/discordjs/discord-api-types/issues/1575)) ([a4aa724](https://github.com/discordjs/discord-api-types/commit/a4aa724eb84ca0dea335b52c312af7a0e50696f6))
* **Gateway:** invite create timestamp type, zstd-stream ([#1569](https://github.com/discordjs/discord-api-types/issues/1569)) ([38b9467](https://github.com/discordjs/discord-api-types/commit/38b9467178783c71770a15905d5f6e716ed7cbbd))
* **Guild:** correct optionality and nullability ([#1574](https://github.com/discordjs/discord-api-types/issues/1574)) ([cf6476d](https://github.com/discordjs/discord-api-types/commit/cf6476dc8aeecb3d36cac629cb1d921b2805c573))
* **guildScheduledEvent:** entity_type required, channel_id nullable ([#1573](https://github.com/discordjs/discord-api-types/issues/1573)) ([bf12195](https://github.com/discordjs/discord-api-types/commit/bf121954013b21f9b8a2c35249791f96b275143a))
* **poll:** mark expiry as nullable ([#1576](https://github.com/discordjs/discord-api-types/issues/1576)) ([dea22dc](https://github.com/discordjs/discord-api-types/commit/dea22dc487d8af22827a15815ff79acd8607465b))
* role colors optionality, color deprecation, and stale annotations ([#1566](https://github.com/discordjs/discord-api-types/issues/1566)) ([0000e9a](https://github.com/discordjs/discord-api-types/commit/0000e9afe34f748d708c1d81441a08e1a06e0d50))
* send soundboard result type ([#1568](https://github.com/discordjs/discord-api-types/issues/1568)) ([f1a3cb7](https://github.com/discordjs/discord-api-types/commit/f1a3cb7bb7fb6fba6824fcad42e0ce54a0d9be94))
* split grouped gateway dispatch types ([#1563](https://github.com/discordjs/discord-api-types/issues/1563)) ([f76c2fa](https://github.com/discordjs/discord-api-types/commit/f76c2fa249b1b9ad02d4bfc26495f4cfa2349641))
* **Voice, AuditLog:** voice state channel_id, audit log application_id ([#1580](https://github.com/discordjs/discord-api-types/issues/1580)) ([811314a](https://github.com/discordjs/discord-api-types/commit/811314a825bbe32360f98109bd4981d67fdb6726))
* **webhook:** correct nullability for guild_id and channel_id ([#1567](https://github.com/discordjs/discord-api-types/issues/1567)) ([25778ae](https://github.com/discordjs/discord-api-types/commit/25778aeee9367c145fa841c977d4de6b247652c0))
### Features
* **Application:** add activity instance types and endpoint ([#1578](https://github.com/discordjs/discord-api-types/issues/1578)) ([b985362](https://github.com/discordjs/discord-api-types/commit/b9853622523d1be70e3f754d552f5b984fff8739))
* **Application:** add webhook event fields to PATCH ([#1570](https://github.com/discordjs/discord-api-types/issues/1570)) ([e1ff008](https://github.com/discordjs/discord-api-types/commit/e1ff008cd697cf0dd0185ed2d8aba653c6be91e4))
* **BaseThemeType:** add `Unset` base theme type ([#1577](https://github.com/discordjs/discord-api-types/issues/1577)) ([e65e02f](https://github.com/discordjs/discord-api-types/commit/e65e02f05f048cc57488deffb04e90313c92e4c2))
* guild messages search ([#1583](https://github.com/discordjs/discord-api-types/issues/1583)) ([a99c8c0](https://github.com/discordjs/discord-api-types/commit/a99c8c0f53b119e58841979f319eb3e49cbe9b5f))
* **Guild:** add collectibles to guild member ([#1572](https://github.com/discordjs/discord-api-types/issues/1572)) ([c8ef2fe](https://github.com/discordjs/discord-api-types/commit/c8ef2fefde5b8a37dee40863d2a2e24df8b50e28))
* **Guild:** add flags to modify guild member ([#1571](https://github.com/discordjs/discord-api-types/issues/1571)) ([46b8cbd](https://github.com/discordjs/discord-api-types/commit/46b8cbd46f5c5331652624d74048775bd0e9ff8d))
* mark new modal components as stable ([#1556](https://github.com/discordjs/discord-api-types/issues/1556)) ([818b899](https://github.com/discordjs/discord-api-types/commit/818b899f9dd8f93c93168550ba08976888927f77))
* **message:** shared client themes ([#1565](https://github.com/discordjs/discord-api-types/issues/1565)) ([c3b331d](https://github.com/discordjs/discord-api-types/commit/c3b331d80a1c4b97b260584f4c9afb5f81871ba9))
* **Rest:** add missing JSON error codes ([#1579](https://github.com/discordjs/discord-api-types/issues/1579)) ([ba01bac](https://github.com/discordjs/discord-api-types/commit/ba01bacfc073ec5b3476157a6d6f8f91836e0eb8))
* **RESTJSONErrorCodes:** add error code `50278` ([#1587](https://github.com/discordjs/discord-api-types/issues/1587)) ([662cb0c](https://github.com/discordjs/discord-api-types/commit/662cb0cb0ac9c6f9ad93e180849476714bfceb0c))
## [0.38.42](https://github.com/discordjs/discord-api-types/compare/0.38.41...0.38.42) (2026-03-09)

2
deno/gateway/v10.ts generated
View File

@@ -1382,7 +1382,7 @@ export interface GatewayGuildScheduledEventUserAddDispatchData {
*/
export type GatewayGuildScheduledEventUserRemoveDispatch = _DataPayload<
GatewayDispatchEvents.GuildScheduledEventUserRemove,
GatewayGuildScheduledEventUserAddDispatchData
GatewayGuildScheduledEventUserRemoveDispatchData
>;
/**

2
deno/gateway/v9.ts generated
View File

@@ -1381,7 +1381,7 @@ export interface GatewayGuildScheduledEventUserAddDispatchData {
*/
export type GatewayGuildScheduledEventUserRemoveDispatch = _DataPayload<
GatewayDispatchEvents.GuildScheduledEventUserRemove,
GatewayGuildScheduledEventUserAddDispatchData
GatewayGuildScheduledEventUserRemoveDispatchData
>;
/**

View File

@@ -154,7 +154,7 @@ export interface APIApplication {
/**
* If webhook events are enabled for the app
*/
event_webhooks_status: ApplicationWebhookEventStatus;
event_webhooks_status?: ApplicationWebhookEventStatus;
/**
* List of webhook event types the app subscribes to
*/
@@ -317,6 +317,68 @@ export enum ApplicationRoleConnectionMetadataType {
BooleanNotEqual,
}
/**
* @see {@link https://discord.com/developers/docs/resources/application#get-application-activity-instance-activity-location-kind-enum}
*/
export enum ActivityLocationKind {
/**
* Location is a guild channel
*/
GuildChannel = 'gc',
/**
* Location is a private channel, such as a DM or GDM
*/
PrivateChannel = 'pc',
}
/**
* @see {@link https://discord.com/developers/docs/resources/application#get-application-activity-instance-activity-location-object}
*/
export interface APIActivityLocation {
/**
* Unique identifier for the location
*/
id: string;
/**
* Enum describing kind of location
*/
kind: ActivityLocationKind;
/**
* ID of the channel
*/
channel_id: Snowflake;
/**
* ID of the guild
*/
guild_id?: Snowflake | null;
}
/**
* @see {@link https://discord.com/developers/docs/resources/application#get-application-activity-instance-activity-instance-object}
*/
export interface APIActivityInstance {
/**
* Application ID
*/
application_id: Snowflake;
/**
* Activity instance ID
*/
instance_id: string;
/**
* Unique identifier for the launch
*/
launch_id: Snowflake;
/**
* Location the instance is running in
*/
location: APIActivityLocation;
/**
* IDs of the users currently connected to the instance
*/
users: Snowflake[];
}
/**
* @see {@link https://discord.com/developers/docs/resources/application#application-object-application-event-webhook-status}
*/

View File

@@ -347,6 +347,13 @@ export interface APIAuditLogOptions {
* - MEMBER_ROLE_UPDATE
*/
integration_type?: APIGuildIntegrationType;
/**
* ID of the app whose permissions were targeted
*
* Present from:
* - APPLICATION_COMMAND_PERMISSION_UPDATE
*/
application_id?: Snowflake;
}
export enum AuditLogOptionsType {

View File

@@ -3,7 +3,7 @@
import type { Snowflake } from '../../globals.ts';
import type { _NonNullableFields } from '../../utils/internals.ts';
import type { APIApplication } from './application.ts';
import type { APIChannel, ChannelType } from './channel.ts';
import type { APIChannel, APIThreadChannel, APIThreadMember, ChannelType } from './channel.ts';
import type { APIPartialEmoji } from './emoji.ts';
import type { APIInteractionDataResolved, APIMessageInteraction, APIMessageInteractionMetadata } from './interactions.ts';
import type { APIRole } from './permissions.ts';
@@ -87,7 +87,7 @@ export interface APIBaseMessageNoChannel {
*/
mention_channels?: APIChannelMention[];
/**
* Any attached files
* Any attached files that are not referenced in embeds or components
*
* @see {@link https://discord.com/developers/docs/resources/message#attachment-object-attachment-structure}
*
@@ -471,7 +471,8 @@ export interface APIMessageCall {
* @see https://docs.discord.com/developers/resources/message#base-theme-types
*/
export enum BaseThemeType {
Dark = 1,
Unset,
Dark,
Light,
Darker,
Midnight,
@@ -616,9 +617,9 @@ export interface APIEmbed {
/**
* Thumbnail information
*
* @see {@link https://discord.com/developers/docs/resources/message#embed-object-embed-thumbnail-structure}
* @see {@link https://docs.discord.com/developers/resources/message#embed-object-embed-image-structure}
*/
thumbnail?: APIEmbedThumbnail;
thumbnail?: APIEmbedImage;
/**
* Video information
*
@@ -645,6 +646,13 @@ export interface APIEmbed {
* @see {@link https://discord.com/developers/docs/resources/message#embed-object-embed-field-structure}
*/
fields?: APIEmbedField[];
/**
* Embed flags combined as a bitfield
*
* @see {@link https://docs.discord.com/developers/resources/message#embed-object-embed-flags}
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
flags?: EmbedFlags;
}
/**
@@ -688,27 +696,30 @@ export enum EmbedType {
}
/**
* @see {@link https://discord.com/developers/docs/resources/message#embed-object-embed-thumbnail-structure}
* @see {@link https://docs.discord.com/developers/resources/message#embed-object-embed-flags}
*/
export interface APIEmbedThumbnail {
export enum EmbedFlags {
/**
* Source url of thumbnail (only supports http(s) and attachments)
* This embed is a fallback for a reply to an activity card
*/
url: string;
/**
* A proxied url of the thumbnail
*/
proxy_url?: string;
/**
* Height of thumbnail
*/
height?: number;
/**
* Width of thumbnail
*/
width?: number;
IsContentInventoryEntry = 1 << 5,
}
/**
* @see {@link https://docs.discord.com/developers/resources/message#embed-object-embed-media-flags}
*/
export enum EmbedMediaFlags {
/**
* This image is animated
*/
IsAnimated = 1 << 5,
}
/**
* @deprecated Use {@link APIEmbedImage} instead.
*/
export interface APIEmbedThumbnail extends APIEmbedImage {}
/**
* @see {@link https://discord.com/developers/docs/resources/message#embed-object-embed-video-structure}
*/
@@ -729,6 +740,33 @@ export interface APIEmbedVideo {
* Width of video
*/
width?: number;
/**
* The video's media type
*
* @see {@link https://en.wikipedia.org/wiki/Media_type}
*/
content_type?: string;
/**
* ThumbHash placeholder of the video
*
* @see {@link https://evanw.github.io/thumbhash/}
*/
placeholder?: string;
/**
* Version of the placeholder
*/
placeholder_version?: number;
/**
* Description (alt text) for the video
*/
description?: string;
/**
* Embed media flags combined as a bitfield
*
* @see {@link https://docs.discord.com/developers/resources/message#embed-object-embed-media-flags}
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
flags?: EmbedMediaFlags;
}
/**
@@ -751,6 +789,33 @@ export interface APIEmbedImage {
* Width of image
*/
width?: number;
/**
* The image's media type
*
* @see {@link https://en.wikipedia.org/wiki/Media_type}
*/
content_type?: string;
/**
* ThumbHash placeholder of the image
*
* @see {@link https://evanw.github.io/thumbhash/}
*/
placeholder?: string;
/**
* Version of the placeholder
*/
placeholder_version?: number;
/**
* Description (alt text) for the image
*/
description?: string;
/**
* Embed media flags combined as a bitfield
*
* @see {@link https://docs.discord.com/developers/resources/message#embed-object-embed-media-flags}
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
flags?: EmbedMediaFlags;
}
/**
@@ -853,7 +918,7 @@ export interface APIAttachment {
*/
title?: string;
/**
* Description for the file
* Description (alt text) for the file (max 1024 characters)
*/
description?: string;
/**
@@ -875,15 +940,27 @@ export interface APIAttachment {
*/
proxy_url: string;
/**
* Height of file (if image)
* Height of file (if image or video)
*/
height?: number | null;
/**
* Width of file (if image)
* Width of file (if image or video)
*/
width?: number | null;
/**
* ThumbHash placeholder (if image or video)
*
* @see {@link https://evanw.github.io/thumbhash/}
*/
placeholder?: string;
/**
* Version of the placeholder (if image or video)
*/
placeholder_version?: number;
/**
* Whether this attachment is ephemeral
*
* @remarks Ephemeral attachments will automatically be removed after a set period of time. Ephemeral attachments on messages are guaranteed to be available as long as the message itself exists.
*/
ephemeral?: boolean;
/**
@@ -898,16 +975,48 @@ export interface APIAttachment {
* Attachment flags combined as a bitfield
*/
flags?: AttachmentFlags;
/**
* For Clips, array of users who were in the stream
*/
clip_participants?: APIUser[];
/**
* For Clips, when the clip was created
*/
clip_created_at?: string;
/**
* For Clips, the application in the stream, if recognized
*/
application?: APIApplication | null;
}
/**
* @see {@link https://discord.com/developers/docs/resources/message#attachment-object-attachment-structure-attachment-flags}
* @see {@link https://docs.discord.com/developers/resources/message#attachment-object-attachment-flags}
*/
export enum AttachmentFlags {
/**
* This attachment is a Clip from a stream
*
* @see {@link https://support.discord.com/hc/en-us/articles/16861982215703}
*/
IsClip = 1 << 0,
/**
* This attachment is the thumbnail of a thread in a media channel, displayed in the grid but not on the message
*/
IsThumbnail = 1 << 1,
/**
* This attachment has been edited using the remix feature on mobile
*
* @deprecated
*/
IsRemix = 1 << 2,
/**
* This attachment was marked as a spoiler and is blurred until clicked
*/
IsSpoiler = 1 << 3,
/**
* This attachment is an animated image
*/
IsAnimated = 1 << 5,
}
/**
@@ -1481,6 +1590,9 @@ export interface APITextInputComponent extends APIBaseComponent<ComponentType.Te
required?: boolean;
}
/**
* @unstable This enum is currently not documented by Discord
*/
export enum UnfurledMediaItemLoadingState {
Unknown,
Loading,
@@ -1493,37 +1605,78 @@ export enum UnfurledMediaItemLoadingState {
*/
export interface APIUnfurledMediaItem {
/**
* Supports arbitrary urls and attachment://<filename> references
* Supports arbitrary urls and `attachment://<filename>` references
*/
url: string;
/**
* The proxied url of the media item. This field is ignored and provided by the API as part of the response
* The proxied url of the media item
*
* @remarks This field is ignored and provided by the API as part of the response.
*/
proxy_url?: string;
/**
* The width of the media item. This field is ignored and provided by the API as part of the response
* The width of the media item (if image or video)
*
* @remarks This field is ignored and provided by the API as part of the response.
*/
width?: number | null;
/**
* The height of the media item. This field is ignored and provided by the API as part of the response
* The height of the media item (if image or video)
*
* @remarks This field is ignored and provided by the API as part of the response.
*/
height?: number | null;
/**
* ThumbHash placeholder (if image or video)
*
* @remarks This field is ignored and provided by the API as part of the response.
* @see {@link https://evanw.github.io/thumbhash/}
*/
placeholder?: string | null;
/**
* Version of the placeholder (if image or video)
*
* @remarks This field is ignored and provided by the API as part of the response.
*/
placeholder_version?: number | null;
/**
* The media type of the content. This field is ignored and provided by the API as part of the response
* The media type of the content
*
* @remarks This field is ignored and provided by the API as part of the response.
* @see {@link https://en.wikipedia.org/wiki/Media_type}
*/
content_type?: string | null;
loading_state?: UnfurledMediaItemLoadingState;
flags?: number;
/**
* The id of the uploaded attachment. This field is ignored and provided by the API as part of the response
* @unstable This field is currently not documented by Discord
*/
loading_state?: UnfurledMediaItemLoadingState;
/**
* Unfurled media item flags combined as a bitfield
*
* @remarks This field is ignored and provided by the API as part of the response.
* @see {@link https://docs.discord.com/developers/components/reference#unfurled-media-item-unfurled-media-item-flags}
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
flags?: UnfurledMediaItemFlags;
/**
* The id of the uploaded attachment.
*
* @remarks This field is ignored and provided by the API as part of the response.
* @remarks Only present if the media item was uploaded as an attachment.
*/
attachment_id?: Snowflake;
}
/**
* @see {@link https://docs.discord.com/developers/components/reference#unfurled-media-item-unfurled-media-item-flags}
*/
export enum UnfurledMediaItemFlags {
/**
* This image is animated
*/
IsAnimated = 1 << 0,
}
/**
* A Section is a top-level layout component that allows you to join text contextually with an accessory.
*
@@ -1997,3 +2150,198 @@ export interface APIMessagePin {
*/
message: APIMessage;
}
/**
* @remarks All types can be negated by prefixing them with `-`, which means results will not include messages that match the type.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-author-types}
*/
export enum MessageSearchAuthorType {
/**
* Return messages sent by user accounts
*/
User = 'user',
/**
* Return messages sent by bot accounts
*/
Bot = 'bot',
/**
* Return messages sent by webhooks
*/
Webhook = 'webhook',
/**
* Return messages not sent by user accounts
*/
NotUser = '-user',
/**
* Return messages not sent by bot accounts
*/
NotBot = '-bot',
/**
* Return messages not sent by webhooks
*/
NotWebhook = '-webhook',
}
/**
* @remarks All types can be negated by prefixing them with `-`, which means results will not include messages that match the type.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-search-has-types}
*/
export enum MessageSearchHasType {
/**
* Return messages that have an image
*/
Image = 'image',
/**
* Return messages that have a sound attachment
*/
Sound = 'sound',
/**
* Return messages that have a video
*/
Video = 'video',
/**
* Return messages that have an attachment
*/
File = 'file',
/**
* Return messages that have a sent sticker
*/
Sticker = 'sticker',
/**
* Return messages that have an embed
*/
Embed = 'embed',
/**
* Return messages that have a link
*/
Link = 'link',
/**
* Return messages that have a poll
*/
Poll = 'poll',
/**
* Return messages that have a forwarded message
*/
Snapshot = 'snapshot',
/**
* Return messages that don't have an image
*/
NotImage = '-image',
/**
* Return messages that don't have a sound attachment
*/
NotSound = '-sound',
/**
* Return messages that don't have a video
*/
NotVideo = '-video',
/**
* Return messages that don't have an attachment
*/
NotFile = '-file',
/**
* Return messages that don't have a sent sticker
*/
NotSticker = '-sticker',
/**
* Return messages that don't have an embed
*/
NotEmbed = '-embed',
/**
* Return messages that don't have a link
*/
NotLink = '-link',
/**
* Return messages that don't have a poll
*/
NotPoll = '-poll',
/**
* Return messages that don't have a forwarded message
*/
NotSnapshot = '-snapshot',
}
/**
* @remarks These do not correspond 1:1 to actual {@link https://docs.discord.com/developers/resources/message#embed-object-embed-types | embed types} and encompass a wider range of actual types.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-search-embed-types}
*/
export enum MessageSearchEmbedType {
/**
* Return messages that have an image embed
*/
Image = 'image',
/**
* Return messages that have a video embed
*/
Video = 'video',
/**
* Return messages that have a gifv embed
*
* @remarks Messages sent before February 24, 2026 may not be properly indexed under the `gif` embed type.
*/
Gif = 'gif',
/**
* Return messages that have a sound embed
*/
Sound = 'sound',
/**
* Return messages that have an article embed
*/
Article = 'article',
}
/**
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-search-sort-modes}
*/
export enum MessageSearchSortMode {
/**
* Sort by the message creation time (default)
*/
Timestamp = 'timestamp',
/**
* Sort by the relevance of the message to the search query
*/
Relevance = 'relevance',
}
/**
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages}
*/
export interface APIMessageSearchIndexNotReadyResponse {
message: string;
code: number;
documents_indexed: number;
retry_after: number;
}
/**
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-response-body}
*/
export interface APIMessageSearchResult {
/**
* Whether the guild is undergoing a deep historical indexing operation
*/
doing_deep_historical_index: boolean;
/**
* The number of documents that have been indexed during the current index operation, if any
*/
documents_indexed?: number;
/**
* The total number of results that match the query
*/
total_results: number;
/**
* A nested array of messages that match the query
*
* @remarks The nested array was used to provide surrounding context to search results. However, surrounding context is no longer returned.
*/
messages: Omit<APIMessage, 'reactions'>[][];
/**
* The threads that contain the returned messages
*/
threads?: APIThreadChannel[];
/**
* A thread member object for each returned thread the current user has joined
*/
members?: APIThreadMember[];
}

View File

@@ -22,7 +22,7 @@ export interface APIUser {
*/
discriminator: string;
/**
* The user's display name, if it is set. For bots, this is the application name
* The user's display name, if it is set
*/
global_name: string | null;
/**
@@ -194,6 +194,8 @@ export enum UserFlags {
DisablePremium = 1 << 21,
/**
* User is an {@link https://support-dev.discord.com/hc/articles/10113997751447 | Active Developer}
*
* @deprecated This user flag is no longer available. See {@link https://support-dev.discord.com/hc/articles/10113997751447-Active-Developer-Badge} for more information.
*/
ActiveDeveloper = 1 << 22,
/**

View File

@@ -30,11 +30,11 @@ export interface APIWebhook {
/**
* The guild id this webhook is for
*/
guild_id?: Snowflake;
guild_id?: Snowflake | null;
/**
* The channel id this webhook is for
*/
channel_id: Snowflake;
channel_id: Snowflake | null;
/**
* The user this webhook was created by (not returned when getting a webhook with its token)
*

View File

@@ -154,7 +154,7 @@ export interface APIApplication {
/**
* If webhook events are enabled for the app
*/
event_webhooks_status: ApplicationWebhookEventStatus;
event_webhooks_status?: ApplicationWebhookEventStatus;
/**
* List of webhook event types the app subscribes to
*/
@@ -317,6 +317,68 @@ export enum ApplicationRoleConnectionMetadataType {
BooleanNotEqual,
}
/**
* @see {@link https://discord.com/developers/docs/resources/application#get-application-activity-instance-activity-location-kind-enum}
*/
export enum ActivityLocationKind {
/**
* Location is a guild channel
*/
GuildChannel = 'gc',
/**
* Location is a private channel, such as a DM or GDM
*/
PrivateChannel = 'pc',
}
/**
* @see {@link https://discord.com/developers/docs/resources/application#get-application-activity-instance-activity-location-object}
*/
export interface APIActivityLocation {
/**
* Unique identifier for the location
*/
id: string;
/**
* Enum describing kind of location
*/
kind: ActivityLocationKind;
/**
* ID of the channel
*/
channel_id: Snowflake;
/**
* ID of the guild
*/
guild_id?: Snowflake | null;
}
/**
* @see {@link https://discord.com/developers/docs/resources/application#get-application-activity-instance-activity-instance-object}
*/
export interface APIActivityInstance {
/**
* Application ID
*/
application_id: Snowflake;
/**
* Activity instance ID
*/
instance_id: string;
/**
* Unique identifier for the launch
*/
launch_id: Snowflake;
/**
* Location the instance is running in
*/
location: APIActivityLocation;
/**
* IDs of the users currently connected to the instance
*/
users: Snowflake[];
}
/**
* @see {@link https://discord.com/developers/docs/resources/application#application-object-application-event-webhook-status}
*/

View File

@@ -347,6 +347,13 @@ export interface APIAuditLogOptions {
* - MEMBER_ROLE_UPDATE
*/
integration_type?: APIGuildIntegrationType;
/**
* ID of the app whose permissions were targeted
*
* Present from:
* - APPLICATION_COMMAND_PERMISSION_UPDATE
*/
application_id?: Snowflake;
}
export enum AuditLogOptionsType {

View File

@@ -3,7 +3,7 @@
import type { Snowflake } from '../../globals.ts';
import type { _NonNullableFields } from '../../utils/internals.ts';
import type { APIApplication } from './application.ts';
import type { APIChannel, ChannelType } from './channel.ts';
import type { APIChannel, APIThreadChannel, APIThreadMember, ChannelType } from './channel.ts';
import type { APIPartialEmoji } from './emoji.ts';
import type { APIInteractionDataResolved, APIMessageInteraction, APIMessageInteractionMetadata } from './interactions.ts';
import type { APIRole } from './permissions.ts';
@@ -86,7 +86,7 @@ export interface APIBaseMessageNoChannel {
*/
mention_channels?: APIChannelMention[];
/**
* Any attached files
* Any attached files that are not referenced in embeds or components
*
* @see {@link https://discord.com/developers/docs/resources/message#attachment-object-attachment-structure}
*
@@ -466,7 +466,8 @@ export interface APIMessageCall {
* @see https://docs.discord.com/developers/resources/message#base-theme-types
*/
export enum BaseThemeType {
Dark = 1,
Unset,
Dark,
Light,
Darker,
Midnight,
@@ -611,9 +612,9 @@ export interface APIEmbed {
/**
* Thumbnail information
*
* @see {@link https://discord.com/developers/docs/resources/message#embed-object-embed-thumbnail-structure}
* @see {@link https://docs.discord.com/developers/resources/message#embed-object-embed-image-structure}
*/
thumbnail?: APIEmbedThumbnail;
thumbnail?: APIEmbedImage;
/**
* Video information
*
@@ -640,6 +641,13 @@ export interface APIEmbed {
* @see {@link https://discord.com/developers/docs/resources/message#embed-object-embed-field-structure}
*/
fields?: APIEmbedField[];
/**
* Embed flags combined as a bitfield
*
* @see {@link https://docs.discord.com/developers/resources/message#embed-object-embed-flags}
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
flags?: EmbedFlags;
}
/**
@@ -683,27 +691,30 @@ export enum EmbedType {
}
/**
* @see {@link https://discord.com/developers/docs/resources/message#embed-object-embed-thumbnail-structure}
* @see {@link https://docs.discord.com/developers/resources/message#embed-object-embed-flags}
*/
export interface APIEmbedThumbnail {
export enum EmbedFlags {
/**
* Source url of thumbnail (only supports http(s) and attachments)
* This embed is a fallback for a reply to an activity card
*/
url: string;
/**
* A proxied url of the thumbnail
*/
proxy_url?: string;
/**
* Height of thumbnail
*/
height?: number;
/**
* Width of thumbnail
*/
width?: number;
IsContentInventoryEntry = 1 << 5,
}
/**
* @see {@link https://docs.discord.com/developers/resources/message#embed-object-embed-media-flags}
*/
export enum EmbedMediaFlags {
/**
* This image is animated
*/
IsAnimated = 1 << 5,
}
/**
* @deprecated Use {@link APIEmbedImage} instead.
*/
export interface APIEmbedThumbnail extends APIEmbedImage {}
/**
* @see {@link https://discord.com/developers/docs/resources/message#embed-object-embed-video-structure}
*/
@@ -724,6 +735,33 @@ export interface APIEmbedVideo {
* Width of video
*/
width?: number;
/**
* The video's media type
*
* @see {@link https://en.wikipedia.org/wiki/Media_type}
*/
content_type?: string;
/**
* ThumbHash placeholder of the video
*
* @see {@link https://evanw.github.io/thumbhash/}
*/
placeholder?: string;
/**
* Version of the placeholder
*/
placeholder_version?: number;
/**
* Description (alt text) for the video
*/
description?: string;
/**
* Embed media flags combined as a bitfield
*
* @see {@link https://docs.discord.com/developers/resources/message#embed-object-embed-media-flags}
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
flags?: EmbedMediaFlags;
}
/**
@@ -746,6 +784,33 @@ export interface APIEmbedImage {
* Width of image
*/
width?: number;
/**
* The image's media type
*
* @see {@link https://en.wikipedia.org/wiki/Media_type}
*/
content_type?: string;
/**
* ThumbHash placeholder of the image
*
* @see {@link https://evanw.github.io/thumbhash/}
*/
placeholder?: string;
/**
* Version of the placeholder
*/
placeholder_version?: number;
/**
* Description (alt text) for the image
*/
description?: string;
/**
* Embed media flags combined as a bitfield
*
* @see {@link https://docs.discord.com/developers/resources/message#embed-object-embed-media-flags}
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
flags?: EmbedMediaFlags;
}
/**
@@ -848,7 +913,7 @@ export interface APIAttachment {
*/
title?: string;
/**
* Description for the file
* Description (alt text) for the file (max 1024 characters)
*/
description?: string;
/**
@@ -870,15 +935,27 @@ export interface APIAttachment {
*/
proxy_url: string;
/**
* Height of file (if image)
* Height of file (if image or video)
*/
height?: number | null;
/**
* Width of file (if image)
* Width of file (if image or video)
*/
width?: number | null;
/**
* ThumbHash placeholder (if image or video)
*
* @see {@link https://evanw.github.io/thumbhash/}
*/
placeholder?: string;
/**
* Version of the placeholder (if image or video)
*/
placeholder_version?: number;
/**
* Whether this attachment is ephemeral
*
* @remarks Ephemeral attachments will automatically be removed after a set period of time. Ephemeral attachments on messages are guaranteed to be available as long as the message itself exists.
*/
ephemeral?: boolean;
/**
@@ -893,16 +970,48 @@ export interface APIAttachment {
* Attachment flags combined as a bitfield
*/
flags?: AttachmentFlags;
/**
* For Clips, array of users who were in the stream
*/
clip_participants?: APIUser[];
/**
* For Clips, when the clip was created
*/
clip_created_at?: string;
/**
* For Clips, the application in the stream, if recognized
*/
application?: APIApplication | null;
}
/**
* @see {@link https://discord.com/developers/docs/resources/message#attachment-object-attachment-structure-attachment-flags}
* @see {@link https://docs.discord.com/developers/resources/message#attachment-object-attachment-flags}
*/
export enum AttachmentFlags {
/**
* This attachment is a Clip from a stream
*
* @see {@link https://support.discord.com/hc/en-us/articles/16861982215703}
*/
IsClip = 1 << 0,
/**
* This attachment is the thumbnail of a thread in a media channel, displayed in the grid but not on the message
*/
IsThumbnail = 1 << 1,
/**
* This attachment has been edited using the remix feature on mobile
*
* @deprecated
*/
IsRemix = 1 << 2,
/**
* This attachment was marked as a spoiler and is blurred until clicked
*/
IsSpoiler = 1 << 3,
/**
* This attachment is an animated image
*/
IsAnimated = 1 << 5,
}
/**
@@ -1476,6 +1585,9 @@ export interface APITextInputComponent extends APIBaseComponent<ComponentType.Te
required?: boolean;
}
/**
* @unstable This enum is currently not documented by Discord
*/
export enum UnfurledMediaItemLoadingState {
Unknown,
Loading,
@@ -1488,37 +1600,78 @@ export enum UnfurledMediaItemLoadingState {
*/
export interface APIUnfurledMediaItem {
/**
* Supports arbitrary urls and attachment://<filename> references
* Supports arbitrary urls and `attachment://<filename>` references
*/
url: string;
/**
* The proxied url of the media item. This field is ignored and provided by the API as part of the response
* The proxied url of the media item
*
* @remarks This field is ignored and provided by the API as part of the response.
*/
proxy_url?: string;
/**
* The width of the media item. This field is ignored and provided by the API as part of the response
* The width of the media item (if image or video)
*
* @remarks This field is ignored and provided by the API as part of the response.
*/
width?: number | null;
/**
* The height of the media item. This field is ignored and provided by the API as part of the response
* The height of the media item (if image or video)
*
* @remarks This field is ignored and provided by the API as part of the response.
*/
height?: number | null;
/**
* ThumbHash placeholder (if image or video)
*
* @remarks This field is ignored and provided by the API as part of the response.
* @see {@link https://evanw.github.io/thumbhash/}
*/
placeholder?: string | null;
/**
* Version of the placeholder (if image or video)
*
* @remarks This field is ignored and provided by the API as part of the response.
*/
placeholder_version?: number | null;
/**
* The media type of the content. This field is ignored and provided by the API as part of the response
* The media type of the content
*
* @remarks This field is ignored and provided by the API as part of the response.
* @see {@link https://en.wikipedia.org/wiki/Media_type}
*/
content_type?: string | null;
loading_state?: UnfurledMediaItemLoadingState;
flags?: number;
/**
* The id of the uploaded attachment. This field is ignored and provided by the API as part of the response
* @unstable This field is currently not documented by Discord
*/
loading_state?: UnfurledMediaItemLoadingState;
/**
* Unfurled media item flags combined as a bitfield
*
* @remarks This field is ignored and provided by the API as part of the response.
* @see {@link https://docs.discord.com/developers/components/reference#unfurled-media-item-unfurled-media-item-flags}
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
flags?: UnfurledMediaItemFlags;
/**
* The id of the uploaded attachment.
*
* @remarks This field is ignored and provided by the API as part of the response.
* @remarks Only present if the media item was uploaded as an attachment.
*/
attachment_id?: Snowflake;
}
/**
* @see {@link https://docs.discord.com/developers/components/reference#unfurled-media-item-unfurled-media-item-flags}
*/
export enum UnfurledMediaItemFlags {
/**
* This image is animated
*/
IsAnimated = 1 << 0,
}
/**
* A Section is a top-level layout component that allows you to join text contextually with an accessory.
*
@@ -1993,3 +2146,198 @@ export interface APIMessagePin {
*/
message: APIMessage;
}
/**
* @remarks All types can be negated by prefixing them with `-`, which means results will not include messages that match the type.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-author-types}
*/
export enum MessageSearchAuthorType {
/**
* Return messages sent by user accounts
*/
User = 'user',
/**
* Return messages sent by bot accounts
*/
Bot = 'bot',
/**
* Return messages sent by webhooks
*/
Webhook = 'webhook',
/**
* Return messages not sent by user accounts
*/
NotUser = '-user',
/**
* Return messages not sent by bot accounts
*/
NotBot = '-bot',
/**
* Return messages not sent by webhooks
*/
NotWebhook = '-webhook',
}
/**
* @remarks All types can be negated by prefixing them with `-`, which means results will not include messages that match the type.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-search-has-types}
*/
export enum MessageSearchHasType {
/**
* Return messages that have an image
*/
Image = 'image',
/**
* Return messages that have a sound attachment
*/
Sound = 'sound',
/**
* Return messages that have a video
*/
Video = 'video',
/**
* Return messages that have an attachment
*/
File = 'file',
/**
* Return messages that have a sent sticker
*/
Sticker = 'sticker',
/**
* Return messages that have an embed
*/
Embed = 'embed',
/**
* Return messages that have a link
*/
Link = 'link',
/**
* Return messages that have a poll
*/
Poll = 'poll',
/**
* Return messages that have a forwarded message
*/
Snapshot = 'snapshot',
/**
* Return messages that don't have an image
*/
NotImage = '-image',
/**
* Return messages that don't have a sound attachment
*/
NotSound = '-sound',
/**
* Return messages that don't have a video
*/
NotVideo = '-video',
/**
* Return messages that don't have an attachment
*/
NotFile = '-file',
/**
* Return messages that don't have a sent sticker
*/
NotSticker = '-sticker',
/**
* Return messages that don't have an embed
*/
NotEmbed = '-embed',
/**
* Return messages that don't have a link
*/
NotLink = '-link',
/**
* Return messages that don't have a poll
*/
NotPoll = '-poll',
/**
* Return messages that don't have a forwarded message
*/
NotSnapshot = '-snapshot',
}
/**
* @remarks These do not correspond 1:1 to actual {@link https://docs.discord.com/developers/resources/message#embed-object-embed-types | embed types} and encompass a wider range of actual types.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-search-embed-types}
*/
export enum MessageSearchEmbedType {
/**
* Return messages that have an image embed
*/
Image = 'image',
/**
* Return messages that have a video embed
*/
Video = 'video',
/**
* Return messages that have a gifv embed
*
* @remarks Messages sent before February 24, 2026 may not be properly indexed under the `gif` embed type.
*/
Gif = 'gif',
/**
* Return messages that have a sound embed
*/
Sound = 'sound',
/**
* Return messages that have an article embed
*/
Article = 'article',
}
/**
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-search-sort-modes}
*/
export enum MessageSearchSortMode {
/**
* Sort by the message creation time (default)
*/
Timestamp = 'timestamp',
/**
* Sort by the relevance of the message to the search query
*/
Relevance = 'relevance',
}
/**
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages}
*/
export interface APIMessageSearchIndexNotReadyResponse {
message: string;
code: number;
documents_indexed: number;
retry_after: number;
}
/**
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-response-body}
*/
export interface APIMessageSearchResult {
/**
* Whether the guild is undergoing a deep historical indexing operation
*/
doing_deep_historical_index: boolean;
/**
* The number of documents that have been indexed during the current index operation, if any
*/
documents_indexed?: number;
/**
* The total number of results that match the query
*/
total_results: number;
/**
* A nested array of messages that match the query
*
* @remarks The nested array was used to provide surrounding context to search results. However, surrounding context is no longer returned.
*/
messages: Omit<APIMessage, 'reactions'>[][];
/**
* The threads that contain the returned messages
*/
threads?: APIThreadChannel[];
/**
* A thread member object for each returned thread the current user has joined
*/
members?: APIThreadMember[];
}

View File

@@ -22,7 +22,7 @@ export interface APIUser {
*/
discriminator: string;
/**
* The user's display name, if it is set. For bots, this is the application name
* The user's display name, if it is set
*/
global_name: string | null;
/**
@@ -194,6 +194,8 @@ export enum UserFlags {
DisablePremium = 1 << 21,
/**
* User is an {@link https://support-dev.discord.com/hc/articles/10113997751447 | Active Developer}
*
* @deprecated This user flag is no longer available. See {@link https://support-dev.discord.com/hc/articles/10113997751447-Active-Developer-Badge} for more information.
*/
ActiveDeveloper = 1 << 22,
/**

View File

@@ -30,11 +30,11 @@ export interface APIWebhook {
/**
* The guild id this webhook is for
*/
guild_id?: Snowflake;
guild_id?: Snowflake | null;
/**
* The channel id this webhook is for
*/
channel_id: Snowflake;
channel_id: Snowflake | null;
/**
* The user this webhook was created by (not returned when getting a webhook with its token)
*

51
deno/rest/common.ts generated
View File

@@ -75,8 +75,16 @@ export enum RESTJSONErrorCodes {
UnderMinimumAge = 20_024,
ChannelSendRateLimit = 20_028,
ServerSendRateLimit,
ChannelWriteRateLimit = 20_028,
/**
* @deprecated Use {@link RESTJSONErrorCodes.ChannelWriteRateLimit} instead
*/
ChannelSendRateLimit = ChannelWriteRateLimit,
ServerWriteRateLimit = 20_029,
/**
* @deprecated Use {@link RESTJSONErrorCodes.ServerWriteRateLimit} instead
*/
ServerSendRateLimit = ServerWriteRateLimit,
StageTopicServerNameServerDescriptionOrChannelNamesContainDisallowedWords = 20_031,
@@ -173,6 +181,9 @@ export enum RESTJSONErrorCodes {
GuildWidgetDisabled,
CannotEditMessageAuthoredByAnotherUser,
CannotSendAnEmptyMessage,
/**
* @see {@link RESTJSONErrorCodes.CannotSendMessagesToThisUserDueToHavingNoMutualGuilds} for a similar error code
*/
CannotSendMessagesToThisUser,
CannotSendMessagesInNonTextChannel,
ChannelVerificationLevelTooHighForYouToGainAccess,
@@ -246,7 +257,11 @@ export enum RESTJSONErrorCodes {
OwnerCannotBePendingMember = 50_131,
OwnershipCannotBeMovedToABotUser,
FailedToResizeAssetBelowTheMinimumSize = 50_138,
FailedToResizeAssetBelowTheMaximumSize = 50_138,
/**
* @deprecated This name is incorrect. Use {@link RESTJSONErrorCodes.FailedToResizeAssetBelowTheMaximumSize} instead
*/
FailedToResizeAssetBelowTheMinimumSize = FailedToResizeAssetBelowTheMaximumSize,
CannotMixSubscriptionAndNonSubscriptionRolesForAnEmoji = 50_144,
CannotConvertBetweenPremiumEmojiAndNormalEmoji,
@@ -266,6 +281,11 @@ export enum RESTJSONErrorCodes {
ProvidedFileDoesNotHaveAValidDuration = 50_192,
/**
* @see {@link RESTJSONErrorCodes.CannotSendMessagesToThisUser} for a similar error code
*/
CannotSendMessagesToThisUserDueToHavingNoMutualGuilds = 50_278,
YouDoNotHavePermissionToSendThisSticker = 50_600,
TwoFactorAuthenticationIsRequired = 60_003,
@@ -275,7 +295,8 @@ export enum RESTJSONErrorCodes {
ReactionWasBlocked = 90_001,
UserCannotUseBurstReactions,
ApplicationNotYetAvailable = 110_001,
IndexNotYetAvailable = 110_000,
ApplicationNotYetAvailable,
APIResourceOverloaded = 130_000,
@@ -288,6 +309,8 @@ export enum RESTJSONErrorCodes {
MaximumActiveThreads,
MaximumActiveAnnouncementThreads,
CannotForwardMessageWithUnreadableContent = 160_014,
InvalidJSONForUploadedLottieFile = 170_001,
UploadedLottiesCannotContainRasterizedImages,
StickerMaximumFramerateExceeded,
@@ -324,8 +347,28 @@ export enum RESTJSONErrorCodes {
CannotUseAnEmojiIncludedWithThePoll,
CannotExpireANonPollMessage = 520_006,
ProvisionalAccountsPermissionNotGranted = 530_000,
IdTokenJWTExpired,
IdTokenJWTIssuerMismatch,
IdTokenJWTAudienceMismatch,
IdTokenJWTIssuedTooLongAgo,
FailedToGenerateUniqueUsername = 530_006,
InvalidClientSecret,
}
/**
* JSON Error Codes that represent "Cannot send messages to this user".
* Discord uses two different error codes for this error:
* - {@link RESTJSONErrorCodes.CannotSendMessagesToThisUser} (50_007)
* - {@link RESTJSONErrorCodes.CannotSendMessagesToThisUserDueToHavingNoMutualGuilds} (50_278)
*/
export const CannotSendMessagesToThisUserErrorCodes = [
RESTJSONErrorCodes.CannotSendMessagesToThisUser,
RESTJSONErrorCodes.CannotSendMessagesToThisUserDueToHavingNoMutualGuilds,
] as const;
/**
* @see {@link https://discord.com/developers/docs/reference#locales}
*/

View File

@@ -1,4 +1,8 @@
import type { APIApplication, APIApplicationRoleConnectionMetadata } from '../../payloads/v10/application.ts';
import type {
APIActivityInstance,
APIApplication,
APIApplicationRoleConnectionMetadata,
} from '../../payloads/v10/application.ts';
import type { _Nullable, _StrictPartial } from '../../utils/internals.ts';
/**
@@ -45,3 +49,8 @@ export type RESTPatchCurrentApplicationJSONBody = _StrictPartial<
* @see {@link https://discord.com/developers/docs/resources/application#edit-current-application}
*/
export type RESTPatchCurrentApplicationResult = APIApplication;
/**
* @see {@link https://discord.com/developers/docs/resources/application#get-application-activity-instance}
*/
export type RESTGetAPIApplicationActivityInstanceResult = APIActivityInstance;

View File

@@ -411,7 +411,13 @@ export interface RESTGetAPIChannelMessageReactionUsersQuery {
*/
export enum ReactionType {
Normal,
Super,
Burst,
// eslint-disable @typescript-eslint/no-duplicate-enum-values
/**
* @deprecated Use {@link ReactionType.Burst} instead
*/
Super = Burst,
// eslint-enable @typescript-eslint/no-duplicate-enum-values
}
/**
@@ -746,6 +752,10 @@ export type RESTPostAPIGuildForumThreadsFormDataBody = RESTPostAPIChannelMessage
* The initial message of the thread
*/
message: string;
/**
* The IDs of the set of tags to apply to the thread; limited to 5
*/
applied_tags?: Snowflake[] | undefined;
};
/**
@@ -836,6 +846,7 @@ export interface RESTGetAPIChannelThreadsArchivedQuery {
/**
* Get threads before this id or ISO8601 timestamp
*/
// eslint-disable-next-line @typescript-eslint/no-duplicate-type-constituents
before?: Snowflake | string;
/**
* Max number of thread to return

151
deno/rest/v10/guild.ts generated
View File

@@ -30,6 +30,12 @@ import type {
APIRoleColors,
APIIncidentsData,
APIGuildChannel,
APIMessageSearchIndexNotReadyResponse,
APIMessageSearchResult,
MessageSearchAuthorType,
MessageSearchEmbedType,
MessageSearchHasType,
MessageSearchSortMode,
} from '../../payloads/v10/mod.ts';
import type {
_AddUndefinedToPossiblyUndefinedPropertiesOfInterface,
@@ -536,6 +542,151 @@ export interface RESTPatchAPIGuildMemberJSONBody {
*/
export type RESTPatchAPIGuildMemberResult = APIGuildMember;
/**
* Returns a list of messages without the `reactions` key that match a search query in the guild. Requires the `READ_MESSAGE_HISTORY` permission.
*
* @remarks The Search Guild Messages endpoint is restricted according to whether the `MESSAGE_CONTENT` Privileged Intent is enabled for your application.
*
* If the entity you are searching is not yet indexed, the endpoint will return a 202 accepted response. The response body will not contain any search results, and will look similar to an error response:
* ```json
* {
* "message": "Index not yet available. Try again later",
* "code": 110000,
* "documents_indexed": 0,
* "retry_after": 2
* }
* ```
*
* Due to speed optimizations, search may return slightly fewer results than the limit specified when messages have not been accessed for a long time.
* Clients should not rely on the length of the `messages` array to paginate results.
*
* Additionally, when messages are actively being created or deleted, the `total_results` field may not be accurate.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages}
*/
export interface RESTGetAPIGuildMessagesSearchQuery {
/**
* Max number of messages to return (1-25)
*
* @defaultValue `25`
*/
limit?: number;
/**
* Number to offset the returned messages by (max 9975)
*/
offset?: number;
/**
* Get messages before this message ID
*/
max_id?: Snowflake;
/**
* Get messages after this message ID
*/
min_id?: Snowflake;
/**
* Max number of words to skip between matching tokens in the search `content` (max 100)
*
* @defaultValue `2`
*/
slop?: number;
/**
* Filter messages by content (max 1024 characters)
*/
content?: string;
/**
* Filter messages by these channels (max 500)
*/
channel_id?: Snowflake[];
/**
* Filter messages by author type
*
* @remarks All types can be negated by prefixing them with `-`, which means results will not include messages that match the type.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-author-types}
*/
author_type?: MessageSearchAuthorType[];
/**
* Filter messages by these authors (max 100)
*/
author_id?: Snowflake[];
/**
* Filter messages that mention these users (max 100)
*/
mentions?: Snowflake[];
/**
* Filter messages that mention these roles (max 100)
*/
mentions_role_id?: Snowflake[];
/**
* Filter messages that do or do not mention `@everyone`
*/
mention_everyone?: boolean;
/**
* Filter messages that reply to these users (max 100)
*/
replied_to_user_id?: Snowflake[];
/**
* Filter messages that reply to these messages (max 100)
*/
replied_to_message_id?: Snowflake[];
/**
* Filter messages by whether they are or are not pinned
*/
pinned?: boolean;
/**
* Filter messages by whether or not they have specific things
*
* @remarks All types can be negated by prefixing them with `-`, which means results will not include messages that match the type.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-search-has-types}
*/
has?: MessageSearchHasType[];
/**
* Filter messages by embed type
*
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-search-embed-types}
*/
embed_type?: MessageSearchEmbedType[];
/**
* Filter messages by embed provider (case-sensitive, e.g. `Tenor`) (max 256 characters, max 100)
*/
embed_provider?: string[];
/**
* Filter messages by link hostname (e.g. `discordapp.com`) (max 256 characters, max 100)
*/
link_hostname?: string[];
/**
* Filter messages by attachment filename (max 1024 characters, max 100)
*/
attachment_filename?: string[];
/**
* Filter messages by attachment extension (e.g. `txt`) (max 256 characters, max 100)
*/
attachment_extension?: string[];
/**
* The sorting algorithm to use
*
* @remarks Sort order is not respected when sorting by relevance.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-search-sort-modes}
*/
sort_by?: MessageSearchSortMode;
/**
* The direction to sort (`asc` or `desc`)
*
* @defaultValue `'desc'`
* @remarks Sort order is not respected when sorting by relevance.
*/
sort_order?: 'asc' | 'desc';
/**
* Whether to include results from age-restricted channels
*
* @defaultValue `false`
*/
include_nsfw?: boolean;
}
/**
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-response-body}
*/
export type RESTGetAPIGuildMessagesSearchResult = APIMessageSearchIndexNotReadyResponse | APIMessageSearchResult;
/**
* @see {@link https://discord.com/developers/docs/resources/guild#modify-current-user-nick}
* @deprecated Use {@link https://discord.com/developers/docs/resources/guild#modify-current-member | Modify Current Member} instead.

29
deno/rest/v10/mod.ts generated
View File

@@ -313,6 +313,14 @@ export const Routes = {
return `/guilds/${guildId}/members/search` as const;
},
/**
* Route for:
* - GET `/guilds/{guild.id}/messages/search`
*/
guildMessagesSearch(guildId: Snowflake) {
return `/guilds/${guildId}/messages/search` as const;
},
/**
* Route for:
* - PATCH `/guilds/{guild.id}/members/@me/nick`
@@ -985,6 +993,14 @@ export const Routes = {
return '/applications/@me' as const;
},
/**
* Route for:
* - GET `/applications/{application.id}/activity-instances/{instance_id}`
*/
applicationActivityInstance(applicationId: Snowflake, instanceId: string) {
return `/applications/${applicationId}/activity-instances/${instanceId}` as const;
},
/**
* Route for:
* - GET `/applications/{application.id}/entitlements`
@@ -1098,8 +1114,8 @@ export const Routes = {
},
};
for (const [key, fn] of Object.entries(Routes)) {
Routes[key as keyof typeof Routes] = (...args: (boolean | number | string | undefined)[]) => {
for (const [key, fn] of Object.entries(Routes) as [keyof typeof Routes, (...args: any[]) => string][]) {
Routes[key] = ((...args: any[]) => {
const escaped = args.map((arg) => {
if (arg) {
// Skip already "safe" urls
@@ -1112,9 +1128,10 @@ for (const [key, fn] of Object.entries(Routes)) {
return arg;
});
// eslint-disable-next-line no-useless-call
return fn.call(null, ...escaped);
};
}) as any;
}
// Freeze the object so it can't be changed
@@ -1429,8 +1446,8 @@ export const CDNRoutes = {
},
};
for (const [key, fn] of Object.entries(CDNRoutes)) {
CDNRoutes[key as keyof typeof CDNRoutes] = (...args: (boolean | number | string | undefined)[]) => {
for (const [key, fn] of Object.entries(CDNRoutes) as [keyof typeof CDNRoutes, (...args: any[]) => string][]) {
CDNRoutes[key] = ((...args: any[]) => {
const escaped = args.map((arg) => {
if (arg) {
// Skip already "safe" urls
@@ -1445,7 +1462,7 @@ for (const [key, fn] of Object.entries(CDNRoutes)) {
});
// eslint-disable-next-line no-useless-call
return fn.call(null, ...escaped);
};
}) as any;
}
// Freeze the object so it can't be changed

View File

@@ -4,7 +4,7 @@ import type { APIApplication, APIGuild, APIUser, APIWebhook, OAuth2Scopes } from
/**
* @see {@link https://discord.com/developers/docs/topics/oauth2#get-current-bot-application-information}
*/
export type RESTGetAPIOAuth2CurrentApplicationResult = Omit<APIApplication, 'flags'>;
export type RESTGetAPIOAuth2CurrentApplicationResult = APIApplication;
/**
* @see {@link https://discord.com/developers/docs/topics/oauth2#get-current-authorization-information}

2
deno/rest/v10/user.ts generated
View File

@@ -101,7 +101,7 @@ export interface RESTPostAPICurrentUserCreateDMChannelJSONBody {
/**
* The recipient to open a DM channel with
*/
recipient_id: string;
recipient_id: Snowflake;
}
/**

View File

@@ -51,7 +51,7 @@ export interface RESTPatchAPIGuildVoiceStateUserJSONBody {
/**
* The id of the channel the user is currently in
*/
channel_id: Snowflake;
channel_id?: Snowflake | undefined;
/**
* Toggles the user's suppress state
*/

View File

@@ -256,7 +256,7 @@ export type RESTGetAPIWebhookWithTokenMessageResult = APIMessage;
* @see {@link https://discord.com/developers/docs/resources/webhook#get-webhook-message-query-string-params}
*/
export interface RESTGetAPIWebhookWithTokenMessageQuery {
thread_id?: string;
thread_id?: Snowflake;
}
/**
@@ -309,6 +309,13 @@ export type RESTPatchAPIWebhookWithTokenMessageQuery = Pick<
*/
export type RESTPatchAPIWebhookWithTokenMessageResult = APIMessage;
/**
* @see {@link https://docs.discord.com/developers/resources/webhook#delete-webhook-message-query-string-params}
*/
export interface RESTDeleteAPIWebhookWithTokenMessageQuery {
thread_id?: Snowflake;
}
/**
* @see {@link https://discord.com/developers/docs/resources/webhook#delete-webhook-message}
*/

7
deno/rest/v6/mod.ts generated
View File

@@ -522,8 +522,8 @@ export const Routes = {
},
};
for (const [key, fn] of Object.entries(Routes)) {
Routes[key] = (...args: (boolean | number | string | undefined)[]) => {
for (const [key, fn] of Object.entries(Routes) as [keyof typeof Routes, (...args: any[]) => string][]) {
Routes[key] = ((...args: any[]) => {
const escaped = args.map((arg) => {
if (arg) {
// Skip already "safe" urls
@@ -536,9 +536,10 @@ for (const [key, fn] of Object.entries(Routes)) {
return arg;
});
// eslint-disable-next-line no-useless-call
return fn.call(null, ...escaped);
};
}) as any;
}
// Freeze the object so it can't be changed

7
deno/rest/v8/mod.ts generated
View File

@@ -778,8 +778,8 @@ export const Routes = {
},
};
for (const [key, fn] of Object.entries(Routes)) {
Routes[key] = (...args: (boolean | number | string | undefined)[]) => {
for (const [key, fn] of Object.entries(Routes) as [keyof typeof Routes, (...args: any[]) => string][]) {
Routes[key] = ((...args: any[]) => {
const escaped = args.map((arg) => {
if (arg) {
// Skip already "safe" urls
@@ -792,9 +792,10 @@ for (const [key, fn] of Object.entries(Routes)) {
return arg;
});
// eslint-disable-next-line no-useless-call
return fn.call(null, ...escaped);
};
}) as any;
}
// Freeze the object so it can't be changed

View File

@@ -1,4 +1,8 @@
import type { APIApplication, APIApplicationRoleConnectionMetadata } from '../../payloads/v9/application.ts';
import type {
APIActivityInstance,
APIApplication,
APIApplicationRoleConnectionMetadata,
} from '../../payloads/v9/application.ts';
import type { _StrictPartial, _Nullable } from '../../utils/internals.ts';
/**
@@ -45,3 +49,8 @@ export type RESTPatchCurrentApplicationJSONBody = _StrictPartial<
* @see {@link https://discord.com/developers/docs/resources/application#edit-current-application}
*/
export type RESTPatchCurrentApplicationResult = APIApplication;
/**
* @see {@link https://discord.com/developers/docs/resources/application#get-application-activity-instance}
*/
export type RESTGetAPIApplicationActivityInstanceResult = APIActivityInstance;

View File

@@ -418,7 +418,13 @@ export interface RESTGetAPIChannelMessageReactionUsersQuery {
*/
export enum ReactionType {
Normal,
Super,
Burst,
// eslint-disable @typescript-eslint/no-duplicate-enum-values
/**
* @deprecated Use {@link ReactionType.Burst} instead
*/
Super = Burst,
// eslint-enable @typescript-eslint/no-duplicate-enum-values
}
/**
@@ -759,6 +765,10 @@ export type RESTPostAPIGuildForumThreadsFormDataBody = RESTPostAPIChannelMessage
* The initial message of the thread
*/
message: string;
/**
* The IDs of the set of tags to apply to the thread; limited to 5
*/
applied_tags?: Snowflake[] | undefined;
};
/**
@@ -849,6 +859,7 @@ export interface RESTGetAPIChannelThreadsArchivedQuery {
/**
* Get threads before this id or ISO8601 timestamp
*/
// eslint-disable-next-line @typescript-eslint/no-duplicate-type-constituents
before?: Snowflake | string;
/**
* Max number of thread to return

151
deno/rest/v9/guild.ts generated
View File

@@ -30,6 +30,12 @@ import type {
APIRoleColors,
APIIncidentsData,
APIGuildChannel,
APIMessageSearchIndexNotReadyResponse,
APIMessageSearchResult,
MessageSearchAuthorType,
MessageSearchEmbedType,
MessageSearchHasType,
MessageSearchSortMode,
} from '../../payloads/v9/mod.ts';
import type {
_AddUndefinedToPossiblyUndefinedPropertiesOfInterface,
@@ -536,6 +542,151 @@ export interface RESTPatchAPIGuildMemberJSONBody {
*/
export type RESTPatchAPIGuildMemberResult = APIGuildMember;
/**
* Returns a list of messages without the `reactions` key that match a search query in the guild. Requires the `READ_MESSAGE_HISTORY` permission.
*
* @remarks The Search Guild Messages endpoint is restricted according to whether the `MESSAGE_CONTENT` Privileged Intent is enabled for your application.
*
* If the entity you are searching is not yet indexed, the endpoint will return a 202 accepted response. The response body will not contain any search results, and will look similar to an error response:
* ```json
* {
* "message": "Index not yet available. Try again later",
* "code": 110000,
* "documents_indexed": 0,
* "retry_after": 2
* }
* ```
*
* Due to speed optimizations, search may return slightly fewer results than the limit specified when messages have not been accessed for a long time.
* Clients should not rely on the length of the `messages` array to paginate results.
*
* Additionally, when messages are actively being created or deleted, the `total_results` field may not be accurate.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages}
*/
export interface RESTGetAPIGuildMessagesSearchQuery {
/**
* Max number of messages to return (1-25)
*
* @defaultValue `25`
*/
limit?: number;
/**
* Number to offset the returned messages by (max 9975)
*/
offset?: number;
/**
* Get messages before this message ID
*/
max_id?: Snowflake;
/**
* Get messages after this message ID
*/
min_id?: Snowflake;
/**
* Max number of words to skip between matching tokens in the search `content` (max 100)
*
* @defaultValue `2`
*/
slop?: number;
/**
* Filter messages by content (max 1024 characters)
*/
content?: string;
/**
* Filter messages by these channels (max 500)
*/
channel_id?: Snowflake[];
/**
* Filter messages by author type
*
* @remarks All types can be negated by prefixing them with `-`, which means results will not include messages that match the type.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-author-types}
*/
author_type?: MessageSearchAuthorType[];
/**
* Filter messages by these authors (max 100)
*/
author_id?: Snowflake[];
/**
* Filter messages that mention these users (max 100)
*/
mentions?: Snowflake[];
/**
* Filter messages that mention these roles (max 100)
*/
mentions_role_id?: Snowflake[];
/**
* Filter messages that do or do not mention `@everyone`
*/
mention_everyone?: boolean;
/**
* Filter messages that reply to these users (max 100)
*/
replied_to_user_id?: Snowflake[];
/**
* Filter messages that reply to these messages (max 100)
*/
replied_to_message_id?: Snowflake[];
/**
* Filter messages by whether they are or are not pinned
*/
pinned?: boolean;
/**
* Filter messages by whether or not they have specific things
*
* @remarks All types can be negated by prefixing them with `-`, which means results will not include messages that match the type.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-search-has-types}
*/
has?: MessageSearchHasType[];
/**
* Filter messages by embed type
*
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-search-embed-types}
*/
embed_type?: MessageSearchEmbedType[];
/**
* Filter messages by embed provider (case-sensitive, e.g. `Tenor`) (max 256 characters, max 100)
*/
embed_provider?: string[];
/**
* Filter messages by link hostname (e.g. `discordapp.com`) (max 256 characters, max 100)
*/
link_hostname?: string[];
/**
* Filter messages by attachment filename (max 1024 characters, max 100)
*/
attachment_filename?: string[];
/**
* Filter messages by attachment extension (e.g. `txt`) (max 256 characters, max 100)
*/
attachment_extension?: string[];
/**
* The sorting algorithm to use
*
* @remarks Sort order is not respected when sorting by relevance.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-search-sort-modes}
*/
sort_by?: MessageSearchSortMode;
/**
* The direction to sort (`asc` or `desc`)
*
* @defaultValue `'desc'`
* @remarks Sort order is not respected when sorting by relevance.
*/
sort_order?: 'asc' | 'desc';
/**
* Whether to include results from age-restricted channels
*
* @defaultValue `false`
*/
include_nsfw?: boolean;
}
/**
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-response-body}
*/
export type RESTGetAPIGuildMessagesSearchResult = APIMessageSearchIndexNotReadyResponse | APIMessageSearchResult;
/**
* @see {@link https://discord.com/developers/docs/resources/guild#modify-current-user-nick}
* @deprecated Use {@link https://discord.com/developers/docs/resources/guild#modify-current-member | Modify Current Member} instead.

29
deno/rest/v9/mod.ts generated
View File

@@ -313,6 +313,14 @@ export const Routes = {
return `/guilds/${guildId}/members/search` as const;
},
/**
* Route for:
* - GET `/guilds/{guild.id}/messages/search`
*/
guildMessagesSearch(guildId: Snowflake) {
return `/guilds/${guildId}/messages/search` as const;
},
/**
* Route for:
* - PATCH `/guilds/{guild.id}/members/@me/nick`
@@ -994,6 +1002,14 @@ export const Routes = {
return '/applications/@me' as const;
},
/**
* Route for:
* - GET `/applications/{application.id}/activity-instances/{instance_id}`
*/
applicationActivityInstance(applicationId: Snowflake, instanceId: string) {
return `/applications/${applicationId}/activity-instances/${instanceId}` as const;
},
/**
* Route for:
* - GET `/applications/{application.id}/entitlements`
@@ -1107,8 +1123,8 @@ export const Routes = {
},
};
for (const [key, fn] of Object.entries(Routes)) {
Routes[key as keyof typeof Routes] = (...args: (boolean | number | string | undefined)[]) => {
for (const [key, fn] of Object.entries(Routes) as [keyof typeof Routes, (...args: any[]) => string][]) {
Routes[key] = ((...args: any[]) => {
const escaped = args.map((arg) => {
if (arg) {
// Skip already "safe" urls
@@ -1121,9 +1137,10 @@ for (const [key, fn] of Object.entries(Routes)) {
return arg;
});
// eslint-disable-next-line no-useless-call
return fn.call(null, ...escaped);
};
}) as any;
}
// Freeze the object so it can't be changed
@@ -1438,8 +1455,8 @@ export const CDNRoutes = {
},
};
for (const [key, fn] of Object.entries(CDNRoutes)) {
CDNRoutes[key as keyof typeof CDNRoutes] = (...args: (boolean | number | string | undefined)[]) => {
for (const [key, fn] of Object.entries(CDNRoutes) as [keyof typeof CDNRoutes, (...args: any[]) => string][]) {
CDNRoutes[key] = ((...args: any[]) => {
const escaped = args.map((arg) => {
if (arg) {
// Skip already "safe" urls
@@ -1454,7 +1471,7 @@ for (const [key, fn] of Object.entries(CDNRoutes)) {
});
// eslint-disable-next-line no-useless-call
return fn.call(null, ...escaped);
};
}) as any;
}
// Freeze the object so it can't be changed

View File

@@ -4,7 +4,7 @@ import type { APIApplication, APIGuild, APIUser, APIWebhook, OAuth2Scopes } from
/**
* @see {@link https://discord.com/developers/docs/topics/oauth2#get-current-bot-application-information}
*/
export type RESTGetAPIOAuth2CurrentApplicationResult = Omit<APIApplication, 'flags'>;
export type RESTGetAPIOAuth2CurrentApplicationResult = APIApplication;
/**
* @see {@link https://discord.com/developers/docs/topics/oauth2#get-current-authorization-information}

2
deno/rest/v9/user.ts generated
View File

@@ -101,7 +101,7 @@ export interface RESTPostAPICurrentUserCreateDMChannelJSONBody {
/**
* The recipient to open a DM channel with
*/
recipient_id: string;
recipient_id: Snowflake;
}
/**

2
deno/rest/v9/voice.ts generated
View File

@@ -51,7 +51,7 @@ export interface RESTPatchAPIGuildVoiceStateUserJSONBody {
/**
* The id of the channel the user is currently in
*/
channel_id: Snowflake;
channel_id?: Snowflake | undefined;
/**
* Toggles the user's suppress state
*/

View File

@@ -256,7 +256,7 @@ export type RESTGetAPIWebhookWithTokenMessageResult = APIMessage;
* @see {@link https://discord.com/developers/docs/resources/webhook#get-webhook-message-query-string-params}
*/
export interface RESTGetAPIWebhookWithTokenMessageQuery {
thread_id?: string;
thread_id?: Snowflake;
}
/**
@@ -309,6 +309,13 @@ export type RESTPatchAPIWebhookWithTokenMessageQuery = Pick<
*/
export type RESTPatchAPIWebhookWithTokenMessageResult = APIMessage;
/**
* @see {@link https://docs.discord.com/developers/resources/webhook#delete-webhook-message-query-string-params}
*/
export interface RESTDeleteAPIWebhookWithTokenMessageQuery {
thread_id?: Snowflake;
}
/**
* @see {@link https://discord.com/developers/docs/resources/webhook#delete-webhook-message}
*/

1
deno/rpc/v10.ts generated
View File

@@ -2666,5 +2666,6 @@ export type RPCMessagePayload =
| RPCCommandSetVoiceSettingsPayload
| RPCCommandStartPurchasePayload
| RPCCommandSubscribePayload
// eslint-disable-next-line @typescript-eslint/no-duplicate-type-constituents
| RPCCommandUnsubscribePayload
| RPCCommandValidateApplicationPayload;

View File

@@ -1382,7 +1382,7 @@ export interface GatewayGuildScheduledEventUserAddDispatchData {
*/
export type GatewayGuildScheduledEventUserRemoveDispatch = _DataPayload<
GatewayDispatchEvents.GuildScheduledEventUserRemove,
GatewayGuildScheduledEventUserAddDispatchData
GatewayGuildScheduledEventUserRemoveDispatchData
>;
/**

View File

@@ -1381,7 +1381,7 @@ export interface GatewayGuildScheduledEventUserAddDispatchData {
*/
export type GatewayGuildScheduledEventUserRemoveDispatch = _DataPayload<
GatewayDispatchEvents.GuildScheduledEventUserRemove,
GatewayGuildScheduledEventUserAddDispatchData
GatewayGuildScheduledEventUserRemoveDispatchData
>;
/**

View File

@@ -1,6 +1,6 @@
{
"name": "discord-api-types",
"version": "0.38.42",
"version": "0.38.47",
"description": "Discord API typings that are kept up to date for use in bot library creation.",
"homepage": "https://discord-api-types.dev",
"workspaces": [
@@ -132,8 +132,8 @@
"{globals,v*}.{js,js.map,d.ts,d.ts.map,mjs}"
],
"devDependencies": {
"@commitlint/cli": "^20.0.0",
"@commitlint/config-angular": "^20.0.0",
"@commitlint/cli": "^21.0.0",
"@commitlint/config-angular": "^21.0.0",
"@favware/npm-deprecate": "^2.0.0",
"@octokit/action": "^8.0.2",
"@octokit/webhooks-types": "^7.6.1",
@@ -145,7 +145,7 @@
"conventional-changelog-angular": "^8.0.0",
"conventional-recommended-bump": "^11.1.0",
"eslint": "^10.0.0",
"eslint-config-neon": "^0.2.7",
"eslint-config-neon": "^0.4.0",
"eslint-formatter-pretty": "^7.0.0",
"eslint-import-resolver-typescript": "^4.4.2",
"gen-esm-wrapper": "^1.1.3",
@@ -160,7 +160,7 @@
"ts-morph": "^27.0.0",
"tsutils": "^3.21.0",
"tsx": "^4.20.3",
"typescript": "^5.8.3",
"typescript": "^6.0.0",
"typescript-eslint": "^8.33.0"
},
"publishConfig": {
@@ -207,9 +207,9 @@
]
}
},
"packageManager": "yarn@4.12.0",
"packageManager": "yarn@4.14.1",
"volta": {
"node": "24.14.0",
"yarn": "4.12.0"
"node": "24.15.0",
"yarn": "4.14.1"
}
}

View File

@@ -154,7 +154,7 @@ export interface APIApplication {
/**
* If webhook events are enabled for the app
*/
event_webhooks_status: ApplicationWebhookEventStatus;
event_webhooks_status?: ApplicationWebhookEventStatus;
/**
* List of webhook event types the app subscribes to
*/
@@ -317,6 +317,68 @@ export enum ApplicationRoleConnectionMetadataType {
BooleanNotEqual,
}
/**
* @see {@link https://discord.com/developers/docs/resources/application#get-application-activity-instance-activity-location-kind-enum}
*/
export enum ActivityLocationKind {
/**
* Location is a guild channel
*/
GuildChannel = 'gc',
/**
* Location is a private channel, such as a DM or GDM
*/
PrivateChannel = 'pc',
}
/**
* @see {@link https://discord.com/developers/docs/resources/application#get-application-activity-instance-activity-location-object}
*/
export interface APIActivityLocation {
/**
* Unique identifier for the location
*/
id: string;
/**
* Enum describing kind of location
*/
kind: ActivityLocationKind;
/**
* ID of the channel
*/
channel_id: Snowflake;
/**
* ID of the guild
*/
guild_id?: Snowflake | null;
}
/**
* @see {@link https://discord.com/developers/docs/resources/application#get-application-activity-instance-activity-instance-object}
*/
export interface APIActivityInstance {
/**
* Application ID
*/
application_id: Snowflake;
/**
* Activity instance ID
*/
instance_id: string;
/**
* Unique identifier for the launch
*/
launch_id: Snowflake;
/**
* Location the instance is running in
*/
location: APIActivityLocation;
/**
* IDs of the users currently connected to the instance
*/
users: Snowflake[];
}
/**
* @see {@link https://discord.com/developers/docs/resources/application#application-object-application-event-webhook-status}
*/

View File

@@ -347,6 +347,13 @@ export interface APIAuditLogOptions {
* - MEMBER_ROLE_UPDATE
*/
integration_type?: APIGuildIntegrationType;
/**
* ID of the app whose permissions were targeted
*
* Present from:
* - APPLICATION_COMMAND_PERMISSION_UPDATE
*/
application_id?: Snowflake;
}
export enum AuditLogOptionsType {

View File

@@ -3,7 +3,7 @@
import type { Snowflake } from '../../globals';
import type { _NonNullableFields } from '../../utils/internals';
import type { APIApplication } from './application';
import type { APIChannel, ChannelType } from './channel';
import type { APIChannel, APIThreadChannel, APIThreadMember, ChannelType } from './channel';
import type { APIPartialEmoji } from './emoji';
import type { APIInteractionDataResolved, APIMessageInteraction, APIMessageInteractionMetadata } from './interactions';
import type { APIRole } from './permissions';
@@ -87,7 +87,7 @@ export interface APIBaseMessageNoChannel {
*/
mention_channels?: APIChannelMention[];
/**
* Any attached files
* Any attached files that are not referenced in embeds or components
*
* @see {@link https://discord.com/developers/docs/resources/message#attachment-object-attachment-structure}
*
@@ -471,7 +471,8 @@ export interface APIMessageCall {
* @see https://docs.discord.com/developers/resources/message#base-theme-types
*/
export enum BaseThemeType {
Dark = 1,
Unset,
Dark,
Light,
Darker,
Midnight,
@@ -616,9 +617,9 @@ export interface APIEmbed {
/**
* Thumbnail information
*
* @see {@link https://discord.com/developers/docs/resources/message#embed-object-embed-thumbnail-structure}
* @see {@link https://docs.discord.com/developers/resources/message#embed-object-embed-image-structure}
*/
thumbnail?: APIEmbedThumbnail;
thumbnail?: APIEmbedImage;
/**
* Video information
*
@@ -645,6 +646,13 @@ export interface APIEmbed {
* @see {@link https://discord.com/developers/docs/resources/message#embed-object-embed-field-structure}
*/
fields?: APIEmbedField[];
/**
* Embed flags combined as a bitfield
*
* @see {@link https://docs.discord.com/developers/resources/message#embed-object-embed-flags}
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
flags?: EmbedFlags;
}
/**
@@ -688,27 +696,30 @@ export enum EmbedType {
}
/**
* @see {@link https://discord.com/developers/docs/resources/message#embed-object-embed-thumbnail-structure}
* @see {@link https://docs.discord.com/developers/resources/message#embed-object-embed-flags}
*/
export interface APIEmbedThumbnail {
export enum EmbedFlags {
/**
* Source url of thumbnail (only supports http(s) and attachments)
* This embed is a fallback for a reply to an activity card
*/
url: string;
/**
* A proxied url of the thumbnail
*/
proxy_url?: string;
/**
* Height of thumbnail
*/
height?: number;
/**
* Width of thumbnail
*/
width?: number;
IsContentInventoryEntry = 1 << 5,
}
/**
* @see {@link https://docs.discord.com/developers/resources/message#embed-object-embed-media-flags}
*/
export enum EmbedMediaFlags {
/**
* This image is animated
*/
IsAnimated = 1 << 5,
}
/**
* @deprecated Use {@link APIEmbedImage} instead.
*/
export interface APIEmbedThumbnail extends APIEmbedImage {}
/**
* @see {@link https://discord.com/developers/docs/resources/message#embed-object-embed-video-structure}
*/
@@ -729,6 +740,33 @@ export interface APIEmbedVideo {
* Width of video
*/
width?: number;
/**
* The video's media type
*
* @see {@link https://en.wikipedia.org/wiki/Media_type}
*/
content_type?: string;
/**
* ThumbHash placeholder of the video
*
* @see {@link https://evanw.github.io/thumbhash/}
*/
placeholder?: string;
/**
* Version of the placeholder
*/
placeholder_version?: number;
/**
* Description (alt text) for the video
*/
description?: string;
/**
* Embed media flags combined as a bitfield
*
* @see {@link https://docs.discord.com/developers/resources/message#embed-object-embed-media-flags}
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
flags?: EmbedMediaFlags;
}
/**
@@ -751,6 +789,33 @@ export interface APIEmbedImage {
* Width of image
*/
width?: number;
/**
* The image's media type
*
* @see {@link https://en.wikipedia.org/wiki/Media_type}
*/
content_type?: string;
/**
* ThumbHash placeholder of the image
*
* @see {@link https://evanw.github.io/thumbhash/}
*/
placeholder?: string;
/**
* Version of the placeholder
*/
placeholder_version?: number;
/**
* Description (alt text) for the image
*/
description?: string;
/**
* Embed media flags combined as a bitfield
*
* @see {@link https://docs.discord.com/developers/resources/message#embed-object-embed-media-flags}
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
flags?: EmbedMediaFlags;
}
/**
@@ -853,7 +918,7 @@ export interface APIAttachment {
*/
title?: string;
/**
* Description for the file
* Description (alt text) for the file (max 1024 characters)
*/
description?: string;
/**
@@ -875,15 +940,27 @@ export interface APIAttachment {
*/
proxy_url: string;
/**
* Height of file (if image)
* Height of file (if image or video)
*/
height?: number | null;
/**
* Width of file (if image)
* Width of file (if image or video)
*/
width?: number | null;
/**
* ThumbHash placeholder (if image or video)
*
* @see {@link https://evanw.github.io/thumbhash/}
*/
placeholder?: string;
/**
* Version of the placeholder (if image or video)
*/
placeholder_version?: number;
/**
* Whether this attachment is ephemeral
*
* @remarks Ephemeral attachments will automatically be removed after a set period of time. Ephemeral attachments on messages are guaranteed to be available as long as the message itself exists.
*/
ephemeral?: boolean;
/**
@@ -898,16 +975,48 @@ export interface APIAttachment {
* Attachment flags combined as a bitfield
*/
flags?: AttachmentFlags;
/**
* For Clips, array of users who were in the stream
*/
clip_participants?: APIUser[];
/**
* For Clips, when the clip was created
*/
clip_created_at?: string;
/**
* For Clips, the application in the stream, if recognized
*/
application?: APIApplication | null;
}
/**
* @see {@link https://discord.com/developers/docs/resources/message#attachment-object-attachment-structure-attachment-flags}
* @see {@link https://docs.discord.com/developers/resources/message#attachment-object-attachment-flags}
*/
export enum AttachmentFlags {
/**
* This attachment is a Clip from a stream
*
* @see {@link https://support.discord.com/hc/en-us/articles/16861982215703}
*/
IsClip = 1 << 0,
/**
* This attachment is the thumbnail of a thread in a media channel, displayed in the grid but not on the message
*/
IsThumbnail = 1 << 1,
/**
* This attachment has been edited using the remix feature on mobile
*
* @deprecated
*/
IsRemix = 1 << 2,
/**
* This attachment was marked as a spoiler and is blurred until clicked
*/
IsSpoiler = 1 << 3,
/**
* This attachment is an animated image
*/
IsAnimated = 1 << 5,
}
/**
@@ -1481,6 +1590,9 @@ export interface APITextInputComponent extends APIBaseComponent<ComponentType.Te
required?: boolean;
}
/**
* @unstable This enum is currently not documented by Discord
*/
export enum UnfurledMediaItemLoadingState {
Unknown,
Loading,
@@ -1493,37 +1605,78 @@ export enum UnfurledMediaItemLoadingState {
*/
export interface APIUnfurledMediaItem {
/**
* Supports arbitrary urls and attachment://<filename> references
* Supports arbitrary urls and `attachment://<filename>` references
*/
url: string;
/**
* The proxied url of the media item. This field is ignored and provided by the API as part of the response
* The proxied url of the media item
*
* @remarks This field is ignored and provided by the API as part of the response.
*/
proxy_url?: string;
/**
* The width of the media item. This field is ignored and provided by the API as part of the response
* The width of the media item (if image or video)
*
* @remarks This field is ignored and provided by the API as part of the response.
*/
width?: number | null;
/**
* The height of the media item. This field is ignored and provided by the API as part of the response
* The height of the media item (if image or video)
*
* @remarks This field is ignored and provided by the API as part of the response.
*/
height?: number | null;
/**
* ThumbHash placeholder (if image or video)
*
* @remarks This field is ignored and provided by the API as part of the response.
* @see {@link https://evanw.github.io/thumbhash/}
*/
placeholder?: string | null;
/**
* Version of the placeholder (if image or video)
*
* @remarks This field is ignored and provided by the API as part of the response.
*/
placeholder_version?: number | null;
/**
* The media type of the content. This field is ignored and provided by the API as part of the response
* The media type of the content
*
* @remarks This field is ignored and provided by the API as part of the response.
* @see {@link https://en.wikipedia.org/wiki/Media_type}
*/
content_type?: string | null;
loading_state?: UnfurledMediaItemLoadingState;
flags?: number;
/**
* The id of the uploaded attachment. This field is ignored and provided by the API as part of the response
* @unstable This field is currently not documented by Discord
*/
loading_state?: UnfurledMediaItemLoadingState;
/**
* Unfurled media item flags combined as a bitfield
*
* @remarks This field is ignored and provided by the API as part of the response.
* @see {@link https://docs.discord.com/developers/components/reference#unfurled-media-item-unfurled-media-item-flags}
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
flags?: UnfurledMediaItemFlags;
/**
* The id of the uploaded attachment.
*
* @remarks This field is ignored and provided by the API as part of the response.
* @remarks Only present if the media item was uploaded as an attachment.
*/
attachment_id?: Snowflake;
}
/**
* @see {@link https://docs.discord.com/developers/components/reference#unfurled-media-item-unfurled-media-item-flags}
*/
export enum UnfurledMediaItemFlags {
/**
* This image is animated
*/
IsAnimated = 1 << 0,
}
/**
* A Section is a top-level layout component that allows you to join text contextually with an accessory.
*
@@ -1997,3 +2150,198 @@ export interface APIMessagePin {
*/
message: APIMessage;
}
/**
* @remarks All types can be negated by prefixing them with `-`, which means results will not include messages that match the type.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-author-types}
*/
export enum MessageSearchAuthorType {
/**
* Return messages sent by user accounts
*/
User = 'user',
/**
* Return messages sent by bot accounts
*/
Bot = 'bot',
/**
* Return messages sent by webhooks
*/
Webhook = 'webhook',
/**
* Return messages not sent by user accounts
*/
NotUser = '-user',
/**
* Return messages not sent by bot accounts
*/
NotBot = '-bot',
/**
* Return messages not sent by webhooks
*/
NotWebhook = '-webhook',
}
/**
* @remarks All types can be negated by prefixing them with `-`, which means results will not include messages that match the type.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-search-has-types}
*/
export enum MessageSearchHasType {
/**
* Return messages that have an image
*/
Image = 'image',
/**
* Return messages that have a sound attachment
*/
Sound = 'sound',
/**
* Return messages that have a video
*/
Video = 'video',
/**
* Return messages that have an attachment
*/
File = 'file',
/**
* Return messages that have a sent sticker
*/
Sticker = 'sticker',
/**
* Return messages that have an embed
*/
Embed = 'embed',
/**
* Return messages that have a link
*/
Link = 'link',
/**
* Return messages that have a poll
*/
Poll = 'poll',
/**
* Return messages that have a forwarded message
*/
Snapshot = 'snapshot',
/**
* Return messages that don't have an image
*/
NotImage = '-image',
/**
* Return messages that don't have a sound attachment
*/
NotSound = '-sound',
/**
* Return messages that don't have a video
*/
NotVideo = '-video',
/**
* Return messages that don't have an attachment
*/
NotFile = '-file',
/**
* Return messages that don't have a sent sticker
*/
NotSticker = '-sticker',
/**
* Return messages that don't have an embed
*/
NotEmbed = '-embed',
/**
* Return messages that don't have a link
*/
NotLink = '-link',
/**
* Return messages that don't have a poll
*/
NotPoll = '-poll',
/**
* Return messages that don't have a forwarded message
*/
NotSnapshot = '-snapshot',
}
/**
* @remarks These do not correspond 1:1 to actual {@link https://docs.discord.com/developers/resources/message#embed-object-embed-types | embed types} and encompass a wider range of actual types.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-search-embed-types}
*/
export enum MessageSearchEmbedType {
/**
* Return messages that have an image embed
*/
Image = 'image',
/**
* Return messages that have a video embed
*/
Video = 'video',
/**
* Return messages that have a gifv embed
*
* @remarks Messages sent before February 24, 2026 may not be properly indexed under the `gif` embed type.
*/
Gif = 'gif',
/**
* Return messages that have a sound embed
*/
Sound = 'sound',
/**
* Return messages that have an article embed
*/
Article = 'article',
}
/**
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-search-sort-modes}
*/
export enum MessageSearchSortMode {
/**
* Sort by the message creation time (default)
*/
Timestamp = 'timestamp',
/**
* Sort by the relevance of the message to the search query
*/
Relevance = 'relevance',
}
/**
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages}
*/
export interface APIMessageSearchIndexNotReadyResponse {
message: string;
code: number;
documents_indexed: number;
retry_after: number;
}
/**
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-response-body}
*/
export interface APIMessageSearchResult {
/**
* Whether the guild is undergoing a deep historical indexing operation
*/
doing_deep_historical_index: boolean;
/**
* The number of documents that have been indexed during the current index operation, if any
*/
documents_indexed?: number;
/**
* The total number of results that match the query
*/
total_results: number;
/**
* A nested array of messages that match the query
*
* @remarks The nested array was used to provide surrounding context to search results. However, surrounding context is no longer returned.
*/
messages: Omit<APIMessage, 'reactions'>[][];
/**
* The threads that contain the returned messages
*/
threads?: APIThreadChannel[];
/**
* A thread member object for each returned thread the current user has joined
*/
members?: APIThreadMember[];
}

View File

@@ -22,7 +22,7 @@ export interface APIUser {
*/
discriminator: string;
/**
* The user's display name, if it is set. For bots, this is the application name
* The user's display name, if it is set
*/
global_name: string | null;
/**
@@ -194,6 +194,8 @@ export enum UserFlags {
DisablePremium = 1 << 21,
/**
* User is an {@link https://support-dev.discord.com/hc/articles/10113997751447 | Active Developer}
*
* @deprecated This user flag is no longer available. See {@link https://support-dev.discord.com/hc/articles/10113997751447-Active-Developer-Badge} for more information.
*/
ActiveDeveloper = 1 << 22,
/**

View File

@@ -30,11 +30,11 @@ export interface APIWebhook {
/**
* The guild id this webhook is for
*/
guild_id?: Snowflake;
guild_id?: Snowflake | null;
/**
* The channel id this webhook is for
*/
channel_id: Snowflake;
channel_id: Snowflake | null;
/**
* The user this webhook was created by (not returned when getting a webhook with its token)
*

View File

@@ -154,7 +154,7 @@ export interface APIApplication {
/**
* If webhook events are enabled for the app
*/
event_webhooks_status: ApplicationWebhookEventStatus;
event_webhooks_status?: ApplicationWebhookEventStatus;
/**
* List of webhook event types the app subscribes to
*/
@@ -317,6 +317,68 @@ export enum ApplicationRoleConnectionMetadataType {
BooleanNotEqual,
}
/**
* @see {@link https://discord.com/developers/docs/resources/application#get-application-activity-instance-activity-location-kind-enum}
*/
export enum ActivityLocationKind {
/**
* Location is a guild channel
*/
GuildChannel = 'gc',
/**
* Location is a private channel, such as a DM or GDM
*/
PrivateChannel = 'pc',
}
/**
* @see {@link https://discord.com/developers/docs/resources/application#get-application-activity-instance-activity-location-object}
*/
export interface APIActivityLocation {
/**
* Unique identifier for the location
*/
id: string;
/**
* Enum describing kind of location
*/
kind: ActivityLocationKind;
/**
* ID of the channel
*/
channel_id: Snowflake;
/**
* ID of the guild
*/
guild_id?: Snowflake | null;
}
/**
* @see {@link https://discord.com/developers/docs/resources/application#get-application-activity-instance-activity-instance-object}
*/
export interface APIActivityInstance {
/**
* Application ID
*/
application_id: Snowflake;
/**
* Activity instance ID
*/
instance_id: string;
/**
* Unique identifier for the launch
*/
launch_id: Snowflake;
/**
* Location the instance is running in
*/
location: APIActivityLocation;
/**
* IDs of the users currently connected to the instance
*/
users: Snowflake[];
}
/**
* @see {@link https://discord.com/developers/docs/resources/application#application-object-application-event-webhook-status}
*/

View File

@@ -347,6 +347,13 @@ export interface APIAuditLogOptions {
* - MEMBER_ROLE_UPDATE
*/
integration_type?: APIGuildIntegrationType;
/**
* ID of the app whose permissions were targeted
*
* Present from:
* - APPLICATION_COMMAND_PERMISSION_UPDATE
*/
application_id?: Snowflake;
}
export enum AuditLogOptionsType {

View File

@@ -3,7 +3,7 @@
import type { Snowflake } from '../../globals';
import type { _NonNullableFields } from '../../utils/internals';
import type { APIApplication } from './application';
import type { APIChannel, ChannelType } from './channel';
import type { APIChannel, APIThreadChannel, APIThreadMember, ChannelType } from './channel';
import type { APIPartialEmoji } from './emoji';
import type { APIInteractionDataResolved, APIMessageInteraction, APIMessageInteractionMetadata } from './interactions';
import type { APIRole } from './permissions';
@@ -86,7 +86,7 @@ export interface APIBaseMessageNoChannel {
*/
mention_channels?: APIChannelMention[];
/**
* Any attached files
* Any attached files that are not referenced in embeds or components
*
* @see {@link https://discord.com/developers/docs/resources/message#attachment-object-attachment-structure}
*
@@ -466,7 +466,8 @@ export interface APIMessageCall {
* @see https://docs.discord.com/developers/resources/message#base-theme-types
*/
export enum BaseThemeType {
Dark = 1,
Unset,
Dark,
Light,
Darker,
Midnight,
@@ -611,9 +612,9 @@ export interface APIEmbed {
/**
* Thumbnail information
*
* @see {@link https://discord.com/developers/docs/resources/message#embed-object-embed-thumbnail-structure}
* @see {@link https://docs.discord.com/developers/resources/message#embed-object-embed-image-structure}
*/
thumbnail?: APIEmbedThumbnail;
thumbnail?: APIEmbedImage;
/**
* Video information
*
@@ -640,6 +641,13 @@ export interface APIEmbed {
* @see {@link https://discord.com/developers/docs/resources/message#embed-object-embed-field-structure}
*/
fields?: APIEmbedField[];
/**
* Embed flags combined as a bitfield
*
* @see {@link https://docs.discord.com/developers/resources/message#embed-object-embed-flags}
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
flags?: EmbedFlags;
}
/**
@@ -683,27 +691,30 @@ export enum EmbedType {
}
/**
* @see {@link https://discord.com/developers/docs/resources/message#embed-object-embed-thumbnail-structure}
* @see {@link https://docs.discord.com/developers/resources/message#embed-object-embed-flags}
*/
export interface APIEmbedThumbnail {
export enum EmbedFlags {
/**
* Source url of thumbnail (only supports http(s) and attachments)
* This embed is a fallback for a reply to an activity card
*/
url: string;
/**
* A proxied url of the thumbnail
*/
proxy_url?: string;
/**
* Height of thumbnail
*/
height?: number;
/**
* Width of thumbnail
*/
width?: number;
IsContentInventoryEntry = 1 << 5,
}
/**
* @see {@link https://docs.discord.com/developers/resources/message#embed-object-embed-media-flags}
*/
export enum EmbedMediaFlags {
/**
* This image is animated
*/
IsAnimated = 1 << 5,
}
/**
* @deprecated Use {@link APIEmbedImage} instead.
*/
export interface APIEmbedThumbnail extends APIEmbedImage {}
/**
* @see {@link https://discord.com/developers/docs/resources/message#embed-object-embed-video-structure}
*/
@@ -724,6 +735,33 @@ export interface APIEmbedVideo {
* Width of video
*/
width?: number;
/**
* The video's media type
*
* @see {@link https://en.wikipedia.org/wiki/Media_type}
*/
content_type?: string;
/**
* ThumbHash placeholder of the video
*
* @see {@link https://evanw.github.io/thumbhash/}
*/
placeholder?: string;
/**
* Version of the placeholder
*/
placeholder_version?: number;
/**
* Description (alt text) for the video
*/
description?: string;
/**
* Embed media flags combined as a bitfield
*
* @see {@link https://docs.discord.com/developers/resources/message#embed-object-embed-media-flags}
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
flags?: EmbedMediaFlags;
}
/**
@@ -746,6 +784,33 @@ export interface APIEmbedImage {
* Width of image
*/
width?: number;
/**
* The image's media type
*
* @see {@link https://en.wikipedia.org/wiki/Media_type}
*/
content_type?: string;
/**
* ThumbHash placeholder of the image
*
* @see {@link https://evanw.github.io/thumbhash/}
*/
placeholder?: string;
/**
* Version of the placeholder
*/
placeholder_version?: number;
/**
* Description (alt text) for the image
*/
description?: string;
/**
* Embed media flags combined as a bitfield
*
* @see {@link https://docs.discord.com/developers/resources/message#embed-object-embed-media-flags}
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
flags?: EmbedMediaFlags;
}
/**
@@ -848,7 +913,7 @@ export interface APIAttachment {
*/
title?: string;
/**
* Description for the file
* Description (alt text) for the file (max 1024 characters)
*/
description?: string;
/**
@@ -870,15 +935,27 @@ export interface APIAttachment {
*/
proxy_url: string;
/**
* Height of file (if image)
* Height of file (if image or video)
*/
height?: number | null;
/**
* Width of file (if image)
* Width of file (if image or video)
*/
width?: number | null;
/**
* ThumbHash placeholder (if image or video)
*
* @see {@link https://evanw.github.io/thumbhash/}
*/
placeholder?: string;
/**
* Version of the placeholder (if image or video)
*/
placeholder_version?: number;
/**
* Whether this attachment is ephemeral
*
* @remarks Ephemeral attachments will automatically be removed after a set period of time. Ephemeral attachments on messages are guaranteed to be available as long as the message itself exists.
*/
ephemeral?: boolean;
/**
@@ -893,16 +970,48 @@ export interface APIAttachment {
* Attachment flags combined as a bitfield
*/
flags?: AttachmentFlags;
/**
* For Clips, array of users who were in the stream
*/
clip_participants?: APIUser[];
/**
* For Clips, when the clip was created
*/
clip_created_at?: string;
/**
* For Clips, the application in the stream, if recognized
*/
application?: APIApplication | null;
}
/**
* @see {@link https://discord.com/developers/docs/resources/message#attachment-object-attachment-structure-attachment-flags}
* @see {@link https://docs.discord.com/developers/resources/message#attachment-object-attachment-flags}
*/
export enum AttachmentFlags {
/**
* This attachment is a Clip from a stream
*
* @see {@link https://support.discord.com/hc/en-us/articles/16861982215703}
*/
IsClip = 1 << 0,
/**
* This attachment is the thumbnail of a thread in a media channel, displayed in the grid but not on the message
*/
IsThumbnail = 1 << 1,
/**
* This attachment has been edited using the remix feature on mobile
*
* @deprecated
*/
IsRemix = 1 << 2,
/**
* This attachment was marked as a spoiler and is blurred until clicked
*/
IsSpoiler = 1 << 3,
/**
* This attachment is an animated image
*/
IsAnimated = 1 << 5,
}
/**
@@ -1476,6 +1585,9 @@ export interface APITextInputComponent extends APIBaseComponent<ComponentType.Te
required?: boolean;
}
/**
* @unstable This enum is currently not documented by Discord
*/
export enum UnfurledMediaItemLoadingState {
Unknown,
Loading,
@@ -1488,37 +1600,78 @@ export enum UnfurledMediaItemLoadingState {
*/
export interface APIUnfurledMediaItem {
/**
* Supports arbitrary urls and attachment://<filename> references
* Supports arbitrary urls and `attachment://<filename>` references
*/
url: string;
/**
* The proxied url of the media item. This field is ignored and provided by the API as part of the response
* The proxied url of the media item
*
* @remarks This field is ignored and provided by the API as part of the response.
*/
proxy_url?: string;
/**
* The width of the media item. This field is ignored and provided by the API as part of the response
* The width of the media item (if image or video)
*
* @remarks This field is ignored and provided by the API as part of the response.
*/
width?: number | null;
/**
* The height of the media item. This field is ignored and provided by the API as part of the response
* The height of the media item (if image or video)
*
* @remarks This field is ignored and provided by the API as part of the response.
*/
height?: number | null;
/**
* ThumbHash placeholder (if image or video)
*
* @remarks This field is ignored and provided by the API as part of the response.
* @see {@link https://evanw.github.io/thumbhash/}
*/
placeholder?: string | null;
/**
* Version of the placeholder (if image or video)
*
* @remarks This field is ignored and provided by the API as part of the response.
*/
placeholder_version?: number | null;
/**
* The media type of the content. This field is ignored and provided by the API as part of the response
* The media type of the content
*
* @remarks This field is ignored and provided by the API as part of the response.
* @see {@link https://en.wikipedia.org/wiki/Media_type}
*/
content_type?: string | null;
loading_state?: UnfurledMediaItemLoadingState;
flags?: number;
/**
* The id of the uploaded attachment. This field is ignored and provided by the API as part of the response
* @unstable This field is currently not documented by Discord
*/
loading_state?: UnfurledMediaItemLoadingState;
/**
* Unfurled media item flags combined as a bitfield
*
* @remarks This field is ignored and provided by the API as part of the response.
* @see {@link https://docs.discord.com/developers/components/reference#unfurled-media-item-unfurled-media-item-flags}
* @see {@link https://en.wikipedia.org/wiki/Bit_field}
*/
flags?: UnfurledMediaItemFlags;
/**
* The id of the uploaded attachment.
*
* @remarks This field is ignored and provided by the API as part of the response.
* @remarks Only present if the media item was uploaded as an attachment.
*/
attachment_id?: Snowflake;
}
/**
* @see {@link https://docs.discord.com/developers/components/reference#unfurled-media-item-unfurled-media-item-flags}
*/
export enum UnfurledMediaItemFlags {
/**
* This image is animated
*/
IsAnimated = 1 << 0,
}
/**
* A Section is a top-level layout component that allows you to join text contextually with an accessory.
*
@@ -1993,3 +2146,198 @@ export interface APIMessagePin {
*/
message: APIMessage;
}
/**
* @remarks All types can be negated by prefixing them with `-`, which means results will not include messages that match the type.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-author-types}
*/
export enum MessageSearchAuthorType {
/**
* Return messages sent by user accounts
*/
User = 'user',
/**
* Return messages sent by bot accounts
*/
Bot = 'bot',
/**
* Return messages sent by webhooks
*/
Webhook = 'webhook',
/**
* Return messages not sent by user accounts
*/
NotUser = '-user',
/**
* Return messages not sent by bot accounts
*/
NotBot = '-bot',
/**
* Return messages not sent by webhooks
*/
NotWebhook = '-webhook',
}
/**
* @remarks All types can be negated by prefixing them with `-`, which means results will not include messages that match the type.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-search-has-types}
*/
export enum MessageSearchHasType {
/**
* Return messages that have an image
*/
Image = 'image',
/**
* Return messages that have a sound attachment
*/
Sound = 'sound',
/**
* Return messages that have a video
*/
Video = 'video',
/**
* Return messages that have an attachment
*/
File = 'file',
/**
* Return messages that have a sent sticker
*/
Sticker = 'sticker',
/**
* Return messages that have an embed
*/
Embed = 'embed',
/**
* Return messages that have a link
*/
Link = 'link',
/**
* Return messages that have a poll
*/
Poll = 'poll',
/**
* Return messages that have a forwarded message
*/
Snapshot = 'snapshot',
/**
* Return messages that don't have an image
*/
NotImage = '-image',
/**
* Return messages that don't have a sound attachment
*/
NotSound = '-sound',
/**
* Return messages that don't have a video
*/
NotVideo = '-video',
/**
* Return messages that don't have an attachment
*/
NotFile = '-file',
/**
* Return messages that don't have a sent sticker
*/
NotSticker = '-sticker',
/**
* Return messages that don't have an embed
*/
NotEmbed = '-embed',
/**
* Return messages that don't have a link
*/
NotLink = '-link',
/**
* Return messages that don't have a poll
*/
NotPoll = '-poll',
/**
* Return messages that don't have a forwarded message
*/
NotSnapshot = '-snapshot',
}
/**
* @remarks These do not correspond 1:1 to actual {@link https://docs.discord.com/developers/resources/message#embed-object-embed-types | embed types} and encompass a wider range of actual types.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-search-embed-types}
*/
export enum MessageSearchEmbedType {
/**
* Return messages that have an image embed
*/
Image = 'image',
/**
* Return messages that have a video embed
*/
Video = 'video',
/**
* Return messages that have a gifv embed
*
* @remarks Messages sent before February 24, 2026 may not be properly indexed under the `gif` embed type.
*/
Gif = 'gif',
/**
* Return messages that have a sound embed
*/
Sound = 'sound',
/**
* Return messages that have an article embed
*/
Article = 'article',
}
/**
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-search-sort-modes}
*/
export enum MessageSearchSortMode {
/**
* Sort by the message creation time (default)
*/
Timestamp = 'timestamp',
/**
* Sort by the relevance of the message to the search query
*/
Relevance = 'relevance',
}
/**
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages}
*/
export interface APIMessageSearchIndexNotReadyResponse {
message: string;
code: number;
documents_indexed: number;
retry_after: number;
}
/**
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-response-body}
*/
export interface APIMessageSearchResult {
/**
* Whether the guild is undergoing a deep historical indexing operation
*/
doing_deep_historical_index: boolean;
/**
* The number of documents that have been indexed during the current index operation, if any
*/
documents_indexed?: number;
/**
* The total number of results that match the query
*/
total_results: number;
/**
* A nested array of messages that match the query
*
* @remarks The nested array was used to provide surrounding context to search results. However, surrounding context is no longer returned.
*/
messages: Omit<APIMessage, 'reactions'>[][];
/**
* The threads that contain the returned messages
*/
threads?: APIThreadChannel[];
/**
* A thread member object for each returned thread the current user has joined
*/
members?: APIThreadMember[];
}

View File

@@ -22,7 +22,7 @@ export interface APIUser {
*/
discriminator: string;
/**
* The user's display name, if it is set. For bots, this is the application name
* The user's display name, if it is set
*/
global_name: string | null;
/**
@@ -194,6 +194,8 @@ export enum UserFlags {
DisablePremium = 1 << 21,
/**
* User is an {@link https://support-dev.discord.com/hc/articles/10113997751447 | Active Developer}
*
* @deprecated This user flag is no longer available. See {@link https://support-dev.discord.com/hc/articles/10113997751447-Active-Developer-Badge} for more information.
*/
ActiveDeveloper = 1 << 22,
/**

View File

@@ -30,11 +30,11 @@ export interface APIWebhook {
/**
* The guild id this webhook is for
*/
guild_id?: Snowflake;
guild_id?: Snowflake | null;
/**
* The channel id this webhook is for
*/
channel_id: Snowflake;
channel_id: Snowflake | null;
/**
* The user this webhook was created by (not returned when getting a webhook with its token)
*

View File

@@ -75,8 +75,16 @@ export enum RESTJSONErrorCodes {
UnderMinimumAge = 20_024,
ChannelSendRateLimit = 20_028,
ServerSendRateLimit,
ChannelWriteRateLimit = 20_028,
/**
* @deprecated Use {@link RESTJSONErrorCodes.ChannelWriteRateLimit} instead
*/
ChannelSendRateLimit = ChannelWriteRateLimit,
ServerWriteRateLimit = 20_029,
/**
* @deprecated Use {@link RESTJSONErrorCodes.ServerWriteRateLimit} instead
*/
ServerSendRateLimit = ServerWriteRateLimit,
StageTopicServerNameServerDescriptionOrChannelNamesContainDisallowedWords = 20_031,
@@ -173,6 +181,9 @@ export enum RESTJSONErrorCodes {
GuildWidgetDisabled,
CannotEditMessageAuthoredByAnotherUser,
CannotSendAnEmptyMessage,
/**
* @see {@link RESTJSONErrorCodes.CannotSendMessagesToThisUserDueToHavingNoMutualGuilds} for a similar error code
*/
CannotSendMessagesToThisUser,
CannotSendMessagesInNonTextChannel,
ChannelVerificationLevelTooHighForYouToGainAccess,
@@ -246,7 +257,11 @@ export enum RESTJSONErrorCodes {
OwnerCannotBePendingMember = 50_131,
OwnershipCannotBeMovedToABotUser,
FailedToResizeAssetBelowTheMinimumSize = 50_138,
FailedToResizeAssetBelowTheMaximumSize = 50_138,
/**
* @deprecated This name is incorrect. Use {@link RESTJSONErrorCodes.FailedToResizeAssetBelowTheMaximumSize} instead
*/
FailedToResizeAssetBelowTheMinimumSize = FailedToResizeAssetBelowTheMaximumSize,
CannotMixSubscriptionAndNonSubscriptionRolesForAnEmoji = 50_144,
CannotConvertBetweenPremiumEmojiAndNormalEmoji,
@@ -266,6 +281,11 @@ export enum RESTJSONErrorCodes {
ProvidedFileDoesNotHaveAValidDuration = 50_192,
/**
* @see {@link RESTJSONErrorCodes.CannotSendMessagesToThisUser} for a similar error code
*/
CannotSendMessagesToThisUserDueToHavingNoMutualGuilds = 50_278,
YouDoNotHavePermissionToSendThisSticker = 50_600,
TwoFactorAuthenticationIsRequired = 60_003,
@@ -275,7 +295,8 @@ export enum RESTJSONErrorCodes {
ReactionWasBlocked = 90_001,
UserCannotUseBurstReactions,
ApplicationNotYetAvailable = 110_001,
IndexNotYetAvailable = 110_000,
ApplicationNotYetAvailable,
APIResourceOverloaded = 130_000,
@@ -288,6 +309,8 @@ export enum RESTJSONErrorCodes {
MaximumActiveThreads,
MaximumActiveAnnouncementThreads,
CannotForwardMessageWithUnreadableContent = 160_014,
InvalidJSONForUploadedLottieFile = 170_001,
UploadedLottiesCannotContainRasterizedImages,
StickerMaximumFramerateExceeded,
@@ -324,8 +347,28 @@ export enum RESTJSONErrorCodes {
CannotUseAnEmojiIncludedWithThePoll,
CannotExpireANonPollMessage = 520_006,
ProvisionalAccountsPermissionNotGranted = 530_000,
IdTokenJWTExpired,
IdTokenJWTIssuerMismatch,
IdTokenJWTAudienceMismatch,
IdTokenJWTIssuedTooLongAgo,
FailedToGenerateUniqueUsername = 530_006,
InvalidClientSecret,
}
/**
* JSON Error Codes that represent "Cannot send messages to this user".
* Discord uses two different error codes for this error:
* - {@link RESTJSONErrorCodes.CannotSendMessagesToThisUser} (50_007)
* - {@link RESTJSONErrorCodes.CannotSendMessagesToThisUserDueToHavingNoMutualGuilds} (50_278)
*/
export const CannotSendMessagesToThisUserErrorCodes = [
RESTJSONErrorCodes.CannotSendMessagesToThisUser,
RESTJSONErrorCodes.CannotSendMessagesToThisUserDueToHavingNoMutualGuilds,
] as const;
/**
* @see {@link https://discord.com/developers/docs/reference#locales}
*/

View File

@@ -1,4 +1,8 @@
import type { APIApplication, APIApplicationRoleConnectionMetadata } from '../../payloads/v10/application';
import type {
APIActivityInstance,
APIApplication,
APIApplicationRoleConnectionMetadata,
} from '../../payloads/v10/application';
import type { _Nullable, _StrictPartial } from '../../utils/internals';
/**
@@ -45,3 +49,8 @@ export type RESTPatchCurrentApplicationJSONBody = _StrictPartial<
* @see {@link https://discord.com/developers/docs/resources/application#edit-current-application}
*/
export type RESTPatchCurrentApplicationResult = APIApplication;
/**
* @see {@link https://discord.com/developers/docs/resources/application#get-application-activity-instance}
*/
export type RESTGetAPIApplicationActivityInstanceResult = APIActivityInstance;

View File

@@ -411,7 +411,13 @@ export interface RESTGetAPIChannelMessageReactionUsersQuery {
*/
export enum ReactionType {
Normal,
Super,
Burst,
// eslint-disable @typescript-eslint/no-duplicate-enum-values
/**
* @deprecated Use {@link ReactionType.Burst} instead
*/
Super = Burst,
// eslint-enable @typescript-eslint/no-duplicate-enum-values
}
/**
@@ -746,6 +752,10 @@ export type RESTPostAPIGuildForumThreadsFormDataBody = RESTPostAPIChannelMessage
* The initial message of the thread
*/
message: string;
/**
* The IDs of the set of tags to apply to the thread; limited to 5
*/
applied_tags?: Snowflake[] | undefined;
};
/**
@@ -836,6 +846,7 @@ export interface RESTGetAPIChannelThreadsArchivedQuery {
/**
* Get threads before this id or ISO8601 timestamp
*/
// eslint-disable-next-line @typescript-eslint/no-duplicate-type-constituents
before?: Snowflake | string;
/**
* Max number of thread to return

View File

@@ -30,6 +30,12 @@ import type {
APIRoleColors,
APIIncidentsData,
APIGuildChannel,
APIMessageSearchIndexNotReadyResponse,
APIMessageSearchResult,
MessageSearchAuthorType,
MessageSearchEmbedType,
MessageSearchHasType,
MessageSearchSortMode,
} from '../../payloads/v10/index';
import type {
_AddUndefinedToPossiblyUndefinedPropertiesOfInterface,
@@ -536,6 +542,151 @@ export interface RESTPatchAPIGuildMemberJSONBody {
*/
export type RESTPatchAPIGuildMemberResult = APIGuildMember;
/**
* Returns a list of messages without the `reactions` key that match a search query in the guild. Requires the `READ_MESSAGE_HISTORY` permission.
*
* @remarks The Search Guild Messages endpoint is restricted according to whether the `MESSAGE_CONTENT` Privileged Intent is enabled for your application.
*
* If the entity you are searching is not yet indexed, the endpoint will return a 202 accepted response. The response body will not contain any search results, and will look similar to an error response:
* ```json
* {
* "message": "Index not yet available. Try again later",
* "code": 110000,
* "documents_indexed": 0,
* "retry_after": 2
* }
* ```
*
* Due to speed optimizations, search may return slightly fewer results than the limit specified when messages have not been accessed for a long time.
* Clients should not rely on the length of the `messages` array to paginate results.
*
* Additionally, when messages are actively being created or deleted, the `total_results` field may not be accurate.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages}
*/
export interface RESTGetAPIGuildMessagesSearchQuery {
/**
* Max number of messages to return (1-25)
*
* @defaultValue `25`
*/
limit?: number;
/**
* Number to offset the returned messages by (max 9975)
*/
offset?: number;
/**
* Get messages before this message ID
*/
max_id?: Snowflake;
/**
* Get messages after this message ID
*/
min_id?: Snowflake;
/**
* Max number of words to skip between matching tokens in the search `content` (max 100)
*
* @defaultValue `2`
*/
slop?: number;
/**
* Filter messages by content (max 1024 characters)
*/
content?: string;
/**
* Filter messages by these channels (max 500)
*/
channel_id?: Snowflake[];
/**
* Filter messages by author type
*
* @remarks All types can be negated by prefixing them with `-`, which means results will not include messages that match the type.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-author-types}
*/
author_type?: MessageSearchAuthorType[];
/**
* Filter messages by these authors (max 100)
*/
author_id?: Snowflake[];
/**
* Filter messages that mention these users (max 100)
*/
mentions?: Snowflake[];
/**
* Filter messages that mention these roles (max 100)
*/
mentions_role_id?: Snowflake[];
/**
* Filter messages that do or do not mention `@everyone`
*/
mention_everyone?: boolean;
/**
* Filter messages that reply to these users (max 100)
*/
replied_to_user_id?: Snowflake[];
/**
* Filter messages that reply to these messages (max 100)
*/
replied_to_message_id?: Snowflake[];
/**
* Filter messages by whether they are or are not pinned
*/
pinned?: boolean;
/**
* Filter messages by whether or not they have specific things
*
* @remarks All types can be negated by prefixing them with `-`, which means results will not include messages that match the type.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-search-has-types}
*/
has?: MessageSearchHasType[];
/**
* Filter messages by embed type
*
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-search-embed-types}
*/
embed_type?: MessageSearchEmbedType[];
/**
* Filter messages by embed provider (case-sensitive, e.g. `Tenor`) (max 256 characters, max 100)
*/
embed_provider?: string[];
/**
* Filter messages by link hostname (e.g. `discordapp.com`) (max 256 characters, max 100)
*/
link_hostname?: string[];
/**
* Filter messages by attachment filename (max 1024 characters, max 100)
*/
attachment_filename?: string[];
/**
* Filter messages by attachment extension (e.g. `txt`) (max 256 characters, max 100)
*/
attachment_extension?: string[];
/**
* The sorting algorithm to use
*
* @remarks Sort order is not respected when sorting by relevance.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-search-sort-modes}
*/
sort_by?: MessageSearchSortMode;
/**
* The direction to sort (`asc` or `desc`)
*
* @defaultValue `'desc'`
* @remarks Sort order is not respected when sorting by relevance.
*/
sort_order?: 'asc' | 'desc';
/**
* Whether to include results from age-restricted channels
*
* @defaultValue `false`
*/
include_nsfw?: boolean;
}
/**
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-response-body}
*/
export type RESTGetAPIGuildMessagesSearchResult = APIMessageSearchIndexNotReadyResponse | APIMessageSearchResult;
/**
* @see {@link https://discord.com/developers/docs/resources/guild#modify-current-user-nick}
* @deprecated Use {@link https://discord.com/developers/docs/resources/guild#modify-current-member | Modify Current Member} instead.

View File

@@ -313,6 +313,14 @@ export const Routes = {
return `/guilds/${guildId}/members/search` as const;
},
/**
* Route for:
* - GET `/guilds/{guild.id}/messages/search`
*/
guildMessagesSearch(guildId: Snowflake) {
return `/guilds/${guildId}/messages/search` as const;
},
/**
* Route for:
* - PATCH `/guilds/{guild.id}/members/@me/nick`
@@ -985,6 +993,14 @@ export const Routes = {
return '/applications/@me' as const;
},
/**
* Route for:
* - GET `/applications/{application.id}/activity-instances/{instance_id}`
*/
applicationActivityInstance(applicationId: Snowflake, instanceId: string) {
return `/applications/${applicationId}/activity-instances/${instanceId}` as const;
},
/**
* Route for:
* - GET `/applications/{application.id}/entitlements`
@@ -1098,8 +1114,8 @@ export const Routes = {
},
};
for (const [key, fn] of Object.entries(Routes)) {
Routes[key as keyof typeof Routes] = (...args: (boolean | number | string | undefined)[]) => {
for (const [key, fn] of Object.entries(Routes) as [keyof typeof Routes, (...args: any[]) => string][]) {
Routes[key] = ((...args: any[]) => {
const escaped = args.map((arg) => {
if (arg) {
// Skip already "safe" urls
@@ -1112,9 +1128,10 @@ for (const [key, fn] of Object.entries(Routes)) {
return arg;
});
// eslint-disable-next-line no-useless-call
return fn.call(null, ...escaped);
};
}) as any;
}
// Freeze the object so it can't be changed
@@ -1429,8 +1446,8 @@ export const CDNRoutes = {
},
};
for (const [key, fn] of Object.entries(CDNRoutes)) {
CDNRoutes[key as keyof typeof CDNRoutes] = (...args: (boolean | number | string | undefined)[]) => {
for (const [key, fn] of Object.entries(CDNRoutes) as [keyof typeof CDNRoutes, (...args: any[]) => string][]) {
CDNRoutes[key] = ((...args: any[]) => {
const escaped = args.map((arg) => {
if (arg) {
// Skip already "safe" urls
@@ -1445,7 +1462,7 @@ for (const [key, fn] of Object.entries(CDNRoutes)) {
});
// eslint-disable-next-line no-useless-call
return fn.call(null, ...escaped);
};
}) as any;
}
// Freeze the object so it can't be changed

View File

@@ -4,7 +4,7 @@ import type { APIApplication, APIGuild, APIUser, APIWebhook, OAuth2Scopes } from
/**
* @see {@link https://discord.com/developers/docs/topics/oauth2#get-current-bot-application-information}
*/
export type RESTGetAPIOAuth2CurrentApplicationResult = Omit<APIApplication, 'flags'>;
export type RESTGetAPIOAuth2CurrentApplicationResult = APIApplication;
/**
* @see {@link https://discord.com/developers/docs/topics/oauth2#get-current-authorization-information}

View File

@@ -101,7 +101,7 @@ export interface RESTPostAPICurrentUserCreateDMChannelJSONBody {
/**
* The recipient to open a DM channel with
*/
recipient_id: string;
recipient_id: Snowflake;
}
/**

View File

@@ -51,7 +51,7 @@ export interface RESTPatchAPIGuildVoiceStateUserJSONBody {
/**
* The id of the channel the user is currently in
*/
channel_id: Snowflake;
channel_id?: Snowflake | undefined;
/**
* Toggles the user's suppress state
*/

View File

@@ -256,7 +256,7 @@ export type RESTGetAPIWebhookWithTokenMessageResult = APIMessage;
* @see {@link https://discord.com/developers/docs/resources/webhook#get-webhook-message-query-string-params}
*/
export interface RESTGetAPIWebhookWithTokenMessageQuery {
thread_id?: string;
thread_id?: Snowflake;
}
/**
@@ -309,6 +309,13 @@ export type RESTPatchAPIWebhookWithTokenMessageQuery = Pick<
*/
export type RESTPatchAPIWebhookWithTokenMessageResult = APIMessage;
/**
* @see {@link https://docs.discord.com/developers/resources/webhook#delete-webhook-message-query-string-params}
*/
export interface RESTDeleteAPIWebhookWithTokenMessageQuery {
thread_id?: Snowflake;
}
/**
* @see {@link https://discord.com/developers/docs/resources/webhook#delete-webhook-message}
*/

View File

@@ -522,8 +522,8 @@ export const Routes = {
},
};
for (const [key, fn] of Object.entries(Routes)) {
Routes[key] = (...args: (boolean | number | string | undefined)[]) => {
for (const [key, fn] of Object.entries(Routes) as [keyof typeof Routes, (...args: any[]) => string][]) {
Routes[key] = ((...args: any[]) => {
const escaped = args.map((arg) => {
if (arg) {
// Skip already "safe" urls
@@ -536,9 +536,10 @@ for (const [key, fn] of Object.entries(Routes)) {
return arg;
});
// eslint-disable-next-line no-useless-call
return fn.call(null, ...escaped);
};
}) as any;
}
// Freeze the object so it can't be changed

View File

@@ -778,8 +778,8 @@ export const Routes = {
},
};
for (const [key, fn] of Object.entries(Routes)) {
Routes[key] = (...args: (boolean | number | string | undefined)[]) => {
for (const [key, fn] of Object.entries(Routes) as [keyof typeof Routes, (...args: any[]) => string][]) {
Routes[key] = ((...args: any[]) => {
const escaped = args.map((arg) => {
if (arg) {
// Skip already "safe" urls
@@ -792,9 +792,10 @@ for (const [key, fn] of Object.entries(Routes)) {
return arg;
});
// eslint-disable-next-line no-useless-call
return fn.call(null, ...escaped);
};
}) as any;
}
// Freeze the object so it can't be changed

View File

@@ -1,4 +1,8 @@
import type { APIApplication, APIApplicationRoleConnectionMetadata } from '../../payloads/v9/application';
import type {
APIActivityInstance,
APIApplication,
APIApplicationRoleConnectionMetadata,
} from '../../payloads/v9/application';
import type { _StrictPartial, _Nullable } from '../../utils/internals';
/**
@@ -45,3 +49,8 @@ export type RESTPatchCurrentApplicationJSONBody = _StrictPartial<
* @see {@link https://discord.com/developers/docs/resources/application#edit-current-application}
*/
export type RESTPatchCurrentApplicationResult = APIApplication;
/**
* @see {@link https://discord.com/developers/docs/resources/application#get-application-activity-instance}
*/
export type RESTGetAPIApplicationActivityInstanceResult = APIActivityInstance;

View File

@@ -418,7 +418,13 @@ export interface RESTGetAPIChannelMessageReactionUsersQuery {
*/
export enum ReactionType {
Normal,
Super,
Burst,
// eslint-disable @typescript-eslint/no-duplicate-enum-values
/**
* @deprecated Use {@link ReactionType.Burst} instead
*/
Super = Burst,
// eslint-enable @typescript-eslint/no-duplicate-enum-values
}
/**
@@ -759,6 +765,10 @@ export type RESTPostAPIGuildForumThreadsFormDataBody = RESTPostAPIChannelMessage
* The initial message of the thread
*/
message: string;
/**
* The IDs of the set of tags to apply to the thread; limited to 5
*/
applied_tags?: Snowflake[] | undefined;
};
/**
@@ -849,6 +859,7 @@ export interface RESTGetAPIChannelThreadsArchivedQuery {
/**
* Get threads before this id or ISO8601 timestamp
*/
// eslint-disable-next-line @typescript-eslint/no-duplicate-type-constituents
before?: Snowflake | string;
/**
* Max number of thread to return

View File

@@ -30,6 +30,12 @@ import type {
APIRoleColors,
APIIncidentsData,
APIGuildChannel,
APIMessageSearchIndexNotReadyResponse,
APIMessageSearchResult,
MessageSearchAuthorType,
MessageSearchEmbedType,
MessageSearchHasType,
MessageSearchSortMode,
} from '../../payloads/v9/index';
import type {
_AddUndefinedToPossiblyUndefinedPropertiesOfInterface,
@@ -536,6 +542,151 @@ export interface RESTPatchAPIGuildMemberJSONBody {
*/
export type RESTPatchAPIGuildMemberResult = APIGuildMember;
/**
* Returns a list of messages without the `reactions` key that match a search query in the guild. Requires the `READ_MESSAGE_HISTORY` permission.
*
* @remarks The Search Guild Messages endpoint is restricted according to whether the `MESSAGE_CONTENT` Privileged Intent is enabled for your application.
*
* If the entity you are searching is not yet indexed, the endpoint will return a 202 accepted response. The response body will not contain any search results, and will look similar to an error response:
* ```json
* {
* "message": "Index not yet available. Try again later",
* "code": 110000,
* "documents_indexed": 0,
* "retry_after": 2
* }
* ```
*
* Due to speed optimizations, search may return slightly fewer results than the limit specified when messages have not been accessed for a long time.
* Clients should not rely on the length of the `messages` array to paginate results.
*
* Additionally, when messages are actively being created or deleted, the `total_results` field may not be accurate.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages}
*/
export interface RESTGetAPIGuildMessagesSearchQuery {
/**
* Max number of messages to return (1-25)
*
* @defaultValue `25`
*/
limit?: number;
/**
* Number to offset the returned messages by (max 9975)
*/
offset?: number;
/**
* Get messages before this message ID
*/
max_id?: Snowflake;
/**
* Get messages after this message ID
*/
min_id?: Snowflake;
/**
* Max number of words to skip between matching tokens in the search `content` (max 100)
*
* @defaultValue `2`
*/
slop?: number;
/**
* Filter messages by content (max 1024 characters)
*/
content?: string;
/**
* Filter messages by these channels (max 500)
*/
channel_id?: Snowflake[];
/**
* Filter messages by author type
*
* @remarks All types can be negated by prefixing them with `-`, which means results will not include messages that match the type.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-author-types}
*/
author_type?: MessageSearchAuthorType[];
/**
* Filter messages by these authors (max 100)
*/
author_id?: Snowflake[];
/**
* Filter messages that mention these users (max 100)
*/
mentions?: Snowflake[];
/**
* Filter messages that mention these roles (max 100)
*/
mentions_role_id?: Snowflake[];
/**
* Filter messages that do or do not mention `@everyone`
*/
mention_everyone?: boolean;
/**
* Filter messages that reply to these users (max 100)
*/
replied_to_user_id?: Snowflake[];
/**
* Filter messages that reply to these messages (max 100)
*/
replied_to_message_id?: Snowflake[];
/**
* Filter messages by whether they are or are not pinned
*/
pinned?: boolean;
/**
* Filter messages by whether or not they have specific things
*
* @remarks All types can be negated by prefixing them with `-`, which means results will not include messages that match the type.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-search-has-types}
*/
has?: MessageSearchHasType[];
/**
* Filter messages by embed type
*
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-search-embed-types}
*/
embed_type?: MessageSearchEmbedType[];
/**
* Filter messages by embed provider (case-sensitive, e.g. `Tenor`) (max 256 characters, max 100)
*/
embed_provider?: string[];
/**
* Filter messages by link hostname (e.g. `discordapp.com`) (max 256 characters, max 100)
*/
link_hostname?: string[];
/**
* Filter messages by attachment filename (max 1024 characters, max 100)
*/
attachment_filename?: string[];
/**
* Filter messages by attachment extension (e.g. `txt`) (max 256 characters, max 100)
*/
attachment_extension?: string[];
/**
* The sorting algorithm to use
*
* @remarks Sort order is not respected when sorting by relevance.
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-search-sort-modes}
*/
sort_by?: MessageSearchSortMode;
/**
* The direction to sort (`asc` or `desc`)
*
* @defaultValue `'desc'`
* @remarks Sort order is not respected when sorting by relevance.
*/
sort_order?: 'asc' | 'desc';
/**
* Whether to include results from age-restricted channels
*
* @defaultValue `false`
*/
include_nsfw?: boolean;
}
/**
* @see {@link https://docs.discord.com/developers/resources/message#search-guild-messages-response-body}
*/
export type RESTGetAPIGuildMessagesSearchResult = APIMessageSearchIndexNotReadyResponse | APIMessageSearchResult;
/**
* @see {@link https://discord.com/developers/docs/resources/guild#modify-current-user-nick}
* @deprecated Use {@link https://discord.com/developers/docs/resources/guild#modify-current-member | Modify Current Member} instead.

View File

@@ -313,6 +313,14 @@ export const Routes = {
return `/guilds/${guildId}/members/search` as const;
},
/**
* Route for:
* - GET `/guilds/{guild.id}/messages/search`
*/
guildMessagesSearch(guildId: Snowflake) {
return `/guilds/${guildId}/messages/search` as const;
},
/**
* Route for:
* - PATCH `/guilds/{guild.id}/members/@me/nick`
@@ -994,6 +1002,14 @@ export const Routes = {
return '/applications/@me' as const;
},
/**
* Route for:
* - GET `/applications/{application.id}/activity-instances/{instance_id}`
*/
applicationActivityInstance(applicationId: Snowflake, instanceId: string) {
return `/applications/${applicationId}/activity-instances/${instanceId}` as const;
},
/**
* Route for:
* - GET `/applications/{application.id}/entitlements`
@@ -1107,8 +1123,8 @@ export const Routes = {
},
};
for (const [key, fn] of Object.entries(Routes)) {
Routes[key as keyof typeof Routes] = (...args: (boolean | number | string | undefined)[]) => {
for (const [key, fn] of Object.entries(Routes) as [keyof typeof Routes, (...args: any[]) => string][]) {
Routes[key] = ((...args: any[]) => {
const escaped = args.map((arg) => {
if (arg) {
// Skip already "safe" urls
@@ -1121,9 +1137,10 @@ for (const [key, fn] of Object.entries(Routes)) {
return arg;
});
// eslint-disable-next-line no-useless-call
return fn.call(null, ...escaped);
};
}) as any;
}
// Freeze the object so it can't be changed
@@ -1438,8 +1455,8 @@ export const CDNRoutes = {
},
};
for (const [key, fn] of Object.entries(CDNRoutes)) {
CDNRoutes[key as keyof typeof CDNRoutes] = (...args: (boolean | number | string | undefined)[]) => {
for (const [key, fn] of Object.entries(CDNRoutes) as [keyof typeof CDNRoutes, (...args: any[]) => string][]) {
CDNRoutes[key] = ((...args: any[]) => {
const escaped = args.map((arg) => {
if (arg) {
// Skip already "safe" urls
@@ -1454,7 +1471,7 @@ for (const [key, fn] of Object.entries(CDNRoutes)) {
});
// eslint-disable-next-line no-useless-call
return fn.call(null, ...escaped);
};
}) as any;
}
// Freeze the object so it can't be changed

View File

@@ -4,7 +4,7 @@ import type { APIApplication, APIGuild, APIUser, APIWebhook, OAuth2Scopes } from
/**
* @see {@link https://discord.com/developers/docs/topics/oauth2#get-current-bot-application-information}
*/
export type RESTGetAPIOAuth2CurrentApplicationResult = Omit<APIApplication, 'flags'>;
export type RESTGetAPIOAuth2CurrentApplicationResult = APIApplication;
/**
* @see {@link https://discord.com/developers/docs/topics/oauth2#get-current-authorization-information}

View File

@@ -101,7 +101,7 @@ export interface RESTPostAPICurrentUserCreateDMChannelJSONBody {
/**
* The recipient to open a DM channel with
*/
recipient_id: string;
recipient_id: Snowflake;
}
/**

View File

@@ -51,7 +51,7 @@ export interface RESTPatchAPIGuildVoiceStateUserJSONBody {
/**
* The id of the channel the user is currently in
*/
channel_id: Snowflake;
channel_id?: Snowflake | undefined;
/**
* Toggles the user's suppress state
*/

View File

@@ -256,7 +256,7 @@ export type RESTGetAPIWebhookWithTokenMessageResult = APIMessage;
* @see {@link https://discord.com/developers/docs/resources/webhook#get-webhook-message-query-string-params}
*/
export interface RESTGetAPIWebhookWithTokenMessageQuery {
thread_id?: string;
thread_id?: Snowflake;
}
/**
@@ -309,6 +309,13 @@ export type RESTPatchAPIWebhookWithTokenMessageQuery = Pick<
*/
export type RESTPatchAPIWebhookWithTokenMessageResult = APIMessage;
/**
* @see {@link https://docs.discord.com/developers/resources/webhook#delete-webhook-message-query-string-params}
*/
export interface RESTDeleteAPIWebhookWithTokenMessageQuery {
thread_id?: Snowflake;
}
/**
* @see {@link https://discord.com/developers/docs/resources/webhook#delete-webhook-message}
*/

View File

@@ -2666,5 +2666,6 @@ export type RPCMessagePayload =
| RPCCommandSetVoiceSettingsPayload
| RPCCommandStartPurchasePayload
| RPCCommandSubscribePayload
// eslint-disable-next-line @typescript-eslint/no-duplicate-type-constituents
| RPCCommandUnsubscribePayload
| RPCCommandValidateApplicationPayload;

View File

@@ -14,7 +14,8 @@
"strictNullChecks": true,
"preserveConstEnums": true,
"exactOptionalPropertyTypes": true,
"skipLibCheck": true
"skipLibCheck": true,
"types": ["node"]
},
"include": [
"globals.ts",

View File

@@ -477,9 +477,9 @@
}
},
"node_modules/@apify/docusaurus-plugin-typedoc-api/node_modules/brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0"
@@ -5544,9 +5544,9 @@
}
},
"node_modules/@next/eslint-plugin-next/node_modules/brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0"
@@ -5753,9 +5753,9 @@
}
},
"node_modules/@npmcli/map-workspaces/node_modules/brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0"
@@ -5844,9 +5844,9 @@
}
},
"node_modules/@npmcli/package-json/node_modules/brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0"
@@ -7712,9 +7712,9 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin/node_modules/brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0"
@@ -7890,9 +7890,9 @@
}
},
"node_modules/@typescript-eslint/parser/node_modules/brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0"
@@ -8021,9 +8021,9 @@
}
},
"node_modules/@typescript-eslint/type-utils/node_modules/brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0"
@@ -8188,9 +8188,9 @@
}
},
"node_modules/@typescript-eslint/utils/node_modules/brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0"
@@ -9251,9 +9251,9 @@
}
},
"node_modules/brace-expansion": {
"version": "1.1.12",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
"version": "1.1.13",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
"integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -13405,9 +13405,9 @@
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/express/node_modules/path-to-regexp": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
"integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ=="
"version": "0.1.13",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz",
"integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA=="
},
"node_modules/express/node_modules/qs": {
"version": "6.14.2",
@@ -13623,9 +13623,9 @@
}
},
"node_modules/filelist/node_modules/brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dependencies": {
"balanced-match": "^1.0.0"
}
@@ -13778,9 +13778,9 @@
}
},
"node_modules/flatted": {
"version": "3.2.5",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz",
"integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==",
"version": "3.4.2",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz",
"integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==",
"dev": true
},
"node_modules/follow-redirects": {
@@ -19339,9 +19339,9 @@
}
},
"node_modules/node-forge": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.3.tgz",
"integrity": "sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==",
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.4.0.tgz",
"integrity": "sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==",
"engines": {
"node": ">= 6.13.0"
}
@@ -23119,10 +23119,9 @@
}
},
"node_modules/rollup": {
"version": "2.79.2",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz",
"integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==",
"license": "MIT",
"version": "2.80.0",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.80.0.tgz",
"integrity": "sha512-cIFJOD1DESzpjOBl763Kp1AH7UE/0fcdHe6rZXUdQ9c50uvgigvW97u3IcSeBwOkgqL/PXPBktBCh0KEu5L8XQ==",
"bin": {
"rollup": "dist/bin/rollup"
},
@@ -25184,9 +25183,9 @@
}
},
"node_modules/typedoc/node_modules/brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0"
@@ -25364,9 +25363,9 @@
}
},
"node_modules/typescript-eslint/node_modules/brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0"
@@ -25530,9 +25529,9 @@
}
},
"node_modules/unified-engine/node_modules/brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0"
@@ -27755,9 +27754,9 @@
},
"dependencies": {
"brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0"
@@ -30749,9 +30748,9 @@
},
"dependencies": {
"brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0"
@@ -30893,9 +30892,9 @@
},
"dependencies": {
"brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0"
@@ -30958,9 +30957,9 @@
},
"dependencies": {
"brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0"
@@ -32163,9 +32162,9 @@
}
},
"brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0"
@@ -32265,9 +32264,9 @@
}
},
"brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0"
@@ -32339,9 +32338,9 @@
}
},
"brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0"
@@ -32434,9 +32433,9 @@
}
},
"brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0"
@@ -33221,9 +33220,9 @@
}
},
"brace-expansion": {
"version": "1.1.12",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
"version": "1.1.13",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
"integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -36010,9 +36009,9 @@
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"path-to-regexp": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
"integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ=="
"version": "0.1.13",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz",
"integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA=="
},
"qs": {
"version": "6.14.2",
@@ -36172,9 +36171,9 @@
},
"dependencies": {
"brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"requires": {
"balanced-match": "^1.0.0"
}
@@ -36298,9 +36297,9 @@
}
},
"flatted": {
"version": "3.2.5",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz",
"integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==",
"version": "3.4.2",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz",
"integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==",
"dev": true
},
"follow-redirects": {
@@ -39706,9 +39705,9 @@
}
},
"node-forge": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.3.tgz",
"integrity": "sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg=="
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.4.0.tgz",
"integrity": "sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ=="
},
"node-releases": {
"version": "2.0.21",
@@ -42085,9 +42084,9 @@
}
},
"rollup": {
"version": "2.79.2",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz",
"integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==",
"version": "2.80.0",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.80.0.tgz",
"integrity": "sha512-cIFJOD1DESzpjOBl763Kp1AH7UE/0fcdHe6rZXUdQ9c50uvgigvW97u3IcSeBwOkgqL/PXPBktBCh0KEu5L8XQ==",
"requires": {
"fsevents": "~2.3.2"
}
@@ -43488,9 +43487,9 @@
},
"dependencies": {
"brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0"
@@ -43605,9 +43604,9 @@
}
},
"brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0"
@@ -43725,9 +43724,9 @@
},
"dependencies": {
"brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0"

View File

@@ -1 +1 @@
[{"entryPoints":{"v10":{"path":"v10.ts","label":"API v10"},"v9":{"path":"v9.ts","label":"API v9"},"voice/v4":{"path":"voice/v4.ts","label":"Voice v4"},"voice/v8":{"path":"voice/v8.ts","label":"Voice v8"},"globals":{"path":"globals.ts","label":"Global Types"}},"packageRoot":"/home/runner/work/discord-api-types/discord-api-types/","packagePath":"./","packageSlug":"discord-api-types","packageName":"discord-api-types","packageVersion":"0.38.42"}]
[{"entryPoints":{"v10":{"path":"v10.ts","label":"API v10"},"v9":{"path":"v9.ts","label":"API v9"},"voice/v4":{"path":"voice/v4.ts","label":"Voice v4"},"voice/v8":{"path":"voice/v8.ts","label":"Voice v8"},"globals":{"path":"globals.ts","label":"Global Types"}},"packageRoot":"/home/runner/work/discord-api-types/discord-api-types/","packagePath":"./","packageSlug":"discord-api-types","packageName":"discord-api-types","packageVersion":"0.38.47"}]

View File

@@ -1,3 +1,3 @@
[
"0.38.42"
"0.38.47"
]

3915
yarn.lock

File diff suppressed because it is too large Load Diff