Merge branch 'main' into feat/partial-transfromers

This commit is contained in:
Fleny
2026-02-17 08:34:23 +01:00
88 changed files with 1965 additions and 1347 deletions

View File

@@ -112,7 +112,7 @@ jobs:
run: docker load --input /tmp/rest-passthrough-image.tar
- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@0.33.1
uses: aquasecurity/trivy-action@0.34.0
with:
image-ref: 'discordeno/app-rest-passthrough:latest'
exit-code: '0'

View File

@@ -1,5 +1,5 @@
{
"$schema": "https://biomejs.dev/schemas/2.3.13/schema.json",
"$schema": "https://biomejs.dev/schemas/2.4.1/schema.json",
"root": true,
"formatter": {
"enabled": true,

View File

@@ -19,8 +19,8 @@
},
"devDependencies": {
"@favware/cliff-jumper": "^6.0.0",
"@types/node": "^25.0.10",
"dotenv": "^17.2.3",
"@types/node": "^25.2.3",
"dotenv": "^17.3.1",
"typescript": "^5.9.3"
}
}

View File

@@ -321,12 +321,12 @@ __metadata:
languageName: node
linkType: hard
"@types/node@npm:^25.0.10":
version: 25.0.10
resolution: "@types/node@npm:25.0.10"
"@types/node@npm:^25.2.3":
version: 25.2.3
resolution: "@types/node@npm:25.2.3"
dependencies:
undici-types: "npm:~7.16.0"
checksum: 10c0/9edc3c812b487c32c76eebac7c87acae1f69515a0bc3f6b545806d513eb9e918c3217bf751dc93da39f60e06bf1b0caa92258ef3a6dd6457124b2e761e54f61f
checksum: 10c0/925833029ce0bb4a72c36f90b93287184d3511aeb0fa60a994ae94b5430c22f9be6693d67d210df79267cb54c6f6978caaefb149d99ab5f83af5827ba7cb9822
languageName: node
linkType: hard
@@ -539,10 +539,10 @@ __metadata:
languageName: node
linkType: hard
"dotenv@npm:^17.2.3":
version: 17.2.3
resolution: "dotenv@npm:17.2.3"
checksum: 10c0/c884403209f713214a1b64d4d1defa4934c2aa5b0002f5a670ae298a51e3c3ad3ba79dfee2f8df49f01ae74290fcd9acdb1ab1d09c7bfb42b539036108bb2ba0
"dotenv@npm:^17.3.1":
version: 17.3.1
resolution: "dotenv@npm:17.3.1"
checksum: 10c0/c78e0c2d5a549c751e544cc60e2b95e7cb67e0c551f42e094d161c6b297aa44b630a3c2dcacf5569e529a6c2a6b84e2ab9be8d37b299d425df5a18b81ce4a35f
languageName: node
linkType: hard
@@ -1133,8 +1133,8 @@ __metadata:
"@fastify/helmet": "npm:^13.0.2"
"@fastify/multipart": "npm:^9.0.3"
"@favware/cliff-jumper": "npm:^6.0.0"
"@types/node": "npm:^25.0.10"
dotenv: "npm:^17.2.3"
"@types/node": "npm:^25.2.3"
dotenv: "npm:^17.3.1"
fastify: "npm:^5.5.0"
typescript: "npm:^5.9.3"
languageName: unknown

View File

@@ -24,7 +24,7 @@
"amqplib": "^0.10.5",
"chalk": "^5.4.1",
"dotenv": "^16.4.7",
"fastify": "^5.3.2"
"fastify": "^5.7.3"
},
"devDependencies": {
"@types/amqplib": "^0.10.6",

View File

@@ -69,14 +69,14 @@ __metadata:
languageName: node
linkType: hard
"@fastify/ajv-compiler@npm:^4.0.0":
version: 4.0.1
resolution: "@fastify/ajv-compiler@npm:4.0.1"
"@fastify/ajv-compiler@npm:^4.0.5":
version: 4.0.5
resolution: "@fastify/ajv-compiler@npm:4.0.5"
dependencies:
ajv: "npm:^8.12.0"
ajv-formats: "npm:^3.0.1"
fast-uri: "npm:^3.0.0"
checksum: 10c0/178d06e799e6ea19d4b579cc90e11ef50babda9fc2828d85edbd7b08aaa5a63dad2a42ba92e07e9c1e5da78e4382854bb1e99a6f2f5e61da67c670dc3572842e
checksum: 10c0/b701602c5fad35d1327a6ebda530ca5ba2c7728223cd214b2b24af7cb2522c864b6cbbe77335ddd6a55d03f76899fb009386da783121b7ece136feb7ea937e13
languageName: node
linkType: hard
@@ -201,6 +201,13 @@ __metadata:
languageName: node
linkType: hard
"@pinojs/redact@npm:^0.4.0":
version: 0.4.0
resolution: "@pinojs/redact@npm:0.4.0"
checksum: 10c0/4b311ba17ee0cf154ff9c39eb063ec04cd0d0017cb3750efcdf06c2d485df3e1095e13e872175993568c5568c23e4508dd877c981bbc9c5ae5e384d569efcdff
languageName: node
linkType: hard
"@pkgjs/parseargs@npm:^0.11.0":
version: 0.11.0
resolution: "@pkgjs/parseargs@npm:0.11.0"
@@ -242,15 +249,6 @@ __metadata:
languageName: node
linkType: hard
"abort-controller@npm:^3.0.0":
version: 3.0.0
resolution: "abort-controller@npm:3.0.0"
dependencies:
event-target-shim: "npm:^5.0.0"
checksum: 10c0/90ccc50f010250152509a344eb2e71977fbf8db0ab8f1061197e3275ddf6c61a41a6edfd7b9409c664513131dd96e962065415325ef23efa5db931b382d24ca5
languageName: node
linkType: hard
"abstract-logging@npm:^2.0.1":
version: 2.0.1
resolution: "abstract-logging@npm:2.0.1"
@@ -378,13 +376,6 @@ __metadata:
languageName: node
linkType: hard
"base64-js@npm:^1.3.1":
version: 1.5.1
resolution: "base64-js@npm:1.5.1"
checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf
languageName: node
linkType: hard
"binary-extensions@npm:^2.0.0":
version: 2.3.0
resolution: "binary-extensions@npm:2.3.0"
@@ -417,16 +408,6 @@ __metadata:
languageName: node
linkType: hard
"buffer@npm:^6.0.3":
version: 6.0.3
resolution: "buffer@npm:6.0.3"
dependencies:
base64-js: "npm:^1.3.1"
ieee754: "npm:^1.2.1"
checksum: 10c0/2a905fbbcde73cc5d8bd18d1caa23715d5f83a5935867c2329f0ac06104204ba7947be098fe1317fbd8830e26090ff8e764f08cd14fefc977bb248c3487bcbd0
languageName: node
linkType: hard
"cacache@npm:^19.0.1":
version: 19.0.1
resolution: "cacache@npm:19.0.1"
@@ -527,7 +508,7 @@ __metadata:
chalk: "npm:^5.4.1"
chokidar: "npm:^3.6.0"
dotenv: "npm:^16.4.7"
fastify: "npm:^5.3.2"
fastify: "npm:^5.7.3"
typescript: "npm:^5.7.2"
languageName: unknown
linkType: soft
@@ -607,20 +588,6 @@ __metadata:
languageName: node
linkType: hard
"event-target-shim@npm:^5.0.0":
version: 5.0.1
resolution: "event-target-shim@npm:5.0.1"
checksum: 10c0/0255d9f936215fd206156fd4caa9e8d35e62075d720dc7d847e89b417e5e62cf1ce6c9b4e0a1633a9256de0efefaf9f8d26924b1f3c8620cffb9db78e7d3076b
languageName: node
linkType: hard
"events@npm:^3.3.0":
version: 3.3.0
resolution: "events@npm:3.3.0"
checksum: 10c0/d6b6f2adbccbcda74ddbab52ed07db727ef52e31a61ed26db9feb7dc62af7fc8e060defa65e5f8af9449b86b52cc1a1f6a79f2eafcf4e62add2b7a1fa4a432f6
languageName: node
linkType: hard
"exponential-backoff@npm:^3.1.1":
version: 3.1.1
resolution: "exponential-backoff@npm:3.1.1"
@@ -666,13 +633,6 @@ __metadata:
languageName: node
linkType: hard
"fast-redact@npm:^3.1.1":
version: 3.5.0
resolution: "fast-redact@npm:3.5.0"
checksum: 10c0/7e2ce4aad6e7535e0775bf12bd3e4f2e53d8051d8b630e0fa9e67f68cb0b0e6070d2f7a94b1d0522ef07e32f7c7cda5755e2b677a6538f1e9070ca053c42343a
languageName: node
linkType: hard
"fast-uri@npm:^2.3.0":
version: 2.4.0
resolution: "fast-uri@npm:2.4.0"
@@ -694,11 +654,11 @@ __metadata:
languageName: node
linkType: hard
"fastify@npm:^5.3.2":
version: 5.3.2
resolution: "fastify@npm:5.3.2"
"fastify@npm:^5.7.3":
version: 5.7.4
resolution: "fastify@npm:5.7.4"
dependencies:
"@fastify/ajv-compiler": "npm:^4.0.0"
"@fastify/ajv-compiler": "npm:^4.0.5"
"@fastify/error": "npm:^4.0.0"
"@fastify/fast-json-stringify-compiler": "npm:^5.0.0"
"@fastify/proxy-addr": "npm:^5.0.0"
@@ -707,13 +667,13 @@ __metadata:
fast-json-stringify: "npm:^6.0.0"
find-my-way: "npm:^9.0.0"
light-my-request: "npm:^6.0.0"
pino: "npm:^9.0.0"
pino: "npm:^10.1.0"
process-warning: "npm:^5.0.0"
rfdc: "npm:^1.3.1"
secure-json-parse: "npm:^4.0.0"
semver: "npm:^7.6.0"
toad-cache: "npm:^3.7.0"
checksum: 10c0/86ec8d6af1ddf779d9350958424d985e274d867786efa677ff88c1d1db9d7a3ee05e25dff29b3893e835a61893cf4df52d696f6ea193da1a29b8d098866914e8
checksum: 10c0/87425737ad4973eac1cb8a2cc00771fae26ccf87f7142d6a100e4b03d92613b050ec2abbb9b54432dfee0bebc5b75f5658c0016e77970cb4fb9d8382729cfc6a
languageName: node
linkType: hard
@@ -859,13 +819,6 @@ __metadata:
languageName: node
linkType: hard
"ieee754@npm:^1.2.1":
version: 1.2.1
resolution: "ieee754@npm:1.2.1"
checksum: 10c0/b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb
languageName: node
linkType: hard
"imurmurhash@npm:^0.1.4":
version: 0.1.4
resolution: "imurmurhash@npm:0.1.4"
@@ -1215,13 +1168,12 @@ __metadata:
languageName: node
linkType: hard
"pino-abstract-transport@npm:^1.2.0":
version: 1.2.0
resolution: "pino-abstract-transport@npm:1.2.0"
"pino-abstract-transport@npm:^3.0.0":
version: 3.0.0
resolution: "pino-abstract-transport@npm:3.0.0"
dependencies:
readable-stream: "npm:^4.0.0"
split2: "npm:^4.0.0"
checksum: 10c0/b4ab59529b7a91f488440147fc58ee0827a6c1c5ca3627292339354b1381072c1a6bfa9b46d03ad27872589e8477ecf74da12cf286e1e6b665ac64a3b806bf07
checksum: 10c0/4486e1b9508110aaf963d07741ac98d660b974dd51d8ad42077d215118e27cda20c64da46c07c926898d52540aab7c6b9c37dc0f5355c203bb1d6a72b5bd8d6c
languageName: node
linkType: hard
@@ -1232,24 +1184,24 @@ __metadata:
languageName: node
linkType: hard
"pino@npm:^9.0.0":
version: 9.1.0
resolution: "pino@npm:9.1.0"
"pino@npm:^10.1.0":
version: 10.3.0
resolution: "pino@npm:10.3.0"
dependencies:
"@pinojs/redact": "npm:^0.4.0"
atomic-sleep: "npm:^1.0.0"
fast-redact: "npm:^3.1.1"
on-exit-leak-free: "npm:^2.1.0"
pino-abstract-transport: "npm:^1.2.0"
pino-abstract-transport: "npm:^3.0.0"
pino-std-serializers: "npm:^7.0.0"
process-warning: "npm:^3.0.0"
process-warning: "npm:^5.0.0"
quick-format-unescaped: "npm:^4.0.3"
real-require: "npm:^0.2.0"
safe-stable-stringify: "npm:^2.3.1"
sonic-boom: "npm:^4.0.1"
thread-stream: "npm:^3.0.0"
thread-stream: "npm:^4.0.0"
bin:
pino: bin.js
checksum: 10c0/d060530ae2e4e8f21d04bb0f44f009f94d207d7f4337f508f618416514214ddaf1b29f8c5c265153a19ce3b6480b451461f40020f916ace9d53a5aa07624b79c
checksum: 10c0/cfbbc7dfaa2df2aa2dce728d751aa4b5b7ab973b2cd4bfff57868567563ef0c1c021f22932769141d535c72662390e09a0190e44f4413496dbe5e3c672816308
languageName: node
linkType: hard
@@ -1260,13 +1212,6 @@ __metadata:
languageName: node
linkType: hard
"process-warning@npm:^3.0.0":
version: 3.0.0
resolution: "process-warning@npm:3.0.0"
checksum: 10c0/60f3c8ddee586f0706c1e6cb5aa9c86df05774b9330d792d7c8851cf0031afd759d665404d07037e0b4901b55c44a423f07bdc465c63de07d8d23196bb403622
languageName: node
linkType: hard
"process-warning@npm:^4.0.0":
version: 4.0.0
resolution: "process-warning@npm:4.0.0"
@@ -1281,13 +1226,6 @@ __metadata:
languageName: node
linkType: hard
"process@npm:^0.11.10":
version: 0.11.10
resolution: "process@npm:0.11.10"
checksum: 10c0/40c3ce4b7e6d4b8c3355479df77aeed46f81b279818ccdc500124e6a5ab882c0cc81ff7ea16384873a95a74c4570b01b120f287abbdd4c877931460eca6084b3
languageName: node
linkType: hard
"promise-retry@npm:^2.0.1":
version: 2.0.1
resolution: "promise-retry@npm:2.0.1"
@@ -1319,19 +1257,6 @@ __metadata:
languageName: node
linkType: hard
"readable-stream@npm:^4.0.0":
version: 4.5.2
resolution: "readable-stream@npm:4.5.2"
dependencies:
abort-controller: "npm:^3.0.0"
buffer: "npm:^6.0.3"
events: "npm:^3.3.0"
process: "npm:^0.11.10"
string_decoder: "npm:^1.3.0"
checksum: 10c0/a2c80e0e53aabd91d7df0330929e32d0a73219f9477dbbb18472f6fdd6a11a699fc5d172a1beff98d50eae4f1496c950ffa85b7cc2c4c196963f289a5f39275d
languageName: node
linkType: hard
"readdirp@npm:~3.6.0":
version: 3.6.0
resolution: "readdirp@npm:3.6.0"
@@ -1415,13 +1340,6 @@ __metadata:
languageName: node
linkType: hard
"safe-buffer@npm:~5.2.0":
version: 5.2.1
resolution: "safe-buffer@npm:5.2.1"
checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3
languageName: node
linkType: hard
"safe-regex2@npm:^4.0.0":
version: 4.0.0
resolution: "safe-regex2@npm:4.0.0"
@@ -1589,15 +1507,6 @@ __metadata:
languageName: node
linkType: hard
"string_decoder@npm:^1.3.0":
version: 1.3.0
resolution: "string_decoder@npm:1.3.0"
dependencies:
safe-buffer: "npm:~5.2.0"
checksum: 10c0/810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d
languageName: node
linkType: hard
"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1":
version: 6.0.1
resolution: "strip-ansi@npm:6.0.1"
@@ -1617,24 +1526,24 @@ __metadata:
linkType: hard
"tar@npm:^7.4.3":
version: 7.5.6
resolution: "tar@npm:7.5.6"
version: 7.5.7
resolution: "tar@npm:7.5.7"
dependencies:
"@isaacs/fs-minipass": "npm:^4.0.0"
chownr: "npm:^3.0.0"
minipass: "npm:^7.1.2"
minizlib: "npm:^3.1.0"
yallist: "npm:^5.0.0"
checksum: 10c0/08af3807035957650ad5f2a300c49ca4fe0566ac0ea5a23741a5b5103c6da42891a9eeaed39bc1fbcf21c5cac4dc846828a004727fb08b9d946322d3144d1fd2
checksum: 10c0/51f261afc437e1112c3e7919478d6176ea83f7f7727864d8c2cce10f0b03a631d1911644a567348c3063c45abdae39718ba97abb073d22aa3538b9a53ae1e31c
languageName: node
linkType: hard
"thread-stream@npm:^3.0.0":
version: 3.0.2
resolution: "thread-stream@npm:3.0.2"
"thread-stream@npm:^4.0.0":
version: 4.0.0
resolution: "thread-stream@npm:4.0.0"
dependencies:
real-require: "npm:^0.2.0"
checksum: 10c0/12b797b38eafdb480ed8931b288c0ad1833a7d2d18b5aeba955ffbe054c53681f19b46b299f2c24d86fd52f786850586d864a4bb025d22155c273c9e5296a1ed
checksum: 10c0/f0a47a673af574062df20140ec3e857d679365253fcaa98a76c167c9a053ee03291f4b25bd89b078c7f6a48f07f49d5a49e4f5598bb1c8a263ec15955a018fbd
languageName: node
linkType: hard

View File

@@ -25,12 +25,12 @@
"postinstall": "husky"
},
"devDependencies": {
"@biomejs/biome": "2.3.13",
"@biomejs/biome": "2.4.1",
"husky": "^9.1.7",
"lint-staged": "^16.2.7",
"turbo": "^2.7.6",
"typedoc": "^0.28.16",
"typedoc-plugin-markdown": "^4.9.0",
"turbo": "^2.8.9",
"typedoc": "^0.28.17",
"typedoc-plugin-markdown": "^4.10.0",
"typescript": "^5.9.3"
},
"engines": {

View File

@@ -31,12 +31,12 @@
"@discordeno/utils": "workspace:^"
},
"devDependencies": {
"@biomejs/biome": "2.3.13",
"@swc/cli": "^0.7.10",
"@swc/core": "^1.15.10",
"@biomejs/biome": "2.4.1",
"@swc/cli": "^0.8.0",
"@swc/core": "^1.15.11",
"@types/chai": "^5.2.3",
"@types/mocha": "^10.0.10",
"@types/node": "^25.0.10",
"@types/node": "^25.2.3",
"@types/sinon": "^21.0.0",
"c8": "^10.1.3",
"chai": "^6.2.2",

View File

@@ -327,6 +327,7 @@ export function createDesiredPropertiesObject<T extends RecursivePartial<Transfo
style: defaultValue,
label: defaultValue,
value: defaultValue,
default: defaultValue,
emoji: defaultValue,
url: defaultValue,
channelTypes: defaultValue,
@@ -354,6 +355,7 @@ export function createDesiredPropertiesObject<T extends RecursivePartial<Transfo
size: defaultValue,
component: defaultValue,
values: defaultValue,
resolved: defaultValue,
...desiredProperties.component,
},
forumTag: {
@@ -964,13 +966,14 @@ export enum DesiredPropertiesBehavior {
}
/** @private This is subject to breaking changes without notices */
export type RemoveKeyIfUndesired<Key, T, TProps extends TransformersDesiredProperties> = IsKeyDesired<
Key,
TransformersDesiredPropertiesMetadata[KeyByValue<TransformersObjects, T>]['dependencies'],
TProps[KeyByValue<TransformersObjects, T>]
> extends true
? Key
: never;
export type RemoveKeyIfUndesired<Key, T, TProps extends TransformersDesiredProperties> =
IsKeyDesired<
Key,
TransformersDesiredPropertiesMetadata[KeyByValue<TransformersObjects, T>]['dependencies'],
TProps[KeyByValue<TransformersObjects, T>]
> extends true
? Key
: never;
/** @private This is subject to breaking changes without notices */
export type GetErrorWhenUndesired<
@@ -1003,39 +1006,40 @@ export type IsObject<T> = T extends object ? (T extends Function ? false : true)
/**
* Transform a generic object properties based on the desired properties and behavior for other transformer objects in the object.
*/
export type TransformProperty<T, TProps extends TransformersDesiredProperties, TBehavior extends DesiredPropertiesBehavior> = T extends Array<infer U> // is it an array?
? // Yes, apply the desired props
TransformProperty<U, TProps, TBehavior>[]
: // No, is it a collection?
T extends Collection<infer U, infer UObj>
? // Yes, check for nested proprieties
Collection<U, TransformProperty<UObj, TProps, TBehavior>>
: // No, is it a Bot?
Equals<T, Bot> extends true
? // Yes, return a bot with the correct set of props & behavior
Bot<TProps, TBehavior>
: // No, is it a transformed object?
T extends TransformersObjects[keyof TransformersObjects]
? // Yes, apply the desired props
SetupDesiredProps<T, TProps, TBehavior>
: // No, is it an interaction resolved data member? | We need to check this here because the type itself has not way of getting the desired props
Equals<T, InteractionResolvedDataMember<TransformersDesiredProperties, DesiredPropertiesBehavior>> extends true
export type TransformProperty<T, TProps extends TransformersDesiredProperties, TBehavior extends DesiredPropertiesBehavior> =
T extends Array<infer U> // is it an array?
? // Yes, apply the desired props
TransformProperty<U, TProps, TBehavior>[]
: // No, is it a collection?
T extends Collection<infer U, infer UObj>
? // Yes, check for nested proprieties
Collection<U, TransformProperty<UObj, TProps, TBehavior>>
: // No, is it a Bot?
Equals<T, Bot> extends true
? // Yes, return a bot with the correct set of props & behavior
Bot<TProps, TBehavior>
: // No, is it a transformed object?
T extends TransformersObjects[keyof TransformersObjects]
? // Yes, apply the desired props
InteractionResolvedDataMember<TProps, TBehavior>
: // No, is it an interaction resolved data channel? | We need to check this here because the type itself has not way of getting the desired props
Equals<T, InteractionResolvedDataChannel<TransformersDesiredProperties, DesiredPropertiesBehavior>> extends true
SetupDesiredProps<T, TProps, TBehavior>
: // No, is it an interaction resolved data member? | We need to check this here because the type itself has not way of getting the desired props
Equals<T, InteractionResolvedDataMember<TransformersDesiredProperties, DesiredPropertiesBehavior>> extends true
? // Yes, apply the desired props
InteractionResolvedDataChannel<TProps, TBehavior>
: // Is it a function?
T extends (...args: infer P) => Promise<infer R>
? // Yes, we need to ensure we transform the return type as well
(...args: P) => Promise<TransformProperty<R, TProps, TBehavior>>
: // Is it an object?
IsObject<T> extends true
? // Yes, we need to ensure we transform the nested properties as well
{ [K in keyof T]: TransformProperty<T[K], TProps, TBehavior> }
: // No, this is a normal value such as string / bigint / number
T;
InteractionResolvedDataMember<TProps, TBehavior>
: // No, is it an interaction resolved data channel? | We need to check this here because the type itself has not way of getting the desired props
Equals<T, InteractionResolvedDataChannel<TransformersDesiredProperties, DesiredPropertiesBehavior>> extends true
? // Yes, apply the desired props
InteractionResolvedDataChannel<TProps, TBehavior>
: // Is it a function?
T extends (...args: infer P) => Promise<infer R>
? // Yes, we need to ensure we transform the return type as well
(...args: P) => Promise<TransformProperty<R, TProps, TBehavior>>
: // Is it an object?
IsObject<T> extends true
? // Yes, we need to ensure we transform the nested properties as well
{ [K in keyof T]: TransformProperty<T[K], TProps, TBehavior> }
: // No, this is a normal value such as string / bigint / number
T;
/**
* Apply desired properties to an object.

View File

@@ -86,6 +86,7 @@ export type EventHandlers<TProps extends TransformersDesiredProperties, TBehavio
temporary: boolean;
uses: number;
expiresAt: number;
roleIds?: bigint[];
}) => unknown;
inviteDelete: (payload: { channelId: bigint; guildId?: bigint; code: string }) => unknown;
guildMemberAdd: (member: SetupDesiredProps<Member, TProps, TBehavior>, user: SetupDesiredProps<User, TProps, TBehavior>) => unknown;

View File

@@ -22,5 +22,6 @@ export async function handleInviteCreate(bot: Bot, data: DiscordGatewayPayload,
temporary: payload.temporary,
uses: payload.uses,
expiresAt: Date.parse(payload.expires_at),
roleIds: payload.role_ids ? payload.role_ids.map((id) => bot.transformers.snowflake(id)) : undefined,
});
}

View File

@@ -1,5 +1,5 @@
import type { BigString, DiscordChannel, DiscordForumTag } from '@discordeno/types';
import { calculatePermissions, iconHashToBigInt } from '@discordeno/utils';
import { iconHashToBigInt } from '@discordeno/utils';
import type { Bot } from '../bot.js';
import type { DesiredPropertiesBehavior, SetupDesiredProps, TransformersDesiredProperties } from '../desiredProperties.js';
import { callCustomizer } from '../transformers.js';
@@ -53,8 +53,8 @@ export const baseChannel: Channel = {
return {
type,
id,
allow: calculatePermissions(allow),
deny: calculatePermissions(deny),
allow,
deny,
};
}) ?? []
);

View File

@@ -1,6 +1,12 @@
import {
type DiscordActionRow,
type DiscordButtonComponent,
type DiscordChannelSelectComponent,
type DiscordChannelSelectInteractionResponseFromModal,
type DiscordCheckboxComponent,
type DiscordCheckboxGroupComponent,
type DiscordCheckboxGroupInteractionResponse,
type DiscordCheckboxInteractionResponse,
type DiscordContainerComponent,
type DiscordFileComponent,
type DiscordFileUploadComponent,
@@ -9,18 +15,26 @@ import {
type DiscordLabelInteractionResponse,
type DiscordMediaGalleryComponent,
type DiscordMediaGalleryItem,
type DiscordMentionableSelectComponent,
type DiscordMentionableSelectInteractionResponseFromModal,
type DiscordMessageComponent,
type DiscordMessageComponentFromModalInteractionResponse,
type DiscordRadioGroupComponent,
type DiscordRadioGroupInteractionResponse,
type DiscordRoleSelectComponent,
type DiscordRoleSelectInteractionResponseFromModal,
type DiscordSectionComponent,
type DiscordSelectMenuComponent,
type DiscordSeparatorComponent,
type DiscordStringSelectInteractionResponse,
type DiscordStringSelectComponent,
type DiscordStringSelectInteractionResponseFromModal,
type DiscordTextDisplayComponent,
type DiscordTextDisplayInteractionResponse,
type DiscordTextInputComponent,
type DiscordTextInputInteractionResponse,
type DiscordThumbnailComponent,
type DiscordUnfurledMediaItem,
type DiscordUserSelectComponent,
type DiscordUserSelectInteractionResponseFromModal,
MessageComponentTypes,
} from '@discordeno/types';
import type { Bot } from '../bot.js';
@@ -55,11 +69,19 @@ export function transformComponent(
component = transformInputTextComponent(bot, payload);
break;
case MessageComponentTypes.StringSelect:
component = transformStringSelectMenuComponent(bot, payload);
break;
case MessageComponentTypes.UserSelect:
component = transformUserSelectMenuComponent(bot, payload);
break;
case MessageComponentTypes.RoleSelect:
component = transformRoleSelectMenuComponent(bot, payload);
break;
case MessageComponentTypes.MentionableSelect:
component = transformMentionableSelectMenuComponent(bot, payload);
break;
case MessageComponentTypes.ChannelSelect:
component = transformSelectMenuComponent(bot, payload);
component = transformChannelSelectMenuComponent(bot, payload);
break;
case MessageComponentTypes.Section:
component = transformSectionComponent(bot, payload);
@@ -85,6 +107,15 @@ export function transformComponent(
case MessageComponentTypes.FileUpload:
component = transformFileUploadComponent(bot, payload);
break;
case MessageComponentTypes.RadioGroup:
component = transformRadioGroupComponent(bot, payload);
break;
case MessageComponentTypes.CheckboxGroup:
component = transformCheckboxGroupComponent(bot, payload);
break;
case MessageComponentTypes.Checkbox:
component = transformCheckboxComponent(bot, payload);
break;
}
return callCustomizer('component', bot, payload, component, {
@@ -186,7 +217,10 @@ function transformInputTextComponent(bot: Bot, payload: Partial<DiscordTextInput
return input;
}
function transformSelectMenuComponent(bot: Bot, payload: Partial<DiscordSelectMenuComponent | DiscordStringSelectInteractionResponse>) {
function transformStringSelectMenuComponent(
bot: Bot,
payload: Partial<DiscordStringSelectComponent | DiscordStringSelectInteractionResponseFromModal>,
) {
const props = bot.transformers.desiredProperties.component;
const select = {} as SetupDesiredProps<Component, TransformersDesiredProperties, DesiredPropertiesBehavior>;
@@ -198,17 +232,11 @@ function transformSelectMenuComponent(bot: Bot, payload: Partial<DiscordSelectMe
if ('values' in payload) {
if (props.values && payload.values) select.values = payload.values;
} else {
const _payload = payload as Partial<DiscordSelectMenuComponent>;
const _payload = payload as Partial<DiscordStringSelectComponent>;
if (props.placeholder && _payload.placeholder) select.placeholder = _payload.placeholder;
if (props.minValues && _payload.min_values) select.minValues = _payload.min_values;
if (props.maxValues && _payload.max_values) select.maxValues = _payload.max_values;
if (props.defaultValues && _payload.default_values)
select.defaultValues = _payload.default_values.map((defaultValue) => ({
id: bot.transformers.snowflake(defaultValue.id),
type: defaultValue.type,
}));
if (props.channelTypes && _payload.channel_types) select.channelTypes = _payload.channel_types;
if (props.options && _payload.options)
select.options = _payload.options.map((option) => ({
label: option.label,
@@ -229,6 +257,129 @@ function transformSelectMenuComponent(bot: Bot, payload: Partial<DiscordSelectMe
return select;
}
function transformUserSelectMenuComponent(bot: Bot, payload: Partial<DiscordUserSelectComponent | DiscordUserSelectInteractionResponseFromModal>) {
const props = bot.transformers.desiredProperties.component;
const select = {} as SetupDesiredProps<Component, TransformersDesiredProperties, DesiredPropertiesBehavior>;
if (props.type && payload.type) select.type = payload.type;
if (props.id && payload.id) select.id = payload.id;
if (props.customId && payload.custom_id) select.customId = payload.custom_id;
// Check if this is the user select response
if ('values' in payload) {
if (props.values && payload.values) select.values = payload.values;
if (props.resolved && payload.resolved) select.resolved = bot.transformers.interactionDataResolved(bot, payload.resolved);
} else {
const _payload = payload as Partial<DiscordUserSelectComponent>;
if (props.placeholder && _payload.placeholder) select.placeholder = _payload.placeholder;
if (props.minValues && _payload.min_values) select.minValues = _payload.min_values;
if (props.maxValues && _payload.max_values) select.maxValues = _payload.max_values;
if (props.defaultValues && _payload.default_values)
select.defaultValues = _payload.default_values.map((defaultValue) => ({
id: bot.transformers.snowflake(defaultValue.id),
type: defaultValue.type,
}));
if (props.disabled && _payload.disabled) select.disabled = _payload.disabled;
}
return select;
}
function transformRoleSelectMenuComponent(bot: Bot, payload: Partial<DiscordRoleSelectComponent | DiscordRoleSelectInteractionResponseFromModal>) {
const props = bot.transformers.desiredProperties.component;
const select = {} as SetupDesiredProps<Component, TransformersDesiredProperties, DesiredPropertiesBehavior>;
if (props.type && payload.type) select.type = payload.type;
if (props.id && payload.id) select.id = payload.id;
if (props.customId && payload.custom_id) select.customId = payload.custom_id;
// Check if this is the role select response
if ('values' in payload) {
if (props.values && payload.values) select.values = payload.values;
if (props.resolved && payload.resolved) select.resolved = bot.transformers.interactionDataResolved(bot, payload.resolved);
} else {
const _payload = payload as Partial<DiscordUserSelectComponent>;
if (props.placeholder && _payload.placeholder) select.placeholder = _payload.placeholder;
if (props.minValues && _payload.min_values) select.minValues = _payload.min_values;
if (props.maxValues && _payload.max_values) select.maxValues = _payload.max_values;
if (props.defaultValues && _payload.default_values)
select.defaultValues = _payload.default_values.map((defaultValue) => ({
id: bot.transformers.snowflake(defaultValue.id),
type: defaultValue.type,
}));
if (props.disabled && _payload.disabled) select.disabled = _payload.disabled;
}
return select;
}
function transformMentionableSelectMenuComponent(
bot: Bot,
payload: Partial<DiscordMentionableSelectComponent | DiscordMentionableSelectInteractionResponseFromModal>,
) {
const props = bot.transformers.desiredProperties.component;
const select = {} as SetupDesiredProps<Component, TransformersDesiredProperties, DesiredPropertiesBehavior>;
if (props.type && payload.type) select.type = payload.type;
if (props.id && payload.id) select.id = payload.id;
if (props.customId && payload.custom_id) select.customId = payload.custom_id;
// Check if this is the mentionable select response
if ('values' in payload) {
if (props.values && payload.values) select.values = payload.values;
if (props.resolved && payload.resolved) select.resolved = bot.transformers.interactionDataResolved(bot, payload.resolved);
} else {
const _payload = payload as Partial<DiscordUserSelectComponent>;
if (props.placeholder && _payload.placeholder) select.placeholder = _payload.placeholder;
if (props.minValues && _payload.min_values) select.minValues = _payload.min_values;
if (props.maxValues && _payload.max_values) select.maxValues = _payload.max_values;
if (props.defaultValues && _payload.default_values)
select.defaultValues = _payload.default_values.map((defaultValue) => ({
id: bot.transformers.snowflake(defaultValue.id),
type: defaultValue.type,
}));
if (props.disabled && _payload.disabled) select.disabled = _payload.disabled;
}
return select;
}
function transformChannelSelectMenuComponent(
bot: Bot,
payload: Partial<DiscordChannelSelectComponent | DiscordChannelSelectInteractionResponseFromModal>,
) {
const props = bot.transformers.desiredProperties.component;
const select = {} as SetupDesiredProps<Component, TransformersDesiredProperties, DesiredPropertiesBehavior>;
if (props.type && payload.type) select.type = payload.type;
if (props.id && payload.id) select.id = payload.id;
if (props.customId && payload.custom_id) select.customId = payload.custom_id;
// Check if this is the channel select response
if ('values' in payload) {
if (props.values && payload.values) select.values = payload.values;
if (props.resolved && payload.resolved) select.resolved = bot.transformers.interactionDataResolved(bot, payload.resolved);
} else {
const _payload = payload as Partial<DiscordChannelSelectComponent>;
if (props.placeholder && _payload.placeholder) select.placeholder = _payload.placeholder;
if (props.minValues && _payload.min_values) select.minValues = _payload.min_values;
if (props.maxValues && _payload.max_values) select.maxValues = _payload.max_values;
if (props.defaultValues && _payload.default_values)
select.defaultValues = _payload.default_values.map((defaultValue) => ({
id: bot.transformers.snowflake(defaultValue.id),
type: defaultValue.type,
}));
if (props.channelTypes && _payload.channel_types) select.channelTypes = _payload.channel_types;
if (props.disabled && _payload.disabled) select.disabled = _payload.disabled;
}
return select;
}
function transformSectionComponent(bot: Bot, payload: Partial<DiscordSectionComponent>) {
const props = bot.transformers.desiredProperties.component;
const section = {} as SetupDesiredProps<Component, TransformersDesiredProperties, DesiredPropertiesBehavior>;
@@ -342,3 +493,61 @@ function transformFileUploadComponent(bot: Bot, payload: Partial<DiscordFileUplo
return fileUpload;
}
function transformRadioGroupComponent(bot: Bot, payload: Partial<DiscordRadioGroupComponent | DiscordRadioGroupInteractionResponse>) {
const props = bot.transformers.desiredProperties.component;
const radioGroup = {} as SetupDesiredProps<Component, TransformersDesiredProperties, DesiredPropertiesBehavior>;
if (props.type && payload.type) radioGroup.type = payload.type;
if (props.id && payload.id) radioGroup.id = payload.id;
if (props.customId && payload.custom_id) radioGroup.customId = payload.custom_id;
// Check if this is the component (has options) or the interaction response (modal submit, has value)
if ('options' in payload) {
if (props.options && payload.options) radioGroup.options = payload.options;
if (props.required && payload.required !== undefined) radioGroup.required = payload.required;
} else {
const _payload = payload as Partial<DiscordRadioGroupInteractionResponse>;
if (props.value) radioGroup.value = _payload.value ?? undefined;
}
return radioGroup;
}
function transformCheckboxGroupComponent(bot: Bot, payload: Partial<DiscordCheckboxGroupComponent | DiscordCheckboxGroupInteractionResponse>) {
const props = bot.transformers.desiredProperties.component;
const checkboxGroup = {} as SetupDesiredProps<Component, TransformersDesiredProperties, DesiredPropertiesBehavior>;
if (props.type && payload.type) checkboxGroup.type = payload.type;
if (props.id && payload.id) checkboxGroup.id = payload.id;
if (props.customId && payload.custom_id) checkboxGroup.customId = payload.custom_id;
// Check if this is the component (has options) or the interaction response (modal submit, has values)
if ('options' in payload) {
if (props.options && payload.options) checkboxGroup.options = payload.options;
if (props.minValues && payload.min_values !== undefined) checkboxGroup.minValues = payload.min_values;
if (props.maxValues && payload.max_values !== undefined) checkboxGroup.maxValues = payload.max_values;
if (props.required && payload.required !== undefined) checkboxGroup.required = payload.required;
} else {
const _payload = payload as Partial<DiscordCheckboxGroupInteractionResponse>;
if (props.values && _payload.values) checkboxGroup.values = _payload.values;
}
return checkboxGroup;
}
function transformCheckboxComponent(bot: Bot, payload: Partial<DiscordCheckboxComponent | DiscordCheckboxInteractionResponse>) {
const props = bot.transformers.desiredProperties.component;
const checkbox = {} as SetupDesiredProps<Component, TransformersDesiredProperties, DesiredPropertiesBehavior>;
if (props.type && payload.type) checkbox.type = payload.type;
if (props.id && payload.id) checkbox.id = payload.id;
if (props.customId && payload.custom_id) checkbox.customId = payload.custom_id;
if (props.value && 'value' in payload) checkbox.value = payload.value;
if (props.default && 'default' in payload) checkbox.default = payload.default;
return checkbox;
}

View File

@@ -30,7 +30,10 @@ export function transformInvite(bot: Bot, payload: Partial<DiscordInviteMetadata
invite.guildScheduledEvent = bot.transformers.scheduledEvent(bot, payload.guild_scheduled_event);
if (props.expiresAt && payload.expires_at) invite.expiresAt = Date.parse(payload.expires_at);
if (props.flags && payload.flags) invite.flags = new ToggleBitfield(payload.flags);
if (props.roles && payload.roles) invite.roles = payload.roles.map((role) => bot.transformers.role(bot, role));
if (props.roles && payload.roles) {
// Going from a Partial<T> To Pick<T, K> requires an as, as typescript can't guarantee that the properties exist on the partial
invite.roles = payload.roles.map((role) => bot.transformers.role(bot, role, { partial: true, guildId: payload.guild?.id })) as Invite['roles'];
}
return callCustomizer('invite', bot, payload, invite, {
shardId: extra?.shardId,

View File

@@ -2,23 +2,35 @@ import {
type ButtonStyles,
type DiscordActionRow,
type DiscordButtonComponent,
type DiscordChannelSelectComponent,
type DiscordChannelSelectInteractionResponseFromModal,
type DiscordCheckboxComponent,
type DiscordCheckboxGroupComponent,
type DiscordContainerComponent,
type DiscordFileComponent,
type DiscordFileUploadComponent,
type DiscordLabelComponent,
type DiscordMediaGalleryComponent,
type DiscordMediaGalleryItem,
type DiscordMentionableSelectComponent,
type DiscordMentionableSelectInteractionResponseFromModal,
type DiscordMessageComponent,
type DiscordMessageComponentFromModalInteractionResponse,
type DiscordRadioGroupComponent,
type DiscordRoleSelectComponent,
type DiscordRoleSelectInteractionResponseFromModal,
type DiscordSectionComponent,
type DiscordSelectMenuComponent,
type DiscordStringSelectComponent,
type DiscordStringSelectInteractionResponseFromModal,
type DiscordTextDisplayComponent,
type DiscordTextInputComponent,
type DiscordTextInputInteractionResponse,
type DiscordThumbnailComponent,
type DiscordUnfurledMediaItem,
type DiscordUserSelectComponent,
type DiscordUserSelectInteractionResponseFromModal,
MessageComponentTypes,
type SelectOption,
type TextStyles,
} from '@discordeno/types';
import type { Bot } from '../../bot.js';
@@ -39,11 +51,15 @@ export function transformComponentToDiscordComponent(
case MessageComponentTypes.TextInput:
return transformInputTextComponent(bot, payload);
case MessageComponentTypes.StringSelect:
case MessageComponentTypes.ChannelSelect:
case MessageComponentTypes.RoleSelect:
return transformStringSelectMenuComponent(bot, payload);
case MessageComponentTypes.UserSelect:
return transformUserSelectMenuComponent(bot, payload);
case MessageComponentTypes.RoleSelect:
return transformRoleSelectMenuComponent(bot, payload);
case MessageComponentTypes.MentionableSelect:
return transformSelectMenuComponent(bot, payload);
return transformMentionableSelectMenuComponent(bot, payload);
case MessageComponentTypes.ChannelSelect:
return transformChannelSelectMenuComponent(bot, payload);
case MessageComponentTypes.Section:
return transformSectionComponent(bot, payload);
case MessageComponentTypes.File:
@@ -56,6 +72,12 @@ export function transformComponentToDiscordComponent(
return transformLabelComponent(bot, payload);
case MessageComponentTypes.FileUpload:
return transformFileUploadComponent(bot, payload);
case MessageComponentTypes.RadioGroup:
return transformRadioGroupComponent(bot, payload);
case MessageComponentTypes.CheckboxGroup:
return transformCheckboxGroupComponent(bot, payload);
case MessageComponentTypes.Checkbox:
return transformCheckboxComponent(bot, payload);
case MessageComponentTypes.Separator:
case MessageComponentTypes.TextDisplay:
// As of now they are compatible
@@ -131,7 +153,7 @@ function transformInputTextComponent(_bot: Bot, payload: Component): DiscordText
style: payload.style as TextStyles,
custom_id: payload.customId!,
label: payload.label!,
value: payload.value,
value: payload.value as string | undefined,
max_length: payload.maxLength,
min_length: payload.minLength,
placeholder: payload.placeholder,
@@ -139,29 +161,27 @@ function transformInputTextComponent(_bot: Bot, payload: Component): DiscordText
};
}
function transformSelectMenuComponent(bot: Bot, payload: Component): DiscordSelectMenuComponent | DiscordStringSelectInteractionResponseFromModal {
function transformStringSelectMenuComponent(
bot: Bot,
payload: Component,
): DiscordStringSelectComponent | DiscordStringSelectInteractionResponseFromModal {
if (payload.values) {
return {
type: MessageComponentTypes.StringSelect,
values: payload.values,
custom_id: payload.customId!,
id: payload.id!,
};
} satisfies DiscordStringSelectInteractionResponseFromModal;
}
return {
type: payload.type as DiscordSelectMenuComponent['type'],
type: MessageComponentTypes.StringSelect,
id: payload.id,
custom_id: payload.customId!,
channel_types: payload.channelTypes,
default_values: payload.defaultValues?.map((defaultValue) => ({
id: bot.transformers.reverse.snowflake(defaultValue.id),
type: defaultValue.type,
})),
disabled: payload.disabled,
max_values: payload.maxValues,
min_values: payload.minValues,
options: payload.options?.map((option) => ({
options: (payload.options as SelectOption[] | undefined)?.map((option) => ({
label: option.label,
value: option.value,
description: option.description,
@@ -173,10 +193,117 @@ function transformSelectMenuComponent(bot: Bot, payload: Component): DiscordSele
}
: undefined,
default: option.default,
})),
}))!,
placeholder: payload.placeholder,
required: payload.required,
};
} satisfies DiscordStringSelectComponent;
}
function transformUserSelectMenuComponent(bot: Bot, payload: Component): DiscordUserSelectComponent | DiscordUserSelectInteractionResponseFromModal {
if (payload.values) {
return {
type: MessageComponentTypes.UserSelect,
values: payload.values,
custom_id: payload.customId!,
id: payload.id!,
// TODO: Add resolved reverse transformer
resolved: {},
} satisfies DiscordUserSelectInteractionResponseFromModal;
}
return {
type: MessageComponentTypes.UserSelect,
id: payload.id,
custom_id: payload.customId!,
disabled: payload.disabled,
max_values: payload.maxValues,
min_values: payload.minValues,
placeholder: payload.placeholder,
default_values: payload.defaultValues?.map((value) => ({ id: bot.transformers.reverse.snowflake(value.id), type: value.type })),
required: payload.required,
} satisfies DiscordUserSelectComponent;
}
function transformRoleSelectMenuComponent(bot: Bot, payload: Component): DiscordRoleSelectComponent | DiscordRoleSelectInteractionResponseFromModal {
if (payload.values) {
return {
type: MessageComponentTypes.RoleSelect,
values: payload.values,
custom_id: payload.customId!,
id: payload.id!,
// TODO: Add resolved reverse transformer
resolved: {},
} satisfies DiscordRoleSelectInteractionResponseFromModal;
}
return {
type: MessageComponentTypes.RoleSelect,
id: payload.id,
custom_id: payload.customId!,
disabled: payload.disabled,
max_values: payload.maxValues,
min_values: payload.minValues,
placeholder: payload.placeholder,
default_values: payload.defaultValues?.map((value) => ({ id: bot.transformers.reverse.snowflake(value.id), type: value.type })),
required: payload.required,
} satisfies DiscordRoleSelectComponent;
}
function transformMentionableSelectMenuComponent(
bot: Bot,
payload: Component,
): DiscordMentionableSelectComponent | DiscordMentionableSelectInteractionResponseFromModal {
if (payload.values) {
return {
type: MessageComponentTypes.MentionableSelect,
values: payload.values,
custom_id: payload.customId!,
id: payload.id!,
// TODO: Add resolved reverse transformer
resolved: {},
} satisfies DiscordMentionableSelectInteractionResponseFromModal;
}
return {
type: MessageComponentTypes.MentionableSelect,
id: payload.id,
custom_id: payload.customId!,
disabled: payload.disabled,
max_values: payload.maxValues,
min_values: payload.minValues,
placeholder: payload.placeholder,
default_values: payload.defaultValues?.map((value) => ({ id: bot.transformers.reverse.snowflake(value.id), type: value.type })),
required: payload.required,
} satisfies DiscordMentionableSelectComponent;
}
function transformChannelSelectMenuComponent(
bot: Bot,
payload: Component,
): DiscordChannelSelectComponent | DiscordChannelSelectInteractionResponseFromModal {
if (payload.values) {
return {
type: MessageComponentTypes.ChannelSelect,
values: payload.values,
custom_id: payload.customId!,
id: payload.id!,
// TODO: Add resolved reverse transformer
resolved: {},
} satisfies DiscordChannelSelectInteractionResponseFromModal;
}
return {
type: MessageComponentTypes.ChannelSelect,
id: payload.id,
custom_id: payload.customId!,
disabled: payload.disabled,
max_values: payload.maxValues,
min_values: payload.minValues,
default_values: payload.defaultValues?.map((value) => ({ id: bot.transformers.reverse.snowflake(value.id), type: value.type })),
placeholder: payload.placeholder,
required: payload.required,
channel_types: payload.channelTypes,
} satisfies DiscordChannelSelectComponent;
}
function transformSectionComponent(bot: Bot, payload: Component): DiscordSectionComponent {
@@ -237,3 +364,34 @@ function transformFileUploadComponent(bot: Bot, payload: Component): DiscordFile
required: payload.required,
};
}
function transformRadioGroupComponent(bot: Bot, payload: Component): DiscordRadioGroupComponent {
return {
type: MessageComponentTypes.RadioGroup,
id: payload.id,
custom_id: payload.customId!,
options: payload.options ?? [],
required: payload.required,
};
}
function transformCheckboxGroupComponent(bot: Bot, payload: Component): DiscordCheckboxGroupComponent {
return {
type: MessageComponentTypes.CheckboxGroup,
id: payload.id,
custom_id: payload.customId!,
options: payload.options ?? [],
min_values: payload.minValues,
max_values: payload.maxValues,
required: payload.required,
};
}
function transformCheckboxComponent(bot: Bot, payload: Component): DiscordCheckboxComponent {
return {
type: MessageComponentTypes.Checkbox,
id: payload.id,
custom_id: payload.customId!,
default: payload.default,
};
}

View File

@@ -76,7 +76,7 @@ export const GuildToggle = {
invitesDisabled: 1n << 29n,
/** Whether the guild has access to set an invite splash background */
inviteSplash: 1n << 5n,
/** Whether the guild has enabled [Membership Screening](https://discord.com/developers/docs/resources/guild#membership-screening-object) */
/** Whether the guild has enabled [Membership Screening](https://docs.discord.com/developers/resources/guild#membership-screening-object) */
memberVerificationGateEnabled: 1n << 19n,
/** Whether the guild has more soundboard sound slot */
moreSoundboard: 1n << 24n,
@@ -274,7 +274,7 @@ export class GuildToggles extends ToggleBitfieldBigint {
return this.has('welcomeScreenEnabled');
}
/** Whether the guild has enabled [Membership Screening](https://discord.com/developers/docs/resources/guild#membership-screening-object) */
/** Whether the guild has enabled [Membership Screening](https://docs.discord.com/developers/resources/guild#membership-screening-object) */
get memberVerificationGateEnabled(): boolean {
return this.has('memberVerificationGateEnabled');
}

View File

@@ -13,6 +13,7 @@ import type {
ButtonStyles,
Camelize,
ChannelTypes,
CheckboxGroupOption,
DefaultMessageNotificationLevels,
DiscordActivityInstanceResource,
DiscordActivityLocationKind,
@@ -51,10 +52,10 @@ import type {
MfaLevels,
OAuth2Scope,
OverwriteTypes,
PermissionStrings,
PremiumTiers,
PremiumTypes,
PresenceStatus,
RadioGroupOption,
RoleFlags,
ScheduledEventEntityType,
ScheduledEventPrivacyLevel,
@@ -518,9 +519,9 @@ export interface Channel {
/** Either 0 (role) or 1 (member) */
type: OverwriteTypes;
/** Permission bit set */
allow: PermissionStrings[];
allow: bigint;
/** Permission bit set */
deny: PermissionStrings[];
deny: bigint;
}[];
}
@@ -578,8 +579,8 @@ export interface Component {
style?: ButtonStyles | TextStyles;
/** text that appears on the button (max 80 characters) */
label?: string;
/** the dev-define value of the option, max 100 characters for select or 4000 for input. */
value?: string;
/** the dev-define value of the option, max 100 characters for select or 4000 for input; or boolean for checkbox response. */
value?: string | boolean;
/** Emoji object that includes fields of name, id, and animated supporting unicode and custom emojis. */
emoji?: Pick<Partial<Emoji>, 'id' | 'name' | 'animated'>;
/** optional url for link-style buttons that can navigate a user to the web. Only type 5 Link buttons can have a url */
@@ -587,7 +588,8 @@ export interface Component {
/** List of channel types to include in a channel select menu options list */
channelTypes?: ChannelTypes[];
/** The choices! Maximum of 25 items. */
options?: SelectOption[];
/** The string select options or the radio or checkbox group options */
options?: SelectOption[] | RadioGroupOption[] | CheckboxGroupOption[];
/** A custom placeholder text if nothing is selected. Maximum 150 characters. */
placeholder?: string;
/** The minimum number of items that must be selected. Default 1. Between 1-25. */
@@ -601,7 +603,7 @@ export interface Component {
/** a list of child components */
components?: Component[];
/** List of default values for auto-populated select menu components; number of default values must be in the range defined by min_values and max_values */
defaultValues?: DiscordComponentDefaultValue[];
defaultValues?: ComponentDefaultValue[];
/** Identifier for a purchasable SKU, only available when using premium-style buttons */
skuId?: bigint;
/** Optional identifier for component */
@@ -634,6 +636,10 @@ export interface Component {
component?: Component;
/** The text of the selected options */
values?: string[];
/** Whether the checkbox is selected by default (Checkbox component). */
default?: boolean;
/** Resolved entities from selected options */
resolved?: InteractionDataResolved;
}
export interface UnfurledMediaItem {
@@ -660,7 +666,7 @@ export interface MediaGalleryItem {
spoiler?: boolean;
}
export interface DiscordComponentDefaultValue {
export interface ComponentDefaultValue {
/** ID of a user, role, or channel */
id: bigint;
/** Type of value that id represents. */
@@ -1146,7 +1152,7 @@ export interface Invite {
/**
* The roles assigned to the user upon accepting the invite
*/
roles?: Role[];
roles?: Pick<Role, 'id' | 'name' | 'position' | 'color' | 'colors' | 'icon' | 'unicodeEmoji'>[];
}
export interface Member {
@@ -1736,7 +1742,7 @@ export interface InviteStageInstance {
}
export interface Sticker {
/** [Id of the sticker](https://discord.com/developers/docs/reference#image-formatting) */
/** [Id of the sticker](https://docs.discord.com/developers/reference#image-formatting) */
id: bigint;
/** Id of the pack the sticker is from */
packId?: bigint;
@@ -1746,9 +1752,9 @@ export interface Sticker {
description: string;
/** a unicode emoji representing the sticker's expression */
tags: string;
/** [type of sticker](https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-types) */
/** [type of sticker](https://docs.discord.com/developers/resources/sticker#sticker-object-sticker-types) */
type: StickerTypes;
/** [Type of sticker format](https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-format-types) */
/** [Type of sticker format](https://docs.discord.com/developers/resources/sticker#sticker-object-sticker-format-types) */
formatType: StickerFormatTypes;
/** Whether or not the sticker is available */
available?: boolean;
@@ -2005,7 +2011,7 @@ export interface Subscription {
country?: string;
}
/** https://discord.com/developers/docs/resources/soundboard#soundboard-sound-object-soundboard-sound-structure */
/** https://docs.discord.com/developers/resources/soundboard#soundboard-sound-object-soundboard-sound-structure */
export interface SoundboardSound {
/** The name of this sound */
name: string;
@@ -2025,7 +2031,7 @@ export interface SoundboardSound {
user?: User;
}
/** https://discord.com/developers/docs/resources/lobby#lobby-object-lobby-structure */
/** https://docs.discord.com/developers/resources/lobby#lobby-object-lobby-structure */
export interface Lobby {
/** The id of this channel */
id: bigint;
@@ -2039,7 +2045,7 @@ export interface Lobby {
linkedChannel?: Channel;
}
/** https://discord.com/developers/docs/resources/lobby#lobby-member-object-lobby-member-structure */
/** https://docs.discord.com/developers/resources/lobby#lobby-member-object-lobby-member-structure */
export interface LobbyMember {
/** The id of the user */
id: bigint;

View File

@@ -31,12 +31,12 @@
"@discordeno/utils": "workspace:^"
},
"devDependencies": {
"@biomejs/biome": "2.3.13",
"@swc/cli": "^0.7.10",
"@swc/core": "^1.15.10",
"@biomejs/biome": "2.4.1",
"@swc/cli": "^0.8.0",
"@swc/core": "^1.15.11",
"@types/chai": "^5.2.3",
"@types/mocha": "^10.0.10",
"@types/node": "^25.0.10",
"@types/node": "^25.2.3",
"c8": "^10.1.3",
"chai": "^6.2.2",
"mocha": "^11.7.5",

View File

@@ -33,12 +33,12 @@
"fzstd": "^0.1.1"
},
"devDependencies": {
"@biomejs/biome": "2.3.13",
"@swc/cli": "^0.7.10",
"@swc/core": "^1.15.10",
"@biomejs/biome": "2.4.1",
"@swc/cli": "^0.8.0",
"@swc/core": "^1.15.11",
"@types/chai": "^5.2.3",
"@types/mocha": "^10.0.10",
"@types/node": "^25.0.10",
"@types/node": "^25.2.3",
"@types/sinon": "^21.0.0",
"@types/ws": "^8.18.1",
"c8": "^10.1.3",

View File

@@ -693,7 +693,7 @@ export class DiscordenoShard {
this.events.invalidSession?.(this, resumable);
// We need to wait for a random amount of time between 1 and 5
// Reference: https://discord.com/developers/docs/topics/gateway#resuming
// Reference: https://docs.discord.com/developers/events/gateway#resuming
await delay(Math.floor((Math.random() * 4 + 1) * 1000));
this.resolves.get('INVALID_SESSION')?.(packet);
@@ -796,7 +796,7 @@ export class DiscordenoShard {
// The first heartbeat needs to be send with a random delay between `0` and `interval`
// Using a `setTimeout(_, jitter)` here to accomplish that.
// `Math.random()` can be `0` so we use `0.5` if this happens
// Reference: https://discord.com/developers/docs/topics/gateway#heartbeating
// Reference: https://docs.discord.com/developers/events/gateway#heartbeating
const jitter = Math.ceil(this.heart.interval * (Math.random() || 0.5));
this.heart.timeoutId = setTimeout(() => {
@@ -827,7 +827,7 @@ export class DiscordenoShard {
// The Shard did not receive a heartbeat ACK from Discord in time,
// therefore we have to assume that the connection has failed or got "zombied".
// The Shard needs to start a re-identify action accordingly.
// Reference: https://discord.com/developers/docs/topics/gateway#heartbeating-example-gateway-heartbeat-ack
// Reference: https://docs.discord.com/developers/events/gateway#heartbeating-example-gateway-heartbeat-ack
if (!this.heart.acknowledged) {
this.logger.debug(`[Shard] Heartbeat not acknowledged for Shard #${this.id}. Assuming zombied connection.`);
await this.close(ShardSocketCloseCodes.ZombiedConnection, 'Zombied connection, did not receive an heartbeat ACK in time.');

View File

@@ -779,7 +779,7 @@ export interface GatewayManager extends Required<CreateGatewayManagerOptions> {
*
* Fires a _Voice State Update_ gateway event.
*
* @see {@link https://discord.com/developers/docs/topics/gateway#update-voice-state}
* @see {@link https://docs.discord.com/developers/events/gateway-events#update-voice-state}
*/
joinVoiceChannel: (
guildId: BigString,
@@ -822,7 +822,7 @@ export interface GatewayManager extends Required<CreateGatewayManagerOptions> {
*
* Fires a _Guild Members Chunk_ gateway event for every 1000 members fetched.
*
* @see {@link https://discord.com/developers/docs/topics/gateway#request-guild-members}
* @see {@link https://docs.discord.com/developers/events/gateway-events#request-guild-members}
*/
requestMembers: (guildId: BigString, options?: Omit<RequestGuildMembers, 'guildId'>) => Promise<Camelize<DiscordMemberWithUser[]>>;
/**
@@ -835,7 +835,7 @@ export interface GatewayManager extends Required<CreateGatewayManagerOptions> {
* @remarks
* Fires a _Voice State Update_ gateway event.
*
* @see {@link https://discord.com/developers/docs/topics/gateway#update-voice-state}
* @see {@link https://docs.discord.com/developers/events/gateway-events#update-voice-state}
*/
leaveVoiceChannel: (guildId: BigString) => Promise<void>;
/**
@@ -855,7 +855,7 @@ export interface GatewayManager extends Required<CreateGatewayManagerOptions> {
*
* To avoid this Discordeno will automatically try to group the ids based on what shard they will need to be sent, but this involves sending multiple messages in multiple shards
*
* @see {@link https://discord.com/developers/docs/topics/gateway-events#request-soundboard-sounds}
* @see {@link https://docs.discord.com/developers/events/gateway-events#request-soundboard-sounds}
*/
requestSoundboardSounds: (guildIds: BigString[]) => Promise<void>;
/** This managers cache related settings. */

View File

@@ -25,7 +25,7 @@ export enum TransportCompression {
* @remarks
* Uses `node:zlib` to decompress the payloads
*
* @see https://discord.com/developers/docs/topics/gateway#zlibstream
* @see https://docs.discord.com/developers/events/gateway#zlib-stream
*/
zlib = 'zlib-stream',
/**
@@ -36,7 +36,7 @@ export enum TransportCompression {
*
* `fzstd` is an optional dependency. You will need to install it to be able to use it.
*
* @see https://discord.com/developers/docs/topics/gateway#zstdstream
* @see https://docs.discord.com/developers/events/gateway#zstd-stream
*/
zstd = 'zstd-stream',
}
@@ -50,7 +50,7 @@ export interface ShardGatewayConfig {
*
* @default false
*
* @see https://discord.com/developers/docs/topics/gateway#payload-compression
* @see https://docs.discord.com/developers/events/gateway#payload-compression
*/
compress: boolean;
/**
@@ -58,7 +58,7 @@ export interface ShardGatewayConfig {
*
* @default null
*
* @see https://discord.com/developers/docs/topics/gateway#transport-compression
* @see https://docs.discord.com/developers/events/gateway#transport-compression
*/
transportCompression: TransportCompression | null;
/** The calculated intent value of the events which the shard should receive.
@@ -177,7 +177,7 @@ export interface ShardSocketRequest {
d: unknown;
}
/** https://discord.com/developers/docs/topics/gateway#update-voice-state */
/** https://docs.discord.com/developers/events/gateway-events#update-voice-state */
export interface UpdateVoiceState {
/** id of the guild */
guildId: string;

View File

@@ -29,18 +29,18 @@
"@discordeno/utils": "workspace:^"
},
"devDependencies": {
"@biomejs/biome": "2.3.13",
"@swc/cli": "^0.7.10",
"@swc/core": "^1.15.10",
"@biomejs/biome": "2.4.1",
"@swc/cli": "^0.8.0",
"@swc/core": "^1.15.11",
"@types/chai": "^5.2.3",
"@types/chai-as-promised": "^8.0.2",
"@types/mocha": "^10.0.10",
"@types/node": "^25.0.10",
"@types/node": "^25.2.3",
"@types/sinon": "^21.0.0",
"c8": "^10.1.3",
"chai": "^6.2.2",
"chai-as-promised": "^8.0.2",
"dotenv": "^17.2.3",
"dotenv": "^17.3.1",
"mocha": "^11.7.5",
"sinon": "^21.0.1",
"ts-node": "^10.9.2",

View File

@@ -352,7 +352,7 @@ export function createRestManager(options: CreateRestManagerOptions): RestManage
// GET ALL NECESSARY HEADERS
const remaining = headers.get(RATE_LIMIT_REMAINING_HEADER);
const retryAfter = headers.get(RATE_LIMIT_RESET_AFTER_HEADER);
const retryAfter = headers.get('Retry-After') ?? headers.get(RATE_LIMIT_RESET_AFTER_HEADER);
const reset = Date.now() + Number(retryAfter) * 1000;
const global = headers.get(RATE_LIMIT_GLOBAL_HEADER);
// undefined override null needed for typings
@@ -500,7 +500,7 @@ export function createRestManager(options: CreateRestManagerOptions): RestManage
options.retryCount += 1;
const resetAfter = response.headers.get(RATE_LIMIT_RESET_AFTER_HEADER);
const resetAfter = response.headers.get('retry-after');
if (resetAfter) await delay(Number(resetAfter) * 1000);
return await options.retryRequest?.(options);
@@ -579,7 +579,7 @@ export function createRestManager(options: CreateRestManagerOptions): RestManage
return;
}
// If we the request has a token, use it
// If the request has a token, use it
// Else fallback to prefix with the bot token
const queueIdentifier = request.requestBodyOptions?.headers?.authorization ?? `Bot ${rest.token}`;
@@ -682,7 +682,7 @@ export function createRestManager(options: CreateRestManagerOptions): RestManage
error.message = `[${reason.status}] ${errorText}`;
// If discord sent us JSON, it is probably going to be an error message from which we can get and add some information about the error to the error message, the full body will be in the error.cause
// https://discord.com/developers/docs/reference#error-messages
// https://docs.discord.com/developers/reference#error-messages
if (typeof reason.body === 'object' && hasProperty(reason.body, 'code') && hasProperty(reason.body, 'message')) {
error.message += `\nDiscord error: [${reason.body.code}] ${reason.body.message}`;
}
@@ -815,17 +815,11 @@ export function createRestManager(options: CreateRestManagerOptions): RestManage
return await rest.post<DiscordInvite>(rest.routes.channels.invites(channelId), { body, reason });
}
// When we have to upload a file, we need to use FormData, and each field has to be appended individually
// When we have to upload a file, we need to use FormData, and all other fields need to be part of the payload_json field.
const form = new FormData();
for (const [key, value] of Object.entries(body)) {
if (key !== 'targetUsersFile' && key !== 'roleIds') {
form.append(camelToSnakeCase(key), rest.changeToDiscordFormat(value).toString());
}
}
form.append('payload_json', JSON.stringify(rest.changeToDiscordFormat({ ...body, targetUsersFile: undefined })));
form.append('target_users_file', body.targetUsersFile);
if (body.roleIds) form.append('role_ids', body.roleIds.map((x) => x.toString()).join(','));
return await rest.post<DiscordInvite>(rest.routes.channels.invites(channelId), { body: form, reason });
},

File diff suppressed because it is too large Load Diff

View File

@@ -24,11 +24,11 @@
"test:type": "tsc --noEmit"
},
"devDependencies": {
"@biomejs/biome": "2.3.13",
"@swc/cli": "^0.7.10",
"@swc/core": "^1.15.10",
"@biomejs/biome": "2.4.1",
"@swc/cli": "^0.8.0",
"@swc/core": "^1.15.11",
"@types/mocha": "^10.0.10",
"@types/node": "^25.0.10",
"@types/node": "^25.2.3",
"c8": "^10.1.3",
"mocha": "^11.7.5",
"ts-node": "^10.9.2",

View File

@@ -1,4 +1,4 @@
/** Types for: https://discord.com/developers/docs/resources/application */
/** Types for: https://docs.discord.com/developers/resources/application */
import type { DiscordGuild } from './guild.js';
import type { OAuth2Scope } from './oauth2.js';
@@ -6,7 +6,7 @@ import type { DiscordTeam } from './teams.js';
import type { DiscordUser } from './user.js';
import type { DiscordWebhookEventType } from './webhookEvents.js';
/** https://discord.com/developers/docs/resources/application#application-object-application-structure */
/** https://docs.discord.com/developers/resources/application#application-object-application-structure */
export interface DiscordApplication {
/** ID of the app */
id: string;
@@ -74,7 +74,7 @@ export interface DiscordApplication {
custom_install_url?: string;
}
/** https://discord.com/developers/docs/resources/application#application-object-application-integration-types */
/** https://docs.discord.com/developers/resources/application#application-object-application-integration-types */
export enum DiscordApplicationIntegrationType {
/** App is installable to servers */
GuildInstall = 0,
@@ -82,13 +82,13 @@ export enum DiscordApplicationIntegrationType {
UserInstall = 1,
}
/** https://discord.com/developers/docs/resources/application#application-object-application-integration-type-configuration-object */
/** https://docs.discord.com/developers/resources/application#application-object-application-integration-type-configuration-object */
export interface DiscordApplicationIntegrationTypeConfiguration {
/** Install params for each installation context's default in-app authorization link */
oauth2_install_params?: DiscordInstallParams;
}
/** https://discord.com/developers/docs/resources/application#application-object-application-event-webhook-status */
/** https://docs.discord.com/developers/resources/application#application-object-application-event-webhook-status */
export enum DiscordApplicationEventWebhookStatus {
/** Webhook events are disabled by developer */
Disabled = 1,
@@ -98,7 +98,7 @@ export enum DiscordApplicationEventWebhookStatus {
DisabledByDiscord = 3,
}
/** https://discord.com/developers/docs/resources/application#application-object-application-flags */
/** https://docs.discord.com/developers/resources/application#application-object-application-flags */
export enum ApplicationFlags {
/** Indicates if an app uses the Auto Moderation API. */
ApplicationAutoModerationRuleCreateBadge = 1 << 6,
@@ -122,7 +122,7 @@ export enum ApplicationFlags {
ApplicationCommandBadge = 1 << 23,
}
/** https://discord.com/developers/docs/resources/application#install-params-object-install-params-structure */
/** https://docs.discord.com/developers/resources/application#install-params-object-install-params-structure */
export interface DiscordInstallParams {
/** Scopes to add the application to the server with */
scopes: OAuth2Scope[];
@@ -130,7 +130,7 @@ export interface DiscordInstallParams {
permissions: string;
}
/** https://discord.com/developers/docs/resources/application#get-application-activity-instance-activity-instance-object */
/** https://docs.discord.com/developers/resources/application#get-application-activity-instance-activity-instance-object */
export interface DiscordActivityInstance {
/** Application ID */
application_id: string;
@@ -144,7 +144,7 @@ export interface DiscordActivityInstance {
users: string[];
}
/** https://discord.com/developers/docs/resources/application#get-application-activity-instance-activity-location-object */
/** https://docs.discord.com/developers/resources/application#get-application-activity-instance-activity-location-object */
export interface DiscordActivityLocation {
/** The unique identifier for the location */
id: string;
@@ -156,7 +156,7 @@ export interface DiscordActivityLocation {
guild_id?: string | null;
}
/** https://discord.com/developers/docs/resources/application#get-application-activity-instance-activity-location-kind-enum */
/** https://docs.discord.com/developers/resources/application#get-application-activity-instance-activity-location-kind-enum */
export enum DiscordActivityLocationKind {
/** The Location is a Guild Channel */
GuildChannel = 'gc',

View File

@@ -1,8 +1,8 @@
/** Types for: https://discord.com/developers/docs/resources/application-role-connection-metadata */
/** Types for: https://docs.discord.com/developers/resources/application-role-connection-metadata */
import type { Localization } from './reference.js';
/** https://discord.com/developers/docs/resources/application-role-connection-metadata#application-role-connection-metadata-object-application-role-connection-metadata-structure */
/** https://docs.discord.com/developers/resources/application-role-connection-metadata#application-role-connection-metadata-object-application-role-connection-metadata-structure */
export interface DiscordApplicationRoleConnectionMetadata {
/** Type of metadata value */
type: DiscordApplicationRoleConnectionMetadataType;
@@ -33,7 +33,7 @@ export interface DiscordApplicationRoleConnectionMetadata {
description_localizations: Localization;
}
/** https://discord.com/developers/docs/resources/application-role-connection-metadata#application-role-connection-metadata-object-application-role-connection-metadata-type */
/** https://docs.discord.com/developers/resources/application-role-connection-metadata#application-role-connection-metadata-object-application-role-connection-metadata-type */
export enum DiscordApplicationRoleConnectionMetadataType {
/** The metadata value (integer) is less than or equal to the guild's configured value (integer) */
IntegerLessThanOrEqual = 1,

View File

@@ -1,4 +1,4 @@
/** Types for: https://discord.com/developers/docs/resources/audit-log */
/** Types for: https://docs.discord.com/developers/resources/audit-log */
import type { DiscordAutoModerationRule } from './autoModeration.js';
import type { DiscordChannel, DiscordOverwrite, DiscordThreadMetadata } from './channel.js';
@@ -14,7 +14,7 @@ import type { DiscordSticker } from './sticker.js';
import type { DiscordUser } from './user.js';
import type { DiscordWebhook } from './webhook.js';
/** https://discord.com/developers/docs/resources/audit-log#audit-log-object-audit-log-structure */
/** https://docs.discord.com/developers/resources/audit-log#audit-log-object-audit-log-structure */
export interface DiscordAuditLog {
/** List of application commands referenced in the audit log */
application_commands: DiscordApplicationCommand[];
@@ -39,7 +39,7 @@ export interface DiscordAuditLog {
webhooks: DiscordWebhook[];
}
/** https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-audit-log-entry-structure */
/** https://docs.discord.com/developers/resources/audit-log#audit-log-entry-object-audit-log-entry-structure */
export interface DiscordAuditLogEntry {
/** ID of the affected entity (webhook, user, role, etc.) */
target_id: string | null;
@@ -57,7 +57,7 @@ export interface DiscordAuditLogEntry {
reason?: string;
}
/** https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-audit-log-events */
/** https://docs.discord.com/developers/resources/audit-log#audit-log-entry-object-audit-log-events */
export enum AuditLogEvents {
/** Server settings were updated */
GuildUpdate = 1,
@@ -195,7 +195,7 @@ export enum AuditLogEvents {
HomeSettingsUpdate,
}
/** https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-audit-log-events */
/** https://docs.discord.com/developers/resources/audit-log#audit-log-entry-object-audit-log-events */
export type DiscordAuditLogChange =
| DiscordAuditLogChangeObject<DiscordGuild>
| DiscordAuditLogChangeObject<DiscordChannel>
@@ -218,7 +218,7 @@ export type DiscordAuditLogChange =
| DiscordAuditLogChangeObject<DiscordGuildOnboardingPrompt>
| DiscordAuditLogChangeObject<DiscordGuildOnboarding>;
/** https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-optional-audit-entry-info */
/** https://docs.discord.com/developers/resources/audit-log#audit-log-entry-object-optional-audit-entry-info */
export interface DiscordOptionalAuditEntryInfo {
/**
* ID of the app whose permissions were targeted.
@@ -306,7 +306,7 @@ export interface DiscordOptionalAuditEntryInfo {
integration_type?: string;
}
/** https://discord.com/developers/docs/resources/audit-log#audit-log-change-object-audit-log-change-structure */
/** https://docs.discord.com/developers/resources/audit-log#audit-log-change-object-audit-log-change-structure */
export type DiscordAuditLogChangeObject<T> = NonNullable<
{
[K in keyof T]: {

View File

@@ -1,6 +1,6 @@
/** Types for: https://discord.com/developers/docs/resources/auto-moderation */
/** Types for: https://docs.discord.com/developers/resources/auto-moderation */
/** https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-auto-moderation-rule-structure */
/** https://docs.discord.com/developers/resources/auto-moderation#auto-moderation-rule-object-auto-moderation-rule-structure */
export interface DiscordAutoModerationRule {
/** The id of this rule */
id: string;
@@ -26,7 +26,7 @@ export interface DiscordAutoModerationRule {
exempt_channels: string[];
}
/** https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-trigger-types */
/** https://docs.discord.com/developers/resources/auto-moderation#auto-moderation-rule-object-trigger-types */
export enum AutoModerationTriggerTypes {
/** Check if content contains words from a user defined list of keywords. Max 6 per guild */
Keyword = 1,
@@ -40,7 +40,7 @@ export enum AutoModerationTriggerTypes {
MemberProfile,
}
/** https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-trigger-metadata */
/** https://docs.discord.com/developers/resources/auto-moderation#auto-moderation-rule-object-trigger-metadata */
export interface DiscordAutoModerationRuleTriggerMetadata {
/**
* Substrings which will be searched for in content.
@@ -95,7 +95,7 @@ export interface DiscordAutoModerationRuleTriggerMetadata {
mention_raid_protection_enabled?: boolean;
}
/** https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-keyword-preset-types */
/** https://docs.discord.com/developers/resources/auto-moderation#auto-moderation-rule-object-keyword-preset-types */
export enum DiscordAutoModerationRuleTriggerMetadataPresets {
/** Words that may be considered forms of swearing or cursing */
Profanity = 1,
@@ -105,7 +105,7 @@ export enum DiscordAutoModerationRuleTriggerMetadataPresets {
Slurs,
}
/** https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-event-types */
/** https://docs.discord.com/developers/resources/auto-moderation#auto-moderation-rule-object-event-types */
export enum AutoModerationEventTypes {
/** When a user sends a message */
MessageSend = 1,
@@ -113,7 +113,7 @@ export enum AutoModerationEventTypes {
MemberUpdate,
}
/** https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-action-object-auto-moderation-action-structure */
/** https://docs.discord.com/developers/resources/auto-moderation#auto-moderation-action-object-auto-moderation-action-structure */
export interface DiscordAutoModerationAction {
/** The type of action to take when a rule is triggered */
type: AutoModerationActionType;
@@ -121,7 +121,7 @@ export interface DiscordAutoModerationAction {
metadata?: DiscordAutoModerationActionMetadata;
}
/** https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-action-object-action-types */
/** https://docs.discord.com/developers/resources/auto-moderation#auto-moderation-action-object-action-types */
export enum AutoModerationActionType {
/** Blocks the content of a message according to the rule */
BlockMessage = 1,
@@ -140,7 +140,7 @@ export enum AutoModerationActionType {
BlockMemberInteraction,
}
/** https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-action-object-action-metadata */
/** https://docs.discord.com/developers/resources/auto-moderation#auto-moderation-action-object-action-metadata */
export interface DiscordAutoModerationActionMetadata {
/**
* The id of channel to which user content should be logged.

View File

@@ -1,10 +1,10 @@
/** Types for: https://discord.com/developers/docs/resources/channel */
/** Types for: https://docs.discord.com/developers/resources/channel */
import type { DiscordThreadCreateExtra } from './gateway.js';
import type { DiscordMember } from './guild.js';
import type { DiscordUser } from './user.js';
/** https://discord.com/developers/docs/resources/channel#channel-object-channel-structure */
/** https://docs.discord.com/developers/resources/channel#channel-object-channel-structure */
export interface DiscordChannel extends Partial<DiscordThreadCreateExtra> {
/** The id of the channel */
id: string;
@@ -134,7 +134,7 @@ export interface DiscordChannel extends Partial<DiscordThreadCreateExtra> {
default_forum_layout?: ForumLayout;
}
/** https://discord.com/developers/docs/resources/channel#channel-object-channel-types */
/** https://docs.discord.com/developers/resources/channel#channel-object-channel-types */
export enum ChannelTypes {
/** A text channel within a server */
GuildText,
@@ -164,7 +164,7 @@ export enum ChannelTypes {
GuildMedia,
}
/** https://discord.com/developers/docs/resources/channel#channel-object-video-quality-modes */
/** https://docs.discord.com/developers/resources/channel#channel-object-video-quality-modes */
export enum VideoQualityModes {
/** Discord chooses the quality for optimal performance */
Auto = 1,
@@ -172,7 +172,7 @@ export enum VideoQualityModes {
Full,
}
/** https://discord.com/developers/docs/resources/channel#channel-object-channel-flags */
/** https://docs.discord.com/developers/resources/channel#channel-object-channel-flags */
export enum ChannelFlags {
None,
/** this thread is pinned to the top of its parent `GUILD_FORUM` channel */
@@ -183,7 +183,7 @@ export enum ChannelFlags {
HideMediaDownloadOptions = 1 << 15,
}
/** https://discord.com/developers/docs/resources/channel#channel-object-sort-order-types */
/** https://docs.discord.com/developers/resources/channel#channel-object-sort-order-types */
export enum SortOrderTypes {
/** Sort forum posts by activity */
LatestActivity,
@@ -191,7 +191,7 @@ export enum SortOrderTypes {
CreationDate,
}
/** https://discord.com/developers/docs/resources/channel#channel-object-forum-layout-types */
/** https://docs.discord.com/developers/resources/channel#channel-object-forum-layout-types */
export enum ForumLayout {
/** No default has been set for forum channel. */
NotSet = 0,
@@ -201,7 +201,7 @@ export enum ForumLayout {
GalleryView = 2,
}
/** https://discord.com/developers/docs/resources/channel#followed-channel-object-followed-channel-structure */
/** https://docs.discord.com/developers/resources/channel#followed-channel-object-followed-channel-structure */
export interface DiscordFollowedChannel {
/** Source message id */
channel_id: string;
@@ -209,13 +209,13 @@ export interface DiscordFollowedChannel {
webhook_id: string;
}
/** https://discord.com/developers/docs/resources/channel#overwrite-object-overwrite-structure */
/** https://docs.discord.com/developers/resources/channel#overwrite-object-overwrite-structure */
export enum OverwriteTypes {
Role,
Member,
}
/** https://discord.com/developers/docs/resources/channel#overwrite-object-overwrite-structure */
/** https://docs.discord.com/developers/resources/channel#overwrite-object-overwrite-structure */
export interface DiscordOverwrite {
/** Either 0 (role) or 1 (member) */
type: OverwriteTypes;
@@ -227,7 +227,7 @@ export interface DiscordOverwrite {
deny?: string;
}
/** https://discord.com/developers/docs/resources/channel#thread-metadata-object-thread-metadata-structure */
/** https://docs.discord.com/developers/resources/channel#thread-metadata-object-thread-metadata-structure */
export interface DiscordThreadMetadata {
/** Whether the thread is archived */
archived: boolean;
@@ -243,7 +243,7 @@ export interface DiscordThreadMetadata {
create_timestamp?: string | null;
}
/** https://discord.com/developers/docs/resources/channel#thread-member-object-thread-member-structure */
/** https://docs.discord.com/developers/resources/channel#thread-member-object-thread-member-structure */
export interface DiscordThreadMember {
/**
* The id of the thread
@@ -274,10 +274,10 @@ export interface DiscordThreadMember {
member?: DiscordMember;
}
/** https://discord.com/developers/docs/resources/channel#thread-member-object-thread-member-structure, the first asterisk */
/** https://docs.discord.com/developers/resources/channel#thread-member-object-thread-member-structure, the first asterisk */
export interface DiscordThreadMemberGuildCreate extends Omit<DiscordThreadMember, 'id' | 'user_id' | 'member'> {}
/** https://discord.com/developers/docs/resources/channel#default-reaction-object-default-reaction-structure */
/** https://docs.discord.com/developers/resources/channel#default-reaction-object-default-reaction-structure */
export interface DiscordDefaultReactionEmoji {
/** The id of a guild's custom emoji */
emoji_id: string | null;
@@ -285,7 +285,7 @@ export interface DiscordDefaultReactionEmoji {
emoji_name: string | null;
}
/** https://discord.com/developers/docs/resources/channel#forum-tag-object-forum-tag-structure */
/** https://docs.discord.com/developers/resources/channel#forum-tag-object-forum-tag-structure */
export interface DiscordForumTag {
/** The id of the tag */
id: string;
@@ -300,9 +300,9 @@ export interface DiscordForumTag {
}
/**
* https://discord.com/developers/docs/resources/channel#list-public-archived-threads
* https://discord.com/developers/docs/resources/channel#list-private-archived-threads
* https://discord.com/developers/docs/resources/channel#list-joined-private-archived-threads
* https://docs.discord.com/developers/resources/channel#list-public-archived-threads
* https://docs.discord.com/developers/resources/channel#list-private-archived-threads
* https://docs.discord.com/developers/resources/channel#list-joined-private-archived-threads
*/
export interface DiscordListArchivedThreads {
/** The archived threads */

View File

@@ -1,11 +1,11 @@
/** Types for: https://discord.com/developers/docs/components/reference */
/** Types for: https://docs.discord.com/developers/components/reference */
import type { Require } from '../shared.js';
import type { ChannelTypes } from './channel.js';
import type { DiscordEmoji } from './emoji.js';
import type { DiscordInteractionDataResolved } from './interactions.js';
/** https://discord.com/developers/docs/components/reference#component-object-component-types */
/** https://docs.discord.com/developers/components/reference#component-object-component-types */
export enum MessageComponentTypes {
/** A container for other components */
ActionRow = 1,
@@ -41,12 +41,22 @@ export enum MessageComponentTypes {
Label,
/** Component for uploading files */
FileUpload,
/** An interactive component for selecting exactly one option from a defined list */
RadioGroup = 21,
/** An interactive component for selecting one or many options via checkboxes */
CheckboxGroup = 22,
/** A single interactive component for yes/no style questions */
Checkbox = 23,
}
export type DiscordMessageComponents = DiscordMessageComponent[];
export type DiscordMessageComponent =
| DiscordActionRow
| DiscordSelectMenuComponent
| DiscordStringSelectComponent
| DiscordUserSelectComponent
| DiscordRoleSelectComponent
| DiscordMentionableSelectComponent
| DiscordChannelSelectComponent
| DiscordButtonComponent
| DiscordTextInputComponent
| DiscordSectionComponent
@@ -57,12 +67,23 @@ export type DiscordMessageComponent =
| DiscordContainerComponent
| DiscordFileComponent
| DiscordLabelComponent
| DiscordFileUploadComponent;
| DiscordFileUploadComponent
| DiscordRadioGroupComponent
| DiscordCheckboxGroupComponent
| DiscordCheckboxComponent;
export type DiscordMessageComponentFromModalInteractionResponse =
| DiscordTextInputInteractionResponse
| DiscordTextDisplayInteractionResponse
| DiscordLabelInteractionResponse;
| DiscordLabelInteractionResponse
| DiscordRadioGroupInteractionResponse
| DiscordCheckboxGroupInteractionResponse
| DiscordCheckboxInteractionResponse
| DiscordRoleSelectInteractionResponseFromModal
| DiscordUserSelectInteractionResponseFromModal
| DiscordStringSelectInteractionResponseFromModal
| DiscordChannelSelectInteractionResponseFromModal
| DiscordMentionableSelectInteractionResponseFromModal;
export type DiscordMessageComponentFromMessageComponentInteractionResponse =
| DiscordRoleSelectInteractionResponseFromMessageComponent
@@ -71,7 +92,7 @@ export type DiscordMessageComponentFromMessageComponentInteractionResponse =
| DiscordChannelSelectInteractionResponseFromMessageComponent
| DiscordMentionableSelectInteractionResponseFromMessageComponent;
/** https://discord.com/developers/docs/components/reference#anatomy-of-a-component */
/** https://docs.discord.com/developers/components/reference#anatomy-of-a-component */
export interface DiscordBaseComponent {
/** The type of the component */
type: MessageComponentTypes;
@@ -79,7 +100,7 @@ export interface DiscordBaseComponent {
id?: number;
}
/** https://discord.com/developers/docs/components/reference#action-row-action-row-structure */
/** https://docs.discord.com/developers/components/reference#action-row-action-row-structure */
export interface DiscordActionRow extends DiscordBaseComponent {
type: MessageComponentTypes.ActionRow;
@@ -92,10 +113,18 @@ export interface DiscordActionRow extends DiscordBaseComponent {
* Using a {@link DiscordTextInputComponent} inside the Action Row is deprecated,
* use a {@link DiscordLabelComponent} for modals
*/
components: (DiscordButtonComponent | DiscordSelectMenuComponent | DiscordTextInputComponent)[];
components: (
| DiscordButtonComponent
| DiscordStringSelectComponent
| DiscordUserSelectComponent
| DiscordRoleSelectComponent
| DiscordMentionableSelectComponent
| DiscordChannelSelectComponent
| DiscordTextInputComponent
)[];
}
/** https://discord.com/developers/docs/components/reference#button-button-structure */
/** https://docs.discord.com/developers/components/reference#button-button-structure */
export interface DiscordButtonComponent extends DiscordBaseComponent {
type: MessageComponentTypes.Button;
@@ -143,7 +172,7 @@ export interface DiscordButtonComponent extends DiscordBaseComponent {
disabled?: boolean;
}
/** https://discord.com/developers/docs/components/reference#button-button-styles */
/** https://docs.discord.com/developers/components/reference#button-button-styles */
export enum ButtonStyles {
/** A blurple button */
Primary = 1,
@@ -159,25 +188,14 @@ export enum ButtonStyles {
Premium,
}
/**
* https://discord.com/developers/docs/components/reference#string-select
* https://discord.com/developers/docs/components/reference#user-select
* https://discord.com/developers/docs/components/reference#role-select
* https://discord.com/developers/docs/components/reference#mentionable-select
* https://discord.com/developers/docs/components/reference#channel-select
*/
export interface DiscordSelectMenuComponent extends DiscordBaseComponent {
type:
| MessageComponentTypes.StringSelect
| MessageComponentTypes.UserSelect
| MessageComponentTypes.RoleSelect
| MessageComponentTypes.MentionableSelect
| MessageComponentTypes.ChannelSelect;
/** https://docs.discord.com/developers/components/reference#string-select-string-select-structure */
export interface DiscordStringSelectComponent extends DiscordBaseComponent {
type: MessageComponentTypes.StringSelect;
/** A custom identifier for this component. Maximum 100 characters. */
custom_id: string;
/** Specified choices in a select menu; Maximum of 25 items. */
options?: DiscordSelectOption[];
/** The choices! Maximum of 25 items. */
options: DiscordSelectOption[];
/** A custom placeholder text if nothing is selected. Maximum 150 characters. */
placeholder?: string;
/** The minimum number of items that must be selected. Default 1. Between 0-25. */
@@ -188,7 +206,7 @@ export interface DiscordSelectMenuComponent extends DiscordBaseComponent {
* Whether this component is required to be filled
*
* @remarks
* This value is only valid for select menus in modals
* This value is only valid for string select menus in modals
*
* @default true
*/
@@ -202,18 +220,9 @@ export interface DiscordSelectMenuComponent extends DiscordBaseComponent {
* @default false
*/
disabled?: boolean;
/**
* List of default values for auto-populated select menu components
*
* @remarks
* The number of default values must be in the range defined by min_values and max_values
*/
default_values?: DiscordSelectMenuDefaultValue[];
/** List of channel types to include in a channel select menu options list */
channel_types?: ChannelTypes[];
}
/** https://discord.com/developers/docs/components/reference#string-select-select-option-structure */
/** https://docs.discord.com/developers/components/reference#string-select-select-option-structure */
export interface DiscordSelectOption {
/** The user-facing name of the option. Maximum 25 characters. */
label: string;
@@ -227,7 +236,7 @@ export interface DiscordSelectOption {
default?: boolean;
}
/** https://discord.com/developers/docs/components/reference#string-select-strings-select-interaction-response-structure */
/** https://docs.discord.com/developers/components/reference#string-select-strings-select-interaction-response-structure */
export interface DiscordStringSelectInteractionResponse {
/**
* @remarks
@@ -247,15 +256,15 @@ export interface DiscordStringSelectInteractionResponse {
values: string[];
}
/** https://discord.com/developers/docs/components/reference#string-select-string-select-interaction-response-structure */
/** https://docs.discord.com/developers/components/reference#string-select-string-select-interaction-response-structure */
export type DiscordStringSelectInteractionResponseFromModal = Require<Omit<DiscordStringSelectInteractionResponse, 'component_type'>, 'type'>;
/** https://discord.com/developers/docs/components/reference#string-select-string-select-interaction-response-structure */
/** https://docs.discord.com/developers/components/reference#string-select-string-select-interaction-response-structure */
export type DiscordStringSelectInteractionResponseFromMessageComponent = Require<
Omit<DiscordStringSelectInteractionResponse, 'type'>,
'component_type'
>;
/** https://discord.com/developers/docs/components/reference#text-input-text-input-structure */
/** https://docs.discord.com/developers/components/reference#text-input-text-input-structure */
export interface DiscordTextInputComponent extends DiscordBaseComponent {
type: MessageComponentTypes.TextInput;
@@ -284,7 +293,7 @@ export interface DiscordTextInputComponent extends DiscordBaseComponent {
placeholder?: string;
}
/** https://discord.com/developers/docs/components/reference#text-input-text-input-styles */
/** https://docs.discord.com/developers/components/reference#text-input-text-input-styles */
export enum TextStyles {
/** Intended for short single-line text */
Short = 1,
@@ -292,7 +301,7 @@ export enum TextStyles {
Paragraph = 2,
}
/** https://discord.com/developers/docs/components/reference#text-input-text-input-interaction-response-structure */
/** https://docs.discord.com/developers/components/reference#text-input-text-input-interaction-response-structure */
export interface DiscordTextInputInteractionResponse {
type: MessageComponentTypes.TextInput;
/** 32 bit integer used as an optional identifier for component */
@@ -303,7 +312,44 @@ export interface DiscordTextInputInteractionResponse {
value: string;
}
/** https://discord.com/developers/docs/components/reference#user-select-select-default-value-structure */
/** https://docs.discord.com/developers/components/reference#user-select-user-select-structure */
export interface DiscordUserSelectComponent extends DiscordBaseComponent {
type: MessageComponentTypes.UserSelect;
/** A custom identifier for this component. Maximum 100 characters. */
custom_id: string;
/** A custom placeholder text if nothing is selected. Maximum 150 characters. */
placeholder?: string;
/**
* List of default values for auto-populated select menu components
* The number of default values must be in the range defined by minValues and maxValues
*/
default_values?: DiscordSelectMenuDefaultValue[];
/** The minimum number of items that must be selected. Default 1. Between 0-25. */
min_values?: number;
/** The maximum number of items that can be selected. Default 1. Max 25. */
max_values?: number;
/**
* Whether this component is required to be filled
*
* @remarks
* This value is only valid for string select menus in modals
*
* @default true
*/
required?: boolean;
/**
* Whether select menu is disabled
*
* @remarks
* This value cannot be set for select menus in modals
*
* @default false
*/
disabled?: boolean;
}
/** https://docs.discord.com/developers/components/reference#user-select-select-default-value-structure */
export interface DiscordSelectMenuDefaultValue {
/** ID of a user, role, or channel */
id: string;
@@ -311,7 +357,7 @@ export interface DiscordSelectMenuDefaultValue {
type: 'user' | 'role' | 'channel';
}
/** https://discord.com/developers/docs/components/reference#user-select-user-select-interaction-response-structure */
/** https://docs.discord.com/developers/components/reference#user-select-user-select-interaction-response-structure */
export interface DiscordUserSelectInteractionResponse {
/**
* @remarks
@@ -333,12 +379,49 @@ export interface DiscordUserSelectInteractionResponse {
values: string[];
}
/** https://discord.com/developers/docs/components/reference#user-select-user-select-interaction-response-structure */
/** https://docs.discord.com/developers/components/reference#user-select-user-select-interaction-response-structure */
export type DiscordUserSelectInteractionResponseFromModal = Require<Omit<DiscordUserSelectInteractionResponse, 'component_type'>, 'type'>;
/** https://discord.com/developers/docs/components/reference#user-select-user-select-interaction-response-structure */
/** https://docs.discord.com/developers/components/reference#user-select-user-select-interaction-response-structure */
export type DiscordUserSelectInteractionResponseFromMessageComponent = Require<Omit<DiscordUserSelectInteractionResponse, 'type'>, 'component_type'>;
/** https://discord.com/developers/docs/components/reference#role-select-role-select-interaction-response-structure */
/** https://docs.discord.com/developers/components/reference#role-select-role-select-structure */
export interface DiscordRoleSelectComponent extends DiscordBaseComponent {
type: MessageComponentTypes.RoleSelect;
/** A custom identifier for this component. Maximum 100 characters. */
custom_id: string;
/** A custom placeholder text if nothing is selected. Maximum 150 characters. */
placeholder?: string;
/**
* List of default values for auto-populated select menu components
* The number of default values must be in the range defined by minValues and maxValues
*/
default_values?: DiscordSelectMenuDefaultValue[];
/** The minimum number of items that must be selected. Default 1. Between 0-25. */
min_values?: number;
/** The maximum number of items that can be selected. Default 1. Max 25. */
max_values?: number;
/**
* Whether this component is required to be filled
*
* @remarks
* This value is only valid for string select menus in modals
*
* @default true
*/
required?: boolean;
/**
* Whether select menu is disabled
*
* @remarks
* This value cannot be set for select menus in modals
*
* @default false
*/
disabled?: boolean;
}
/** https://docs.discord.com/developers/components/reference#role-select-role-select-interaction-response-structure */
export interface DiscordRoleSelectInteractionResponse {
/**
* @remarks
@@ -360,12 +443,49 @@ export interface DiscordRoleSelectInteractionResponse {
values: string[];
}
/** https://discord.com/developers/docs/components/reference#role-select-role-select-interaction-response-structure */
/** https://docs.discord.com/developers/components/reference#role-select-role-select-interaction-response-structure */
export type DiscordRoleSelectInteractionResponseFromModal = Require<Omit<DiscordRoleSelectInteractionResponse, 'component_type'>, 'type'>;
/** https://discord.com/developers/docs/components/reference#role-select-role-select-interaction-response-structure */
/** https://docs.discord.com/developers/components/reference#role-select-role-select-interaction-response-structure */
export type DiscordRoleSelectInteractionResponseFromMessageComponent = Require<Omit<DiscordRoleSelectInteractionResponse, 'type'>, 'component_type'>;
/** https://discord.com/developers/docs/components/reference#mentionable-select-mentionable-select-interaction-response-structure */
/** https://docs.discord.com/developers/components/reference#mentionable-select-mentionable-select-structure */
export interface DiscordMentionableSelectComponent extends DiscordBaseComponent {
type: MessageComponentTypes.MentionableSelect;
/** A custom identifier for this component. Maximum 100 characters. */
custom_id: string;
/** A custom placeholder text if nothing is selected. Maximum 150 characters. */
placeholder?: string;
/**
* List of default values for auto-populated select menu components
* The number of default values must be in the range defined by minValues and maxValues
*/
default_values?: DiscordSelectMenuDefaultValue[];
/** The minimum number of items that must be selected. Default 1. Between 0-25. */
min_values?: number;
/** The maximum number of items that can be selected. Default 1. Max 25. */
max_values?: number;
/**
* Whether this component is required to be filled
*
* @remarks
* This value is only valid for string select menus in modals
*
* @default true
*/
required?: boolean;
/**
* Whether select menu is disabled
*
* @remarks
* This value cannot be set for select menus in modals
*
* @default false
*/
disabled?: boolean;
}
/** https://docs.discord.com/developers/components/reference#mentionable-select-mentionable-select-interaction-response-structure */
export interface DiscordMentionableSelectInteractionResponse {
/**
* @remarks
@@ -387,18 +507,57 @@ export interface DiscordMentionableSelectInteractionResponse {
values: string[];
}
/** https://discord.com/developers/docs/components/reference#mentionable-select-mentionable-select-interaction-response-structure */
/** https://docs.discord.com/developers/components/reference#mentionable-select-mentionable-select-interaction-response-structure */
export type DiscordMentionableSelectInteractionResponseFromModal = Require<
Omit<DiscordMentionableSelectInteractionResponse, 'component_type'>,
'type'
>;
/** https://discord.com/developers/docs/components/reference#mentionable-select-mentionable-select-interaction-response-structure */
/** https://docs.discord.com/developers/components/reference#mentionable-select-mentionable-select-interaction-response-structure */
export type DiscordMentionableSelectInteractionResponseFromMessageComponent = Require<
Omit<DiscordMentionableSelectInteractionResponse, 'type'>,
'component_type'
>;
/** https://discord.com/developers/docs/components/reference#channel-select-channel-select-interaction-response-structure */
/** https://docs.discord.com/developers/components/reference#channel-select-channel-select-structure */
export interface DiscordChannelSelectComponent extends DiscordBaseComponent {
type: MessageComponentTypes.ChannelSelect;
/** A custom identifier for this component. Maximum 100 characters. */
custom_id: string;
/** List of channel types to include in the options list */
channel_types?: ChannelTypes[];
/** A custom placeholder text if nothing is selected. Maximum 150 characters. */
placeholder?: string;
/**
* List of default values for auto-populated select menu components
* The number of default values must be in the range defined by minValues and maxValues
*/
default_values?: DiscordSelectMenuDefaultValue[];
/** The minimum number of items that must be selected. Default 1. Between 0-25. */
min_values?: number;
/** The maximum number of items that can be selected. Default 1. Max 25. */
max_values?: number;
/**
* Whether this component is required to be filled
*
* @remarks
* This value is only valid for string select menus in modals
*
* @default true
*/
required?: boolean;
/**
* Whether select menu is disabled
*
* @remarks
* This value cannot be set for select menus in modals
*
* @default false
*/
disabled?: boolean;
}
/** https://docs.discord.com/developers/components/reference#channel-select-channel-select-interaction-response-structure */
export interface DiscordChannelSelectInteractionResponse {
/**
* @remarks
@@ -420,15 +579,15 @@ export interface DiscordChannelSelectInteractionResponse {
values: string[];
}
/** https://discord.com/developers/docs/components/reference#channel-select-channel-select-interaction-response-structure */
/** https://docs.discord.com/developers/components/reference#channel-select-channel-select-interaction-response-structure */
export type DiscordChannelSelectInteractionResponseFromModal = Require<Omit<DiscordChannelSelectInteractionResponse, 'component_type'>, 'type'>;
/** https://discord.com/developers/docs/components/reference#channel-select-channel-select-interaction-response-structure */
/** https://docs.discord.com/developers/components/reference#channel-select-channel-select-interaction-response-structure */
export type DiscordChannelSelectInteractionResponseFromMessageComponent = Require<
Omit<DiscordChannelSelectInteractionResponse, 'type'>,
'component_type'
>;
/** https://discord.com/developers/docs/components/reference#section-section-structure */
/** https://docs.discord.com/developers/components/reference#section-section-structure */
export interface DiscordSectionComponent extends DiscordBaseComponent {
type: MessageComponentTypes.Section;
@@ -438,7 +597,7 @@ export interface DiscordSectionComponent extends DiscordBaseComponent {
accessory: DiscordButtonComponent | DiscordThumbnailComponent;
}
/** https://discord.com/developers/docs/components/reference#text-display-text-display-structure */
/** https://docs.discord.com/developers/components/reference#text-display-text-display-structure */
export interface DiscordTextDisplayComponent extends DiscordBaseComponent {
type: MessageComponentTypes.TextDisplay;
@@ -446,7 +605,7 @@ export interface DiscordTextDisplayComponent extends DiscordBaseComponent {
content: string;
}
/** https://discord.com/developers/docs/components/reference#text-display-text-display-interaction-response-structure */
/** https://docs.discord.com/developers/components/reference#text-display-text-display-interaction-response-structure */
export interface DiscordTextDisplayInteractionResponse {
type: MessageComponentTypes.TextDisplay;
/** 32 bit integer used as an optional identifier for component */
@@ -459,12 +618,12 @@ export interface DiscordThumbnailComponent extends DiscordBaseComponent {
/** A url or attachment */
media: DiscordUnfurledMediaItem;
/** Alt text for the media, max 1024 characters */
description?: string;
description?: string | null;
/** Whether the thumbnail should be a spoiler (or blurred out). Defaults to `false` */
spoiler?: boolean;
}
/** https://discord.com/developers/docs/components/reference#media-gallery-media-gallery-structure */
/** https://docs.discord.com/developers/components/reference#media-gallery-media-gallery-structure */
export interface DiscordMediaGalleryComponent extends DiscordBaseComponent {
type: MessageComponentTypes.MediaGallery;
@@ -472,17 +631,17 @@ export interface DiscordMediaGalleryComponent extends DiscordBaseComponent {
items: DiscordMediaGalleryItem[];
}
/** https://discord.com/developers/docs/components/reference#media-gallery-media-gallery-item-structure */
/** https://docs.discord.com/developers/components/reference#media-gallery-media-gallery-item-structure */
export interface DiscordMediaGalleryItem {
/** A url or attachment */
media: DiscordUnfurledMediaItem;
/** Alt text for the media, max 1024 characters */
description?: string;
description?: string | null;
/** Whether the media should be a spoiler (or blurred out). Defaults to `false` */
spoiler?: boolean;
}
/** https://discord.com/developers/docs/components/reference#file-file-structure */
/** https://docs.discord.com/developers/components/reference#file-file-structure */
export interface DiscordFileComponent extends DiscordBaseComponent {
type: MessageComponentTypes.File;
@@ -496,7 +655,7 @@ export interface DiscordFileComponent extends DiscordBaseComponent {
size: number;
}
/** https://discord.com/developers/docs/components/reference#separator-separator-structure */
/** https://docs.discord.com/developers/components/reference#separator-separator-structure */
export interface DiscordSeparatorComponent extends DiscordBaseComponent {
type: MessageComponentTypes.Separator;
@@ -506,13 +665,13 @@ export interface DiscordSeparatorComponent extends DiscordBaseComponent {
spacing?: SeparatorSpacingSize;
}
/** https://discord.com/developers/docs/components/reference#separator-separator-structure, spacing description */
/** https://docs.discord.com/developers/components/reference#separator-separator-structure, spacing description */
export enum SeparatorSpacingSize {
Small = 1,
Large = 2,
}
/** https://discord.com/developers/docs/components/reference#container-container-structure */
/** https://docs.discord.com/developers/components/reference#container-container-structure */
export interface DiscordContainerComponent extends DiscordBaseComponent {
type: MessageComponentTypes.Container;
@@ -531,7 +690,7 @@ export interface DiscordContainerComponent extends DiscordBaseComponent {
spoiler?: boolean;
}
/** https://discord.com/developers/docs/components/reference#label-label-structure */
/** https://docs.discord.com/developers/components/reference#label-label-structure */
export interface DiscordLabelComponent extends DiscordBaseComponent {
type: MessageComponentTypes.Label;
@@ -550,10 +709,21 @@ export interface DiscordLabelComponent extends DiscordBaseComponent {
*/
description?: string;
/** The component within the label */
component: DiscordTextInputComponent | DiscordSelectMenuComponent | DiscordFileUploadComponent;
component:
| DiscordTextInputComponent
| DiscordFileUploadComponent
| DiscordRadioGroupComponent
| DiscordCheckboxGroupComponent
| DiscordCheckboxComponent
| DiscordStringSelectComponent
| DiscordUserSelectComponent
| DiscordRoleSelectComponent
| DiscordMentionableSelectComponent
| DiscordChannelSelectComponent
| DiscordFileUploadComponent;
}
/** https://discord.com/developers/docs/components/reference#label-label-interaction-response-structure */
/** https://docs.discord.com/developers/components/reference#label-label-interaction-response-structure */
export interface DiscordLabelInteractionResponse {
type: MessageComponentTypes.Label;
/** 32 bit integer used as an optional identifier for component */
@@ -566,10 +736,13 @@ export interface DiscordLabelInteractionResponse {
| DiscordRoleSelectInteractionResponseFromModal
| DiscordMentionableSelectInteractionResponseFromModal
| DiscordChannelSelectInteractionResponseFromModal
| DiscordFileUploadInteractionResponse;
| DiscordFileUploadInteractionResponse
| DiscordRadioGroupInteractionResponse
| DiscordCheckboxGroupInteractionResponse
| DiscordCheckboxInteractionResponse;
}
/** https://discord.com/developers/docs/components/reference#file-upload-file-upload-structure */
/** https://docs.discord.com/developers/components/reference#file-upload-file-upload-structure */
export interface DiscordFileUploadComponent extends DiscordBaseComponent {
type: MessageComponentTypes.FileUpload;
@@ -600,7 +773,7 @@ export interface DiscordFileUploadComponent extends DiscordBaseComponent {
required?: boolean;
}
/** https://discord.com/developers/docs/components/reference#file-upload-file-upload-interaction-response-structure */
/** https://docs.discord.com/developers/components/reference#file-upload-file-upload-interaction-response-structure */
export interface DiscordFileUploadInteractionResponse {
type: MessageComponentTypes.FileUpload;
@@ -612,7 +785,99 @@ export interface DiscordFileUploadInteractionResponse {
values: string[];
}
/** https://discord.com/developers/docs/components/reference#unfurled-media-item-structure */
/** https://docs.discord.com/developers/components/reference#radio-group-structure */
export interface DiscordRadioGroupComponent extends DiscordBaseComponent {
type: MessageComponentTypes.RadioGroup;
/** A dev-defined unique string for the component; 1-100 characters. */
custom_id: string;
/** List of options to show; min 2, max 10. */
options: DiscordRadioGroupOption[];
/** Whether a selection is required to submit the modal. Defaults to `true`. */
required?: boolean;
}
/** https://docs.discord.com/developers/components/reference#radio-group-option-structure */
export interface DiscordRadioGroupOption {
/** The dev-defined value of the option. Maximum 100 characters. */
value: string;
/** The user-facing label of the option. Maximum 100 characters. */
label: string;
/** An optional description for the option. Maximum 100 characters. */
description?: string;
/** Will render this option as already-selected by default. */
default?: boolean;
}
/** https://docs.discord.com/developers/components/reference#radio-group-interaction-response-structure */
export interface DiscordRadioGroupInteractionResponse {
type: MessageComponentTypes.RadioGroup;
/** 32 bit integer used as an optional identifier for component */
id: number;
/** The custom id for the radio group */
custom_id: string;
/** The value of the selected option, or null if no option is selected */
value?: string | null;
}
/** https://docs.discord.com/developers/components/reference#checkbox-group-structure */
export interface DiscordCheckboxGroupComponent extends DiscordBaseComponent {
type: MessageComponentTypes.CheckboxGroup;
/** A dev-defined unique string for the component; 1-100 characters. */
custom_id: string;
/** List of options to show; min 1, max 10. */
options: DiscordCheckboxGroupOption[];
/** Minimum number of items that must be chosen; min 0, max 10. Defaults to 1; if set to 0 required must be false. */
min_values?: number;
/** Maximum number of items that can be chosen; min 1, max 10. Defaults to the number of options. */
max_values?: number;
/** Whether selecting within the group is required. Defaults to `true`. */
required?: boolean;
}
/** https://docs.discord.com/developers/components/reference#checkbox-group-option-structure */
export interface DiscordCheckboxGroupOption {
/** The dev-defined value of the option. Maximum 100 characters. */
value: string;
/** The user-facing label of the option. Maximum 100 characters. */
label: string;
/** An optional description for the option. Maximum 100 characters. */
description?: string;
/** Will render this option as already-selected by default. */
default?: boolean;
}
/** https://docs.discord.com/developers/components/reference#checkbox-group-interaction-response-structure */
export interface DiscordCheckboxGroupInteractionResponse {
type: MessageComponentTypes.CheckboxGroup;
/** 32 bit integer used as an optional identifier for component */
id: number;
/** The custom id for the checkbox group */
custom_id: string;
/** The values of the selected options, or an empty array if no options are selected */
values: string[];
}
/** https://docs.discord.com/developers/components/reference#checkbox-structure */
export interface DiscordCheckboxComponent extends DiscordBaseComponent {
type: MessageComponentTypes.Checkbox;
/** A dev-defined unique string for the component; 1-100 characters. */
custom_id: string;
/** Whether the checkbox is selected by default. */
default?: boolean;
}
/** https://docs.discord.com/developers/components/reference#checkbox-interaction-response-structure */
export interface DiscordCheckboxInteractionResponse {
type: MessageComponentTypes.Checkbox;
/** 32 bit integer used as an optional identifier for component */
id: number;
/** The custom id for the checkbox */
custom_id: string;
/** The state of the checkbox (true if checked, false if unchecked) */
value: boolean;
}
/** https://docs.discord.com/developers/components/reference#unfurled-media-item-structure */
export interface DiscordUnfurledMediaItem {
/** Supports arbitrary urls and attachment://<filename> references */
url: string;

View File

@@ -1,8 +1,8 @@
/** Types for: https://discord.com/developers/docs/resources/emoji */
/** Types for: https://docs.discord.com/developers/resources/emoji */
import type { DiscordUser } from './user.js';
/** https://discord.com/developers/docs/resources/emoji#emoji-object-emoji-structure */
/** https://docs.discord.com/developers/resources/emoji#emoji-object-emoji-structure */
export interface DiscordEmoji {
/** Emoji id */
id: string | null;

View File

@@ -1,6 +1,6 @@
/** Types for: https://discord.com/developers/docs/resources/entitlement */
/** Types for: https://docs.discord.com/developers/resources/entitlement */
/** https://discord.com/developers/docs/resources/entitlement#entitlement-object-entitlement-structure */
/** https://docs.discord.com/developers/resources/entitlement#entitlement-object-entitlement-structure */
export interface DiscordEntitlement {
/** ID of the entitlement */
id: string;
@@ -24,7 +24,7 @@ export interface DiscordEntitlement {
consumed?: boolean;
}
/** https://discord.com/developers/docs/resources/entitlement#entitlement-object-entitlement-types */
/** https://docs.discord.com/developers/resources/entitlement#entitlement-object-entitlement-types */
export enum DiscordEntitlementType {
/** Entitlement was purchased by user */
Purchase = 1,

View File

@@ -1,7 +1,7 @@
/**
* Types for:
* - https://discord.com/developers/docs/events/gateway
* - https://discord.com/developers/docs/events/gateway-events
* - https://docs.discord.com/developers/events/gateway
* - https://docs.discord.com/developers/events/gateway-events
*/
import type { DiscordApplication } from './application.js';
@@ -20,7 +20,7 @@ import type { DiscordSticker } from './sticker.js';
import type { DiscordAvatarDecorationData, DiscordUser } from './user.js';
import type { DiscordVoiceState } from './voice.js';
/** https://discord.com/developers/docs/events/gateway#list-of-intents */
/** https://docs.discord.com/developers/events/gateway#list-of-intents */
export enum GatewayIntents {
/**
* - GUILD_CREATE
@@ -172,9 +172,9 @@ export enum GatewayIntents {
export { GatewayIntents as Intents };
// TODO: Add TransportCompression: https://discord.com/developers/docs/events/gateway#transport-compression
// TODO: Add TransportCompression: https://docs.discord.com/developers/events/gateway#transport-compression
/** https://discord.com/developers/docs/events/gateway#get-gateway-bot */
/** https://docs.discord.com/developers/events/gateway#get-gateway-bot */
export interface DiscordGetGatewayBot {
/** The WSS URL that can be used for connecting to the gateway */
url: string;
@@ -184,7 +184,7 @@ export interface DiscordGetGatewayBot {
session_start_limit: DiscordSessionStartLimit;
}
/** https://discord.com/developers/docs/events/gateway#session-start-limit-object */
/** https://docs.discord.com/developers/events/gateway#session-start-limit-object */
export interface DiscordSessionStartLimit {
/** The total number of session starts the current user is allowed */
total: number;
@@ -196,7 +196,7 @@ export interface DiscordSessionStartLimit {
max_concurrency: number;
}
/** https://discord.com/developers/docs/events/gateway-events#receive-events */
/** https://docs.discord.com/developers/events/gateway-events#receive-events */
export type GatewayDispatchEventNames =
| 'READY'
| 'RESUMED'
@@ -275,10 +275,10 @@ export type GatewayDispatchEventNames =
| 'MESSAGE_POLL_VOTE_ADD'
| 'MESSAGE_POLL_VOTE_REMOVE';
/** https://discord.com/developers/docs/events/gateway-events#receive-events */
/** https://docs.discord.com/developers/events/gateway-events#receive-events */
export type GatewayEventNames = GatewayDispatchEventNames;
/** https://discord.com/developers/docs/events/gateway-events#payload-structure */
/** https://docs.discord.com/developers/events/gateway-events#payload-structure */
export interface DiscordGatewayPayload {
/** opcode for the payload */
op: number;
@@ -290,14 +290,14 @@ export interface DiscordGatewayPayload {
t: GatewayEventNames | null;
}
// TODO: Add Identify: https://discord.com/developers/docs/events/gateway-events#identify-identify-structure
// TODO: Add Identify Connection Properties: https://discord.com/developers/docs/events/gateway-events#identify-identify-connection-properties
// TODO: Add Resume: https://discord.com/developers/docs/events/gateway-events#resume-resume-structure
// TODO: Add Request Guild Members: https://discord.com/developers/docs/events/gateway-events#request-guild-members-request-guild-members-structure
// TODO: Add Request Soundboard Sounds: https://discord.com/developers/docs/events/gateway-events#request-soundboard-sounds-request-soundboard-sounds-structure
// TODO: Add Voice State Update: https://discord.com/developers/docs/events/gateway-events#update-voice-state-gateway-voice-state-update-structure
// TODO: Add Identify: https://docs.discord.com/developers/events/gateway-events#identify-identify-structure
// TODO: Add Identify Connection Properties: https://docs.discord.com/developers/events/gateway-events#identify-identify-connection-properties
// TODO: Add Resume: https://docs.discord.com/developers/events/gateway-events#resume-resume-structure
// TODO: Add Request Guild Members: https://docs.discord.com/developers/events/gateway-events#request-guild-members-request-guild-members-structure
// TODO: Add Request Soundboard Sounds: https://docs.discord.com/developers/events/gateway-events#request-soundboard-sounds-request-soundboard-sounds-structure
// TODO: Add Voice State Update: https://docs.discord.com/developers/events/gateway-events#update-voice-state-gateway-voice-state-update-structure
/** https://discord.com/developers/docs/events/gateway-events#update-presence-gateway-presence-update-structure */
/** https://docs.discord.com/developers/events/gateway-events#update-presence-gateway-presence-update-structure */
export interface DiscordUpdatePresence {
/** Unix time (in milliseconds) of when the client went idle, or null if the client is not idle */
since: number | null;
@@ -309,7 +309,7 @@ export interface DiscordUpdatePresence {
afk: boolean;
}
/** https://discord.com/developers/docs/events/gateway-events#update-presence-status-types */
/** https://docs.discord.com/developers/events/gateway-events#update-presence-status-types */
export enum PresenceStatus {
online,
dnd,
@@ -318,13 +318,13 @@ export enum PresenceStatus {
offline,
}
/** https://discord.com/developers/docs/events/gateway-events#hello-hello-structure */
/** https://docs.discord.com/developers/events/gateway-events#hello-hello-structure */
export interface DiscordHello {
/** The interval (in milliseconds) the client should heartbeat with */
heartbeat_interval: number;
}
/** https://discord.com/developers/docs/events/gateway-events#ready-ready-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#ready-ready-event-fields */
export interface DiscordReady {
/** Gateway version */
v: number;
@@ -342,7 +342,7 @@ export interface DiscordReady {
application: Partial<DiscordApplication> & Pick<DiscordApplication, 'id' | 'flags'>;
}
/** https://discord.com/developers/docs/events/gateway-events#auto-moderation-action-execution-auto-moderation-action-execution-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#auto-moderation-action-execution-auto-moderation-action-execution-event-fields */
export interface DiscordAutoModerationActionExecution {
/** The id of the guild */
guild_id: string;
@@ -368,7 +368,7 @@ export interface DiscordAutoModerationActionExecution {
matched_content: string | null;
}
/** https://discord.com/developers/docs/events/gateway-events#thread-create */
/** https://docs.discord.com/developers/events/gateway-events#thread-create */
export interface DiscordThreadCreateExtra {
/**
* When a thread is created this will be true on that channel payload for the thread.
@@ -379,7 +379,7 @@ export interface DiscordThreadCreateExtra {
newly_created?: boolean;
}
/** https://discord.com/developers/docs/events/gateway-events#thread-list-sync-thread-list-sync-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#thread-list-sync-thread-list-sync-event-fields */
export interface DiscordThreadListSync {
/** The id of the guild */
guild_id: string;
@@ -391,16 +391,16 @@ export interface DiscordThreadListSync {
members: DiscordThreadMember[];
}
/** https://discord.com/developers/docs/events/gateway-events#thread-member-update-thread-member-update-event-extra-fields */
/** https://docs.discord.com/developers/events/gateway-events#thread-member-update-thread-member-update-event-extra-fields */
export interface DiscordThreadMemberUpdateExtra {
/** Id of the guild */
guild_id: string;
}
/** https://discord.com/developers/docs/events/gateway-events#thread-member-update-thread-member-update-event-extra-fields */
/** https://docs.discord.com/developers/events/gateway-events#thread-member-update-thread-member-update-event-extra-fields */
export interface DiscordThreadMemberUpdate extends DiscordThreadMember, DiscordThreadMemberUpdateExtra {}
/** https://discord.com/developers/docs/events/gateway-events#thread-members-update-thread-members-update-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#thread-members-update-thread-members-update-event-fields */
export interface DiscordThreadMembersUpdate {
/** The id of the thread */
id: string;
@@ -414,7 +414,7 @@ export interface DiscordThreadMembersUpdate {
removed_member_ids?: string[];
}
/** https://discord.com/developers/docs/events/gateway#channel-pins-update */
/** https://docs.discord.com/developers/events/gateway#channel-pins-update */
export interface DiscordChannelPinsUpdate {
/** The id of the guild */
guild_id?: string;
@@ -424,7 +424,7 @@ export interface DiscordChannelPinsUpdate {
last_pin_timestamp?: string | null;
}
/** https://discord.com/developers/docs/events/gateway-events#guild-create-guild-create-extra-fields */
/** https://docs.discord.com/developers/events/gateway-events#guild-create-guild-create-extra-fields */
export interface DiscordGuildCreateExtra {
/** When this guild was joined at */
joined_at: string;
@@ -462,13 +462,13 @@ export interface DiscordGuildCreateExtra {
soundboard_sounds: DiscordSoundboardSound[];
}
/** https://discord.com/developers/docs/events/gateway-events#guild-audit-log-entry-create-guild-audit-log-entry-create-event-extra-fields */
/** https://docs.discord.com/developers/events/gateway-events#guild-audit-log-entry-create-guild-audit-log-entry-create-event-extra-fields */
export interface DiscordGuildAuditLogEntryCreateExtra {
/** The id of the guild */
guild_id: string;
}
/** https://discord.com/developers/docs/events/gateway-events#guild-ban-add-guild-ban-add-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#guild-ban-add-guild-ban-add-event-fields */
export interface DiscordGuildBanAdd {
/** id of the guild */
guild_id: string;
@@ -476,7 +476,7 @@ export interface DiscordGuildBanAdd {
user: DiscordUser;
}
/** https://discord.com/developers/docs/events/gateway-events#guild-ban-remove-guild-ban-remove-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#guild-ban-remove-guild-ban-remove-event-fields */
export interface DiscordGuildBanRemove {
/** id of the guild */
guild_id: string;
@@ -485,15 +485,15 @@ export interface DiscordGuildBanRemove {
}
/**
* https://discord.com/developers/docs/events/gateway-events#guild-ban-add-guild-ban-add-event-fields
* https://discord.com/developers/docs/events/gateway-events#guild-ban-remove-guild-ban-remove-event-fields
* https://docs.discord.com/developers/events/gateway-events#guild-ban-add-guild-ban-add-event-fields
* https://docs.discord.com/developers/events/gateway-events#guild-ban-remove-guild-ban-remove-event-fields
*
* @deprecated
* Use {@link DiscordGuildBanAdd} and {@link DiscordGuildBanRemove} instead.
*/
export interface DiscordGuildBanAddRemove extends DiscordGuildBanAdd {}
/** https://discord.com/developers/docs/events/gateway-events#guild-emojis-update-guild-emojis-update-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#guild-emojis-update-guild-emojis-update-event-fields */
export interface DiscordGuildEmojisUpdate {
/** id of the guild */
guild_id: string;
@@ -501,7 +501,7 @@ export interface DiscordGuildEmojisUpdate {
emojis: DiscordEmoji[];
}
/** https://discord.com/developers/docs/events/gateway-events#guild-stickers-update-guild-stickers-update-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#guild-stickers-update-guild-stickers-update-event-fields */
export interface DiscordGuildStickersUpdate {
/** id of the guild */
guild_id: string;
@@ -509,22 +509,22 @@ export interface DiscordGuildStickersUpdate {
stickers: DiscordSticker[];
}
/** https://discord.com/developers/docs/events/gateway-events#guild-integrations-update-guild-integrations-update-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#guild-integrations-update-guild-integrations-update-event-fields */
export interface DiscordGuildIntegrationsUpdate {
/** id of the guild whose integrations were updated */
guild_id: string;
}
/** https://discord.com/developers/docs/events/gateway-events#guild-member-add-guild-member-add-extra-fields */
/** https://docs.discord.com/developers/events/gateway-events#guild-member-add-guild-member-add-extra-fields */
export interface DiscordGuildMemberAddExtra {
/** id of the guild */
guild_id: string;
}
/** https://discord.com/developers/docs/events/gateway-events#guild-member-add-guild-member-add-extra-fields */
/** https://docs.discord.com/developers/events/gateway-events#guild-member-add-guild-member-add-extra-fields */
export interface DiscordGuildMemberAdd extends DiscordMemberWithUser, DiscordGuildMemberAddExtra {}
/** https://discord.com/developers/docs/events/gateway-events#guild-member-remove-guild-member-remove-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#guild-member-remove-guild-member-remove-event-fields */
export interface DiscordGuildMemberRemove {
/** The id of the guild */
guild_id: string;
@@ -532,7 +532,7 @@ export interface DiscordGuildMemberRemove {
user: DiscordUser;
}
/** https://discord.com/developers/docs/events/gateway-events#guild-member-update-guild-member-update-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#guild-member-update-guild-member-update-event-fields */
export interface DiscordGuildMemberUpdate {
/** The id of the guild */
guild_id: string;
@@ -542,7 +542,7 @@ export interface DiscordGuildMemberUpdate {
user: DiscordUser;
/** Nickname of the user in the guild */
nick?: string | null;
/** the member's [guild avatar hash](https://discord.com/developers/docs/reference#image-formatting) */
/** the member's [guild avatar hash](https://docs.discord.com/developers/reference#image-formatting) */
avatar: string | null;
/** the member's guild banner hash */
banner: string | null;
@@ -564,7 +564,7 @@ export interface DiscordGuildMemberUpdate {
avatar_decoration_data?: DiscordAvatarDecorationData | null;
}
/** https://discord.com/developers/docs/events/gateway-events#guild-members-chunk-guild-members-chunk-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#guild-members-chunk-guild-members-chunk-event-fields */
export interface DiscordGuildMembersChunk {
/** The id of the guild */
guild_id: string;
@@ -582,7 +582,7 @@ export interface DiscordGuildMembersChunk {
nonce?: string;
}
/** https://discord.com/developers/docs/events/gateway-events#guild-role-create-guild-role-create-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#guild-role-create-guild-role-create-event-fields */
export interface DiscordGuildRoleCreate {
/** The id of the guild */
guild_id: string;
@@ -590,7 +590,7 @@ export interface DiscordGuildRoleCreate {
role: DiscordRole;
}
/** https://discord.com/developers/docs/events/gateway-events#guild-role-update-guild-role-update-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#guild-role-update-guild-role-update-event-fields */
export interface DiscordGuildRoleUpdate {
/** The id of the guild */
guild_id: string;
@@ -598,7 +598,7 @@ export interface DiscordGuildRoleUpdate {
role: DiscordRole;
}
/** https://discord.com/developers/docs/events/gateway-events#guild-role-delete-guild-role-delete-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#guild-role-delete-guild-role-delete-event-fields */
export interface DiscordGuildRoleDelete {
/** id of the guild */
guild_id: string;
@@ -606,7 +606,7 @@ export interface DiscordGuildRoleDelete {
role_id: string;
}
/** https://discord.com/developers/docs/events/gateway-events#guild-scheduled-event-user-add-guild-scheduled-event-user-add-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#guild-scheduled-event-user-add-guild-scheduled-event-user-add-event-fields */
export interface DiscordScheduledEventUserAdd {
/** id of the guild scheduled event */
guild_scheduled_event_id: string;
@@ -616,7 +616,7 @@ export interface DiscordScheduledEventUserAdd {
guild_id: string;
}
/** https://discord.com/developers/docs/events/gateway-events#guild-scheduled-event-user-remove-guild-scheduled-event-user-remove-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#guild-scheduled-event-user-remove-guild-scheduled-event-user-remove-event-fields */
export interface DiscordScheduledEventUserRemove {
/** id of the guild scheduled event */
guild_scheduled_event_id: string;
@@ -626,7 +626,7 @@ export interface DiscordScheduledEventUserRemove {
guild_id: string;
}
/** https://discord.com/developers/docs/topics/gateway-events#guild-soundboard-sound-delete-guild-soundboard-sound-delete-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#guild-soundboard-sound-delete-guild-soundboard-sound-delete-event-fields */
export interface DiscordSoundboardSoundDelete {
/** ID of the sound that was deleted */
sound_id: string;
@@ -634,7 +634,7 @@ export interface DiscordSoundboardSoundDelete {
guild_id: string;
}
/** https://discord.com/developers/docs/topics/gateway-events#guild-soundboard-sounds-update-guild-soundboard-sounds-update-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#guild-soundboard-sounds-update-guild-soundboard-sounds-update-event-fields */
export interface DiscordSoundboardSoundsUpdate {
/** The guild's soundboard sounds */
soundboard_sounds: DiscordSoundboardSound[];
@@ -642,7 +642,7 @@ export interface DiscordSoundboardSoundsUpdate {
guild_id: string;
}
/** https://discord.com/developers/docs/events/gateway-events#soundboard-sounds-soundboard-sounds-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#soundboard-sounds-soundboard-sounds-event-fields */
export interface DiscordSoundboardSounds {
/** The guild's soundboard sounds */
soundboard_sounds: DiscordSoundboardSound[];
@@ -650,28 +650,28 @@ export interface DiscordSoundboardSounds {
guild_id: string;
}
/** https://discord.com/developers/docs/events/gateway-events#integration-create-integration-create-event-additional-fields */
/** https://docs.discord.com/developers/events/gateway-events#integration-create-integration-create-event-additional-fields */
export interface DiscordIntegrationCreateExtra {
/** Id of the guild */
guild_id: string;
}
/** https://discord.com/developers/docs/events/gateway-events#integration-update-integration-update-event-additional-fields */
/** https://docs.discord.com/developers/events/gateway-events#integration-update-integration-update-event-additional-fields */
export interface DiscordIntegrationUpdateExtra {
/** Id of the guild */
guild_id: string;
}
/**
* https://discord.com/developers/docs/events/gateway-events#integration-create-integration-create-event-additional-fields
* https://discord.com/developers/docs/events/gateway-events#integration-update-integration-update-event-additional-fields
* https://docs.discord.com/developers/events/gateway-events#integration-create-integration-create-event-additional-fields
* https://docs.discord.com/developers/events/gateway-events#integration-update-integration-update-event-additional-fields
*/
export interface DiscordIntegrationCreateUpdate extends DiscordIntegration {
/** Id of the guild */
guild_id: string;
}
/** https://discord.com/developers/docs/events/gateway-events#integration-delete-integration-delete-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#integration-delete-integration-delete-event-fields */
export interface DiscordIntegrationDelete {
/** Integration id */
id: string;
@@ -681,7 +681,7 @@ export interface DiscordIntegrationDelete {
application_id?: string;
}
/** https://discord.com/developers/docs/events/gateway-events#invite-create-invite-create-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#invite-create-invite-create-event-fields */
export interface DiscordInviteCreate {
/** The channel the invite is for */
channel_id: string;
@@ -709,9 +709,11 @@ export interface DiscordInviteCreate {
uses: number;
/** The expiration date of this invite. */
expires_at: string;
/** the role ID(s) for roles in the guild given to the users that accept this invite */
role_ids?: string[];
}
/** https://discord.com/developers/docs/events/gateway-events#invite-delete-invite-delete-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#invite-delete-invite-delete-event-fields */
export interface DiscordInviteDelete {
/** The channel of the invite */
channel_id: string;
@@ -721,7 +723,7 @@ export interface DiscordInviteDelete {
code: string;
}
/** https://discord.com/developers/docs/events/gateway-events#message-create-message-create-extra-fields */
/** https://docs.discord.com/developers/events/gateway-events#message-create-message-create-extra-fields */
export interface DiscordMessageCreateExtra {
/** ID of the guild the message was sent in - unless it is an ephemeral message */
guild_id?: string;
@@ -731,10 +733,10 @@ export interface DiscordMessageCreateExtra {
mentions: Array<DiscordUser & { member?: Partial<DiscordMember> }>;
}
/** https://discord.com/developers/docs/events/gateway-events#message-update */
/** https://docs.discord.com/developers/events/gateway-events#message-update */
export type DiscordMessageUpdateExtra = DiscordMessageCreateExtra;
/** https://discord.com/developers/docs/events/gateway-events#message-delete-message-delete-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#message-delete-message-delete-event-fields */
export interface DiscordMessageDelete {
/** The id of the message */
id: string;
@@ -744,7 +746,7 @@ export interface DiscordMessageDelete {
guild_id?: string;
}
/** https://discord.com/developers/docs/events/gateway-events#message-delete-bulk-message-delete-bulk-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#message-delete-bulk-message-delete-bulk-event-fields */
export interface DiscordMessageDeleteBulk {
/** The ids of the messages */
ids: string[];
@@ -754,7 +756,7 @@ export interface DiscordMessageDeleteBulk {
guild_id?: string;
}
/** https://discord.com/developers/docs/events/gateway-events#message-reaction-add-message-reaction-add-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#message-reaction-add-message-reaction-add-event-fields */
export interface DiscordMessageReactionAdd {
/** The id of the user */
user_id: string;
@@ -778,7 +780,7 @@ export interface DiscordMessageReactionAdd {
type: DiscordReactionType;
}
/** https://discord.com/developers/docs/events/gateway-events#message-reaction-remove-message-reaction-remove-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#message-reaction-remove-message-reaction-remove-event-fields */
export interface DiscordMessageReactionRemove {
/** The id of the user */
user_id: string;
@@ -796,7 +798,7 @@ export interface DiscordMessageReactionRemove {
type: DiscordReactionType;
}
/** https://discord.com/developers/docs/events/gateway-events#message-reaction-remove-all-message-reaction-remove-all-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#message-reaction-remove-all-message-reaction-remove-all-event-fields */
export interface DiscordMessageReactionRemoveAll {
/** The id of the channel */
channel_id: string;
@@ -806,7 +808,7 @@ export interface DiscordMessageReactionRemoveAll {
guild_id?: string;
}
/** https://discord.com/developers/docs/events/gateway-events#message-reaction-remove-emoji-message-reaction-remove-emoji-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#message-reaction-remove-emoji-message-reaction-remove-emoji-event-fields */
export interface DiscordMessageReactionRemoveEmoji {
/** The id of the channel */
channel_id: string;
@@ -818,7 +820,7 @@ export interface DiscordMessageReactionRemoveEmoji {
emoji: Partial<DiscordEmoji>;
}
/** https://discord.com/developers/docs/events/gateway-events#presence-update-presence-update-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#presence-update-presence-update-event-fields */
export interface DiscordPresenceUpdate {
/** The user presence is being updated for */
user: DiscordUser;
@@ -832,7 +834,7 @@ export interface DiscordPresenceUpdate {
client_status: DiscordClientStatus;
}
/** https://discord.com/developers/docs/events/gateway-events#client-status-object */
/** https://docs.discord.com/developers/events/gateway-events#client-status-object */
export interface DiscordClientStatus {
/** The user's status set for an active desktop (Windows, Linux, Mac) application session */
desktop?: string;
@@ -842,7 +844,7 @@ export interface DiscordClientStatus {
web?: string;
}
/** https://discord.com/developers/docs/events/gateway-events#activity-object */
/** https://docs.discord.com/developers/events/gateway-events#activity-object */
export interface DiscordActivity {
/** The activity's name */
name: string;
@@ -882,10 +884,10 @@ export interface DiscordActivity {
buttons?: DiscordActivityButton[];
}
/** https://discord.com/developers/docs/events/gateway-events#activity-object - Note at the bottom */
/** https://docs.discord.com/developers/events/gateway-events#activity-object - Note at the bottom */
export type DiscordBotActivity = Pick<DiscordActivity, 'name' | 'state' | 'type' | 'url'>;
/** https://discord.com/developers/docs/events/gateway-events#activity-object-activity-types */
/** https://docs.discord.com/developers/events/gateway-events#activity-object-activity-types */
export enum ActivityTypes {
Playing = 0,
Streaming = 1,
@@ -895,7 +897,7 @@ export enum ActivityTypes {
Competing = 5,
}
/** https://discord.com/developers/docs/events/gateway-events#activity-object-status-display-types */
/** https://docs.discord.com/developers/events/gateway-events#activity-object-status-display-types */
export enum DiscordStatusDisplayType {
/** Example: "Listening to Spotify" */
Name = 0,
@@ -905,7 +907,7 @@ export enum DiscordStatusDisplayType {
Details = 2,
}
/** https://discord.com/developers/docs/events/gateway-events#activity-object-activity-timestamps */
/** https://docs.discord.com/developers/events/gateway-events#activity-object-activity-timestamps */
export interface DiscordActivityTimestamps {
/** Unix time (in milliseconds) of when the activity started */
start?: number;
@@ -913,7 +915,7 @@ export interface DiscordActivityTimestamps {
end?: number;
}
/** https://discord.com/developers/docs/events/gateway-events#activity-object-activity-emoji */
/** https://docs.discord.com/developers/events/gateway-events#activity-object-activity-emoji */
export interface DiscordActivityEmoji {
/** The name of the emoji */
name: string;
@@ -923,7 +925,7 @@ export interface DiscordActivityEmoji {
id?: string;
}
/** https://discord.com/developers/docs/events/gateway-events#activity-object-activity-party */
/** https://docs.discord.com/developers/events/gateway-events#activity-object-activity-party */
export interface DiscordActivityParty {
/** Used to show the party's current and maximum size */
size?: [currentSize: number, maxSize: number];
@@ -931,7 +933,7 @@ export interface DiscordActivityParty {
id?: string;
}
/** https://discord.com/developers/docs/events/gateway-events#activity-object-activity-assets */
/** https://docs.discord.com/developers/events/gateway-events#activity-object-activity-assets */
export interface DiscordActivityAssets {
/** The id for a large asset of the activity, usually a snowflake */
large_image?: string;
@@ -949,7 +951,7 @@ export interface DiscordActivityAssets {
invite_cover_image?: string;
}
/** https://discord.com/developers/docs/events/gateway-events#activity-object-activity-secrets */
/** https://docs.discord.com/developers/events/gateway-events#activity-object-activity-secrets */
export interface DiscordActivitySecrets {
/** The secret for joining a party */
join?: string;
@@ -959,7 +961,7 @@ export interface DiscordActivitySecrets {
match?: string;
}
/** https://discord.com/developers/docs/events/gateway-events#activity-object-activity-flags */
/** https://docs.discord.com/developers/events/gateway-events#activity-object-activity-flags */
export enum ActivityFlags {
Instance = 1 << 0,
Join = 1 << 1,
@@ -972,7 +974,7 @@ export enum ActivityFlags {
Embedded = 1 << 8,
}
/** https://discord.com/developers/docs/events/gateway#activity-object-activity-buttons */
/** https://docs.discord.com/developers/events/gateway#activity-object-activity-buttons */
export interface DiscordActivityButton {
/** The text shown on the button (1-32 characters) */
label: string;
@@ -980,7 +982,7 @@ export interface DiscordActivityButton {
url: string;
}
/** https://discord.com/developers/docs/events/gateway-events#typing-start-typing-start-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#typing-start-typing-start-event-fields */
export interface DiscordTypingStart {
/** id of the channel */
channel_id: string;
@@ -994,7 +996,7 @@ export interface DiscordTypingStart {
member?: DiscordMember;
}
/** https://discord.com/developers/docs/events/gateway-events#voice-channel-effect-send-voice-channel-effect-send-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#voice-channel-effect-send-voice-channel-effect-send-event-fields */
export interface DiscordVoiceChannelEffectSend {
/** ID of the channel the effect was sent in */
channel_id: string;
@@ -1014,7 +1016,7 @@ export interface DiscordVoiceChannelEffectSend {
sound_volume?: number;
}
/** https://discord.com/developers/docs/events/gateway-events#voice-channel-effect-send-animation-types */
/** https://docs.discord.com/developers/events/gateway-events#voice-channel-effect-send-animation-types */
export enum DiscordVoiceChannelEffectAnimationType {
/** A fun animation, sent by a Nitro subscriber */
Premium = 0,
@@ -1022,7 +1024,7 @@ export enum DiscordVoiceChannelEffectAnimationType {
Basic = 1,
}
/** https://discord.com/developers/docs/events/gateway-events#voice-server-update-voice-server-update-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#voice-server-update-voice-server-update-event-fields */
export interface DiscordVoiceServerUpdate {
/** Voice connection token */
token: string;
@@ -1032,7 +1034,7 @@ export interface DiscordVoiceServerUpdate {
endpoint: string | null;
}
/** https://discord.com/developers/docs/events/gateway-events#webhooks-update-webhooks-update-event-fields */
/** https://docs.discord.com/developers/events/gateway-events#webhooks-update-webhooks-update-event-fields */
export interface DiscordWebhookUpdate {
/** id of the guild */
guild_id: string;
@@ -1040,7 +1042,7 @@ export interface DiscordWebhookUpdate {
channel_id: string;
}
/** https://discord.com/developers/docs/events/gateway-events#message-poll-vote-add-message-poll-vote-add-fields */
/** https://docs.discord.com/developers/events/gateway-events#message-poll-vote-add-message-poll-vote-add-fields */
export interface DiscordPollVoteAdd {
/** ID of the user. Usually a snowflake */
user_id: string;
@@ -1054,7 +1056,7 @@ export interface DiscordPollVoteAdd {
answer_id: number;
}
/** https://discord.com/developers/docs/events/gateway-events#message-poll-vote-remove-message-poll-vote-remove-fields */
/** https://docs.discord.com/developers/events/gateway-events#message-poll-vote-remove-message-poll-vote-remove-fields */
export interface DiscordPollVoteRemove {
/** ID of the user. Usually a snowflake */
user_id: string;
@@ -1068,7 +1070,7 @@ export interface DiscordPollVoteRemove {
answer_id: number;
}
/** https://discord.com/developers/docs/events/gateway-events#rate-limited-rate-limited-fields */
/** https://docs.discord.com/developers/events/gateway-events#rate-limited-rate-limited-fields */
export interface DiscordRateLimited {
/** Gateway opcode of the event that was rate limited */
opcode: GatewayOpcodes;
@@ -1083,7 +1085,7 @@ export interface DiscordRateLimited {
meta: DiscordRequestGuildMemberRateLimitMetadata;
}
/** https://discord.com/developers/docs/events/gateway-events#rate-limited-request-guild-member-rate-limit-metadata-structure */
/** https://docs.discord.com/developers/events/gateway-events#rate-limited-request-guild-member-rate-limit-metadata-structure */
export interface DiscordRequestGuildMemberRateLimitMetadata {
/** ID of the guild to get members for */
guild_id: string;

View File

@@ -1,4 +1,4 @@
/** Types for: https://discord.com/developers/docs/resources/guild */
/** Types for: https://docs.discord.com/developers/resources/guild */
import type { DiscordChannel, DiscordThreadMember } from './channel.js';
import type { DiscordEmoji } from './emoji.js';
@@ -9,7 +9,7 @@ import type { DiscordRole } from './permissions.js';
import type { DiscordSticker } from './sticker.js';
import type { DiscordAvatarDecorationData, DiscordUser } from './user.js';
/** https://discord.com/developers/docs/resources/guild#guild-object-guild-structure */
/** https://docs.discord.com/developers/resources/guild#guild-object-guild-structure */
export interface DiscordGuild extends Partial<DiscordGuildCreateExtra> {
/** Guild id */
id: string;
@@ -116,7 +116,7 @@ export interface DiscordGuild extends Partial<DiscordGuildCreateExtra> {
incidents_data: DiscordIncidentsData | null;
}
/** https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level */
/** https://docs.discord.com/developers/resources/guild#guild-object-default-message-notification-level */
export enum DefaultMessageNotificationLevels {
/** Members will receive notifications for all messages by default */
AllMessages,
@@ -124,7 +124,7 @@ export enum DefaultMessageNotificationLevels {
OnlyMentions,
}
/** https://discord.com/developers/docs/resources/guild#guild-object-explicit-content-filter-level */
/** https://docs.discord.com/developers/resources/guild#guild-object-explicit-content-filter-level */
export enum ExplicitContentFilterLevels {
/** Media content will not be scanned */
Disabled,
@@ -134,7 +134,7 @@ export enum ExplicitContentFilterLevels {
AllMembers,
}
/** https://discord.com/developers/docs/resources/guild#guild-object-mfa-level */
/** https://docs.discord.com/developers/resources/guild#guild-object-mfa-level */
export enum MfaLevels {
/** Guild has no MFA/2FA requirement for moderation actions */
None,
@@ -142,7 +142,7 @@ export enum MfaLevels {
Elevated,
}
/** https://discord.com/developers/docs/resources/guild#guild-object-verification-level */
/** https://docs.discord.com/developers/resources/guild#guild-object-verification-level */
export enum VerificationLevels {
/** Unrestricted */
None,
@@ -156,7 +156,7 @@ export enum VerificationLevels {
VeryHigh,
}
/** https://discord.com/developers/docs/resources/guild#guild-object-guild-nsfw-level */
/** https://docs.discord.com/developers/resources/guild#guild-object-guild-nsfw-level */
export enum GuildNsfwLevel {
Default,
Explicit,
@@ -164,7 +164,7 @@ export enum GuildNsfwLevel {
AgeRestricted,
}
/** https://discord.com/developers/docs/resources/guild#guild-object-premium-tier */
/** https://docs.discord.com/developers/resources/guild#guild-object-premium-tier */
export enum PremiumTiers {
/** Guild has not unlocked any Server Boost perks */
None,
@@ -176,7 +176,7 @@ export enum PremiumTiers {
Tier3,
}
/** https://discord.com/developers/docs/resources/guild#guild-object-system-channel-flags */
/** https://docs.discord.com/developers/resources/guild#guild-object-system-channel-flags */
export enum SystemChannelFlags {
/** Suppress member join notifications */
SuppressJoinNotifications = 1 << 0,
@@ -192,7 +192,7 @@ export enum SystemChannelFlags {
SuppressRoleSubscriptionPurchaseNotificationReplies = 1 << 5,
}
/** https://discord.com/developers/docs/resources/guild#guild-object-guild-features */
/** https://docs.discord.com/developers/resources/guild#guild-object-guild-features */
export enum GuildFeatures {
/** Guild has access to set an animated guild banner image */
AnimatedBanner = 'ANIMATED_BANNER',
@@ -235,7 +235,7 @@ export enum GuildFeatures {
InvitesDisabled = 'INVITES_DISABLED',
/** Guild has access to set an invite splash background */
InviteSplash = 'INVITE_SPLASH',
/** Guild has enabled [Membership Screening](https://discord.com/developers/docs/resources/guild#membership-screening-object) */
/** Guild has enabled [Membership Screening](https://docs.discord.com/developers/resources/guild#membership-screening-object) */
MemberVerificationGateEnabled = 'MEMBER_VERIFICATION_GATE_ENABLED',
/** Guild has increased custom soundboard sound slots. */
MoreSoundboard = 'MORE_SOUNDBOARD',
@@ -280,10 +280,10 @@ export enum GuildFeatures {
EnhancedRoleColors = 'ENHANCED_ROLE_COLORS',
}
/** https://discord.com/developers/docs/resources/guild#unavailable-guild-object */
/** https://docs.discord.com/developers/resources/guild#unavailable-guild-object */
export interface DiscordUnavailableGuild extends Pick<DiscordGuild, 'id' | 'unavailable'> {}
/** https://discord.com/developers/docs/resources/guild#guild-preview-object-guild-preview-structure */
/** https://docs.discord.com/developers/resources/guild#guild-preview-object-guild-preview-structure */
export interface DiscordGuildPreview {
/** Guild id */
id: string;
@@ -309,7 +309,7 @@ export interface DiscordGuildPreview {
stickers: DiscordSticker[];
}
/** https://discord.com/developers/docs/resources/guild#guild-widget-settings-object-guild-widget-settings-structure */
/** https://docs.discord.com/developers/resources/guild#guild-widget-settings-object-guild-widget-settings-structure */
export interface DiscordGuildWidgetSettings {
/** whether the widget is enabled */
enabled: boolean;
@@ -317,7 +317,7 @@ export interface DiscordGuildWidgetSettings {
channel_id: string | null;
}
/** https://discord.com/developers/docs/resources/guild#guild-widget-object-guild-widget-structure */
/** https://docs.discord.com/developers/resources/guild#guild-widget-object-guild-widget-structure */
export interface DiscordGuildWidget {
id: string;
name: string;
@@ -327,7 +327,7 @@ export interface DiscordGuildWidget {
presence_count: number;
}
/** https://discord.com/developers/docs/resources/guild#guild-member-object-guild-member-structure */
/** https://docs.discord.com/developers/resources/guild#guild-member-object-guild-member-structure */
export interface DiscordMember {
/** The user this guild member represents */
user?: DiscordUser;
@@ -363,13 +363,13 @@ export interface DiscordMember {
avatar_decoration_data?: DiscordAvatarDecorationData | null;
}
/** https://discord.com/developers/docs/resources/guild#guild-member-object-guild-member-structure */
/** https://docs.discord.com/developers/resources/guild#guild-member-object-guild-member-structure */
export interface DiscordMemberWithUser extends DiscordMember {
/** The user object for this member */
user: DiscordUser;
}
/** https://discord.com/developers/docs/resources/guild#guild-member-object-guild-member-flags */
/** https://docs.discord.com/developers/resources/guild#guild-member-object-guild-member-flags */
export enum MemberFlags {
/**
* Member has left and rejoined the guild
@@ -438,7 +438,7 @@ export enum MemberFlags {
AutomodQuarantinedGuildTag = 1 << 10,
}
/** https://discord.com/developers/docs/resources/guild#integration-object-integration-structure */
/** https://docs.discord.com/developers/resources/guild#integration-object-integration-structure */
export interface DiscordIntegration {
/** Integration Id */
id: string;
@@ -474,13 +474,13 @@ export interface DiscordIntegration {
scopes: OAuth2Scope[];
}
/** https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors */
/** https://docs.discord.com/developers/resources/guild#integration-object-integration-expire-behaviors */
export enum IntegrationExpireBehaviors {
RemoveRole,
Kick,
}
/** https://discord.com/developers/docs/resources/guild#integration-account-object-integration-account-structure */
/** https://docs.discord.com/developers/resources/guild#integration-account-object-integration-account-structure */
export interface DiscordIntegrationAccount {
/** Id of the account */
id: string;
@@ -488,7 +488,7 @@ export interface DiscordIntegrationAccount {
name: string;
}
/** https://discord.com/developers/docs/resources/guild#integration-application-object-integration-application-structure */
/** https://docs.discord.com/developers/resources/guild#integration-application-object-integration-application-structure */
export interface DiscordIntegrationApplication {
/** The id of the app */
id: string;
@@ -502,7 +502,7 @@ export interface DiscordIntegrationApplication {
bot?: DiscordUser;
}
/** https://discord.com/developers/docs/resources/guild#ban-object-ban-structure */
/** https://docs.discord.com/developers/resources/guild#ban-object-ban-structure */
export interface DiscordBan {
/** The reason for the ban */
reason: string | null;
@@ -510,7 +510,7 @@ export interface DiscordBan {
user: DiscordUser;
}
/** https://discord.com/developers/docs/resources/guild#welcome-screen-object-welcome-screen-structure */
/** https://docs.discord.com/developers/resources/guild#welcome-screen-object-welcome-screen-structure */
export interface DiscordWelcomeScreen {
/** The server description shown in the welcome screen */
description: string | null;
@@ -518,7 +518,7 @@ export interface DiscordWelcomeScreen {
welcome_channels: DiscordWelcomeScreenChannel[];
}
/** https://discord.com/developers/docs/resources/guild#welcome-screen-object-welcome-screen-channel-structure */
/** https://docs.discord.com/developers/resources/guild#welcome-screen-object-welcome-screen-channel-structure */
export interface DiscordWelcomeScreenChannel {
/** The channel's id */
channel_id: string;
@@ -530,7 +530,7 @@ export interface DiscordWelcomeScreenChannel {
emoji_name: string | null;
}
/** https://discord.com/developers/docs/resources/guild#guild-onboarding-object-guild-onboarding-structure */
/** https://docs.discord.com/developers/resources/guild#guild-onboarding-object-guild-onboarding-structure */
export interface DiscordGuildOnboarding {
/** ID of the guild this onboarding is part of */
guild_id: string;
@@ -544,7 +544,7 @@ export interface DiscordGuildOnboarding {
mode: DiscordGuildOnboardingMode;
}
/** https://discord.com/developers/docs/resources/guild#guild-onboarding-object-onboarding-prompt-structure */
/** https://docs.discord.com/developers/resources/guild#guild-onboarding-object-onboarding-prompt-structure */
export interface DiscordGuildOnboardingPrompt {
/** ID of the prompt */
id: string;
@@ -562,7 +562,7 @@ export interface DiscordGuildOnboardingPrompt {
in_onboarding: boolean;
}
/** https://discord.com/developers/docs/resources/guild#guild-onboarding-object-prompt-option-structure */
/** https://docs.discord.com/developers/resources/guild#guild-onboarding-object-prompt-option-structure */
export interface DiscordGuildOnboardingPromptOption {
/** ID of the prompt option */
id: string;
@@ -604,7 +604,7 @@ export interface DiscordGuildOnboardingPromptOption {
description: string | null;
}
/** https://discord.com/developers/docs/resources/guild#guild-onboarding-object-onboarding-mode */
/** https://docs.discord.com/developers/resources/guild#guild-onboarding-object-onboarding-mode */
export enum DiscordGuildOnboardingMode {
/** Counts only Default Channels towards constraints */
OnboardingDefault,
@@ -612,13 +612,13 @@ export enum DiscordGuildOnboardingMode {
OnboardingAdvanced,
}
/** https://discord.com/developers/docs/resources/guild#guild-onboarding-object-prompt-types */
/** https://docs.discord.com/developers/resources/guild#guild-onboarding-object-prompt-types */
export enum DiscordGuildOnboardingPromptType {
MultipleChoice,
DropDown,
}
/** https://discord.com/developers/docs/resources/guild#incidents-data-object-incidents-data-structure */
/** https://docs.discord.com/developers/resources/guild#incidents-data-object-incidents-data-structure */
export interface DiscordIncidentsData {
/** When invites get enabled again */
invites_disabled_until: string | null;
@@ -630,7 +630,7 @@ export interface DiscordIncidentsData {
raid_detected_at?: string | null;
}
/** https://discord.com/developers/docs/resources/guild#list-active-guild-threads-response-body */
/** https://docs.discord.com/developers/resources/guild#list-active-guild-threads-response-body */
export interface DiscordListActiveThreads {
/** The active threads */
threads: DiscordChannel[];
@@ -638,7 +638,7 @@ export interface DiscordListActiveThreads {
members: DiscordThreadMember[];
}
/** https://discord.com/developers/docs/resources/guild#bulk-guild-ban-bulk-ban-response */
/** https://docs.discord.com/developers/resources/guild#bulk-guild-ban-bulk-ban-response */
export interface DiscordBulkBan {
/** list of user ids, that were successfully banned */
banned_users: string[];
@@ -646,12 +646,12 @@ export interface DiscordBulkBan {
failed_users: string[];
}
/** https://discord.com/developers/docs/resources/guild#get-guild-prune-count */
/** https://docs.discord.com/developers/resources/guild#get-guild-prune-count */
export interface DiscordPrunedCount {
pruned: number;
}
/** https://discord.com/developers/docs/resources/guild#get-guild-vanity-url */
/** https://docs.discord.com/developers/resources/guild#get-guild-vanity-url */
// TODO: This should provably have another name for clarity to what it really rappresent
export interface DiscordVanityUrl extends Partial<Omit<DiscordInvite, 'code'>> {
code: string | null;

View File

@@ -1,9 +1,9 @@
/** Types for: https://discord.com/developers/docs/resources/guild-scheduled-event */
/** Types for: https://docs.discord.com/developers/resources/guild-scheduled-event */
import type { DiscordMember } from './guild.js';
import type { DiscordUser } from './user.js';
/** https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-structure */
/** https://docs.discord.com/developers/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-structure */
export interface DiscordScheduledEvent {
/** the id of the scheduled event */
id: string;
@@ -41,20 +41,20 @@ export interface DiscordScheduledEvent {
recurrence_rule: DiscordScheduledEventRecurrenceRule | null;
}
/** https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-privacy-level */
/** https://docs.discord.com/developers/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-privacy-level */
export enum ScheduledEventPrivacyLevel {
/** the scheduled event is only accessible to guild members */
GuildOnly = 2,
}
/** https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-types */
/** https://docs.discord.com/developers/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-types */
export enum ScheduledEventEntityType {
StageInstance = 1,
Voice,
External,
}
/** https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-status */
/** https://docs.discord.com/developers/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-status */
export enum ScheduledEventStatus {
Scheduled = 1,
Active,
@@ -62,13 +62,13 @@ export enum ScheduledEventStatus {
Canceled,
}
/** https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-metadata */
/** https://docs.discord.com/developers/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-metadata */
export interface DiscordScheduledEventEntityMetadata {
/** location of the event */
location?: string;
}
/** https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-user-object-guild-scheduled-event-user-structure */
/** https://docs.discord.com/developers/resources/guild-scheduled-event#guild-scheduled-event-user-object-guild-scheduled-event-user-structure */
export interface DiscordScheduledEventUser {
/** The scheduled event id which the user subscribed to */
guild_scheduled_event_id: string;
@@ -78,7 +78,7 @@ export interface DiscordScheduledEventUser {
member?: DiscordMember;
}
/** https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-recurrence-rule-object-guild-scheduled-event-recurrence-rule-structure */
/** https://docs.discord.com/developers/resources/guild-scheduled-event#guild-scheduled-event-recurrence-rule-object-guild-scheduled-event-recurrence-rule-structure */
export interface DiscordScheduledEventRecurrenceRule {
/** Starting time of the recurrence interval */
start: string;
@@ -102,7 +102,7 @@ export interface DiscordScheduledEventRecurrenceRule {
count: number | null;
}
/** https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-recurrence-rule-object-guild-scheduled-event-recurrence-rule-frequency */
/** https://docs.discord.com/developers/resources/guild-scheduled-event#guild-scheduled-event-recurrence-rule-object-guild-scheduled-event-recurrence-rule-frequency */
export enum DiscordScheduledEventRecurrenceRuleFrequency {
Yearly,
Monthly,
@@ -110,7 +110,7 @@ export enum DiscordScheduledEventRecurrenceRuleFrequency {
Daily,
}
/** https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-recurrence-rule-object-guild-scheduled-event-recurrence-rule-weekday */
/** https://docs.discord.com/developers/resources/guild-scheduled-event#guild-scheduled-event-recurrence-rule-object-guild-scheduled-event-recurrence-rule-weekday */
export enum DiscordScheduledEventRecurrenceRuleWeekday {
Monday,
Tuesday,
@@ -121,7 +121,7 @@ export enum DiscordScheduledEventRecurrenceRuleWeekday {
Sunday,
}
/** https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-recurrence-rule-object-guild-scheduled-event-recurrence-rule-nweekday-structure */
/** https://docs.discord.com/developers/resources/guild-scheduled-event#guild-scheduled-event-recurrence-rule-object-guild-scheduled-event-recurrence-rule-nweekday-structure */
export interface DiscordScheduledEventRecurrenceRuleNWeekday {
/** The week to reoccur on. 1 - 5 */
n: number;
@@ -129,7 +129,7 @@ export interface DiscordScheduledEventRecurrenceRuleNWeekday {
day: DiscordScheduledEventRecurrenceRuleWeekday;
}
/** https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-recurrence-rule-object-guild-scheduled-event-recurrence-rule-month */
/** https://docs.discord.com/developers/resources/guild-scheduled-event#guild-scheduled-event-recurrence-rule-object-guild-scheduled-event-recurrence-rule-month */
export enum DiscordScheduledEventRecurrenceRuleMonth {
January = 1,
February,

View File

@@ -1,4 +1,4 @@
/** Types for: https://discord.com/developers/docs/resources/guild-template */
/** Types for: https://docs.discord.com/developers/resources/guild-template */
import type { PickPartial } from '../shared.js';
import type { DiscordChannel, DiscordOverwrite } from './channel.js';
@@ -6,7 +6,7 @@ import type { DiscordGuild } from './guild.js';
import type { DiscordRole } from './permissions.js';
import type { DiscordUser } from './user.js';
/** https://discord.com/developers/docs/resources/guild-template#guild-template-object-guild-template-structure */
/** https://docs.discord.com/developers/resources/guild-template#guild-template-object-guild-template-structure */
export interface DiscordTemplate {
/** The template code (unique Id) */
code: string;
@@ -31,7 +31,7 @@ export interface DiscordTemplate {
is_dirty: boolean | null;
}
/** https://discord.com/developers/docs/resources/guild-template#guild-template-object-guild-template-structure specificly the serialized_source_guild property */
/** https://docs.discord.com/developers/resources/guild-template#guild-template-object-guild-template-structure specificly the serialized_source_guild property */
export type DiscordTemplateSerializedSourceGuild = Omit<
PickPartial<
DiscordGuild,

View File

@@ -1,7 +1,7 @@
/**
* Types for:
* - https://discord.com/developers/docs/interactions/receiving-and-responding
* - https://discord.com/developers/docs/interactions/application-commands
* - https://docs.discord.com/developers/interactions/receiving-and-responding
* - https://docs.discord.com/developers/interactions/application-commands
*/
import type { DiscordApplicationIntegrationType } from './application.js';
@@ -14,7 +14,7 @@ import type { DiscordRole } from './permissions.js';
import type { Localization } from './reference.js';
import type { DiscordUser } from './user.js';
/** https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-structure */
/** https://docs.discord.com/developers/interactions/receiving-and-responding#interaction-object-interaction-structure */
export interface DiscordInteraction {
/** Id of the interaction */
id: string;
@@ -69,13 +69,13 @@ export interface DiscordInteraction {
attachment_size_limit: number;
}
/** https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-structure (Specifically, the member propriety) */
/** https://docs.discord.com/developers/interactions/receiving-and-responding#interaction-object-interaction-structure (Specifically, the member propriety) */
export interface DiscordInteractionMember extends DiscordMemberWithUser {
/** Total permissions of the member in the channel, including overwrites, returned when in the interaction object */
permissions: string;
}
/** https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-type */
/** https://docs.discord.com/developers/interactions/receiving-and-responding#interaction-object-interaction-type */
export enum InteractionTypes {
Ping = 1,
ApplicationCommand = 2,
@@ -84,7 +84,7 @@ export enum InteractionTypes {
ModalSubmit = 5,
}
/** https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-context-types */
/** https://docs.discord.com/developers/interactions/receiving-and-responding#interaction-object-interaction-context-types */
export enum DiscordInteractionContextType {
/** Interaction can be used within servers */
Guild = 0,
@@ -94,14 +94,14 @@ export enum DiscordInteractionContextType {
PrivateChannel = 2,
}
/** https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-authorizing-integration-owners-object */
/** https://docs.discord.com/developers/interactions/receiving-and-responding#interaction-object-authorizing-integration-owners-object */
export type DiscordAuthorizingIntegrationOwners = Partial<Record<DiscordApplicationIntegrationType, string>>;
// Since this is a merge of 3 types, the properties appear in order of their first appearance in the 3 types
/**
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-application-command-data-structure
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-message-component-data-structure
* https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-modal-submit-data-structure
* https://docs.discord.com/developers/interactions/receiving-and-responding#interaction-object-application-command-data-structure
* https://docs.discord.com/developers/interactions/receiving-and-responding#interaction-object-message-component-data-structure
* https://docs.discord.com/developers/interactions/receiving-and-responding#interaction-object-modal-submit-data-structure
*/
export interface DiscordInteractionData {
// Application Command Data
@@ -134,7 +134,7 @@ export interface DiscordInteractionData {
components?: DiscordMessageComponentFromModalInteractionResponse[];
}
/** https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-resolved-data-structure */
/** https://docs.discord.com/developers/interactions/receiving-and-responding#interaction-object-resolved-data-structure */
export interface DiscordInteractionDataResolved {
/** The Ids and User objects */
users?: Record<string, DiscordUser>;
@@ -171,10 +171,10 @@ export interface DiscordInteractionDataResolved {
/** The Ids and Message objects */
messages?: Record<string, Partial<DiscordMessage>>;
/** The ids and attachment objects */
attachments: Record<string, DiscordAttachment>;
attachments?: Record<string, DiscordAttachment>;
}
/** https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-application-command-interaction-data-option-structure */
/** https://docs.discord.com/developers/interactions/receiving-and-responding#interaction-object-application-command-interaction-data-option-structure */
export interface DiscordInteractionDataOption {
/** Name of the parameter */
name: string;
@@ -188,7 +188,7 @@ export interface DiscordInteractionDataOption {
focused?: boolean;
}
/** https://discord.com/developers/docs/interactions/receiving-and-responding#message-interaction-object-message-interaction-structure */
/** https://docs.discord.com/developers/interactions/receiving-and-responding#message-interaction-object-message-interaction-structure */
export interface DiscordMessageInteraction {
/** Id of the interaction */
id: string;
@@ -202,7 +202,7 @@ export interface DiscordMessageInteraction {
member?: Partial<DiscordMember>;
}
/** https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-interaction-callback-type */
/** https://docs.discord.com/developers/interactions/receiving-and-responding#interaction-response-object-interaction-callback-type */
export enum InteractionResponseTypes {
/** ACK a `Ping` */
Pong = 1,
@@ -233,7 +233,7 @@ export enum InteractionResponseTypes {
LaunchActivity = 12,
}
/** https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-callback-interaction-callback-response-object */
/** https://docs.discord.com/developers/interactions/receiving-and-responding#interaction-callback-interaction-callback-response-object */
export interface DiscordInteractionCallbackResponse {
/** The interaction object associated with the interaction response */
interaction: DiscordInteractionCallback;
@@ -241,7 +241,7 @@ export interface DiscordInteractionCallbackResponse {
resource?: DiscordInteractionResource;
}
/** https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-callback-interaction-callback-object */
/** https://docs.discord.com/developers/interactions/receiving-and-responding#interaction-callback-interaction-callback-object */
export interface DiscordInteractionCallback {
/** ID of the interaction */
id: string;
@@ -257,7 +257,7 @@ export interface DiscordInteractionCallback {
response_message_ephemeral?: boolean;
}
/** https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-callback-interaction-callback-resource-object */
/** https://docs.discord.com/developers/interactions/receiving-and-responding#interaction-callback-interaction-callback-resource-object */
export interface DiscordInteractionResource {
type: InteractionResponseTypes;
/**
@@ -276,13 +276,13 @@ export interface DiscordInteractionResource {
message?: DiscordMessage;
}
/** https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-callback-interaction-callback-activity-instance-resource */
/** https://docs.discord.com/developers/interactions/receiving-and-responding#interaction-callback-interaction-callback-activity-instance-resource */
export interface DiscordActivityInstanceResource {
/** Instance ID of the Activity if one was launched or joined. */
id: string;
}
/** https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-structure */
/** https://docs.discord.com/developers/interactions/application-commands#application-command-object-application-command-structure */
export interface DiscordApplicationCommand {
/** Unique ID of command */
id: string;
@@ -353,7 +353,7 @@ export interface DiscordApplicationCommand {
handler?: DiscordInteractionEntryPointCommandHandlerType;
}
/** https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-types */
/** https://docs.discord.com/developers/interactions/application-commands#application-command-object-application-command-types */
export enum ApplicationCommandTypes {
/** A text-based command that shows up when a user types `/` */
ChatInput = 1,
@@ -365,7 +365,7 @@ export enum ApplicationCommandTypes {
PrimaryEntryPoint,
}
/** https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-structure */
/** https://docs.discord.com/developers/interactions/application-commands#application-command-object-application-command-option-structure */
export interface DiscordApplicationCommandOption {
/** Type of option */
type: ApplicationCommandOptionTypes;
@@ -457,7 +457,7 @@ export interface DiscordApplicationCommandOption {
autocomplete?: boolean;
}
/** https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-type */
/** https://docs.discord.com/developers/interactions/application-commands#application-command-object-application-command-option-type */
export enum ApplicationCommandOptionTypes {
SubCommand = 1,
SubCommandGroup,
@@ -477,7 +477,7 @@ export enum ApplicationCommandOptionTypes {
Attachment,
}
/** https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-choice-structure */
/** https://docs.discord.com/developers/interactions/application-commands#application-command-object-application-command-option-choice-structure */
export interface DiscordApplicationCommandOptionChoice {
/** 1-100 character choice name */
name: string;
@@ -487,7 +487,7 @@ export interface DiscordApplicationCommandOptionChoice {
value: string | number;
}
/** https://discord.com/developers/docs/interactions/application-commands#application-command-object-entry-point-command-handler-types */
/** https://docs.discord.com/developers/interactions/application-commands#application-command-object-entry-point-command-handler-types */
export enum DiscordInteractionEntryPointCommandHandlerType {
/** The app handles the interaction using an interaction token */
AppHandler = 1,
@@ -495,7 +495,7 @@ export enum DiscordInteractionEntryPointCommandHandlerType {
DiscordLaunchActivity = 2,
}
/** https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-guild-application-command-permissions-structure */
/** https://docs.discord.com/developers/interactions/application-commands#application-command-permissions-object-guild-application-command-permissions-structure */
export interface DiscordGuildApplicationCommandPermissions {
/** ID of the command or the application ID. When the `id` field is the application ID instead of a command ID, the permissions apply to all commands that do not contain explicit overwrites. */
id: string;
@@ -507,7 +507,7 @@ export interface DiscordGuildApplicationCommandPermissions {
permissions: DiscordApplicationCommandPermissions[];
}
/** https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-application-command-permissions-structure */
/** https://docs.discord.com/developers/interactions/application-commands#application-command-permissions-object-application-command-permissions-structure */
export interface DiscordApplicationCommandPermissions {
/** ID of the role, user, or channel. It can also be a permission constant */
id: string;
@@ -517,7 +517,7 @@ export interface DiscordApplicationCommandPermissions {
permission: boolean;
}
/** https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-application-command-permission-type */
/** https://docs.discord.com/developers/interactions/application-commands#application-command-permissions-object-application-command-permission-type */
export enum ApplicationCommandPermissionTypes {
Role = 1,
User,

View File

@@ -1,4 +1,4 @@
/** Types for: https://discord.com/developers/docs/resources/invite */
/** Types for: https://docs.discord.com/developers/resources/invite */
import type { DiscordApplication } from './application.js';
import type { DiscordChannel } from './channel.js';
@@ -7,7 +7,7 @@ import type { DiscordScheduledEvent } from './guildScheduledEvent.js';
import type { DiscordRole } from './permissions.js';
import type { DiscordUser } from './user.js';
/** https://discord.com/developers/docs/resources/invite#invite-object-invite-structure */
/** https://docs.discord.com/developers/resources/invite#invite-object-invite-structure */
export interface DiscordInvite {
/** The type of invite */
type: DiscordInviteType;
@@ -42,29 +42,29 @@ export interface DiscordInvite {
/**
* The roles assigned to the user upon accepting the invite
*/
roles?: DiscordRole[];
roles?: Pick<DiscordRole, 'id' | 'name' | 'position' | 'color' | 'colors' | 'icon' | 'unicode_emoji'>[];
}
/** https://discord.com/developers/docs/resources/invite#invite-object-invite-types */
/** https://docs.discord.com/developers/resources/invite#invite-object-invite-types */
export enum DiscordInviteType {
Guild,
GroupDm,
Friend,
}
/** https://discord.com/developers/docs/resources/invite#invite-object-invite-target-types */
/** https://docs.discord.com/developers/resources/invite#invite-object-invite-target-types */
export enum TargetTypes {
Stream = 1,
EmbeddedApplication,
}
/** https://discord.com/developers/docs/resources/invite#invite-object-guild-invite-flags */
/** https://docs.discord.com/developers/resources/invite#invite-object-guild-invite-flags */
export enum DiscordGuildInviteFlags {
/** This invite is a guest invite for a voice channel */
isGuestInvite = 1 << 0,
}
/** https://discord.com/developers/docs/resources/invite#invite-metadata-object-invite-metadata-structure */
/** https://docs.discord.com/developers/resources/invite#invite-metadata-object-invite-metadata-structure */
export interface DiscordInviteMetadata extends DiscordInvite {
/** Number of times this invite has been used */
uses: number;
@@ -79,7 +79,7 @@ export interface DiscordInviteMetadata extends DiscordInvite {
}
/**
* https://discord.com/developers/docs/resources/invite#invite-stage-instance-object-invite-stage-instance-structure
* https://docs.discord.com/developers/resources/invite#invite-stage-instance-object-invite-stage-instance-structure
* @deprecated
*/
export interface DiscordInviteStageInstance {
@@ -94,7 +94,7 @@ export interface DiscordInviteStageInstance {
}
/**
* https://discord.com/developers/docs/resources/invite#get-target-users-job-status-example-response
* https://docs.discord.com/developers/resources/invite#get-target-users-job-status-example-response
*
* @remarks
* Discord does not seem to actually document the type for this response, so this is based on the example provided
@@ -108,7 +108,7 @@ export interface DiscordTargetUsersJobStatus {
error_message: string | null;
}
/** https://discord.com/developers/docs/resources/invite#get-target-users-job-status-error-codes */
/** https://docs.discord.com/developers/resources/invite#get-target-users-job-status-error-codes */
export enum DiscordGetTargetUsersJobStatusErrorCodes {
/** The default value. */
Unspecified,

View File

@@ -1,8 +1,8 @@
/** Types for: https://discord.com/developers/docs/resources/lobby */
/** Types for: https://docs.discord.com/developers/resources/lobby */
import type { DiscordChannel } from './channel.js';
/** https://discord.com/developers/docs/resources/lobby#lobby-object-lobby-structure */
/** https://docs.discord.com/developers/resources/lobby#lobby-object-lobby-structure */
export interface DiscordLobby {
/** The id of this channel */
id: string;
@@ -16,7 +16,7 @@ export interface DiscordLobby {
linked_channel?: DiscordChannel;
}
/** https://discord.com/developers/docs/resources/lobby#lobby-member-object-lobby-member-structure */
/** https://docs.discord.com/developers/resources/lobby#lobby-member-object-lobby-member-structure */
export interface DiscordLobbyMember {
/** The id of the user */
id: string;
@@ -26,7 +26,7 @@ export interface DiscordLobbyMember {
flags?: number;
}
/** https://discord.com/developers/docs/resources/lobby#lobby-member-object-lobby-member-flags */
/** https://docs.discord.com/developers/resources/lobby#lobby-member-object-lobby-member-flags */
export enum DiscordLobbyMemberFlags {
/** User can link a text channel to a lobby */
CanLinkLobby = 1 << 0,

View File

@@ -1,4 +1,4 @@
/** Types for: https://discord.com/developers/docs/resources/message */
/** Types for: https://docs.discord.com/developers/resources/message */
import type { DiscordApplication } from './application.js';
import type { DiscordChannel, DiscordThreadMember } from './channel.js';
@@ -15,7 +15,7 @@ import type { DiscordPoll } from './poll.js';
import type { DiscordSticker, DiscordStickerItem } from './sticker.js';
import type { DiscordUser } from './user.js';
/** https://discord.com/developers/docs/resources/message#message-object-message-structure */
/** https://docs.discord.com/developers/resources/message#message-object-message-structure */
export interface DiscordMessage extends Partial<DiscordMessageCreateExtra> {
/** id of the message */
id: string;
@@ -113,7 +113,7 @@ export interface DiscordMessage extends Partial<DiscordMessageCreateExtra> {
call?: DiscordMessageCall;
}
/** https://discord.com/developers/docs/resources/message#message-object-message-types */
/** https://docs.discord.com/developers/resources/message#message-object-message-types */
export enum MessageTypes {
Default,
RecipientAdd,
@@ -154,7 +154,7 @@ export enum MessageTypes {
PollResult = 46,
}
/** https://discord.com/developers/docs/resources/message#message-object-message-activity-structure */
/** https://docs.discord.com/developers/resources/message#message-object-message-activity-structure */
export interface DiscordMessageActivity {
/** Type of message activity */
type: MessageActivityTypes;
@@ -162,7 +162,7 @@ export interface DiscordMessageActivity {
party_id?: string;
}
/** https://discord.com/developers/docs/resources/message#message-object-message-activity-types */
/** https://docs.discord.com/developers/resources/message#message-object-message-activity-types */
export enum MessageActivityTypes {
Join = 1,
Spectate = 2,
@@ -170,7 +170,7 @@ export enum MessageActivityTypes {
JoinRequest = 5,
}
/** https://discord.com/developers/docs/resources/message#message-object-message-flags */
/** https://docs.discord.com/developers/resources/message#message-object-message-flags */
export enum MessageFlags {
/** This message has been published to subscribed channels (via Channel Following) */
Crossposted = 1 << 0,
@@ -205,13 +205,13 @@ export enum MessageFlags {
IsComponentsV2 = 1 << 15,
}
/** https://discord.com/developers/docs/resources/message#message-interaction-metadata-object */
/** https://docs.discord.com/developers/resources/message#message-interaction-metadata-object */
export type DiscordMessageInteractionMetadata =
| DiscordApplicationCommandInteractionMetadata
| DiscordMessageComponentInteractionMetadata
| DiscordModalSubmitInteractionMetadata;
/** https://discord.com/developers/docs/resources/message#message-interaction-metadata-object-application-command-interaction-metadata-structure */
/** https://docs.discord.com/developers/resources/message#message-interaction-metadata-object-application-command-interaction-metadata-structure */
export interface DiscordApplicationCommandInteractionMetadata {
/** Id of the interaction */
id: string;
@@ -229,7 +229,7 @@ export interface DiscordApplicationCommandInteractionMetadata {
target_message_id?: string;
}
/** https://discord.com/developers/docs/resources/message#message-interaction-metadata-object-message-component-interaction-metadata-structure */
/** https://docs.discord.com/developers/resources/message#message-interaction-metadata-object-message-component-interaction-metadata-structure */
export interface DiscordMessageComponentInteractionMetadata {
/** Id of the interaction */
id: string;
@@ -245,7 +245,7 @@ export interface DiscordMessageComponentInteractionMetadata {
interacted_message_id: string;
}
/** https://discord.com/developers/docs/resources/message#message-interaction-metadata-object-modal-submit-interaction-metadata-structure */
/** https://docs.discord.com/developers/resources/message#message-interaction-metadata-object-modal-submit-interaction-metadata-structure */
export interface DiscordModalSubmitInteractionMetadata {
/** Id of the interaction */
id: string;
@@ -261,7 +261,7 @@ export interface DiscordModalSubmitInteractionMetadata {
triggering_interaction_metadata: DiscordApplicationCommandInteractionMetadata | DiscordMessageComponentInteractionMetadata;
}
/** https://discord.com/developers/docs/resources/message#message-call-object-message-call-object-structure */
/** https://docs.discord.com/developers/resources/message#message-call-object-message-call-object-structure */
export interface DiscordMessageCall {
/** Array of user object ids that participated in the call */
participants: string[];
@@ -269,7 +269,7 @@ export interface DiscordMessageCall {
ended_timestamp?: string | null;
}
/** https://discord.com/developers/docs/resources/message#message-reference-structure */
/** https://docs.discord.com/developers/resources/message#message-reference-structure */
export interface DiscordMessageReference {
/** Type of reference */
type?: DiscordMessageReferenceType;
@@ -286,7 +286,7 @@ export interface DiscordMessageReference {
fail_if_not_exists?: boolean;
}
/** https://discord.com/developers/docs/resources/message#message-reference-types */
/** https://docs.discord.com/developers/resources/message#message-reference-types */
export enum DiscordMessageReferenceType {
/**
* A standard reference used by replies.
@@ -308,7 +308,7 @@ export enum DiscordMessageReferenceType {
Forward,
}
/** https://discord.com/developers/docs/resources/message#message-snapshot-structure */
/** https://docs.discord.com/developers/resources/message#message-snapshot-structure */
export interface DiscordMessageSnapshot {
/** Minimal subset of fields in the forwarded message */
message: Pick<
@@ -328,7 +328,7 @@ export interface DiscordMessageSnapshot {
>;
}
/** https://discord.com/developers/docs/resources/message#reaction-object-reaction-structure */
/** https://docs.discord.com/developers/resources/message#reaction-object-reaction-structure */
export interface DiscordReaction {
/** Total number of times this emoji has been used to react (including super reacts) */
count: number;
@@ -344,7 +344,7 @@ export interface DiscordReaction {
burst_colors: string[];
}
/** https://discord.com/developers/docs/resources/message#reaction-count-details-object-reaction-count-details-structure */
/** https://docs.discord.com/developers/resources/message#reaction-count-details-object-reaction-count-details-structure */
export interface DiscordReactionCountDetails {
/** Count of super reactions */
burst: number;
@@ -352,7 +352,7 @@ export interface DiscordReactionCountDetails {
normal: number;
}
/** https://discord.com/developers/docs/resources/message#embed-object-embed-structure */
/** https://docs.discord.com/developers/resources/message#embed-object-embed-structure */
export interface DiscordEmbed {
/** Title of embed */
title?: string;
@@ -382,10 +382,10 @@ export interface DiscordEmbed {
fields?: DiscordEmbedField[];
}
/** https://discord.com/developers/docs/resources/message#embed-object-embed-types */
/** https://docs.discord.com/developers/resources/message#embed-object-embed-types */
export type EmbedTypes = 'rich' | 'image' | 'video' | 'gifv' | 'article' | 'link' | 'poll_result';
/** https://discord.com/developers/docs/resources/message#embed-object-embed-thumbnail-structure */
/** https://docs.discord.com/developers/resources/message#embed-object-embed-thumbnail-structure */
export interface DiscordEmbedThumbnail {
/** Source url of thumbnail (only supports http(s) and attachments) */
url: string;
@@ -397,7 +397,7 @@ export interface DiscordEmbedThumbnail {
width?: number;
}
/** https://discord.com/developers/docs/resources/message#embed-object-embed-video-structure */
/** https://docs.discord.com/developers/resources/message#embed-object-embed-video-structure */
export interface DiscordEmbedVideo {
/** Source url of video */
url?: string;
@@ -409,7 +409,7 @@ export interface DiscordEmbedVideo {
width?: number;
}
/** https://discord.com/developers/docs/resources/message#embed-object-embed-image-structure */
/** https://docs.discord.com/developers/resources/message#embed-object-embed-image-structure */
export interface DiscordEmbedImage {
/** Source url of image (only supports http(s) and attachments) */
url: string;
@@ -421,7 +421,7 @@ export interface DiscordEmbedImage {
width?: number;
}
/** https://discord.com/developers/docs/resources/message#embed-object-embed-provider-structure */
/** https://docs.discord.com/developers/resources/message#embed-object-embed-provider-structure */
export interface DiscordEmbedProvider {
/** Name of provider */
name?: string;
@@ -429,7 +429,7 @@ export interface DiscordEmbedProvider {
url?: string;
}
/** https://discord.com/developers/docs/resources/message#embed-object-embed-author-structure */
/** https://docs.discord.com/developers/resources/message#embed-object-embed-author-structure */
export interface DiscordEmbedAuthor {
/** Name of author */
name: string;
@@ -441,7 +441,7 @@ export interface DiscordEmbedAuthor {
proxy_icon_url?: string;
}
/** https://discord.com/developers/docs/resources/message#embed-object-embed-footer-structure */
/** https://docs.discord.com/developers/resources/message#embed-object-embed-footer-structure */
export interface DiscordEmbedFooter {
/** Footer text */
text: string;
@@ -451,7 +451,7 @@ export interface DiscordEmbedFooter {
proxy_icon_url?: string;
}
/** https://discord.com/developers/docs/resources/message#embed-object-embed-field-structure */
/** https://docs.discord.com/developers/resources/message#embed-object-embed-field-structure */
export interface DiscordEmbedField {
/** Name of the field */
name: string;
@@ -461,7 +461,7 @@ export interface DiscordEmbedField {
inline?: boolean;
}
/** https://discord.com/developers/docs/resources/message#attachment-object-attachment-structure */
/** https://docs.discord.com/developers/resources/message#attachment-object-attachment-structure */
export interface DiscordAttachment {
/** Attachment id */
id: string;
@@ -493,14 +493,14 @@ export interface DiscordAttachment {
flags?: AttachmentFlags;
}
/** https://discord.com/developers/docs/resources/message#attachment-object-attachment-flags */
/** https://docs.discord.com/developers/resources/message#attachment-object-attachment-flags */
export enum AttachmentFlags {
None,
/** This attachment has been edited using the remix feature on mobile */
IsRemix = 1 << 2,
}
/** https://discord.com/developers/docs/resources/message#channel-mention-object-channel-mention-structure */
/** https://docs.discord.com/developers/resources/message#channel-mention-object-channel-mention-structure */
export interface DiscordChannelMention {
/** id of the channel */
id: string;
@@ -512,7 +512,7 @@ export interface DiscordChannelMention {
name: string;
}
/** https://discord.com/developers/docs/resources/message#allowed-mentions-object-allowed-mention-types */
/** https://docs.discord.com/developers/resources/message#allowed-mentions-object-allowed-mention-types */
export enum AllowedMentionsTypes {
/** Controls role mentions */
RoleMentions = 'roles',
@@ -522,7 +522,7 @@ export enum AllowedMentionsTypes {
EveryoneMentions = 'everyone',
}
/** https://discord.com/developers/docs/resources/message#allowed-mentions-object-allowed-mentions-structure */
/** https://docs.discord.com/developers/resources/message#allowed-mentions-object-allowed-mentions-structure */
export interface DiscordAllowedMentions {
/** An array of allowed mention types to parse from the content. */
parse?: AllowedMentionsTypes[];
@@ -534,7 +534,7 @@ export interface DiscordAllowedMentions {
replied_user?: boolean;
}
/** https://discord.com/developers/docs/resources/message#role-subscription-data-object-role-subscription-data-object-structure */
/** https://docs.discord.com/developers/resources/message#role-subscription-data-object-role-subscription-data-object-structure */
export interface DiscordRoleSubscriptionData {
/** the id of the sku and listing that the user is subscribed to */
role_subscription_listing_id: string;
@@ -546,7 +546,7 @@ export interface DiscordRoleSubscriptionData {
is_renewal: boolean;
}
/** https://discord.com/developers/docs/resources/message#message-pin-object-message-pin-object-struture */
/** https://docs.discord.com/developers/resources/message#message-pin-object-message-pin-object-struture */
export interface DiscordMessagePin {
/** the time the message was pinned */
pinned_at: string;
@@ -554,13 +554,13 @@ export interface DiscordMessagePin {
message: DiscordMessage;
}
/** https://discord.com/developers/docs/resources/message#get-reactions-reaction-types */
/** https://docs.discord.com/developers/resources/message#get-reactions-reaction-types */
export enum DiscordReactionType {
Normal,
Burst,
}
/** https://discord.com/developers/docs/resources/message#get-channel-pins-response-structure */
/** https://docs.discord.com/developers/resources/message#get-channel-pins-response-structure */
export interface DiscordGetChannelPins {
items: DiscordMessagePin[];
has_more: boolean;

View File

@@ -1,11 +1,11 @@
/** Types for: https://discord.com/developers/docs/topics/oauth2 */
/** Types for: https://docs.discord.com/developers/topics/oauth2 */
import type { DiscordApplication } from './application.js';
import type { DiscordGuild } from './guild.js';
import type { DiscordUser } from './user.js';
import type { DiscordWebhook } from './webhook.js';
/** https://discord.com/developers/docs/topics/oauth2#shared-resources-oauth2-scopes */
/** https://docs.discord.com/developers/topics/oauth2#shared-resources-oauth2-scopes */
export enum OAuth2Scope {
/**
* Allows your app to fetch data from a user's "Now Playing/Recently Played" list
@@ -36,7 +36,7 @@ export enum OAuth2Scope {
* Allows your app to update its Application Commands via this bearer token
*
* @remarks
* This scope can only be used when using a [Client Credential Grant](https://discord.com/developers/docs/topics/oauth2#client-credentials-grant)
* This scope can only be used when using a [Client Credential Grant](https://docs.discord.com/developers/topics/oauth2#client-credentials-grant)
*/
ApplicationsCommandsUpdate = 'applications.commands.update',
/** Allows your app to update permissions for its commands in a guild a user has permissions to */
@@ -47,7 +47,7 @@ export enum OAuth2Scope {
ApplicationsStoreUpdate = 'applications.store.update',
/** For oauth2 bots, this puts the bot in the user's selected guild by default */
Bot = 'bot',
/** Allows requests to [/users/@me/connections](https://discord.com/developers/docs/resources/user#get-user-connections) */
/** Allows requests to [/users/@me/connections](https://docs.discord.com/developers/resources/user#get-user-connections) */
Connections = 'connections',
/**
* Allows your app to see information about the user's DMs and group DMs
@@ -56,21 +56,21 @@ export enum OAuth2Scope {
* This scope requires Discord approval to be used
*/
DMChannelsRead = 'dm_channels.read',
/** Adds the `email` filed to [/users/@me](https://discord.com/developers/docs/resources/user#get-current-user) */
/** Adds the `email` filed to [/users/@me](https://docs.discord.com/developers/resources/user#get-current-user) */
Email = 'email',
/** Allows your app to join users to a group dm */
GroupDMJoins = 'gdm.join',
/** Allows requests to [/users/@me/guilds](https://discord.com/developers/docs/resources/user#get-current-user-guilds) */
/** Allows requests to [/users/@me/guilds](https://docs.discord.com/developers/resources/user#get-current-user-guilds) */
Guilds = 'guilds',
/** Allows requests to [/guilds/{guild.id}/members/{user.id}](https://discord.com/developers/docs/resources/guild#add-guild-member) */
/** Allows requests to [/guilds/{guild.id}/members/{user.id}](https://docs.discord.com/developers/resources/guild#add-guild-member) */
GuildsJoin = 'guilds.join',
/** Allows requests to [/users/@me/guilds/{guild.id}/member](https://discord.com/developers/docs/resources/user#get-current-user-guild-member) */
/** Allows requests to [/users/@me/guilds/{guild.id}/member](https://docs.discord.com/developers/resources/user#get-current-user-guild-member) */
GuildsMembersRead = 'guilds.members.read',
/**
* Allows requests to [/users/@me](https://discord.com/developers/docs/resources/user#get-current-user)
* Allows requests to [/users/@me](https://docs.discord.com/developers/resources/user#get-current-user)
*
* @remarks
* The return object from [/users/@me](https://discord.com/developers/docs/resources/user#get-current-user)
* The return object from [/users/@me](https://docs.discord.com/developers/resources/user#get-current-user)
* does NOT contain the `email` field unless the scope `email` is also used
*/
Identify = 'identify',
@@ -135,7 +135,7 @@ export enum OAuth2Scope {
WebhookIncoming = 'webhook.incoming',
}
/** https://discord.com/developers/docs/topics/oauth2#authorization-code-grant-redirect-url-example */
/** https://docs.discord.com/developers/topics/oauth2#authorization-code-grant-redirect-url-example */
export interface DiscordTokenExchangeAuthorizationCode {
grant_type: 'authorization_code';
/** The code for the token exchange */
@@ -146,7 +146,7 @@ export interface DiscordTokenExchangeAuthorizationCode {
code_verifier?: string;
}
/** https://discord.com/developers/docs/topics/oauth2#authorization-code-grant-access-token-response */
/** https://docs.discord.com/developers/topics/oauth2#authorization-code-grant-access-token-response */
export interface DiscordAccessTokenResponse {
/** The access token of the user */
access_token: string;
@@ -170,19 +170,19 @@ export interface DiscordAccessTokenResponse {
}
/**
* https://discord.com/developers/docs/topics/oauth2#authorization-code-grant
* https://discord.com/developers/docs/topics/oauth2#client-credentials-grant
* https://docs.discord.com/developers/topics/oauth2#authorization-code-grant
* https://docs.discord.com/developers/topics/oauth2#client-credentials-grant
*/
export type DiscordTokenExchange = DiscordTokenExchangeAuthorizationCode | DiscordTokenExchangeRefreshToken | DiscordTokenExchangeClientCredentials;
/** https://discord.com/developers/docs/topics/oauth2#authorization-code-grant-refresh-token-exchange-example */
/** https://docs.discord.com/developers/topics/oauth2#authorization-code-grant-refresh-token-exchange-example */
export interface DiscordTokenExchangeRefreshToken {
grant_type: 'refresh_token';
/** the user's refresh token */
refresh_token: string;
}
/** https://discord.com/developers/docs/topics/oauth2#authorization-code-grant-token-revocation-example */
/** https://docs.discord.com/developers/topics/oauth2#authorization-code-grant-token-revocation-example */
export interface DiscordTokenRevocation {
/** The access token to revoke */
token: string;
@@ -190,14 +190,14 @@ export interface DiscordTokenRevocation {
token_type_hint?: 'access_token' | 'refresh_token';
}
/** https://discord.com/developers/docs/topics/oauth2#client-credentials-grant */
/** https://docs.discord.com/developers/topics/oauth2#client-credentials-grant */
export interface DiscordTokenExchangeClientCredentials {
grant_type: 'client_credentials';
/** The scope(s) for the access token */
scope: OAuth2Scope[];
}
/** https://discord.com/developers/docs/topics/oauth2#get-current-authorization-information-response-structure */
/** https://docs.discord.com/developers/topics/oauth2#get-current-authorization-information-response-structure */
export interface DiscordCurrentAuthorization {
application: DiscordApplication;
/** the scopes the user has authorized the application for */

View File

@@ -1,6 +1,6 @@
/** Types for: https://discord.com/developers/docs/topics/opcodes-and-status-codes */
/** Types for: https://docs.discord.com/developers/topics/opcodes-and-status-codes */
/** https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-opcodes */
/** https://docs.discord.com/developers/topics/opcodes-and-status-codes#gateway-gateway-opcodes */
export enum GatewayOpcodes {
/** An event was dispatched. */
Dispatch,
@@ -28,7 +28,7 @@ export enum GatewayOpcodes {
RequestSoundboardSounds = 31,
}
/** https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-close-event-codes */
/** https://docs.discord.com/developers/topics/opcodes-and-status-codes#gateway-gateway-close-event-codes */
export enum GatewayCloseEventCodes {
/** A normal closure of the gateway. You may attempt to reconnect. */
NormalClosure = 1000,
@@ -36,35 +36,35 @@ export enum GatewayCloseEventCodes {
GoingAway = 1001,
/** We're not sure what went wrong. Try reconnecting? */
UnknownError = 4000,
/** You sent an invalid [Gateway opcode](https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-opcodes) or an invalid payload for an opcode. Don't do that! */
/** You sent an invalid [Gateway opcode](https://docs.discord.com/developers/topics/opcodes-and-status-codes#gateway-gateway-opcodes) or an invalid payload for an opcode. Don't do that! */
UnknownOpcode,
/** You sent an invalid [payload](https://discord.com/developers/docs/topics/gateway#sending-payloads) to us. Don't do that! */
/** You sent an invalid [payload](https://docs.discord.com/developers/events/gateway#sending-events) to us. Don't do that! */
DecodeError,
/** You sent us a payload prior to [identifying](https://discord.com/developers/docs/topics/gateway-events#identify), or this session has been invalidated. */
/** You sent us a payload prior to [identifying](https://docs.discord.com/developers/events/gateway-events#identify), or this session has been invalidated. */
NotAuthenticated,
/** The account token sent with your [identify payload](https://discord.com/developers/docs/topics/gateway-events#identify) is incorrect. */
/** The account token sent with your [identify payload](https://docs.discord.com/developers/events/gateway-events#identify) is incorrect. */
AuthenticationFailed,
/** You sent more than one identify payload. Don't do that! */
AlreadyAuthenticated,
/** The sequence sent when [resuming](https://discord.com/developers/docs/topics/gateway-events#resume) the session was invalid. Reconnect and start a new session. */
/** The sequence sent when [resuming](https://docs.discord.com/developers/events/gateway-events#resume) the session was invalid. Reconnect and start a new session. */
InvalidSeq = 4007,
/** Woah nelly! You're sending payloads to us too quickly. Slow it down! You will be disconnected on receiving this. */
RateLimited,
/** Your session timed out. Reconnect and start a new one. */
SessionTimedOut,
/** You sent us an invalid [shard when identifying](https://discord.com/developers/docs/topics/gateway#sharding). */
/** You sent us an invalid [shard when identifying](https://docs.discord.com/developers/events/gateway#sharding). */
InvalidShard,
/** The session would have handled too many guilds - you are required to [shard](https://discord.com/developers/docs/topics/gateway#sharding) your connection in order to connect. */
/** The session would have handled too many guilds - you are required to [shard](https://docs.discord.com/developers/events/gateway#sharding) your connection in order to connect. */
ShardingRequired,
/** You sent an invalid version for the gateway. */
InvalidApiVersion,
/** You sent an invalid intent for a [Gateway Intent](https://discord.com/developers/docs/topics/gateway#gateway-intents). You may have incorrectly calculated the bitwise value. */
/** You sent an invalid intent for a [Gateway Intent](https://docs.discord.com/developers/events/gateway#gateway-intents). You may have incorrectly calculated the bitwise value. */
InvalidIntents,
/** You sent a disallowed intent for a [Gateway Intent](https://discord.com/developers/docs/topics/gateway#gateway-intents). You may have tried to specify an intent that you [have not enabled or are not approved for](https://discord.com/developers/docs/topics/gateway#privileged-intents). */
/** You sent a disallowed intent for a [Gateway Intent](https://docs.discord.com/developers/events/gateway#gateway-intents). You may have tried to specify an intent that you [have not enabled or are not approved for](https://docs.discord.com/developers/events/gateway#privileged-intents). */
DisallowedIntents,
}
/** https://discord.com/developers/docs/topics/opcodes-and-status-codes#json-json-error-codes */
/** https://docs.discord.com/developers/topics/opcodes-and-status-codes#json-json-error-codes */
export enum HTTPJsonErrorCodes {
/** General error (such as a malformed request body, amongst other things) */
General = 0,

View File

@@ -1,6 +1,6 @@
/** Types for: https://discord.com/developers/docs/topics/permissions */
/** Types for: https://docs.discord.com/developers/topics/permissions */
/** https://discord.com/developers/docs/topics/permissions#permissions-bitwise-permission-flags */
/** https://docs.discord.com/developers/topics/permissions#permissions-bitwise-permission-flags */
export const BitwisePermissionFlags = {
/** Allows creation of instant invites */
CREATE_INSTANT_INVITE: 1n << 0n,
@@ -106,10 +106,10 @@ export const BitwisePermissionFlags = {
BYPASS_SLOWMODE: 1n << 52n,
} as const;
/** https://discord.com/developers/docs/topics/permissions#permissions-bitwise-permission-flags */
/** https://docs.discord.com/developers/topics/permissions#permissions-bitwise-permission-flags */
export type PermissionStrings = keyof typeof BitwisePermissionFlags;
/** https://discord.com/developers/docs/topics/permissions#role-object-role-structure */
/** https://docs.discord.com/developers/topics/permissions#role-object-role-structure */
export interface DiscordRole {
/** Role id */
id: string;
@@ -142,7 +142,7 @@ export interface DiscordRole {
flags: RoleFlags;
}
/** https://discord.com/developers/docs/topics/permissions#role-object-role-tags-structure */
/** https://docs.discord.com/developers/topics/permissions#role-object-role-tags-structure */
export interface DiscordRoleTags {
/** The id of the bot this role belongs to */
bot_id?: string;
@@ -158,7 +158,7 @@ export interface DiscordRoleTags {
guild_connections?: null;
}
/** https://discord.com/developers/docs/topics/permissions#role-object-role-colors-object */
/** https://docs.discord.com/developers/topics/permissions#role-object-role-colors-object */
export interface DiscordRoleColors {
/** The primary color for the role */
primary_color: number;
@@ -168,7 +168,7 @@ export interface DiscordRoleColors {
tertiary_color: number | null;
}
/** https://discord.com/developers/docs/topics/permissions#role-object-role-flags */
/** https://docs.discord.com/developers/topics/permissions#role-object-role-flags */
export enum RoleFlags {
None,
/** Role can be selected by members in an onboarding prompt */

View File

@@ -1,9 +1,9 @@
/** Types for: https://discord.com/developers/docs/resources/poll */
/** Types for: https://docs.discord.com/developers/resources/poll */
import type { DiscordEmoji } from './emoji.js';
import type { DiscordUser } from './user.js';
/** https://discord.com/developers/docs/resources/poll#poll-object-poll-object-structure */
/** https://docs.discord.com/developers/resources/poll#poll-object-poll-object-structure */
export interface DiscordPoll {
/** The question of the poll. Only `text` is supported. */
question: DiscordPollMedia;
@@ -30,13 +30,13 @@ export interface DiscordPoll {
results?: DiscordPollResult;
}
/** https://discord.com/developers/docs/resources/poll#layout-type */
/** https://docs.discord.com/developers/resources/poll#layout-type */
export enum DiscordPollLayoutType {
/** The default layout */
Default = 1,
}
/** https://discord.com/developers/docs/resources/poll#poll-media-object-poll-media-object-structure */
/** https://docs.discord.com/developers/resources/poll#poll-media-object-poll-media-object-structure */
export interface DiscordPollMedia {
/**
* The text of the field
@@ -55,7 +55,7 @@ export interface DiscordPollMedia {
emoji?: Partial<DiscordEmoji>;
}
/** https://discord.com/developers/docs/resources/poll#poll-answer-object-poll-answer-object-structure */
/** https://docs.discord.com/developers/resources/poll#poll-answer-object-poll-answer-object-structure */
export interface DiscordPollAnswer {
/**
* The id of the answer
@@ -68,7 +68,7 @@ export interface DiscordPollAnswer {
poll_media: DiscordPollMedia;
}
/** https://discord.com/developers/docs/resources/poll#poll-results-object-poll-results-object-structure */
/** https://docs.discord.com/developers/resources/poll#poll-results-object-poll-results-object-structure */
export interface DiscordPollResult {
/** Whether the votes have been precisely counted */
is_finalized: boolean;
@@ -76,7 +76,7 @@ export interface DiscordPollResult {
answer_counts: DiscordPollAnswerCount[];
}
/** https://discord.com/developers/docs/resources/poll#poll-results-object-poll-results-object-structure */
/** https://docs.discord.com/developers/resources/poll#poll-results-object-poll-results-object-structure */
export interface DiscordPollAnswerCount {
/** The {@link DiscordPollAnswer.answer_id | answer_id} */
id: number;
@@ -86,7 +86,7 @@ export interface DiscordPollAnswerCount {
me_voted: boolean;
}
/** https://discord.com/developers/docs/resources/poll#get-answer-voters-response-body */
/** https://docs.discord.com/developers/resources/poll#get-answer-voters-response-body */
export interface DiscordGetAnswerVotesResponse {
/** Users who voted for this answer */
users: DiscordUser[];

View File

@@ -1,17 +1,17 @@
/** Types for: https://discord.com/developers/docs/reference */
/** Types for: https://docs.discord.com/developers/reference */
/**
* https://discord.com/developers/docs/reference#image-formatting
* https://docs.discord.com/developers/reference#image-formatting
*
* @remarks
* json is only for stickers
*/
export type ImageFormat = 'jpg' | 'jpeg' | 'png' | 'webp' | 'gif' | 'avif' | 'json';
export type ImageFormat = 'jpg' | 'jpeg' | 'png' | 'webp' | 'gif' | 'json';
/** https://discord.com/developers/docs/reference#image-formatting */
/** https://docs.discord.com/developers/reference#image-formatting */
export type ImageSize = 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096;
/** https://discord.com/developers/docs/reference#locales */
/** https://docs.discord.com/developers/reference#locales */
export enum Locales {
Indonesian = 'id',
Danish = 'da',

View File

@@ -1,6 +1,6 @@
/** Types for: https://discord.com/developers/docs/resources/sku */
/** Types for: https://docs.discord.com/developers/resources/sku */
/** https://discord.com/developers/docs/resources/sku#sku-object-sku-structure */
/** https://docs.discord.com/developers/resources/sku#sku-object-sku-structure */
export interface DiscordSku {
/** ID of SKU */
id: string;
@@ -16,7 +16,7 @@ export interface DiscordSku {
flags: SkuFlags;
}
/** https://discord.com/developers/docs/resources/sku#sku-object-sku-types */
/** https://docs.discord.com/developers/resources/sku#sku-object-sku-types */
export enum DiscordSkuType {
/** Durable one-time purchase */
Durable = 2,
@@ -28,7 +28,7 @@ export enum DiscordSkuType {
SubscriptionGroup = 6,
}
/** https://discord.com/developers/docs/resources/sku#sku-object-sku-flags */
/** https://docs.discord.com/developers/resources/sku#sku-object-sku-flags */
export enum SkuFlags {
/** SKU is available for purchase */
Available = 1 << 2,

View File

@@ -1,8 +1,8 @@
/** Types for: https://discord.com/developers/docs/resources/soundboard */
/** Types for: https://docs.discord.com/developers/resources/soundboard */
import type { DiscordUser } from './user.js';
/** https://discord.com/developers/docs/resources/soundboard#soundboard-sound-object-soundboard-sound-structure */
/** https://docs.discord.com/developers/resources/soundboard#soundboard-sound-object-soundboard-sound-structure */
export interface DiscordSoundboardSound {
/** The name of this sound */
name: string;

View File

@@ -1,6 +1,6 @@
/** Types for: https://discord.com/developers/docs/resources/stage-instance */
/** Types for: https://docs.discord.com/developers/resources/stage-instance */
/** https://discord.com/developers/docs/resources/stage-instance#stage-instance-object-stage-instance-structure */
/** https://docs.discord.com/developers/resources/stage-instance#stage-instance-object-stage-instance-structure */
export interface DiscordStageInstance {
/** The id of this Stage instance */
id: string;
@@ -21,7 +21,7 @@ export interface DiscordStageInstance {
guild_scheduled_event_id: string | null;
}
/** https://discord.com/developers/docs/resources/stage-instance#stage-instance-object-privacy-level */
/** https://docs.discord.com/developers/resources/stage-instance#stage-instance-object-privacy-level */
export enum DiscordStageInstancePrivacyLevel {
Public = 1,
GuildOnly = 2,

View File

@@ -1,10 +1,10 @@
/** Types for: https://discord.com/developers/docs/resources/sticker */
/** Types for: https://docs.discord.com/developers/resources/sticker */
import type { DiscordUser } from './user.js';
/** https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-structure */
/** https://docs.discord.com/developers/resources/sticker#sticker-object-sticker-structure */
export interface DiscordSticker {
/** [Id of the sticker](https://discord.com/developers/docs/reference#image-formatting) */
/** [Id of the sticker](https://docs.discord.com/developers/reference#image-formatting) */
id: string;
/** Id of the pack the sticker is from */
pack_id?: string;
@@ -19,9 +19,9 @@ export interface DiscordSticker {
* A comma separated list of keywords is the format used in this field by standard stickers, but this is just a convention. Incidentally the client will always use a name generated from an emoji as the value of this field when creating or modifying a guild sticker.
*/
tags: string;
/** [type of sticker](https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-types) */
/** [type of sticker](https://docs.discord.com/developers/resources/sticker#sticker-object-sticker-types) */
type: StickerTypes;
/** [Type of sticker format](https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-format-types) */
/** [Type of sticker format](https://docs.discord.com/developers/resources/sticker#sticker-object-sticker-format-types) */
format_type: StickerFormatTypes;
/** Whether or not the sticker is available */
available?: boolean;
@@ -33,7 +33,7 @@ export interface DiscordSticker {
sort_value?: number;
}
/** https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-types */
/** https://docs.discord.com/developers/resources/sticker#sticker-object-sticker-types */
export enum StickerTypes {
/** an official sticker in a pack */
Standard = 1,
@@ -41,7 +41,7 @@ export enum StickerTypes {
Guild,
}
/** https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-format-types */
/** https://docs.discord.com/developers/resources/sticker#sticker-object-sticker-format-types */
export enum StickerFormatTypes {
Png = 1,
APng,
@@ -49,17 +49,17 @@ export enum StickerFormatTypes {
Gif,
}
/** https://discord.com/developers/docs/resources/sticker#sticker-item-object-sticker-item-structure */
/** https://docs.discord.com/developers/resources/sticker#sticker-item-object-sticker-item-structure */
export interface DiscordStickerItem {
/** Id of the sticker */
id: string;
/** Name of the sticker */
name: string;
/** [Type of sticker format](https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-format-types) */
/** [Type of sticker format](https://docs.discord.com/developers/resources/sticker#sticker-object-sticker-format-types) */
format_type: StickerFormatTypes;
}
/** https://discord.com/developers/docs/resources/sticker#sticker-pack-object-sticker-pack-structure */
/** https://docs.discord.com/developers/resources/sticker#sticker-pack-object-sticker-pack-structure */
export interface DiscordStickerPack {
/** id of the sticker pack */
id: string;
@@ -73,6 +73,6 @@ export interface DiscordStickerPack {
cover_sticker_id?: string;
/** description of the sticker pack */
description: string;
/** id of the sticker pack's [banner image](https://discord.com/developers/docs/reference#image-formatting) */
/** id of the sticker pack's [banner image](https://docs.discord.com/developers/reference#image-formatting) */
banner_asset_id?: string;
}

View File

@@ -1,6 +1,6 @@
/** Types for: https://discord.com/developers/docs/resources/subscription */
/** Types for: https://docs.discord.com/developers/resources/subscription */
/** https://discord.com/developers/docs/resources/subscription#subscription-object */
/** https://docs.discord.com/developers/resources/subscription#subscription-object */
export interface DiscordSubscription {
/** ID of the subscription */
id: string;
@@ -24,7 +24,7 @@ export interface DiscordSubscription {
country?: string;
}
/** https://discord.com/developers/docs/resources/subscription#subscription-statuses */
/** https://docs.discord.com/developers/resources/subscription#subscription-statuses */
export enum DiscordSubscriptionStatus {
/** Subscription is active and scheduled to renew. */
Active,

View File

@@ -1,8 +1,8 @@
/** Types for: https://discord.com/developers/docs/topics/teams */
/** Types for: https://docs.discord.com/developers/topics/teams */
import type { DiscordUser } from './user.js';
/* https://discord.com/developers/docs/topics/teams#team-member-roles-team-member-role-types */
/* https://docs.discord.com/developers/topics/teams#team-member-roles-team-member-role-types */
export enum DiscordTeamMemberRole {
/**
* Owners are the most permissiable role, and can take destructive, irreversible actions like deleting the team itself.
@@ -25,7 +25,7 @@ export enum DiscordTeamMemberRole {
ReadOnly = 'read_only',
}
/** https://discord.com/developers/docs/topics/teams#data-models-team-object */
/** https://docs.discord.com/developers/topics/teams#data-models-team-object */
export interface DiscordTeam {
/** Hash of the image of the team's icon */
icon: string | null;
@@ -39,7 +39,7 @@ export interface DiscordTeam {
owner_user_id: string;
}
/** https://discord.com/developers/docs/topics/teams#data-models-team-member-object */
/** https://docs.discord.com/developers/topics/teams#data-models-team-member-object */
export interface DiscordTeamMember {
/** The user's membership state on the team */
membership_state: TeamMembershipStates;
@@ -51,7 +51,7 @@ export interface DiscordTeamMember {
role: DiscordTeamMemberRole;
}
/** https://discord.com/developers/docs/topics/teams#data-models-membership-state-enum */
/** https://docs.discord.com/developers/topics/teams#data-models-membership-state-enum */
export enum TeamMembershipStates {
Invited = 1,
Accepted,

View File

@@ -1,8 +1,8 @@
/** Types for: https://discord.com/developers/docs/resources/user */
/** Types for: https://docs.discord.com/developers/resources/user */
import type { DiscordIntegration } from './guild.js';
/** https://discord.com/developers/docs/resources/user#user-object-user-structure */
/** https://docs.discord.com/developers/resources/user#user-object-user-structure */
export interface DiscordUser {
/** The user's id */
id: string;
@@ -44,7 +44,7 @@ export interface DiscordUser {
primary_guild?: DiscordUserPrimaryGuild | null;
}
/** https://discord.com/developers/docs/resources/user#user-object-user-flags */
/** https://docs.discord.com/developers/resources/user#user-object-user-flags */
export enum UserFlags {
DiscordEmployee = 1 << 0,
PartneredServerOwner = 1 << 1,
@@ -63,7 +63,7 @@ export enum UserFlags {
ActiveDeveloper = 1 << 22,
}
/** https://discord.com/developers/docs/resources/user#user-object-premium-types */
/** https://docs.discord.com/developers/resources/user#user-object-premium-types */
export enum PremiumTypes {
None,
NitroClassic,
@@ -71,7 +71,7 @@ export enum PremiumTypes {
NitroBasic,
}
/** https://discord.com/developers/docs/resources/user#user-object-user-primary-guild */
/** https://docs.discord.com/developers/resources/user#user-object-user-primary-guild */
export interface DiscordUserPrimaryGuild {
/** The id of the primary guild */
identity_guild_id: string | null;
@@ -89,7 +89,7 @@ export interface DiscordUserPrimaryGuild {
badge: string | null;
}
/** https://discord.com/developers/docs/resources/user#avatar-decoration-data-object-avatar-decoration-data-structure */
/** https://docs.discord.com/developers/resources/user#avatar-decoration-data-object-avatar-decoration-data-structure */
export interface DiscordAvatarDecorationData {
/** the avatar decoration hash */
asset: string;
@@ -97,13 +97,13 @@ export interface DiscordAvatarDecorationData {
sku_id: string;
}
/** https://discord.com/developers/docs/resources/user#collectibles-collectible-structure */
/** https://docs.discord.com/developers/resources/user#collectibles-collectible-structure */
export interface DiscordCollectibles {
/** object mapping of nameplate data */
nameplate?: DiscordNameplate;
}
/** https://discord.com/developers/docs/resources/user#nameplate-nameplate-structure */
/** https://docs.discord.com/developers/resources/user#nameplate-nameplate-structure */
export interface DiscordNameplate {
/** the nameplate's id */
sku_id: string;
@@ -115,7 +115,7 @@ export interface DiscordNameplate {
palette: string;
}
/** https://discord.com/developers/docs/resources/user#connection-object-connection-structure */
/** https://docs.discord.com/developers/resources/user#connection-object-connection-structure */
export interface DiscordConnection {
/** id of the connection account */
id: string;
@@ -139,7 +139,7 @@ export interface DiscordConnection {
visibility: DiscordConnectionVisibility;
}
/** https://discord.com/developers/docs/resources/user#connection-object-services */
/** https://docs.discord.com/developers/resources/user#connection-object-services */
export enum DiscordConnectionServiceType {
AmazonMusic = 'amazon-music',
BattleNet = 'battlenet',
@@ -169,7 +169,7 @@ export enum DiscordConnectionServiceType {
YouTube = 'youtube',
}
/** https://discord.com/developers/docs/resources/user#connection-object-visibility-types */
/** https://docs.discord.com/developers/resources/user#connection-object-visibility-types */
export enum DiscordConnectionVisibility {
/** invisible to everyone except the user themselves */
None = 0,
@@ -177,7 +177,7 @@ export enum DiscordConnectionVisibility {
Everyone = 1,
}
/** https://discord.com/developers/docs/resources/user#application-role-connection-object-application-role-connection-structure */
/** https://docs.discord.com/developers/resources/user#application-role-connection-object-application-role-connection-structure */
export interface DiscordApplicationRoleConnection {
/** the vanity name of the platform a bot has connected (max 50 characters) */
platform_name: string | null;

View File

@@ -1,8 +1,8 @@
/** Types for: https://discord.com/developers/docs/resources/voice */
/** Types for: https://docs.discord.com/developers/resources/voice */
import type { DiscordMemberWithUser } from './guild.js';
/** https://discord.com/developers/docs/resources/voice#voice-state-object-voice-state-structure */
/** https://docs.discord.com/developers/resources/voice#voice-state-object-voice-state-structure */
export interface DiscordVoiceState {
/** The guild id this voice state is for */
guild_id?: string;
@@ -32,7 +32,7 @@ export interface DiscordVoiceState {
request_to_speak_timestamp: string | null;
}
/** https://discord.com/developers/docs/resources/voice#voice-region-object-voice-region-structure */
/** https://docs.discord.com/developers/resources/voice#voice-region-object-voice-region-structure */
export interface DiscordVoiceRegion {
/** Unique Id for the region */
id: string;

View File

@@ -1,10 +1,10 @@
/** Types for: https://discord.com/developers/docs/resources/webhook */
/** Types for: https://docs.discord.com/developers/resources/webhook */
import type { DiscordChannel } from './channel.js';
import type { DiscordGuild } from './guild.js';
import type { DiscordUser } from './user.js';
/** https://discord.com/developers/docs/resources/webhook#webhook-object-webhook-structure */
/** https://docs.discord.com/developers/resources/webhook#webhook-object-webhook-structure */
export interface DiscordWebhook {
/** The id of the webhook */
id: string;
@@ -32,7 +32,7 @@ export interface DiscordWebhook {
url?: string;
}
/** https://discord.com/developers/docs/resources/webhook#webhook-object-webhook-types */
/** https://docs.discord.com/developers/resources/webhook#webhook-object-webhook-types */
export enum WebhookTypes {
/** Incoming Webhooks can post messages to channels with a generated token */
Incoming = 1,

View File

@@ -1,4 +1,4 @@
/** Types for: https://discord.com/developers/docs/events/webhook-events */
/** Types for: https://docs.discord.com/developers/events/webhook-events */
import type { DiscordApplicationIntegrationType } from './application.js';
import type { DiscordChannel } from './channel.js';
@@ -8,7 +8,7 @@ import type { DiscordMessage, MessageFlags, MessageTypes } from './message.js';
import type { OAuth2Scope } from './oauth2.js';
import type { DiscordUser } from './user.js';
/** https://discord.com/developers/docs/events/webhook-events#payload-structure */
/** https://docs.discord.com/developers/events/webhook-events#payload-structure */
export interface DiscordEventWebhookEvent {
/** Version scheme for the webhook event. Currently always 1 */
version: 1;
@@ -20,7 +20,7 @@ export interface DiscordEventWebhookEvent {
event?: DiscordEventWebhookEventBody;
}
/** https://discord.com/developers/docs/events/webhook-events#webhook-types */
/** https://docs.discord.com/developers/events/webhook-events#webhook-types */
export enum DiscordEventWebhookType {
/** PING event sent to verify your Webhook Event URL is active */
Ping = 0,
@@ -28,7 +28,7 @@ export enum DiscordEventWebhookType {
Event = 1,
}
/** https://discord.com/developers/docs/events/webhook-events#event-body-object */
/** https://docs.discord.com/developers/events/webhook-events#event-body-object */
export interface DiscordEventWebhookEventBody {
/** Event type */
type: DiscordWebhookEventType;
@@ -49,7 +49,7 @@ export interface DiscordEventWebhookEventBody {
| DiscordEventWebhookGameDirectMessageDeleteBody;
}
/** https://discord.com/developers/docs/events/webhook-events#event-types */
/** https://docs.discord.com/developers/events/webhook-events#event-types */
export enum DiscordWebhookEventType {
/** Sent when an app was authorized by a user to a server or their account */
ApplicationAuthorized = 'APPLICATION_AUTHORIZED',
@@ -77,7 +77,7 @@ export enum DiscordWebhookEventType {
GameDirectMessageDelete = 'GAME_DIRECT_MESSAGE_DELETE',
}
/** https://discord.com/developers/docs/events/webhook-events#application-authorized-application-authorized-structure */
/** https://docs.discord.com/developers/events/webhook-events#application-authorized-application-authorized-structure */
export interface DiscordEventWebhookApplicationAuthorizedBody {
/** Installation context for the authorization. Either guild (0) if installed to a server or user (1) if installed to a user's account */
integration_type?: DiscordApplicationIntegrationType;
@@ -89,26 +89,26 @@ export interface DiscordEventWebhookApplicationAuthorizedBody {
guild?: DiscordGuild;
}
/** https://discord.com/developers/docs/events/webhook-events#application-authorized-application-authorized-structure */
/** https://docs.discord.com/developers/events/webhook-events#application-authorized-application-authorized-structure */
export interface DiscordEventWebhookApplicationDeauthorizedBody {
/** User who deauthorized the app */
user: DiscordUser;
}
/** https://discord.com/developers/docs/events/webhook-events#entitlement-create-entitlement-create-structure */
/** https://docs.discord.com/developers/events/webhook-events#entitlement-create-entitlement-create-structure */
export type DiscordEventWebhookEntitlementCreateBody = DiscordEntitlement;
/** https://discord.com/developers/docs/events/webhook-events#entitlement-update-entitlement-update-structure */
/** https://docs.discord.com/developers/events/webhook-events#entitlement-update-entitlement-update-structure */
export type DiscordEventWebhookEntitlementUpdateBody = DiscordEntitlement;
/** https://discord.com/developers/docs/events/webhook-events#entitlement-delete-entitlement-delete-structure */
/** https://docs.discord.com/developers/events/webhook-events#entitlement-delete-entitlement-delete-structure */
export type DiscordEventWebhookEntitlementDeleteBody = DiscordEntitlement;
/** https://discord.com/developers/docs/events/webhook-events#lobby-message-create-lobby-message-create-structure */
/** https://docs.discord.com/developers/events/webhook-events#lobby-message-create-lobby-message-create-structure */
export type DiscordEventWebhookLobbyMessageCreateBody = DiscordSocialSDKLobbyMessage;
// Discord does not explicitly says what "with additional fields for message updates" means, so we rely on the example and the DiscordMessage structure
/** https://discord.com/developers/docs/events/webhook-events#lobby-message-update-lobby-message-update-structure */
/** https://docs.discord.com/developers/events/webhook-events#lobby-message-update-lobby-message-update-structure */
export interface DiscordEventWebhookLobbyMessageUpdateBody extends DiscordSocialSDKLobbyMessage {
/** ISO8601 timestamp of when the message was last edited */
edited_timestamp: string | null;
@@ -116,7 +116,7 @@ export interface DiscordEventWebhookLobbyMessageUpdateBody extends DiscordSocial
timestamp: string;
}
/** https://discord.com/developers/docs/events/webhook-events#lobby-message-delete-lobby-message-delete-structure */
/** https://docs.discord.com/developers/events/webhook-events#lobby-message-delete-lobby-message-delete-structure */
export interface DiscordEventWebhookLobbyMessageDeleteBody {
/** ID of the deleted message */
id: string;
@@ -124,16 +124,16 @@ export interface DiscordEventWebhookLobbyMessageDeleteBody {
lobby_id: string;
}
/** https://discord.com/developers/docs/events/webhook-events#game-direct-message-create-game-direct-message-create-structure */
/** https://docs.discord.com/developers/events/webhook-events#game-direct-message-create-game-direct-message-create-structure */
export type DiscordEventWebhookGameDirectMessageCreateBody = DiscordSocialSDKMessage | DiscordSocialSDKPassthroughMessage;
/** https://discord.com/developers/docs/events/webhook-events#game-direct-message-update-game-direct-message-update-structure */
/** https://docs.discord.com/developers/events/webhook-events#game-direct-message-update-game-direct-message-update-structure */
export type DiscordEventWebhookGameDirectMessageUpdateBody = DiscordSocialSDKMessage | DiscordSocialSDKPassthroughMessage;
/** https://discord.com/developers/docs/events/webhook-events#game-direct-message-delete-game-direct-message-delete-structure */
/** https://docs.discord.com/developers/events/webhook-events#game-direct-message-delete-game-direct-message-delete-structure */
export type DiscordEventWebhookGameDirectMessageDeleteBody = DiscordSocialSDKMessage | DiscordSocialSDKPassthroughMessage;
/** https://discord.com/developers/docs/events/webhook-events#lobby-message-object-lobby-message-structure */
/** https://docs.discord.com/developers/events/webhook-events#lobby-message-object-lobby-message-structure */
export interface DiscordSocialSDKLobbyMessage {
/** ID of the message */
id: string;
@@ -159,7 +159,7 @@ export interface DiscordSocialSDKLobbyMessage {
application_id?: string;
}
/** https://discord.com/developers/docs/events/webhook-events#message-object */
/** https://docs.discord.com/developers/events/webhook-events#message-object */
export interface DiscordSocialSDKMessage extends DiscordMessage {
/** ID of the lobby where the message was created (only present in Linked Channel messages) */
lobby_id?: string;
@@ -167,7 +167,7 @@ export interface DiscordSocialSDKMessage extends DiscordMessage {
channel: DiscordChannel;
}
/** https://discord.com/developers/docs/events/webhook-events#passthrough-message-object-passthrough-message-structure */
/** https://docs.discord.com/developers/events/webhook-events#passthrough-message-object-passthrough-message-structure */
export interface DiscordSocialSDKPassthroughMessage {
/** ID of the message */
id: string;

View File

@@ -1,4 +1,4 @@
/** Types for: https://discord.com/developers/docs/resources/application */
/** Types for: https://docs.discord.com/developers/resources/application */
import type {
ApplicationFlags,
@@ -8,7 +8,7 @@ import type {
} from '../discord/application.js';
import type { DiscordWebhookEventType } from '../discord/webhookEvents.js';
/** https://discord.com/developers/docs/resources/application#edit-current-application-json-params */
/** https://docs.discord.com/developers/resources/application#edit-current-application-json-params */
export interface EditApplication {
/** Default custom authorization URL for the app, if enabled */
customInstallUrl?: string;

View File

@@ -1,9 +1,9 @@
/** Types for: https://discord.com/developers/docs/resources/audit-log */
/** Types for: https://docs.discord.com/developers/resources/audit-log */
import type { AuditLogEvents } from '../discord/auditLog.js';
import type { BigString } from '../shared.js';
/** https://discord.com/developers/docs/resources/audit-log#get-guild-audit-log-query-string-params */
/** https://docs.discord.com/developers/resources/audit-log#get-guild-audit-log-query-string-params */
export interface GetGuildAuditLog {
/** Entries from a specific user ID */
userId?: BigString;

View File

@@ -1,4 +1,4 @@
/** Types for: https://discord.com/developers/docs/resources/auto-moderation */
/** Types for: https://docs.discord.com/developers/resources/auto-moderation */
import type {
AutoModerationActionType,
@@ -9,7 +9,7 @@ import type {
import type { BigString, Camelize } from '../shared.js';
// This needs the prefix Discordeno to avoid conflicts with the @discordeno/bot types.
/** https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-action-object-auto-moderation-action-structure */
/** https://docs.discord.com/developers/resources/auto-moderation#auto-moderation-action-object-auto-moderation-action-structure */
export interface DiscordenoAutoModerationAction {
/** The type of action to take when a rule is triggered */
type: AutoModerationActionType;
@@ -23,7 +23,7 @@ export interface DiscordenoAutoModerationAction {
}
// This needs the prefix Discordeno to avoid conflicts with the @discordeno/bot types.
/** https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-action-object-action-metadata */
/** https://docs.discord.com/developers/resources/auto-moderation#auto-moderation-action-object-action-metadata */
export interface DiscordenoAutoModerationActionMetadata {
/**
* The id of channel to which user content should be logged.
@@ -54,7 +54,7 @@ export interface DiscordenoAutoModerationActionMetadata {
customMessage?: string;
}
/** https://discord.com/developers/docs/resources/auto-moderation#create-auto-moderation-rule-json-params */
/** https://docs.discord.com/developers/resources/auto-moderation#create-auto-moderation-rule-json-params */
export interface CreateAutoModerationRuleOptions {
/** The name of the rule. */
name: string;
@@ -74,7 +74,7 @@ export interface CreateAutoModerationRuleOptions {
exemptChannels?: BigString[];
}
/** https://discord.com/developers/docs/resources/auto-moderation#modify-auto-moderation-rule-json-params */
/** https://docs.discord.com/developers/resources/auto-moderation#modify-auto-moderation-rule-json-params */
export interface EditAutoModerationRuleOptions {
/** The name of the rule. */
name?: string;

View File

@@ -1,4 +1,4 @@
/** Types for: https://discord.com/developers/docs/resources/channel */
/** Types for: https://docs.discord.com/developers/resources/channel */
import type { ChannelFlags, ChannelTypes, ForumLayout, OverwriteTypes, SortOrderTypes, VideoQualityModes } from '../discord/channel.js';
import type { TargetTypes } from '../discord/invite.js';
@@ -8,7 +8,7 @@ import type { MessageComponents } from './components.js';
import type { AllowedMentions } from './message.js';
import type { FileContent } from './reference.js';
/** https://discord.com/developers/docs/resources/channel#overwrite-object-overwrite-structure */
/** https://docs.discord.com/developers/resources/channel#overwrite-object-overwrite-structure */
export interface Overwrite {
/** Role or user id */
id: BigString;
@@ -16,15 +16,15 @@ export interface Overwrite {
type: OverwriteTypes;
// NOTE:
// - Discord says that these are always present, we keep them as optional (and allow for null) because when it is sent it can be null / not present, https://discord.com/developers/docs/resources/guild#create-guild-channel-json-params, specificly the **
// - Discord says that these are always present, we keep them as optional (and allow for null) because when it is sent it can be null / not present, https://docs.discord.com/developers/resources/guild#create-guild-channel-json-params, specificly the **
/** Permission bit set */
allow?: string | null;
allow?: BigString | null;
/** Permission bit set */
deny?: string | null;
deny?: BigString | null;
}
// This needs the prefix Discordeno to avoid conflicts with the @discordeno/bot types.
/** https://discord.com/developers/docs/resources/channel#default-reaction-object-default-reaction-structure */
/** https://docs.discord.com/developers/resources/channel#default-reaction-object-default-reaction-structure */
export interface DiscordenoDefaultReactionEmoji {
/** The id of a guild's custom emoji */
emoji_id: BigString | null;
@@ -33,7 +33,7 @@ export interface DiscordenoDefaultReactionEmoji {
}
// This needs the prefix Discordeno to avoid conflicts with the @discordeno/bot types.
/** https://discord.com/developers/docs/resources/channel#forum-tag-object-forum-tag-structure */
/** https://docs.discord.com/developers/resources/channel#forum-tag-object-forum-tag-structure */
export interface DiscordenoForumTag {
/** The id of the tag */
id: string;
@@ -49,9 +49,9 @@ export interface DiscordenoForumTag {
// Since this is a merge of 3 types, the properties appear in order of their first appearance in the 3 types
/**
* - https://discord.com/developers/docs/resources/channel#modify-channel-json-params-group-dm
* - https://discord.com/developers/docs/resources/channel#modify-channel-json-params-guild-channel
* - https://discord.com/developers/docs/resources/channel#modify-channel-json-params-thread
* - https://docs.discord.com/developers/resources/channel#modify-channel-json-params-group-dm
* - https://docs.discord.com/developers/resources/channel#modify-channel-json-params-guild-channel
* - https://docs.discord.com/developers/resources/channel#modify-channel-json-params-thread
*/
export interface ModifyChannel {
// Group DM
@@ -269,7 +269,7 @@ export interface ModifyChannel {
appliedTags?: BigString[];
}
/** https://discord.com/developers/docs/resources/channel#edit-channel-permissions-json-params */
/** https://docs.discord.com/developers/resources/channel#edit-channel-permissions-json-params */
export interface EditChannelPermissionOverridesOptions {
// This is included in here however it is a route parameter
/** Role or user id */
@@ -284,7 +284,7 @@ export interface EditChannelPermissionOverridesOptions {
deny?: string | null;
}
/** https://discord.com/developers/docs/resources/channel#create-channel-invite-json-params */
/** https://docs.discord.com/developers/resources/channel#create-channel-invite-json-params */
export interface CreateChannelInvite {
/** Duration of invite in seconds before expiry, or 0 for never. Between 0 and 604800 (7 days). Default: 86400 (24 hours) */
maxAge?: number;
@@ -304,8 +304,6 @@ export interface CreateChannelInvite {
* A csv file with a single column of user IDs for all the users able to accept this invite
*
* @remarks
* Requires the `MANAGE_GUILD` permission.
*
* Uploading a file with invalid user IDs will result in a 400 with the invalid IDs described.
*/
targetUsersFile?: Blob;
@@ -318,7 +316,7 @@ export interface CreateChannelInvite {
roleIds?: BigString[];
}
/** https://discord.com/developers/docs/resources/channel#group-dm-add-recipient-json-params */
/** https://docs.discord.com/developers/resources/channel#group-dm-add-recipient-json-params */
export interface AddDmRecipientOptions {
/** access token of a user that has granted your app the `gdm.join` scope */
accessToken: string;
@@ -326,7 +324,7 @@ export interface AddDmRecipientOptions {
nick: string;
}
/** https://discord.com/developers/docs/resources/channel#start-thread-from-message-json-params */
/** https://docs.discord.com/developers/resources/channel#start-thread-from-message-json-params */
export interface StartThreadWithMessage {
/** 1-100 character thread name */
name: string;
@@ -336,7 +334,7 @@ export interface StartThreadWithMessage {
rateLimitPerUser?: number | null;
}
/** https://discord.com/developers/docs/resources/channel#start-thread-without-message-json-params */
/** https://docs.discord.com/developers/resources/channel#start-thread-without-message-json-params */
export interface StartThreadWithoutMessage {
/** 1-100 character thread name */
name: string;
@@ -350,7 +348,7 @@ export interface StartThreadWithoutMessage {
rateLimitPerUser?: number | null;
}
/** https://discord.com/developers/docs/resources/channel#start-thread-in-forum-or-media-channel-jsonform-params*/
/** https://docs.discord.com/developers/resources/channel#start-thread-in-forum-or-media-channel-jsonform-params*/
export interface CreateForumPostWithMessage {
/** 1-100 character thread name */
name: string;
@@ -366,7 +364,7 @@ export interface CreateForumPostWithMessage {
files?: FileContent[];
}
/** https://discord.com/developers/docs/resources/channel#start-thread-in-forum-or-media-channel-forum-and-media-thread-message-params-object */
/** https://docs.discord.com/developers/resources/channel#start-thread-in-forum-or-media-channel-forum-and-media-thread-message-params-object */
export interface ForumAndMediaThreadMessage {
/** The message contents (up to 2000 characters) */
content?: string;
@@ -388,13 +386,13 @@ export interface ForumAndMediaThreadMessage {
flags?: number;
}
/** https://discord.com/developers/docs/resources/channel#get-thread-member-query-string-params */
/** https://docs.discord.com/developers/resources/channel#get-thread-member-query-string-params */
export interface GetThreadMember {
/** Whether to include a guild member object for the thread member */
withMember?: boolean;
}
/** https://discord.com/developers/docs/resources/channel#list-thread-members-query-string-params */
/** https://docs.discord.com/developers/resources/channel#list-thread-members-query-string-params */
export interface ListThreadMembers {
/** Whether to include a guild member object for the thread member */
withMember?: boolean;
@@ -405,9 +403,9 @@ export interface ListThreadMembers {
}
/**
* - https://discord.com/developers/docs/resources/channel#list-public-archived-threads-query-string-params
* - https://discord.com/developers/docs/resources/channel#list-private-archived-threads-query-string-params
* - https://discord.com/developers/docs/resources/channel#list-joined-private-archived-threads-query-string-params
* - https://docs.discord.com/developers/resources/channel#list-public-archived-threads-query-string-params
* - https://docs.discord.com/developers/resources/channel#list-private-archived-threads-query-string-params
* - https://docs.discord.com/developers/resources/channel#list-joined-private-archived-threads-query-string-params
*/
export interface ListArchivedThreads {
/** Returns threads before this timestamp */

View File

@@ -1,4 +1,4 @@
/** Types for: https://discord.com/developers/docs/components/reference */
/** Types for: https://docs.discord.com/developers/components/reference */
import type { ChannelTypes } from '../discord/channel.js';
import type {
@@ -29,9 +29,12 @@ export type MessageComponent =
| ContainerComponent
| FileComponent
| LabelComponent
| FileUploadComponent;
| FileUploadComponent
| RadioGroupComponent
| CheckboxGroupComponent
| CheckboxComponent;
/** https://discord.com/developers/docs/components/reference#anatomy-of-a-component */
/** https://docs.discord.com/developers/components/reference#anatomy-of-a-component */
export interface BaseComponent {
/** The type of the component */
type: MessageComponentTypes;
@@ -39,7 +42,7 @@ export interface BaseComponent {
id?: number;
}
/** https://discord.com/developers/docs/components/reference#action-row-action-row-structure */
/** https://docs.discord.com/developers/components/reference#action-row-action-row-structure */
export interface ActionRow extends BaseComponent {
type: MessageComponentTypes.ActionRow;
@@ -63,7 +66,7 @@ export interface ActionRow extends BaseComponent {
)[];
}
/** https://discord.com/developers/docs/components/reference#button-button-structure */
/** https://docs.discord.com/developers/components/reference#button-button-structure */
export interface ButtonComponent extends BaseComponent {
type: MessageComponentTypes.Button;
@@ -97,7 +100,7 @@ export interface ButtonComponent extends BaseComponent {
disabled?: boolean;
}
/** https://discord.com/developers/docs/components/reference#string-select-string-select-structure */
/** https://docs.discord.com/developers/components/reference#string-select-string-select-structure */
export interface StringSelectComponent extends BaseComponent {
type: MessageComponentTypes.StringSelect;
@@ -131,7 +134,7 @@ export interface StringSelectComponent extends BaseComponent {
disabled?: boolean;
}
/** https://discord.com/developers/docs/components/reference#string-select-select-option-structure */
/** https://docs.discord.com/developers/components/reference#string-select-select-option-structure */
export interface SelectOption {
/** The user-facing name of the option. Maximum 25 characters. */
label: string;
@@ -153,7 +156,7 @@ export interface SelectOption {
default?: boolean;
}
/** https://discord.com/developers/docs/components/reference#text-input-text-input-structure */
/** https://docs.discord.com/developers/components/reference#text-input-text-input-structure */
export interface TextInputComponent extends BaseComponent {
type: MessageComponentTypes.TextInput;
@@ -182,7 +185,7 @@ export interface TextInputComponent extends BaseComponent {
placeholder?: string;
}
/** https://discord.com/developers/docs/components/reference#user-select-user-select-structure */
/** https://docs.discord.com/developers/components/reference#user-select-user-select-structure */
export interface UserSelectComponent extends BaseComponent {
type: MessageComponentTypes.UserSelect;
@@ -219,7 +222,7 @@ export interface UserSelectComponent extends BaseComponent {
disabled?: boolean;
}
/** https://discord.com/developers/docs/components/reference#user-select-select-default-value-structure */
/** https://docs.discord.com/developers/components/reference#user-select-select-default-value-structure */
export interface SelectMenuDefaultValue {
/** ID of a user, role, or channel */
id: BigString;
@@ -227,7 +230,7 @@ export interface SelectMenuDefaultValue {
type: 'user' | 'role' | 'channel';
}
/** https://discord.com/developers/docs/components/reference#role-select-role-select-structure */
/** https://docs.discord.com/developers/components/reference#role-select-role-select-structure */
export interface RoleSelectComponent extends BaseComponent {
type: MessageComponentTypes.RoleSelect;
@@ -264,7 +267,7 @@ export interface RoleSelectComponent extends BaseComponent {
disabled?: boolean;
}
/** https://discord.com/developers/docs/components/reference#mentionable-select-mentionable-select-structure */
/** https://docs.discord.com/developers/components/reference#mentionable-select-mentionable-select-structure */
export interface MentionableSelectComponent extends BaseComponent {
type: MessageComponentTypes.MentionableSelect;
@@ -301,7 +304,7 @@ export interface MentionableSelectComponent extends BaseComponent {
disabled?: boolean;
}
/** https://discord.com/developers/docs/components/reference#channel-select-channel-select-structure */
/** https://docs.discord.com/developers/components/reference#channel-select-channel-select-structure */
export interface ChannelSelectComponent extends BaseComponent {
type: MessageComponentTypes.ChannelSelect;
@@ -340,7 +343,7 @@ export interface ChannelSelectComponent extends BaseComponent {
disabled?: boolean;
}
/** https://discord.com/developers/docs/components/reference#section-section-structure */
/** https://docs.discord.com/developers/components/reference#section-section-structure */
export interface SectionComponent extends BaseComponent {
type: MessageComponentTypes.Section;
@@ -350,7 +353,7 @@ export interface SectionComponent extends BaseComponent {
accessory: ButtonComponent | ThumbnailComponent;
}
/** https://discord.com/developers/docs/components/reference#text-display */
/** https://docs.discord.com/developers/components/reference#text-display */
export interface TextDisplayComponent extends BaseComponent {
type: MessageComponentTypes.TextDisplay;
@@ -358,19 +361,19 @@ export interface TextDisplayComponent extends BaseComponent {
content: string;
}
/** https://discord.com/developers/docs/components/reference#thumbnail */
/** https://docs.discord.com/developers/components/reference#thumbnail */
export interface ThumbnailComponent extends BaseComponent {
type: MessageComponentTypes.Thumbnail;
/** A url or attachment */
media: DiscordUnfurledMediaItem;
/** Alt text for the media */
description?: string;
description?: string | null;
/** Whether the thumbnail should be a spoiler (or blurred out). Defaults to `false` */
spoiler?: boolean;
}
/** https://discord.com/developers/docs/components/reference#media-gallery */
/** https://docs.discord.com/developers/components/reference#media-gallery */
export interface MediaGalleryComponent extends BaseComponent {
type: MessageComponentTypes.MediaGallery;
@@ -378,7 +381,7 @@ export interface MediaGalleryComponent extends BaseComponent {
items: DiscordMediaGalleryItem[];
}
/** https://discord.com/developers/docs/components/reference#file */
/** https://docs.discord.com/developers/components/reference#file */
export interface FileComponent extends BaseComponent {
type: MessageComponentTypes.File;
@@ -392,7 +395,7 @@ export interface FileComponent extends BaseComponent {
size: number;
}
/** https://discord.com/developers/docs/components/reference#separator */
/** https://docs.discord.com/developers/components/reference#separator */
export interface SeparatorComponent extends BaseComponent {
type: MessageComponentTypes.Separator;
@@ -402,7 +405,7 @@ export interface SeparatorComponent extends BaseComponent {
spacing?: SeparatorSpacingSize;
}
/** https://discord.com/developers/docs/components/reference#container */
/** https://docs.discord.com/developers/components/reference#container */
export interface ContainerComponent extends BaseComponent {
type: MessageComponentTypes.Container;
@@ -414,7 +417,7 @@ export interface ContainerComponent extends BaseComponent {
spoiler?: boolean;
}
/** https://discord.com/developers/docs/components/reference#label-label-structure */
/** https://docs.discord.com/developers/components/reference#label-label-structure */
export interface LabelComponent extends BaseComponent {
type: MessageComponentTypes.Label;
@@ -440,10 +443,13 @@ export interface LabelComponent extends BaseComponent {
| RoleSelectComponent
| MentionableSelectComponent
| ChannelSelectComponent
| FileUploadComponent;
| FileUploadComponent
| RadioGroupComponent
| CheckboxGroupComponent
| CheckboxComponent;
}
/** https://discord.com/developers/docs/components/reference#file-upload-file-upload-structure */
/** https://docs.discord.com/developers/components/reference#file-upload-file-upload-structure */
export interface FileUploadComponent extends BaseComponent {
type: MessageComponentTypes.FileUpload;
@@ -469,3 +475,62 @@ export interface FileUploadComponent extends BaseComponent {
*/
required?: boolean;
}
/** https://docs.discord.com/developers/components/reference#radio-group-structure */
export interface RadioGroupComponent extends BaseComponent {
type: MessageComponentTypes.RadioGroup;
/** A custom identifier for this component. Maximum 100 characters. */
customId: string;
/** List of options to show; min 2, max 10. */
options: RadioGroupOption[];
/** Whether a selection is required to submit the modal. Defaults to `true`. */
required?: boolean;
}
/** https://docs.discord.com/developers/components/reference#radio-group-option-structure */
export interface RadioGroupOption {
/** The dev-defined value of the option. Maximum 100 characters. */
value: string;
/** The user-facing label of the option. Maximum 100 characters. */
label: string;
/** An optional description for the option. Maximum 100 characters. */
description?: string;
/** Will render this option as already-selected by default. */
default?: boolean;
}
/** https://docs.discord.com/developers/components/reference#checkbox-group-structure */
export interface CheckboxGroupComponent extends BaseComponent {
type: MessageComponentTypes.CheckboxGroup;
/** A custom identifier for this component. Maximum 100 characters. */
customId: string;
/** List of options to show; min 1, max 10. */
options: CheckboxGroupOption[];
/** Minimum number of items that must be chosen; min 0, max 10. Defaults to 1; if set to 0 required must be false. */
minValues?: number;
/** Maximum number of items that can be chosen; min 1, max 10. Defaults to the number of options. */
maxValues?: number;
/** Whether selecting within the group is required. Defaults to `true`. */
required?: boolean;
}
/** https://docs.discord.com/developers/components/reference#checkbox-group-option-structure */
export interface CheckboxGroupOption {
/** The dev-defined value of the option. Maximum 100 characters. */
value: string;
/** The user-facing label of the option. Maximum 100 characters. */
label: string;
/** An optional description for the option. Maximum 100 characters. */
description?: string;
/** Will render this option as already-selected by default. */
default?: boolean;
}
/** https://docs.discord.com/developers/components/reference#checkbox-structure */
export interface CheckboxComponent extends BaseComponent {
type: MessageComponentTypes.Checkbox;
/** A custom identifier for this component. Maximum 100 characters. */
customId: string;
/** Whether the checkbox is selected by default. */
default?: boolean;
}

View File

@@ -1,8 +1,8 @@
/** Types for: https://discord.com/developers/docs/resources/emoji */
/** Types for: https://docs.discord.com/developers/resources/emoji */
import type { BigString } from '../shared.js';
/** https://discord.com/developers/docs/resources/emoji#create-guild-emoji */
/** https://docs.discord.com/developers/resources/emoji#create-guild-emoji */
export interface CreateGuildEmoji {
/** Name of the emoji */
name: string;
@@ -12,7 +12,7 @@ export interface CreateGuildEmoji {
roles: BigString[];
}
/** https://discord.com/developers/docs/resources/emoji#modify-guild-emoji */
/** https://docs.discord.com/developers/resources/emoji#modify-guild-emoji */
export interface ModifyGuildEmoji {
/** Name of the emoji */
name?: string;
@@ -20,7 +20,7 @@ export interface ModifyGuildEmoji {
roles?: BigString[] | null;
}
/** https://discord.com/developers/docs/resources/emoji#create-application-emoji */
/** https://docs.discord.com/developers/resources/emoji#create-application-emoji */
export interface CreateApplicationEmoji {
/** Name of the emoji */
name: string;
@@ -28,7 +28,7 @@ export interface CreateApplicationEmoji {
image: string;
}
/** https://discord.com/developers/docs/resources/emoji#modify-application-emoji */
/** https://docs.discord.com/developers/resources/emoji#modify-application-emoji */
export interface ModifyApplicationEmoji {
/** Name of the emoji */
name: string;

View File

@@ -1,8 +1,8 @@
/** Types for: https://discord.com/developers/docs/resources/entitlement */
/** Types for: https://docs.discord.com/developers/resources/entitlement */
import type { BigString } from '../shared.js';
/** https://discord.com/developers/docs/resources/entitlement#list-entitlements-query-string-params */
/** https://docs.discord.com/developers/resources/entitlement#list-entitlements-query-string-params */
export interface GetEntitlements {
/** User ID to look up entitlements for */
userId?: BigString;
@@ -22,7 +22,7 @@ export interface GetEntitlements {
excludeDeleted?: boolean;
}
/** https://discord.com/developers/docs/monetization/entitlements#create-test-entitlement-json-params */
/** https://docs.discord.com/developers/monetization/entitlements#create-test-entitlement-json-params */
export interface CreateTestEntitlement {
/** ID of the SKU to grant the entitlement to */
skuId: BigString;
@@ -32,7 +32,7 @@ export interface CreateTestEntitlement {
ownerType: CreateEntitlementOwnerType;
}
/** https://discord.com/developers/docs/monetization/entitlements#create-test-entitlement-json-params - Description of ownerType */
/** https://docs.discord.com/developers/monetization/entitlements#create-test-entitlement-json-params - Description of ownerType */
export enum CreateEntitlementOwnerType {
/** Guild subscription */
GuildSubscription = 1,

View File

@@ -1,12 +1,12 @@
/**
* Types for:
* - https://discord.com/developers/docs/events/gateway
* - https://discord.com/developers/docs/events/gateway-events
* - https://docs.discord.com/developers/events/gateway
* - https://docs.discord.com/developers/events/gateway-events
*/
import type { BigString } from '../shared.js';
/** https://discord.com/developers/docs/events/gateway-events#request-guild-members */
/** https://docs.discord.com/developers/events/gateway-events#request-guild-members */
export interface RequestGuildMembers {
/** id of the guild to get members for */
guildId: BigString;

View File

@@ -1,4 +1,4 @@
/** Types for: https://discord.com/developers/docs/resources/guild */
/** Types for: https://docs.discord.com/developers/resources/guild */
import type { ChannelTypes, ForumLayout, SortOrderTypes, VideoQualityModes } from '../discord/channel.js';
import type {
@@ -16,7 +16,7 @@ import type { BigString, Camelize } from '../shared.js';
import type { DiscordenoDefaultReactionEmoji, DiscordenoForumTag, Overwrite } from './channel.js';
import type { GuildRoleColors } from './permissions.js';
/** https://discord.com/developers/docs/resources/guild#modify-guild-json-params */
/** https://docs.discord.com/developers/resources/guild#modify-guild-json-params */
export interface ModifyGuild {
/** Guild name */
name?: string;
@@ -62,7 +62,7 @@ export interface ModifyGuild {
safetyAlertsChannelId?: BigString | null;
}
/** https://discord.com/developers/docs/resources/guild#create-guild-channel-json-params */
/** https://docs.discord.com/developers/resources/guild#create-guild-channel-json-params */
export interface CreateGuildChannel {
/** Channel name (1-100 characters) */
name: string;
@@ -102,7 +102,7 @@ export interface CreateGuildChannel {
defaultThreadRateLimitPerUser?: number;
}
/** https://discord.com/developers/docs/resources/guild#modify-guild-channel-positions-json-params */
/** https://docs.discord.com/developers/resources/guild#modify-guild-channel-positions-json-params */
export interface ModifyGuildChannelPositions {
/** Channel id */
id: BigString;
@@ -114,7 +114,7 @@ export interface ModifyGuildChannelPositions {
parentId?: BigString | null;
}
/** https://discord.com/developers/docs/resources/guild#list-guild-members-query-string-params */
/** https://docs.discord.com/developers/resources/guild#list-guild-members-query-string-params */
export interface ListGuildMembers {
/** Max number of members to return (1-1000). Default: 1 */
limit?: number;
@@ -122,7 +122,7 @@ export interface ListGuildMembers {
after?: string;
}
/** https://discord.com/developers/docs/resources/guild#search-guild-members-query-string-params */
/** https://docs.discord.com/developers/resources/guild#search-guild-members-query-string-params */
export interface SearchMembers {
/** Query string to match username(s) and nickname(s) against */
query: string;
@@ -130,7 +130,7 @@ export interface SearchMembers {
limit?: number;
}
/** https://discord.com/developers/docs/resources/guild#add-guild-member-json-params */
/** https://docs.discord.com/developers/resources/guild#add-guild-member-json-params */
export interface AddGuildMemberOptions {
/** access token of a user that has granted your app the `guilds.join` scope */
accessToken: string;
@@ -144,7 +144,7 @@ export interface AddGuildMemberOptions {
deaf?: boolean;
}
/** https://discord.com/developers/docs/resources/guild#modify-guild-member-json-params */
/** https://docs.discord.com/developers/resources/guild#modify-guild-member-json-params */
export interface ModifyGuildMember {
/** Value to set users nickname to. Requires the `MANAGE_NICKNAMES` permission */
nick?: string | null;
@@ -166,7 +166,7 @@ export interface ModifyGuildMember {
flags?: number;
}
/** https://discord.com/developers/docs/resources/guild#modify-current-member-json-params */
/** https://docs.discord.com/developers/resources/guild#modify-current-member-json-params */
export interface EditBotMemberOptions {
/** Value to set user's nickname to */
nick?: string | null;
@@ -178,7 +178,7 @@ export interface EditBotMemberOptions {
bio?: string | null;
}
/** https://discord.com/developers/docs/resources/guild#get-guild-bans-query-string-params */
/** https://docs.discord.com/developers/resources/guild#get-guild-bans-query-string-params */
export interface GetBans {
/** Number of users to return (up to maximum 1000). Default: 1000 */
limit?: number;
@@ -188,7 +188,7 @@ export interface GetBans {
after?: BigString;
}
/** https://discord.com/developers/docs/resources/guild#create-guild-ban-json-params */
/** https://docs.discord.com/developers/resources/guild#create-guild-ban-json-params */
export interface CreateGuildBan {
/**
* Number of seconds to delete messages for, between 0 and 604800 (7 days)
@@ -198,7 +198,7 @@ export interface CreateGuildBan {
deleteMessageSeconds?: number;
}
/** https://discord.com/developers/docs/resources/guild#bulk-guild-ban-json-params */
/** https://docs.discord.com/developers/resources/guild#bulk-guild-ban-json-params */
export interface CreateGuildBulkBan {
/** list of user ids to ban (max 200) */
userIds: BigString[];
@@ -210,7 +210,7 @@ export interface CreateGuildBulkBan {
deleteMessageSeconds?: number;
}
/** https://discord.com/developers/docs/resources/guild#create-guild-role-json-params */
/** https://docs.discord.com/developers/resources/guild#create-guild-role-json-params */
export interface CreateGuildRole {
/** Name of the role, max 100 characters, default: "new role" */
name?: string;
@@ -233,7 +233,7 @@ export interface CreateGuildRole {
mentionable?: boolean;
}
/** https://discord.com/developers/docs/resources/guild#modify-guild-role-positions-json-params */
/** https://docs.discord.com/developers/resources/guild#modify-guild-role-positions-json-params */
export interface ModifyRolePositions {
/** The role id */
id: BigString;
@@ -241,7 +241,7 @@ export interface ModifyRolePositions {
position?: number | null;
}
/** https://discord.com/developers/docs/resources/guild#modify-guild-role-json-params */
/** https://docs.discord.com/developers/resources/guild#modify-guild-role-json-params */
export interface EditGuildRole {
/** Name of the role, max 100 characters, default: "new role" */
name?: string | null;
@@ -264,7 +264,7 @@ export interface EditGuildRole {
mentionable?: boolean | null;
}
/** https://discord.com/developers/docs/resources/guild#get-guild-prune-count */
/** https://docs.discord.com/developers/resources/guild#get-guild-prune-count */
export interface GetGuildPruneCountQuery {
/** Number of days to count prune for (1 or more), default: 7 */
days?: number;
@@ -272,7 +272,7 @@ export interface GetGuildPruneCountQuery {
includeRoles?: string | string[];
}
/** https://discord.com/developers/docs/resources/guild#begin-guild-prune */
/** https://docs.discord.com/developers/resources/guild#begin-guild-prune */
export interface BeginGuildPrune {
/** Number of days to prune (1 or more), default: 7 */
days?: number;
@@ -282,7 +282,7 @@ export interface BeginGuildPrune {
includeRoles?: string[];
}
/** https://discord.com/developers/docs/resources/guild#get-guild-widget-image-query-string-params */
/** https://docs.discord.com/developers/resources/guild#get-guild-widget-image-query-string-params */
export interface GetGuildWidgetImageQuery {
/**
* Style of the widget returned, default: shield
@@ -296,7 +296,7 @@ export interface GetGuildWidgetImageQuery {
style?: 'shield' | 'banner1' | 'banner2' | 'banner3' | 'banner4';
}
/** https://discord.com/developers/docs/resources/guild#modify-guild-onboarding-json-params */
/** https://docs.discord.com/developers/resources/guild#modify-guild-onboarding-json-params */
export interface EditGuildOnboarding {
/** Prompts shown during onboarding and in customize community */
prompts?: Camelize<DiscordGuildOnboardingPrompt>[];
@@ -308,7 +308,7 @@ export interface EditGuildOnboarding {
mode?: DiscordGuildOnboardingMode;
}
/** https://discord.com/developers/docs/resources/guild#modify-guild-incident-actions-json-params */
/** https://docs.discord.com/developers/resources/guild#modify-guild-incident-actions-json-params */
export interface ModifyGuildIncidentActions {
/**
* When invites will be enabled again
@@ -332,7 +332,7 @@ export interface ModifyGuildIncidentActions {
dmsDisabledUntil?: string | null;
}
/** https://discord.com/developers/docs/resources/guild#modify-guild-welcome-screen */
/** https://docs.discord.com/developers/resources/guild#modify-guild-welcome-screen */
export interface ModifyGuildWelcomeScreen {
/** Whether the welcome screen is enabled */
enabled?: boolean | null;

View File

@@ -1,4 +1,4 @@
/** Types for: https://discord.com/developers/docs/resources/guild-scheduled-event */
/** Types for: https://docs.discord.com/developers/resources/guild-scheduled-event */
import type {
DiscordScheduledEventEntityMetadata,
@@ -9,13 +9,13 @@ import type {
} from '../discord/guildScheduledEvent.js';
import type { BigString } from '../shared.js';
/** https://discord.com/developers/docs/resources/guild-scheduled-event#list-scheduled-events-for-guild-query-string-params */
/** https://docs.discord.com/developers/resources/guild-scheduled-event#list-scheduled-events-for-guild-query-string-params */
export interface GetScheduledEvents {
/** include number of users subscribed to each event */
withUserCount?: boolean;
}
/** https://discord.com/developers/docs/resources/guild-scheduled-event#create-guild-scheduled-event-json-params */
/** https://docs.discord.com/developers/resources/guild-scheduled-event#create-guild-scheduled-event-json-params */
export interface CreateScheduledEvent {
/** the channel id of the scheduled event. */
channelId?: BigString;
@@ -38,7 +38,7 @@ export interface CreateScheduledEvent {
recurrenceRule?: DiscordScheduledEventRecurrenceRule;
}
/** https://discord.com/developers/docs/resources/guild-scheduled-event#modify-guild-scheduled-event-json-params */
/** https://docs.discord.com/developers/resources/guild-scheduled-event#modify-guild-scheduled-event-json-params */
export interface EditScheduledEvent {
/** the channel id of the scheduled event. null if switching to external event. */
channelId?: BigString | null;

View File

@@ -1,6 +1,6 @@
/** Types for: https://discord.com/developers/docs/resources/guild-template */
/** Types for: https://docs.discord.com/developers/resources/guild-template */
/** https://discord.com/developers/docs/resources/guild-template#create-guild-template-json-params */
/** https://docs.discord.com/developers/resources/guild-template#create-guild-template-json-params */
export interface CreateTemplate {
/** Name which the template should have */
name: string;
@@ -8,7 +8,7 @@ export interface CreateTemplate {
description?: string | null;
}
/** https://discord.com/developers/docs/resources/guild-template#modify-guild-template-json-params */
/** https://docs.discord.com/developers/resources/guild-template#modify-guild-template-json-params */
export interface ModifyGuildTemplate {
/** Name of the template (1-100 characters) */
name?: string;

View File

@@ -1,7 +1,7 @@
/**
* Types for:
* - https://discord.com/developers/docs/interactions/receiving-and-responding
* - https://discord.com/developers/docs/interactions/application-commands
* - https://docs.discord.com/developers/interactions/receiving-and-responding
* - https://docs.discord.com/developers/interactions/application-commands
*/
import type { DiscordApplicationIntegrationType } from '../discord/application.js';
@@ -21,7 +21,7 @@ import type { AllowedMentions } from './message.js';
import type { CreatePoll } from './poll.js';
import type { FileContent } from './reference.js';
/** https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-interaction-response-structure */
/** https://docs.discord.com/developers/interactions/receiving-and-responding#interaction-response-object-interaction-response-structure */
export interface InteractionResponse {
/** The type of response */
type: InteractionResponseTypes;
@@ -31,9 +31,9 @@ export interface InteractionResponse {
// Since this is a merge of 3 types, the properties appear in order of their first appearance in the 3 types
/**
* - https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-messages
* - https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-autocomplete
* - https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-modal
* - https://docs.discord.com/developers/interactions/receiving-and-responding#interaction-response-object-messages
* - https://docs.discord.com/developers/interactions/receiving-and-responding#interaction-response-object-autocomplete
* - https://docs.discord.com/developers/interactions/receiving-and-responding#interaction-response-object-modal
*/
export interface InteractionCallbackData {
// Messages
@@ -72,14 +72,14 @@ export interface InteractionCallbackData {
}
/**
* - https://discord.com/developers/docs/interactions/receiving-and-responding#create-interaction-response-query-string-params
* - https://discord.com/developers/docs/interactions/application-commands#create-guild-application-command-json-params
* - https://docs.discord.com/developers/interactions/receiving-and-responding#create-interaction-response-query-string-params
* - https://docs.discord.com/developers/interactions/application-commands#create-guild-application-command-json-params
*/
export interface InteractionCallbackOptions {
withResponse?: boolean;
}
/** https://discord.com/developers/docs/interactions/application-commands#get-global-application-commands-query-string-params */
/** https://docs.discord.com/developers/interactions/application-commands#get-global-application-commands-query-string-params */
export interface GetGlobalApplicationCommandsOptions {
/**
* Whether to include full localization dictionaries (`nameLocalizations` and `descriptionLocalizations`) in the returned objects, instead of the `nameLocalized` and `descriptionLocalized` fields.
@@ -91,7 +91,7 @@ export interface GetGlobalApplicationCommandsOptions {
/**
* Documented implicitly by the description of the `applications.commands.update` Oauth2 scope
*
* @see {@link https://discord.com/developers/docs/topics/oauth2#shared-resources-oauth2-scopes}
* @see {@link https://docs.discord.com/developers/topics/oauth2#shared-resources-oauth2-scopes}
*/
export interface CreateGlobalApplicationCommandOptions {
/** The bearer token of the developer of the application */
@@ -99,8 +99,8 @@ export interface CreateGlobalApplicationCommandOptions {
}
/**
* - https://discord.com/developers/docs/interactions/application-commands#create-global-application-command-json-params
* - https://discord.com/developers/docs/interactions/application-commands#create-guild-application-command-json-params
* - https://docs.discord.com/developers/interactions/application-commands#create-global-application-command-json-params
* - https://docs.discord.com/developers/interactions/application-commands#create-guild-application-command-json-params
*/
export interface CreateApplicationCommand {
/**
@@ -172,7 +172,7 @@ export interface CreateApplicationCommand {
/**
* Documented implicitly by the description of the `applications.commands.update` Oauth2 scope
*
* @see {@link https://discord.com/developers/docs/topics/oauth2#shared-resources-oauth2-scopes}
* @see {@link https://docs.discord.com/developers/topics/oauth2#shared-resources-oauth2-scopes}
*/
export interface UpsertGlobalApplicationCommandOptions {
/** The bearer token of the developer of the application */
@@ -182,14 +182,14 @@ export interface UpsertGlobalApplicationCommandOptions {
/**
* Documented implicitly by the description of the `applications.commands.update` Oauth2 scope
*
* @see {@link https://discord.com/developers/docs/topics/oauth2#shared-resources-oauth2-scopes}
* @see {@link https://docs.discord.com/developers/topics/oauth2#shared-resources-oauth2-scopes}
*/
export interface CreateGuildApplicationCommandOptions {
/** The bearer token of the developer of the application */
bearerToken: string;
}
/** https://discord.com/developers/docs/interactions/application-commands#get-guild-application-commands-query-string-params */
/** https://docs.discord.com/developers/interactions/application-commands#get-guild-application-commands-query-string-params */
export interface GetGuildApplicationCommandsOptions {
/**
* Whether to include full localization dictionaries (`nameLocalizations` and `descriptionLocalizations`) in the returned objects, instead of the `nameLocalized` and `descriptionLocalized` fields.
@@ -201,7 +201,7 @@ export interface GetGuildApplicationCommandsOptions {
/**
* Documented implicitly by the description of the `applications.commands.update` Oauth2 scope
*
* @see {@link https://discord.com/developers/docs/topics/oauth2#shared-resources-oauth2-scopes}
* @see {@link https://docs.discord.com/developers/topics/oauth2#shared-resources-oauth2-scopes}
*/
export interface UpsertGuildApplicationCommandOptions {
/** The bearer token of the developer of the application */
@@ -210,12 +210,12 @@ export interface UpsertGuildApplicationCommandOptions {
/**
* Additional properties for:
* - https://discord.com/developers/docs/interactions/application-commands#get-guild-application-command-permissions
* - https://discord.com/developers/docs/interactions/application-commands#edit-application-command-permissions
* - https://docs.discord.com/developers/interactions/application-commands#get-guild-application-command-permissions
* - https://docs.discord.com/developers/interactions/application-commands#edit-application-command-permissions
*
* The access token is documented implicitly by the description of the `applications.commands.update` Oauth2 scope
*
* @see {@link https://discord.com/developers/docs/topics/oauth2#shared-resources-oauth2-scopes}
* @see {@link https://docs.discord.com/developers/topics/oauth2#shared-resources-oauth2-scopes}
*/
export interface GetApplicationCommandPermissionOptions {
/** Access token of the user. Requires the `applications.commands.permissions.update` scope */

View File

@@ -1,8 +1,8 @@
/** Types for: https://discord.com/developers/docs/resources/invite */
/** Types for: https://docs.discord.com/developers/resources/invite */
import type { BigString } from '../shared.js';
/** https://discord.com/developers/docs/resources/invite#get-invite */
/** https://docs.discord.com/developers/resources/invite#get-invite */
export interface GetInvite {
/** Whether the invite should contain approximate member counts */
withCounts?: boolean;

View File

@@ -1,9 +1,9 @@
/** Types for: https://discord.com/developers/docs/resources/lobby */
/** Types for: https://docs.discord.com/developers/resources/lobby */
import type { DiscordLobbyMemberFlags } from '../discord/lobby.js';
import type { BigString } from '../shared.js';
/** https://discord.com/developers/docs/resources/lobby#create-lobby */
/** https://docs.discord.com/developers/resources/lobby#create-lobby */
export interface CreateLobby {
/** Optional dictionary of string key/value pairs. The max total length is 1000. */
metadata?: Record<string, string> | null;
@@ -13,7 +13,7 @@ export interface CreateLobby {
idleTimeoutSeconds?: number;
}
/** https://discord.com/developers/docs/resources/lobby#create-lobby */
/** https://docs.discord.com/developers/resources/lobby#create-lobby */
export interface CreateLobbyMember {
/** Discord user id of the user to add to the lobby */
id: BigString;
@@ -27,7 +27,7 @@ export interface CreateLobbyMember {
flags?: number;
}
/** https://discord.com/developers/docs/resources/lobby#add-a-member-to-a-lobby */
/** https://docs.discord.com/developers/resources/lobby#add-a-member-to-a-lobby */
export interface ModifyLobby {
/** Optional dictionary of string key/value pairs. The max total length is 1000. Overwrites any existing metadata. */
metadata?: Record<string, string> | null;
@@ -37,7 +37,7 @@ export interface ModifyLobby {
idleTimeoutSeconds?: number;
}
/** https://discord.com/developers/docs/resources/lobby#add-a-member-to-a-lobby */
/** https://docs.discord.com/developers/resources/lobby#add-a-member-to-a-lobby */
export interface AddLobbyMember {
/** Optional dictionary of string key/value pairs. The max total length is 1000. */
metadata?: Record<string, string> | null;
@@ -45,7 +45,7 @@ export interface AddLobbyMember {
flags?: number;
}
/** https://discord.com/developers/docs/resources/lobby#link-channel-to-lobby */
/** https://docs.discord.com/developers/resources/lobby#link-channel-to-lobby */
export interface LinkChannelToLobby {
/** The id of the channel to link to the lobby. If not provided, will unlink any currently linked channels from the lobby. */
channelId?: BigString;

View File

@@ -1,4 +1,4 @@
/** Types for: https://discord.com/developers/docs/resources/message */
/** Types for: https://docs.discord.com/developers/resources/message */
import type {
AllowedMentionsTypes,
@@ -14,7 +14,7 @@ import type { CreatePoll } from './poll.js';
import type { FileContent } from './reference.js';
// This needs the prefix Discordeno to avoid conflicts with the @discordeno/bot types.
/** https://discord.com/developers/docs/resources/message#message-reference-structure */
/** https://docs.discord.com/developers/resources/message#message-reference-structure */
export interface DiscordenoMessageReference {
/** Type of reference */
type?: DiscordMessageReferenceType;
@@ -31,7 +31,7 @@ export interface DiscordenoMessageReference {
failIfNotExists?: boolean;
}
/** https://discord.com/developers/docs/resources/message#allowed-mentions-object-default-settings-for-allowed-mentions */
/** https://docs.discord.com/developers/resources/message#allowed-mentions-object-default-settings-for-allowed-mentions */
export interface AllowedMentions {
/** An array of allowed mention types to parse from the content. */
parse?: AllowedMentionsTypes[];
@@ -43,34 +43,34 @@ export interface AllowedMentions {
users?: bigint[];
}
/** https://discord.com/developers/docs/resources/channel#get-channel-messages-query-string-params */
/** https://docs.discord.com/developers/resources/channel#get-channel-messages-query-string-params */
export interface GetMessagesLimit {
/** Max number of messages to return (1-100) default 50 */
limit?: number;
}
/** https://discord.com/developers/docs/resources/channel#get-channel-messages-query-string-params */
/** https://docs.discord.com/developers/resources/channel#get-channel-messages-query-string-params */
export interface GetMessagesAround extends GetMessagesLimit {
/** Get messages around this message id */
around?: BigString;
}
/** https://discord.com/developers/docs/resources/channel#get-channel-messages-query-string-params */
/** https://docs.discord.com/developers/resources/channel#get-channel-messages-query-string-params */
export interface GetMessagesBefore extends GetMessagesLimit {
/** Get messages before this message id */
before?: BigString;
}
/** https://discord.com/developers/docs/resources/channel#get-channel-messages-query-string-params */
/** https://docs.discord.com/developers/resources/channel#get-channel-messages-query-string-params */
export interface GetMessagesAfter extends GetMessagesLimit {
/** Get messages after this message id */
after?: BigString;
}
/** https://discord.com/developers/docs/resources/channel#get-channel-messages-query-string-params */
/** https://docs.discord.com/developers/resources/channel#get-channel-messages-query-string-params */
export type GetMessagesOptions = GetMessagesAfter | GetMessagesBefore | GetMessagesAround | GetMessagesLimit;
/** https://discord.com/developers/docs/resources/message#create-message-jsonform-params */
/** https://docs.discord.com/developers/resources/message#create-message-jsonform-params */
export interface CreateMessageOptions {
/** The message contents (up to 2000 characters) */
content?: string;
@@ -107,7 +107,7 @@ export interface CreateMessageOptions {
poll?: CreatePoll;
}
/** https://discord.com/developers/docs/resources/message#get-reactions-query-string-params */
/** https://docs.discord.com/developers/resources/message#get-reactions-query-string-params */
export interface GetReactions {
/** The type of reaction */
type: DiscordReactionType;
@@ -117,7 +117,7 @@ export interface GetReactions {
limit?: number;
}
/** https://discord.com/developers/docs/resources/channel#edit-message-json-params */
/** https://docs.discord.com/developers/resources/channel#edit-message-json-params */
export interface EditMessage {
/** The new message contents (up to 2000 characters) */
content?: string | null;
@@ -142,7 +142,7 @@ export interface EditMessage {
attachments?: Pick<DiscordAttachment, 'filename' | 'description' | 'id'>[];
}
/** https://discord.com/developers/docs/resources/message#get-channel-pins-query-string-params */
/** https://docs.discord.com/developers/resources/message#get-channel-pins-query-string-params */
export interface GetChannelPinsOptions {
/** Get messages pinned before this timestamp */
before?: string;

View File

@@ -1,6 +1,6 @@
/** Types for: https://discord.com/developers/docs/topics/permissions */
/** Types for: https://docs.discord.com/developers/topics/permissions */
/** https://discord.com/developers/docs/topics/permissions#role-object-role-colors-object */
/** https://docs.discord.com/developers/topics/permissions#role-object-role-colors-object */
export interface GuildRoleColors {
/** The primary color for the role */
primaryColor: number;

View File

@@ -1,9 +1,9 @@
/** Types for: https://discord.com/developers/docs/resources/poll */
/** Types for: https://docs.discord.com/developers/resources/poll */
import type { DiscordPollAnswer, DiscordPollLayoutType, DiscordPollMedia } from '../discord/poll.js';
import type { BigString, Camelize } from '../shared.js';
/** https://discord.com/developers/docs/resources/poll#poll-create-request-object */
/** https://docs.discord.com/developers/resources/poll#poll-create-request-object */
export interface CreatePoll {
/** The question of the poll. Only `text` is supported. */
question: Pick<Camelize<DiscordPollMedia>, 'text'>;
@@ -28,7 +28,7 @@ export interface CreatePoll {
layoutType?: DiscordPollLayoutType;
}
/** https://discord.com/developers/docs/resources/poll#get-answer-voters-query-string-params */
/** https://docs.discord.com/developers/resources/poll#get-answer-voters-query-string-params */
export interface GetPollAnswerVotes {
/** Get users after this user ID */
after?: BigString;

View File

@@ -1,8 +1,8 @@
/** Types for: https://discord.com/developers/docs/reference */
/** Types for: https://docs.discord.com/developers/reference */
/**
* This is not a mapping of any discord documented type, however there is some docs that refer to an object like this:
* https://discord.com/developers/docs/reference#uploading-files, the second paragraph
* https://docs.discord.com/developers/reference#uploading-files, the second paragraph
*
* > All files[n] parameters must include a valid `Content-Disposition` subpart header with a filename and unique name parameter.
*

View File

@@ -1,8 +1,8 @@
/** Types for: https://discord.com/developers/docs/resources/soundboard */
/** Types for: https://docs.discord.com/developers/resources/soundboard */
import type { BigString } from '../shared.js';
/** https://discord.com/developers/docs/resources/soundboard#send-soundboard-sound-json-params */
/** https://docs.discord.com/developers/resources/soundboard#send-soundboard-sound-json-params */
export interface SendSoundboardSound {
/** The id of the soundboard sound to play */
soundId: BigString;
@@ -10,7 +10,7 @@ export interface SendSoundboardSound {
sourceGuildId?: BigString;
}
/** https://discord.com/developers/docs/resources/soundboard#create-guild-soundboard-sound-json-params */
/** https://docs.discord.com/developers/resources/soundboard#create-guild-soundboard-sound-json-params */
export interface CreateGuildSoundboardSound {
/** Name of the soundboard sound (2-32 characters) */
name: string;
@@ -24,7 +24,7 @@ export interface CreateGuildSoundboardSound {
emojiName?: string | null;
}
/** https://discord.com/developers/docs/resources/soundboard#modify-guild-soundboard-sound-json-params */
/** https://docs.discord.com/developers/resources/soundboard#modify-guild-soundboard-sound-json-params */
export interface ModifyGuildSoundboardSound {
/** Name of the soundboard sound (2-32 characters) */
name?: string;

View File

@@ -1,9 +1,9 @@
/** Types for: https://discord.com/developers/docs/resources/stage-instance */
/** Types for: https://docs.discord.com/developers/resources/stage-instance */
import type { DiscordStageInstancePrivacyLevel } from '../discord/stageInstance.js';
import type { BigString } from '../shared.js';
/** https://discord.com/developers/docs/resources/stage-instance#create-stage-instance-json-params */
/** https://docs.discord.com/developers/resources/stage-instance#create-stage-instance-json-params */
export interface CreateStageInstance {
/** The id of the Stage channel */
channelId: BigString;
@@ -17,7 +17,7 @@ export interface CreateStageInstance {
guildScheduledEventId?: BigString;
}
/** https://discord.com/developers/docs/resources/stage-instance#modify-stage-instance-json-params */
/** https://docs.discord.com/developers/resources/stage-instance#modify-stage-instance-json-params */
export interface EditStageInstanceOptions {
/** The topic of the Stage instance (1-120 characters) */
topic?: string;

View File

@@ -1,8 +1,8 @@
/** Types for: https://discord.com/developers/docs/resources/sticker */
/** Types for: https://docs.discord.com/developers/resources/sticker */
import type { FileContent } from './reference.js';
/** https://discord.com/developers/docs/resources/sticker#create-guild-sticker-form-params */
/** https://docs.discord.com/developers/resources/sticker#create-guild-sticker-form-params */
export interface CreateGuildStickerOptions {
/** Name of the sticker (2-30 characters) */
name: string;
@@ -14,7 +14,7 @@ export interface CreateGuildStickerOptions {
file: FileContent;
}
/** https://discord.com/developers/docs/resources/sticker#modify-guild-sticker-json-params */
/** https://docs.discord.com/developers/resources/sticker#modify-guild-sticker-json-params */
export interface EditGuildStickerOptions {
/** Name of the sticker (2-30 characters) */
name?: string;

View File

@@ -1,8 +1,8 @@
/** Types for: https://discord.com/developers/docs/resources/subscription */
/** Types for: https://docs.discord.com/developers/resources/subscription */
import type { BigString } from '../shared.js';
/** https://discord.com/developers/docs/resources/subscription#query-string-params */
/** https://docs.discord.com/developers/resources/subscription#query-string-params */
export interface ListSkuSubscriptionsOptions {
/** List subscriptions before this ID */
before?: BigString;

View File

@@ -1,8 +1,8 @@
/** Types for: https://discord.com/developers/docs/resources/user */
/** Types for: https://docs.discord.com/developers/resources/user */
import type { BigString } from '../shared.js';
/** https://discord.com/developers/docs/resources/user#get-current-user-guilds-query-string-params */
/** https://docs.discord.com/developers/resources/user#get-current-user-guilds-query-string-params */
export interface GetUserGuilds {
/** Get guilds before this guild ID */
before?: BigString;
@@ -14,7 +14,7 @@ export interface GetUserGuilds {
withCounts?: boolean;
}
/** https://discord.com/developers/docs/resources/user#create-group-dm-json-params */
/** https://docs.discord.com/developers/resources/user#create-group-dm-json-params */
export interface CreateGroupDmOptions {
/** Access tokens of users that have granted your app the `gdm.join` scope */
accessTokens: string[];

View File

@@ -1,8 +1,8 @@
/** Types for: https://discord.com/developers/docs/resources/voice */
/** Types for: https://docs.discord.com/developers/resources/voice */
import type { BigString } from '../shared.js';
/** https://discord.com/developers/docs/resources/voice#modify-current-user-voice-state-json-params */
/** https://docs.discord.com/developers/resources/voice#modify-current-user-voice-state-json-params */
export interface EditOwnVoiceState {
/** The id of the channel the user is currently in */
channelId?: BigString;
@@ -12,7 +12,7 @@ export interface EditOwnVoiceState {
requestToSpeakTimestamp?: number | null;
}
/** https://discord.com/developers/docs/resources/voice#modify-user-voice-state-json-params */
/** https://docs.discord.com/developers/resources/voice#modify-user-voice-state-json-params */
export interface EditUserVoiceState {
/** The id of the channel the user is currently in */
channelId?: BigString;

View File

@@ -1,4 +1,4 @@
/** Types for: https://discord.com/developers/docs/resources/webhook */
/** Types for: https://docs.discord.com/developers/resources/webhook */
import type { DiscordAttachment, DiscordEmbed } from '../discord/message.js';
import type { BigString, Camelize } from '../shared.js';
@@ -7,7 +7,7 @@ import type { AllowedMentions } from './message.js';
import type { CreatePoll } from './poll.js';
import type { FileContent } from './reference.js';
/** https://discord.com/developers/docs/resources/webhook#create-webhook-json-params */
/** https://docs.discord.com/developers/resources/webhook#create-webhook-json-params */
export interface CreateWebhook {
/** Name of the webhook (1-80 characters) */
name: string;
@@ -15,7 +15,7 @@ export interface CreateWebhook {
avatar?: string | null;
}
/** https://discord.com/developers/docs/resources/webhook#modify-webhook-json-params */
/** https://docs.discord.com/developers/resources/webhook#modify-webhook-json-params */
export interface ModifyWebhook {
/** The default name of the webhook */
name?: string;
@@ -25,7 +25,7 @@ export interface ModifyWebhook {
channelId?: BigString;
}
/** https://discord.com/developers/docs/resources/webhook#execute-webhook */
/** https://docs.discord.com/developers/resources/webhook#execute-webhook */
export interface ExecuteWebhook {
// Query Parameters
@@ -81,13 +81,13 @@ export interface ExecuteWebhook {
poll?: CreatePoll;
}
/** https://discord.com/developers/docs/resources/webhook#get-webhook-message-query-string-params */
/** https://docs.discord.com/developers/resources/webhook#get-webhook-message-query-string-params */
export interface GetWebhookMessageOptions {
/** id of the thread the message is in */
threadId: BigString;
}
/** https://discord.com/developers/docs/resources/webhook#edit-webhook-message */
/** https://docs.discord.com/developers/resources/webhook#edit-webhook-message */
export interface EditWebhookMessageOptions {
// Query parameters
/** Id of the thread the message is in */
@@ -135,7 +135,7 @@ export interface EditWebhookMessageOptions {
poll?: CreatePoll;
}
/** https://discord.com/developers/docs/resources/webhook#delete-webhook-message-query-string-params */
/** https://docs.discord.com/developers/resources/webhook#delete-webhook-message-query-string-params */
export interface DeleteWebhookMessageOptions {
/** id of the thread the message is in */
threadId: BigString;

View File

@@ -27,12 +27,12 @@
"@discordeno/types": "workspace:^"
},
"devDependencies": {
"@biomejs/biome": "2.3.13",
"@swc/cli": "^0.7.10",
"@swc/core": "^1.15.10",
"@biomejs/biome": "2.4.1",
"@swc/cli": "^0.8.0",
"@swc/core": "^1.15.11",
"@types/chai": "^5.2.3",
"@types/mocha": "^10.0.10",
"@types/node": "^25.0.10",
"@types/node": "^25.2.3",
"@types/sinon": "^21.0.0",
"c8": "^10.1.3",
"chai": "^6.2.2",

View File

@@ -8,7 +8,10 @@ export interface ImageOptions {
/** Help format an image url. */
export function formatImageUrl(url: string, size: ImageSize = 128, format?: ImageFormat): string {
return `${url}.${format ?? (url.includes('/a_') ? 'gif' : 'webp')}?size=${size}`;
const animated = url.includes('/a_');
format ??= animated ? 'gif' : 'webp';
return `${url}.${format}?size=${size}${animated && format === 'webp' ? '&animated=true' : ''}`;
}
/**

View File

@@ -60,7 +60,7 @@ export interface CreateOAuth2LinkOptions {
* The type of response
*
* @remarks
* Should be defined only if using either OAuth2 authorization, implicit or not, or [advanced bot authorization](https://discord.com/developers/docs/topics/oauth2#advanced-bot-authorization)
* Should be defined only if using either OAuth2 authorization, implicit or not, or [advanced bot authorization](https://docs.discord.com/developers/topics/oauth2#advanced-bot-authorization)
*/
responseType?: 'code' | 'token';
/** The id of the application */
@@ -70,14 +70,14 @@ export interface CreateOAuth2LinkOptions {
/**
* The optional state for security
*
* @see https://discord.com/developers/docs/topics/oauth2#state-and-security
* @see https://docs.discord.com/developers/topics/oauth2#state-and-security
*/
state?: string;
/**
* The redirect uri for after the authentication
*
* @remarks
* Should be defined only if using either OAuth2 authorization, implicit or not, or [advanced bot authorization](https://discord.com/developers/docs/topics/oauth2#advanced-bot-authorization)
* Should be defined only if using either OAuth2 authorization, implicit or not, or [advanced bot authorization](https://docs.discord.com/developers/topics/oauth2#advanced-bot-authorization)
*/
redirectUri?: string;
/**
@@ -92,21 +92,21 @@ export interface CreateOAuth2LinkOptions {
* The permissions of the invited bot
*
* @remarks
* Should be defined only in a [bot authorization flow](https://discord.com/developers/docs/topics/oauth2#bot-authorization-flow) or with [advanced bot authorization](https://discord.com/developers/docs/topics/oauth2#advanced-bot-authorization)
* Should be defined only in a [bot authorization flow](https://docs.discord.com/developers/topics/oauth2#bot-authorization-flow) or with [advanced bot authorization](https://docs.discord.com/developers/topics/oauth2#advanced-bot-authorization)
*/
permissions?: BigString | PermissionStrings[];
/**
* Pre-fills the dropdown picker with a guild for the user
*
* @remarks
* Should be defined only in a [bot authorization flow](https://discord.com/developers/docs/topics/oauth2#bot-authorization-flow) or with [advanced bot authorization](https://discord.com/developers/docs/topics/oauth2#advanced-bot-authorization) or with the `webhook.incoming` scope
* Should be defined only in a [bot authorization flow](https://docs.discord.com/developers/topics/oauth2#bot-authorization-flow) or with [advanced bot authorization](https://docs.discord.com/developers/topics/oauth2#advanced-bot-authorization) or with the `webhook.incoming` scope
*/
guildId?: BigString;
/**
* Disallows the user from changing the guild dropdown if set to true
*
* @remarks
* Should be defined only in a [bot authorization flow](https://discord.com/developers/docs/topics/oauth2#bot-authorization-flow), with [advanced bot authorization](https://discord.com/developers/docs/topics/oauth2#advanced-bot-authorization) or with the `webhook.incoming` scope
* Should be defined only in a [bot authorization flow](https://docs.discord.com/developers/topics/oauth2#bot-authorization-flow), with [advanced bot authorization](https://docs.discord.com/developers/topics/oauth2#advanced-bot-authorization) or with the `webhook.incoming` scope
*/
disableGuildSelect?: boolean;
/**

View File

@@ -27,18 +27,18 @@
"@mdx-js/react": "^3.1.1",
"@xyflow/react": "^12.10.0",
"prism-react-renderer": "^2.4.1",
"react": "^19.2.3",
"react-dom": "^19.2.3"
"react": "^19.2.4",
"react-dom": "^19.2.4"
},
"devDependencies": {
"@biomejs/biome": "2.3.13",
"@biomejs/biome": "2.4.0",
"@docusaurus/module-type-aliases": "^3.9.2",
"@docusaurus/tsconfig": "^3.9.2",
"@docusaurus/types": "^3.9.2",
"@types/react": "^19.2.9",
"turbo": "^2.7.6",
"@types/react": "^19.2.14",
"turbo": "^2.8.9",
"typescript": "5.9.3",
"webpack": "5.104.1"
"webpack": "5.105.2"
},
"resolutions": {
"@types/react": "^19.2.7"

View File

@@ -5361,18 +5361,18 @@ __metadata:
languageName: node
linkType: hard
"@biomejs/biome@npm:2.3.13":
version: 2.3.13
resolution: "@biomejs/biome@npm:2.3.13"
"@biomejs/biome@npm:2.4.0":
version: 2.4.0
resolution: "@biomejs/biome@npm:2.4.0"
dependencies:
"@biomejs/cli-darwin-arm64": "npm:2.3.13"
"@biomejs/cli-darwin-x64": "npm:2.3.13"
"@biomejs/cli-linux-arm64": "npm:2.3.13"
"@biomejs/cli-linux-arm64-musl": "npm:2.3.13"
"@biomejs/cli-linux-x64": "npm:2.3.13"
"@biomejs/cli-linux-x64-musl": "npm:2.3.13"
"@biomejs/cli-win32-arm64": "npm:2.3.13"
"@biomejs/cli-win32-x64": "npm:2.3.13"
"@biomejs/cli-darwin-arm64": "npm:2.4.0"
"@biomejs/cli-darwin-x64": "npm:2.4.0"
"@biomejs/cli-linux-arm64": "npm:2.4.0"
"@biomejs/cli-linux-arm64-musl": "npm:2.4.0"
"@biomejs/cli-linux-x64": "npm:2.4.0"
"@biomejs/cli-linux-x64-musl": "npm:2.4.0"
"@biomejs/cli-win32-arm64": "npm:2.4.0"
"@biomejs/cli-win32-x64": "npm:2.4.0"
dependenciesMeta:
"@biomejs/cli-darwin-arm64":
optional: true
@@ -5392,62 +5392,62 @@ __metadata:
optional: true
bin:
biome: bin/biome
checksum: 10c0/920c44c755ab8efa2114b441baf74b8f5fae8e6ad98a301ce02228f546d20ef6ab7c33b990b0a4acd1ffc8f5985ae839cf1fec59a6f169732a0f86c14308728b
checksum: 10c0/c10de983720ac20df56755f42f48b2b56fcc1082d364193f1410d07b62c4b7c3437abdbc9cfd60f2a65cd0f3baa7abf8d09a85cd6962b1363f77034e877c13b3
languageName: node
linkType: hard
"@biomejs/cli-darwin-arm64@npm:2.3.13":
version: 2.3.13
resolution: "@biomejs/cli-darwin-arm64@npm:2.3.13"
"@biomejs/cli-darwin-arm64@npm:2.4.0":
version: 2.4.0
resolution: "@biomejs/cli-darwin-arm64@npm:2.4.0"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
"@biomejs/cli-darwin-x64@npm:2.3.13":
version: 2.3.13
resolution: "@biomejs/cli-darwin-x64@npm:2.3.13"
"@biomejs/cli-darwin-x64@npm:2.4.0":
version: 2.4.0
resolution: "@biomejs/cli-darwin-x64@npm:2.4.0"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
"@biomejs/cli-linux-arm64-musl@npm:2.3.13":
version: 2.3.13
resolution: "@biomejs/cli-linux-arm64-musl@npm:2.3.13"
"@biomejs/cli-linux-arm64-musl@npm:2.4.0":
version: 2.4.0
resolution: "@biomejs/cli-linux-arm64-musl@npm:2.4.0"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
"@biomejs/cli-linux-arm64@npm:2.3.13":
version: 2.3.13
resolution: "@biomejs/cli-linux-arm64@npm:2.3.13"
"@biomejs/cli-linux-arm64@npm:2.4.0":
version: 2.4.0
resolution: "@biomejs/cli-linux-arm64@npm:2.4.0"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
"@biomejs/cli-linux-x64-musl@npm:2.3.13":
version: 2.3.13
resolution: "@biomejs/cli-linux-x64-musl@npm:2.3.13"
"@biomejs/cli-linux-x64-musl@npm:2.4.0":
version: 2.4.0
resolution: "@biomejs/cli-linux-x64-musl@npm:2.4.0"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
"@biomejs/cli-linux-x64@npm:2.3.13":
version: 2.3.13
resolution: "@biomejs/cli-linux-x64@npm:2.3.13"
"@biomejs/cli-linux-x64@npm:2.4.0":
version: 2.4.0
resolution: "@biomejs/cli-linux-x64@npm:2.4.0"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
"@biomejs/cli-win32-arm64@npm:2.3.13":
version: 2.3.13
resolution: "@biomejs/cli-win32-arm64@npm:2.3.13"
"@biomejs/cli-win32-arm64@npm:2.4.0":
version: 2.4.0
resolution: "@biomejs/cli-win32-arm64@npm:2.4.0"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
"@biomejs/cli-win32-x64@npm:2.3.13":
version: 2.3.13
resolution: "@biomejs/cli-win32-x64@npm:2.3.13"
"@biomejs/cli-win32-x64@npm:2.4.0":
version: 2.4.0
resolution: "@biomejs/cli-win32-x64@npm:2.4.0"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
@@ -12126,13 +12126,13 @@ __metadata:
languageName: node
linkType: hard
"enhanced-resolve@npm:^5.17.4":
version: 5.18.4
resolution: "enhanced-resolve@npm:5.18.4"
"enhanced-resolve@npm:^5.19.0":
version: 5.19.0
resolution: "enhanced-resolve@npm:5.19.0"
dependencies:
graceful-fs: "npm:^4.2.4"
tapable: "npm:^2.2.0"
checksum: 10c0/8f6d42c8a0787a746c493e724c9de5d091cfe8e3f871f2464e2f78a6c55fa1a3aaba495334f923c8ea3ac23e1472491f79feef6fc0fb46a75169cb447ffbe2dc
tapable: "npm:^2.3.0"
checksum: 10c0/966b1dffb82d5f6a4d6a86e904e812104a999066aa29f9223040aaa751e7c453b462a3f5ef91f8bd4408131ff6f7f90651dd1c804bdcb7944e2099a9c2e45ee2
languageName: node
linkType: hard
@@ -18125,14 +18125,14 @@ __metadata:
languageName: node
linkType: hard
"react-dom@npm:^19.2.3":
version: 19.2.3
resolution: "react-dom@npm:19.2.3"
"react-dom@npm:^19.2.4":
version: 19.2.4
resolution: "react-dom@npm:19.2.4"
dependencies:
scheduler: "npm:^0.27.0"
peerDependencies:
react: ^19.2.3
checksum: 10c0/dc43f7ede06f46f3acc16ee83107c925530de9b91d1d0b3824583814746ff4c498ea64fd65cd83aba363205268adff52e2827c582634ae7b15069deaeabc4892
react: ^19.2.4
checksum: 10c0/f0c63f1794dedb154136d4d0f59af00b41907f4859571c155940296808f4b94bf9c0c20633db75b5b2112ec13d8d7dd4f9bf57362ed48782f317b11d05a44f35
languageName: node
linkType: hard
@@ -18269,10 +18269,10 @@ __metadata:
languageName: node
linkType: hard
"react@npm:^19.2.3":
version: 19.2.3
resolution: "react@npm:19.2.3"
checksum: 10c0/094220b3ba3a76c1b668f972ace1dd15509b157aead1b40391d1c8e657e720c201d9719537375eff08f5e0514748c0319063392a6f000e31303aafc4471f1436
"react@npm:^19.2.4":
version: 19.2.4
resolution: "react@npm:19.2.4"
checksum: 10c0/cd2c9ff67a720799cc3b38a516009986f7fc4cb8d3e15716c6211cf098d1357ee3e348ab05ad0600042bbb0fd888530ba92e329198c92eafa0994f5213396596
languageName: node
linkType: hard
@@ -19935,58 +19935,58 @@ __metadata:
languageName: node
linkType: hard
"turbo-darwin-64@npm:2.7.6":
version: 2.7.6
resolution: "turbo-darwin-64@npm:2.7.6"
"turbo-darwin-64@npm:2.8.9":
version: 2.8.9
resolution: "turbo-darwin-64@npm:2.8.9"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
"turbo-darwin-arm64@npm:2.7.6":
version: 2.7.6
resolution: "turbo-darwin-arm64@npm:2.7.6"
"turbo-darwin-arm64@npm:2.8.9":
version: 2.8.9
resolution: "turbo-darwin-arm64@npm:2.8.9"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
"turbo-linux-64@npm:2.7.6":
version: 2.7.6
resolution: "turbo-linux-64@npm:2.7.6"
"turbo-linux-64@npm:2.8.9":
version: 2.8.9
resolution: "turbo-linux-64@npm:2.8.9"
conditions: os=linux & cpu=x64
languageName: node
linkType: hard
"turbo-linux-arm64@npm:2.7.6":
version: 2.7.6
resolution: "turbo-linux-arm64@npm:2.7.6"
"turbo-linux-arm64@npm:2.8.9":
version: 2.8.9
resolution: "turbo-linux-arm64@npm:2.8.9"
conditions: os=linux & cpu=arm64
languageName: node
linkType: hard
"turbo-windows-64@npm:2.7.6":
version: 2.7.6
resolution: "turbo-windows-64@npm:2.7.6"
"turbo-windows-64@npm:2.8.9":
version: 2.8.9
resolution: "turbo-windows-64@npm:2.8.9"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
"turbo-windows-arm64@npm:2.7.6":
version: 2.7.6
resolution: "turbo-windows-arm64@npm:2.7.6"
"turbo-windows-arm64@npm:2.8.9":
version: 2.8.9
resolution: "turbo-windows-arm64@npm:2.8.9"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
"turbo@npm:^2.7.6":
version: 2.7.6
resolution: "turbo@npm:2.7.6"
"turbo@npm:^2.8.9":
version: 2.8.9
resolution: "turbo@npm:2.8.9"
dependencies:
turbo-darwin-64: "npm:2.7.6"
turbo-darwin-arm64: "npm:2.7.6"
turbo-linux-64: "npm:2.7.6"
turbo-linux-arm64: "npm:2.7.6"
turbo-windows-64: "npm:2.7.6"
turbo-windows-arm64: "npm:2.7.6"
turbo-darwin-64: "npm:2.8.9"
turbo-darwin-arm64: "npm:2.8.9"
turbo-linux-64: "npm:2.8.9"
turbo-linux-arm64: "npm:2.8.9"
turbo-windows-64: "npm:2.8.9"
turbo-windows-arm64: "npm:2.8.9"
dependenciesMeta:
turbo-darwin-64:
optional: true
@@ -20002,7 +20002,7 @@ __metadata:
optional: true
bin:
turbo: bin/turbo
checksum: 10c0/1ea73e36be536088c531771c155ab89a114ce80e6f5a0952f6a8e3bfaf268f7b6f74ac44a4fcc0744df5c096fad3a0a686787ae8c9fcc3f9ae5033b2794e28b3
checksum: 10c0/43a8c3761235e7d6194fc7268fc401196e3092297940b4f460bea2f0b3869609e646525e1958c7686e82b92fcd27abf924b0e409b0326a9e4bec03e791a563da
languageName: node
linkType: hard
@@ -20477,13 +20477,13 @@ __metadata:
languageName: node
linkType: hard
"watchpack@npm:^2.4.4":
version: 2.4.4
resolution: "watchpack@npm:2.4.4"
"watchpack@npm:^2.5.1":
version: 2.5.1
resolution: "watchpack@npm:2.5.1"
dependencies:
glob-to-regexp: "npm:^0.4.1"
graceful-fs: "npm:^4.1.2"
checksum: 10c0/6c0901f75ce245d33991225af915eea1c5ae4ba087f3aee2b70dd377d4cacb34bef02a48daf109da9d59b2d31ec6463d924a0d72f8618ae1643dd07b95de5275
checksum: 10c0/dffbb483d1f61be90dc570630a1eb308581e2227d507d783b1d94a57ac7b705ecd9a1a4b73d73c15eab596d39874e5276a3d9cb88bbb698bafc3f8d08c34cf17
languageName: node
linkType: hard
@@ -20710,9 +20710,9 @@ __metadata:
languageName: node
linkType: hard
"webpack@npm:5.104.1":
version: 5.104.1
resolution: "webpack@npm:5.104.1"
"webpack@npm:5.105.2":
version: 5.105.2
resolution: "webpack@npm:5.105.2"
dependencies:
"@types/eslint-scope": "npm:^3.7.7"
"@types/estree": "npm:^1.0.8"
@@ -20724,7 +20724,7 @@ __metadata:
acorn-import-phases: "npm:^1.0.3"
browserslist: "npm:^4.28.1"
chrome-trace-event: "npm:^1.0.2"
enhanced-resolve: "npm:^5.17.4"
enhanced-resolve: "npm:^5.19.0"
es-module-lexer: "npm:^2.0.0"
eslint-scope: "npm:5.1.1"
events: "npm:^3.2.0"
@@ -20737,14 +20737,14 @@ __metadata:
schema-utils: "npm:^4.3.3"
tapable: "npm:^2.3.0"
terser-webpack-plugin: "npm:^5.3.16"
watchpack: "npm:^2.4.4"
watchpack: "npm:^2.5.1"
webpack-sources: "npm:^3.3.3"
peerDependenciesMeta:
webpack-cli:
optional: true
bin:
webpack: bin/webpack.js
checksum: 10c0/ea78c57f80bbd7684f4f1bb38a18408ab0ef4c5b962e25ad382c595d10b9e9701e077f5248a8cef5f127a55902698664c18837e64243bb972fbecf4e5d9aaab0
checksum: 10c0/565df8072c00d72e0a22e136971862b7eac7beb8b8d39a2ae4ab00838941ea58acc5b49dd7ea268e3d839810756cb86ba5c272b3a25904f6db7807cfa8ed0b29
languageName: node
linkType: hard
@@ -20857,7 +20857,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "website@workspace:."
dependencies:
"@biomejs/biome": "npm:2.3.13"
"@biomejs/biome": "npm:2.4.0"
"@docusaurus/core": "npm:^3.9.2"
"@docusaurus/faster": "npm:^3.9.2"
"@docusaurus/module-type-aliases": "npm:^3.9.2"
@@ -20869,14 +20869,14 @@ __metadata:
"@docusaurus/types": "npm:^3.9.2"
"@easyops-cn/docusaurus-search-local": "npm:^0.52.1"
"@mdx-js/react": "npm:^3.1.1"
"@types/react": "npm:^19.2.9"
"@types/react": "npm:^19.2.14"
"@xyflow/react": "npm:^12.10.0"
prism-react-renderer: "npm:^2.4.1"
react: "npm:^19.2.3"
react-dom: "npm:^19.2.3"
turbo: "npm:^2.7.6"
react: "npm:^19.2.4"
react-dom: "npm:^19.2.4"
turbo: "npm:^2.8.9"
typescript: "npm:5.9.3"
webpack: "npm:5.104.1"
webpack: "npm:5.105.2"
languageName: unknown
linkType: soft

316
yarn.lock
View File

@@ -12,18 +12,18 @@ __metadata:
languageName: node
linkType: hard
"@biomejs/biome@npm:2.3.13":
version: 2.3.13
resolution: "@biomejs/biome@npm:2.3.13"
"@biomejs/biome@npm:2.4.1":
version: 2.4.1
resolution: "@biomejs/biome@npm:2.4.1"
dependencies:
"@biomejs/cli-darwin-arm64": "npm:2.3.13"
"@biomejs/cli-darwin-x64": "npm:2.3.13"
"@biomejs/cli-linux-arm64": "npm:2.3.13"
"@biomejs/cli-linux-arm64-musl": "npm:2.3.13"
"@biomejs/cli-linux-x64": "npm:2.3.13"
"@biomejs/cli-linux-x64-musl": "npm:2.3.13"
"@biomejs/cli-win32-arm64": "npm:2.3.13"
"@biomejs/cli-win32-x64": "npm:2.3.13"
"@biomejs/cli-darwin-arm64": "npm:2.4.1"
"@biomejs/cli-darwin-x64": "npm:2.4.1"
"@biomejs/cli-linux-arm64": "npm:2.4.1"
"@biomejs/cli-linux-arm64-musl": "npm:2.4.1"
"@biomejs/cli-linux-x64": "npm:2.4.1"
"@biomejs/cli-linux-x64-musl": "npm:2.4.1"
"@biomejs/cli-win32-arm64": "npm:2.4.1"
"@biomejs/cli-win32-x64": "npm:2.4.1"
dependenciesMeta:
"@biomejs/cli-darwin-arm64":
optional: true
@@ -43,62 +43,62 @@ __metadata:
optional: true
bin:
biome: bin/biome
checksum: 10c0/920c44c755ab8efa2114b441baf74b8f5fae8e6ad98a301ce02228f546d20ef6ab7c33b990b0a4acd1ffc8f5985ae839cf1fec59a6f169732a0f86c14308728b
checksum: 10c0/49afddd92d2d562d850a4cf0b1e56731c2c2e4ea973055f9e57012c40cbcb2046bb0c970f5339d05c8eee0e011f69c6d8d5d6fbf7630ad5c829b68bd5187c779
languageName: node
linkType: hard
"@biomejs/cli-darwin-arm64@npm:2.3.13":
version: 2.3.13
resolution: "@biomejs/cli-darwin-arm64@npm:2.3.13"
"@biomejs/cli-darwin-arm64@npm:2.4.1":
version: 2.4.1
resolution: "@biomejs/cli-darwin-arm64@npm:2.4.1"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
"@biomejs/cli-darwin-x64@npm:2.3.13":
version: 2.3.13
resolution: "@biomejs/cli-darwin-x64@npm:2.3.13"
"@biomejs/cli-darwin-x64@npm:2.4.1":
version: 2.4.1
resolution: "@biomejs/cli-darwin-x64@npm:2.4.1"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
"@biomejs/cli-linux-arm64-musl@npm:2.3.13":
version: 2.3.13
resolution: "@biomejs/cli-linux-arm64-musl@npm:2.3.13"
"@biomejs/cli-linux-arm64-musl@npm:2.4.1":
version: 2.4.1
resolution: "@biomejs/cli-linux-arm64-musl@npm:2.4.1"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
"@biomejs/cli-linux-arm64@npm:2.3.13":
version: 2.3.13
resolution: "@biomejs/cli-linux-arm64@npm:2.3.13"
"@biomejs/cli-linux-arm64@npm:2.4.1":
version: 2.4.1
resolution: "@biomejs/cli-linux-arm64@npm:2.4.1"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
"@biomejs/cli-linux-x64-musl@npm:2.3.13":
version: 2.3.13
resolution: "@biomejs/cli-linux-x64-musl@npm:2.3.13"
"@biomejs/cli-linux-x64-musl@npm:2.4.1":
version: 2.4.1
resolution: "@biomejs/cli-linux-x64-musl@npm:2.4.1"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
"@biomejs/cli-linux-x64@npm:2.3.13":
version: 2.3.13
resolution: "@biomejs/cli-linux-x64@npm:2.3.13"
"@biomejs/cli-linux-x64@npm:2.4.1":
version: 2.4.1
resolution: "@biomejs/cli-linux-x64@npm:2.4.1"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
"@biomejs/cli-win32-arm64@npm:2.3.13":
version: 2.3.13
resolution: "@biomejs/cli-win32-arm64@npm:2.3.13"
"@biomejs/cli-win32-arm64@npm:2.4.1":
version: 2.4.1
resolution: "@biomejs/cli-win32-arm64@npm:2.4.1"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
"@biomejs/cli-win32-x64@npm:2.3.13":
version: 2.3.13
resolution: "@biomejs/cli-win32-x64@npm:2.3.13"
"@biomejs/cli-win32-x64@npm:2.4.1":
version: 2.4.1
resolution: "@biomejs/cli-win32-x64@npm:2.4.1"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
@@ -116,16 +116,16 @@ __metadata:
version: 0.0.0-use.local
resolution: "@discordeno/bot@workspace:packages/bot"
dependencies:
"@biomejs/biome": "npm:2.3.13"
"@biomejs/biome": "npm:2.4.1"
"@discordeno/gateway": "workspace:^"
"@discordeno/rest": "workspace:^"
"@discordeno/types": "workspace:^"
"@discordeno/utils": "workspace:^"
"@swc/cli": "npm:^0.7.10"
"@swc/core": "npm:^1.15.10"
"@swc/cli": "npm:^0.8.0"
"@swc/core": "npm:^1.15.11"
"@types/chai": "npm:^5.2.3"
"@types/mocha": "npm:^10.0.10"
"@types/node": "npm:^25.0.10"
"@types/node": "npm:^25.2.3"
"@types/sinon": "npm:^21.0.0"
c8: "npm:^10.1.3"
chai: "npm:^6.2.2"
@@ -141,14 +141,14 @@ __metadata:
version: 0.0.0-use.local
resolution: "@discordeno/gateway@workspace:packages/gateway"
dependencies:
"@biomejs/biome": "npm:2.3.13"
"@biomejs/biome": "npm:2.4.1"
"@discordeno/types": "workspace:^"
"@discordeno/utils": "workspace:^"
"@swc/cli": "npm:^0.7.10"
"@swc/core": "npm:^1.15.10"
"@swc/cli": "npm:^0.8.0"
"@swc/core": "npm:^1.15.11"
"@types/chai": "npm:^5.2.3"
"@types/mocha": "npm:^10.0.10"
"@types/node": "npm:^25.0.10"
"@types/node": "npm:^25.2.3"
"@types/sinon": "npm:^21.0.0"
"@types/ws": "npm:^8.18.1"
c8: "npm:^10.1.3"
@@ -170,20 +170,20 @@ __metadata:
version: 0.0.0-use.local
resolution: "@discordeno/rest@workspace:packages/rest"
dependencies:
"@biomejs/biome": "npm:2.3.13"
"@biomejs/biome": "npm:2.4.1"
"@discordeno/types": "workspace:^"
"@discordeno/utils": "workspace:^"
"@swc/cli": "npm:^0.7.10"
"@swc/core": "npm:^1.15.10"
"@swc/cli": "npm:^0.8.0"
"@swc/core": "npm:^1.15.11"
"@types/chai": "npm:^5.2.3"
"@types/chai-as-promised": "npm:^8.0.2"
"@types/mocha": "npm:^10.0.10"
"@types/node": "npm:^25.0.10"
"@types/node": "npm:^25.2.3"
"@types/sinon": "npm:^21.0.0"
c8: "npm:^10.1.3"
chai: "npm:^6.2.2"
chai-as-promised: "npm:^8.0.2"
dotenv: "npm:^17.2.3"
dotenv: "npm:^17.3.1"
mocha: "npm:^11.7.5"
sinon: "npm:^21.0.1"
ts-node: "npm:^10.9.2"
@@ -196,11 +196,11 @@ __metadata:
version: 0.0.0-use.local
resolution: "@discordeno/types@workspace:packages/types"
dependencies:
"@biomejs/biome": "npm:2.3.13"
"@swc/cli": "npm:^0.7.10"
"@swc/core": "npm:^1.15.10"
"@biomejs/biome": "npm:2.4.1"
"@swc/cli": "npm:^0.8.0"
"@swc/core": "npm:^1.15.11"
"@types/mocha": "npm:^10.0.10"
"@types/node": "npm:^25.0.10"
"@types/node": "npm:^25.2.3"
c8: "npm:^10.1.3"
mocha: "npm:^11.7.5"
ts-node: "npm:^10.9.2"
@@ -213,13 +213,13 @@ __metadata:
version: 0.0.0-use.local
resolution: "@discordeno/utils@workspace:packages/utils"
dependencies:
"@biomejs/biome": "npm:2.3.13"
"@biomejs/biome": "npm:2.4.1"
"@discordeno/types": "workspace:^"
"@swc/cli": "npm:^0.7.10"
"@swc/core": "npm:^1.15.10"
"@swc/cli": "npm:^0.8.0"
"@swc/core": "npm:^1.15.11"
"@types/chai": "npm:^5.2.3"
"@types/mocha": "npm:^10.0.10"
"@types/node": "npm:^25.0.10"
"@types/node": "npm:^25.2.3"
"@types/sinon": "npm:^21.0.0"
c8: "npm:^10.1.3"
chai: "npm:^6.2.2"
@@ -562,9 +562,9 @@ __metadata:
languageName: node
linkType: hard
"@swc/cli@npm:^0.7.10":
version: 0.7.10
resolution: "@swc/cli@npm:0.7.10"
"@swc/cli@npm:^0.8.0":
version: 0.8.0
resolution: "@swc/cli@npm:0.8.0"
dependencies:
"@swc/counter": "npm:^0.1.3"
"@xhmikosr/bin-wrapper": "npm:^13.0.5"
@@ -577,7 +577,7 @@ __metadata:
tinyglobby: "npm:^0.2.13"
peerDependencies:
"@swc/core": ^1.2.66
chokidar: ^4.0.1
chokidar: ^5.0.0
peerDependenciesMeta:
chokidar:
optional: true
@@ -585,94 +585,94 @@ __metadata:
spack: bin/spack.js
swc: bin/swc.js
swcx: bin/swcx.js
checksum: 10c0/9e4d348538d35c44b5503b34c061b221a9ae17af12f78fdb4c0e0b8f5fe2992854dcdf2fa7f21ee709ecb959b5c92ca048a0a8b7d0c4d599e9502d021ea9bf32
checksum: 10c0/641fab4fcb063ec0ca6cc77072626d46757fa909fc7093634b4d7343752adeca5ff2e304a37daf72eb3f1a9490cbbd57d37116fe946469cee075f432c51a2b4d
languageName: node
linkType: hard
"@swc/core-darwin-arm64@npm:1.15.10":
version: 1.15.10
resolution: "@swc/core-darwin-arm64@npm:1.15.10"
"@swc/core-darwin-arm64@npm:1.15.11":
version: 1.15.11
resolution: "@swc/core-darwin-arm64@npm:1.15.11"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
"@swc/core-darwin-x64@npm:1.15.10":
version: 1.15.10
resolution: "@swc/core-darwin-x64@npm:1.15.10"
"@swc/core-darwin-x64@npm:1.15.11":
version: 1.15.11
resolution: "@swc/core-darwin-x64@npm:1.15.11"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
"@swc/core-linux-arm-gnueabihf@npm:1.15.10":
version: 1.15.10
resolution: "@swc/core-linux-arm-gnueabihf@npm:1.15.10"
"@swc/core-linux-arm-gnueabihf@npm:1.15.11":
version: 1.15.11
resolution: "@swc/core-linux-arm-gnueabihf@npm:1.15.11"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
"@swc/core-linux-arm64-gnu@npm:1.15.10":
version: 1.15.10
resolution: "@swc/core-linux-arm64-gnu@npm:1.15.10"
"@swc/core-linux-arm64-gnu@npm:1.15.11":
version: 1.15.11
resolution: "@swc/core-linux-arm64-gnu@npm:1.15.11"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
"@swc/core-linux-arm64-musl@npm:1.15.10":
version: 1.15.10
resolution: "@swc/core-linux-arm64-musl@npm:1.15.10"
"@swc/core-linux-arm64-musl@npm:1.15.11":
version: 1.15.11
resolution: "@swc/core-linux-arm64-musl@npm:1.15.11"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
"@swc/core-linux-x64-gnu@npm:1.15.10":
version: 1.15.10
resolution: "@swc/core-linux-x64-gnu@npm:1.15.10"
"@swc/core-linux-x64-gnu@npm:1.15.11":
version: 1.15.11
resolution: "@swc/core-linux-x64-gnu@npm:1.15.11"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
"@swc/core-linux-x64-musl@npm:1.15.10":
version: 1.15.10
resolution: "@swc/core-linux-x64-musl@npm:1.15.10"
"@swc/core-linux-x64-musl@npm:1.15.11":
version: 1.15.11
resolution: "@swc/core-linux-x64-musl@npm:1.15.11"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
"@swc/core-win32-arm64-msvc@npm:1.15.10":
version: 1.15.10
resolution: "@swc/core-win32-arm64-msvc@npm:1.15.10"
"@swc/core-win32-arm64-msvc@npm:1.15.11":
version: 1.15.11
resolution: "@swc/core-win32-arm64-msvc@npm:1.15.11"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
"@swc/core-win32-ia32-msvc@npm:1.15.10":
version: 1.15.10
resolution: "@swc/core-win32-ia32-msvc@npm:1.15.10"
"@swc/core-win32-ia32-msvc@npm:1.15.11":
version: 1.15.11
resolution: "@swc/core-win32-ia32-msvc@npm:1.15.11"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
"@swc/core-win32-x64-msvc@npm:1.15.10":
version: 1.15.10
resolution: "@swc/core-win32-x64-msvc@npm:1.15.10"
"@swc/core-win32-x64-msvc@npm:1.15.11":
version: 1.15.11
resolution: "@swc/core-win32-x64-msvc@npm:1.15.11"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
"@swc/core@npm:^1.15.10":
version: 1.15.10
resolution: "@swc/core@npm:1.15.10"
"@swc/core@npm:^1.15.11":
version: 1.15.11
resolution: "@swc/core@npm:1.15.11"
dependencies:
"@swc/core-darwin-arm64": "npm:1.15.10"
"@swc/core-darwin-x64": "npm:1.15.10"
"@swc/core-linux-arm-gnueabihf": "npm:1.15.10"
"@swc/core-linux-arm64-gnu": "npm:1.15.10"
"@swc/core-linux-arm64-musl": "npm:1.15.10"
"@swc/core-linux-x64-gnu": "npm:1.15.10"
"@swc/core-linux-x64-musl": "npm:1.15.10"
"@swc/core-win32-arm64-msvc": "npm:1.15.10"
"@swc/core-win32-ia32-msvc": "npm:1.15.10"
"@swc/core-win32-x64-msvc": "npm:1.15.10"
"@swc/core-darwin-arm64": "npm:1.15.11"
"@swc/core-darwin-x64": "npm:1.15.11"
"@swc/core-linux-arm-gnueabihf": "npm:1.15.11"
"@swc/core-linux-arm64-gnu": "npm:1.15.11"
"@swc/core-linux-arm64-musl": "npm:1.15.11"
"@swc/core-linux-x64-gnu": "npm:1.15.11"
"@swc/core-linux-x64-musl": "npm:1.15.11"
"@swc/core-win32-arm64-msvc": "npm:1.15.11"
"@swc/core-win32-ia32-msvc": "npm:1.15.11"
"@swc/core-win32-x64-msvc": "npm:1.15.11"
"@swc/counter": "npm:^0.1.3"
"@swc/types": "npm:^0.1.25"
peerDependencies:
@@ -701,7 +701,7 @@ __metadata:
peerDependenciesMeta:
"@swc/helpers":
optional: true
checksum: 10c0/4802276838dfbdd8fda8429731eec560ad394b65be2ca8a458f2c8fd6475cd879386c599bd05daea7b3de0fd7adf4877cd93dc07992397f45e12a211154193c6
checksum: 10c0/84b9dbed8d4d39da9941b796f97f84a52a3ab1a5e002b0395e98d0c3368acab4dde84051eb97c47c85b67c5fc29e3e9b7a646cf238a96df93fc7c54177925c3e
languageName: node
linkType: hard
@@ -835,12 +835,12 @@ __metadata:
languageName: node
linkType: hard
"@types/node@npm:^25.0.10":
version: 25.0.10
resolution: "@types/node@npm:25.0.10"
"@types/node@npm:^25.2.3":
version: 25.2.3
resolution: "@types/node@npm:25.2.3"
dependencies:
undici-types: "npm:~7.16.0"
checksum: 10c0/9edc3c812b487c32c76eebac7c87acae1f69515a0bc3f6b545806d513eb9e918c3217bf751dc93da39f60e06bf1b0caa92258ef3a6dd6457124b2e761e54f61f
checksum: 10c0/925833029ce0bb4a72c36f90b93287184d3511aeb0fa60a994ae94b5430c22f9be6693d67d210df79267cb54c6f6978caaefb149d99ab5f83af5827ba7cb9822
languageName: node
linkType: hard
@@ -1442,12 +1442,12 @@ __metadata:
version: 0.0.0-use.local
resolution: "discordeno-monorepo@workspace:."
dependencies:
"@biomejs/biome": "npm:2.3.13"
"@biomejs/biome": "npm:2.4.1"
husky: "npm:^9.1.7"
lint-staged: "npm:^16.2.7"
turbo: "npm:^2.7.6"
typedoc: "npm:^0.28.16"
typedoc-plugin-markdown: "npm:^4.9.0"
turbo: "npm:^2.8.9"
typedoc: "npm:^0.28.17"
typedoc-plugin-markdown: "npm:^4.10.0"
typescript: "npm:^5.9.3"
languageName: unknown
linkType: soft
@@ -1456,17 +1456,17 @@ __metadata:
version: 0.0.0-use.local
resolution: "discordeno@workspace:packages/discordeno"
dependencies:
"@biomejs/biome": "npm:2.3.13"
"@biomejs/biome": "npm:2.4.1"
"@discordeno/bot": "workspace:^"
"@discordeno/gateway": "workspace:^"
"@discordeno/rest": "workspace:^"
"@discordeno/types": "workspace:^"
"@discordeno/utils": "workspace:^"
"@swc/cli": "npm:^0.7.10"
"@swc/core": "npm:^1.15.10"
"@swc/cli": "npm:^0.8.0"
"@swc/core": "npm:^1.15.11"
"@types/chai": "npm:^5.2.3"
"@types/mocha": "npm:^10.0.10"
"@types/node": "npm:^25.0.10"
"@types/node": "npm:^25.2.3"
c8: "npm:^10.1.3"
chai: "npm:^6.2.2"
mocha: "npm:^11.7.5"
@@ -1476,10 +1476,10 @@ __metadata:
languageName: unknown
linkType: soft
"dotenv@npm:^17.2.3":
version: 17.2.3
resolution: "dotenv@npm:17.2.3"
checksum: 10c0/c884403209f713214a1b64d4d1defa4934c2aa5b0002f5a670ae298a51e3c3ad3ba79dfee2f8df49f01ae74290fcd9acdb1ab1d09c7bfb42b539036108bb2ba0
"dotenv@npm:^17.3.1":
version: 17.3.1
resolution: "dotenv@npm:17.3.1"
checksum: 10c0/c78e0c2d5a549c751e544cc60e2b95e7cb67e0c551f42e094d161c6b297aa44b630a3c2dcacf5569e529a6c2a6b84e2ab9be8d37b299d425df5a18b81ce4a35f
languageName: node
linkType: hard
@@ -2917,58 +2917,58 @@ __metadata:
languageName: unknown
linkType: soft
"turbo-darwin-64@npm:2.7.6":
version: 2.7.6
resolution: "turbo-darwin-64@npm:2.7.6"
"turbo-darwin-64@npm:2.8.9":
version: 2.8.9
resolution: "turbo-darwin-64@npm:2.8.9"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
"turbo-darwin-arm64@npm:2.7.6":
version: 2.7.6
resolution: "turbo-darwin-arm64@npm:2.7.6"
"turbo-darwin-arm64@npm:2.8.9":
version: 2.8.9
resolution: "turbo-darwin-arm64@npm:2.8.9"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
"turbo-linux-64@npm:2.7.6":
version: 2.7.6
resolution: "turbo-linux-64@npm:2.7.6"
"turbo-linux-64@npm:2.8.9":
version: 2.8.9
resolution: "turbo-linux-64@npm:2.8.9"
conditions: os=linux & cpu=x64
languageName: node
linkType: hard
"turbo-linux-arm64@npm:2.7.6":
version: 2.7.6
resolution: "turbo-linux-arm64@npm:2.7.6"
"turbo-linux-arm64@npm:2.8.9":
version: 2.8.9
resolution: "turbo-linux-arm64@npm:2.8.9"
conditions: os=linux & cpu=arm64
languageName: node
linkType: hard
"turbo-windows-64@npm:2.7.6":
version: 2.7.6
resolution: "turbo-windows-64@npm:2.7.6"
"turbo-windows-64@npm:2.8.9":
version: 2.8.9
resolution: "turbo-windows-64@npm:2.8.9"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
"turbo-windows-arm64@npm:2.7.6":
version: 2.7.6
resolution: "turbo-windows-arm64@npm:2.7.6"
"turbo-windows-arm64@npm:2.8.9":
version: 2.8.9
resolution: "turbo-windows-arm64@npm:2.8.9"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
"turbo@npm:^2.7.6":
version: 2.7.6
resolution: "turbo@npm:2.7.6"
"turbo@npm:^2.8.9":
version: 2.8.9
resolution: "turbo@npm:2.8.9"
dependencies:
turbo-darwin-64: "npm:2.7.6"
turbo-darwin-arm64: "npm:2.7.6"
turbo-linux-64: "npm:2.7.6"
turbo-linux-arm64: "npm:2.7.6"
turbo-windows-64: "npm:2.7.6"
turbo-windows-arm64: "npm:2.7.6"
turbo-darwin-64: "npm:2.8.9"
turbo-darwin-arm64: "npm:2.8.9"
turbo-linux-64: "npm:2.8.9"
turbo-linux-arm64: "npm:2.8.9"
turbo-windows-64: "npm:2.8.9"
turbo-windows-arm64: "npm:2.8.9"
dependenciesMeta:
turbo-darwin-64:
optional: true
@@ -2984,7 +2984,7 @@ __metadata:
optional: true
bin:
turbo: bin/turbo
checksum: 10c0/1ea73e36be536088c531771c155ab89a114ce80e6f5a0952f6a8e3bfaf268f7b6f74ac44a4fcc0744df5c096fad3a0a686787ae8c9fcc3f9ae5033b2794e28b3
checksum: 10c0/43a8c3761235e7d6194fc7268fc401196e3092297940b4f460bea2f0b3869609e646525e1958c7686e82b92fcd27abf924b0e409b0326a9e4bec03e791a563da
languageName: node
linkType: hard
@@ -3002,18 +3002,18 @@ __metadata:
languageName: node
linkType: hard
"typedoc-plugin-markdown@npm:^4.9.0":
version: 4.9.0
resolution: "typedoc-plugin-markdown@npm:4.9.0"
"typedoc-plugin-markdown@npm:^4.10.0":
version: 4.10.0
resolution: "typedoc-plugin-markdown@npm:4.10.0"
peerDependencies:
typedoc: 0.28.x
checksum: 10c0/12040bbff7bc7e4f777d06710e39421f8ebaaf706f4b8075536453f35bc86726c5ce743de0cc9c39ee1bdfc8611b2878a4cf4c83a493e0678fc640dd71fe97fc
checksum: 10c0/20c7bc8ef68bd90053649ce223d02d4aceefed675c09efb1740c7791fbc37c10a1e25d14647605484a198f0695312eb21119015616d91c73fe1d63df5e4fb061
languageName: node
linkType: hard
"typedoc@npm:^0.28.16":
version: 0.28.16
resolution: "typedoc@npm:0.28.16"
"typedoc@npm:^0.28.17":
version: 0.28.17
resolution: "typedoc@npm:0.28.17"
dependencies:
"@gerrit0/mini-shiki": "npm:^3.17.0"
lunr: "npm:^2.3.9"
@@ -3024,7 +3024,7 @@ __metadata:
typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x
bin:
typedoc: bin/typedoc
checksum: 10c0/ae444913068088e88be6319a017a3a18f69cbd91dbb5b959fbdd0cf87d1a2a07f3a0d4ab29c957a83dd72808ff35bdd6ceec3ad1803fa412ddceffb78fa60ebb
checksum: 10c0/25c3f6c08748debd2549e8af2c96dcdea255297924e8e0ecc78c86aea35d69c149eb5ad0a0d333a3a69d4e41a887ce55fef0aa97236789f0e658f3ad051429e8
languageName: node
linkType: hard