Compare commits

...

68 Commits

Author SHA1 Message Date
github-actions[bot]
db49793666 chore(release): 0.37.41 🎉 (#764)
Build ran for 9dce6ed392

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-01 15:22:02 +03:00
Mateusz Burzyński
9dce6ed392 fix(types): move types condition to the front (#763) 2023-05-01 02:45:11 +03:00
dependabot[bot]
be770c91be chore(deps): bump vm2 from 3.9.16 to 3.9.17 (#755)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-30 14:06:18 +03:00
dependabot[bot]
cd8b63f9ba chore(deps): bump yaml, @commitlint/load and lint-staged (#759)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-30 13:53:09 +03:00
Jiralite
5079b164db fix(GatewayGuildMembersChunkDispatchData): Omit guild_id for presences (#761) 2023-04-30 13:52:20 +03:00
github-actions[bot]
50ace3b7e0 chore(release): 0.37.40 🎉 (#758)
Build ran for 7c69137a47

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-24 18:30:35 +03:00
Almeida
7c69137a47 docs(PermissionFlagsBits): add descriptions (#757) 2023-04-24 10:59:13 +03:00
MateoDeveloper
3dac5b93e7 feat: add support for voice messages (#749)
Co-authored-by: advaith <advaithj1@gmail.com>
2023-04-21 11:33:12 +03:00
github-actions[bot]
0f7602605c chore(release): 0.37.39 🎉 (#751)
Build ran for ca6a95d69c

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-17 15:46:05 +03:00
Aura Román
ca6a95d69c fix(RESTPostAPIChannelMessagesThreadsJSONBody): mark auto_archive_duration as optional 2023-04-16 12:26:49 +03:00
Vitor
9a66d21f49 feat(APIGuild): add max_stage_video_channel_users (#550) 2023-04-13 20:25:22 +03:00
dependabot[bot]
bb0ccf1e28 chore(deps): bump dns-packet from 5.3.1 to 5.4.0 in /website (#729)
Bumps [dns-packet](https://github.com/mafintosh/dns-packet) from 5.3.1 to 5.4.0.
- [Release notes](https://github.com/mafintosh/dns-packet/releases)
- [Changelog](https://github.com/mafintosh/dns-packet/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mafintosh/dns-packet/compare/v5.3.1...5.4.0)

---
updated-dependencies:
- dependency-name: dns-packet
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-13 19:03:10 +03:00
Almeida
cfedc17338 refactor(PermissionFlagsBits): update permissions (#737)
Co-authored-by: advaith <advaithj1@gmail.com>
2023-04-13 18:50:08 +03:00
dependabot[bot]
e647e795c9 chore(deps): bump vm2 from 3.9.11 to 3.9.16 (#747)
Bumps [vm2](https://github.com/patriksimek/vm2) from 3.9.11 to 3.9.16.
- [Release notes](https://github.com/patriksimek/vm2/releases)
- [Changelog](https://github.com/patriksimek/vm2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/patriksimek/vm2/compare/3.9.11...3.9.16)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-13 18:49:40 +03:00
github-actions[bot]
f52efabbb1 chore(release): 0.37.38 🎉 (#746)
Build ran for 9074621085

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-10 15:19:17 +03:00
MateoDeveloper
9074621085 feat(RESTJSONErrorCodes): add error 50163 (#725) 2023-04-06 21:52:42 +03:00
Almeida
8e2a5d2451 docs(ApplicationFlags): ApplicationAutoModerationRuleCreateBadge is no longer unstable (#738) 2023-04-06 21:52:10 +03:00
Almeida
311b7a2eb9 feat(APIBaseInteraction): add channel (#741) 2023-04-06 21:51:44 +03:00
Aura Román
4aa9646d05 chore(docsearch): increase contrast for hits in dark mode (#742) 2023-04-05 18:23:04 +00:00
github-actions[bot]
d8435774d6 chore(release): 0.37.37 🎉 (#736)
Build ran for 8f9370d259

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-23 14:21:44 +02:00
Almeida
8f9370d259 feat(RESTPostAPIGuildChannelJSONBody): add default_thread_rate_limit_per_user (#730) 2023-03-22 20:49:53 +02:00
Almeida
0cd9b0debb feat(RESTGetAPICurrentUserGuildsQuery): add with_counts (#641) 2023-03-22 20:36:51 +02:00
advaith
4723d29c9e feat: add various new flags (#733) 2023-03-22 20:28:57 +02:00
Suneet Tipirneni
2a78a517d2 fix: add missing RESTGetAPIWebhookWithTokenQuery (#735) 2023-03-22 20:27:46 +02:00
github-actions[bot]
08cbcd74a8 chore(release): 0.37.36 🎉 (#731)Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Build ran for 9e68e0c9e0

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-13 22:25:32 +02:00
Vlad Frangu
9e68e0c9e0 chore: fix workflow 2023-03-13 22:22:24 +02:00
DD
590e0e4883 refactor: remove over-use of AddUndefinedToPossiblyUndefinedPropertiesOfInterface (#726) 2023-02-25 16:35:52 +02:00
MateoDeveloper
0d47c69ca8 feat(AutoModeration): add custom_message field support (#727) 2023-02-25 16:17:33 +02:00
github-actions[bot]
dc09aceb2f chore(release): 0.37.35 🎉 (#724)
Build ran for a968c5f78a

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-02-17 17:54:56 +02:00
Almeida
a968c5f78a docs(AutoModerationRuleTriggerType): increase keyword limits (#709) 2023-02-17 17:51:31 +02:00
dependabot[bot]
b37b34277b chore(deps): bump @sideway/formula from 3.0.0 to 3.0.1 in /website (#711)
Bumps [@sideway/formula](https://github.com/sideway/formula) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/sideway/formula/releases)
- [Commits](https://github.com/sideway/formula/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: "@sideway/formula"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-17 17:51:08 +02:00
Jiralite
85051eaab7 fix: StageRaiseHand should be unstable (#722) 2023-02-17 17:48:21 +02:00
MateoDeveloper
040b6826c3 refactor(APIVoiceChannelBase): support text and video in stages (#721) 2023-02-17 16:01:31 +02:00
github-actions[bot]
c09c5f5093 chore(release): 0.37.34 🎉 (#723)Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Build ran for b1446279a8

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-02-16 14:24:31 +02:00
Jiralite
b1446279a8 refactor(MessageType): remove @unstable stage message types (#718) 2023-02-15 22:53:21 +02:00
MateoDeveloper
20153f6fe2 feat(RESTJSONErrorCodes): add error 30060 (#720) 2023-02-15 21:51:25 +02:00
Almeida
d661ff5ee7 docs(RESTPostAPIGuildStickerFormDataBody): clarify constraints (#696) 2023-02-15 21:42:40 +02:00
Almeida
4cf6fd2cec feat(CDNRoutes): add storePageAsset() (#695) 2023-02-15 21:42:01 +02:00
MateoDeveloper
c65e214fdd feat(ConnectionService): add instagram (#701) 2023-02-15 21:40:38 +02:00
panley01
8477deb6a8 feat: add managed field to ChannelType.GroupDM (#698) 2023-02-15 21:40:25 +02:00
MateoDeveloper
41b31ebfd6 feat(RESTJSONErrorCodes): add error 30011 (#697) 2023-02-15 21:39:57 +02:00
Almeida
d609efc746 feat(RESTJSONErrorCodes): add error 30061 (#717) 2023-02-15 21:37:46 +02:00
Jiralite
8d37bc5e30 fix(GuildSystemChannelFlags): "suppress" typo (#719) 2023-02-15 15:16:00 +02:00
github-actions[bot]
052ceb2d02 chore(release): 0.37.33 🎉 (#716)
Build ran for 602c16eee1

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-02-12 01:07:04 +02:00
IRONM00N
602c16eee1 fix(GatewayDispatchPayload): add missing GuildAuditLogEntry (#715)
closes https://github.com/discordjs/discord-api-types/issues/714
2023-02-12 01:02:44 +02:00
github-actions[bot]
1247cfc624 chore(release): 0.37.32 🎉 (#712)Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Build ran for b14aea65f8

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-02-09 15:12:15 +02:00
Almeida
b14aea65f8 feat(MessageType): add SuppressNotifications (#710) 2023-02-09 00:01:17 +02:00
dependabot[bot]
fddb6f1362 chore(deps): bump http-cache-semantics from 4.1.0 to 4.1.1 in /website (#706)Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [http-cache-semantics](https://github.com/kornelski/http-cache-semantics) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/kornelski/http-cache-semantics/releases)
- [Commits](https://github.com/kornelski/http-cache-semantics/compare/v4.1.0...v4.1.1)

---
updated-dependencies:
- dependency-name: http-cache-semantics
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-08 14:50:36 +02:00
dependabot[bot]
4edd16cc7e chore(deps): bump http-cache-semantics from 4.1.0 to 4.1.1 (#705)Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [http-cache-semantics](https://github.com/kornelski/http-cache-semantics) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/kornelski/http-cache-semantics/releases)
- [Commits](https://github.com/kornelski/http-cache-semantics/compare/v4.1.0...v4.1.1)

---
updated-dependencies:
- dependency-name: http-cache-semantics
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-08 14:50:31 +02:00
github-actions[bot]
cc3aec7aa1 chore(release): 0.37.31 🎉 (#704)
Build ran for 0e44dd9681

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-01-30 15:35:43 +02:00
dependabot[bot]
0e44dd9681 chore(deps): bump ua-parser-js from 0.7.31 to 0.7.33 in /website (#703)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-26 23:00:55 +02:00
github-actions[bot]
ff20a503bc chore(release): 0.37.30 🎉 (#702)
Build ran for 31ca234dec

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-01-26 14:22:19 +02:00
Almeida
31ca234dec feat(GatewayDispatchEvents): add GuildAuditLogEntryCreate (#692) 2023-01-24 00:33:22 +02:00
MateoDeveloper
e902671411 feat(APIGuildMember): add support for guild member flags (#700) 2023-01-24 00:31:41 +02:00
github-actions[bot]
2df39d296f chore(release): 0.37.29 🎉 (#699)
Build ran for 4edcd6a8dd

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-01-23 14:21:00 +02:00
Almeida
4edcd6a8dd docs(APIApplicationRoleConnectionMetadata): specify lower bound of fields (#694)
* docs(APIApplicationRoleConnectionMetadata): specify lower bound of fields

* docs: requested changes
2023-01-22 21:55:51 +02:00
github-actions[bot]
14a54994b7 chore(release): 0.37.28 🎉 (#691)
Build ran for 7798f2642b

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-01-12 15:15:21 +02:00
Jiralite
7798f2642b chore: add blocked label (#690) 2023-01-11 01:44:09 +02:00
Jiralite
792c60b332 feat: Add role subscription data and system channel flags (#686) 2023-01-11 01:03:19 +02:00
Almeida
3dbe985b6e feat(APIRoleTags): add guild_connections (#675) 2023-01-10 21:16:13 +00:00
advaith
af06df6cae feat(ConnectionService): add TikTok (#632) 2023-01-10 23:11:05 +02:00
Almeida
8869e92336 feat(RESTJSONErrorCodes): add error 50091 (#671) 2023-01-10 23:09:52 +02:00
Almeida
b10e9bbe5a fix(GuildIntegration): enabled and user are present on bots (#660) 2023-01-10 23:09:35 +02:00
Almeida
a6bcb3f0fe feat(StickerFormatType): add GIF (#688) 2023-01-10 23:09:08 +02:00
MateoDeveloper
e2fb5ee488 feat(APIThreadMember): add support for thread member pagination (#689) 2023-01-10 23:08:36 +02:00
Almeida
0b4058bdd4 feat: role subscriptions (#665) 2023-01-10 23:07:28 +02:00
github-actions[bot]
195156480c chore(release): 0.37.27 🎉 (#687)
Build ran for 7d55b33bac

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-01-09 14:29:12 +02:00
Almeida
7d55b33bac feat(MessageType): add missing types (#681) 2023-01-07 18:54:39 +02:00
157 changed files with 5455 additions and 4132 deletions

135
.eslintplugin/index.ts Normal file
View File

@@ -0,0 +1,135 @@
import { AST_NODE_TYPES, ESLintUtils, TSESTree } from '@typescript-eslint/utils';
import * as typescript from 'typescript';
import * as tsutils from 'tsutils';
type Options = [
{
interfaceEndings: string[];
},
];
function shouldRun(eslNode: TSESTree.TSPropertySignature, interfaceEndings: string[]): boolean {
// The first parent is the TSInterfaceBody, the second is the TSInterfaceDeclaration
const interfaceNode = eslNode.parent?.parent;
if (!(interfaceNode && 'id' in interfaceNode && interfaceNode.id?.type === AST_NODE_TYPES.Identifier)) {
return false;
}
const { name } = interfaceNode.id;
if (typeof name !== 'string') {
return false;
}
return interfaceEndings.some((ending) => name.endsWith(ending));
}
const schema = [
{
type: 'object',
properties: {
interfaceEndings: {
type: 'array',
items: {
type: 'string',
},
},
},
},
];
export = {
rules: {
'explicitly-optional-undefined-properties': ESLintUtils.RuleCreator.withoutDocs<Options, 'missingOptional'>({
create: (context) => {
const { interfaceEndings } = context.options[0];
return {
TSPropertySignature: (eslNode) => {
if (!shouldRun(eslNode, interfaceEndings)) {
return;
}
if (eslNode.optional) {
return;
}
const parserServices = ESLintUtils.getParserServices(context);
const checker = parserServices.program.getTypeChecker();
const tsNode = parserServices.esTreeNodeToTSNodeMap.get(eslNode);
const type = checker.getApparentType(checker.getTypeAtLocation(tsNode));
const unionParts = tsutils.unionTypeParts(type);
// If our prop is not optional, but has undefined in its union, we should report
if (!unionParts.some((ty) => tsutils.isTypeFlagSet(ty, typescript.TypeFlags.Undefined))) {
return;
}
context.report({
node: eslNode,
messageId: 'missingOptional',
fix: (fixer) => fixer.insertTextAfter(eslNode.key, '?'),
});
},
};
},
meta: {
fixable: 'code',
messages: {
missingOptional: 'When a property has `| undefined`, it should be marked as optional.',
},
type: 'problem',
schema: schema,
},
defaultOptions: [{ interfaceEndings: [] }],
}),
'explicit-undefined-on-optional-properties': ESLintUtils.RuleCreator.withoutDocs<Options, 'missingUndefined'>({
create: (context) => {
const { interfaceEndings } = context.options[0];
return {
// This is done naively because type-checking the node will always include `| undefined`
// due to it being optional. ideally, we'd have a way to get the type of the node disregarding
// the optional flag, which would make this check a lot more trivial
TSPropertySignature: (eslNode) => {
if (!shouldRun(eslNode, interfaceEndings)) {
return;
}
// If our prop is't optional or if it doesn't have a type annotation, we don't need to do anything
if (!eslNode.optional || !eslNode.typeAnnotation) {
return;
}
const { typeAnnotation } = eslNode.typeAnnotation;
switch (typeAnnotation.type) {
case AST_NODE_TYPES.TSUnionType: {
if (typeAnnotation.types.some((t) => t.type === AST_NODE_TYPES.TSUndefinedKeyword)) {
return;
}
break;
}
case AST_NODE_TYPES.TSUndefinedKeyword: {
return;
}
}
context.report({
node: eslNode,
messageId: 'missingUndefined',
fix: (fixer) => fixer.insertTextAfter(eslNode.typeAnnotation!, ' | undefined'),
});
},
};
},
meta: {
fixable: 'code',
messages: {
missingUndefined: 'When a property is optional, explicitly include `undefined` in the union.',
},
type: 'suggestion',
schema: schema,
},
defaultOptions: [{ interfaceEndings: [] }],
}),
},
};

View File

@@ -0,0 +1,20 @@
{
"compileOnSave": true,
"compilerOptions": {
"alwaysStrict": true,
"lib": ["esnext"],
"module": "commonjs",
"noUnusedParameters": true,
"sourceMap": true,
"declaration": false,
"noUnusedLocals": true,
"removeComments": false,
"target": "ES2020",
"importsNotUsedAsValues": "error",
"strictNullChecks": true,
"preserveConstEnums": true,
"exactOptionalPropertyTypes": true,
"skipLibCheck": true
},
"include": ["./index.ts"]
}

View File

@@ -4,5 +4,10 @@
"parserOptions": {
"project": "./tsconfig.eslint.json",
"extraFileExtensions": [".mjs"]
},
"plugins": ["local"],
"rules": {
"local/explicitly-optional-undefined-properties": ["error", { "interfaceEndings": ["JSONBody"] }],
"local/explicit-undefined-on-optional-properties": ["error", { "interfaceEndings": ["JSONBody"] }]
}
}

2
.github/labels.yml vendored
View File

@@ -5,6 +5,8 @@
color: 'e4f486'
- name: 'semver:patch'
color: 'e8be8b'
- name: 'blocked'
color: 'fc1423'
- name: 'question (please use Discord instead)'
color: 'd876e3'
- name: 'regression'

View File

@@ -28,7 +28,7 @@ jobs:
registry-url: https://registry.npmjs.org/
- name: Install dependencies
run: npm ci --ignore-scripts
run: npm ci
- name: Install website dependencies
run: pushd website && npm ci --ignore-scripts && popd
@@ -80,7 +80,7 @@ jobs:
registry-url: https://registry.npmjs.org/
- name: Install dependencies
run: npm ci --ignore-scripts
run: npm ci
- name: Publish release to npm
run: npm publish

18
.gitignore vendored
View File

@@ -1,15 +1,25 @@
node_modules/
# Custom ESLint rules
.eslintplugin/*
!.eslintplugin/index.ts
!.eslintplugin/tsconfig.json
# Don't commit build outputs
globals.js
globals.*map
globals.d.ts
globals.mjs
./v*.js
./v*.*map
./v*.d.ts
./v*.mjs
v*.js
v*.*map
v*.d.ts
v*.mjs
deno/**/*.js
deno/**/*.map
deno/**/*.d.ts
deno/**/*.mjs
gateway/**/*.js
gateway/**/*.map

View File

@@ -1,4 +1,3 @@
# Node modules
node_modules/
@@ -11,3 +10,8 @@ website/versioned_docs/
website/versions.json
website/.docusaurus/
website/build
# Don't format build outputs
*.js
*.d.ts
*.mjs

View File

@@ -1,3 +1,117 @@
## [0.37.41](https://github.com/discordjs/discord-api-types/compare/0.37.40...0.37.41) (2023-05-01)
### Bug Fixes
- **GatewayGuildMembersChunkDispatchData:** Omit `guild_id` for presences ([#761](https://github.com/discordjs/discord-api-types/issues/761)) ([5079b16](https://github.com/discordjs/discord-api-types/commit/5079b164db3ac3bda25675a553a586f099555667))
- **types:** move `types` condition to the front ([#763](https://github.com/discordjs/discord-api-types/issues/763)) ([9dce6ed](https://github.com/discordjs/discord-api-types/commit/9dce6ed392b64e602c3cc05946bc0f30bac7279e))
## [0.37.40](https://github.com/discordjs/discord-api-types/compare/0.37.39...0.37.40) (2023-04-24)
### Features
- add support for voice messages ([#749](https://github.com/discordjs/discord-api-types/issues/749)) ([3dac5b9](https://github.com/discordjs/discord-api-types/commit/3dac5b93e7568ba2fbd3bc30d229d2df80f96eed))
## [0.37.39](https://github.com/discordjs/discord-api-types/compare/0.37.38...0.37.39) (2023-04-17)
### Bug Fixes
- **RESTPostAPIChannelMessagesThreadsJSONBody:** mark `auto_archive_duration` as optional ([ca6a95d](https://github.com/discordjs/discord-api-types/commit/ca6a95d69c7b93f564f10cce422faf5ea4133be7))
### Features
- **APIGuild:** add `max_stage_video_channel_users` ([#550](https://github.com/discordjs/discord-api-types/issues/550)) ([9a66d21](https://github.com/discordjs/discord-api-types/commit/9a66d21f4913c63ed7c192cf9340febe603bf516))
## [0.37.38](https://github.com/discordjs/discord-api-types/compare/0.37.37...0.37.38) (2023-04-10)
### Features
- **APIBaseInteraction:** add `channel` ([#741](https://github.com/discordjs/discord-api-types/issues/741)) ([311b7a2](https://github.com/discordjs/discord-api-types/commit/311b7a2eb9bdc6ad9d6ed7af2b7faf6f95631698))
- **RESTJSONErrorCodes:** add error `50163` ([#725](https://github.com/discordjs/discord-api-types/issues/725)) ([9074621](https://github.com/discordjs/discord-api-types/commit/9074621085d0e2d7b32b82c0bf0604e3cf42bbdf))
## [0.37.37](https://github.com/discordjs/discord-api-types/compare/0.37.36...0.37.37) (2023-03-23)
### Bug Fixes
- add missing `RESTGetAPIWebhookWithTokenQuery` ([#735](https://github.com/discordjs/discord-api-types/issues/735)) ([2a78a51](https://github.com/discordjs/discord-api-types/commit/2a78a517d2a3511913a8b2b74bba942db097b577))
### Features
- add various new flags ([#733](https://github.com/discordjs/discord-api-types/issues/733)) ([4723d29](https://github.com/discordjs/discord-api-types/commit/4723d29c9ee17c3efa8e8e86351754dee13428ef))
- **RESTGetAPICurrentUserGuildsQuery:** add `with_counts` ([#641](https://github.com/discordjs/discord-api-types/issues/641)) ([0cd9b0d](https://github.com/discordjs/discord-api-types/commit/0cd9b0debbf17f60267bf2f42349fcebea5bf588))
- **RESTPostAPIGuildChannelJSONBody:** add `default_thread_rate_limit_per_user` ([#730](https://github.com/discordjs/discord-api-types/issues/730)) ([8f9370d](https://github.com/discordjs/discord-api-types/commit/8f9370d2592d6a450820bee52fe153eb00ba830f))
## [0.37.36](https://github.com/discordjs/discord-api-types/compare/0.37.35...0.37.36) (2023-03-13)
### Features
- **AutoModeration:** add `custom_message` field support ([#727](https://github.com/discordjs/discord-api-types/issues/727)) ([0d47c69](https://github.com/discordjs/discord-api-types/commit/0d47c69ca80909205f14004aaf26645f367c06d0))
## [0.37.35](https://github.com/discordjs/discord-api-types/compare/0.37.34...0.37.35) (2023-02-17)
### Bug Fixes
- `StageRaiseHand` should be unstable ([#722](https://github.com/discordjs/discord-api-types/issues/722)) ([85051ea](https://github.com/discordjs/discord-api-types/commit/85051eaab7e262b4f60e3f5565bf8a7a5225513e))
## [0.37.34](https://github.com/discordjs/discord-api-types/compare/0.37.33...0.37.34) (2023-02-16)
### Bug Fixes
- **GuildSystemChannelFlags:** "suppress" typo ([#719](https://github.com/discordjs/discord-api-types/issues/719)) ([8d37bc5](https://github.com/discordjs/discord-api-types/commit/8d37bc5e30f76552bca402c858cc67bb8a5ddc9c))
### Features
- add `managed` field to `ChannelType.GroupDM` ([#698](https://github.com/discordjs/discord-api-types/issues/698)) ([8477deb](https://github.com/discordjs/discord-api-types/commit/8477deb6a832b0c985fa0f6d1df4b99eaeab2a87))
- **CDNRoutes:** add `storePageAsset()` ([#695](https://github.com/discordjs/discord-api-types/issues/695)) ([4cf6fd2](https://github.com/discordjs/discord-api-types/commit/4cf6fd2cecd92a9c3ffa32368ccc7b1994295be3))
- **ConnectionService:** add `instagram` ([#701](https://github.com/discordjs/discord-api-types/issues/701)) ([c65e214](https://github.com/discordjs/discord-api-types/commit/c65e214fddeb3aa959034ac14de39edab38ff0f3))
- **RESTJSONErrorCodes:** add error `30011` ([#697](https://github.com/discordjs/discord-api-types/issues/697)) ([41b31eb](https://github.com/discordjs/discord-api-types/commit/41b31ebfd62a8dba32da1e748c49877924c0602d))
- **RESTJSONErrorCodes:** add error `30060` ([#720](https://github.com/discordjs/discord-api-types/issues/720)) ([20153f6](https://github.com/discordjs/discord-api-types/commit/20153f6fe24676d73bcb41e92c6d9d52961f1f73))
- **RESTJSONErrorCodes:** add error `30061` ([#717](https://github.com/discordjs/discord-api-types/issues/717)) ([d609efc](https://github.com/discordjs/discord-api-types/commit/d609efc746df620925237575dd24fd0f38213f09))
## [0.37.33](https://github.com/discordjs/discord-api-types/compare/0.37.32...0.37.33) (2023-02-11)
### Bug Fixes
- **GatewayDispatchPayload:** add missing GuildAuditLogEntry ([#715](https://github.com/discordjs/discord-api-types/issues/715)) ([602c16e](https://github.com/discordjs/discord-api-types/commit/602c16eee12e85a8052f40c695314a42b1d15979))
## [0.37.32](https://github.com/discordjs/discord-api-types/compare/0.37.31...0.37.32) (2023-02-09)
### Features
- **MessageType:** add `SuppressNotifications` ([#710](https://github.com/discordjs/discord-api-types/issues/710)) ([b14aea6](https://github.com/discordjs/discord-api-types/commit/b14aea65f886db047ea9fcbd1b8f49f1bc38f594))
## [0.37.31](https://github.com/discordjs/discord-api-types/compare/0.37.30...0.37.31) (2023-01-30)
## [0.37.30](https://github.com/discordjs/discord-api-types/compare/0.37.29...0.37.30) (2023-01-26)
### Features
- **APIGuildMember:** add support for guild member flags ([#700](https://github.com/discordjs/discord-api-types/issues/700)) ([e902671](https://github.com/discordjs/discord-api-types/commit/e902671411b518504b9adc6b0d7310501fd531ad))
- **GatewayDispatchEvents:** add `GuildAuditLogEntryCreate` ([#692](https://github.com/discordjs/discord-api-types/issues/692)) ([31ca234](https://github.com/discordjs/discord-api-types/commit/31ca234decd6d62b503aadd88111a2af3778f455))
## [0.37.29](https://github.com/discordjs/discord-api-types/compare/0.37.28...0.37.29) (2023-01-23)
## [0.37.28](https://github.com/discordjs/discord-api-types/compare/0.37.27...0.37.28) (2023-01-12)
### Bug Fixes
- **GuildIntegration:** `enabled` and `user` are present on bots ([#660](https://github.com/discordjs/discord-api-types/issues/660)) ([b10e9bb](https://github.com/discordjs/discord-api-types/commit/b10e9bbe5ab450df065fc78da85d49f335db2b82))
### Features
- Add role subscription data and system channel flags ([#686](https://github.com/discordjs/discord-api-types/issues/686)) ([792c60b](https://github.com/discordjs/discord-api-types/commit/792c60b3328d8440de79546bf43d6b317400c788))
- **APIRoleTags:** add `guild_connections` ([#675](https://github.com/discordjs/discord-api-types/issues/675)) ([3dbe985](https://github.com/discordjs/discord-api-types/commit/3dbe985b6e05e6aa68248e79f45d550e783bc6a7))
- **APIThreadMember:** add support for thread member pagination ([#689](https://github.com/discordjs/discord-api-types/issues/689)) ([e2fb5ee](https://github.com/discordjs/discord-api-types/commit/e2fb5ee4886a33bb752a75d5894f726f6f76340f))
- **ConnectionService:** add TikTok ([#632](https://github.com/discordjs/discord-api-types/issues/632)) ([af06df6](https://github.com/discordjs/discord-api-types/commit/af06df6cae224a60e7a35e356028677e8736ed89))
- **RESTJSONErrorCodes:** add error `50091` ([#671](https://github.com/discordjs/discord-api-types/issues/671)) ([8869e92](https://github.com/discordjs/discord-api-types/commit/8869e923362740e491f267d71073d4266d36cb42))
- role subscriptions ([#665](https://github.com/discordjs/discord-api-types/issues/665)) ([0b4058b](https://github.com/discordjs/discord-api-types/commit/0b4058bdd48b74fcd9944dcf4b6f98d5e0bee105))
- **StickerFormatType:** add `GIF` ([#688](https://github.com/discordjs/discord-api-types/issues/688)) ([a6bcb3f](https://github.com/discordjs/discord-api-types/commit/a6bcb3f0fe7bc4edceee61b7cdab0e46db9c7109))
## [0.37.27](https://github.com/discordjs/discord-api-types/compare/0.37.26...0.37.27) (2023-01-09)
### Features
- **MessageType:** add missing types ([#681](https://github.com/discordjs/discord-api-types/issues/681)) ([7d55b33](https://github.com/discordjs/discord-api-types/commit/7d55b33bacb96e156f41fb67a1819c07c8fa959f))
## [0.37.26](https://github.com/discordjs/discord-api-types/compare/0.37.25...0.37.26) (2023-01-05)
### Features

View File

@@ -1,3 +1,117 @@
## [0.37.41](https://github.com/discordjs/discord-api-types/compare/0.37.40...0.37.41) (2023-05-01)
### Bug Fixes
- **GatewayGuildMembersChunkDispatchData:** Omit `guild_id` for presences ([#761](https://github.com/discordjs/discord-api-types/issues/761)) ([5079b16](https://github.com/discordjs/discord-api-types/commit/5079b164db3ac3bda25675a553a586f099555667))
- **types:** move `types` condition to the front ([#763](https://github.com/discordjs/discord-api-types/issues/763)) ([9dce6ed](https://github.com/discordjs/discord-api-types/commit/9dce6ed392b64e602c3cc05946bc0f30bac7279e))
## [0.37.40](https://github.com/discordjs/discord-api-types/compare/0.37.39...0.37.40) (2023-04-24)
### Features
- add support for voice messages ([#749](https://github.com/discordjs/discord-api-types/issues/749)) ([3dac5b9](https://github.com/discordjs/discord-api-types/commit/3dac5b93e7568ba2fbd3bc30d229d2df80f96eed))
## [0.37.39](https://github.com/discordjs/discord-api-types/compare/0.37.38...0.37.39) (2023-04-17)
### Bug Fixes
- **RESTPostAPIChannelMessagesThreadsJSONBody:** mark `auto_archive_duration` as optional ([ca6a95d](https://github.com/discordjs/discord-api-types/commit/ca6a95d69c7b93f564f10cce422faf5ea4133be7))
### Features
- **APIGuild:** add `max_stage_video_channel_users` ([#550](https://github.com/discordjs/discord-api-types/issues/550)) ([9a66d21](https://github.com/discordjs/discord-api-types/commit/9a66d21f4913c63ed7c192cf9340febe603bf516))
## [0.37.38](https://github.com/discordjs/discord-api-types/compare/0.37.37...0.37.38) (2023-04-10)
### Features
- **APIBaseInteraction:** add `channel` ([#741](https://github.com/discordjs/discord-api-types/issues/741)) ([311b7a2](https://github.com/discordjs/discord-api-types/commit/311b7a2eb9bdc6ad9d6ed7af2b7faf6f95631698))
- **RESTJSONErrorCodes:** add error `50163` ([#725](https://github.com/discordjs/discord-api-types/issues/725)) ([9074621](https://github.com/discordjs/discord-api-types/commit/9074621085d0e2d7b32b82c0bf0604e3cf42bbdf))
## [0.37.37](https://github.com/discordjs/discord-api-types/compare/0.37.36...0.37.37) (2023-03-23)
### Bug Fixes
- add missing `RESTGetAPIWebhookWithTokenQuery` ([#735](https://github.com/discordjs/discord-api-types/issues/735)) ([2a78a51](https://github.com/discordjs/discord-api-types/commit/2a78a517d2a3511913a8b2b74bba942db097b577))
### Features
- add various new flags ([#733](https://github.com/discordjs/discord-api-types/issues/733)) ([4723d29](https://github.com/discordjs/discord-api-types/commit/4723d29c9ee17c3efa8e8e86351754dee13428ef))
- **RESTGetAPICurrentUserGuildsQuery:** add `with_counts` ([#641](https://github.com/discordjs/discord-api-types/issues/641)) ([0cd9b0d](https://github.com/discordjs/discord-api-types/commit/0cd9b0debbf17f60267bf2f42349fcebea5bf588))
- **RESTPostAPIGuildChannelJSONBody:** add `default_thread_rate_limit_per_user` ([#730](https://github.com/discordjs/discord-api-types/issues/730)) ([8f9370d](https://github.com/discordjs/discord-api-types/commit/8f9370d2592d6a450820bee52fe153eb00ba830f))
## [0.37.36](https://github.com/discordjs/discord-api-types/compare/0.37.35...0.37.36) (2023-03-13)
### Features
- **AutoModeration:** add `custom_message` field support ([#727](https://github.com/discordjs/discord-api-types/issues/727)) ([0d47c69](https://github.com/discordjs/discord-api-types/commit/0d47c69ca80909205f14004aaf26645f367c06d0))
## [0.37.35](https://github.com/discordjs/discord-api-types/compare/0.37.34...0.37.35) (2023-02-17)
### Bug Fixes
- `StageRaiseHand` should be unstable ([#722](https://github.com/discordjs/discord-api-types/issues/722)) ([85051ea](https://github.com/discordjs/discord-api-types/commit/85051eaab7e262b4f60e3f5565bf8a7a5225513e))
## [0.37.34](https://github.com/discordjs/discord-api-types/compare/0.37.33...0.37.34) (2023-02-16)
### Bug Fixes
- **GuildSystemChannelFlags:** "suppress" typo ([#719](https://github.com/discordjs/discord-api-types/issues/719)) ([8d37bc5](https://github.com/discordjs/discord-api-types/commit/8d37bc5e30f76552bca402c858cc67bb8a5ddc9c))
### Features
- add `managed` field to `ChannelType.GroupDM` ([#698](https://github.com/discordjs/discord-api-types/issues/698)) ([8477deb](https://github.com/discordjs/discord-api-types/commit/8477deb6a832b0c985fa0f6d1df4b99eaeab2a87))
- **CDNRoutes:** add `storePageAsset()` ([#695](https://github.com/discordjs/discord-api-types/issues/695)) ([4cf6fd2](https://github.com/discordjs/discord-api-types/commit/4cf6fd2cecd92a9c3ffa32368ccc7b1994295be3))
- **ConnectionService:** add `instagram` ([#701](https://github.com/discordjs/discord-api-types/issues/701)) ([c65e214](https://github.com/discordjs/discord-api-types/commit/c65e214fddeb3aa959034ac14de39edab38ff0f3))
- **RESTJSONErrorCodes:** add error `30011` ([#697](https://github.com/discordjs/discord-api-types/issues/697)) ([41b31eb](https://github.com/discordjs/discord-api-types/commit/41b31ebfd62a8dba32da1e748c49877924c0602d))
- **RESTJSONErrorCodes:** add error `30060` ([#720](https://github.com/discordjs/discord-api-types/issues/720)) ([20153f6](https://github.com/discordjs/discord-api-types/commit/20153f6fe24676d73bcb41e92c6d9d52961f1f73))
- **RESTJSONErrorCodes:** add error `30061` ([#717](https://github.com/discordjs/discord-api-types/issues/717)) ([d609efc](https://github.com/discordjs/discord-api-types/commit/d609efc746df620925237575dd24fd0f38213f09))
## [0.37.33](https://github.com/discordjs/discord-api-types/compare/0.37.32...0.37.33) (2023-02-11)
### Bug Fixes
- **GatewayDispatchPayload:** add missing GuildAuditLogEntry ([#715](https://github.com/discordjs/discord-api-types/issues/715)) ([602c16e](https://github.com/discordjs/discord-api-types/commit/602c16eee12e85a8052f40c695314a42b1d15979))
## [0.37.32](https://github.com/discordjs/discord-api-types/compare/0.37.31...0.37.32) (2023-02-09)
### Features
- **MessageType:** add `SuppressNotifications` ([#710](https://github.com/discordjs/discord-api-types/issues/710)) ([b14aea6](https://github.com/discordjs/discord-api-types/commit/b14aea65f886db047ea9fcbd1b8f49f1bc38f594))
## [0.37.31](https://github.com/discordjs/discord-api-types/compare/0.37.30...0.37.31) (2023-01-30)
## [0.37.30](https://github.com/discordjs/discord-api-types/compare/0.37.29...0.37.30) (2023-01-26)
### Features
- **APIGuildMember:** add support for guild member flags ([#700](https://github.com/discordjs/discord-api-types/issues/700)) ([e902671](https://github.com/discordjs/discord-api-types/commit/e902671411b518504b9adc6b0d7310501fd531ad))
- **GatewayDispatchEvents:** add `GuildAuditLogEntryCreate` ([#692](https://github.com/discordjs/discord-api-types/issues/692)) ([31ca234](https://github.com/discordjs/discord-api-types/commit/31ca234decd6d62b503aadd88111a2af3778f455))
## [0.37.29](https://github.com/discordjs/discord-api-types/compare/0.37.28...0.37.29) (2023-01-23)
## [0.37.28](https://github.com/discordjs/discord-api-types/compare/0.37.27...0.37.28) (2023-01-12)
### Bug Fixes
- **GuildIntegration:** `enabled` and `user` are present on bots ([#660](https://github.com/discordjs/discord-api-types/issues/660)) ([b10e9bb](https://github.com/discordjs/discord-api-types/commit/b10e9bbe5ab450df065fc78da85d49f335db2b82))
### Features
- Add role subscription data and system channel flags ([#686](https://github.com/discordjs/discord-api-types/issues/686)) ([792c60b](https://github.com/discordjs/discord-api-types/commit/792c60b3328d8440de79546bf43d6b317400c788))
- **APIRoleTags:** add `guild_connections` ([#675](https://github.com/discordjs/discord-api-types/issues/675)) ([3dbe985](https://github.com/discordjs/discord-api-types/commit/3dbe985b6e05e6aa68248e79f45d550e783bc6a7))
- **APIThreadMember:** add support for thread member pagination ([#689](https://github.com/discordjs/discord-api-types/issues/689)) ([e2fb5ee](https://github.com/discordjs/discord-api-types/commit/e2fb5ee4886a33bb752a75d5894f726f6f76340f))
- **ConnectionService:** add TikTok ([#632](https://github.com/discordjs/discord-api-types/issues/632)) ([af06df6](https://github.com/discordjs/discord-api-types/commit/af06df6cae224a60e7a35e356028677e8736ed89))
- **RESTJSONErrorCodes:** add error `50091` ([#671](https://github.com/discordjs/discord-api-types/issues/671)) ([8869e92](https://github.com/discordjs/discord-api-types/commit/8869e923362740e491f267d71073d4266d36cb42))
- role subscriptions ([#665](https://github.com/discordjs/discord-api-types/issues/665)) ([0b4058b](https://github.com/discordjs/discord-api-types/commit/0b4058bdd48b74fcd9944dcf4b6f98d5e0bee105))
- **StickerFormatType:** add `GIF` ([#688](https://github.com/discordjs/discord-api-types/issues/688)) ([a6bcb3f](https://github.com/discordjs/discord-api-types/commit/a6bcb3f0fe7bc4edceee61b7cdab0e46db9c7109))
## [0.37.27](https://github.com/discordjs/discord-api-types/compare/0.37.26...0.37.27) (2023-01-09)
### Features
- **MessageType:** add missing types ([#681](https://github.com/discordjs/discord-api-types/issues/681)) ([7d55b33](https://github.com/discordjs/discord-api-types/commit/7d55b33bacb96e156f41fb67a1819c07c8fa959f))
## [0.37.26](https://github.com/discordjs/discord-api-types/compare/0.37.25...0.37.26) (2023-01-05)
### Features

View File

@@ -32,6 +32,7 @@ import type {
InviteTargetType,
PresenceUpdateStatus,
AutoModerationRuleTriggerType,
APIAuditLogEntry,
} from '../payloads/v10/mod.ts';
import type { Nullable } from '../utils/internals.ts';
@@ -179,7 +180,11 @@ export enum GatewayCloseCodes {
export enum GatewayIntentBits {
Guilds = 1 << 0,
GuildMembers = 1 << 1,
GuildBans = 1 << 2,
GuildModeration = 1 << 2,
/**
* @deprecated This is the old name for {@apilink GatewayIntentBits#GuildModeration}
*/
GuildBans = GuildModeration,
GuildEmojisAndStickers = 1 << 3,
GuildIntegrations = 1 << 4,
GuildWebhooks = 1 << 5,
@@ -262,6 +267,7 @@ export enum GatewayDispatchEvents {
AutoModerationRuleUpdate = 'AUTO_MODERATION_RULE_UPDATE',
AutoModerationRuleDelete = 'AUTO_MODERATION_RULE_DELETE',
AutoModerationActionExecution = 'AUTO_MODERATION_ACTION_EXECUTION',
GuildAuditLogEntryCreate = 'GUILD_AUDIT_LOG_ENTRY_CREATE',
}
export type GatewaySendPayload =
@@ -334,7 +340,8 @@ export type GatewayDispatchPayload =
| GatewayUserUpdateDispatch
| GatewayVoiceServerUpdateDispatch
| GatewayVoiceStateUpdateDispatch
| GatewayWebhooksUpdateDispatch;
| GatewayWebhooksUpdateDispatch
| GatewayGuildAuditLogEntryCreateDispatch;
// #region Dispatch Payloads
@@ -968,6 +975,11 @@ export type GatewayGuildMembersChunkDispatch = DataPayload<
GatewayGuildMembersChunkDispatchData
>;
/**
* https://discord.com/developers/docs/topics/gateway-events#update-presence
*/
export type GatewayGuildMembersChunkPresence = Omit<RawGatewayPresenceUpdate, 'guild_id'>;
/**
* https://discord.com/developers/docs/topics/gateway-events#guild-members-chunk
*/
@@ -999,7 +1011,7 @@ export interface GatewayGuildMembersChunkDispatchData {
*
* See https://discord.com/developers/docs/topics/gateway-events#update-presence
*/
presences?: RawGatewayPresenceUpdate[];
presences?: GatewayGuildMembersChunkPresence[];
/**
* The nonce used in the Guild Members Request
*
@@ -1691,6 +1703,24 @@ export interface GatewayWebhooksUpdateDispatchData {
channel_id: Snowflake;
}
/**
* https://discord.com/developers/docs/topics/gateway-events#guild-audit-log-entry-create
*/
export type GatewayGuildAuditLogEntryCreateDispatch = DataPayload<
GatewayDispatchEvents.GuildAuditLogEntryCreate,
GatewayGuildAuditLogEntryCreateDispatchData
>;
/**
* https://discord.com/developers/docs/topics/gateway-events#guild-audit-log-entry-create
*/
export interface GatewayGuildAuditLogEntryCreateDispatchData extends APIAuditLogEntry {
/**
* ID of the guild
*/
guild_id: Snowflake;
}
// #endregion Dispatch Payloads
// #region Sendable Payloads

View File

@@ -32,6 +32,7 @@ import type {
InviteTargetType,
PresenceUpdateStatus,
AutoModerationRuleTriggerType,
APIAuditLogEntry,
} from '../payloads/v9/mod.ts';
import type { Nullable } from '../utils/internals.ts';
@@ -179,7 +180,11 @@ export enum GatewayCloseCodes {
export enum GatewayIntentBits {
Guilds = 1 << 0,
GuildMembers = 1 << 1,
GuildBans = 1 << 2,
GuildModeration = 1 << 2,
/**
* @deprecated This is the old name for {@apilink GatewayIntentBits#GuildModeration}
*/
GuildBans = GuildModeration,
GuildEmojisAndStickers = 1 << 3,
GuildIntegrations = 1 << 4,
GuildWebhooks = 1 << 5,
@@ -261,6 +266,7 @@ export enum GatewayDispatchEvents {
AutoModerationRuleUpdate = 'AUTO_MODERATION_RULE_UPDATE',
AutoModerationRuleDelete = 'AUTO_MODERATION_RULE_DELETE',
AutoModerationActionExecution = 'AUTO_MODERATION_ACTION_EXECUTION',
GuildAuditLogEntryCreate = 'GUILD_AUDIT_LOG_ENTRY_CREATE',
}
export type GatewaySendPayload =
@@ -333,7 +339,8 @@ export type GatewayDispatchPayload =
| GatewayUserUpdateDispatch
| GatewayVoiceServerUpdateDispatch
| GatewayVoiceStateUpdateDispatch
| GatewayWebhooksUpdateDispatch;
| GatewayWebhooksUpdateDispatch
| GatewayGuildAuditLogEntryCreateDispatch;
// #region Dispatch Payloads
@@ -967,6 +974,11 @@ export type GatewayGuildMembersChunkDispatch = DataPayload<
GatewayGuildMembersChunkDispatchData
>;
/**
* https://discord.com/developers/docs/topics/gateway-events#update-presence
*/
export type GatewayGuildMembersChunkPresence = Omit<RawGatewayPresenceUpdate, 'guild_id'>;
/**
* https://discord.com/developers/docs/topics/gateway-events#guild-members-chunk
*/
@@ -998,7 +1010,7 @@ export interface GatewayGuildMembersChunkDispatchData {
*
* See https://discord.com/developers/docs/topics/gateway-events#update-presence
*/
presences?: RawGatewayPresenceUpdate[];
presences?: GatewayGuildMembersChunkPresence[];
/**
* The nonce used in the Guild Members Request
*
@@ -1690,6 +1702,24 @@ export interface GatewayWebhooksUpdateDispatchData {
channel_id: Snowflake;
}
/**
* https://discord.com/developers/docs/topics/gateway-events#guild-audit-log-entry-create
*/
export type GatewayGuildAuditLogEntryCreateDispatch = DataPayload<
GatewayDispatchEvents.GuildAuditLogEntryCreate,
GatewayGuildAuditLogEntryCreateDispatchData
>;
/**
* https://discord.com/developers/docs/topics/gateway-events#guild-audit-log-entry-create
*/
export interface GatewayGuildAuditLogEntryCreateDispatchData extends APIAuditLogEntry {
/**
* ID of the guild
*/
guild_id: Snowflake;
}
// #endregion Dispatch Payloads
// #region Sendable Payloads

View File

@@ -8,47 +8,261 @@ import type { LocaleString } from '../rest/common.ts';
* replicate them in some way
*/
export const PermissionFlagsBits = {
/**
* Allows creation of instant invites
*
* Applies to channel types: Text, Voice, Stage
*/
CreateInstantInvite: 1n << 0n,
/**
* Allows kicking members
*/
KickMembers: 1n << 1n,
/**
* Allows banning members
*/
BanMembers: 1n << 2n,
/**
* Allows all permissions and bypasses channel permission overwrites
*/
Administrator: 1n << 3n,
/**
* Allows management and editing of channels
*
* Applies to channel types: Text, Voice, Stage
*/
ManageChannels: 1n << 4n,
/**
* Allows management and editing of the guild
*/
ManageGuild: 1n << 5n,
/**
* Allows for the addition of reactions to messages
*
* Applies to channel types: Text, Voice, Stage
*/
AddReactions: 1n << 6n,
/**
* Allows for viewing of audit logs
*/
ViewAuditLog: 1n << 7n,
/**
* Allows for using priority speaker in a voice channel
*
* Applies to channel types: Voice
*/
PrioritySpeaker: 1n << 8n,
/**
* Allows the user to go live
*
* Applies to channel types: Voice, Stage
*/
Stream: 1n << 9n,
/**
* Allows guild members to view a channel, which includes reading messages in text channels and joining voice channels
*
* Applies to channel types: Text, Voice, Stage
*/
ViewChannel: 1n << 10n,
/**
* Allows for sending messages in a channel and creating threads in a forum
* (does not allow sending messages in threads)
*
* Applies to channel types: Text, Voice, Stage
*/
SendMessages: 1n << 11n,
/**
* Allows for sending of `/tts` messages
*
* Applies to channel types: Text, Voice, Stage
*/
SendTTSMessages: 1n << 12n,
/**
* Allows for deletion of other users messages
*
* Applies to channel types: Text, Voice, Stage
*/
ManageMessages: 1n << 13n,
/**
* Links sent by users with this permission will be auto-embedded
*
* Applies to channel types: Text, Voice, Stage
*/
EmbedLinks: 1n << 14n,
/**
* Allows for uploading images and files
*
* Applies to channel types: Text, Voice, Stage
*/
AttachFiles: 1n << 15n,
/**
* Allows for reading of message history
*
* Applies to channel types: Text, Voice, Stage
*/
ReadMessageHistory: 1n << 16n,
/**
* Allows for using the `@everyone` tag to notify all users in a channel,
* and the `@here` tag to notify all online users in a channel
*
* Applies to channel types: Text, Voice, Stage
*/
MentionEveryone: 1n << 17n,
/**
* Allows the usage of custom emojis from other servers
*
* Applies to channel types: Text, Voice, Stage
*/
UseExternalEmojis: 1n << 18n,
/**
* Allows for viewing guild insights
*/
ViewGuildInsights: 1n << 19n,
/**
* Allows for joining of a voice channel
*
* Applies to channel types: Voice, Stage
*/
Connect: 1n << 20n,
/**
* Allows for speaking in a voice channel
*
* Applies to channel types: Voice
*/
Speak: 1n << 21n,
/**
* Allows for muting members in a voice channel
*
* Applies to channel types: Voice, Stage
*/
MuteMembers: 1n << 22n,
/**
* Allows for deafening of members in a voice channel
*
* Applies to channel types: Voice
*/
DeafenMembers: 1n << 23n,
/**
* Allows for moving of members between voice channels
*
* Applies to channel types: Voice, Stage
*/
MoveMembers: 1n << 24n,
/**
* Allows for using voice-activity-detection in a voice channel
*
* Applies to channel types: Voice
*/
UseVAD: 1n << 25n,
/**
* Allows for modification of own nickname
*/
ChangeNickname: 1n << 26n,
/**
* Allows for modification of other users nicknames
*/
ManageNicknames: 1n << 27n,
/**
* Allows management and editing of roles
*
* Applies to channel types: Text, Voice, Stage
*/
ManageRoles: 1n << 28n,
/**
* Allows management and editing of webhooks
*
* Applies to channel types: Text, Voice, Stage
*/
ManageWebhooks: 1n << 29n,
/**
* Allows management and editing of emojis, stickers, and soundboard sounds
*
* @deprecated This is the old name for {@apilink PermissionFlagsBits#ManageGuildExpressions}
*/
ManageEmojisAndStickers: 1n << 30n,
/**
* Allows management and editing of emojis, stickers, and soundboard sounds
*/
ManageGuildExpressions: 1n << 30n,
/**
* Allows members to use application commands, including slash commands and context menu commands
*
* Applies to channel types: Text, Voice, Stage
*/
UseApplicationCommands: 1n << 31n,
/**
* Allows for requesting to speak in stage channels
*
* Applies to channel types: Stage
*/
RequestToSpeak: 1n << 32n,
/**
* Allows for creating, editing, and deleting scheduled events
*
* Applies to channel types: Voice, Stage
*/
ManageEvents: 1n << 33n,
/**
* Allows for deleting and archiving threads, and viewing all private threads
*
* Applies to channel types: Text
*/
ManageThreads: 1n << 34n,
/**
* Allows for creating public and announcement threads
*
* Applies to channel types: Text
*/
CreatePublicThreads: 1n << 35n,
/**
* Allows for creating private threads
*
* Applies to channel types: Text
*/
CreatePrivateThreads: 1n << 36n,
/**
* Allows the usage of custom stickers from other servers
*
* Applies to channel types: Text, Voice, Stage
*/
UseExternalStickers: 1n << 37n,
/**
* Allows for sending messages in threads
*
* Applies to channel types: Text
*/
SendMessagesInThreads: 1n << 38n,
/**
* Allows for using Activities (applications with the {@apilink ApplicationFlags.Embedded} flag) in a voice channel
*
* Applies to channel types: Voice
*/
UseEmbeddedActivities: 1n << 39n,
/**
* Allows for timing out users to prevent them from sending or reacting to messages in chat and threads,
* and from speaking in voice and stage channels
*/
ModerateMembers: 1n << 40n,
/**
* Allows for viewing role subscription insights
*/
ViewCreatorMonetizationAnalytics: 1n << 41n,
/**
* Allows for using soundboard in a voice channel
*
* Applies to channel types: Voice
*/
UseSoundboard: 1n << 42n,
/**
* @unstable This permission flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
UseExternalSounds: 1n << 45n,
/**
* Allows sending voice messages
*
* Applies to channel types: Text, Voice, Stage
*/
SendVoiceMessages: 1n << 46n,
} as const;
/**

View File

@@ -115,7 +115,10 @@ export type APIApplicationCommandInteractionData =
export type APIApplicationCommandInteractionWrapper<Data extends APIApplicationCommandInteractionData> =
APIBaseInteraction<InteractionType.ApplicationCommand, Data> &
Required<
Pick<APIBaseInteraction<InteractionType.ApplicationCommand, Data>, 'channel_id' | 'data' | 'app_permissions'>
Pick<
APIBaseInteraction<InteractionType.ApplicationCommand, Data>,
'channel' | 'channel_id' | 'data' | 'app_permissions'
>
>;
/**

View File

@@ -1,7 +1,7 @@
import type { InteractionType } from './responses.ts';
import type { Permissions, Snowflake } from '../../../globals.ts';
import type { APIRole, LocaleString } from '../../../v10.ts';
import type { APIAttachment, APIMessage, APIPartialChannel, APIThreadMetadata } from '../channel.ts';
import type { APIAttachment, APIChannel, APIMessage, APIPartialChannel, APIThreadMetadata } from '../channel.ts';
import type { APIGuildMember } from '../guild.ts';
import type { APIUser } from '../user.ts';
@@ -81,6 +81,12 @@ export interface APIBaseInteraction<Type extends InteractionType, Data> {
/**
* The channel it was sent from
*/
channel?: Partial<APIChannel> & Pick<APIChannel, 'id' | 'type'>;
/**
* The id of the channel it was sent from
*
* @deprecated Use {@apilink APIBaseInteraction#channel} instead
*/
channel_id?: Snowflake;
/**
* Guild member data for the invoking user, including permissions

View File

@@ -15,7 +15,7 @@ export type APIMessageComponentInteraction = APIBaseInteraction<
Required<
Pick<
APIBaseInteraction<InteractionType.MessageComponent, APIMessageComponentInteractionData>,
'channel_id' | 'data' | 'app_permissions' | 'message'
'channel' | 'channel_id' | 'data' | 'app_permissions' | 'message'
>
>;
@@ -26,7 +26,7 @@ export type APIMessageComponentButtonInteraction = APIBaseInteraction<
Required<
Pick<
APIBaseInteraction<InteractionType.MessageComponent, APIMessageButtonInteractionData>,
'channel_id' | 'data' | 'app_permissions' | 'message'
'channel' | 'channel_id' | 'data' | 'app_permissions' | 'message'
>
>;
@@ -37,7 +37,7 @@ export type APIMessageComponentSelectMenuInteraction = APIBaseInteraction<
Required<
Pick<
APIBaseInteraction<InteractionType.MessageComponent, APIMessageSelectMenuInteractionData>,
'channel_id' | 'data' | 'app_permissions' | 'message'
'channel' | 'channel_id' | 'data' | 'app_permissions' | 'message'
>
>;

View File

@@ -123,19 +123,27 @@ export interface APIApplicationInstallParams {
*/
export enum ApplicationFlags {
/**
* @unstable
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
EmbeddedReleased = 1 << 1,
/**
* @unstable
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
ManagedEmoji = 1 << 2,
/**
* @unstable
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
EmbeddedIAP = 1 << 3,
/**
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
GroupDMCreate = 1 << 4,
/**
* @unstable
* Indicates if an app uses the Auto Moderation API
*/
ApplicationAutoModerationRuleCreateBadge = 1 << 6,
/**
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
RPCHasConnected = 1 << 11,
/**
@@ -174,7 +182,7 @@ export enum ApplicationFlags {
*/
GatewayMessageContentLimited = 1 << 19,
/**
* @unstable
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
EmbeddedFirstParty = 1 << 20,
/**
@@ -192,11 +200,11 @@ export interface APIApplicationRoleConnectionMetadata {
*/
type: ApplicationRoleConnectionMetadataType;
/**
* Dictionary key for the metadata field (must be `a-z`, `0-9`, or `_` characters; max 50 characters)
* Dictionary key for the metadata field (must be `a-z`, `0-9`, or `_` characters; 1-50 characters)
*/
key: string;
/**
* Name of the metadata field (max 100 characters)
* Name of the metadata field (1-100 characters)
*/
name: string;
/**
@@ -204,7 +212,7 @@ export interface APIApplicationRoleConnectionMetadata {
*/
name_localizations?: LocalizationMap;
/**
* Description of the metadata field (max 200 characters)
* Description of the metadata field (1-200 characters)
*/
description: string;
/**

View File

@@ -59,7 +59,7 @@ export interface APIAutoModerationRule {
*/
export enum AutoModerationRuleTriggerType {
/**
* Check if content contains words from a user defined list of keywords (Maximum of 3 per guild)
* Check if content contains words from a user defined list of keywords (Maximum of 6 per guild)
*/
Keyword = 1,
/**
@@ -83,7 +83,7 @@ export interface APIAutoModerationRuleTriggerMetadata {
/**
* Substrings which will be searched for in content (Maximum of 1000)
*
* A keyword can be a phrase which contains multiple words. Wildcard symbols can be used to customize how each string will be matched. Each keyword must be 30 characters or less
* A keyword can be a phrase which contains multiple words. Wildcard symbols can be used to customize how each string will be matched. Each keyword must be 60 characters or less
* See [keyword matching strategies](https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-keyword-matching-strategies)
*
* Associated trigger type: {@link AutoModerationRuleTriggerType.Keyword}
@@ -98,7 +98,7 @@ export interface APIAutoModerationRuleTriggerMetadata {
/**
* Substrings which will be exempt from triggering the preset trigger type (Maximum of 1000)
*
* A allowed-word can be a phrase which contains multiple words. Wildcard symbols can be used to customize how each string will be matched. Each keyword must be 30 characters or less
* A allowed-word can be a phrase which contains multiple words. Wildcard symbols can be used to customize how each string will be matched. Each keyword must be 60 characters or less
* See [keyword matching strategies](https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-keyword-matching-strategies)
*
* Associated trigger type: {@link AutoModerationRuleTriggerType.KeywordPreset}
@@ -107,7 +107,7 @@ export interface APIAutoModerationRuleTriggerMetadata {
/**
* Regular expression patterns which will be matched against content (Maximum of 10)
*
* Only Rust flavored regex is currently supported (Maximum of 75 characters)
* Only Rust flavored regex is currently supported (Maximum of 260 characters)
*
* Associated trigger type: {@link AutoModerationRuleTriggerType.Keyword}
*/
@@ -169,7 +169,8 @@ export interface APIAutoModerationAction {
*/
export enum AutoModerationActionType {
/**
* Blocks the content of a message according to the rule
* Blocks a member's message and prevents it from being posted.
* A custom explanation can be specified and shown to members whenever their message is blocked
*/
BlockMessage = 1,
/**
@@ -200,4 +201,10 @@ export interface APIAutoModerationActionMetadata {
* Associated action type: {@link AutoModerationActionType.Timeout}
*/
duration_seconds?: number;
/**
* Additional explanation that will be shown to members whenever their message is blocked (Maximum 150 characters)
*
* Associated action type {@link AutoModerationActionType.BlockMessage}
*/
custom_message?: string;
}

View File

@@ -4,6 +4,7 @@
import type { APIApplication } from './application.ts';
import type { APIPartialEmoji } from './emoji.ts';
import type { APIGuildMember } from './guild.ts';
import type { APIMessageInteraction } from './interactions.ts';
import type { APIRole } from './permissions.ts';
import type { APISticker, APIStickerItem } from './sticker.ts';
@@ -48,7 +49,8 @@ export type TextChannelType =
| ChannelType.AnnouncementThread
| ChannelType.GuildText
| ChannelType.GuildForum
| ChannelType.GuildVoice;
| ChannelType.GuildVoice
| ChannelType.GuildStageVoice;
export type GuildChannelType = Exclude<ChannelType, ChannelType.DM | ChannelType.GroupDM>;
@@ -131,13 +133,15 @@ export type APITextChannel = APIGuildTextChannel<ChannelType.GuildText>;
export type APINewsChannel = APIGuildTextChannel<ChannelType.GuildAnnouncement>;
export type APIGuildCategoryChannel = APIGuildChannel<ChannelType.GuildCategory>;
export interface APIVoiceChannelBase<T extends ChannelType> extends APIGuildChannel<T> {
export interface APIVoiceChannelBase<T extends ChannelType>
extends APIGuildChannel<T>,
Omit<APITextBasedChannel<T>, 'name' | 'last_pin_timestamp'> {
/**
* The bitrate (in bits) of the voice channel
* The bitrate (in bits) of the voice or stage channel
*/
bitrate?: number;
/**
* The user limit of the voice channel
* The user limit of the voice or stage channel
*/
user_limit?: number;
/**
@@ -146,19 +150,16 @@ export interface APIVoiceChannelBase<T extends ChannelType> extends APIGuildChan
* See https://discord.com/developers/docs/resources/voice#voice-region-object
*/
rtc_region?: string | null;
}
export interface APIGuildVoiceChannel
extends APIVoiceChannelBase<ChannelType.GuildVoice>,
Omit<APITextBasedChannel<ChannelType.GuildVoice>, 'name' | 'last_pin_timestamp'> {
/**
* The camera video quality mode of the voice channel, `1` when not present
* The camera video quality mode of the voice or stage channel, `1` when not present
*
* See https://discord.com/developers/docs/resources/channel#channel-object-video-quality-modes
*/
video_quality_mode?: VideoQualityMode;
}
export type APIGuildVoiceChannel = APIVoiceChannelBase<ChannelType.GuildVoice>;
export type APIGuildStageVoiceChannel = APIVoiceChannelBase<ChannelType.GuildStageVoice>;
export interface APIDMChannelBase<T extends ChannelType> extends Omit<APITextBasedChannel<T>, 'rate_limit_per_user'> {
@@ -198,6 +199,10 @@ export interface APIGroupDMChannel extends Omit<APIDMChannelBase<ChannelType.Gro
* The id of the last message sent in this channel (may not point to an existing or valid message)
*/
last_message_id?: Snowflake | null;
/**
* Whether the channel is managed by an OAuth2 application
*/
managed?: boolean;
}
export interface APIThreadChannel
@@ -658,6 +663,11 @@ export interface APIMessage {
* It can be used to estimate the relative position of the message in a thread in company with `total_message_sent` on parent thread
*/
position?: number;
/**
* Data of the role subscription purchase or renewal that prompted this `ROLE_SUBSCRIPTION_PURCHASE` message
*/
role_subscription_data?: APIMessageRoleSubscriptionData;
}
/**
@@ -677,6 +687,7 @@ export enum MessageType {
GuildBoostTier2,
GuildBoostTier3,
ChannelFollowAdd,
GuildDiscoveryDisqualified = 14,
GuildDiscoveryRequalified,
GuildDiscoveryGracePeriodInitialWarning,
@@ -688,6 +699,17 @@ export enum MessageType {
GuildInviteReminder,
ContextMenuCommand,
AutoModerationAction,
RoleSubscriptionPurchase,
InteractionPremiumUpsell,
StageStart,
StageEnd,
StageSpeaker,
/**
* @unstable https://github.com/discord/discord-api-docs/pull/5927#discussion_r1107678548
*/
StageRaiseHand,
StageTopic,
GuildApplicationPremiumSubscription,
}
/**
@@ -776,6 +798,40 @@ export enum MessageFlags {
* This message failed to mention some roles and add their members to the thread
*/
FailedToMentionSomeRolesInThread = 1 << 8,
/**
* @unstable This message flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
ShouldShowLinkNotDiscordWarning = 1 << 10,
/**
* This message will not trigger push and desktop notifications
*/
SuppressNotifications = 1 << 12,
/**
* This message is a voice message
*/
IsVoiceMessage = 1 << 13,
}
/**
* https://discord.com/developers/docs/resources/channel#role-subscription-data-object-role-subscription-data-object-structure
*/
export interface APIMessageRoleSubscriptionData {
/**
* The id of the SKU and listing the user is subscribed to
*/
role_subscription_listing_id: Snowflake;
/**
* The name of the tier the user is subscribed to
*/
tier_name: string;
/**
* The number of months the user has been subscribed for
*/
total_months_subscribed: number;
/**
* Whether this notification is for a renewal
*/
is_renewal: boolean;
}
/**
@@ -912,9 +968,34 @@ export interface APIThreadMember {
* See https://en.wikipedia.org/wiki/Bit_field
*/
flags: ThreadMemberFlags;
/**
* Additional information about the user
*
* **This field is omitted on the member sent within each thread in the `GUILD_CREATE` event**
*
* **This field is only present when `with_member` is set to true when calling `List Thread Members` or `Get Thread Member`**
*/
member?: APIGuildMember;
}
export enum ThreadMemberFlags {}
export enum ThreadMemberFlags {
/**
* @unstable This thread member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
HasInteracted = 1 << 0,
/**
* @unstable This thread member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
AllMessages = 1 << 1,
/**
* @unstable This thread member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
OnlyMentions = 1 << 2,
/**
* @unstable This thread member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
NoMessages = 1 << 3,
}
export interface APIThreadList {
/**
@@ -1240,6 +1321,14 @@ export interface APIAttachment {
* Whether this attachment is ephemeral
*/
ephemeral?: boolean;
/**
* The duration of the audio file (currently for voice messages)
*/
duration_secs?: number;
/**
* Base64 encoded bytearray representing a sampled waveform (currently for voice messages)
*/
waveform?: string;
}
/**
@@ -1605,15 +1694,39 @@ export interface APITextInputComponent extends APIBaseComponent<ComponentType.Te
* https://discord.com/developers/docs/resources/channel#channel-object-channel-flags
*/
export enum ChannelFlags {
/**
* @unstable This channel flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
GuildFeedRemoved = 1 << 0,
/**
* This thread is pinned to the top of its parent forum channel
*/
Pinned = 1 << 1,
/**
* @unstable This channel flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
ActiveChannelsRemoved = 1 << 2,
/**
* Whether a tag is required to be specified when creating a thread in a forum channel.
* Tags are specified in the `applied_tags` field
*/
RequireTag = 1 << 4,
/**
* @unstable This channel flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
IsSpam = 1 << 5,
/**
* @unstable This channel flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
IsGuildResourceChannel = 1 << 7,
/**
* @unstable This channel flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
ClydeAI = 1 << 8,
/**
* @unstable This channel flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
IsScheduledForDeletion = 1 << 9,
}
/**

View File

@@ -236,11 +236,17 @@ export interface APIGuild extends APIPartialGuild {
*/
max_video_channel_users?: number;
/**
* **This field is only received from https://discord.com/developers/docs/resources/guild#get-guild with the `with_counts` query parameter set to `true`**
* The maximum amount of users in a stage video channel
*/
max_stage_video_channel_users?: number;
/**
* Approximate number of members in this guild,
* returned from the `GET /guilds/<id>` and `/users/@me/guilds` (OAuth2) endpoints when `with_counts` is `true`
*/
approximate_member_count?: number;
/**
* **This field is only received from https://discord.com/developers/docs/resources/guild#get-guild with the `with_counts` query parameter set to `true`**
* Approximate number of non-offline members in this guild,
* returned from the `GET /guilds/<id>` and `/users/@me/guilds` (OAuth2) endpoints when `with_counts` is `true`
*/
approximate_presence_count?: number;
/**
@@ -368,6 +374,14 @@ export enum GuildSystemChannelFlags {
* Hide member join sticker reply buttons
*/
SuppressJoinNotificationReplies = 1 << 3,
/**
* Suppress role subscription purchase and renewal notifications
*/
SuppressRoleSubscriptionPurchaseNotifications = 1 << 4,
/**
* Hide role subscription sticker reply buttons
*/
SuppressRoleSubscriptionPurchaseNotificationReplies = 1 << 5,
}
/**
@@ -400,6 +414,14 @@ export enum GuildFeature {
* Guild can enable welcome screen, Membership Screening and discovery, and receives community updates
*/
Community = 'COMMUNITY',
/**
* Guild has enabled monetization
*/
CreatorMonetizableProvisional = 'CREATOR_MONETIZABLE_PROVISIONAL',
/**
* Guild has enabled the role subscription promo page
*/
CreatorStorePage = 'CREATOR_STORE_PAGE',
/*
* Guild has been set as a support server on the App Directory
*/
@@ -446,6 +468,8 @@ export enum GuildFeature {
MemberVerificationGateEnabled = 'MEMBER_VERIFICATION_GATE_ENABLED',
/**
* Guild has enabled monetization
*
* @unstable This feature is no longer documented by Discord
*/
MonetizationEnabled = 'MONETIZATION_ENABLED',
/**
@@ -473,6 +497,14 @@ export enum GuildFeature {
* Guild is able to set role icons
*/
RoleIcons = 'ROLE_ICONS',
/**
* Guild has role subscriptions that can be purchased
*/
RoleSubscriptionsAvailableForPurchase = 'ROLE_SUBSCRIPTIONS_AVAILABLE_FOR_PURCHASE',
/**
* Guild has enabled role subscriptions
*/
RoleSubscriptionsEnabled = 'ROLE_SUBSCRIPTIONS_ENABLED',
/**
* Guild has enabled ticketed events
*/
@@ -613,6 +645,10 @@ export interface APIGuildMember {
* Whether the user is muted in voice channels
*/
mute: boolean;
/**
* Guild member flags represented as a bit set, defaults to `0`
*/
flags: GuildMemberFlags;
/**
* Whether the user has not yet passed the guild's Membership Screening requirements
*
@@ -625,6 +661,44 @@ export interface APIGuildMember {
communication_disabled_until?: string | null;
}
/**
* https://discord.com/developers/docs/resources/guild#guild-member-object-guild-member-flags
*/
export enum GuildMemberFlags {
/**
* Member has left and rejoined the guild
*/
DidRejoin = 1 << 0,
/**
* Member has completed onboarding
*/
CompletedOnboarding = 1 << 1,
/**
* Member bypasses guild verification requirements
*/
BypassesVerification = 1 << 2,
/**
* Member has started onboarding
*/
StartedOnboarding = 1 << 3,
/**
* @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
StartedHomeActions = 1 << 5,
/**
* @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
CompletedHomeActions = 1 << 6,
/**
* @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
AutomodQuarantinedUsernameOrGuildNickname = 1 << 7,
/**
* @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
AutomodQuarantinedBio = 1 << 8,
}
/**
* https://discord.com/developers/docs/resources/guild#integration-object
*/
@@ -644,7 +718,7 @@ export interface APIGuildIntegration {
/**
* Is this integration enabled
*/
enabled?: boolean;
enabled: boolean;
/**
* Is this integration syncing
*
@@ -680,7 +754,7 @@ export interface APIGuildIntegration {
/**
* User for this integration
*
* **This field is not provided for `discord` bot integrations.**
* **Some older integrations may not have an attached user.**
*
* See https://discord.com/developers/docs/resources/user#user-object
*/
@@ -723,7 +797,7 @@ export interface APIGuildIntegration {
scopes?: OAuth2Scopes[];
}
export type APIGuildIntegrationType = 'twitch' | 'youtube' | 'discord';
export type APIGuildIntegrationType = 'twitch' | 'youtube' | 'discord' | 'guild_subscription';
/**
* https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors

View File

@@ -72,4 +72,16 @@ export interface APIRoleTags {
* The id of the integration this role belongs to
*/
integration_id?: Snowflake;
/**
* The id of this role's subscription sku and listing
*/
subscription_listing_id?: Snowflake;
/**
* Whether this role is available for purchase
*/
available_for_purchase?: null;
/**
* Whether this role is a guild's linked role
*/
guild_connections?: null;
}

View File

@@ -85,6 +85,7 @@ export enum StickerFormatType {
PNG = 1,
APNG,
Lottie,
GIF,
}
/**

View File

@@ -101,6 +101,14 @@ export enum UserFlags {
* Bug Hunter Level 1
*/
BugHunterLevel1 = 1 << 3,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
MFASMS = 1 << 4,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
PremiumPromoDismissed = 1 << 5,
/**
* House Bravery Member
*/
@@ -121,6 +129,10 @@ export enum UserFlags {
* User is a [team](https://discord.com/developers/docs/topics/teams)
*/
TeamPseudoUser = 1 << 10,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
HasUnreadUrgentMessages = 1 << 13,
/**
* Bug Hunter Level 2
*/
@@ -147,6 +159,10 @@ export enum UserFlags {
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
Spammer = 1 << 20,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
DisablePremium = 1 << 21,
/**
* User is an [Active Developer](https://support-dev.discord.com/hc/articles/10113997751447)
*/
@@ -161,6 +177,22 @@ export enum UserFlags {
* This value would be 1 << 44, but bit shifting above 1 << 30 requires bigints
*/
Quarantined = 17592186044416,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*
* @privateRemarks
*
* This value would be 1 << 50, but bit shifting above 1 << 30 requires bigints
*/
Collaborator = 1125899906842624,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*
* @privateRemarks
*
* This value would be 1 << 51, but bit shifting above 1 << 30 requires bigints
*/
RestrictedCollaborator = 2251799813685248,
}
/**
@@ -231,6 +263,7 @@ export enum ConnectionService {
EpicGames = 'epicgames',
Facebook = 'facebook',
GitHub = 'github',
Instagram = 'instagram',
LeagueOfLegends = 'leagueoflegends',
PayPal = 'paypal',
PlayStationNetwork = 'playstation',
@@ -239,6 +272,7 @@ export enum ConnectionService {
Spotify = 'spotify',
Skype = 'skype',
Steam = 'steam',
TikTok = 'tiktok',
Twitch = 'twitch',
Twitter = 'twitter',
Xbox = 'xbox',

View File

@@ -115,7 +115,10 @@ export type APIApplicationCommandInteractionData =
export type APIApplicationCommandInteractionWrapper<Data extends APIApplicationCommandInteractionData> =
APIBaseInteraction<InteractionType.ApplicationCommand, Data> &
Required<
Pick<APIBaseInteraction<InteractionType.ApplicationCommand, Data>, 'channel_id' | 'data' | 'app_permissions'>
Pick<
APIBaseInteraction<InteractionType.ApplicationCommand, Data>,
'channel' | 'channel_id' | 'data' | 'app_permissions'
>
>;
/**

View File

@@ -1,7 +1,7 @@
import type { InteractionType } from './responses.ts';
import type { Permissions, Snowflake } from '../../../globals.ts';
import type { APIRole, LocaleString } from '../../../v9.ts';
import type { APIAttachment, APIMessage, APIPartialChannel, APIThreadMetadata } from '../channel.ts';
import type { APIAttachment, APIChannel, APIMessage, APIPartialChannel, APIThreadMetadata } from '../channel.ts';
import type { APIGuildMember } from '../guild.ts';
import type { APIUser } from '../user.ts';
@@ -81,6 +81,12 @@ export interface APIBaseInteraction<Type extends InteractionType, Data> {
/**
* The channel it was sent from
*/
channel?: Partial<APIChannel> & Pick<APIChannel, 'id' | 'type'>;
/**
* The id of the channel it was sent from
*
* @deprecated Use {@apilink APIBaseInteraction#channel} instead
*/
channel_id?: Snowflake;
/**
* Guild member data for the invoking user, including permissions

View File

@@ -15,7 +15,7 @@ export type APIMessageComponentInteraction = APIBaseInteraction<
Required<
Pick<
APIBaseInteraction<InteractionType.MessageComponent, APIMessageComponentInteractionData>,
'channel_id' | 'data' | 'app_permissions' | 'message'
'channel' | 'channel_id' | 'data' | 'app_permissions' | 'message'
>
>;
@@ -26,7 +26,7 @@ export type APIMessageComponentButtonInteraction = APIBaseInteraction<
Required<
Pick<
APIBaseInteraction<InteractionType.MessageComponent, APIMessageButtonInteractionData>,
'channel_id' | 'data' | 'app_permissions' | 'message'
'channel' | 'channel_id' | 'data' | 'app_permissions' | 'message'
>
>;
@@ -37,7 +37,7 @@ export type APIMessageComponentSelectMenuInteraction = APIBaseInteraction<
Required<
Pick<
APIBaseInteraction<InteractionType.MessageComponent, APIMessageSelectMenuInteractionData>,
'channel_id' | 'data' | 'app_permissions' | 'message'
'channel' | 'channel_id' | 'data' | 'app_permissions' | 'message'
>
>;

View File

@@ -123,19 +123,27 @@ export interface APIApplicationInstallParams {
*/
export enum ApplicationFlags {
/**
* @unstable
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
EmbeddedReleased = 1 << 1,
/**
* @unstable
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
ManagedEmoji = 1 << 2,
/**
* @unstable
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
EmbeddedIAP = 1 << 3,
/**
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
GroupDMCreate = 1 << 4,
/**
* @unstable
* Indicates if an app uses the Auto Moderation API
*/
ApplicationAutoModerationRuleCreateBadge = 1 << 6,
/**
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
RPCHasConnected = 1 << 11,
/**
@@ -174,7 +182,7 @@ export enum ApplicationFlags {
*/
GatewayMessageContentLimited = 1 << 19,
/**
* @unstable
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
EmbeddedFirstParty = 1 << 20,
/**
@@ -192,11 +200,11 @@ export interface APIApplicationRoleConnectionMetadata {
*/
type: ApplicationRoleConnectionMetadataType;
/**
* Dictionary key for the metadata field (must be `a-z`, `0-9`, or `_` characters; max 50 characters)
* Dictionary key for the metadata field (must be `a-z`, `0-9`, or `_` characters; 1-50 characters)
*/
key: string;
/**
* Name of the metadata field (max 100 characters)
* Name of the metadata field (1-100 characters)
*/
name: string;
/**
@@ -204,7 +212,7 @@ export interface APIApplicationRoleConnectionMetadata {
*/
name_localizations?: LocalizationMap;
/**
* Description of the metadata field (max 200 characters)
* Description of the metadata field (1-200 characters)
*/
description: string;
/**

View File

@@ -59,7 +59,7 @@ export interface APIAutoModerationRule {
*/
export enum AutoModerationRuleTriggerType {
/**
* Check if content contains words from a user defined list of keywords (Maximum of 3 per guild)
* Check if content contains words from a user defined list of keywords (Maximum of 6 per guild)
*/
Keyword = 1,
/**
@@ -83,7 +83,7 @@ export interface APIAutoModerationRuleTriggerMetadata {
/**
* Substrings which will be searched for in content (Maximum of 1000)
*
* A keyword can be a phrase which contains multiple words. Wildcard symbols can be used to customize how each string will be matched. Each keyword must be 30 characters or less
* A keyword can be a phrase which contains multiple words. Wildcard symbols can be used to customize how each string will be matched. Each keyword must be 60 characters or less
* See [keyword matching strategies](https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-keyword-matching-strategies)
*
* Associated trigger type: {@link AutoModerationRuleTriggerType.Keyword}
@@ -98,7 +98,7 @@ export interface APIAutoModerationRuleTriggerMetadata {
/**
* Substrings which will be exempt from triggering the preset trigger type (Maximum of 1000)
*
* A allowed-word can be a phrase which contains multiple words. Wildcard symbols can be used to customize how each string will be matched. Each keyword must be 30 characters or less
* A allowed-word can be a phrase which contains multiple words. Wildcard symbols can be used to customize how each string will be matched. Each keyword must be 60 characters or less
* See [keyword matching strategies](https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-keyword-matching-strategies)
*
* Associated trigger type: {@link AutoModerationRuleTriggerType.KeywordPreset}
@@ -107,7 +107,7 @@ export interface APIAutoModerationRuleTriggerMetadata {
/**
* Regular expression patterns which will be matched against content (Maximum of 10)
*
* Only Rust flavored regex is currently supported (Maximum of 75 characters)
* Only Rust flavored regex is currently supported (Maximum of 260 characters)
*
* Associated trigger type: {@link AutoModerationRuleTriggerType.Keyword}
*/
@@ -169,7 +169,8 @@ export interface APIAutoModerationAction {
*/
export enum AutoModerationActionType {
/**
* Blocks the content of a message according to the rule
* Blocks a member's message and prevents it from being posted.
* A custom explanation can be specified and shown to members whenever their message is blocked
*/
BlockMessage = 1,
/**
@@ -200,4 +201,10 @@ export interface APIAutoModerationActionMetadata {
* Associated action type: {@link AutoModerationActionType.Timeout}
*/
duration_seconds?: number;
/**
* Additional explanation that will be shown to members whenever their message is blocked (Maximum 150 characters)
*
* Associated action type {@link AutoModerationActionType.BlockMessage}
*/
custom_message?: string;
}

View File

@@ -4,6 +4,7 @@
import type { APIApplication } from './application.ts';
import type { APIPartialEmoji } from './emoji.ts';
import type { APIGuildMember } from './guild.ts';
import type { APIMessageInteraction } from './interactions.ts';
import type { APIRole } from './permissions.ts';
import type { APISticker, APIStickerItem } from './sticker.ts';
@@ -48,7 +49,8 @@ export type TextChannelType =
| ChannelType.AnnouncementThread
| ChannelType.GuildText
| ChannelType.GuildForum
| ChannelType.GuildVoice;
| ChannelType.GuildVoice
| ChannelType.GuildStageVoice;
export type GuildChannelType = Exclude<ChannelType, ChannelType.DM | ChannelType.GroupDM>;
@@ -131,13 +133,15 @@ export type APITextChannel = APIGuildTextChannel<ChannelType.GuildText>;
export type APINewsChannel = APIGuildTextChannel<ChannelType.GuildAnnouncement>;
export type APIGuildCategoryChannel = APIGuildChannel<ChannelType.GuildCategory>;
export interface APIVoiceChannelBase<T extends ChannelType> extends APIGuildChannel<T> {
export interface APIVoiceChannelBase<T extends ChannelType>
extends APIGuildChannel<T>,
Omit<APITextBasedChannel<T>, 'name' | 'last_pin_timestamp'> {
/**
* The bitrate (in bits) of the voice channel
* The bitrate (in bits) of the voice or stage channel
*/
bitrate?: number;
/**
* The user limit of the voice channel
* The user limit of the voice or stage channel
*/
user_limit?: number;
/**
@@ -146,19 +150,16 @@ export interface APIVoiceChannelBase<T extends ChannelType> extends APIGuildChan
* See https://discord.com/developers/docs/resources/voice#voice-region-object
*/
rtc_region?: string | null;
}
export interface APIGuildVoiceChannel
extends APIVoiceChannelBase<ChannelType.GuildVoice>,
Omit<APITextBasedChannel<ChannelType.GuildVoice>, 'name' | 'last_pin_timestamp'> {
/**
* The camera video quality mode of the voice channel, `1` when not present
* The camera video quality mode of the voice or stage channel, `1` when not present
*
* See https://discord.com/developers/docs/resources/channel#channel-object-video-quality-modes
*/
video_quality_mode?: VideoQualityMode;
}
export type APIGuildVoiceChannel = APIVoiceChannelBase<ChannelType.GuildVoice>;
export type APIGuildStageVoiceChannel = APIVoiceChannelBase<ChannelType.GuildStageVoice>;
export interface APIDMChannelBase<T extends ChannelType> extends Omit<APITextBasedChannel<T>, 'rate_limit_per_user'> {
@@ -194,6 +195,10 @@ export interface APIGroupDMChannel extends Omit<APIDMChannelBase<ChannelType.Gro
* ID of the DM creator
*/
owner_id?: Snowflake;
/**
* Whether the channel is managed by an OAuth2 application
*/
managed?: boolean;
}
export interface APIThreadChannel
@@ -668,6 +673,7 @@ export enum MessageType {
GuildBoostTier2,
GuildBoostTier3,
ChannelFollowAdd,
GuildDiscoveryDisqualified = 14,
GuildDiscoveryRequalified,
GuildDiscoveryGracePeriodInitialWarning,
@@ -679,6 +685,17 @@ export enum MessageType {
GuildInviteReminder,
ContextMenuCommand,
AutoModerationAction,
RoleSubscriptionPurchase,
InteractionPremiumUpsell,
StageStart,
StageEnd,
StageSpeaker,
/**
* @unstable https://github.com/discord/discord-api-docs/pull/5927#discussion_r1107678548
*/
StageRaiseHand,
StageTopic,
GuildApplicationPremiumSubscription,
}
/**
@@ -767,6 +784,18 @@ export enum MessageFlags {
* This message failed to mention some roles and add their members to the thread
*/
FailedToMentionSomeRolesInThread = 1 << 8,
/**
* @unstable This message flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
ShouldShowLinkNotDiscordWarning = 1 << 10,
/**
* This message will not trigger push and desktop notifications
*/
SuppressNotifications = 1 << 12,
/**
* This message is a voice message
*/
IsVoiceMessage = 1 << 13,
}
/**
@@ -903,9 +932,34 @@ export interface APIThreadMember {
* See https://en.wikipedia.org/wiki/Bit_field
*/
flags: ThreadMemberFlags;
/**
* Additional information about the user
*
* **This field is omitted on the member sent within each thread in the `GUILD_CREATE` event**
*
* **This field is only present when `with_member` is set to true when calling `List Thread Members` or `Get Thread Member`**
*/
member?: APIGuildMember;
}
export enum ThreadMemberFlags {}
export enum ThreadMemberFlags {
/**
* @unstable This thread member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
HasInteracted = 1 << 0,
/**
* @unstable This thread member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
AllMessages = 1 << 1,
/**
* @unstable This thread member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
OnlyMentions = 1 << 2,
/**
* @unstable This thread member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
NoMessages = 1 << 3,
}
export interface APIThreadList {
/**
@@ -1235,6 +1289,14 @@ export interface APIAttachment {
* Whether this attachment is ephemeral
*/
ephemeral?: boolean;
/**
* The duration of the audio file (currently for voice messages)
*/
duration_secs?: number;
/**
* Base64 encoded bytearray representing a sampled waveform (currently for voice messages)
*/
waveform?: string;
}
/**
@@ -1600,15 +1662,39 @@ export interface APITextInputComponent extends APIBaseComponent<ComponentType.Te
* https://discord.com/developers/docs/resources/channel#channel-object-channel-flags
*/
export enum ChannelFlags {
/**
* @unstable This channel flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
GuildFeedRemoved = 1 << 0,
/**
* This thread is pinned to the top of its parent forum channel
*/
Pinned = 1 << 1,
/**
* @unstable This channel flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
ActiveChannelsRemoved = 1 << 2,
/**
* Whether a tag is required to be specified when creating a thread in a forum channel.
* Tags are specified in the `applied_tags` field
*/
RequireTag = 1 << 4,
/**
* @unstable This channel flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
IsSpam = 1 << 5,
/**
* @unstable This channel flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
IsGuildResourceChannel = 1 << 7,
/**
* @unstable This channel flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
ClydeAI = 1 << 8,
/**
* @unstable This channel flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
IsScheduledForDeletion = 1 << 9,
}
/**

View File

@@ -236,11 +236,17 @@ export interface APIGuild extends APIPartialGuild {
*/
max_video_channel_users?: number;
/**
* **This field is only received from https://discord.com/developers/docs/resources/guild#get-guild with the `with_counts` query parameter set to `true`**
* The maximum amount of users in a stage video channel
*/
max_stage_video_channel_users?: number;
/**
* Approximate number of members in this guild,
* returned from the `GET /guilds/<id>` and `/users/@me/guilds` (OAuth2) endpoints when `with_counts` is `true`
*/
approximate_member_count?: number;
/**
* **This field is only received from https://discord.com/developers/docs/resources/guild#get-guild with the `with_counts` query parameter set to `true`**
* Approximate number of non-offline members in this guild,
* returned from the `GET /guilds/<id>` and `/users/@me/guilds` (OAuth2) endpoints when `with_counts` is `true`
*/
approximate_presence_count?: number;
/**
@@ -400,6 +406,14 @@ export enum GuildFeature {
* Guild can enable welcome screen, Membership Screening and discovery, and receives community updates
*/
Community = 'COMMUNITY',
/**
* Guild has enabled monetization
*/
CreatorMonetizableProvisional = 'CREATOR_MONETIZABLE_PROVISIONAL',
/**
* Guild has enabled the role subscription promo page
*/
CreatorStorePage = 'CREATOR_STORE_PAGE',
/*
* Guild has been set as a support server on the App Directory
*/
@@ -446,6 +460,8 @@ export enum GuildFeature {
MemberVerificationGateEnabled = 'MEMBER_VERIFICATION_GATE_ENABLED',
/**
* Guild has enabled monetization
*
* @unstable This feature is no longer documented by Discord
*/
MonetizationEnabled = 'MONETIZATION_ENABLED',
/**
@@ -473,6 +489,14 @@ export enum GuildFeature {
* Guild is able to set role icons
*/
RoleIcons = 'ROLE_ICONS',
/**
* Guild has role subscriptions that can be purchased
*/
RoleSubscriptionsAvailableForPurchase = 'ROLE_SUBSCRIPTIONS_AVAILABLE_FOR_PURCHASE',
/**
* Guild has enabled role subscriptions
*/
RoleSubscriptionsEnabled = 'ROLE_SUBSCRIPTIONS_ENABLED',
/**
* Guild has enabled ticketed events
*/
@@ -613,6 +637,10 @@ export interface APIGuildMember {
* Whether the user is muted in voice channels
*/
mute: boolean;
/**
* Guild member flags represented as a bit set, defaults to `0`
*/
flags: GuildMemberFlags;
/**
* Whether the user has not yet passed the guild's Membership Screening requirements
*
@@ -625,6 +653,44 @@ export interface APIGuildMember {
communication_disabled_until?: string | null;
}
/**
* https://discord.com/developers/docs/resources/guild#guild-member-object-guild-member-flags
*/
export enum GuildMemberFlags {
/**
* Member has left and rejoined the guild
*/
DidRejoin = 1 << 0,
/**
* Member has completed onboarding
*/
CompletedOnboarding = 1 << 1,
/**
* Member bypasses guild verification requirements
*/
BypassesVerification = 1 << 2,
/**
* Member has started onboarding
*/
StartedOnboarding = 1 << 3,
/**
* @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
StartedHomeActions = 1 << 5,
/**
* @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
CompletedHomeActions = 1 << 6,
/**
* @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
AutomodQuarantinedUsernameOrGuildNickname = 1 << 7,
/**
* @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
AutomodQuarantinedBio = 1 << 8,
}
/**
* https://discord.com/developers/docs/resources/guild#integration-object
*/
@@ -644,7 +710,7 @@ export interface APIGuildIntegration {
/**
* Is this integration enabled
*/
enabled?: boolean;
enabled: boolean;
/**
* Is this integration syncing
*
@@ -680,7 +746,7 @@ export interface APIGuildIntegration {
/**
* User for this integration
*
* **This field is not provided for `discord` bot integrations.**
* **Some older integrations may not have an attached user.**
*
* See https://discord.com/developers/docs/resources/user#user-object
*/
@@ -723,7 +789,7 @@ export interface APIGuildIntegration {
scopes?: OAuth2Scopes[];
}
export type APIGuildIntegrationType = 'twitch' | 'youtube' | 'discord';
export type APIGuildIntegrationType = 'twitch' | 'youtube' | 'discord' | 'guild_subscription';
/**
* https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors

View File

@@ -72,4 +72,16 @@ export interface APIRoleTags {
* The id of the integration this role belongs to
*/
integration_id?: Snowflake;
/**
* The id of this role's subscription sku and listing
*/
subscription_listing_id?: Snowflake;
/**
* Whether this role is available for purchase
*/
available_for_purchase?: null;
/**
* Whether this role is a guild's linked role
*/
guild_connections?: null;
}

View File

@@ -85,6 +85,7 @@ export enum StickerFormatType {
PNG = 1,
APNG,
Lottie,
GIF,
}
/**

View File

@@ -101,6 +101,14 @@ export enum UserFlags {
* Bug Hunter Level 1
*/
BugHunterLevel1 = 1 << 3,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
MFASMS = 1 << 4,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
PremiumPromoDismissed = 1 << 5,
/**
* House Bravery Member
*/
@@ -121,6 +129,10 @@ export enum UserFlags {
* User is a [team](https://discord.com/developers/docs/topics/teams)
*/
TeamPseudoUser = 1 << 10,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
HasUnreadUrgentMessages = 1 << 13,
/**
* Bug Hunter Level 2
*/
@@ -147,6 +159,10 @@ export enum UserFlags {
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
Spammer = 1 << 20,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
DisablePremium = 1 << 21,
/**
* User is an [Active Developer](https://support-dev.discord.com/hc/articles/10113997751447)
*/
@@ -161,6 +177,22 @@ export enum UserFlags {
* This value would be 1 << 44, but bit shifting above 1 << 30 requires bigints
*/
Quarantined = 17592186044416,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*
* @privateRemarks
*
* This value would be 1 << 50, but bit shifting above 1 << 30 requires bigints
*/
Collaborator = 1125899906842624,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*
* @privateRemarks
*
* This value would be 1 << 51, but bit shifting above 1 << 30 requires bigints
*/
RestrictedCollaborator = 2251799813685248,
}
/**
@@ -231,6 +263,7 @@ export enum ConnectionService {
EpicGames = 'epicgames',
Facebook = 'facebook',
GitHub = 'github',
Instagram = 'instagram',
LeagueOfLegends = 'leagueoflegends',
PlayStationNetwork = 'playstation',
Reddit = 'reddit',
@@ -239,6 +272,7 @@ export enum ConnectionService {
Spotify = 'spotify',
Skype = 'skype',
Steam = 'steam',
TikTok = 'tiktok',
Twitch = 'twitch',
Twitter = 'twitter',
Xbox = 'xbox',

View File

@@ -89,6 +89,7 @@ export enum RESTJSONErrorCodes {
MaximumNumberOfEmojisReached,
MaximumNumberOfReactionsReached = 30010,
MaximumNumberOfGroupDMsReached,
MaximumNumberOfGuildChannelsReached = 30013,
@@ -120,8 +121,13 @@ export enum RESTJSONErrorCodes {
BitrateIsTooHighForChannelOfThisType = 30052,
MaximumNumberOfPremiumEmojisReached = 30056,
MaximumNumberOfWebhooksPerGuildReached = 30058,
MaximumNumberOfChannelPermissionOverwritesReached = 30060,
TheChannelsForThisGuildAreTooLarge,
Unauthorized = 40001,
VerifyYourAccount,
OpeningDirectMessagesTooFast,
@@ -208,6 +214,8 @@ export enum RESTJSONErrorCodes {
ParameterEarlierThanCreation,
CommunityServerChannelsMustBeTextChannels,
TheEntityTypeOfTheEventIsDifferentFromTheEntityYouAreTryingToStartTheEventFor = 50091,
ServerNotAvailableInYourLocation = 50095,
ServerNeedsMonetizationEnabledToPerformThisAction = 50097,
@@ -220,7 +228,17 @@ export enum RESTJSONErrorCodes {
FailedToResizeAssetBelowTheMinimumSize = 50138,
UploadedFileNotFound = 50146,
CannotMixSubscriptionAndNonSubscriptionRolesForAnEmoji = 50144,
CannotConvertBetweenPremiumEmojiAndNormalEmoji,
UploadedFileNotFound,
VoiceMessagesDoNotSupportAdditionalContent = 50159,
VoiceMessagesMustHaveASingleAudioAttachment,
VoiceMessagesMustHaveSupportingMetadata,
VoiceMessagesCannotBeEdited,
CannotDeleteGuildSubscriptionIntegration,
YouCannotSendVoiceMessagesInThisChannel = 50173,
YouDoNotHavePermissionToSendThisSticker = 50600,

View File

@@ -6,7 +6,6 @@ import type {
APIAutoModerationRuleTriggerMetadata,
AutoModerationRuleTriggerType,
} from '../../payloads/v10/mod.ts';
import type { AddUndefinedToPossiblyUndefinedPropertiesOfInterface } from '../../utils/internals.ts';
/**
* https://discord.com/developers/docs/resources/auto-moderation#list-auto-moderation-rules-for-guild
@@ -21,7 +20,7 @@ export type RESTGetAPIAutoModerationRuleResult = APIAutoModerationRule;
/**
* https://discord.com/developers/docs/resources/auto-moderation#create-auto-moderation-rule
*/
export type RESTPostAPIAutoModerationRuleJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIAutoModerationRuleJSONBody {
/**
* The rule name
*/
@@ -39,7 +38,7 @@ export type RESTPostAPIAutoModerationRuleJSONBody = AddUndefinedToPossiblyUndefi
*
* Can be omitted if the trigger type is {@link AutoModerationRuleTriggerType.HarmfulLink} or {@link AutoModerationRuleTriggerType.Spam}
*/
trigger_metadata?: APIAutoModerationRuleTriggerMetadata;
trigger_metadata?: APIAutoModerationRuleTriggerMetadata | undefined;
/**
* The actions which will execute when this rule is triggered
*/
@@ -49,16 +48,16 @@ export type RESTPostAPIAutoModerationRuleJSONBody = AddUndefinedToPossiblyUndefi
*
* @default false
*/
enabled?: boolean;
enabled?: boolean | undefined;
/**
* The role ids that shouldn't be affected by this rule (Maximum of 20)
*/
exempt_roles?: Snowflake[];
exempt_roles?: Snowflake[] | undefined;
/**
* The channel ids that shouldn't be affected by this rule (Maximum of 50)
*/
exempt_channels?: Snowflake[];
}>;
exempt_channels?: Snowflake[] | undefined;
}
/**
* https://discord.com/developers/docs/resources/auto-moderation#create-auto-moderation-rule

View File

@@ -38,13 +38,13 @@ export type RESTGetAPIChannelResult = APIChannel;
/**
* https://discord.com/developers/docs/resources/channel#modify-channel
*/
export type RESTPatchAPIChannelJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIChannelJSONBody {
/**
* 1-100 character channel name
*
* Channel types: all
*/
name?: string;
name?: string | undefined;
/**
* The type of channel; only conversion between `text` and `news`
@@ -52,25 +52,25 @@ export type RESTPatchAPIChannelJSONBody = AddUndefinedToPossiblyUndefinedPropert
*
* Channel types: text, news
*/
type?: ChannelType.GuildAnnouncement | ChannelType.GuildText;
type?: ChannelType.GuildAnnouncement | ChannelType.GuildText | undefined;
/**
* The position of the channel in the left-hand listing
*
* Channel types: all excluding newsThread, publicThread, privateThread
*/
position?: number | null;
position?: number | null | undefined;
/**
* 0-1024 character channel topic (0-4096 characters for forum channels)
*
* Channel types: text, news, forum
*/
topic?: string | null;
topic?: string | null | undefined;
/**
* Whether the channel is nsfw
*
* Channel types: text, voice, news, forum
*/
nsfw?: boolean | null;
nsfw?: boolean | null | undefined;
/**
* Amount of seconds a user has to wait before sending another message (0-21600);
* bots, as well as users with the permission `MANAGE_MESSAGES` or `MANAGE_CHANNELS`,
@@ -78,105 +78,105 @@ export type RESTPatchAPIChannelJSONBody = AddUndefinedToPossiblyUndefinedPropert
*
* Channel types: text, newsThread, publicThread, privateThread, forum
*/
rate_limit_per_user?: number | null;
rate_limit_per_user?: number | null | undefined;
/**
* The bitrate (in bits) of the voice channel; 8000 to 96000 (128000 for VIP servers)
*
* Channel types: voice
*/
bitrate?: number | null;
bitrate?: number | null | undefined;
/**
* The user limit of the voice channel; 0 refers to no limit, 1 to 99 refers to a user limit
*
* Channel types: voice
*/
user_limit?: number | null;
user_limit?: number | null | undefined;
/**
* Channel or category-specific permissions
*
* Channel types: all excluding newsThread, publicThread, privateThread
*/
permission_overwrites?: APIChannelPatchOverwrite[] | null;
permission_overwrites?: APIChannelPatchOverwrite[] | null | undefined;
/**
* ID of the new parent category for a channel
*
* Channel types: text, voice, news
*/
parent_id?: Snowflake | null;
parent_id?: Snowflake | null | undefined;
/**
* Voice region id for the voice or stage channel, automatic when set to `null`
*
* See https://discord.com/developers/docs/resources/voice#voice-region-object
*/
rtc_region?: string | null;
rtc_region?: string | null | undefined;
/**
* The camera video quality mode of the voice channel
*
* See https://discord.com/developers/docs/resources/channel#channel-object-video-quality-modes
*/
video_quality_mode?: VideoQualityMode | null;
video_quality_mode?: VideoQualityMode | null | undefined;
/**
* Whether the thread should be archived
*
* Channel types: newsThread, publicThread, privateThread
*/
archived?: boolean;
archived?: boolean | undefined;
/**
* The amount of time in minutes to wait before automatically archiving the thread
*
* Channel types: newsThread, publicThread, privateThread
*/
auto_archive_duration?: ThreadAutoArchiveDuration;
auto_archive_duration?: ThreadAutoArchiveDuration | undefined;
/**
* Whether the thread should be locked
*
* Channel types: newsThread, publicThread, privateThread
*/
locked?: boolean;
locked?: boolean | undefined;
/**
* Default duration for newly created threads, in minutes, to automatically archive the thread after recent activity
*
* Channel types: text, news
*/
default_auto_archive_duration?: ThreadAutoArchiveDuration;
default_auto_archive_duration?: ThreadAutoArchiveDuration | undefined;
/**
* Whether non-moderators can add other non-moderators to the thread
*
* Channel types: privateThread
*/
invitable?: boolean;
invitable?: boolean | undefined;
/**
* The set of tags that can be used in a forum channel; limited to 20
*
* Channel types: forum
*/
available_tags?: APIGuildForumTag[];
available_tags?: APIGuildForumTag[] | undefined;
/**
* The emoji to show in the add reaction button on a thread in a forum channel
*
* Channel types: forum
*/
default_reaction_emoji?: APIGuildForumDefaultReactionEmoji;
default_reaction_emoji?: APIGuildForumDefaultReactionEmoji | undefined;
/**
* The initial `rate_limit_per_user` to set on newly created threads in a channel.
* This field is copied to the thread at creation time and does not live update
*
* Channel types: forum
*/
default_thread_rate_limit_per_user?: number | null;
default_thread_rate_limit_per_user?: number | null | undefined;
/**
* The default sort order type used to order posts in a forum channel
*
* Channel types: forum
*/
default_sort_order?: SortOrderType | null;
default_sort_order?: SortOrderType | null | undefined;
/**
* The default layout type used to display posts in a forum channel
*
* Channel types: forum
*/
default_forum_layout?: ForumLayoutType;
}>;
default_forum_layout?: ForumLayoutType | undefined;
}
/**
* https://discord.com/developers/docs/resources/channel#modify-channel
@@ -226,71 +226,70 @@ export type RESTGetAPIChannelMessageResult = APIMessage;
* https://discord.com/developers/docs/resources/channel#message-reference-object-message-reference-structure
*/
export type APIMessageReferenceSend = StrictPartial<APIMessageReference> &
Required<Pick<APIMessageReference, 'message_id'>> &
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<Required<Pick<APIMessageReference, 'message_id'>>> & {
/**
* Whether to error if the referenced message doesn't exist instead of sending as a normal (non-reply) message
*
* @default true
*/
fail_if_not_exists?: boolean;
}>;
fail_if_not_exists?: boolean | undefined;
};
/**
* https://discord.com/developers/docs/resources/channel#create-message
*/
export type RESTPostAPIChannelMessageJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIChannelMessageJSONBody {
/**
* The message contents (up to 2000 characters)
*/
content?: string;
content?: string | undefined;
/**
* A nonce that can be used for optimistic message sending
*/
nonce?: number | string;
nonce?: number | string | undefined;
/**
* `true` if this is a TTS message
*/
tts?: boolean;
tts?: boolean | undefined;
/**
* Embedded `rich` content (up to 6000 characters)
*
* See https://discord.com/developers/docs/resources/channel#embed-object
*/
embeds?: APIEmbed[];
embeds?: APIEmbed[] | undefined;
/**
* Allowed mentions for a message
*
* See https://discord.com/developers/docs/resources/channel#allowed-mentions-object
*/
allowed_mentions?: APIAllowedMentions;
allowed_mentions?: APIAllowedMentions | undefined;
/**
* Include to make your message a reply
*
* See https://discord.com/developers/docs/resources/channel#message-reference-object-message-reference-structure
*/
message_reference?: APIMessageReferenceSend;
message_reference?: APIMessageReferenceSend | undefined;
/**
* The components to include with the message
*
* See https://discord.com/developers/docs/interactions/message-components#component-object
*/
components?: APIActionRowComponent<APIMessageActionRowComponent>[];
components?: APIActionRowComponent<APIMessageActionRowComponent>[] | undefined;
/**
* IDs of up to 3 stickers in the server to send in the message
*
* See https://discord.com/developers/docs/resources/sticker#sticker-object
*/
sticker_ids?: [Snowflake] | [Snowflake, Snowflake] | [Snowflake, Snowflake, Snowflake];
sticker_ids?: [Snowflake] | [Snowflake, Snowflake] | [Snowflake, Snowflake, Snowflake] | undefined;
/**
* Attachment objects with filename and description
*/
attachments?: (Pick<APIAttachment, 'id' | 'description'> & Partial<Pick<APIAttachment, 'filename'>>)[];
attachments?: (Pick<APIAttachment, 'id' | 'description'> & Partial<Pick<APIAttachment, 'filename'>>)[] | undefined;
/**
* Message flags combined as a bitfield
*/
flags?: MessageFlags;
}>;
flags?: MessageFlags | undefined;
}
/**
* https://discord.com/developers/docs/resources/channel#create-message
@@ -300,7 +299,7 @@ export type RESTPostAPIChannelMessageFormDataBody =
/**
* JSON stringified message body
*/
payload_json?: string;
payload_json?: string | undefined;
} & Record<`files[${bigint}]`, unknown>)
| (RESTPostAPIChannelMessageJSONBody & Record<`files[${bigint}]`, unknown>);
@@ -363,17 +362,17 @@ export type RESTDeleteAPIChannelMessageReactionResult = never;
/**
* https://discord.com/developers/docs/resources/channel#edit-message
*/
export type RESTPatchAPIChannelMessageJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIChannelMessageJSONBody {
/**
* The new message contents (up to 2000 characters)
*/
content?: string | null;
content?: string | null | undefined;
/**
* Embedded `rich` content (up to 6000 characters)
*
* See https://discord.com/developers/docs/resources/channel#embed-object
*/
embeds?: APIEmbed[] | null;
embeds?: APIEmbed[] | null | undefined;
/**
* Edit the flags of a message (only `SUPPRESS_EMBEDS` can currently be set/unset)
*
@@ -382,13 +381,13 @@ export type RESTPatchAPIChannelMessageJSONBody = AddUndefinedToPossiblyUndefined
*
* See https://discord.com/developers/docs/resources/channel#message-object-message-flags
*/
flags?: MessageFlags | null;
flags?: MessageFlags | null | undefined;
/**
* Allowed mentions for the message
*
* See https://discord.com/developers/docs/resources/channel#allowed-mentions-object
*/
allowed_mentions?: APIAllowedMentions | null;
allowed_mentions?: APIAllowedMentions | null | undefined;
/**
* Attached files to keep
*
@@ -396,14 +395,14 @@ export type RESTPatchAPIChannelMessageJSONBody = AddUndefinedToPossiblyUndefined
*
* See https://discord.com/developers/docs/resources/channel#attachment-object
*/
attachments?: (Pick<APIAttachment, 'id'> & Partial<Pick<APIAttachment, 'filename' | 'description'>>)[];
attachments?: (Pick<APIAttachment, 'id'> & Partial<Pick<APIAttachment, 'filename' | 'description'>>)[] | undefined;
/**
* The components to include with the message
*
* See https://discord.com/developers/docs/interactions/message-components#component-object
*/
components?: APIActionRowComponent<APIMessageActionRowComponent>[] | null;
}>;
components?: APIActionRowComponent<APIMessageActionRowComponent>[] | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/channel#edit-message
@@ -413,7 +412,7 @@ export type RESTPatchAPIChannelMessageFormDataBody =
/**
* JSON stringified message body
*/
payload_json?: string;
payload_json?: string | undefined;
} & Record<`files[${bigint}]`, unknown>)
| (RESTPatchAPIChannelMessageJSONBody & Record<`files[${bigint}]`, unknown>);
@@ -453,7 +452,7 @@ export interface RESTPutAPIChannelPermissionJSONBody {
*
* @default "0"
*/
allow?: Permissions | null;
allow?: Permissions | null | undefined;
/**
* The bitwise value of all disallowed permissions
*
@@ -461,7 +460,7 @@ export interface RESTPutAPIChannelPermissionJSONBody {
*
* @default "0"
*/
deny?: Permissions | null;
deny?: Permissions | null | undefined;
/**
* `0` for a role or `1` for a member
*/
@@ -481,51 +480,51 @@ export type RESTGetAPIChannelInvitesResult = APIExtendedInvite[];
/**
* https://discord.com/developers/docs/resources/channel#create-channel-invite
*/
export type RESTPostAPIChannelInviteJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIChannelInviteJSONBody {
/**
* Duration of invite in seconds before expiry, or 0 for never
*
* @default 86400 (24 hours)
*/
max_age?: number;
max_age?: number | undefined;
/**
* Max number of uses or 0 for unlimited
*
* @default 0
*/
max_uses?: number;
max_uses?: number | undefined;
/**
* Whether this invite only grants temporary membership
*
* @default false
*/
temporary?: boolean;
temporary?: boolean | undefined;
/**
* If true, don't try to reuse a similar invite
* (useful for creating many unique one time use invites)
*
* @default false
*/
unique?: boolean;
unique?: boolean | undefined;
/**
* The type of target for this voice channel invite
*
* See https://discord.com/developers/docs/resources/invite#invite-object-invite-target-types
*/
target_type?: InviteTargetType;
target_type?: InviteTargetType | undefined;
/**
* The id of the user whose stream to display for this invite
* - Required if `target_type` is 1
* - The user must be streaming in the channel
*/
target_user_id?: Snowflake;
target_user_id?: Snowflake | undefined;
/**
* The id of the embedded application to open for this invite
* - Required if `target_type` is 2
* - The application must have the `EMBEDDED` flag
*/
target_application_id?: Snowflake;
}>;
target_application_id?: Snowflake | undefined;
}
/**
* https://discord.com/developers/docs/resources/channel#create-channel-invite
@@ -575,7 +574,7 @@ export type RESTDeleteAPIChannelPinResult = never;
/**
* https://discord.com/developers/docs/resources/channel#group-dm-add-recipient
*/
export type RESTPutAPIChannelRecipientJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPutAPIChannelRecipientJSONBody {
/**
* Access token of a user that has granted your app the `gdm.join` scope
*/
@@ -583,8 +582,8 @@ export type RESTPutAPIChannelRecipientJSONBody = AddUndefinedToPossiblyUndefined
/**
* Nickname of the user being added
*/
nick?: string;
}>;
nick?: string | undefined;
}
/**
* https://discord.com/developers/docs/resources/channel#group-dm-add-recipient
@@ -599,7 +598,7 @@ export type RESTDeleteAPIChannelRecipientResult = unknown;
/**
* https://discord.com/developers/docs/resources/channel#start-thread-from-message
*/
export type RESTPostAPIChannelMessagesThreadsJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIChannelMessagesThreadsJSONBody {
/**
* 1-100 character thread name
*/
@@ -609,12 +608,12 @@ export type RESTPostAPIChannelMessagesThreadsJSONBody = AddUndefinedToPossiblyUn
*
* The 3 day and 7 day archive durations require the server to be boosted. The [guild features](https://discord.com/developers/docs/resources/guild#guild-object-guild-features) will indicate if a server is able to use those settings.
*/
auto_archive_duration: ThreadAutoArchiveDuration;
auto_archive_duration?: ThreadAutoArchiveDuration | undefined;
/**
* Amount of seconds a user has to wait before sending another message (0-21600)
*/
rate_limit_per_user?: number;
}>;
rate_limit_per_user?: number | undefined;
}
/**
* https://discord.com/developers/docs/resources/channel#start-thread-in-forum-channel
@@ -627,7 +626,7 @@ export type RESTPostAPIGuildForumThreadsJSONBody = RESTPostAPIChannelMessagesThr
/**
* The IDs of the set of tags that have been applied to a thread in a forum channel; limited to 5
*/
applied_tags?: Snowflake[];
applied_tags?: Snowflake[] | undefined;
};
/**
@@ -648,24 +647,23 @@ export type RESTPostAPIChannelMessagesThreadsResult = APIChannel;
/**
* https://discord.com/developers/docs/resources/channel#start-thread-without-message
*/
export type RESTPostAPIChannelThreadsJSONBody = RESTPostAPIChannelMessagesThreadsJSONBody &
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
/**
* The type of thread to create
*
* In API v9 and v10, `type` defaults to `PRIVATE_THREAD`.
* In a future API version this will be changed to be a required field, with no default.
*
* See https://discord.com/developers/docs/resources/channel#channel-object-channel-types
*
* @default ChannelType.PrivateThread
*/
type?: ChannelType.AnnouncementThread | ChannelType.PublicThread | ChannelType.PrivateThread;
/**
* Whether non-moderators can add other non-moderators to the thread; only available when creating a private thread
*/
invitable?: boolean;
}>;
export interface RESTPostAPIChannelThreadsJSONBody extends RESTPostAPIChannelMessagesThreadsJSONBody {
/**
* The type of thread to create
*
* In API v9 and v10, `type` defaults to `PRIVATE_THREAD`.
* In a future API version this will be changed to be a required field, with no default.
*
* See https://discord.com/developers/docs/resources/channel#channel-object-channel-types
*
* @default ChannelType.PrivateThread
*/
type?: ChannelType.AnnouncementThread | ChannelType.PublicThread | ChannelType.PrivateThread | undefined;
/**
* Whether non-moderators can add other non-moderators to the thread; only available when creating a private thread
*/
invitable?: boolean | undefined;
}
/**
* https://discord.com/developers/docs/resources/channel#start-thread-without-message
@@ -682,6 +680,39 @@ export type RESTPutAPIChannelThreadMembersResult = never;
*/
export type RESTDeleteAPIChannelThreadMembersResult = never;
/**
* https://discord.com/developers/docs/resources/channel#get-thread-member
*/
export interface RESTGetAPIChannelThreadMemberQuery {
/**
* Whether to include a guild member object for the thread member
*/
with_member?: boolean;
}
/**
* https://discord.com/developers/docs/resources/channel#get-thread-member
*/
export type RESTGetAPIChannelThreadMemberResult = APIThreadMember;
/**
* https://discord.com/developers/docs/resources/channel#list-thread-members
*/
export interface RESTGetAPIChannelThreadMembersQuery {
/**
* Whether to include a guild member object for each thread member
*/
with_member?: boolean;
/**
* Get thread members after this user ID
*/
after?: Snowflake;
/**
* Max number of thread members to return (1-100). Defaults to 100
*/
limit?: number;
}
/**
* https://discord.com/developers/docs/resources/channel#list-thread-members
*/

View File

@@ -1,6 +1,5 @@
import type { Snowflake } from '../../globals.ts';
import type { APIEmoji } from '../../payloads/v10/mod.ts';
import type { AddUndefinedToPossiblyUndefinedPropertiesOfInterface } from '../../utils/internals.ts';
/**
* https://discord.com/developers/docs/resources/emoji#list-guild-emojis
@@ -15,7 +14,7 @@ export type RESTGetAPIGuildEmojiResult = APIEmoji;
/**
* https://discord.com/developers/docs/resources/emoji#create-guild-emoji-json-params
*/
export type RESTPostAPIGuildEmojiJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIGuildEmojiJSONBody {
/**
* Name of the emoji
*/
@@ -29,8 +28,8 @@ export type RESTPostAPIGuildEmojiJSONBody = AddUndefinedToPossiblyUndefinedPrope
/**
* Roles for which this emoji will be whitelisted
*/
roles?: Snowflake[];
}>;
roles?: Snowflake[] | undefined;
}
/**
* https://discord.com/developers/docs/resources/emoji#create-guild-emoji
@@ -40,16 +39,16 @@ export type RESTPostAPIGuildEmojiResult = APIEmoji;
/**
* https://discord.com/developers/docs/resources/emoji#modify-guild-emoji
*/
export type RESTPatchAPIGuildEmojiJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIGuildEmojiJSONBody {
/**
* Name of the emoji
*/
name?: string;
name?: string | undefined;
/**
* Roles for which this emoji will be whitelisted
*/
roles?: Snowflake[] | null;
}>;
roles?: Snowflake[] | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/emoji#modify-guild-emoji

View File

@@ -26,7 +26,6 @@ import type {
GuildWidgetStyle,
} from '../../payloads/v10/mod.ts';
import type {
AddUndefinedToPossiblyUndefinedPropertiesOfInterface,
DistributiveOmit,
DistributivePick,
Nullable,
@@ -57,14 +56,14 @@ export type APIGuildCreatePartialChannel = StrictPartial<
| 'available_tags'
| 'default_sort_order'
| 'default_forum_layout'
| 'default_thread_rate_limit_per_user'
>
> &
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
name: string;
id?: number | string;
parent_id?: number | string | null;
permission_overwrites?: APIGuildCreateOverwrite[];
}>;
> & {
name: string;
id?: number | string | undefined;
parent_id?: number | string | null | undefined;
permission_overwrites?: APIGuildCreateOverwrite[] | undefined;
};
export interface APIGuildCreateRole extends RESTPostAPIGuildRoleJSONBody {
id: number | string;
@@ -73,7 +72,7 @@ export interface APIGuildCreateRole extends RESTPostAPIGuildRoleJSONBody {
/**
* https://discord.com/developers/docs/resources/guild#create-guild
*/
export type RESTPostAPIGuildsJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIGuildsJSONBody {
/**
* Name of the guild (2-100 characters)
*/
@@ -83,31 +82,31 @@ export type RESTPostAPIGuildsJSONBody = AddUndefinedToPossiblyUndefinedPropertie
*
* See https://discord.com/developers/docs/resources/voice#voice-region-object
*/
region?: string;
region?: string | undefined;
/**
* base64 1024x1024 png/jpeg image for the guild icon
*
* See https://discord.com/developers/docs/reference#image-data
*/
icon?: string;
icon?: string | undefined;
/**
* Verification level
*
* See https://discord.com/developers/docs/resources/guild#guild-object-verification-level
*/
verification_level?: GuildVerificationLevel;
verification_level?: GuildVerificationLevel | undefined;
/**
* Default message notification level
*
* See https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level
*/
default_message_notifications?: GuildDefaultMessageNotifications;
default_message_notifications?: GuildDefaultMessageNotifications | undefined;
/**
* Explicit content filter level
*
* See https://discord.com/developers/docs/resources/guild#guild-object-explicit-content-filter-level
*/
explicit_content_filter?: GuildExplicitContentFilter;
explicit_content_filter?: GuildExplicitContentFilter | undefined;
/**
* New guild roles
*
@@ -120,7 +119,7 @@ export type RESTPostAPIGuildsJSONBody = AddUndefinedToPossiblyUndefinedPropertie
*
* See https://discord.com/developers/docs/topics/permissions#role-object
*/
roles?: APIGuildCreateRole[];
roles?: APIGuildCreateRole[] | undefined;
/**
* New guild's channels
*
@@ -133,30 +132,30 @@ export type RESTPostAPIGuildsJSONBody = AddUndefinedToPossiblyUndefinedPropertie
*
* See https://discord.com/developers/docs/resources/channel#channel-object
*/
channels?: APIGuildCreatePartialChannel[];
channels?: APIGuildCreatePartialChannel[] | undefined;
/**
* ID for afk channel
*/
afk_channel_id?: number | Snowflake | null;
afk_channel_id?: number | Snowflake | null | undefined;
/**
* afk timeout in seconds, can be set to: `60`, `300`, `900`, `1800`, `3600`
*/
afk_timeout?: 60 | 300 | 900 | 1800 | 3600;
afk_timeout?: 60 | 300 | 900 | 1800 | 3600 | undefined;
/**
* The id of the channel where guild notices such as welcome messages and boost events are posted
*/
system_channel_id?: number | Snowflake | null;
system_channel_id?: number | Snowflake | null | undefined;
/**
* System channel flags
*
* See https://discord.com/developers/docs/resources/guild#guild-object-system-channel-flags
*/
system_channel_flags?: GuildSystemChannelFlags;
system_channel_flags?: GuildSystemChannelFlags | undefined;
/**
* Whether the boosts progress bar should be enabled.
*/
premium_progress_bar_enabled?: boolean;
}>;
premium_progress_bar_enabled?: boolean | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#create-guild
@@ -205,106 +204,106 @@ export type RESTGetAPIGuildPreviewResult = APIGuildPreview;
/**
* https://discord.com/developers/docs/resources/guild#modify-guild
*/
export type RESTPatchAPIGuildJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIGuildJSONBody {
/**
* New name for the guild (2-100 characters)
*/
name?: string;
name?: string | undefined;
/**
* Voice region id
*
* See https://discord.com/developers/docs/resources/voice#voice-region-object
*/
region?: string | null;
region?: string | null | undefined;
/**
* Verification level
*
* See https://discord.com/developers/docs/resources/guild#guild-object-verification-level
*/
verification_level?: GuildVerificationLevel | null;
verification_level?: GuildVerificationLevel | null | undefined;
/**
* Default message notification level
*
* See https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level
*/
default_message_notifications?: GuildDefaultMessageNotifications | null;
default_message_notifications?: GuildDefaultMessageNotifications | null | undefined;
/**
* Explicit content filter level
*
* See https://discord.com/developers/docs/resources/guild#guild-object-explicit-content-filter-level
*/
explicit_content_filter?: GuildExplicitContentFilter | null;
explicit_content_filter?: GuildExplicitContentFilter | null | undefined;
/**
* ID for afk channel
*/
afk_channel_id?: Snowflake | null;
afk_channel_id?: Snowflake | null | undefined;
/**
* afk timeout in seconds, can be set to: `60`, `300`, `900`, `1800`, `3600`
*/
afk_timeout?: 60 | 300 | 900 | 1800 | 3600;
afk_timeout?: 60 | 300 | 900 | 1800 | 3600 | undefined;
/**
* base64 1024x1024 png/jpeg/gif image for the guild icon (can be animated gif when the guild has `ANIMATED_ICON` feature)
*
* See https://discord.com/developers/docs/reference#image-data
*/
icon?: string | null;
icon?: string | null | undefined;
/**
* User id to transfer guild ownership to (must be owner)
*/
owner_id?: Snowflake;
owner_id?: Snowflake | undefined;
/**
* base64 16:9 png/jpeg image for the guild splash (when the guild has `INVITE_SPLASH` feature)
*
* See https://discord.com/developers/docs/reference#image-data
*/
splash?: string | null;
splash?: string | null | undefined;
/**
* base64 png/jpeg image for the guild discovery splash (when the guild has `DISCOVERABLE` feature)
*/
discovery_splash?: string | null;
discovery_splash?: string | null | undefined;
/**
* base64 16:9 png/jpeg image for the guild banner (when the server has the `BANNER` feature; can be animated gif when the server has the `ANIMATED_BANNER` feature)
*/
banner?: string | null;
banner?: string | null | undefined;
/**
* The id of the channel where guild notices such as welcome messages and boost events are posted
*/
system_channel_id?: Snowflake | null;
system_channel_id?: Snowflake | null | undefined;
/**
* System channel flags
*
* See https://discord.com/developers/docs/resources/guild#guild-object-system-channel-flags
*/
system_channel_flags?: GuildSystemChannelFlags;
system_channel_flags?: GuildSystemChannelFlags | undefined;
/**
* The id of the channel where Community guilds display rules and/or guidelines
*/
rules_channel_id?: Snowflake | null;
rules_channel_id?: Snowflake | null | undefined;
/**
* The id of the channel where admins and moderators of Community guilds receive notices from Discord
*/
public_updates_channel_id?: Snowflake | null;
public_updates_channel_id?: Snowflake | null | undefined;
/**
* The preferred locale of a Community guild used in server discovery and notices from Discord; defaults to "en-US"
*
* @default "en-US" (if the value is set to `null`)
*/
preferred_locale?: string | null;
preferred_locale?: string | null | undefined;
/**
* Enabled guild features
*
* See https://discord.com/developers/docs/resources/guild#guild-object-guild-features
*/
features?: GuildFeature[];
features?: GuildFeature[] | undefined;
/**
* The description for the guild
*/
description?: string | null;
description?: string | null | undefined;
/**
* Whether the boosts progress bar should be enabled.
*/
premium_progress_bar_enabled?: boolean;
}>;
premium_progress_bar_enabled?: boolean | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#modify-guild
@@ -334,26 +333,24 @@ export type RESTPostAPIGuildChannelResult = APIChannel;
/**
* https://discord.com/developers/docs/resources/guild#modify-guild-channel-positions
*/
export type RESTPatchAPIGuildChannelPositionsJSONBody = Array<
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
/**
* Channel id
*/
id: Snowflake;
/**
* Sorting position of the channel
*/
position: number;
/**
* Sync channel overwrites with the new parent, when moving to a new `parent_id`
*/
lock_permissions?: boolean;
/**
* The new parent id of this channel
*/
parent_id?: Snowflake | null;
}>
>;
export type RESTPatchAPIGuildChannelPositionsJSONBody = Array<{
/**
* Channel id
*/
id: Snowflake;
/**
* Sorting position of the channel
*/
position: number;
/**
* Sync channel overwrites with the new parent, when moving to a new `parent_id`
*/
lock_permissions?: boolean | undefined;
/**
* The new parent id of this channel
*/
parent_id?: Snowflake | null | undefined;
}>;
/**
* https://discord.com/developers/docs/resources/guild#modify-guild-channel-positions
@@ -414,7 +411,7 @@ export type RESTGetAPIGuildMembersSearchResult = APIGuildMember[];
/**
* https://discord.com/developers/docs/resources/guild#add-guild-member
*/
export type RESTPutAPIGuildMemberJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPutAPIGuildMemberJSONBody {
/**
* An oauth2 access token granted with the `guilds.join` to the bot's application for the user you want to add to the guild
*/
@@ -424,68 +421,68 @@ export type RESTPutAPIGuildMemberJSONBody = AddUndefinedToPossiblyUndefinedPrope
*
* Requires `MANAGE_NICKNAMES` permission
*/
nick?: string;
nick?: string | undefined;
/**
* Array of role ids the member is assigned
*
* Requires `MANAGE_ROLES` permission
*/
roles?: Snowflake[];
roles?: Snowflake[] | undefined;
/**
* Whether the user is muted in voice channels
*
* Requires `MUTE_MEMBERS` permission
*/
mute?: boolean;
mute?: boolean | undefined;
/**
* Whether the user is deafened in voice channels
*
* Requires `DEAFEN_MEMBERS` permission
*/
deaf?: boolean;
}>;
deaf?: boolean | undefined;
}
export type RESTPutAPIGuildMemberResult = APIGuildMember | never;
/**
* https://discord.com/developers/docs/resources/guild#modify-guild-member
*/
export type RESTPatchAPIGuildMemberJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIGuildMemberJSONBody {
/**
* Value to set users nickname to
*
* Requires `MANAGE_NICKNAMES` permission
*/
nick?: string | null;
nick?: string | null | undefined;
/**
* Array of role ids the member is assigned
*
* Requires `MANAGE_ROLES` permission
*/
roles?: Snowflake[] | null;
roles?: Snowflake[] | null | undefined;
/**
* Whether the user is muted in voice channels. Will throw a 400 if the user is not in a voice channel
*
* Requires `MUTE_MEMBERS` permission
*/
mute?: boolean | null;
mute?: boolean | null | undefined;
/**
* Whether the user is deafened in voice channels. Will throw a 400 if the user is not in a voice channel
*
* Requires `DEAFEN_MEMBERS` permission
*/
deaf?: boolean | null;
deaf?: boolean | null | undefined;
/**
* ID of channel to move user to (if they are connected to voice)
*
* Requires `MOVE_MEMBERS` permission
*/
channel_id?: Snowflake | null;
channel_id?: Snowflake | null | undefined;
/**
* Timestamp of when the time out will be removed; until then, they cannot interact with the guild
*/
communication_disabled_until?: string | null;
}>;
communication_disabled_until?: string | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#add-guild-member
@@ -497,26 +494,26 @@ export type RESTPatchAPIGuildMemberResult = APIGuildMember;
*
* @deprecated Use [Modify Current Member](https://discord.com/developers/docs/resources/guild#modify-current-member) instead.
*/
export type RESTPatchAPICurrentGuildMemberNicknameJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPICurrentGuildMemberNicknameJSONBody {
/**
* Value to set users nickname to
*
* Requires `CHANGE_NICKNAME` permission
*/
nick?: string | null;
}>;
nick?: string | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#modify-current-member
*/
export type RESTPatchAPICurrentGuildMemberJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPICurrentGuildMemberJSONBody {
/**
* Value to set users nickname to
*
* Requires `CHANGE_NICKNAME` permission
*/
nick?: string | null;
}>;
nick?: string | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#modify-current-user-nick
@@ -574,18 +571,18 @@ export type RESTGetAPIGuildBanResult = APIBan;
/**
* https://discord.com/developers/docs/resources/guild#create-guild-ban
*/
export type RESTPutAPIGuildBanJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPutAPIGuildBanJSONBody {
/**
* Number of days to delete messages for (0-7)
*
* @deprecated use `delete_message_seconds` instead
*/
delete_message_days?: number;
delete_message_days?: number | undefined;
/**
* Number of seconds to delete messages for, between 0 and 604800 (7 days)
*/
delete_message_seconds?: number;
}>;
delete_message_seconds?: number | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#create-guild-ban
@@ -605,46 +602,46 @@ export type RESTGetAPIGuildRolesResult = APIRole[];
/**
* https://discord.com/developers/docs/resources/guild#create-guild-role
*/
export type RESTPostAPIGuildRoleJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIGuildRoleJSONBody {
/**
* Name of the role
*
* @default "new role"
*/
name?: string | null;
name?: string | null | undefined;
/**
* Bitwise value of the enabled/disabled permissions
*
* @default "default role permissions in guild"
*/
permissions?: Permissions | null;
permissions?: Permissions | null | undefined;
/**
* RGB color value
*
* @default 0
*/
color?: number | null;
color?: number | null | undefined;
/**
* Whether the role should be displayed separately in the sidebar
*
* @default false
*/
hoist?: boolean | null;
hoist?: boolean | null | undefined;
/**
* The role's icon image (if the guild has the `ROLE_ICONS` feature)
*/
icon?: string | null;
icon?: string | null | undefined;
/**
* The role's unicode emoji as a standard emoji (if the guild has the `ROLE_ICONS` feature)
*/
unicode_emoji?: string | null;
unicode_emoji?: string | null | undefined;
/**
* Whether the role should be mentionable
*
* @default false
*/
mentionable?: boolean | null;
}>;
mentionable?: boolean | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#create-guild-role
@@ -654,18 +651,16 @@ export type RESTPostAPIGuildRoleResult = APIRole;
/**
* https://discord.com/developers/docs/resources/guild#modify-guild-role-positions
*/
export type RESTPatchAPIGuildRolePositionsJSONBody = Array<
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
/**
* Role id
*/
id: Snowflake;
/**
* Sorting position of the role
*/
position?: number;
}>
>;
export type RESTPatchAPIGuildRolePositionsJSONBody = Array<{
/**
* Role id
*/
id: Snowflake;
/**
* Sorting position of the role
*/
position?: number | undefined;
}>;
/**
* https://discord.com/developers/docs/resources/guild#modify-guild-role-positions
@@ -675,36 +670,36 @@ export type RESTPatchAPIGuildRolePositionsResult = APIRole[];
/**
* https://discord.com/developers/docs/resources/guild#modify-guild-role
*/
export type RESTPatchAPIGuildRoleJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIGuildRoleJSONBody {
/**
* Name of the role
*/
name?: string | null;
name?: string | null | undefined;
/**
* Bitwise value of the enabled/disabled permissions
*/
permissions?: Permissions | null;
permissions?: Permissions | null | undefined;
/**
* RGB color value
*/
color?: number | null;
color?: number | null | undefined;
/**
* Whether the role should be displayed separately in the sidebar
*/
hoist?: boolean | null;
hoist?: boolean | null | undefined;
/**
* The role's icon image (if the guild has the `ROLE_ICONS` feature)
*/
icon?: string | null;
icon?: string | null | undefined;
/**
* The role's unicode emoji as a standard emoji (if the guild has the `ROLE_ICONS` feature)
*/
unicode_emoji?: string | null;
unicode_emoji?: string | null | undefined;
/**
* Whether the role should be mentionable
*/
mentionable?: boolean | null;
}>;
mentionable?: boolean | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#modify-guild-role
@@ -747,24 +742,24 @@ export interface RESTGetAPIGuildPruneCountResult {
/**
* https://discord.com/developers/docs/resources/guild#begin-guild-prune
*/
export type RESTPostAPIGuildPruneJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIGuildPruneJSONBody {
/**
* Number of days to count prune for (1 or more)
*
* @default 7
*/
days?: number;
days?: number | undefined;
/**
* Whether `pruned is returned, discouraged for large guilds
*
* @default true
*/
compute_prune_count?: boolean;
compute_prune_count?: boolean | undefined;
/**
* Role(s) to include
*/
include_roles?: Snowflake[];
}>;
include_roles?: Snowflake[] | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#begin-guild-prune
@@ -841,40 +836,40 @@ export type RESTGetAPIGuildWidgetImageResult = ArrayBuffer;
export type RESTGetAPIGuildMemberVerificationResult = APIGuildMembershipScreening;
export type RESTPatchAPIGuildMemberVerificationJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIGuildMemberVerificationJSONBody {
/**
* Whether Membership Screening is enabled
*/
enabled?: boolean;
enabled?: boolean | undefined;
/**
* Array of field objects serialized in a string
*/
form_fields?: string;
form_fields?: string | undefined;
/**
* The server description to show in the screening form
*/
description?: string | null;
}>;
description?: string | null | undefined;
}
export type RESTPatchAPIGuildMemberVerificationResult = APIGuildMembershipScreening;
/**
* https://discord.com/developers/docs/resources/guild#modify-current-user-voice-state
*/
export type RESTPatchAPIGuildVoiceStateCurrentMemberJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIGuildVoiceStateCurrentMemberJSONBody {
/**
* The id of the channel the user is currently in
*/
channel_id?: Snowflake;
channel_id?: Snowflake | undefined;
/**
* Toggles the user's suppress state
*/
suppress?: boolean;
suppress?: boolean | undefined;
/**
* Sets the user's request to speak
*/
request_to_speak_timestamp?: string | null;
}>;
request_to_speak_timestamp?: string | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#modify-current-user-voice-state
@@ -884,7 +879,7 @@ export type RESTPatchAPIGuildVoiceStateCurrentMemberResult = never;
/**
* https://discord.com/developers/docs/resources/guild#modify-user-voice-state
*/
export type RESTPatchAPIGuildVoiceStateUserJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIGuildVoiceStateUserJSONBody {
/**
* The id of the channel the user is currently in
*/
@@ -892,8 +887,8 @@ export type RESTPatchAPIGuildVoiceStateUserJSONBody = AddUndefinedToPossiblyUnde
/**
* Toggles the user's suppress state
*/
suppress?: boolean;
}>;
suppress?: boolean | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#modify-user-voice-state
@@ -908,13 +903,12 @@ export type RESTGetAPIGuildWelcomeScreenResult = APIGuildWelcomeScreen;
/**
* https://discord.com/developers/docs/resources/guild#modify-guild-welcome-screen
*/
export type RESTPatchAPIGuildWelcomeScreenJSONBody = Nullable<StrictPartial<APIGuildWelcomeScreen>> &
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
/**
* Whether the welcome screen is enabled
*/
enabled?: boolean | null;
}>;
export type RESTPatchAPIGuildWelcomeScreenJSONBody = Nullable<StrictPartial<APIGuildWelcomeScreen>> & {
/**
* Whether the welcome screen is enabled
*/
enabled?: boolean | null | undefined;
};
/**
* https://discord.com/developers/docs/resources/guild#modify-guild-welcome-screen

View File

@@ -1,5 +1,5 @@
import type { Snowflake } from '../../globals.ts';
import type { AddUndefinedToPossiblyUndefinedPropertiesOfInterface, StrictPartial } from '../../utils/internals.ts';
import type { StrictPartial } from '../../utils/internals.ts';
import type {
APIGuildScheduledEvent,
APIGuildScheduledEventEntityMetadata,
@@ -27,11 +27,11 @@ export type RESTGetAPIGuildScheduledEventsResult = APIGuildScheduledEvent[];
/**
* https://discord.com/developers/docs/resources/guild-scheduled-event#create-guild-scheduled-event
*/
export type RESTPostAPIGuildScheduledEventJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIGuildScheduledEventJSONBody {
/**
* The stage channel id of the guild event
*/
channel_id?: Snowflake;
channel_id?: Snowflake | undefined;
/**
* The name of the guild event
*/
@@ -47,24 +47,24 @@ export type RESTPostAPIGuildScheduledEventJSONBody = AddUndefinedToPossiblyUndef
/**
* The time when the scheduled event is scheduled to end
*/
scheduled_end_time?: string;
scheduled_end_time?: string | undefined;
/**
* The description of the guild event
*/
description?: string;
description?: string | undefined;
/**
* The scheduled entity type of the guild event
*/
entity_type?: GuildScheduledEventEntityType;
entity_type?: GuildScheduledEventEntityType | undefined;
/**
* The entity metadata of the scheduled event
*/
entity_metadata?: APIGuildScheduledEventEntityMetadata;
entity_metadata?: APIGuildScheduledEventEntityMetadata | undefined;
/**
* The cover image of the scheduled event
*/
image?: string | null;
}>;
image?: string | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild-scheduled-event#create-guild-scheduled-event
@@ -89,21 +89,20 @@ export type RESTGetAPIGuildScheduledEventResult = APIGuildScheduledEvent;
/**
* https://discord.com/developers/docs/resources/guild-scheduled-event#modify-guild-scheduled-event
*/
export type RESTPatchAPIGuildScheduledEventJSONBody = StrictPartial<RESTPostAPIGuildScheduledEventJSONBody> &
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
/**
* The status of the scheduled event
*/
status?: GuildScheduledEventStatus;
/**
* The entity metadata of the scheduled event
*/
entity_metadata?: APIGuildScheduledEventEntityMetadata | null;
/**
* The description of the guild event
*/
description?: string | null;
}>;
export type RESTPatchAPIGuildScheduledEventJSONBody = StrictPartial<RESTPostAPIGuildScheduledEventJSONBody> & {
/**
* The status of the scheduled event
*/
status?: GuildScheduledEventStatus | undefined;
/**
* The entity metadata of the scheduled event
*/
entity_metadata?: APIGuildScheduledEventEntityMetadata | null | undefined;
/**
* The description of the guild event
*/
description?: string | null | undefined;
};
/**
* https://discord.com/developers/docs/resources/guild-scheduled-event#modify-guild-scheduled-event

View File

@@ -58,11 +58,10 @@ type RESTPostAPIBaseApplicationCommandsJSONBody = AddUndefinedToPossiblyUndefine
/**
* https://discord.com/developers/docs/interactions/application-commands#create-global-application-command
*/
export type RESTPostAPIChatInputApplicationCommandsJSONBody = RESTPostAPIBaseApplicationCommandsJSONBody &
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
type?: ApplicationCommandType.ChatInput;
description: string;
}>;
export interface RESTPostAPIChatInputApplicationCommandsJSONBody extends RESTPostAPIBaseApplicationCommandsJSONBody {
type?: ApplicationCommandType.ChatInput | undefined;
description: string;
}
/**
* https://discord.com/developers/docs/interactions/application-commands#create-global-application-command
@@ -171,7 +170,7 @@ export type RESTPostAPIInteractionCallbackFormDataBody =
/**
* JSON stringified message body
*/
payload_json?: string;
payload_json?: string | undefined;
} & Record<`files[${bigint}]`, unknown>)
| (RESTPostAPIInteractionCallbackJSONBody & Record<`files[${bigint}]`, unknown>);
@@ -213,7 +212,7 @@ export type RESTPostAPIInteractionFollowupFormDataBody =
/**
* JSON stringified message body
*/
payload_json?: string;
payload_json?: string | undefined;
} & Record<`files[${bigint}]`, unknown>)
| (RESTPostAPIInteractionFollowupJSONBody & Record<`files[${bigint}]`, unknown>);

View File

@@ -1011,12 +1011,12 @@ export const CDNRoutes = {
/**
* Route for:
* - GET `/app-icons/{application.id}/{application.asset_id}.{png|jpeg|webp}`
* - GET `/app-assets/{application.id}/{application.asset_id}.{png|jpeg|webp}`
*
* This route supports the extensions: PNG, JPEG, WebP
*/
applicationAsset(applicationId: Snowflake, applicationAssetId: string, format: ApplicationAssetFormat) {
return `/app-icons/${applicationId}/${applicationAssetId}.${format}` as const;
return `/app-assets/${applicationId}/${applicationAssetId}.${format}` as const;
},
/**
@@ -1044,6 +1044,16 @@ export const CDNRoutes = {
return `/app-assets/${StickerPackApplicationId}/store/${stickerPackBannerAssetId}.${format}` as const;
},
/**
* Route for:
* - GET `/app-assets/${application.id}/store/${asset.id}.{png|jpeg|webp}}`
*
* This route supports the extensions: PNG, JPEG, WebP
*/
storePageAsset(applicationId: Snowflake, assetId: string) {
return `/app-assets/${applicationId}/store/${assetId}.png` as const;
},
/**
* Route for:
* - GET `team-icons/{team.id}/{team.icon}.{png|jpeg|webp}`
@@ -1058,7 +1068,7 @@ export const CDNRoutes = {
* Route for:
* - GET `/stickers/{sticker.id}.{png|json}`
*
* This route supports the extensions: PNG, Lottie
* This route supports the extensions: PNG, Lottie, GIF
*/
sticker(stickerId: Snowflake, format: StickerFormat) {
return `/stickers/${stickerId}.${format}` as const;
@@ -1116,7 +1126,7 @@ export type ApplicationAssetFormat = Exclude<ImageFormat, ImageFormat.Lottie | I
export type AchievementIconFormat = Exclude<ImageFormat, ImageFormat.Lottie | ImageFormat.GIF>;
export type StickerPackBannerFormat = Exclude<ImageFormat, ImageFormat.Lottie | ImageFormat.GIF>;
export type TeamIconFormat = Exclude<ImageFormat, ImageFormat.Lottie | ImageFormat.GIF>;
export type StickerFormat = Extract<ImageFormat, ImageFormat.PNG | ImageFormat.Lottie>;
export type StickerFormat = Extract<ImageFormat, ImageFormat.PNG | ImageFormat.Lottie | ImageFormat.GIF>;
export type RoleIconFormat = Exclude<ImageFormat, ImageFormat.Lottie | ImageFormat.GIF>;
export type GuildScheduledEventCoverFormat = Exclude<ImageFormat, ImageFormat.Lottie | ImageFormat.GIF>;
export type GuildMemberBannerFormat = Exclude<ImageFormat, ImageFormat.Lottie>;

View File

@@ -1,6 +1,5 @@
import type { Snowflake } from '../../globals.ts';
import type { APIStageInstance, StageInstancePrivacyLevel } from '../../payloads/v10/mod.ts';
import type { AddUndefinedToPossiblyUndefinedPropertiesOfInterface } from '../../utils/internals.ts';
/**
* https://discord.com/developers/docs/resources/stage-instance#create-stage-instance
@@ -19,11 +18,11 @@ export interface RESTPostAPIStageInstanceJSONBody {
*
* @default GuildOnly
*/
privacy_level?: StageInstancePrivacyLevel;
privacy_level?: StageInstancePrivacyLevel | undefined;
/**
* Notify @everyone that a stage instance has started
*/
send_start_notification?: boolean;
send_start_notification?: boolean | undefined;
}
/**
@@ -39,16 +38,16 @@ export type RESTGetAPIStageInstanceResult = APIStageInstance;
/**
* https://discord.com/developers/docs/resources/stage-instance#modify-stage-instance
*/
export type RESTPatchAPIStageInstanceJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIStageInstanceJSONBody {
/**
* The topic of the stage instance (1-120 characters)
*/
topic?: string;
topic?: string | undefined;
/**
* The privacy level of the stage instance
*/
privacy_level?: StageInstancePrivacyLevel;
}>;
privacy_level?: StageInstancePrivacyLevel | undefined;
}
/**
* https://discord.com/developers/docs/resources/stage-instance#modify-stage-instance

View File

@@ -1,5 +1,4 @@
import type { APISticker, APIStickerPack } from '../../payloads/v10/mod.ts';
import type { AddUndefinedToPossiblyUndefinedPropertiesOfInterface } from '../../utils/internals.ts';
/**
* https://discord.com/developers/docs/resources/sticker#get-sticker
@@ -40,7 +39,9 @@ export interface RESTPostAPIGuildStickerFormDataBody {
*/
tags: string;
/**
* The sticker file to upload, must be a PNG, APNG, or Lottie JSON file, max 500 KB
* The sticker file to upload, must be a PNG, APNG, GIF, or Lottie JSON file, max 512 KB
*
* Uploaded stickers are constrained to 5 seconds in length for animated stickers, and 320 x 320 pixels.
*/
file: unknown;
}
@@ -53,20 +54,20 @@ export type RESTPostAPIGuildStickerResult = APISticker;
/**
* https://discord.com/developers/docs/resources/sticker#modify-guild-sticker
*/
export type RESTPatchAPIGuildStickerJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIGuildStickerJSONBody {
/**
* Name of the sticker (2-30 characters)
*/
name?: string;
name?: string | undefined;
/**
* Description of the sticker (2-100 characters)
*/
description?: string | null;
description?: string | null | undefined;
/**
* The Discord name of a unicode emoji representing the sticker's expression (2-200 characters)
*/
tags?: string;
}>;
tags?: string | undefined;
}
/**
* https://discord.com/developers/docs/resources/sticker#modify-guild-sticker

View File

@@ -1,5 +1,5 @@
import type { APIGuild, APITemplate } from '../../payloads/v10/mod.ts';
import type { AddUndefinedToPossiblyUndefinedPropertiesOfInterface, StrictPartial } from '../../utils/internals.ts';
import type { StrictPartial } from '../../utils/internals.ts';
/**
* https://discord.com/developers/docs/resources/guild-template#get-guild-template
@@ -9,7 +9,7 @@ export type RESTGetAPITemplateResult = APITemplate;
/**
* https://discord.com/developers/docs/resources/guild-template#create-guild-from-guild-template
*/
export type RESTPostAPITemplateCreateGuildJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPITemplateCreateGuildJSONBody {
/**
* Name of the guild (2-100 characters)
*/
@@ -19,8 +19,8 @@ export type RESTPostAPITemplateCreateGuildJSONBody = AddUndefinedToPossiblyUndef
*
* See https://discord.com/developers/docs/reference#image-data
*/
icon?: string;
}>;
icon?: string | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild-template#create-guild-from-guild-template
@@ -35,7 +35,7 @@ export type RESTGetAPIGuildTemplatesResult = APITemplate[];
/**
* https://discord.com/developers/docs/resources/guild-template#create-guild-template
*/
export type RESTPostAPIGuildTemplatesJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIGuildTemplatesJSONBody {
/**
* Name of the template (1-100 characters)
*/
@@ -43,8 +43,8 @@ export type RESTPostAPIGuildTemplatesJSONBody = AddUndefinedToPossiblyUndefinedP
/**
* Description for the template (0-120 characters)
*/
description?: string | null;
}>;
description?: string | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild-template#create-guild-template

View File

@@ -7,7 +7,6 @@ import type {
APIApplicationRoleConnection,
GuildFeature,
} from '../../payloads/v10/mod.ts';
import type { AddUndefinedToPossiblyUndefinedPropertiesOfInterface } from '../../utils/internals.ts';
/**
* https://discord.com/developers/docs/resources/user#get-current-user
@@ -27,16 +26,16 @@ export type RESTGetCurrentUserGuildMemberResult = APIGuildMember;
/**
* https://discord.com/developers/docs/resources/user#modify-current-user
*/
export type RESTPatchAPICurrentUserJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPICurrentUserJSONBody {
/**
* User's username, if changed may cause the user's discriminator to be randomized
*/
username?: string;
username?: string | undefined;
/**
* If passed, modifies the user's avatar
*/
avatar?: string | null;
}>;
avatar?: string | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/user#modify-current-user
@@ -61,6 +60,12 @@ export interface RESTGetAPICurrentUserGuildsQuery {
* @default 200
*/
limit?: number;
/**
* Include approximate member and presence counts in response
*
* @default false
*/
with_counts?: boolean;
}
export interface RESTAPIPartialCurrentUserGuild {
@@ -70,6 +75,8 @@ export interface RESTAPIPartialCurrentUserGuild {
owner: boolean;
features: GuildFeature[];
permissions: Permissions;
approximate_member_count?: number;
approximate_presence_count?: number;
}
/**
@@ -114,15 +121,15 @@ export interface RESTPutAPICurrentUserApplicationRoleConnectionJSONBody {
/**
* The vanity name of the platform a bot has connected (max 50 characters)
*/
platform_name?: string;
platform_name?: string | undefined;
/**
* The username on the platform a bot has connected (max 100 characters)
*/
platform_username?: string;
platform_username?: string | undefined;
/**
* Object mapping application role connection metadata keys to their `string`-ified value (max 100 characters) for the user on the platform a bot has connected
*/
metadata?: Record<string, string | number>;
metadata?: Record<string, string | number> | undefined;
}
/**

View File

@@ -13,7 +13,7 @@ import type { AddUndefinedToPossiblyUndefinedPropertiesOfInterface, Nullable } f
/**
* https://discord.com/developers/docs/resources/webhook#create-webhook
*/
export type RESTPostAPIChannelWebhookJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIChannelWebhookJSONBody {
/**
* Name of the webhook (1-80 characters)
*/
@@ -23,8 +23,8 @@ export type RESTPostAPIChannelWebhookJSONBody = AddUndefinedToPossiblyUndefinedP
*
* See https://discord.com/developers/docs/reference#image-data
*/
avatar?: string | null;
}>;
avatar?: string | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/webhook#create-webhook
@@ -54,22 +54,22 @@ export type RESTGetAPIWebhookWithTokenResult = Omit<APIWebhook, 'user'>;
/**
* https://discord.com/developers/docs/resources/webhook#modify-webhook
*/
export type RESTPatchAPIWebhookJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIWebhookJSONBody {
/**
* The default name of the webhook
*/
name?: string;
name?: string | undefined;
/**
* Image for the default webhook avatar
*
* See https://discord.com/developers/docs/reference#image-data
*/
avatar?: string | null;
avatar?: string | null | undefined;
/**
* The new channel id this webhook should be moved to
*/
channel_id?: Snowflake;
}>;
channel_id?: Snowflake | undefined;
}
/**
* https://discord.com/developers/docs/resources/webhook#modify-webhook
@@ -99,35 +99,35 @@ export type RESTDeleteAPIWebhookWithTokenResult = never;
/**
* https://discord.com/developers/docs/resources/webhook#execute-webhook
*/
export type RESTPostAPIWebhookWithTokenJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIWebhookWithTokenJSONBody {
/**
* The message contents (up to 2000 characters)
*/
content?: string;
content?: string | undefined;
/**
* Override the default username of the webhook
*/
username?: string;
username?: string | undefined;
/**
* Override the default avatar of the webhook
*/
avatar_url?: string;
avatar_url?: string | undefined;
/**
* `true` if this is a TTS message
*/
tts?: boolean;
tts?: boolean | undefined;
/**
* Embedded `rich` content
*
* See https://discord.com/developers/docs/resources/channel#embed-object
*/
embeds?: APIEmbed[];
embeds?: APIEmbed[] | undefined;
/**
* Allowed mentions for the message
*
* See https://discord.com/developers/docs/resources/channel#allowed-mentions-object
*/
allowed_mentions?: APIAllowedMentions;
allowed_mentions?: APIAllowedMentions | undefined;
/**
* The components to include with the message
*
@@ -135,22 +135,22 @@ export type RESTPostAPIWebhookWithTokenJSONBody = AddUndefinedToPossiblyUndefine
*
* See https://discord.com/developers/docs/interactions/message-components#component-object
*/
components?: APIActionRowComponent<APIMessageActionRowComponent>[];
components?: APIActionRowComponent<APIMessageActionRowComponent>[] | undefined;
/**
* Attachment objects with filename and description
*/
attachments?: (Pick<APIAttachment, 'id' | 'description'> & Partial<Pick<APIAttachment, 'filename'>>)[];
attachments?: (Pick<APIAttachment, 'id' | 'description'> & Partial<Pick<APIAttachment, 'filename'>>)[] | undefined;
/**
* Message flags combined as a bitfield
*/
flags?: MessageFlags;
flags?: MessageFlags | undefined;
/**
* Name of thread to create
*
* Available only if the webhook is in a forum channel and a thread is not specified in {@link RESTPostAPIWebhookWithTokenQuery.thread_id} query parameter
*/
thread_name?: string;
}>;
thread_name?: string | undefined;
}
/**
* https://discord.com/developers/docs/resources/webhook#execute-webhook
@@ -160,7 +160,7 @@ export type RESTPostAPIWebhookWithTokenFormDataBody =
/**
* JSON stringified message body
*/
payload_json?: string;
payload_json?: string | undefined;
} & Record<`files[${bigint}]`, unknown>)
| (RESTPostAPIWebhookWithTokenJSONBody & Record<`files[${bigint}]`, unknown>);
@@ -237,21 +237,28 @@ export type RESTPostAPIWebhookWithTokenGitHubWaitResult = APIMessage;
*/
export type RESTGetAPIWebhookWithTokenMessageResult = APIMessage;
/**
* https://discord.com/developers/docs/resources/webhook#get-webhook-message-query-string-params
*/
export interface RESTGetAPIWebhookWithTokenMessageQuery {
thread_id?: string;
}
/**
* https://discord.com/developers/docs/resources/webhook#edit-webhook-message
*/
export type RESTPatchAPIWebhookWithTokenMessageJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<
Nullable<Pick<RESTPostAPIWebhookWithTokenJSONBody, 'content' | 'embeds' | 'allowed_mentions' | 'components'>> & {
/**
* Attached files to keep
*
* Starting with API v10, the `attachments` array must contain all attachments that should be present after edit, including **retained and new** attachments provided in the request body.
*
* See https://discord.com/developers/docs/resources/channel#attachment-object
*/
attachments?: (Pick<APIAttachment, 'id'> & Partial<Pick<APIAttachment, 'filename' | 'description'>>)[];
}
>;
Nullable<Pick<RESTPostAPIWebhookWithTokenJSONBody, 'content' | 'embeds' | 'allowed_mentions' | 'components'>>
> & {
/**
* Attached files to keep
*
* Starting with API v10, the `attachments` array must contain all attachments that should be present after edit, including **retained and new** attachments provided in the request body.
*
* See https://discord.com/developers/docs/resources/channel#attachment-object
*/
attachments?: (Pick<APIAttachment, 'id'> & Partial<Pick<APIAttachment, 'filename' | 'description'>>)[] | undefined;
};
/**
* https://discord.com/developers/docs/resources/webhook#edit-webhook-message
@@ -261,7 +268,7 @@ export type RESTPatchAPIWebhookWithTokenMessageFormDataBody =
/**
* JSON stringified message body
*/
payload_json?: string;
payload_json?: string | undefined;
} & Record<`files[${bigint}]`, unknown>)
| (RESTPatchAPIWebhookWithTokenMessageJSONBody & Record<`files[${bigint}]`, unknown>);

View File

@@ -53,15 +53,15 @@ export interface APIAllowedMentionsSend {
* @deprecated API v6 is deprecated and the types will not receive further updates, please update to v8.
*/
export interface RESTPatchAPIChannelJSONBody {
name?: string;
type?: ChannelType.GUILD_NEWS | ChannelType.GUILD_TEXT;
position?: number | null;
topic?: string | null;
nsfw?: boolean | null;
rate_limit_per_user?: number | null;
user_limit?: number | null;
permission_overwrites?: APIOverwrite[] | null;
parent_id?: string | null;
name?: string | undefined;
type?: ChannelType.GUILD_NEWS | ChannelType.GUILD_TEXT | undefined;
position?: number | null | undefined;
topic?: string | null | undefined;
nsfw?: boolean | null | undefined;
rate_limit_per_user?: number | null | undefined;
user_limit?: number | null | undefined;
permission_overwrites?: APIOverwrite[] | null | undefined;
parent_id?: string | null | undefined;
}
/**
@@ -100,12 +100,12 @@ export type RESTGetAPIChannelMessagesResult = APIMessage[];
* @deprecated API v6 is deprecated and the types will not receive further updates, please update to v8.
*/
export interface RESTPostAPIChannelMessageJSONBody {
content?: string;
nonce?: number | string;
tts?: boolean;
embed?: APIEmbed;
allowed_mentions?: APIAllowedMentionsSend;
message_reference?: APIMessageReference;
content?: string | undefined;
nonce?: number | string | undefined;
tts?: boolean | undefined;
embed?: APIEmbed | undefined;
allowed_mentions?: APIAllowedMentionsSend | undefined;
message_reference?: APIMessageReference | undefined;
}
/**
@@ -117,19 +117,19 @@ export type RESTPostAPIChannelMessageFormDataBody =
/**
* JSON stringified message body
*/
payload_json?: string;
payload_json?: string | undefined;
/**
* The file contents
*/
file: unknown;
}
| {
content?: string;
nonce?: number | string;
tts?: boolean;
embed?: APIEmbed;
allowed_mentions?: APIAllowedMentionsSend;
message_reference?: APIMessageReference;
content?: string | undefined;
nonce?: number | string | undefined;
tts?: boolean | undefined;
embed?: APIEmbed | undefined;
allowed_mentions?: APIAllowedMentionsSend | undefined;
message_reference?: APIMessageReference | undefined;
/**
* The file contents
*/
@@ -141,10 +141,10 @@ export type RESTPostAPIChannelMessageFormDataBody =
* @deprecated API v6 is deprecated and the types will not receive further updates, please update to v8.
*/
export interface RESTPatchAPIChannelMessageJSONBody {
content?: string | null;
embed?: APIEmbed | null;
allowed_mentions?: APIAllowedMentionsSend | null;
flags?: MessageFlags | null;
content?: string | null | undefined;
embed?: APIEmbed | null | undefined;
allowed_mentions?: APIAllowedMentionsSend | null | undefined;
flags?: MessageFlags | null | undefined;
}
/**
@@ -240,12 +240,12 @@ export type RESTGetAPIChannelInvitesResult = APIInvite[];
* @deprecated API v6 is deprecated and the types will not receive further updates, please update to v8.
*/
export interface RESTPostAPIChannelInviteJSONBody {
max_age?: number;
max_uses?: number;
temporary?: boolean;
unique?: boolean;
target_user_id?: string;
target_user_type?: InviteTargetUserType;
max_age?: number | undefined;
max_uses?: number | undefined;
temporary?: boolean | undefined;
unique?: boolean | undefined;
target_user_id?: string | undefined;
target_user_type?: InviteTargetUserType | undefined;
}
/**
@@ -277,7 +277,7 @@ export type RESTDeleteAPIChannelPinResult = never;
*/
export interface RESTPutAPIChannelRecipientJSONBody {
access_token: string;
nick?: string;
nick?: string | undefined;
}
/**

View File

@@ -22,7 +22,7 @@ export interface RESTPostAPIGuildEmojiJSONBody {
* The image data, read more [here](https://discord.com/developers/docs/reference#image-data)
*/
image: string;
roles?: string[];
roles?: string[] | undefined;
}
/**
@@ -35,8 +35,8 @@ export type RESTPostAPIGuildEmojiResult = APIEmoji;
* @deprecated API v6 is deprecated and the types will not receive further updates, please update to v8.
*/
export interface RESTPatchAPIGuildEmojiJSONBody {
name?: string;
roles?: string[] | null;
name?: string | undefined;
roles?: string[] | null | undefined;
}
/**

View File

@@ -32,9 +32,9 @@ export type APIGuildCreatePartialChannel = Partial<
Pick<APIChannel, 'type' | 'topic' | 'nsfw' | 'bitrate' | 'user_limit' | 'rate_limit_per_user'>
> & {
name: string;
id?: number | string;
parent_id?: number | string;
permission_overwrites?: APIGuildCreateOverwrite[];
id?: number | string | undefined;
parent_id?: number | string | undefined;
permission_overwrites?: APIGuildCreateOverwrite[] | undefined;
};
/**
@@ -50,16 +50,16 @@ export interface APIGuildCreateRole extends RESTPostAPIGuildRoleJSONBody {
*/
export interface RESTPostAPIGuildsJSONBody {
name: string;
region?: string;
icon?: string;
verification_level?: GuildVerificationLevel;
default_message_notifications?: GuildDefaultMessageNotifications;
explicit_content_filter?: GuildExplicitContentFilter;
roles?: APIGuildCreateRole[];
channels?: APIGuildCreatePartialChannel[];
afk_channel_id?: number | string;
afk_timeout?: number;
system_channel_id?: number | string;
region?: string | undefined;
icon?: string | undefined;
verification_level?: GuildVerificationLevel | undefined;
default_message_notifications?: GuildDefaultMessageNotifications | undefined;
explicit_content_filter?: GuildExplicitContentFilter | undefined;
roles?: APIGuildCreateRole[] | undefined;
channels?: APIGuildCreatePartialChannel[] | undefined;
afk_channel_id?: number | string | undefined;
afk_timeout?: number | undefined;
system_channel_id?: number | string | undefined;
}
/**
@@ -91,24 +91,24 @@ export type RESTGetAPIGuildPreviewResult = APIGuildPreview;
* @deprecated API v6 is deprecated and the types will not receive further updates, please update to v8.
*/
export interface RESTPatchAPIGuildJSONBody {
name?: string;
region?: string;
verification_level?: GuildVerificationLevel;
default_message_notifications?: GuildDefaultMessageNotifications;
explicit_content_filter?: GuildExplicitContentFilter;
afk_channel_id?: string | null;
afk_timeout?: number;
icon?: string | null;
owner_id?: string;
splash?: string | null;
discovery_splash?: string | null;
banner?: string | null;
system_channel_id?: string | null;
rules_channel_id?: string | null;
public_updates_channel_id?: string | null;
preferred_locale?: string;
features?: GuildFeature[];
description?: string | null;
name?: string | undefined;
region?: string | undefined;
verification_level?: GuildVerificationLevel | undefined;
default_message_notifications?: GuildDefaultMessageNotifications | undefined;
explicit_content_filter?: GuildExplicitContentFilter | undefined;
afk_channel_id?: string | null | undefined;
afk_timeout?: number | undefined;
icon?: string | null | undefined;
owner_id?: string | undefined;
splash?: string | null | undefined;
discovery_splash?: string | null | undefined;
banner?: string | null | undefined;
system_channel_id?: string | null | undefined;
rules_channel_id?: string | null | undefined;
public_updates_channel_id?: string | null | undefined;
preferred_locale?: string | undefined;
features?: GuildFeature[] | undefined;
description?: string | null | undefined;
}
/**
@@ -152,8 +152,8 @@ export type RESTPostAPIGuildChannelResult = APIChannel;
export type RESTPatchAPIGuildChannelPositionsJSONBody = Array<{
id: string;
position: number;
lock_permissions?: boolean;
parent_id?: string | null;
lock_permissions?: boolean | undefined;
parent_id?: string | null | undefined;
}>;
/**
@@ -200,10 +200,10 @@ export type RESTGetAPIGuildMembersSearchResult = APIGuildMember[];
*/
export interface RESTPutAPIGuildMemberJSONBody {
access_token: string;
nick?: string;
roles?: string[];
mute?: boolean;
deaf?: boolean;
nick?: string | undefined;
roles?: string[] | undefined;
mute?: boolean | undefined;
deaf?: boolean | undefined;
}
/**
@@ -216,11 +216,11 @@ export type RESTPutAPIGuildMemberResult = APIGuildMember | undefined;
* @deprecated API v6 is deprecated and the types will not receive further updates, please update to v8.
*/
export interface RESTPatchAPIGuildMemberJSONBody {
nick?: string | null;
roles?: string[] | null;
mute?: boolean | null;
deaf?: boolean | null;
channel_id?: string | null;
nick?: string | null | undefined;
roles?: string[] | null | undefined;
mute?: boolean | null | undefined;
deaf?: boolean | null | undefined;
channel_id?: string | null | undefined;
}
/**
@@ -233,7 +233,7 @@ export type RESTPatchAPIGuildMemberResult = never;
* @deprecated API v6 is deprecated and the types will not receive further updates, please update to v8.
*/
export interface RESTPatchAPICurrentGuildMemberNicknameJSONBody {
nick?: string | null;
nick?: string | null | undefined;
}
/**
@@ -276,8 +276,8 @@ export type RESTGetAPIGuildBanResult = APIBan;
* @deprecated API v6 is deprecated and the types will not receive further updates, please update to v8.
*/
export interface RESTPutAPIGuildBanJSONBody {
delete_message_days?: number;
reason?: string;
delete_message_days?: number | undefined;
reason?: string | undefined;
}
/**
@@ -302,11 +302,11 @@ export type RESTGetAPIGuildRolesResult = APIRole[];
* @deprecated API v6 is deprecated and the types will not receive further updates, please update to v8.
*/
export interface RESTPostAPIGuildRoleJSONBody {
name?: string | null;
permissions?: number | string | null;
color?: number | null;
hoist?: boolean | null;
mentionable?: boolean | null;
name?: string | null | undefined;
permissions?: number | string | null | undefined;
color?: number | null | undefined;
hoist?: boolean | null | undefined;
mentionable?: boolean | null | undefined;
}
/**
@@ -320,7 +320,7 @@ export type RESTPostAPIGuildRoleResult = APIRole;
*/
export type RESTPatchAPIGuildRolePositionsJSONBody = Array<{
id: string;
position?: number;
position?: number | undefined;
}>;
/**
@@ -333,11 +333,11 @@ export type RESTPatchAPIGuildRolePositionsResult = APIRole[];
* @deprecated API v6 is deprecated and the types will not receive further updates, please update to v8.
*/
export interface RESTPatchAPIGuildRoleJSONBody {
name?: string;
permissions?: number | string;
color?: number;
hoist?: boolean;
mentionable?: boolean;
name?: string | undefined;
permissions?: number | string | undefined;
color?: number | undefined;
hoist?: boolean | undefined;
mentionable?: boolean | undefined;
}
/**
@@ -378,9 +378,9 @@ export interface RESTGetAPIGuildPruneCountResult {
* @deprecated API v6 is deprecated and the types will not receive further updates, please update to v8.
*/
export interface RESTPostAPIGuildPruneJSONBody {
days?: number;
compute_prune_count?: boolean;
include_roles?: string[];
days?: number | undefined;
compute_prune_count?: boolean | undefined;
include_roles?: string[] | undefined;
}
/**
@@ -434,9 +434,9 @@ export type RESTPostAPIGuildIntegrationResult = never;
* @deprecated API v6 is deprecated and the types will not receive further updates, please update to v8.
*/
export interface RESTPatchAPIGuildIntegrationJSONBody {
expire_behavior?: IntegrationExpireBehavior | null;
expire_grace_period?: number | null;
enable_emoticons?: boolean | null;
expire_behavior?: IntegrationExpireBehavior | null | undefined;
expire_grace_period?: number | null | undefined;
enable_emoticons?: boolean | null | undefined;
}
/**

View File

@@ -17,8 +17,8 @@ export type RESTGetAPIUserResult = APIUser;
* @deprecated API v6 is deprecated and the types will not receive further updates, please update to v8.
*/
export interface RESTPatchAPICurrentUserJSONBody {
username?: string;
avatar?: string | null;
username?: string | undefined;
avatar?: string | null | undefined;
}
/**

View File

@@ -7,7 +7,7 @@ import type { APIEmbed, APIMessage, APIWebhook } from '../../payloads/v6/mod.ts'
*/
export interface RESTPostAPIChannelWebhookJSONBody {
name: string;
avatar?: string | null;
avatar?: string | null | undefined;
}
/**
@@ -44,9 +44,9 @@ export type RESTGetAPIWebhookWithTokenResult = Omit<APIWebhook, 'user'>;
* @deprecated API v6 is deprecated and the types will not receive further updates, please update to v8.
*/
export interface RESTPatchAPIWebhookJSONBody {
name?: string;
avatar?: string | null;
channel_id?: string;
name?: string | undefined;
avatar?: string | null | undefined;
channel_id?: string | undefined;
}
/**
@@ -81,12 +81,12 @@ export type RESTDeleteAPIWebhookWithTokenResult = never;
* @deprecated API v6 is deprecated and the types will not receive further updates, please update to v8.
*/
export interface RESTPostAPIWebhookWithTokenJSONBody {
content?: string;
username?: string;
avatar_url?: string;
tts?: boolean;
embeds?: APIEmbed[];
allowed_mentions?: APIAllowedMentionsSend;
content?: string | undefined;
username?: string | undefined;
avatar_url?: string | undefined;
tts?: boolean | undefined;
embeds?: APIEmbed[] | undefined;
allowed_mentions?: APIAllowedMentionsSend | undefined;
}
/**
@@ -98,7 +98,7 @@ export type RESTPostAPIWebhookWithTokenFormDataBody =
/**
* JSON stringified message body
*/
payload_json?: string;
payload_json?: string | undefined;
/**
* The file contents
*/

View File

@@ -36,13 +36,13 @@ export type RESTGetAPIChannelResult = APIChannel;
* https://discord.com/developers/docs/resources/channel#modify-channel
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPatchAPIChannelJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIChannelJSONBody {
/**
* 1-100 character channel name
*
* Channel types: all
*/
name?: string;
name?: string | undefined;
/**
* The type of channel; only conversion between `text` and `news`
@@ -50,25 +50,25 @@ export type RESTPatchAPIChannelJSONBody = AddUndefinedToPossiblyUndefinedPropert
*
* Channel types: text, news
*/
type?: ChannelType.GuildNews | ChannelType.GuildText;
type?: ChannelType.GuildNews | ChannelType.GuildText | undefined;
/**
* The position of the channel in the left-hand listing
*
* Channel types: all
*/
position?: number | null;
position?: number | null | undefined;
/**
* 0-1024 character channel topic
*
* Channel types: text, news
*/
topic?: string | null;
topic?: string | null | undefined;
/**
* Whether the channel is nsfw
*
* Channel types: text, news, store
*/
nsfw?: boolean | null;
nsfw?: boolean | null | undefined;
/**
* Amount of seconds a user has to wait before sending another message (0-21600);
* bots, as well as users with the permission `MANAGE_MESSAGES` or `MANAGE_CHANNELS`,
@@ -76,44 +76,44 @@ export type RESTPatchAPIChannelJSONBody = AddUndefinedToPossiblyUndefinedPropert
*
* Channel types: text
*/
rate_limit_per_user?: number | null;
rate_limit_per_user?: number | null | undefined;
/**
* The bitrate (in bits) of the voice channel; 8000 to 96000 (128000 for VIP servers)
*
* Channel types: voice
*/
bitrate?: number | null;
bitrate?: number | null | undefined;
/**
* The user limit of the voice channel; 0 refers to no limit, 1 to 99 refers to a user limit
*
* Channel types: voice
*/
user_limit?: number | null;
user_limit?: number | null | undefined;
/**
* Channel or category-specific permissions
*
* Channel types: all
*/
permission_overwrites?: APIChannelPatchOverwrite[] | null;
permission_overwrites?: APIChannelPatchOverwrite[] | null | undefined;
/**
* ID of the new parent category for a channel
*
* Channel types: text, news, store, voice
*/
parent_id?: Snowflake | null;
parent_id?: Snowflake | null | undefined;
/**
* Voice region id for the voice or stage channel, automatic when set to `null`
*
* See https://discord.com/developers/docs/resources/voice#voice-region-object
*/
rtc_region?: string | null;
rtc_region?: string | null | undefined;
/**
* The camera video quality mode of the voice channel
*
* See https://discord.com/developers/docs/resources/channel#channel-object-video-quality-modes
*/
video_quality_mode?: VideoQualityMode | null;
}>;
video_quality_mode?: VideoQualityMode | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/channel#modify-channel
@@ -169,79 +169,78 @@ export type RESTGetAPIChannelMessageResult = APIMessage;
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type APIMessageReferenceSend = StrictPartial<APIMessageReference> &
Required<Pick<APIMessageReference, 'message_id'>> &
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<Required<Pick<APIMessageReference, 'message_id'>>> & {
/**
* Whether to error if the referenced message doesn't exist instead of sending as a normal (non-reply) message
*
* @default true
*/
fail_if_not_exists?: boolean;
}>;
fail_if_not_exists?: boolean | undefined;
};
/**
* https://discord.com/developers/docs/resources/channel#create-message
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPostAPIChannelMessageJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIChannelMessageJSONBody {
/**
* The message contents (up to 2000 characters)
*/
content?: string;
content?: string | undefined;
/**
* A nonce that can be used for optimistic message sending
*/
nonce?: number | string;
nonce?: number | string | undefined;
/**
* `true` if this is a TTS message
*/
tts?: boolean;
tts?: boolean | undefined;
/**
* Embedded `rich` content (up to 6000 characters)
*
* See https://discord.com/developers/docs/resources/channel#embed-object
*/
embeds?: APIEmbed[];
embeds?: APIEmbed[] | undefined;
/**
* Embedded `rich` content
*
* See https://discord.com/developers/docs/resources/channel#embed-object
* @deprecated Use `embeds` instead
*/
embed?: APIEmbed;
embed?: APIEmbed | undefined;
/**
* Allowed mentions for a message
*
* See https://discord.com/developers/docs/resources/channel#allowed-mentions-object
*/
allowed_mentions?: APIAllowedMentions;
allowed_mentions?: APIAllowedMentions | undefined;
/**
* Include to make your message a reply
*
* See https://discord.com/developers/docs/resources/channel#message-object-message-reference-structure
*/
message_reference?: APIMessageReferenceSend;
message_reference?: APIMessageReferenceSend | undefined;
/**
* The components to include with the message
*
* See https://discord.com/developers/docs/interactions/message-components#component-object
*/
components?: APIActionRowComponent<APIMessageActionRowComponent>[];
components?: APIActionRowComponent<APIMessageActionRowComponent>[] | undefined;
/**
* IDs of up to 3 stickers in the server to send in the message
*
* See https://discord.com/developers/docs/resources/sticker#sticker-object
*/
sticker_ids?: [Snowflake] | [Snowflake, Snowflake] | [Snowflake, Snowflake, Snowflake];
sticker_ids?: [Snowflake] | [Snowflake, Snowflake] | [Snowflake, Snowflake, Snowflake] | undefined;
/**
* Attachment objects with filename and description
*/
attachments?: (Pick<APIAttachment, 'id' | 'description'> & Partial<Pick<APIAttachment, 'filename'>>)[];
attachments?: (Pick<APIAttachment, 'id' | 'description'> & Partial<Pick<APIAttachment, 'filename'>>)[] | undefined;
/**
* Message flags combined as a bitfield
*/
flags?: MessageFlags;
}>;
flags?: MessageFlags | undefined;
}
/**
* https://discord.com/developers/docs/resources/channel#create-message
@@ -252,7 +251,7 @@ export type RESTPostAPIChannelMessageFormDataBody =
/**
* JSON stringified message body
*/
payload_json?: string;
payload_json?: string | undefined;
} & Record<`files[${bigint}]`, unknown>)
| (RESTPostAPIChannelMessageJSONBody & Record<`files[${bigint}]`, unknown>);
@@ -325,24 +324,24 @@ export type RESTDeleteAPIChannelMessageReactionResult = never;
* https://discord.com/developers/docs/resources/channel#edit-message
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPatchAPIChannelMessageJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIChannelMessageJSONBody {
/**
* The new message contents (up to 2000 characters)
*/
content?: string | null;
content?: string | null | undefined;
/**
* Embedded `rich` content (up to 6000 characters)
*
* See https://discord.com/developers/docs/resources/channel#embed-object
*/
embeds?: APIEmbed[] | null;
embeds?: APIEmbed[] | null | undefined;
/**
* Embedded `rich` content
*
* See https://discord.com/developers/docs/resources/channel#embed-object
* @deprecated Use `embeds` instead
*/
embed?: APIEmbed | null;
embed?: APIEmbed | null | undefined;
/**
* Edit the flags of a message (only `SUPPRESS_EMBEDS` can currently be set/unset)
*
@@ -351,13 +350,13 @@ export type RESTPatchAPIChannelMessageJSONBody = AddUndefinedToPossiblyUndefined
*
* See https://discord.com/developers/docs/resources/channel#message-object-message-flags
*/
flags?: MessageFlags | null;
flags?: MessageFlags | null | undefined;
/**
* Allowed mentions for the message
*
* See https://discord.com/developers/docs/resources/channel#allowed-mentions-object
*/
allowed_mentions?: APIAllowedMentions | null;
allowed_mentions?: APIAllowedMentions | null | undefined;
/**
* Attached files to keep
*
@@ -365,14 +364,14 @@ export type RESTPatchAPIChannelMessageJSONBody = AddUndefinedToPossiblyUndefined
*
* See https://discord.com/developers/docs/resources/channel#attachment-object
*/
attachments?: (Pick<APIAttachment, 'id'> & Partial<Pick<APIAttachment, 'filename' | 'description'>>)[];
attachments?: (Pick<APIAttachment, 'id'> & Partial<Pick<APIAttachment, 'filename' | 'description'>>)[] | undefined;
/**
* The components to include with the message
*
* See https://discord.com/developers/docs/interactions/message-components#component-object
*/
components?: APIActionRowComponent<APIMessageActionRowComponent>[] | null;
}>;
components?: APIActionRowComponent<APIMessageActionRowComponent>[] | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/channel#edit-message
@@ -383,7 +382,7 @@ export type RESTPatchAPIChannelMessageFormDataBody =
/**
* JSON stringified message body
*/
payload_json?: string;
payload_json?: string | undefined;
} & Record<`files[${bigint}]`, unknown>)
| (RESTPatchAPIChannelMessageJSONBody & Record<`files[${bigint}]`, unknown>);
@@ -428,7 +427,7 @@ export interface RESTPutAPIChannelPermissionJSONBody {
*
* @default "0"
*/
allow?: Permissions | null;
allow?: Permissions | null | undefined;
/**
* The bitwise value of all disallowed permissions
*
@@ -436,7 +435,7 @@ export interface RESTPutAPIChannelPermissionJSONBody {
*
* @default "0"
*/
deny?: Permissions | null;
deny?: Permissions | null | undefined;
/**
* `0` for a role or `1` for a member
*/
@@ -459,51 +458,51 @@ export type RESTGetAPIChannelInvitesResult = APIExtendedInvite[];
* https://discord.com/developers/docs/resources/channel#create-channel-invite
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPostAPIChannelInviteJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIChannelInviteJSONBody {
/**
* Duration of invite in seconds before expiry, or 0 for never
*
* @default 86400 (24 hours)
*/
max_age?: number;
max_age?: number | undefined;
/**
* Max number of uses or 0 for unlimited
*
* @default 0
*/
max_uses?: number;
max_uses?: number | undefined;
/**
* Whether this invite only grants temporary membership
*
* @default false
*/
temporary?: boolean;
temporary?: boolean | undefined;
/**
* If true, don't try to reuse a similar invite
* (useful for creating many unique one time use invites)
*
* @default false
*/
unique?: boolean;
unique?: boolean | undefined;
/**
* The type of target for this voice channel invite
*
* See https://discord.com/developers/docs/resources/invite#invite-object-invite-target-types
*/
target_type?: InviteTargetType;
target_type?: InviteTargetType | undefined;
/**
* The id of the user whose stream to display for this invite
* - Required if `target_type` is 1
* - The user must be streaming in the channel
*/
target_user_id?: Snowflake;
target_user_id?: Snowflake | undefined;
/**
* The id of the embedded application to open for this invite
* - Required if `target_type` is 2
* - The application must have the `EMBEDDED` flag
*/
target_application_id?: Snowflake;
}>;
target_application_id?: Snowflake | undefined;
}
/**
* https://discord.com/developers/docs/resources/channel#create-channel-invite
@@ -562,7 +561,7 @@ export type RESTDeleteAPIChannelPinResult = never;
* https://discord.com/developers/docs/resources/channel#group-dm-add-recipient
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPutAPIChannelRecipientJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPutAPIChannelRecipientJSONBody {
/**
* Access token of a user that has granted your app the `gdm.join` scope
*/
@@ -570,8 +569,8 @@ export type RESTPutAPIChannelRecipientJSONBody = AddUndefinedToPossiblyUndefined
/**
* Nickname of the user being added
*/
nick?: string;
}>;
nick?: string | undefined;
}
/**
* https://discord.com/developers/docs/resources/channel#group-dm-add-recipient

View File

@@ -1,6 +1,5 @@
import type { Snowflake } from '../../globals.ts';
import type { APIEmoji } from '../../payloads/v8/mod.ts';
import type { AddUndefinedToPossiblyUndefinedPropertiesOfInterface } from '../../utils/internals.ts';
/**
* https://discord.com/developers/docs/resources/emoji#list-guild-emojis
@@ -18,7 +17,7 @@ export type RESTGetAPIGuildEmojiResult = APIEmoji;
* https://discord.com/developers/docs/resources/emoji#create-guild-emoji-json-params
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPostAPIGuildEmojiJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIGuildEmojiJSONBody {
/**
* Name of the emoji
*/
@@ -32,8 +31,8 @@ export type RESTPostAPIGuildEmojiJSONBody = AddUndefinedToPossiblyUndefinedPrope
/**
* Roles for which this emoji will be whitelisted
*/
roles?: Snowflake[];
}>;
roles?: Snowflake[] | undefined;
}
/**
* https://discord.com/developers/docs/resources/emoji#create-guild-emoji
@@ -45,16 +44,16 @@ export type RESTPostAPIGuildEmojiResult = APIEmoji;
* https://discord.com/developers/docs/resources/emoji#modify-guild-emoji
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPatchAPIGuildEmojiJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIGuildEmojiJSONBody {
/**
* Name of the emoji
*/
name?: string;
name?: string | undefined;
/**
* Roles for which this emoji will be whitelisted
*/
roles?: Snowflake[] | null;
}>;
roles?: Snowflake[] | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/emoji#modify-guild-emoji

View File

@@ -23,13 +23,7 @@ import type {
GuildVerificationLevel,
GuildWidgetStyle,
} from '../../payloads/v8/mod.ts';
import type {
AddUndefinedToPossiblyUndefinedPropertiesOfInterface,
Nullable,
StrictPartial,
StrictRequired,
UnionToIntersection,
} from '../../utils/internals.ts';
import type { Nullable, StrictPartial, StrictRequired, UnionToIntersection } from '../../utils/internals.ts';
/**
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
@@ -51,13 +45,12 @@ export type APIGuildCreatePartialChannel = StrictPartial<
UnionToIntersection<APIGuildChannelResolvable>,
'type' | 'topic' | 'nsfw' | 'bitrate' | 'user_limit' | 'rate_limit_per_user'
>
> &
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
name: string;
id?: number | string;
parent_id?: number | string | null;
permission_overwrites?: APIGuildCreateOverwrite[];
}>;
> & {
name: string;
id?: number | string | undefined;
parent_id?: number | string | null | undefined;
permission_overwrites?: APIGuildCreateOverwrite[] | undefined;
};
/**
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
@@ -70,7 +63,7 @@ export interface APIGuildCreateRole extends RESTPostAPIGuildRoleJSONBody {
* https://discord.com/developers/docs/resources/guild#create-guild
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPostAPIGuildsJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIGuildsJSONBody {
/**
* Name of the guild (2-100 characters)
*/
@@ -80,31 +73,31 @@ export type RESTPostAPIGuildsJSONBody = AddUndefinedToPossiblyUndefinedPropertie
*
* See https://discord.com/developers/docs/resources/voice#voice-region-object
*/
region?: string;
region?: string | undefined;
/**
* base64 1024x1024 png/jpeg image for the guild icon
*
* See https://discord.com/developers/docs/reference#image-data
*/
icon?: string;
icon?: string | undefined;
/**
* Verification level
*
* See https://discord.com/developers/docs/resources/guild#guild-object-verification-level
*/
verification_level?: GuildVerificationLevel;
verification_level?: GuildVerificationLevel | undefined;
/**
* Default message notification level
*
* See https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level
*/
default_message_notifications?: GuildDefaultMessageNotifications;
default_message_notifications?: GuildDefaultMessageNotifications | undefined;
/**
* Explicit content filter level
*
* See https://discord.com/developers/docs/resources/guild#guild-object-explicit-content-filter-level
*/
explicit_content_filter?: GuildExplicitContentFilter;
explicit_content_filter?: GuildExplicitContentFilter | undefined;
/**
* New guild roles
*
@@ -117,7 +110,7 @@ export type RESTPostAPIGuildsJSONBody = AddUndefinedToPossiblyUndefinedPropertie
*
* See https://discord.com/developers/docs/topics/permissions#role-object
*/
roles?: APIGuildCreateRole[];
roles?: APIGuildCreateRole[] | undefined;
/**
* New guild's channels
*
@@ -130,30 +123,30 @@ export type RESTPostAPIGuildsJSONBody = AddUndefinedToPossiblyUndefinedPropertie
*
* See https://discord.com/developers/docs/resources/channel#channel-object
*/
channels?: APIGuildCreatePartialChannel[];
channels?: APIGuildCreatePartialChannel[] | undefined;
/**
* ID for afk channel
*/
afk_channel_id?: number | Snowflake | null;
afk_channel_id?: number | Snowflake | null | undefined;
/**
* AFK timeout in seconds
*/
afk_timeout?: number;
afk_timeout?: number | undefined;
/**
* The id of the channel where guild notices such as welcome messages and boost events are posted
*/
system_channel_id?: number | Snowflake | null;
system_channel_id?: number | Snowflake | null | undefined;
/**
* System channel flags
*
* See https://discord.com/developers/docs/resources/guild#guild-object-system-channel-flags
*/
system_channel_flags?: GuildSystemChannelFlags;
system_channel_flags?: GuildSystemChannelFlags | undefined;
/**
* Whether the boosts progress bar should be enabled.
*/
premium_progress_bar_enabled?: boolean;
}>;
premium_progress_bar_enabled?: boolean | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#create-guild
@@ -190,106 +183,106 @@ export type RESTGetAPIGuildPreviewResult = APIGuildPreview;
* https://discord.com/developers/docs/resources/guild#modify-guild
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPatchAPIGuildJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIGuildJSONBody {
/**
* New name for the guild (2-100 characters)
*/
name?: string;
name?: string | undefined;
/**
* Voice region id
*
* See https://discord.com/developers/docs/resources/voice#voice-region-object
*/
region?: string | null;
region?: string | null | undefined;
/**
* Verification level
*
* See https://discord.com/developers/docs/resources/guild#guild-object-verification-level
*/
verification_level?: GuildVerificationLevel | null;
verification_level?: GuildVerificationLevel | null | undefined;
/**
* Default message notification level
*
* See https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level
*/
default_message_notifications?: GuildDefaultMessageNotifications | null;
default_message_notifications?: GuildDefaultMessageNotifications | null | undefined;
/**
* Explicit content filter level
*
* See https://discord.com/developers/docs/resources/guild#guild-object-explicit-content-filter-level
*/
explicit_content_filter?: GuildExplicitContentFilter | null;
explicit_content_filter?: GuildExplicitContentFilter | null | undefined;
/**
* ID for afk channel
*/
afk_channel_id?: Snowflake | null;
afk_channel_id?: Snowflake | null | undefined;
/**
* AFK timeout in seconds
*/
afk_timeout?: number;
afk_timeout?: number | undefined;
/**
* base64 1024x1024 png/jpeg/gif image for the guild icon (can be animated gif when the guild has `ANIMATED_ICON` feature)
*
* See https://discord.com/developers/docs/reference#image-data
*/
icon?: string | null;
icon?: string | null | undefined;
/**
* User id to transfer guild ownership to (must be owner)
*/
owner_id?: Snowflake;
owner_id?: Snowflake | undefined;
/**
* base64 16:9 png/jpeg image for the guild splash (when the guild has `INVITE_SPLASH` feature)
*
* See https://discord.com/developers/docs/reference#image-data
*/
splash?: string | null;
splash?: string | null | undefined;
/**
* base64 png/jpeg image for the guild discovery splash (when the guild has `DISCOVERABLE` feature)
*/
discovery_splash?: string | null;
discovery_splash?: string | null | undefined;
/**
* base64 16:9 png/jpeg image for the guild banner (when the server has the `BANNER` feature; can be animated gif when the server has the `ANIMATED_BANNER` feature)
*/
banner?: string | null;
banner?: string | null | undefined;
/**
* The id of the channel where guild notices such as welcome messages and boost events are posted
*/
system_channel_id?: Snowflake | null;
system_channel_id?: Snowflake | null | undefined;
/**
* System channel flags
*
* See https://discord.com/developers/docs/resources/guild#guild-object-system-channel-flags
*/
system_channel_flags?: GuildSystemChannelFlags;
system_channel_flags?: GuildSystemChannelFlags | undefined;
/**
* The id of the channel where Community guilds display rules and/or guidelines
*/
rules_channel_id?: Snowflake | null;
rules_channel_id?: Snowflake | null | undefined;
/**
* The id of the channel where admins and moderators of Community guilds receive notices from Discord
*/
public_updates_channel_id?: Snowflake | null;
public_updates_channel_id?: Snowflake | null | undefined;
/**
* The preferred locale of a Community guild used in server discovery and notices from Discord; defaults to "en-US"
*
* @default "en-US" (if the value is set to `null`)
*/
preferred_locale?: string | null;
preferred_locale?: string | null | undefined;
/**
* Enabled guild features
*
* See https://discord.com/developers/docs/resources/guild#guild-object-guild-features
*/
features?: GuildFeature[];
features?: GuildFeature[] | undefined;
/**
* The description for the guild, if the guild is discoverable
*/
description?: string | null;
description?: string | null | undefined;
/**
* Whether the boosts progress bar should be enabled.
*/
premium_progress_bar_enabled?: boolean;
}>;
premium_progress_bar_enabled?: boolean | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#modify-guild
@@ -325,26 +318,24 @@ export type RESTPostAPIGuildChannelResult = APIChannel;
* https://discord.com/developers/docs/resources/guild#modify-guild-channel-positions
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPatchAPIGuildChannelPositionsJSONBody = Array<
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
/**
* Channel id
*/
id: Snowflake;
/**
* Sorting position of the channel
*/
position: number;
/**
* Sync channel overwrites with the new parent, when moving to a new `parent_id`
*/
lock_permissions?: boolean;
/**
* The new parent id of this channel
*/
parent_id?: Snowflake | null;
}>
>;
export type RESTPatchAPIGuildChannelPositionsJSONBody = Array<{
/**
* Channel id
*/
id: Snowflake;
/**
* Sorting position of the channel
*/
position: number;
/**
* Sync channel overwrites with the new parent, when moving to a new `parent_id`
*/
lock_permissions?: boolean | undefined;
/**
* The new parent id of this channel
*/
parent_id?: Snowflake | null | undefined;
}>;
/**
* https://discord.com/developers/docs/resources/guild#modify-guild-channel-positions
@@ -409,7 +400,7 @@ export type RESTGetAPIGuildMembersSearchResult = APIGuildMember[];
* https://discord.com/developers/docs/resources/guild#add-guild-member
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPutAPIGuildMemberJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPutAPIGuildMemberJSONBody {
/**
* An oauth2 access token granted with the `guilds.join` to the bot's application for the user you want to add to the guild
*/
@@ -419,26 +410,26 @@ export type RESTPutAPIGuildMemberJSONBody = AddUndefinedToPossiblyUndefinedPrope
*
* Requires `MANAGE_NICKNAMES` permission
*/
nick?: string;
nick?: string | undefined;
/**
* Array of role ids the member is assigned
*
* Requires `MANAGE_ROLES` permission
*/
roles?: Snowflake[];
roles?: Snowflake[] | undefined;
/**
* Whether the user is muted in voice channels
*
* Requires `MUTE_MEMBERS` permission
*/
mute?: boolean;
mute?: boolean | undefined;
/**
* Whether the user is deafened in voice channels
*
* Requires `DEAFEN_MEMBERS` permission
*/
deaf?: boolean;
}>;
deaf?: boolean | undefined;
}
/**
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
@@ -449,42 +440,42 @@ export type RESTPutAPIGuildMemberResult = APIGuildMember | never;
* https://discord.com/developers/docs/resources/guild#modify-guild-member
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPatchAPIGuildMemberJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIGuildMemberJSONBody {
/**
* Value to set users nickname to
*
* Requires `MANAGE_NICKNAMES` permission
*/
nick?: string | null;
nick?: string | null | undefined;
/**
* Array of role ids the member is assigned
*
* Requires `MANAGE_ROLES` permission
*/
roles?: Snowflake[] | null;
roles?: Snowflake[] | null | undefined;
/**
* Whether the user is muted in voice channels. Will throw a 400 if the user is not in a voice channel
*
* Requires `MUTE_MEMBERS` permission
*/
mute?: boolean | null;
mute?: boolean | null | undefined;
/**
* Whether the user is deafened in voice channels. Will throw a 400 if the user is not in a voice channel
*
* Requires `DEAFEN_MEMBERS` permission
*/
deaf?: boolean | null;
deaf?: boolean | null | undefined;
/**
* ID of channel to move user to (if they are connected to voice)
*
* Requires `MOVE_MEMBERS` permission
*/
channel_id?: Snowflake | null;
channel_id?: Snowflake | null | undefined;
/**
* Timestamp of when the time out will be removed; until then, they cannot interact with the guild
*/
communication_disabled_until?: string | null;
}>;
communication_disabled_until?: string | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#add-guild-member
@@ -498,27 +489,27 @@ export type RESTPatchAPIGuildMemberResult = APIGuildMember;
* @deprecated Use [Modify Current Member](https://discord.com/developers/docs/resources/guild#modify-current-member) instead.
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPatchAPICurrentGuildMemberNicknameJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPICurrentGuildMemberNicknameJSONBody {
/**
* Value to set users nickname to
*
* Requires `CHANGE_NICKNAME` permission
*/
nick?: string | null;
}>;
nick?: string | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#modify-current-member
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPatchAPICurrentGuildMemberJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPICurrentGuildMemberJSONBody {
/**
* Value to set users nickname to
*
* Requires `CHANGE_NICKNAME` permission
*/
nick?: string | null;
}>;
nick?: string | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#modify-current-user-nick
@@ -563,18 +554,18 @@ export type RESTGetAPIGuildBanResult = APIBan;
* https://discord.com/developers/docs/resources/guild#create-guild-ban
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPutAPIGuildBanJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPutAPIGuildBanJSONBody {
/**
* Number of days to delete messages for (0-7)
*/
delete_message_days?: number;
delete_message_days?: number | undefined;
/**
* Reason for the ban
*
* @deprecated Removed in API v10, use the `X-Audit-Log-Reason` header instead.
*/
reason?: string;
}>;
reason?: string | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#create-guild-ban
@@ -598,46 +589,46 @@ export type RESTGetAPIGuildRolesResult = APIRole[];
* https://discord.com/developers/docs/resources/guild#create-guild-role
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPostAPIGuildRoleJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIGuildRoleJSONBody {
/**
* Name of the role
*
* @default "new role"
*/
name?: string | null;
name?: string | null | undefined;
/**
* Bitwise value of the enabled/disabled permissions
*
* @default "default role permissions in guild"
*/
permissions?: Permissions | null;
permissions?: Permissions | null | undefined;
/**
* RGB color value
*
* @default 0
*/
color?: number | null;
color?: number | null | undefined;
/**
* Whether the role should be displayed separately in the sidebar
*
* @default false
*/
hoist?: boolean | null;
hoist?: boolean | null | undefined;
/**
* The role's icon image (if the guild has the `ROLE_ICONS` feature)
*/
icon?: string | null;
icon?: string | null | undefined;
/**
* The role's unicode emoji as a standard emoji (if the guild has the `ROLE_ICONS` feature)
*/
unicode_emoji?: string | null;
unicode_emoji?: string | null | undefined;
/**
* Whether the role should be mentionable
*
* @default false
*/
mentionable?: boolean | null;
}>;
mentionable?: boolean | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#create-guild-role
@@ -649,18 +640,16 @@ export type RESTPostAPIGuildRoleResult = APIRole;
* https://discord.com/developers/docs/resources/guild#modify-guild-role-positions
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPatchAPIGuildRolePositionsJSONBody = Array<
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
/**
* Role id
*/
id: Snowflake;
/**
* Sorting position of the role
*/
position?: number;
}>
>;
export type RESTPatchAPIGuildRolePositionsJSONBody = Array<{
/**
* Role id
*/
id: Snowflake;
/**
* Sorting position of the role
*/
position?: number | undefined;
}>;
/**
* https://discord.com/developers/docs/resources/guild#modify-guild-role-positions
@@ -672,36 +661,36 @@ export type RESTPatchAPIGuildRolePositionsResult = APIRole[];
* https://discord.com/developers/docs/resources/guild#modify-guild-role
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPatchAPIGuildRoleJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIGuildRoleJSONBody {
/**
* Name of the role
*/
name?: string | null;
name?: string | null | undefined;
/**
* Bitwise value of the enabled/disabled permissions
*/
permissions?: Permissions | null;
permissions?: Permissions | null | undefined;
/**
* RGB color value
*/
color?: number | null;
color?: number | null | undefined;
/**
* Whether the role should be displayed separately in the sidebar
*/
hoist?: boolean | null;
hoist?: boolean | null | undefined;
/**
* The role's icon image (if the guild has the `ROLE_ICONS` feature)
*/
icon?: string | null;
icon?: string | null | undefined;
/**
* The role's unicode emoji as a standard emoji (if the guild has the `ROLE_ICONS` feature)
*/
unicode_emoji?: string | null;
unicode_emoji?: string | null | undefined;
/**
* Whether the role should be mentionable
*/
mentionable?: boolean | null;
}>;
mentionable?: boolean | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#modify-guild-role
@@ -749,24 +738,24 @@ export interface RESTGetAPIGuildPruneCountResult {
* https://discord.com/developers/docs/resources/guild#begin-guild-prune
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPostAPIGuildPruneJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIGuildPruneJSONBody {
/**
* Number of days to count prune for (1 or more)
*
* @default 7
*/
days?: number;
days?: number | undefined;
/**
* Whether `pruned is returned, discouraged for large guilds
*
* @default true
*/
compute_prune_count?: boolean;
compute_prune_count?: boolean | undefined;
/**
* Role(s) to include
*/
include_roles?: Snowflake[];
}>;
include_roles?: Snowflake[] | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#begin-guild-prune
@@ -861,20 +850,20 @@ export type RESTGetAPIGuildMemberVerificationResult = APIGuildMembershipScreenin
/**
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPatchAPIGuildMemberVerificationJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIGuildMemberVerificationJSONBody {
/**
* Whether Membership Screening is enabled
*/
enabled?: boolean;
enabled?: boolean | undefined;
/**
* Array of field objects serialized in a string
*/
form_fields?: string;
form_fields?: string | undefined;
/**
* The server description to show in the screening form
*/
description?: string | null;
}>;
description?: string | null | undefined;
}
/**
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
@@ -884,7 +873,7 @@ export type RESTPatchAPIGuildMemberVerificationResult = APIGuildMembershipScreen
/**
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPatchAPIGuildVoiceStateCurrentMemberJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIGuildVoiceStateCurrentMemberJSONBody {
/**
* The id of the channel the user is currently in
*/
@@ -892,17 +881,17 @@ export type RESTPatchAPIGuildVoiceStateCurrentMemberJSONBody = AddUndefinedToPos
/**
* Toggles the user's suppress state
*/
suppress?: boolean;
suppress?: boolean | undefined;
/**
* Sets the user's request to speak
*/
request_to_speak_timestamp?: string | null;
}>;
request_to_speak_timestamp?: string | null | undefined;
}
/**
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPatchAPIGuildVoiceStateUserJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIGuildVoiceStateUserJSONBody {
/**
* The id of the channel the user is currently in
*/
@@ -910,8 +899,8 @@ export type RESTPatchAPIGuildVoiceStateUserJSONBody = AddUndefinedToPossiblyUnde
/**
* Toggles the user's suppress state
*/
suppress?: boolean;
}>;
suppress?: boolean | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#get-guild-welcome-screen
@@ -923,10 +912,9 @@ export type RESTGetAPIGuildWelcomeScreenResult = APIGuildWelcomeScreen;
* https://discord.com/developers/docs/resources/guild#modify-guild-welcome-screen
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPatchAPIGuildWelcomeScreenJSONBody = Nullable<StrictPartial<APIGuildWelcomeScreen>> &
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
/**
* Whether the welcome screen is enabled
*/
enabled?: boolean | null;
}>;
export type RESTPatchAPIGuildWelcomeScreenJSONBody = Nullable<StrictPartial<APIGuildWelcomeScreen>> & {
/**
* Whether the welcome screen is enabled
*/
enabled?: boolean | null | undefined;
};

View File

@@ -1,5 +1,5 @@
import type { Snowflake } from '../../globals.ts';
import type { AddUndefinedToPossiblyUndefinedPropertiesOfInterface, StrictPartial } from '../../utils/internals.ts';
import type { StrictPartial } from '../../utils/internals.ts';
import type {
APIGuildScheduledEvent,
APIGuildScheduledEventEntityMetadata,
@@ -30,11 +30,11 @@ export type RESTGetAPIGuildScheduledEventsResult = APIGuildScheduledEvent[];
* https://discord.com/developers/docs/resources/guild-scheduled-event#create-guild-scheduled-event
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPostAPIGuildScheduledEventJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIGuildScheduledEventJSONBody {
/**
* The stage channel id of the guild event
*/
channel_id?: Snowflake;
channel_id?: Snowflake | undefined;
/**
* The name of the guild event
*/
@@ -50,24 +50,24 @@ export type RESTPostAPIGuildScheduledEventJSONBody = AddUndefinedToPossiblyUndef
/**
* The time when the scheduled event is scheduled to end
*/
scheduled_end_time?: string;
scheduled_end_time?: string | undefined;
/**
* The description of the guild event
*/
description?: string;
description?: string | undefined;
/**
* The scheduled entity type of the guild event
*/
entity_type?: GuildScheduledEventEntityType;
entity_type?: GuildScheduledEventEntityType | undefined;
/**
* The entity metadata of the scheduled event
*/
entity_metadata?: APIGuildScheduledEventEntityMetadata;
entity_metadata?: APIGuildScheduledEventEntityMetadata | undefined;
/**
* The cover image of the scheduled event
*/
image?: string | null;
}>;
image?: string | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild-scheduled-event#create-guild-scheduled-event
@@ -96,13 +96,12 @@ export type RESTGetAPIGuildScheduledEventResult = APIGuildScheduledEvent;
* https://discord.com/developers/docs/resources/guild-scheduled-event#modify-guild-scheduled-event
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPatchAPIGuildScheduledEventJSONBody = StrictPartial<RESTPostAPIGuildScheduledEventJSONBody> &
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
/**
* The status of the scheduled event
*/
status?: GuildScheduledEventStatus;
}>;
export type RESTPatchAPIGuildScheduledEventJSONBody = StrictPartial<RESTPostAPIGuildScheduledEventJSONBody> & {
/**
* The status of the scheduled event
*/
status?: GuildScheduledEventStatus | undefined;
};
/**
* https://discord.com/developers/docs/resources/guild-scheduled-event#modify-guild-scheduled-event

View File

@@ -36,11 +36,10 @@ type RESTPostAPIBaseApplicationCommandsJSONBody = AddUndefinedToPossiblyUndefine
* https://discord.com/developers/docs/interactions/application-commands#create-global-application-command
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPostAPIChatInputApplicationCommandsJSONBody = RESTPostAPIBaseApplicationCommandsJSONBody &
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
type?: ApplicationCommandType.ChatInput;
description: string;
}>;
export interface RESTPostAPIChatInputApplicationCommandsJSONBody extends RESTPostAPIBaseApplicationCommandsJSONBody {
type?: ApplicationCommandType.ChatInput | undefined;
description: string;
}
/**
* https://discord.com/developers/docs/interactions/application-commands#create-global-application-command
@@ -151,7 +150,7 @@ export type RESTPostAPIInteractionCallbackFormDataBody =
/**
* JSON stringified message body
*/
payload_json?: string;
payload_json?: string | undefined;
} & Record<`files[${bigint}]`, unknown>)
| (RESTPostAPIInteractionCallbackJSONBody & Record<`files[${bigint}]`, unknown>);
@@ -200,7 +199,7 @@ export type RESTPostAPIInteractionFollowupFormDataBody =
/**
* JSON stringified message body
*/
payload_json?: string;
payload_json?: string | undefined;
} & Record<`files[${bigint}]`, unknown>)
| (RESTPostAPIInteractionFollowupJSONBody & Record<`files[${bigint}]`, unknown>);

View File

@@ -1,6 +1,5 @@
import type { Snowflake } from '../../globals.ts';
import type { APIStageInstance, StageInstancePrivacyLevel } from '../../payloads/v8/mod.ts';
import type { AddUndefinedToPossiblyUndefinedPropertiesOfInterface } from '../../utils/internals.ts';
/**
* https://discord.com/developers/docs/resources/stage-instance#create-stage-instance
@@ -20,7 +19,7 @@ export interface RESTPostAPIStageInstanceJSONBody {
*
* @default GuildOnly
*/
privacy_level?: StageInstancePrivacyLevel;
privacy_level?: StageInstancePrivacyLevel | undefined;
}
/**
@@ -39,16 +38,16 @@ export type RESTGetAPIStageInstanceResult = APIStageInstance;
* https://discord.com/developers/docs/resources/stage-instance#update-stage-instance
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPatchAPIStageInstanceJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIStageInstanceJSONBody {
/**
* The topic of the stage instance (1-120 characters)
*/
topic?: string;
topic?: string | undefined;
/**
* The privacy level of the stage instance
*/
privacy_level?: StageInstancePrivacyLevel;
}>;
privacy_level?: StageInstancePrivacyLevel | undefined;
}
/**
* https://discord.com/developers/docs/resources/stage-instance#update-stage-instance

View File

@@ -1,5 +1,4 @@
import type { APISticker, APIStickerPack } from '../../payloads/v8/mod.ts';
import type { AddUndefinedToPossiblyUndefinedPropertiesOfInterface } from '../../utils/internals.ts';
/**
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
@@ -53,20 +52,20 @@ export type RESTPostAPIGuildStickerResult = APISticker;
/**
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPatchAPIGuildStickerJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIGuildStickerJSONBody {
/**
* Name of the sticker (2-30 characters)
*/
name?: string;
name?: string | undefined;
/**
* Description of the sticker (2-100 characters)
*/
description?: string | null;
description?: string | null | undefined;
/**
* The Discord name of a unicode emoji representing the sticker's expression (2-200 characters)
*/
tags?: string;
}>;
tags?: string | undefined;
}
/**
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.

View File

@@ -1,5 +1,5 @@
import type { APIGuild, APITemplate } from '../../payloads/v8/mod.ts';
import type { AddUndefinedToPossiblyUndefinedPropertiesOfInterface, StrictPartial } from '../../utils/internals.ts';
import type { StrictPartial } from '../../utils/internals.ts';
/**
* https://discord.com/developers/docs/resources/template#get-template
@@ -11,7 +11,7 @@ export type RESTGetAPITemplateResult = APITemplate;
* https://discord.com/developers/docs/resources/template#create-guild-from-template
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPostAPITemplateCreateGuildJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPITemplateCreateGuildJSONBody {
/**
* Name of the guild (2-100 characters)
*/
@@ -21,8 +21,8 @@ export type RESTPostAPITemplateCreateGuildJSONBody = AddUndefinedToPossiblyUndef
*
* See https://discord.com/developers/docs/reference#image-data
*/
icon?: string;
}>;
icon?: string | undefined;
}
/**
* https://discord.com/developers/docs/resources/template#create-guild-from-template
@@ -40,7 +40,7 @@ export type RESTGetAPIGuildTemplatesResult = APITemplate[];
* https://discord.com/developers/docs/resources/template#create-guild-template
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPostAPIGuildTemplatesJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIGuildTemplatesJSONBody {
/**
* Name of the template (1-100 characters)
*/
@@ -48,8 +48,8 @@ export type RESTPostAPIGuildTemplatesJSONBody = AddUndefinedToPossiblyUndefinedP
/**
* Description for the template (0-120 characters)
*/
description?: string | null;
}>;
description?: string | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/template#create-guild-template

View File

@@ -1,6 +1,5 @@
import type { Permissions, Snowflake } from '../../globals.ts';
import type { APIChannel, APIConnection, APIGuildMember, APIUser, GuildFeature } from '../../payloads/v8/mod.ts';
import type { AddUndefinedToPossiblyUndefinedPropertiesOfInterface } from '../../utils/internals.ts';
/**
* https://discord.com/developers/docs/resources/user#get-current-user
@@ -24,16 +23,16 @@ export type RESTGetCurrentUserGuildMemberResult = APIGuildMember;
* https://discord.com/developers/docs/resources/user#modify-current-user
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPatchAPICurrentUserJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPICurrentUserJSONBody {
/**
* User's username, if changed may cause the user's discriminator to be randomized
*/
username?: string;
username?: string | undefined;
/**
* If passed, modifies the user's avatar
*/
avatar?: string | null;
}>;
avatar?: string | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/user#modify-current-user

View File

@@ -15,7 +15,7 @@ import type { AddUndefinedToPossiblyUndefinedPropertiesOfInterface, Nullable } f
* https://discord.com/developers/docs/resources/webhook#create-webhook
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPostAPIChannelWebhookJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIChannelWebhookJSONBody {
/**
* Name of the webhook (1-80 characters)
*/
@@ -25,8 +25,8 @@ export type RESTPostAPIChannelWebhookJSONBody = AddUndefinedToPossiblyUndefinedP
*
* See https://discord.com/developers/docs/reference#image-data
*/
avatar?: string | null;
}>;
avatar?: string | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/webhook#create-webhook
@@ -62,22 +62,22 @@ export type RESTGetAPIWebhookWithTokenResult = Omit<APIWebhook, 'user'>;
* https://discord.com/developers/docs/resources/webhook#modify-webhook
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPatchAPIWebhookJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIWebhookJSONBody {
/**
* The default name of the webhook
*/
name?: string;
name?: string | undefined;
/**
* Image for the default webhook avatar
*
* See https://discord.com/developers/docs/reference#image-data
*/
avatar?: string | null;
avatar?: string | null | undefined;
/**
* The new channel id this webhook should be moved to
*/
channel_id?: Snowflake;
}>;
channel_id?: Snowflake | undefined;
}
/**
* https://discord.com/developers/docs/resources/webhook#modify-webhook
@@ -113,35 +113,35 @@ export type RESTDeleteAPIWebhookWithTokenResult = never;
* https://discord.com/developers/docs/resources/webhook#execute-webhook
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPostAPIWebhookWithTokenJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIWebhookWithTokenJSONBody {
/**
* The message contents (up to 2000 characters)
*/
content?: string;
content?: string | undefined;
/**
* Override the default username of the webhook
*/
username?: string;
username?: string | undefined;
/**
* Override the default avatar of the webhook
*/
avatar_url?: string;
avatar_url?: string | undefined;
/**
* `true` if this is a TTS message
*/
tts?: boolean;
tts?: boolean | undefined;
/**
* Embedded `rich` content
*
* See https://discord.com/developers/docs/resources/channel#embed-object
*/
embeds?: APIEmbed[];
embeds?: APIEmbed[] | undefined;
/**
* Allowed mentions for the message
*
* See https://discord.com/developers/docs/resources/channel#allowed-mentions-object
*/
allowed_mentions?: APIAllowedMentions;
allowed_mentions?: APIAllowedMentions | undefined;
/**
* The components to include with the message
*
@@ -149,16 +149,16 @@ export type RESTPostAPIWebhookWithTokenJSONBody = AddUndefinedToPossiblyUndefine
*
* See https://discord.com/developers/docs/interactions/message-components#component-object
*/
components?: APIActionRowComponent<APIMessageActionRowComponent>[];
components?: APIActionRowComponent<APIMessageActionRowComponent>[] | undefined;
/**
* Attachment objects with filename and description
*/
attachments?: (Pick<APIAttachment, 'id' | 'description'> & Partial<Pick<APIAttachment, 'filename'>>)[];
attachments?: (Pick<APIAttachment, 'id' | 'description'> & Partial<Pick<APIAttachment, 'filename'>>)[] | undefined;
/**
* Message flags combined as a bitfield
*/
flags?: MessageFlags;
}>;
flags?: MessageFlags | undefined;
}
/**
* https://discord.com/developers/docs/resources/webhook#execute-webhook
@@ -169,7 +169,7 @@ export type RESTPostAPIWebhookWithTokenFormDataBody =
/**
* JSON stringified message body
*/
payload_json?: string;
payload_json?: string | undefined;
} & Record<`files[${bigint}]`, unknown>)
| (RESTPostAPIWebhookWithTokenJSONBody & Record<`files[${bigint}]`, unknown>);
@@ -259,17 +259,17 @@ export type RESTGetAPIWebhookWithTokenMessageResult = APIMessage;
* @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10.
*/
export type RESTPatchAPIWebhookWithTokenMessageJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<
Nullable<Pick<RESTPostAPIWebhookWithTokenJSONBody, 'content' | 'embeds' | 'allowed_mentions' | 'components'>> & {
/**
* Attached files to keep
*
* Starting with API v10, the `attachments` array must contain all attachments that should be present after edit, including **retained and new** attachments provided in the request body.
*
* See https://discord.com/developers/docs/resources/channel#attachment-object
*/
attachments?: (Pick<APIAttachment, 'id'> & Partial<Pick<APIAttachment, 'filename' | 'description'>>)[];
}
>;
Nullable<Pick<RESTPostAPIWebhookWithTokenJSONBody, 'content' | 'embeds' | 'allowed_mentions' | 'components'>>
> & {
/**
* Attached files to keep
*
* Starting with API v10, the `attachments` array must contain all attachments that should be present after edit, including **retained and new** attachments provided in the request body.
*
* See https://discord.com/developers/docs/resources/channel#attachment-object
*/
attachments?: (Pick<APIAttachment, 'id'> & Partial<Pick<APIAttachment, 'filename' | 'description'>>)[] | undefined;
};
/**
* https://discord.com/developers/docs/resources/webhook#edit-webhook-message
@@ -280,7 +280,7 @@ export type RESTPatchAPIWebhookWithTokenMessageFormDataBody =
/**
* JSON stringified message body
*/
payload_json?: string;
payload_json?: string | undefined;
} & Record<`files[${bigint}]`, unknown>)
| (RESTPatchAPIWebhookWithTokenMessageJSONBody & Record<`files[${bigint}]`, unknown>);

View File

@@ -6,7 +6,6 @@ import type {
APIAutoModerationRuleTriggerMetadata,
AutoModerationRuleTriggerType,
} from '../../payloads/v9/mod.ts';
import type { AddUndefinedToPossiblyUndefinedPropertiesOfInterface } from '../../utils/internals.ts';
/**
* https://discord.com/developers/docs/resources/auto-moderation#list-auto-moderation-rules-for-guild
@@ -21,7 +20,7 @@ export type RESTGetAPIAutoModerationRuleResult = APIAutoModerationRule;
/**
* https://discord.com/developers/docs/resources/auto-moderation#create-auto-moderation-rule
*/
export type RESTPostAPIAutoModerationRuleJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIAutoModerationRuleJSONBody {
/**
* The rule name
*/
@@ -39,7 +38,7 @@ export type RESTPostAPIAutoModerationRuleJSONBody = AddUndefinedToPossiblyUndefi
*
* Can be omitted if the trigger type is {@link AutoModerationRuleTriggerType.HarmfulLink} or {@link AutoModerationRuleTriggerType.Spam}
*/
trigger_metadata?: APIAutoModerationRuleTriggerMetadata;
trigger_metadata?: APIAutoModerationRuleTriggerMetadata | undefined;
/**
* The actions which will execute when this rule is triggered
*/
@@ -49,16 +48,16 @@ export type RESTPostAPIAutoModerationRuleJSONBody = AddUndefinedToPossiblyUndefi
*
* @default false
*/
enabled?: boolean;
enabled?: boolean | undefined;
/**
* The role ids that shouldn't be affected by this rule (Maximum of 20)
*/
exempt_roles?: Snowflake[];
exempt_roles?: Snowflake[] | undefined;
/**
* The channel ids that shouldn't be affected by this rule (Maximum of 50)
*/
exempt_channels?: Snowflake[];
}>;
exempt_channels?: Snowflake[] | undefined;
}
/**
* https://discord.com/developers/docs/resources/auto-moderation#create-auto-moderation-rule

View File

@@ -38,13 +38,13 @@ export type RESTGetAPIChannelResult = APIChannel;
/**
* https://discord.com/developers/docs/resources/channel#modify-channel
*/
export type RESTPatchAPIChannelJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIChannelJSONBody {
/**
* 1-100 character channel name
*
* Channel types: all
*/
name?: string;
name?: string | undefined;
/**
* The type of channel; only conversion between `text` and `news`
@@ -52,25 +52,25 @@ export type RESTPatchAPIChannelJSONBody = AddUndefinedToPossiblyUndefinedPropert
*
* Channel types: text, news
*/
type?: ChannelType.GuildAnnouncement | ChannelType.GuildText;
type?: ChannelType.GuildAnnouncement | ChannelType.GuildText | undefined;
/**
* The position of the channel in the left-hand listing
*
* Channel types: all excluding newsThread, publicThread, privateThread
*/
position?: number | null;
position?: number | null | undefined;
/**
* 0-1024 character channel topic (0-4096 characters for forum channels)
*
* Channel types: text, news, forum
*/
topic?: string | null;
topic?: string | null | undefined;
/**
* Whether the channel is nsfw
*
* Channel types: text, voice, news, forum
*/
nsfw?: boolean | null;
nsfw?: boolean | null | undefined;
/**
* Amount of seconds a user has to wait before sending another message (0-21600);
* bots, as well as users with the permission `MANAGE_MESSAGES` or `MANAGE_CHANNELS`,
@@ -78,105 +78,105 @@ export type RESTPatchAPIChannelJSONBody = AddUndefinedToPossiblyUndefinedPropert
*
* Channel types: text, newsThread, publicThread, privateThread, forum
*/
rate_limit_per_user?: number | null;
rate_limit_per_user?: number | null | undefined;
/**
* The bitrate (in bits) of the voice channel; 8000 to 96000 (128000 for VIP servers)
*
* Channel types: voice
*/
bitrate?: number | null;
bitrate?: number | null | undefined;
/**
* The user limit of the voice channel; 0 refers to no limit, 1 to 99 refers to a user limit
*
* Channel types: voice
*/
user_limit?: number | null;
user_limit?: number | null | undefined;
/**
* Channel or category-specific permissions
*
* Channel types: all excluding newsThread, publicThread, privateThread
*/
permission_overwrites?: APIChannelPatchOverwrite[] | null;
permission_overwrites?: APIChannelPatchOverwrite[] | null | undefined;
/**
* ID of the new parent category for a channel
*
* Channel types: text, voice, news
*/
parent_id?: Snowflake | null;
parent_id?: Snowflake | null | undefined;
/**
* Voice region id for the voice or stage channel, automatic when set to `null`
*
* See https://discord.com/developers/docs/resources/voice#voice-region-object
*/
rtc_region?: string | null;
rtc_region?: string | null | undefined;
/**
* The camera video quality mode of the voice channel
*
* See https://discord.com/developers/docs/resources/channel#channel-object-video-quality-modes
*/
video_quality_mode?: VideoQualityMode | null;
video_quality_mode?: VideoQualityMode | null | undefined;
/**
* Whether the thread should be archived
*
* Channel types: newsThread, publicThread, privateThread
*/
archived?: boolean;
archived?: boolean | undefined;
/**
* The amount of time in minutes to wait before automatically archiving the thread
*
* Channel types: newsThread, publicThread, privateThread
*/
auto_archive_duration?: ThreadAutoArchiveDuration;
auto_archive_duration?: ThreadAutoArchiveDuration | undefined;
/**
* Whether the thread should be locked
*
* Channel types: newsThread, publicThread, privateThread
*/
locked?: boolean;
locked?: boolean | undefined;
/**
* Default duration for newly created threads, in minutes, to automatically archive the thread after recent activity
*
* Channel types: text, news
*/
default_auto_archive_duration?: ThreadAutoArchiveDuration;
default_auto_archive_duration?: ThreadAutoArchiveDuration | undefined;
/**
* Whether non-moderators can add other non-moderators to the thread
*
* Channel types: privateThread
*/
invitable?: boolean;
invitable?: boolean | undefined;
/**
* The set of tags that can be used in a forum channel; limited to 20
*
* Channel types: forum
*/
available_tags?: APIGuildForumTag[];
available_tags?: APIGuildForumTag[] | undefined;
/**
* The emoji to show in the add reaction button on a thread in a forum channel
*
* Channel types: forum
*/
default_reaction_emoji?: APIGuildForumDefaultReactionEmoji;
default_reaction_emoji?: APIGuildForumDefaultReactionEmoji | undefined;
/**
* The initial `rate_limit_per_user` to set on newly created threads in a channel.
* This field is copied to the thread at creation time and does not live update
*
* Channel types: forum
*/
default_thread_rate_limit_per_user?: number | null;
default_thread_rate_limit_per_user?: number | null | undefined;
/**
* The default sort order type used to order posts in a forum channel
*
* Channel types: forum
*/
default_sort_order?: SortOrderType | null;
default_sort_order?: SortOrderType | null | undefined;
/**
* The default layout type used to display posts in a forum channel
*
* Channel types: forum
*/
default_forum_layout?: ForumLayoutType;
}>;
default_forum_layout?: ForumLayoutType | undefined;
}
/**
* https://discord.com/developers/docs/resources/channel#modify-channel
@@ -226,78 +226,77 @@ export type RESTGetAPIChannelMessageResult = APIMessage;
* https://discord.com/developers/docs/resources/channel#message-reference-object-message-reference-structure
*/
export type APIMessageReferenceSend = StrictPartial<APIMessageReference> &
Required<Pick<APIMessageReference, 'message_id'>> &
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<Required<Pick<APIMessageReference, 'message_id'>>> & {
/**
* Whether to error if the referenced message doesn't exist instead of sending as a normal (non-reply) message
*
* @default true
*/
fail_if_not_exists?: boolean;
}>;
fail_if_not_exists?: boolean | undefined;
};
/**
* https://discord.com/developers/docs/resources/channel#create-message
*/
export type RESTPostAPIChannelMessageJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIChannelMessageJSONBody {
/**
* The message contents (up to 2000 characters)
*/
content?: string;
content?: string | undefined;
/**
* A nonce that can be used for optimistic message sending
*/
nonce?: number | string;
nonce?: number | string | undefined;
/**
* `true` if this is a TTS message
*/
tts?: boolean;
tts?: boolean | undefined;
/**
* Embedded `rich` content (up to 6000 characters)
*
* See https://discord.com/developers/docs/resources/channel#embed-object
*/
embeds?: APIEmbed[];
embeds?: APIEmbed[] | undefined;
/**
* Embedded `rich` content
*
* See https://discord.com/developers/docs/resources/channel#embed-object
* @deprecated Use `embeds` instead
*/
embed?: APIEmbed;
embed?: APIEmbed | undefined;
/**
* Allowed mentions for a message
*
* See https://discord.com/developers/docs/resources/channel#allowed-mentions-object
*/
allowed_mentions?: APIAllowedMentions;
allowed_mentions?: APIAllowedMentions | undefined;
/**
* Include to make your message a reply
*
* See https://discord.com/developers/docs/resources/channel#message-reference-object-message-reference-structure
*/
message_reference?: APIMessageReferenceSend;
message_reference?: APIMessageReferenceSend | undefined;
/**
* The components to include with the message
*
* See https://discord.com/developers/docs/interactions/message-components#component-object
*/
components?: APIActionRowComponent<APIMessageActionRowComponent>[];
components?: APIActionRowComponent<APIMessageActionRowComponent>[] | undefined;
/**
* IDs of up to 3 stickers in the server to send in the message
*
* See https://discord.com/developers/docs/resources/sticker#sticker-object
*/
sticker_ids?: [Snowflake] | [Snowflake, Snowflake] | [Snowflake, Snowflake, Snowflake];
sticker_ids?: [Snowflake] | [Snowflake, Snowflake] | [Snowflake, Snowflake, Snowflake] | undefined;
/**
* Attachment objects with filename and description
*/
attachments?: (Pick<APIAttachment, 'id' | 'description'> & Partial<Pick<APIAttachment, 'filename'>>)[];
attachments?: (Pick<APIAttachment, 'id' | 'description'> & Partial<Pick<APIAttachment, 'filename'>>)[] | undefined;
/**
* Message flags combined as a bitfield
*/
flags?: MessageFlags;
}>;
flags?: MessageFlags | undefined;
}
/**
* https://discord.com/developers/docs/resources/channel#create-message
@@ -307,7 +306,7 @@ export type RESTPostAPIChannelMessageFormDataBody =
/**
* JSON stringified message body
*/
payload_json?: string;
payload_json?: string | undefined;
} & Record<`files[${bigint}]`, unknown>)
| (RESTPostAPIChannelMessageJSONBody & Record<`files[${bigint}]`, unknown>);
@@ -370,24 +369,24 @@ export type RESTDeleteAPIChannelMessageReactionResult = never;
/**
* https://discord.com/developers/docs/resources/channel#edit-message
*/
export type RESTPatchAPIChannelMessageJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIChannelMessageJSONBody {
/**
* The new message contents (up to 2000 characters)
*/
content?: string | null;
content?: string | null | undefined;
/**
* Embedded `rich` content (up to 6000 characters)
*
* See https://discord.com/developers/docs/resources/channel#embed-object
*/
embeds?: APIEmbed[] | null;
embeds?: APIEmbed[] | null | undefined;
/**
* Embedded `rich` content
*
* See https://discord.com/developers/docs/resources/channel#embed-object
* @deprecated Use `embeds` instead
*/
embed?: APIEmbed | null;
embed?: APIEmbed | null | undefined;
/**
* Edit the flags of a message (only `SUPPRESS_EMBEDS` can currently be set/unset)
*
@@ -396,13 +395,13 @@ export type RESTPatchAPIChannelMessageJSONBody = AddUndefinedToPossiblyUndefined
*
* See https://discord.com/developers/docs/resources/channel#message-object-message-flags
*/
flags?: MessageFlags | null;
flags?: MessageFlags | null | undefined;
/**
* Allowed mentions for the message
*
* See https://discord.com/developers/docs/resources/channel#allowed-mentions-object
*/
allowed_mentions?: APIAllowedMentions | null;
allowed_mentions?: APIAllowedMentions | null | undefined;
/**
* Attached files to keep
*
@@ -410,14 +409,14 @@ export type RESTPatchAPIChannelMessageJSONBody = AddUndefinedToPossiblyUndefined
*
* See https://discord.com/developers/docs/resources/channel#attachment-object
*/
attachments?: (Pick<APIAttachment, 'id'> & Partial<Pick<APIAttachment, 'filename' | 'description'>>)[];
attachments?: (Pick<APIAttachment, 'id'> & Partial<Pick<APIAttachment, 'filename' | 'description'>>)[] | undefined;
/**
* The components to include with the message
*
* See https://discord.com/developers/docs/interactions/message-components#component-object
*/
components?: APIActionRowComponent<APIMessageActionRowComponent>[] | null;
}>;
components?: APIActionRowComponent<APIMessageActionRowComponent>[] | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/channel#edit-message
@@ -427,7 +426,7 @@ export type RESTPatchAPIChannelMessageFormDataBody =
/**
* JSON stringified message body
*/
payload_json?: string;
payload_json?: string | undefined;
} & Record<`files[${bigint}]`, unknown>)
| (RESTPatchAPIChannelMessageJSONBody & Record<`files[${bigint}]`, unknown>);
@@ -467,7 +466,7 @@ export interface RESTPutAPIChannelPermissionJSONBody {
*
* @default "0"
*/
allow?: Permissions | null;
allow?: Permissions | null | undefined;
/**
* The bitwise value of all disallowed permissions
*
@@ -475,7 +474,7 @@ export interface RESTPutAPIChannelPermissionJSONBody {
*
* @default "0"
*/
deny?: Permissions | null;
deny?: Permissions | null | undefined;
/**
* `0` for a role or `1` for a member
*/
@@ -495,51 +494,51 @@ export type RESTGetAPIChannelInvitesResult = APIExtendedInvite[];
/**
* https://discord.com/developers/docs/resources/channel#create-channel-invite
*/
export type RESTPostAPIChannelInviteJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIChannelInviteJSONBody {
/**
* Duration of invite in seconds before expiry, or 0 for never
*
* @default 86400 (24 hours)
*/
max_age?: number;
max_age?: number | undefined;
/**
* Max number of uses or 0 for unlimited
*
* @default 0
*/
max_uses?: number;
max_uses?: number | undefined;
/**
* Whether this invite only grants temporary membership
*
* @default false
*/
temporary?: boolean;
temporary?: boolean | undefined;
/**
* If true, don't try to reuse a similar invite
* (useful for creating many unique one time use invites)
*
* @default false
*/
unique?: boolean;
unique?: boolean | undefined;
/**
* The type of target for this voice channel invite
*
* See https://discord.com/developers/docs/resources/invite#invite-object-invite-target-types
*/
target_type?: InviteTargetType;
target_type?: InviteTargetType | undefined;
/**
* The id of the user whose stream to display for this invite
* - Required if `target_type` is 1
* - The user must be streaming in the channel
*/
target_user_id?: Snowflake;
target_user_id?: Snowflake | undefined;
/**
* The id of the embedded application to open for this invite
* - Required if `target_type` is 2
* - The application must have the `EMBEDDED` flag
*/
target_application_id?: Snowflake;
}>;
target_application_id?: Snowflake | undefined;
}
/**
* https://discord.com/developers/docs/resources/channel#create-channel-invite
@@ -589,7 +588,7 @@ export type RESTDeleteAPIChannelPinResult = never;
/**
* https://discord.com/developers/docs/resources/channel#group-dm-add-recipient
*/
export type RESTPutAPIChannelRecipientJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPutAPIChannelRecipientJSONBody {
/**
* Access token of a user that has granted your app the `gdm.join` scope
*/
@@ -597,8 +596,8 @@ export type RESTPutAPIChannelRecipientJSONBody = AddUndefinedToPossiblyUndefined
/**
* Nickname of the user being added
*/
nick?: string;
}>;
nick?: string | undefined;
}
/**
* https://discord.com/developers/docs/resources/channel#group-dm-add-recipient
@@ -613,7 +612,7 @@ export type RESTDeleteAPIChannelRecipientResult = unknown;
/**
* https://discord.com/developers/docs/resources/channel#start-thread-from-message
*/
export type RESTPostAPIChannelMessagesThreadsJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIChannelMessagesThreadsJSONBody {
/**
* 1-100 character thread name
*/
@@ -623,12 +622,12 @@ export type RESTPostAPIChannelMessagesThreadsJSONBody = AddUndefinedToPossiblyUn
*
* The 3 day and 7 day archive durations require the server to be boosted. The [guild features](https://discord.com/developers/docs/resources/guild#guild-object-guild-features) will indicate if a server is able to use those settings.
*/
auto_archive_duration: ThreadAutoArchiveDuration;
auto_archive_duration?: ThreadAutoArchiveDuration | undefined;
/**
* Amount of seconds a user has to wait before sending another message (0-21600)
*/
rate_limit_per_user?: number;
}>;
rate_limit_per_user?: number | undefined;
}
/**
* https://discord.com/developers/docs/resources/channel#start-thread-in-forum-channel
@@ -641,7 +640,7 @@ export type RESTPostAPIGuildForumThreadsJSONBody = RESTPostAPIChannelMessagesThr
/**
* The IDs of the set of tags that have been applied to a thread in a forum channel; limited to 5
*/
applied_tags?: Snowflake[];
applied_tags?: Snowflake[] | undefined;
};
/**
@@ -662,24 +661,23 @@ export type RESTPostAPIChannelMessagesThreadsResult = APIChannel;
/**
* https://discord.com/developers/docs/resources/channel#start-thread-without-message
*/
export type RESTPostAPIChannelThreadsJSONBody = RESTPostAPIChannelMessagesThreadsJSONBody &
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
/**
* The type of thread to create
*
* In API v9, `type` defaults to `PRIVATE_THREAD`.
* In a future API version this will be changed to be a required field, with no default.
*
* See https://discord.com/developers/docs/resources/channel#channel-object-channel-types
*
* @default ChannelType.PrivateThread
*/
type?: ChannelType.AnnouncementThread | ChannelType.PublicThread | ChannelType.PrivateThread;
/**
* Whether non-moderators can add other non-moderators to the thread; only available when creating a private thread
*/
invitable?: boolean;
}>;
export interface RESTPostAPIChannelThreadsJSONBody extends RESTPostAPIChannelMessagesThreadsJSONBody {
/**
* The type of thread to create
*
* In API v9, `type` defaults to `PRIVATE_THREAD`.
* In a future API version this will be changed to be a required field, with no default.
*
* See https://discord.com/developers/docs/resources/channel#channel-object-channel-types
*
* @default ChannelType.PrivateThread
*/
type?: ChannelType.AnnouncementThread | ChannelType.PublicThread | ChannelType.PrivateThread | undefined;
/**
* Whether non-moderators can add other non-moderators to the thread; only available when creating a private thread
*/
invitable?: boolean | undefined;
}
/**
* https://discord.com/developers/docs/resources/channel#start-thread-without-message
@@ -696,6 +694,39 @@ export type RESTPutAPIChannelThreadMembersResult = never;
*/
export type RESTDeleteAPIChannelThreadMembersResult = never;
/**
* https://discord.com/developers/docs/resources/channel#get-thread-member
*/
export interface RESTGetAPIChannelThreadMemberQuery {
/**
* Whether to include a guild member object for the thread member
*/
with_member?: boolean;
}
/**
* https://discord.com/developers/docs/resources/channel#get-thread-member
*/
export type RESTGetAPIChannelThreadMemberResult = APIThreadMember;
/**
* https://discord.com/developers/docs/resources/channel#list-thread-members
*/
export interface RESTGetAPIChannelThreadMembersQuery {
/**
* Whether to include a guild member object for each thread member
*/
with_member?: boolean;
/**
* Get thread members after this user ID
*/
after?: Snowflake;
/**
* Max number of thread members to return (1-100). Defaults to 100
*/
limit?: number;
}
/**
* https://discord.com/developers/docs/resources/channel#list-thread-members
*/

View File

@@ -1,6 +1,5 @@
import type { Snowflake } from '../../globals.ts';
import type { APIEmoji } from '../../payloads/v9/mod.ts';
import type { AddUndefinedToPossiblyUndefinedPropertiesOfInterface } from '../../utils/internals.ts';
/**
* https://discord.com/developers/docs/resources/emoji#list-guild-emojis
@@ -15,7 +14,7 @@ export type RESTGetAPIGuildEmojiResult = APIEmoji;
/**
* https://discord.com/developers/docs/resources/emoji#create-guild-emoji-json-params
*/
export type RESTPostAPIGuildEmojiJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIGuildEmojiJSONBody {
/**
* Name of the emoji
*/
@@ -29,8 +28,8 @@ export type RESTPostAPIGuildEmojiJSONBody = AddUndefinedToPossiblyUndefinedPrope
/**
* Roles for which this emoji will be whitelisted
*/
roles?: Snowflake[];
}>;
roles?: Snowflake[] | undefined;
}
/**
* https://discord.com/developers/docs/resources/emoji#create-guild-emoji
@@ -40,16 +39,16 @@ export type RESTPostAPIGuildEmojiResult = APIEmoji;
/**
* https://discord.com/developers/docs/resources/emoji#modify-guild-emoji
*/
export type RESTPatchAPIGuildEmojiJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIGuildEmojiJSONBody {
/**
* Name of the emoji
*/
name?: string;
name?: string | undefined;
/**
* Roles for which this emoji will be whitelisted
*/
roles?: Snowflake[] | null;
}>;
roles?: Snowflake[] | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/emoji#modify-guild-emoji

View File

@@ -26,7 +26,6 @@ import type {
APIGroupDMChannel,
} from '../../payloads/v9/mod.ts';
import type {
AddUndefinedToPossiblyUndefinedPropertiesOfInterface,
DistributiveOmit,
DistributivePick,
Nullable,
@@ -57,14 +56,14 @@ export type APIGuildCreatePartialChannel = StrictPartial<
| 'available_tags'
| 'default_sort_order'
| 'default_forum_layout'
| 'default_thread_rate_limit_per_user'
>
> &
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
name: string;
id?: number | string;
parent_id?: number | string | null;
permission_overwrites?: APIGuildCreateOverwrite[];
}>;
> & {
name: string;
id?: number | string | undefined;
parent_id?: number | string | null | undefined;
permission_overwrites?: APIGuildCreateOverwrite[] | undefined;
};
export interface APIGuildCreateRole extends RESTPostAPIGuildRoleJSONBody {
id: number | string;
@@ -73,7 +72,7 @@ export interface APIGuildCreateRole extends RESTPostAPIGuildRoleJSONBody {
/**
* https://discord.com/developers/docs/resources/guild#create-guild
*/
export type RESTPostAPIGuildsJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIGuildsJSONBody {
/**
* Name of the guild (2-100 characters)
*/
@@ -83,31 +82,31 @@ export type RESTPostAPIGuildsJSONBody = AddUndefinedToPossiblyUndefinedPropertie
*
* See https://discord.com/developers/docs/resources/voice#voice-region-object
*/
region?: string;
region?: string | undefined;
/**
* base64 1024x1024 png/jpeg image for the guild icon
*
* See https://discord.com/developers/docs/reference#image-data
*/
icon?: string;
icon?: string | undefined;
/**
* Verification level
*
* See https://discord.com/developers/docs/resources/guild#guild-object-verification-level
*/
verification_level?: GuildVerificationLevel;
verification_level?: GuildVerificationLevel | undefined;
/**
* Default message notification level
*
* See https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level
*/
default_message_notifications?: GuildDefaultMessageNotifications;
default_message_notifications?: GuildDefaultMessageNotifications | undefined;
/**
* Explicit content filter level
*
* See https://discord.com/developers/docs/resources/guild#guild-object-explicit-content-filter-level
*/
explicit_content_filter?: GuildExplicitContentFilter;
explicit_content_filter?: GuildExplicitContentFilter | undefined;
/**
* New guild roles
*
@@ -120,7 +119,7 @@ export type RESTPostAPIGuildsJSONBody = AddUndefinedToPossiblyUndefinedPropertie
*
* See https://discord.com/developers/docs/topics/permissions#role-object
*/
roles?: APIGuildCreateRole[];
roles?: APIGuildCreateRole[] | undefined;
/**
* New guild's channels
*
@@ -133,30 +132,30 @@ export type RESTPostAPIGuildsJSONBody = AddUndefinedToPossiblyUndefinedPropertie
*
* See https://discord.com/developers/docs/resources/channel#channel-object
*/
channels?: APIGuildCreatePartialChannel[];
channels?: APIGuildCreatePartialChannel[] | undefined;
/**
* ID for afk channel
*/
afk_channel_id?: number | Snowflake | null;
afk_channel_id?: number | Snowflake | null | undefined;
/**
* afk timeout in seconds, can be set to: `60`, `300`, `900`, `1800`, `3600`
*/
afk_timeout?: 60 | 300 | 900 | 1800 | 3600;
afk_timeout?: 60 | 300 | 900 | 1800 | 3600 | undefined;
/**
* The id of the channel where guild notices such as welcome messages and boost events are posted
*/
system_channel_id?: number | Snowflake | null;
system_channel_id?: number | Snowflake | null | undefined;
/**
* System channel flags
*
* See https://discord.com/developers/docs/resources/guild#guild-object-system-channel-flags
*/
system_channel_flags?: GuildSystemChannelFlags;
system_channel_flags?: GuildSystemChannelFlags | undefined;
/**
* Whether the boosts progress bar should be enabled.
*/
premium_progress_bar_enabled?: boolean;
}>;
premium_progress_bar_enabled?: boolean | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#create-guild
@@ -205,106 +204,106 @@ export type RESTGetAPIGuildPreviewResult = APIGuildPreview;
/**
* https://discord.com/developers/docs/resources/guild#modify-guild
*/
export type RESTPatchAPIGuildJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIGuildJSONBody {
/**
* New name for the guild (2-100 characters)
*/
name?: string;
name?: string | undefined;
/**
* Voice region id
*
* See https://discord.com/developers/docs/resources/voice#voice-region-object
*/
region?: string | null;
region?: string | null | undefined;
/**
* Verification level
*
* See https://discord.com/developers/docs/resources/guild#guild-object-verification-level
*/
verification_level?: GuildVerificationLevel | null;
verification_level?: GuildVerificationLevel | null | undefined;
/**
* Default message notification level
*
* See https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level
*/
default_message_notifications?: GuildDefaultMessageNotifications | null;
default_message_notifications?: GuildDefaultMessageNotifications | null | undefined;
/**
* Explicit content filter level
*
* See https://discord.com/developers/docs/resources/guild#guild-object-explicit-content-filter-level
*/
explicit_content_filter?: GuildExplicitContentFilter | null;
explicit_content_filter?: GuildExplicitContentFilter | null | undefined;
/**
* ID for afk channel
*/
afk_channel_id?: Snowflake | null;
afk_channel_id?: Snowflake | null | undefined;
/**
* afk timeout in seconds, can be set to: `60`, `300`, `900`, `1800`, `3600`
*/
afk_timeout?: 60 | 300 | 900 | 1800 | 3600;
afk_timeout?: 60 | 300 | 900 | 1800 | 3600 | undefined;
/**
* base64 1024x1024 png/jpeg/gif image for the guild icon (can be animated gif when the guild has `ANIMATED_ICON` feature)
*
* See https://discord.com/developers/docs/reference#image-data
*/
icon?: string | null;
icon?: string | null | undefined;
/**
* User id to transfer guild ownership to (must be owner)
*/
owner_id?: Snowflake;
owner_id?: Snowflake | undefined;
/**
* base64 16:9 png/jpeg image for the guild splash (when the guild has `INVITE_SPLASH` feature)
*
* See https://discord.com/developers/docs/reference#image-data
*/
splash?: string | null;
splash?: string | null | undefined;
/**
* base64 png/jpeg image for the guild discovery splash (when the guild has `DISCOVERABLE` feature)
*/
discovery_splash?: string | null;
discovery_splash?: string | null | undefined;
/**
* base64 16:9 png/jpeg image for the guild banner (when the server has the `BANNER` feature; can be animated gif when the server has the `ANIMATED_BANNER` feature)
*/
banner?: string | null;
banner?: string | null | undefined;
/**
* The id of the channel where guild notices such as welcome messages and boost events are posted
*/
system_channel_id?: Snowflake | null;
system_channel_id?: Snowflake | null | undefined;
/**
* System channel flags
*
* See https://discord.com/developers/docs/resources/guild#guild-object-system-channel-flags
*/
system_channel_flags?: GuildSystemChannelFlags;
system_channel_flags?: GuildSystemChannelFlags | undefined;
/**
* The id of the channel where Community guilds display rules and/or guidelines
*/
rules_channel_id?: Snowflake | null;
rules_channel_id?: Snowflake | null | undefined;
/**
* The id of the channel where admins and moderators of Community guilds receive notices from Discord
*/
public_updates_channel_id?: Snowflake | null;
public_updates_channel_id?: Snowflake | null | undefined;
/**
* The preferred locale of a Community guild used in server discovery and notices from Discord; defaults to "en-US"
*
* @default "en-US" (if the value is set to `null`)
*/
preferred_locale?: string | null;
preferred_locale?: string | null | undefined;
/**
* Enabled guild features
*
* See https://discord.com/developers/docs/resources/guild#guild-object-guild-features
*/
features?: GuildFeature[];
features?: GuildFeature[] | undefined;
/**
* The description for the guild
*/
description?: string | null;
description?: string | null | undefined;
/**
* Whether the boosts progress bar should be enabled.
*/
premium_progress_bar_enabled?: boolean;
}>;
premium_progress_bar_enabled?: boolean | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#modify-guild
@@ -334,26 +333,24 @@ export type RESTPostAPIGuildChannelResult = APIChannel;
/**
* https://discord.com/developers/docs/resources/guild#modify-guild-channel-positions
*/
export type RESTPatchAPIGuildChannelPositionsJSONBody = Array<
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
/**
* Channel id
*/
id: Snowflake;
/**
* Sorting position of the channel
*/
position: number;
/**
* Sync channel overwrites with the new parent, when moving to a new `parent_id`
*/
lock_permissions?: boolean;
/**
* The new parent id of this channel
*/
parent_id?: Snowflake | null;
}>
>;
export type RESTPatchAPIGuildChannelPositionsJSONBody = Array<{
/**
* Channel id
*/
id: Snowflake;
/**
* Sorting position of the channel
*/
position: number;
/**
* Sync channel overwrites with the new parent, when moving to a new `parent_id`
*/
lock_permissions?: boolean | undefined;
/**
* The new parent id of this channel
*/
parent_id?: Snowflake | null | undefined;
}>;
/**
* https://discord.com/developers/docs/resources/guild#modify-guild-channel-positions
@@ -414,7 +411,7 @@ export type RESTGetAPIGuildMembersSearchResult = APIGuildMember[];
/**
* https://discord.com/developers/docs/resources/guild#add-guild-member
*/
export type RESTPutAPIGuildMemberJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPutAPIGuildMemberJSONBody {
/**
* An oauth2 access token granted with the `guilds.join` to the bot's application for the user you want to add to the guild
*/
@@ -424,68 +421,68 @@ export type RESTPutAPIGuildMemberJSONBody = AddUndefinedToPossiblyUndefinedPrope
*
* Requires `MANAGE_NICKNAMES` permission
*/
nick?: string;
nick?: string | undefined;
/**
* Array of role ids the member is assigned
*
* Requires `MANAGE_ROLES` permission
*/
roles?: Snowflake[];
roles?: Snowflake[] | undefined;
/**
* Whether the user is muted in voice channels
*
* Requires `MUTE_MEMBERS` permission
*/
mute?: boolean;
mute?: boolean | undefined;
/**
* Whether the user is deafened in voice channels
*
* Requires `DEAFEN_MEMBERS` permission
*/
deaf?: boolean;
}>;
deaf?: boolean | undefined;
}
export type RESTPutAPIGuildMemberResult = APIGuildMember | never;
/**
* https://discord.com/developers/docs/resources/guild#modify-guild-member
*/
export type RESTPatchAPIGuildMemberJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIGuildMemberJSONBody {
/**
* Value to set users nickname to
*
* Requires `MANAGE_NICKNAMES` permission
*/
nick?: string | null;
nick?: string | null | undefined;
/**
* Array of role ids the member is assigned
*
* Requires `MANAGE_ROLES` permission
*/
roles?: Snowflake[] | null;
roles?: Snowflake[] | null | undefined;
/**
* Whether the user is muted in voice channels. Will throw a 400 if the user is not in a voice channel
*
* Requires `MUTE_MEMBERS` permission
*/
mute?: boolean | null;
mute?: boolean | null | undefined;
/**
* Whether the user is deafened in voice channels. Will throw a 400 if the user is not in a voice channel
*
* Requires `DEAFEN_MEMBERS` permission
*/
deaf?: boolean | null;
deaf?: boolean | null | undefined;
/**
* ID of channel to move user to (if they are connected to voice)
*
* Requires `MOVE_MEMBERS` permission
*/
channel_id?: Snowflake | null;
channel_id?: Snowflake | null | undefined;
/**
* Timestamp of when the time out will be removed; until then, they cannot interact with the guild
*/
communication_disabled_until?: string | null;
}>;
communication_disabled_until?: string | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#add-guild-member
@@ -497,26 +494,26 @@ export type RESTPatchAPIGuildMemberResult = APIGuildMember;
*
* @deprecated Use [Modify Current Member](https://discord.com/developers/docs/resources/guild#modify-current-member) instead.
*/
export type RESTPatchAPICurrentGuildMemberNicknameJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPICurrentGuildMemberNicknameJSONBody {
/**
* Value to set users nickname to
*
* Requires `CHANGE_NICKNAME` permission
*/
nick?: string | null;
}>;
nick?: string | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#modify-current-member
*/
export type RESTPatchAPICurrentGuildMemberJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPICurrentGuildMemberJSONBody {
/**
* Value to set users nickname to
*
* Requires `CHANGE_NICKNAME` permission
*/
nick?: string | null;
}>;
nick?: string | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#modify-current-user-nick
@@ -574,24 +571,24 @@ export type RESTGetAPIGuildBanResult = APIBan;
/**
* https://discord.com/developers/docs/resources/guild#create-guild-ban
*/
export type RESTPutAPIGuildBanJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPutAPIGuildBanJSONBody {
/**
* Number of days to delete messages for (0-7)
*
* @deprecated use `delete_message_seconds` instead
*/
delete_message_days?: number;
delete_message_days?: number | undefined;
/**
* Number of seconds to delete messages for, between 0 and 604800 (7 days)
*/
delete_message_seconds?: number;
delete_message_seconds?: number | undefined;
/**
* Reason for the ban
*
* @deprecated Removed in API v10, use the `X-Audit-Log-Reason` header instead.
*/
reason?: string;
}>;
reason?: string | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#create-guild-ban
@@ -611,46 +608,46 @@ export type RESTGetAPIGuildRolesResult = APIRole[];
/**
* https://discord.com/developers/docs/resources/guild#create-guild-role
*/
export type RESTPostAPIGuildRoleJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIGuildRoleJSONBody {
/**
* Name of the role
*
* @default "new role"
*/
name?: string | null;
name?: string | null | undefined;
/**
* Bitwise value of the enabled/disabled permissions
*
* @default "default role permissions in guild"
*/
permissions?: Permissions | null;
permissions?: Permissions | null | undefined;
/**
* RGB color value
*
* @default 0
*/
color?: number | null;
color?: number | null | undefined;
/**
* Whether the role should be displayed separately in the sidebar
*
* @default false
*/
hoist?: boolean | null;
hoist?: boolean | null | undefined;
/**
* The role's icon image (if the guild has the `ROLE_ICONS` feature)
*/
icon?: string | null;
icon?: string | null | undefined;
/**
* The role's unicode emoji as a standard emoji (if the guild has the `ROLE_ICONS` feature)
*/
unicode_emoji?: string | null;
unicode_emoji?: string | null | undefined;
/**
* Whether the role should be mentionable
*
* @default false
*/
mentionable?: boolean | null;
}>;
mentionable?: boolean | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#create-guild-role
@@ -660,18 +657,16 @@ export type RESTPostAPIGuildRoleResult = APIRole;
/**
* https://discord.com/developers/docs/resources/guild#modify-guild-role-positions
*/
export type RESTPatchAPIGuildRolePositionsJSONBody = Array<
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
/**
* Role id
*/
id: Snowflake;
/**
* Sorting position of the role
*/
position?: number;
}>
>;
export type RESTPatchAPIGuildRolePositionsJSONBody = Array<{
/**
* Role id
*/
id: Snowflake;
/**
* Sorting position of the role
*/
position?: number | undefined;
}>;
/**
* https://discord.com/developers/docs/resources/guild#modify-guild-role-positions
@@ -681,36 +676,36 @@ export type RESTPatchAPIGuildRolePositionsResult = APIRole[];
/**
* https://discord.com/developers/docs/resources/guild#modify-guild-role
*/
export type RESTPatchAPIGuildRoleJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIGuildRoleJSONBody {
/**
* Name of the role
*/
name?: string | null;
name?: string | null | undefined;
/**
* Bitwise value of the enabled/disabled permissions
*/
permissions?: Permissions | null;
permissions?: Permissions | null | undefined;
/**
* RGB color value
*/
color?: number | null;
color?: number | null | undefined;
/**
* Whether the role should be displayed separately in the sidebar
*/
hoist?: boolean | null;
hoist?: boolean | null | undefined;
/**
* The role's icon image (if the guild has the `ROLE_ICONS` feature)
*/
icon?: string | null;
icon?: string | null | undefined;
/**
* The role's unicode emoji as a standard emoji (if the guild has the `ROLE_ICONS` feature)
*/
unicode_emoji?: string | null;
unicode_emoji?: string | null | undefined;
/**
* Whether the role should be mentionable
*/
mentionable?: boolean | null;
}>;
mentionable?: boolean | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#modify-guild-role
@@ -753,24 +748,24 @@ export interface RESTGetAPIGuildPruneCountResult {
/**
* https://discord.com/developers/docs/resources/guild#begin-guild-prune
*/
export type RESTPostAPIGuildPruneJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIGuildPruneJSONBody {
/**
* Number of days to count prune for (1 or more)
*
* @default 7
*/
days?: number;
days?: number | undefined;
/**
* Whether `pruned is returned, discouraged for large guilds
*
* @default true
*/
compute_prune_count?: boolean;
compute_prune_count?: boolean | undefined;
/**
* Role(s) to include
*/
include_roles?: Snowflake[];
}>;
include_roles?: Snowflake[] | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#begin-guild-prune
@@ -847,40 +842,40 @@ export type RESTGetAPIGuildWidgetImageResult = ArrayBuffer;
export type RESTGetAPIGuildMemberVerificationResult = APIGuildMembershipScreening;
export type RESTPatchAPIGuildMemberVerificationJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIGuildMemberVerificationJSONBody {
/**
* Whether Membership Screening is enabled
*/
enabled?: boolean;
enabled?: boolean | undefined;
/**
* Array of field objects serialized in a string
*/
form_fields?: string;
form_fields?: string | undefined;
/**
* The server description to show in the screening form
*/
description?: string | null;
}>;
description?: string | null | undefined;
}
export type RESTPatchAPIGuildMemberVerificationResult = APIGuildMembershipScreening;
/**
* https://discord.com/developers/docs/resources/guild#modify-current-user-voice-state
*/
export type RESTPatchAPIGuildVoiceStateCurrentMemberJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIGuildVoiceStateCurrentMemberJSONBody {
/**
* The id of the channel the user is currently in
*/
channel_id?: Snowflake;
channel_id?: Snowflake | undefined;
/**
* Toggles the user's suppress state
*/
suppress?: boolean;
suppress?: boolean | undefined;
/**
* Sets the user's request to speak
*/
request_to_speak_timestamp?: string | null;
}>;
request_to_speak_timestamp?: string | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#modify-current-user-voice-state
@@ -890,7 +885,7 @@ export type RESTPatchAPIGuildVoiceStateCurrentMemberResult = never;
/**
* https://discord.com/developers/docs/resources/guild#modify-user-voice-state
*/
export type RESTPatchAPIGuildVoiceStateUserJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIGuildVoiceStateUserJSONBody {
/**
* The id of the channel the user is currently in
*/
@@ -898,8 +893,8 @@ export type RESTPatchAPIGuildVoiceStateUserJSONBody = AddUndefinedToPossiblyUnde
/**
* Toggles the user's suppress state
*/
suppress?: boolean;
}>;
suppress?: boolean | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild#modify-user-voice-state
@@ -914,13 +909,12 @@ export type RESTGetAPIGuildWelcomeScreenResult = APIGuildWelcomeScreen;
/**
* https://discord.com/developers/docs/resources/guild#modify-guild-welcome-screen
*/
export type RESTPatchAPIGuildWelcomeScreenJSONBody = Nullable<StrictPartial<APIGuildWelcomeScreen>> &
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
/**
* Whether the welcome screen is enabled
*/
enabled?: boolean | null;
}>;
export type RESTPatchAPIGuildWelcomeScreenJSONBody = Nullable<StrictPartial<APIGuildWelcomeScreen>> & {
/**
* Whether the welcome screen is enabled
*/
enabled?: boolean | null | undefined;
};
/**
* https://discord.com/developers/docs/resources/guild#modify-guild-welcome-screen

View File

@@ -1,5 +1,5 @@
import type { Snowflake } from '../../globals.ts';
import type { AddUndefinedToPossiblyUndefinedPropertiesOfInterface, StrictPartial } from '../../utils/internals.ts';
import type { StrictPartial } from '../../utils/internals.ts';
import type {
APIGuildScheduledEvent,
GuildScheduledEventEntityType,
@@ -27,11 +27,11 @@ export type RESTGetAPIGuildScheduledEventsResult = APIGuildScheduledEvent[];
/**
* https://discord.com/developers/docs/resources/guild-scheduled-event#create-guild-scheduled-event
*/
export type RESTPostAPIGuildScheduledEventJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIGuildScheduledEventJSONBody {
/**
* The stage channel id of the guild event
*/
channel_id?: Snowflake;
channel_id?: Snowflake | undefined;
/**
* The name of the guild event
*/
@@ -47,24 +47,24 @@ export type RESTPostAPIGuildScheduledEventJSONBody = AddUndefinedToPossiblyUndef
/**
* The time when the scheduled event is scheduled to end
*/
scheduled_end_time?: string;
scheduled_end_time?: string | undefined;
/**
* The description of the guild event
*/
description?: string;
description?: string | undefined;
/**
* The scheduled entity type of the guild event
*/
entity_type?: GuildScheduledEventEntityType;
entity_type?: GuildScheduledEventEntityType | undefined;
/**
* The entity metadata of the scheduled event
*/
entity_metadata?: APIGuildScheduledEventEntityMetadata;
entity_metadata?: APIGuildScheduledEventEntityMetadata | undefined;
/**
* The cover image of the scheduled event
*/
image?: string | null;
}>;
image?: string | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild-scheduled-event#create-guild-scheduled-event
@@ -89,21 +89,20 @@ export type RESTGetAPIGuildScheduledEventResult = APIGuildScheduledEvent;
/**
* https://discord.com/developers/docs/resources/guild-scheduled-event#modify-guild-scheduled-event
*/
export type RESTPatchAPIGuildScheduledEventJSONBody = StrictPartial<RESTPostAPIGuildScheduledEventJSONBody> &
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
/**
* The status of the scheduled event
*/
status?: GuildScheduledEventStatus;
/**
* The entity metadata of the scheduled event
*/
entity_metadata?: APIGuildScheduledEventEntityMetadata | null;
/**
* The description of the guild event
*/
description?: string | null;
}>;
export type RESTPatchAPIGuildScheduledEventJSONBody = StrictPartial<RESTPostAPIGuildScheduledEventJSONBody> & {
/**
* The status of the scheduled event
*/
status?: GuildScheduledEventStatus | undefined;
/**
* The entity metadata of the scheduled event
*/
entity_metadata?: APIGuildScheduledEventEntityMetadata | null | undefined;
/**
* The description of the guild event
*/
description?: string | null | undefined;
};
/**
* https://discord.com/developers/docs/resources/guild-scheduled-event#modify-guild-scheduled-event

View File

@@ -58,11 +58,10 @@ type RESTPostAPIBaseApplicationCommandsJSONBody = AddUndefinedToPossiblyUndefine
/**
* https://discord.com/developers/docs/interactions/application-commands#create-global-application-command
*/
export type RESTPostAPIChatInputApplicationCommandsJSONBody = RESTPostAPIBaseApplicationCommandsJSONBody &
AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
type?: ApplicationCommandType.ChatInput;
description: string;
}>;
export interface RESTPostAPIChatInputApplicationCommandsJSONBody extends RESTPostAPIBaseApplicationCommandsJSONBody {
type?: ApplicationCommandType.ChatInput | undefined;
description: string;
}
/**
* https://discord.com/developers/docs/interactions/application-commands#create-global-application-command
@@ -171,7 +170,7 @@ export type RESTPostAPIInteractionCallbackFormDataBody =
/**
* JSON stringified message body
*/
payload_json?: string;
payload_json?: string | undefined;
} & Record<`files[${bigint}]`, unknown>)
| (RESTPostAPIInteractionCallbackJSONBody & Record<`files[${bigint}]`, unknown>);
@@ -213,7 +212,7 @@ export type RESTPostAPIInteractionFollowupFormDataBody =
/**
* JSON stringified message body
*/
payload_json?: string;
payload_json?: string | undefined;
} & Record<`files[${bigint}]`, unknown>)
| (RESTPostAPIInteractionFollowupJSONBody & Record<`files[${bigint}]`, unknown>);

View File

@@ -1020,12 +1020,12 @@ export const CDNRoutes = {
/**
* Route for:
* - GET `/app-icons/{application.id}/{application.asset_id}.{png|jpeg|webp}`
* - GET `/app-assets/{application.id}/{application.asset_id}.{png|jpeg|webp}`
*
* This route supports the extensions: PNG, JPEG, WebP
*/
applicationAsset(applicationId: Snowflake, applicationAssetId: string, format: ApplicationAssetFormat) {
return `/app-icons/${applicationId}/${applicationAssetId}.${format}` as const;
return `/app-assets/${applicationId}/${applicationAssetId}.${format}` as const;
},
/**
@@ -1053,6 +1053,16 @@ export const CDNRoutes = {
return `/app-assets/${StickerPackApplicationId}/store/${stickerPackBannerAssetId}.${format}` as const;
},
/**
* Route for:
* - GET `/app-assets/${application.id}/store/${asset.id}.{png|jpeg|webp}}`
*
* This route supports the extensions: PNG, JPEG, WebP
*/
storePageAsset(applicationId: Snowflake, assetId: string) {
return `/app-assets/${applicationId}/store/${assetId}.png` as const;
},
/**
* Route for:
* - GET `team-icons/{team.id}/{team.icon}.{png|jpeg|webp}`
@@ -1067,7 +1077,7 @@ export const CDNRoutes = {
* Route for:
* - GET `/stickers/{sticker.id}.{png|json}`
*
* This route supports the extensions: PNG, Lottie
* This route supports the extensions: PNG, Lottie, GIF
*/
sticker(stickerId: Snowflake, format: StickerFormat) {
return `/stickers/${stickerId}.${format}` as const;
@@ -1125,7 +1135,7 @@ export type ApplicationAssetFormat = Exclude<ImageFormat, ImageFormat.Lottie | I
export type AchievementIconFormat = Exclude<ImageFormat, ImageFormat.Lottie | ImageFormat.GIF>;
export type StickerPackBannerFormat = Exclude<ImageFormat, ImageFormat.Lottie | ImageFormat.GIF>;
export type TeamIconFormat = Exclude<ImageFormat, ImageFormat.Lottie | ImageFormat.GIF>;
export type StickerFormat = Extract<ImageFormat, ImageFormat.PNG | ImageFormat.Lottie>;
export type StickerFormat = Extract<ImageFormat, ImageFormat.PNG | ImageFormat.Lottie | ImageFormat.GIF>;
export type RoleIconFormat = Exclude<ImageFormat, ImageFormat.Lottie | ImageFormat.GIF>;
export type GuildScheduledEventCoverFormat = Exclude<ImageFormat, ImageFormat.Lottie | ImageFormat.GIF>;
export type GuildMemberBannerFormat = Exclude<ImageFormat, ImageFormat.Lottie>;

View File

@@ -1,6 +1,5 @@
import type { Snowflake } from '../../globals.ts';
import type { APIStageInstance, StageInstancePrivacyLevel } from '../../payloads/v9/mod.ts';
import type { AddUndefinedToPossiblyUndefinedPropertiesOfInterface } from '../../utils/internals.ts';
/**
* https://discord.com/developers/docs/resources/stage-instance#create-stage-instance
@@ -19,11 +18,11 @@ export interface RESTPostAPIStageInstanceJSONBody {
*
* @default GuildOnly
*/
privacy_level?: StageInstancePrivacyLevel;
privacy_level?: StageInstancePrivacyLevel | undefined;
/**
* Notify @everyone that a stage instance has started
*/
send_start_notification?: boolean;
send_start_notification?: boolean | undefined;
}
/**
@@ -39,16 +38,16 @@ export type RESTGetAPIStageInstanceResult = APIStageInstance;
/**
* https://discord.com/developers/docs/resources/stage-instance#modify-stage-instance
*/
export type RESTPatchAPIStageInstanceJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIStageInstanceJSONBody {
/**
* The topic of the stage instance (1-120 characters)
*/
topic?: string;
topic?: string | undefined;
/**
* The privacy level of the stage instance
*/
privacy_level?: StageInstancePrivacyLevel;
}>;
privacy_level?: StageInstancePrivacyLevel | undefined;
}
/**
* https://discord.com/developers/docs/resources/stage-instance#modify-stage-instance

View File

@@ -1,5 +1,4 @@
import type { APISticker, APIStickerPack } from '../../payloads/v9/mod.ts';
import type { AddUndefinedToPossiblyUndefinedPropertiesOfInterface } from '../../utils/internals.ts';
/**
* https://discord.com/developers/docs/resources/sticker#get-sticker
@@ -40,7 +39,9 @@ export interface RESTPostAPIGuildStickerFormDataBody {
*/
tags: string;
/**
* The sticker file to upload, must be a PNG, APNG, or Lottie JSON file, max 500 KB
* The sticker file to upload, must be a PNG, APNG, GIF, or Lottie JSON file, max 512 KB
*
* Uploaded stickers are constrained to 5 seconds in length for animated stickers, and 320 x 320 pixels.
*/
file: unknown;
}
@@ -53,20 +54,20 @@ export type RESTPostAPIGuildStickerResult = APISticker;
/**
* https://discord.com/developers/docs/resources/sticker#modify-guild-sticker
*/
export type RESTPatchAPIGuildStickerJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIGuildStickerJSONBody {
/**
* Name of the sticker (2-30 characters)
*/
name?: string;
name?: string | undefined;
/**
* Description of the sticker (2-100 characters)
*/
description?: string | null;
description?: string | null | undefined;
/**
* The Discord name of a unicode emoji representing the sticker's expression (2-200 characters)
*/
tags?: string;
}>;
tags?: string | undefined;
}
/**
* https://discord.com/developers/docs/resources/sticker#modify-guild-sticker

View File

@@ -1,5 +1,5 @@
import type { APIGuild, APITemplate } from '../../payloads/v9/mod.ts';
import type { AddUndefinedToPossiblyUndefinedPropertiesOfInterface, StrictPartial } from '../../utils/internals.ts';
import type { StrictPartial } from '../../utils/internals.ts';
/**
* https://discord.com/developers/docs/resources/guild-template#get-guild-template
@@ -9,7 +9,7 @@ export type RESTGetAPITemplateResult = APITemplate;
/**
* https://discord.com/developers/docs/resources/guild-template#create-guild-from-guild-template
*/
export type RESTPostAPITemplateCreateGuildJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPITemplateCreateGuildJSONBody {
/**
* Name of the guild (2-100 characters)
*/
@@ -19,8 +19,8 @@ export type RESTPostAPITemplateCreateGuildJSONBody = AddUndefinedToPossiblyUndef
*
* See https://discord.com/developers/docs/reference#image-data
*/
icon?: string;
}>;
icon?: string | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild-template#create-guild-from-guild-template
@@ -35,7 +35,7 @@ export type RESTGetAPIGuildTemplatesResult = APITemplate[];
/**
* https://discord.com/developers/docs/resources/guild-template#create-guild-template
*/
export type RESTPostAPIGuildTemplatesJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIGuildTemplatesJSONBody {
/**
* Name of the template (1-100 characters)
*/
@@ -43,8 +43,8 @@ export type RESTPostAPIGuildTemplatesJSONBody = AddUndefinedToPossiblyUndefinedP
/**
* Description for the template (0-120 characters)
*/
description?: string | null;
}>;
description?: string | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/guild-template#create-guild-template

View File

@@ -7,7 +7,6 @@ import type {
APIApplicationRoleConnection,
GuildFeature,
} from '../../payloads/v9/mod.ts';
import type { AddUndefinedToPossiblyUndefinedPropertiesOfInterface } from '../../utils/internals.ts';
/**
* https://discord.com/developers/docs/resources/user#get-current-user
@@ -27,16 +26,16 @@ export type RESTGetCurrentUserGuildMemberResult = APIGuildMember;
/**
* https://discord.com/developers/docs/resources/user#modify-current-user
*/
export type RESTPatchAPICurrentUserJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPICurrentUserJSONBody {
/**
* User's username, if changed may cause the user's discriminator to be randomized
*/
username?: string;
username?: string | undefined;
/**
* If passed, modifies the user's avatar
*/
avatar?: string | null;
}>;
avatar?: string | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/user#modify-current-user
@@ -61,6 +60,12 @@ export interface RESTGetAPICurrentUserGuildsQuery {
* @default 200
*/
limit?: number;
/**
* Include approximate member and presence counts in response
*
* @default false
*/
with_counts?: boolean;
}
export interface RESTAPIPartialCurrentUserGuild {
@@ -70,6 +75,8 @@ export interface RESTAPIPartialCurrentUserGuild {
owner: boolean;
features: GuildFeature[];
permissions: Permissions;
approximate_member_count?: number;
approximate_presence_count?: number;
}
/**
@@ -114,15 +121,15 @@ export interface RESTPutAPICurrentUserApplicationRoleConnectionJSONBody {
/**
* The vanity name of the platform a bot has connected (max 50 characters)
*/
platform_name?: string;
platform_name?: string | undefined;
/**
* The username on the platform a bot has connected (max 100 characters)
*/
platform_username?: string;
platform_username?: string | undefined;
/**
* Object mapping application role connection metadata keys to their `string`-ified value (max 100 characters) for the user on the platform a bot has connected
*/
metadata?: Record<string, string | number>;
metadata?: Record<string, string | number> | undefined;
}
/**

View File

@@ -13,7 +13,7 @@ import type { AddUndefinedToPossiblyUndefinedPropertiesOfInterface, Nullable } f
/**
* https://discord.com/developers/docs/resources/webhook#create-webhook
*/
export type RESTPostAPIChannelWebhookJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIChannelWebhookJSONBody {
/**
* Name of the webhook (1-80 characters)
*/
@@ -23,8 +23,8 @@ export type RESTPostAPIChannelWebhookJSONBody = AddUndefinedToPossiblyUndefinedP
*
* See https://discord.com/developers/docs/reference#image-data
*/
avatar?: string | null;
}>;
avatar?: string | null | undefined;
}
/**
* https://discord.com/developers/docs/resources/webhook#create-webhook
@@ -54,22 +54,22 @@ export type RESTGetAPIWebhookWithTokenResult = Omit<APIWebhook, 'user'>;
/**
* https://discord.com/developers/docs/resources/webhook#modify-webhook
*/
export type RESTPatchAPIWebhookJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPatchAPIWebhookJSONBody {
/**
* The default name of the webhook
*/
name?: string;
name?: string | undefined;
/**
* Image for the default webhook avatar
*
* See https://discord.com/developers/docs/reference#image-data
*/
avatar?: string | null;
avatar?: string | null | undefined;
/**
* The new channel id this webhook should be moved to
*/
channel_id?: Snowflake;
}>;
channel_id?: Snowflake | undefined;
}
/**
* https://discord.com/developers/docs/resources/webhook#modify-webhook
@@ -99,35 +99,35 @@ export type RESTDeleteAPIWebhookWithTokenResult = never;
/**
* https://discord.com/developers/docs/resources/webhook#execute-webhook
*/
export type RESTPostAPIWebhookWithTokenJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIWebhookWithTokenJSONBody {
/**
* The message contents (up to 2000 characters)
*/
content?: string;
content?: string | undefined;
/**
* Override the default username of the webhook
*/
username?: string;
username?: string | undefined;
/**
* Override the default avatar of the webhook
*/
avatar_url?: string;
avatar_url?: string | undefined;
/**
* `true` if this is a TTS message
*/
tts?: boolean;
tts?: boolean | undefined;
/**
* Embedded `rich` content
*
* See https://discord.com/developers/docs/resources/channel#embed-object
*/
embeds?: APIEmbed[];
embeds?: APIEmbed[] | undefined;
/**
* Allowed mentions for the message
*
* See https://discord.com/developers/docs/resources/channel#allowed-mentions-object
*/
allowed_mentions?: APIAllowedMentions;
allowed_mentions?: APIAllowedMentions | undefined;
/**
* The components to include with the message
*
@@ -135,22 +135,22 @@ export type RESTPostAPIWebhookWithTokenJSONBody = AddUndefinedToPossiblyUndefine
*
* See https://discord.com/developers/docs/interactions/message-components#component-object
*/
components?: APIActionRowComponent<APIMessageActionRowComponent>[];
components?: APIActionRowComponent<APIMessageActionRowComponent>[] | undefined;
/**
* Attachment objects with filename and description
*/
attachments?: (Pick<APIAttachment, 'id' | 'description'> & Partial<Pick<APIAttachment, 'filename'>>)[];
attachments?: (Pick<APIAttachment, 'id' | 'description'> & Partial<Pick<APIAttachment, 'filename'>>)[] | undefined;
/**
* Message flags combined as a bitfield
*/
flags?: MessageFlags;
flags?: MessageFlags | undefined;
/**
* Name of thread to create
*
* Available only if the webhook is in a forum channel and a thread is not specified in {@link RESTPostAPIWebhookWithTokenQuery.thread_id} query parameter
*/
thread_name?: string;
}>;
thread_name?: string | undefined;
}
/**
* https://discord.com/developers/docs/resources/webhook#execute-webhook
@@ -160,7 +160,7 @@ export type RESTPostAPIWebhookWithTokenFormDataBody =
/**
* JSON stringified message body
*/
payload_json?: string;
payload_json?: string | undefined;
} & Record<`files[${bigint}]`, unknown>)
| (RESTPostAPIWebhookWithTokenJSONBody & Record<`files[${bigint}]`, unknown>);
@@ -237,21 +237,28 @@ export type RESTPostAPIWebhookWithTokenGitHubWaitResult = APIMessage;
*/
export type RESTGetAPIWebhookWithTokenMessageResult = APIMessage;
/**
* https://discord.com/developers/docs/resources/webhook#get-webhook-message-query-string-params
*/
export interface RESTGetAPIWebhookWithTokenMessageQuery {
thread_id?: string;
}
/**
* https://discord.com/developers/docs/resources/webhook#edit-webhook-message
*/
export type RESTPatchAPIWebhookWithTokenMessageJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<
Nullable<Pick<RESTPostAPIWebhookWithTokenJSONBody, 'content' | 'embeds' | 'allowed_mentions' | 'components'>> & {
/**
* Attached files to keep
*
* Starting with API v10, the `attachments` array must contain all attachments that should be present after edit, including **retained and new** attachments provided in the request body.
*
* See https://discord.com/developers/docs/resources/channel#attachment-object
*/
attachments?: (Pick<APIAttachment, 'id'> & Partial<Pick<APIAttachment, 'filename' | 'description'>>)[];
}
>;
Nullable<Pick<RESTPostAPIWebhookWithTokenJSONBody, 'content' | 'embeds' | 'allowed_mentions' | 'components'>>
> & {
/**
* Attached files to keep
*
* Starting with API v10, the `attachments` array must contain all attachments that should be present after edit, including **retained and new** attachments provided in the request body.
*
* See https://discord.com/developers/docs/resources/channel#attachment-object
*/
attachments?: (Pick<APIAttachment, 'id'> & Partial<Pick<APIAttachment, 'filename' | 'description'>>)[] | undefined;
};
/**
* https://discord.com/developers/docs/resources/webhook#edit-webhook-message
@@ -261,7 +268,7 @@ export type RESTPatchAPIWebhookWithTokenMessageFormDataBody =
/**
* JSON stringified message body
*/
payload_json?: string;
payload_json?: string | undefined;
} & Record<`files[${bigint}]`, unknown>)
| (RESTPatchAPIWebhookWithTokenMessageJSONBody & Record<`files[${bigint}]`, unknown>);

View File

@@ -2,10 +2,6 @@ export type Nullable<T> = {
[P in keyof T]: T[P] | null;
};
/**
* Allows support for TS 4.5's `exactOptionalPropertyTypes` option by ensuring a property present and undefined is valid
* (since JSON.stringify ignores undefined properties)
*/
export type AddUndefinedToPossiblyUndefinedPropertiesOfInterface<Base> = {
[K in keyof Base]: Base[K] extends Exclude<Base[K], undefined>
? AddUndefinedToPossiblyUndefinedPropertiesOfInterface<Base[K]>

View File

@@ -32,6 +32,7 @@ import type {
InviteTargetType,
PresenceUpdateStatus,
AutoModerationRuleTriggerType,
APIAuditLogEntry,
} from '../payloads/v10/index';
import type { Nullable } from '../utils/internals';
@@ -179,7 +180,11 @@ export enum GatewayCloseCodes {
export enum GatewayIntentBits {
Guilds = 1 << 0,
GuildMembers = 1 << 1,
GuildBans = 1 << 2,
GuildModeration = 1 << 2,
/**
* @deprecated This is the old name for {@apilink GatewayIntentBits#GuildModeration}
*/
GuildBans = GuildModeration,
GuildEmojisAndStickers = 1 << 3,
GuildIntegrations = 1 << 4,
GuildWebhooks = 1 << 5,
@@ -262,6 +267,7 @@ export enum GatewayDispatchEvents {
AutoModerationRuleUpdate = 'AUTO_MODERATION_RULE_UPDATE',
AutoModerationRuleDelete = 'AUTO_MODERATION_RULE_DELETE',
AutoModerationActionExecution = 'AUTO_MODERATION_ACTION_EXECUTION',
GuildAuditLogEntryCreate = 'GUILD_AUDIT_LOG_ENTRY_CREATE',
}
export type GatewaySendPayload =
@@ -334,7 +340,8 @@ export type GatewayDispatchPayload =
| GatewayUserUpdateDispatch
| GatewayVoiceServerUpdateDispatch
| GatewayVoiceStateUpdateDispatch
| GatewayWebhooksUpdateDispatch;
| GatewayWebhooksUpdateDispatch
| GatewayGuildAuditLogEntryCreateDispatch;
// #region Dispatch Payloads
@@ -968,6 +975,11 @@ export type GatewayGuildMembersChunkDispatch = DataPayload<
GatewayGuildMembersChunkDispatchData
>;
/**
* https://discord.com/developers/docs/topics/gateway-events#update-presence
*/
export type GatewayGuildMembersChunkPresence = Omit<RawGatewayPresenceUpdate, 'guild_id'>;
/**
* https://discord.com/developers/docs/topics/gateway-events#guild-members-chunk
*/
@@ -999,7 +1011,7 @@ export interface GatewayGuildMembersChunkDispatchData {
*
* See https://discord.com/developers/docs/topics/gateway-events#update-presence
*/
presences?: RawGatewayPresenceUpdate[];
presences?: GatewayGuildMembersChunkPresence[];
/**
* The nonce used in the Guild Members Request
*
@@ -1691,6 +1703,24 @@ export interface GatewayWebhooksUpdateDispatchData {
channel_id: Snowflake;
}
/**
* https://discord.com/developers/docs/topics/gateway-events#guild-audit-log-entry-create
*/
export type GatewayGuildAuditLogEntryCreateDispatch = DataPayload<
GatewayDispatchEvents.GuildAuditLogEntryCreate,
GatewayGuildAuditLogEntryCreateDispatchData
>;
/**
* https://discord.com/developers/docs/topics/gateway-events#guild-audit-log-entry-create
*/
export interface GatewayGuildAuditLogEntryCreateDispatchData extends APIAuditLogEntry {
/**
* ID of the guild
*/
guild_id: Snowflake;
}
// #endregion Dispatch Payloads
// #region Sendable Payloads

View File

@@ -32,6 +32,7 @@ import type {
InviteTargetType,
PresenceUpdateStatus,
AutoModerationRuleTriggerType,
APIAuditLogEntry,
} from '../payloads/v9/index';
import type { Nullable } from '../utils/internals';
@@ -179,7 +180,11 @@ export enum GatewayCloseCodes {
export enum GatewayIntentBits {
Guilds = 1 << 0,
GuildMembers = 1 << 1,
GuildBans = 1 << 2,
GuildModeration = 1 << 2,
/**
* @deprecated This is the old name for {@apilink GatewayIntentBits#GuildModeration}
*/
GuildBans = GuildModeration,
GuildEmojisAndStickers = 1 << 3,
GuildIntegrations = 1 << 4,
GuildWebhooks = 1 << 5,
@@ -261,6 +266,7 @@ export enum GatewayDispatchEvents {
AutoModerationRuleUpdate = 'AUTO_MODERATION_RULE_UPDATE',
AutoModerationRuleDelete = 'AUTO_MODERATION_RULE_DELETE',
AutoModerationActionExecution = 'AUTO_MODERATION_ACTION_EXECUTION',
GuildAuditLogEntryCreate = 'GUILD_AUDIT_LOG_ENTRY_CREATE',
}
export type GatewaySendPayload =
@@ -333,7 +339,8 @@ export type GatewayDispatchPayload =
| GatewayUserUpdateDispatch
| GatewayVoiceServerUpdateDispatch
| GatewayVoiceStateUpdateDispatch
| GatewayWebhooksUpdateDispatch;
| GatewayWebhooksUpdateDispatch
| GatewayGuildAuditLogEntryCreateDispatch;
// #region Dispatch Payloads
@@ -967,6 +974,11 @@ export type GatewayGuildMembersChunkDispatch = DataPayload<
GatewayGuildMembersChunkDispatchData
>;
/**
* https://discord.com/developers/docs/topics/gateway-events#update-presence
*/
export type GatewayGuildMembersChunkPresence = Omit<RawGatewayPresenceUpdate, 'guild_id'>;
/**
* https://discord.com/developers/docs/topics/gateway-events#guild-members-chunk
*/
@@ -998,7 +1010,7 @@ export interface GatewayGuildMembersChunkDispatchData {
*
* See https://discord.com/developers/docs/topics/gateway-events#update-presence
*/
presences?: RawGatewayPresenceUpdate[];
presences?: GatewayGuildMembersChunkPresence[];
/**
* The nonce used in the Guild Members Request
*
@@ -1690,6 +1702,24 @@ export interface GatewayWebhooksUpdateDispatchData {
channel_id: Snowflake;
}
/**
* https://discord.com/developers/docs/topics/gateway-events#guild-audit-log-entry-create
*/
export type GatewayGuildAuditLogEntryCreateDispatch = DataPayload<
GatewayDispatchEvents.GuildAuditLogEntryCreate,
GatewayGuildAuditLogEntryCreateDispatchData
>;
/**
* https://discord.com/developers/docs/topics/gateway-events#guild-audit-log-entry-create
*/
export interface GatewayGuildAuditLogEntryCreateDispatchData extends APIAuditLogEntry {
/**
* ID of the guild
*/
guild_id: Snowflake;
}
// #endregion Dispatch Payloads
// #region Sendable Payloads

2657
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,93 +1,93 @@
{
"name": "discord-api-types",
"version": "0.37.26",
"version": "0.37.41",
"description": "Discord API typings that are kept up to date for use in bot library creation.",
"homepage": "https://discord-api-types.dev",
"exports": {
"./globals": {
"types": "./globals.d.ts",
"require": "./globals.js",
"import": "./globals.mjs",
"types": "./globals.d.ts"
"import": "./globals.mjs"
},
"./v6": {
"types": "./v6.d.ts",
"require": "./v6.js",
"import": "./v6.mjs",
"types": "./v6.d.ts"
"import": "./v6.mjs"
},
"./v8": {
"types": "./v8.d.ts",
"require": "./v8.js",
"import": "./v8.mjs",
"types": "./v8.d.ts"
"import": "./v8.mjs"
},
"./v9": {
"types": "./v9.d.ts",
"require": "./v9.js",
"import": "./v9.mjs",
"types": "./v9.d.ts"
"import": "./v9.mjs"
},
"./v10": {
"types": "./v10.d.ts",
"require": "./v10.js",
"import": "./v10.mjs",
"types": "./v10.d.ts"
"import": "./v10.mjs"
},
"./gateway": {
"types": "./gateway/index.d.ts",
"require": "./gateway/index.js",
"import": "./gateway/index.mjs",
"types": "./gateway/index.d.ts"
"import": "./gateway/index.mjs"
},
"./gateway/v*": {
"types": "./gateway/v*.d.ts",
"require": "./gateway/v*.js",
"import": "./gateway/v*.mjs",
"types": "./gateway/v*.d.ts"
"import": "./gateway/v*.mjs"
},
"./payloads": {
"types": "./payloads/index.d.ts",
"require": "./payloads/index.js",
"import": "./payloads/index.mjs",
"types": "./payloads/index.d.ts"
"import": "./payloads/index.mjs"
},
"./payloads/v*": {
"types": "./payloads/v*/index.d.ts",
"require": "./payloads/v*/index.js",
"import": "./payloads/v*/index.mjs",
"types": "./payloads/v*/index.d.ts"
"import": "./payloads/v*/index.mjs"
},
"./rest": {
"types": "./rest/index.d.ts",
"require": "./rest/index.js",
"import": "./rest/index.mjs",
"types": "./rest/index.d.ts"
"import": "./rest/index.mjs"
},
"./rest/v*": {
"types": "./rest/v*/index.d.ts",
"require": "./rest/v*/index.js",
"import": "./rest/v*/index.mjs",
"types": "./rest/v*/index.d.ts"
"import": "./rest/v*/index.mjs"
},
"./rpc": {
"types": "./rpc/index.d.ts",
"require": "./rpc/index.js",
"import": "./rpc/index.mjs",
"types": "./rpc/index.d.ts"
"import": "./rpc/index.mjs"
},
"./rpc/v*": {
"types": "./rpc/v*.d.ts",
"require": "./rpc/v*.js",
"import": "./rpc/v*.mjs",
"types": "./rpc/v*.d.ts"
"import": "./rpc/v*.mjs"
},
"./voice": {
"types": "./voice/index.d.ts",
"require": "./voice/index.js",
"import": "./voice/index.mjs",
"types": "./voice/index.d.ts"
"import": "./voice/index.mjs"
},
"./voice/v*": {
"types": "./voice/v*.d.ts",
"require": "./voice/v*.js",
"import": "./voice/v*.mjs",
"types": "./voice/v*.d.ts"
"import": "./voice/v*.mjs"
},
"./utils": {
"types": "./utils/index.d.ts",
"require": "./utils/index.js",
"import": "./utils/index.mjs",
"types": "./utils/index.d.ts"
"import": "./utils/index.mjs"
},
"./utils/v*": {
"types": "./utils/v*.d.ts",
"require": "./utils/v*.js",
"import": "./utils/v*.mjs",
"types": "./utils/v*.d.ts"
"import": "./utils/v*.mjs"
}
},
"scripts": {
@@ -109,11 +109,11 @@
"esm:voice": "gen-esm-wrapper ./voice/index.js ./voice/index.mjs",
"lint": "prettier --write . && eslint --fix --ext mjs,ts {gateway,payloads,rest,rpc,voice,utils}/**/*.ts {globals,v*}.ts scripts/**/*.mjs",
"postpublish": "run-s clean:node build:deno",
"prepare": "is-ci || husky install",
"prepare": "tsc -p ./.eslintplugin && (is-ci || husky install)",
"prepublishOnly": "run-s clean test:lint build:node",
"test:lint": "prettier --check . && eslint --ext mjs,ts {gateway,payloads,rest,rpc,voice,utils}/**/*.ts {globals,v*}.ts scripts/**/*.mjs",
"pretest:types": "tsc",
"test:types": "node ./scripts/run-tsd.mjs",
"test:types": "tsd -t ./v10.d.ts",
"posttest:types": "npm run clean:node"
},
"keywords": [
@@ -140,6 +140,7 @@
"@types/node": "^17.0.35",
"@typescript-eslint/eslint-plugin": "^5.26.0",
"@typescript-eslint/parser": "^5.26.0",
"@typescript-eslint/utils": "^5.53.0",
"conventional-changelog-cli": "^2.2.2",
"conventional-recommended-bump": "^6.1.0",
"eslint": "^8.16.0",
@@ -148,18 +149,20 @@
"eslint-import-resolver-typescript": "^2.7.1",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-jsx-a11y": "^6.5.1",
"eslint-plugin-local": "^1.0.0",
"eslint-plugin-react": "^7.30.0",
"eslint-plugin-react-hooks": "^4.5.0",
"gen-esm-wrapper": "^1.1.3",
"husky": "^8.0.1",
"is-ci": "^3.0.1",
"lint-staged": "^12.4.1",
"lint-staged": "^13.2.1",
"npm-run-all": "^4.1.5",
"prettier": "^2.6.2",
"pretty-quick": "^3.1.3",
"rimraf": "^3.0.2",
"tsd": "^0.20.0",
"typescript": "^4.6.4"
"tsd": "^0.25.0",
"tsutils": "^3.21.0",
"typescript": "^4.9.5"
},
"repository": {
"type": "git",

View File

@@ -8,47 +8,261 @@ import type { LocaleString } from '../rest/common';
* replicate them in some way
*/
export const PermissionFlagsBits = {
/**
* Allows creation of instant invites
*
* Applies to channel types: Text, Voice, Stage
*/
CreateInstantInvite: 1n << 0n,
/**
* Allows kicking members
*/
KickMembers: 1n << 1n,
/**
* Allows banning members
*/
BanMembers: 1n << 2n,
/**
* Allows all permissions and bypasses channel permission overwrites
*/
Administrator: 1n << 3n,
/**
* Allows management and editing of channels
*
* Applies to channel types: Text, Voice, Stage
*/
ManageChannels: 1n << 4n,
/**
* Allows management and editing of the guild
*/
ManageGuild: 1n << 5n,
/**
* Allows for the addition of reactions to messages
*
* Applies to channel types: Text, Voice, Stage
*/
AddReactions: 1n << 6n,
/**
* Allows for viewing of audit logs
*/
ViewAuditLog: 1n << 7n,
/**
* Allows for using priority speaker in a voice channel
*
* Applies to channel types: Voice
*/
PrioritySpeaker: 1n << 8n,
/**
* Allows the user to go live
*
* Applies to channel types: Voice, Stage
*/
Stream: 1n << 9n,
/**
* Allows guild members to view a channel, which includes reading messages in text channels and joining voice channels
*
* Applies to channel types: Text, Voice, Stage
*/
ViewChannel: 1n << 10n,
/**
* Allows for sending messages in a channel and creating threads in a forum
* (does not allow sending messages in threads)
*
* Applies to channel types: Text, Voice, Stage
*/
SendMessages: 1n << 11n,
/**
* Allows for sending of `/tts` messages
*
* Applies to channel types: Text, Voice, Stage
*/
SendTTSMessages: 1n << 12n,
/**
* Allows for deletion of other users messages
*
* Applies to channel types: Text, Voice, Stage
*/
ManageMessages: 1n << 13n,
/**
* Links sent by users with this permission will be auto-embedded
*
* Applies to channel types: Text, Voice, Stage
*/
EmbedLinks: 1n << 14n,
/**
* Allows for uploading images and files
*
* Applies to channel types: Text, Voice, Stage
*/
AttachFiles: 1n << 15n,
/**
* Allows for reading of message history
*
* Applies to channel types: Text, Voice, Stage
*/
ReadMessageHistory: 1n << 16n,
/**
* Allows for using the `@everyone` tag to notify all users in a channel,
* and the `@here` tag to notify all online users in a channel
*
* Applies to channel types: Text, Voice, Stage
*/
MentionEveryone: 1n << 17n,
/**
* Allows the usage of custom emojis from other servers
*
* Applies to channel types: Text, Voice, Stage
*/
UseExternalEmojis: 1n << 18n,
/**
* Allows for viewing guild insights
*/
ViewGuildInsights: 1n << 19n,
/**
* Allows for joining of a voice channel
*
* Applies to channel types: Voice, Stage
*/
Connect: 1n << 20n,
/**
* Allows for speaking in a voice channel
*
* Applies to channel types: Voice
*/
Speak: 1n << 21n,
/**
* Allows for muting members in a voice channel
*
* Applies to channel types: Voice, Stage
*/
MuteMembers: 1n << 22n,
/**
* Allows for deafening of members in a voice channel
*
* Applies to channel types: Voice
*/
DeafenMembers: 1n << 23n,
/**
* Allows for moving of members between voice channels
*
* Applies to channel types: Voice, Stage
*/
MoveMembers: 1n << 24n,
/**
* Allows for using voice-activity-detection in a voice channel
*
* Applies to channel types: Voice
*/
UseVAD: 1n << 25n,
/**
* Allows for modification of own nickname
*/
ChangeNickname: 1n << 26n,
/**
* Allows for modification of other users nicknames
*/
ManageNicknames: 1n << 27n,
/**
* Allows management and editing of roles
*
* Applies to channel types: Text, Voice, Stage
*/
ManageRoles: 1n << 28n,
/**
* Allows management and editing of webhooks
*
* Applies to channel types: Text, Voice, Stage
*/
ManageWebhooks: 1n << 29n,
/**
* Allows management and editing of emojis, stickers, and soundboard sounds
*
* @deprecated This is the old name for {@apilink PermissionFlagsBits#ManageGuildExpressions}
*/
ManageEmojisAndStickers: 1n << 30n,
/**
* Allows management and editing of emojis, stickers, and soundboard sounds
*/
ManageGuildExpressions: 1n << 30n,
/**
* Allows members to use application commands, including slash commands and context menu commands
*
* Applies to channel types: Text, Voice, Stage
*/
UseApplicationCommands: 1n << 31n,
/**
* Allows for requesting to speak in stage channels
*
* Applies to channel types: Stage
*/
RequestToSpeak: 1n << 32n,
/**
* Allows for creating, editing, and deleting scheduled events
*
* Applies to channel types: Voice, Stage
*/
ManageEvents: 1n << 33n,
/**
* Allows for deleting and archiving threads, and viewing all private threads
*
* Applies to channel types: Text
*/
ManageThreads: 1n << 34n,
/**
* Allows for creating public and announcement threads
*
* Applies to channel types: Text
*/
CreatePublicThreads: 1n << 35n,
/**
* Allows for creating private threads
*
* Applies to channel types: Text
*/
CreatePrivateThreads: 1n << 36n,
/**
* Allows the usage of custom stickers from other servers
*
* Applies to channel types: Text, Voice, Stage
*/
UseExternalStickers: 1n << 37n,
/**
* Allows for sending messages in threads
*
* Applies to channel types: Text
*/
SendMessagesInThreads: 1n << 38n,
/**
* Allows for using Activities (applications with the {@apilink ApplicationFlags.Embedded} flag) in a voice channel
*
* Applies to channel types: Voice
*/
UseEmbeddedActivities: 1n << 39n,
/**
* Allows for timing out users to prevent them from sending or reacting to messages in chat and threads,
* and from speaking in voice and stage channels
*/
ModerateMembers: 1n << 40n,
/**
* Allows for viewing role subscription insights
*/
ViewCreatorMonetizationAnalytics: 1n << 41n,
/**
* Allows for using soundboard in a voice channel
*
* Applies to channel types: Voice
*/
UseSoundboard: 1n << 42n,
/**
* @unstable This permission flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
UseExternalSounds: 1n << 45n,
/**
* Allows sending voice messages
*
* Applies to channel types: Text, Voice, Stage
*/
SendVoiceMessages: 1n << 46n,
} as const;
/**

View File

@@ -115,7 +115,10 @@ export type APIApplicationCommandInteractionData =
export type APIApplicationCommandInteractionWrapper<Data extends APIApplicationCommandInteractionData> =
APIBaseInteraction<InteractionType.ApplicationCommand, Data> &
Required<
Pick<APIBaseInteraction<InteractionType.ApplicationCommand, Data>, 'channel_id' | 'data' | 'app_permissions'>
Pick<
APIBaseInteraction<InteractionType.ApplicationCommand, Data>,
'channel' | 'channel_id' | 'data' | 'app_permissions'
>
>;
/**

View File

@@ -1,7 +1,7 @@
import type { InteractionType } from './responses';
import type { Permissions, Snowflake } from '../../../globals';
import type { APIRole, LocaleString } from '../../../v10';
import type { APIAttachment, APIMessage, APIPartialChannel, APIThreadMetadata } from '../channel';
import type { APIAttachment, APIChannel, APIMessage, APIPartialChannel, APIThreadMetadata } from '../channel';
import type { APIGuildMember } from '../guild';
import type { APIUser } from '../user';
@@ -81,6 +81,12 @@ export interface APIBaseInteraction<Type extends InteractionType, Data> {
/**
* The channel it was sent from
*/
channel?: Partial<APIChannel> & Pick<APIChannel, 'id' | 'type'>;
/**
* The id of the channel it was sent from
*
* @deprecated Use {@apilink APIBaseInteraction#channel} instead
*/
channel_id?: Snowflake;
/**
* Guild member data for the invoking user, including permissions

View File

@@ -15,7 +15,7 @@ export type APIMessageComponentInteraction = APIBaseInteraction<
Required<
Pick<
APIBaseInteraction<InteractionType.MessageComponent, APIMessageComponentInteractionData>,
'channel_id' | 'data' | 'app_permissions' | 'message'
'channel' | 'channel_id' | 'data' | 'app_permissions' | 'message'
>
>;
@@ -26,7 +26,7 @@ export type APIMessageComponentButtonInteraction = APIBaseInteraction<
Required<
Pick<
APIBaseInteraction<InteractionType.MessageComponent, APIMessageButtonInteractionData>,
'channel_id' | 'data' | 'app_permissions' | 'message'
'channel' | 'channel_id' | 'data' | 'app_permissions' | 'message'
>
>;
@@ -37,7 +37,7 @@ export type APIMessageComponentSelectMenuInteraction = APIBaseInteraction<
Required<
Pick<
APIBaseInteraction<InteractionType.MessageComponent, APIMessageSelectMenuInteractionData>,
'channel_id' | 'data' | 'app_permissions' | 'message'
'channel' | 'channel_id' | 'data' | 'app_permissions' | 'message'
>
>;

View File

@@ -123,19 +123,27 @@ export interface APIApplicationInstallParams {
*/
export enum ApplicationFlags {
/**
* @unstable
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
EmbeddedReleased = 1 << 1,
/**
* @unstable
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
ManagedEmoji = 1 << 2,
/**
* @unstable
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
EmbeddedIAP = 1 << 3,
/**
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
GroupDMCreate = 1 << 4,
/**
* @unstable
* Indicates if an app uses the Auto Moderation API
*/
ApplicationAutoModerationRuleCreateBadge = 1 << 6,
/**
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
RPCHasConnected = 1 << 11,
/**
@@ -174,7 +182,7 @@ export enum ApplicationFlags {
*/
GatewayMessageContentLimited = 1 << 19,
/**
* @unstable
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
EmbeddedFirstParty = 1 << 20,
/**
@@ -192,11 +200,11 @@ export interface APIApplicationRoleConnectionMetadata {
*/
type: ApplicationRoleConnectionMetadataType;
/**
* Dictionary key for the metadata field (must be `a-z`, `0-9`, or `_` characters; max 50 characters)
* Dictionary key for the metadata field (must be `a-z`, `0-9`, or `_` characters; 1-50 characters)
*/
key: string;
/**
* Name of the metadata field (max 100 characters)
* Name of the metadata field (1-100 characters)
*/
name: string;
/**
@@ -204,7 +212,7 @@ export interface APIApplicationRoleConnectionMetadata {
*/
name_localizations?: LocalizationMap;
/**
* Description of the metadata field (max 200 characters)
* Description of the metadata field (1-200 characters)
*/
description: string;
/**

View File

@@ -59,7 +59,7 @@ export interface APIAutoModerationRule {
*/
export enum AutoModerationRuleTriggerType {
/**
* Check if content contains words from a user defined list of keywords (Maximum of 3 per guild)
* Check if content contains words from a user defined list of keywords (Maximum of 6 per guild)
*/
Keyword = 1,
/**
@@ -83,7 +83,7 @@ export interface APIAutoModerationRuleTriggerMetadata {
/**
* Substrings which will be searched for in content (Maximum of 1000)
*
* A keyword can be a phrase which contains multiple words. Wildcard symbols can be used to customize how each string will be matched. Each keyword must be 30 characters or less
* A keyword can be a phrase which contains multiple words. Wildcard symbols can be used to customize how each string will be matched. Each keyword must be 60 characters or less
* See [keyword matching strategies](https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-keyword-matching-strategies)
*
* Associated trigger type: {@link AutoModerationRuleTriggerType.Keyword}
@@ -98,7 +98,7 @@ export interface APIAutoModerationRuleTriggerMetadata {
/**
* Substrings which will be exempt from triggering the preset trigger type (Maximum of 1000)
*
* A allowed-word can be a phrase which contains multiple words. Wildcard symbols can be used to customize how each string will be matched. Each keyword must be 30 characters or less
* A allowed-word can be a phrase which contains multiple words. Wildcard symbols can be used to customize how each string will be matched. Each keyword must be 60 characters or less
* See [keyword matching strategies](https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-keyword-matching-strategies)
*
* Associated trigger type: {@link AutoModerationRuleTriggerType.KeywordPreset}
@@ -107,7 +107,7 @@ export interface APIAutoModerationRuleTriggerMetadata {
/**
* Regular expression patterns which will be matched against content (Maximum of 10)
*
* Only Rust flavored regex is currently supported (Maximum of 75 characters)
* Only Rust flavored regex is currently supported (Maximum of 260 characters)
*
* Associated trigger type: {@link AutoModerationRuleTriggerType.Keyword}
*/
@@ -169,7 +169,8 @@ export interface APIAutoModerationAction {
*/
export enum AutoModerationActionType {
/**
* Blocks the content of a message according to the rule
* Blocks a member's message and prevents it from being posted.
* A custom explanation can be specified and shown to members whenever their message is blocked
*/
BlockMessage = 1,
/**
@@ -200,4 +201,10 @@ export interface APIAutoModerationActionMetadata {
* Associated action type: {@link AutoModerationActionType.Timeout}
*/
duration_seconds?: number;
/**
* Additional explanation that will be shown to members whenever their message is blocked (Maximum 150 characters)
*
* Associated action type {@link AutoModerationActionType.BlockMessage}
*/
custom_message?: string;
}

View File

@@ -4,6 +4,7 @@
import type { APIApplication } from './application';
import type { APIPartialEmoji } from './emoji';
import type { APIGuildMember } from './guild';
import type { APIMessageInteraction } from './interactions';
import type { APIRole } from './permissions';
import type { APISticker, APIStickerItem } from './sticker';
@@ -48,7 +49,8 @@ export type TextChannelType =
| ChannelType.AnnouncementThread
| ChannelType.GuildText
| ChannelType.GuildForum
| ChannelType.GuildVoice;
| ChannelType.GuildVoice
| ChannelType.GuildStageVoice;
export type GuildChannelType = Exclude<ChannelType, ChannelType.DM | ChannelType.GroupDM>;
@@ -131,13 +133,15 @@ export type APITextChannel = APIGuildTextChannel<ChannelType.GuildText>;
export type APINewsChannel = APIGuildTextChannel<ChannelType.GuildAnnouncement>;
export type APIGuildCategoryChannel = APIGuildChannel<ChannelType.GuildCategory>;
export interface APIVoiceChannelBase<T extends ChannelType> extends APIGuildChannel<T> {
export interface APIVoiceChannelBase<T extends ChannelType>
extends APIGuildChannel<T>,
Omit<APITextBasedChannel<T>, 'name' | 'last_pin_timestamp'> {
/**
* The bitrate (in bits) of the voice channel
* The bitrate (in bits) of the voice or stage channel
*/
bitrate?: number;
/**
* The user limit of the voice channel
* The user limit of the voice or stage channel
*/
user_limit?: number;
/**
@@ -146,19 +150,16 @@ export interface APIVoiceChannelBase<T extends ChannelType> extends APIGuildChan
* See https://discord.com/developers/docs/resources/voice#voice-region-object
*/
rtc_region?: string | null;
}
export interface APIGuildVoiceChannel
extends APIVoiceChannelBase<ChannelType.GuildVoice>,
Omit<APITextBasedChannel<ChannelType.GuildVoice>, 'name' | 'last_pin_timestamp'> {
/**
* The camera video quality mode of the voice channel, `1` when not present
* The camera video quality mode of the voice or stage channel, `1` when not present
*
* See https://discord.com/developers/docs/resources/channel#channel-object-video-quality-modes
*/
video_quality_mode?: VideoQualityMode;
}
export type APIGuildVoiceChannel = APIVoiceChannelBase<ChannelType.GuildVoice>;
export type APIGuildStageVoiceChannel = APIVoiceChannelBase<ChannelType.GuildStageVoice>;
export interface APIDMChannelBase<T extends ChannelType> extends Omit<APITextBasedChannel<T>, 'rate_limit_per_user'> {
@@ -198,6 +199,10 @@ export interface APIGroupDMChannel extends Omit<APIDMChannelBase<ChannelType.Gro
* The id of the last message sent in this channel (may not point to an existing or valid message)
*/
last_message_id?: Snowflake | null;
/**
* Whether the channel is managed by an OAuth2 application
*/
managed?: boolean;
}
export interface APIThreadChannel
@@ -658,6 +663,11 @@ export interface APIMessage {
* It can be used to estimate the relative position of the message in a thread in company with `total_message_sent` on parent thread
*/
position?: number;
/**
* Data of the role subscription purchase or renewal that prompted this `ROLE_SUBSCRIPTION_PURCHASE` message
*/
role_subscription_data?: APIMessageRoleSubscriptionData;
}
/**
@@ -677,6 +687,7 @@ export enum MessageType {
GuildBoostTier2,
GuildBoostTier3,
ChannelFollowAdd,
GuildDiscoveryDisqualified = 14,
GuildDiscoveryRequalified,
GuildDiscoveryGracePeriodInitialWarning,
@@ -688,6 +699,17 @@ export enum MessageType {
GuildInviteReminder,
ContextMenuCommand,
AutoModerationAction,
RoleSubscriptionPurchase,
InteractionPremiumUpsell,
StageStart,
StageEnd,
StageSpeaker,
/**
* @unstable https://github.com/discord/discord-api-docs/pull/5927#discussion_r1107678548
*/
StageRaiseHand,
StageTopic,
GuildApplicationPremiumSubscription,
}
/**
@@ -776,6 +798,40 @@ export enum MessageFlags {
* This message failed to mention some roles and add their members to the thread
*/
FailedToMentionSomeRolesInThread = 1 << 8,
/**
* @unstable This message flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
ShouldShowLinkNotDiscordWarning = 1 << 10,
/**
* This message will not trigger push and desktop notifications
*/
SuppressNotifications = 1 << 12,
/**
* This message is a voice message
*/
IsVoiceMessage = 1 << 13,
}
/**
* https://discord.com/developers/docs/resources/channel#role-subscription-data-object-role-subscription-data-object-structure
*/
export interface APIMessageRoleSubscriptionData {
/**
* The id of the SKU and listing the user is subscribed to
*/
role_subscription_listing_id: Snowflake;
/**
* The name of the tier the user is subscribed to
*/
tier_name: string;
/**
* The number of months the user has been subscribed for
*/
total_months_subscribed: number;
/**
* Whether this notification is for a renewal
*/
is_renewal: boolean;
}
/**
@@ -912,9 +968,34 @@ export interface APIThreadMember {
* See https://en.wikipedia.org/wiki/Bit_field
*/
flags: ThreadMemberFlags;
/**
* Additional information about the user
*
* **This field is omitted on the member sent within each thread in the `GUILD_CREATE` event**
*
* **This field is only present when `with_member` is set to true when calling `List Thread Members` or `Get Thread Member`**
*/
member?: APIGuildMember;
}
export enum ThreadMemberFlags {}
export enum ThreadMemberFlags {
/**
* @unstable This thread member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
HasInteracted = 1 << 0,
/**
* @unstable This thread member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
AllMessages = 1 << 1,
/**
* @unstable This thread member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
OnlyMentions = 1 << 2,
/**
* @unstable This thread member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
NoMessages = 1 << 3,
}
export interface APIThreadList {
/**
@@ -1240,6 +1321,14 @@ export interface APIAttachment {
* Whether this attachment is ephemeral
*/
ephemeral?: boolean;
/**
* The duration of the audio file (currently for voice messages)
*/
duration_secs?: number;
/**
* Base64 encoded bytearray representing a sampled waveform (currently for voice messages)
*/
waveform?: string;
}
/**
@@ -1605,15 +1694,39 @@ export interface APITextInputComponent extends APIBaseComponent<ComponentType.Te
* https://discord.com/developers/docs/resources/channel#channel-object-channel-flags
*/
export enum ChannelFlags {
/**
* @unstable This channel flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
GuildFeedRemoved = 1 << 0,
/**
* This thread is pinned to the top of its parent forum channel
*/
Pinned = 1 << 1,
/**
* @unstable This channel flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
ActiveChannelsRemoved = 1 << 2,
/**
* Whether a tag is required to be specified when creating a thread in a forum channel.
* Tags are specified in the `applied_tags` field
*/
RequireTag = 1 << 4,
/**
* @unstable This channel flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
IsSpam = 1 << 5,
/**
* @unstable This channel flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
IsGuildResourceChannel = 1 << 7,
/**
* @unstable This channel flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
ClydeAI = 1 << 8,
/**
* @unstable This channel flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
IsScheduledForDeletion = 1 << 9,
}
/**

View File

@@ -236,11 +236,17 @@ export interface APIGuild extends APIPartialGuild {
*/
max_video_channel_users?: number;
/**
* **This field is only received from https://discord.com/developers/docs/resources/guild#get-guild with the `with_counts` query parameter set to `true`**
* The maximum amount of users in a stage video channel
*/
max_stage_video_channel_users?: number;
/**
* Approximate number of members in this guild,
* returned from the `GET /guilds/<id>` and `/users/@me/guilds` (OAuth2) endpoints when `with_counts` is `true`
*/
approximate_member_count?: number;
/**
* **This field is only received from https://discord.com/developers/docs/resources/guild#get-guild with the `with_counts` query parameter set to `true`**
* Approximate number of non-offline members in this guild,
* returned from the `GET /guilds/<id>` and `/users/@me/guilds` (OAuth2) endpoints when `with_counts` is `true`
*/
approximate_presence_count?: number;
/**
@@ -368,6 +374,14 @@ export enum GuildSystemChannelFlags {
* Hide member join sticker reply buttons
*/
SuppressJoinNotificationReplies = 1 << 3,
/**
* Suppress role subscription purchase and renewal notifications
*/
SuppressRoleSubscriptionPurchaseNotifications = 1 << 4,
/**
* Hide role subscription sticker reply buttons
*/
SuppressRoleSubscriptionPurchaseNotificationReplies = 1 << 5,
}
/**
@@ -400,6 +414,14 @@ export enum GuildFeature {
* Guild can enable welcome screen, Membership Screening and discovery, and receives community updates
*/
Community = 'COMMUNITY',
/**
* Guild has enabled monetization
*/
CreatorMonetizableProvisional = 'CREATOR_MONETIZABLE_PROVISIONAL',
/**
* Guild has enabled the role subscription promo page
*/
CreatorStorePage = 'CREATOR_STORE_PAGE',
/*
* Guild has been set as a support server on the App Directory
*/
@@ -446,6 +468,8 @@ export enum GuildFeature {
MemberVerificationGateEnabled = 'MEMBER_VERIFICATION_GATE_ENABLED',
/**
* Guild has enabled monetization
*
* @unstable This feature is no longer documented by Discord
*/
MonetizationEnabled = 'MONETIZATION_ENABLED',
/**
@@ -473,6 +497,14 @@ export enum GuildFeature {
* Guild is able to set role icons
*/
RoleIcons = 'ROLE_ICONS',
/**
* Guild has role subscriptions that can be purchased
*/
RoleSubscriptionsAvailableForPurchase = 'ROLE_SUBSCRIPTIONS_AVAILABLE_FOR_PURCHASE',
/**
* Guild has enabled role subscriptions
*/
RoleSubscriptionsEnabled = 'ROLE_SUBSCRIPTIONS_ENABLED',
/**
* Guild has enabled ticketed events
*/
@@ -613,6 +645,10 @@ export interface APIGuildMember {
* Whether the user is muted in voice channels
*/
mute: boolean;
/**
* Guild member flags represented as a bit set, defaults to `0`
*/
flags: GuildMemberFlags;
/**
* Whether the user has not yet passed the guild's Membership Screening requirements
*
@@ -625,6 +661,44 @@ export interface APIGuildMember {
communication_disabled_until?: string | null;
}
/**
* https://discord.com/developers/docs/resources/guild#guild-member-object-guild-member-flags
*/
export enum GuildMemberFlags {
/**
* Member has left and rejoined the guild
*/
DidRejoin = 1 << 0,
/**
* Member has completed onboarding
*/
CompletedOnboarding = 1 << 1,
/**
* Member bypasses guild verification requirements
*/
BypassesVerification = 1 << 2,
/**
* Member has started onboarding
*/
StartedOnboarding = 1 << 3,
/**
* @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
StartedHomeActions = 1 << 5,
/**
* @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
CompletedHomeActions = 1 << 6,
/**
* @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
AutomodQuarantinedUsernameOrGuildNickname = 1 << 7,
/**
* @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
AutomodQuarantinedBio = 1 << 8,
}
/**
* https://discord.com/developers/docs/resources/guild#integration-object
*/
@@ -644,7 +718,7 @@ export interface APIGuildIntegration {
/**
* Is this integration enabled
*/
enabled?: boolean;
enabled: boolean;
/**
* Is this integration syncing
*
@@ -680,7 +754,7 @@ export interface APIGuildIntegration {
/**
* User for this integration
*
* **This field is not provided for `discord` bot integrations.**
* **Some older integrations may not have an attached user.**
*
* See https://discord.com/developers/docs/resources/user#user-object
*/
@@ -723,7 +797,7 @@ export interface APIGuildIntegration {
scopes?: OAuth2Scopes[];
}
export type APIGuildIntegrationType = 'twitch' | 'youtube' | 'discord';
export type APIGuildIntegrationType = 'twitch' | 'youtube' | 'discord' | 'guild_subscription';
/**
* https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors

View File

@@ -72,4 +72,16 @@ export interface APIRoleTags {
* The id of the integration this role belongs to
*/
integration_id?: Snowflake;
/**
* The id of this role's subscription sku and listing
*/
subscription_listing_id?: Snowflake;
/**
* Whether this role is available for purchase
*/
available_for_purchase?: null;
/**
* Whether this role is a guild's linked role
*/
guild_connections?: null;
}

View File

@@ -85,6 +85,7 @@ export enum StickerFormatType {
PNG = 1,
APNG,
Lottie,
GIF,
}
/**

View File

@@ -101,6 +101,14 @@ export enum UserFlags {
* Bug Hunter Level 1
*/
BugHunterLevel1 = 1 << 3,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
MFASMS = 1 << 4,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
PremiumPromoDismissed = 1 << 5,
/**
* House Bravery Member
*/
@@ -121,6 +129,10 @@ export enum UserFlags {
* User is a [team](https://discord.com/developers/docs/topics/teams)
*/
TeamPseudoUser = 1 << 10,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
HasUnreadUrgentMessages = 1 << 13,
/**
* Bug Hunter Level 2
*/
@@ -147,6 +159,10 @@ export enum UserFlags {
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
Spammer = 1 << 20,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
DisablePremium = 1 << 21,
/**
* User is an [Active Developer](https://support-dev.discord.com/hc/articles/10113997751447)
*/
@@ -161,6 +177,22 @@ export enum UserFlags {
* This value would be 1 << 44, but bit shifting above 1 << 30 requires bigints
*/
Quarantined = 17592186044416,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*
* @privateRemarks
*
* This value would be 1 << 50, but bit shifting above 1 << 30 requires bigints
*/
Collaborator = 1125899906842624,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*
* @privateRemarks
*
* This value would be 1 << 51, but bit shifting above 1 << 30 requires bigints
*/
RestrictedCollaborator = 2251799813685248,
}
/**
@@ -231,6 +263,7 @@ export enum ConnectionService {
EpicGames = 'epicgames',
Facebook = 'facebook',
GitHub = 'github',
Instagram = 'instagram',
LeagueOfLegends = 'leagueoflegends',
PayPal = 'paypal',
PlayStationNetwork = 'playstation',
@@ -239,6 +272,7 @@ export enum ConnectionService {
Spotify = 'spotify',
Skype = 'skype',
Steam = 'steam',
TikTok = 'tiktok',
Twitch = 'twitch',
Twitter = 'twitter',
Xbox = 'xbox',

View File

@@ -115,7 +115,10 @@ export type APIApplicationCommandInteractionData =
export type APIApplicationCommandInteractionWrapper<Data extends APIApplicationCommandInteractionData> =
APIBaseInteraction<InteractionType.ApplicationCommand, Data> &
Required<
Pick<APIBaseInteraction<InteractionType.ApplicationCommand, Data>, 'channel_id' | 'data' | 'app_permissions'>
Pick<
APIBaseInteraction<InteractionType.ApplicationCommand, Data>,
'channel' | 'channel_id' | 'data' | 'app_permissions'
>
>;
/**

View File

@@ -1,7 +1,7 @@
import type { InteractionType } from './responses';
import type { Permissions, Snowflake } from '../../../globals';
import type { APIRole, LocaleString } from '../../../v9';
import type { APIAttachment, APIMessage, APIPartialChannel, APIThreadMetadata } from '../channel';
import type { APIAttachment, APIChannel, APIMessage, APIPartialChannel, APIThreadMetadata } from '../channel';
import type { APIGuildMember } from '../guild';
import type { APIUser } from '../user';
@@ -81,6 +81,12 @@ export interface APIBaseInteraction<Type extends InteractionType, Data> {
/**
* The channel it was sent from
*/
channel?: Partial<APIChannel> & Pick<APIChannel, 'id' | 'type'>;
/**
* The id of the channel it was sent from
*
* @deprecated Use {@apilink APIBaseInteraction#channel} instead
*/
channel_id?: Snowflake;
/**
* Guild member data for the invoking user, including permissions

View File

@@ -15,7 +15,7 @@ export type APIMessageComponentInteraction = APIBaseInteraction<
Required<
Pick<
APIBaseInteraction<InteractionType.MessageComponent, APIMessageComponentInteractionData>,
'channel_id' | 'data' | 'app_permissions' | 'message'
'channel' | 'channel_id' | 'data' | 'app_permissions' | 'message'
>
>;
@@ -26,7 +26,7 @@ export type APIMessageComponentButtonInteraction = APIBaseInteraction<
Required<
Pick<
APIBaseInteraction<InteractionType.MessageComponent, APIMessageButtonInteractionData>,
'channel_id' | 'data' | 'app_permissions' | 'message'
'channel' | 'channel_id' | 'data' | 'app_permissions' | 'message'
>
>;
@@ -37,7 +37,7 @@ export type APIMessageComponentSelectMenuInteraction = APIBaseInteraction<
Required<
Pick<
APIBaseInteraction<InteractionType.MessageComponent, APIMessageSelectMenuInteractionData>,
'channel_id' | 'data' | 'app_permissions' | 'message'
'channel' | 'channel_id' | 'data' | 'app_permissions' | 'message'
>
>;

View File

@@ -123,19 +123,27 @@ export interface APIApplicationInstallParams {
*/
export enum ApplicationFlags {
/**
* @unstable
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
EmbeddedReleased = 1 << 1,
/**
* @unstable
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
ManagedEmoji = 1 << 2,
/**
* @unstable
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
EmbeddedIAP = 1 << 3,
/**
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
GroupDMCreate = 1 << 4,
/**
* @unstable
* Indicates if an app uses the Auto Moderation API
*/
ApplicationAutoModerationRuleCreateBadge = 1 << 6,
/**
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
RPCHasConnected = 1 << 11,
/**
@@ -174,7 +182,7 @@ export enum ApplicationFlags {
*/
GatewayMessageContentLimited = 1 << 19,
/**
* @unstable
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
EmbeddedFirstParty = 1 << 20,
/**
@@ -192,11 +200,11 @@ export interface APIApplicationRoleConnectionMetadata {
*/
type: ApplicationRoleConnectionMetadataType;
/**
* Dictionary key for the metadata field (must be `a-z`, `0-9`, or `_` characters; max 50 characters)
* Dictionary key for the metadata field (must be `a-z`, `0-9`, or `_` characters; 1-50 characters)
*/
key: string;
/**
* Name of the metadata field (max 100 characters)
* Name of the metadata field (1-100 characters)
*/
name: string;
/**
@@ -204,7 +212,7 @@ export interface APIApplicationRoleConnectionMetadata {
*/
name_localizations?: LocalizationMap;
/**
* Description of the metadata field (max 200 characters)
* Description of the metadata field (1-200 characters)
*/
description: string;
/**

View File

@@ -59,7 +59,7 @@ export interface APIAutoModerationRule {
*/
export enum AutoModerationRuleTriggerType {
/**
* Check if content contains words from a user defined list of keywords (Maximum of 3 per guild)
* Check if content contains words from a user defined list of keywords (Maximum of 6 per guild)
*/
Keyword = 1,
/**
@@ -83,7 +83,7 @@ export interface APIAutoModerationRuleTriggerMetadata {
/**
* Substrings which will be searched for in content (Maximum of 1000)
*
* A keyword can be a phrase which contains multiple words. Wildcard symbols can be used to customize how each string will be matched. Each keyword must be 30 characters or less
* A keyword can be a phrase which contains multiple words. Wildcard symbols can be used to customize how each string will be matched. Each keyword must be 60 characters or less
* See [keyword matching strategies](https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-keyword-matching-strategies)
*
* Associated trigger type: {@link AutoModerationRuleTriggerType.Keyword}
@@ -98,7 +98,7 @@ export interface APIAutoModerationRuleTriggerMetadata {
/**
* Substrings which will be exempt from triggering the preset trigger type (Maximum of 1000)
*
* A allowed-word can be a phrase which contains multiple words. Wildcard symbols can be used to customize how each string will be matched. Each keyword must be 30 characters or less
* A allowed-word can be a phrase which contains multiple words. Wildcard symbols can be used to customize how each string will be matched. Each keyword must be 60 characters or less
* See [keyword matching strategies](https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-keyword-matching-strategies)
*
* Associated trigger type: {@link AutoModerationRuleTriggerType.KeywordPreset}
@@ -107,7 +107,7 @@ export interface APIAutoModerationRuleTriggerMetadata {
/**
* Regular expression patterns which will be matched against content (Maximum of 10)
*
* Only Rust flavored regex is currently supported (Maximum of 75 characters)
* Only Rust flavored regex is currently supported (Maximum of 260 characters)
*
* Associated trigger type: {@link AutoModerationRuleTriggerType.Keyword}
*/
@@ -169,7 +169,8 @@ export interface APIAutoModerationAction {
*/
export enum AutoModerationActionType {
/**
* Blocks the content of a message according to the rule
* Blocks a member's message and prevents it from being posted.
* A custom explanation can be specified and shown to members whenever their message is blocked
*/
BlockMessage = 1,
/**
@@ -200,4 +201,10 @@ export interface APIAutoModerationActionMetadata {
* Associated action type: {@link AutoModerationActionType.Timeout}
*/
duration_seconds?: number;
/**
* Additional explanation that will be shown to members whenever their message is blocked (Maximum 150 characters)
*
* Associated action type {@link AutoModerationActionType.BlockMessage}
*/
custom_message?: string;
}

View File

@@ -4,6 +4,7 @@
import type { APIApplication } from './application';
import type { APIPartialEmoji } from './emoji';
import type { APIGuildMember } from './guild';
import type { APIMessageInteraction } from './interactions';
import type { APIRole } from './permissions';
import type { APISticker, APIStickerItem } from './sticker';
@@ -48,7 +49,8 @@ export type TextChannelType =
| ChannelType.AnnouncementThread
| ChannelType.GuildText
| ChannelType.GuildForum
| ChannelType.GuildVoice;
| ChannelType.GuildVoice
| ChannelType.GuildStageVoice;
export type GuildChannelType = Exclude<ChannelType, ChannelType.DM | ChannelType.GroupDM>;
@@ -131,13 +133,15 @@ export type APITextChannel = APIGuildTextChannel<ChannelType.GuildText>;
export type APINewsChannel = APIGuildTextChannel<ChannelType.GuildAnnouncement>;
export type APIGuildCategoryChannel = APIGuildChannel<ChannelType.GuildCategory>;
export interface APIVoiceChannelBase<T extends ChannelType> extends APIGuildChannel<T> {
export interface APIVoiceChannelBase<T extends ChannelType>
extends APIGuildChannel<T>,
Omit<APITextBasedChannel<T>, 'name' | 'last_pin_timestamp'> {
/**
* The bitrate (in bits) of the voice channel
* The bitrate (in bits) of the voice or stage channel
*/
bitrate?: number;
/**
* The user limit of the voice channel
* The user limit of the voice or stage channel
*/
user_limit?: number;
/**
@@ -146,19 +150,16 @@ export interface APIVoiceChannelBase<T extends ChannelType> extends APIGuildChan
* See https://discord.com/developers/docs/resources/voice#voice-region-object
*/
rtc_region?: string | null;
}
export interface APIGuildVoiceChannel
extends APIVoiceChannelBase<ChannelType.GuildVoice>,
Omit<APITextBasedChannel<ChannelType.GuildVoice>, 'name' | 'last_pin_timestamp'> {
/**
* The camera video quality mode of the voice channel, `1` when not present
* The camera video quality mode of the voice or stage channel, `1` when not present
*
* See https://discord.com/developers/docs/resources/channel#channel-object-video-quality-modes
*/
video_quality_mode?: VideoQualityMode;
}
export type APIGuildVoiceChannel = APIVoiceChannelBase<ChannelType.GuildVoice>;
export type APIGuildStageVoiceChannel = APIVoiceChannelBase<ChannelType.GuildStageVoice>;
export interface APIDMChannelBase<T extends ChannelType> extends Omit<APITextBasedChannel<T>, 'rate_limit_per_user'> {
@@ -194,6 +195,10 @@ export interface APIGroupDMChannel extends Omit<APIDMChannelBase<ChannelType.Gro
* ID of the DM creator
*/
owner_id?: Snowflake;
/**
* Whether the channel is managed by an OAuth2 application
*/
managed?: boolean;
}
export interface APIThreadChannel
@@ -668,6 +673,7 @@ export enum MessageType {
GuildBoostTier2,
GuildBoostTier3,
ChannelFollowAdd,
GuildDiscoveryDisqualified = 14,
GuildDiscoveryRequalified,
GuildDiscoveryGracePeriodInitialWarning,
@@ -679,6 +685,17 @@ export enum MessageType {
GuildInviteReminder,
ContextMenuCommand,
AutoModerationAction,
RoleSubscriptionPurchase,
InteractionPremiumUpsell,
StageStart,
StageEnd,
StageSpeaker,
/**
* @unstable https://github.com/discord/discord-api-docs/pull/5927#discussion_r1107678548
*/
StageRaiseHand,
StageTopic,
GuildApplicationPremiumSubscription,
}
/**
@@ -767,6 +784,18 @@ export enum MessageFlags {
* This message failed to mention some roles and add their members to the thread
*/
FailedToMentionSomeRolesInThread = 1 << 8,
/**
* @unstable This message flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
ShouldShowLinkNotDiscordWarning = 1 << 10,
/**
* This message will not trigger push and desktop notifications
*/
SuppressNotifications = 1 << 12,
/**
* This message is a voice message
*/
IsVoiceMessage = 1 << 13,
}
/**
@@ -903,9 +932,34 @@ export interface APIThreadMember {
* See https://en.wikipedia.org/wiki/Bit_field
*/
flags: ThreadMemberFlags;
/**
* Additional information about the user
*
* **This field is omitted on the member sent within each thread in the `GUILD_CREATE` event**
*
* **This field is only present when `with_member` is set to true when calling `List Thread Members` or `Get Thread Member`**
*/
member?: APIGuildMember;
}
export enum ThreadMemberFlags {}
export enum ThreadMemberFlags {
/**
* @unstable This thread member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
HasInteracted = 1 << 0,
/**
* @unstable This thread member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
AllMessages = 1 << 1,
/**
* @unstable This thread member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
OnlyMentions = 1 << 2,
/**
* @unstable This thread member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
NoMessages = 1 << 3,
}
export interface APIThreadList {
/**
@@ -1235,6 +1289,14 @@ export interface APIAttachment {
* Whether this attachment is ephemeral
*/
ephemeral?: boolean;
/**
* The duration of the audio file (currently for voice messages)
*/
duration_secs?: number;
/**
* Base64 encoded bytearray representing a sampled waveform (currently for voice messages)
*/
waveform?: string;
}
/**
@@ -1600,15 +1662,39 @@ export interface APITextInputComponent extends APIBaseComponent<ComponentType.Te
* https://discord.com/developers/docs/resources/channel#channel-object-channel-flags
*/
export enum ChannelFlags {
/**
* @unstable This channel flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
GuildFeedRemoved = 1 << 0,
/**
* This thread is pinned to the top of its parent forum channel
*/
Pinned = 1 << 1,
/**
* @unstable This channel flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
ActiveChannelsRemoved = 1 << 2,
/**
* Whether a tag is required to be specified when creating a thread in a forum channel.
* Tags are specified in the `applied_tags` field
*/
RequireTag = 1 << 4,
/**
* @unstable This channel flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
IsSpam = 1 << 5,
/**
* @unstable This channel flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
IsGuildResourceChannel = 1 << 7,
/**
* @unstable This channel flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
ClydeAI = 1 << 8,
/**
* @unstable This channel flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
IsScheduledForDeletion = 1 << 9,
}
/**

View File

@@ -236,11 +236,17 @@ export interface APIGuild extends APIPartialGuild {
*/
max_video_channel_users?: number;
/**
* **This field is only received from https://discord.com/developers/docs/resources/guild#get-guild with the `with_counts` query parameter set to `true`**
* The maximum amount of users in a stage video channel
*/
max_stage_video_channel_users?: number;
/**
* Approximate number of members in this guild,
* returned from the `GET /guilds/<id>` and `/users/@me/guilds` (OAuth2) endpoints when `with_counts` is `true`
*/
approximate_member_count?: number;
/**
* **This field is only received from https://discord.com/developers/docs/resources/guild#get-guild with the `with_counts` query parameter set to `true`**
* Approximate number of non-offline members in this guild,
* returned from the `GET /guilds/<id>` and `/users/@me/guilds` (OAuth2) endpoints when `with_counts` is `true`
*/
approximate_presence_count?: number;
/**
@@ -400,6 +406,14 @@ export enum GuildFeature {
* Guild can enable welcome screen, Membership Screening and discovery, and receives community updates
*/
Community = 'COMMUNITY',
/**
* Guild has enabled monetization
*/
CreatorMonetizableProvisional = 'CREATOR_MONETIZABLE_PROVISIONAL',
/**
* Guild has enabled the role subscription promo page
*/
CreatorStorePage = 'CREATOR_STORE_PAGE',
/*
* Guild has been set as a support server on the App Directory
*/
@@ -446,6 +460,8 @@ export enum GuildFeature {
MemberVerificationGateEnabled = 'MEMBER_VERIFICATION_GATE_ENABLED',
/**
* Guild has enabled monetization
*
* @unstable This feature is no longer documented by Discord
*/
MonetizationEnabled = 'MONETIZATION_ENABLED',
/**
@@ -473,6 +489,14 @@ export enum GuildFeature {
* Guild is able to set role icons
*/
RoleIcons = 'ROLE_ICONS',
/**
* Guild has role subscriptions that can be purchased
*/
RoleSubscriptionsAvailableForPurchase = 'ROLE_SUBSCRIPTIONS_AVAILABLE_FOR_PURCHASE',
/**
* Guild has enabled role subscriptions
*/
RoleSubscriptionsEnabled = 'ROLE_SUBSCRIPTIONS_ENABLED',
/**
* Guild has enabled ticketed events
*/
@@ -613,6 +637,10 @@ export interface APIGuildMember {
* Whether the user is muted in voice channels
*/
mute: boolean;
/**
* Guild member flags represented as a bit set, defaults to `0`
*/
flags: GuildMemberFlags;
/**
* Whether the user has not yet passed the guild's Membership Screening requirements
*
@@ -625,6 +653,44 @@ export interface APIGuildMember {
communication_disabled_until?: string | null;
}
/**
* https://discord.com/developers/docs/resources/guild#guild-member-object-guild-member-flags
*/
export enum GuildMemberFlags {
/**
* Member has left and rejoined the guild
*/
DidRejoin = 1 << 0,
/**
* Member has completed onboarding
*/
CompletedOnboarding = 1 << 1,
/**
* Member bypasses guild verification requirements
*/
BypassesVerification = 1 << 2,
/**
* Member has started onboarding
*/
StartedOnboarding = 1 << 3,
/**
* @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
StartedHomeActions = 1 << 5,
/**
* @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
CompletedHomeActions = 1 << 6,
/**
* @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
AutomodQuarantinedUsernameOrGuildNickname = 1 << 7,
/**
* @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
AutomodQuarantinedBio = 1 << 8,
}
/**
* https://discord.com/developers/docs/resources/guild#integration-object
*/
@@ -644,7 +710,7 @@ export interface APIGuildIntegration {
/**
* Is this integration enabled
*/
enabled?: boolean;
enabled: boolean;
/**
* Is this integration syncing
*
@@ -680,7 +746,7 @@ export interface APIGuildIntegration {
/**
* User for this integration
*
* **This field is not provided for `discord` bot integrations.**
* **Some older integrations may not have an attached user.**
*
* See https://discord.com/developers/docs/resources/user#user-object
*/
@@ -723,7 +789,7 @@ export interface APIGuildIntegration {
scopes?: OAuth2Scopes[];
}
export type APIGuildIntegrationType = 'twitch' | 'youtube' | 'discord';
export type APIGuildIntegrationType = 'twitch' | 'youtube' | 'discord' | 'guild_subscription';
/**
* https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors

View File

@@ -72,4 +72,16 @@ export interface APIRoleTags {
* The id of the integration this role belongs to
*/
integration_id?: Snowflake;
/**
* The id of this role's subscription sku and listing
*/
subscription_listing_id?: Snowflake;
/**
* Whether this role is available for purchase
*/
available_for_purchase?: null;
/**
* Whether this role is a guild's linked role
*/
guild_connections?: null;
}

View File

@@ -85,6 +85,7 @@ export enum StickerFormatType {
PNG = 1,
APNG,
Lottie,
GIF,
}
/**

View File

@@ -101,6 +101,14 @@ export enum UserFlags {
* Bug Hunter Level 1
*/
BugHunterLevel1 = 1 << 3,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
MFASMS = 1 << 4,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
PremiumPromoDismissed = 1 << 5,
/**
* House Bravery Member
*/
@@ -121,6 +129,10 @@ export enum UserFlags {
* User is a [team](https://discord.com/developers/docs/topics/teams)
*/
TeamPseudoUser = 1 << 10,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
HasUnreadUrgentMessages = 1 << 13,
/**
* Bug Hunter Level 2
*/
@@ -147,6 +159,10 @@ export enum UserFlags {
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
Spammer = 1 << 20,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
DisablePremium = 1 << 21,
/**
* User is an [Active Developer](https://support-dev.discord.com/hc/articles/10113997751447)
*/
@@ -161,6 +177,22 @@ export enum UserFlags {
* This value would be 1 << 44, but bit shifting above 1 << 30 requires bigints
*/
Quarantined = 17592186044416,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*
* @privateRemarks
*
* This value would be 1 << 50, but bit shifting above 1 << 30 requires bigints
*/
Collaborator = 1125899906842624,
/**
* @unstable This user flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*
* @privateRemarks
*
* This value would be 1 << 51, but bit shifting above 1 << 30 requires bigints
*/
RestrictedCollaborator = 2251799813685248,
}
/**
@@ -231,6 +263,7 @@ export enum ConnectionService {
EpicGames = 'epicgames',
Facebook = 'facebook',
GitHub = 'github',
Instagram = 'instagram',
LeagueOfLegends = 'leagueoflegends',
PlayStationNetwork = 'playstation',
Reddit = 'reddit',
@@ -239,6 +272,7 @@ export enum ConnectionService {
Spotify = 'spotify',
Skype = 'skype',
Steam = 'steam',
TikTok = 'tiktok',
Twitch = 'twitch',
Twitter = 'twitter',
Xbox = 'xbox',

View File

@@ -89,6 +89,7 @@ export enum RESTJSONErrorCodes {
MaximumNumberOfEmojisReached,
MaximumNumberOfReactionsReached = 30010,
MaximumNumberOfGroupDMsReached,
MaximumNumberOfGuildChannelsReached = 30013,
@@ -120,8 +121,13 @@ export enum RESTJSONErrorCodes {
BitrateIsTooHighForChannelOfThisType = 30052,
MaximumNumberOfPremiumEmojisReached = 30056,
MaximumNumberOfWebhooksPerGuildReached = 30058,
MaximumNumberOfChannelPermissionOverwritesReached = 30060,
TheChannelsForThisGuildAreTooLarge,
Unauthorized = 40001,
VerifyYourAccount,
OpeningDirectMessagesTooFast,
@@ -208,6 +214,8 @@ export enum RESTJSONErrorCodes {
ParameterEarlierThanCreation,
CommunityServerChannelsMustBeTextChannels,
TheEntityTypeOfTheEventIsDifferentFromTheEntityYouAreTryingToStartTheEventFor = 50091,
ServerNotAvailableInYourLocation = 50095,
ServerNeedsMonetizationEnabledToPerformThisAction = 50097,
@@ -220,7 +228,17 @@ export enum RESTJSONErrorCodes {
FailedToResizeAssetBelowTheMinimumSize = 50138,
UploadedFileNotFound = 50146,
CannotMixSubscriptionAndNonSubscriptionRolesForAnEmoji = 50144,
CannotConvertBetweenPremiumEmojiAndNormalEmoji,
UploadedFileNotFound,
VoiceMessagesDoNotSupportAdditionalContent = 50159,
VoiceMessagesMustHaveASingleAudioAttachment,
VoiceMessagesMustHaveSupportingMetadata,
VoiceMessagesCannotBeEdited,
CannotDeleteGuildSubscriptionIntegration,
YouCannotSendVoiceMessagesInThisChannel = 50173,
YouDoNotHavePermissionToSendThisSticker = 50600,

View File

@@ -6,7 +6,6 @@ import type {
APIAutoModerationRuleTriggerMetadata,
AutoModerationRuleTriggerType,
} from '../../payloads/v10/index';
import type { AddUndefinedToPossiblyUndefinedPropertiesOfInterface } from '../../utils/internals';
/**
* https://discord.com/developers/docs/resources/auto-moderation#list-auto-moderation-rules-for-guild
@@ -21,7 +20,7 @@ export type RESTGetAPIAutoModerationRuleResult = APIAutoModerationRule;
/**
* https://discord.com/developers/docs/resources/auto-moderation#create-auto-moderation-rule
*/
export type RESTPostAPIAutoModerationRuleJSONBody = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<{
export interface RESTPostAPIAutoModerationRuleJSONBody {
/**
* The rule name
*/
@@ -39,7 +38,7 @@ export type RESTPostAPIAutoModerationRuleJSONBody = AddUndefinedToPossiblyUndefi
*
* Can be omitted if the trigger type is {@link AutoModerationRuleTriggerType.HarmfulLink} or {@link AutoModerationRuleTriggerType.Spam}
*/
trigger_metadata?: APIAutoModerationRuleTriggerMetadata;
trigger_metadata?: APIAutoModerationRuleTriggerMetadata | undefined;
/**
* The actions which will execute when this rule is triggered
*/
@@ -49,16 +48,16 @@ export type RESTPostAPIAutoModerationRuleJSONBody = AddUndefinedToPossiblyUndefi
*
* @default false
*/
enabled?: boolean;
enabled?: boolean | undefined;
/**
* The role ids that shouldn't be affected by this rule (Maximum of 20)
*/
exempt_roles?: Snowflake[];
exempt_roles?: Snowflake[] | undefined;
/**
* The channel ids that shouldn't be affected by this rule (Maximum of 50)
*/
exempt_channels?: Snowflake[];
}>;
exempt_channels?: Snowflake[] | undefined;
}
/**
* https://discord.com/developers/docs/resources/auto-moderation#create-auto-moderation-rule

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