diff --git a/node_modules/.bin/uuid b/node_modules/.bin/uuid deleted file mode 100644 index 0c2d469..0000000 --- a/node_modules/.bin/uuid +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) - if command -v cygpath > /dev/null 2>&1; then - basedir=`cygpath -w "$basedir"` - fi - ;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../uuid/dist/bin/uuid" "$@" -else - exec node "$basedir/../uuid/dist/bin/uuid" "$@" -fi diff --git a/node_modules/.bin/uuid.cmd b/node_modules/.bin/uuid.cmd deleted file mode 100644 index 0f2376e..0000000 --- a/node_modules/.bin/uuid.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\uuid\dist\bin\uuid" %* diff --git a/node_modules/.bin/uuid.ps1 b/node_modules/.bin/uuid.ps1 deleted file mode 100644 index 7804628..0000000 --- a/node_modules/.bin/uuid.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../uuid/dist/bin/uuid" $args - } else { - & "$basedir/node$exe" "$basedir/../uuid/dist/bin/uuid" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../uuid/dist/bin/uuid" $args - } else { - & "node$exe" "$basedir/../uuid/dist/bin/uuid" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/node_modules/.bin/yaml b/node_modules/.bin/yaml deleted file mode 100644 index c68b081..0000000 --- a/node_modules/.bin/yaml +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) - if command -v cygpath > /dev/null 2>&1; then - basedir=`cygpath -w "$basedir"` - fi - ;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../yaml/bin.mjs" "$@" -else - exec node "$basedir/../yaml/bin.mjs" "$@" -fi diff --git a/node_modules/.bin/yaml.cmd b/node_modules/.bin/yaml.cmd deleted file mode 100644 index f76090f..0000000 --- a/node_modules/.bin/yaml.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\yaml\bin.mjs" %* diff --git a/node_modules/.bin/yaml.ps1 b/node_modules/.bin/yaml.ps1 deleted file mode 100644 index 6820582..0000000 --- a/node_modules/.bin/yaml.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../yaml/bin.mjs" $args - } else { - & "$basedir/node$exe" "$basedir/../yaml/bin.mjs" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../yaml/bin.mjs" $args - } else { - & "node$exe" "$basedir/../yaml/bin.mjs" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json deleted file mode 100644 index 967ccfb..0000000 --- a/node_modules/.package-lock.json +++ /dev/null @@ -1,369 +0,0 @@ -{ - "name": "bot-france-travail", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "node_modules/@discordjs/builders": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-1.9.0.tgz", - "integrity": "sha512-0zx8DePNVvQibh5ly5kCEei5wtPBIUbSoE9n+91Rlladz4tgtFbJ36PZMxxZrTEOQ7AHMZ/b0crT/0fCy6FTKg==", - "license": "Apache-2.0", - "dependencies": { - "@discordjs/formatters": "^0.5.0", - "@discordjs/util": "^1.1.1", - "@sapphire/shapeshift": "^4.0.0", - "discord-api-types": "0.37.97", - "fast-deep-equal": "^3.1.3", - "ts-mixer": "^6.0.4", - "tslib": "^2.6.3" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/discordjs/discord.js?sponsor" - } - }, - "node_modules/@discordjs/builders/node_modules/discord-api-types": { - "version": "0.37.97", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.97.tgz", - "integrity": "sha512-No1BXPcVkyVD4ZVmbNgDKaBoqgeQ+FJpzZ8wqHkfmBnTZig1FcH3iPPersiK1TUIAzgClh2IvOuVUYfcWLQAOA==", - "license": "MIT" - }, - "node_modules/@discordjs/collection": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-1.5.3.tgz", - "integrity": "sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ==", - "license": "Apache-2.0", - "engines": { - "node": ">=16.11.0" - } - }, - "node_modules/@discordjs/formatters": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@discordjs/formatters/-/formatters-0.5.0.tgz", - "integrity": "sha512-98b3i+Y19RFq1Xke4NkVY46x8KjJQjldHUuEbCqMvp1F5Iq9HgnGpu91jOi/Ufazhty32eRsKnnzS8n4c+L93g==", - "license": "Apache-2.0", - "dependencies": { - "discord-api-types": "0.37.97" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/discordjs/discord.js?sponsor" - } - }, - "node_modules/@discordjs/formatters/node_modules/discord-api-types": { - "version": "0.37.97", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.97.tgz", - "integrity": "sha512-No1BXPcVkyVD4ZVmbNgDKaBoqgeQ+FJpzZ8wqHkfmBnTZig1FcH3iPPersiK1TUIAzgClh2IvOuVUYfcWLQAOA==", - "license": "MIT" - }, - "node_modules/@discordjs/rest": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-2.4.0.tgz", - "integrity": "sha512-Xb2irDqNcq+O8F0/k/NaDp7+t091p+acb51iA4bCKfIn+WFWd6HrNvcsSbMMxIR9NjcMZS6NReTKygqiQN+ntw==", - "license": "Apache-2.0", - "dependencies": { - "@discordjs/collection": "^2.1.1", - "@discordjs/util": "^1.1.1", - "@sapphire/async-queue": "^1.5.3", - "@sapphire/snowflake": "^3.5.3", - "@vladfrangu/async_event_emitter": "^2.4.6", - "discord-api-types": "0.37.97", - "magic-bytes.js": "^1.10.0", - "tslib": "^2.6.3", - "undici": "6.19.8" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/discordjs/discord.js?sponsor" - } - }, - "node_modules/@discordjs/rest/node_modules/@discordjs/collection": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-2.1.1.tgz", - "integrity": "sha512-LiSusze9Tc7qF03sLCujF5iZp7K+vRNEDBZ86FT9aQAv3vxMLihUvKvpsCWiQ2DJq1tVckopKm1rxomgNUc9hg==", - "license": "Apache-2.0", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/discordjs/discord.js?sponsor" - } - }, - "node_modules/@discordjs/rest/node_modules/discord-api-types": { - "version": "0.37.97", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.97.tgz", - "integrity": "sha512-No1BXPcVkyVD4ZVmbNgDKaBoqgeQ+FJpzZ8wqHkfmBnTZig1FcH3iPPersiK1TUIAzgClh2IvOuVUYfcWLQAOA==", - "license": "MIT" - }, - "node_modules/@discordjs/util": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@discordjs/util/-/util-1.1.1.tgz", - "integrity": "sha512-eddz6UnOBEB1oITPinyrB2Pttej49M9FZQY8NxgEvc3tq6ZICZ19m70RsmzRdDHk80O9NoYN/25AqJl8vPVf/g==", - "license": "Apache-2.0", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/discordjs/discord.js?sponsor" - } - }, - "node_modules/@discordjs/ws": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@discordjs/ws/-/ws-1.1.1.tgz", - "integrity": "sha512-PZ+vLpxGCRtmr2RMkqh8Zp+BenUaJqlS6xhgWKEZcgC/vfHLEzpHtKkB0sl3nZWpwtcKk6YWy+pU3okL2I97FA==", - "license": "Apache-2.0", - "dependencies": { - "@discordjs/collection": "^2.1.0", - "@discordjs/rest": "^2.3.0", - "@discordjs/util": "^1.1.0", - "@sapphire/async-queue": "^1.5.2", - "@types/ws": "^8.5.10", - "@vladfrangu/async_event_emitter": "^2.2.4", - "discord-api-types": "0.37.83", - "tslib": "^2.6.2", - "ws": "^8.16.0" - }, - "engines": { - "node": ">=16.11.0" - }, - "funding": { - "url": "https://github.com/discordjs/discord.js?sponsor" - } - }, - "node_modules/@discordjs/ws/node_modules/@discordjs/collection": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-2.1.1.tgz", - "integrity": "sha512-LiSusze9Tc7qF03sLCujF5iZp7K+vRNEDBZ86FT9aQAv3vxMLihUvKvpsCWiQ2DJq1tVckopKm1rxomgNUc9hg==", - "license": "Apache-2.0", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/discordjs/discord.js?sponsor" - } - }, - "node_modules/@discordjs/ws/node_modules/discord-api-types": { - "version": "0.37.83", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.83.tgz", - "integrity": "sha512-urGGYeWtWNYMKnYlZnOnDHm8fVRffQs3U0SpE8RHeiuLKb/u92APS8HoQnPTFbnXmY1vVnXjXO4dOxcAn3J+DA==", - "license": "MIT" - }, - "node_modules/@sapphire/async-queue": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.5.4.tgz", - "integrity": "sha512-id65RxAx34DCk8KAVTPWwcephJSkStiS9M15F87+zvK2gK47wf7yeRIo8WiuKeXQS6bsyo/uQ/t0QW1cLmSb+A==", - "license": "MIT", - "engines": { - "node": ">=v14.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@sapphire/shapeshift": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-4.0.0.tgz", - "integrity": "sha512-d9dUmWVA7MMiKobL3VpLF8P2aeanRTu6ypG2OIaEv/ZHH/SUQ2iHOVyi5wAPjQ+HmnMuL0whK9ez8I/raWbtIg==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=v16" - } - }, - "node_modules/@sapphire/snowflake": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.5.3.tgz", - "integrity": "sha512-jjmJywLAFoWeBi1W7994zZyiNWPIiqRRNAmSERxyg93xRGzNYvGjlZ0gR6x0F4gPRi2+0O6S71kOZYyr3cxaIQ==", - "license": "MIT", - "engines": { - "node": ">=v14.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@types/node": { - "version": "22.8.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.8.7.tgz", - "integrity": "sha512-LidcG+2UeYIWcMuMUpBKOnryBWG/rnmOHQR5apjn8myTQcx3rinFRn7DcIFhMnS0PPFSC6OafdIKEad0lj6U0Q==", - "license": "MIT", - "dependencies": { - "undici-types": "~6.19.8" - } - }, - "node_modules/@types/ws": { - "version": "8.5.13", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz", - "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@vladfrangu/async_event_emitter": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/@vladfrangu/async_event_emitter/-/async_event_emitter-2.4.6.tgz", - "integrity": "sha512-RaI5qZo6D2CVS6sTHFKg1v5Ohq/+Bo2LZ5gzUEwZ/WkHhwtGTCB/sVLw8ijOkAUxasZ+WshN/Rzj4ywsABJ5ZA==", - "license": "MIT", - "engines": { - "node": ">=v14.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/discord-api-types": { - "version": "0.37.100", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.100.tgz", - "integrity": "sha512-a8zvUI0GYYwDtScfRd/TtaNBDTXwP5DiDVX7K5OmE+DRT57gBqKnwtOC5Ol8z0mRW8KQfETIgiB8U0YZ9NXiCA==", - "license": "MIT" - }, - "node_modules/discord.js": { - "version": "14.16.3", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-14.16.3.tgz", - "integrity": "sha512-EPCWE9OkA9DnFFNrO7Kl1WHHDYFXu3CNVFJg63bfU7hVtjZGyhShwZtSBImINQRWxWP2tgo2XI+QhdXx28r0aA==", - "license": "Apache-2.0", - "dependencies": { - "@discordjs/builders": "^1.9.0", - "@discordjs/collection": "1.5.3", - "@discordjs/formatters": "^0.5.0", - "@discordjs/rest": "^2.4.0", - "@discordjs/util": "^1.1.1", - "@discordjs/ws": "1.1.1", - "@sapphire/snowflake": "3.5.3", - "discord-api-types": "0.37.100", - "fast-deep-equal": "3.1.3", - "lodash.snakecase": "4.1.1", - "tslib": "^2.6.3", - "undici": "6.19.8" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/discordjs/discord.js?sponsor" - } - }, - "node_modules/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT" - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "license": "MIT" - }, - "node_modules/lodash.snakecase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", - "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", - "license": "MIT" - }, - "node_modules/magic-bytes.js": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/magic-bytes.js/-/magic-bytes.js-1.10.0.tgz", - "integrity": "sha512-/k20Lg2q8LE5xiaaSkMXk4sfvI+9EGEykFS4b0CHHGWqDYU0bGUFSwchNOMA56D7TCs9GwVTkqe9als1/ns8UQ==", - "license": "MIT" - }, - "node_modules/node-cron": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/node-cron/-/node-cron-3.0.3.tgz", - "integrity": "sha512-dOal67//nohNgYWb+nWmg5dkFdIwDm8EpeGYMekPMrngV3637lqnX0lbUcCtgibHTz6SEz7DAIjKvKDFYCnO1A==", - "license": "ISC", - "dependencies": { - "uuid": "8.3.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/ts-mixer": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.4.tgz", - "integrity": "sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==", - "license": "MIT" - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/undici": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.19.8.tgz", - "integrity": "sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==", - "license": "MIT", - "engines": { - "node": ">=18.17" - } - }, - "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "license": "MIT" - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/yaml": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.0.tgz", - "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==", - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - } - } -} diff --git a/node_modules/@discordjs/builders/LICENSE b/node_modules/@discordjs/builders/LICENSE deleted file mode 100644 index cbe9c65..0000000 --- a/node_modules/@discordjs/builders/LICENSE +++ /dev/null @@ -1,191 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - Copyright 2021 Noel Buechler - Copyright 2021 Vlad Frangu - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/node_modules/@discordjs/builders/README.md b/node_modules/@discordjs/builders/README.md deleted file mode 100644 index 08d2509..0000000 --- a/node_modules/@discordjs/builders/README.md +++ /dev/null @@ -1,72 +0,0 @@ -
-
-

- discord.js -

-
-

- Discord server - npm version - npm downloads - Build status - Code coverage -

-

- Vercel - Cloudflare Workers -

-
- -## About - -`@discordjs/builders` is a utility package for easily building Discord API payloads. - -## Installation - -**Node.js 18 or newer is required.** - -```sh -npm install @discordjs/builders -yarn add @discordjs/builders -pnpm add @discordjs/builders -``` - -## Examples - -You can find examples of how to use the builders in the [Slash Command Builders][example] examples. - -## Links - -- [Website][website] ([source][website-source]) -- [Documentation][documentation] -- [Guide][guide] ([source][guide-source]) - Also see the v13 to v14 [Update Guide][guide-update], which includes updated and removed items from the library. -- [discord.js Discord server][discord] -- [Discord API Discord server][discord-api] -- [GitHub][source] -- [npm][npm] -- [Related libraries][related-libs] - -## Contributing - -Before creating an issue, please ensure that it hasn't already been reported/suggested, and double-check the -[documentation][documentation]. -See [the contribution guide][contributing] if you'd like to submit a PR. - -## Help - -If you don't understand something in the documentation, you are experiencing problems, or you just need a gentle nudge in the right direction, please don't hesitate to join our official [discord.js Server][discord]. - -[example]: https://github.com/discordjs/discord.js/blob/main/packages/builders/docs/examples/Slash%20Command%20Builders.md -[website]: https://discord.js.org -[website-source]: https://github.com/discordjs/discord.js/tree/main/apps/website -[documentation]: https://discord.js.org/docs/packages/builders/stable -[guide]: https://discordjs.guide/ -[guide-source]: https://github.com/discordjs/guide -[guide-update]: https://discordjs.guide/additional-info/changes-in-v14.html -[discord]: https://discord.gg/djs -[discord-api]: https://discord.gg/discord-api -[source]: https://github.com/discordjs/discord.js/tree/main/packages/builders -[npm]: https://www.npmjs.com/package/@discordjs/builders -[related-libs]: https://discord.com/developers/docs/topics/community-resources#libraries -[contributing]: https://github.com/discordjs/discord.js/blob/main/.github/CONTRIBUTING.md diff --git a/node_modules/@discordjs/builders/dist/index.d.mts b/node_modules/@discordjs/builders/dist/index.d.mts deleted file mode 100644 index b70e947..0000000 --- a/node_modules/@discordjs/builders/dist/index.d.mts +++ /dev/null @@ -1,2043 +0,0 @@ -import * as _sapphire_shapeshift from '@sapphire/shapeshift'; -import { APIEmbedField, APIEmbedAuthor, APIEmbedFooter, APIEmbedImage, APIEmbed, APISelectMenuOption, APIMessageComponentEmoji, ButtonStyle, ChannelType, APIActionRowComponent, APIActionRowComponentTypes, APIBaseComponent, ComponentType, APIButtonComponent, Snowflake, APISelectMenuComponent, APIChannelSelectComponent, APIMentionableSelectComponent, APISelectMenuDefaultValue, SelectMenuDefaultValueType, APIRoleSelectComponent, APIStringSelectComponent, APIUserSelectComponent, APITextInputComponent, TextInputStyle, APIMessageActionRowComponent, APIModalActionRowComponent, APIModalComponent, APIMessageComponent, APIModalInteractionResponseCallbackData, LocalizationMap, LocaleString, InteractionContextType, Permissions, ApplicationIntegrationType, RESTPostAPIChatInputApplicationCommandsJSONBody, ApplicationCommandOptionType, APIApplicationCommandBasicOption, APIApplicationCommandAttachmentOption, APIApplicationCommandBooleanOption, APIApplicationCommandChannelOption, APIApplicationCommandOptionChoice, APIApplicationCommandIntegerOption, APIApplicationCommandMentionableOption, APIApplicationCommandNumberOption, APIApplicationCommandRoleOption, APIApplicationCommandStringOption, APIApplicationCommandUserOption, APIApplicationCommandSubcommandGroupOption, APIApplicationCommandSubcommandOption, APIApplicationCommandOption, Locale, ApplicationCommandType, RESTPostAPIContextMenuApplicationCommandsJSONBody } from 'discord-api-types/v10'; -export * from '@discordjs/formatters'; -import { JSONEncodable, Equatable } from '@discordjs/util'; - -declare const fieldNamePredicate: _sapphire_shapeshift.StringValidator; -declare const fieldValuePredicate: _sapphire_shapeshift.StringValidator; -declare const fieldInlinePredicate: _sapphire_shapeshift.UnionValidator; -declare const embedFieldPredicate: _sapphire_shapeshift.ObjectValidator<{ - name: string; - value: string; - inline: boolean | undefined; -}, _sapphire_shapeshift.UndefinedToOptional<{ - name: string; - value: string; - inline: boolean | undefined; -}>>; -declare const embedFieldsArrayPredicate: _sapphire_shapeshift.ArrayValidator<_sapphire_shapeshift.UndefinedToOptional<{ - name: string; - value: string; - inline: boolean | undefined; -}>[], _sapphire_shapeshift.UndefinedToOptional<{ - name: string; - value: string; - inline: boolean | undefined; -}>>; -declare const fieldLengthPredicate: _sapphire_shapeshift.NumberValidator; -declare function validateFieldLength(amountAdding: number, fields?: APIEmbedField[]): void; -declare const authorNamePredicate: _sapphire_shapeshift.UnionValidator; -declare const imageURLPredicate: _sapphire_shapeshift.UnionValidator; -declare const urlPredicate: _sapphire_shapeshift.UnionValidator; -declare const embedAuthorPredicate: _sapphire_shapeshift.ObjectValidator<{ - name: string | null; - iconURL: string | null | undefined; - url: string | null | undefined; -}, _sapphire_shapeshift.UndefinedToOptional<{ - name: string | null; - iconURL: string | null | undefined; - url: string | null | undefined; -}>>; -declare const RGBPredicate: _sapphire_shapeshift.NumberValidator; -declare const colorPredicate: _sapphire_shapeshift.UnionValidator; -declare const descriptionPredicate: _sapphire_shapeshift.UnionValidator; -declare const footerTextPredicate: _sapphire_shapeshift.UnionValidator; -declare const embedFooterPredicate: _sapphire_shapeshift.ObjectValidator<{ - text: string | null; - iconURL: string | null | undefined; -}, _sapphire_shapeshift.UndefinedToOptional<{ - text: string | null; - iconURL: string | null | undefined; -}>>; -declare const timestampPredicate: _sapphire_shapeshift.UnionValidator; -declare const titlePredicate: _sapphire_shapeshift.UnionValidator; - -declare const Assertions$5_RGBPredicate: typeof RGBPredicate; -declare const Assertions$5_authorNamePredicate: typeof authorNamePredicate; -declare const Assertions$5_colorPredicate: typeof colorPredicate; -declare const Assertions$5_descriptionPredicate: typeof descriptionPredicate; -declare const Assertions$5_embedAuthorPredicate: typeof embedAuthorPredicate; -declare const Assertions$5_embedFieldPredicate: typeof embedFieldPredicate; -declare const Assertions$5_embedFieldsArrayPredicate: typeof embedFieldsArrayPredicate; -declare const Assertions$5_embedFooterPredicate: typeof embedFooterPredicate; -declare const Assertions$5_fieldInlinePredicate: typeof fieldInlinePredicate; -declare const Assertions$5_fieldLengthPredicate: typeof fieldLengthPredicate; -declare const Assertions$5_fieldNamePredicate: typeof fieldNamePredicate; -declare const Assertions$5_fieldValuePredicate: typeof fieldValuePredicate; -declare const Assertions$5_footerTextPredicate: typeof footerTextPredicate; -declare const Assertions$5_imageURLPredicate: typeof imageURLPredicate; -declare const Assertions$5_timestampPredicate: typeof timestampPredicate; -declare const Assertions$5_titlePredicate: typeof titlePredicate; -declare const Assertions$5_urlPredicate: typeof urlPredicate; -declare const Assertions$5_validateFieldLength: typeof validateFieldLength; -declare namespace Assertions$5 { - export { Assertions$5_RGBPredicate as RGBPredicate, Assertions$5_authorNamePredicate as authorNamePredicate, Assertions$5_colorPredicate as colorPredicate, Assertions$5_descriptionPredicate as descriptionPredicate, Assertions$5_embedAuthorPredicate as embedAuthorPredicate, Assertions$5_embedFieldPredicate as embedFieldPredicate, Assertions$5_embedFieldsArrayPredicate as embedFieldsArrayPredicate, Assertions$5_embedFooterPredicate as embedFooterPredicate, Assertions$5_fieldInlinePredicate as fieldInlinePredicate, Assertions$5_fieldLengthPredicate as fieldLengthPredicate, Assertions$5_fieldNamePredicate as fieldNamePredicate, Assertions$5_fieldValuePredicate as fieldValuePredicate, Assertions$5_footerTextPredicate as footerTextPredicate, Assertions$5_imageURLPredicate as imageURLPredicate, Assertions$5_timestampPredicate as timestampPredicate, Assertions$5_titlePredicate as titlePredicate, Assertions$5_urlPredicate as urlPredicate, Assertions$5_validateFieldLength as validateFieldLength }; -} - -/** - * Normalizes data that is a rest parameter or an array into an array with a depth of 1. - * - * @typeParam ItemType - The data that must satisfy {@link RestOrArray}. - * @param arr - The (possibly variadic) data to normalize - */ -declare function normalizeArray(arr: RestOrArray): ItemType[]; -/** - * Represents data that may be an array or came from a rest parameter. - * - * @remarks - * This type is used throughout builders to ensure both an array and variadic arguments - * may be used. It is normalized with {@link normalizeArray}. - */ -type RestOrArray = Type[] | [Type[]]; - -/** - * A tuple satisfying the RGB color model. - * - * @see {@link https://developer.mozilla.org/docs/Glossary/RGB} - */ -type RGBTuple = [red: number, green: number, blue: number]; -/** - * The base icon data typically used in payloads. - */ -interface IconData { - /** - * The URL of the icon. - */ - iconURL?: string; - /** - * The proxy URL of the icon. - */ - proxyIconURL?: string; -} -/** - * Represents the author data of an embed. - */ -interface EmbedAuthorData extends IconData, Omit { -} -/** - * Represents the author options of an embed. - */ -interface EmbedAuthorOptions extends Omit { -} -/** - * Represents the footer data of an embed. - */ -interface EmbedFooterData extends IconData, Omit { -} -/** - * Represents the footer options of an embed. - */ -interface EmbedFooterOptions extends Omit { -} -/** - * Represents the image data of an embed. - */ -interface EmbedImageData extends Omit { - /** - * The proxy URL for the image. - */ - proxyURL?: string; -} -/** - * A builder that creates API-compatible JSON data for embeds. - */ -declare class EmbedBuilder { - /** - * The API data associated with this embed. - */ - readonly data: APIEmbed; - /** - * Creates a new embed from API data. - * - * @param data - The API data to create this embed with - */ - constructor(data?: APIEmbed); - /** - * Appends fields to the embed. - * - * @remarks - * This method accepts either an array of fields or a variable number of field parameters. - * The maximum amount of fields that can be added is 25. - * @example - * Using an array: - * ```ts - * const fields: APIEmbedField[] = ...; - * const embed = new EmbedBuilder() - * .addFields(fields); - * ``` - * @example - * Using rest parameters (variadic): - * ```ts - * const embed = new EmbedBuilder() - * .addFields( - * { name: 'Field 1', value: 'Value 1' }, - * { name: 'Field 2', value: 'Value 2' }, - * ); - * ``` - * @param fields - The fields to add - */ - addFields(...fields: RestOrArray): this; - /** - * Removes, replaces, or inserts fields for this embed. - * - * @remarks - * This method behaves similarly - * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. - * The maximum amount of fields that can be added is 25. - * - * It's useful for modifying and adjusting order of the already-existing fields of an embed. - * @example - * Remove the first field: - * ```ts - * embed.spliceFields(0, 1); - * ``` - * @example - * Remove the first n fields: - * ```ts - * const n = 4; - * embed.spliceFields(0, n); - * ``` - * @example - * Remove the last field: - * ```ts - * embed.spliceFields(-1, 1); - * ``` - * @param index - The index to start at - * @param deleteCount - The number of fields to remove - * @param fields - The replacing field objects - */ - spliceFields(index: number, deleteCount: number, ...fields: APIEmbedField[]): this; - /** - * Sets the fields for this embed. - * - * @remarks - * This method is an alias for {@link EmbedBuilder.spliceFields}. More specifically, - * it splices the entire array of fields, replacing them with the provided fields. - * - * You can set a maximum of 25 fields. - * @param fields - The fields to set - */ - setFields(...fields: RestOrArray): this; - /** - * Sets the author of this embed. - * - * @param options - The options to use - */ - setAuthor(options: EmbedAuthorOptions | null): this; - /** - * Sets the color of this embed. - * - * @param color - The color to use - */ - setColor(color: RGBTuple | number | null): this; - /** - * Sets the description of this embed. - * - * @param description - The description to use - */ - setDescription(description: string | null): this; - /** - * Sets the footer of this embed. - * - * @param options - The footer to use - */ - setFooter(options: EmbedFooterOptions | null): this; - /** - * Sets the image of this embed. - * - * @param url - The image URL to use - */ - setImage(url: string | null): this; - /** - * Sets the thumbnail of this embed. - * - * @param url - The thumbnail URL to use - */ - setThumbnail(url: string | null): this; - /** - * Sets the timestamp of this embed. - * - * @param timestamp - The timestamp or date to use - */ - setTimestamp(timestamp?: Date | number | null): this; - /** - * Sets the title for this embed. - * - * @param title - The title to use - */ - setTitle(title: string | null): this; - /** - * Sets the URL of this embed. - * - * @param url - The URL to use - */ - setURL(url: string | null): this; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON(): APIEmbed; -} - -/** - * A builder that creates API-compatible JSON data for string select menu options. - */ -declare class StringSelectMenuOptionBuilder implements JSONEncodable { - data: Partial; - /** - * Creates a new string select menu option from API data. - * - * @param data - The API data to create this string select menu option with - * @example - * Creating a string select menu option from an API data object: - * ```ts - * const selectMenuOption = new SelectMenuOptionBuilder({ - * label: 'catchy label', - * value: '1', - * }); - * ``` - * @example - * Creating a string select menu option using setters and API data: - * ```ts - * const selectMenuOption = new SelectMenuOptionBuilder({ - * default: true, - * value: '1', - * }) - * .setLabel('woah'); - * ``` - */ - constructor(data?: Partial); - /** - * Sets the label for this option. - * - * @param label - The label to use - */ - setLabel(label: string): this; - /** - * Sets the value for this option. - * - * @param value - The value to use - */ - setValue(value: string): this; - /** - * Sets the description for this option. - * - * @param description - The description to use - */ - setDescription(description: string): this; - /** - * Sets whether this option is selected by default. - * - * @param isDefault - Whether this option is selected by default - */ - setDefault(isDefault?: boolean): this; - /** - * Sets the emoji to display for this option. - * - * @param emoji - The emoji to use - */ - setEmoji(emoji: APIMessageComponentEmoji): this; - /** - * {@inheritDoc BaseSelectMenuBuilder.toJSON} - */ - toJSON(): APISelectMenuOption; -} - -declare const customIdValidator: _sapphire_shapeshift.StringValidator; -declare const emojiValidator: _sapphire_shapeshift.ObjectValidator<{ - name?: string | undefined; - id?: string | undefined; - animated?: boolean | undefined; -}, _sapphire_shapeshift.UndefinedToOptional<{ - name?: string | undefined; - id?: string | undefined; - animated?: boolean | undefined; -}>>; -declare const disabledValidator: _sapphire_shapeshift.BooleanValidator; -declare const buttonLabelValidator: _sapphire_shapeshift.StringValidator; -declare const buttonStyleValidator: _sapphire_shapeshift.NativeEnumValidator; -declare const placeholderValidator$1: _sapphire_shapeshift.StringValidator; -declare const minMaxValidator: _sapphire_shapeshift.NumberValidator; -declare const labelValueDescriptionValidator: _sapphire_shapeshift.StringValidator; -declare const jsonOptionValidator: _sapphire_shapeshift.ObjectValidator<{ - label: string; - value: string; - description: string | undefined; - emoji: _sapphire_shapeshift.UndefinedToOptional<{ - name?: string | undefined; - id?: string | undefined; - animated?: boolean | undefined; - }> | undefined; - default: boolean | undefined; -}, _sapphire_shapeshift.UndefinedToOptional<{ - label: string; - value: string; - description: string | undefined; - emoji: _sapphire_shapeshift.UndefinedToOptional<{ - name?: string | undefined; - id?: string | undefined; - animated?: boolean | undefined; - }> | undefined; - default: boolean | undefined; -}>>; -declare const optionValidator: _sapphire_shapeshift.InstanceValidator; -declare const optionsValidator: _sapphire_shapeshift.ArrayValidator; -declare const optionsLengthValidator: _sapphire_shapeshift.NumberValidator; -declare function validateRequiredSelectMenuParameters(options: StringSelectMenuOptionBuilder[], customId?: string): void; -declare const defaultValidator: _sapphire_shapeshift.BooleanValidator; -declare function validateRequiredSelectMenuOptionParameters(label?: string, value?: string): void; -declare const channelTypesValidator: _sapphire_shapeshift.ArrayValidator; -declare const urlValidator: _sapphire_shapeshift.StringValidator; -declare function validateRequiredButtonParameters(style?: ButtonStyle, label?: string, emoji?: APIMessageComponentEmoji, customId?: string, skuId?: string, url?: string): void; - -declare const Assertions$4_buttonLabelValidator: typeof buttonLabelValidator; -declare const Assertions$4_buttonStyleValidator: typeof buttonStyleValidator; -declare const Assertions$4_channelTypesValidator: typeof channelTypesValidator; -declare const Assertions$4_customIdValidator: typeof customIdValidator; -declare const Assertions$4_defaultValidator: typeof defaultValidator; -declare const Assertions$4_disabledValidator: typeof disabledValidator; -declare const Assertions$4_emojiValidator: typeof emojiValidator; -declare const Assertions$4_jsonOptionValidator: typeof jsonOptionValidator; -declare const Assertions$4_labelValueDescriptionValidator: typeof labelValueDescriptionValidator; -declare const Assertions$4_minMaxValidator: typeof minMaxValidator; -declare const Assertions$4_optionValidator: typeof optionValidator; -declare const Assertions$4_optionsLengthValidator: typeof optionsLengthValidator; -declare const Assertions$4_optionsValidator: typeof optionsValidator; -declare const Assertions$4_urlValidator: typeof urlValidator; -declare const Assertions$4_validateRequiredButtonParameters: typeof validateRequiredButtonParameters; -declare const Assertions$4_validateRequiredSelectMenuOptionParameters: typeof validateRequiredSelectMenuOptionParameters; -declare const Assertions$4_validateRequiredSelectMenuParameters: typeof validateRequiredSelectMenuParameters; -declare namespace Assertions$4 { - export { Assertions$4_buttonLabelValidator as buttonLabelValidator, Assertions$4_buttonStyleValidator as buttonStyleValidator, Assertions$4_channelTypesValidator as channelTypesValidator, Assertions$4_customIdValidator as customIdValidator, Assertions$4_defaultValidator as defaultValidator, Assertions$4_disabledValidator as disabledValidator, Assertions$4_emojiValidator as emojiValidator, Assertions$4_jsonOptionValidator as jsonOptionValidator, Assertions$4_labelValueDescriptionValidator as labelValueDescriptionValidator, Assertions$4_minMaxValidator as minMaxValidator, Assertions$4_optionValidator as optionValidator, Assertions$4_optionsLengthValidator as optionsLengthValidator, Assertions$4_optionsValidator as optionsValidator, placeholderValidator$1 as placeholderValidator, Assertions$4_urlValidator as urlValidator, Assertions$4_validateRequiredButtonParameters as validateRequiredButtonParameters, Assertions$4_validateRequiredSelectMenuOptionParameters as validateRequiredSelectMenuOptionParameters, Assertions$4_validateRequiredSelectMenuParameters as validateRequiredSelectMenuParameters }; -} - -/** - * Any action row component data represented as an object. - */ -type AnyAPIActionRowComponent = APIActionRowComponent | APIActionRowComponentTypes; -/** - * The base component builder that contains common symbols for all sorts of components. - * - * @typeParam DataType - The type of internal API data that is stored within the component - */ -declare abstract class ComponentBuilder> = APIBaseComponent> implements JSONEncodable { - /** - * The API data associated with this component. - */ - readonly data: Partial; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - abstract toJSON(): AnyAPIActionRowComponent; - /** - * Constructs a new kind of component. - * - * @param data - The data to construct a component out of - */ - constructor(data: Partial); -} - -/** - * A builder that creates API-compatible JSON data for buttons. - */ -declare class ButtonBuilder extends ComponentBuilder { - /** - * Creates a new button from API data. - * - * @param data - The API data to create this button with - * @example - * Creating a button from an API data object: - * ```ts - * const button = new ButtonBuilder({ - * custom_id: 'a cool button', - * style: ButtonStyle.Primary, - * label: 'Click Me', - * emoji: { - * name: 'smile', - * id: '123456789012345678', - * }, - * }); - * ``` - * @example - * Creating a button using setters and API data: - * ```ts - * const button = new ButtonBuilder({ - * style: ButtonStyle.Secondary, - * label: 'Click Me', - * }) - * .setEmoji({ name: '🙂' }) - * .setCustomId('another cool button'); - * ``` - */ - constructor(data?: Partial); - /** - * Sets the style of this button. - * - * @param style - The style to use - */ - setStyle(style: ButtonStyle): this; - /** - * Sets the URL for this button. - * - * @remarks - * This method is only available to buttons using the `Link` button style. - * Only three types of URL schemes are currently supported: `https://`, `http://`, and `discord://`. - * @param url - The URL to use - */ - setURL(url: string): this; - /** - * Sets the custom id for this button. - * - * @remarks - * This method is only applicable to buttons that are not using the `Link` button style. - * @param customId - The custom id to use - */ - setCustomId(customId: string): this; - /** - * Sets the SKU id that represents a purchasable SKU for this button. - * - * @remarks Only available when using premium-style buttons. - * @param skuId - The SKU id to use - */ - setSKUId(skuId: Snowflake): this; - /** - * Sets the emoji to display on this button. - * - * @param emoji - The emoji to use - */ - setEmoji(emoji: APIMessageComponentEmoji): this; - /** - * Sets whether this button is disabled. - * - * @param disabled - Whether to disable this button - */ - setDisabled(disabled?: boolean): this; - /** - * Sets the label for this button. - * - * @param label - The label to use - */ - setLabel(label: string): this; - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON(): APIButtonComponent; -} - -/** - * The base select menu builder that contains common symbols for select menu builders. - * - * @typeParam SelectMenuType - The type of select menu this would be instantiated for. - */ -declare abstract class BaseSelectMenuBuilder extends ComponentBuilder { - /** - * Sets the placeholder for this select menu. - * - * @param placeholder - The placeholder to use - */ - setPlaceholder(placeholder: string): this; - /** - * Sets the minimum values that must be selected in the select menu. - * - * @param minValues - The minimum values that must be selected - */ - setMinValues(minValues: number): this; - /** - * Sets the maximum values that must be selected in the select menu. - * - * @param maxValues - The maximum values that must be selected - */ - setMaxValues(maxValues: number): this; - /** - * Sets the custom id for this select menu. - * - * @param customId - The custom id to use - */ - setCustomId(customId: string): this; - /** - * Sets whether this select menu is disabled. - * - * @param disabled - Whether this select menu is disabled - */ - setDisabled(disabled?: boolean): this; - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON(): SelectMenuType; -} - -/** - * A builder that creates API-compatible JSON data for channel select menus. - */ -declare class ChannelSelectMenuBuilder extends BaseSelectMenuBuilder { - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new ChannelSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new ChannelSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .addChannelTypes(ChannelType.GuildText, ChannelType.GuildAnnouncement) - * .setMinValues(2); - * ``` - */ - constructor(data?: Partial); - /** - * Adds channel types to this select menu. - * - * @param types - The channel types to use - */ - addChannelTypes(...types: RestOrArray): this; - /** - * Sets channel types for this select menu. - * - * @param types - The channel types to use - */ - setChannelTypes(...types: RestOrArray): this; - /** - * Adds default channels to this auto populated select menu. - * - * @param channels - The channels to add - */ - addDefaultChannels(...channels: RestOrArray): this; - /** - * Sets default channels for this auto populated select menu. - * - * @param channels - The channels to set - */ - setDefaultChannels(...channels: RestOrArray): this; - /** - * {@inheritDoc BaseSelectMenuBuilder.toJSON} - */ - toJSON(): APIChannelSelectComponent; -} - -/** - * A builder that creates API-compatible JSON data for mentionable select menus. - */ -declare class MentionableSelectMenuBuilder extends BaseSelectMenuBuilder { - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new MentionableSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new MentionableSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1); - * ``` - */ - constructor(data?: Partial); - /** - * Adds default roles to this auto populated select menu. - * - * @param roles - The roles to add - */ - addDefaultRoles(...roles: RestOrArray): this; - /** - * Adds default users to this auto populated select menu. - * - * @param users - The users to add - */ - addDefaultUsers(...users: RestOrArray): this; - /** - * Adds default values to this auto populated select menu. - * - * @param values - The values to add - */ - addDefaultValues(...values: RestOrArray | APISelectMenuDefaultValue>): this; - /** - * Sets default values for this auto populated select menu. - * - * @param values - The values to set - */ - setDefaultValues(...values: RestOrArray | APISelectMenuDefaultValue>): this; -} - -/** - * A builder that creates API-compatible JSON data for role select menus. - */ -declare class RoleSelectMenuBuilder extends BaseSelectMenuBuilder { - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new RoleSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new RoleSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1); - * ``` - */ - constructor(data?: Partial); - /** - * Adds default roles to this auto populated select menu. - * - * @param roles - The roles to add - */ - addDefaultRoles(...roles: RestOrArray): this; - /** - * Sets default roles for this auto populated select menu. - * - * @param roles - The roles to set - */ - setDefaultRoles(...roles: RestOrArray): this; -} - -/** - * A builder that creates API-compatible JSON data for string select menus. - */ -declare class StringSelectMenuBuilder extends BaseSelectMenuBuilder { - /** - * The options within this select menu. - */ - readonly options: StringSelectMenuOptionBuilder[]; - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new StringSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * options: [ - * { label: 'option 1', value: '1' }, - * { label: 'option 2', value: '2' }, - * { label: 'option 3', value: '3' }, - * ], - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new StringSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1) - * .addOptions({ - * label: 'Catchy', - * value: 'catch', - * }); - * ``` - */ - constructor(data?: Partial); - /** - * Adds options to this select menu. - * - * @param options - The options to add - */ - addOptions(...options: RestOrArray): this; - /** - * Sets the options for this select menu. - * - * @param options - The options to set - */ - setOptions(...options: RestOrArray): this; - /** - * Removes, replaces, or inserts options for this select menu. - * - * @remarks - * This method behaves similarly - * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice | Array.prototype.splice()}. - * It's useful for modifying and adjusting the order of existing options. - * @example - * Remove the first option: - * ```ts - * selectMenu.spliceOptions(0, 1); - * ``` - * @example - * Remove the first n option: - * ```ts - * const n = 4; - * selectMenu.spliceOptions(0, n); - * ``` - * @example - * Remove the last option: - * ```ts - * selectMenu.spliceOptions(-1, 1); - * ``` - * @param index - The index to start at - * @param deleteCount - The number of options to remove - * @param options - The replacing option objects or builders - */ - spliceOptions(index: number, deleteCount: number, ...options: RestOrArray): this; - /** - * {@inheritDoc BaseSelectMenuBuilder.toJSON} - */ - toJSON(): APIStringSelectComponent; -} - -/** - * A builder that creates API-compatible JSON data for user select menus. - */ -declare class UserSelectMenuBuilder extends BaseSelectMenuBuilder { - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new UserSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new UserSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1); - * ``` - */ - constructor(data?: Partial); - /** - * Adds default users to this auto populated select menu. - * - * @param users - The users to add - */ - addDefaultUsers(...users: RestOrArray): this; - /** - * Sets default users for this auto populated select menu. - * - * @param users - The users to set - */ - setDefaultUsers(...users: RestOrArray): this; -} - -/** - * A builder that creates API-compatible JSON data for text inputs. - */ -declare class TextInputBuilder extends ComponentBuilder implements Equatable> { - /** - * Creates a new text input from API data. - * - * @param data - The API data to create this text input with - * @example - * Creating a text input from an API data object: - * ```ts - * const textInput = new TextInputBuilder({ - * custom_id: 'a cool text input', - * label: 'Type something', - * style: TextInputStyle.Short, - * }); - * ``` - * @example - * Creating a text input using setters and API data: - * ```ts - * const textInput = new TextInputBuilder({ - * label: 'Type something else', - * }) - * .setCustomId('woah') - * .setStyle(TextInputStyle.Paragraph); - * ``` - */ - constructor(data?: APITextInputComponent & { - type?: ComponentType.TextInput; - }); - /** - * Sets the custom id for this text input. - * - * @param customId - The custom id to use - */ - setCustomId(customId: string): this; - /** - * Sets the label for this text input. - * - * @param label - The label to use - */ - setLabel(label: string): this; - /** - * Sets the style for this text input. - * - * @param style - The style to use - */ - setStyle(style: TextInputStyle): this; - /** - * Sets the minimum length of text for this text input. - * - * @param minLength - The minimum length of text for this text input - */ - setMinLength(minLength: number): this; - /** - * Sets the maximum length of text for this text input. - * - * @param maxLength - The maximum length of text for this text input - */ - setMaxLength(maxLength: number): this; - /** - * Sets the placeholder for this text input. - * - * @param placeholder - The placeholder to use - */ - setPlaceholder(placeholder: string): this; - /** - * Sets the value for this text input. - * - * @param value - The value to use - */ - setValue(value: string): this; - /** - * Sets whether this text input is required. - * - * @param required - Whether this text input is required - */ - setRequired(required?: boolean): this; - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON(): APITextInputComponent; - /** - * Whether this is equal to another structure. - */ - equals(other: APITextInputComponent | JSONEncodable): boolean; -} - -/** - * The builders that may be used for messages. - */ -type MessageComponentBuilder = ActionRowBuilder | MessageActionRowComponentBuilder; -/** - * The builders that may be used for modals. - */ -type ModalComponentBuilder = ActionRowBuilder | ModalActionRowComponentBuilder; -/** - * The builders that may be used within an action row for messages. - */ -type MessageActionRowComponentBuilder = ButtonBuilder | ChannelSelectMenuBuilder | MentionableSelectMenuBuilder | RoleSelectMenuBuilder | StringSelectMenuBuilder | UserSelectMenuBuilder; -/** - * The builders that may be used within an action row for modals. - */ -type ModalActionRowComponentBuilder = TextInputBuilder; -/** - * Any builder. - */ -type AnyComponentBuilder = MessageActionRowComponentBuilder | ModalActionRowComponentBuilder; -/** - * A builder that creates API-compatible JSON data for action rows. - * - * @typeParam ComponentType - The types of components this action row holds - */ -declare class ActionRowBuilder extends ComponentBuilder> { - /** - * The components within this action row. - */ - readonly components: ComponentType[]; - /** - * Creates a new action row from API data. - * - * @param data - The API data to create this action row with - * @example - * Creating an action row from an API data object: - * ```ts - * const actionRow = new ActionRowBuilder({ - * components: [ - * { - * custom_id: "custom id", - * label: "Type something", - * style: TextInputStyle.Short, - * type: ComponentType.TextInput, - * }, - * ], - * }); - * ``` - * @example - * Creating an action row using setters and API data: - * ```ts - * const actionRow = new ActionRowBuilder({ - * components: [ - * { - * custom_id: "custom id", - * label: "Click me", - * style: ButtonStyle.Primary, - * type: ComponentType.Button, - * }, - * ], - * }) - * .addComponents(button2, button3); - * ``` - */ - constructor({ components, ...data }?: Partial>); - /** - * Adds components to this action row. - * - * @param components - The components to add - */ - addComponents(...components: RestOrArray): this; - /** - * Sets components for this action row. - * - * @param components - The components to set - */ - setComponents(...components: RestOrArray): this; - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON(): APIActionRowComponent>; -} - -/** - * Components here are mapped to their respective builder. - */ -interface MappedComponentTypes { - /** - * The action row component type is associated with an {@link ActionRowBuilder}. - */ - [ComponentType.ActionRow]: ActionRowBuilder; - /** - * The button component type is associated with a {@link ButtonBuilder}. - */ - [ComponentType.Button]: ButtonBuilder; - /** - * The string select component type is associated with a {@link StringSelectMenuBuilder}. - */ - [ComponentType.StringSelect]: StringSelectMenuBuilder; - /** - * The text input component type is associated with a {@link TextInputBuilder}. - */ - [ComponentType.TextInput]: TextInputBuilder; - /** - * The user select component type is associated with a {@link UserSelectMenuBuilder}. - */ - [ComponentType.UserSelect]: UserSelectMenuBuilder; - /** - * The role select component type is associated with a {@link RoleSelectMenuBuilder}. - */ - [ComponentType.RoleSelect]: RoleSelectMenuBuilder; - /** - * The mentionable select component type is associated with a {@link MentionableSelectMenuBuilder}. - */ - [ComponentType.MentionableSelect]: MentionableSelectMenuBuilder; - /** - * The channel select component type is associated with a {@link ChannelSelectMenuBuilder}. - */ - [ComponentType.ChannelSelect]: ChannelSelectMenuBuilder; -} -/** - * Factory for creating components from API data. - * - * @typeParam ComponentType - The type of component to use - * @param data - The API data to transform to a component class - */ -declare function createComponentBuilder(data: (APIModalComponent | APIMessageComponent) & { - type: ComponentType; -}): MappedComponentTypes[ComponentType]; -/** - * Factory for creating components from API data. - * - * @typeParam ComponentBuilder - The type of component to use - * @param data - The API data to transform to a component class - */ -declare function createComponentBuilder(data: ComponentBuilder): ComponentBuilder; - -declare const textInputStyleValidator: _sapphire_shapeshift.NativeEnumValidator; -declare const minLengthValidator: _sapphire_shapeshift.NumberValidator; -declare const maxLengthValidator: _sapphire_shapeshift.NumberValidator; -declare const requiredValidator: _sapphire_shapeshift.BooleanValidator; -declare const valueValidator: _sapphire_shapeshift.StringValidator; -declare const placeholderValidator: _sapphire_shapeshift.StringValidator; -declare const labelValidator: _sapphire_shapeshift.StringValidator; -declare function validateRequiredParameters$3(customId?: string, style?: TextInputStyle, label?: string): void; - -declare const Assertions$3_labelValidator: typeof labelValidator; -declare const Assertions$3_maxLengthValidator: typeof maxLengthValidator; -declare const Assertions$3_minLengthValidator: typeof minLengthValidator; -declare const Assertions$3_placeholderValidator: typeof placeholderValidator; -declare const Assertions$3_requiredValidator: typeof requiredValidator; -declare const Assertions$3_textInputStyleValidator: typeof textInputStyleValidator; -declare const Assertions$3_valueValidator: typeof valueValidator; -declare namespace Assertions$3 { - export { Assertions$3_labelValidator as labelValidator, Assertions$3_maxLengthValidator as maxLengthValidator, Assertions$3_minLengthValidator as minLengthValidator, Assertions$3_placeholderValidator as placeholderValidator, Assertions$3_requiredValidator as requiredValidator, Assertions$3_textInputStyleValidator as textInputStyleValidator, validateRequiredParameters$3 as validateRequiredParameters, Assertions$3_valueValidator as valueValidator }; -} - -/** - * A builder that creates API-compatible JSON data for modals. - */ -declare class ModalBuilder implements JSONEncodable { - /** - * The API data associated with this modal. - */ - readonly data: Partial; - /** - * The components within this modal. - */ - readonly components: ActionRowBuilder[]; - /** - * Creates a new modal from API data. - * - * @param data - The API data to create this modal with - */ - constructor({ components, ...data }?: Partial); - /** - * Sets the title of this modal. - * - * @param title - The title to use - */ - setTitle(title: string): this; - /** - * Sets the custom id of this modal. - * - * @param customId - The custom id to use - */ - setCustomId(customId: string): this; - /** - * Adds components to this modal. - * - * @param components - The components to add - */ - addComponents(...components: RestOrArray | APIActionRowComponent>): this; - /** - * Sets components for this modal. - * - * @param components - The components to set - */ - setComponents(...components: RestOrArray>): this; - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON(): APIModalInteractionResponseCallbackData; -} - -declare const titleValidator: _sapphire_shapeshift.StringValidator; -declare const componentsValidator: _sapphire_shapeshift.ArrayValidator<[ActionRowBuilder, ...ActionRowBuilder[]], ActionRowBuilder>; -declare function validateRequiredParameters$2(customId?: string, title?: string, components?: ActionRowBuilder[]): void; - -declare const Assertions$2_componentsValidator: typeof componentsValidator; -declare const Assertions$2_titleValidator: typeof titleValidator; -declare namespace Assertions$2 { - export { Assertions$2_componentsValidator as componentsValidator, Assertions$2_titleValidator as titleValidator, validateRequiredParameters$2 as validateRequiredParameters }; -} - -/** - * This mixin holds name and description symbols for slash commands. - */ -declare class SharedNameAndDescription { - /** - * The name of this command. - */ - readonly name: string; - /** - * The name localizations of this command. - */ - readonly name_localizations?: LocalizationMap; - /** - * The description of this command. - */ - readonly description: string; - /** - * The description localizations of this command. - */ - readonly description_localizations?: LocalizationMap; - /** - * Sets the name of this command. - * - * @param name - The name to use - */ - setName(name: string): this; - /** - * Sets the description of this command. - * - * @param description - The description to use - */ - setDescription(description: string): this; - /** - * Sets a name localization for this command. - * - * @param locale - The locale to set - * @param localizedName - The localized name for the given `locale` - */ - setNameLocalization(locale: LocaleString, localizedName: string | null): this; - /** - * Sets the name localizations for this command. - * - * @param localizedNames - The object of localized names to set - */ - setNameLocalizations(localizedNames: LocalizationMap | null): this; - /** - * Sets a description localization for this command. - * - * @param locale - The locale to set - * @param localizedDescription - The localized description for the given locale - */ - setDescriptionLocalization(locale: LocaleString, localizedDescription: string | null): this; - /** - * Sets the description localizations for this command. - * - * @param localizedDescriptions - The object of localized descriptions to set - */ - setDescriptionLocalizations(localizedDescriptions: LocalizationMap | null): this; -} - -/** - * This mixin holds symbols that can be shared in slashcommands independent of options or subcommands. - */ -declare class SharedSlashCommand { - readonly name: string; - readonly name_localizations?: LocalizationMap; - readonly description: string; - readonly description_localizations?: LocalizationMap; - readonly options: ToAPIApplicationCommandOptions[]; - readonly contexts?: InteractionContextType[]; - /** - * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. - */ - readonly default_permission: boolean | undefined; - readonly default_member_permissions: Permissions | null | undefined; - /** - * @deprecated Use {@link SharedSlashCommand.contexts} instead. - */ - readonly dm_permission: boolean | undefined; - readonly integration_types?: ApplicationIntegrationType[]; - readonly nsfw: boolean | undefined; - /** - * Sets the contexts of this command. - * - * @param contexts - The contexts - */ - setContexts(...contexts: RestOrArray): this; - /** - * Sets the integration types of this command. - * - * @param integrationTypes - The integration types - */ - setIntegrationTypes(...integrationTypes: RestOrArray): this; - /** - * Sets whether the command is enabled by default when the application is added to a guild. - * - * @remarks - * If set to `false`, you will have to later `PUT` the permissions for this command. - * @param value - Whether or not to enable this command by default - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. - */ - setDefaultPermission(value: boolean): this; - /** - * Sets the default permissions a member should have in order to run the command. - * - * @remarks - * You can set this to `'0'` to disable the command by default. - * @param permissions - The permissions bit field to set - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - */ - setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined): this; - /** - * Sets if the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This method is only for global commands. - * @param enabled - Whether the command should be enabled in direct messages - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - * @deprecated - * Use {@link SharedSlashCommand.setContexts} instead. - */ - setDMPermission(enabled: boolean | null | undefined): this; - /** - * Sets whether this command is NSFW. - * - * @param nsfw - Whether this command is NSFW - */ - setNSFW(nsfw?: boolean): this; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON(): RESTPostAPIChatInputApplicationCommandsJSONBody; -} - -/** - * The base application command option builder that contains common symbols for application command builders. - */ -declare abstract class ApplicationCommandOptionBase extends SharedNameAndDescription { - /** - * The type of this option. - */ - abstract readonly type: ApplicationCommandOptionType; - /** - * Whether this option is required. - * - * @defaultValue `false` - */ - readonly required: boolean; - /** - * Sets whether this option is required. - * - * @param required - Whether this option should be required - */ - setRequired(required: boolean): this; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - abstract toJSON(): APIApplicationCommandBasicOption; - /** - * This method runs required validators on this builder. - */ - protected runRequiredValidations(): void; -} - -/** - * A slash command attachment option. - */ -declare class SlashCommandAttachmentOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Attachment; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandAttachmentOption; -} - -/** - * A slash command boolean option. - */ -declare class SlashCommandBooleanOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Boolean; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandBooleanOption; -} - -/** - * The allowed channel types used for a channel option in a slash command builder. - * - * @privateRemarks This can't be dynamic because const enums are erased at runtime. - * @internal - */ -declare const allowedChannelTypes: readonly [ChannelType.GuildText, ChannelType.GuildVoice, ChannelType.GuildCategory, ChannelType.GuildAnnouncement, ChannelType.AnnouncementThread, ChannelType.PublicThread, ChannelType.PrivateThread, ChannelType.GuildStageVoice, ChannelType.GuildForum, ChannelType.GuildMedia]; -/** - * The type of allowed channel types used for a channel option. - */ -type ApplicationCommandOptionAllowedChannelTypes = (typeof allowedChannelTypes)[number]; -/** - * This mixin holds channel type symbols used for options. - */ -declare class ApplicationCommandOptionChannelTypesMixin { - /** - * The channel types of this option. - */ - readonly channel_types?: ApplicationCommandOptionAllowedChannelTypes[]; - /** - * Adds channel types to this option. - * - * @param channelTypes - The channel types - */ - addChannelTypes(...channelTypes: RestOrArray): this; -} - -/** - * A slash command channel option. - */ -declare class SlashCommandChannelOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Channel; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandChannelOption; -} -interface SlashCommandChannelOption extends ApplicationCommandOptionChannelTypesMixin { -} - -/** - * This mixin holds minimum and maximum symbols used for options. - */ -declare abstract class ApplicationCommandNumericOptionMinMaxValueMixin { - /** - * The maximum value of this option. - */ - readonly max_value?: number; - /** - * The minimum value of this option. - */ - readonly min_value?: number; - /** - * Sets the maximum number value of this option. - * - * @param max - The maximum value this option can be - */ - abstract setMaxValue(max: number): this; - /** - * Sets the minimum number value of this option. - * - * @param min - The minimum value this option can be - */ - abstract setMinValue(min: number): this; -} - -/** - * This mixin holds choices and autocomplete symbols used for options. - */ -declare class ApplicationCommandOptionWithAutocompleteMixin { - /** - * Whether this option utilizes autocomplete. - */ - readonly autocomplete?: boolean; - /** - * The type of this option. - * - * @privateRemarks Since this is present and this is a mixin, this is needed. - */ - readonly type: ApplicationCommandOptionType; - /** - * Whether this option uses autocomplete. - * - * @param autocomplete - Whether this option should use autocomplete - */ - setAutocomplete(autocomplete: boolean): this; -} - -/** - * This mixin holds choices and autocomplete symbols used for options. - */ -declare class ApplicationCommandOptionWithChoicesMixin { - /** - * The choices of this option. - */ - readonly choices?: APIApplicationCommandOptionChoice[]; - /** - * The type of this option. - * - * @privateRemarks Since this is present and this is a mixin, this is needed. - */ - readonly type: ApplicationCommandOptionType; - /** - * Adds multiple choices to this option. - * - * @param choices - The choices to add - */ - addChoices(...choices: RestOrArray>): this; - /** - * Sets multiple choices for this option. - * - * @param choices - The choices to set - */ - setChoices>(...choices: RestOrArray): this; -} - -/** - * A slash command integer option. - */ -declare class SlashCommandIntegerOption extends ApplicationCommandOptionBase implements ApplicationCommandNumericOptionMinMaxValueMixin { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Integer; - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue} - */ - setMaxValue(max: number): this; - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue} - */ - setMinValue(min: number): this; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandIntegerOption; -} -interface SlashCommandIntegerOption extends ApplicationCommandNumericOptionMinMaxValueMixin, ApplicationCommandOptionWithChoicesMixin, ApplicationCommandOptionWithAutocompleteMixin { -} - -/** - * A slash command mentionable option. - */ -declare class SlashCommandMentionableOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Mentionable; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandMentionableOption; -} - -/** - * A slash command number option. - */ -declare class SlashCommandNumberOption extends ApplicationCommandOptionBase implements ApplicationCommandNumericOptionMinMaxValueMixin { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Number; - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue} - */ - setMaxValue(max: number): this; - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue} - */ - setMinValue(min: number): this; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandNumberOption; -} -interface SlashCommandNumberOption extends ApplicationCommandNumericOptionMinMaxValueMixin, ApplicationCommandOptionWithChoicesMixin, ApplicationCommandOptionWithAutocompleteMixin { -} - -/** - * A slash command role option. - */ -declare class SlashCommandRoleOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Role; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandRoleOption; -} - -/** - * A slash command string option. - */ -declare class SlashCommandStringOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.String; - /** - * The maximum length of this option. - */ - readonly max_length?: number; - /** - * The minimum length of this option. - */ - readonly min_length?: number; - /** - * Sets the maximum length of this string option. - * - * @param max - The maximum length this option can be - */ - setMaxLength(max: number): this; - /** - * Sets the minimum length of this string option. - * - * @param min - The minimum length this option can be - */ - setMinLength(min: number): this; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandStringOption; -} -interface SlashCommandStringOption extends ApplicationCommandOptionWithChoicesMixin, ApplicationCommandOptionWithAutocompleteMixin { -} - -/** - * A slash command user option. - */ -declare class SlashCommandUserOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.User; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandUserOption; -} - -/** - * This mixin holds symbols that can be shared in slash command options. - * - * @typeParam TypeAfterAddingOptions - The type this class should return after adding an option. - */ -declare class SharedSlashCommandOptions> { - readonly options: ToAPIApplicationCommandOptions[]; - /** - * Adds a boolean option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addBooleanOption(input: SlashCommandBooleanOption | ((builder: SlashCommandBooleanOption) => SlashCommandBooleanOption)): TypeAfterAddingOptions; - /** - * Adds a user option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addUserOption(input: SlashCommandUserOption | ((builder: SlashCommandUserOption) => SlashCommandUserOption)): TypeAfterAddingOptions; - /** - * Adds a channel option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addChannelOption(input: SlashCommandChannelOption | ((builder: SlashCommandChannelOption) => SlashCommandChannelOption)): TypeAfterAddingOptions; - /** - * Adds a role option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addRoleOption(input: SlashCommandRoleOption | ((builder: SlashCommandRoleOption) => SlashCommandRoleOption)): TypeAfterAddingOptions; - /** - * Adds an attachment option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addAttachmentOption(input: SlashCommandAttachmentOption | ((builder: SlashCommandAttachmentOption) => SlashCommandAttachmentOption)): TypeAfterAddingOptions; - /** - * Adds a mentionable option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addMentionableOption(input: SlashCommandMentionableOption | ((builder: SlashCommandMentionableOption) => SlashCommandMentionableOption)): TypeAfterAddingOptions; - /** - * Adds a string option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addStringOption(input: SlashCommandStringOption | ((builder: SlashCommandStringOption) => SlashCommandStringOption)): TypeAfterAddingOptions; - /** - * Adds an integer option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addIntegerOption(input: SlashCommandIntegerOption | ((builder: SlashCommandIntegerOption) => SlashCommandIntegerOption)): TypeAfterAddingOptions; - /** - * Adds a number option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addNumberOption(input: SlashCommandNumberOption | ((builder: SlashCommandNumberOption) => SlashCommandNumberOption)): TypeAfterAddingOptions; - /** - * Where the actual adding magic happens. ✨ - * - * @param input - The input. What else? - * @param Instance - The instance of whatever is being added - * @internal - */ - private _sharedAddOptionMethod; -} - -/** - * Represents a folder for subcommands. - * - * @see {@link https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups} - */ -declare class SlashCommandSubcommandGroupBuilder implements ToAPIApplicationCommandOptions { - /** - * The name of this subcommand group. - */ - readonly name: string; - /** - * The description of this subcommand group. - */ - readonly description: string; - /** - * The subcommands within this subcommand group. - */ - readonly options: SlashCommandSubcommandBuilder[]; - /** - * Adds a new subcommand to this group. - * - * @param input - A function that returns a subcommand builder or an already built builder - */ - addSubcommand(input: SlashCommandSubcommandBuilder | ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder)): this; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON(): APIApplicationCommandSubcommandGroupOption; -} -interface SlashCommandSubcommandGroupBuilder extends SharedNameAndDescription { -} -/** - * A builder that creates API-compatible JSON data for slash command subcommands. - * - * @see {@link https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups} - */ -declare class SlashCommandSubcommandBuilder implements ToAPIApplicationCommandOptions { - /** - * The name of this subcommand. - */ - readonly name: string; - /** - * The description of this subcommand. - */ - readonly description: string; - /** - * The options within this subcommand. - */ - readonly options: ApplicationCommandOptionBase[]; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON(): APIApplicationCommandSubcommandOption; -} -interface SlashCommandSubcommandBuilder extends SharedNameAndDescription, SharedSlashCommandOptions { -} - -/** - * This mixin holds symbols that can be shared in slash subcommands. - * - * @typeParam TypeAfterAddingSubcommands - The type this class should return after adding a subcommand or subcommand group. - */ -declare class SharedSlashCommandSubcommands> { - readonly options: ToAPIApplicationCommandOptions[]; - /** - * Adds a new subcommand group to this command. - * - * @param input - A function that returns a subcommand group builder or an already built builder - */ - addSubcommandGroup(input: SlashCommandSubcommandGroupBuilder | ((subcommandGroup: SlashCommandSubcommandGroupBuilder) => SlashCommandSubcommandGroupBuilder)): TypeAfterAddingSubcommands; - /** - * Adds a new subcommand to this command. - * - * @param input - A function that returns a subcommand builder or an already built builder - */ - addSubcommand(input: SlashCommandSubcommandBuilder | ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder)): TypeAfterAddingSubcommands; -} - -/** - * A builder that creates API-compatible JSON data for slash commands. - */ -declare class SlashCommandBuilder { - /** - * The name of this command. - */ - readonly name: string; - /** - * The name localizations of this command. - */ - readonly name_localizations?: LocalizationMap; - /** - * The description of this command. - */ - readonly description: string; - /** - * The description localizations of this command. - */ - readonly description_localizations?: LocalizationMap; - /** - * The options of this command. - */ - readonly options: ToAPIApplicationCommandOptions[]; - /** - * The contexts for this command. - */ - readonly contexts?: InteractionContextType[]; - /** - * Whether this command is enabled by default when the application is added to a guild. - * - * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. - */ - readonly default_permission: boolean | undefined; - /** - * The set of permissions represented as a bit set for the command. - */ - readonly default_member_permissions: Permissions | null | undefined; - /** - * Indicates whether the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This property is only for global commands. - * @deprecated - * Use {@link SlashCommandBuilder.contexts} instead. - */ - readonly dm_permission: boolean | undefined; - /** - * The integration types for this command. - */ - readonly integration_types?: ApplicationIntegrationType[]; - /** - * Whether this command is NSFW. - */ - readonly nsfw: boolean | undefined; -} -interface SlashCommandBuilder extends SharedNameAndDescription, SharedSlashCommandOptions, SharedSlashCommandSubcommands, SharedSlashCommand { -} -/** - * An interface specifically for slash command subcommands. - */ -interface SlashCommandSubcommandsOnlyBuilder extends SharedNameAndDescription, SharedSlashCommandSubcommands, SharedSlashCommand { -} -/** - * An interface specifically for slash command options. - */ -interface SlashCommandOptionsOnlyBuilder extends SharedNameAndDescription, SharedSlashCommandOptions, SharedSlashCommand { -} -/** - * An interface that ensures the `toJSON()` call will return something - * that can be serialized into API-compatible data. - */ -interface ToAPIApplicationCommandOptions { - toJSON(): APIApplicationCommandOption; -} - -declare function validateName$1(name: unknown): asserts name is string; -declare function validateDescription(description: unknown): asserts description is string; -declare function validateLocale(locale: unknown): Locale; -declare function validateMaxOptionsLength(options: unknown): asserts options is ToAPIApplicationCommandOptions[]; -declare function validateRequiredParameters$1(name: string, description: string, options: ToAPIApplicationCommandOptions[]): void; -declare function validateDefaultPermission$1(value: unknown): asserts value is boolean; -declare function validateRequired(required: unknown): asserts required is boolean; -declare function validateChoicesLength(amountAdding: number, choices?: APIApplicationCommandOptionChoice[]): void; -declare function assertReturnOfBuilder(input: unknown, ExpectedInstanceOf: new () => ReturnType): asserts input is ReturnType; -declare const localizationMapPredicate: _sapphire_shapeshift.UnionValidator<_sapphire_shapeshift.UndefinedToOptional>> | null | undefined>; -declare function validateLocalizationMap(value: unknown): asserts value is LocalizationMap; -declare function validateDMPermission$1(value: unknown): asserts value is boolean | null | undefined; -declare function validateDefaultMemberPermissions$1(permissions: unknown): string | null | undefined; -declare function validateNSFW(value: unknown): asserts value is boolean; -declare const contextsPredicate$1: _sapphire_shapeshift.ArrayValidator; -declare const integrationTypesPredicate$1: _sapphire_shapeshift.ArrayValidator; - -declare const Assertions$1_assertReturnOfBuilder: typeof assertReturnOfBuilder; -declare const Assertions$1_localizationMapPredicate: typeof localizationMapPredicate; -declare const Assertions$1_validateChoicesLength: typeof validateChoicesLength; -declare const Assertions$1_validateDescription: typeof validateDescription; -declare const Assertions$1_validateLocale: typeof validateLocale; -declare const Assertions$1_validateLocalizationMap: typeof validateLocalizationMap; -declare const Assertions$1_validateMaxOptionsLength: typeof validateMaxOptionsLength; -declare const Assertions$1_validateNSFW: typeof validateNSFW; -declare const Assertions$1_validateRequired: typeof validateRequired; -declare namespace Assertions$1 { - export { Assertions$1_assertReturnOfBuilder as assertReturnOfBuilder, contextsPredicate$1 as contextsPredicate, integrationTypesPredicate$1 as integrationTypesPredicate, Assertions$1_localizationMapPredicate as localizationMapPredicate, Assertions$1_validateChoicesLength as validateChoicesLength, validateDMPermission$1 as validateDMPermission, validateDefaultMemberPermissions$1 as validateDefaultMemberPermissions, validateDefaultPermission$1 as validateDefaultPermission, Assertions$1_validateDescription as validateDescription, Assertions$1_validateLocale as validateLocale, Assertions$1_validateLocalizationMap as validateLocalizationMap, Assertions$1_validateMaxOptionsLength as validateMaxOptionsLength, Assertions$1_validateNSFW as validateNSFW, validateName$1 as validateName, Assertions$1_validateRequired as validateRequired, validateRequiredParameters$1 as validateRequiredParameters }; -} - -/** - * The type a context menu command can be. - */ -type ContextMenuCommandType = ApplicationCommandType.Message | ApplicationCommandType.User; -/** - * A builder that creates API-compatible JSON data for context menu commands. - */ -declare class ContextMenuCommandBuilder { - /** - * The name of this command. - */ - readonly name: string; - /** - * The name localizations of this command. - */ - readonly name_localizations?: LocalizationMap; - /** - * The type of this command. - */ - readonly type: ContextMenuCommandType; - /** - * The contexts for this command. - */ - readonly contexts?: InteractionContextType[]; - /** - * Whether this command is enabled by default when the application is added to a guild. - * - * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead. - */ - readonly default_permission: boolean | undefined; - /** - * The set of permissions represented as a bit set for the command. - */ - readonly default_member_permissions: Permissions | null | undefined; - /** - * Indicates whether the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This property is only for global commands. - * @deprecated - * Use {@link ContextMenuCommandBuilder.contexts} instead. - */ - readonly dm_permission: boolean | undefined; - /** - * The integration types for this command. - */ - readonly integration_types?: ApplicationIntegrationType[]; - /** - * Sets the contexts of this command. - * - * @param contexts - The contexts - */ - setContexts(...contexts: RestOrArray): this; - /** - * Sets integration types of this command. - * - * @param integrationTypes - The integration types - */ - setIntegrationTypes(...integrationTypes: RestOrArray): this; - /** - * Sets the name of this command. - * - * @param name - The name to use - */ - setName(name: string): this; - /** - * Sets the type of this command. - * - * @param type - The type to use - */ - setType(type: ContextMenuCommandType): this; - /** - * Sets whether the command is enabled by default when the application is added to a guild. - * - * @remarks - * If set to `false`, you will have to later `PUT` the permissions for this command. - * @param value - Whether to enable this command by default - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead. - */ - setDefaultPermission(value: boolean): this; - /** - * Sets the default permissions a member should have in order to run this command. - * - * @remarks - * You can set this to `'0'` to disable the command by default. - * @param permissions - The permissions bit field to set - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - */ - setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined): this; - /** - * Sets if the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This method is only for global commands. - * @param enabled - Whether the command should be enabled in direct messages - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - * @deprecated Use {@link ContextMenuCommandBuilder.setContexts} instead. - */ - setDMPermission(enabled: boolean | null | undefined): this; - /** - * Sets a name localization for this command. - * - * @param locale - The locale to set - * @param localizedName - The localized name for the given `locale` - */ - setNameLocalization(locale: LocaleString, localizedName: string | null): this; - /** - * Sets the name localizations for this command. - * - * @param localizedNames - The object of localized names to set - */ - setNameLocalizations(localizedNames: LocalizationMap | null): this; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON(): RESTPostAPIContextMenuApplicationCommandsJSONBody; -} - -declare function validateDefaultPermission(value: unknown): asserts value is boolean; -declare function validateName(name: unknown): asserts name is string; -declare function validateType(type: unknown): asserts type is ContextMenuCommandType; -declare function validateRequiredParameters(name: string, type: number): void; -declare function validateDMPermission(value: unknown): asserts value is boolean | null | undefined; -declare function validateDefaultMemberPermissions(permissions: unknown): string | null | undefined; -declare const contextsPredicate: _sapphire_shapeshift.ArrayValidator; -declare const integrationTypesPredicate: _sapphire_shapeshift.ArrayValidator; - -declare const Assertions_contextsPredicate: typeof contextsPredicate; -declare const Assertions_integrationTypesPredicate: typeof integrationTypesPredicate; -declare const Assertions_validateDMPermission: typeof validateDMPermission; -declare const Assertions_validateDefaultMemberPermissions: typeof validateDefaultMemberPermissions; -declare const Assertions_validateDefaultPermission: typeof validateDefaultPermission; -declare const Assertions_validateName: typeof validateName; -declare const Assertions_validateRequiredParameters: typeof validateRequiredParameters; -declare const Assertions_validateType: typeof validateType; -declare namespace Assertions { - export { Assertions_contextsPredicate as contextsPredicate, Assertions_integrationTypesPredicate as integrationTypesPredicate, Assertions_validateDMPermission as validateDMPermission, Assertions_validateDefaultMemberPermissions as validateDefaultMemberPermissions, Assertions_validateDefaultPermission as validateDefaultPermission, Assertions_validateName as validateName, Assertions_validateRequiredParameters as validateRequiredParameters, Assertions_validateType as validateType }; -} - -/** - * Calculates the length of the embed. - * - * @param data - The embed data to check - */ -declare function embedLength(data: APIEmbed): number; - -/** - * Enables validators. - * - * @returns Whether validation is occurring. - */ -declare function enableValidators(): boolean; -/** - * Disables validators. - * - * @returns Whether validation is occurring. - */ -declare function disableValidators(): boolean; -/** - * Checks whether validation is occurring. - */ -declare function isValidationEnabled(): boolean; - -/** - * The {@link https://github.com/discordjs/discord.js/blob/main/packages/builders#readme | @discordjs/builders} version - * that you are currently using. - * - * @privateRemarks This needs to explicitly be `string` so it is not typed as a "const string" that gets injected by esbuild. - */ -declare const version: string; - -export { ActionRowBuilder, type AnyAPIActionRowComponent, type AnyComponentBuilder, ApplicationCommandNumericOptionMinMaxValueMixin, type ApplicationCommandOptionAllowedChannelTypes, ApplicationCommandOptionBase, ApplicationCommandOptionChannelTypesMixin, ApplicationCommandOptionWithAutocompleteMixin, ApplicationCommandOptionWithChoicesMixin, BaseSelectMenuBuilder, ButtonBuilder, ChannelSelectMenuBuilder, Assertions$4 as ComponentAssertions, ComponentBuilder, Assertions as ContextMenuCommandAssertions, ContextMenuCommandBuilder, type ContextMenuCommandType, Assertions$5 as EmbedAssertions, type EmbedAuthorData, type EmbedAuthorOptions, EmbedBuilder, type EmbedFooterData, type EmbedFooterOptions, type EmbedImageData, type IconData, type MappedComponentTypes, MentionableSelectMenuBuilder, type MessageActionRowComponentBuilder, type MessageComponentBuilder, type ModalActionRowComponentBuilder, Assertions$2 as ModalAssertions, ModalBuilder, type ModalComponentBuilder, type RGBTuple, type RestOrArray, RoleSelectMenuBuilder, StringSelectMenuBuilder as SelectMenuBuilder, StringSelectMenuOptionBuilder as SelectMenuOptionBuilder, SharedNameAndDescription, SharedSlashCommand, SharedSlashCommandOptions, SharedSlashCommandSubcommands, Assertions$1 as SlashCommandAssertions, SlashCommandAttachmentOption, SlashCommandBooleanOption, SlashCommandBuilder, SlashCommandChannelOption, SlashCommandIntegerOption, SlashCommandMentionableOption, SlashCommandNumberOption, type SlashCommandOptionsOnlyBuilder, SlashCommandRoleOption, SlashCommandStringOption, SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder, type SlashCommandSubcommandsOnlyBuilder, SlashCommandUserOption, StringSelectMenuBuilder, StringSelectMenuOptionBuilder, Assertions$3 as TextInputAssertions, TextInputBuilder, type ToAPIApplicationCommandOptions, UserSelectMenuBuilder, createComponentBuilder, disableValidators, embedLength, enableValidators, isValidationEnabled, normalizeArray, version }; diff --git a/node_modules/@discordjs/builders/dist/index.d.ts b/node_modules/@discordjs/builders/dist/index.d.ts deleted file mode 100644 index b70e947..0000000 --- a/node_modules/@discordjs/builders/dist/index.d.ts +++ /dev/null @@ -1,2043 +0,0 @@ -import * as _sapphire_shapeshift from '@sapphire/shapeshift'; -import { APIEmbedField, APIEmbedAuthor, APIEmbedFooter, APIEmbedImage, APIEmbed, APISelectMenuOption, APIMessageComponentEmoji, ButtonStyle, ChannelType, APIActionRowComponent, APIActionRowComponentTypes, APIBaseComponent, ComponentType, APIButtonComponent, Snowflake, APISelectMenuComponent, APIChannelSelectComponent, APIMentionableSelectComponent, APISelectMenuDefaultValue, SelectMenuDefaultValueType, APIRoleSelectComponent, APIStringSelectComponent, APIUserSelectComponent, APITextInputComponent, TextInputStyle, APIMessageActionRowComponent, APIModalActionRowComponent, APIModalComponent, APIMessageComponent, APIModalInteractionResponseCallbackData, LocalizationMap, LocaleString, InteractionContextType, Permissions, ApplicationIntegrationType, RESTPostAPIChatInputApplicationCommandsJSONBody, ApplicationCommandOptionType, APIApplicationCommandBasicOption, APIApplicationCommandAttachmentOption, APIApplicationCommandBooleanOption, APIApplicationCommandChannelOption, APIApplicationCommandOptionChoice, APIApplicationCommandIntegerOption, APIApplicationCommandMentionableOption, APIApplicationCommandNumberOption, APIApplicationCommandRoleOption, APIApplicationCommandStringOption, APIApplicationCommandUserOption, APIApplicationCommandSubcommandGroupOption, APIApplicationCommandSubcommandOption, APIApplicationCommandOption, Locale, ApplicationCommandType, RESTPostAPIContextMenuApplicationCommandsJSONBody } from 'discord-api-types/v10'; -export * from '@discordjs/formatters'; -import { JSONEncodable, Equatable } from '@discordjs/util'; - -declare const fieldNamePredicate: _sapphire_shapeshift.StringValidator; -declare const fieldValuePredicate: _sapphire_shapeshift.StringValidator; -declare const fieldInlinePredicate: _sapphire_shapeshift.UnionValidator; -declare const embedFieldPredicate: _sapphire_shapeshift.ObjectValidator<{ - name: string; - value: string; - inline: boolean | undefined; -}, _sapphire_shapeshift.UndefinedToOptional<{ - name: string; - value: string; - inline: boolean | undefined; -}>>; -declare const embedFieldsArrayPredicate: _sapphire_shapeshift.ArrayValidator<_sapphire_shapeshift.UndefinedToOptional<{ - name: string; - value: string; - inline: boolean | undefined; -}>[], _sapphire_shapeshift.UndefinedToOptional<{ - name: string; - value: string; - inline: boolean | undefined; -}>>; -declare const fieldLengthPredicate: _sapphire_shapeshift.NumberValidator; -declare function validateFieldLength(amountAdding: number, fields?: APIEmbedField[]): void; -declare const authorNamePredicate: _sapphire_shapeshift.UnionValidator; -declare const imageURLPredicate: _sapphire_shapeshift.UnionValidator; -declare const urlPredicate: _sapphire_shapeshift.UnionValidator; -declare const embedAuthorPredicate: _sapphire_shapeshift.ObjectValidator<{ - name: string | null; - iconURL: string | null | undefined; - url: string | null | undefined; -}, _sapphire_shapeshift.UndefinedToOptional<{ - name: string | null; - iconURL: string | null | undefined; - url: string | null | undefined; -}>>; -declare const RGBPredicate: _sapphire_shapeshift.NumberValidator; -declare const colorPredicate: _sapphire_shapeshift.UnionValidator; -declare const descriptionPredicate: _sapphire_shapeshift.UnionValidator; -declare const footerTextPredicate: _sapphire_shapeshift.UnionValidator; -declare const embedFooterPredicate: _sapphire_shapeshift.ObjectValidator<{ - text: string | null; - iconURL: string | null | undefined; -}, _sapphire_shapeshift.UndefinedToOptional<{ - text: string | null; - iconURL: string | null | undefined; -}>>; -declare const timestampPredicate: _sapphire_shapeshift.UnionValidator; -declare const titlePredicate: _sapphire_shapeshift.UnionValidator; - -declare const Assertions$5_RGBPredicate: typeof RGBPredicate; -declare const Assertions$5_authorNamePredicate: typeof authorNamePredicate; -declare const Assertions$5_colorPredicate: typeof colorPredicate; -declare const Assertions$5_descriptionPredicate: typeof descriptionPredicate; -declare const Assertions$5_embedAuthorPredicate: typeof embedAuthorPredicate; -declare const Assertions$5_embedFieldPredicate: typeof embedFieldPredicate; -declare const Assertions$5_embedFieldsArrayPredicate: typeof embedFieldsArrayPredicate; -declare const Assertions$5_embedFooterPredicate: typeof embedFooterPredicate; -declare const Assertions$5_fieldInlinePredicate: typeof fieldInlinePredicate; -declare const Assertions$5_fieldLengthPredicate: typeof fieldLengthPredicate; -declare const Assertions$5_fieldNamePredicate: typeof fieldNamePredicate; -declare const Assertions$5_fieldValuePredicate: typeof fieldValuePredicate; -declare const Assertions$5_footerTextPredicate: typeof footerTextPredicate; -declare const Assertions$5_imageURLPredicate: typeof imageURLPredicate; -declare const Assertions$5_timestampPredicate: typeof timestampPredicate; -declare const Assertions$5_titlePredicate: typeof titlePredicate; -declare const Assertions$5_urlPredicate: typeof urlPredicate; -declare const Assertions$5_validateFieldLength: typeof validateFieldLength; -declare namespace Assertions$5 { - export { Assertions$5_RGBPredicate as RGBPredicate, Assertions$5_authorNamePredicate as authorNamePredicate, Assertions$5_colorPredicate as colorPredicate, Assertions$5_descriptionPredicate as descriptionPredicate, Assertions$5_embedAuthorPredicate as embedAuthorPredicate, Assertions$5_embedFieldPredicate as embedFieldPredicate, Assertions$5_embedFieldsArrayPredicate as embedFieldsArrayPredicate, Assertions$5_embedFooterPredicate as embedFooterPredicate, Assertions$5_fieldInlinePredicate as fieldInlinePredicate, Assertions$5_fieldLengthPredicate as fieldLengthPredicate, Assertions$5_fieldNamePredicate as fieldNamePredicate, Assertions$5_fieldValuePredicate as fieldValuePredicate, Assertions$5_footerTextPredicate as footerTextPredicate, Assertions$5_imageURLPredicate as imageURLPredicate, Assertions$5_timestampPredicate as timestampPredicate, Assertions$5_titlePredicate as titlePredicate, Assertions$5_urlPredicate as urlPredicate, Assertions$5_validateFieldLength as validateFieldLength }; -} - -/** - * Normalizes data that is a rest parameter or an array into an array with a depth of 1. - * - * @typeParam ItemType - The data that must satisfy {@link RestOrArray}. - * @param arr - The (possibly variadic) data to normalize - */ -declare function normalizeArray(arr: RestOrArray): ItemType[]; -/** - * Represents data that may be an array or came from a rest parameter. - * - * @remarks - * This type is used throughout builders to ensure both an array and variadic arguments - * may be used. It is normalized with {@link normalizeArray}. - */ -type RestOrArray = Type[] | [Type[]]; - -/** - * A tuple satisfying the RGB color model. - * - * @see {@link https://developer.mozilla.org/docs/Glossary/RGB} - */ -type RGBTuple = [red: number, green: number, blue: number]; -/** - * The base icon data typically used in payloads. - */ -interface IconData { - /** - * The URL of the icon. - */ - iconURL?: string; - /** - * The proxy URL of the icon. - */ - proxyIconURL?: string; -} -/** - * Represents the author data of an embed. - */ -interface EmbedAuthorData extends IconData, Omit { -} -/** - * Represents the author options of an embed. - */ -interface EmbedAuthorOptions extends Omit { -} -/** - * Represents the footer data of an embed. - */ -interface EmbedFooterData extends IconData, Omit { -} -/** - * Represents the footer options of an embed. - */ -interface EmbedFooterOptions extends Omit { -} -/** - * Represents the image data of an embed. - */ -interface EmbedImageData extends Omit { - /** - * The proxy URL for the image. - */ - proxyURL?: string; -} -/** - * A builder that creates API-compatible JSON data for embeds. - */ -declare class EmbedBuilder { - /** - * The API data associated with this embed. - */ - readonly data: APIEmbed; - /** - * Creates a new embed from API data. - * - * @param data - The API data to create this embed with - */ - constructor(data?: APIEmbed); - /** - * Appends fields to the embed. - * - * @remarks - * This method accepts either an array of fields or a variable number of field parameters. - * The maximum amount of fields that can be added is 25. - * @example - * Using an array: - * ```ts - * const fields: APIEmbedField[] = ...; - * const embed = new EmbedBuilder() - * .addFields(fields); - * ``` - * @example - * Using rest parameters (variadic): - * ```ts - * const embed = new EmbedBuilder() - * .addFields( - * { name: 'Field 1', value: 'Value 1' }, - * { name: 'Field 2', value: 'Value 2' }, - * ); - * ``` - * @param fields - The fields to add - */ - addFields(...fields: RestOrArray): this; - /** - * Removes, replaces, or inserts fields for this embed. - * - * @remarks - * This method behaves similarly - * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. - * The maximum amount of fields that can be added is 25. - * - * It's useful for modifying and adjusting order of the already-existing fields of an embed. - * @example - * Remove the first field: - * ```ts - * embed.spliceFields(0, 1); - * ``` - * @example - * Remove the first n fields: - * ```ts - * const n = 4; - * embed.spliceFields(0, n); - * ``` - * @example - * Remove the last field: - * ```ts - * embed.spliceFields(-1, 1); - * ``` - * @param index - The index to start at - * @param deleteCount - The number of fields to remove - * @param fields - The replacing field objects - */ - spliceFields(index: number, deleteCount: number, ...fields: APIEmbedField[]): this; - /** - * Sets the fields for this embed. - * - * @remarks - * This method is an alias for {@link EmbedBuilder.spliceFields}. More specifically, - * it splices the entire array of fields, replacing them with the provided fields. - * - * You can set a maximum of 25 fields. - * @param fields - The fields to set - */ - setFields(...fields: RestOrArray): this; - /** - * Sets the author of this embed. - * - * @param options - The options to use - */ - setAuthor(options: EmbedAuthorOptions | null): this; - /** - * Sets the color of this embed. - * - * @param color - The color to use - */ - setColor(color: RGBTuple | number | null): this; - /** - * Sets the description of this embed. - * - * @param description - The description to use - */ - setDescription(description: string | null): this; - /** - * Sets the footer of this embed. - * - * @param options - The footer to use - */ - setFooter(options: EmbedFooterOptions | null): this; - /** - * Sets the image of this embed. - * - * @param url - The image URL to use - */ - setImage(url: string | null): this; - /** - * Sets the thumbnail of this embed. - * - * @param url - The thumbnail URL to use - */ - setThumbnail(url: string | null): this; - /** - * Sets the timestamp of this embed. - * - * @param timestamp - The timestamp or date to use - */ - setTimestamp(timestamp?: Date | number | null): this; - /** - * Sets the title for this embed. - * - * @param title - The title to use - */ - setTitle(title: string | null): this; - /** - * Sets the URL of this embed. - * - * @param url - The URL to use - */ - setURL(url: string | null): this; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON(): APIEmbed; -} - -/** - * A builder that creates API-compatible JSON data for string select menu options. - */ -declare class StringSelectMenuOptionBuilder implements JSONEncodable { - data: Partial; - /** - * Creates a new string select menu option from API data. - * - * @param data - The API data to create this string select menu option with - * @example - * Creating a string select menu option from an API data object: - * ```ts - * const selectMenuOption = new SelectMenuOptionBuilder({ - * label: 'catchy label', - * value: '1', - * }); - * ``` - * @example - * Creating a string select menu option using setters and API data: - * ```ts - * const selectMenuOption = new SelectMenuOptionBuilder({ - * default: true, - * value: '1', - * }) - * .setLabel('woah'); - * ``` - */ - constructor(data?: Partial); - /** - * Sets the label for this option. - * - * @param label - The label to use - */ - setLabel(label: string): this; - /** - * Sets the value for this option. - * - * @param value - The value to use - */ - setValue(value: string): this; - /** - * Sets the description for this option. - * - * @param description - The description to use - */ - setDescription(description: string): this; - /** - * Sets whether this option is selected by default. - * - * @param isDefault - Whether this option is selected by default - */ - setDefault(isDefault?: boolean): this; - /** - * Sets the emoji to display for this option. - * - * @param emoji - The emoji to use - */ - setEmoji(emoji: APIMessageComponentEmoji): this; - /** - * {@inheritDoc BaseSelectMenuBuilder.toJSON} - */ - toJSON(): APISelectMenuOption; -} - -declare const customIdValidator: _sapphire_shapeshift.StringValidator; -declare const emojiValidator: _sapphire_shapeshift.ObjectValidator<{ - name?: string | undefined; - id?: string | undefined; - animated?: boolean | undefined; -}, _sapphire_shapeshift.UndefinedToOptional<{ - name?: string | undefined; - id?: string | undefined; - animated?: boolean | undefined; -}>>; -declare const disabledValidator: _sapphire_shapeshift.BooleanValidator; -declare const buttonLabelValidator: _sapphire_shapeshift.StringValidator; -declare const buttonStyleValidator: _sapphire_shapeshift.NativeEnumValidator; -declare const placeholderValidator$1: _sapphire_shapeshift.StringValidator; -declare const minMaxValidator: _sapphire_shapeshift.NumberValidator; -declare const labelValueDescriptionValidator: _sapphire_shapeshift.StringValidator; -declare const jsonOptionValidator: _sapphire_shapeshift.ObjectValidator<{ - label: string; - value: string; - description: string | undefined; - emoji: _sapphire_shapeshift.UndefinedToOptional<{ - name?: string | undefined; - id?: string | undefined; - animated?: boolean | undefined; - }> | undefined; - default: boolean | undefined; -}, _sapphire_shapeshift.UndefinedToOptional<{ - label: string; - value: string; - description: string | undefined; - emoji: _sapphire_shapeshift.UndefinedToOptional<{ - name?: string | undefined; - id?: string | undefined; - animated?: boolean | undefined; - }> | undefined; - default: boolean | undefined; -}>>; -declare const optionValidator: _sapphire_shapeshift.InstanceValidator; -declare const optionsValidator: _sapphire_shapeshift.ArrayValidator; -declare const optionsLengthValidator: _sapphire_shapeshift.NumberValidator; -declare function validateRequiredSelectMenuParameters(options: StringSelectMenuOptionBuilder[], customId?: string): void; -declare const defaultValidator: _sapphire_shapeshift.BooleanValidator; -declare function validateRequiredSelectMenuOptionParameters(label?: string, value?: string): void; -declare const channelTypesValidator: _sapphire_shapeshift.ArrayValidator; -declare const urlValidator: _sapphire_shapeshift.StringValidator; -declare function validateRequiredButtonParameters(style?: ButtonStyle, label?: string, emoji?: APIMessageComponentEmoji, customId?: string, skuId?: string, url?: string): void; - -declare const Assertions$4_buttonLabelValidator: typeof buttonLabelValidator; -declare const Assertions$4_buttonStyleValidator: typeof buttonStyleValidator; -declare const Assertions$4_channelTypesValidator: typeof channelTypesValidator; -declare const Assertions$4_customIdValidator: typeof customIdValidator; -declare const Assertions$4_defaultValidator: typeof defaultValidator; -declare const Assertions$4_disabledValidator: typeof disabledValidator; -declare const Assertions$4_emojiValidator: typeof emojiValidator; -declare const Assertions$4_jsonOptionValidator: typeof jsonOptionValidator; -declare const Assertions$4_labelValueDescriptionValidator: typeof labelValueDescriptionValidator; -declare const Assertions$4_minMaxValidator: typeof minMaxValidator; -declare const Assertions$4_optionValidator: typeof optionValidator; -declare const Assertions$4_optionsLengthValidator: typeof optionsLengthValidator; -declare const Assertions$4_optionsValidator: typeof optionsValidator; -declare const Assertions$4_urlValidator: typeof urlValidator; -declare const Assertions$4_validateRequiredButtonParameters: typeof validateRequiredButtonParameters; -declare const Assertions$4_validateRequiredSelectMenuOptionParameters: typeof validateRequiredSelectMenuOptionParameters; -declare const Assertions$4_validateRequiredSelectMenuParameters: typeof validateRequiredSelectMenuParameters; -declare namespace Assertions$4 { - export { Assertions$4_buttonLabelValidator as buttonLabelValidator, Assertions$4_buttonStyleValidator as buttonStyleValidator, Assertions$4_channelTypesValidator as channelTypesValidator, Assertions$4_customIdValidator as customIdValidator, Assertions$4_defaultValidator as defaultValidator, Assertions$4_disabledValidator as disabledValidator, Assertions$4_emojiValidator as emojiValidator, Assertions$4_jsonOptionValidator as jsonOptionValidator, Assertions$4_labelValueDescriptionValidator as labelValueDescriptionValidator, Assertions$4_minMaxValidator as minMaxValidator, Assertions$4_optionValidator as optionValidator, Assertions$4_optionsLengthValidator as optionsLengthValidator, Assertions$4_optionsValidator as optionsValidator, placeholderValidator$1 as placeholderValidator, Assertions$4_urlValidator as urlValidator, Assertions$4_validateRequiredButtonParameters as validateRequiredButtonParameters, Assertions$4_validateRequiredSelectMenuOptionParameters as validateRequiredSelectMenuOptionParameters, Assertions$4_validateRequiredSelectMenuParameters as validateRequiredSelectMenuParameters }; -} - -/** - * Any action row component data represented as an object. - */ -type AnyAPIActionRowComponent = APIActionRowComponent | APIActionRowComponentTypes; -/** - * The base component builder that contains common symbols for all sorts of components. - * - * @typeParam DataType - The type of internal API data that is stored within the component - */ -declare abstract class ComponentBuilder> = APIBaseComponent> implements JSONEncodable { - /** - * The API data associated with this component. - */ - readonly data: Partial; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - abstract toJSON(): AnyAPIActionRowComponent; - /** - * Constructs a new kind of component. - * - * @param data - The data to construct a component out of - */ - constructor(data: Partial); -} - -/** - * A builder that creates API-compatible JSON data for buttons. - */ -declare class ButtonBuilder extends ComponentBuilder { - /** - * Creates a new button from API data. - * - * @param data - The API data to create this button with - * @example - * Creating a button from an API data object: - * ```ts - * const button = new ButtonBuilder({ - * custom_id: 'a cool button', - * style: ButtonStyle.Primary, - * label: 'Click Me', - * emoji: { - * name: 'smile', - * id: '123456789012345678', - * }, - * }); - * ``` - * @example - * Creating a button using setters and API data: - * ```ts - * const button = new ButtonBuilder({ - * style: ButtonStyle.Secondary, - * label: 'Click Me', - * }) - * .setEmoji({ name: '🙂' }) - * .setCustomId('another cool button'); - * ``` - */ - constructor(data?: Partial); - /** - * Sets the style of this button. - * - * @param style - The style to use - */ - setStyle(style: ButtonStyle): this; - /** - * Sets the URL for this button. - * - * @remarks - * This method is only available to buttons using the `Link` button style. - * Only three types of URL schemes are currently supported: `https://`, `http://`, and `discord://`. - * @param url - The URL to use - */ - setURL(url: string): this; - /** - * Sets the custom id for this button. - * - * @remarks - * This method is only applicable to buttons that are not using the `Link` button style. - * @param customId - The custom id to use - */ - setCustomId(customId: string): this; - /** - * Sets the SKU id that represents a purchasable SKU for this button. - * - * @remarks Only available when using premium-style buttons. - * @param skuId - The SKU id to use - */ - setSKUId(skuId: Snowflake): this; - /** - * Sets the emoji to display on this button. - * - * @param emoji - The emoji to use - */ - setEmoji(emoji: APIMessageComponentEmoji): this; - /** - * Sets whether this button is disabled. - * - * @param disabled - Whether to disable this button - */ - setDisabled(disabled?: boolean): this; - /** - * Sets the label for this button. - * - * @param label - The label to use - */ - setLabel(label: string): this; - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON(): APIButtonComponent; -} - -/** - * The base select menu builder that contains common symbols for select menu builders. - * - * @typeParam SelectMenuType - The type of select menu this would be instantiated for. - */ -declare abstract class BaseSelectMenuBuilder extends ComponentBuilder { - /** - * Sets the placeholder for this select menu. - * - * @param placeholder - The placeholder to use - */ - setPlaceholder(placeholder: string): this; - /** - * Sets the minimum values that must be selected in the select menu. - * - * @param minValues - The minimum values that must be selected - */ - setMinValues(minValues: number): this; - /** - * Sets the maximum values that must be selected in the select menu. - * - * @param maxValues - The maximum values that must be selected - */ - setMaxValues(maxValues: number): this; - /** - * Sets the custom id for this select menu. - * - * @param customId - The custom id to use - */ - setCustomId(customId: string): this; - /** - * Sets whether this select menu is disabled. - * - * @param disabled - Whether this select menu is disabled - */ - setDisabled(disabled?: boolean): this; - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON(): SelectMenuType; -} - -/** - * A builder that creates API-compatible JSON data for channel select menus. - */ -declare class ChannelSelectMenuBuilder extends BaseSelectMenuBuilder { - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new ChannelSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new ChannelSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .addChannelTypes(ChannelType.GuildText, ChannelType.GuildAnnouncement) - * .setMinValues(2); - * ``` - */ - constructor(data?: Partial); - /** - * Adds channel types to this select menu. - * - * @param types - The channel types to use - */ - addChannelTypes(...types: RestOrArray): this; - /** - * Sets channel types for this select menu. - * - * @param types - The channel types to use - */ - setChannelTypes(...types: RestOrArray): this; - /** - * Adds default channels to this auto populated select menu. - * - * @param channels - The channels to add - */ - addDefaultChannels(...channels: RestOrArray): this; - /** - * Sets default channels for this auto populated select menu. - * - * @param channels - The channels to set - */ - setDefaultChannels(...channels: RestOrArray): this; - /** - * {@inheritDoc BaseSelectMenuBuilder.toJSON} - */ - toJSON(): APIChannelSelectComponent; -} - -/** - * A builder that creates API-compatible JSON data for mentionable select menus. - */ -declare class MentionableSelectMenuBuilder extends BaseSelectMenuBuilder { - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new MentionableSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new MentionableSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1); - * ``` - */ - constructor(data?: Partial); - /** - * Adds default roles to this auto populated select menu. - * - * @param roles - The roles to add - */ - addDefaultRoles(...roles: RestOrArray): this; - /** - * Adds default users to this auto populated select menu. - * - * @param users - The users to add - */ - addDefaultUsers(...users: RestOrArray): this; - /** - * Adds default values to this auto populated select menu. - * - * @param values - The values to add - */ - addDefaultValues(...values: RestOrArray | APISelectMenuDefaultValue>): this; - /** - * Sets default values for this auto populated select menu. - * - * @param values - The values to set - */ - setDefaultValues(...values: RestOrArray | APISelectMenuDefaultValue>): this; -} - -/** - * A builder that creates API-compatible JSON data for role select menus. - */ -declare class RoleSelectMenuBuilder extends BaseSelectMenuBuilder { - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new RoleSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new RoleSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1); - * ``` - */ - constructor(data?: Partial); - /** - * Adds default roles to this auto populated select menu. - * - * @param roles - The roles to add - */ - addDefaultRoles(...roles: RestOrArray): this; - /** - * Sets default roles for this auto populated select menu. - * - * @param roles - The roles to set - */ - setDefaultRoles(...roles: RestOrArray): this; -} - -/** - * A builder that creates API-compatible JSON data for string select menus. - */ -declare class StringSelectMenuBuilder extends BaseSelectMenuBuilder { - /** - * The options within this select menu. - */ - readonly options: StringSelectMenuOptionBuilder[]; - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new StringSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * options: [ - * { label: 'option 1', value: '1' }, - * { label: 'option 2', value: '2' }, - * { label: 'option 3', value: '3' }, - * ], - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new StringSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1) - * .addOptions({ - * label: 'Catchy', - * value: 'catch', - * }); - * ``` - */ - constructor(data?: Partial); - /** - * Adds options to this select menu. - * - * @param options - The options to add - */ - addOptions(...options: RestOrArray): this; - /** - * Sets the options for this select menu. - * - * @param options - The options to set - */ - setOptions(...options: RestOrArray): this; - /** - * Removes, replaces, or inserts options for this select menu. - * - * @remarks - * This method behaves similarly - * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice | Array.prototype.splice()}. - * It's useful for modifying and adjusting the order of existing options. - * @example - * Remove the first option: - * ```ts - * selectMenu.spliceOptions(0, 1); - * ``` - * @example - * Remove the first n option: - * ```ts - * const n = 4; - * selectMenu.spliceOptions(0, n); - * ``` - * @example - * Remove the last option: - * ```ts - * selectMenu.spliceOptions(-1, 1); - * ``` - * @param index - The index to start at - * @param deleteCount - The number of options to remove - * @param options - The replacing option objects or builders - */ - spliceOptions(index: number, deleteCount: number, ...options: RestOrArray): this; - /** - * {@inheritDoc BaseSelectMenuBuilder.toJSON} - */ - toJSON(): APIStringSelectComponent; -} - -/** - * A builder that creates API-compatible JSON data for user select menus. - */ -declare class UserSelectMenuBuilder extends BaseSelectMenuBuilder { - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new UserSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new UserSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1); - * ``` - */ - constructor(data?: Partial); - /** - * Adds default users to this auto populated select menu. - * - * @param users - The users to add - */ - addDefaultUsers(...users: RestOrArray): this; - /** - * Sets default users for this auto populated select menu. - * - * @param users - The users to set - */ - setDefaultUsers(...users: RestOrArray): this; -} - -/** - * A builder that creates API-compatible JSON data for text inputs. - */ -declare class TextInputBuilder extends ComponentBuilder implements Equatable> { - /** - * Creates a new text input from API data. - * - * @param data - The API data to create this text input with - * @example - * Creating a text input from an API data object: - * ```ts - * const textInput = new TextInputBuilder({ - * custom_id: 'a cool text input', - * label: 'Type something', - * style: TextInputStyle.Short, - * }); - * ``` - * @example - * Creating a text input using setters and API data: - * ```ts - * const textInput = new TextInputBuilder({ - * label: 'Type something else', - * }) - * .setCustomId('woah') - * .setStyle(TextInputStyle.Paragraph); - * ``` - */ - constructor(data?: APITextInputComponent & { - type?: ComponentType.TextInput; - }); - /** - * Sets the custom id for this text input. - * - * @param customId - The custom id to use - */ - setCustomId(customId: string): this; - /** - * Sets the label for this text input. - * - * @param label - The label to use - */ - setLabel(label: string): this; - /** - * Sets the style for this text input. - * - * @param style - The style to use - */ - setStyle(style: TextInputStyle): this; - /** - * Sets the minimum length of text for this text input. - * - * @param minLength - The minimum length of text for this text input - */ - setMinLength(minLength: number): this; - /** - * Sets the maximum length of text for this text input. - * - * @param maxLength - The maximum length of text for this text input - */ - setMaxLength(maxLength: number): this; - /** - * Sets the placeholder for this text input. - * - * @param placeholder - The placeholder to use - */ - setPlaceholder(placeholder: string): this; - /** - * Sets the value for this text input. - * - * @param value - The value to use - */ - setValue(value: string): this; - /** - * Sets whether this text input is required. - * - * @param required - Whether this text input is required - */ - setRequired(required?: boolean): this; - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON(): APITextInputComponent; - /** - * Whether this is equal to another structure. - */ - equals(other: APITextInputComponent | JSONEncodable): boolean; -} - -/** - * The builders that may be used for messages. - */ -type MessageComponentBuilder = ActionRowBuilder | MessageActionRowComponentBuilder; -/** - * The builders that may be used for modals. - */ -type ModalComponentBuilder = ActionRowBuilder | ModalActionRowComponentBuilder; -/** - * The builders that may be used within an action row for messages. - */ -type MessageActionRowComponentBuilder = ButtonBuilder | ChannelSelectMenuBuilder | MentionableSelectMenuBuilder | RoleSelectMenuBuilder | StringSelectMenuBuilder | UserSelectMenuBuilder; -/** - * The builders that may be used within an action row for modals. - */ -type ModalActionRowComponentBuilder = TextInputBuilder; -/** - * Any builder. - */ -type AnyComponentBuilder = MessageActionRowComponentBuilder | ModalActionRowComponentBuilder; -/** - * A builder that creates API-compatible JSON data for action rows. - * - * @typeParam ComponentType - The types of components this action row holds - */ -declare class ActionRowBuilder extends ComponentBuilder> { - /** - * The components within this action row. - */ - readonly components: ComponentType[]; - /** - * Creates a new action row from API data. - * - * @param data - The API data to create this action row with - * @example - * Creating an action row from an API data object: - * ```ts - * const actionRow = new ActionRowBuilder({ - * components: [ - * { - * custom_id: "custom id", - * label: "Type something", - * style: TextInputStyle.Short, - * type: ComponentType.TextInput, - * }, - * ], - * }); - * ``` - * @example - * Creating an action row using setters and API data: - * ```ts - * const actionRow = new ActionRowBuilder({ - * components: [ - * { - * custom_id: "custom id", - * label: "Click me", - * style: ButtonStyle.Primary, - * type: ComponentType.Button, - * }, - * ], - * }) - * .addComponents(button2, button3); - * ``` - */ - constructor({ components, ...data }?: Partial>); - /** - * Adds components to this action row. - * - * @param components - The components to add - */ - addComponents(...components: RestOrArray): this; - /** - * Sets components for this action row. - * - * @param components - The components to set - */ - setComponents(...components: RestOrArray): this; - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON(): APIActionRowComponent>; -} - -/** - * Components here are mapped to their respective builder. - */ -interface MappedComponentTypes { - /** - * The action row component type is associated with an {@link ActionRowBuilder}. - */ - [ComponentType.ActionRow]: ActionRowBuilder; - /** - * The button component type is associated with a {@link ButtonBuilder}. - */ - [ComponentType.Button]: ButtonBuilder; - /** - * The string select component type is associated with a {@link StringSelectMenuBuilder}. - */ - [ComponentType.StringSelect]: StringSelectMenuBuilder; - /** - * The text input component type is associated with a {@link TextInputBuilder}. - */ - [ComponentType.TextInput]: TextInputBuilder; - /** - * The user select component type is associated with a {@link UserSelectMenuBuilder}. - */ - [ComponentType.UserSelect]: UserSelectMenuBuilder; - /** - * The role select component type is associated with a {@link RoleSelectMenuBuilder}. - */ - [ComponentType.RoleSelect]: RoleSelectMenuBuilder; - /** - * The mentionable select component type is associated with a {@link MentionableSelectMenuBuilder}. - */ - [ComponentType.MentionableSelect]: MentionableSelectMenuBuilder; - /** - * The channel select component type is associated with a {@link ChannelSelectMenuBuilder}. - */ - [ComponentType.ChannelSelect]: ChannelSelectMenuBuilder; -} -/** - * Factory for creating components from API data. - * - * @typeParam ComponentType - The type of component to use - * @param data - The API data to transform to a component class - */ -declare function createComponentBuilder(data: (APIModalComponent | APIMessageComponent) & { - type: ComponentType; -}): MappedComponentTypes[ComponentType]; -/** - * Factory for creating components from API data. - * - * @typeParam ComponentBuilder - The type of component to use - * @param data - The API data to transform to a component class - */ -declare function createComponentBuilder(data: ComponentBuilder): ComponentBuilder; - -declare const textInputStyleValidator: _sapphire_shapeshift.NativeEnumValidator; -declare const minLengthValidator: _sapphire_shapeshift.NumberValidator; -declare const maxLengthValidator: _sapphire_shapeshift.NumberValidator; -declare const requiredValidator: _sapphire_shapeshift.BooleanValidator; -declare const valueValidator: _sapphire_shapeshift.StringValidator; -declare const placeholderValidator: _sapphire_shapeshift.StringValidator; -declare const labelValidator: _sapphire_shapeshift.StringValidator; -declare function validateRequiredParameters$3(customId?: string, style?: TextInputStyle, label?: string): void; - -declare const Assertions$3_labelValidator: typeof labelValidator; -declare const Assertions$3_maxLengthValidator: typeof maxLengthValidator; -declare const Assertions$3_minLengthValidator: typeof minLengthValidator; -declare const Assertions$3_placeholderValidator: typeof placeholderValidator; -declare const Assertions$3_requiredValidator: typeof requiredValidator; -declare const Assertions$3_textInputStyleValidator: typeof textInputStyleValidator; -declare const Assertions$3_valueValidator: typeof valueValidator; -declare namespace Assertions$3 { - export { Assertions$3_labelValidator as labelValidator, Assertions$3_maxLengthValidator as maxLengthValidator, Assertions$3_minLengthValidator as minLengthValidator, Assertions$3_placeholderValidator as placeholderValidator, Assertions$3_requiredValidator as requiredValidator, Assertions$3_textInputStyleValidator as textInputStyleValidator, validateRequiredParameters$3 as validateRequiredParameters, Assertions$3_valueValidator as valueValidator }; -} - -/** - * A builder that creates API-compatible JSON data for modals. - */ -declare class ModalBuilder implements JSONEncodable { - /** - * The API data associated with this modal. - */ - readonly data: Partial; - /** - * The components within this modal. - */ - readonly components: ActionRowBuilder[]; - /** - * Creates a new modal from API data. - * - * @param data - The API data to create this modal with - */ - constructor({ components, ...data }?: Partial); - /** - * Sets the title of this modal. - * - * @param title - The title to use - */ - setTitle(title: string): this; - /** - * Sets the custom id of this modal. - * - * @param customId - The custom id to use - */ - setCustomId(customId: string): this; - /** - * Adds components to this modal. - * - * @param components - The components to add - */ - addComponents(...components: RestOrArray | APIActionRowComponent>): this; - /** - * Sets components for this modal. - * - * @param components - The components to set - */ - setComponents(...components: RestOrArray>): this; - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON(): APIModalInteractionResponseCallbackData; -} - -declare const titleValidator: _sapphire_shapeshift.StringValidator; -declare const componentsValidator: _sapphire_shapeshift.ArrayValidator<[ActionRowBuilder, ...ActionRowBuilder[]], ActionRowBuilder>; -declare function validateRequiredParameters$2(customId?: string, title?: string, components?: ActionRowBuilder[]): void; - -declare const Assertions$2_componentsValidator: typeof componentsValidator; -declare const Assertions$2_titleValidator: typeof titleValidator; -declare namespace Assertions$2 { - export { Assertions$2_componentsValidator as componentsValidator, Assertions$2_titleValidator as titleValidator, validateRequiredParameters$2 as validateRequiredParameters }; -} - -/** - * This mixin holds name and description symbols for slash commands. - */ -declare class SharedNameAndDescription { - /** - * The name of this command. - */ - readonly name: string; - /** - * The name localizations of this command. - */ - readonly name_localizations?: LocalizationMap; - /** - * The description of this command. - */ - readonly description: string; - /** - * The description localizations of this command. - */ - readonly description_localizations?: LocalizationMap; - /** - * Sets the name of this command. - * - * @param name - The name to use - */ - setName(name: string): this; - /** - * Sets the description of this command. - * - * @param description - The description to use - */ - setDescription(description: string): this; - /** - * Sets a name localization for this command. - * - * @param locale - The locale to set - * @param localizedName - The localized name for the given `locale` - */ - setNameLocalization(locale: LocaleString, localizedName: string | null): this; - /** - * Sets the name localizations for this command. - * - * @param localizedNames - The object of localized names to set - */ - setNameLocalizations(localizedNames: LocalizationMap | null): this; - /** - * Sets a description localization for this command. - * - * @param locale - The locale to set - * @param localizedDescription - The localized description for the given locale - */ - setDescriptionLocalization(locale: LocaleString, localizedDescription: string | null): this; - /** - * Sets the description localizations for this command. - * - * @param localizedDescriptions - The object of localized descriptions to set - */ - setDescriptionLocalizations(localizedDescriptions: LocalizationMap | null): this; -} - -/** - * This mixin holds symbols that can be shared in slashcommands independent of options or subcommands. - */ -declare class SharedSlashCommand { - readonly name: string; - readonly name_localizations?: LocalizationMap; - readonly description: string; - readonly description_localizations?: LocalizationMap; - readonly options: ToAPIApplicationCommandOptions[]; - readonly contexts?: InteractionContextType[]; - /** - * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. - */ - readonly default_permission: boolean | undefined; - readonly default_member_permissions: Permissions | null | undefined; - /** - * @deprecated Use {@link SharedSlashCommand.contexts} instead. - */ - readonly dm_permission: boolean | undefined; - readonly integration_types?: ApplicationIntegrationType[]; - readonly nsfw: boolean | undefined; - /** - * Sets the contexts of this command. - * - * @param contexts - The contexts - */ - setContexts(...contexts: RestOrArray): this; - /** - * Sets the integration types of this command. - * - * @param integrationTypes - The integration types - */ - setIntegrationTypes(...integrationTypes: RestOrArray): this; - /** - * Sets whether the command is enabled by default when the application is added to a guild. - * - * @remarks - * If set to `false`, you will have to later `PUT` the permissions for this command. - * @param value - Whether or not to enable this command by default - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. - */ - setDefaultPermission(value: boolean): this; - /** - * Sets the default permissions a member should have in order to run the command. - * - * @remarks - * You can set this to `'0'` to disable the command by default. - * @param permissions - The permissions bit field to set - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - */ - setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined): this; - /** - * Sets if the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This method is only for global commands. - * @param enabled - Whether the command should be enabled in direct messages - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - * @deprecated - * Use {@link SharedSlashCommand.setContexts} instead. - */ - setDMPermission(enabled: boolean | null | undefined): this; - /** - * Sets whether this command is NSFW. - * - * @param nsfw - Whether this command is NSFW - */ - setNSFW(nsfw?: boolean): this; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON(): RESTPostAPIChatInputApplicationCommandsJSONBody; -} - -/** - * The base application command option builder that contains common symbols for application command builders. - */ -declare abstract class ApplicationCommandOptionBase extends SharedNameAndDescription { - /** - * The type of this option. - */ - abstract readonly type: ApplicationCommandOptionType; - /** - * Whether this option is required. - * - * @defaultValue `false` - */ - readonly required: boolean; - /** - * Sets whether this option is required. - * - * @param required - Whether this option should be required - */ - setRequired(required: boolean): this; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - abstract toJSON(): APIApplicationCommandBasicOption; - /** - * This method runs required validators on this builder. - */ - protected runRequiredValidations(): void; -} - -/** - * A slash command attachment option. - */ -declare class SlashCommandAttachmentOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Attachment; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandAttachmentOption; -} - -/** - * A slash command boolean option. - */ -declare class SlashCommandBooleanOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Boolean; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandBooleanOption; -} - -/** - * The allowed channel types used for a channel option in a slash command builder. - * - * @privateRemarks This can't be dynamic because const enums are erased at runtime. - * @internal - */ -declare const allowedChannelTypes: readonly [ChannelType.GuildText, ChannelType.GuildVoice, ChannelType.GuildCategory, ChannelType.GuildAnnouncement, ChannelType.AnnouncementThread, ChannelType.PublicThread, ChannelType.PrivateThread, ChannelType.GuildStageVoice, ChannelType.GuildForum, ChannelType.GuildMedia]; -/** - * The type of allowed channel types used for a channel option. - */ -type ApplicationCommandOptionAllowedChannelTypes = (typeof allowedChannelTypes)[number]; -/** - * This mixin holds channel type symbols used for options. - */ -declare class ApplicationCommandOptionChannelTypesMixin { - /** - * The channel types of this option. - */ - readonly channel_types?: ApplicationCommandOptionAllowedChannelTypes[]; - /** - * Adds channel types to this option. - * - * @param channelTypes - The channel types - */ - addChannelTypes(...channelTypes: RestOrArray): this; -} - -/** - * A slash command channel option. - */ -declare class SlashCommandChannelOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Channel; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandChannelOption; -} -interface SlashCommandChannelOption extends ApplicationCommandOptionChannelTypesMixin { -} - -/** - * This mixin holds minimum and maximum symbols used for options. - */ -declare abstract class ApplicationCommandNumericOptionMinMaxValueMixin { - /** - * The maximum value of this option. - */ - readonly max_value?: number; - /** - * The minimum value of this option. - */ - readonly min_value?: number; - /** - * Sets the maximum number value of this option. - * - * @param max - The maximum value this option can be - */ - abstract setMaxValue(max: number): this; - /** - * Sets the minimum number value of this option. - * - * @param min - The minimum value this option can be - */ - abstract setMinValue(min: number): this; -} - -/** - * This mixin holds choices and autocomplete symbols used for options. - */ -declare class ApplicationCommandOptionWithAutocompleteMixin { - /** - * Whether this option utilizes autocomplete. - */ - readonly autocomplete?: boolean; - /** - * The type of this option. - * - * @privateRemarks Since this is present and this is a mixin, this is needed. - */ - readonly type: ApplicationCommandOptionType; - /** - * Whether this option uses autocomplete. - * - * @param autocomplete - Whether this option should use autocomplete - */ - setAutocomplete(autocomplete: boolean): this; -} - -/** - * This mixin holds choices and autocomplete symbols used for options. - */ -declare class ApplicationCommandOptionWithChoicesMixin { - /** - * The choices of this option. - */ - readonly choices?: APIApplicationCommandOptionChoice[]; - /** - * The type of this option. - * - * @privateRemarks Since this is present and this is a mixin, this is needed. - */ - readonly type: ApplicationCommandOptionType; - /** - * Adds multiple choices to this option. - * - * @param choices - The choices to add - */ - addChoices(...choices: RestOrArray>): this; - /** - * Sets multiple choices for this option. - * - * @param choices - The choices to set - */ - setChoices>(...choices: RestOrArray): this; -} - -/** - * A slash command integer option. - */ -declare class SlashCommandIntegerOption extends ApplicationCommandOptionBase implements ApplicationCommandNumericOptionMinMaxValueMixin { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Integer; - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue} - */ - setMaxValue(max: number): this; - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue} - */ - setMinValue(min: number): this; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandIntegerOption; -} -interface SlashCommandIntegerOption extends ApplicationCommandNumericOptionMinMaxValueMixin, ApplicationCommandOptionWithChoicesMixin, ApplicationCommandOptionWithAutocompleteMixin { -} - -/** - * A slash command mentionable option. - */ -declare class SlashCommandMentionableOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Mentionable; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandMentionableOption; -} - -/** - * A slash command number option. - */ -declare class SlashCommandNumberOption extends ApplicationCommandOptionBase implements ApplicationCommandNumericOptionMinMaxValueMixin { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Number; - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue} - */ - setMaxValue(max: number): this; - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue} - */ - setMinValue(min: number): this; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandNumberOption; -} -interface SlashCommandNumberOption extends ApplicationCommandNumericOptionMinMaxValueMixin, ApplicationCommandOptionWithChoicesMixin, ApplicationCommandOptionWithAutocompleteMixin { -} - -/** - * A slash command role option. - */ -declare class SlashCommandRoleOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Role; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandRoleOption; -} - -/** - * A slash command string option. - */ -declare class SlashCommandStringOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.String; - /** - * The maximum length of this option. - */ - readonly max_length?: number; - /** - * The minimum length of this option. - */ - readonly min_length?: number; - /** - * Sets the maximum length of this string option. - * - * @param max - The maximum length this option can be - */ - setMaxLength(max: number): this; - /** - * Sets the minimum length of this string option. - * - * @param min - The minimum length this option can be - */ - setMinLength(min: number): this; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandStringOption; -} -interface SlashCommandStringOption extends ApplicationCommandOptionWithChoicesMixin, ApplicationCommandOptionWithAutocompleteMixin { -} - -/** - * A slash command user option. - */ -declare class SlashCommandUserOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.User; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandUserOption; -} - -/** - * This mixin holds symbols that can be shared in slash command options. - * - * @typeParam TypeAfterAddingOptions - The type this class should return after adding an option. - */ -declare class SharedSlashCommandOptions> { - readonly options: ToAPIApplicationCommandOptions[]; - /** - * Adds a boolean option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addBooleanOption(input: SlashCommandBooleanOption | ((builder: SlashCommandBooleanOption) => SlashCommandBooleanOption)): TypeAfterAddingOptions; - /** - * Adds a user option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addUserOption(input: SlashCommandUserOption | ((builder: SlashCommandUserOption) => SlashCommandUserOption)): TypeAfterAddingOptions; - /** - * Adds a channel option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addChannelOption(input: SlashCommandChannelOption | ((builder: SlashCommandChannelOption) => SlashCommandChannelOption)): TypeAfterAddingOptions; - /** - * Adds a role option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addRoleOption(input: SlashCommandRoleOption | ((builder: SlashCommandRoleOption) => SlashCommandRoleOption)): TypeAfterAddingOptions; - /** - * Adds an attachment option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addAttachmentOption(input: SlashCommandAttachmentOption | ((builder: SlashCommandAttachmentOption) => SlashCommandAttachmentOption)): TypeAfterAddingOptions; - /** - * Adds a mentionable option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addMentionableOption(input: SlashCommandMentionableOption | ((builder: SlashCommandMentionableOption) => SlashCommandMentionableOption)): TypeAfterAddingOptions; - /** - * Adds a string option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addStringOption(input: SlashCommandStringOption | ((builder: SlashCommandStringOption) => SlashCommandStringOption)): TypeAfterAddingOptions; - /** - * Adds an integer option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addIntegerOption(input: SlashCommandIntegerOption | ((builder: SlashCommandIntegerOption) => SlashCommandIntegerOption)): TypeAfterAddingOptions; - /** - * Adds a number option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addNumberOption(input: SlashCommandNumberOption | ((builder: SlashCommandNumberOption) => SlashCommandNumberOption)): TypeAfterAddingOptions; - /** - * Where the actual adding magic happens. ✨ - * - * @param input - The input. What else? - * @param Instance - The instance of whatever is being added - * @internal - */ - private _sharedAddOptionMethod; -} - -/** - * Represents a folder for subcommands. - * - * @see {@link https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups} - */ -declare class SlashCommandSubcommandGroupBuilder implements ToAPIApplicationCommandOptions { - /** - * The name of this subcommand group. - */ - readonly name: string; - /** - * The description of this subcommand group. - */ - readonly description: string; - /** - * The subcommands within this subcommand group. - */ - readonly options: SlashCommandSubcommandBuilder[]; - /** - * Adds a new subcommand to this group. - * - * @param input - A function that returns a subcommand builder or an already built builder - */ - addSubcommand(input: SlashCommandSubcommandBuilder | ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder)): this; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON(): APIApplicationCommandSubcommandGroupOption; -} -interface SlashCommandSubcommandGroupBuilder extends SharedNameAndDescription { -} -/** - * A builder that creates API-compatible JSON data for slash command subcommands. - * - * @see {@link https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups} - */ -declare class SlashCommandSubcommandBuilder implements ToAPIApplicationCommandOptions { - /** - * The name of this subcommand. - */ - readonly name: string; - /** - * The description of this subcommand. - */ - readonly description: string; - /** - * The options within this subcommand. - */ - readonly options: ApplicationCommandOptionBase[]; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON(): APIApplicationCommandSubcommandOption; -} -interface SlashCommandSubcommandBuilder extends SharedNameAndDescription, SharedSlashCommandOptions { -} - -/** - * This mixin holds symbols that can be shared in slash subcommands. - * - * @typeParam TypeAfterAddingSubcommands - The type this class should return after adding a subcommand or subcommand group. - */ -declare class SharedSlashCommandSubcommands> { - readonly options: ToAPIApplicationCommandOptions[]; - /** - * Adds a new subcommand group to this command. - * - * @param input - A function that returns a subcommand group builder or an already built builder - */ - addSubcommandGroup(input: SlashCommandSubcommandGroupBuilder | ((subcommandGroup: SlashCommandSubcommandGroupBuilder) => SlashCommandSubcommandGroupBuilder)): TypeAfterAddingSubcommands; - /** - * Adds a new subcommand to this command. - * - * @param input - A function that returns a subcommand builder or an already built builder - */ - addSubcommand(input: SlashCommandSubcommandBuilder | ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder)): TypeAfterAddingSubcommands; -} - -/** - * A builder that creates API-compatible JSON data for slash commands. - */ -declare class SlashCommandBuilder { - /** - * The name of this command. - */ - readonly name: string; - /** - * The name localizations of this command. - */ - readonly name_localizations?: LocalizationMap; - /** - * The description of this command. - */ - readonly description: string; - /** - * The description localizations of this command. - */ - readonly description_localizations?: LocalizationMap; - /** - * The options of this command. - */ - readonly options: ToAPIApplicationCommandOptions[]; - /** - * The contexts for this command. - */ - readonly contexts?: InteractionContextType[]; - /** - * Whether this command is enabled by default when the application is added to a guild. - * - * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. - */ - readonly default_permission: boolean | undefined; - /** - * The set of permissions represented as a bit set for the command. - */ - readonly default_member_permissions: Permissions | null | undefined; - /** - * Indicates whether the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This property is only for global commands. - * @deprecated - * Use {@link SlashCommandBuilder.contexts} instead. - */ - readonly dm_permission: boolean | undefined; - /** - * The integration types for this command. - */ - readonly integration_types?: ApplicationIntegrationType[]; - /** - * Whether this command is NSFW. - */ - readonly nsfw: boolean | undefined; -} -interface SlashCommandBuilder extends SharedNameAndDescription, SharedSlashCommandOptions, SharedSlashCommandSubcommands, SharedSlashCommand { -} -/** - * An interface specifically for slash command subcommands. - */ -interface SlashCommandSubcommandsOnlyBuilder extends SharedNameAndDescription, SharedSlashCommandSubcommands, SharedSlashCommand { -} -/** - * An interface specifically for slash command options. - */ -interface SlashCommandOptionsOnlyBuilder extends SharedNameAndDescription, SharedSlashCommandOptions, SharedSlashCommand { -} -/** - * An interface that ensures the `toJSON()` call will return something - * that can be serialized into API-compatible data. - */ -interface ToAPIApplicationCommandOptions { - toJSON(): APIApplicationCommandOption; -} - -declare function validateName$1(name: unknown): asserts name is string; -declare function validateDescription(description: unknown): asserts description is string; -declare function validateLocale(locale: unknown): Locale; -declare function validateMaxOptionsLength(options: unknown): asserts options is ToAPIApplicationCommandOptions[]; -declare function validateRequiredParameters$1(name: string, description: string, options: ToAPIApplicationCommandOptions[]): void; -declare function validateDefaultPermission$1(value: unknown): asserts value is boolean; -declare function validateRequired(required: unknown): asserts required is boolean; -declare function validateChoicesLength(amountAdding: number, choices?: APIApplicationCommandOptionChoice[]): void; -declare function assertReturnOfBuilder(input: unknown, ExpectedInstanceOf: new () => ReturnType): asserts input is ReturnType; -declare const localizationMapPredicate: _sapphire_shapeshift.UnionValidator<_sapphire_shapeshift.UndefinedToOptional>> | null | undefined>; -declare function validateLocalizationMap(value: unknown): asserts value is LocalizationMap; -declare function validateDMPermission$1(value: unknown): asserts value is boolean | null | undefined; -declare function validateDefaultMemberPermissions$1(permissions: unknown): string | null | undefined; -declare function validateNSFW(value: unknown): asserts value is boolean; -declare const contextsPredicate$1: _sapphire_shapeshift.ArrayValidator; -declare const integrationTypesPredicate$1: _sapphire_shapeshift.ArrayValidator; - -declare const Assertions$1_assertReturnOfBuilder: typeof assertReturnOfBuilder; -declare const Assertions$1_localizationMapPredicate: typeof localizationMapPredicate; -declare const Assertions$1_validateChoicesLength: typeof validateChoicesLength; -declare const Assertions$1_validateDescription: typeof validateDescription; -declare const Assertions$1_validateLocale: typeof validateLocale; -declare const Assertions$1_validateLocalizationMap: typeof validateLocalizationMap; -declare const Assertions$1_validateMaxOptionsLength: typeof validateMaxOptionsLength; -declare const Assertions$1_validateNSFW: typeof validateNSFW; -declare const Assertions$1_validateRequired: typeof validateRequired; -declare namespace Assertions$1 { - export { Assertions$1_assertReturnOfBuilder as assertReturnOfBuilder, contextsPredicate$1 as contextsPredicate, integrationTypesPredicate$1 as integrationTypesPredicate, Assertions$1_localizationMapPredicate as localizationMapPredicate, Assertions$1_validateChoicesLength as validateChoicesLength, validateDMPermission$1 as validateDMPermission, validateDefaultMemberPermissions$1 as validateDefaultMemberPermissions, validateDefaultPermission$1 as validateDefaultPermission, Assertions$1_validateDescription as validateDescription, Assertions$1_validateLocale as validateLocale, Assertions$1_validateLocalizationMap as validateLocalizationMap, Assertions$1_validateMaxOptionsLength as validateMaxOptionsLength, Assertions$1_validateNSFW as validateNSFW, validateName$1 as validateName, Assertions$1_validateRequired as validateRequired, validateRequiredParameters$1 as validateRequiredParameters }; -} - -/** - * The type a context menu command can be. - */ -type ContextMenuCommandType = ApplicationCommandType.Message | ApplicationCommandType.User; -/** - * A builder that creates API-compatible JSON data for context menu commands. - */ -declare class ContextMenuCommandBuilder { - /** - * The name of this command. - */ - readonly name: string; - /** - * The name localizations of this command. - */ - readonly name_localizations?: LocalizationMap; - /** - * The type of this command. - */ - readonly type: ContextMenuCommandType; - /** - * The contexts for this command. - */ - readonly contexts?: InteractionContextType[]; - /** - * Whether this command is enabled by default when the application is added to a guild. - * - * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead. - */ - readonly default_permission: boolean | undefined; - /** - * The set of permissions represented as a bit set for the command. - */ - readonly default_member_permissions: Permissions | null | undefined; - /** - * Indicates whether the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This property is only for global commands. - * @deprecated - * Use {@link ContextMenuCommandBuilder.contexts} instead. - */ - readonly dm_permission: boolean | undefined; - /** - * The integration types for this command. - */ - readonly integration_types?: ApplicationIntegrationType[]; - /** - * Sets the contexts of this command. - * - * @param contexts - The contexts - */ - setContexts(...contexts: RestOrArray): this; - /** - * Sets integration types of this command. - * - * @param integrationTypes - The integration types - */ - setIntegrationTypes(...integrationTypes: RestOrArray): this; - /** - * Sets the name of this command. - * - * @param name - The name to use - */ - setName(name: string): this; - /** - * Sets the type of this command. - * - * @param type - The type to use - */ - setType(type: ContextMenuCommandType): this; - /** - * Sets whether the command is enabled by default when the application is added to a guild. - * - * @remarks - * If set to `false`, you will have to later `PUT` the permissions for this command. - * @param value - Whether to enable this command by default - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead. - */ - setDefaultPermission(value: boolean): this; - /** - * Sets the default permissions a member should have in order to run this command. - * - * @remarks - * You can set this to `'0'` to disable the command by default. - * @param permissions - The permissions bit field to set - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - */ - setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined): this; - /** - * Sets if the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This method is only for global commands. - * @param enabled - Whether the command should be enabled in direct messages - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - * @deprecated Use {@link ContextMenuCommandBuilder.setContexts} instead. - */ - setDMPermission(enabled: boolean | null | undefined): this; - /** - * Sets a name localization for this command. - * - * @param locale - The locale to set - * @param localizedName - The localized name for the given `locale` - */ - setNameLocalization(locale: LocaleString, localizedName: string | null): this; - /** - * Sets the name localizations for this command. - * - * @param localizedNames - The object of localized names to set - */ - setNameLocalizations(localizedNames: LocalizationMap | null): this; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON(): RESTPostAPIContextMenuApplicationCommandsJSONBody; -} - -declare function validateDefaultPermission(value: unknown): asserts value is boolean; -declare function validateName(name: unknown): asserts name is string; -declare function validateType(type: unknown): asserts type is ContextMenuCommandType; -declare function validateRequiredParameters(name: string, type: number): void; -declare function validateDMPermission(value: unknown): asserts value is boolean | null | undefined; -declare function validateDefaultMemberPermissions(permissions: unknown): string | null | undefined; -declare const contextsPredicate: _sapphire_shapeshift.ArrayValidator; -declare const integrationTypesPredicate: _sapphire_shapeshift.ArrayValidator; - -declare const Assertions_contextsPredicate: typeof contextsPredicate; -declare const Assertions_integrationTypesPredicate: typeof integrationTypesPredicate; -declare const Assertions_validateDMPermission: typeof validateDMPermission; -declare const Assertions_validateDefaultMemberPermissions: typeof validateDefaultMemberPermissions; -declare const Assertions_validateDefaultPermission: typeof validateDefaultPermission; -declare const Assertions_validateName: typeof validateName; -declare const Assertions_validateRequiredParameters: typeof validateRequiredParameters; -declare const Assertions_validateType: typeof validateType; -declare namespace Assertions { - export { Assertions_contextsPredicate as contextsPredicate, Assertions_integrationTypesPredicate as integrationTypesPredicate, Assertions_validateDMPermission as validateDMPermission, Assertions_validateDefaultMemberPermissions as validateDefaultMemberPermissions, Assertions_validateDefaultPermission as validateDefaultPermission, Assertions_validateName as validateName, Assertions_validateRequiredParameters as validateRequiredParameters, Assertions_validateType as validateType }; -} - -/** - * Calculates the length of the embed. - * - * @param data - The embed data to check - */ -declare function embedLength(data: APIEmbed): number; - -/** - * Enables validators. - * - * @returns Whether validation is occurring. - */ -declare function enableValidators(): boolean; -/** - * Disables validators. - * - * @returns Whether validation is occurring. - */ -declare function disableValidators(): boolean; -/** - * Checks whether validation is occurring. - */ -declare function isValidationEnabled(): boolean; - -/** - * The {@link https://github.com/discordjs/discord.js/blob/main/packages/builders#readme | @discordjs/builders} version - * that you are currently using. - * - * @privateRemarks This needs to explicitly be `string` so it is not typed as a "const string" that gets injected by esbuild. - */ -declare const version: string; - -export { ActionRowBuilder, type AnyAPIActionRowComponent, type AnyComponentBuilder, ApplicationCommandNumericOptionMinMaxValueMixin, type ApplicationCommandOptionAllowedChannelTypes, ApplicationCommandOptionBase, ApplicationCommandOptionChannelTypesMixin, ApplicationCommandOptionWithAutocompleteMixin, ApplicationCommandOptionWithChoicesMixin, BaseSelectMenuBuilder, ButtonBuilder, ChannelSelectMenuBuilder, Assertions$4 as ComponentAssertions, ComponentBuilder, Assertions as ContextMenuCommandAssertions, ContextMenuCommandBuilder, type ContextMenuCommandType, Assertions$5 as EmbedAssertions, type EmbedAuthorData, type EmbedAuthorOptions, EmbedBuilder, type EmbedFooterData, type EmbedFooterOptions, type EmbedImageData, type IconData, type MappedComponentTypes, MentionableSelectMenuBuilder, type MessageActionRowComponentBuilder, type MessageComponentBuilder, type ModalActionRowComponentBuilder, Assertions$2 as ModalAssertions, ModalBuilder, type ModalComponentBuilder, type RGBTuple, type RestOrArray, RoleSelectMenuBuilder, StringSelectMenuBuilder as SelectMenuBuilder, StringSelectMenuOptionBuilder as SelectMenuOptionBuilder, SharedNameAndDescription, SharedSlashCommand, SharedSlashCommandOptions, SharedSlashCommandSubcommands, Assertions$1 as SlashCommandAssertions, SlashCommandAttachmentOption, SlashCommandBooleanOption, SlashCommandBuilder, SlashCommandChannelOption, SlashCommandIntegerOption, SlashCommandMentionableOption, SlashCommandNumberOption, type SlashCommandOptionsOnlyBuilder, SlashCommandRoleOption, SlashCommandStringOption, SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder, type SlashCommandSubcommandsOnlyBuilder, SlashCommandUserOption, StringSelectMenuBuilder, StringSelectMenuOptionBuilder, Assertions$3 as TextInputAssertions, TextInputBuilder, type ToAPIApplicationCommandOptions, UserSelectMenuBuilder, createComponentBuilder, disableValidators, embedLength, enableValidators, isValidationEnabled, normalizeArray, version }; diff --git a/node_modules/@discordjs/builders/dist/index.js b/node_modules/@discordjs/builders/dist/index.js deleted file mode 100644 index 25e8240..0000000 --- a/node_modules/@discordjs/builders/dist/index.js +++ /dev/null @@ -1,2916 +0,0 @@ -"use strict"; -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); -var __decorateClass = (decorators, target, key, kind) => { - var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target; - for (var i = decorators.length - 1, decorator; i >= 0; i--) - if (decorator = decorators[i]) - result = (kind ? decorator(target, key, result) : decorator(result)) || result; - if (kind && result) __defProp(target, key, result); - return result; -}; - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - ActionRowBuilder: () => ActionRowBuilder, - ApplicationCommandNumericOptionMinMaxValueMixin: () => ApplicationCommandNumericOptionMinMaxValueMixin, - ApplicationCommandOptionBase: () => ApplicationCommandOptionBase, - ApplicationCommandOptionChannelTypesMixin: () => ApplicationCommandOptionChannelTypesMixin, - ApplicationCommandOptionWithAutocompleteMixin: () => ApplicationCommandOptionWithAutocompleteMixin, - ApplicationCommandOptionWithChoicesMixin: () => ApplicationCommandOptionWithChoicesMixin, - BaseSelectMenuBuilder: () => BaseSelectMenuBuilder, - ButtonBuilder: () => ButtonBuilder, - ChannelSelectMenuBuilder: () => ChannelSelectMenuBuilder, - ComponentAssertions: () => Assertions_exports2, - ComponentBuilder: () => ComponentBuilder, - ContextMenuCommandAssertions: () => Assertions_exports6, - ContextMenuCommandBuilder: () => ContextMenuCommandBuilder, - EmbedAssertions: () => Assertions_exports, - EmbedBuilder: () => EmbedBuilder, - MentionableSelectMenuBuilder: () => MentionableSelectMenuBuilder, - ModalAssertions: () => Assertions_exports4, - ModalBuilder: () => ModalBuilder, - RoleSelectMenuBuilder: () => RoleSelectMenuBuilder, - SelectMenuBuilder: () => StringSelectMenuBuilder, - SelectMenuOptionBuilder: () => StringSelectMenuOptionBuilder, - SharedNameAndDescription: () => SharedNameAndDescription, - SharedSlashCommand: () => SharedSlashCommand, - SharedSlashCommandOptions: () => SharedSlashCommandOptions, - SharedSlashCommandSubcommands: () => SharedSlashCommandSubcommands, - SlashCommandAssertions: () => Assertions_exports5, - SlashCommandAttachmentOption: () => SlashCommandAttachmentOption, - SlashCommandBooleanOption: () => SlashCommandBooleanOption, - SlashCommandBuilder: () => SlashCommandBuilder, - SlashCommandChannelOption: () => SlashCommandChannelOption, - SlashCommandIntegerOption: () => SlashCommandIntegerOption, - SlashCommandMentionableOption: () => SlashCommandMentionableOption, - SlashCommandNumberOption: () => SlashCommandNumberOption, - SlashCommandRoleOption: () => SlashCommandRoleOption, - SlashCommandStringOption: () => SlashCommandStringOption, - SlashCommandSubcommandBuilder: () => SlashCommandSubcommandBuilder, - SlashCommandSubcommandGroupBuilder: () => SlashCommandSubcommandGroupBuilder, - SlashCommandUserOption: () => SlashCommandUserOption, - StringSelectMenuBuilder: () => StringSelectMenuBuilder, - StringSelectMenuOptionBuilder: () => StringSelectMenuOptionBuilder, - TextInputAssertions: () => Assertions_exports3, - TextInputBuilder: () => TextInputBuilder, - UserSelectMenuBuilder: () => UserSelectMenuBuilder, - createComponentBuilder: () => createComponentBuilder, - disableValidators: () => disableValidators, - embedLength: () => embedLength, - enableValidators: () => enableValidators, - isValidationEnabled: () => isValidationEnabled, - normalizeArray: () => normalizeArray, - version: () => version -}); -module.exports = __toCommonJS(src_exports); - -// src/messages/embed/Assertions.ts -var Assertions_exports = {}; -__export(Assertions_exports, { - RGBPredicate: () => RGBPredicate, - authorNamePredicate: () => authorNamePredicate, - colorPredicate: () => colorPredicate, - descriptionPredicate: () => descriptionPredicate, - embedAuthorPredicate: () => embedAuthorPredicate, - embedFieldPredicate: () => embedFieldPredicate, - embedFieldsArrayPredicate: () => embedFieldsArrayPredicate, - embedFooterPredicate: () => embedFooterPredicate, - fieldInlinePredicate: () => fieldInlinePredicate, - fieldLengthPredicate: () => fieldLengthPredicate, - fieldNamePredicate: () => fieldNamePredicate, - fieldValuePredicate: () => fieldValuePredicate, - footerTextPredicate: () => footerTextPredicate, - imageURLPredicate: () => imageURLPredicate, - timestampPredicate: () => timestampPredicate, - titlePredicate: () => titlePredicate, - urlPredicate: () => urlPredicate, - validateFieldLength: () => validateFieldLength -}); -var import_shapeshift = require("@sapphire/shapeshift"); - -// src/util/validation.ts -var validate = true; -function enableValidators() { - return validate = true; -} -__name(enableValidators, "enableValidators"); -function disableValidators() { - return validate = false; -} -__name(disableValidators, "disableValidators"); -function isValidationEnabled() { - return validate; -} -__name(isValidationEnabled, "isValidationEnabled"); - -// src/messages/embed/Assertions.ts -var fieldNamePredicate = import_shapeshift.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(256).setValidationEnabled(isValidationEnabled); -var fieldValuePredicate = import_shapeshift.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(1024).setValidationEnabled(isValidationEnabled); -var fieldInlinePredicate = import_shapeshift.s.boolean().optional(); -var embedFieldPredicate = import_shapeshift.s.object({ - name: fieldNamePredicate, - value: fieldValuePredicate, - inline: fieldInlinePredicate -}).setValidationEnabled(isValidationEnabled); -var embedFieldsArrayPredicate = embedFieldPredicate.array().setValidationEnabled(isValidationEnabled); -var fieldLengthPredicate = import_shapeshift.s.number().lessThanOrEqual(25).setValidationEnabled(isValidationEnabled); -function validateFieldLength(amountAdding, fields) { - fieldLengthPredicate.parse((fields?.length ?? 0) + amountAdding); -} -__name(validateFieldLength, "validateFieldLength"); -var authorNamePredicate = fieldNamePredicate.nullable().setValidationEnabled(isValidationEnabled); -var imageURLPredicate = import_shapeshift.s.string().url({ - allowedProtocols: ["http:", "https:", "attachment:"] -}).nullish().setValidationEnabled(isValidationEnabled); -var urlPredicate = import_shapeshift.s.string().url({ - allowedProtocols: ["http:", "https:"] -}).nullish().setValidationEnabled(isValidationEnabled); -var embedAuthorPredicate = import_shapeshift.s.object({ - name: authorNamePredicate, - iconURL: imageURLPredicate, - url: urlPredicate -}).setValidationEnabled(isValidationEnabled); -var RGBPredicate = import_shapeshift.s.number().int().greaterThanOrEqual(0).lessThanOrEqual(255).setValidationEnabled(isValidationEnabled); -var colorPredicate = import_shapeshift.s.number().int().greaterThanOrEqual(0).lessThanOrEqual(16777215).or(import_shapeshift.s.tuple([RGBPredicate, RGBPredicate, RGBPredicate])).nullable().setValidationEnabled(isValidationEnabled); -var descriptionPredicate = import_shapeshift.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(4096).nullable().setValidationEnabled(isValidationEnabled); -var footerTextPredicate = import_shapeshift.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(2048).nullable().setValidationEnabled(isValidationEnabled); -var embedFooterPredicate = import_shapeshift.s.object({ - text: footerTextPredicate, - iconURL: imageURLPredicate -}).setValidationEnabled(isValidationEnabled); -var timestampPredicate = import_shapeshift.s.union([import_shapeshift.s.number(), import_shapeshift.s.date()]).nullable().setValidationEnabled(isValidationEnabled); -var titlePredicate = fieldNamePredicate.nullable().setValidationEnabled(isValidationEnabled); - -// src/util/normalizeArray.ts -function normalizeArray(arr) { - if (Array.isArray(arr[0])) return [...arr[0]]; - return arr; -} -__name(normalizeArray, "normalizeArray"); - -// src/messages/embed/Embed.ts -var EmbedBuilder = class { - static { - __name(this, "EmbedBuilder"); - } - /** - * The API data associated with this embed. - */ - data; - /** - * Creates a new embed from API data. - * - * @param data - The API data to create this embed with - */ - constructor(data = {}) { - this.data = { ...data }; - if (data.timestamp) this.data.timestamp = new Date(data.timestamp).toISOString(); - } - /** - * Appends fields to the embed. - * - * @remarks - * This method accepts either an array of fields or a variable number of field parameters. - * The maximum amount of fields that can be added is 25. - * @example - * Using an array: - * ```ts - * const fields: APIEmbedField[] = ...; - * const embed = new EmbedBuilder() - * .addFields(fields); - * ``` - * @example - * Using rest parameters (variadic): - * ```ts - * const embed = new EmbedBuilder() - * .addFields( - * { name: 'Field 1', value: 'Value 1' }, - * { name: 'Field 2', value: 'Value 2' }, - * ); - * ``` - * @param fields - The fields to add - */ - addFields(...fields) { - const normalizedFields = normalizeArray(fields); - validateFieldLength(normalizedFields.length, this.data.fields); - embedFieldsArrayPredicate.parse(normalizedFields); - if (this.data.fields) this.data.fields.push(...normalizedFields); - else this.data.fields = normalizedFields; - return this; - } - /** - * Removes, replaces, or inserts fields for this embed. - * - * @remarks - * This method behaves similarly - * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. - * The maximum amount of fields that can be added is 25. - * - * It's useful for modifying and adjusting order of the already-existing fields of an embed. - * @example - * Remove the first field: - * ```ts - * embed.spliceFields(0, 1); - * ``` - * @example - * Remove the first n fields: - * ```ts - * const n = 4; - * embed.spliceFields(0, n); - * ``` - * @example - * Remove the last field: - * ```ts - * embed.spliceFields(-1, 1); - * ``` - * @param index - The index to start at - * @param deleteCount - The number of fields to remove - * @param fields - The replacing field objects - */ - spliceFields(index, deleteCount, ...fields) { - validateFieldLength(fields.length - deleteCount, this.data.fields); - embedFieldsArrayPredicate.parse(fields); - if (this.data.fields) this.data.fields.splice(index, deleteCount, ...fields); - else this.data.fields = fields; - return this; - } - /** - * Sets the fields for this embed. - * - * @remarks - * This method is an alias for {@link EmbedBuilder.spliceFields}. More specifically, - * it splices the entire array of fields, replacing them with the provided fields. - * - * You can set a maximum of 25 fields. - * @param fields - The fields to set - */ - setFields(...fields) { - this.spliceFields(0, this.data.fields?.length ?? 0, ...normalizeArray(fields)); - return this; - } - /** - * Sets the author of this embed. - * - * @param options - The options to use - */ - setAuthor(options) { - if (options === null) { - this.data.author = void 0; - return this; - } - embedAuthorPredicate.parse(options); - this.data.author = { name: options.name, url: options.url, icon_url: options.iconURL }; - return this; - } - /** - * Sets the color of this embed. - * - * @param color - The color to use - */ - setColor(color) { - colorPredicate.parse(color); - if (Array.isArray(color)) { - const [red, green, blue] = color; - this.data.color = (red << 16) + (green << 8) + blue; - return this; - } - this.data.color = color ?? void 0; - return this; - } - /** - * Sets the description of this embed. - * - * @param description - The description to use - */ - setDescription(description) { - descriptionPredicate.parse(description); - this.data.description = description ?? void 0; - return this; - } - /** - * Sets the footer of this embed. - * - * @param options - The footer to use - */ - setFooter(options) { - if (options === null) { - this.data.footer = void 0; - return this; - } - embedFooterPredicate.parse(options); - this.data.footer = { text: options.text, icon_url: options.iconURL }; - return this; - } - /** - * Sets the image of this embed. - * - * @param url - The image URL to use - */ - setImage(url) { - imageURLPredicate.parse(url); - this.data.image = url ? { url } : void 0; - return this; - } - /** - * Sets the thumbnail of this embed. - * - * @param url - The thumbnail URL to use - */ - setThumbnail(url) { - imageURLPredicate.parse(url); - this.data.thumbnail = url ? { url } : void 0; - return this; - } - /** - * Sets the timestamp of this embed. - * - * @param timestamp - The timestamp or date to use - */ - setTimestamp(timestamp = Date.now()) { - timestampPredicate.parse(timestamp); - this.data.timestamp = timestamp ? new Date(timestamp).toISOString() : void 0; - return this; - } - /** - * Sets the title for this embed. - * - * @param title - The title to use - */ - setTitle(title) { - titlePredicate.parse(title); - this.data.title = title ?? void 0; - return this; - } - /** - * Sets the URL of this embed. - * - * @param url - The URL to use - */ - setURL(url) { - urlPredicate.parse(url); - this.data.url = url ?? void 0; - return this; - } - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON() { - return { ...this.data }; - } -}; - -// src/index.ts -__reExport(src_exports, require("@discordjs/formatters"), module.exports); - -// src/components/Assertions.ts -var Assertions_exports2 = {}; -__export(Assertions_exports2, { - buttonLabelValidator: () => buttonLabelValidator, - buttonStyleValidator: () => buttonStyleValidator, - channelTypesValidator: () => channelTypesValidator, - customIdValidator: () => customIdValidator, - defaultValidator: () => defaultValidator, - disabledValidator: () => disabledValidator, - emojiValidator: () => emojiValidator, - jsonOptionValidator: () => jsonOptionValidator, - labelValueDescriptionValidator: () => labelValueDescriptionValidator, - minMaxValidator: () => minMaxValidator, - optionValidator: () => optionValidator, - optionsLengthValidator: () => optionsLengthValidator, - optionsValidator: () => optionsValidator, - placeholderValidator: () => placeholderValidator, - urlValidator: () => urlValidator, - validateRequiredButtonParameters: () => validateRequiredButtonParameters, - validateRequiredSelectMenuOptionParameters: () => validateRequiredSelectMenuOptionParameters, - validateRequiredSelectMenuParameters: () => validateRequiredSelectMenuParameters -}); -var import_shapeshift2 = require("@sapphire/shapeshift"); -var import_v10 = require("discord-api-types/v10"); - -// src/components/selectMenu/StringSelectMenuOption.ts -var StringSelectMenuOptionBuilder = class { - /** - * Creates a new string select menu option from API data. - * - * @param data - The API data to create this string select menu option with - * @example - * Creating a string select menu option from an API data object: - * ```ts - * const selectMenuOption = new SelectMenuOptionBuilder({ - * label: 'catchy label', - * value: '1', - * }); - * ``` - * @example - * Creating a string select menu option using setters and API data: - * ```ts - * const selectMenuOption = new SelectMenuOptionBuilder({ - * default: true, - * value: '1', - * }) - * .setLabel('woah'); - * ``` - */ - constructor(data = {}) { - this.data = data; - } - static { - __name(this, "StringSelectMenuOptionBuilder"); - } - /** - * Sets the label for this option. - * - * @param label - The label to use - */ - setLabel(label) { - this.data.label = labelValueDescriptionValidator.parse(label); - return this; - } - /** - * Sets the value for this option. - * - * @param value - The value to use - */ - setValue(value) { - this.data.value = labelValueDescriptionValidator.parse(value); - return this; - } - /** - * Sets the description for this option. - * - * @param description - The description to use - */ - setDescription(description) { - this.data.description = labelValueDescriptionValidator.parse(description); - return this; - } - /** - * Sets whether this option is selected by default. - * - * @param isDefault - Whether this option is selected by default - */ - setDefault(isDefault = true) { - this.data.default = defaultValidator.parse(isDefault); - return this; - } - /** - * Sets the emoji to display for this option. - * - * @param emoji - The emoji to use - */ - setEmoji(emoji) { - this.data.emoji = emojiValidator.parse(emoji); - return this; - } - /** - * {@inheritDoc BaseSelectMenuBuilder.toJSON} - */ - toJSON() { - validateRequiredSelectMenuOptionParameters(this.data.label, this.data.value); - return { - ...this.data - }; - } -}; - -// src/components/Assertions.ts -var customIdValidator = import_shapeshift2.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled); -var emojiValidator = import_shapeshift2.s.object({ - id: import_shapeshift2.s.string(), - name: import_shapeshift2.s.string(), - animated: import_shapeshift2.s.boolean() -}).partial().strict().setValidationEnabled(isValidationEnabled); -var disabledValidator = import_shapeshift2.s.boolean(); -var buttonLabelValidator = import_shapeshift2.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(80).setValidationEnabled(isValidationEnabled); -var buttonStyleValidator = import_shapeshift2.s.nativeEnum(import_v10.ButtonStyle); -var placeholderValidator = import_shapeshift2.s.string().lengthLessThanOrEqual(150).setValidationEnabled(isValidationEnabled); -var minMaxValidator = import_shapeshift2.s.number().int().greaterThanOrEqual(0).lessThanOrEqual(25).setValidationEnabled(isValidationEnabled); -var labelValueDescriptionValidator = import_shapeshift2.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled); -var jsonOptionValidator = import_shapeshift2.s.object({ - label: labelValueDescriptionValidator, - value: labelValueDescriptionValidator, - description: labelValueDescriptionValidator.optional(), - emoji: emojiValidator.optional(), - default: import_shapeshift2.s.boolean().optional() -}).setValidationEnabled(isValidationEnabled); -var optionValidator = import_shapeshift2.s.instance(StringSelectMenuOptionBuilder).setValidationEnabled(isValidationEnabled); -var optionsValidator = optionValidator.array().lengthGreaterThanOrEqual(0).setValidationEnabled(isValidationEnabled); -var optionsLengthValidator = import_shapeshift2.s.number().int().greaterThanOrEqual(0).lessThanOrEqual(25).setValidationEnabled(isValidationEnabled); -function validateRequiredSelectMenuParameters(options, customId) { - customIdValidator.parse(customId); - optionsValidator.parse(options); -} -__name(validateRequiredSelectMenuParameters, "validateRequiredSelectMenuParameters"); -var defaultValidator = import_shapeshift2.s.boolean(); -function validateRequiredSelectMenuOptionParameters(label, value) { - labelValueDescriptionValidator.parse(label); - labelValueDescriptionValidator.parse(value); -} -__name(validateRequiredSelectMenuOptionParameters, "validateRequiredSelectMenuOptionParameters"); -var channelTypesValidator = import_shapeshift2.s.nativeEnum(import_v10.ChannelType).array().setValidationEnabled(isValidationEnabled); -var urlValidator = import_shapeshift2.s.string().url({ - allowedProtocols: ["http:", "https:", "discord:"] -}).setValidationEnabled(isValidationEnabled); -function validateRequiredButtonParameters(style, label, emoji, customId, skuId, url) { - if (style === import_v10.ButtonStyle.Premium) { - if (!skuId) { - throw new RangeError("Premium buttons must have an SKU id."); - } - if (customId || label || url || emoji) { - throw new RangeError("Premium buttons cannot have a custom id, label, URL, or emoji."); - } - } else { - if (skuId) { - throw new RangeError("Non-premium buttons must not have an SKU id."); - } - if (url && customId) { - throw new RangeError("URL and custom id are mutually exclusive."); - } - if (!label && !emoji) { - throw new RangeError("Non-premium buttons must have a label and/or an emoji."); - } - if (style === import_v10.ButtonStyle.Link) { - if (!url) { - throw new RangeError("Link buttons must have a URL."); - } - } else if (url) { - throw new RangeError("Non-premium and non-link buttons cannot have a URL."); - } - } -} -__name(validateRequiredButtonParameters, "validateRequiredButtonParameters"); - -// src/components/ActionRow.ts -var import_v1011 = require("discord-api-types/v10"); - -// src/components/Component.ts -var ComponentBuilder = class { - static { - __name(this, "ComponentBuilder"); - } - /** - * The API data associated with this component. - */ - data; - /** - * Constructs a new kind of component. - * - * @param data - The data to construct a component out of - */ - constructor(data) { - this.data = data; - } -}; - -// src/components/Components.ts -var import_v1010 = require("discord-api-types/v10"); - -// src/components/button/Button.ts -var import_v102 = require("discord-api-types/v10"); -var ButtonBuilder = class extends ComponentBuilder { - static { - __name(this, "ButtonBuilder"); - } - /** - * Creates a new button from API data. - * - * @param data - The API data to create this button with - * @example - * Creating a button from an API data object: - * ```ts - * const button = new ButtonBuilder({ - * custom_id: 'a cool button', - * style: ButtonStyle.Primary, - * label: 'Click Me', - * emoji: { - * name: 'smile', - * id: '123456789012345678', - * }, - * }); - * ``` - * @example - * Creating a button using setters and API data: - * ```ts - * const button = new ButtonBuilder({ - * style: ButtonStyle.Secondary, - * label: 'Click Me', - * }) - * .setEmoji({ name: '🙂' }) - * .setCustomId('another cool button'); - * ``` - */ - constructor(data) { - super({ type: import_v102.ComponentType.Button, ...data }); - } - /** - * Sets the style of this button. - * - * @param style - The style to use - */ - setStyle(style) { - this.data.style = buttonStyleValidator.parse(style); - return this; - } - /** - * Sets the URL for this button. - * - * @remarks - * This method is only available to buttons using the `Link` button style. - * Only three types of URL schemes are currently supported: `https://`, `http://`, and `discord://`. - * @param url - The URL to use - */ - setURL(url) { - this.data.url = urlValidator.parse(url); - return this; - } - /** - * Sets the custom id for this button. - * - * @remarks - * This method is only applicable to buttons that are not using the `Link` button style. - * @param customId - The custom id to use - */ - setCustomId(customId) { - this.data.custom_id = customIdValidator.parse(customId); - return this; - } - /** - * Sets the SKU id that represents a purchasable SKU for this button. - * - * @remarks Only available when using premium-style buttons. - * @param skuId - The SKU id to use - */ - setSKUId(skuId) { - this.data.sku_id = skuId; - return this; - } - /** - * Sets the emoji to display on this button. - * - * @param emoji - The emoji to use - */ - setEmoji(emoji) { - this.data.emoji = emojiValidator.parse(emoji); - return this; - } - /** - * Sets whether this button is disabled. - * - * @param disabled - Whether to disable this button - */ - setDisabled(disabled = true) { - this.data.disabled = disabledValidator.parse(disabled); - return this; - } - /** - * Sets the label for this button. - * - * @param label - The label to use - */ - setLabel(label) { - this.data.label = buttonLabelValidator.parse(label); - return this; - } - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON() { - validateRequiredButtonParameters( - this.data.style, - this.data.label, - this.data.emoji, - this.data.custom_id, - this.data.sku_id, - this.data.url - ); - return { - ...this.data - }; - } -}; - -// src/components/selectMenu/ChannelSelectMenu.ts -var import_v103 = require("discord-api-types/v10"); - -// src/components/selectMenu/BaseSelectMenu.ts -var BaseSelectMenuBuilder = class extends ComponentBuilder { - static { - __name(this, "BaseSelectMenuBuilder"); - } - /** - * Sets the placeholder for this select menu. - * - * @param placeholder - The placeholder to use - */ - setPlaceholder(placeholder) { - this.data.placeholder = placeholderValidator.parse(placeholder); - return this; - } - /** - * Sets the minimum values that must be selected in the select menu. - * - * @param minValues - The minimum values that must be selected - */ - setMinValues(minValues) { - this.data.min_values = minMaxValidator.parse(minValues); - return this; - } - /** - * Sets the maximum values that must be selected in the select menu. - * - * @param maxValues - The maximum values that must be selected - */ - setMaxValues(maxValues) { - this.data.max_values = minMaxValidator.parse(maxValues); - return this; - } - /** - * Sets the custom id for this select menu. - * - * @param customId - The custom id to use - */ - setCustomId(customId) { - this.data.custom_id = customIdValidator.parse(customId); - return this; - } - /** - * Sets whether this select menu is disabled. - * - * @param disabled - Whether this select menu is disabled - */ - setDisabled(disabled = true) { - this.data.disabled = disabledValidator.parse(disabled); - return this; - } - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON() { - customIdValidator.parse(this.data.custom_id); - return { - ...this.data - }; - } -}; - -// src/components/selectMenu/ChannelSelectMenu.ts -var ChannelSelectMenuBuilder = class extends BaseSelectMenuBuilder { - static { - __name(this, "ChannelSelectMenuBuilder"); - } - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new ChannelSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new ChannelSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .addChannelTypes(ChannelType.GuildText, ChannelType.GuildAnnouncement) - * .setMinValues(2); - * ``` - */ - constructor(data) { - super({ ...data, type: import_v103.ComponentType.ChannelSelect }); - } - /** - * Adds channel types to this select menu. - * - * @param types - The channel types to use - */ - addChannelTypes(...types) { - const normalizedTypes = normalizeArray(types); - this.data.channel_types ??= []; - this.data.channel_types.push(...channelTypesValidator.parse(normalizedTypes)); - return this; - } - /** - * Sets channel types for this select menu. - * - * @param types - The channel types to use - */ - setChannelTypes(...types) { - const normalizedTypes = normalizeArray(types); - this.data.channel_types ??= []; - this.data.channel_types.splice(0, this.data.channel_types.length, ...channelTypesValidator.parse(normalizedTypes)); - return this; - } - /** - * Adds default channels to this auto populated select menu. - * - * @param channels - The channels to add - */ - addDefaultChannels(...channels) { - const normalizedValues = normalizeArray(channels); - optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); - this.data.default_values ??= []; - this.data.default_values.push( - ...normalizedValues.map((id) => ({ - id, - type: import_v103.SelectMenuDefaultValueType.Channel - })) - ); - return this; - } - /** - * Sets default channels for this auto populated select menu. - * - * @param channels - The channels to set - */ - setDefaultChannels(...channels) { - const normalizedValues = normalizeArray(channels); - optionsLengthValidator.parse(normalizedValues.length); - this.data.default_values = normalizedValues.map((id) => ({ - id, - type: import_v103.SelectMenuDefaultValueType.Channel - })); - return this; - } - /** - * {@inheritDoc BaseSelectMenuBuilder.toJSON} - */ - toJSON() { - customIdValidator.parse(this.data.custom_id); - return { - ...this.data - }; - } -}; - -// src/components/selectMenu/MentionableSelectMenu.ts -var import_v104 = require("discord-api-types/v10"); -var MentionableSelectMenuBuilder = class extends BaseSelectMenuBuilder { - static { - __name(this, "MentionableSelectMenuBuilder"); - } - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new MentionableSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new MentionableSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1); - * ``` - */ - constructor(data) { - super({ ...data, type: import_v104.ComponentType.MentionableSelect }); - } - /** - * Adds default roles to this auto populated select menu. - * - * @param roles - The roles to add - */ - addDefaultRoles(...roles) { - const normalizedValues = normalizeArray(roles); - optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); - this.data.default_values ??= []; - this.data.default_values.push( - ...normalizedValues.map((id) => ({ - id, - type: import_v104.SelectMenuDefaultValueType.Role - })) - ); - return this; - } - /** - * Adds default users to this auto populated select menu. - * - * @param users - The users to add - */ - addDefaultUsers(...users) { - const normalizedValues = normalizeArray(users); - optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); - this.data.default_values ??= []; - this.data.default_values.push( - ...normalizedValues.map((id) => ({ - id, - type: import_v104.SelectMenuDefaultValueType.User - })) - ); - return this; - } - /** - * Adds default values to this auto populated select menu. - * - * @param values - The values to add - */ - addDefaultValues(...values) { - const normalizedValues = normalizeArray(values); - optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); - this.data.default_values ??= []; - this.data.default_values.push(...normalizedValues); - return this; - } - /** - * Sets default values for this auto populated select menu. - * - * @param values - The values to set - */ - setDefaultValues(...values) { - const normalizedValues = normalizeArray(values); - optionsLengthValidator.parse(normalizedValues.length); - this.data.default_values = normalizedValues; - return this; - } -}; - -// src/components/selectMenu/RoleSelectMenu.ts -var import_v105 = require("discord-api-types/v10"); -var RoleSelectMenuBuilder = class extends BaseSelectMenuBuilder { - static { - __name(this, "RoleSelectMenuBuilder"); - } - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new RoleSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new RoleSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1); - * ``` - */ - constructor(data) { - super({ ...data, type: import_v105.ComponentType.RoleSelect }); - } - /** - * Adds default roles to this auto populated select menu. - * - * @param roles - The roles to add - */ - addDefaultRoles(...roles) { - const normalizedValues = normalizeArray(roles); - optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); - this.data.default_values ??= []; - this.data.default_values.push( - ...normalizedValues.map((id) => ({ - id, - type: import_v105.SelectMenuDefaultValueType.Role - })) - ); - return this; - } - /** - * Sets default roles for this auto populated select menu. - * - * @param roles - The roles to set - */ - setDefaultRoles(...roles) { - const normalizedValues = normalizeArray(roles); - optionsLengthValidator.parse(normalizedValues.length); - this.data.default_values = normalizedValues.map((id) => ({ - id, - type: import_v105.SelectMenuDefaultValueType.Role - })); - return this; - } -}; - -// src/components/selectMenu/StringSelectMenu.ts -var import_v106 = require("discord-api-types/v10"); -var StringSelectMenuBuilder = class extends BaseSelectMenuBuilder { - static { - __name(this, "StringSelectMenuBuilder"); - } - /** - * The options within this select menu. - */ - options; - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new StringSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * options: [ - * { label: 'option 1', value: '1' }, - * { label: 'option 2', value: '2' }, - * { label: 'option 3', value: '3' }, - * ], - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new StringSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1) - * .addOptions({ - * label: 'Catchy', - * value: 'catch', - * }); - * ``` - */ - constructor(data) { - const { options, ...initData } = data ?? {}; - super({ ...initData, type: import_v106.ComponentType.StringSelect }); - this.options = options?.map((option) => new StringSelectMenuOptionBuilder(option)) ?? []; - } - /** - * Adds options to this select menu. - * - * @param options - The options to add - */ - addOptions(...options) { - const normalizedOptions = normalizeArray(options); - optionsLengthValidator.parse(this.options.length + normalizedOptions.length); - this.options.push( - ...normalizedOptions.map( - (normalizedOption) => normalizedOption instanceof StringSelectMenuOptionBuilder ? normalizedOption : new StringSelectMenuOptionBuilder(jsonOptionValidator.parse(normalizedOption)) - ) - ); - return this; - } - /** - * Sets the options for this select menu. - * - * @param options - The options to set - */ - setOptions(...options) { - return this.spliceOptions(0, this.options.length, ...options); - } - /** - * Removes, replaces, or inserts options for this select menu. - * - * @remarks - * This method behaves similarly - * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice | Array.prototype.splice()}. - * It's useful for modifying and adjusting the order of existing options. - * @example - * Remove the first option: - * ```ts - * selectMenu.spliceOptions(0, 1); - * ``` - * @example - * Remove the first n option: - * ```ts - * const n = 4; - * selectMenu.spliceOptions(0, n); - * ``` - * @example - * Remove the last option: - * ```ts - * selectMenu.spliceOptions(-1, 1); - * ``` - * @param index - The index to start at - * @param deleteCount - The number of options to remove - * @param options - The replacing option objects or builders - */ - spliceOptions(index, deleteCount, ...options) { - const normalizedOptions = normalizeArray(options); - const clone = [...this.options]; - clone.splice( - index, - deleteCount, - ...normalizedOptions.map( - (normalizedOption) => normalizedOption instanceof StringSelectMenuOptionBuilder ? normalizedOption : new StringSelectMenuOptionBuilder(jsonOptionValidator.parse(normalizedOption)) - ) - ); - optionsLengthValidator.parse(clone.length); - this.options.splice(0, this.options.length, ...clone); - return this; - } - /** - * {@inheritDoc BaseSelectMenuBuilder.toJSON} - */ - toJSON() { - validateRequiredSelectMenuParameters(this.options, this.data.custom_id); - return { - ...this.data, - options: this.options.map((option) => option.toJSON()) - }; - } -}; - -// src/components/selectMenu/UserSelectMenu.ts -var import_v107 = require("discord-api-types/v10"); -var UserSelectMenuBuilder = class extends BaseSelectMenuBuilder { - static { - __name(this, "UserSelectMenuBuilder"); - } - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new UserSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new UserSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1); - * ``` - */ - constructor(data) { - super({ ...data, type: import_v107.ComponentType.UserSelect }); - } - /** - * Adds default users to this auto populated select menu. - * - * @param users - The users to add - */ - addDefaultUsers(...users) { - const normalizedValues = normalizeArray(users); - optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); - this.data.default_values ??= []; - this.data.default_values.push( - ...normalizedValues.map((id) => ({ - id, - type: import_v107.SelectMenuDefaultValueType.User - })) - ); - return this; - } - /** - * Sets default users for this auto populated select menu. - * - * @param users - The users to set - */ - setDefaultUsers(...users) { - const normalizedValues = normalizeArray(users); - optionsLengthValidator.parse(normalizedValues.length); - this.data.default_values = normalizedValues.map((id) => ({ - id, - type: import_v107.SelectMenuDefaultValueType.User - })); - return this; - } -}; - -// src/components/textInput/TextInput.ts -var import_util = require("@discordjs/util"); -var import_v109 = require("discord-api-types/v10"); -var import_fast_deep_equal = __toESM(require("fast-deep-equal")); - -// src/components/textInput/Assertions.ts -var Assertions_exports3 = {}; -__export(Assertions_exports3, { - labelValidator: () => labelValidator, - maxLengthValidator: () => maxLengthValidator, - minLengthValidator: () => minLengthValidator, - placeholderValidator: () => placeholderValidator2, - requiredValidator: () => requiredValidator, - textInputStyleValidator: () => textInputStyleValidator, - validateRequiredParameters: () => validateRequiredParameters, - valueValidator: () => valueValidator -}); -var import_shapeshift3 = require("@sapphire/shapeshift"); -var import_v108 = require("discord-api-types/v10"); -var textInputStyleValidator = import_shapeshift3.s.nativeEnum(import_v108.TextInputStyle); -var minLengthValidator = import_shapeshift3.s.number().int().greaterThanOrEqual(0).lessThanOrEqual(4e3).setValidationEnabled(isValidationEnabled); -var maxLengthValidator = import_shapeshift3.s.number().int().greaterThanOrEqual(1).lessThanOrEqual(4e3).setValidationEnabled(isValidationEnabled); -var requiredValidator = import_shapeshift3.s.boolean(); -var valueValidator = import_shapeshift3.s.string().lengthLessThanOrEqual(4e3).setValidationEnabled(isValidationEnabled); -var placeholderValidator2 = import_shapeshift3.s.string().lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled); -var labelValidator = import_shapeshift3.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(45).setValidationEnabled(isValidationEnabled); -function validateRequiredParameters(customId, style, label) { - customIdValidator.parse(customId); - textInputStyleValidator.parse(style); - labelValidator.parse(label); -} -__name(validateRequiredParameters, "validateRequiredParameters"); - -// src/components/textInput/TextInput.ts -var TextInputBuilder = class extends ComponentBuilder { - static { - __name(this, "TextInputBuilder"); - } - /** - * Creates a new text input from API data. - * - * @param data - The API data to create this text input with - * @example - * Creating a text input from an API data object: - * ```ts - * const textInput = new TextInputBuilder({ - * custom_id: 'a cool text input', - * label: 'Type something', - * style: TextInputStyle.Short, - * }); - * ``` - * @example - * Creating a text input using setters and API data: - * ```ts - * const textInput = new TextInputBuilder({ - * label: 'Type something else', - * }) - * .setCustomId('woah') - * .setStyle(TextInputStyle.Paragraph); - * ``` - */ - constructor(data) { - super({ type: import_v109.ComponentType.TextInput, ...data }); - } - /** - * Sets the custom id for this text input. - * - * @param customId - The custom id to use - */ - setCustomId(customId) { - this.data.custom_id = customIdValidator.parse(customId); - return this; - } - /** - * Sets the label for this text input. - * - * @param label - The label to use - */ - setLabel(label) { - this.data.label = labelValidator.parse(label); - return this; - } - /** - * Sets the style for this text input. - * - * @param style - The style to use - */ - setStyle(style) { - this.data.style = textInputStyleValidator.parse(style); - return this; - } - /** - * Sets the minimum length of text for this text input. - * - * @param minLength - The minimum length of text for this text input - */ - setMinLength(minLength) { - this.data.min_length = minLengthValidator.parse(minLength); - return this; - } - /** - * Sets the maximum length of text for this text input. - * - * @param maxLength - The maximum length of text for this text input - */ - setMaxLength(maxLength) { - this.data.max_length = maxLengthValidator.parse(maxLength); - return this; - } - /** - * Sets the placeholder for this text input. - * - * @param placeholder - The placeholder to use - */ - setPlaceholder(placeholder) { - this.data.placeholder = placeholderValidator2.parse(placeholder); - return this; - } - /** - * Sets the value for this text input. - * - * @param value - The value to use - */ - setValue(value) { - this.data.value = valueValidator.parse(value); - return this; - } - /** - * Sets whether this text input is required. - * - * @param required - Whether this text input is required - */ - setRequired(required = true) { - this.data.required = requiredValidator.parse(required); - return this; - } - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON() { - validateRequiredParameters(this.data.custom_id, this.data.style, this.data.label); - return { - ...this.data - }; - } - /** - * Whether this is equal to another structure. - */ - equals(other) { - if ((0, import_util.isJSONEncodable)(other)) { - return (0, import_fast_deep_equal.default)(other.toJSON(), this.data); - } - return (0, import_fast_deep_equal.default)(other, this.data); - } -}; - -// src/components/Components.ts -function createComponentBuilder(data) { - if (data instanceof ComponentBuilder) { - return data; - } - switch (data.type) { - case import_v1010.ComponentType.ActionRow: - return new ActionRowBuilder(data); - case import_v1010.ComponentType.Button: - return new ButtonBuilder(data); - case import_v1010.ComponentType.StringSelect: - return new StringSelectMenuBuilder(data); - case import_v1010.ComponentType.TextInput: - return new TextInputBuilder(data); - case import_v1010.ComponentType.UserSelect: - return new UserSelectMenuBuilder(data); - case import_v1010.ComponentType.RoleSelect: - return new RoleSelectMenuBuilder(data); - case import_v1010.ComponentType.MentionableSelect: - return new MentionableSelectMenuBuilder(data); - case import_v1010.ComponentType.ChannelSelect: - return new ChannelSelectMenuBuilder(data); - default: - throw new Error(`Cannot properly serialize component type: ${data.type}`); - } -} -__name(createComponentBuilder, "createComponentBuilder"); - -// src/components/ActionRow.ts -var ActionRowBuilder = class extends ComponentBuilder { - static { - __name(this, "ActionRowBuilder"); - } - /** - * The components within this action row. - */ - components; - /** - * Creates a new action row from API data. - * - * @param data - The API data to create this action row with - * @example - * Creating an action row from an API data object: - * ```ts - * const actionRow = new ActionRowBuilder({ - * components: [ - * { - * custom_id: "custom id", - * label: "Type something", - * style: TextInputStyle.Short, - * type: ComponentType.TextInput, - * }, - * ], - * }); - * ``` - * @example - * Creating an action row using setters and API data: - * ```ts - * const actionRow = new ActionRowBuilder({ - * components: [ - * { - * custom_id: "custom id", - * label: "Click me", - * style: ButtonStyle.Primary, - * type: ComponentType.Button, - * }, - * ], - * }) - * .addComponents(button2, button3); - * ``` - */ - constructor({ components, ...data } = {}) { - super({ type: import_v1011.ComponentType.ActionRow, ...data }); - this.components = components?.map((component) => createComponentBuilder(component)) ?? []; - } - /** - * Adds components to this action row. - * - * @param components - The components to add - */ - addComponents(...components) { - this.components.push(...normalizeArray(components)); - return this; - } - /** - * Sets components for this action row. - * - * @param components - The components to set - */ - setComponents(...components) { - this.components.splice(0, this.components.length, ...normalizeArray(components)); - return this; - } - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON() { - return { - ...this.data, - components: this.components.map((component) => component.toJSON()) - }; - } -}; - -// src/interactions/modals/Assertions.ts -var Assertions_exports4 = {}; -__export(Assertions_exports4, { - componentsValidator: () => componentsValidator, - titleValidator: () => titleValidator, - validateRequiredParameters: () => validateRequiredParameters2 -}); -var import_shapeshift4 = require("@sapphire/shapeshift"); -var titleValidator = import_shapeshift4.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(45).setValidationEnabled(isValidationEnabled); -var componentsValidator = import_shapeshift4.s.instance(ActionRowBuilder).array().lengthGreaterThanOrEqual(1).setValidationEnabled(isValidationEnabled); -function validateRequiredParameters2(customId, title, components) { - customIdValidator.parse(customId); - titleValidator.parse(title); - componentsValidator.parse(components); -} -__name(validateRequiredParameters2, "validateRequiredParameters"); - -// src/interactions/modals/Modal.ts -var ModalBuilder = class { - static { - __name(this, "ModalBuilder"); - } - /** - * The API data associated with this modal. - */ - data; - /** - * The components within this modal. - */ - components = []; - /** - * Creates a new modal from API data. - * - * @param data - The API data to create this modal with - */ - constructor({ components, ...data } = {}) { - this.data = { ...data }; - this.components = components?.map((component) => createComponentBuilder(component)) ?? []; - } - /** - * Sets the title of this modal. - * - * @param title - The title to use - */ - setTitle(title) { - this.data.title = titleValidator.parse(title); - return this; - } - /** - * Sets the custom id of this modal. - * - * @param customId - The custom id to use - */ - setCustomId(customId) { - this.data.custom_id = customIdValidator.parse(customId); - return this; - } - /** - * Adds components to this modal. - * - * @param components - The components to add - */ - addComponents(...components) { - this.components.push( - ...normalizeArray(components).map( - (component) => component instanceof ActionRowBuilder ? component : new ActionRowBuilder(component) - ) - ); - return this; - } - /** - * Sets components for this modal. - * - * @param components - The components to set - */ - setComponents(...components) { - this.components.splice(0, this.components.length, ...normalizeArray(components)); - return this; - } - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON() { - validateRequiredParameters2(this.data.custom_id, this.data.title, this.components); - return { - ...this.data, - components: this.components.map((component) => component.toJSON()) - }; - } -}; - -// src/interactions/slashCommands/Assertions.ts -var Assertions_exports5 = {}; -__export(Assertions_exports5, { - assertReturnOfBuilder: () => assertReturnOfBuilder, - contextsPredicate: () => contextsPredicate, - integrationTypesPredicate: () => integrationTypesPredicate, - localizationMapPredicate: () => localizationMapPredicate, - validateChoicesLength: () => validateChoicesLength, - validateDMPermission: () => validateDMPermission, - validateDefaultMemberPermissions: () => validateDefaultMemberPermissions, - validateDefaultPermission: () => validateDefaultPermission, - validateDescription: () => validateDescription, - validateLocale: () => validateLocale, - validateLocalizationMap: () => validateLocalizationMap, - validateMaxOptionsLength: () => validateMaxOptionsLength, - validateNSFW: () => validateNSFW, - validateName: () => validateName, - validateRequired: () => validateRequired, - validateRequiredParameters: () => validateRequiredParameters3 -}); -var import_shapeshift5 = require("@sapphire/shapeshift"); -var import_v1012 = require("discord-api-types/v10"); -var namePredicate = import_shapeshift5.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(32).regex(/^[\p{Ll}\p{Lm}\p{Lo}\p{N}\p{sc=Devanagari}\p{sc=Thai}_-]+$/u).setValidationEnabled(isValidationEnabled); -function validateName(name) { - namePredicate.parse(name); -} -__name(validateName, "validateName"); -var descriptionPredicate2 = import_shapeshift5.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled); -var localePredicate = import_shapeshift5.s.nativeEnum(import_v1012.Locale); -function validateDescription(description) { - descriptionPredicate2.parse(description); -} -__name(validateDescription, "validateDescription"); -var maxArrayLengthPredicate = import_shapeshift5.s.unknown().array().lengthLessThanOrEqual(25).setValidationEnabled(isValidationEnabled); -function validateLocale(locale) { - return localePredicate.parse(locale); -} -__name(validateLocale, "validateLocale"); -function validateMaxOptionsLength(options) { - maxArrayLengthPredicate.parse(options); -} -__name(validateMaxOptionsLength, "validateMaxOptionsLength"); -function validateRequiredParameters3(name, description, options) { - validateName(name); - validateDescription(description); - validateMaxOptionsLength(options); -} -__name(validateRequiredParameters3, "validateRequiredParameters"); -var booleanPredicate = import_shapeshift5.s.boolean(); -function validateDefaultPermission(value) { - booleanPredicate.parse(value); -} -__name(validateDefaultPermission, "validateDefaultPermission"); -function validateRequired(required) { - booleanPredicate.parse(required); -} -__name(validateRequired, "validateRequired"); -var choicesLengthPredicate = import_shapeshift5.s.number().lessThanOrEqual(25).setValidationEnabled(isValidationEnabled); -function validateChoicesLength(amountAdding, choices) { - choicesLengthPredicate.parse((choices?.length ?? 0) + amountAdding); -} -__name(validateChoicesLength, "validateChoicesLength"); -function assertReturnOfBuilder(input, ExpectedInstanceOf) { - import_shapeshift5.s.instance(ExpectedInstanceOf).parse(input); -} -__name(assertReturnOfBuilder, "assertReturnOfBuilder"); -var localizationMapPredicate = import_shapeshift5.s.object(Object.fromEntries(Object.values(import_v1012.Locale).map((locale) => [locale, import_shapeshift5.s.string().nullish()]))).strict().nullish().setValidationEnabled(isValidationEnabled); -function validateLocalizationMap(value) { - localizationMapPredicate.parse(value); -} -__name(validateLocalizationMap, "validateLocalizationMap"); -var dmPermissionPredicate = import_shapeshift5.s.boolean().nullish(); -function validateDMPermission(value) { - dmPermissionPredicate.parse(value); -} -__name(validateDMPermission, "validateDMPermission"); -var memberPermissionPredicate = import_shapeshift5.s.union([ - import_shapeshift5.s.bigint().transform((value) => value.toString()), - import_shapeshift5.s.number().safeInt().transform((value) => value.toString()), - import_shapeshift5.s.string().regex(/^\d+$/) -]).nullish(); -function validateDefaultMemberPermissions(permissions) { - return memberPermissionPredicate.parse(permissions); -} -__name(validateDefaultMemberPermissions, "validateDefaultMemberPermissions"); -function validateNSFW(value) { - booleanPredicate.parse(value); -} -__name(validateNSFW, "validateNSFW"); -var contextsPredicate = import_shapeshift5.s.array( - import_shapeshift5.s.nativeEnum(import_v1012.InteractionContextType).setValidationEnabled(isValidationEnabled) -); -var integrationTypesPredicate = import_shapeshift5.s.array( - import_shapeshift5.s.nativeEnum(import_v1012.ApplicationIntegrationType).setValidationEnabled(isValidationEnabled) -); - -// src/interactions/slashCommands/SlashCommandBuilder.ts -var import_ts_mixer6 = require("ts-mixer"); - -// src/interactions/slashCommands/mixins/NameAndDescription.ts -var SharedNameAndDescription = class { - static { - __name(this, "SharedNameAndDescription"); - } - /** - * The name of this command. - */ - name; - /** - * The name localizations of this command. - */ - name_localizations; - /** - * The description of this command. - */ - description; - /** - * The description localizations of this command. - */ - description_localizations; - /** - * Sets the name of this command. - * - * @param name - The name to use - */ - setName(name) { - validateName(name); - Reflect.set(this, "name", name); - return this; - } - /** - * Sets the description of this command. - * - * @param description - The description to use - */ - setDescription(description) { - validateDescription(description); - Reflect.set(this, "description", description); - return this; - } - /** - * Sets a name localization for this command. - * - * @param locale - The locale to set - * @param localizedName - The localized name for the given `locale` - */ - setNameLocalization(locale, localizedName) { - if (!this.name_localizations) { - Reflect.set(this, "name_localizations", {}); - } - const parsedLocale = validateLocale(locale); - if (localizedName === null) { - this.name_localizations[parsedLocale] = null; - return this; - } - validateName(localizedName); - this.name_localizations[parsedLocale] = localizedName; - return this; - } - /** - * Sets the name localizations for this command. - * - * @param localizedNames - The object of localized names to set - */ - setNameLocalizations(localizedNames) { - if (localizedNames === null) { - Reflect.set(this, "name_localizations", null); - return this; - } - Reflect.set(this, "name_localizations", {}); - for (const args of Object.entries(localizedNames)) { - this.setNameLocalization(...args); - } - return this; - } - /** - * Sets a description localization for this command. - * - * @param locale - The locale to set - * @param localizedDescription - The localized description for the given locale - */ - setDescriptionLocalization(locale, localizedDescription) { - if (!this.description_localizations) { - Reflect.set(this, "description_localizations", {}); - } - const parsedLocale = validateLocale(locale); - if (localizedDescription === null) { - this.description_localizations[parsedLocale] = null; - return this; - } - validateDescription(localizedDescription); - this.description_localizations[parsedLocale] = localizedDescription; - return this; - } - /** - * Sets the description localizations for this command. - * - * @param localizedDescriptions - The object of localized descriptions to set - */ - setDescriptionLocalizations(localizedDescriptions) { - if (localizedDescriptions === null) { - Reflect.set(this, "description_localizations", null); - return this; - } - Reflect.set(this, "description_localizations", {}); - for (const args of Object.entries(localizedDescriptions)) { - this.setDescriptionLocalization(...args); - } - return this; - } -}; - -// src/interactions/slashCommands/mixins/SharedSlashCommand.ts -var import_v1013 = require("discord-api-types/v10"); -var SharedSlashCommand = class { - static { - __name(this, "SharedSlashCommand"); - } - name = void 0; - name_localizations; - description = void 0; - description_localizations; - options = []; - contexts; - /** - * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. - */ - default_permission = void 0; - default_member_permissions = void 0; - /** - * @deprecated Use {@link SharedSlashCommand.contexts} instead. - */ - dm_permission = void 0; - integration_types; - nsfw = void 0; - /** - * Sets the contexts of this command. - * - * @param contexts - The contexts - */ - setContexts(...contexts) { - Reflect.set(this, "contexts", contextsPredicate.parse(normalizeArray(contexts))); - return this; - } - /** - * Sets the integration types of this command. - * - * @param integrationTypes - The integration types - */ - setIntegrationTypes(...integrationTypes) { - Reflect.set(this, "integration_types", integrationTypesPredicate.parse(normalizeArray(integrationTypes))); - return this; - } - /** - * Sets whether the command is enabled by default when the application is added to a guild. - * - * @remarks - * If set to `false`, you will have to later `PUT` the permissions for this command. - * @param value - Whether or not to enable this command by default - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. - */ - setDefaultPermission(value) { - validateDefaultPermission(value); - Reflect.set(this, "default_permission", value); - return this; - } - /** - * Sets the default permissions a member should have in order to run the command. - * - * @remarks - * You can set this to `'0'` to disable the command by default. - * @param permissions - The permissions bit field to set - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - */ - setDefaultMemberPermissions(permissions) { - const permissionValue = validateDefaultMemberPermissions(permissions); - Reflect.set(this, "default_member_permissions", permissionValue); - return this; - } - /** - * Sets if the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This method is only for global commands. - * @param enabled - Whether the command should be enabled in direct messages - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - * @deprecated - * Use {@link SharedSlashCommand.setContexts} instead. - */ - setDMPermission(enabled) { - validateDMPermission(enabled); - Reflect.set(this, "dm_permission", enabled); - return this; - } - /** - * Sets whether this command is NSFW. - * - * @param nsfw - Whether this command is NSFW - */ - setNSFW(nsfw = true) { - validateNSFW(nsfw); - Reflect.set(this, "nsfw", nsfw); - return this; - } - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON() { - validateRequiredParameters3(this.name, this.description, this.options); - validateLocalizationMap(this.name_localizations); - validateLocalizationMap(this.description_localizations); - return { - ...this, - type: import_v1013.ApplicationCommandType.ChatInput, - options: this.options.map((option) => option.toJSON()) - }; - } -}; - -// src/interactions/slashCommands/options/attachment.ts -var import_v1014 = require("discord-api-types/v10"); - -// src/interactions/slashCommands/mixins/ApplicationCommandOptionBase.ts -var ApplicationCommandOptionBase = class extends SharedNameAndDescription { - static { - __name(this, "ApplicationCommandOptionBase"); - } - /** - * Whether this option is required. - * - * @defaultValue `false` - */ - required = false; - /** - * Sets whether this option is required. - * - * @param required - Whether this option should be required - */ - setRequired(required) { - validateRequired(required); - Reflect.set(this, "required", required); - return this; - } - /** - * This method runs required validators on this builder. - */ - runRequiredValidations() { - validateRequiredParameters3(this.name, this.description, []); - validateLocalizationMap(this.name_localizations); - validateLocalizationMap(this.description_localizations); - validateRequired(this.required); - } -}; - -// src/interactions/slashCommands/options/attachment.ts -var SlashCommandAttachmentOption = class extends ApplicationCommandOptionBase { - static { - __name(this, "SlashCommandAttachmentOption"); - } - /** - * The type of this option. - */ - type = import_v1014.ApplicationCommandOptionType.Attachment; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - return { ...this }; - } -}; - -// src/interactions/slashCommands/options/boolean.ts -var import_v1015 = require("discord-api-types/v10"); -var SlashCommandBooleanOption = class extends ApplicationCommandOptionBase { - static { - __name(this, "SlashCommandBooleanOption"); - } - /** - * The type of this option. - */ - type = import_v1015.ApplicationCommandOptionType.Boolean; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - return { ...this }; - } -}; - -// src/interactions/slashCommands/options/channel.ts -var import_v1017 = require("discord-api-types/v10"); -var import_ts_mixer = require("ts-mixer"); - -// src/interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin.ts -var import_shapeshift6 = require("@sapphire/shapeshift"); -var import_v1016 = require("discord-api-types/v10"); -var allowedChannelTypes = [ - import_v1016.ChannelType.GuildText, - import_v1016.ChannelType.GuildVoice, - import_v1016.ChannelType.GuildCategory, - import_v1016.ChannelType.GuildAnnouncement, - import_v1016.ChannelType.AnnouncementThread, - import_v1016.ChannelType.PublicThread, - import_v1016.ChannelType.PrivateThread, - import_v1016.ChannelType.GuildStageVoice, - import_v1016.ChannelType.GuildForum, - import_v1016.ChannelType.GuildMedia -]; -var channelTypesPredicate = import_shapeshift6.s.array(import_shapeshift6.s.union(allowedChannelTypes.map((type) => import_shapeshift6.s.literal(type)))); -var ApplicationCommandOptionChannelTypesMixin = class { - static { - __name(this, "ApplicationCommandOptionChannelTypesMixin"); - } - /** - * The channel types of this option. - */ - channel_types; - /** - * Adds channel types to this option. - * - * @param channelTypes - The channel types - */ - addChannelTypes(...channelTypes) { - if (this.channel_types === void 0) { - Reflect.set(this, "channel_types", []); - } - this.channel_types.push(...channelTypesPredicate.parse(normalizeArray(channelTypes))); - return this; - } -}; - -// src/interactions/slashCommands/options/channel.ts -var SlashCommandChannelOption = class extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - type = import_v1017.ApplicationCommandOptionType.Channel; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - return { ...this }; - } -}; -__name(SlashCommandChannelOption, "SlashCommandChannelOption"); -SlashCommandChannelOption = __decorateClass([ - (0, import_ts_mixer.mix)(ApplicationCommandOptionChannelTypesMixin) -], SlashCommandChannelOption); - -// src/interactions/slashCommands/options/integer.ts -var import_shapeshift9 = require("@sapphire/shapeshift"); -var import_v1019 = require("discord-api-types/v10"); -var import_ts_mixer2 = require("ts-mixer"); - -// src/interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin.ts -var ApplicationCommandNumericOptionMinMaxValueMixin = class { - static { - __name(this, "ApplicationCommandNumericOptionMinMaxValueMixin"); - } - /** - * The maximum value of this option. - */ - max_value; - /** - * The minimum value of this option. - */ - min_value; -}; - -// src/interactions/slashCommands/mixins/ApplicationCommandOptionWithAutocompleteMixin.ts -var import_shapeshift7 = require("@sapphire/shapeshift"); -var booleanPredicate2 = import_shapeshift7.s.boolean(); -var ApplicationCommandOptionWithAutocompleteMixin = class { - static { - __name(this, "ApplicationCommandOptionWithAutocompleteMixin"); - } - /** - * Whether this option utilizes autocomplete. - */ - autocomplete; - /** - * The type of this option. - * - * @privateRemarks Since this is present and this is a mixin, this is needed. - */ - type; - /** - * Whether this option uses autocomplete. - * - * @param autocomplete - Whether this option should use autocomplete - */ - setAutocomplete(autocomplete) { - booleanPredicate2.parse(autocomplete); - if (autocomplete && "choices" in this && Array.isArray(this.choices) && this.choices.length > 0) { - throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); - } - Reflect.set(this, "autocomplete", autocomplete); - return this; - } -}; - -// src/interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesMixin.ts -var import_shapeshift8 = require("@sapphire/shapeshift"); -var import_v1018 = require("discord-api-types/v10"); -var stringPredicate = import_shapeshift8.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100); -var numberPredicate = import_shapeshift8.s.number().greaterThan(Number.NEGATIVE_INFINITY).lessThan(Number.POSITIVE_INFINITY); -var choicesPredicate = import_shapeshift8.s.object({ - name: stringPredicate, - name_localizations: localizationMapPredicate, - value: import_shapeshift8.s.union([stringPredicate, numberPredicate]) -}).array(); -var ApplicationCommandOptionWithChoicesMixin = class { - static { - __name(this, "ApplicationCommandOptionWithChoicesMixin"); - } - /** - * The choices of this option. - */ - choices; - /** - * The type of this option. - * - * @privateRemarks Since this is present and this is a mixin, this is needed. - */ - type; - /** - * Adds multiple choices to this option. - * - * @param choices - The choices to add - */ - addChoices(...choices) { - const normalizedChoices = normalizeArray(choices); - if (normalizedChoices.length > 0 && "autocomplete" in this && this.autocomplete) { - throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); - } - choicesPredicate.parse(normalizedChoices); - if (this.choices === void 0) { - Reflect.set(this, "choices", []); - } - validateChoicesLength(normalizedChoices.length, this.choices); - for (const { name, name_localizations, value } of normalizedChoices) { - if (this.type === import_v1018.ApplicationCommandOptionType.String) { - stringPredicate.parse(value); - } else { - numberPredicate.parse(value); - } - this.choices.push({ name, name_localizations, value }); - } - return this; - } - /** - * Sets multiple choices for this option. - * - * @param choices - The choices to set - */ - setChoices(...choices) { - const normalizedChoices = normalizeArray(choices); - if (normalizedChoices.length > 0 && "autocomplete" in this && this.autocomplete) { - throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); - } - choicesPredicate.parse(normalizedChoices); - Reflect.set(this, "choices", []); - this.addChoices(normalizedChoices); - return this; - } -}; - -// src/interactions/slashCommands/options/integer.ts -var numberValidator = import_shapeshift9.s.number().int(); -var SlashCommandIntegerOption = class extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - type = import_v1019.ApplicationCommandOptionType.Integer; - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue} - */ - setMaxValue(max) { - numberValidator.parse(max); - Reflect.set(this, "max_value", max); - return this; - } - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue} - */ - setMinValue(min) { - numberValidator.parse(min); - Reflect.set(this, "min_value", min); - return this; - } - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - if (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) { - throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); - } - return { ...this }; - } -}; -__name(SlashCommandIntegerOption, "SlashCommandIntegerOption"); -SlashCommandIntegerOption = __decorateClass([ - (0, import_ts_mixer2.mix)( - ApplicationCommandNumericOptionMinMaxValueMixin, - ApplicationCommandOptionWithAutocompleteMixin, - ApplicationCommandOptionWithChoicesMixin - ) -], SlashCommandIntegerOption); - -// src/interactions/slashCommands/options/mentionable.ts -var import_v1020 = require("discord-api-types/v10"); -var SlashCommandMentionableOption = class extends ApplicationCommandOptionBase { - static { - __name(this, "SlashCommandMentionableOption"); - } - /** - * The type of this option. - */ - type = import_v1020.ApplicationCommandOptionType.Mentionable; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - return { ...this }; - } -}; - -// src/interactions/slashCommands/options/number.ts -var import_shapeshift10 = require("@sapphire/shapeshift"); -var import_v1021 = require("discord-api-types/v10"); -var import_ts_mixer3 = require("ts-mixer"); -var numberValidator2 = import_shapeshift10.s.number(); -var SlashCommandNumberOption = class extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - type = import_v1021.ApplicationCommandOptionType.Number; - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue} - */ - setMaxValue(max) { - numberValidator2.parse(max); - Reflect.set(this, "max_value", max); - return this; - } - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue} - */ - setMinValue(min) { - numberValidator2.parse(min); - Reflect.set(this, "min_value", min); - return this; - } - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - if (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) { - throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); - } - return { ...this }; - } -}; -__name(SlashCommandNumberOption, "SlashCommandNumberOption"); -SlashCommandNumberOption = __decorateClass([ - (0, import_ts_mixer3.mix)( - ApplicationCommandNumericOptionMinMaxValueMixin, - ApplicationCommandOptionWithAutocompleteMixin, - ApplicationCommandOptionWithChoicesMixin - ) -], SlashCommandNumberOption); - -// src/interactions/slashCommands/options/role.ts -var import_v1022 = require("discord-api-types/v10"); -var SlashCommandRoleOption = class extends ApplicationCommandOptionBase { - static { - __name(this, "SlashCommandRoleOption"); - } - /** - * The type of this option. - */ - type = import_v1022.ApplicationCommandOptionType.Role; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - return { ...this }; - } -}; - -// src/interactions/slashCommands/options/string.ts -var import_shapeshift11 = require("@sapphire/shapeshift"); -var import_v1023 = require("discord-api-types/v10"); -var import_ts_mixer4 = require("ts-mixer"); -var minLengthValidator2 = import_shapeshift11.s.number().greaterThanOrEqual(0).lessThanOrEqual(6e3); -var maxLengthValidator2 = import_shapeshift11.s.number().greaterThanOrEqual(1).lessThanOrEqual(6e3); -var SlashCommandStringOption = class extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - type = import_v1023.ApplicationCommandOptionType.String; - /** - * The maximum length of this option. - */ - max_length; - /** - * The minimum length of this option. - */ - min_length; - /** - * Sets the maximum length of this string option. - * - * @param max - The maximum length this option can be - */ - setMaxLength(max) { - maxLengthValidator2.parse(max); - Reflect.set(this, "max_length", max); - return this; - } - /** - * Sets the minimum length of this string option. - * - * @param min - The minimum length this option can be - */ - setMinLength(min) { - minLengthValidator2.parse(min); - Reflect.set(this, "min_length", min); - return this; - } - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - if (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) { - throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); - } - return { ...this }; - } -}; -__name(SlashCommandStringOption, "SlashCommandStringOption"); -SlashCommandStringOption = __decorateClass([ - (0, import_ts_mixer4.mix)(ApplicationCommandOptionWithAutocompleteMixin, ApplicationCommandOptionWithChoicesMixin) -], SlashCommandStringOption); - -// src/interactions/slashCommands/options/user.ts -var import_v1024 = require("discord-api-types/v10"); -var SlashCommandUserOption = class extends ApplicationCommandOptionBase { - static { - __name(this, "SlashCommandUserOption"); - } - /** - * The type of this option. - */ - type = import_v1024.ApplicationCommandOptionType.User; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - return { ...this }; - } -}; - -// src/interactions/slashCommands/mixins/SharedSlashCommandOptions.ts -var SharedSlashCommandOptions = class { - static { - __name(this, "SharedSlashCommandOptions"); - } - options; - /** - * Adds a boolean option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addBooleanOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandBooleanOption); - } - /** - * Adds a user option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addUserOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandUserOption); - } - /** - * Adds a channel option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addChannelOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandChannelOption); - } - /** - * Adds a role option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addRoleOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandRoleOption); - } - /** - * Adds an attachment option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addAttachmentOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandAttachmentOption); - } - /** - * Adds a mentionable option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addMentionableOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandMentionableOption); - } - /** - * Adds a string option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addStringOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandStringOption); - } - /** - * Adds an integer option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addIntegerOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandIntegerOption); - } - /** - * Adds a number option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addNumberOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandNumberOption); - } - /** - * Where the actual adding magic happens. ✨ - * - * @param input - The input. What else? - * @param Instance - The instance of whatever is being added - * @internal - */ - _sharedAddOptionMethod(input, Instance) { - const { options } = this; - validateMaxOptionsLength(options); - const result = typeof input === "function" ? input(new Instance()) : input; - assertReturnOfBuilder(result, Instance); - options.push(result); - return this; - } -}; - -// src/interactions/slashCommands/SlashCommandSubcommands.ts -var import_v1025 = require("discord-api-types/v10"); -var import_ts_mixer5 = require("ts-mixer"); -var SlashCommandSubcommandGroupBuilder = class { - /** - * The name of this subcommand group. - */ - name = void 0; - /** - * The description of this subcommand group. - */ - description = void 0; - /** - * The subcommands within this subcommand group. - */ - options = []; - /** - * Adds a new subcommand to this group. - * - * @param input - A function that returns a subcommand builder or an already built builder - */ - addSubcommand(input) { - const { options } = this; - validateMaxOptionsLength(options); - const result = typeof input === "function" ? input(new SlashCommandSubcommandBuilder()) : input; - assertReturnOfBuilder(result, SlashCommandSubcommandBuilder); - options.push(result); - return this; - } - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON() { - validateRequiredParameters3(this.name, this.description, this.options); - return { - type: import_v1025.ApplicationCommandOptionType.SubcommandGroup, - name: this.name, - name_localizations: this.name_localizations, - description: this.description, - description_localizations: this.description_localizations, - options: this.options.map((option) => option.toJSON()) - }; - } -}; -__name(SlashCommandSubcommandGroupBuilder, "SlashCommandSubcommandGroupBuilder"); -SlashCommandSubcommandGroupBuilder = __decorateClass([ - (0, import_ts_mixer5.mix)(SharedNameAndDescription) -], SlashCommandSubcommandGroupBuilder); -var SlashCommandSubcommandBuilder = class { - /** - * The name of this subcommand. - */ - name = void 0; - /** - * The description of this subcommand. - */ - description = void 0; - /** - * The options within this subcommand. - */ - options = []; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON() { - validateRequiredParameters3(this.name, this.description, this.options); - return { - type: import_v1025.ApplicationCommandOptionType.Subcommand, - name: this.name, - name_localizations: this.name_localizations, - description: this.description, - description_localizations: this.description_localizations, - options: this.options.map((option) => option.toJSON()) - }; - } -}; -__name(SlashCommandSubcommandBuilder, "SlashCommandSubcommandBuilder"); -SlashCommandSubcommandBuilder = __decorateClass([ - (0, import_ts_mixer5.mix)(SharedNameAndDescription, SharedSlashCommandOptions) -], SlashCommandSubcommandBuilder); - -// src/interactions/slashCommands/mixins/SharedSubcommands.ts -var SharedSlashCommandSubcommands = class { - static { - __name(this, "SharedSlashCommandSubcommands"); - } - options = []; - /** - * Adds a new subcommand group to this command. - * - * @param input - A function that returns a subcommand group builder or an already built builder - */ - addSubcommandGroup(input) { - const { options } = this; - validateMaxOptionsLength(options); - const result = typeof input === "function" ? input(new SlashCommandSubcommandGroupBuilder()) : input; - assertReturnOfBuilder(result, SlashCommandSubcommandGroupBuilder); - options.push(result); - return this; - } - /** - * Adds a new subcommand to this command. - * - * @param input - A function that returns a subcommand builder or an already built builder - */ - addSubcommand(input) { - const { options } = this; - validateMaxOptionsLength(options); - const result = typeof input === "function" ? input(new SlashCommandSubcommandBuilder()) : input; - assertReturnOfBuilder(result, SlashCommandSubcommandBuilder); - options.push(result); - return this; - } -}; - -// src/interactions/slashCommands/SlashCommandBuilder.ts -var SlashCommandBuilder = class { - /** - * The name of this command. - */ - name = void 0; - /** - * The name localizations of this command. - */ - name_localizations; - /** - * The description of this command. - */ - description = void 0; - /** - * The description localizations of this command. - */ - description_localizations; - /** - * The options of this command. - */ - options = []; - /** - * The contexts for this command. - */ - contexts; - /** - * Whether this command is enabled by default when the application is added to a guild. - * - * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. - */ - default_permission = void 0; - /** - * The set of permissions represented as a bit set for the command. - */ - default_member_permissions = void 0; - /** - * Indicates whether the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This property is only for global commands. - * @deprecated - * Use {@link SlashCommandBuilder.contexts} instead. - */ - dm_permission = void 0; - /** - * The integration types for this command. - */ - integration_types; - /** - * Whether this command is NSFW. - */ - nsfw = void 0; -}; -__name(SlashCommandBuilder, "SlashCommandBuilder"); -SlashCommandBuilder = __decorateClass([ - (0, import_ts_mixer6.mix)(SharedSlashCommandOptions, SharedNameAndDescription, SharedSlashCommandSubcommands, SharedSlashCommand) -], SlashCommandBuilder); - -// src/interactions/contextMenuCommands/Assertions.ts -var Assertions_exports6 = {}; -__export(Assertions_exports6, { - contextsPredicate: () => contextsPredicate2, - integrationTypesPredicate: () => integrationTypesPredicate2, - validateDMPermission: () => validateDMPermission2, - validateDefaultMemberPermissions: () => validateDefaultMemberPermissions2, - validateDefaultPermission: () => validateDefaultPermission2, - validateName: () => validateName2, - validateRequiredParameters: () => validateRequiredParameters4, - validateType: () => validateType -}); -var import_shapeshift12 = require("@sapphire/shapeshift"); -var import_v1026 = require("discord-api-types/v10"); -var namePredicate2 = import_shapeshift12.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(32).regex(/^( *[\p{P}\p{L}\p{N}\p{sc=Devanagari}\p{sc=Thai}]+ *)+$/u).setValidationEnabled(isValidationEnabled); -var typePredicate = import_shapeshift12.s.union([import_shapeshift12.s.literal(import_v1026.ApplicationCommandType.User), import_shapeshift12.s.literal(import_v1026.ApplicationCommandType.Message)]).setValidationEnabled(isValidationEnabled); -var booleanPredicate3 = import_shapeshift12.s.boolean(); -function validateDefaultPermission2(value) { - booleanPredicate3.parse(value); -} -__name(validateDefaultPermission2, "validateDefaultPermission"); -function validateName2(name) { - namePredicate2.parse(name); -} -__name(validateName2, "validateName"); -function validateType(type) { - typePredicate.parse(type); -} -__name(validateType, "validateType"); -function validateRequiredParameters4(name, type) { - validateName2(name); - validateType(type); -} -__name(validateRequiredParameters4, "validateRequiredParameters"); -var dmPermissionPredicate2 = import_shapeshift12.s.boolean().nullish(); -function validateDMPermission2(value) { - dmPermissionPredicate2.parse(value); -} -__name(validateDMPermission2, "validateDMPermission"); -var memberPermissionPredicate2 = import_shapeshift12.s.union([ - import_shapeshift12.s.bigint().transform((value) => value.toString()), - import_shapeshift12.s.number().safeInt().transform((value) => value.toString()), - import_shapeshift12.s.string().regex(/^\d+$/) -]).nullish(); -function validateDefaultMemberPermissions2(permissions) { - return memberPermissionPredicate2.parse(permissions); -} -__name(validateDefaultMemberPermissions2, "validateDefaultMemberPermissions"); -var contextsPredicate2 = import_shapeshift12.s.array( - import_shapeshift12.s.nativeEnum(import_v1026.InteractionContextType).setValidationEnabled(isValidationEnabled) -); -var integrationTypesPredicate2 = import_shapeshift12.s.array( - import_shapeshift12.s.nativeEnum(import_v1026.ApplicationIntegrationType).setValidationEnabled(isValidationEnabled) -); - -// src/interactions/contextMenuCommands/ContextMenuCommandBuilder.ts -var ContextMenuCommandBuilder = class { - static { - __name(this, "ContextMenuCommandBuilder"); - } - /** - * The name of this command. - */ - name = void 0; - /** - * The name localizations of this command. - */ - name_localizations; - /** - * The type of this command. - */ - type = void 0; - /** - * The contexts for this command. - */ - contexts; - /** - * Whether this command is enabled by default when the application is added to a guild. - * - * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead. - */ - default_permission = void 0; - /** - * The set of permissions represented as a bit set for the command. - */ - default_member_permissions = void 0; - /** - * Indicates whether the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This property is only for global commands. - * @deprecated - * Use {@link ContextMenuCommandBuilder.contexts} instead. - */ - dm_permission = void 0; - /** - * The integration types for this command. - */ - integration_types; - /** - * Sets the contexts of this command. - * - * @param contexts - The contexts - */ - setContexts(...contexts) { - Reflect.set(this, "contexts", contextsPredicate2.parse(normalizeArray(contexts))); - return this; - } - /** - * Sets integration types of this command. - * - * @param integrationTypes - The integration types - */ - setIntegrationTypes(...integrationTypes) { - Reflect.set(this, "integration_types", integrationTypesPredicate2.parse(normalizeArray(integrationTypes))); - return this; - } - /** - * Sets the name of this command. - * - * @param name - The name to use - */ - setName(name) { - validateName2(name); - Reflect.set(this, "name", name); - return this; - } - /** - * Sets the type of this command. - * - * @param type - The type to use - */ - setType(type) { - validateType(type); - Reflect.set(this, "type", type); - return this; - } - /** - * Sets whether the command is enabled by default when the application is added to a guild. - * - * @remarks - * If set to `false`, you will have to later `PUT` the permissions for this command. - * @param value - Whether to enable this command by default - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead. - */ - setDefaultPermission(value) { - validateDefaultPermission2(value); - Reflect.set(this, "default_permission", value); - return this; - } - /** - * Sets the default permissions a member should have in order to run this command. - * - * @remarks - * You can set this to `'0'` to disable the command by default. - * @param permissions - The permissions bit field to set - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - */ - setDefaultMemberPermissions(permissions) { - const permissionValue = validateDefaultMemberPermissions2(permissions); - Reflect.set(this, "default_member_permissions", permissionValue); - return this; - } - /** - * Sets if the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This method is only for global commands. - * @param enabled - Whether the command should be enabled in direct messages - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - * @deprecated Use {@link ContextMenuCommandBuilder.setContexts} instead. - */ - setDMPermission(enabled) { - validateDMPermission2(enabled); - Reflect.set(this, "dm_permission", enabled); - return this; - } - /** - * Sets a name localization for this command. - * - * @param locale - The locale to set - * @param localizedName - The localized name for the given `locale` - */ - setNameLocalization(locale, localizedName) { - if (!this.name_localizations) { - Reflect.set(this, "name_localizations", {}); - } - const parsedLocale = validateLocale(locale); - if (localizedName === null) { - this.name_localizations[parsedLocale] = null; - return this; - } - validateName2(localizedName); - this.name_localizations[parsedLocale] = localizedName; - return this; - } - /** - * Sets the name localizations for this command. - * - * @param localizedNames - The object of localized names to set - */ - setNameLocalizations(localizedNames) { - if (localizedNames === null) { - Reflect.set(this, "name_localizations", null); - return this; - } - Reflect.set(this, "name_localizations", {}); - for (const args of Object.entries(localizedNames)) - this.setNameLocalization(...args); - return this; - } - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON() { - validateRequiredParameters4(this.name, this.type); - validateLocalizationMap(this.name_localizations); - return { ...this }; - } -}; - -// src/util/componentUtil.ts -function embedLength(data) { - return (data.title?.length ?? 0) + (data.description?.length ?? 0) + (data.fields?.reduce((prev, curr) => prev + curr.name.length + curr.value.length, 0) ?? 0) + (data.footer?.text.length ?? 0) + (data.author?.name.length ?? 0); -} -__name(embedLength, "embedLength"); - -// src/index.ts -var version = "1.9.0"; -// Annotate the CommonJS export names for ESM import in node: -0 && (module.exports = { - ActionRowBuilder, - ApplicationCommandNumericOptionMinMaxValueMixin, - ApplicationCommandOptionBase, - ApplicationCommandOptionChannelTypesMixin, - ApplicationCommandOptionWithAutocompleteMixin, - ApplicationCommandOptionWithChoicesMixin, - BaseSelectMenuBuilder, - ButtonBuilder, - ChannelSelectMenuBuilder, - ComponentAssertions, - ComponentBuilder, - ContextMenuCommandAssertions, - ContextMenuCommandBuilder, - EmbedAssertions, - EmbedBuilder, - MentionableSelectMenuBuilder, - ModalAssertions, - ModalBuilder, - RoleSelectMenuBuilder, - SelectMenuBuilder, - SelectMenuOptionBuilder, - SharedNameAndDescription, - SharedSlashCommand, - SharedSlashCommandOptions, - SharedSlashCommandSubcommands, - SlashCommandAssertions, - SlashCommandAttachmentOption, - SlashCommandBooleanOption, - SlashCommandBuilder, - SlashCommandChannelOption, - SlashCommandIntegerOption, - SlashCommandMentionableOption, - SlashCommandNumberOption, - SlashCommandRoleOption, - SlashCommandStringOption, - SlashCommandSubcommandBuilder, - SlashCommandSubcommandGroupBuilder, - SlashCommandUserOption, - StringSelectMenuBuilder, - StringSelectMenuOptionBuilder, - TextInputAssertions, - TextInputBuilder, - UserSelectMenuBuilder, - createComponentBuilder, - disableValidators, - embedLength, - enableValidators, - isValidationEnabled, - normalizeArray, - version, - ...require("@discordjs/formatters") -}); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@discordjs/builders/dist/index.js.map b/node_modules/@discordjs/builders/dist/index.js.map deleted file mode 100644 index 096423b..0000000 --- a/node_modules/@discordjs/builders/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/index.ts","../src/messages/embed/Assertions.ts","../src/util/validation.ts","../src/util/normalizeArray.ts","../src/messages/embed/Embed.ts","../src/components/Assertions.ts","../src/components/selectMenu/StringSelectMenuOption.ts","../src/components/ActionRow.ts","../src/components/Component.ts","../src/components/Components.ts","../src/components/button/Button.ts","../src/components/selectMenu/ChannelSelectMenu.ts","../src/components/selectMenu/BaseSelectMenu.ts","../src/components/selectMenu/MentionableSelectMenu.ts","../src/components/selectMenu/RoleSelectMenu.ts","../src/components/selectMenu/StringSelectMenu.ts","../src/components/selectMenu/UserSelectMenu.ts","../src/components/textInput/TextInput.ts","../src/components/textInput/Assertions.ts","../src/interactions/modals/Assertions.ts","../src/interactions/modals/Modal.ts","../src/interactions/slashCommands/Assertions.ts","../src/interactions/slashCommands/SlashCommandBuilder.ts","../src/interactions/slashCommands/mixins/NameAndDescription.ts","../src/interactions/slashCommands/mixins/SharedSlashCommand.ts","../src/interactions/slashCommands/options/attachment.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionBase.ts","../src/interactions/slashCommands/options/boolean.ts","../src/interactions/slashCommands/options/channel.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin.ts","../src/interactions/slashCommands/options/integer.ts","../src/interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionWithAutocompleteMixin.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesMixin.ts","../src/interactions/slashCommands/options/mentionable.ts","../src/interactions/slashCommands/options/number.ts","../src/interactions/slashCommands/options/role.ts","../src/interactions/slashCommands/options/string.ts","../src/interactions/slashCommands/options/user.ts","../src/interactions/slashCommands/mixins/SharedSlashCommandOptions.ts","../src/interactions/slashCommands/SlashCommandSubcommands.ts","../src/interactions/slashCommands/mixins/SharedSubcommands.ts","../src/interactions/contextMenuCommands/Assertions.ts","../src/interactions/contextMenuCommands/ContextMenuCommandBuilder.ts","../src/util/componentUtil.ts"],"sourcesContent":["export * as EmbedAssertions from './messages/embed/Assertions.js';\nexport * from './messages/embed/Embed.js';\n// TODO: Consider removing this dep in the next major version\nexport * from '@discordjs/formatters';\n\nexport * as ComponentAssertions from './components/Assertions.js';\nexport * from './components/ActionRow.js';\nexport * from './components/button/Button.js';\nexport * from './components/Component.js';\nexport * from './components/Components.js';\nexport * from './components/textInput/TextInput.js';\nexport * as TextInputAssertions from './components/textInput/Assertions.js';\nexport * from './interactions/modals/Modal.js';\nexport * as ModalAssertions from './interactions/modals/Assertions.js';\n\nexport * from './components/selectMenu/BaseSelectMenu.js';\nexport * from './components/selectMenu/ChannelSelectMenu.js';\nexport * from './components/selectMenu/MentionableSelectMenu.js';\nexport * from './components/selectMenu/RoleSelectMenu.js';\nexport * from './components/selectMenu/StringSelectMenu.js';\n// TODO: Remove those aliases in v2\nexport {\n\t/**\n\t * @deprecated Will be removed in the next major version, use {@link StringSelectMenuBuilder} instead.\n\t */\n\tStringSelectMenuBuilder as SelectMenuBuilder,\n} from './components/selectMenu/StringSelectMenu.js';\nexport {\n\t/**\n\t * @deprecated Will be removed in the next major version, use {@link StringSelectMenuOptionBuilder} instead.\n\t */\n\tStringSelectMenuOptionBuilder as SelectMenuOptionBuilder,\n} from './components/selectMenu/StringSelectMenuOption.js';\nexport * from './components/selectMenu/StringSelectMenuOption.js';\nexport * from './components/selectMenu/UserSelectMenu.js';\n\nexport * as SlashCommandAssertions from './interactions/slashCommands/Assertions.js';\nexport * from './interactions/slashCommands/SlashCommandBuilder.js';\nexport * from './interactions/slashCommands/SlashCommandSubcommands.js';\nexport * from './interactions/slashCommands/options/boolean.js';\nexport * from './interactions/slashCommands/options/channel.js';\nexport * from './interactions/slashCommands/options/integer.js';\nexport * from './interactions/slashCommands/options/mentionable.js';\nexport * from './interactions/slashCommands/options/number.js';\nexport * from './interactions/slashCommands/options/role.js';\nexport * from './interactions/slashCommands/options/attachment.js';\nexport * from './interactions/slashCommands/options/string.js';\nexport * from './interactions/slashCommands/options/user.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandOptionBase.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandOptionWithAutocompleteMixin.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesMixin.js';\nexport * from './interactions/slashCommands/mixins/NameAndDescription.js';\nexport * from './interactions/slashCommands/mixins/SharedSlashCommandOptions.js';\nexport * from './interactions/slashCommands/mixins/SharedSubcommands.js';\nexport * from './interactions/slashCommands/mixins/SharedSlashCommand.js';\n\nexport * as ContextMenuCommandAssertions from './interactions/contextMenuCommands/Assertions.js';\nexport * from './interactions/contextMenuCommands/ContextMenuCommandBuilder.js';\n\nexport * from './util/componentUtil.js';\nexport * from './util/normalizeArray.js';\nexport * from './util/validation.js';\n\n/**\n * The {@link https://github.com/discordjs/discord.js/blob/main/packages/builders#readme | @discordjs/builders} version\n * that you are currently using.\n *\n * @privateRemarks This needs to explicitly be `string` so it is not typed as a \"const string\" that gets injected by esbuild.\n */\nexport const version = '1.9.0' as string;\n","import { s } from '@sapphire/shapeshift';\nimport type { APIEmbedField } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\n\nexport const fieldNamePredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(256)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const fieldValuePredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(1_024)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const fieldInlinePredicate = s.boolean().optional();\n\nexport const embedFieldPredicate = s\n\t.object({\n\t\tname: fieldNamePredicate,\n\t\tvalue: fieldValuePredicate,\n\t\tinline: fieldInlinePredicate,\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const embedFieldsArrayPredicate = embedFieldPredicate.array().setValidationEnabled(isValidationEnabled);\n\nexport const fieldLengthPredicate = s.number().lessThanOrEqual(25).setValidationEnabled(isValidationEnabled);\n\nexport function validateFieldLength(amountAdding: number, fields?: APIEmbedField[]): void {\n\tfieldLengthPredicate.parse((fields?.length ?? 0) + amountAdding);\n}\n\nexport const authorNamePredicate = fieldNamePredicate.nullable().setValidationEnabled(isValidationEnabled);\n\nexport const imageURLPredicate = s\n\t.string()\n\t.url({\n\t\tallowedProtocols: ['http:', 'https:', 'attachment:'],\n\t})\n\t.nullish()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const urlPredicate = s\n\t.string()\n\t.url({\n\t\tallowedProtocols: ['http:', 'https:'],\n\t})\n\t.nullish()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const embedAuthorPredicate = s\n\t.object({\n\t\tname: authorNamePredicate,\n\t\ticonURL: imageURLPredicate,\n\t\turl: urlPredicate,\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const RGBPredicate = s\n\t.number()\n\t.int()\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(255)\n\t.setValidationEnabled(isValidationEnabled);\nexport const colorPredicate = s\n\t.number()\n\t.int()\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(0xffffff)\n\t.or(s.tuple([RGBPredicate, RGBPredicate, RGBPredicate]))\n\t.nullable()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const descriptionPredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(4_096)\n\t.nullable()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const footerTextPredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(2_048)\n\t.nullable()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const embedFooterPredicate = s\n\t.object({\n\t\ttext: footerTextPredicate,\n\t\ticonURL: imageURLPredicate,\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const timestampPredicate = s.union([s.number(), s.date()]).nullable().setValidationEnabled(isValidationEnabled);\n\nexport const titlePredicate = fieldNamePredicate.nullable().setValidationEnabled(isValidationEnabled);\n","let validate = true;\n\n/**\n * Enables validators.\n *\n * @returns Whether validation is occurring.\n */\nexport function enableValidators() {\n\treturn (validate = true);\n}\n\n/**\n * Disables validators.\n *\n * @returns Whether validation is occurring.\n */\nexport function disableValidators() {\n\treturn (validate = false);\n}\n\n/**\n * Checks whether validation is occurring.\n */\nexport function isValidationEnabled() {\n\treturn validate;\n}\n","/**\n * Normalizes data that is a rest parameter or an array into an array with a depth of 1.\n *\n * @typeParam ItemType - The data that must satisfy {@link RestOrArray}.\n * @param arr - The (possibly variadic) data to normalize\n */\nexport function normalizeArray(arr: RestOrArray): ItemType[] {\n\tif (Array.isArray(arr[0])) return [...arr[0]];\n\treturn arr as ItemType[];\n}\n\n/**\n * Represents data that may be an array or came from a rest parameter.\n *\n * @remarks\n * This type is used throughout builders to ensure both an array and variadic arguments\n * may be used. It is normalized with {@link normalizeArray}.\n */\nexport type RestOrArray = Type[] | [Type[]];\n","import type { APIEmbed, APIEmbedAuthor, APIEmbedField, APIEmbedFooter, APIEmbedImage } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../util/normalizeArray.js';\nimport {\n\tcolorPredicate,\n\tdescriptionPredicate,\n\tembedAuthorPredicate,\n\tembedFieldsArrayPredicate,\n\tembedFooterPredicate,\n\timageURLPredicate,\n\ttimestampPredicate,\n\ttitlePredicate,\n\turlPredicate,\n\tvalidateFieldLength,\n} from './Assertions.js';\n\n/**\n * A tuple satisfying the RGB color model.\n *\n * @see {@link https://developer.mozilla.org/docs/Glossary/RGB}\n */\nexport type RGBTuple = [red: number, green: number, blue: number];\n\n/**\n * The base icon data typically used in payloads.\n */\nexport interface IconData {\n\t/**\n\t * The URL of the icon.\n\t */\n\ticonURL?: string;\n\t/**\n\t * The proxy URL of the icon.\n\t */\n\tproxyIconURL?: string;\n}\n\n/**\n * Represents the author data of an embed.\n */\nexport interface EmbedAuthorData extends IconData, Omit {}\n\n/**\n * Represents the author options of an embed.\n */\nexport interface EmbedAuthorOptions extends Omit {}\n\n/**\n * Represents the footer data of an embed.\n */\nexport interface EmbedFooterData extends IconData, Omit {}\n\n/**\n * Represents the footer options of an embed.\n */\nexport interface EmbedFooterOptions extends Omit {}\n\n/**\n * Represents the image data of an embed.\n */\nexport interface EmbedImageData extends Omit {\n\t/**\n\t * The proxy URL for the image.\n\t */\n\tproxyURL?: string;\n}\n\n/**\n * A builder that creates API-compatible JSON data for embeds.\n */\nexport class EmbedBuilder {\n\t/**\n\t * The API data associated with this embed.\n\t */\n\tpublic readonly data: APIEmbed;\n\n\t/**\n\t * Creates a new embed from API data.\n\t *\n\t * @param data - The API data to create this embed with\n\t */\n\tpublic constructor(data: APIEmbed = {}) {\n\t\tthis.data = { ...data };\n\t\tif (data.timestamp) this.data.timestamp = new Date(data.timestamp).toISOString();\n\t}\n\n\t/**\n\t * Appends fields to the embed.\n\t *\n\t * @remarks\n\t * This method accepts either an array of fields or a variable number of field parameters.\n\t * The maximum amount of fields that can be added is 25.\n\t * @example\n\t * Using an array:\n\t * ```ts\n\t * const fields: APIEmbedField[] = ...;\n\t * const embed = new EmbedBuilder()\n\t * \t.addFields(fields);\n\t * ```\n\t * @example\n\t * Using rest parameters (variadic):\n\t * ```ts\n\t * const embed = new EmbedBuilder()\n\t * \t.addFields(\n\t * \t\t{ name: 'Field 1', value: 'Value 1' },\n\t * \t\t{ name: 'Field 2', value: 'Value 2' },\n\t * \t);\n\t * ```\n\t * @param fields - The fields to add\n\t */\n\tpublic addFields(...fields: RestOrArray): this {\n\t\tconst normalizedFields = normalizeArray(fields);\n\t\t// Ensure adding these fields won't exceed the 25 field limit\n\t\tvalidateFieldLength(normalizedFields.length, this.data.fields);\n\n\t\t// Data assertions\n\t\tembedFieldsArrayPredicate.parse(normalizedFields);\n\n\t\tif (this.data.fields) this.data.fields.push(...normalizedFields);\n\t\telse this.data.fields = normalizedFields;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts fields for this embed.\n\t *\n\t * @remarks\n\t * This method behaves similarly\n\t * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}.\n\t * The maximum amount of fields that can be added is 25.\n\t *\n\t * It's useful for modifying and adjusting order of the already-existing fields of an embed.\n\t * @example\n\t * Remove the first field:\n\t * ```ts\n\t * embed.spliceFields(0, 1);\n\t * ```\n\t * @example\n\t * Remove the first n fields:\n\t * ```ts\n\t * const n = 4;\n\t * embed.spliceFields(0, n);\n\t * ```\n\t * @example\n\t * Remove the last field:\n\t * ```ts\n\t * embed.spliceFields(-1, 1);\n\t * ```\n\t * @param index - The index to start at\n\t * @param deleteCount - The number of fields to remove\n\t * @param fields - The replacing field objects\n\t */\n\tpublic spliceFields(index: number, deleteCount: number, ...fields: APIEmbedField[]): this {\n\t\t// Ensure adding these fields won't exceed the 25 field limit\n\t\tvalidateFieldLength(fields.length - deleteCount, this.data.fields);\n\n\t\t// Data assertions\n\t\tembedFieldsArrayPredicate.parse(fields);\n\t\tif (this.data.fields) this.data.fields.splice(index, deleteCount, ...fields);\n\t\telse this.data.fields = fields;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the fields for this embed.\n\t *\n\t * @remarks\n\t * This method is an alias for {@link EmbedBuilder.spliceFields}. More specifically,\n\t * it splices the entire array of fields, replacing them with the provided fields.\n\t *\n\t * You can set a maximum of 25 fields.\n\t * @param fields - The fields to set\n\t */\n\tpublic setFields(...fields: RestOrArray): this {\n\t\tthis.spliceFields(0, this.data.fields?.length ?? 0, ...normalizeArray(fields));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the author of this embed.\n\t *\n\t * @param options - The options to use\n\t */\n\n\tpublic setAuthor(options: EmbedAuthorOptions | null): this {\n\t\tif (options === null) {\n\t\t\tthis.data.author = undefined;\n\t\t\treturn this;\n\t\t}\n\n\t\t// Data assertions\n\t\tembedAuthorPredicate.parse(options);\n\n\t\tthis.data.author = { name: options.name, url: options.url, icon_url: options.iconURL };\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the color of this embed.\n\t *\n\t * @param color - The color to use\n\t */\n\tpublic setColor(color: RGBTuple | number | null): this {\n\t\t// Data assertions\n\t\tcolorPredicate.parse(color);\n\n\t\tif (Array.isArray(color)) {\n\t\t\tconst [red, green, blue] = color;\n\t\t\tthis.data.color = (red << 16) + (green << 8) + blue;\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.data.color = color ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description of this embed.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string | null): this {\n\t\t// Data assertions\n\t\tdescriptionPredicate.parse(description);\n\n\t\tthis.data.description = description ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the footer of this embed.\n\t *\n\t * @param options - The footer to use\n\t */\n\tpublic setFooter(options: EmbedFooterOptions | null): this {\n\t\tif (options === null) {\n\t\t\tthis.data.footer = undefined;\n\t\t\treturn this;\n\t\t}\n\n\t\t// Data assertions\n\t\tembedFooterPredicate.parse(options);\n\n\t\tthis.data.footer = { text: options.text, icon_url: options.iconURL };\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the image of this embed.\n\t *\n\t * @param url - The image URL to use\n\t */\n\tpublic setImage(url: string | null): this {\n\t\t// Data assertions\n\t\timageURLPredicate.parse(url);\n\n\t\tthis.data.image = url ? { url } : undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the thumbnail of this embed.\n\t *\n\t * @param url - The thumbnail URL to use\n\t */\n\tpublic setThumbnail(url: string | null): this {\n\t\t// Data assertions\n\t\timageURLPredicate.parse(url);\n\n\t\tthis.data.thumbnail = url ? { url } : undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the timestamp of this embed.\n\t *\n\t * @param timestamp - The timestamp or date to use\n\t */\n\tpublic setTimestamp(timestamp: Date | number | null = Date.now()): this {\n\t\t// Data assertions\n\t\ttimestampPredicate.parse(timestamp);\n\n\t\tthis.data.timestamp = timestamp ? new Date(timestamp).toISOString() : undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the title for this embed.\n\t *\n\t * @param title - The title to use\n\t */\n\tpublic setTitle(title: string | null): this {\n\t\t// Data assertions\n\t\ttitlePredicate.parse(title);\n\n\t\tthis.data.title = title ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the URL of this embed.\n\t *\n\t * @param url - The URL to use\n\t */\n\tpublic setURL(url: string | null): this {\n\t\t// Data assertions\n\t\turlPredicate.parse(url);\n\n\t\tthis.data.url = url ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): APIEmbed {\n\t\treturn { ...this.data };\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ButtonStyle, ChannelType, type APIMessageComponentEmoji } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../util/validation.js';\nimport { StringSelectMenuOptionBuilder } from './selectMenu/StringSelectMenuOption.js';\n\nexport const customIdValidator = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(100)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const emojiValidator = s\n\t.object({\n\t\tid: s.string(),\n\t\tname: s.string(),\n\t\tanimated: s.boolean(),\n\t})\n\t.partial()\n\t.strict()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const disabledValidator = s.boolean();\n\nexport const buttonLabelValidator = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(80)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const buttonStyleValidator = s.nativeEnum(ButtonStyle);\n\nexport const placeholderValidator = s.string().lengthLessThanOrEqual(150).setValidationEnabled(isValidationEnabled);\nexport const minMaxValidator = s\n\t.number()\n\t.int()\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(25)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const labelValueDescriptionValidator = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(100)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const jsonOptionValidator = s\n\t.object({\n\t\tlabel: labelValueDescriptionValidator,\n\t\tvalue: labelValueDescriptionValidator,\n\t\tdescription: labelValueDescriptionValidator.optional(),\n\t\temoji: emojiValidator.optional(),\n\t\tdefault: s.boolean().optional(),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const optionValidator = s.instance(StringSelectMenuOptionBuilder).setValidationEnabled(isValidationEnabled);\n\nexport const optionsValidator = optionValidator\n\t.array()\n\t.lengthGreaterThanOrEqual(0)\n\t.setValidationEnabled(isValidationEnabled);\nexport const optionsLengthValidator = s\n\t.number()\n\t.int()\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(25)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateRequiredSelectMenuParameters(options: StringSelectMenuOptionBuilder[], customId?: string) {\n\tcustomIdValidator.parse(customId);\n\toptionsValidator.parse(options);\n}\n\nexport const defaultValidator = s.boolean();\n\nexport function validateRequiredSelectMenuOptionParameters(label?: string, value?: string) {\n\tlabelValueDescriptionValidator.parse(label);\n\tlabelValueDescriptionValidator.parse(value);\n}\n\nexport const channelTypesValidator = s.nativeEnum(ChannelType).array().setValidationEnabled(isValidationEnabled);\n\nexport const urlValidator = s\n\t.string()\n\t.url({\n\t\tallowedProtocols: ['http:', 'https:', 'discord:'],\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateRequiredButtonParameters(\n\tstyle?: ButtonStyle,\n\tlabel?: string,\n\temoji?: APIMessageComponentEmoji,\n\tcustomId?: string,\n\tskuId?: string,\n\turl?: string,\n) {\n\tif (style === ButtonStyle.Premium) {\n\t\tif (!skuId) {\n\t\t\tthrow new RangeError('Premium buttons must have an SKU id.');\n\t\t}\n\n\t\tif (customId || label || url || emoji) {\n\t\t\tthrow new RangeError('Premium buttons cannot have a custom id, label, URL, or emoji.');\n\t\t}\n\t} else {\n\t\tif (skuId) {\n\t\t\tthrow new RangeError('Non-premium buttons must not have an SKU id.');\n\t\t}\n\n\t\tif (url && customId) {\n\t\t\tthrow new RangeError('URL and custom id are mutually exclusive.');\n\t\t}\n\n\t\tif (!label && !emoji) {\n\t\t\tthrow new RangeError('Non-premium buttons must have a label and/or an emoji.');\n\t\t}\n\n\t\tif (style === ButtonStyle.Link) {\n\t\t\tif (!url) {\n\t\t\t\tthrow new RangeError('Link buttons must have a URL.');\n\t\t\t}\n\t\t} else if (url) {\n\t\t\tthrow new RangeError('Non-premium and non-link buttons cannot have a URL.');\n\t\t}\n\t}\n}\n","import type { JSONEncodable } from '@discordjs/util';\nimport type { APIMessageComponentEmoji, APISelectMenuOption } from 'discord-api-types/v10';\nimport {\n\tdefaultValidator,\n\temojiValidator,\n\tlabelValueDescriptionValidator,\n\tvalidateRequiredSelectMenuOptionParameters,\n} from '../Assertions.js';\n\n/**\n * A builder that creates API-compatible JSON data for string select menu options.\n */\nexport class StringSelectMenuOptionBuilder implements JSONEncodable {\n\t/**\n\t * Creates a new string select menu option from API data.\n\t *\n\t * @param data - The API data to create this string select menu option with\n\t * @example\n\t * Creating a string select menu option from an API data object:\n\t * ```ts\n\t * const selectMenuOption = new SelectMenuOptionBuilder({\n\t * \tlabel: 'catchy label',\n\t * \tvalue: '1',\n\t * });\n\t * ```\n\t * @example\n\t * Creating a string select menu option using setters and API data:\n\t * ```ts\n\t * const selectMenuOption = new SelectMenuOptionBuilder({\n\t * \tdefault: true,\n\t * \tvalue: '1',\n\t * })\n\t * \t.setLabel('woah');\n\t * ```\n\t */\n\tpublic constructor(public data: Partial = {}) {}\n\n\t/**\n\t * Sets the label for this option.\n\t *\n\t * @param label - The label to use\n\t */\n\tpublic setLabel(label: string) {\n\t\tthis.data.label = labelValueDescriptionValidator.parse(label);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the value for this option.\n\t *\n\t * @param value - The value to use\n\t */\n\tpublic setValue(value: string) {\n\t\tthis.data.value = labelValueDescriptionValidator.parse(value);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description for this option.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string) {\n\t\tthis.data.description = labelValueDescriptionValidator.parse(description);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this option is selected by default.\n\t *\n\t * @param isDefault - Whether this option is selected by default\n\t */\n\tpublic setDefault(isDefault = true) {\n\t\tthis.data.default = defaultValidator.parse(isDefault);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the emoji to display for this option.\n\t *\n\t * @param emoji - The emoji to use\n\t */\n\tpublic setEmoji(emoji: APIMessageComponentEmoji) {\n\t\tthis.data.emoji = emojiValidator.parse(emoji);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc BaseSelectMenuBuilder.toJSON}\n\t */\n\tpublic toJSON(): APISelectMenuOption {\n\t\tvalidateRequiredSelectMenuOptionParameters(this.data.label, this.data.value);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APISelectMenuOption;\n\t}\n}\n","/* eslint-disable jsdoc/check-param-names */\n\nimport {\n\ttype APIActionRowComponent,\n\tComponentType,\n\ttype APIMessageActionRowComponent,\n\ttype APIModalActionRowComponent,\n\ttype APIActionRowComponentTypes,\n} from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../util/normalizeArray.js';\nimport { ComponentBuilder } from './Component.js';\nimport { createComponentBuilder } from './Components.js';\nimport type { ButtonBuilder } from './button/Button.js';\nimport type { ChannelSelectMenuBuilder } from './selectMenu/ChannelSelectMenu.js';\nimport type { MentionableSelectMenuBuilder } from './selectMenu/MentionableSelectMenu.js';\nimport type { RoleSelectMenuBuilder } from './selectMenu/RoleSelectMenu.js';\nimport type { StringSelectMenuBuilder } from './selectMenu/StringSelectMenu.js';\nimport type { UserSelectMenuBuilder } from './selectMenu/UserSelectMenu.js';\nimport type { TextInputBuilder } from './textInput/TextInput.js';\n\n/**\n * The builders that may be used for messages.\n */\nexport type MessageComponentBuilder =\n\t| ActionRowBuilder\n\t| MessageActionRowComponentBuilder;\n\n/**\n * The builders that may be used for modals.\n */\nexport type ModalComponentBuilder = ActionRowBuilder | ModalActionRowComponentBuilder;\n\n/**\n * The builders that may be used within an action row for messages.\n */\nexport type MessageActionRowComponentBuilder =\n\t| ButtonBuilder\n\t| ChannelSelectMenuBuilder\n\t| MentionableSelectMenuBuilder\n\t| RoleSelectMenuBuilder\n\t| StringSelectMenuBuilder\n\t| UserSelectMenuBuilder;\n\n/**\n * The builders that may be used within an action row for modals.\n */\nexport type ModalActionRowComponentBuilder = TextInputBuilder;\n\n/**\n * Any builder.\n */\nexport type AnyComponentBuilder = MessageActionRowComponentBuilder | ModalActionRowComponentBuilder;\n\n/**\n * A builder that creates API-compatible JSON data for action rows.\n *\n * @typeParam ComponentType - The types of components this action row holds\n */\nexport class ActionRowBuilder extends ComponentBuilder<\n\tAPIActionRowComponent\n> {\n\t/**\n\t * The components within this action row.\n\t */\n\tpublic readonly components: ComponentType[];\n\n\t/**\n\t * Creates a new action row from API data.\n\t *\n\t * @param data - The API data to create this action row with\n\t * @example\n\t * Creating an action row from an API data object:\n\t * ```ts\n\t * const actionRow = new ActionRowBuilder({\n\t * \tcomponents: [\n\t * \t\t{\n\t * \t\t\tcustom_id: \"custom id\",\n\t * \t\t\tlabel: \"Type something\",\n\t * \t\t\tstyle: TextInputStyle.Short,\n\t * \t\t\ttype: ComponentType.TextInput,\n\t * \t\t},\n\t * \t],\n\t * });\n\t * ```\n\t * @example\n\t * Creating an action row using setters and API data:\n\t * ```ts\n\t * const actionRow = new ActionRowBuilder({\n\t * \tcomponents: [\n\t * \t\t{\n\t * \t\t\tcustom_id: \"custom id\",\n\t * \t\t\tlabel: \"Click me\",\n\t * \t\t\tstyle: ButtonStyle.Primary,\n\t * \t\t\ttype: ComponentType.Button,\n\t * \t\t},\n\t * \t],\n\t * })\n\t * \t.addComponents(button2, button3);\n\t * ```\n\t */\n\tpublic constructor({ components, ...data }: Partial> = {}) {\n\t\tsuper({ type: ComponentType.ActionRow, ...data });\n\t\tthis.components = (components?.map((component) => createComponentBuilder(component)) ?? []) as ComponentType[];\n\t}\n\n\t/**\n\t * Adds components to this action row.\n\t *\n\t * @param components - The components to add\n\t */\n\tpublic addComponents(...components: RestOrArray) {\n\t\tthis.components.push(...normalizeArray(components));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets components for this action row.\n\t *\n\t * @param components - The components to set\n\t */\n\tpublic setComponents(...components: RestOrArray) {\n\t\tthis.components.splice(0, this.components.length, ...normalizeArray(components));\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIActionRowComponent> {\n\t\treturn {\n\t\t\t...this.data,\n\t\t\tcomponents: this.components.map((component) => component.toJSON()),\n\t\t} as APIActionRowComponent>;\n\t}\n}\n","import type { JSONEncodable } from '@discordjs/util';\nimport type {\n\tAPIActionRowComponent,\n\tAPIActionRowComponentTypes,\n\tAPIBaseComponent,\n\tComponentType,\n} from 'discord-api-types/v10';\n\n/**\n * Any action row component data represented as an object.\n */\nexport type AnyAPIActionRowComponent = APIActionRowComponent | APIActionRowComponentTypes;\n\n/**\n * The base component builder that contains common symbols for all sorts of components.\n *\n * @typeParam DataType - The type of internal API data that is stored within the component\n */\nexport abstract class ComponentBuilder<\n\tDataType extends Partial> = APIBaseComponent,\n> implements JSONEncodable\n{\n\t/**\n\t * The API data associated with this component.\n\t */\n\tpublic readonly data: Partial;\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic abstract toJSON(): AnyAPIActionRowComponent;\n\n\t/**\n\t * Constructs a new kind of component.\n\t *\n\t * @param data - The data to construct a component out of\n\t */\n\tpublic constructor(data: Partial) {\n\t\tthis.data = data;\n\t}\n}\n","import { ComponentType, type APIMessageComponent, type APIModalComponent } from 'discord-api-types/v10';\nimport {\n\tActionRowBuilder,\n\ttype AnyComponentBuilder,\n\ttype MessageComponentBuilder,\n\ttype ModalComponentBuilder,\n} from './ActionRow.js';\nimport { ComponentBuilder } from './Component.js';\nimport { ButtonBuilder } from './button/Button.js';\nimport { ChannelSelectMenuBuilder } from './selectMenu/ChannelSelectMenu.js';\nimport { MentionableSelectMenuBuilder } from './selectMenu/MentionableSelectMenu.js';\nimport { RoleSelectMenuBuilder } from './selectMenu/RoleSelectMenu.js';\nimport { StringSelectMenuBuilder } from './selectMenu/StringSelectMenu.js';\nimport { UserSelectMenuBuilder } from './selectMenu/UserSelectMenu.js';\nimport { TextInputBuilder } from './textInput/TextInput.js';\n\n/**\n * Components here are mapped to their respective builder.\n */\nexport interface MappedComponentTypes {\n\t/**\n\t * The action row component type is associated with an {@link ActionRowBuilder}.\n\t */\n\t[ComponentType.ActionRow]: ActionRowBuilder;\n\t/**\n\t * The button component type is associated with a {@link ButtonBuilder}.\n\t */\n\t[ComponentType.Button]: ButtonBuilder;\n\t/**\n\t * The string select component type is associated with a {@link StringSelectMenuBuilder}.\n\t */\n\t[ComponentType.StringSelect]: StringSelectMenuBuilder;\n\t/**\n\t * The text input component type is associated with a {@link TextInputBuilder}.\n\t */\n\t[ComponentType.TextInput]: TextInputBuilder;\n\t/**\n\t * The user select component type is associated with a {@link UserSelectMenuBuilder}.\n\t */\n\t[ComponentType.UserSelect]: UserSelectMenuBuilder;\n\t/**\n\t * The role select component type is associated with a {@link RoleSelectMenuBuilder}.\n\t */\n\t[ComponentType.RoleSelect]: RoleSelectMenuBuilder;\n\t/**\n\t * The mentionable select component type is associated with a {@link MentionableSelectMenuBuilder}.\n\t */\n\t[ComponentType.MentionableSelect]: MentionableSelectMenuBuilder;\n\t/**\n\t * The channel select component type is associated with a {@link ChannelSelectMenuBuilder}.\n\t */\n\t[ComponentType.ChannelSelect]: ChannelSelectMenuBuilder;\n}\n\n/**\n * Factory for creating components from API data.\n *\n * @typeParam ComponentType - The type of component to use\n * @param data - The API data to transform to a component class\n */\nexport function createComponentBuilder(\n\t// eslint-disable-next-line @typescript-eslint/sort-type-constituents\n\tdata: (APIModalComponent | APIMessageComponent) & { type: ComponentType },\n): MappedComponentTypes[ComponentType];\n\n/**\n * Factory for creating components from API data.\n *\n * @typeParam ComponentBuilder - The type of component to use\n * @param data - The API data to transform to a component class\n */\nexport function createComponentBuilder(\n\tdata: ComponentBuilder,\n): ComponentBuilder;\n\nexport function createComponentBuilder(\n\tdata: APIMessageComponent | APIModalComponent | MessageComponentBuilder,\n): ComponentBuilder {\n\tif (data instanceof ComponentBuilder) {\n\t\treturn data;\n\t}\n\n\tswitch (data.type) {\n\t\tcase ComponentType.ActionRow:\n\t\t\treturn new ActionRowBuilder(data);\n\t\tcase ComponentType.Button:\n\t\t\treturn new ButtonBuilder(data);\n\t\tcase ComponentType.StringSelect:\n\t\t\treturn new StringSelectMenuBuilder(data);\n\t\tcase ComponentType.TextInput:\n\t\t\treturn new TextInputBuilder(data);\n\t\tcase ComponentType.UserSelect:\n\t\t\treturn new UserSelectMenuBuilder(data);\n\t\tcase ComponentType.RoleSelect:\n\t\t\treturn new RoleSelectMenuBuilder(data);\n\t\tcase ComponentType.MentionableSelect:\n\t\t\treturn new MentionableSelectMenuBuilder(data);\n\t\tcase ComponentType.ChannelSelect:\n\t\t\treturn new ChannelSelectMenuBuilder(data);\n\t\tdefault:\n\t\t\t// @ts-expect-error This case can still occur if we get a newer unsupported component type\n\t\t\tthrow new Error(`Cannot properly serialize component type: ${data.type}`);\n\t}\n}\n","import {\n\tComponentType,\n\ttype APIButtonComponent,\n\ttype APIButtonComponentWithCustomId,\n\ttype APIButtonComponentWithSKUId,\n\ttype APIButtonComponentWithURL,\n\ttype APIMessageComponentEmoji,\n\ttype ButtonStyle,\n\ttype Snowflake,\n} from 'discord-api-types/v10';\nimport {\n\tbuttonLabelValidator,\n\tbuttonStyleValidator,\n\tcustomIdValidator,\n\tdisabledValidator,\n\temojiValidator,\n\turlValidator,\n\tvalidateRequiredButtonParameters,\n} from '../Assertions.js';\nimport { ComponentBuilder } from '../Component.js';\n\n/**\n * A builder that creates API-compatible JSON data for buttons.\n */\nexport class ButtonBuilder extends ComponentBuilder {\n\t/**\n\t * Creates a new button from API data.\n\t *\n\t * @param data - The API data to create this button with\n\t * @example\n\t * Creating a button from an API data object:\n\t * ```ts\n\t * const button = new ButtonBuilder({\n\t * \tcustom_id: 'a cool button',\n\t * \tstyle: ButtonStyle.Primary,\n\t * \tlabel: 'Click Me',\n\t * \temoji: {\n\t * \t\tname: 'smile',\n\t * \t\tid: '123456789012345678',\n\t * \t},\n\t * });\n\t * ```\n\t * @example\n\t * Creating a button using setters and API data:\n\t * ```ts\n\t * const button = new ButtonBuilder({\n\t * \tstyle: ButtonStyle.Secondary,\n\t * \tlabel: 'Click Me',\n\t * })\n\t * \t.setEmoji({ name: '🙂' })\n\t * \t.setCustomId('another cool button');\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ type: ComponentType.Button, ...data });\n\t}\n\n\t/**\n\t * Sets the style of this button.\n\t *\n\t * @param style - The style to use\n\t */\n\tpublic setStyle(style: ButtonStyle) {\n\t\tthis.data.style = buttonStyleValidator.parse(style);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the URL for this button.\n\t *\n\t * @remarks\n\t * This method is only available to buttons using the `Link` button style.\n\t * Only three types of URL schemes are currently supported: `https://`, `http://`, and `discord://`.\n\t * @param url - The URL to use\n\t */\n\tpublic setURL(url: string) {\n\t\t(this.data as APIButtonComponentWithURL).url = urlValidator.parse(url);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the custom id for this button.\n\t *\n\t * @remarks\n\t * This method is only applicable to buttons that are not using the `Link` button style.\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\t(this.data as APIButtonComponentWithCustomId).custom_id = customIdValidator.parse(customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the SKU id that represents a purchasable SKU for this button.\n\t *\n\t * @remarks Only available when using premium-style buttons.\n\t * @param skuId - The SKU id to use\n\t */\n\tpublic setSKUId(skuId: Snowflake) {\n\t\t(this.data as APIButtonComponentWithSKUId).sku_id = skuId;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the emoji to display on this button.\n\t *\n\t * @param emoji - The emoji to use\n\t */\n\tpublic setEmoji(emoji: APIMessageComponentEmoji) {\n\t\t(this.data as Exclude).emoji = emojiValidator.parse(emoji);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this button is disabled.\n\t *\n\t * @param disabled - Whether to disable this button\n\t */\n\tpublic setDisabled(disabled = true) {\n\t\tthis.data.disabled = disabledValidator.parse(disabled);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the label for this button.\n\t *\n\t * @param label - The label to use\n\t */\n\tpublic setLabel(label: string) {\n\t\t(this.data as Exclude).label = buttonLabelValidator.parse(label);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIButtonComponent {\n\t\tvalidateRequiredButtonParameters(\n\t\t\tthis.data.style,\n\t\t\t(this.data as Exclude).label,\n\t\t\t(this.data as Exclude).emoji,\n\t\t\t(this.data as APIButtonComponentWithCustomId).custom_id,\n\t\t\t(this.data as APIButtonComponentWithSKUId).sku_id,\n\t\t\t(this.data as APIButtonComponentWithURL).url,\n\t\t);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APIButtonComponent;\n\t}\n}\n","import {\n\ttype APIChannelSelectComponent,\n\ttype ChannelType,\n\ttype Snowflake,\n\tComponentType,\n\tSelectMenuDefaultValueType,\n} from 'discord-api-types/v10';\nimport { type RestOrArray, normalizeArray } from '../../util/normalizeArray.js';\nimport { channelTypesValidator, customIdValidator, optionsLengthValidator } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\n\n/**\n * A builder that creates API-compatible JSON data for channel select menus.\n */\nexport class ChannelSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new ChannelSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new ChannelSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.addChannelTypes(ChannelType.GuildText, ChannelType.GuildAnnouncement)\n\t * \t.setMinValues(2);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ ...data, type: ComponentType.ChannelSelect });\n\t}\n\n\t/**\n\t * Adds channel types to this select menu.\n\t *\n\t * @param types - The channel types to use\n\t */\n\tpublic addChannelTypes(...types: RestOrArray) {\n\t\tconst normalizedTypes = normalizeArray(types);\n\t\tthis.data.channel_types ??= [];\n\t\tthis.data.channel_types.push(...channelTypesValidator.parse(normalizedTypes));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets channel types for this select menu.\n\t *\n\t * @param types - The channel types to use\n\t */\n\tpublic setChannelTypes(...types: RestOrArray) {\n\t\tconst normalizedTypes = normalizeArray(types);\n\t\tthis.data.channel_types ??= [];\n\t\tthis.data.channel_types.splice(0, this.data.channel_types.length, ...channelTypesValidator.parse(normalizedTypes));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds default channels to this auto populated select menu.\n\t *\n\t * @param channels - The channels to add\n\t */\n\tpublic addDefaultChannels(...channels: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(channels);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.Channel as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets default channels for this auto populated select menu.\n\t *\n\t * @param channels - The channels to set\n\t */\n\tpublic setDefaultChannels(...channels: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(channels);\n\t\toptionsLengthValidator.parse(normalizedValues.length);\n\n\t\tthis.data.default_values = normalizedValues.map((id) => ({\n\t\t\tid,\n\t\t\ttype: SelectMenuDefaultValueType.Channel as const,\n\t\t}));\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc BaseSelectMenuBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APIChannelSelectComponent {\n\t\tcustomIdValidator.parse(this.data.custom_id);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APIChannelSelectComponent;\n\t}\n}\n","import type { APISelectMenuComponent } from 'discord-api-types/v10';\nimport { customIdValidator, disabledValidator, minMaxValidator, placeholderValidator } from '../Assertions.js';\nimport { ComponentBuilder } from '../Component.js';\n\n/**\n * The base select menu builder that contains common symbols for select menu builders.\n *\n * @typeParam SelectMenuType - The type of select menu this would be instantiated for.\n */\nexport abstract class BaseSelectMenuBuilder<\n\tSelectMenuType extends APISelectMenuComponent,\n> extends ComponentBuilder {\n\t/**\n\t * Sets the placeholder for this select menu.\n\t *\n\t * @param placeholder - The placeholder to use\n\t */\n\tpublic setPlaceholder(placeholder: string) {\n\t\tthis.data.placeholder = placeholderValidator.parse(placeholder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the minimum values that must be selected in the select menu.\n\t *\n\t * @param minValues - The minimum values that must be selected\n\t */\n\tpublic setMinValues(minValues: number) {\n\t\tthis.data.min_values = minMaxValidator.parse(minValues);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the maximum values that must be selected in the select menu.\n\t *\n\t * @param maxValues - The maximum values that must be selected\n\t */\n\tpublic setMaxValues(maxValues: number) {\n\t\tthis.data.max_values = minMaxValidator.parse(maxValues);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the custom id for this select menu.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customIdValidator.parse(customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this select menu is disabled.\n\t *\n\t * @param disabled - Whether this select menu is disabled\n\t */\n\tpublic setDisabled(disabled = true) {\n\t\tthis.data.disabled = disabledValidator.parse(disabled);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): SelectMenuType {\n\t\tcustomIdValidator.parse(this.data.custom_id);\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as SelectMenuType;\n\t}\n}\n","import {\n\ttype APIMentionableSelectComponent,\n\ttype APISelectMenuDefaultValue,\n\ttype Snowflake,\n\tComponentType,\n\tSelectMenuDefaultValueType,\n} from 'discord-api-types/v10';\nimport { type RestOrArray, normalizeArray } from '../../util/normalizeArray.js';\nimport { optionsLengthValidator } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\n\n/**\n * A builder that creates API-compatible JSON data for mentionable select menus.\n */\nexport class MentionableSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new MentionableSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new MentionableSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.setMinValues(1);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ ...data, type: ComponentType.MentionableSelect });\n\t}\n\n\t/**\n\t * Adds default roles to this auto populated select menu.\n\t *\n\t * @param roles - The roles to add\n\t */\n\tpublic addDefaultRoles(...roles: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(roles);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.Role as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds default users to this auto populated select menu.\n\t *\n\t * @param users - The users to add\n\t */\n\tpublic addDefaultUsers(...users: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(users);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.User as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds default values to this auto populated select menu.\n\t *\n\t * @param values - The values to add\n\t */\n\tpublic addDefaultValues(\n\t\t...values: RestOrArray<\n\t\t\t| APISelectMenuDefaultValue\n\t\t\t| APISelectMenuDefaultValue\n\t\t>\n\t) {\n\t\tconst normalizedValues = normalizeArray(values);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\t\tthis.data.default_values.push(...normalizedValues);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets default values for this auto populated select menu.\n\t *\n\t * @param values - The values to set\n\t */\n\tpublic setDefaultValues(\n\t\t...values: RestOrArray<\n\t\t\t| APISelectMenuDefaultValue\n\t\t\t| APISelectMenuDefaultValue\n\t\t>\n\t) {\n\t\tconst normalizedValues = normalizeArray(values);\n\t\toptionsLengthValidator.parse(normalizedValues.length);\n\t\tthis.data.default_values = normalizedValues;\n\t\treturn this;\n\t}\n}\n","import {\n\ttype APIRoleSelectComponent,\n\ttype Snowflake,\n\tComponentType,\n\tSelectMenuDefaultValueType,\n} from 'discord-api-types/v10';\nimport { type RestOrArray, normalizeArray } from '../../util/normalizeArray.js';\nimport { optionsLengthValidator } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\n\n/**\n * A builder that creates API-compatible JSON data for role select menus.\n */\nexport class RoleSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new RoleSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new RoleSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.setMinValues(1);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ ...data, type: ComponentType.RoleSelect });\n\t}\n\n\t/**\n\t * Adds default roles to this auto populated select menu.\n\t *\n\t * @param roles - The roles to add\n\t */\n\tpublic addDefaultRoles(...roles: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(roles);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.Role as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets default roles for this auto populated select menu.\n\t *\n\t * @param roles - The roles to set\n\t */\n\tpublic setDefaultRoles(...roles: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(roles);\n\t\toptionsLengthValidator.parse(normalizedValues.length);\n\n\t\tthis.data.default_values = normalizedValues.map((id) => ({\n\t\t\tid,\n\t\t\ttype: SelectMenuDefaultValueType.Role as const,\n\t\t}));\n\n\t\treturn this;\n\t}\n}\n","import { ComponentType } from 'discord-api-types/v10';\nimport type { APIStringSelectComponent, APISelectMenuOption } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../util/normalizeArray.js';\nimport { jsonOptionValidator, optionsLengthValidator, validateRequiredSelectMenuParameters } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\nimport { StringSelectMenuOptionBuilder } from './StringSelectMenuOption.js';\n\n/**\n * A builder that creates API-compatible JSON data for string select menus.\n */\nexport class StringSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * The options within this select menu.\n\t */\n\tpublic readonly options: StringSelectMenuOptionBuilder[];\n\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new StringSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * \toptions: [\n\t * \t\t{ label: 'option 1', value: '1' },\n\t * \t\t{ label: 'option 2', value: '2' },\n\t * \t\t{ label: 'option 3', value: '3' },\n\t * \t],\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new StringSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.setMinValues(1)\n\t * \t.addOptions({\n\t * \t\tlabel: 'Catchy',\n\t * \t\tvalue: 'catch',\n\t * \t});\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tconst { options, ...initData } = data ?? {};\n\t\tsuper({ ...initData, type: ComponentType.StringSelect });\n\t\tthis.options = options?.map((option: APISelectMenuOption) => new StringSelectMenuOptionBuilder(option)) ?? [];\n\t}\n\n\t/**\n\t * Adds options to this select menu.\n\t *\n\t * @param options - The options to add\n\t */\n\tpublic addOptions(...options: RestOrArray) {\n\t\tconst normalizedOptions = normalizeArray(options);\n\t\toptionsLengthValidator.parse(this.options.length + normalizedOptions.length);\n\t\tthis.options.push(\n\t\t\t...normalizedOptions.map((normalizedOption) =>\n\t\t\t\tnormalizedOption instanceof StringSelectMenuOptionBuilder\n\t\t\t\t\t? normalizedOption\n\t\t\t\t\t: new StringSelectMenuOptionBuilder(jsonOptionValidator.parse(normalizedOption)),\n\t\t\t),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the options for this select menu.\n\t *\n\t * @param options - The options to set\n\t */\n\tpublic setOptions(...options: RestOrArray) {\n\t\treturn this.spliceOptions(0, this.options.length, ...options);\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts options for this select menu.\n\t *\n\t * @remarks\n\t * This method behaves similarly\n\t * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice | Array.prototype.splice()}.\n\t * It's useful for modifying and adjusting the order of existing options.\n\t * @example\n\t * Remove the first option:\n\t * ```ts\n\t * selectMenu.spliceOptions(0, 1);\n\t * ```\n\t * @example\n\t * Remove the first n option:\n\t * ```ts\n\t * const n = 4;\n\t * selectMenu.spliceOptions(0, n);\n\t * ```\n\t * @example\n\t * Remove the last option:\n\t * ```ts\n\t * selectMenu.spliceOptions(-1, 1);\n\t * ```\n\t * @param index - The index to start at\n\t * @param deleteCount - The number of options to remove\n\t * @param options - The replacing option objects or builders\n\t */\n\tpublic spliceOptions(\n\t\tindex: number,\n\t\tdeleteCount: number,\n\t\t...options: RestOrArray\n\t) {\n\t\tconst normalizedOptions = normalizeArray(options);\n\n\t\tconst clone = [...this.options];\n\n\t\tclone.splice(\n\t\t\tindex,\n\t\t\tdeleteCount,\n\t\t\t...normalizedOptions.map((normalizedOption) =>\n\t\t\t\tnormalizedOption instanceof StringSelectMenuOptionBuilder\n\t\t\t\t\t? normalizedOption\n\t\t\t\t\t: new StringSelectMenuOptionBuilder(jsonOptionValidator.parse(normalizedOption)),\n\t\t\t),\n\t\t);\n\n\t\toptionsLengthValidator.parse(clone.length);\n\t\tthis.options.splice(0, this.options.length, ...clone);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc BaseSelectMenuBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APIStringSelectComponent {\n\t\tvalidateRequiredSelectMenuParameters(this.options, this.data.custom_id);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t} as APIStringSelectComponent;\n\t}\n}\n","import {\n\ttype APIUserSelectComponent,\n\ttype Snowflake,\n\tComponentType,\n\tSelectMenuDefaultValueType,\n} from 'discord-api-types/v10';\nimport { type RestOrArray, normalizeArray } from '../../util/normalizeArray.js';\nimport { optionsLengthValidator } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\n\n/**\n * A builder that creates API-compatible JSON data for user select menus.\n */\nexport class UserSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new UserSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new UserSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.setMinValues(1);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ ...data, type: ComponentType.UserSelect });\n\t}\n\n\t/**\n\t * Adds default users to this auto populated select menu.\n\t *\n\t * @param users - The users to add\n\t */\n\tpublic addDefaultUsers(...users: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(users);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.User as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets default users for this auto populated select menu.\n\t *\n\t * @param users - The users to set\n\t */\n\tpublic setDefaultUsers(...users: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(users);\n\t\toptionsLengthValidator.parse(normalizedValues.length);\n\n\t\tthis.data.default_values = normalizedValues.map((id) => ({\n\t\t\tid,\n\t\t\ttype: SelectMenuDefaultValueType.User as const,\n\t\t}));\n\n\t\treturn this;\n\t}\n}\n","import { isJSONEncodable, type Equatable, type JSONEncodable } from '@discordjs/util';\nimport { ComponentType, type TextInputStyle, type APITextInputComponent } from 'discord-api-types/v10';\nimport isEqual from 'fast-deep-equal';\nimport { customIdValidator } from '../Assertions.js';\nimport { ComponentBuilder } from '../Component.js';\nimport {\n\tmaxLengthValidator,\n\tminLengthValidator,\n\tplaceholderValidator,\n\trequiredValidator,\n\tvalueValidator,\n\tvalidateRequiredParameters,\n\tlabelValidator,\n\ttextInputStyleValidator,\n} from './Assertions.js';\n\n/**\n * A builder that creates API-compatible JSON data for text inputs.\n */\nexport class TextInputBuilder\n\textends ComponentBuilder\n\timplements Equatable>\n{\n\t/**\n\t * Creates a new text input from API data.\n\t *\n\t * @param data - The API data to create this text input with\n\t * @example\n\t * Creating a text input from an API data object:\n\t * ```ts\n\t * const textInput = new TextInputBuilder({\n\t * \tcustom_id: 'a cool text input',\n\t * \tlabel: 'Type something',\n\t * \tstyle: TextInputStyle.Short,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a text input using setters and API data:\n\t * ```ts\n\t * const textInput = new TextInputBuilder({\n\t * \tlabel: 'Type something else',\n\t * })\n\t * \t.setCustomId('woah')\n\t * \t.setStyle(TextInputStyle.Paragraph);\n\t * ```\n\t */\n\tpublic constructor(data?: APITextInputComponent & { type?: ComponentType.TextInput }) {\n\t\tsuper({ type: ComponentType.TextInput, ...data });\n\t}\n\n\t/**\n\t * Sets the custom id for this text input.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customIdValidator.parse(customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the label for this text input.\n\t *\n\t * @param label - The label to use\n\t */\n\tpublic setLabel(label: string) {\n\t\tthis.data.label = labelValidator.parse(label);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the style for this text input.\n\t *\n\t * @param style - The style to use\n\t */\n\tpublic setStyle(style: TextInputStyle) {\n\t\tthis.data.style = textInputStyleValidator.parse(style);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the minimum length of text for this text input.\n\t *\n\t * @param minLength - The minimum length of text for this text input\n\t */\n\tpublic setMinLength(minLength: number) {\n\t\tthis.data.min_length = minLengthValidator.parse(minLength);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the maximum length of text for this text input.\n\t *\n\t * @param maxLength - The maximum length of text for this text input\n\t */\n\tpublic setMaxLength(maxLength: number) {\n\t\tthis.data.max_length = maxLengthValidator.parse(maxLength);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the placeholder for this text input.\n\t *\n\t * @param placeholder - The placeholder to use\n\t */\n\tpublic setPlaceholder(placeholder: string) {\n\t\tthis.data.placeholder = placeholderValidator.parse(placeholder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the value for this text input.\n\t *\n\t * @param value - The value to use\n\t */\n\tpublic setValue(value: string) {\n\t\tthis.data.value = valueValidator.parse(value);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this text input is required.\n\t *\n\t * @param required - Whether this text input is required\n\t */\n\tpublic setRequired(required = true) {\n\t\tthis.data.required = requiredValidator.parse(required);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APITextInputComponent {\n\t\tvalidateRequiredParameters(this.data.custom_id, this.data.style, this.data.label);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APITextInputComponent;\n\t}\n\n\t/**\n\t * Whether this is equal to another structure.\n\t */\n\tpublic equals(other: APITextInputComponent | JSONEncodable): boolean {\n\t\tif (isJSONEncodable(other)) {\n\t\t\treturn isEqual(other.toJSON(), this.data);\n\t\t}\n\n\t\treturn isEqual(other, this.data);\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { TextInputStyle } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\nimport { customIdValidator } from '../Assertions.js';\n\nexport const textInputStyleValidator = s.nativeEnum(TextInputStyle);\nexport const minLengthValidator = s\n\t.number()\n\t.int()\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(4_000)\n\t.setValidationEnabled(isValidationEnabled);\nexport const maxLengthValidator = s\n\t.number()\n\t.int()\n\t.greaterThanOrEqual(1)\n\t.lessThanOrEqual(4_000)\n\t.setValidationEnabled(isValidationEnabled);\nexport const requiredValidator = s.boolean();\nexport const valueValidator = s.string().lengthLessThanOrEqual(4_000).setValidationEnabled(isValidationEnabled);\nexport const placeholderValidator = s.string().lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled);\nexport const labelValidator = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(45)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateRequiredParameters(customId?: string, style?: TextInputStyle, label?: string) {\n\tcustomIdValidator.parse(customId);\n\ttextInputStyleValidator.parse(style);\n\tlabelValidator.parse(label);\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ActionRowBuilder, type ModalActionRowComponentBuilder } from '../../components/ActionRow.js';\nimport { customIdValidator } from '../../components/Assertions.js';\nimport { isValidationEnabled } from '../../util/validation.js';\n\nexport const titleValidator = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(45)\n\t.setValidationEnabled(isValidationEnabled);\nexport const componentsValidator = s\n\t.instance(ActionRowBuilder)\n\t.array()\n\t.lengthGreaterThanOrEqual(1)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateRequiredParameters(\n\tcustomId?: string,\n\ttitle?: string,\n\tcomponents?: ActionRowBuilder[],\n) {\n\tcustomIdValidator.parse(customId);\n\ttitleValidator.parse(title);\n\tcomponentsValidator.parse(components);\n}\n","/* eslint-disable jsdoc/check-param-names */\n\nimport type { JSONEncodable } from '@discordjs/util';\nimport type {\n\tAPIActionRowComponent,\n\tAPIModalActionRowComponent,\n\tAPIModalInteractionResponseCallbackData,\n} from 'discord-api-types/v10';\nimport { ActionRowBuilder, type ModalActionRowComponentBuilder } from '../../components/ActionRow.js';\nimport { customIdValidator } from '../../components/Assertions.js';\nimport { createComponentBuilder } from '../../components/Components.js';\nimport { normalizeArray, type RestOrArray } from '../../util/normalizeArray.js';\nimport { titleValidator, validateRequiredParameters } from './Assertions.js';\n\n/**\n * A builder that creates API-compatible JSON data for modals.\n */\nexport class ModalBuilder implements JSONEncodable {\n\t/**\n\t * The API data associated with this modal.\n\t */\n\tpublic readonly data: Partial;\n\n\t/**\n\t * The components within this modal.\n\t */\n\tpublic readonly components: ActionRowBuilder[] = [];\n\n\t/**\n\t * Creates a new modal from API data.\n\t *\n\t * @param data - The API data to create this modal with\n\t */\n\tpublic constructor({ components, ...data }: Partial = {}) {\n\t\tthis.data = { ...data };\n\t\tthis.components = (components?.map((component) => createComponentBuilder(component)) ??\n\t\t\t[]) as ActionRowBuilder[];\n\t}\n\n\t/**\n\t * Sets the title of this modal.\n\t *\n\t * @param title - The title to use\n\t */\n\tpublic setTitle(title: string) {\n\t\tthis.data.title = titleValidator.parse(title);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the custom id of this modal.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customIdValidator.parse(customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds components to this modal.\n\t *\n\t * @param components - The components to add\n\t */\n\tpublic addComponents(\n\t\t...components: RestOrArray<\n\t\t\tActionRowBuilder | APIActionRowComponent\n\t\t>\n\t) {\n\t\tthis.components.push(\n\t\t\t...normalizeArray(components).map((component) =>\n\t\t\t\tcomponent instanceof ActionRowBuilder\n\t\t\t\t\t? component\n\t\t\t\t\t: new ActionRowBuilder(component),\n\t\t\t),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets components for this modal.\n\t *\n\t * @param components - The components to set\n\t */\n\tpublic setComponents(...components: RestOrArray>) {\n\t\tthis.components.splice(0, this.components.length, ...normalizeArray(components));\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIModalInteractionResponseCallbackData {\n\t\tvalidateRequiredParameters(this.data.custom_id, this.data.title, this.components);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t\tcomponents: this.components.map((component) => component.toJSON()),\n\t\t} as APIModalInteractionResponseCallbackData;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport {\n\tApplicationIntegrationType,\n\tInteractionContextType,\n\tLocale,\n\ttype APIApplicationCommandOptionChoice,\n\ttype LocalizationMap,\n} from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\nimport type { ToAPIApplicationCommandOptions } from './SlashCommandBuilder.js';\nimport type { SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder } from './SlashCommandSubcommands.js';\nimport type { ApplicationCommandOptionBase } from './mixins/ApplicationCommandOptionBase.js';\n\nconst namePredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(32)\n\t.regex(/^[\\p{Ll}\\p{Lm}\\p{Lo}\\p{N}\\p{sc=Devanagari}\\p{sc=Thai}_-]+$/u)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateName(name: unknown): asserts name is string {\n\tnamePredicate.parse(name);\n}\n\nconst descriptionPredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(100)\n\t.setValidationEnabled(isValidationEnabled);\nconst localePredicate = s.nativeEnum(Locale);\n\nexport function validateDescription(description: unknown): asserts description is string {\n\tdescriptionPredicate.parse(description);\n}\n\nconst maxArrayLengthPredicate = s.unknown().array().lengthLessThanOrEqual(25).setValidationEnabled(isValidationEnabled);\nexport function validateLocale(locale: unknown) {\n\treturn localePredicate.parse(locale);\n}\n\nexport function validateMaxOptionsLength(options: unknown): asserts options is ToAPIApplicationCommandOptions[] {\n\tmaxArrayLengthPredicate.parse(options);\n}\n\nexport function validateRequiredParameters(\n\tname: string,\n\tdescription: string,\n\toptions: ToAPIApplicationCommandOptions[],\n) {\n\t// Assert name matches all conditions\n\tvalidateName(name);\n\n\t// Assert description conditions\n\tvalidateDescription(description);\n\n\t// Assert options conditions\n\tvalidateMaxOptionsLength(options);\n}\n\nconst booleanPredicate = s.boolean();\n\nexport function validateDefaultPermission(value: unknown): asserts value is boolean {\n\tbooleanPredicate.parse(value);\n}\n\nexport function validateRequired(required: unknown): asserts required is boolean {\n\tbooleanPredicate.parse(required);\n}\n\nconst choicesLengthPredicate = s.number().lessThanOrEqual(25).setValidationEnabled(isValidationEnabled);\n\nexport function validateChoicesLength(amountAdding: number, choices?: APIApplicationCommandOptionChoice[]): void {\n\tchoicesLengthPredicate.parse((choices?.length ?? 0) + amountAdding);\n}\n\nexport function assertReturnOfBuilder<\n\tReturnType extends ApplicationCommandOptionBase | SlashCommandSubcommandBuilder | SlashCommandSubcommandGroupBuilder,\n>(input: unknown, ExpectedInstanceOf: new () => ReturnType): asserts input is ReturnType {\n\ts.instance(ExpectedInstanceOf).parse(input);\n}\n\nexport const localizationMapPredicate = s\n\t.object(Object.fromEntries(Object.values(Locale).map((locale) => [locale, s.string().nullish()])))\n\t.strict()\n\t.nullish()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateLocalizationMap(value: unknown): asserts value is LocalizationMap {\n\tlocalizationMapPredicate.parse(value);\n}\n\nconst dmPermissionPredicate = s.boolean().nullish();\n\nexport function validateDMPermission(value: unknown): asserts value is boolean | null | undefined {\n\tdmPermissionPredicate.parse(value);\n}\n\nconst memberPermissionPredicate = s\n\t.union([\n\t\ts.bigint().transform((value) => value.toString()),\n\t\ts\n\t\t\t.number()\n\t\t\t.safeInt()\n\t\t\t.transform((value) => value.toString()),\n\t\ts.string().regex(/^\\d+$/),\n\t])\n\t.nullish();\n\nexport function validateDefaultMemberPermissions(permissions: unknown) {\n\treturn memberPermissionPredicate.parse(permissions);\n}\n\nexport function validateNSFW(value: unknown): asserts value is boolean {\n\tbooleanPredicate.parse(value);\n}\n\nexport const contextsPredicate = s.array(\n\ts.nativeEnum(InteractionContextType).setValidationEnabled(isValidationEnabled),\n);\n\nexport const integrationTypesPredicate = s.array(\n\ts.nativeEnum(ApplicationIntegrationType).setValidationEnabled(isValidationEnabled),\n);\n","import type {\n\tAPIApplicationCommandOption,\n\tApplicationIntegrationType,\n\tInteractionContextType,\n\tLocalizationMap,\n\tPermissions,\n} from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { SharedNameAndDescription } from './mixins/NameAndDescription.js';\nimport { SharedSlashCommand } from './mixins/SharedSlashCommand.js';\nimport { SharedSlashCommandOptions } from './mixins/SharedSlashCommandOptions.js';\nimport { SharedSlashCommandSubcommands } from './mixins/SharedSubcommands.js';\n\n/**\n * A builder that creates API-compatible JSON data for slash commands.\n */\n@mix(SharedSlashCommandOptions, SharedNameAndDescription, SharedSlashCommandSubcommands, SharedSlashCommand)\nexport class SlashCommandBuilder {\n\t/**\n\t * The name of this command.\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The name localizations of this command.\n\t */\n\tpublic readonly name_localizations?: LocalizationMap;\n\n\t/**\n\t * The description of this command.\n\t */\n\tpublic readonly description: string = undefined!;\n\n\t/**\n\t * The description localizations of this command.\n\t */\n\tpublic readonly description_localizations?: LocalizationMap;\n\n\t/**\n\t * The options of this command.\n\t */\n\tpublic readonly options: ToAPIApplicationCommandOptions[] = [];\n\n\t/**\n\t * The contexts for this command.\n\t */\n\tpublic readonly contexts?: InteractionContextType[];\n\n\t/**\n\t * Whether this command is enabled by default when the application is added to a guild.\n\t *\n\t * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead.\n\t */\n\tpublic readonly default_permission: boolean | undefined = undefined;\n\n\t/**\n\t * The set of permissions represented as a bit set for the command.\n\t */\n\tpublic readonly default_member_permissions: Permissions | null | undefined = undefined;\n\n\t/**\n\t * Indicates whether the command is available in direct messages with the application.\n\t *\n\t * @remarks\n\t * By default, commands are visible. This property is only for global commands.\n\t * @deprecated\n\t * Use {@link SlashCommandBuilder.contexts} instead.\n\t */\n\tpublic readonly dm_permission: boolean | undefined = undefined;\n\n\t/**\n\t * The integration types for this command.\n\t */\n\tpublic readonly integration_types?: ApplicationIntegrationType[];\n\n\t/**\n\t * Whether this command is NSFW.\n\t */\n\tpublic readonly nsfw: boolean | undefined = undefined;\n}\n\nexport interface SlashCommandBuilder\n\textends SharedNameAndDescription,\n\t\tSharedSlashCommandOptions,\n\t\tSharedSlashCommandSubcommands,\n\t\tSharedSlashCommand {}\n\n/**\n * An interface specifically for slash command subcommands.\n */\nexport interface SlashCommandSubcommandsOnlyBuilder\n\textends SharedNameAndDescription,\n\t\tSharedSlashCommandSubcommands,\n\t\tSharedSlashCommand {}\n\n/**\n * An interface specifically for slash command options.\n */\nexport interface SlashCommandOptionsOnlyBuilder\n\textends SharedNameAndDescription,\n\t\tSharedSlashCommandOptions,\n\t\tSharedSlashCommand {}\n\n/**\n * An interface that ensures the `toJSON()` call will return something\n * that can be serialized into API-compatible data.\n */\nexport interface ToAPIApplicationCommandOptions {\n\ttoJSON(): APIApplicationCommandOption;\n}\n","import type { LocaleString, LocalizationMap } from 'discord-api-types/v10';\nimport { validateDescription, validateLocale, validateName } from '../Assertions.js';\n\n/**\n * This mixin holds name and description symbols for slash commands.\n */\nexport class SharedNameAndDescription {\n\t/**\n\t * The name of this command.\n\t */\n\tpublic readonly name!: string;\n\n\t/**\n\t * The name localizations of this command.\n\t */\n\tpublic readonly name_localizations?: LocalizationMap;\n\n\t/**\n\t * The description of this command.\n\t */\n\tpublic readonly description!: string;\n\n\t/**\n\t * The description localizations of this command.\n\t */\n\tpublic readonly description_localizations?: LocalizationMap;\n\n\t/**\n\t * Sets the name of this command.\n\t *\n\t * @param name - The name to use\n\t */\n\tpublic setName(name: string): this {\n\t\t// Assert the name matches the conditions\n\t\tvalidateName(name);\n\n\t\tReflect.set(this, 'name', name);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description of this command.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string) {\n\t\t// Assert the description matches the conditions\n\t\tvalidateDescription(description);\n\n\t\tReflect.set(this, 'description', description);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a name localization for this command.\n\t *\n\t * @param locale - The locale to set\n\t * @param localizedName - The localized name for the given `locale`\n\t */\n\tpublic setNameLocalization(locale: LocaleString, localizedName: string | null) {\n\t\tif (!this.name_localizations) {\n\t\t\tReflect.set(this, 'name_localizations', {});\n\t\t}\n\n\t\tconst parsedLocale = validateLocale(locale);\n\n\t\tif (localizedName === null) {\n\t\t\tthis.name_localizations![parsedLocale] = null;\n\t\t\treturn this;\n\t\t}\n\n\t\tvalidateName(localizedName);\n\n\t\tthis.name_localizations![parsedLocale] = localizedName;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the name localizations for this command.\n\t *\n\t * @param localizedNames - The object of localized names to set\n\t */\n\tpublic setNameLocalizations(localizedNames: LocalizationMap | null) {\n\t\tif (localizedNames === null) {\n\t\t\tReflect.set(this, 'name_localizations', null);\n\t\t\treturn this;\n\t\t}\n\n\t\tReflect.set(this, 'name_localizations', {});\n\n\t\tfor (const args of Object.entries(localizedNames)) {\n\t\t\tthis.setNameLocalization(...(args as [LocaleString, string | null]));\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a description localization for this command.\n\t *\n\t * @param locale - The locale to set\n\t * @param localizedDescription - The localized description for the given locale\n\t */\n\tpublic setDescriptionLocalization(locale: LocaleString, localizedDescription: string | null) {\n\t\tif (!this.description_localizations) {\n\t\t\tReflect.set(this, 'description_localizations', {});\n\t\t}\n\n\t\tconst parsedLocale = validateLocale(locale);\n\n\t\tif (localizedDescription === null) {\n\t\t\tthis.description_localizations![parsedLocale] = null;\n\t\t\treturn this;\n\t\t}\n\n\t\tvalidateDescription(localizedDescription);\n\n\t\tthis.description_localizations![parsedLocale] = localizedDescription;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description localizations for this command.\n\t *\n\t * @param localizedDescriptions - The object of localized descriptions to set\n\t */\n\tpublic setDescriptionLocalizations(localizedDescriptions: LocalizationMap | null) {\n\t\tif (localizedDescriptions === null) {\n\t\t\tReflect.set(this, 'description_localizations', null);\n\t\t\treturn this;\n\t\t}\n\n\t\tReflect.set(this, 'description_localizations', {});\n\t\tfor (const args of Object.entries(localizedDescriptions)) {\n\t\t\tthis.setDescriptionLocalization(...(args as [LocaleString, string | null]));\n\t\t}\n\n\t\treturn this;\n\t}\n}\n","import {\n\tApplicationCommandType,\n\ttype ApplicationIntegrationType,\n\ttype InteractionContextType,\n\ttype LocalizationMap,\n\ttype Permissions,\n\ttype RESTPostAPIChatInputApplicationCommandsJSONBody,\n} from 'discord-api-types/v10';\nimport type { RestOrArray } from '../../../util/normalizeArray.js';\nimport { normalizeArray } from '../../../util/normalizeArray.js';\nimport {\n\tcontextsPredicate,\n\tintegrationTypesPredicate,\n\tvalidateDMPermission,\n\tvalidateDefaultMemberPermissions,\n\tvalidateDefaultPermission,\n\tvalidateLocalizationMap,\n\tvalidateNSFW,\n\tvalidateRequiredParameters,\n} from '../Assertions.js';\nimport type { ToAPIApplicationCommandOptions } from '../SlashCommandBuilder.js';\n\n/**\n * This mixin holds symbols that can be shared in slashcommands independent of options or subcommands.\n */\nexport class SharedSlashCommand {\n\tpublic readonly name: string = undefined!;\n\n\tpublic readonly name_localizations?: LocalizationMap;\n\n\tpublic readonly description: string = undefined!;\n\n\tpublic readonly description_localizations?: LocalizationMap;\n\n\tpublic readonly options: ToAPIApplicationCommandOptions[] = [];\n\n\tpublic readonly contexts?: InteractionContextType[];\n\n\t/**\n\t * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead.\n\t */\n\tpublic readonly default_permission: boolean | undefined = undefined;\n\n\tpublic readonly default_member_permissions: Permissions | null | undefined = undefined;\n\n\t/**\n\t * @deprecated Use {@link SharedSlashCommand.contexts} instead.\n\t */\n\tpublic readonly dm_permission: boolean | undefined = undefined;\n\n\tpublic readonly integration_types?: ApplicationIntegrationType[];\n\n\tpublic readonly nsfw: boolean | undefined = undefined;\n\n\t/**\n\t * Sets the contexts of this command.\n\t *\n\t * @param contexts - The contexts\n\t */\n\tpublic setContexts(...contexts: RestOrArray) {\n\t\tReflect.set(this, 'contexts', contextsPredicate.parse(normalizeArray(contexts)));\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the integration types of this command.\n\t *\n\t * @param integrationTypes - The integration types\n\t */\n\tpublic setIntegrationTypes(...integrationTypes: RestOrArray) {\n\t\tReflect.set(this, 'integration_types', integrationTypesPredicate.parse(normalizeArray(integrationTypes)));\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether the command is enabled by default when the application is added to a guild.\n\t *\n\t * @remarks\n\t * If set to `false`, you will have to later `PUT` the permissions for this command.\n\t * @param value - Whether or not to enable this command by default\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead.\n\t */\n\tpublic setDefaultPermission(value: boolean) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateDefaultPermission(value);\n\n\t\tReflect.set(this, 'default_permission', value);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the default permissions a member should have in order to run the command.\n\t *\n\t * @remarks\n\t * You can set this to `'0'` to disable the command by default.\n\t * @param permissions - The permissions bit field to set\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t */\n\tpublic setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined) {\n\t\t// Assert the value and parse it\n\t\tconst permissionValue = validateDefaultMemberPermissions(permissions);\n\n\t\tReflect.set(this, 'default_member_permissions', permissionValue);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets if the command is available in direct messages with the application.\n\t *\n\t * @remarks\n\t * By default, commands are visible. This method is only for global commands.\n\t * @param enabled - Whether the command should be enabled in direct messages\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t * @deprecated\n\t * Use {@link SharedSlashCommand.setContexts} instead.\n\t */\n\tpublic setDMPermission(enabled: boolean | null | undefined) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateDMPermission(enabled);\n\n\t\tReflect.set(this, 'dm_permission', enabled);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this command is NSFW.\n\t *\n\t * @param nsfw - Whether this command is NSFW\n\t */\n\tpublic setNSFW(nsfw = true) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateNSFW(nsfw);\n\t\tReflect.set(this, 'nsfw', nsfw);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): RESTPostAPIChatInputApplicationCommandsJSONBody {\n\t\tvalidateRequiredParameters(this.name, this.description, this.options);\n\n\t\tvalidateLocalizationMap(this.name_localizations);\n\t\tvalidateLocalizationMap(this.description_localizations);\n\n\t\treturn {\n\t\t\t...this,\n\t\t\ttype: ApplicationCommandType.ChatInput,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\t}\n}\n","import { ApplicationCommandOptionType, type APIApplicationCommandAttachmentOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command attachment option.\n */\nexport class SlashCommandAttachmentOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic override readonly type = ApplicationCommandOptionType.Attachment as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandAttachmentOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import type { APIApplicationCommandBasicOption, ApplicationCommandOptionType } from 'discord-api-types/v10';\nimport { validateRequiredParameters, validateRequired, validateLocalizationMap } from '../Assertions.js';\nimport { SharedNameAndDescription } from './NameAndDescription.js';\n\n/**\n * The base application command option builder that contains common symbols for application command builders.\n */\nexport abstract class ApplicationCommandOptionBase extends SharedNameAndDescription {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic abstract readonly type: ApplicationCommandOptionType;\n\n\t/**\n\t * Whether this option is required.\n\t *\n\t * @defaultValue `false`\n\t */\n\tpublic readonly required: boolean = false;\n\n\t/**\n\t * Sets whether this option is required.\n\t *\n\t * @param required - Whether this option should be required\n\t */\n\tpublic setRequired(required: boolean) {\n\t\t// Assert that you actually passed a boolean\n\t\tvalidateRequired(required);\n\n\t\tReflect.set(this, 'required', required);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic abstract toJSON(): APIApplicationCommandBasicOption;\n\n\t/**\n\t * This method runs required validators on this builder.\n\t */\n\tprotected runRequiredValidations() {\n\t\tvalidateRequiredParameters(this.name, this.description, []);\n\n\t\t// Validate localizations\n\t\tvalidateLocalizationMap(this.name_localizations);\n\t\tvalidateLocalizationMap(this.description_localizations);\n\n\t\t// Assert that you actually passed a boolean\n\t\tvalidateRequired(this.required);\n\t}\n}\n","import { ApplicationCommandOptionType, type APIApplicationCommandBooleanOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command boolean option.\n */\nexport class SlashCommandBooleanOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.Boolean as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandBooleanOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { ApplicationCommandOptionType, type APIApplicationCommandChannelOption } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\nimport { ApplicationCommandOptionChannelTypesMixin } from '../mixins/ApplicationCommandOptionChannelTypesMixin.js';\n\n/**\n * A slash command channel option.\n */\n@mix(ApplicationCommandOptionChannelTypesMixin)\nexport class SlashCommandChannelOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic override readonly type = ApplicationCommandOptionType.Channel as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandChannelOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n\nexport interface SlashCommandChannelOption extends ApplicationCommandOptionChannelTypesMixin {}\n","import { s } from '@sapphire/shapeshift';\nimport { ChannelType } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../../util/normalizeArray';\n\n/**\n * The allowed channel types used for a channel option in a slash command builder.\n *\n * @privateRemarks This can't be dynamic because const enums are erased at runtime.\n * @internal\n */\nconst allowedChannelTypes = [\n\tChannelType.GuildText,\n\tChannelType.GuildVoice,\n\tChannelType.GuildCategory,\n\tChannelType.GuildAnnouncement,\n\tChannelType.AnnouncementThread,\n\tChannelType.PublicThread,\n\tChannelType.PrivateThread,\n\tChannelType.GuildStageVoice,\n\tChannelType.GuildForum,\n\tChannelType.GuildMedia,\n] as const;\n\n/**\n * The type of allowed channel types used for a channel option.\n */\nexport type ApplicationCommandOptionAllowedChannelTypes = (typeof allowedChannelTypes)[number];\n\nconst channelTypesPredicate = s.array(s.union(allowedChannelTypes.map((type) => s.literal(type))));\n\n/**\n * This mixin holds channel type symbols used for options.\n */\nexport class ApplicationCommandOptionChannelTypesMixin {\n\t/**\n\t * The channel types of this option.\n\t */\n\tpublic readonly channel_types?: ApplicationCommandOptionAllowedChannelTypes[];\n\n\t/**\n\t * Adds channel types to this option.\n\t *\n\t * @param channelTypes - The channel types\n\t */\n\tpublic addChannelTypes(...channelTypes: RestOrArray) {\n\t\tif (this.channel_types === undefined) {\n\t\t\tReflect.set(this, 'channel_types', []);\n\t\t}\n\n\t\tthis.channel_types!.push(...channelTypesPredicate.parse(normalizeArray(channelTypes)));\n\n\t\treturn this;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandOptionType, type APIApplicationCommandIntegerOption } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandNumericOptionMinMaxValueMixin } from '../mixins/ApplicationCommandNumericOptionMinMaxValueMixin.js';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\nimport { ApplicationCommandOptionWithAutocompleteMixin } from '../mixins/ApplicationCommandOptionWithAutocompleteMixin.js';\nimport { ApplicationCommandOptionWithChoicesMixin } from '../mixins/ApplicationCommandOptionWithChoicesMixin.js';\n\nconst numberValidator = s.number().int();\n\n/**\n * A slash command integer option.\n */\n@mix(\n\tApplicationCommandNumericOptionMinMaxValueMixin,\n\tApplicationCommandOptionWithAutocompleteMixin,\n\tApplicationCommandOptionWithChoicesMixin,\n)\nexport class SlashCommandIntegerOption\n\textends ApplicationCommandOptionBase\n\timplements ApplicationCommandNumericOptionMinMaxValueMixin\n{\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.Integer as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue}\n\t */\n\tpublic setMaxValue(max: number): this {\n\t\tnumberValidator.parse(max);\n\n\t\tReflect.set(this, 'max_value', max);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue}\n\t */\n\tpublic setMinValue(min: number): this {\n\t\tnumberValidator.parse(min);\n\n\t\tReflect.set(this, 'min_value', min);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandIntegerOption {\n\t\tthis.runRequiredValidations();\n\n\t\tif (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\treturn { ...this } as APIApplicationCommandIntegerOption;\n\t}\n}\n\nexport interface SlashCommandIntegerOption\n\textends ApplicationCommandNumericOptionMinMaxValueMixin,\n\t\tApplicationCommandOptionWithChoicesMixin,\n\t\tApplicationCommandOptionWithAutocompleteMixin {}\n","/**\n * This mixin holds minimum and maximum symbols used for options.\n */\nexport abstract class ApplicationCommandNumericOptionMinMaxValueMixin {\n\t/**\n\t * The maximum value of this option.\n\t */\n\tpublic readonly max_value?: number;\n\n\t/**\n\t * The minimum value of this option.\n\t */\n\tpublic readonly min_value?: number;\n\n\t/**\n\t * Sets the maximum number value of this option.\n\t *\n\t * @param max - The maximum value this option can be\n\t */\n\tpublic abstract setMaxValue(max: number): this;\n\n\t/**\n\t * Sets the minimum number value of this option.\n\t *\n\t * @param min - The minimum value this option can be\n\t */\n\tpublic abstract setMinValue(min: number): this;\n}\n","import { s } from '@sapphire/shapeshift';\nimport type { ApplicationCommandOptionType } from 'discord-api-types/v10';\n\nconst booleanPredicate = s.boolean();\n\n/**\n * This mixin holds choices and autocomplete symbols used for options.\n */\nexport class ApplicationCommandOptionWithAutocompleteMixin {\n\t/**\n\t * Whether this option utilizes autocomplete.\n\t */\n\tpublic readonly autocomplete?: boolean;\n\n\t/**\n\t * The type of this option.\n\t *\n\t * @privateRemarks Since this is present and this is a mixin, this is needed.\n\t */\n\tpublic readonly type!: ApplicationCommandOptionType;\n\n\t/**\n\t * Whether this option uses autocomplete.\n\t *\n\t * @param autocomplete - Whether this option should use autocomplete\n\t */\n\tpublic setAutocomplete(autocomplete: boolean): this {\n\t\t// Assert that you actually passed a boolean\n\t\tbooleanPredicate.parse(autocomplete);\n\n\t\tif (autocomplete && 'choices' in this && Array.isArray(this.choices) && this.choices.length > 0) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\tReflect.set(this, 'autocomplete', autocomplete);\n\n\t\treturn this;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandOptionType, type APIApplicationCommandOptionChoice } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../../util/normalizeArray.js';\nimport { localizationMapPredicate, validateChoicesLength } from '../Assertions.js';\n\nconst stringPredicate = s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100);\nconst numberPredicate = s.number().greaterThan(Number.NEGATIVE_INFINITY).lessThan(Number.POSITIVE_INFINITY);\nconst choicesPredicate = s\n\t.object({\n\t\tname: stringPredicate,\n\t\tname_localizations: localizationMapPredicate,\n\t\tvalue: s.union([stringPredicate, numberPredicate]),\n\t})\n\t.array();\n\n/**\n * This mixin holds choices and autocomplete symbols used for options.\n */\nexport class ApplicationCommandOptionWithChoicesMixin {\n\t/**\n\t * The choices of this option.\n\t */\n\tpublic readonly choices?: APIApplicationCommandOptionChoice[];\n\n\t/**\n\t * The type of this option.\n\t *\n\t * @privateRemarks Since this is present and this is a mixin, this is needed.\n\t */\n\tpublic readonly type!: ApplicationCommandOptionType;\n\n\t/**\n\t * Adds multiple choices to this option.\n\t *\n\t * @param choices - The choices to add\n\t */\n\tpublic addChoices(...choices: RestOrArray>): this {\n\t\tconst normalizedChoices = normalizeArray(choices);\n\t\tif (normalizedChoices.length > 0 && 'autocomplete' in this && this.autocomplete) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\tchoicesPredicate.parse(normalizedChoices);\n\n\t\tif (this.choices === undefined) {\n\t\t\tReflect.set(this, 'choices', []);\n\t\t}\n\n\t\tvalidateChoicesLength(normalizedChoices.length, this.choices);\n\n\t\tfor (const { name, name_localizations, value } of normalizedChoices) {\n\t\t\t// Validate the value\n\t\t\tif (this.type === ApplicationCommandOptionType.String) {\n\t\t\t\tstringPredicate.parse(value);\n\t\t\t} else {\n\t\t\t\tnumberPredicate.parse(value);\n\t\t\t}\n\n\t\t\tthis.choices!.push({ name, name_localizations, value });\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets multiple choices for this option.\n\t *\n\t * @param choices - The choices to set\n\t */\n\tpublic setChoices>(...choices: RestOrArray): this {\n\t\tconst normalizedChoices = normalizeArray(choices);\n\t\tif (normalizedChoices.length > 0 && 'autocomplete' in this && this.autocomplete) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\tchoicesPredicate.parse(normalizedChoices);\n\n\t\tReflect.set(this, 'choices', []);\n\t\tthis.addChoices(normalizedChoices);\n\n\t\treturn this;\n\t}\n}\n","import { ApplicationCommandOptionType, type APIApplicationCommandMentionableOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command mentionable option.\n */\nexport class SlashCommandMentionableOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.Mentionable as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandMentionableOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandOptionType, type APIApplicationCommandNumberOption } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandNumericOptionMinMaxValueMixin } from '../mixins/ApplicationCommandNumericOptionMinMaxValueMixin.js';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\nimport { ApplicationCommandOptionWithAutocompleteMixin } from '../mixins/ApplicationCommandOptionWithAutocompleteMixin.js';\nimport { ApplicationCommandOptionWithChoicesMixin } from '../mixins/ApplicationCommandOptionWithChoicesMixin.js';\n\nconst numberValidator = s.number();\n\n/**\n * A slash command number option.\n */\n@mix(\n\tApplicationCommandNumericOptionMinMaxValueMixin,\n\tApplicationCommandOptionWithAutocompleteMixin,\n\tApplicationCommandOptionWithChoicesMixin,\n)\nexport class SlashCommandNumberOption\n\textends ApplicationCommandOptionBase\n\timplements ApplicationCommandNumericOptionMinMaxValueMixin\n{\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.Number as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue}\n\t */\n\tpublic setMaxValue(max: number): this {\n\t\tnumberValidator.parse(max);\n\n\t\tReflect.set(this, 'max_value', max);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue}\n\t */\n\tpublic setMinValue(min: number): this {\n\t\tnumberValidator.parse(min);\n\n\t\tReflect.set(this, 'min_value', min);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandNumberOption {\n\t\tthis.runRequiredValidations();\n\n\t\tif (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\treturn { ...this } as APIApplicationCommandNumberOption;\n\t}\n}\n\nexport interface SlashCommandNumberOption\n\textends ApplicationCommandNumericOptionMinMaxValueMixin,\n\t\tApplicationCommandOptionWithChoicesMixin,\n\t\tApplicationCommandOptionWithAutocompleteMixin {}\n","import { ApplicationCommandOptionType, type APIApplicationCommandRoleOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command role option.\n */\nexport class SlashCommandRoleOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic override readonly type = ApplicationCommandOptionType.Role as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandRoleOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandOptionType, type APIApplicationCommandStringOption } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\nimport { ApplicationCommandOptionWithAutocompleteMixin } from '../mixins/ApplicationCommandOptionWithAutocompleteMixin.js';\nimport { ApplicationCommandOptionWithChoicesMixin } from '../mixins/ApplicationCommandOptionWithChoicesMixin.js';\n\nconst minLengthValidator = s.number().greaterThanOrEqual(0).lessThanOrEqual(6_000);\nconst maxLengthValidator = s.number().greaterThanOrEqual(1).lessThanOrEqual(6_000);\n\n/**\n * A slash command string option.\n */\n@mix(ApplicationCommandOptionWithAutocompleteMixin, ApplicationCommandOptionWithChoicesMixin)\nexport class SlashCommandStringOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.String as const;\n\n\t/**\n\t * The maximum length of this option.\n\t */\n\tpublic readonly max_length?: number;\n\n\t/**\n\t * The minimum length of this option.\n\t */\n\tpublic readonly min_length?: number;\n\n\t/**\n\t * Sets the maximum length of this string option.\n\t *\n\t * @param max - The maximum length this option can be\n\t */\n\tpublic setMaxLength(max: number): this {\n\t\tmaxLengthValidator.parse(max);\n\n\t\tReflect.set(this, 'max_length', max);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the minimum length of this string option.\n\t *\n\t * @param min - The minimum length this option can be\n\t */\n\tpublic setMinLength(min: number): this {\n\t\tminLengthValidator.parse(min);\n\n\t\tReflect.set(this, 'min_length', min);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandStringOption {\n\t\tthis.runRequiredValidations();\n\n\t\tif (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\treturn { ...this } as APIApplicationCommandStringOption;\n\t}\n}\n\nexport interface SlashCommandStringOption\n\textends ApplicationCommandOptionWithChoicesMixin,\n\t\tApplicationCommandOptionWithAutocompleteMixin {}\n","import { ApplicationCommandOptionType, type APIApplicationCommandUserOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command user option.\n */\nexport class SlashCommandUserOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.User as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandUserOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { assertReturnOfBuilder, validateMaxOptionsLength } from '../Assertions.js';\nimport type { ToAPIApplicationCommandOptions } from '../SlashCommandBuilder';\nimport { SlashCommandAttachmentOption } from '../options/attachment.js';\nimport { SlashCommandBooleanOption } from '../options/boolean.js';\nimport { SlashCommandChannelOption } from '../options/channel.js';\nimport { SlashCommandIntegerOption } from '../options/integer.js';\nimport { SlashCommandMentionableOption } from '../options/mentionable.js';\nimport { SlashCommandNumberOption } from '../options/number.js';\nimport { SlashCommandRoleOption } from '../options/role.js';\nimport { SlashCommandStringOption } from '../options/string.js';\nimport { SlashCommandUserOption } from '../options/user.js';\nimport type { ApplicationCommandOptionBase } from './ApplicationCommandOptionBase.js';\n\n/**\n * This mixin holds symbols that can be shared in slash command options.\n *\n * @typeParam TypeAfterAddingOptions - The type this class should return after adding an option.\n */\nexport class SharedSlashCommandOptions<\n\tTypeAfterAddingOptions extends SharedSlashCommandOptions,\n> {\n\tpublic readonly options!: ToAPIApplicationCommandOptions[];\n\n\t/**\n\t * Adds a boolean option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addBooleanOption(\n\t\tinput: SlashCommandBooleanOption | ((builder: SlashCommandBooleanOption) => SlashCommandBooleanOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandBooleanOption);\n\t}\n\n\t/**\n\t * Adds a user option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addUserOption(input: SlashCommandUserOption | ((builder: SlashCommandUserOption) => SlashCommandUserOption)) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandUserOption);\n\t}\n\n\t/**\n\t * Adds a channel option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addChannelOption(\n\t\tinput: SlashCommandChannelOption | ((builder: SlashCommandChannelOption) => SlashCommandChannelOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandChannelOption);\n\t}\n\n\t/**\n\t * Adds a role option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addRoleOption(input: SlashCommandRoleOption | ((builder: SlashCommandRoleOption) => SlashCommandRoleOption)) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandRoleOption);\n\t}\n\n\t/**\n\t * Adds an attachment option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addAttachmentOption(\n\t\tinput: SlashCommandAttachmentOption | ((builder: SlashCommandAttachmentOption) => SlashCommandAttachmentOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandAttachmentOption);\n\t}\n\n\t/**\n\t * Adds a mentionable option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addMentionableOption(\n\t\tinput: SlashCommandMentionableOption | ((builder: SlashCommandMentionableOption) => SlashCommandMentionableOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandMentionableOption);\n\t}\n\n\t/**\n\t * Adds a string option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addStringOption(\n\t\tinput: SlashCommandStringOption | ((builder: SlashCommandStringOption) => SlashCommandStringOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandStringOption);\n\t}\n\n\t/**\n\t * Adds an integer option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addIntegerOption(\n\t\tinput: SlashCommandIntegerOption | ((builder: SlashCommandIntegerOption) => SlashCommandIntegerOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandIntegerOption);\n\t}\n\n\t/**\n\t * Adds a number option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addNumberOption(\n\t\tinput: SlashCommandNumberOption | ((builder: SlashCommandNumberOption) => SlashCommandNumberOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandNumberOption);\n\t}\n\n\t/**\n\t * Where the actual adding magic happens. ✨\n\t *\n\t * @param input - The input. What else?\n\t * @param Instance - The instance of whatever is being added\n\t * @internal\n\t */\n\tprivate _sharedAddOptionMethod(\n\t\tinput: OptionBuilder | ((builder: OptionBuilder) => OptionBuilder),\n\t\tInstance: new () => OptionBuilder,\n\t): TypeAfterAddingOptions {\n\t\tconst { options } = this;\n\n\t\t// First, assert options conditions - we cannot have more than 25 options\n\t\tvalidateMaxOptionsLength(options);\n\n\t\t// Get the final result\n\t\tconst result = typeof input === 'function' ? input(new Instance()) : input;\n\n\t\tassertReturnOfBuilder(result, Instance);\n\n\t\t// Push it\n\t\toptions.push(result);\n\n\t\treturn this as unknown as TypeAfterAddingOptions;\n\t}\n}\n","import {\n\tApplicationCommandOptionType,\n\ttype APIApplicationCommandSubcommandGroupOption,\n\ttype APIApplicationCommandSubcommandOption,\n} from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { assertReturnOfBuilder, validateMaxOptionsLength, validateRequiredParameters } from './Assertions.js';\nimport type { ToAPIApplicationCommandOptions } from './SlashCommandBuilder.js';\nimport type { ApplicationCommandOptionBase } from './mixins/ApplicationCommandOptionBase.js';\nimport { SharedNameAndDescription } from './mixins/NameAndDescription.js';\nimport { SharedSlashCommandOptions } from './mixins/SharedSlashCommandOptions.js';\n\n/**\n * Represents a folder for subcommands.\n *\n * @see {@link https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups}\n */\n@mix(SharedNameAndDescription)\nexport class SlashCommandSubcommandGroupBuilder implements ToAPIApplicationCommandOptions {\n\t/**\n\t * The name of this subcommand group.\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The description of this subcommand group.\n\t */\n\tpublic readonly description: string = undefined!;\n\n\t/**\n\t * The subcommands within this subcommand group.\n\t */\n\tpublic readonly options: SlashCommandSubcommandBuilder[] = [];\n\n\t/**\n\t * Adds a new subcommand to this group.\n\t *\n\t * @param input - A function that returns a subcommand builder or an already built builder\n\t */\n\tpublic addSubcommand(\n\t\tinput:\n\t\t\t| SlashCommandSubcommandBuilder\n\t\t\t| ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder),\n\t) {\n\t\tconst { options } = this;\n\n\t\t// First, assert options conditions - we cannot have more than 25 options\n\t\tvalidateMaxOptionsLength(options);\n\n\t\t// Get the final result\n\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\tconst result = typeof input === 'function' ? input(new SlashCommandSubcommandBuilder()) : input;\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\tassertReturnOfBuilder(result, SlashCommandSubcommandBuilder);\n\n\t\t// Push it\n\t\toptions.push(result);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): APIApplicationCommandSubcommandGroupOption {\n\t\tvalidateRequiredParameters(this.name, this.description, this.options);\n\n\t\treturn {\n\t\t\ttype: ApplicationCommandOptionType.SubcommandGroup,\n\t\t\tname: this.name,\n\t\t\tname_localizations: this.name_localizations,\n\t\t\tdescription: this.description,\n\t\t\tdescription_localizations: this.description_localizations,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\t}\n}\n\nexport interface SlashCommandSubcommandGroupBuilder extends SharedNameAndDescription {}\n\n/**\n * A builder that creates API-compatible JSON data for slash command subcommands.\n *\n * @see {@link https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups}\n */\n@mix(SharedNameAndDescription, SharedSlashCommandOptions)\nexport class SlashCommandSubcommandBuilder implements ToAPIApplicationCommandOptions {\n\t/**\n\t * The name of this subcommand.\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The description of this subcommand.\n\t */\n\tpublic readonly description: string = undefined!;\n\n\t/**\n\t * The options within this subcommand.\n\t */\n\tpublic readonly options: ApplicationCommandOptionBase[] = [];\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): APIApplicationCommandSubcommandOption {\n\t\tvalidateRequiredParameters(this.name, this.description, this.options);\n\n\t\treturn {\n\t\t\ttype: ApplicationCommandOptionType.Subcommand,\n\t\t\tname: this.name,\n\t\t\tname_localizations: this.name_localizations,\n\t\t\tdescription: this.description,\n\t\t\tdescription_localizations: this.description_localizations,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\t}\n}\n\nexport interface SlashCommandSubcommandBuilder\n\textends SharedNameAndDescription,\n\t\tSharedSlashCommandOptions {}\n","import { assertReturnOfBuilder, validateMaxOptionsLength } from '../Assertions.js';\nimport type { ToAPIApplicationCommandOptions } from '../SlashCommandBuilder.js';\nimport { SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder } from '../SlashCommandSubcommands.js';\n\n/**\n * This mixin holds symbols that can be shared in slash subcommands.\n *\n * @typeParam TypeAfterAddingSubcommands - The type this class should return after adding a subcommand or subcommand group.\n */\nexport class SharedSlashCommandSubcommands<\n\tTypeAfterAddingSubcommands extends SharedSlashCommandSubcommands,\n> {\n\tpublic readonly options: ToAPIApplicationCommandOptions[] = [];\n\n\t/**\n\t * Adds a new subcommand group to this command.\n\t *\n\t * @param input - A function that returns a subcommand group builder or an already built builder\n\t */\n\tpublic addSubcommandGroup(\n\t\tinput:\n\t\t\t| SlashCommandSubcommandGroupBuilder\n\t\t\t| ((subcommandGroup: SlashCommandSubcommandGroupBuilder) => SlashCommandSubcommandGroupBuilder),\n\t): TypeAfterAddingSubcommands {\n\t\tconst { options } = this;\n\n\t\t// First, assert options conditions - we cannot have more than 25 options\n\t\tvalidateMaxOptionsLength(options);\n\n\t\t// Get the final result\n\t\tconst result = typeof input === 'function' ? input(new SlashCommandSubcommandGroupBuilder()) : input;\n\n\t\tassertReturnOfBuilder(result, SlashCommandSubcommandGroupBuilder);\n\n\t\t// Push it\n\t\toptions.push(result);\n\n\t\treturn this as unknown as TypeAfterAddingSubcommands;\n\t}\n\n\t/**\n\t * Adds a new subcommand to this command.\n\t *\n\t * @param input - A function that returns a subcommand builder or an already built builder\n\t */\n\tpublic addSubcommand(\n\t\tinput:\n\t\t\t| SlashCommandSubcommandBuilder\n\t\t\t| ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder),\n\t): TypeAfterAddingSubcommands {\n\t\tconst { options } = this;\n\n\t\t// First, assert options conditions - we cannot have more than 25 options\n\t\tvalidateMaxOptionsLength(options);\n\n\t\t// Get the final result\n\t\tconst result = typeof input === 'function' ? input(new SlashCommandSubcommandBuilder()) : input;\n\n\t\tassertReturnOfBuilder(result, SlashCommandSubcommandBuilder);\n\n\t\t// Push it\n\t\toptions.push(result);\n\n\t\treturn this as unknown as TypeAfterAddingSubcommands;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandType, ApplicationIntegrationType, InteractionContextType } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\nimport type { ContextMenuCommandType } from './ContextMenuCommandBuilder.js';\n\nconst namePredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(32)\n\t// eslint-disable-next-line prefer-named-capture-group\n\t.regex(/^( *[\\p{P}\\p{L}\\p{N}\\p{sc=Devanagari}\\p{sc=Thai}]+ *)+$/u)\n\t.setValidationEnabled(isValidationEnabled);\nconst typePredicate = s\n\t.union([s.literal(ApplicationCommandType.User), s.literal(ApplicationCommandType.Message)])\n\t.setValidationEnabled(isValidationEnabled);\nconst booleanPredicate = s.boolean();\n\nexport function validateDefaultPermission(value: unknown): asserts value is boolean {\n\tbooleanPredicate.parse(value);\n}\n\nexport function validateName(name: unknown): asserts name is string {\n\tnamePredicate.parse(name);\n}\n\nexport function validateType(type: unknown): asserts type is ContextMenuCommandType {\n\ttypePredicate.parse(type);\n}\n\nexport function validateRequiredParameters(name: string, type: number) {\n\t// Assert name matches all conditions\n\tvalidateName(name);\n\n\t// Assert type is valid\n\tvalidateType(type);\n}\n\nconst dmPermissionPredicate = s.boolean().nullish();\n\nexport function validateDMPermission(value: unknown): asserts value is boolean | null | undefined {\n\tdmPermissionPredicate.parse(value);\n}\n\nconst memberPermissionPredicate = s\n\t.union([\n\t\ts.bigint().transform((value) => value.toString()),\n\t\ts\n\t\t\t.number()\n\t\t\t.safeInt()\n\t\t\t.transform((value) => value.toString()),\n\t\ts.string().regex(/^\\d+$/),\n\t])\n\t.nullish();\n\nexport function validateDefaultMemberPermissions(permissions: unknown) {\n\treturn memberPermissionPredicate.parse(permissions);\n}\n\nexport const contextsPredicate = s.array(\n\ts.nativeEnum(InteractionContextType).setValidationEnabled(isValidationEnabled),\n);\n\nexport const integrationTypesPredicate = s.array(\n\ts.nativeEnum(ApplicationIntegrationType).setValidationEnabled(isValidationEnabled),\n);\n","import type {\n\tApplicationCommandType,\n\tApplicationIntegrationType,\n\tInteractionContextType,\n\tLocaleString,\n\tLocalizationMap,\n\tPermissions,\n\tRESTPostAPIContextMenuApplicationCommandsJSONBody,\n} from 'discord-api-types/v10';\nimport type { RestOrArray } from '../../util/normalizeArray.js';\nimport { normalizeArray } from '../../util/normalizeArray.js';\nimport { validateLocale, validateLocalizationMap } from '../slashCommands/Assertions.js';\nimport {\n\tvalidateRequiredParameters,\n\tvalidateName,\n\tvalidateType,\n\tvalidateDefaultPermission,\n\tvalidateDefaultMemberPermissions,\n\tvalidateDMPermission,\n\tcontextsPredicate,\n\tintegrationTypesPredicate,\n} from './Assertions.js';\n\n/**\n * The type a context menu command can be.\n */\nexport type ContextMenuCommandType = ApplicationCommandType.Message | ApplicationCommandType.User;\n\n/**\n * A builder that creates API-compatible JSON data for context menu commands.\n */\nexport class ContextMenuCommandBuilder {\n\t/**\n\t * The name of this command.\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The name localizations of this command.\n\t */\n\tpublic readonly name_localizations?: LocalizationMap;\n\n\t/**\n\t * The type of this command.\n\t */\n\tpublic readonly type: ContextMenuCommandType = undefined!;\n\n\t/**\n\t * The contexts for this command.\n\t */\n\tpublic readonly contexts?: InteractionContextType[];\n\n\t/**\n\t * Whether this command is enabled by default when the application is added to a guild.\n\t *\n\t * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead.\n\t */\n\tpublic readonly default_permission: boolean | undefined = undefined;\n\n\t/**\n\t * The set of permissions represented as a bit set for the command.\n\t */\n\tpublic readonly default_member_permissions: Permissions | null | undefined = undefined;\n\n\t/**\n\t * Indicates whether the command is available in direct messages with the application.\n\t *\n\t * @remarks\n\t * By default, commands are visible. This property is only for global commands.\n\t * @deprecated\n\t * Use {@link ContextMenuCommandBuilder.contexts} instead.\n\t */\n\tpublic readonly dm_permission: boolean | undefined = undefined;\n\n\t/**\n\t * The integration types for this command.\n\t */\n\tpublic readonly integration_types?: ApplicationIntegrationType[];\n\n\t/**\n\t * Sets the contexts of this command.\n\t *\n\t * @param contexts - The contexts\n\t */\n\tpublic setContexts(...contexts: RestOrArray) {\n\t\tReflect.set(this, 'contexts', contextsPredicate.parse(normalizeArray(contexts)));\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets integration types of this command.\n\t *\n\t * @param integrationTypes - The integration types\n\t */\n\tpublic setIntegrationTypes(...integrationTypes: RestOrArray) {\n\t\tReflect.set(this, 'integration_types', integrationTypesPredicate.parse(normalizeArray(integrationTypes)));\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the name of this command.\n\t *\n\t * @param name - The name to use\n\t */\n\tpublic setName(name: string) {\n\t\t// Assert the name matches the conditions\n\t\tvalidateName(name);\n\n\t\tReflect.set(this, 'name', name);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the type of this command.\n\t *\n\t * @param type - The type to use\n\t */\n\tpublic setType(type: ContextMenuCommandType) {\n\t\t// Assert the type is valid\n\t\tvalidateType(type);\n\n\t\tReflect.set(this, 'type', type);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether the command is enabled by default when the application is added to a guild.\n\t *\n\t * @remarks\n\t * If set to `false`, you will have to later `PUT` the permissions for this command.\n\t * @param value - Whether to enable this command by default\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead.\n\t */\n\tpublic setDefaultPermission(value: boolean) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateDefaultPermission(value);\n\n\t\tReflect.set(this, 'default_permission', value);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the default permissions a member should have in order to run this command.\n\t *\n\t * @remarks\n\t * You can set this to `'0'` to disable the command by default.\n\t * @param permissions - The permissions bit field to set\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t */\n\tpublic setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined) {\n\t\t// Assert the value and parse it\n\t\tconst permissionValue = validateDefaultMemberPermissions(permissions);\n\n\t\tReflect.set(this, 'default_member_permissions', permissionValue);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets if the command is available in direct messages with the application.\n\t *\n\t * @remarks\n\t * By default, commands are visible. This method is only for global commands.\n\t * @param enabled - Whether the command should be enabled in direct messages\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t * @deprecated Use {@link ContextMenuCommandBuilder.setContexts} instead.\n\t */\n\tpublic setDMPermission(enabled: boolean | null | undefined) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateDMPermission(enabled);\n\n\t\tReflect.set(this, 'dm_permission', enabled);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a name localization for this command.\n\t *\n\t * @param locale - The locale to set\n\t * @param localizedName - The localized name for the given `locale`\n\t */\n\tpublic setNameLocalization(locale: LocaleString, localizedName: string | null) {\n\t\tif (!this.name_localizations) {\n\t\t\tReflect.set(this, 'name_localizations', {});\n\t\t}\n\n\t\tconst parsedLocale = validateLocale(locale);\n\n\t\tif (localizedName === null) {\n\t\t\tthis.name_localizations![parsedLocale] = null;\n\t\t\treturn this;\n\t\t}\n\n\t\tvalidateName(localizedName);\n\n\t\tthis.name_localizations![parsedLocale] = localizedName;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the name localizations for this command.\n\t *\n\t * @param localizedNames - The object of localized names to set\n\t */\n\tpublic setNameLocalizations(localizedNames: LocalizationMap | null) {\n\t\tif (localizedNames === null) {\n\t\t\tReflect.set(this, 'name_localizations', null);\n\t\t\treturn this;\n\t\t}\n\n\t\tReflect.set(this, 'name_localizations', {});\n\n\t\tfor (const args of Object.entries(localizedNames))\n\t\t\tthis.setNameLocalization(...(args as [LocaleString, string | null]));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): RESTPostAPIContextMenuApplicationCommandsJSONBody {\n\t\tvalidateRequiredParameters(this.name, this.type);\n\n\t\tvalidateLocalizationMap(this.name_localizations);\n\n\t\treturn { ...this };\n\t}\n}\n","import type { APIEmbed } from 'discord-api-types/v10';\n\n/**\n * Calculates the length of the embed.\n *\n * @param data - The embed data to check\n */\nexport function embedLength(data: APIEmbed) {\n\treturn (\n\t\t(data.title?.length ?? 0) +\n\t\t(data.description?.length ?? 0) +\n\t\t(data.fields?.reduce((prev, curr) => prev + curr.name.length + curr.value.length, 0) ?? 0) +\n\t\t(data.footer?.text.length ?? 0) +\n\t\t(data.author?.name.length ?? 0)\n\t);\n}\n"],"mappings":"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","names":["Assertions_exports","Assertions_exports","import_shapeshift","import_v10","import_v10","import_v10","import_v10","import_v10","import_v10","import_v10","import_v10","import_v10","Assertions_exports","placeholderValidator","import_shapeshift","import_v10","placeholderValidator","placeholderValidator","isEqual","Assertions_exports","validateRequiredParameters","import_shapeshift","validateRequiredParameters","validateRequiredParameters","Assertions_exports","validateRequiredParameters","import_shapeshift","import_v10","descriptionPredicate","validateRequiredParameters","import_ts_mixer","import_v10","validateRequiredParameters","import_v10","validateRequiredParameters","import_v10","import_v10","import_shapeshift","import_v10","import_shapeshift","import_v10","import_ts_mixer","import_shapeshift","booleanPredicate","import_shapeshift","import_v10","import_v10","import_shapeshift","import_v10","import_ts_mixer","numberValidator","import_v10","import_shapeshift","import_v10","import_ts_mixer","minLengthValidator","maxLengthValidator","import_v10","import_v10","import_ts_mixer","validateRequiredParameters","Assertions_exports","contextsPredicate","integrationTypesPredicate","validateDMPermission","validateDefaultMemberPermissions","validateDefaultPermission","validateName","validateRequiredParameters","import_shapeshift","import_v10","namePredicate","booleanPredicate","validateDefaultPermission","validateName","validateRequiredParameters","dmPermissionPredicate","validateDMPermission","memberPermissionPredicate","validateDefaultMemberPermissions","contextsPredicate","integrationTypesPredicate","contextsPredicate","integrationTypesPredicate","validateName","validateDefaultPermission","validateDefaultMemberPermissions","validateDMPermission","validateRequiredParameters"]} \ No newline at end of file diff --git a/node_modules/@discordjs/builders/dist/index.mjs b/node_modules/@discordjs/builders/dist/index.mjs deleted file mode 100644 index 36485e7..0000000 --- a/node_modules/@discordjs/builders/dist/index.mjs +++ /dev/null @@ -1,2859 +0,0 @@ -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __decorateClass = (decorators, target, key, kind) => { - var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target; - for (var i = decorators.length - 1, decorator; i >= 0; i--) - if (decorator = decorators[i]) - result = (kind ? decorator(target, key, result) : decorator(result)) || result; - if (kind && result) __defProp(target, key, result); - return result; -}; - -// src/messages/embed/Assertions.ts -var Assertions_exports = {}; -__export(Assertions_exports, { - RGBPredicate: () => RGBPredicate, - authorNamePredicate: () => authorNamePredicate, - colorPredicate: () => colorPredicate, - descriptionPredicate: () => descriptionPredicate, - embedAuthorPredicate: () => embedAuthorPredicate, - embedFieldPredicate: () => embedFieldPredicate, - embedFieldsArrayPredicate: () => embedFieldsArrayPredicate, - embedFooterPredicate: () => embedFooterPredicate, - fieldInlinePredicate: () => fieldInlinePredicate, - fieldLengthPredicate: () => fieldLengthPredicate, - fieldNamePredicate: () => fieldNamePredicate, - fieldValuePredicate: () => fieldValuePredicate, - footerTextPredicate: () => footerTextPredicate, - imageURLPredicate: () => imageURLPredicate, - timestampPredicate: () => timestampPredicate, - titlePredicate: () => titlePredicate, - urlPredicate: () => urlPredicate, - validateFieldLength: () => validateFieldLength -}); -import { s } from "@sapphire/shapeshift"; - -// src/util/validation.ts -var validate = true; -function enableValidators() { - return validate = true; -} -__name(enableValidators, "enableValidators"); -function disableValidators() { - return validate = false; -} -__name(disableValidators, "disableValidators"); -function isValidationEnabled() { - return validate; -} -__name(isValidationEnabled, "isValidationEnabled"); - -// src/messages/embed/Assertions.ts -var fieldNamePredicate = s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(256).setValidationEnabled(isValidationEnabled); -var fieldValuePredicate = s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(1024).setValidationEnabled(isValidationEnabled); -var fieldInlinePredicate = s.boolean().optional(); -var embedFieldPredicate = s.object({ - name: fieldNamePredicate, - value: fieldValuePredicate, - inline: fieldInlinePredicate -}).setValidationEnabled(isValidationEnabled); -var embedFieldsArrayPredicate = embedFieldPredicate.array().setValidationEnabled(isValidationEnabled); -var fieldLengthPredicate = s.number().lessThanOrEqual(25).setValidationEnabled(isValidationEnabled); -function validateFieldLength(amountAdding, fields) { - fieldLengthPredicate.parse((fields?.length ?? 0) + amountAdding); -} -__name(validateFieldLength, "validateFieldLength"); -var authorNamePredicate = fieldNamePredicate.nullable().setValidationEnabled(isValidationEnabled); -var imageURLPredicate = s.string().url({ - allowedProtocols: ["http:", "https:", "attachment:"] -}).nullish().setValidationEnabled(isValidationEnabled); -var urlPredicate = s.string().url({ - allowedProtocols: ["http:", "https:"] -}).nullish().setValidationEnabled(isValidationEnabled); -var embedAuthorPredicate = s.object({ - name: authorNamePredicate, - iconURL: imageURLPredicate, - url: urlPredicate -}).setValidationEnabled(isValidationEnabled); -var RGBPredicate = s.number().int().greaterThanOrEqual(0).lessThanOrEqual(255).setValidationEnabled(isValidationEnabled); -var colorPredicate = s.number().int().greaterThanOrEqual(0).lessThanOrEqual(16777215).or(s.tuple([RGBPredicate, RGBPredicate, RGBPredicate])).nullable().setValidationEnabled(isValidationEnabled); -var descriptionPredicate = s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(4096).nullable().setValidationEnabled(isValidationEnabled); -var footerTextPredicate = s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(2048).nullable().setValidationEnabled(isValidationEnabled); -var embedFooterPredicate = s.object({ - text: footerTextPredicate, - iconURL: imageURLPredicate -}).setValidationEnabled(isValidationEnabled); -var timestampPredicate = s.union([s.number(), s.date()]).nullable().setValidationEnabled(isValidationEnabled); -var titlePredicate = fieldNamePredicate.nullable().setValidationEnabled(isValidationEnabled); - -// src/util/normalizeArray.ts -function normalizeArray(arr) { - if (Array.isArray(arr[0])) return [...arr[0]]; - return arr; -} -__name(normalizeArray, "normalizeArray"); - -// src/messages/embed/Embed.ts -var EmbedBuilder = class { - static { - __name(this, "EmbedBuilder"); - } - /** - * The API data associated with this embed. - */ - data; - /** - * Creates a new embed from API data. - * - * @param data - The API data to create this embed with - */ - constructor(data = {}) { - this.data = { ...data }; - if (data.timestamp) this.data.timestamp = new Date(data.timestamp).toISOString(); - } - /** - * Appends fields to the embed. - * - * @remarks - * This method accepts either an array of fields or a variable number of field parameters. - * The maximum amount of fields that can be added is 25. - * @example - * Using an array: - * ```ts - * const fields: APIEmbedField[] = ...; - * const embed = new EmbedBuilder() - * .addFields(fields); - * ``` - * @example - * Using rest parameters (variadic): - * ```ts - * const embed = new EmbedBuilder() - * .addFields( - * { name: 'Field 1', value: 'Value 1' }, - * { name: 'Field 2', value: 'Value 2' }, - * ); - * ``` - * @param fields - The fields to add - */ - addFields(...fields) { - const normalizedFields = normalizeArray(fields); - validateFieldLength(normalizedFields.length, this.data.fields); - embedFieldsArrayPredicate.parse(normalizedFields); - if (this.data.fields) this.data.fields.push(...normalizedFields); - else this.data.fields = normalizedFields; - return this; - } - /** - * Removes, replaces, or inserts fields for this embed. - * - * @remarks - * This method behaves similarly - * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. - * The maximum amount of fields that can be added is 25. - * - * It's useful for modifying and adjusting order of the already-existing fields of an embed. - * @example - * Remove the first field: - * ```ts - * embed.spliceFields(0, 1); - * ``` - * @example - * Remove the first n fields: - * ```ts - * const n = 4; - * embed.spliceFields(0, n); - * ``` - * @example - * Remove the last field: - * ```ts - * embed.spliceFields(-1, 1); - * ``` - * @param index - The index to start at - * @param deleteCount - The number of fields to remove - * @param fields - The replacing field objects - */ - spliceFields(index, deleteCount, ...fields) { - validateFieldLength(fields.length - deleteCount, this.data.fields); - embedFieldsArrayPredicate.parse(fields); - if (this.data.fields) this.data.fields.splice(index, deleteCount, ...fields); - else this.data.fields = fields; - return this; - } - /** - * Sets the fields for this embed. - * - * @remarks - * This method is an alias for {@link EmbedBuilder.spliceFields}. More specifically, - * it splices the entire array of fields, replacing them with the provided fields. - * - * You can set a maximum of 25 fields. - * @param fields - The fields to set - */ - setFields(...fields) { - this.spliceFields(0, this.data.fields?.length ?? 0, ...normalizeArray(fields)); - return this; - } - /** - * Sets the author of this embed. - * - * @param options - The options to use - */ - setAuthor(options) { - if (options === null) { - this.data.author = void 0; - return this; - } - embedAuthorPredicate.parse(options); - this.data.author = { name: options.name, url: options.url, icon_url: options.iconURL }; - return this; - } - /** - * Sets the color of this embed. - * - * @param color - The color to use - */ - setColor(color) { - colorPredicate.parse(color); - if (Array.isArray(color)) { - const [red, green, blue] = color; - this.data.color = (red << 16) + (green << 8) + blue; - return this; - } - this.data.color = color ?? void 0; - return this; - } - /** - * Sets the description of this embed. - * - * @param description - The description to use - */ - setDescription(description) { - descriptionPredicate.parse(description); - this.data.description = description ?? void 0; - return this; - } - /** - * Sets the footer of this embed. - * - * @param options - The footer to use - */ - setFooter(options) { - if (options === null) { - this.data.footer = void 0; - return this; - } - embedFooterPredicate.parse(options); - this.data.footer = { text: options.text, icon_url: options.iconURL }; - return this; - } - /** - * Sets the image of this embed. - * - * @param url - The image URL to use - */ - setImage(url) { - imageURLPredicate.parse(url); - this.data.image = url ? { url } : void 0; - return this; - } - /** - * Sets the thumbnail of this embed. - * - * @param url - The thumbnail URL to use - */ - setThumbnail(url) { - imageURLPredicate.parse(url); - this.data.thumbnail = url ? { url } : void 0; - return this; - } - /** - * Sets the timestamp of this embed. - * - * @param timestamp - The timestamp or date to use - */ - setTimestamp(timestamp = Date.now()) { - timestampPredicate.parse(timestamp); - this.data.timestamp = timestamp ? new Date(timestamp).toISOString() : void 0; - return this; - } - /** - * Sets the title for this embed. - * - * @param title - The title to use - */ - setTitle(title) { - titlePredicate.parse(title); - this.data.title = title ?? void 0; - return this; - } - /** - * Sets the URL of this embed. - * - * @param url - The URL to use - */ - setURL(url) { - urlPredicate.parse(url); - this.data.url = url ?? void 0; - return this; - } - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON() { - return { ...this.data }; - } -}; - -// src/index.ts -export * from "@discordjs/formatters"; - -// src/components/Assertions.ts -var Assertions_exports2 = {}; -__export(Assertions_exports2, { - buttonLabelValidator: () => buttonLabelValidator, - buttonStyleValidator: () => buttonStyleValidator, - channelTypesValidator: () => channelTypesValidator, - customIdValidator: () => customIdValidator, - defaultValidator: () => defaultValidator, - disabledValidator: () => disabledValidator, - emojiValidator: () => emojiValidator, - jsonOptionValidator: () => jsonOptionValidator, - labelValueDescriptionValidator: () => labelValueDescriptionValidator, - minMaxValidator: () => minMaxValidator, - optionValidator: () => optionValidator, - optionsLengthValidator: () => optionsLengthValidator, - optionsValidator: () => optionsValidator, - placeholderValidator: () => placeholderValidator, - urlValidator: () => urlValidator, - validateRequiredButtonParameters: () => validateRequiredButtonParameters, - validateRequiredSelectMenuOptionParameters: () => validateRequiredSelectMenuOptionParameters, - validateRequiredSelectMenuParameters: () => validateRequiredSelectMenuParameters -}); -import { s as s2 } from "@sapphire/shapeshift"; -import { ButtonStyle, ChannelType } from "discord-api-types/v10"; - -// src/components/selectMenu/StringSelectMenuOption.ts -var StringSelectMenuOptionBuilder = class { - /** - * Creates a new string select menu option from API data. - * - * @param data - The API data to create this string select menu option with - * @example - * Creating a string select menu option from an API data object: - * ```ts - * const selectMenuOption = new SelectMenuOptionBuilder({ - * label: 'catchy label', - * value: '1', - * }); - * ``` - * @example - * Creating a string select menu option using setters and API data: - * ```ts - * const selectMenuOption = new SelectMenuOptionBuilder({ - * default: true, - * value: '1', - * }) - * .setLabel('woah'); - * ``` - */ - constructor(data = {}) { - this.data = data; - } - static { - __name(this, "StringSelectMenuOptionBuilder"); - } - /** - * Sets the label for this option. - * - * @param label - The label to use - */ - setLabel(label) { - this.data.label = labelValueDescriptionValidator.parse(label); - return this; - } - /** - * Sets the value for this option. - * - * @param value - The value to use - */ - setValue(value) { - this.data.value = labelValueDescriptionValidator.parse(value); - return this; - } - /** - * Sets the description for this option. - * - * @param description - The description to use - */ - setDescription(description) { - this.data.description = labelValueDescriptionValidator.parse(description); - return this; - } - /** - * Sets whether this option is selected by default. - * - * @param isDefault - Whether this option is selected by default - */ - setDefault(isDefault = true) { - this.data.default = defaultValidator.parse(isDefault); - return this; - } - /** - * Sets the emoji to display for this option. - * - * @param emoji - The emoji to use - */ - setEmoji(emoji) { - this.data.emoji = emojiValidator.parse(emoji); - return this; - } - /** - * {@inheritDoc BaseSelectMenuBuilder.toJSON} - */ - toJSON() { - validateRequiredSelectMenuOptionParameters(this.data.label, this.data.value); - return { - ...this.data - }; - } -}; - -// src/components/Assertions.ts -var customIdValidator = s2.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled); -var emojiValidator = s2.object({ - id: s2.string(), - name: s2.string(), - animated: s2.boolean() -}).partial().strict().setValidationEnabled(isValidationEnabled); -var disabledValidator = s2.boolean(); -var buttonLabelValidator = s2.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(80).setValidationEnabled(isValidationEnabled); -var buttonStyleValidator = s2.nativeEnum(ButtonStyle); -var placeholderValidator = s2.string().lengthLessThanOrEqual(150).setValidationEnabled(isValidationEnabled); -var minMaxValidator = s2.number().int().greaterThanOrEqual(0).lessThanOrEqual(25).setValidationEnabled(isValidationEnabled); -var labelValueDescriptionValidator = s2.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled); -var jsonOptionValidator = s2.object({ - label: labelValueDescriptionValidator, - value: labelValueDescriptionValidator, - description: labelValueDescriptionValidator.optional(), - emoji: emojiValidator.optional(), - default: s2.boolean().optional() -}).setValidationEnabled(isValidationEnabled); -var optionValidator = s2.instance(StringSelectMenuOptionBuilder).setValidationEnabled(isValidationEnabled); -var optionsValidator = optionValidator.array().lengthGreaterThanOrEqual(0).setValidationEnabled(isValidationEnabled); -var optionsLengthValidator = s2.number().int().greaterThanOrEqual(0).lessThanOrEqual(25).setValidationEnabled(isValidationEnabled); -function validateRequiredSelectMenuParameters(options, customId) { - customIdValidator.parse(customId); - optionsValidator.parse(options); -} -__name(validateRequiredSelectMenuParameters, "validateRequiredSelectMenuParameters"); -var defaultValidator = s2.boolean(); -function validateRequiredSelectMenuOptionParameters(label, value) { - labelValueDescriptionValidator.parse(label); - labelValueDescriptionValidator.parse(value); -} -__name(validateRequiredSelectMenuOptionParameters, "validateRequiredSelectMenuOptionParameters"); -var channelTypesValidator = s2.nativeEnum(ChannelType).array().setValidationEnabled(isValidationEnabled); -var urlValidator = s2.string().url({ - allowedProtocols: ["http:", "https:", "discord:"] -}).setValidationEnabled(isValidationEnabled); -function validateRequiredButtonParameters(style, label, emoji, customId, skuId, url) { - if (style === ButtonStyle.Premium) { - if (!skuId) { - throw new RangeError("Premium buttons must have an SKU id."); - } - if (customId || label || url || emoji) { - throw new RangeError("Premium buttons cannot have a custom id, label, URL, or emoji."); - } - } else { - if (skuId) { - throw new RangeError("Non-premium buttons must not have an SKU id."); - } - if (url && customId) { - throw new RangeError("URL and custom id are mutually exclusive."); - } - if (!label && !emoji) { - throw new RangeError("Non-premium buttons must have a label and/or an emoji."); - } - if (style === ButtonStyle.Link) { - if (!url) { - throw new RangeError("Link buttons must have a URL."); - } - } else if (url) { - throw new RangeError("Non-premium and non-link buttons cannot have a URL."); - } - } -} -__name(validateRequiredButtonParameters, "validateRequiredButtonParameters"); - -// src/components/ActionRow.ts -import { - ComponentType as ComponentType9 -} from "discord-api-types/v10"; - -// src/components/Component.ts -var ComponentBuilder = class { - static { - __name(this, "ComponentBuilder"); - } - /** - * The API data associated with this component. - */ - data; - /** - * Constructs a new kind of component. - * - * @param data - The data to construct a component out of - */ - constructor(data) { - this.data = data; - } -}; - -// src/components/Components.ts -import { ComponentType as ComponentType8 } from "discord-api-types/v10"; - -// src/components/button/Button.ts -import { - ComponentType -} from "discord-api-types/v10"; -var ButtonBuilder = class extends ComponentBuilder { - static { - __name(this, "ButtonBuilder"); - } - /** - * Creates a new button from API data. - * - * @param data - The API data to create this button with - * @example - * Creating a button from an API data object: - * ```ts - * const button = new ButtonBuilder({ - * custom_id: 'a cool button', - * style: ButtonStyle.Primary, - * label: 'Click Me', - * emoji: { - * name: 'smile', - * id: '123456789012345678', - * }, - * }); - * ``` - * @example - * Creating a button using setters and API data: - * ```ts - * const button = new ButtonBuilder({ - * style: ButtonStyle.Secondary, - * label: 'Click Me', - * }) - * .setEmoji({ name: '🙂' }) - * .setCustomId('another cool button'); - * ``` - */ - constructor(data) { - super({ type: ComponentType.Button, ...data }); - } - /** - * Sets the style of this button. - * - * @param style - The style to use - */ - setStyle(style) { - this.data.style = buttonStyleValidator.parse(style); - return this; - } - /** - * Sets the URL for this button. - * - * @remarks - * This method is only available to buttons using the `Link` button style. - * Only three types of URL schemes are currently supported: `https://`, `http://`, and `discord://`. - * @param url - The URL to use - */ - setURL(url) { - this.data.url = urlValidator.parse(url); - return this; - } - /** - * Sets the custom id for this button. - * - * @remarks - * This method is only applicable to buttons that are not using the `Link` button style. - * @param customId - The custom id to use - */ - setCustomId(customId) { - this.data.custom_id = customIdValidator.parse(customId); - return this; - } - /** - * Sets the SKU id that represents a purchasable SKU for this button. - * - * @remarks Only available when using premium-style buttons. - * @param skuId - The SKU id to use - */ - setSKUId(skuId) { - this.data.sku_id = skuId; - return this; - } - /** - * Sets the emoji to display on this button. - * - * @param emoji - The emoji to use - */ - setEmoji(emoji) { - this.data.emoji = emojiValidator.parse(emoji); - return this; - } - /** - * Sets whether this button is disabled. - * - * @param disabled - Whether to disable this button - */ - setDisabled(disabled = true) { - this.data.disabled = disabledValidator.parse(disabled); - return this; - } - /** - * Sets the label for this button. - * - * @param label - The label to use - */ - setLabel(label) { - this.data.label = buttonLabelValidator.parse(label); - return this; - } - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON() { - validateRequiredButtonParameters( - this.data.style, - this.data.label, - this.data.emoji, - this.data.custom_id, - this.data.sku_id, - this.data.url - ); - return { - ...this.data - }; - } -}; - -// src/components/selectMenu/ChannelSelectMenu.ts -import { - ComponentType as ComponentType2, - SelectMenuDefaultValueType -} from "discord-api-types/v10"; - -// src/components/selectMenu/BaseSelectMenu.ts -var BaseSelectMenuBuilder = class extends ComponentBuilder { - static { - __name(this, "BaseSelectMenuBuilder"); - } - /** - * Sets the placeholder for this select menu. - * - * @param placeholder - The placeholder to use - */ - setPlaceholder(placeholder) { - this.data.placeholder = placeholderValidator.parse(placeholder); - return this; - } - /** - * Sets the minimum values that must be selected in the select menu. - * - * @param minValues - The minimum values that must be selected - */ - setMinValues(minValues) { - this.data.min_values = minMaxValidator.parse(minValues); - return this; - } - /** - * Sets the maximum values that must be selected in the select menu. - * - * @param maxValues - The maximum values that must be selected - */ - setMaxValues(maxValues) { - this.data.max_values = minMaxValidator.parse(maxValues); - return this; - } - /** - * Sets the custom id for this select menu. - * - * @param customId - The custom id to use - */ - setCustomId(customId) { - this.data.custom_id = customIdValidator.parse(customId); - return this; - } - /** - * Sets whether this select menu is disabled. - * - * @param disabled - Whether this select menu is disabled - */ - setDisabled(disabled = true) { - this.data.disabled = disabledValidator.parse(disabled); - return this; - } - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON() { - customIdValidator.parse(this.data.custom_id); - return { - ...this.data - }; - } -}; - -// src/components/selectMenu/ChannelSelectMenu.ts -var ChannelSelectMenuBuilder = class extends BaseSelectMenuBuilder { - static { - __name(this, "ChannelSelectMenuBuilder"); - } - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new ChannelSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new ChannelSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .addChannelTypes(ChannelType.GuildText, ChannelType.GuildAnnouncement) - * .setMinValues(2); - * ``` - */ - constructor(data) { - super({ ...data, type: ComponentType2.ChannelSelect }); - } - /** - * Adds channel types to this select menu. - * - * @param types - The channel types to use - */ - addChannelTypes(...types) { - const normalizedTypes = normalizeArray(types); - this.data.channel_types ??= []; - this.data.channel_types.push(...channelTypesValidator.parse(normalizedTypes)); - return this; - } - /** - * Sets channel types for this select menu. - * - * @param types - The channel types to use - */ - setChannelTypes(...types) { - const normalizedTypes = normalizeArray(types); - this.data.channel_types ??= []; - this.data.channel_types.splice(0, this.data.channel_types.length, ...channelTypesValidator.parse(normalizedTypes)); - return this; - } - /** - * Adds default channels to this auto populated select menu. - * - * @param channels - The channels to add - */ - addDefaultChannels(...channels) { - const normalizedValues = normalizeArray(channels); - optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); - this.data.default_values ??= []; - this.data.default_values.push( - ...normalizedValues.map((id) => ({ - id, - type: SelectMenuDefaultValueType.Channel - })) - ); - return this; - } - /** - * Sets default channels for this auto populated select menu. - * - * @param channels - The channels to set - */ - setDefaultChannels(...channels) { - const normalizedValues = normalizeArray(channels); - optionsLengthValidator.parse(normalizedValues.length); - this.data.default_values = normalizedValues.map((id) => ({ - id, - type: SelectMenuDefaultValueType.Channel - })); - return this; - } - /** - * {@inheritDoc BaseSelectMenuBuilder.toJSON} - */ - toJSON() { - customIdValidator.parse(this.data.custom_id); - return { - ...this.data - }; - } -}; - -// src/components/selectMenu/MentionableSelectMenu.ts -import { - ComponentType as ComponentType3, - SelectMenuDefaultValueType as SelectMenuDefaultValueType2 -} from "discord-api-types/v10"; -var MentionableSelectMenuBuilder = class extends BaseSelectMenuBuilder { - static { - __name(this, "MentionableSelectMenuBuilder"); - } - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new MentionableSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new MentionableSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1); - * ``` - */ - constructor(data) { - super({ ...data, type: ComponentType3.MentionableSelect }); - } - /** - * Adds default roles to this auto populated select menu. - * - * @param roles - The roles to add - */ - addDefaultRoles(...roles) { - const normalizedValues = normalizeArray(roles); - optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); - this.data.default_values ??= []; - this.data.default_values.push( - ...normalizedValues.map((id) => ({ - id, - type: SelectMenuDefaultValueType2.Role - })) - ); - return this; - } - /** - * Adds default users to this auto populated select menu. - * - * @param users - The users to add - */ - addDefaultUsers(...users) { - const normalizedValues = normalizeArray(users); - optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); - this.data.default_values ??= []; - this.data.default_values.push( - ...normalizedValues.map((id) => ({ - id, - type: SelectMenuDefaultValueType2.User - })) - ); - return this; - } - /** - * Adds default values to this auto populated select menu. - * - * @param values - The values to add - */ - addDefaultValues(...values) { - const normalizedValues = normalizeArray(values); - optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); - this.data.default_values ??= []; - this.data.default_values.push(...normalizedValues); - return this; - } - /** - * Sets default values for this auto populated select menu. - * - * @param values - The values to set - */ - setDefaultValues(...values) { - const normalizedValues = normalizeArray(values); - optionsLengthValidator.parse(normalizedValues.length); - this.data.default_values = normalizedValues; - return this; - } -}; - -// src/components/selectMenu/RoleSelectMenu.ts -import { - ComponentType as ComponentType4, - SelectMenuDefaultValueType as SelectMenuDefaultValueType3 -} from "discord-api-types/v10"; -var RoleSelectMenuBuilder = class extends BaseSelectMenuBuilder { - static { - __name(this, "RoleSelectMenuBuilder"); - } - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new RoleSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new RoleSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1); - * ``` - */ - constructor(data) { - super({ ...data, type: ComponentType4.RoleSelect }); - } - /** - * Adds default roles to this auto populated select menu. - * - * @param roles - The roles to add - */ - addDefaultRoles(...roles) { - const normalizedValues = normalizeArray(roles); - optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); - this.data.default_values ??= []; - this.data.default_values.push( - ...normalizedValues.map((id) => ({ - id, - type: SelectMenuDefaultValueType3.Role - })) - ); - return this; - } - /** - * Sets default roles for this auto populated select menu. - * - * @param roles - The roles to set - */ - setDefaultRoles(...roles) { - const normalizedValues = normalizeArray(roles); - optionsLengthValidator.parse(normalizedValues.length); - this.data.default_values = normalizedValues.map((id) => ({ - id, - type: SelectMenuDefaultValueType3.Role - })); - return this; - } -}; - -// src/components/selectMenu/StringSelectMenu.ts -import { ComponentType as ComponentType5 } from "discord-api-types/v10"; -var StringSelectMenuBuilder = class extends BaseSelectMenuBuilder { - static { - __name(this, "StringSelectMenuBuilder"); - } - /** - * The options within this select menu. - */ - options; - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new StringSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * options: [ - * { label: 'option 1', value: '1' }, - * { label: 'option 2', value: '2' }, - * { label: 'option 3', value: '3' }, - * ], - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new StringSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1) - * .addOptions({ - * label: 'Catchy', - * value: 'catch', - * }); - * ``` - */ - constructor(data) { - const { options, ...initData } = data ?? {}; - super({ ...initData, type: ComponentType5.StringSelect }); - this.options = options?.map((option) => new StringSelectMenuOptionBuilder(option)) ?? []; - } - /** - * Adds options to this select menu. - * - * @param options - The options to add - */ - addOptions(...options) { - const normalizedOptions = normalizeArray(options); - optionsLengthValidator.parse(this.options.length + normalizedOptions.length); - this.options.push( - ...normalizedOptions.map( - (normalizedOption) => normalizedOption instanceof StringSelectMenuOptionBuilder ? normalizedOption : new StringSelectMenuOptionBuilder(jsonOptionValidator.parse(normalizedOption)) - ) - ); - return this; - } - /** - * Sets the options for this select menu. - * - * @param options - The options to set - */ - setOptions(...options) { - return this.spliceOptions(0, this.options.length, ...options); - } - /** - * Removes, replaces, or inserts options for this select menu. - * - * @remarks - * This method behaves similarly - * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice | Array.prototype.splice()}. - * It's useful for modifying and adjusting the order of existing options. - * @example - * Remove the first option: - * ```ts - * selectMenu.spliceOptions(0, 1); - * ``` - * @example - * Remove the first n option: - * ```ts - * const n = 4; - * selectMenu.spliceOptions(0, n); - * ``` - * @example - * Remove the last option: - * ```ts - * selectMenu.spliceOptions(-1, 1); - * ``` - * @param index - The index to start at - * @param deleteCount - The number of options to remove - * @param options - The replacing option objects or builders - */ - spliceOptions(index, deleteCount, ...options) { - const normalizedOptions = normalizeArray(options); - const clone = [...this.options]; - clone.splice( - index, - deleteCount, - ...normalizedOptions.map( - (normalizedOption) => normalizedOption instanceof StringSelectMenuOptionBuilder ? normalizedOption : new StringSelectMenuOptionBuilder(jsonOptionValidator.parse(normalizedOption)) - ) - ); - optionsLengthValidator.parse(clone.length); - this.options.splice(0, this.options.length, ...clone); - return this; - } - /** - * {@inheritDoc BaseSelectMenuBuilder.toJSON} - */ - toJSON() { - validateRequiredSelectMenuParameters(this.options, this.data.custom_id); - return { - ...this.data, - options: this.options.map((option) => option.toJSON()) - }; - } -}; - -// src/components/selectMenu/UserSelectMenu.ts -import { - ComponentType as ComponentType6, - SelectMenuDefaultValueType as SelectMenuDefaultValueType4 -} from "discord-api-types/v10"; -var UserSelectMenuBuilder = class extends BaseSelectMenuBuilder { - static { - __name(this, "UserSelectMenuBuilder"); - } - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new UserSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new UserSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1); - * ``` - */ - constructor(data) { - super({ ...data, type: ComponentType6.UserSelect }); - } - /** - * Adds default users to this auto populated select menu. - * - * @param users - The users to add - */ - addDefaultUsers(...users) { - const normalizedValues = normalizeArray(users); - optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); - this.data.default_values ??= []; - this.data.default_values.push( - ...normalizedValues.map((id) => ({ - id, - type: SelectMenuDefaultValueType4.User - })) - ); - return this; - } - /** - * Sets default users for this auto populated select menu. - * - * @param users - The users to set - */ - setDefaultUsers(...users) { - const normalizedValues = normalizeArray(users); - optionsLengthValidator.parse(normalizedValues.length); - this.data.default_values = normalizedValues.map((id) => ({ - id, - type: SelectMenuDefaultValueType4.User - })); - return this; - } -}; - -// src/components/textInput/TextInput.ts -import { isJSONEncodable } from "@discordjs/util"; -import { ComponentType as ComponentType7 } from "discord-api-types/v10"; -import isEqual from "fast-deep-equal"; - -// src/components/textInput/Assertions.ts -var Assertions_exports3 = {}; -__export(Assertions_exports3, { - labelValidator: () => labelValidator, - maxLengthValidator: () => maxLengthValidator, - minLengthValidator: () => minLengthValidator, - placeholderValidator: () => placeholderValidator2, - requiredValidator: () => requiredValidator, - textInputStyleValidator: () => textInputStyleValidator, - validateRequiredParameters: () => validateRequiredParameters, - valueValidator: () => valueValidator -}); -import { s as s3 } from "@sapphire/shapeshift"; -import { TextInputStyle } from "discord-api-types/v10"; -var textInputStyleValidator = s3.nativeEnum(TextInputStyle); -var minLengthValidator = s3.number().int().greaterThanOrEqual(0).lessThanOrEqual(4e3).setValidationEnabled(isValidationEnabled); -var maxLengthValidator = s3.number().int().greaterThanOrEqual(1).lessThanOrEqual(4e3).setValidationEnabled(isValidationEnabled); -var requiredValidator = s3.boolean(); -var valueValidator = s3.string().lengthLessThanOrEqual(4e3).setValidationEnabled(isValidationEnabled); -var placeholderValidator2 = s3.string().lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled); -var labelValidator = s3.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(45).setValidationEnabled(isValidationEnabled); -function validateRequiredParameters(customId, style, label) { - customIdValidator.parse(customId); - textInputStyleValidator.parse(style); - labelValidator.parse(label); -} -__name(validateRequiredParameters, "validateRequiredParameters"); - -// src/components/textInput/TextInput.ts -var TextInputBuilder = class extends ComponentBuilder { - static { - __name(this, "TextInputBuilder"); - } - /** - * Creates a new text input from API data. - * - * @param data - The API data to create this text input with - * @example - * Creating a text input from an API data object: - * ```ts - * const textInput = new TextInputBuilder({ - * custom_id: 'a cool text input', - * label: 'Type something', - * style: TextInputStyle.Short, - * }); - * ``` - * @example - * Creating a text input using setters and API data: - * ```ts - * const textInput = new TextInputBuilder({ - * label: 'Type something else', - * }) - * .setCustomId('woah') - * .setStyle(TextInputStyle.Paragraph); - * ``` - */ - constructor(data) { - super({ type: ComponentType7.TextInput, ...data }); - } - /** - * Sets the custom id for this text input. - * - * @param customId - The custom id to use - */ - setCustomId(customId) { - this.data.custom_id = customIdValidator.parse(customId); - return this; - } - /** - * Sets the label for this text input. - * - * @param label - The label to use - */ - setLabel(label) { - this.data.label = labelValidator.parse(label); - return this; - } - /** - * Sets the style for this text input. - * - * @param style - The style to use - */ - setStyle(style) { - this.data.style = textInputStyleValidator.parse(style); - return this; - } - /** - * Sets the minimum length of text for this text input. - * - * @param minLength - The minimum length of text for this text input - */ - setMinLength(minLength) { - this.data.min_length = minLengthValidator.parse(minLength); - return this; - } - /** - * Sets the maximum length of text for this text input. - * - * @param maxLength - The maximum length of text for this text input - */ - setMaxLength(maxLength) { - this.data.max_length = maxLengthValidator.parse(maxLength); - return this; - } - /** - * Sets the placeholder for this text input. - * - * @param placeholder - The placeholder to use - */ - setPlaceholder(placeholder) { - this.data.placeholder = placeholderValidator2.parse(placeholder); - return this; - } - /** - * Sets the value for this text input. - * - * @param value - The value to use - */ - setValue(value) { - this.data.value = valueValidator.parse(value); - return this; - } - /** - * Sets whether this text input is required. - * - * @param required - Whether this text input is required - */ - setRequired(required = true) { - this.data.required = requiredValidator.parse(required); - return this; - } - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON() { - validateRequiredParameters(this.data.custom_id, this.data.style, this.data.label); - return { - ...this.data - }; - } - /** - * Whether this is equal to another structure. - */ - equals(other) { - if (isJSONEncodable(other)) { - return isEqual(other.toJSON(), this.data); - } - return isEqual(other, this.data); - } -}; - -// src/components/Components.ts -function createComponentBuilder(data) { - if (data instanceof ComponentBuilder) { - return data; - } - switch (data.type) { - case ComponentType8.ActionRow: - return new ActionRowBuilder(data); - case ComponentType8.Button: - return new ButtonBuilder(data); - case ComponentType8.StringSelect: - return new StringSelectMenuBuilder(data); - case ComponentType8.TextInput: - return new TextInputBuilder(data); - case ComponentType8.UserSelect: - return new UserSelectMenuBuilder(data); - case ComponentType8.RoleSelect: - return new RoleSelectMenuBuilder(data); - case ComponentType8.MentionableSelect: - return new MentionableSelectMenuBuilder(data); - case ComponentType8.ChannelSelect: - return new ChannelSelectMenuBuilder(data); - default: - throw new Error(`Cannot properly serialize component type: ${data.type}`); - } -} -__name(createComponentBuilder, "createComponentBuilder"); - -// src/components/ActionRow.ts -var ActionRowBuilder = class extends ComponentBuilder { - static { - __name(this, "ActionRowBuilder"); - } - /** - * The components within this action row. - */ - components; - /** - * Creates a new action row from API data. - * - * @param data - The API data to create this action row with - * @example - * Creating an action row from an API data object: - * ```ts - * const actionRow = new ActionRowBuilder({ - * components: [ - * { - * custom_id: "custom id", - * label: "Type something", - * style: TextInputStyle.Short, - * type: ComponentType.TextInput, - * }, - * ], - * }); - * ``` - * @example - * Creating an action row using setters and API data: - * ```ts - * const actionRow = new ActionRowBuilder({ - * components: [ - * { - * custom_id: "custom id", - * label: "Click me", - * style: ButtonStyle.Primary, - * type: ComponentType.Button, - * }, - * ], - * }) - * .addComponents(button2, button3); - * ``` - */ - constructor({ components, ...data } = {}) { - super({ type: ComponentType9.ActionRow, ...data }); - this.components = components?.map((component) => createComponentBuilder(component)) ?? []; - } - /** - * Adds components to this action row. - * - * @param components - The components to add - */ - addComponents(...components) { - this.components.push(...normalizeArray(components)); - return this; - } - /** - * Sets components for this action row. - * - * @param components - The components to set - */ - setComponents(...components) { - this.components.splice(0, this.components.length, ...normalizeArray(components)); - return this; - } - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON() { - return { - ...this.data, - components: this.components.map((component) => component.toJSON()) - }; - } -}; - -// src/interactions/modals/Assertions.ts -var Assertions_exports4 = {}; -__export(Assertions_exports4, { - componentsValidator: () => componentsValidator, - titleValidator: () => titleValidator, - validateRequiredParameters: () => validateRequiredParameters2 -}); -import { s as s4 } from "@sapphire/shapeshift"; -var titleValidator = s4.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(45).setValidationEnabled(isValidationEnabled); -var componentsValidator = s4.instance(ActionRowBuilder).array().lengthGreaterThanOrEqual(1).setValidationEnabled(isValidationEnabled); -function validateRequiredParameters2(customId, title, components) { - customIdValidator.parse(customId); - titleValidator.parse(title); - componentsValidator.parse(components); -} -__name(validateRequiredParameters2, "validateRequiredParameters"); - -// src/interactions/modals/Modal.ts -var ModalBuilder = class { - static { - __name(this, "ModalBuilder"); - } - /** - * The API data associated with this modal. - */ - data; - /** - * The components within this modal. - */ - components = []; - /** - * Creates a new modal from API data. - * - * @param data - The API data to create this modal with - */ - constructor({ components, ...data } = {}) { - this.data = { ...data }; - this.components = components?.map((component) => createComponentBuilder(component)) ?? []; - } - /** - * Sets the title of this modal. - * - * @param title - The title to use - */ - setTitle(title) { - this.data.title = titleValidator.parse(title); - return this; - } - /** - * Sets the custom id of this modal. - * - * @param customId - The custom id to use - */ - setCustomId(customId) { - this.data.custom_id = customIdValidator.parse(customId); - return this; - } - /** - * Adds components to this modal. - * - * @param components - The components to add - */ - addComponents(...components) { - this.components.push( - ...normalizeArray(components).map( - (component) => component instanceof ActionRowBuilder ? component : new ActionRowBuilder(component) - ) - ); - return this; - } - /** - * Sets components for this modal. - * - * @param components - The components to set - */ - setComponents(...components) { - this.components.splice(0, this.components.length, ...normalizeArray(components)); - return this; - } - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON() { - validateRequiredParameters2(this.data.custom_id, this.data.title, this.components); - return { - ...this.data, - components: this.components.map((component) => component.toJSON()) - }; - } -}; - -// src/interactions/slashCommands/Assertions.ts -var Assertions_exports5 = {}; -__export(Assertions_exports5, { - assertReturnOfBuilder: () => assertReturnOfBuilder, - contextsPredicate: () => contextsPredicate, - integrationTypesPredicate: () => integrationTypesPredicate, - localizationMapPredicate: () => localizationMapPredicate, - validateChoicesLength: () => validateChoicesLength, - validateDMPermission: () => validateDMPermission, - validateDefaultMemberPermissions: () => validateDefaultMemberPermissions, - validateDefaultPermission: () => validateDefaultPermission, - validateDescription: () => validateDescription, - validateLocale: () => validateLocale, - validateLocalizationMap: () => validateLocalizationMap, - validateMaxOptionsLength: () => validateMaxOptionsLength, - validateNSFW: () => validateNSFW, - validateName: () => validateName, - validateRequired: () => validateRequired, - validateRequiredParameters: () => validateRequiredParameters3 -}); -import { s as s5 } from "@sapphire/shapeshift"; -import { - ApplicationIntegrationType, - InteractionContextType, - Locale -} from "discord-api-types/v10"; -var namePredicate = s5.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(32).regex(/^[\p{Ll}\p{Lm}\p{Lo}\p{N}\p{sc=Devanagari}\p{sc=Thai}_-]+$/u).setValidationEnabled(isValidationEnabled); -function validateName(name) { - namePredicate.parse(name); -} -__name(validateName, "validateName"); -var descriptionPredicate2 = s5.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled); -var localePredicate = s5.nativeEnum(Locale); -function validateDescription(description) { - descriptionPredicate2.parse(description); -} -__name(validateDescription, "validateDescription"); -var maxArrayLengthPredicate = s5.unknown().array().lengthLessThanOrEqual(25).setValidationEnabled(isValidationEnabled); -function validateLocale(locale) { - return localePredicate.parse(locale); -} -__name(validateLocale, "validateLocale"); -function validateMaxOptionsLength(options) { - maxArrayLengthPredicate.parse(options); -} -__name(validateMaxOptionsLength, "validateMaxOptionsLength"); -function validateRequiredParameters3(name, description, options) { - validateName(name); - validateDescription(description); - validateMaxOptionsLength(options); -} -__name(validateRequiredParameters3, "validateRequiredParameters"); -var booleanPredicate = s5.boolean(); -function validateDefaultPermission(value) { - booleanPredicate.parse(value); -} -__name(validateDefaultPermission, "validateDefaultPermission"); -function validateRequired(required) { - booleanPredicate.parse(required); -} -__name(validateRequired, "validateRequired"); -var choicesLengthPredicate = s5.number().lessThanOrEqual(25).setValidationEnabled(isValidationEnabled); -function validateChoicesLength(amountAdding, choices) { - choicesLengthPredicate.parse((choices?.length ?? 0) + amountAdding); -} -__name(validateChoicesLength, "validateChoicesLength"); -function assertReturnOfBuilder(input, ExpectedInstanceOf) { - s5.instance(ExpectedInstanceOf).parse(input); -} -__name(assertReturnOfBuilder, "assertReturnOfBuilder"); -var localizationMapPredicate = s5.object(Object.fromEntries(Object.values(Locale).map((locale) => [locale, s5.string().nullish()]))).strict().nullish().setValidationEnabled(isValidationEnabled); -function validateLocalizationMap(value) { - localizationMapPredicate.parse(value); -} -__name(validateLocalizationMap, "validateLocalizationMap"); -var dmPermissionPredicate = s5.boolean().nullish(); -function validateDMPermission(value) { - dmPermissionPredicate.parse(value); -} -__name(validateDMPermission, "validateDMPermission"); -var memberPermissionPredicate = s5.union([ - s5.bigint().transform((value) => value.toString()), - s5.number().safeInt().transform((value) => value.toString()), - s5.string().regex(/^\d+$/) -]).nullish(); -function validateDefaultMemberPermissions(permissions) { - return memberPermissionPredicate.parse(permissions); -} -__name(validateDefaultMemberPermissions, "validateDefaultMemberPermissions"); -function validateNSFW(value) { - booleanPredicate.parse(value); -} -__name(validateNSFW, "validateNSFW"); -var contextsPredicate = s5.array( - s5.nativeEnum(InteractionContextType).setValidationEnabled(isValidationEnabled) -); -var integrationTypesPredicate = s5.array( - s5.nativeEnum(ApplicationIntegrationType).setValidationEnabled(isValidationEnabled) -); - -// src/interactions/slashCommands/SlashCommandBuilder.ts -import { mix as mix6 } from "ts-mixer"; - -// src/interactions/slashCommands/mixins/NameAndDescription.ts -var SharedNameAndDescription = class { - static { - __name(this, "SharedNameAndDescription"); - } - /** - * The name of this command. - */ - name; - /** - * The name localizations of this command. - */ - name_localizations; - /** - * The description of this command. - */ - description; - /** - * The description localizations of this command. - */ - description_localizations; - /** - * Sets the name of this command. - * - * @param name - The name to use - */ - setName(name) { - validateName(name); - Reflect.set(this, "name", name); - return this; - } - /** - * Sets the description of this command. - * - * @param description - The description to use - */ - setDescription(description) { - validateDescription(description); - Reflect.set(this, "description", description); - return this; - } - /** - * Sets a name localization for this command. - * - * @param locale - The locale to set - * @param localizedName - The localized name for the given `locale` - */ - setNameLocalization(locale, localizedName) { - if (!this.name_localizations) { - Reflect.set(this, "name_localizations", {}); - } - const parsedLocale = validateLocale(locale); - if (localizedName === null) { - this.name_localizations[parsedLocale] = null; - return this; - } - validateName(localizedName); - this.name_localizations[parsedLocale] = localizedName; - return this; - } - /** - * Sets the name localizations for this command. - * - * @param localizedNames - The object of localized names to set - */ - setNameLocalizations(localizedNames) { - if (localizedNames === null) { - Reflect.set(this, "name_localizations", null); - return this; - } - Reflect.set(this, "name_localizations", {}); - for (const args of Object.entries(localizedNames)) { - this.setNameLocalization(...args); - } - return this; - } - /** - * Sets a description localization for this command. - * - * @param locale - The locale to set - * @param localizedDescription - The localized description for the given locale - */ - setDescriptionLocalization(locale, localizedDescription) { - if (!this.description_localizations) { - Reflect.set(this, "description_localizations", {}); - } - const parsedLocale = validateLocale(locale); - if (localizedDescription === null) { - this.description_localizations[parsedLocale] = null; - return this; - } - validateDescription(localizedDescription); - this.description_localizations[parsedLocale] = localizedDescription; - return this; - } - /** - * Sets the description localizations for this command. - * - * @param localizedDescriptions - The object of localized descriptions to set - */ - setDescriptionLocalizations(localizedDescriptions) { - if (localizedDescriptions === null) { - Reflect.set(this, "description_localizations", null); - return this; - } - Reflect.set(this, "description_localizations", {}); - for (const args of Object.entries(localizedDescriptions)) { - this.setDescriptionLocalization(...args); - } - return this; - } -}; - -// src/interactions/slashCommands/mixins/SharedSlashCommand.ts -import { - ApplicationCommandType -} from "discord-api-types/v10"; -var SharedSlashCommand = class { - static { - __name(this, "SharedSlashCommand"); - } - name = void 0; - name_localizations; - description = void 0; - description_localizations; - options = []; - contexts; - /** - * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. - */ - default_permission = void 0; - default_member_permissions = void 0; - /** - * @deprecated Use {@link SharedSlashCommand.contexts} instead. - */ - dm_permission = void 0; - integration_types; - nsfw = void 0; - /** - * Sets the contexts of this command. - * - * @param contexts - The contexts - */ - setContexts(...contexts) { - Reflect.set(this, "contexts", contextsPredicate.parse(normalizeArray(contexts))); - return this; - } - /** - * Sets the integration types of this command. - * - * @param integrationTypes - The integration types - */ - setIntegrationTypes(...integrationTypes) { - Reflect.set(this, "integration_types", integrationTypesPredicate.parse(normalizeArray(integrationTypes))); - return this; - } - /** - * Sets whether the command is enabled by default when the application is added to a guild. - * - * @remarks - * If set to `false`, you will have to later `PUT` the permissions for this command. - * @param value - Whether or not to enable this command by default - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. - */ - setDefaultPermission(value) { - validateDefaultPermission(value); - Reflect.set(this, "default_permission", value); - return this; - } - /** - * Sets the default permissions a member should have in order to run the command. - * - * @remarks - * You can set this to `'0'` to disable the command by default. - * @param permissions - The permissions bit field to set - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - */ - setDefaultMemberPermissions(permissions) { - const permissionValue = validateDefaultMemberPermissions(permissions); - Reflect.set(this, "default_member_permissions", permissionValue); - return this; - } - /** - * Sets if the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This method is only for global commands. - * @param enabled - Whether the command should be enabled in direct messages - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - * @deprecated - * Use {@link SharedSlashCommand.setContexts} instead. - */ - setDMPermission(enabled) { - validateDMPermission(enabled); - Reflect.set(this, "dm_permission", enabled); - return this; - } - /** - * Sets whether this command is NSFW. - * - * @param nsfw - Whether this command is NSFW - */ - setNSFW(nsfw = true) { - validateNSFW(nsfw); - Reflect.set(this, "nsfw", nsfw); - return this; - } - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON() { - validateRequiredParameters3(this.name, this.description, this.options); - validateLocalizationMap(this.name_localizations); - validateLocalizationMap(this.description_localizations); - return { - ...this, - type: ApplicationCommandType.ChatInput, - options: this.options.map((option) => option.toJSON()) - }; - } -}; - -// src/interactions/slashCommands/options/attachment.ts -import { ApplicationCommandOptionType } from "discord-api-types/v10"; - -// src/interactions/slashCommands/mixins/ApplicationCommandOptionBase.ts -var ApplicationCommandOptionBase = class extends SharedNameAndDescription { - static { - __name(this, "ApplicationCommandOptionBase"); - } - /** - * Whether this option is required. - * - * @defaultValue `false` - */ - required = false; - /** - * Sets whether this option is required. - * - * @param required - Whether this option should be required - */ - setRequired(required) { - validateRequired(required); - Reflect.set(this, "required", required); - return this; - } - /** - * This method runs required validators on this builder. - */ - runRequiredValidations() { - validateRequiredParameters3(this.name, this.description, []); - validateLocalizationMap(this.name_localizations); - validateLocalizationMap(this.description_localizations); - validateRequired(this.required); - } -}; - -// src/interactions/slashCommands/options/attachment.ts -var SlashCommandAttachmentOption = class extends ApplicationCommandOptionBase { - static { - __name(this, "SlashCommandAttachmentOption"); - } - /** - * The type of this option. - */ - type = ApplicationCommandOptionType.Attachment; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - return { ...this }; - } -}; - -// src/interactions/slashCommands/options/boolean.ts -import { ApplicationCommandOptionType as ApplicationCommandOptionType2 } from "discord-api-types/v10"; -var SlashCommandBooleanOption = class extends ApplicationCommandOptionBase { - static { - __name(this, "SlashCommandBooleanOption"); - } - /** - * The type of this option. - */ - type = ApplicationCommandOptionType2.Boolean; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - return { ...this }; - } -}; - -// src/interactions/slashCommands/options/channel.ts -import { ApplicationCommandOptionType as ApplicationCommandOptionType3 } from "discord-api-types/v10"; -import { mix } from "ts-mixer"; - -// src/interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin.ts -import { s as s6 } from "@sapphire/shapeshift"; -import { ChannelType as ChannelType2 } from "discord-api-types/v10"; -var allowedChannelTypes = [ - ChannelType2.GuildText, - ChannelType2.GuildVoice, - ChannelType2.GuildCategory, - ChannelType2.GuildAnnouncement, - ChannelType2.AnnouncementThread, - ChannelType2.PublicThread, - ChannelType2.PrivateThread, - ChannelType2.GuildStageVoice, - ChannelType2.GuildForum, - ChannelType2.GuildMedia -]; -var channelTypesPredicate = s6.array(s6.union(allowedChannelTypes.map((type) => s6.literal(type)))); -var ApplicationCommandOptionChannelTypesMixin = class { - static { - __name(this, "ApplicationCommandOptionChannelTypesMixin"); - } - /** - * The channel types of this option. - */ - channel_types; - /** - * Adds channel types to this option. - * - * @param channelTypes - The channel types - */ - addChannelTypes(...channelTypes) { - if (this.channel_types === void 0) { - Reflect.set(this, "channel_types", []); - } - this.channel_types.push(...channelTypesPredicate.parse(normalizeArray(channelTypes))); - return this; - } -}; - -// src/interactions/slashCommands/options/channel.ts -var SlashCommandChannelOption = class extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - type = ApplicationCommandOptionType3.Channel; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - return { ...this }; - } -}; -__name(SlashCommandChannelOption, "SlashCommandChannelOption"); -SlashCommandChannelOption = __decorateClass([ - mix(ApplicationCommandOptionChannelTypesMixin) -], SlashCommandChannelOption); - -// src/interactions/slashCommands/options/integer.ts -import { s as s9 } from "@sapphire/shapeshift"; -import { ApplicationCommandOptionType as ApplicationCommandOptionType5 } from "discord-api-types/v10"; -import { mix as mix2 } from "ts-mixer"; - -// src/interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin.ts -var ApplicationCommandNumericOptionMinMaxValueMixin = class { - static { - __name(this, "ApplicationCommandNumericOptionMinMaxValueMixin"); - } - /** - * The maximum value of this option. - */ - max_value; - /** - * The minimum value of this option. - */ - min_value; -}; - -// src/interactions/slashCommands/mixins/ApplicationCommandOptionWithAutocompleteMixin.ts -import { s as s7 } from "@sapphire/shapeshift"; -var booleanPredicate2 = s7.boolean(); -var ApplicationCommandOptionWithAutocompleteMixin = class { - static { - __name(this, "ApplicationCommandOptionWithAutocompleteMixin"); - } - /** - * Whether this option utilizes autocomplete. - */ - autocomplete; - /** - * The type of this option. - * - * @privateRemarks Since this is present and this is a mixin, this is needed. - */ - type; - /** - * Whether this option uses autocomplete. - * - * @param autocomplete - Whether this option should use autocomplete - */ - setAutocomplete(autocomplete) { - booleanPredicate2.parse(autocomplete); - if (autocomplete && "choices" in this && Array.isArray(this.choices) && this.choices.length > 0) { - throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); - } - Reflect.set(this, "autocomplete", autocomplete); - return this; - } -}; - -// src/interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesMixin.ts -import { s as s8 } from "@sapphire/shapeshift"; -import { ApplicationCommandOptionType as ApplicationCommandOptionType4 } from "discord-api-types/v10"; -var stringPredicate = s8.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100); -var numberPredicate = s8.number().greaterThan(Number.NEGATIVE_INFINITY).lessThan(Number.POSITIVE_INFINITY); -var choicesPredicate = s8.object({ - name: stringPredicate, - name_localizations: localizationMapPredicate, - value: s8.union([stringPredicate, numberPredicate]) -}).array(); -var ApplicationCommandOptionWithChoicesMixin = class { - static { - __name(this, "ApplicationCommandOptionWithChoicesMixin"); - } - /** - * The choices of this option. - */ - choices; - /** - * The type of this option. - * - * @privateRemarks Since this is present and this is a mixin, this is needed. - */ - type; - /** - * Adds multiple choices to this option. - * - * @param choices - The choices to add - */ - addChoices(...choices) { - const normalizedChoices = normalizeArray(choices); - if (normalizedChoices.length > 0 && "autocomplete" in this && this.autocomplete) { - throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); - } - choicesPredicate.parse(normalizedChoices); - if (this.choices === void 0) { - Reflect.set(this, "choices", []); - } - validateChoicesLength(normalizedChoices.length, this.choices); - for (const { name, name_localizations, value } of normalizedChoices) { - if (this.type === ApplicationCommandOptionType4.String) { - stringPredicate.parse(value); - } else { - numberPredicate.parse(value); - } - this.choices.push({ name, name_localizations, value }); - } - return this; - } - /** - * Sets multiple choices for this option. - * - * @param choices - The choices to set - */ - setChoices(...choices) { - const normalizedChoices = normalizeArray(choices); - if (normalizedChoices.length > 0 && "autocomplete" in this && this.autocomplete) { - throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); - } - choicesPredicate.parse(normalizedChoices); - Reflect.set(this, "choices", []); - this.addChoices(normalizedChoices); - return this; - } -}; - -// src/interactions/slashCommands/options/integer.ts -var numberValidator = s9.number().int(); -var SlashCommandIntegerOption = class extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - type = ApplicationCommandOptionType5.Integer; - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue} - */ - setMaxValue(max) { - numberValidator.parse(max); - Reflect.set(this, "max_value", max); - return this; - } - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue} - */ - setMinValue(min) { - numberValidator.parse(min); - Reflect.set(this, "min_value", min); - return this; - } - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - if (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) { - throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); - } - return { ...this }; - } -}; -__name(SlashCommandIntegerOption, "SlashCommandIntegerOption"); -SlashCommandIntegerOption = __decorateClass([ - mix2( - ApplicationCommandNumericOptionMinMaxValueMixin, - ApplicationCommandOptionWithAutocompleteMixin, - ApplicationCommandOptionWithChoicesMixin - ) -], SlashCommandIntegerOption); - -// src/interactions/slashCommands/options/mentionable.ts -import { ApplicationCommandOptionType as ApplicationCommandOptionType6 } from "discord-api-types/v10"; -var SlashCommandMentionableOption = class extends ApplicationCommandOptionBase { - static { - __name(this, "SlashCommandMentionableOption"); - } - /** - * The type of this option. - */ - type = ApplicationCommandOptionType6.Mentionable; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - return { ...this }; - } -}; - -// src/interactions/slashCommands/options/number.ts -import { s as s10 } from "@sapphire/shapeshift"; -import { ApplicationCommandOptionType as ApplicationCommandOptionType7 } from "discord-api-types/v10"; -import { mix as mix3 } from "ts-mixer"; -var numberValidator2 = s10.number(); -var SlashCommandNumberOption = class extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - type = ApplicationCommandOptionType7.Number; - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue} - */ - setMaxValue(max) { - numberValidator2.parse(max); - Reflect.set(this, "max_value", max); - return this; - } - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue} - */ - setMinValue(min) { - numberValidator2.parse(min); - Reflect.set(this, "min_value", min); - return this; - } - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - if (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) { - throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); - } - return { ...this }; - } -}; -__name(SlashCommandNumberOption, "SlashCommandNumberOption"); -SlashCommandNumberOption = __decorateClass([ - mix3( - ApplicationCommandNumericOptionMinMaxValueMixin, - ApplicationCommandOptionWithAutocompleteMixin, - ApplicationCommandOptionWithChoicesMixin - ) -], SlashCommandNumberOption); - -// src/interactions/slashCommands/options/role.ts -import { ApplicationCommandOptionType as ApplicationCommandOptionType8 } from "discord-api-types/v10"; -var SlashCommandRoleOption = class extends ApplicationCommandOptionBase { - static { - __name(this, "SlashCommandRoleOption"); - } - /** - * The type of this option. - */ - type = ApplicationCommandOptionType8.Role; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - return { ...this }; - } -}; - -// src/interactions/slashCommands/options/string.ts -import { s as s11 } from "@sapphire/shapeshift"; -import { ApplicationCommandOptionType as ApplicationCommandOptionType9 } from "discord-api-types/v10"; -import { mix as mix4 } from "ts-mixer"; -var minLengthValidator2 = s11.number().greaterThanOrEqual(0).lessThanOrEqual(6e3); -var maxLengthValidator2 = s11.number().greaterThanOrEqual(1).lessThanOrEqual(6e3); -var SlashCommandStringOption = class extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - type = ApplicationCommandOptionType9.String; - /** - * The maximum length of this option. - */ - max_length; - /** - * The minimum length of this option. - */ - min_length; - /** - * Sets the maximum length of this string option. - * - * @param max - The maximum length this option can be - */ - setMaxLength(max) { - maxLengthValidator2.parse(max); - Reflect.set(this, "max_length", max); - return this; - } - /** - * Sets the minimum length of this string option. - * - * @param min - The minimum length this option can be - */ - setMinLength(min) { - minLengthValidator2.parse(min); - Reflect.set(this, "min_length", min); - return this; - } - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - if (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) { - throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); - } - return { ...this }; - } -}; -__name(SlashCommandStringOption, "SlashCommandStringOption"); -SlashCommandStringOption = __decorateClass([ - mix4(ApplicationCommandOptionWithAutocompleteMixin, ApplicationCommandOptionWithChoicesMixin) -], SlashCommandStringOption); - -// src/interactions/slashCommands/options/user.ts -import { ApplicationCommandOptionType as ApplicationCommandOptionType10 } from "discord-api-types/v10"; -var SlashCommandUserOption = class extends ApplicationCommandOptionBase { - static { - __name(this, "SlashCommandUserOption"); - } - /** - * The type of this option. - */ - type = ApplicationCommandOptionType10.User; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - return { ...this }; - } -}; - -// src/interactions/slashCommands/mixins/SharedSlashCommandOptions.ts -var SharedSlashCommandOptions = class { - static { - __name(this, "SharedSlashCommandOptions"); - } - options; - /** - * Adds a boolean option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addBooleanOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandBooleanOption); - } - /** - * Adds a user option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addUserOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandUserOption); - } - /** - * Adds a channel option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addChannelOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandChannelOption); - } - /** - * Adds a role option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addRoleOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandRoleOption); - } - /** - * Adds an attachment option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addAttachmentOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandAttachmentOption); - } - /** - * Adds a mentionable option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addMentionableOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandMentionableOption); - } - /** - * Adds a string option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addStringOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandStringOption); - } - /** - * Adds an integer option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addIntegerOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandIntegerOption); - } - /** - * Adds a number option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addNumberOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandNumberOption); - } - /** - * Where the actual adding magic happens. ✨ - * - * @param input - The input. What else? - * @param Instance - The instance of whatever is being added - * @internal - */ - _sharedAddOptionMethod(input, Instance) { - const { options } = this; - validateMaxOptionsLength(options); - const result = typeof input === "function" ? input(new Instance()) : input; - assertReturnOfBuilder(result, Instance); - options.push(result); - return this; - } -}; - -// src/interactions/slashCommands/SlashCommandSubcommands.ts -import { - ApplicationCommandOptionType as ApplicationCommandOptionType11 -} from "discord-api-types/v10"; -import { mix as mix5 } from "ts-mixer"; -var SlashCommandSubcommandGroupBuilder = class { - /** - * The name of this subcommand group. - */ - name = void 0; - /** - * The description of this subcommand group. - */ - description = void 0; - /** - * The subcommands within this subcommand group. - */ - options = []; - /** - * Adds a new subcommand to this group. - * - * @param input - A function that returns a subcommand builder or an already built builder - */ - addSubcommand(input) { - const { options } = this; - validateMaxOptionsLength(options); - const result = typeof input === "function" ? input(new SlashCommandSubcommandBuilder()) : input; - assertReturnOfBuilder(result, SlashCommandSubcommandBuilder); - options.push(result); - return this; - } - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON() { - validateRequiredParameters3(this.name, this.description, this.options); - return { - type: ApplicationCommandOptionType11.SubcommandGroup, - name: this.name, - name_localizations: this.name_localizations, - description: this.description, - description_localizations: this.description_localizations, - options: this.options.map((option) => option.toJSON()) - }; - } -}; -__name(SlashCommandSubcommandGroupBuilder, "SlashCommandSubcommandGroupBuilder"); -SlashCommandSubcommandGroupBuilder = __decorateClass([ - mix5(SharedNameAndDescription) -], SlashCommandSubcommandGroupBuilder); -var SlashCommandSubcommandBuilder = class { - /** - * The name of this subcommand. - */ - name = void 0; - /** - * The description of this subcommand. - */ - description = void 0; - /** - * The options within this subcommand. - */ - options = []; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON() { - validateRequiredParameters3(this.name, this.description, this.options); - return { - type: ApplicationCommandOptionType11.Subcommand, - name: this.name, - name_localizations: this.name_localizations, - description: this.description, - description_localizations: this.description_localizations, - options: this.options.map((option) => option.toJSON()) - }; - } -}; -__name(SlashCommandSubcommandBuilder, "SlashCommandSubcommandBuilder"); -SlashCommandSubcommandBuilder = __decorateClass([ - mix5(SharedNameAndDescription, SharedSlashCommandOptions) -], SlashCommandSubcommandBuilder); - -// src/interactions/slashCommands/mixins/SharedSubcommands.ts -var SharedSlashCommandSubcommands = class { - static { - __name(this, "SharedSlashCommandSubcommands"); - } - options = []; - /** - * Adds a new subcommand group to this command. - * - * @param input - A function that returns a subcommand group builder or an already built builder - */ - addSubcommandGroup(input) { - const { options } = this; - validateMaxOptionsLength(options); - const result = typeof input === "function" ? input(new SlashCommandSubcommandGroupBuilder()) : input; - assertReturnOfBuilder(result, SlashCommandSubcommandGroupBuilder); - options.push(result); - return this; - } - /** - * Adds a new subcommand to this command. - * - * @param input - A function that returns a subcommand builder or an already built builder - */ - addSubcommand(input) { - const { options } = this; - validateMaxOptionsLength(options); - const result = typeof input === "function" ? input(new SlashCommandSubcommandBuilder()) : input; - assertReturnOfBuilder(result, SlashCommandSubcommandBuilder); - options.push(result); - return this; - } -}; - -// src/interactions/slashCommands/SlashCommandBuilder.ts -var SlashCommandBuilder = class { - /** - * The name of this command. - */ - name = void 0; - /** - * The name localizations of this command. - */ - name_localizations; - /** - * The description of this command. - */ - description = void 0; - /** - * The description localizations of this command. - */ - description_localizations; - /** - * The options of this command. - */ - options = []; - /** - * The contexts for this command. - */ - contexts; - /** - * Whether this command is enabled by default when the application is added to a guild. - * - * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. - */ - default_permission = void 0; - /** - * The set of permissions represented as a bit set for the command. - */ - default_member_permissions = void 0; - /** - * Indicates whether the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This property is only for global commands. - * @deprecated - * Use {@link SlashCommandBuilder.contexts} instead. - */ - dm_permission = void 0; - /** - * The integration types for this command. - */ - integration_types; - /** - * Whether this command is NSFW. - */ - nsfw = void 0; -}; -__name(SlashCommandBuilder, "SlashCommandBuilder"); -SlashCommandBuilder = __decorateClass([ - mix6(SharedSlashCommandOptions, SharedNameAndDescription, SharedSlashCommandSubcommands, SharedSlashCommand) -], SlashCommandBuilder); - -// src/interactions/contextMenuCommands/Assertions.ts -var Assertions_exports6 = {}; -__export(Assertions_exports6, { - contextsPredicate: () => contextsPredicate2, - integrationTypesPredicate: () => integrationTypesPredicate2, - validateDMPermission: () => validateDMPermission2, - validateDefaultMemberPermissions: () => validateDefaultMemberPermissions2, - validateDefaultPermission: () => validateDefaultPermission2, - validateName: () => validateName2, - validateRequiredParameters: () => validateRequiredParameters4, - validateType: () => validateType -}); -import { s as s12 } from "@sapphire/shapeshift"; -import { ApplicationCommandType as ApplicationCommandType2, ApplicationIntegrationType as ApplicationIntegrationType2, InteractionContextType as InteractionContextType2 } from "discord-api-types/v10"; -var namePredicate2 = s12.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(32).regex(/^( *[\p{P}\p{L}\p{N}\p{sc=Devanagari}\p{sc=Thai}]+ *)+$/u).setValidationEnabled(isValidationEnabled); -var typePredicate = s12.union([s12.literal(ApplicationCommandType2.User), s12.literal(ApplicationCommandType2.Message)]).setValidationEnabled(isValidationEnabled); -var booleanPredicate3 = s12.boolean(); -function validateDefaultPermission2(value) { - booleanPredicate3.parse(value); -} -__name(validateDefaultPermission2, "validateDefaultPermission"); -function validateName2(name) { - namePredicate2.parse(name); -} -__name(validateName2, "validateName"); -function validateType(type) { - typePredicate.parse(type); -} -__name(validateType, "validateType"); -function validateRequiredParameters4(name, type) { - validateName2(name); - validateType(type); -} -__name(validateRequiredParameters4, "validateRequiredParameters"); -var dmPermissionPredicate2 = s12.boolean().nullish(); -function validateDMPermission2(value) { - dmPermissionPredicate2.parse(value); -} -__name(validateDMPermission2, "validateDMPermission"); -var memberPermissionPredicate2 = s12.union([ - s12.bigint().transform((value) => value.toString()), - s12.number().safeInt().transform((value) => value.toString()), - s12.string().regex(/^\d+$/) -]).nullish(); -function validateDefaultMemberPermissions2(permissions) { - return memberPermissionPredicate2.parse(permissions); -} -__name(validateDefaultMemberPermissions2, "validateDefaultMemberPermissions"); -var contextsPredicate2 = s12.array( - s12.nativeEnum(InteractionContextType2).setValidationEnabled(isValidationEnabled) -); -var integrationTypesPredicate2 = s12.array( - s12.nativeEnum(ApplicationIntegrationType2).setValidationEnabled(isValidationEnabled) -); - -// src/interactions/contextMenuCommands/ContextMenuCommandBuilder.ts -var ContextMenuCommandBuilder = class { - static { - __name(this, "ContextMenuCommandBuilder"); - } - /** - * The name of this command. - */ - name = void 0; - /** - * The name localizations of this command. - */ - name_localizations; - /** - * The type of this command. - */ - type = void 0; - /** - * The contexts for this command. - */ - contexts; - /** - * Whether this command is enabled by default when the application is added to a guild. - * - * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead. - */ - default_permission = void 0; - /** - * The set of permissions represented as a bit set for the command. - */ - default_member_permissions = void 0; - /** - * Indicates whether the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This property is only for global commands. - * @deprecated - * Use {@link ContextMenuCommandBuilder.contexts} instead. - */ - dm_permission = void 0; - /** - * The integration types for this command. - */ - integration_types; - /** - * Sets the contexts of this command. - * - * @param contexts - The contexts - */ - setContexts(...contexts) { - Reflect.set(this, "contexts", contextsPredicate2.parse(normalizeArray(contexts))); - return this; - } - /** - * Sets integration types of this command. - * - * @param integrationTypes - The integration types - */ - setIntegrationTypes(...integrationTypes) { - Reflect.set(this, "integration_types", integrationTypesPredicate2.parse(normalizeArray(integrationTypes))); - return this; - } - /** - * Sets the name of this command. - * - * @param name - The name to use - */ - setName(name) { - validateName2(name); - Reflect.set(this, "name", name); - return this; - } - /** - * Sets the type of this command. - * - * @param type - The type to use - */ - setType(type) { - validateType(type); - Reflect.set(this, "type", type); - return this; - } - /** - * Sets whether the command is enabled by default when the application is added to a guild. - * - * @remarks - * If set to `false`, you will have to later `PUT` the permissions for this command. - * @param value - Whether to enable this command by default - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead. - */ - setDefaultPermission(value) { - validateDefaultPermission2(value); - Reflect.set(this, "default_permission", value); - return this; - } - /** - * Sets the default permissions a member should have in order to run this command. - * - * @remarks - * You can set this to `'0'` to disable the command by default. - * @param permissions - The permissions bit field to set - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - */ - setDefaultMemberPermissions(permissions) { - const permissionValue = validateDefaultMemberPermissions2(permissions); - Reflect.set(this, "default_member_permissions", permissionValue); - return this; - } - /** - * Sets if the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This method is only for global commands. - * @param enabled - Whether the command should be enabled in direct messages - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - * @deprecated Use {@link ContextMenuCommandBuilder.setContexts} instead. - */ - setDMPermission(enabled) { - validateDMPermission2(enabled); - Reflect.set(this, "dm_permission", enabled); - return this; - } - /** - * Sets a name localization for this command. - * - * @param locale - The locale to set - * @param localizedName - The localized name for the given `locale` - */ - setNameLocalization(locale, localizedName) { - if (!this.name_localizations) { - Reflect.set(this, "name_localizations", {}); - } - const parsedLocale = validateLocale(locale); - if (localizedName === null) { - this.name_localizations[parsedLocale] = null; - return this; - } - validateName2(localizedName); - this.name_localizations[parsedLocale] = localizedName; - return this; - } - /** - * Sets the name localizations for this command. - * - * @param localizedNames - The object of localized names to set - */ - setNameLocalizations(localizedNames) { - if (localizedNames === null) { - Reflect.set(this, "name_localizations", null); - return this; - } - Reflect.set(this, "name_localizations", {}); - for (const args of Object.entries(localizedNames)) - this.setNameLocalization(...args); - return this; - } - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON() { - validateRequiredParameters4(this.name, this.type); - validateLocalizationMap(this.name_localizations); - return { ...this }; - } -}; - -// src/util/componentUtil.ts -function embedLength(data) { - return (data.title?.length ?? 0) + (data.description?.length ?? 0) + (data.fields?.reduce((prev, curr) => prev + curr.name.length + curr.value.length, 0) ?? 0) + (data.footer?.text.length ?? 0) + (data.author?.name.length ?? 0); -} -__name(embedLength, "embedLength"); - -// src/index.ts -var version = "1.9.0"; -export { - ActionRowBuilder, - ApplicationCommandNumericOptionMinMaxValueMixin, - ApplicationCommandOptionBase, - ApplicationCommandOptionChannelTypesMixin, - ApplicationCommandOptionWithAutocompleteMixin, - ApplicationCommandOptionWithChoicesMixin, - BaseSelectMenuBuilder, - ButtonBuilder, - ChannelSelectMenuBuilder, - Assertions_exports2 as ComponentAssertions, - ComponentBuilder, - Assertions_exports6 as ContextMenuCommandAssertions, - ContextMenuCommandBuilder, - Assertions_exports as EmbedAssertions, - EmbedBuilder, - MentionableSelectMenuBuilder, - Assertions_exports4 as ModalAssertions, - ModalBuilder, - RoleSelectMenuBuilder, - StringSelectMenuBuilder as SelectMenuBuilder, - StringSelectMenuOptionBuilder as SelectMenuOptionBuilder, - SharedNameAndDescription, - SharedSlashCommand, - SharedSlashCommandOptions, - SharedSlashCommandSubcommands, - Assertions_exports5 as SlashCommandAssertions, - SlashCommandAttachmentOption, - SlashCommandBooleanOption, - SlashCommandBuilder, - SlashCommandChannelOption, - SlashCommandIntegerOption, - SlashCommandMentionableOption, - SlashCommandNumberOption, - SlashCommandRoleOption, - SlashCommandStringOption, - SlashCommandSubcommandBuilder, - SlashCommandSubcommandGroupBuilder, - SlashCommandUserOption, - StringSelectMenuBuilder, - StringSelectMenuOptionBuilder, - Assertions_exports3 as TextInputAssertions, - TextInputBuilder, - UserSelectMenuBuilder, - createComponentBuilder, - disableValidators, - embedLength, - enableValidators, - isValidationEnabled, - normalizeArray, - version -}; -//# sourceMappingURL=index.mjs.map \ No newline at end of file diff --git a/node_modules/@discordjs/builders/dist/index.mjs.map b/node_modules/@discordjs/builders/dist/index.mjs.map deleted file mode 100644 index 57910ea..0000000 --- a/node_modules/@discordjs/builders/dist/index.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/messages/embed/Assertions.ts","../src/util/validation.ts","../src/util/normalizeArray.ts","../src/messages/embed/Embed.ts","../src/index.ts","../src/components/Assertions.ts","../src/components/selectMenu/StringSelectMenuOption.ts","../src/components/ActionRow.ts","../src/components/Component.ts","../src/components/Components.ts","../src/components/button/Button.ts","../src/components/selectMenu/ChannelSelectMenu.ts","../src/components/selectMenu/BaseSelectMenu.ts","../src/components/selectMenu/MentionableSelectMenu.ts","../src/components/selectMenu/RoleSelectMenu.ts","../src/components/selectMenu/StringSelectMenu.ts","../src/components/selectMenu/UserSelectMenu.ts","../src/components/textInput/TextInput.ts","../src/components/textInput/Assertions.ts","../src/interactions/modals/Assertions.ts","../src/interactions/modals/Modal.ts","../src/interactions/slashCommands/Assertions.ts","../src/interactions/slashCommands/SlashCommandBuilder.ts","../src/interactions/slashCommands/mixins/NameAndDescription.ts","../src/interactions/slashCommands/mixins/SharedSlashCommand.ts","../src/interactions/slashCommands/options/attachment.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionBase.ts","../src/interactions/slashCommands/options/boolean.ts","../src/interactions/slashCommands/options/channel.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin.ts","../src/interactions/slashCommands/options/integer.ts","../src/interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionWithAutocompleteMixin.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesMixin.ts","../src/interactions/slashCommands/options/mentionable.ts","../src/interactions/slashCommands/options/number.ts","../src/interactions/slashCommands/options/role.ts","../src/interactions/slashCommands/options/string.ts","../src/interactions/slashCommands/options/user.ts","../src/interactions/slashCommands/mixins/SharedSlashCommandOptions.ts","../src/interactions/slashCommands/SlashCommandSubcommands.ts","../src/interactions/slashCommands/mixins/SharedSubcommands.ts","../src/interactions/contextMenuCommands/Assertions.ts","../src/interactions/contextMenuCommands/ContextMenuCommandBuilder.ts","../src/util/componentUtil.ts"],"sourcesContent":["import { s } from '@sapphire/shapeshift';\nimport type { APIEmbedField } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\n\nexport const fieldNamePredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(256)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const fieldValuePredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(1_024)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const fieldInlinePredicate = s.boolean().optional();\n\nexport const embedFieldPredicate = s\n\t.object({\n\t\tname: fieldNamePredicate,\n\t\tvalue: fieldValuePredicate,\n\t\tinline: fieldInlinePredicate,\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const embedFieldsArrayPredicate = embedFieldPredicate.array().setValidationEnabled(isValidationEnabled);\n\nexport const fieldLengthPredicate = s.number().lessThanOrEqual(25).setValidationEnabled(isValidationEnabled);\n\nexport function validateFieldLength(amountAdding: number, fields?: APIEmbedField[]): void {\n\tfieldLengthPredicate.parse((fields?.length ?? 0) + amountAdding);\n}\n\nexport const authorNamePredicate = fieldNamePredicate.nullable().setValidationEnabled(isValidationEnabled);\n\nexport const imageURLPredicate = s\n\t.string()\n\t.url({\n\t\tallowedProtocols: ['http:', 'https:', 'attachment:'],\n\t})\n\t.nullish()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const urlPredicate = s\n\t.string()\n\t.url({\n\t\tallowedProtocols: ['http:', 'https:'],\n\t})\n\t.nullish()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const embedAuthorPredicate = s\n\t.object({\n\t\tname: authorNamePredicate,\n\t\ticonURL: imageURLPredicate,\n\t\turl: urlPredicate,\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const RGBPredicate = s\n\t.number()\n\t.int()\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(255)\n\t.setValidationEnabled(isValidationEnabled);\nexport const colorPredicate = s\n\t.number()\n\t.int()\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(0xffffff)\n\t.or(s.tuple([RGBPredicate, RGBPredicate, RGBPredicate]))\n\t.nullable()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const descriptionPredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(4_096)\n\t.nullable()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const footerTextPredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(2_048)\n\t.nullable()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const embedFooterPredicate = s\n\t.object({\n\t\ttext: footerTextPredicate,\n\t\ticonURL: imageURLPredicate,\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const timestampPredicate = s.union([s.number(), s.date()]).nullable().setValidationEnabled(isValidationEnabled);\n\nexport const titlePredicate = fieldNamePredicate.nullable().setValidationEnabled(isValidationEnabled);\n","let validate = true;\n\n/**\n * Enables validators.\n *\n * @returns Whether validation is occurring.\n */\nexport function enableValidators() {\n\treturn (validate = true);\n}\n\n/**\n * Disables validators.\n *\n * @returns Whether validation is occurring.\n */\nexport function disableValidators() {\n\treturn (validate = false);\n}\n\n/**\n * Checks whether validation is occurring.\n */\nexport function isValidationEnabled() {\n\treturn validate;\n}\n","/**\n * Normalizes data that is a rest parameter or an array into an array with a depth of 1.\n *\n * @typeParam ItemType - The data that must satisfy {@link RestOrArray}.\n * @param arr - The (possibly variadic) data to normalize\n */\nexport function normalizeArray(arr: RestOrArray): ItemType[] {\n\tif (Array.isArray(arr[0])) return [...arr[0]];\n\treturn arr as ItemType[];\n}\n\n/**\n * Represents data that may be an array or came from a rest parameter.\n *\n * @remarks\n * This type is used throughout builders to ensure both an array and variadic arguments\n * may be used. It is normalized with {@link normalizeArray}.\n */\nexport type RestOrArray = Type[] | [Type[]];\n","import type { APIEmbed, APIEmbedAuthor, APIEmbedField, APIEmbedFooter, APIEmbedImage } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../util/normalizeArray.js';\nimport {\n\tcolorPredicate,\n\tdescriptionPredicate,\n\tembedAuthorPredicate,\n\tembedFieldsArrayPredicate,\n\tembedFooterPredicate,\n\timageURLPredicate,\n\ttimestampPredicate,\n\ttitlePredicate,\n\turlPredicate,\n\tvalidateFieldLength,\n} from './Assertions.js';\n\n/**\n * A tuple satisfying the RGB color model.\n *\n * @see {@link https://developer.mozilla.org/docs/Glossary/RGB}\n */\nexport type RGBTuple = [red: number, green: number, blue: number];\n\n/**\n * The base icon data typically used in payloads.\n */\nexport interface IconData {\n\t/**\n\t * The URL of the icon.\n\t */\n\ticonURL?: string;\n\t/**\n\t * The proxy URL of the icon.\n\t */\n\tproxyIconURL?: string;\n}\n\n/**\n * Represents the author data of an embed.\n */\nexport interface EmbedAuthorData extends IconData, Omit {}\n\n/**\n * Represents the author options of an embed.\n */\nexport interface EmbedAuthorOptions extends Omit {}\n\n/**\n * Represents the footer data of an embed.\n */\nexport interface EmbedFooterData extends IconData, Omit {}\n\n/**\n * Represents the footer options of an embed.\n */\nexport interface EmbedFooterOptions extends Omit {}\n\n/**\n * Represents the image data of an embed.\n */\nexport interface EmbedImageData extends Omit {\n\t/**\n\t * The proxy URL for the image.\n\t */\n\tproxyURL?: string;\n}\n\n/**\n * A builder that creates API-compatible JSON data for embeds.\n */\nexport class EmbedBuilder {\n\t/**\n\t * The API data associated with this embed.\n\t */\n\tpublic readonly data: APIEmbed;\n\n\t/**\n\t * Creates a new embed from API data.\n\t *\n\t * @param data - The API data to create this embed with\n\t */\n\tpublic constructor(data: APIEmbed = {}) {\n\t\tthis.data = { ...data };\n\t\tif (data.timestamp) this.data.timestamp = new Date(data.timestamp).toISOString();\n\t}\n\n\t/**\n\t * Appends fields to the embed.\n\t *\n\t * @remarks\n\t * This method accepts either an array of fields or a variable number of field parameters.\n\t * The maximum amount of fields that can be added is 25.\n\t * @example\n\t * Using an array:\n\t * ```ts\n\t * const fields: APIEmbedField[] = ...;\n\t * const embed = new EmbedBuilder()\n\t * \t.addFields(fields);\n\t * ```\n\t * @example\n\t * Using rest parameters (variadic):\n\t * ```ts\n\t * const embed = new EmbedBuilder()\n\t * \t.addFields(\n\t * \t\t{ name: 'Field 1', value: 'Value 1' },\n\t * \t\t{ name: 'Field 2', value: 'Value 2' },\n\t * \t);\n\t * ```\n\t * @param fields - The fields to add\n\t */\n\tpublic addFields(...fields: RestOrArray): this {\n\t\tconst normalizedFields = normalizeArray(fields);\n\t\t// Ensure adding these fields won't exceed the 25 field limit\n\t\tvalidateFieldLength(normalizedFields.length, this.data.fields);\n\n\t\t// Data assertions\n\t\tembedFieldsArrayPredicate.parse(normalizedFields);\n\n\t\tif (this.data.fields) this.data.fields.push(...normalizedFields);\n\t\telse this.data.fields = normalizedFields;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts fields for this embed.\n\t *\n\t * @remarks\n\t * This method behaves similarly\n\t * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}.\n\t * The maximum amount of fields that can be added is 25.\n\t *\n\t * It's useful for modifying and adjusting order of the already-existing fields of an embed.\n\t * @example\n\t * Remove the first field:\n\t * ```ts\n\t * embed.spliceFields(0, 1);\n\t * ```\n\t * @example\n\t * Remove the first n fields:\n\t * ```ts\n\t * const n = 4;\n\t * embed.spliceFields(0, n);\n\t * ```\n\t * @example\n\t * Remove the last field:\n\t * ```ts\n\t * embed.spliceFields(-1, 1);\n\t * ```\n\t * @param index - The index to start at\n\t * @param deleteCount - The number of fields to remove\n\t * @param fields - The replacing field objects\n\t */\n\tpublic spliceFields(index: number, deleteCount: number, ...fields: APIEmbedField[]): this {\n\t\t// Ensure adding these fields won't exceed the 25 field limit\n\t\tvalidateFieldLength(fields.length - deleteCount, this.data.fields);\n\n\t\t// Data assertions\n\t\tembedFieldsArrayPredicate.parse(fields);\n\t\tif (this.data.fields) this.data.fields.splice(index, deleteCount, ...fields);\n\t\telse this.data.fields = fields;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the fields for this embed.\n\t *\n\t * @remarks\n\t * This method is an alias for {@link EmbedBuilder.spliceFields}. More specifically,\n\t * it splices the entire array of fields, replacing them with the provided fields.\n\t *\n\t * You can set a maximum of 25 fields.\n\t * @param fields - The fields to set\n\t */\n\tpublic setFields(...fields: RestOrArray): this {\n\t\tthis.spliceFields(0, this.data.fields?.length ?? 0, ...normalizeArray(fields));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the author of this embed.\n\t *\n\t * @param options - The options to use\n\t */\n\n\tpublic setAuthor(options: EmbedAuthorOptions | null): this {\n\t\tif (options === null) {\n\t\t\tthis.data.author = undefined;\n\t\t\treturn this;\n\t\t}\n\n\t\t// Data assertions\n\t\tembedAuthorPredicate.parse(options);\n\n\t\tthis.data.author = { name: options.name, url: options.url, icon_url: options.iconURL };\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the color of this embed.\n\t *\n\t * @param color - The color to use\n\t */\n\tpublic setColor(color: RGBTuple | number | null): this {\n\t\t// Data assertions\n\t\tcolorPredicate.parse(color);\n\n\t\tif (Array.isArray(color)) {\n\t\t\tconst [red, green, blue] = color;\n\t\t\tthis.data.color = (red << 16) + (green << 8) + blue;\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.data.color = color ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description of this embed.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string | null): this {\n\t\t// Data assertions\n\t\tdescriptionPredicate.parse(description);\n\n\t\tthis.data.description = description ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the footer of this embed.\n\t *\n\t * @param options - The footer to use\n\t */\n\tpublic setFooter(options: EmbedFooterOptions | null): this {\n\t\tif (options === null) {\n\t\t\tthis.data.footer = undefined;\n\t\t\treturn this;\n\t\t}\n\n\t\t// Data assertions\n\t\tembedFooterPredicate.parse(options);\n\n\t\tthis.data.footer = { text: options.text, icon_url: options.iconURL };\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the image of this embed.\n\t *\n\t * @param url - The image URL to use\n\t */\n\tpublic setImage(url: string | null): this {\n\t\t// Data assertions\n\t\timageURLPredicate.parse(url);\n\n\t\tthis.data.image = url ? { url } : undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the thumbnail of this embed.\n\t *\n\t * @param url - The thumbnail URL to use\n\t */\n\tpublic setThumbnail(url: string | null): this {\n\t\t// Data assertions\n\t\timageURLPredicate.parse(url);\n\n\t\tthis.data.thumbnail = url ? { url } : undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the timestamp of this embed.\n\t *\n\t * @param timestamp - The timestamp or date to use\n\t */\n\tpublic setTimestamp(timestamp: Date | number | null = Date.now()): this {\n\t\t// Data assertions\n\t\ttimestampPredicate.parse(timestamp);\n\n\t\tthis.data.timestamp = timestamp ? new Date(timestamp).toISOString() : undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the title for this embed.\n\t *\n\t * @param title - The title to use\n\t */\n\tpublic setTitle(title: string | null): this {\n\t\t// Data assertions\n\t\ttitlePredicate.parse(title);\n\n\t\tthis.data.title = title ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the URL of this embed.\n\t *\n\t * @param url - The URL to use\n\t */\n\tpublic setURL(url: string | null): this {\n\t\t// Data assertions\n\t\turlPredicate.parse(url);\n\n\t\tthis.data.url = url ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): APIEmbed {\n\t\treturn { ...this.data };\n\t}\n}\n","export * as EmbedAssertions from './messages/embed/Assertions.js';\nexport * from './messages/embed/Embed.js';\n// TODO: Consider removing this dep in the next major version\nexport * from '@discordjs/formatters';\n\nexport * as ComponentAssertions from './components/Assertions.js';\nexport * from './components/ActionRow.js';\nexport * from './components/button/Button.js';\nexport * from './components/Component.js';\nexport * from './components/Components.js';\nexport * from './components/textInput/TextInput.js';\nexport * as TextInputAssertions from './components/textInput/Assertions.js';\nexport * from './interactions/modals/Modal.js';\nexport * as ModalAssertions from './interactions/modals/Assertions.js';\n\nexport * from './components/selectMenu/BaseSelectMenu.js';\nexport * from './components/selectMenu/ChannelSelectMenu.js';\nexport * from './components/selectMenu/MentionableSelectMenu.js';\nexport * from './components/selectMenu/RoleSelectMenu.js';\nexport * from './components/selectMenu/StringSelectMenu.js';\n// TODO: Remove those aliases in v2\nexport {\n\t/**\n\t * @deprecated Will be removed in the next major version, use {@link StringSelectMenuBuilder} instead.\n\t */\n\tStringSelectMenuBuilder as SelectMenuBuilder,\n} from './components/selectMenu/StringSelectMenu.js';\nexport {\n\t/**\n\t * @deprecated Will be removed in the next major version, use {@link StringSelectMenuOptionBuilder} instead.\n\t */\n\tStringSelectMenuOptionBuilder as SelectMenuOptionBuilder,\n} from './components/selectMenu/StringSelectMenuOption.js';\nexport * from './components/selectMenu/StringSelectMenuOption.js';\nexport * from './components/selectMenu/UserSelectMenu.js';\n\nexport * as SlashCommandAssertions from './interactions/slashCommands/Assertions.js';\nexport * from './interactions/slashCommands/SlashCommandBuilder.js';\nexport * from './interactions/slashCommands/SlashCommandSubcommands.js';\nexport * from './interactions/slashCommands/options/boolean.js';\nexport * from './interactions/slashCommands/options/channel.js';\nexport * from './interactions/slashCommands/options/integer.js';\nexport * from './interactions/slashCommands/options/mentionable.js';\nexport * from './interactions/slashCommands/options/number.js';\nexport * from './interactions/slashCommands/options/role.js';\nexport * from './interactions/slashCommands/options/attachment.js';\nexport * from './interactions/slashCommands/options/string.js';\nexport * from './interactions/slashCommands/options/user.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandOptionBase.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandOptionWithAutocompleteMixin.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesMixin.js';\nexport * from './interactions/slashCommands/mixins/NameAndDescription.js';\nexport * from './interactions/slashCommands/mixins/SharedSlashCommandOptions.js';\nexport * from './interactions/slashCommands/mixins/SharedSubcommands.js';\nexport * from './interactions/slashCommands/mixins/SharedSlashCommand.js';\n\nexport * as ContextMenuCommandAssertions from './interactions/contextMenuCommands/Assertions.js';\nexport * from './interactions/contextMenuCommands/ContextMenuCommandBuilder.js';\n\nexport * from './util/componentUtil.js';\nexport * from './util/normalizeArray.js';\nexport * from './util/validation.js';\n\n/**\n * The {@link https://github.com/discordjs/discord.js/blob/main/packages/builders#readme | @discordjs/builders} version\n * that you are currently using.\n *\n * @privateRemarks This needs to explicitly be `string` so it is not typed as a \"const string\" that gets injected by esbuild.\n */\nexport const version = '1.9.0' as string;\n","import { s } from '@sapphire/shapeshift';\nimport { ButtonStyle, ChannelType, type APIMessageComponentEmoji } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../util/validation.js';\nimport { StringSelectMenuOptionBuilder } from './selectMenu/StringSelectMenuOption.js';\n\nexport const customIdValidator = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(100)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const emojiValidator = s\n\t.object({\n\t\tid: s.string(),\n\t\tname: s.string(),\n\t\tanimated: s.boolean(),\n\t})\n\t.partial()\n\t.strict()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const disabledValidator = s.boolean();\n\nexport const buttonLabelValidator = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(80)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const buttonStyleValidator = s.nativeEnum(ButtonStyle);\n\nexport const placeholderValidator = s.string().lengthLessThanOrEqual(150).setValidationEnabled(isValidationEnabled);\nexport const minMaxValidator = s\n\t.number()\n\t.int()\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(25)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const labelValueDescriptionValidator = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(100)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const jsonOptionValidator = s\n\t.object({\n\t\tlabel: labelValueDescriptionValidator,\n\t\tvalue: labelValueDescriptionValidator,\n\t\tdescription: labelValueDescriptionValidator.optional(),\n\t\temoji: emojiValidator.optional(),\n\t\tdefault: s.boolean().optional(),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const optionValidator = s.instance(StringSelectMenuOptionBuilder).setValidationEnabled(isValidationEnabled);\n\nexport const optionsValidator = optionValidator\n\t.array()\n\t.lengthGreaterThanOrEqual(0)\n\t.setValidationEnabled(isValidationEnabled);\nexport const optionsLengthValidator = s\n\t.number()\n\t.int()\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(25)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateRequiredSelectMenuParameters(options: StringSelectMenuOptionBuilder[], customId?: string) {\n\tcustomIdValidator.parse(customId);\n\toptionsValidator.parse(options);\n}\n\nexport const defaultValidator = s.boolean();\n\nexport function validateRequiredSelectMenuOptionParameters(label?: string, value?: string) {\n\tlabelValueDescriptionValidator.parse(label);\n\tlabelValueDescriptionValidator.parse(value);\n}\n\nexport const channelTypesValidator = s.nativeEnum(ChannelType).array().setValidationEnabled(isValidationEnabled);\n\nexport const urlValidator = s\n\t.string()\n\t.url({\n\t\tallowedProtocols: ['http:', 'https:', 'discord:'],\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateRequiredButtonParameters(\n\tstyle?: ButtonStyle,\n\tlabel?: string,\n\temoji?: APIMessageComponentEmoji,\n\tcustomId?: string,\n\tskuId?: string,\n\turl?: string,\n) {\n\tif (style === ButtonStyle.Premium) {\n\t\tif (!skuId) {\n\t\t\tthrow new RangeError('Premium buttons must have an SKU id.');\n\t\t}\n\n\t\tif (customId || label || url || emoji) {\n\t\t\tthrow new RangeError('Premium buttons cannot have a custom id, label, URL, or emoji.');\n\t\t}\n\t} else {\n\t\tif (skuId) {\n\t\t\tthrow new RangeError('Non-premium buttons must not have an SKU id.');\n\t\t}\n\n\t\tif (url && customId) {\n\t\t\tthrow new RangeError('URL and custom id are mutually exclusive.');\n\t\t}\n\n\t\tif (!label && !emoji) {\n\t\t\tthrow new RangeError('Non-premium buttons must have a label and/or an emoji.');\n\t\t}\n\n\t\tif (style === ButtonStyle.Link) {\n\t\t\tif (!url) {\n\t\t\t\tthrow new RangeError('Link buttons must have a URL.');\n\t\t\t}\n\t\t} else if (url) {\n\t\t\tthrow new RangeError('Non-premium and non-link buttons cannot have a URL.');\n\t\t}\n\t}\n}\n","import type { JSONEncodable } from '@discordjs/util';\nimport type { APIMessageComponentEmoji, APISelectMenuOption } from 'discord-api-types/v10';\nimport {\n\tdefaultValidator,\n\temojiValidator,\n\tlabelValueDescriptionValidator,\n\tvalidateRequiredSelectMenuOptionParameters,\n} from '../Assertions.js';\n\n/**\n * A builder that creates API-compatible JSON data for string select menu options.\n */\nexport class StringSelectMenuOptionBuilder implements JSONEncodable {\n\t/**\n\t * Creates a new string select menu option from API data.\n\t *\n\t * @param data - The API data to create this string select menu option with\n\t * @example\n\t * Creating a string select menu option from an API data object:\n\t * ```ts\n\t * const selectMenuOption = new SelectMenuOptionBuilder({\n\t * \tlabel: 'catchy label',\n\t * \tvalue: '1',\n\t * });\n\t * ```\n\t * @example\n\t * Creating a string select menu option using setters and API data:\n\t * ```ts\n\t * const selectMenuOption = new SelectMenuOptionBuilder({\n\t * \tdefault: true,\n\t * \tvalue: '1',\n\t * })\n\t * \t.setLabel('woah');\n\t * ```\n\t */\n\tpublic constructor(public data: Partial = {}) {}\n\n\t/**\n\t * Sets the label for this option.\n\t *\n\t * @param label - The label to use\n\t */\n\tpublic setLabel(label: string) {\n\t\tthis.data.label = labelValueDescriptionValidator.parse(label);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the value for this option.\n\t *\n\t * @param value - The value to use\n\t */\n\tpublic setValue(value: string) {\n\t\tthis.data.value = labelValueDescriptionValidator.parse(value);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description for this option.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string) {\n\t\tthis.data.description = labelValueDescriptionValidator.parse(description);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this option is selected by default.\n\t *\n\t * @param isDefault - Whether this option is selected by default\n\t */\n\tpublic setDefault(isDefault = true) {\n\t\tthis.data.default = defaultValidator.parse(isDefault);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the emoji to display for this option.\n\t *\n\t * @param emoji - The emoji to use\n\t */\n\tpublic setEmoji(emoji: APIMessageComponentEmoji) {\n\t\tthis.data.emoji = emojiValidator.parse(emoji);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc BaseSelectMenuBuilder.toJSON}\n\t */\n\tpublic toJSON(): APISelectMenuOption {\n\t\tvalidateRequiredSelectMenuOptionParameters(this.data.label, this.data.value);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APISelectMenuOption;\n\t}\n}\n","/* eslint-disable jsdoc/check-param-names */\n\nimport {\n\ttype APIActionRowComponent,\n\tComponentType,\n\ttype APIMessageActionRowComponent,\n\ttype APIModalActionRowComponent,\n\ttype APIActionRowComponentTypes,\n} from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../util/normalizeArray.js';\nimport { ComponentBuilder } from './Component.js';\nimport { createComponentBuilder } from './Components.js';\nimport type { ButtonBuilder } from './button/Button.js';\nimport type { ChannelSelectMenuBuilder } from './selectMenu/ChannelSelectMenu.js';\nimport type { MentionableSelectMenuBuilder } from './selectMenu/MentionableSelectMenu.js';\nimport type { RoleSelectMenuBuilder } from './selectMenu/RoleSelectMenu.js';\nimport type { StringSelectMenuBuilder } from './selectMenu/StringSelectMenu.js';\nimport type { UserSelectMenuBuilder } from './selectMenu/UserSelectMenu.js';\nimport type { TextInputBuilder } from './textInput/TextInput.js';\n\n/**\n * The builders that may be used for messages.\n */\nexport type MessageComponentBuilder =\n\t| ActionRowBuilder\n\t| MessageActionRowComponentBuilder;\n\n/**\n * The builders that may be used for modals.\n */\nexport type ModalComponentBuilder = ActionRowBuilder | ModalActionRowComponentBuilder;\n\n/**\n * The builders that may be used within an action row for messages.\n */\nexport type MessageActionRowComponentBuilder =\n\t| ButtonBuilder\n\t| ChannelSelectMenuBuilder\n\t| MentionableSelectMenuBuilder\n\t| RoleSelectMenuBuilder\n\t| StringSelectMenuBuilder\n\t| UserSelectMenuBuilder;\n\n/**\n * The builders that may be used within an action row for modals.\n */\nexport type ModalActionRowComponentBuilder = TextInputBuilder;\n\n/**\n * Any builder.\n */\nexport type AnyComponentBuilder = MessageActionRowComponentBuilder | ModalActionRowComponentBuilder;\n\n/**\n * A builder that creates API-compatible JSON data for action rows.\n *\n * @typeParam ComponentType - The types of components this action row holds\n */\nexport class ActionRowBuilder extends ComponentBuilder<\n\tAPIActionRowComponent\n> {\n\t/**\n\t * The components within this action row.\n\t */\n\tpublic readonly components: ComponentType[];\n\n\t/**\n\t * Creates a new action row from API data.\n\t *\n\t * @param data - The API data to create this action row with\n\t * @example\n\t * Creating an action row from an API data object:\n\t * ```ts\n\t * const actionRow = new ActionRowBuilder({\n\t * \tcomponents: [\n\t * \t\t{\n\t * \t\t\tcustom_id: \"custom id\",\n\t * \t\t\tlabel: \"Type something\",\n\t * \t\t\tstyle: TextInputStyle.Short,\n\t * \t\t\ttype: ComponentType.TextInput,\n\t * \t\t},\n\t * \t],\n\t * });\n\t * ```\n\t * @example\n\t * Creating an action row using setters and API data:\n\t * ```ts\n\t * const actionRow = new ActionRowBuilder({\n\t * \tcomponents: [\n\t * \t\t{\n\t * \t\t\tcustom_id: \"custom id\",\n\t * \t\t\tlabel: \"Click me\",\n\t * \t\t\tstyle: ButtonStyle.Primary,\n\t * \t\t\ttype: ComponentType.Button,\n\t * \t\t},\n\t * \t],\n\t * })\n\t * \t.addComponents(button2, button3);\n\t * ```\n\t */\n\tpublic constructor({ components, ...data }: Partial> = {}) {\n\t\tsuper({ type: ComponentType.ActionRow, ...data });\n\t\tthis.components = (components?.map((component) => createComponentBuilder(component)) ?? []) as ComponentType[];\n\t}\n\n\t/**\n\t * Adds components to this action row.\n\t *\n\t * @param components - The components to add\n\t */\n\tpublic addComponents(...components: RestOrArray) {\n\t\tthis.components.push(...normalizeArray(components));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets components for this action row.\n\t *\n\t * @param components - The components to set\n\t */\n\tpublic setComponents(...components: RestOrArray) {\n\t\tthis.components.splice(0, this.components.length, ...normalizeArray(components));\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIActionRowComponent> {\n\t\treturn {\n\t\t\t...this.data,\n\t\t\tcomponents: this.components.map((component) => component.toJSON()),\n\t\t} as APIActionRowComponent>;\n\t}\n}\n","import type { JSONEncodable } from '@discordjs/util';\nimport type {\n\tAPIActionRowComponent,\n\tAPIActionRowComponentTypes,\n\tAPIBaseComponent,\n\tComponentType,\n} from 'discord-api-types/v10';\n\n/**\n * Any action row component data represented as an object.\n */\nexport type AnyAPIActionRowComponent = APIActionRowComponent | APIActionRowComponentTypes;\n\n/**\n * The base component builder that contains common symbols for all sorts of components.\n *\n * @typeParam DataType - The type of internal API data that is stored within the component\n */\nexport abstract class ComponentBuilder<\n\tDataType extends Partial> = APIBaseComponent,\n> implements JSONEncodable\n{\n\t/**\n\t * The API data associated with this component.\n\t */\n\tpublic readonly data: Partial;\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic abstract toJSON(): AnyAPIActionRowComponent;\n\n\t/**\n\t * Constructs a new kind of component.\n\t *\n\t * @param data - The data to construct a component out of\n\t */\n\tpublic constructor(data: Partial) {\n\t\tthis.data = data;\n\t}\n}\n","import { ComponentType, type APIMessageComponent, type APIModalComponent } from 'discord-api-types/v10';\nimport {\n\tActionRowBuilder,\n\ttype AnyComponentBuilder,\n\ttype MessageComponentBuilder,\n\ttype ModalComponentBuilder,\n} from './ActionRow.js';\nimport { ComponentBuilder } from './Component.js';\nimport { ButtonBuilder } from './button/Button.js';\nimport { ChannelSelectMenuBuilder } from './selectMenu/ChannelSelectMenu.js';\nimport { MentionableSelectMenuBuilder } from './selectMenu/MentionableSelectMenu.js';\nimport { RoleSelectMenuBuilder } from './selectMenu/RoleSelectMenu.js';\nimport { StringSelectMenuBuilder } from './selectMenu/StringSelectMenu.js';\nimport { UserSelectMenuBuilder } from './selectMenu/UserSelectMenu.js';\nimport { TextInputBuilder } from './textInput/TextInput.js';\n\n/**\n * Components here are mapped to their respective builder.\n */\nexport interface MappedComponentTypes {\n\t/**\n\t * The action row component type is associated with an {@link ActionRowBuilder}.\n\t */\n\t[ComponentType.ActionRow]: ActionRowBuilder;\n\t/**\n\t * The button component type is associated with a {@link ButtonBuilder}.\n\t */\n\t[ComponentType.Button]: ButtonBuilder;\n\t/**\n\t * The string select component type is associated with a {@link StringSelectMenuBuilder}.\n\t */\n\t[ComponentType.StringSelect]: StringSelectMenuBuilder;\n\t/**\n\t * The text input component type is associated with a {@link TextInputBuilder}.\n\t */\n\t[ComponentType.TextInput]: TextInputBuilder;\n\t/**\n\t * The user select component type is associated with a {@link UserSelectMenuBuilder}.\n\t */\n\t[ComponentType.UserSelect]: UserSelectMenuBuilder;\n\t/**\n\t * The role select component type is associated with a {@link RoleSelectMenuBuilder}.\n\t */\n\t[ComponentType.RoleSelect]: RoleSelectMenuBuilder;\n\t/**\n\t * The mentionable select component type is associated with a {@link MentionableSelectMenuBuilder}.\n\t */\n\t[ComponentType.MentionableSelect]: MentionableSelectMenuBuilder;\n\t/**\n\t * The channel select component type is associated with a {@link ChannelSelectMenuBuilder}.\n\t */\n\t[ComponentType.ChannelSelect]: ChannelSelectMenuBuilder;\n}\n\n/**\n * Factory for creating components from API data.\n *\n * @typeParam ComponentType - The type of component to use\n * @param data - The API data to transform to a component class\n */\nexport function createComponentBuilder(\n\t// eslint-disable-next-line @typescript-eslint/sort-type-constituents\n\tdata: (APIModalComponent | APIMessageComponent) & { type: ComponentType },\n): MappedComponentTypes[ComponentType];\n\n/**\n * Factory for creating components from API data.\n *\n * @typeParam ComponentBuilder - The type of component to use\n * @param data - The API data to transform to a component class\n */\nexport function createComponentBuilder(\n\tdata: ComponentBuilder,\n): ComponentBuilder;\n\nexport function createComponentBuilder(\n\tdata: APIMessageComponent | APIModalComponent | MessageComponentBuilder,\n): ComponentBuilder {\n\tif (data instanceof ComponentBuilder) {\n\t\treturn data;\n\t}\n\n\tswitch (data.type) {\n\t\tcase ComponentType.ActionRow:\n\t\t\treturn new ActionRowBuilder(data);\n\t\tcase ComponentType.Button:\n\t\t\treturn new ButtonBuilder(data);\n\t\tcase ComponentType.StringSelect:\n\t\t\treturn new StringSelectMenuBuilder(data);\n\t\tcase ComponentType.TextInput:\n\t\t\treturn new TextInputBuilder(data);\n\t\tcase ComponentType.UserSelect:\n\t\t\treturn new UserSelectMenuBuilder(data);\n\t\tcase ComponentType.RoleSelect:\n\t\t\treturn new RoleSelectMenuBuilder(data);\n\t\tcase ComponentType.MentionableSelect:\n\t\t\treturn new MentionableSelectMenuBuilder(data);\n\t\tcase ComponentType.ChannelSelect:\n\t\t\treturn new ChannelSelectMenuBuilder(data);\n\t\tdefault:\n\t\t\t// @ts-expect-error This case can still occur if we get a newer unsupported component type\n\t\t\tthrow new Error(`Cannot properly serialize component type: ${data.type}`);\n\t}\n}\n","import {\n\tComponentType,\n\ttype APIButtonComponent,\n\ttype APIButtonComponentWithCustomId,\n\ttype APIButtonComponentWithSKUId,\n\ttype APIButtonComponentWithURL,\n\ttype APIMessageComponentEmoji,\n\ttype ButtonStyle,\n\ttype Snowflake,\n} from 'discord-api-types/v10';\nimport {\n\tbuttonLabelValidator,\n\tbuttonStyleValidator,\n\tcustomIdValidator,\n\tdisabledValidator,\n\temojiValidator,\n\turlValidator,\n\tvalidateRequiredButtonParameters,\n} from '../Assertions.js';\nimport { ComponentBuilder } from '../Component.js';\n\n/**\n * A builder that creates API-compatible JSON data for buttons.\n */\nexport class ButtonBuilder extends ComponentBuilder {\n\t/**\n\t * Creates a new button from API data.\n\t *\n\t * @param data - The API data to create this button with\n\t * @example\n\t * Creating a button from an API data object:\n\t * ```ts\n\t * const button = new ButtonBuilder({\n\t * \tcustom_id: 'a cool button',\n\t * \tstyle: ButtonStyle.Primary,\n\t * \tlabel: 'Click Me',\n\t * \temoji: {\n\t * \t\tname: 'smile',\n\t * \t\tid: '123456789012345678',\n\t * \t},\n\t * });\n\t * ```\n\t * @example\n\t * Creating a button using setters and API data:\n\t * ```ts\n\t * const button = new ButtonBuilder({\n\t * \tstyle: ButtonStyle.Secondary,\n\t * \tlabel: 'Click Me',\n\t * })\n\t * \t.setEmoji({ name: '🙂' })\n\t * \t.setCustomId('another cool button');\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ type: ComponentType.Button, ...data });\n\t}\n\n\t/**\n\t * Sets the style of this button.\n\t *\n\t * @param style - The style to use\n\t */\n\tpublic setStyle(style: ButtonStyle) {\n\t\tthis.data.style = buttonStyleValidator.parse(style);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the URL for this button.\n\t *\n\t * @remarks\n\t * This method is only available to buttons using the `Link` button style.\n\t * Only three types of URL schemes are currently supported: `https://`, `http://`, and `discord://`.\n\t * @param url - The URL to use\n\t */\n\tpublic setURL(url: string) {\n\t\t(this.data as APIButtonComponentWithURL).url = urlValidator.parse(url);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the custom id for this button.\n\t *\n\t * @remarks\n\t * This method is only applicable to buttons that are not using the `Link` button style.\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\t(this.data as APIButtonComponentWithCustomId).custom_id = customIdValidator.parse(customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the SKU id that represents a purchasable SKU for this button.\n\t *\n\t * @remarks Only available when using premium-style buttons.\n\t * @param skuId - The SKU id to use\n\t */\n\tpublic setSKUId(skuId: Snowflake) {\n\t\t(this.data as APIButtonComponentWithSKUId).sku_id = skuId;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the emoji to display on this button.\n\t *\n\t * @param emoji - The emoji to use\n\t */\n\tpublic setEmoji(emoji: APIMessageComponentEmoji) {\n\t\t(this.data as Exclude).emoji = emojiValidator.parse(emoji);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this button is disabled.\n\t *\n\t * @param disabled - Whether to disable this button\n\t */\n\tpublic setDisabled(disabled = true) {\n\t\tthis.data.disabled = disabledValidator.parse(disabled);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the label for this button.\n\t *\n\t * @param label - The label to use\n\t */\n\tpublic setLabel(label: string) {\n\t\t(this.data as Exclude).label = buttonLabelValidator.parse(label);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIButtonComponent {\n\t\tvalidateRequiredButtonParameters(\n\t\t\tthis.data.style,\n\t\t\t(this.data as Exclude).label,\n\t\t\t(this.data as Exclude).emoji,\n\t\t\t(this.data as APIButtonComponentWithCustomId).custom_id,\n\t\t\t(this.data as APIButtonComponentWithSKUId).sku_id,\n\t\t\t(this.data as APIButtonComponentWithURL).url,\n\t\t);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APIButtonComponent;\n\t}\n}\n","import {\n\ttype APIChannelSelectComponent,\n\ttype ChannelType,\n\ttype Snowflake,\n\tComponentType,\n\tSelectMenuDefaultValueType,\n} from 'discord-api-types/v10';\nimport { type RestOrArray, normalizeArray } from '../../util/normalizeArray.js';\nimport { channelTypesValidator, customIdValidator, optionsLengthValidator } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\n\n/**\n * A builder that creates API-compatible JSON data for channel select menus.\n */\nexport class ChannelSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new ChannelSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new ChannelSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.addChannelTypes(ChannelType.GuildText, ChannelType.GuildAnnouncement)\n\t * \t.setMinValues(2);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ ...data, type: ComponentType.ChannelSelect });\n\t}\n\n\t/**\n\t * Adds channel types to this select menu.\n\t *\n\t * @param types - The channel types to use\n\t */\n\tpublic addChannelTypes(...types: RestOrArray) {\n\t\tconst normalizedTypes = normalizeArray(types);\n\t\tthis.data.channel_types ??= [];\n\t\tthis.data.channel_types.push(...channelTypesValidator.parse(normalizedTypes));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets channel types for this select menu.\n\t *\n\t * @param types - The channel types to use\n\t */\n\tpublic setChannelTypes(...types: RestOrArray) {\n\t\tconst normalizedTypes = normalizeArray(types);\n\t\tthis.data.channel_types ??= [];\n\t\tthis.data.channel_types.splice(0, this.data.channel_types.length, ...channelTypesValidator.parse(normalizedTypes));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds default channels to this auto populated select menu.\n\t *\n\t * @param channels - The channels to add\n\t */\n\tpublic addDefaultChannels(...channels: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(channels);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.Channel as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets default channels for this auto populated select menu.\n\t *\n\t * @param channels - The channels to set\n\t */\n\tpublic setDefaultChannels(...channels: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(channels);\n\t\toptionsLengthValidator.parse(normalizedValues.length);\n\n\t\tthis.data.default_values = normalizedValues.map((id) => ({\n\t\t\tid,\n\t\t\ttype: SelectMenuDefaultValueType.Channel as const,\n\t\t}));\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc BaseSelectMenuBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APIChannelSelectComponent {\n\t\tcustomIdValidator.parse(this.data.custom_id);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APIChannelSelectComponent;\n\t}\n}\n","import type { APISelectMenuComponent } from 'discord-api-types/v10';\nimport { customIdValidator, disabledValidator, minMaxValidator, placeholderValidator } from '../Assertions.js';\nimport { ComponentBuilder } from '../Component.js';\n\n/**\n * The base select menu builder that contains common symbols for select menu builders.\n *\n * @typeParam SelectMenuType - The type of select menu this would be instantiated for.\n */\nexport abstract class BaseSelectMenuBuilder<\n\tSelectMenuType extends APISelectMenuComponent,\n> extends ComponentBuilder {\n\t/**\n\t * Sets the placeholder for this select menu.\n\t *\n\t * @param placeholder - The placeholder to use\n\t */\n\tpublic setPlaceholder(placeholder: string) {\n\t\tthis.data.placeholder = placeholderValidator.parse(placeholder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the minimum values that must be selected in the select menu.\n\t *\n\t * @param minValues - The minimum values that must be selected\n\t */\n\tpublic setMinValues(minValues: number) {\n\t\tthis.data.min_values = minMaxValidator.parse(minValues);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the maximum values that must be selected in the select menu.\n\t *\n\t * @param maxValues - The maximum values that must be selected\n\t */\n\tpublic setMaxValues(maxValues: number) {\n\t\tthis.data.max_values = minMaxValidator.parse(maxValues);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the custom id for this select menu.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customIdValidator.parse(customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this select menu is disabled.\n\t *\n\t * @param disabled - Whether this select menu is disabled\n\t */\n\tpublic setDisabled(disabled = true) {\n\t\tthis.data.disabled = disabledValidator.parse(disabled);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): SelectMenuType {\n\t\tcustomIdValidator.parse(this.data.custom_id);\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as SelectMenuType;\n\t}\n}\n","import {\n\ttype APIMentionableSelectComponent,\n\ttype APISelectMenuDefaultValue,\n\ttype Snowflake,\n\tComponentType,\n\tSelectMenuDefaultValueType,\n} from 'discord-api-types/v10';\nimport { type RestOrArray, normalizeArray } from '../../util/normalizeArray.js';\nimport { optionsLengthValidator } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\n\n/**\n * A builder that creates API-compatible JSON data for mentionable select menus.\n */\nexport class MentionableSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new MentionableSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new MentionableSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.setMinValues(1);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ ...data, type: ComponentType.MentionableSelect });\n\t}\n\n\t/**\n\t * Adds default roles to this auto populated select menu.\n\t *\n\t * @param roles - The roles to add\n\t */\n\tpublic addDefaultRoles(...roles: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(roles);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.Role as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds default users to this auto populated select menu.\n\t *\n\t * @param users - The users to add\n\t */\n\tpublic addDefaultUsers(...users: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(users);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.User as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds default values to this auto populated select menu.\n\t *\n\t * @param values - The values to add\n\t */\n\tpublic addDefaultValues(\n\t\t...values: RestOrArray<\n\t\t\t| APISelectMenuDefaultValue\n\t\t\t| APISelectMenuDefaultValue\n\t\t>\n\t) {\n\t\tconst normalizedValues = normalizeArray(values);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\t\tthis.data.default_values.push(...normalizedValues);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets default values for this auto populated select menu.\n\t *\n\t * @param values - The values to set\n\t */\n\tpublic setDefaultValues(\n\t\t...values: RestOrArray<\n\t\t\t| APISelectMenuDefaultValue\n\t\t\t| APISelectMenuDefaultValue\n\t\t>\n\t) {\n\t\tconst normalizedValues = normalizeArray(values);\n\t\toptionsLengthValidator.parse(normalizedValues.length);\n\t\tthis.data.default_values = normalizedValues;\n\t\treturn this;\n\t}\n}\n","import {\n\ttype APIRoleSelectComponent,\n\ttype Snowflake,\n\tComponentType,\n\tSelectMenuDefaultValueType,\n} from 'discord-api-types/v10';\nimport { type RestOrArray, normalizeArray } from '../../util/normalizeArray.js';\nimport { optionsLengthValidator } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\n\n/**\n * A builder that creates API-compatible JSON data for role select menus.\n */\nexport class RoleSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new RoleSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new RoleSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.setMinValues(1);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ ...data, type: ComponentType.RoleSelect });\n\t}\n\n\t/**\n\t * Adds default roles to this auto populated select menu.\n\t *\n\t * @param roles - The roles to add\n\t */\n\tpublic addDefaultRoles(...roles: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(roles);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.Role as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets default roles for this auto populated select menu.\n\t *\n\t * @param roles - The roles to set\n\t */\n\tpublic setDefaultRoles(...roles: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(roles);\n\t\toptionsLengthValidator.parse(normalizedValues.length);\n\n\t\tthis.data.default_values = normalizedValues.map((id) => ({\n\t\t\tid,\n\t\t\ttype: SelectMenuDefaultValueType.Role as const,\n\t\t}));\n\n\t\treturn this;\n\t}\n}\n","import { ComponentType } from 'discord-api-types/v10';\nimport type { APIStringSelectComponent, APISelectMenuOption } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../util/normalizeArray.js';\nimport { jsonOptionValidator, optionsLengthValidator, validateRequiredSelectMenuParameters } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\nimport { StringSelectMenuOptionBuilder } from './StringSelectMenuOption.js';\n\n/**\n * A builder that creates API-compatible JSON data for string select menus.\n */\nexport class StringSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * The options within this select menu.\n\t */\n\tpublic readonly options: StringSelectMenuOptionBuilder[];\n\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new StringSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * \toptions: [\n\t * \t\t{ label: 'option 1', value: '1' },\n\t * \t\t{ label: 'option 2', value: '2' },\n\t * \t\t{ label: 'option 3', value: '3' },\n\t * \t],\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new StringSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.setMinValues(1)\n\t * \t.addOptions({\n\t * \t\tlabel: 'Catchy',\n\t * \t\tvalue: 'catch',\n\t * \t});\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tconst { options, ...initData } = data ?? {};\n\t\tsuper({ ...initData, type: ComponentType.StringSelect });\n\t\tthis.options = options?.map((option: APISelectMenuOption) => new StringSelectMenuOptionBuilder(option)) ?? [];\n\t}\n\n\t/**\n\t * Adds options to this select menu.\n\t *\n\t * @param options - The options to add\n\t */\n\tpublic addOptions(...options: RestOrArray) {\n\t\tconst normalizedOptions = normalizeArray(options);\n\t\toptionsLengthValidator.parse(this.options.length + normalizedOptions.length);\n\t\tthis.options.push(\n\t\t\t...normalizedOptions.map((normalizedOption) =>\n\t\t\t\tnormalizedOption instanceof StringSelectMenuOptionBuilder\n\t\t\t\t\t? normalizedOption\n\t\t\t\t\t: new StringSelectMenuOptionBuilder(jsonOptionValidator.parse(normalizedOption)),\n\t\t\t),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the options for this select menu.\n\t *\n\t * @param options - The options to set\n\t */\n\tpublic setOptions(...options: RestOrArray) {\n\t\treturn this.spliceOptions(0, this.options.length, ...options);\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts options for this select menu.\n\t *\n\t * @remarks\n\t * This method behaves similarly\n\t * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice | Array.prototype.splice()}.\n\t * It's useful for modifying and adjusting the order of existing options.\n\t * @example\n\t * Remove the first option:\n\t * ```ts\n\t * selectMenu.spliceOptions(0, 1);\n\t * ```\n\t * @example\n\t * Remove the first n option:\n\t * ```ts\n\t * const n = 4;\n\t * selectMenu.spliceOptions(0, n);\n\t * ```\n\t * @example\n\t * Remove the last option:\n\t * ```ts\n\t * selectMenu.spliceOptions(-1, 1);\n\t * ```\n\t * @param index - The index to start at\n\t * @param deleteCount - The number of options to remove\n\t * @param options - The replacing option objects or builders\n\t */\n\tpublic spliceOptions(\n\t\tindex: number,\n\t\tdeleteCount: number,\n\t\t...options: RestOrArray\n\t) {\n\t\tconst normalizedOptions = normalizeArray(options);\n\n\t\tconst clone = [...this.options];\n\n\t\tclone.splice(\n\t\t\tindex,\n\t\t\tdeleteCount,\n\t\t\t...normalizedOptions.map((normalizedOption) =>\n\t\t\t\tnormalizedOption instanceof StringSelectMenuOptionBuilder\n\t\t\t\t\t? normalizedOption\n\t\t\t\t\t: new StringSelectMenuOptionBuilder(jsonOptionValidator.parse(normalizedOption)),\n\t\t\t),\n\t\t);\n\n\t\toptionsLengthValidator.parse(clone.length);\n\t\tthis.options.splice(0, this.options.length, ...clone);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc BaseSelectMenuBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APIStringSelectComponent {\n\t\tvalidateRequiredSelectMenuParameters(this.options, this.data.custom_id);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t} as APIStringSelectComponent;\n\t}\n}\n","import {\n\ttype APIUserSelectComponent,\n\ttype Snowflake,\n\tComponentType,\n\tSelectMenuDefaultValueType,\n} from 'discord-api-types/v10';\nimport { type RestOrArray, normalizeArray } from '../../util/normalizeArray.js';\nimport { optionsLengthValidator } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\n\n/**\n * A builder that creates API-compatible JSON data for user select menus.\n */\nexport class UserSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new UserSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new UserSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.setMinValues(1);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ ...data, type: ComponentType.UserSelect });\n\t}\n\n\t/**\n\t * Adds default users to this auto populated select menu.\n\t *\n\t * @param users - The users to add\n\t */\n\tpublic addDefaultUsers(...users: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(users);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.User as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets default users for this auto populated select menu.\n\t *\n\t * @param users - The users to set\n\t */\n\tpublic setDefaultUsers(...users: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(users);\n\t\toptionsLengthValidator.parse(normalizedValues.length);\n\n\t\tthis.data.default_values = normalizedValues.map((id) => ({\n\t\t\tid,\n\t\t\ttype: SelectMenuDefaultValueType.User as const,\n\t\t}));\n\n\t\treturn this;\n\t}\n}\n","import { isJSONEncodable, type Equatable, type JSONEncodable } from '@discordjs/util';\nimport { ComponentType, type TextInputStyle, type APITextInputComponent } from 'discord-api-types/v10';\nimport isEqual from 'fast-deep-equal';\nimport { customIdValidator } from '../Assertions.js';\nimport { ComponentBuilder } from '../Component.js';\nimport {\n\tmaxLengthValidator,\n\tminLengthValidator,\n\tplaceholderValidator,\n\trequiredValidator,\n\tvalueValidator,\n\tvalidateRequiredParameters,\n\tlabelValidator,\n\ttextInputStyleValidator,\n} from './Assertions.js';\n\n/**\n * A builder that creates API-compatible JSON data for text inputs.\n */\nexport class TextInputBuilder\n\textends ComponentBuilder\n\timplements Equatable>\n{\n\t/**\n\t * Creates a new text input from API data.\n\t *\n\t * @param data - The API data to create this text input with\n\t * @example\n\t * Creating a text input from an API data object:\n\t * ```ts\n\t * const textInput = new TextInputBuilder({\n\t * \tcustom_id: 'a cool text input',\n\t * \tlabel: 'Type something',\n\t * \tstyle: TextInputStyle.Short,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a text input using setters and API data:\n\t * ```ts\n\t * const textInput = new TextInputBuilder({\n\t * \tlabel: 'Type something else',\n\t * })\n\t * \t.setCustomId('woah')\n\t * \t.setStyle(TextInputStyle.Paragraph);\n\t * ```\n\t */\n\tpublic constructor(data?: APITextInputComponent & { type?: ComponentType.TextInput }) {\n\t\tsuper({ type: ComponentType.TextInput, ...data });\n\t}\n\n\t/**\n\t * Sets the custom id for this text input.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customIdValidator.parse(customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the label for this text input.\n\t *\n\t * @param label - The label to use\n\t */\n\tpublic setLabel(label: string) {\n\t\tthis.data.label = labelValidator.parse(label);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the style for this text input.\n\t *\n\t * @param style - The style to use\n\t */\n\tpublic setStyle(style: TextInputStyle) {\n\t\tthis.data.style = textInputStyleValidator.parse(style);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the minimum length of text for this text input.\n\t *\n\t * @param minLength - The minimum length of text for this text input\n\t */\n\tpublic setMinLength(minLength: number) {\n\t\tthis.data.min_length = minLengthValidator.parse(minLength);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the maximum length of text for this text input.\n\t *\n\t * @param maxLength - The maximum length of text for this text input\n\t */\n\tpublic setMaxLength(maxLength: number) {\n\t\tthis.data.max_length = maxLengthValidator.parse(maxLength);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the placeholder for this text input.\n\t *\n\t * @param placeholder - The placeholder to use\n\t */\n\tpublic setPlaceholder(placeholder: string) {\n\t\tthis.data.placeholder = placeholderValidator.parse(placeholder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the value for this text input.\n\t *\n\t * @param value - The value to use\n\t */\n\tpublic setValue(value: string) {\n\t\tthis.data.value = valueValidator.parse(value);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this text input is required.\n\t *\n\t * @param required - Whether this text input is required\n\t */\n\tpublic setRequired(required = true) {\n\t\tthis.data.required = requiredValidator.parse(required);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APITextInputComponent {\n\t\tvalidateRequiredParameters(this.data.custom_id, this.data.style, this.data.label);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APITextInputComponent;\n\t}\n\n\t/**\n\t * Whether this is equal to another structure.\n\t */\n\tpublic equals(other: APITextInputComponent | JSONEncodable): boolean {\n\t\tif (isJSONEncodable(other)) {\n\t\t\treturn isEqual(other.toJSON(), this.data);\n\t\t}\n\n\t\treturn isEqual(other, this.data);\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { TextInputStyle } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\nimport { customIdValidator } from '../Assertions.js';\n\nexport const textInputStyleValidator = s.nativeEnum(TextInputStyle);\nexport const minLengthValidator = s\n\t.number()\n\t.int()\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(4_000)\n\t.setValidationEnabled(isValidationEnabled);\nexport const maxLengthValidator = s\n\t.number()\n\t.int()\n\t.greaterThanOrEqual(1)\n\t.lessThanOrEqual(4_000)\n\t.setValidationEnabled(isValidationEnabled);\nexport const requiredValidator = s.boolean();\nexport const valueValidator = s.string().lengthLessThanOrEqual(4_000).setValidationEnabled(isValidationEnabled);\nexport const placeholderValidator = s.string().lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled);\nexport const labelValidator = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(45)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateRequiredParameters(customId?: string, style?: TextInputStyle, label?: string) {\n\tcustomIdValidator.parse(customId);\n\ttextInputStyleValidator.parse(style);\n\tlabelValidator.parse(label);\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ActionRowBuilder, type ModalActionRowComponentBuilder } from '../../components/ActionRow.js';\nimport { customIdValidator } from '../../components/Assertions.js';\nimport { isValidationEnabled } from '../../util/validation.js';\n\nexport const titleValidator = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(45)\n\t.setValidationEnabled(isValidationEnabled);\nexport const componentsValidator = s\n\t.instance(ActionRowBuilder)\n\t.array()\n\t.lengthGreaterThanOrEqual(1)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateRequiredParameters(\n\tcustomId?: string,\n\ttitle?: string,\n\tcomponents?: ActionRowBuilder[],\n) {\n\tcustomIdValidator.parse(customId);\n\ttitleValidator.parse(title);\n\tcomponentsValidator.parse(components);\n}\n","/* eslint-disable jsdoc/check-param-names */\n\nimport type { JSONEncodable } from '@discordjs/util';\nimport type {\n\tAPIActionRowComponent,\n\tAPIModalActionRowComponent,\n\tAPIModalInteractionResponseCallbackData,\n} from 'discord-api-types/v10';\nimport { ActionRowBuilder, type ModalActionRowComponentBuilder } from '../../components/ActionRow.js';\nimport { customIdValidator } from '../../components/Assertions.js';\nimport { createComponentBuilder } from '../../components/Components.js';\nimport { normalizeArray, type RestOrArray } from '../../util/normalizeArray.js';\nimport { titleValidator, validateRequiredParameters } from './Assertions.js';\n\n/**\n * A builder that creates API-compatible JSON data for modals.\n */\nexport class ModalBuilder implements JSONEncodable {\n\t/**\n\t * The API data associated with this modal.\n\t */\n\tpublic readonly data: Partial;\n\n\t/**\n\t * The components within this modal.\n\t */\n\tpublic readonly components: ActionRowBuilder[] = [];\n\n\t/**\n\t * Creates a new modal from API data.\n\t *\n\t * @param data - The API data to create this modal with\n\t */\n\tpublic constructor({ components, ...data }: Partial = {}) {\n\t\tthis.data = { ...data };\n\t\tthis.components = (components?.map((component) => createComponentBuilder(component)) ??\n\t\t\t[]) as ActionRowBuilder[];\n\t}\n\n\t/**\n\t * Sets the title of this modal.\n\t *\n\t * @param title - The title to use\n\t */\n\tpublic setTitle(title: string) {\n\t\tthis.data.title = titleValidator.parse(title);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the custom id of this modal.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customIdValidator.parse(customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds components to this modal.\n\t *\n\t * @param components - The components to add\n\t */\n\tpublic addComponents(\n\t\t...components: RestOrArray<\n\t\t\tActionRowBuilder | APIActionRowComponent\n\t\t>\n\t) {\n\t\tthis.components.push(\n\t\t\t...normalizeArray(components).map((component) =>\n\t\t\t\tcomponent instanceof ActionRowBuilder\n\t\t\t\t\t? component\n\t\t\t\t\t: new ActionRowBuilder(component),\n\t\t\t),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets components for this modal.\n\t *\n\t * @param components - The components to set\n\t */\n\tpublic setComponents(...components: RestOrArray>) {\n\t\tthis.components.splice(0, this.components.length, ...normalizeArray(components));\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIModalInteractionResponseCallbackData {\n\t\tvalidateRequiredParameters(this.data.custom_id, this.data.title, this.components);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t\tcomponents: this.components.map((component) => component.toJSON()),\n\t\t} as APIModalInteractionResponseCallbackData;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport {\n\tApplicationIntegrationType,\n\tInteractionContextType,\n\tLocale,\n\ttype APIApplicationCommandOptionChoice,\n\ttype LocalizationMap,\n} from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\nimport type { ToAPIApplicationCommandOptions } from './SlashCommandBuilder.js';\nimport type { SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder } from './SlashCommandSubcommands.js';\nimport type { ApplicationCommandOptionBase } from './mixins/ApplicationCommandOptionBase.js';\n\nconst namePredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(32)\n\t.regex(/^[\\p{Ll}\\p{Lm}\\p{Lo}\\p{N}\\p{sc=Devanagari}\\p{sc=Thai}_-]+$/u)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateName(name: unknown): asserts name is string {\n\tnamePredicate.parse(name);\n}\n\nconst descriptionPredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(100)\n\t.setValidationEnabled(isValidationEnabled);\nconst localePredicate = s.nativeEnum(Locale);\n\nexport function validateDescription(description: unknown): asserts description is string {\n\tdescriptionPredicate.parse(description);\n}\n\nconst maxArrayLengthPredicate = s.unknown().array().lengthLessThanOrEqual(25).setValidationEnabled(isValidationEnabled);\nexport function validateLocale(locale: unknown) {\n\treturn localePredicate.parse(locale);\n}\n\nexport function validateMaxOptionsLength(options: unknown): asserts options is ToAPIApplicationCommandOptions[] {\n\tmaxArrayLengthPredicate.parse(options);\n}\n\nexport function validateRequiredParameters(\n\tname: string,\n\tdescription: string,\n\toptions: ToAPIApplicationCommandOptions[],\n) {\n\t// Assert name matches all conditions\n\tvalidateName(name);\n\n\t// Assert description conditions\n\tvalidateDescription(description);\n\n\t// Assert options conditions\n\tvalidateMaxOptionsLength(options);\n}\n\nconst booleanPredicate = s.boolean();\n\nexport function validateDefaultPermission(value: unknown): asserts value is boolean {\n\tbooleanPredicate.parse(value);\n}\n\nexport function validateRequired(required: unknown): asserts required is boolean {\n\tbooleanPredicate.parse(required);\n}\n\nconst choicesLengthPredicate = s.number().lessThanOrEqual(25).setValidationEnabled(isValidationEnabled);\n\nexport function validateChoicesLength(amountAdding: number, choices?: APIApplicationCommandOptionChoice[]): void {\n\tchoicesLengthPredicate.parse((choices?.length ?? 0) + amountAdding);\n}\n\nexport function assertReturnOfBuilder<\n\tReturnType extends ApplicationCommandOptionBase | SlashCommandSubcommandBuilder | SlashCommandSubcommandGroupBuilder,\n>(input: unknown, ExpectedInstanceOf: new () => ReturnType): asserts input is ReturnType {\n\ts.instance(ExpectedInstanceOf).parse(input);\n}\n\nexport const localizationMapPredicate = s\n\t.object(Object.fromEntries(Object.values(Locale).map((locale) => [locale, s.string().nullish()])))\n\t.strict()\n\t.nullish()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateLocalizationMap(value: unknown): asserts value is LocalizationMap {\n\tlocalizationMapPredicate.parse(value);\n}\n\nconst dmPermissionPredicate = s.boolean().nullish();\n\nexport function validateDMPermission(value: unknown): asserts value is boolean | null | undefined {\n\tdmPermissionPredicate.parse(value);\n}\n\nconst memberPermissionPredicate = s\n\t.union([\n\t\ts.bigint().transform((value) => value.toString()),\n\t\ts\n\t\t\t.number()\n\t\t\t.safeInt()\n\t\t\t.transform((value) => value.toString()),\n\t\ts.string().regex(/^\\d+$/),\n\t])\n\t.nullish();\n\nexport function validateDefaultMemberPermissions(permissions: unknown) {\n\treturn memberPermissionPredicate.parse(permissions);\n}\n\nexport function validateNSFW(value: unknown): asserts value is boolean {\n\tbooleanPredicate.parse(value);\n}\n\nexport const contextsPredicate = s.array(\n\ts.nativeEnum(InteractionContextType).setValidationEnabled(isValidationEnabled),\n);\n\nexport const integrationTypesPredicate = s.array(\n\ts.nativeEnum(ApplicationIntegrationType).setValidationEnabled(isValidationEnabled),\n);\n","import type {\n\tAPIApplicationCommandOption,\n\tApplicationIntegrationType,\n\tInteractionContextType,\n\tLocalizationMap,\n\tPermissions,\n} from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { SharedNameAndDescription } from './mixins/NameAndDescription.js';\nimport { SharedSlashCommand } from './mixins/SharedSlashCommand.js';\nimport { SharedSlashCommandOptions } from './mixins/SharedSlashCommandOptions.js';\nimport { SharedSlashCommandSubcommands } from './mixins/SharedSubcommands.js';\n\n/**\n * A builder that creates API-compatible JSON data for slash commands.\n */\n@mix(SharedSlashCommandOptions, SharedNameAndDescription, SharedSlashCommandSubcommands, SharedSlashCommand)\nexport class SlashCommandBuilder {\n\t/**\n\t * The name of this command.\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The name localizations of this command.\n\t */\n\tpublic readonly name_localizations?: LocalizationMap;\n\n\t/**\n\t * The description of this command.\n\t */\n\tpublic readonly description: string = undefined!;\n\n\t/**\n\t * The description localizations of this command.\n\t */\n\tpublic readonly description_localizations?: LocalizationMap;\n\n\t/**\n\t * The options of this command.\n\t */\n\tpublic readonly options: ToAPIApplicationCommandOptions[] = [];\n\n\t/**\n\t * The contexts for this command.\n\t */\n\tpublic readonly contexts?: InteractionContextType[];\n\n\t/**\n\t * Whether this command is enabled by default when the application is added to a guild.\n\t *\n\t * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead.\n\t */\n\tpublic readonly default_permission: boolean | undefined = undefined;\n\n\t/**\n\t * The set of permissions represented as a bit set for the command.\n\t */\n\tpublic readonly default_member_permissions: Permissions | null | undefined = undefined;\n\n\t/**\n\t * Indicates whether the command is available in direct messages with the application.\n\t *\n\t * @remarks\n\t * By default, commands are visible. This property is only for global commands.\n\t * @deprecated\n\t * Use {@link SlashCommandBuilder.contexts} instead.\n\t */\n\tpublic readonly dm_permission: boolean | undefined = undefined;\n\n\t/**\n\t * The integration types for this command.\n\t */\n\tpublic readonly integration_types?: ApplicationIntegrationType[];\n\n\t/**\n\t * Whether this command is NSFW.\n\t */\n\tpublic readonly nsfw: boolean | undefined = undefined;\n}\n\nexport interface SlashCommandBuilder\n\textends SharedNameAndDescription,\n\t\tSharedSlashCommandOptions,\n\t\tSharedSlashCommandSubcommands,\n\t\tSharedSlashCommand {}\n\n/**\n * An interface specifically for slash command subcommands.\n */\nexport interface SlashCommandSubcommandsOnlyBuilder\n\textends SharedNameAndDescription,\n\t\tSharedSlashCommandSubcommands,\n\t\tSharedSlashCommand {}\n\n/**\n * An interface specifically for slash command options.\n */\nexport interface SlashCommandOptionsOnlyBuilder\n\textends SharedNameAndDescription,\n\t\tSharedSlashCommandOptions,\n\t\tSharedSlashCommand {}\n\n/**\n * An interface that ensures the `toJSON()` call will return something\n * that can be serialized into API-compatible data.\n */\nexport interface ToAPIApplicationCommandOptions {\n\ttoJSON(): APIApplicationCommandOption;\n}\n","import type { LocaleString, LocalizationMap } from 'discord-api-types/v10';\nimport { validateDescription, validateLocale, validateName } from '../Assertions.js';\n\n/**\n * This mixin holds name and description symbols for slash commands.\n */\nexport class SharedNameAndDescription {\n\t/**\n\t * The name of this command.\n\t */\n\tpublic readonly name!: string;\n\n\t/**\n\t * The name localizations of this command.\n\t */\n\tpublic readonly name_localizations?: LocalizationMap;\n\n\t/**\n\t * The description of this command.\n\t */\n\tpublic readonly description!: string;\n\n\t/**\n\t * The description localizations of this command.\n\t */\n\tpublic readonly description_localizations?: LocalizationMap;\n\n\t/**\n\t * Sets the name of this command.\n\t *\n\t * @param name - The name to use\n\t */\n\tpublic setName(name: string): this {\n\t\t// Assert the name matches the conditions\n\t\tvalidateName(name);\n\n\t\tReflect.set(this, 'name', name);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description of this command.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string) {\n\t\t// Assert the description matches the conditions\n\t\tvalidateDescription(description);\n\n\t\tReflect.set(this, 'description', description);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a name localization for this command.\n\t *\n\t * @param locale - The locale to set\n\t * @param localizedName - The localized name for the given `locale`\n\t */\n\tpublic setNameLocalization(locale: LocaleString, localizedName: string | null) {\n\t\tif (!this.name_localizations) {\n\t\t\tReflect.set(this, 'name_localizations', {});\n\t\t}\n\n\t\tconst parsedLocale = validateLocale(locale);\n\n\t\tif (localizedName === null) {\n\t\t\tthis.name_localizations![parsedLocale] = null;\n\t\t\treturn this;\n\t\t}\n\n\t\tvalidateName(localizedName);\n\n\t\tthis.name_localizations![parsedLocale] = localizedName;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the name localizations for this command.\n\t *\n\t * @param localizedNames - The object of localized names to set\n\t */\n\tpublic setNameLocalizations(localizedNames: LocalizationMap | null) {\n\t\tif (localizedNames === null) {\n\t\t\tReflect.set(this, 'name_localizations', null);\n\t\t\treturn this;\n\t\t}\n\n\t\tReflect.set(this, 'name_localizations', {});\n\n\t\tfor (const args of Object.entries(localizedNames)) {\n\t\t\tthis.setNameLocalization(...(args as [LocaleString, string | null]));\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a description localization for this command.\n\t *\n\t * @param locale - The locale to set\n\t * @param localizedDescription - The localized description for the given locale\n\t */\n\tpublic setDescriptionLocalization(locale: LocaleString, localizedDescription: string | null) {\n\t\tif (!this.description_localizations) {\n\t\t\tReflect.set(this, 'description_localizations', {});\n\t\t}\n\n\t\tconst parsedLocale = validateLocale(locale);\n\n\t\tif (localizedDescription === null) {\n\t\t\tthis.description_localizations![parsedLocale] = null;\n\t\t\treturn this;\n\t\t}\n\n\t\tvalidateDescription(localizedDescription);\n\n\t\tthis.description_localizations![parsedLocale] = localizedDescription;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description localizations for this command.\n\t *\n\t * @param localizedDescriptions - The object of localized descriptions to set\n\t */\n\tpublic setDescriptionLocalizations(localizedDescriptions: LocalizationMap | null) {\n\t\tif (localizedDescriptions === null) {\n\t\t\tReflect.set(this, 'description_localizations', null);\n\t\t\treturn this;\n\t\t}\n\n\t\tReflect.set(this, 'description_localizations', {});\n\t\tfor (const args of Object.entries(localizedDescriptions)) {\n\t\t\tthis.setDescriptionLocalization(...(args as [LocaleString, string | null]));\n\t\t}\n\n\t\treturn this;\n\t}\n}\n","import {\n\tApplicationCommandType,\n\ttype ApplicationIntegrationType,\n\ttype InteractionContextType,\n\ttype LocalizationMap,\n\ttype Permissions,\n\ttype RESTPostAPIChatInputApplicationCommandsJSONBody,\n} from 'discord-api-types/v10';\nimport type { RestOrArray } from '../../../util/normalizeArray.js';\nimport { normalizeArray } from '../../../util/normalizeArray.js';\nimport {\n\tcontextsPredicate,\n\tintegrationTypesPredicate,\n\tvalidateDMPermission,\n\tvalidateDefaultMemberPermissions,\n\tvalidateDefaultPermission,\n\tvalidateLocalizationMap,\n\tvalidateNSFW,\n\tvalidateRequiredParameters,\n} from '../Assertions.js';\nimport type { ToAPIApplicationCommandOptions } from '../SlashCommandBuilder.js';\n\n/**\n * This mixin holds symbols that can be shared in slashcommands independent of options or subcommands.\n */\nexport class SharedSlashCommand {\n\tpublic readonly name: string = undefined!;\n\n\tpublic readonly name_localizations?: LocalizationMap;\n\n\tpublic readonly description: string = undefined!;\n\n\tpublic readonly description_localizations?: LocalizationMap;\n\n\tpublic readonly options: ToAPIApplicationCommandOptions[] = [];\n\n\tpublic readonly contexts?: InteractionContextType[];\n\n\t/**\n\t * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead.\n\t */\n\tpublic readonly default_permission: boolean | undefined = undefined;\n\n\tpublic readonly default_member_permissions: Permissions | null | undefined = undefined;\n\n\t/**\n\t * @deprecated Use {@link SharedSlashCommand.contexts} instead.\n\t */\n\tpublic readonly dm_permission: boolean | undefined = undefined;\n\n\tpublic readonly integration_types?: ApplicationIntegrationType[];\n\n\tpublic readonly nsfw: boolean | undefined = undefined;\n\n\t/**\n\t * Sets the contexts of this command.\n\t *\n\t * @param contexts - The contexts\n\t */\n\tpublic setContexts(...contexts: RestOrArray) {\n\t\tReflect.set(this, 'contexts', contextsPredicate.parse(normalizeArray(contexts)));\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the integration types of this command.\n\t *\n\t * @param integrationTypes - The integration types\n\t */\n\tpublic setIntegrationTypes(...integrationTypes: RestOrArray) {\n\t\tReflect.set(this, 'integration_types', integrationTypesPredicate.parse(normalizeArray(integrationTypes)));\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether the command is enabled by default when the application is added to a guild.\n\t *\n\t * @remarks\n\t * If set to `false`, you will have to later `PUT` the permissions for this command.\n\t * @param value - Whether or not to enable this command by default\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead.\n\t */\n\tpublic setDefaultPermission(value: boolean) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateDefaultPermission(value);\n\n\t\tReflect.set(this, 'default_permission', value);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the default permissions a member should have in order to run the command.\n\t *\n\t * @remarks\n\t * You can set this to `'0'` to disable the command by default.\n\t * @param permissions - The permissions bit field to set\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t */\n\tpublic setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined) {\n\t\t// Assert the value and parse it\n\t\tconst permissionValue = validateDefaultMemberPermissions(permissions);\n\n\t\tReflect.set(this, 'default_member_permissions', permissionValue);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets if the command is available in direct messages with the application.\n\t *\n\t * @remarks\n\t * By default, commands are visible. This method is only for global commands.\n\t * @param enabled - Whether the command should be enabled in direct messages\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t * @deprecated\n\t * Use {@link SharedSlashCommand.setContexts} instead.\n\t */\n\tpublic setDMPermission(enabled: boolean | null | undefined) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateDMPermission(enabled);\n\n\t\tReflect.set(this, 'dm_permission', enabled);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this command is NSFW.\n\t *\n\t * @param nsfw - Whether this command is NSFW\n\t */\n\tpublic setNSFW(nsfw = true) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateNSFW(nsfw);\n\t\tReflect.set(this, 'nsfw', nsfw);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): RESTPostAPIChatInputApplicationCommandsJSONBody {\n\t\tvalidateRequiredParameters(this.name, this.description, this.options);\n\n\t\tvalidateLocalizationMap(this.name_localizations);\n\t\tvalidateLocalizationMap(this.description_localizations);\n\n\t\treturn {\n\t\t\t...this,\n\t\t\ttype: ApplicationCommandType.ChatInput,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\t}\n}\n","import { ApplicationCommandOptionType, type APIApplicationCommandAttachmentOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command attachment option.\n */\nexport class SlashCommandAttachmentOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic override readonly type = ApplicationCommandOptionType.Attachment as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandAttachmentOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import type { APIApplicationCommandBasicOption, ApplicationCommandOptionType } from 'discord-api-types/v10';\nimport { validateRequiredParameters, validateRequired, validateLocalizationMap } from '../Assertions.js';\nimport { SharedNameAndDescription } from './NameAndDescription.js';\n\n/**\n * The base application command option builder that contains common symbols for application command builders.\n */\nexport abstract class ApplicationCommandOptionBase extends SharedNameAndDescription {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic abstract readonly type: ApplicationCommandOptionType;\n\n\t/**\n\t * Whether this option is required.\n\t *\n\t * @defaultValue `false`\n\t */\n\tpublic readonly required: boolean = false;\n\n\t/**\n\t * Sets whether this option is required.\n\t *\n\t * @param required - Whether this option should be required\n\t */\n\tpublic setRequired(required: boolean) {\n\t\t// Assert that you actually passed a boolean\n\t\tvalidateRequired(required);\n\n\t\tReflect.set(this, 'required', required);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic abstract toJSON(): APIApplicationCommandBasicOption;\n\n\t/**\n\t * This method runs required validators on this builder.\n\t */\n\tprotected runRequiredValidations() {\n\t\tvalidateRequiredParameters(this.name, this.description, []);\n\n\t\t// Validate localizations\n\t\tvalidateLocalizationMap(this.name_localizations);\n\t\tvalidateLocalizationMap(this.description_localizations);\n\n\t\t// Assert that you actually passed a boolean\n\t\tvalidateRequired(this.required);\n\t}\n}\n","import { ApplicationCommandOptionType, type APIApplicationCommandBooleanOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command boolean option.\n */\nexport class SlashCommandBooleanOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.Boolean as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandBooleanOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { ApplicationCommandOptionType, type APIApplicationCommandChannelOption } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\nimport { ApplicationCommandOptionChannelTypesMixin } from '../mixins/ApplicationCommandOptionChannelTypesMixin.js';\n\n/**\n * A slash command channel option.\n */\n@mix(ApplicationCommandOptionChannelTypesMixin)\nexport class SlashCommandChannelOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic override readonly type = ApplicationCommandOptionType.Channel as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandChannelOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n\nexport interface SlashCommandChannelOption extends ApplicationCommandOptionChannelTypesMixin {}\n","import { s } from '@sapphire/shapeshift';\nimport { ChannelType } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../../util/normalizeArray';\n\n/**\n * The allowed channel types used for a channel option in a slash command builder.\n *\n * @privateRemarks This can't be dynamic because const enums are erased at runtime.\n * @internal\n */\nconst allowedChannelTypes = [\n\tChannelType.GuildText,\n\tChannelType.GuildVoice,\n\tChannelType.GuildCategory,\n\tChannelType.GuildAnnouncement,\n\tChannelType.AnnouncementThread,\n\tChannelType.PublicThread,\n\tChannelType.PrivateThread,\n\tChannelType.GuildStageVoice,\n\tChannelType.GuildForum,\n\tChannelType.GuildMedia,\n] as const;\n\n/**\n * The type of allowed channel types used for a channel option.\n */\nexport type ApplicationCommandOptionAllowedChannelTypes = (typeof allowedChannelTypes)[number];\n\nconst channelTypesPredicate = s.array(s.union(allowedChannelTypes.map((type) => s.literal(type))));\n\n/**\n * This mixin holds channel type symbols used for options.\n */\nexport class ApplicationCommandOptionChannelTypesMixin {\n\t/**\n\t * The channel types of this option.\n\t */\n\tpublic readonly channel_types?: ApplicationCommandOptionAllowedChannelTypes[];\n\n\t/**\n\t * Adds channel types to this option.\n\t *\n\t * @param channelTypes - The channel types\n\t */\n\tpublic addChannelTypes(...channelTypes: RestOrArray) {\n\t\tif (this.channel_types === undefined) {\n\t\t\tReflect.set(this, 'channel_types', []);\n\t\t}\n\n\t\tthis.channel_types!.push(...channelTypesPredicate.parse(normalizeArray(channelTypes)));\n\n\t\treturn this;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandOptionType, type APIApplicationCommandIntegerOption } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandNumericOptionMinMaxValueMixin } from '../mixins/ApplicationCommandNumericOptionMinMaxValueMixin.js';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\nimport { ApplicationCommandOptionWithAutocompleteMixin } from '../mixins/ApplicationCommandOptionWithAutocompleteMixin.js';\nimport { ApplicationCommandOptionWithChoicesMixin } from '../mixins/ApplicationCommandOptionWithChoicesMixin.js';\n\nconst numberValidator = s.number().int();\n\n/**\n * A slash command integer option.\n */\n@mix(\n\tApplicationCommandNumericOptionMinMaxValueMixin,\n\tApplicationCommandOptionWithAutocompleteMixin,\n\tApplicationCommandOptionWithChoicesMixin,\n)\nexport class SlashCommandIntegerOption\n\textends ApplicationCommandOptionBase\n\timplements ApplicationCommandNumericOptionMinMaxValueMixin\n{\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.Integer as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue}\n\t */\n\tpublic setMaxValue(max: number): this {\n\t\tnumberValidator.parse(max);\n\n\t\tReflect.set(this, 'max_value', max);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue}\n\t */\n\tpublic setMinValue(min: number): this {\n\t\tnumberValidator.parse(min);\n\n\t\tReflect.set(this, 'min_value', min);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandIntegerOption {\n\t\tthis.runRequiredValidations();\n\n\t\tif (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\treturn { ...this } as APIApplicationCommandIntegerOption;\n\t}\n}\n\nexport interface SlashCommandIntegerOption\n\textends ApplicationCommandNumericOptionMinMaxValueMixin,\n\t\tApplicationCommandOptionWithChoicesMixin,\n\t\tApplicationCommandOptionWithAutocompleteMixin {}\n","/**\n * This mixin holds minimum and maximum symbols used for options.\n */\nexport abstract class ApplicationCommandNumericOptionMinMaxValueMixin {\n\t/**\n\t * The maximum value of this option.\n\t */\n\tpublic readonly max_value?: number;\n\n\t/**\n\t * The minimum value of this option.\n\t */\n\tpublic readonly min_value?: number;\n\n\t/**\n\t * Sets the maximum number value of this option.\n\t *\n\t * @param max - The maximum value this option can be\n\t */\n\tpublic abstract setMaxValue(max: number): this;\n\n\t/**\n\t * Sets the minimum number value of this option.\n\t *\n\t * @param min - The minimum value this option can be\n\t */\n\tpublic abstract setMinValue(min: number): this;\n}\n","import { s } from '@sapphire/shapeshift';\nimport type { ApplicationCommandOptionType } from 'discord-api-types/v10';\n\nconst booleanPredicate = s.boolean();\n\n/**\n * This mixin holds choices and autocomplete symbols used for options.\n */\nexport class ApplicationCommandOptionWithAutocompleteMixin {\n\t/**\n\t * Whether this option utilizes autocomplete.\n\t */\n\tpublic readonly autocomplete?: boolean;\n\n\t/**\n\t * The type of this option.\n\t *\n\t * @privateRemarks Since this is present and this is a mixin, this is needed.\n\t */\n\tpublic readonly type!: ApplicationCommandOptionType;\n\n\t/**\n\t * Whether this option uses autocomplete.\n\t *\n\t * @param autocomplete - Whether this option should use autocomplete\n\t */\n\tpublic setAutocomplete(autocomplete: boolean): this {\n\t\t// Assert that you actually passed a boolean\n\t\tbooleanPredicate.parse(autocomplete);\n\n\t\tif (autocomplete && 'choices' in this && Array.isArray(this.choices) && this.choices.length > 0) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\tReflect.set(this, 'autocomplete', autocomplete);\n\n\t\treturn this;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandOptionType, type APIApplicationCommandOptionChoice } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../../util/normalizeArray.js';\nimport { localizationMapPredicate, validateChoicesLength } from '../Assertions.js';\n\nconst stringPredicate = s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100);\nconst numberPredicate = s.number().greaterThan(Number.NEGATIVE_INFINITY).lessThan(Number.POSITIVE_INFINITY);\nconst choicesPredicate = s\n\t.object({\n\t\tname: stringPredicate,\n\t\tname_localizations: localizationMapPredicate,\n\t\tvalue: s.union([stringPredicate, numberPredicate]),\n\t})\n\t.array();\n\n/**\n * This mixin holds choices and autocomplete symbols used for options.\n */\nexport class ApplicationCommandOptionWithChoicesMixin {\n\t/**\n\t * The choices of this option.\n\t */\n\tpublic readonly choices?: APIApplicationCommandOptionChoice[];\n\n\t/**\n\t * The type of this option.\n\t *\n\t * @privateRemarks Since this is present and this is a mixin, this is needed.\n\t */\n\tpublic readonly type!: ApplicationCommandOptionType;\n\n\t/**\n\t * Adds multiple choices to this option.\n\t *\n\t * @param choices - The choices to add\n\t */\n\tpublic addChoices(...choices: RestOrArray>): this {\n\t\tconst normalizedChoices = normalizeArray(choices);\n\t\tif (normalizedChoices.length > 0 && 'autocomplete' in this && this.autocomplete) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\tchoicesPredicate.parse(normalizedChoices);\n\n\t\tif (this.choices === undefined) {\n\t\t\tReflect.set(this, 'choices', []);\n\t\t}\n\n\t\tvalidateChoicesLength(normalizedChoices.length, this.choices);\n\n\t\tfor (const { name, name_localizations, value } of normalizedChoices) {\n\t\t\t// Validate the value\n\t\t\tif (this.type === ApplicationCommandOptionType.String) {\n\t\t\t\tstringPredicate.parse(value);\n\t\t\t} else {\n\t\t\t\tnumberPredicate.parse(value);\n\t\t\t}\n\n\t\t\tthis.choices!.push({ name, name_localizations, value });\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets multiple choices for this option.\n\t *\n\t * @param choices - The choices to set\n\t */\n\tpublic setChoices>(...choices: RestOrArray): this {\n\t\tconst normalizedChoices = normalizeArray(choices);\n\t\tif (normalizedChoices.length > 0 && 'autocomplete' in this && this.autocomplete) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\tchoicesPredicate.parse(normalizedChoices);\n\n\t\tReflect.set(this, 'choices', []);\n\t\tthis.addChoices(normalizedChoices);\n\n\t\treturn this;\n\t}\n}\n","import { ApplicationCommandOptionType, type APIApplicationCommandMentionableOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command mentionable option.\n */\nexport class SlashCommandMentionableOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.Mentionable as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandMentionableOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandOptionType, type APIApplicationCommandNumberOption } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandNumericOptionMinMaxValueMixin } from '../mixins/ApplicationCommandNumericOptionMinMaxValueMixin.js';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\nimport { ApplicationCommandOptionWithAutocompleteMixin } from '../mixins/ApplicationCommandOptionWithAutocompleteMixin.js';\nimport { ApplicationCommandOptionWithChoicesMixin } from '../mixins/ApplicationCommandOptionWithChoicesMixin.js';\n\nconst numberValidator = s.number();\n\n/**\n * A slash command number option.\n */\n@mix(\n\tApplicationCommandNumericOptionMinMaxValueMixin,\n\tApplicationCommandOptionWithAutocompleteMixin,\n\tApplicationCommandOptionWithChoicesMixin,\n)\nexport class SlashCommandNumberOption\n\textends ApplicationCommandOptionBase\n\timplements ApplicationCommandNumericOptionMinMaxValueMixin\n{\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.Number as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue}\n\t */\n\tpublic setMaxValue(max: number): this {\n\t\tnumberValidator.parse(max);\n\n\t\tReflect.set(this, 'max_value', max);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue}\n\t */\n\tpublic setMinValue(min: number): this {\n\t\tnumberValidator.parse(min);\n\n\t\tReflect.set(this, 'min_value', min);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandNumberOption {\n\t\tthis.runRequiredValidations();\n\n\t\tif (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\treturn { ...this } as APIApplicationCommandNumberOption;\n\t}\n}\n\nexport interface SlashCommandNumberOption\n\textends ApplicationCommandNumericOptionMinMaxValueMixin,\n\t\tApplicationCommandOptionWithChoicesMixin,\n\t\tApplicationCommandOptionWithAutocompleteMixin {}\n","import { ApplicationCommandOptionType, type APIApplicationCommandRoleOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command role option.\n */\nexport class SlashCommandRoleOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic override readonly type = ApplicationCommandOptionType.Role as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandRoleOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandOptionType, type APIApplicationCommandStringOption } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\nimport { ApplicationCommandOptionWithAutocompleteMixin } from '../mixins/ApplicationCommandOptionWithAutocompleteMixin.js';\nimport { ApplicationCommandOptionWithChoicesMixin } from '../mixins/ApplicationCommandOptionWithChoicesMixin.js';\n\nconst minLengthValidator = s.number().greaterThanOrEqual(0).lessThanOrEqual(6_000);\nconst maxLengthValidator = s.number().greaterThanOrEqual(1).lessThanOrEqual(6_000);\n\n/**\n * A slash command string option.\n */\n@mix(ApplicationCommandOptionWithAutocompleteMixin, ApplicationCommandOptionWithChoicesMixin)\nexport class SlashCommandStringOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.String as const;\n\n\t/**\n\t * The maximum length of this option.\n\t */\n\tpublic readonly max_length?: number;\n\n\t/**\n\t * The minimum length of this option.\n\t */\n\tpublic readonly min_length?: number;\n\n\t/**\n\t * Sets the maximum length of this string option.\n\t *\n\t * @param max - The maximum length this option can be\n\t */\n\tpublic setMaxLength(max: number): this {\n\t\tmaxLengthValidator.parse(max);\n\n\t\tReflect.set(this, 'max_length', max);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the minimum length of this string option.\n\t *\n\t * @param min - The minimum length this option can be\n\t */\n\tpublic setMinLength(min: number): this {\n\t\tminLengthValidator.parse(min);\n\n\t\tReflect.set(this, 'min_length', min);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandStringOption {\n\t\tthis.runRequiredValidations();\n\n\t\tif (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\treturn { ...this } as APIApplicationCommandStringOption;\n\t}\n}\n\nexport interface SlashCommandStringOption\n\textends ApplicationCommandOptionWithChoicesMixin,\n\t\tApplicationCommandOptionWithAutocompleteMixin {}\n","import { ApplicationCommandOptionType, type APIApplicationCommandUserOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command user option.\n */\nexport class SlashCommandUserOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.User as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandUserOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { assertReturnOfBuilder, validateMaxOptionsLength } from '../Assertions.js';\nimport type { ToAPIApplicationCommandOptions } from '../SlashCommandBuilder';\nimport { SlashCommandAttachmentOption } from '../options/attachment.js';\nimport { SlashCommandBooleanOption } from '../options/boolean.js';\nimport { SlashCommandChannelOption } from '../options/channel.js';\nimport { SlashCommandIntegerOption } from '../options/integer.js';\nimport { SlashCommandMentionableOption } from '../options/mentionable.js';\nimport { SlashCommandNumberOption } from '../options/number.js';\nimport { SlashCommandRoleOption } from '../options/role.js';\nimport { SlashCommandStringOption } from '../options/string.js';\nimport { SlashCommandUserOption } from '../options/user.js';\nimport type { ApplicationCommandOptionBase } from './ApplicationCommandOptionBase.js';\n\n/**\n * This mixin holds symbols that can be shared in slash command options.\n *\n * @typeParam TypeAfterAddingOptions - The type this class should return after adding an option.\n */\nexport class SharedSlashCommandOptions<\n\tTypeAfterAddingOptions extends SharedSlashCommandOptions,\n> {\n\tpublic readonly options!: ToAPIApplicationCommandOptions[];\n\n\t/**\n\t * Adds a boolean option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addBooleanOption(\n\t\tinput: SlashCommandBooleanOption | ((builder: SlashCommandBooleanOption) => SlashCommandBooleanOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandBooleanOption);\n\t}\n\n\t/**\n\t * Adds a user option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addUserOption(input: SlashCommandUserOption | ((builder: SlashCommandUserOption) => SlashCommandUserOption)) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandUserOption);\n\t}\n\n\t/**\n\t * Adds a channel option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addChannelOption(\n\t\tinput: SlashCommandChannelOption | ((builder: SlashCommandChannelOption) => SlashCommandChannelOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandChannelOption);\n\t}\n\n\t/**\n\t * Adds a role option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addRoleOption(input: SlashCommandRoleOption | ((builder: SlashCommandRoleOption) => SlashCommandRoleOption)) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandRoleOption);\n\t}\n\n\t/**\n\t * Adds an attachment option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addAttachmentOption(\n\t\tinput: SlashCommandAttachmentOption | ((builder: SlashCommandAttachmentOption) => SlashCommandAttachmentOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandAttachmentOption);\n\t}\n\n\t/**\n\t * Adds a mentionable option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addMentionableOption(\n\t\tinput: SlashCommandMentionableOption | ((builder: SlashCommandMentionableOption) => SlashCommandMentionableOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandMentionableOption);\n\t}\n\n\t/**\n\t * Adds a string option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addStringOption(\n\t\tinput: SlashCommandStringOption | ((builder: SlashCommandStringOption) => SlashCommandStringOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandStringOption);\n\t}\n\n\t/**\n\t * Adds an integer option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addIntegerOption(\n\t\tinput: SlashCommandIntegerOption | ((builder: SlashCommandIntegerOption) => SlashCommandIntegerOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandIntegerOption);\n\t}\n\n\t/**\n\t * Adds a number option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addNumberOption(\n\t\tinput: SlashCommandNumberOption | ((builder: SlashCommandNumberOption) => SlashCommandNumberOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandNumberOption);\n\t}\n\n\t/**\n\t * Where the actual adding magic happens. ✨\n\t *\n\t * @param input - The input. What else?\n\t * @param Instance - The instance of whatever is being added\n\t * @internal\n\t */\n\tprivate _sharedAddOptionMethod(\n\t\tinput: OptionBuilder | ((builder: OptionBuilder) => OptionBuilder),\n\t\tInstance: new () => OptionBuilder,\n\t): TypeAfterAddingOptions {\n\t\tconst { options } = this;\n\n\t\t// First, assert options conditions - we cannot have more than 25 options\n\t\tvalidateMaxOptionsLength(options);\n\n\t\t// Get the final result\n\t\tconst result = typeof input === 'function' ? input(new Instance()) : input;\n\n\t\tassertReturnOfBuilder(result, Instance);\n\n\t\t// Push it\n\t\toptions.push(result);\n\n\t\treturn this as unknown as TypeAfterAddingOptions;\n\t}\n}\n","import {\n\tApplicationCommandOptionType,\n\ttype APIApplicationCommandSubcommandGroupOption,\n\ttype APIApplicationCommandSubcommandOption,\n} from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { assertReturnOfBuilder, validateMaxOptionsLength, validateRequiredParameters } from './Assertions.js';\nimport type { ToAPIApplicationCommandOptions } from './SlashCommandBuilder.js';\nimport type { ApplicationCommandOptionBase } from './mixins/ApplicationCommandOptionBase.js';\nimport { SharedNameAndDescription } from './mixins/NameAndDescription.js';\nimport { SharedSlashCommandOptions } from './mixins/SharedSlashCommandOptions.js';\n\n/**\n * Represents a folder for subcommands.\n *\n * @see {@link https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups}\n */\n@mix(SharedNameAndDescription)\nexport class SlashCommandSubcommandGroupBuilder implements ToAPIApplicationCommandOptions {\n\t/**\n\t * The name of this subcommand group.\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The description of this subcommand group.\n\t */\n\tpublic readonly description: string = undefined!;\n\n\t/**\n\t * The subcommands within this subcommand group.\n\t */\n\tpublic readonly options: SlashCommandSubcommandBuilder[] = [];\n\n\t/**\n\t * Adds a new subcommand to this group.\n\t *\n\t * @param input - A function that returns a subcommand builder or an already built builder\n\t */\n\tpublic addSubcommand(\n\t\tinput:\n\t\t\t| SlashCommandSubcommandBuilder\n\t\t\t| ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder),\n\t) {\n\t\tconst { options } = this;\n\n\t\t// First, assert options conditions - we cannot have more than 25 options\n\t\tvalidateMaxOptionsLength(options);\n\n\t\t// Get the final result\n\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\tconst result = typeof input === 'function' ? input(new SlashCommandSubcommandBuilder()) : input;\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\tassertReturnOfBuilder(result, SlashCommandSubcommandBuilder);\n\n\t\t// Push it\n\t\toptions.push(result);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): APIApplicationCommandSubcommandGroupOption {\n\t\tvalidateRequiredParameters(this.name, this.description, this.options);\n\n\t\treturn {\n\t\t\ttype: ApplicationCommandOptionType.SubcommandGroup,\n\t\t\tname: this.name,\n\t\t\tname_localizations: this.name_localizations,\n\t\t\tdescription: this.description,\n\t\t\tdescription_localizations: this.description_localizations,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\t}\n}\n\nexport interface SlashCommandSubcommandGroupBuilder extends SharedNameAndDescription {}\n\n/**\n * A builder that creates API-compatible JSON data for slash command subcommands.\n *\n * @see {@link https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups}\n */\n@mix(SharedNameAndDescription, SharedSlashCommandOptions)\nexport class SlashCommandSubcommandBuilder implements ToAPIApplicationCommandOptions {\n\t/**\n\t * The name of this subcommand.\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The description of this subcommand.\n\t */\n\tpublic readonly description: string = undefined!;\n\n\t/**\n\t * The options within this subcommand.\n\t */\n\tpublic readonly options: ApplicationCommandOptionBase[] = [];\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): APIApplicationCommandSubcommandOption {\n\t\tvalidateRequiredParameters(this.name, this.description, this.options);\n\n\t\treturn {\n\t\t\ttype: ApplicationCommandOptionType.Subcommand,\n\t\t\tname: this.name,\n\t\t\tname_localizations: this.name_localizations,\n\t\t\tdescription: this.description,\n\t\t\tdescription_localizations: this.description_localizations,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\t}\n}\n\nexport interface SlashCommandSubcommandBuilder\n\textends SharedNameAndDescription,\n\t\tSharedSlashCommandOptions {}\n","import { assertReturnOfBuilder, validateMaxOptionsLength } from '../Assertions.js';\nimport type { ToAPIApplicationCommandOptions } from '../SlashCommandBuilder.js';\nimport { SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder } from '../SlashCommandSubcommands.js';\n\n/**\n * This mixin holds symbols that can be shared in slash subcommands.\n *\n * @typeParam TypeAfterAddingSubcommands - The type this class should return after adding a subcommand or subcommand group.\n */\nexport class SharedSlashCommandSubcommands<\n\tTypeAfterAddingSubcommands extends SharedSlashCommandSubcommands,\n> {\n\tpublic readonly options: ToAPIApplicationCommandOptions[] = [];\n\n\t/**\n\t * Adds a new subcommand group to this command.\n\t *\n\t * @param input - A function that returns a subcommand group builder or an already built builder\n\t */\n\tpublic addSubcommandGroup(\n\t\tinput:\n\t\t\t| SlashCommandSubcommandGroupBuilder\n\t\t\t| ((subcommandGroup: SlashCommandSubcommandGroupBuilder) => SlashCommandSubcommandGroupBuilder),\n\t): TypeAfterAddingSubcommands {\n\t\tconst { options } = this;\n\n\t\t// First, assert options conditions - we cannot have more than 25 options\n\t\tvalidateMaxOptionsLength(options);\n\n\t\t// Get the final result\n\t\tconst result = typeof input === 'function' ? input(new SlashCommandSubcommandGroupBuilder()) : input;\n\n\t\tassertReturnOfBuilder(result, SlashCommandSubcommandGroupBuilder);\n\n\t\t// Push it\n\t\toptions.push(result);\n\n\t\treturn this as unknown as TypeAfterAddingSubcommands;\n\t}\n\n\t/**\n\t * Adds a new subcommand to this command.\n\t *\n\t * @param input - A function that returns a subcommand builder or an already built builder\n\t */\n\tpublic addSubcommand(\n\t\tinput:\n\t\t\t| SlashCommandSubcommandBuilder\n\t\t\t| ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder),\n\t): TypeAfterAddingSubcommands {\n\t\tconst { options } = this;\n\n\t\t// First, assert options conditions - we cannot have more than 25 options\n\t\tvalidateMaxOptionsLength(options);\n\n\t\t// Get the final result\n\t\tconst result = typeof input === 'function' ? input(new SlashCommandSubcommandBuilder()) : input;\n\n\t\tassertReturnOfBuilder(result, SlashCommandSubcommandBuilder);\n\n\t\t// Push it\n\t\toptions.push(result);\n\n\t\treturn this as unknown as TypeAfterAddingSubcommands;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandType, ApplicationIntegrationType, InteractionContextType } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\nimport type { ContextMenuCommandType } from './ContextMenuCommandBuilder.js';\n\nconst namePredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(32)\n\t// eslint-disable-next-line prefer-named-capture-group\n\t.regex(/^( *[\\p{P}\\p{L}\\p{N}\\p{sc=Devanagari}\\p{sc=Thai}]+ *)+$/u)\n\t.setValidationEnabled(isValidationEnabled);\nconst typePredicate = s\n\t.union([s.literal(ApplicationCommandType.User), s.literal(ApplicationCommandType.Message)])\n\t.setValidationEnabled(isValidationEnabled);\nconst booleanPredicate = s.boolean();\n\nexport function validateDefaultPermission(value: unknown): asserts value is boolean {\n\tbooleanPredicate.parse(value);\n}\n\nexport function validateName(name: unknown): asserts name is string {\n\tnamePredicate.parse(name);\n}\n\nexport function validateType(type: unknown): asserts type is ContextMenuCommandType {\n\ttypePredicate.parse(type);\n}\n\nexport function validateRequiredParameters(name: string, type: number) {\n\t// Assert name matches all conditions\n\tvalidateName(name);\n\n\t// Assert type is valid\n\tvalidateType(type);\n}\n\nconst dmPermissionPredicate = s.boolean().nullish();\n\nexport function validateDMPermission(value: unknown): asserts value is boolean | null | undefined {\n\tdmPermissionPredicate.parse(value);\n}\n\nconst memberPermissionPredicate = s\n\t.union([\n\t\ts.bigint().transform((value) => value.toString()),\n\t\ts\n\t\t\t.number()\n\t\t\t.safeInt()\n\t\t\t.transform((value) => value.toString()),\n\t\ts.string().regex(/^\\d+$/),\n\t])\n\t.nullish();\n\nexport function validateDefaultMemberPermissions(permissions: unknown) {\n\treturn memberPermissionPredicate.parse(permissions);\n}\n\nexport const contextsPredicate = s.array(\n\ts.nativeEnum(InteractionContextType).setValidationEnabled(isValidationEnabled),\n);\n\nexport const integrationTypesPredicate = s.array(\n\ts.nativeEnum(ApplicationIntegrationType).setValidationEnabled(isValidationEnabled),\n);\n","import type {\n\tApplicationCommandType,\n\tApplicationIntegrationType,\n\tInteractionContextType,\n\tLocaleString,\n\tLocalizationMap,\n\tPermissions,\n\tRESTPostAPIContextMenuApplicationCommandsJSONBody,\n} from 'discord-api-types/v10';\nimport type { RestOrArray } from '../../util/normalizeArray.js';\nimport { normalizeArray } from '../../util/normalizeArray.js';\nimport { validateLocale, validateLocalizationMap } from '../slashCommands/Assertions.js';\nimport {\n\tvalidateRequiredParameters,\n\tvalidateName,\n\tvalidateType,\n\tvalidateDefaultPermission,\n\tvalidateDefaultMemberPermissions,\n\tvalidateDMPermission,\n\tcontextsPredicate,\n\tintegrationTypesPredicate,\n} from './Assertions.js';\n\n/**\n * The type a context menu command can be.\n */\nexport type ContextMenuCommandType = ApplicationCommandType.Message | ApplicationCommandType.User;\n\n/**\n * A builder that creates API-compatible JSON data for context menu commands.\n */\nexport class ContextMenuCommandBuilder {\n\t/**\n\t * The name of this command.\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The name localizations of this command.\n\t */\n\tpublic readonly name_localizations?: LocalizationMap;\n\n\t/**\n\t * The type of this command.\n\t */\n\tpublic readonly type: ContextMenuCommandType = undefined!;\n\n\t/**\n\t * The contexts for this command.\n\t */\n\tpublic readonly contexts?: InteractionContextType[];\n\n\t/**\n\t * Whether this command is enabled by default when the application is added to a guild.\n\t *\n\t * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead.\n\t */\n\tpublic readonly default_permission: boolean | undefined = undefined;\n\n\t/**\n\t * The set of permissions represented as a bit set for the command.\n\t */\n\tpublic readonly default_member_permissions: Permissions | null | undefined = undefined;\n\n\t/**\n\t * Indicates whether the command is available in direct messages with the application.\n\t *\n\t * @remarks\n\t * By default, commands are visible. This property is only for global commands.\n\t * @deprecated\n\t * Use {@link ContextMenuCommandBuilder.contexts} instead.\n\t */\n\tpublic readonly dm_permission: boolean | undefined = undefined;\n\n\t/**\n\t * The integration types for this command.\n\t */\n\tpublic readonly integration_types?: ApplicationIntegrationType[];\n\n\t/**\n\t * Sets the contexts of this command.\n\t *\n\t * @param contexts - The contexts\n\t */\n\tpublic setContexts(...contexts: RestOrArray) {\n\t\tReflect.set(this, 'contexts', contextsPredicate.parse(normalizeArray(contexts)));\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets integration types of this command.\n\t *\n\t * @param integrationTypes - The integration types\n\t */\n\tpublic setIntegrationTypes(...integrationTypes: RestOrArray) {\n\t\tReflect.set(this, 'integration_types', integrationTypesPredicate.parse(normalizeArray(integrationTypes)));\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the name of this command.\n\t *\n\t * @param name - The name to use\n\t */\n\tpublic setName(name: string) {\n\t\t// Assert the name matches the conditions\n\t\tvalidateName(name);\n\n\t\tReflect.set(this, 'name', name);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the type of this command.\n\t *\n\t * @param type - The type to use\n\t */\n\tpublic setType(type: ContextMenuCommandType) {\n\t\t// Assert the type is valid\n\t\tvalidateType(type);\n\n\t\tReflect.set(this, 'type', type);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether the command is enabled by default when the application is added to a guild.\n\t *\n\t * @remarks\n\t * If set to `false`, you will have to later `PUT` the permissions for this command.\n\t * @param value - Whether to enable this command by default\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead.\n\t */\n\tpublic setDefaultPermission(value: boolean) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateDefaultPermission(value);\n\n\t\tReflect.set(this, 'default_permission', value);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the default permissions a member should have in order to run this command.\n\t *\n\t * @remarks\n\t * You can set this to `'0'` to disable the command by default.\n\t * @param permissions - The permissions bit field to set\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t */\n\tpublic setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined) {\n\t\t// Assert the value and parse it\n\t\tconst permissionValue = validateDefaultMemberPermissions(permissions);\n\n\t\tReflect.set(this, 'default_member_permissions', permissionValue);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets if the command is available in direct messages with the application.\n\t *\n\t * @remarks\n\t * By default, commands are visible. This method is only for global commands.\n\t * @param enabled - Whether the command should be enabled in direct messages\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t * @deprecated Use {@link ContextMenuCommandBuilder.setContexts} instead.\n\t */\n\tpublic setDMPermission(enabled: boolean | null | undefined) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateDMPermission(enabled);\n\n\t\tReflect.set(this, 'dm_permission', enabled);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a name localization for this command.\n\t *\n\t * @param locale - The locale to set\n\t * @param localizedName - The localized name for the given `locale`\n\t */\n\tpublic setNameLocalization(locale: LocaleString, localizedName: string | null) {\n\t\tif (!this.name_localizations) {\n\t\t\tReflect.set(this, 'name_localizations', {});\n\t\t}\n\n\t\tconst parsedLocale = validateLocale(locale);\n\n\t\tif (localizedName === null) {\n\t\t\tthis.name_localizations![parsedLocale] = null;\n\t\t\treturn this;\n\t\t}\n\n\t\tvalidateName(localizedName);\n\n\t\tthis.name_localizations![parsedLocale] = localizedName;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the name localizations for this command.\n\t *\n\t * @param localizedNames - The object of localized names to set\n\t */\n\tpublic setNameLocalizations(localizedNames: LocalizationMap | null) {\n\t\tif (localizedNames === null) {\n\t\t\tReflect.set(this, 'name_localizations', null);\n\t\t\treturn this;\n\t\t}\n\n\t\tReflect.set(this, 'name_localizations', {});\n\n\t\tfor (const args of Object.entries(localizedNames))\n\t\t\tthis.setNameLocalization(...(args as [LocaleString, string | null]));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): RESTPostAPIContextMenuApplicationCommandsJSONBody {\n\t\tvalidateRequiredParameters(this.name, this.type);\n\n\t\tvalidateLocalizationMap(this.name_localizations);\n\n\t\treturn { ...this };\n\t}\n}\n","import type { APIEmbed } from 'discord-api-types/v10';\n\n/**\n * Calculates the length of the embed.\n *\n * @param data - The embed data to check\n */\nexport function embedLength(data: APIEmbed) {\n\treturn (\n\t\t(data.title?.length ?? 0) +\n\t\t(data.description?.length ?? 0) +\n\t\t(data.fields?.reduce((prev, curr) => prev + curr.name.length + curr.value.length, 0) ?? 0) +\n\t\t(data.footer?.text.length ?? 0) +\n\t\t(data.author?.name.length ?? 0)\n\t);\n}\n"],"mappings":"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","names":["Assertions_exports","s","s","ComponentType","ComponentType","ComponentType","ComponentType","ComponentType","SelectMenuDefaultValueType","ComponentType","SelectMenuDefaultValueType","ComponentType","SelectMenuDefaultValueType","ComponentType","SelectMenuDefaultValueType","ComponentType","ComponentType","ComponentType","SelectMenuDefaultValueType","ComponentType","SelectMenuDefaultValueType","ComponentType","Assertions_exports","placeholderValidator","s","s","placeholderValidator","ComponentType","placeholderValidator","ComponentType","ComponentType","Assertions_exports","validateRequiredParameters","s","s","validateRequiredParameters","validateRequiredParameters","Assertions_exports","validateRequiredParameters","s","s","descriptionPredicate","validateRequiredParameters","mix","validateRequiredParameters","validateRequiredParameters","ApplicationCommandOptionType","ApplicationCommandOptionType","ApplicationCommandOptionType","s","ChannelType","ChannelType","s","ApplicationCommandOptionType","s","ApplicationCommandOptionType","mix","s","booleanPredicate","s","s","ApplicationCommandOptionType","s","ApplicationCommandOptionType","s","ApplicationCommandOptionType","mix","ApplicationCommandOptionType","ApplicationCommandOptionType","s","ApplicationCommandOptionType","mix","numberValidator","s","ApplicationCommandOptionType","mix","ApplicationCommandOptionType","ApplicationCommandOptionType","s","ApplicationCommandOptionType","mix","minLengthValidator","s","maxLengthValidator","ApplicationCommandOptionType","mix","ApplicationCommandOptionType","ApplicationCommandOptionType","ApplicationCommandOptionType","mix","validateRequiredParameters","ApplicationCommandOptionType","mix","mix","Assertions_exports","contextsPredicate","integrationTypesPredicate","validateDMPermission","validateDefaultMemberPermissions","validateDefaultPermission","validateName","validateRequiredParameters","s","ApplicationCommandType","ApplicationIntegrationType","InteractionContextType","namePredicate","s","ApplicationCommandType","booleanPredicate","validateDefaultPermission","validateName","validateRequiredParameters","dmPermissionPredicate","validateDMPermission","memberPermissionPredicate","validateDefaultMemberPermissions","contextsPredicate","InteractionContextType","integrationTypesPredicate","ApplicationIntegrationType","contextsPredicate","integrationTypesPredicate","validateName","validateDefaultPermission","validateDefaultMemberPermissions","validateDMPermission","validateRequiredParameters"]} \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/LICENSE b/node_modules/@discordjs/builders/node_modules/discord-api-types/LICENSE deleted file mode 100644 index a8b1694..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020 vladfrangu - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/README.md b/node_modules/@discordjs/builders/node_modules/discord-api-types/README.md deleted file mode 100644 index e05f9e4..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/README.md +++ /dev/null @@ -1,105 +0,0 @@ -# Discord API Types - -[![discord-api-types](https://raw.githubusercontent.com/discordjs/discord-api-types/main/website/static/svgs/logo_long_blurple.svg)](https://github.com/discordjs/discord-api-types) - -[![GitHub](https://img.shields.io/github/license/discordjs/discord-api-types)](https://github.com/discordjs/discord-api-types/blob/main/LICENSE.md) -[![npm](https://img.shields.io/npm/v/discord-api-types?color=crimson&logo=npm)](https://www.npmjs.com/package/discord-api-types) -[![deno](https://img.shields.io/npm/v/discord-api-types?color=blue&label=deno&logo=deno)](https://deno.land/x/discord_api_types) -[![Patreon Donate](https://img.shields.io/badge/patreon-donate-brightgreen.svg?label=Donate%20with%20Patreon&logo=patreon&colorB=F96854&link=https://www.patreon.com/vladfrangu)](https://www.patreon.com/vladfrangu) -[![Ko-fi Donate](https://img.shields.io/badge/kofi-donate-brightgreen.svg?label=Donate%20with%20Ko-fi&logo=ko-fi&colorB=F16061&link=https://ko-fi.com/wolfgalvlad&logoColor=FFFFFF)](https://ko-fi.com/wolfgalvlad) -[![GitHub Sponsors](https://img.shields.io/badge/patreon-donate-brightgreen.svg?label=Sponsor%20through%20GitHub&logo=github&colorB=F96854&link=https://github.com/sponsors/vladfrangu)](https://github.com/sponsors/vladfrangu) -[![Powered by Vercel](https://raw.githubusercontent.com/discordjs/discord-api-types/main/website/static/powered-by-vercel.svg)](https://vercel.com?utm_source=discordjs&utm_campaign=oss) - -Simple type definitions for the [Discord API](https://discord.com/developers/docs/intro). - -## Installation - -Install with [npm](https://www.npmjs.com/) / [yarn](https://yarnpkg.com) / [pnpm](https://pnpm.js.org/): - -```sh -npm install discord-api-types -yarn add discord-api-types -pnpm add discord-api-types -``` - -### Usage - -You can only import this module by specifying the API version you want to target. Append `/v*` to the import path, where the `*` represents the API version. Below are some examples - -```js -const { APIUser } = require('discord-api-types/v10'); -``` - -```ts -// TypeScript/ES Module support -import { APIUser } from 'discord-api-types/v10'; -``` - -You may also import just certain parts of the module that you need. The possible values are: `globals`, `gateway`, `gateway/v*`, `payloads`, `payloads/v*`, `rest`, `rest/v*`, `rpc`, `rpc/v*`, `utils`, `utils/v*`, `voice`, and `voice/v*`. Below are some examples - -```js -const { GatewayVersion } = require('discord-api-types/gateway/v10'); -``` - -```ts -// TypeScript/ES Module support -import { GatewayVersion } from 'discord-api-types/gateway/v10'; -``` - -> _**Note:** The `v*` exports (`discord-api-types/v*`) include the appropriate version of `gateway`, `payloads`, `rest`, `rpc`, and `utils` you specified, alongside the `globals` exports_ - -### Deno - -We also provide typings compatible with the [deno](https://deno.land/) runtime. You have 3 ways you can import them: - -1. Directly from GitHub - -```ts -// Importing a specific API version -import { APIUser } from 'https://raw.githubusercontent.com/discordjs/discord-api-types/main/deno/v10.ts'; -``` - -2. From [deno.land/x](https://deno.land/x) - -```ts -// Importing a specific API version -import { APIUser } from 'https://deno.land/x/discord_api_types/v10.ts'; -``` - -3. From [skypack.dev](https://www.skypack.dev/) - -```ts -// Importing a specific API version -import { APIUser } from 'https://cdn.skypack.dev/discord-api-types/v10?dts'; -``` - -## Project Structure - -The exports of each API version is split into three main parts: - -- Everything exported with the `API` prefix represents a payload you may get from the REST API _or_ the Gateway. - -- Everything exported with the `Gateway` prefix represents data that ONLY comes from or is directly related to the Gateway. - -- Everything exported with the `REST` prefix represents data that ONLY comes from or is directly related to the REST API. - - - For endpoint options, they will follow the following structure: `REST` where the type represents what it will return. - - - For example, `RESTPostAPIChannelMessageJSONBody` or `RESTGetAPIGatewayBotInfoResult`. - - - Some exported types (specifically OAuth2 related ones) may not respect this entire structure due to the nature of the fields. They will start with either `RESTOAuth2` or with something similar to `RESTOAuth2` - - - If a type ends with `Result`, then it represents the expected result by calling its accompanying route. - - - Types that are exported as `never` usually mean the result will be a `204 No Content`, so you can safely ignore it. This does **not** account for errors. - -- Anything else that is miscellaneous will be exported based on what it represents (for example the `REST` route object). - -- There may be types exported that are identical for all versions. These will be exported as is and can be found in the `globals` file. They will still be prefixed accordingly as described above. - -**A note about how types are documented**: This package will add types only for known and documented properties that are present in Discord's [API Documentation repository](https://github.com/discord/discord-api-docs), -that are mentioned in an open pull request, or known through other means _and have received the green light to be used_. -Anything else will not be documented (for example client only types). - -With that aside, we may allow certain types that are not documented in the [API Documentation repository](https://github.com/discord/discord-api-docs) on a case by case basis. -They will be documented with an `@unstable` tag and are not subject with the same versioning rules. diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/common.d.ts b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/common.d.ts deleted file mode 100644 index 145c4a1..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/common.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * https://discord.com/developers/docs/topics/gateway#connecting-gateway-url-query-string-params - */ -export interface GatewayURLQuery { - v: string; - encoding: 'etf' | 'json'; - compress?: 'zlib-stream'; -} -//# sourceMappingURL=common.d.ts.map \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/common.d.ts.map b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/common.d.ts.map deleted file mode 100644 index d9f500b..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/common.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["common.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,KAAK,GAAG,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,aAAa,CAAC;CACzB"} \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/common.js b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/common.js deleted file mode 100644 index 023264f..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/common.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=common.js.map \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/common.js.map b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/common.js.map deleted file mode 100644 index d0f541d..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/common.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"common.js","sourceRoot":"","sources":["common.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/index.d.ts b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/index.d.ts deleted file mode 100644 index 73b8353..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './v10'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/index.d.ts.map b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/index.d.ts.map deleted file mode 100644 index ff50635..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAGA,cAAc,OAAO,CAAC"} \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/index.js b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/index.js deleted file mode 100644 index cdf95e3..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/index.js +++ /dev/null @@ -1,20 +0,0 @@ -"use strict"; -// This file exports all the types available in the recommended gateway version -// Thereby, things MAY break in the future. Try sticking to imports from a specific version -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./v10"), exports); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/index.js.map b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/index.js.map deleted file mode 100644 index d432448..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,2FAA2F;;;;;;;;;;;;;;;;AAE3F,wCAAsB"} \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/index.mjs b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/index.mjs deleted file mode 100644 index fd4ff25..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/index.mjs +++ /dev/null @@ -1,8 +0,0 @@ -import mod from "./index.js"; - -export default mod; -export const GatewayCloseCodes = mod.GatewayCloseCodes; -export const GatewayDispatchEvents = mod.GatewayDispatchEvents; -export const GatewayIntentBits = mod.GatewayIntentBits; -export const GatewayOpcodes = mod.GatewayOpcodes; -export const GatewayVersion = mod.GatewayVersion; diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v10.d.ts b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v10.d.ts deleted file mode 100644 index 2d4ec8e..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v10.d.ts +++ /dev/null @@ -1,1743 +0,0 @@ -/** - * Types extracted from https://discord.com/developers/docs/topics/gateway - */ -import type { Snowflake } from '../globals'; -import type { GatewayPresenceUpdate } from '../payloads/v10/gateway'; -import type { APIApplication, APIApplicationCommandPermission, APIAutoModerationRule, APIAutoModerationAction, APIChannel, APIEmoji, APIGuild, APIGuildIntegration, APIGuildMember, APIGuildScheduledEvent, APIInteraction, APIMessage, APIRole, APIStageInstance, APISticker, APIThreadChannel, APIThreadMember, APIUnavailableGuild, APIUser, GatewayActivity, GatewayPresenceUpdate as RawGatewayPresenceUpdate, GatewayThreadListSync as RawGatewayThreadListSync, GatewayThreadMembersUpdate as RawGatewayThreadMembersUpdate, APIVoiceState, InviteTargetType, PresenceUpdateStatus, AutoModerationRuleTriggerType, APIAuditLogEntry, APIEntitlement, ChannelType } from '../payloads/v10/index'; -import type { ReactionType } from '../rest/v10/index'; -import type { Nullable } from '../utils/internals'; -export * from './common'; -export declare const GatewayVersion = "10"; -/** - * https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-opcodes - */ -export declare enum GatewayOpcodes { - /** - * An event was dispatched - */ - Dispatch = 0, - /** - * A bidirectional opcode to maintain an active gateway connection. - * Fired periodically by the client, or fired by the gateway to request an immediate heartbeat from the client. - */ - Heartbeat = 1, - /** - * Starts a new session during the initial handshake - */ - Identify = 2, - /** - * Update the client's presence - */ - PresenceUpdate = 3, - /** - * Used to join/leave or move between voice channels - */ - VoiceStateUpdate = 4, - /** - * Resume a previous session that was disconnected - */ - Resume = 6, - /** - * You should attempt to reconnect and resume immediately - */ - Reconnect = 7, - /** - * Request information about offline guild members in a large guild - */ - RequestGuildMembers = 8, - /** - * The session has been invalidated. You should reconnect and identify/resume accordingly - */ - InvalidSession = 9, - /** - * Sent immediately after connecting, contains the `heartbeat_interval` to use - */ - Hello = 10, - /** - * Sent in response to receiving a heartbeat to acknowledge that it has been received - */ - HeartbeatAck = 11 -} -/** - * https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-close-event-codes - */ -export declare enum GatewayCloseCodes { - /** - * We're not sure what went wrong. Try reconnecting? - */ - UnknownError = 4000, - /** - * You sent an invalid Gateway opcode or an invalid payload for an opcode. Don't do that! - * - * See https://discord.com/developers/docs/topics/gateway-events#payload-structure - */ - UnknownOpcode = 4001, - /** - * You sent an invalid payload to us. Don't do that! - * - * See https://discord.com/developers/docs/topics/gateway#sending-events - */ - DecodeError = 4002, - /** - * You sent us a payload prior to identifying - * - * See https://discord.com/developers/docs/topics/gateway-events#identify - */ - NotAuthenticated = 4003, - /** - * The account token sent with your identify payload is incorrect - * - * See https://discord.com/developers/docs/topics/gateway-events#identify - */ - AuthenticationFailed = 4004, - /** - * You sent more than one identify payload. Don't do that! - */ - AlreadyAuthenticated = 4005, - /** - * The sequence sent when resuming the session was invalid. Reconnect and start a new session - * - * See https://discord.com/developers/docs/topics/gateway-events#resume - */ - InvalidSeq = 4007, - /** - * Woah nelly! You're sending payloads to us too quickly. Slow it down! You will be disconnected on receiving this - */ - RateLimited = 4008, - /** - * Your session timed out. Reconnect and start a new one - */ - SessionTimedOut = 4009, - /** - * You sent us an invalid shard when identifying - * - * See https://discord.com/developers/docs/topics/gateway#sharding - */ - InvalidShard = 4010, - /** - * The session would have handled too many guilds - you are required to shard your connection in order to connect - * - * See https://discord.com/developers/docs/topics/gateway#sharding - */ - ShardingRequired = 4011, - /** - * You sent an invalid version for the gateway - */ - InvalidAPIVersion = 4012, - /** - * You sent an invalid intent for a Gateway Intent. You may have incorrectly calculated the bitwise value - * - * See https://discord.com/developers/docs/topics/gateway#gateway-intents - */ - InvalidIntents = 4013, - /** - * You sent a disallowed intent for a Gateway Intent. You may have tried to specify an intent that you have not - * enabled or are not whitelisted for - * - * See https://discord.com/developers/docs/topics/gateway#gateway-intents - * - * See https://discord.com/developers/docs/topics/gateway#privileged-intents - */ - DisallowedIntents = 4014 -} -/** - * https://discord.com/developers/docs/topics/gateway#list-of-intents - */ -export declare enum GatewayIntentBits { - Guilds = 1, - GuildMembers = 2, - GuildModeration = 4, - /** - * @deprecated This is the old name for {@apilink GatewayIntentBits#GuildModeration} - */ - GuildBans = 4, - GuildEmojisAndStickers = 8, - GuildIntegrations = 16, - GuildWebhooks = 32, - GuildInvites = 64, - GuildVoiceStates = 128, - GuildPresences = 256, - GuildMessages = 512, - GuildMessageReactions = 1024, - GuildMessageTyping = 2048, - DirectMessages = 4096, - DirectMessageReactions = 8192, - DirectMessageTyping = 16384, - MessageContent = 32768, - GuildScheduledEvents = 65536, - AutoModerationConfiguration = 1048576, - AutoModerationExecution = 2097152, - GuildMessagePolls = 16777216, - DirectMessagePolls = 33554432 -} -/** - * https://discord.com/developers/docs/topics/gateway-events#receive-events - */ -export declare enum GatewayDispatchEvents { - ApplicationCommandPermissionsUpdate = "APPLICATION_COMMAND_PERMISSIONS_UPDATE", - ChannelCreate = "CHANNEL_CREATE", - ChannelDelete = "CHANNEL_DELETE", - ChannelPinsUpdate = "CHANNEL_PINS_UPDATE", - ChannelUpdate = "CHANNEL_UPDATE", - GuildBanAdd = "GUILD_BAN_ADD", - GuildBanRemove = "GUILD_BAN_REMOVE", - GuildCreate = "GUILD_CREATE", - GuildDelete = "GUILD_DELETE", - GuildEmojisUpdate = "GUILD_EMOJIS_UPDATE", - GuildIntegrationsUpdate = "GUILD_INTEGRATIONS_UPDATE", - GuildMemberAdd = "GUILD_MEMBER_ADD", - GuildMemberRemove = "GUILD_MEMBER_REMOVE", - GuildMembersChunk = "GUILD_MEMBERS_CHUNK", - GuildMemberUpdate = "GUILD_MEMBER_UPDATE", - GuildRoleCreate = "GUILD_ROLE_CREATE", - GuildRoleDelete = "GUILD_ROLE_DELETE", - GuildRoleUpdate = "GUILD_ROLE_UPDATE", - GuildStickersUpdate = "GUILD_STICKERS_UPDATE", - GuildUpdate = "GUILD_UPDATE", - IntegrationCreate = "INTEGRATION_CREATE", - IntegrationDelete = "INTEGRATION_DELETE", - IntegrationUpdate = "INTEGRATION_UPDATE", - InteractionCreate = "INTERACTION_CREATE", - InviteCreate = "INVITE_CREATE", - InviteDelete = "INVITE_DELETE", - MessageCreate = "MESSAGE_CREATE", - MessageDelete = "MESSAGE_DELETE", - MessageDeleteBulk = "MESSAGE_DELETE_BULK", - MessageReactionAdd = "MESSAGE_REACTION_ADD", - MessageReactionRemove = "MESSAGE_REACTION_REMOVE", - MessageReactionRemoveAll = "MESSAGE_REACTION_REMOVE_ALL", - MessageReactionRemoveEmoji = "MESSAGE_REACTION_REMOVE_EMOJI", - MessageUpdate = "MESSAGE_UPDATE", - PresenceUpdate = "PRESENCE_UPDATE", - StageInstanceCreate = "STAGE_INSTANCE_CREATE", - StageInstanceDelete = "STAGE_INSTANCE_DELETE", - StageInstanceUpdate = "STAGE_INSTANCE_UPDATE", - Ready = "READY", - Resumed = "RESUMED", - ThreadCreate = "THREAD_CREATE", - ThreadDelete = "THREAD_DELETE", - ThreadListSync = "THREAD_LIST_SYNC", - ThreadMembersUpdate = "THREAD_MEMBERS_UPDATE", - ThreadMemberUpdate = "THREAD_MEMBER_UPDATE", - ThreadUpdate = "THREAD_UPDATE", - TypingStart = "TYPING_START", - UserUpdate = "USER_UPDATE", - VoiceServerUpdate = "VOICE_SERVER_UPDATE", - VoiceStateUpdate = "VOICE_STATE_UPDATE", - WebhooksUpdate = "WEBHOOKS_UPDATE", - MessagePollVoteAdd = "MESSAGE_POLL_VOTE_ADD", - MessagePollVoteRemove = "MESSAGE_POLL_VOTE_REMOVE", - GuildScheduledEventCreate = "GUILD_SCHEDULED_EVENT_CREATE", - GuildScheduledEventUpdate = "GUILD_SCHEDULED_EVENT_UPDATE", - GuildScheduledEventDelete = "GUILD_SCHEDULED_EVENT_DELETE", - GuildScheduledEventUserAdd = "GUILD_SCHEDULED_EVENT_USER_ADD", - GuildScheduledEventUserRemove = "GUILD_SCHEDULED_EVENT_USER_REMOVE", - AutoModerationRuleCreate = "AUTO_MODERATION_RULE_CREATE", - AutoModerationRuleUpdate = "AUTO_MODERATION_RULE_UPDATE", - AutoModerationRuleDelete = "AUTO_MODERATION_RULE_DELETE", - AutoModerationActionExecution = "AUTO_MODERATION_ACTION_EXECUTION", - GuildAuditLogEntryCreate = "GUILD_AUDIT_LOG_ENTRY_CREATE", - EntitlementCreate = "ENTITLEMENT_CREATE", - EntitlementUpdate = "ENTITLEMENT_UPDATE", - EntitlementDelete = "ENTITLEMENT_DELETE" -} -export type GatewaySendPayload = GatewayHeartbeat | GatewayIdentify | GatewayRequestGuildMembers | GatewayResume | GatewayUpdatePresence | GatewayVoiceStateUpdate; -export type GatewayReceivePayload = GatewayDispatchPayload | GatewayHeartbeatAck | GatewayHeartbeatRequest | GatewayHello | GatewayInvalidSession | GatewayReconnect; -export type GatewayDispatchPayload = GatewayApplicationCommandPermissionsUpdateDispatch | GatewayAutoModerationActionExecutionDispatch | GatewayAutoModerationRuleCreateDispatch | GatewayAutoModerationRuleDeleteDispatch | GatewayAutoModerationRuleModifyDispatch | GatewayChannelModifyDispatch | GatewayChannelPinsUpdateDispatch | GatewayEntitlementModifyDispatch | GatewayGuildAuditLogEntryCreateDispatch | GatewayGuildBanModifyDispatch | GatewayGuildCreateDispatch | GatewayGuildDeleteDispatch | GatewayGuildEmojisUpdateDispatch | GatewayGuildIntegrationsUpdateDispatch | GatewayGuildMemberAddDispatch | GatewayGuildMemberRemoveDispatch | GatewayGuildMembersChunkDispatch | GatewayGuildMemberUpdateDispatch | GatewayGuildModifyDispatch | GatewayGuildRoleDeleteDispatch | GatewayGuildRoleModifyDispatch | GatewayGuildScheduledEventCreateDispatch | GatewayGuildScheduledEventDeleteDispatch | GatewayGuildScheduledEventUpdateDispatch | GatewayGuildScheduledEventUserAddDispatch | GatewayGuildScheduledEventUserRemoveDispatch | GatewayGuildStickersUpdateDispatch | GatewayIntegrationCreateDispatch | GatewayIntegrationDeleteDispatch | GatewayIntegrationUpdateDispatch | GatewayInteractionCreateDispatch | GatewayInviteCreateDispatch | GatewayInviteDeleteDispatch | GatewayMessageCreateDispatch | GatewayMessageDeleteBulkDispatch | GatewayMessageDeleteDispatch | GatewayMessagePollVoteAddDispatch | GatewayMessagePollVoteRemoveDispatch | GatewayMessageReactionAddDispatch | GatewayMessageReactionRemoveAllDispatch | GatewayMessageReactionRemoveDispatch | GatewayMessageReactionRemoveEmojiDispatch | GatewayMessageUpdateDispatch | GatewayPresenceUpdateDispatch | GatewayReadyDispatch | GatewayResumedDispatch | GatewayStageInstanceCreateDispatch | GatewayStageInstanceDeleteDispatch | GatewayStageInstanceUpdateDispatch | GatewayThreadCreateDispatch | GatewayThreadDeleteDispatch | GatewayThreadListSyncDispatch | GatewayThreadMembersUpdateDispatch | GatewayThreadMemberUpdateDispatch | GatewayThreadUpdateDispatch | GatewayTypingStartDispatch | GatewayUserUpdateDispatch | GatewayVoiceServerUpdateDispatch | GatewayVoiceStateUpdateDispatch | GatewayWebhooksUpdateDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#hello - */ -export interface GatewayHello extends NonDispatchPayload { - op: GatewayOpcodes.Hello; - d: GatewayHelloData; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#hello - */ -export interface GatewayHelloData { - /** - * The interval (in milliseconds) the client should heartbeat with - */ - heartbeat_interval: number; -} -/** - * https://discord.com/developers/docs/topics/gateway#sending-heartbeats - */ -export interface GatewayHeartbeatRequest extends NonDispatchPayload { - op: GatewayOpcodes.Heartbeat; - d: never; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#heartbeat - */ -export interface GatewayHeartbeatAck extends NonDispatchPayload { - op: GatewayOpcodes.HeartbeatAck; - d: never; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#invalid-session - */ -export interface GatewayInvalidSession extends NonDispatchPayload { - op: GatewayOpcodes.InvalidSession; - d: GatewayInvalidSessionData; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#invalid-session - */ -export type GatewayInvalidSessionData = boolean; -/** - * https://discord.com/developers/docs/topics/gateway-events#reconnect - */ -export interface GatewayReconnect extends NonDispatchPayload { - op: GatewayOpcodes.Reconnect; - d: never; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#ready - */ -export type GatewayReadyDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#ready - */ -export interface GatewayReadyDispatchData { - /** - * Gateway version - * - * See https://discord.com/developers/docs/reference#api-versioning - */ - v: number; - /** - * Information about the user including email - * - * See https://discord.com/developers/docs/resources/user#user-object - */ - user: APIUser; - /** - * The guilds the user is in - * - * See https://discord.com/developers/docs/resources/guild#unavailable-guild-object - */ - guilds: APIUnavailableGuild[]; - /** - * Used for resuming connections - */ - session_id: string; - /** - * Gateway url for resuming connections - */ - resume_gateway_url: string; - /** - * The shard information associated with this session, if sent when identifying - * - * See https://discord.com/developers/docs/topics/gateway#sharding - */ - shard?: [shard_id: number, shard_count: number]; - /** - * Contains `id` and `flags` - * - * See https://discord.com/developers/docs/resources/application#application-object - */ - application: Pick; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#resumed - */ -export type GatewayResumedDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-create - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-update - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-delete - */ -export type GatewayAutoModerationRuleModifyDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-create - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-update - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-delete - */ -export type GatewayAutoModerationRuleModifyDispatchData = APIAutoModerationRule; -/** - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-create - */ -export type GatewayAutoModerationRuleCreateDispatch = GatewayAutoModerationRuleModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-create - */ -export type GatewayAutoModerationRuleCreateDispatchData = GatewayAutoModerationRuleModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-update - */ -export type GatewayAutoModerationRuleUpdateDispatch = GatewayAutoModerationRuleModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-update - */ -export type GatewayAutoModerationRuleUpdateDispatchData = GatewayAutoModerationRuleModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-delete - */ -export type GatewayAutoModerationRuleDeleteDispatch = GatewayAutoModerationRuleModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-delete - */ -export type GatewayAutoModerationRuleDeleteDispatchData = GatewayAutoModerationRuleModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-action-execution - */ -export type GatewayAutoModerationActionExecutionDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-action-execution - */ -export interface GatewayAutoModerationActionExecutionDispatchData { - /** - * The id of the guild in which action was executed - */ - guild_id: Snowflake; - /** - * The action which was executed - */ - action: APIAutoModerationAction; - /** - * The id of the rule which action belongs to - */ - rule_id: Snowflake; - /** - * The trigger type of rule which was triggered - */ - rule_trigger_type: AutoModerationRuleTriggerType; - /** - * The id of the user which generated the content which triggered the rule - */ - user_id: Snowflake; - /** - * The id of the channel in which user content was posted - */ - channel_id?: Snowflake; - /** - * The id of any user message which content belongs to - * - * This field will not be present if message was blocked by AutoMod or content was not part of any message - */ - message_id?: Snowflake; - /** - * The id of any system auto moderation messages posted as a result of this action - * - * This field will not be present if this event does not correspond to an action with type {@link AutoModerationActionType.SendAlertMessage} - */ - alert_system_message_id?: Snowflake; - /** - * The user generated text content - * - * `MESSAGE_CONTENT` (`1 << 15`) gateway intent is required to receive non-empty values from this field - */ - content: string; - /** - * The word or phrase configured in the rule that triggered the rule - */ - matched_keyword: string | null; - /** - * The substring in content that triggered the rule - * - * `MESSAGE_CONTENT` (`1 << 15`) gateway intent is required to receive non-empty values from this field - */ - matched_content: string | null; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#application-command-permissions-update - */ -export type GatewayApplicationCommandPermissionsUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#application-command-permissions-update - */ -export interface GatewayApplicationCommandPermissionsUpdateDispatchData { - /** - * ID of the command or the application ID - */ - id: Snowflake; - /** - * ID of the application the command belongs to - */ - application_id: Snowflake; - /** - * ID of the guild - */ - guild_id: Snowflake; - /** - * Permissions for the command in the guild, max of 100 - */ - permissions: APIApplicationCommandPermission[]; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#channel-create - * https://discord.com/developers/docs/topics/gateway-events#channel-update - * https://discord.com/developers/docs/topics/gateway-events#channel-delete - */ -export type GatewayChannelModifyDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#channel-create - * https://discord.com/developers/docs/topics/gateway-events#channel-update - * https://discord.com/developers/docs/topics/gateway-events#channel-delete - */ -export type GatewayChannelModifyDispatchData = APIChannel; -/** - * https://discord.com/developers/docs/topics/gateway-events#channel-create - */ -export type GatewayChannelCreateDispatch = GatewayChannelModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#channel-create - */ -export type GatewayChannelCreateDispatchData = GatewayChannelModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#channel-update - */ -export type GatewayChannelUpdateDispatch = GatewayChannelModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#channel-update - */ -export type GatewayChannelUpdateDispatchData = GatewayChannelModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#channel-delete - */ -export type GatewayChannelDeleteDispatch = GatewayChannelModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#channel-delete - */ -export type GatewayChannelDeleteDispatchData = GatewayChannelModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#channel-pins-update - */ -export type GatewayChannelPinsUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#channel-pins-update - */ -export interface GatewayChannelPinsUpdateDispatchData { - /** - * The id of the guild - */ - guild_id?: Snowflake; - /** - * The id of the channel - */ - channel_id: Snowflake; - /** - * The time at which the most recent pinned message was pinned - */ - last_pin_timestamp?: string | null; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#entitlement-create - * https://discord.com/developers/docs/topics/gateway-events#entitlement-update - * https://discord.com/developers/docs/topics/gateway-events#entitlement-delete - */ -export type GatewayEntitlementModifyDispatchData = APIEntitlement; -/** - * https://discord.com/developers/docs/topics/gateway-events#entitlement-create - * https://discord.com/developers/docs/topics/gateway-events#entitlement-update - * https://discord.com/developers/docs/topics/gateway-events#entitlement-delete - */ -export type GatewayEntitlementModifyDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#entitlement-create - */ -export type GatewayEntitlementCreateDispatchData = GatewayEntitlementModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#entitlement-create - */ -export type GatewayEntitlementCreateDispatch = GatewayEntitlementModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#entitlement-update - */ -export type GatewayEntitlementUpdateDispatchData = GatewayEntitlementModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#entitlement-update - */ -export type GatewayEntitlementUpdateDispatch = GatewayEntitlementModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#entitlement-delete - */ -export type GatewayEntitlementDeleteDispatchData = GatewayEntitlementModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#entitlement-delete - */ -export type GatewayEntitlementDeleteDispatch = GatewayEntitlementModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-create - */ -export type GatewayGuildModifyDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-update - */ -export type GatewayGuildModifyDispatchData = APIGuild; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-create - */ -export type GatewayGuildCreateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-create - * https://discord.com/developers/docs/topics/gateway-events#guild-create-guild-create-extra-fields - */ -export interface GatewayGuildCreateDispatchData extends APIGuild { - /** - * When this guild was joined at - * - * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event** - */ - joined_at: string; - /** - * `true` if this is considered a large guild - * - * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event** - */ - large: boolean; - /** - * `true` if this guild is unavailable due to an outage - */ - unavailable?: boolean; - /** - * Total number of members in this guild - * - * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event** - */ - member_count: number; - /** - * States of members currently in voice channels; lacks the `guild_id` key - * - * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event** - * - * See https://discord.com/developers/docs/resources/voice#voice-state-object - */ - voice_states: Omit[]; - /** - * Users in the guild - * - * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event** - * - * See https://discord.com/developers/docs/resources/guild#guild-member-object - */ - members: APIGuildMember[]; - /** - * Channels in the guild - * - * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event** - * - * See https://discord.com/developers/docs/resources/channel#channel-object - */ - channels: APIChannel[]; - /** - * Threads in the guild - * - * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event** - * - * See https://discord.com/developers/docs/resources/channel#channel-object - */ - threads: APIChannel[]; - /** - * Presences of the members in the guild, will only include non-offline members if the size is greater than `large_threshold` - * - * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event** - * - * See https://discord.com/developers/docs/topics/gateway-events#presence-update - */ - presences: GatewayPresenceUpdate[]; - /** - * The stage instances in the guild - * - * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event** - * - * See https://discord.com/developers/docs/resources/stage-instance#stage-instance-object-stage-instance-structure - */ - stage_instances: APIStageInstance[]; - /** - * The scheduled events in the guild - * - * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event** - * - * https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object - */ - guild_scheduled_events: APIGuildScheduledEvent[]; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-update - */ -export type GatewayGuildUpdateDispatch = GatewayGuildModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-update - */ -export type GatewayGuildUpdateDispatchData = GatewayGuildModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-delete - */ -export type GatewayGuildDeleteDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-delete - */ -export type GatewayGuildDeleteDispatchData = APIUnavailableGuild; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-ban-add - * https://discord.com/developers/docs/topics/gateway-events#guild-ban-remove - */ -export type GatewayGuildBanModifyDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-ban-add - * https://discord.com/developers/docs/topics/gateway-events#guild-ban-remove - */ -export interface GatewayGuildBanModifyDispatchData { - /** - * ID of the guild - */ - guild_id: Snowflake; - /** - * The banned user - * - * See https://discord.com/developers/docs/resources/user#user-object - */ - user: APIUser; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-ban-add - */ -export type GatewayGuildBanAddDispatch = GatewayGuildBanModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-ban-add - */ -export type GatewayGuildBanAddDispatchData = GatewayGuildBanModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-ban-remove - */ -export type GatewayGuildBanRemoveDispatch = GatewayGuildBanModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-ban-remove - */ -export type GatewayGuildBanRemoveDispatchData = GatewayGuildBanModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-emojis-update - */ -export type GatewayGuildEmojisUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-emojis-update - */ -export interface GatewayGuildEmojisUpdateDispatchData { - /** - * ID of the guild - */ - guild_id: Snowflake; - /** - * Array of emojis - * - * See https://discord.com/developers/docs/resources/emoji#emoji-object - */ - emojis: APIEmoji[]; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-stickers-update - */ -export type GatewayGuildStickersUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-stickers-update - */ -export interface GatewayGuildStickersUpdateDispatchData { - /** - * ID of the guild - */ - guild_id: Snowflake; - /** - * Array of stickers - * - * See https://discord.com/developers/docs/resources/sticker#sticker-object - */ - stickers: APISticker[]; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-integrations-update - */ -export type GatewayGuildIntegrationsUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-integrations-update - */ -export interface GatewayGuildIntegrationsUpdateDispatchData { - /** - * ID of the guild whose integrations were updated - */ - guild_id: Snowflake; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-member-add - */ -export type GatewayGuildMemberAddDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-member-add - */ -export interface GatewayGuildMemberAddDispatchData extends APIGuildMember { - /** - * The id of the guild - */ - guild_id: Snowflake; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-member-remove - */ -export type GatewayGuildMemberRemoveDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-member-remove - */ -export interface GatewayGuildMemberRemoveDispatchData { - /** - * The id of the guild - */ - guild_id: Snowflake; - /** - * The user who was removed - * - * See https://discord.com/developers/docs/resources/user#user-object - */ - user: APIUser; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-member-update - */ -export type GatewayGuildMemberUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-member-update - */ -export type GatewayGuildMemberUpdateDispatchData = Nullable> & Omit & Partial> & Required> & { - /** - * The id of the guild - */ - guild_id: Snowflake; -}; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-members-chunk - */ -export type GatewayGuildMembersChunkDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#update-presence - */ -export type GatewayGuildMembersChunkPresence = Omit; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-members-chunk - */ -export interface GatewayGuildMembersChunkDispatchData { - /** - * The id of the guild - */ - guild_id: Snowflake; - /** - * Set of guild members - * - * See https://discord.com/developers/docs/resources/guild#guild-member-object - */ - members: APIGuildMember[]; - /** - * The chunk index in the expected chunks for this response (`0 <= chunk_index < chunk_count`) - */ - chunk_index: number; - /** - * The total number of expected chunks for this response - */ - chunk_count: number; - /** - * If passing an invalid id to `REQUEST_GUILD_MEMBERS`, it will be returned here - */ - not_found?: unknown[]; - /** - * If passing true to `REQUEST_GUILD_MEMBERS`, presences of the returned members will be here - * - * See https://discord.com/developers/docs/topics/gateway-events#update-presence - */ - presences?: GatewayGuildMembersChunkPresence[]; - /** - * The nonce used in the Guild Members Request - * - * See https://discord.com/developers/docs/topics/gateway-events#request-guild-members - */ - nonce?: string; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-role-create - * https://discord.com/developers/docs/topics/gateway-events#guild-role-update - */ -export type GatewayGuildRoleModifyDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-role-create - * https://discord.com/developers/docs/topics/gateway-events#guild-role-update - */ -export interface GatewayGuildRoleModifyDispatchData { - /** - * The id of the guild - */ - guild_id: Snowflake; - /** - * The role created or updated - * - * See https://discord.com/developers/docs/topics/permissions#role-object - */ - role: APIRole; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-role-create - */ -export type GatewayGuildRoleCreateDispatch = GatewayGuildRoleModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-role-create - */ -export type GatewayGuildRoleCreateDispatchData = GatewayGuildRoleModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-role-update - */ -export type GatewayGuildRoleUpdateDispatch = GatewayGuildRoleModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-role-update - */ -export type GatewayGuildRoleUpdateDispatchData = GatewayGuildRoleModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-role-delete - */ -export type GatewayGuildRoleDeleteDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-role-delete - */ -export interface GatewayGuildRoleDeleteDispatchData { - /** - * The id of the guild - */ - guild_id: Snowflake; - /** - * The id of the role - */ - role_id: Snowflake; -} -export type GatewayGuildScheduledEventCreateDispatch = DataPayload; -export type GatewayGuildScheduledEventCreateDispatchData = APIGuildScheduledEvent; -export type GatewayGuildScheduledEventUpdateDispatch = DataPayload; -export type GatewayGuildScheduledEventUpdateDispatchData = APIGuildScheduledEvent; -export type GatewayGuildScheduledEventDeleteDispatch = DataPayload; -export type GatewayGuildScheduledEventDeleteDispatchData = APIGuildScheduledEvent; -export type GatewayGuildScheduledEventUserAddDispatch = DataPayload; -export interface GatewayGuildScheduledEventUserAddDispatchData { - guild_scheduled_event_id: Snowflake; - user_id: Snowflake; - guild_id: Snowflake; -} -export type GatewayGuildScheduledEventUserRemoveDispatch = DataPayload; -export interface GatewayGuildScheduledEventUserRemoveDispatchData { - guild_scheduled_event_id: Snowflake; - user_id: Snowflake; - guild_id: Snowflake; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#integration-create - */ -export type GatewayIntegrationCreateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#integration-create - */ -export type GatewayIntegrationCreateDispatchData = APIGuildIntegration & { - guild_id: Snowflake; -}; -/** - * https://discord.com/developers/docs/topics/gateway-events#integration-update - */ -export type GatewayIntegrationUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#integration-update - */ -export type GatewayIntegrationUpdateDispatchData = APIGuildIntegration & { - guild_id: Snowflake; -}; -/** - * https://discord.com/developers/docs/topics/gateway-events#integration-update - */ -export type GatewayIntegrationDeleteDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#integration-delete - */ -export interface GatewayIntegrationDeleteDispatchData { - /** - * Integration id - */ - id: Snowflake; - /** - * ID of the guild - */ - guild_id: Snowflake; - /** - * ID of the bot/OAuth2 application for this Discord integration - */ - application_id?: Snowflake; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#interaction-create - */ -export type GatewayInteractionCreateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#interaction-create - */ -export type GatewayInteractionCreateDispatchData = APIInteraction; -/** - * https://discord.com/developers/docs/topics/gateway-events#invite-create - */ -export type GatewayInviteCreateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#invite-create - */ -export interface GatewayInviteCreateDispatchData { - /** - * The channel the invite is for - */ - channel_id: Snowflake; - /** - * The unique invite code - * - * See https://discord.com/developers/docs/resources/invite#invite-object - */ - code: string; - /** - * The time at which the invite was created - */ - created_at: number; - /** - * The guild of the invite - */ - guild_id?: Snowflake; - /** - * The user that created the invite - * - * See https://discord.com/developers/docs/resources/user#user-object - */ - inviter?: APIUser; - /** - * How long the invite is valid for (in seconds) - */ - max_age: number; - /** - * The maximum number of times the invite can be used - */ - max_uses: number; - /** - * The type of target for this voice channel invite - * - * See https://discord.com/developers/docs/resources/invite#invite-object-invite-target-types - */ - target_type?: InviteTargetType; - /** - * The user whose stream to display for this voice channel stream invite - * - * See https://discord.com/developers/docs/resources/user#user-object - */ - target_user?: APIUser; - /** - * The embedded application to open for this voice channel embedded application invite - */ - target_application?: Partial; - /** - * Whether or not the invite is temporary (invited users will be kicked on disconnect unless they're assigned a role) - */ - temporary: boolean; - /** - * How many times the invite has been used (always will be `0`) - */ - uses: 0; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#invite-delete - */ -export type GatewayInviteDeleteDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#invite-delete - */ -export interface GatewayInviteDeleteDispatchData { - /** - * The channel of the invite - */ - channel_id: Snowflake; - /** - * The guild of the invite - */ - guild_id?: Snowflake; - /** - * The unique invite code - * - * See https://discord.com/developers/docs/resources/invite#invite-object - */ - code: string; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#message-create - */ -export type GatewayMessageCreateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-create - */ -export type GatewayMessageCreateDispatchData = GatewayMessageEventExtraFields & Omit; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-update - */ -export type GatewayMessageUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-update - */ -export type GatewayMessageUpdateDispatchData = GatewayMessageEventExtraFields & Omit, 'mentions'> & { - /** - * ID of the message - */ - id: Snowflake; - /** - * ID of the channel the message was sent in - */ - channel_id: Snowflake; -}; -export interface GatewayMessageEventExtraFields { - /** - * ID of the guild the message was sent in - */ - guild_id?: Snowflake; - /** - * Member properties for this message's author - * - * The member object exists in `MESSAGE_CREATE` and `MESSAGE_UPDATE` events - * from text-based guild channels - * - * See https://discord.com/developers/docs/resources/guild#guild-member-object - */ - member?: Omit; - /** - * Users specifically mentioned in the message - * - * The `member` field is only present in `MESSAGE_CREATE` and `MESSAGE_UPDATE` events - * from text-based guild channels - * - * See https://discord.com/developers/docs/resources/user#user-object - * See https://discord.com/developers/docs/resources/guild#guild-member-object - */ - mentions: (APIUser & { - member?: Omit; - })[]; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#message-delete - */ -export type GatewayMessageDeleteDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-delete - */ -export interface GatewayMessageDeleteDispatchData { - /** - * The id of the message - */ - id: Snowflake; - /** - * The id of the channel - */ - channel_id: Snowflake; - /** - * The id of the guild - */ - guild_id?: Snowflake; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#message-delete-bulk - */ -export type GatewayMessageDeleteBulkDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-delete-bulk - */ -export interface GatewayMessageDeleteBulkDispatchData { - /** - * The ids of the messages - */ - ids: Snowflake[]; - /** - * The id of the channel - */ - channel_id: Snowflake; - /** - * The id of the guild - */ - guild_id?: Snowflake; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#message-reaction-add - */ -export type GatewayMessageReactionAddDispatch = ReactionData; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-reaction-add - */ -export type GatewayMessageReactionAddDispatchData = GatewayMessageReactionAddDispatch['d']; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-reaction-remove - */ -export type GatewayMessageReactionRemoveDispatch = ReactionData; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-reaction-remove - */ -export type GatewayMessageReactionRemoveDispatchData = GatewayMessageReactionRemoveDispatch['d']; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-reaction-remove-all - */ -export type GatewayMessageReactionRemoveAllDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-reaction-remove-all - */ -export type GatewayMessageReactionRemoveAllDispatchData = MessageReactionRemoveData; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-reaction-remove-emoji - */ -export type GatewayMessageReactionRemoveEmojiDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-reaction-remove-emoji - */ -export interface GatewayMessageReactionRemoveEmojiDispatchData extends MessageReactionRemoveData { - /** - * The emoji that was removed - */ - emoji: APIEmoji; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#presence-update - */ -export type GatewayPresenceUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#presence-update - */ -export type GatewayPresenceUpdateDispatchData = RawGatewayPresenceUpdate; -/** - * https://discord.com/developers/docs/topics/gateway-events#stage-instance-create - */ -export type GatewayStageInstanceCreateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#stage-instance-create - */ -export type GatewayStageInstanceCreateDispatchData = APIStageInstance; -/** - * https://discord.com/developers/docs/topics/gateway-events#stage-instance-delete - */ -export type GatewayStageInstanceDeleteDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#stage-instance-delete - */ -export type GatewayStageInstanceDeleteDispatchData = APIStageInstance; -/** - * https://discord.com/developers/docs/topics/gateway-events#stage-instance-update - */ -export type GatewayStageInstanceUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#stage-instance-update - */ -export type GatewayStageInstanceUpdateDispatchData = APIStageInstance; -/** - * https://discord.com/developers/docs/topics/gateway-events#thread-list-sync - */ -export type GatewayThreadListSyncDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#thread-list-sync - */ -export type GatewayThreadListSyncDispatchData = RawGatewayThreadListSync; -/** - * https://discord.com/developers/docs/topics/gateway-events#thread-members-update - */ -export type GatewayThreadMembersUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#thread-members-update - */ -export type GatewayThreadMembersUpdateDispatchData = RawGatewayThreadMembersUpdate; -/** - * https://discord.com/developers/docs/topics/gateway-events#thread-member-update - */ -export type GatewayThreadMemberUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#thread-member-update - */ -export type GatewayThreadMemberUpdateDispatchData = APIThreadMember & { - guild_id: Snowflake; -}; -/** - * @deprecated This type doesn't accurately reflect the Discord API. - * Use {@apilink GatewayThreadCreateDispatch}, - * {@apilink GatewayThreadUpdateDispatch}, or - * {@apilink GatewayThreadDeleteDispatch} instead. - * https://discord.com/developers/docs/topics/gateway-events#thread-create - * https://discord.com/developers/docs/topics/gateway-events#thread-update - * https://discord.com/developers/docs/topics/gateway-events#thread-delete - */ -export type GatewayThreadModifyDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#thread-create - */ -export type GatewayThreadCreateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#thread-create - */ -export interface GatewayThreadCreateDispatchData extends APIThreadChannel { - /** - * Whether the thread is newly created or not. - */ - newly_created?: true; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#thread-update - */ -export type GatewayThreadUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#thread-update - */ -export type GatewayThreadUpdateDispatchData = APIThreadChannel; -/** - * https://discord.com/developers/docs/topics/gateway-events#thread-delete - */ -export type GatewayThreadDeleteDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#thread-delete - */ -export interface GatewayThreadDeleteDispatchData { - /** - * The id of the channel - */ - id: Snowflake; - /** - * The id of the guild - */ - guild_id: Snowflake; - /** - * The id of the parent channel of the thread - */ - parent_id: Snowflake; - /** - * The type of the channel - * - * See https://discord.com/developers/docs/resources/channel#channel-object-channel-types - */ - type: ChannelType; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#typing-start - */ -export type GatewayTypingStartDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#typing-start - */ -export interface GatewayTypingStartDispatchData { - /** - * The id of the channel - */ - channel_id: Snowflake; - /** - * The id of the guild - */ - guild_id?: Snowflake; - /** - * The id of the user - */ - user_id: Snowflake; - /** - * Unix time (in seconds) of when the user started typing - */ - timestamp: number; - /** - * The member who started typing if this happened in a guild - * - * See https://discord.com/developers/docs/resources/guild#guild-member-object - */ - member?: APIGuildMember; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#user-update - */ -export type GatewayUserUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#user-update - */ -export type GatewayUserUpdateDispatchData = APIUser; -/** - * https://discord.com/developers/docs/topics/gateway-events#voice-state-update - */ -export type GatewayVoiceStateUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#voice-state-update - */ -export type GatewayVoiceStateUpdateDispatchData = APIVoiceState; -/** - * https://discord.com/developers/docs/topics/gateway-events#voice-server-update - */ -export type GatewayVoiceServerUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#voice-server-update - */ -export interface GatewayVoiceServerUpdateDispatchData { - /** - * Voice connection token - */ - token: string; - /** - * The guild this voice server update is for - */ - guild_id: Snowflake; - /** - * The voice server host - * - * A `null` endpoint means that the voice server allocated has gone away and is trying to be reallocated. - * You should attempt to disconnect from the currently connected voice server, and not attempt to reconnect - * until a new voice server is allocated - */ - endpoint: string | null; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#webhooks-update - */ -export type GatewayWebhooksUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#webhooks-update - */ -export interface GatewayWebhooksUpdateDispatchData { - /** - * The id of the guild - */ - guild_id: Snowflake; - /** - * The id of the channel - */ - channel_id: Snowflake; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-audit-log-entry-create - */ -export type GatewayGuildAuditLogEntryCreateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-audit-log-entry-create - */ -export interface GatewayGuildAuditLogEntryCreateDispatchData extends APIAuditLogEntry { - /** - * ID of the guild - */ - guild_id: Snowflake; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#message-poll-vote-add - */ -export type GatewayMessagePollVoteAddDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-poll-vote-remove - */ -export type GatewayMessagePollVoteRemoveDispatch = DataPayload; -export interface GatewayMessagePollVoteDispatchData { - /** - * ID of the user - */ - user_id: Snowflake; - /** - * ID of the channel - */ - channel_id: Snowflake; - /** - * ID of the message - */ - message_id: Snowflake; - /** - * ID of the guild - */ - guild_id?: Snowflake; - /** - * ID of the answer - */ - answer_id: number; -} -/** - * https://discord.com/developers/docs/topics/gateway#sending-heartbeats - */ -export interface GatewayHeartbeat { - op: GatewayOpcodes.Heartbeat; - d: GatewayHeartbeatData; -} -/** - * https://discord.com/developers/docs/topics/gateway#sending-heartbeats - */ -export type GatewayHeartbeatData = number | null; -/** - * https://discord.com/developers/docs/topics/gateway-events#identify - */ -export interface GatewayIdentify { - op: GatewayOpcodes.Identify; - d: GatewayIdentifyData; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#identify - */ -export interface GatewayIdentifyData { - /** - * Authentication token - */ - token: string; - /** - * Connection properties - * - * See https://discord.com/developers/docs/topics/gateway-events#identify-identify-connection-properties - */ - properties: GatewayIdentifyProperties; - /** - * Whether this connection supports compression of packets - * - * @default false - */ - compress?: boolean; - /** - * Value between 50 and 250, total number of members where the gateway will stop sending - * offline members in the guild member list - * - * @default 50 - */ - large_threshold?: number; - /** - * Used for Guild Sharding - * - * See https://discord.com/developers/docs/topics/gateway#sharding - */ - shard?: [shard_id: number, shard_count: number]; - /** - * Presence structure for initial presence information - * - * See https://discord.com/developers/docs/topics/gateway-events#update-presence - */ - presence?: GatewayPresenceUpdateData; - /** - * The Gateway Intents you wish to receive - * - * See https://discord.com/developers/docs/topics/gateway#gateway-intents - */ - intents: number; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#identify-identify-connection-properties - */ -export interface GatewayIdentifyProperties { - /** - * Your operating system - */ - os: string; - /** - * Your library name - */ - browser: string; - /** - * Your library name - */ - device: string; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#resume - */ -export interface GatewayResume { - op: GatewayOpcodes.Resume; - d: GatewayResumeData; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#resume - */ -export interface GatewayResumeData { - /** - * Session token - */ - token: string; - /** - * Session id - */ - session_id: string; - /** - * Last sequence number received - */ - seq: number; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#request-guild-members - */ -export interface GatewayRequestGuildMembers { - op: GatewayOpcodes.RequestGuildMembers; - d: GatewayRequestGuildMembersData; -} -export interface GatewayRequestGuildMembersDataBase { - /** - * ID of the guild to get members for - */ - guild_id: Snowflake; - /** - * Used to specify if we want the presences of the matched members - */ - presences?: boolean; - /** - * Nonce to identify the Guild Members Chunk response - * - * Nonce can only be up to 32 bytes. If you send an invalid nonce it will be ignored and the reply member_chunk(s) will not have a `nonce` set. - * - * See https://discord.com/developers/docs/topics/gateway-events#guild-members-chunk - */ - nonce?: string; -} -export interface GatewayRequestGuildMembersDataWithUserIds extends GatewayRequestGuildMembersDataBase { - /** - * Used to specify which users you wish to fetch - */ - user_ids: Snowflake | Snowflake[]; -} -export interface GatewayRequestGuildMembersDataWithQuery extends GatewayRequestGuildMembersDataBase { - /** - * String that username starts with, or an empty string to return all members - */ - query: string; - /** - * Maximum number of members to send matching the `query`; - * a limit of `0` can be used with an empty string `query` to return all members - */ - limit: number; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#request-guild-members - */ -export type GatewayRequestGuildMembersData = GatewayRequestGuildMembersDataWithQuery | GatewayRequestGuildMembersDataWithUserIds; -/** - * https://discord.com/developers/docs/topics/gateway-events#update-voice-state - */ -export interface GatewayVoiceStateUpdate { - op: GatewayOpcodes.VoiceStateUpdate; - d: GatewayVoiceStateUpdateData; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#update-voice-state - */ -export interface GatewayVoiceStateUpdateData { - /** - * ID of the guild - */ - guild_id: Snowflake; - /** - * ID of the voice channel client wants to join (`null` if disconnecting) - */ - channel_id: Snowflake | null; - /** - * Is the client muted - */ - self_mute: boolean; - /** - * Is the client deafened - */ - self_deaf: boolean; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#update-presence - */ -export interface GatewayUpdatePresence { - op: GatewayOpcodes.PresenceUpdate; - d: GatewayPresenceUpdateData; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#update-presence-gateway-presence-update-structure - */ -export interface GatewayPresenceUpdateData { - /** - * Unix time (in milliseconds) of when the client went idle, or `null` if the client is not idle - */ - since: number | null; - /** - * The user's activities - * - * See https://discord.com/developers/docs/topics/gateway-events#activity-object - */ - activities: GatewayActivityUpdateData[]; - /** - * The user's new status - * - * See https://discord.com/developers/docs/topics/gateway-events#update-presence-status-types - */ - status: PresenceUpdateStatus; - /** - * Whether or not the client is afk - */ - afk: boolean; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-structure - */ -export type GatewayActivityUpdateData = Pick; -interface BasePayload { - /** - * Opcode for the payload - */ - op: GatewayOpcodes; - /** - * Event data - */ - d?: unknown; - /** - * Sequence number, used for resuming sessions and heartbeats - */ - s: number; - /** - * The event name for this payload - */ - t?: string; -} -type NonDispatchPayload = Omit & { - t: null; - s: null; -}; -interface DataPayload extends BasePayload { - op: GatewayOpcodes.Dispatch; - t: Event; - d: D; -} -type ReactionData = DataPayload>; -interface MessageReactionRemoveData { - /** - * The id of the channel - */ - channel_id: Snowflake; - /** - * The id of the message - */ - message_id: Snowflake; - /** - * The id of the guild - */ - guild_id?: Snowflake; -} -//# sourceMappingURL=v10.d.ts.map \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v10.d.ts.map b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v10.d.ts.map deleted file mode 100644 index 0fe2960..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v10.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"v10.d.ts","sourceRoot":"","sources":["v10.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v10.js b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v10.js deleted file mode 100644 index a9b16d1..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v10.js +++ /dev/null @@ -1,261 +0,0 @@ -"use strict"; -/** - * Types extracted from https://discord.com/developers/docs/topics/gateway - */ -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.GatewayDispatchEvents = exports.GatewayIntentBits = exports.GatewayCloseCodes = exports.GatewayOpcodes = exports.GatewayVersion = void 0; -__exportStar(require("./common"), exports); -exports.GatewayVersion = '10'; -/** - * https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-opcodes - */ -var GatewayOpcodes; -(function (GatewayOpcodes) { - /** - * An event was dispatched - */ - GatewayOpcodes[GatewayOpcodes["Dispatch"] = 0] = "Dispatch"; - /** - * A bidirectional opcode to maintain an active gateway connection. - * Fired periodically by the client, or fired by the gateway to request an immediate heartbeat from the client. - */ - GatewayOpcodes[GatewayOpcodes["Heartbeat"] = 1] = "Heartbeat"; - /** - * Starts a new session during the initial handshake - */ - GatewayOpcodes[GatewayOpcodes["Identify"] = 2] = "Identify"; - /** - * Update the client's presence - */ - GatewayOpcodes[GatewayOpcodes["PresenceUpdate"] = 3] = "PresenceUpdate"; - /** - * Used to join/leave or move between voice channels - */ - GatewayOpcodes[GatewayOpcodes["VoiceStateUpdate"] = 4] = "VoiceStateUpdate"; - /** - * Resume a previous session that was disconnected - */ - GatewayOpcodes[GatewayOpcodes["Resume"] = 6] = "Resume"; - /** - * You should attempt to reconnect and resume immediately - */ - GatewayOpcodes[GatewayOpcodes["Reconnect"] = 7] = "Reconnect"; - /** - * Request information about offline guild members in a large guild - */ - GatewayOpcodes[GatewayOpcodes["RequestGuildMembers"] = 8] = "RequestGuildMembers"; - /** - * The session has been invalidated. You should reconnect and identify/resume accordingly - */ - GatewayOpcodes[GatewayOpcodes["InvalidSession"] = 9] = "InvalidSession"; - /** - * Sent immediately after connecting, contains the `heartbeat_interval` to use - */ - GatewayOpcodes[GatewayOpcodes["Hello"] = 10] = "Hello"; - /** - * Sent in response to receiving a heartbeat to acknowledge that it has been received - */ - GatewayOpcodes[GatewayOpcodes["HeartbeatAck"] = 11] = "HeartbeatAck"; -})(GatewayOpcodes || (exports.GatewayOpcodes = GatewayOpcodes = {})); -/** - * https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-close-event-codes - */ -var GatewayCloseCodes; -(function (GatewayCloseCodes) { - /** - * We're not sure what went wrong. Try reconnecting? - */ - GatewayCloseCodes[GatewayCloseCodes["UnknownError"] = 4000] = "UnknownError"; - /** - * You sent an invalid Gateway opcode or an invalid payload for an opcode. Don't do that! - * - * See https://discord.com/developers/docs/topics/gateway-events#payload-structure - */ - GatewayCloseCodes[GatewayCloseCodes["UnknownOpcode"] = 4001] = "UnknownOpcode"; - /** - * You sent an invalid payload to us. Don't do that! - * - * See https://discord.com/developers/docs/topics/gateway#sending-events - */ - GatewayCloseCodes[GatewayCloseCodes["DecodeError"] = 4002] = "DecodeError"; - /** - * You sent us a payload prior to identifying - * - * See https://discord.com/developers/docs/topics/gateway-events#identify - */ - GatewayCloseCodes[GatewayCloseCodes["NotAuthenticated"] = 4003] = "NotAuthenticated"; - /** - * The account token sent with your identify payload is incorrect - * - * See https://discord.com/developers/docs/topics/gateway-events#identify - */ - GatewayCloseCodes[GatewayCloseCodes["AuthenticationFailed"] = 4004] = "AuthenticationFailed"; - /** - * You sent more than one identify payload. Don't do that! - */ - GatewayCloseCodes[GatewayCloseCodes["AlreadyAuthenticated"] = 4005] = "AlreadyAuthenticated"; - /** - * The sequence sent when resuming the session was invalid. Reconnect and start a new session - * - * See https://discord.com/developers/docs/topics/gateway-events#resume - */ - GatewayCloseCodes[GatewayCloseCodes["InvalidSeq"] = 4007] = "InvalidSeq"; - /** - * Woah nelly! You're sending payloads to us too quickly. Slow it down! You will be disconnected on receiving this - */ - GatewayCloseCodes[GatewayCloseCodes["RateLimited"] = 4008] = "RateLimited"; - /** - * Your session timed out. Reconnect and start a new one - */ - GatewayCloseCodes[GatewayCloseCodes["SessionTimedOut"] = 4009] = "SessionTimedOut"; - /** - * You sent us an invalid shard when identifying - * - * See https://discord.com/developers/docs/topics/gateway#sharding - */ - GatewayCloseCodes[GatewayCloseCodes["InvalidShard"] = 4010] = "InvalidShard"; - /** - * The session would have handled too many guilds - you are required to shard your connection in order to connect - * - * See https://discord.com/developers/docs/topics/gateway#sharding - */ - GatewayCloseCodes[GatewayCloseCodes["ShardingRequired"] = 4011] = "ShardingRequired"; - /** - * You sent an invalid version for the gateway - */ - GatewayCloseCodes[GatewayCloseCodes["InvalidAPIVersion"] = 4012] = "InvalidAPIVersion"; - /** - * You sent an invalid intent for a Gateway Intent. You may have incorrectly calculated the bitwise value - * - * See https://discord.com/developers/docs/topics/gateway#gateway-intents - */ - GatewayCloseCodes[GatewayCloseCodes["InvalidIntents"] = 4013] = "InvalidIntents"; - /** - * You sent a disallowed intent for a Gateway Intent. You may have tried to specify an intent that you have not - * enabled or are not whitelisted for - * - * See https://discord.com/developers/docs/topics/gateway#gateway-intents - * - * See https://discord.com/developers/docs/topics/gateway#privileged-intents - */ - GatewayCloseCodes[GatewayCloseCodes["DisallowedIntents"] = 4014] = "DisallowedIntents"; -})(GatewayCloseCodes || (exports.GatewayCloseCodes = GatewayCloseCodes = {})); -/** - * https://discord.com/developers/docs/topics/gateway#list-of-intents - */ -var GatewayIntentBits; -(function (GatewayIntentBits) { - GatewayIntentBits[GatewayIntentBits["Guilds"] = 1] = "Guilds"; - GatewayIntentBits[GatewayIntentBits["GuildMembers"] = 2] = "GuildMembers"; - GatewayIntentBits[GatewayIntentBits["GuildModeration"] = 4] = "GuildModeration"; - /** - * @deprecated This is the old name for {@apilink GatewayIntentBits#GuildModeration} - */ - GatewayIntentBits[GatewayIntentBits["GuildBans"] = 4] = "GuildBans"; - GatewayIntentBits[GatewayIntentBits["GuildEmojisAndStickers"] = 8] = "GuildEmojisAndStickers"; - GatewayIntentBits[GatewayIntentBits["GuildIntegrations"] = 16] = "GuildIntegrations"; - GatewayIntentBits[GatewayIntentBits["GuildWebhooks"] = 32] = "GuildWebhooks"; - GatewayIntentBits[GatewayIntentBits["GuildInvites"] = 64] = "GuildInvites"; - GatewayIntentBits[GatewayIntentBits["GuildVoiceStates"] = 128] = "GuildVoiceStates"; - GatewayIntentBits[GatewayIntentBits["GuildPresences"] = 256] = "GuildPresences"; - GatewayIntentBits[GatewayIntentBits["GuildMessages"] = 512] = "GuildMessages"; - GatewayIntentBits[GatewayIntentBits["GuildMessageReactions"] = 1024] = "GuildMessageReactions"; - GatewayIntentBits[GatewayIntentBits["GuildMessageTyping"] = 2048] = "GuildMessageTyping"; - GatewayIntentBits[GatewayIntentBits["DirectMessages"] = 4096] = "DirectMessages"; - GatewayIntentBits[GatewayIntentBits["DirectMessageReactions"] = 8192] = "DirectMessageReactions"; - GatewayIntentBits[GatewayIntentBits["DirectMessageTyping"] = 16384] = "DirectMessageTyping"; - GatewayIntentBits[GatewayIntentBits["MessageContent"] = 32768] = "MessageContent"; - GatewayIntentBits[GatewayIntentBits["GuildScheduledEvents"] = 65536] = "GuildScheduledEvents"; - GatewayIntentBits[GatewayIntentBits["AutoModerationConfiguration"] = 1048576] = "AutoModerationConfiguration"; - GatewayIntentBits[GatewayIntentBits["AutoModerationExecution"] = 2097152] = "AutoModerationExecution"; - GatewayIntentBits[GatewayIntentBits["GuildMessagePolls"] = 16777216] = "GuildMessagePolls"; - GatewayIntentBits[GatewayIntentBits["DirectMessagePolls"] = 33554432] = "DirectMessagePolls"; -})(GatewayIntentBits || (exports.GatewayIntentBits = GatewayIntentBits = {})); -/** - * https://discord.com/developers/docs/topics/gateway-events#receive-events - */ -var GatewayDispatchEvents; -(function (GatewayDispatchEvents) { - GatewayDispatchEvents["ApplicationCommandPermissionsUpdate"] = "APPLICATION_COMMAND_PERMISSIONS_UPDATE"; - GatewayDispatchEvents["ChannelCreate"] = "CHANNEL_CREATE"; - GatewayDispatchEvents["ChannelDelete"] = "CHANNEL_DELETE"; - GatewayDispatchEvents["ChannelPinsUpdate"] = "CHANNEL_PINS_UPDATE"; - GatewayDispatchEvents["ChannelUpdate"] = "CHANNEL_UPDATE"; - GatewayDispatchEvents["GuildBanAdd"] = "GUILD_BAN_ADD"; - GatewayDispatchEvents["GuildBanRemove"] = "GUILD_BAN_REMOVE"; - GatewayDispatchEvents["GuildCreate"] = "GUILD_CREATE"; - GatewayDispatchEvents["GuildDelete"] = "GUILD_DELETE"; - GatewayDispatchEvents["GuildEmojisUpdate"] = "GUILD_EMOJIS_UPDATE"; - GatewayDispatchEvents["GuildIntegrationsUpdate"] = "GUILD_INTEGRATIONS_UPDATE"; - GatewayDispatchEvents["GuildMemberAdd"] = "GUILD_MEMBER_ADD"; - GatewayDispatchEvents["GuildMemberRemove"] = "GUILD_MEMBER_REMOVE"; - GatewayDispatchEvents["GuildMembersChunk"] = "GUILD_MEMBERS_CHUNK"; - GatewayDispatchEvents["GuildMemberUpdate"] = "GUILD_MEMBER_UPDATE"; - GatewayDispatchEvents["GuildRoleCreate"] = "GUILD_ROLE_CREATE"; - GatewayDispatchEvents["GuildRoleDelete"] = "GUILD_ROLE_DELETE"; - GatewayDispatchEvents["GuildRoleUpdate"] = "GUILD_ROLE_UPDATE"; - GatewayDispatchEvents["GuildStickersUpdate"] = "GUILD_STICKERS_UPDATE"; - GatewayDispatchEvents["GuildUpdate"] = "GUILD_UPDATE"; - GatewayDispatchEvents["IntegrationCreate"] = "INTEGRATION_CREATE"; - GatewayDispatchEvents["IntegrationDelete"] = "INTEGRATION_DELETE"; - GatewayDispatchEvents["IntegrationUpdate"] = "INTEGRATION_UPDATE"; - GatewayDispatchEvents["InteractionCreate"] = "INTERACTION_CREATE"; - GatewayDispatchEvents["InviteCreate"] = "INVITE_CREATE"; - GatewayDispatchEvents["InviteDelete"] = "INVITE_DELETE"; - GatewayDispatchEvents["MessageCreate"] = "MESSAGE_CREATE"; - GatewayDispatchEvents["MessageDelete"] = "MESSAGE_DELETE"; - GatewayDispatchEvents["MessageDeleteBulk"] = "MESSAGE_DELETE_BULK"; - GatewayDispatchEvents["MessageReactionAdd"] = "MESSAGE_REACTION_ADD"; - GatewayDispatchEvents["MessageReactionRemove"] = "MESSAGE_REACTION_REMOVE"; - GatewayDispatchEvents["MessageReactionRemoveAll"] = "MESSAGE_REACTION_REMOVE_ALL"; - GatewayDispatchEvents["MessageReactionRemoveEmoji"] = "MESSAGE_REACTION_REMOVE_EMOJI"; - GatewayDispatchEvents["MessageUpdate"] = "MESSAGE_UPDATE"; - GatewayDispatchEvents["PresenceUpdate"] = "PRESENCE_UPDATE"; - GatewayDispatchEvents["StageInstanceCreate"] = "STAGE_INSTANCE_CREATE"; - GatewayDispatchEvents["StageInstanceDelete"] = "STAGE_INSTANCE_DELETE"; - GatewayDispatchEvents["StageInstanceUpdate"] = "STAGE_INSTANCE_UPDATE"; - GatewayDispatchEvents["Ready"] = "READY"; - GatewayDispatchEvents["Resumed"] = "RESUMED"; - GatewayDispatchEvents["ThreadCreate"] = "THREAD_CREATE"; - GatewayDispatchEvents["ThreadDelete"] = "THREAD_DELETE"; - GatewayDispatchEvents["ThreadListSync"] = "THREAD_LIST_SYNC"; - GatewayDispatchEvents["ThreadMembersUpdate"] = "THREAD_MEMBERS_UPDATE"; - GatewayDispatchEvents["ThreadMemberUpdate"] = "THREAD_MEMBER_UPDATE"; - GatewayDispatchEvents["ThreadUpdate"] = "THREAD_UPDATE"; - GatewayDispatchEvents["TypingStart"] = "TYPING_START"; - GatewayDispatchEvents["UserUpdate"] = "USER_UPDATE"; - GatewayDispatchEvents["VoiceServerUpdate"] = "VOICE_SERVER_UPDATE"; - GatewayDispatchEvents["VoiceStateUpdate"] = "VOICE_STATE_UPDATE"; - GatewayDispatchEvents["WebhooksUpdate"] = "WEBHOOKS_UPDATE"; - GatewayDispatchEvents["MessagePollVoteAdd"] = "MESSAGE_POLL_VOTE_ADD"; - GatewayDispatchEvents["MessagePollVoteRemove"] = "MESSAGE_POLL_VOTE_REMOVE"; - GatewayDispatchEvents["GuildScheduledEventCreate"] = "GUILD_SCHEDULED_EVENT_CREATE"; - GatewayDispatchEvents["GuildScheduledEventUpdate"] = "GUILD_SCHEDULED_EVENT_UPDATE"; - GatewayDispatchEvents["GuildScheduledEventDelete"] = "GUILD_SCHEDULED_EVENT_DELETE"; - GatewayDispatchEvents["GuildScheduledEventUserAdd"] = "GUILD_SCHEDULED_EVENT_USER_ADD"; - GatewayDispatchEvents["GuildScheduledEventUserRemove"] = "GUILD_SCHEDULED_EVENT_USER_REMOVE"; - GatewayDispatchEvents["AutoModerationRuleCreate"] = "AUTO_MODERATION_RULE_CREATE"; - GatewayDispatchEvents["AutoModerationRuleUpdate"] = "AUTO_MODERATION_RULE_UPDATE"; - GatewayDispatchEvents["AutoModerationRuleDelete"] = "AUTO_MODERATION_RULE_DELETE"; - GatewayDispatchEvents["AutoModerationActionExecution"] = "AUTO_MODERATION_ACTION_EXECUTION"; - GatewayDispatchEvents["GuildAuditLogEntryCreate"] = "GUILD_AUDIT_LOG_ENTRY_CREATE"; - GatewayDispatchEvents["EntitlementCreate"] = "ENTITLEMENT_CREATE"; - GatewayDispatchEvents["EntitlementUpdate"] = "ENTITLEMENT_UPDATE"; - GatewayDispatchEvents["EntitlementDelete"] = "ENTITLEMENT_DELETE"; -})(GatewayDispatchEvents || (exports.GatewayDispatchEvents = GatewayDispatchEvents = {})); -// #endregion Shared -//# sourceMappingURL=v10.js.map \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v10.js.map b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v10.js.map deleted file mode 100644 index 7168345..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v10.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"v10.js","sourceRoot":"","sources":["v10.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v10.mjs b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v10.mjs deleted file mode 100644 index 0ee554f..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v10.mjs +++ /dev/null @@ -1,8 +0,0 @@ -import mod from "./v10.js"; - -export default mod; -export const GatewayCloseCodes = mod.GatewayCloseCodes; -export const GatewayDispatchEvents = mod.GatewayDispatchEvents; -export const GatewayIntentBits = mod.GatewayIntentBits; -export const GatewayOpcodes = mod.GatewayOpcodes; -export const GatewayVersion = mod.GatewayVersion; diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v6.d.ts b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v6.d.ts deleted file mode 100644 index cfc6a3b..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v6.d.ts +++ /dev/null @@ -1,658 +0,0 @@ -/** - * Types extracted from https://discord.com/developers/docs/topics/gateway - */ -import type { APIChannel, APIEmoji, APIGuild, APIGuildMember, APIMessage, APIRole, APIUnavailableGuild, APIUser, GatewayActivity, GatewayPresenceUpdate as RawGatewayPresenceUpdate, GatewayVoiceState, InviteTargetUserType, PresenceUpdateStatus } from '../payloads/v6/index'; -export * from './common'; -/** - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export declare const GatewayVersion = "6"; -/** - * https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-opcodes - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export declare enum GatewayOPCodes { - Dispatch = 0, - Heartbeat = 1, - Identify = 2, - PresenceUpdate = 3, - VoiceStateUpdate = 4, - Resume = 6, - Reconnect = 7, - RequestGuildMembers = 8, - InvalidSession = 9, - Hello = 10, - HeartbeatAck = 11 -} -/** - * https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-close-event-codes - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export declare enum GatewayCloseCodes { - UnknownError = 4000, - UnknownOpCode = 4001, - DecodeError = 4002, - NotAuthenticated = 4003, - AuthenticationFailed = 4004, - AlreadyAuthenticated = 4005, - InvalidSeq = 4007, - RateLimited = 4008, - SessionTimedOut = 4009, - InvalidShard = 4010, - ShardingRequired = 4011, - InvalidAPIVersion = 4012, - InvalidIntents = 4013, - DisallowedIntents = 4014 -} -/** - * https://discord.com/developers/docs/topics/opcodes-and-status-codes#voice-voice-opcodes - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export declare enum VoiceOPCodes { - Identify = 0, - SelectProtocol = 1, - Ready = 2, - Heartbeat = 3, - SessionDescription = 4, - Speaking = 5, - HeartbeatAck = 6, - Resume = 7, - Hello = 8, - Resumed = 9, - ClientDisconnect = 13 -} -/** - * https://discord.com/developers/docs/topics/opcodes-and-status-codes#voice-voice-close-event-codes - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export declare enum VoiceCloseCodes { - UnknownOpCode = 4001, - NotAuthenticated = 4003, - AuthenticationFailed = 4004, - AlreadyAuthenticated = 4005, - SessionNoLongerValid = 4006, - SessionTimeout = 4009, - ServerNotFound = 4011, - UnknownProtocol = 4012, - Disconnected = 4014, - VoiceServerCrashed = 4015, - UnknownEncryptionMode = 4016 -} -/** - * https://discord.com/developers/docs/topics/gateway#list-of-intents - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export declare enum GatewayIntentBits { - GUILDS = 1, - GUILD_MEMBERS = 2, - GUILD_BANS = 4, - GUILD_EMOJIS = 8, - GUILD_INTEGRATIONS = 16, - GUILD_WEBHOOKS = 32, - GUILD_INVITES = 64, - GUILD_VOICE_STATES = 128, - GUILD_PRESENCES = 256, - GUILD_MESSAGES = 512, - GUILD_MESSAGE_REACTIONS = 1024, - GUILD_MESSAGE_TYPING = 2048, - DIRECT_MESSAGES = 4096, - DIRECT_MESSAGE_REACTIONS = 8192, - DIRECT_MESSAGE_TYPING = 16384 -} -/** - * https://discord.com/developers/docs/topics/gateway#commands-and-events-gateway-events - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export declare enum GatewayDispatchEvents { - Ready = "READY", - Resumed = "RESUMED", - ChannelCreate = "CHANNEL_CREATE", - ChannelUpdate = "CHANNEL_UPDATE", - ChannelDelete = "CHANNEL_DELETE", - ChannelPinsUpdate = "CHANNEL_PINS_UPDATE", - GuildCreate = "GUILD_CREATE", - GuildUpdate = "GUILD_UPDATE", - GuildDelete = "GUILD_DELETE", - GuildBanAdd = "GUILD_BAN_ADD", - GuildBanRemove = "GUILD_BAN_REMOVE", - GuildEmojisUpdate = "GUILD_EMOJIS_UPDATE", - GuildIntegrationsUpdate = "GUILD_INTEGRATIONS_UPDATE", - GuildMemberAdd = "GUILD_MEMBER_ADD", - GuildMemberRemove = "GUILD_MEMBER_REMOVE", - GuildMemberUpdate = "GUILD_MEMBER_UPDATE", - GuildMembersChunk = "GUILD_MEMBERS_CHUNK", - GuildRoleCreate = "GUILD_ROLE_CREATE", - GuildRoleUpdate = "GUILD_ROLE_UPDATE", - GuildRoleDelete = "GUILD_ROLE_DELETE", - InviteCreate = "INVITE_CREATE", - InviteDelete = "INVITE_DELETE", - MessageCreate = "MESSAGE_CREATE", - MessageUpdate = "MESSAGE_UPDATE", - MessageDelete = "MESSAGE_DELETE", - MessageDeleteBulk = "MESSAGE_DELETE_BULK", - MessageReactionAdd = "MESSAGE_REACTION_ADD", - MessageReactionRemove = "MESSAGE_REACTION_REMOVE", - MessageReactionRemoveAll = "MESSAGE_REACTION_REMOVE_ALL", - MessageReactionRemoveEmoji = "MESSAGE_REACTION_REMOVE_EMOJI", - PresenceUpdate = "PRESENCE_UPDATE", - TypingStart = "TYPING_START", - UserUpdate = "USER_UPDATE", - VoiceStateUpdate = "VOICE_STATE_UPDATE", - VoiceServerUpdate = "VOICE_SERVER_UPDATE", - WebhooksUpdate = "WEBHOOKS_UPDATE" -} -/** - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewaySendPayload = GatewayHeartbeat | GatewayIdentify | GatewayRequestGuildMembers | GatewayResume | GatewayUpdatePresence | GatewayVoiceStateUpdate; -/** - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayReceivePayload = GatewayDispatchPayload | GatewayHeartbeatAck | GatewayHeartbeatRequest | GatewayHello | GatewayInvalidSession | GatewayReconnect; -/** - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayDispatchPayload = GatewayChannelModifyDispatch | GatewayChannelPinsUpdateDispatch | GatewayGuildBanModifyDispatch | GatewayGuildDeleteDispatch | GatewayGuildEmojisUpdateDispatch | GatewayGuildIntegrationsUpdateDispatch | GatewayGuildMemberAddDispatch | GatewayGuildMemberRemoveDispatch | GatewayGuildMembersChunkDispatch | GatewayGuildMemberUpdateDispatch | GatewayGuildModifyDispatch | GatewayGuildRoleDeleteDispatch | GatewayGuildRoleModifyDispatch | GatewayInviteCreateDispatch | GatewayInviteDeleteDispatch | GatewayMessageCreateDispatch | GatewayMessageDeleteBulkDispatch | GatewayMessageDeleteDispatch | GatewayMessageReactionAddDispatch | GatewayMessageReactionRemoveAllDispatch | GatewayMessageReactionRemoveDispatch | GatewayMessageReactionRemoveEmojiDispatch | GatewayMessageUpdateDispatch | GatewayPresenceUpdateDispatch | GatewayReadyDispatch | GatewayResumedDispatch | GatewayTypingStartDispatch | GatewayUserUpdateDispatch | GatewayVoiceServerUpdateDispatch | GatewayVoiceStateUpdateDispatch | GatewayWebhooksUpdateDispatch; -/** - * https://discord.com/developers/docs/topics/gateway#hello - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export interface GatewayHello extends NonDispatchPayload { - op: GatewayOPCodes.Hello; - d: { - heartbeat_interval: number; - }; -} -/** - * https://discord.com/developers/docs/topics/gateway#heartbeating - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export interface GatewayHeartbeatRequest extends NonDispatchPayload { - op: GatewayOPCodes.Heartbeat; - d: never; -} -/** - * https://discord.com/developers/docs/topics/gateway#heartbeating-example-gateway-heartbeat-ack - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export interface GatewayHeartbeatAck extends NonDispatchPayload { - op: GatewayOPCodes.HeartbeatAck; - d: never; -} -/** - * https://discord.com/developers/docs/topics/gateway#invalid-session - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export interface GatewayInvalidSession extends NonDispatchPayload { - op: GatewayOPCodes.InvalidSession; - d: boolean; -} -/** - * https://discord.com/developers/docs/topics/gateway#reconnect - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export interface GatewayReconnect extends NonDispatchPayload { - op: GatewayOPCodes.Reconnect; - d: never; -} -/** - * https://discord.com/developers/docs/topics/gateway#ready - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayReadyDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#resumed - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayResumedDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#channel-create - * https://discord.com/developers/docs/topics/gateway#channel-update - * https://discord.com/developers/docs/topics/gateway#channel-delete - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayChannelModifyDispatch = DataPayload; -/** - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayChannelCreateDispatch = GatewayChannelModifyDispatch; -/** - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayChannelUpdateDispatch = GatewayChannelModifyDispatch; -/** - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayChannelDeleteDispatch = GatewayChannelModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway#channel-pins-update - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayChannelPinsUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#guild-create - * https://discord.com/developers/docs/topics/gateway#guild-update - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayGuildModifyDispatch = DataPayload; -/** - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayGuildCreateDispatch = GatewayGuildModifyDispatch; -/** - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayGuildUpdateDispatch = GatewayGuildModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway#guild-delete - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayGuildDeleteDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#guild-ban-add - * https://discord.com/developers/docs/topics/gateway#guild-ban-remove - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayGuildBanModifyDispatch = DataPayload; -/** - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayGuildBanAddDispatch = GatewayGuildBanModifyDispatch; -/** - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayGuildBanRemoveDispatch = GatewayGuildBanModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway#guild-emojis-update - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayGuildEmojisUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#guild-integrations-update - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayGuildIntegrationsUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#guild-member-add - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayGuildMemberAddDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#guild-member-remove - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayGuildMemberRemoveDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#guild-member-update - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayGuildMemberUpdateDispatch = DataPayload & { - guild_id: string; -}>; -/** - * https://discord.com/developers/docs/topics/gateway#guild-members-chunk - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayGuildMembersChunkDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#guild-role-create - * https://discord.com/developers/docs/topics/gateway#guild-role-update - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayGuildRoleModifyDispatch = DataPayload; -/** - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayGuildRoleCreateDispatch = GatewayGuildRoleModifyDispatch; -/** - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayGuildRoleUpdateDispatch = GatewayGuildRoleModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway#guild-role-delete - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayGuildRoleDeleteDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#invite-create - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayInviteCreateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#invite-delete - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayInviteDeleteDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#message-create - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayMessageCreateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#message-update - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayMessageUpdateDispatch = DataPayload & { - id: string; - channel_id: string; -}>; -/** - * https://discord.com/developers/docs/topics/gateway#message-delete - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayMessageDeleteDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#message-delete-bulk - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayMessageDeleteBulkDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#message-reaction-add - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayMessageReactionAddDispatch = ReactionData; -/** - * https://discord.com/developers/docs/topics/gateway#message-reaction-remove - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayMessageReactionRemoveDispatch = ReactionData; -/** - * https://discord.com/developers/docs/topics/gateway#message-reaction-remove-all - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayMessageReactionRemoveAllDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#message-reaction-remove-emoji - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayMessageReactionRemoveEmojiDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#presence-update - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayPresenceUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#typing-start - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayTypingStartDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#user-update - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayUserUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#voice-state-update - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayVoiceStateUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#voice-server-update - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayVoiceServerUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#webhooks-update - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export type GatewayWebhooksUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#heartbeating - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export interface GatewayHeartbeat { - op: GatewayOPCodes.Heartbeat; - d: number; -} -/** - * https://discord.com/developers/docs/topics/gateway#identify-identify-connection-properties - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export interface GatewayIdentifyProperties { - $os: string; - $browser: string; - $device: string; -} -/** - * https://discord.com/developers/docs/topics/gateway#identify - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export interface GatewayIdentify { - op: GatewayOPCodes.Identify; - d: { - token: string; - properties: GatewayIdentifyProperties; - compress?: boolean; - large_threshold?: number; - shard?: [shard_id: number, shard_count: number]; - presence?: RawGatewayPresenceUpdate; - guild_subscriptions?: boolean; - intents?: number; - }; -} -/** - * https://discord.com/developers/docs/topics/gateway#resume - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export interface GatewayResume { - op: GatewayOPCodes.Resume; - d: { - token: string; - session_id: string; - seq: number; - }; -} -/** - * https://discord.com/developers/docs/topics/gateway#request-guild-members - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export interface GatewayRequestGuildMembers { - op: GatewayOPCodes.RequestGuildMembers; - d: { - guild_id: string[] | string; - query?: string; - limit: number; - presences?: boolean; - user_ids?: string[] | string; - nonce?: string; - }; -} -/** - * https://discord.com/developers/docs/topics/gateway#update-voice-state - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export interface GatewayVoiceStateUpdate { - op: GatewayOPCodes.VoiceStateUpdate; - d: { - guild_id: string; - channel_id: string | null; - self_mute: boolean; - self_deaf: boolean; - }; -} -/** - * https://discord.com/developers/docs/topics/gateway#update-status - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export interface GatewayUpdatePresence { - op: GatewayOPCodes.PresenceUpdate; - d: GatewayPresenceUpdateData; -} -/** - * https://discord.com/developers/docs/topics/gateway#update-status-gateway-status-update-structure - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -export interface GatewayPresenceUpdateData { - since: number | null; - game: GatewayActivity | null; - status: PresenceUpdateStatus; - afk: boolean; -} -/** - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -interface BasePayload { - op: GatewayOPCodes; - s: number; - d?: unknown; - t?: string; -} -/** - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -type NonDispatchPayload = Omit; -/** - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -interface DataPayload extends BasePayload { - op: GatewayOPCodes.Dispatch; - t: Event; - d: D; -} -/** - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -type ReactionData = DataPayload>; -/** - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -interface MessageReactionRemoveData { - channel_id: string; - message_id: string; - guild_id?: string; -} -//# sourceMappingURL=v6.d.ts.map \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v6.d.ts.map b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v6.d.ts.map deleted file mode 100644 index f1a644e..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v6.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"v6.d.ts","sourceRoot":"","sources":["v6.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACX,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,UAAU,EACV,OAAO,EACP,mBAAmB,EACnB,OAAO,EACP,eAAe,EACf,qBAAqB,IAAI,wBAAwB,EACjD,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,MAAM,sBAAsB,CAAC;AAE9B,cAAc,UAAU,CAAC;AAEzB;;GAEG;AACH,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC;;;;GAIG;AACH,oBAAY,cAAc;IACzB,QAAQ,IAAA;IACR,SAAS,IAAA;IACT,QAAQ,IAAA;IACR,cAAc,IAAA;IACd,gBAAgB,IAAA;IAEhB,MAAM,IAAI;IACV,SAAS,IAAA;IACT,mBAAmB,IAAA;IACnB,cAAc,IAAA;IACd,KAAK,KAAA;IACL,YAAY,KAAA;CACZ;AAED;;;;GAIG;AACH,oBAAY,iBAAiB;IAC5B,YAAY,OAAQ;IACpB,aAAa,OAAA;IACb,WAAW,OAAA;IACX,gBAAgB,OAAA;IAChB,oBAAoB,OAAA;IACpB,oBAAoB,OAAA;IAEpB,UAAU,OAAQ;IAClB,WAAW,OAAA;IACX,eAAe,OAAA;IACf,YAAY,OAAA;IACZ,gBAAgB,OAAA;IAChB,iBAAiB,OAAA;IACjB,cAAc,OAAA;IACd,iBAAiB,OAAA;CACjB;AAED;;;;GAIG;AACH,oBAAY,YAAY;IACvB,QAAQ,IAAA;IACR,cAAc,IAAA;IACd,KAAK,IAAA;IACL,SAAS,IAAA;IACT,kBAAkB,IAAA;IAClB,QAAQ,IAAA;IACR,YAAY,IAAA;IACZ,MAAM,IAAA;IACN,KAAK,IAAA;IACL,OAAO,IAAA;IAEP,gBAAgB,KAAK;CACrB;AAED;;;;GAIG;AACH,oBAAY,eAAe;IAC1B,aAAa,OAAQ;IAErB,gBAAgB,OAAQ;IACxB,oBAAoB,OAAA;IACpB,oBAAoB,OAAA;IACpB,oBAAoB,OAAA;IAEpB,cAAc,OAAQ;IAEtB,cAAc,OAAQ;IACtB,eAAe,OAAA;IAEf,YAAY,OAAQ;IACpB,kBAAkB,OAAA;IAClB,qBAAqB,OAAA;CACrB;AAED;;;;GAIG;AACH,oBAAY,iBAAiB;IAC5B,MAAM,IAAS;IACf,aAAa,IAAS;IACtB,UAAU,IAAS;IACnB,YAAY,IAAS;IACrB,kBAAkB,KAAS;IAC3B,cAAc,KAAS;IACvB,aAAa,KAAS;IACtB,kBAAkB,MAAS;IAC3B,eAAe,MAAS;IACxB,cAAc,MAAS;IACvB,uBAAuB,OAAU;IACjC,oBAAoB,OAAU;IAC9B,eAAe,OAAU;IACzB,wBAAwB,OAAU;IAClC,qBAAqB,QAAU;CAC/B;AAED;;;;GAIG;AACH,oBAAY,qBAAqB;IAChC,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,aAAa,mBAAmB;IAChC,aAAa,mBAAmB;IAChC,aAAa,mBAAmB;IAChC,iBAAiB,wBAAwB;IACzC,WAAW,iBAAiB;IAC5B,WAAW,iBAAiB;IAC5B,WAAW,iBAAiB;IAC5B,WAAW,kBAAkB;IAC7B,cAAc,qBAAqB;IACnC,iBAAiB,wBAAwB;IACzC,uBAAuB,8BAA8B;IACrD,cAAc,qBAAqB;IACnC,iBAAiB,wBAAwB;IACzC,iBAAiB,wBAAwB;IACzC,iBAAiB,wBAAwB;IACzC,eAAe,sBAAsB;IACrC,eAAe,sBAAsB;IACrC,eAAe,sBAAsB;IACrC,YAAY,kBAAkB;IAC9B,YAAY,kBAAkB;IAC9B,aAAa,mBAAmB;IAChC,aAAa,mBAAmB;IAChC,aAAa,mBAAmB;IAChC,iBAAiB,wBAAwB;IACzC,kBAAkB,yBAAyB;IAC3C,qBAAqB,4BAA4B;IACjD,wBAAwB,gCAAgC;IACxD,0BAA0B,kCAAkC;IAC5D,cAAc,oBAAoB;IAClC,WAAW,iBAAiB;IAC5B,UAAU,gBAAgB;IAC1B,gBAAgB,uBAAuB;IACvC,iBAAiB,wBAAwB;IACzC,cAAc,oBAAoB;CAClC;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC3B,gBAAgB,GAChB,eAAe,GACf,0BAA0B,GAC1B,aAAa,GACb,qBAAqB,GACrB,uBAAuB,CAAC;AAE3B;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAC9B,sBAAsB,GACtB,mBAAmB,GACnB,uBAAuB,GACvB,YAAY,GACZ,qBAAqB,GACrB,gBAAgB,CAAC;AAEpB;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAC/B,4BAA4B,GAC5B,gCAAgC,GAChC,6BAA6B,GAC7B,0BAA0B,GAC1B,gCAAgC,GAChC,sCAAsC,GACtC,6BAA6B,GAC7B,gCAAgC,GAChC,gCAAgC,GAChC,gCAAgC,GAChC,0BAA0B,GAC1B,8BAA8B,GAC9B,8BAA8B,GAC9B,2BAA2B,GAC3B,2BAA2B,GAC3B,4BAA4B,GAC5B,gCAAgC,GAChC,4BAA4B,GAC5B,iCAAiC,GACjC,uCAAuC,GACvC,oCAAoC,GACpC,yCAAyC,GACzC,4BAA4B,GAC5B,6BAA6B,GAC7B,oBAAoB,GACpB,sBAAsB,GACtB,0BAA0B,GAC1B,yBAAyB,GACzB,gCAAgC,GAChC,+BAA+B,GAC/B,6BAA6B,CAAC;AAGjC;;;;GAIG;AACH,MAAM,WAAW,YAAa,SAAQ,kBAAkB;IACvD,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC;IACzB,CAAC,EAAE;QACF,kBAAkB,EAAE,MAAM,CAAC;KAC3B,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IAClE,EAAE,EAAE,cAAc,CAAC,SAAS,CAAC;IAC7B,CAAC,EAAE,KAAK,CAAC;CACT;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC9D,EAAE,EAAE,cAAc,CAAC,YAAY,CAAC;IAChC,CAAC,EAAE,KAAK,CAAC;CACT;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAChE,EAAE,EAAE,cAAc,CAAC,cAAc,CAAC;IAClC,CAAC,EAAE,OAAO,CAAC;CACX;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB;IAC3D,EAAE,EAAE,cAAc,CAAC,SAAS,CAAC;IAC7B,CAAC,EAAE,KAAK,CAAC;CACT;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAC7C,qBAAqB,CAAC,KAAK,EAC3B;IACC,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,EAAE,CAAC;IACrB,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzB,CACD,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,WAAW,CAAC,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAGvF;;;;;;GAMG;AACH,MAAM,MAAM,4BAA4B,GAAG,WAAW,CACrD,qBAAqB,CAAC,aAAa,GAAG,qBAAqB,CAAC,aAAa,GAAG,qBAAqB,CAAC,aAAa,EAC/G,UAAU,CACV,CAAC;AAGF;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,4BAA4B,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,4BAA4B,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,4BAA4B,CAAC;AAExE;;;;GAIG;AACH,MAAM,MAAM,gCAAgC,GAAG,WAAW,CACzD,qBAAqB,CAAC,iBAAiB,EACvC;IACC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B,CACD,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,0BAA0B,GAAG,WAAW,CACnD,qBAAqB,CAAC,WAAW,GAAG,qBAAqB,CAAC,WAAW,EACrE,QAAQ,CACR,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,0BAA0B,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,0BAA0B,CAAC;AAEpE;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG,WAAW,CAAC,qBAAqB,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;AAE7G;;;;;GAKG;AACH,MAAM,MAAM,6BAA6B,GAAG,WAAW,CACtD,qBAAqB,CAAC,WAAW,GAAG,qBAAqB,CAAC,cAAc,EACxE;IACC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACd,CACD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,6BAA6B,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG,6BAA6B,CAAC;AAE1E;;;;GAIG;AACH,MAAM,MAAM,gCAAgC,GAAG,WAAW,CACzD,qBAAqB,CAAC,iBAAiB,EACvC;IACC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,QAAQ,EAAE,CAAC;CACnB,CACD,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,sCAAsC,GAAG,WAAW,CAC/D,qBAAqB,CAAC,uBAAuB,EAC7C;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CACpB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,6BAA6B,GAAG,WAAW,CACtD,qBAAqB,CAAC,cAAc,EACpC,cAAc,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CACrC,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,gCAAgC,GAAG,WAAW,CACzD,qBAAqB,CAAC,iBAAiB,EACvC;IACC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACd,CACD,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,gCAAgC,GAAG,WAAW,CACzD,qBAAqB,CAAC,iBAAiB,EACvC,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG;IACvC,QAAQ,EAAE,MAAM,CAAC;CACjB,CACD,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,gCAAgC,GAAG,WAAW,CACzD,qBAAqB,CAAC,iBAAiB,EACvC;IACC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CACD,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,8BAA8B,GAAG,WAAW,CACvD,qBAAqB,CAAC,eAAe,GAAG,qBAAqB,CAAC,eAAe,EAC7E;IACC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACd,CACD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG,8BAA8B,CAAC;AAE5E;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG,8BAA8B,CAAC;AAE5E;;;;GAIG;AACH,MAAM,MAAM,8BAA8B,GAAG,WAAW,CACvD,qBAAqB,CAAC,eAAe,EACrC;IACC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CAChB,CACD,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,2BAA2B,GAAG,WAAW,CACpD,qBAAqB,CAAC,YAAY,EAClC;IACC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,CAAC,CAAC;CACR,CACD,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,2BAA2B,GAAG,WAAW,CACpD,qBAAqB,CAAC,YAAY,EAClC;IACC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACb,CACD,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,4BAA4B,GAAG,WAAW,CAAC,qBAAqB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AAExG;;;;GAIG;AACH,MAAM,MAAM,4BAA4B,GAAG,WAAW,CACrD,qBAAqB,CAAC,aAAa,EACnC,OAAO,CAAC,UAAU,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CACxD,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,4BAA4B,GAAG,WAAW,CACrD,qBAAqB,CAAC,aAAa,EACnC;IACC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CACD,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,gCAAgC,GAAG,WAAW,CACzD,qBAAqB,CAAC,iBAAiB,EACvC;IACC,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CACD,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,iCAAiC,GAAG,YAAY,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;AAEvG;;;;GAIG;AACH,MAAM,MAAM,oCAAoC,GAAG,YAAY,CAAC,qBAAqB,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;AAEvH;;;;GAIG;AACH,MAAM,MAAM,uCAAuC,GAAG,WAAW,CAChE,qBAAqB,CAAC,wBAAwB,EAC9C,yBAAyB,CACzB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,yCAAyC,GAAG,WAAW,CAClE,qBAAqB,CAAC,0BAA0B,EAChD,yBAAyB,GAAG;IAC3B,KAAK,EAAE,QAAQ,CAAC;CAChB,CACD,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,6BAA6B,GAAG,WAAW,CAAC,qBAAqB,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;AAExH;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG,WAAW,CACnD,qBAAqB,CAAC,WAAW,EACjC;IACC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,cAAc,CAAC;CACxB,CACD,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAAG,WAAW,CAAC,qBAAqB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAE/F;;;;GAIG;AACH,MAAM,MAAM,+BAA+B,GAAG,WAAW,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;AAErH;;;;GAIG;AACH,MAAM,MAAM,gCAAgC,GAAG,WAAW,CACzD,qBAAqB,CAAC,iBAAiB,EACvC;IACC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACjB,CACD,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,6BAA6B,GAAG,WAAW,CACtD,qBAAqB,CAAC,cAAc,EACpC;IACC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACnB,CACD,CAAC;AAMF;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAChC,EAAE,EAAE,cAAc,CAAC,SAAS,CAAC;IAC7B,CAAC,EAAE,MAAM,CAAC;CACV;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,cAAc,CAAC,QAAQ,CAAC;IAC5B,CAAC,EAAE;QACF,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,yBAAyB,CAAC;QACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAChD,QAAQ,CAAC,EAAE,wBAAwB,CAAC;QACpC,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,cAAc,CAAC,MAAM,CAAC;IAC1B,CAAC,EAAE;QACF,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC;KACZ,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IAC1C,EAAE,EAAE,cAAc,CAAC,mBAAmB,CAAC;IACvC,CAAC,EAAE;QACF,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACvC,EAAE,EAAE,cAAc,CAAC,gBAAgB,CAAC;IACpC,CAAC,EAAE;QACF,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;KACnB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACrC,EAAE,EAAE,cAAc,CAAC,cAAc,CAAC;IAClC,CAAC,EAAE,yBAAyB,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACzC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,GAAG,EAAE,OAAO,CAAC;CACb;AAKD;;GAEG;AACH,UAAU,WAAW;IACpB,EAAE,EAAE,cAAc,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,CAAC,EAAE,OAAO,CAAC;IACZ,CAAC,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;GAEG;AACH,KAAK,kBAAkB,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AAEjD;;GAEG;AACH,UAAU,WAAW,CAAC,KAAK,SAAS,qBAAqB,EAAE,CAAC,GAAG,OAAO,CAAE,SAAQ,WAAW;IAC1F,EAAE,EAAE,cAAc,CAAC,QAAQ,CAAC;IAC5B,CAAC,EAAE,KAAK,CAAC;IACT,CAAC,EAAE,CAAC,CAAC;CACL;AAED;;GAEG;AACH,KAAK,YAAY,CAAC,CAAC,SAAS,qBAAqB,EAAE,CAAC,SAAS,MAAM,GAAG,KAAK,IAAI,WAAW,CACzF,CAAC,EACD,IAAI,CACH;IACC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,QAAQ,CAAC;CAChB,EACD,CAAC,CACD,CACD,CAAC;AAEF;;GAEG;AACH,UAAU,yBAAyB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB"} \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v6.js b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v6.js deleted file mode 100644 index 20e2d1a..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v6.js +++ /dev/null @@ -1,173 +0,0 @@ -"use strict"; -/** - * Types extracted from https://discord.com/developers/docs/topics/gateway - */ -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.GatewayDispatchEvents = exports.GatewayIntentBits = exports.VoiceCloseCodes = exports.VoiceOPCodes = exports.GatewayCloseCodes = exports.GatewayOPCodes = exports.GatewayVersion = void 0; -__exportStar(require("./common"), exports); -/** - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -exports.GatewayVersion = '6'; -/** - * https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-opcodes - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -var GatewayOPCodes; -(function (GatewayOPCodes) { - GatewayOPCodes[GatewayOPCodes["Dispatch"] = 0] = "Dispatch"; - GatewayOPCodes[GatewayOPCodes["Heartbeat"] = 1] = "Heartbeat"; - GatewayOPCodes[GatewayOPCodes["Identify"] = 2] = "Identify"; - GatewayOPCodes[GatewayOPCodes["PresenceUpdate"] = 3] = "PresenceUpdate"; - GatewayOPCodes[GatewayOPCodes["VoiceStateUpdate"] = 4] = "VoiceStateUpdate"; - GatewayOPCodes[GatewayOPCodes["Resume"] = 6] = "Resume"; - GatewayOPCodes[GatewayOPCodes["Reconnect"] = 7] = "Reconnect"; - GatewayOPCodes[GatewayOPCodes["RequestGuildMembers"] = 8] = "RequestGuildMembers"; - GatewayOPCodes[GatewayOPCodes["InvalidSession"] = 9] = "InvalidSession"; - GatewayOPCodes[GatewayOPCodes["Hello"] = 10] = "Hello"; - GatewayOPCodes[GatewayOPCodes["HeartbeatAck"] = 11] = "HeartbeatAck"; -})(GatewayOPCodes || (exports.GatewayOPCodes = GatewayOPCodes = {})); -/** - * https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-close-event-codes - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -var GatewayCloseCodes; -(function (GatewayCloseCodes) { - GatewayCloseCodes[GatewayCloseCodes["UnknownError"] = 4000] = "UnknownError"; - GatewayCloseCodes[GatewayCloseCodes["UnknownOpCode"] = 4001] = "UnknownOpCode"; - GatewayCloseCodes[GatewayCloseCodes["DecodeError"] = 4002] = "DecodeError"; - GatewayCloseCodes[GatewayCloseCodes["NotAuthenticated"] = 4003] = "NotAuthenticated"; - GatewayCloseCodes[GatewayCloseCodes["AuthenticationFailed"] = 4004] = "AuthenticationFailed"; - GatewayCloseCodes[GatewayCloseCodes["AlreadyAuthenticated"] = 4005] = "AlreadyAuthenticated"; - GatewayCloseCodes[GatewayCloseCodes["InvalidSeq"] = 4007] = "InvalidSeq"; - GatewayCloseCodes[GatewayCloseCodes["RateLimited"] = 4008] = "RateLimited"; - GatewayCloseCodes[GatewayCloseCodes["SessionTimedOut"] = 4009] = "SessionTimedOut"; - GatewayCloseCodes[GatewayCloseCodes["InvalidShard"] = 4010] = "InvalidShard"; - GatewayCloseCodes[GatewayCloseCodes["ShardingRequired"] = 4011] = "ShardingRequired"; - GatewayCloseCodes[GatewayCloseCodes["InvalidAPIVersion"] = 4012] = "InvalidAPIVersion"; - GatewayCloseCodes[GatewayCloseCodes["InvalidIntents"] = 4013] = "InvalidIntents"; - GatewayCloseCodes[GatewayCloseCodes["DisallowedIntents"] = 4014] = "DisallowedIntents"; -})(GatewayCloseCodes || (exports.GatewayCloseCodes = GatewayCloseCodes = {})); -/** - * https://discord.com/developers/docs/topics/opcodes-and-status-codes#voice-voice-opcodes - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -var VoiceOPCodes; -(function (VoiceOPCodes) { - VoiceOPCodes[VoiceOPCodes["Identify"] = 0] = "Identify"; - VoiceOPCodes[VoiceOPCodes["SelectProtocol"] = 1] = "SelectProtocol"; - VoiceOPCodes[VoiceOPCodes["Ready"] = 2] = "Ready"; - VoiceOPCodes[VoiceOPCodes["Heartbeat"] = 3] = "Heartbeat"; - VoiceOPCodes[VoiceOPCodes["SessionDescription"] = 4] = "SessionDescription"; - VoiceOPCodes[VoiceOPCodes["Speaking"] = 5] = "Speaking"; - VoiceOPCodes[VoiceOPCodes["HeartbeatAck"] = 6] = "HeartbeatAck"; - VoiceOPCodes[VoiceOPCodes["Resume"] = 7] = "Resume"; - VoiceOPCodes[VoiceOPCodes["Hello"] = 8] = "Hello"; - VoiceOPCodes[VoiceOPCodes["Resumed"] = 9] = "Resumed"; - VoiceOPCodes[VoiceOPCodes["ClientDisconnect"] = 13] = "ClientDisconnect"; -})(VoiceOPCodes || (exports.VoiceOPCodes = VoiceOPCodes = {})); -/** - * https://discord.com/developers/docs/topics/opcodes-and-status-codes#voice-voice-close-event-codes - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -var VoiceCloseCodes; -(function (VoiceCloseCodes) { - VoiceCloseCodes[VoiceCloseCodes["UnknownOpCode"] = 4001] = "UnknownOpCode"; - VoiceCloseCodes[VoiceCloseCodes["NotAuthenticated"] = 4003] = "NotAuthenticated"; - VoiceCloseCodes[VoiceCloseCodes["AuthenticationFailed"] = 4004] = "AuthenticationFailed"; - VoiceCloseCodes[VoiceCloseCodes["AlreadyAuthenticated"] = 4005] = "AlreadyAuthenticated"; - VoiceCloseCodes[VoiceCloseCodes["SessionNoLongerValid"] = 4006] = "SessionNoLongerValid"; - VoiceCloseCodes[VoiceCloseCodes["SessionTimeout"] = 4009] = "SessionTimeout"; - VoiceCloseCodes[VoiceCloseCodes["ServerNotFound"] = 4011] = "ServerNotFound"; - VoiceCloseCodes[VoiceCloseCodes["UnknownProtocol"] = 4012] = "UnknownProtocol"; - VoiceCloseCodes[VoiceCloseCodes["Disconnected"] = 4014] = "Disconnected"; - VoiceCloseCodes[VoiceCloseCodes["VoiceServerCrashed"] = 4015] = "VoiceServerCrashed"; - VoiceCloseCodes[VoiceCloseCodes["UnknownEncryptionMode"] = 4016] = "UnknownEncryptionMode"; -})(VoiceCloseCodes || (exports.VoiceCloseCodes = VoiceCloseCodes = {})); -/** - * https://discord.com/developers/docs/topics/gateway#list-of-intents - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -var GatewayIntentBits; -(function (GatewayIntentBits) { - GatewayIntentBits[GatewayIntentBits["GUILDS"] = 1] = "GUILDS"; - GatewayIntentBits[GatewayIntentBits["GUILD_MEMBERS"] = 2] = "GUILD_MEMBERS"; - GatewayIntentBits[GatewayIntentBits["GUILD_BANS"] = 4] = "GUILD_BANS"; - GatewayIntentBits[GatewayIntentBits["GUILD_EMOJIS"] = 8] = "GUILD_EMOJIS"; - GatewayIntentBits[GatewayIntentBits["GUILD_INTEGRATIONS"] = 16] = "GUILD_INTEGRATIONS"; - GatewayIntentBits[GatewayIntentBits["GUILD_WEBHOOKS"] = 32] = "GUILD_WEBHOOKS"; - GatewayIntentBits[GatewayIntentBits["GUILD_INVITES"] = 64] = "GUILD_INVITES"; - GatewayIntentBits[GatewayIntentBits["GUILD_VOICE_STATES"] = 128] = "GUILD_VOICE_STATES"; - GatewayIntentBits[GatewayIntentBits["GUILD_PRESENCES"] = 256] = "GUILD_PRESENCES"; - GatewayIntentBits[GatewayIntentBits["GUILD_MESSAGES"] = 512] = "GUILD_MESSAGES"; - GatewayIntentBits[GatewayIntentBits["GUILD_MESSAGE_REACTIONS"] = 1024] = "GUILD_MESSAGE_REACTIONS"; - GatewayIntentBits[GatewayIntentBits["GUILD_MESSAGE_TYPING"] = 2048] = "GUILD_MESSAGE_TYPING"; - GatewayIntentBits[GatewayIntentBits["DIRECT_MESSAGES"] = 4096] = "DIRECT_MESSAGES"; - GatewayIntentBits[GatewayIntentBits["DIRECT_MESSAGE_REACTIONS"] = 8192] = "DIRECT_MESSAGE_REACTIONS"; - GatewayIntentBits[GatewayIntentBits["DIRECT_MESSAGE_TYPING"] = 16384] = "DIRECT_MESSAGE_TYPING"; -})(GatewayIntentBits || (exports.GatewayIntentBits = GatewayIntentBits = {})); -/** - * https://discord.com/developers/docs/topics/gateway#commands-and-events-gateway-events - * - * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. - */ -var GatewayDispatchEvents; -(function (GatewayDispatchEvents) { - GatewayDispatchEvents["Ready"] = "READY"; - GatewayDispatchEvents["Resumed"] = "RESUMED"; - GatewayDispatchEvents["ChannelCreate"] = "CHANNEL_CREATE"; - GatewayDispatchEvents["ChannelUpdate"] = "CHANNEL_UPDATE"; - GatewayDispatchEvents["ChannelDelete"] = "CHANNEL_DELETE"; - GatewayDispatchEvents["ChannelPinsUpdate"] = "CHANNEL_PINS_UPDATE"; - GatewayDispatchEvents["GuildCreate"] = "GUILD_CREATE"; - GatewayDispatchEvents["GuildUpdate"] = "GUILD_UPDATE"; - GatewayDispatchEvents["GuildDelete"] = "GUILD_DELETE"; - GatewayDispatchEvents["GuildBanAdd"] = "GUILD_BAN_ADD"; - GatewayDispatchEvents["GuildBanRemove"] = "GUILD_BAN_REMOVE"; - GatewayDispatchEvents["GuildEmojisUpdate"] = "GUILD_EMOJIS_UPDATE"; - GatewayDispatchEvents["GuildIntegrationsUpdate"] = "GUILD_INTEGRATIONS_UPDATE"; - GatewayDispatchEvents["GuildMemberAdd"] = "GUILD_MEMBER_ADD"; - GatewayDispatchEvents["GuildMemberRemove"] = "GUILD_MEMBER_REMOVE"; - GatewayDispatchEvents["GuildMemberUpdate"] = "GUILD_MEMBER_UPDATE"; - GatewayDispatchEvents["GuildMembersChunk"] = "GUILD_MEMBERS_CHUNK"; - GatewayDispatchEvents["GuildRoleCreate"] = "GUILD_ROLE_CREATE"; - GatewayDispatchEvents["GuildRoleUpdate"] = "GUILD_ROLE_UPDATE"; - GatewayDispatchEvents["GuildRoleDelete"] = "GUILD_ROLE_DELETE"; - GatewayDispatchEvents["InviteCreate"] = "INVITE_CREATE"; - GatewayDispatchEvents["InviteDelete"] = "INVITE_DELETE"; - GatewayDispatchEvents["MessageCreate"] = "MESSAGE_CREATE"; - GatewayDispatchEvents["MessageUpdate"] = "MESSAGE_UPDATE"; - GatewayDispatchEvents["MessageDelete"] = "MESSAGE_DELETE"; - GatewayDispatchEvents["MessageDeleteBulk"] = "MESSAGE_DELETE_BULK"; - GatewayDispatchEvents["MessageReactionAdd"] = "MESSAGE_REACTION_ADD"; - GatewayDispatchEvents["MessageReactionRemove"] = "MESSAGE_REACTION_REMOVE"; - GatewayDispatchEvents["MessageReactionRemoveAll"] = "MESSAGE_REACTION_REMOVE_ALL"; - GatewayDispatchEvents["MessageReactionRemoveEmoji"] = "MESSAGE_REACTION_REMOVE_EMOJI"; - GatewayDispatchEvents["PresenceUpdate"] = "PRESENCE_UPDATE"; - GatewayDispatchEvents["TypingStart"] = "TYPING_START"; - GatewayDispatchEvents["UserUpdate"] = "USER_UPDATE"; - GatewayDispatchEvents["VoiceStateUpdate"] = "VOICE_STATE_UPDATE"; - GatewayDispatchEvents["VoiceServerUpdate"] = "VOICE_SERVER_UPDATE"; - GatewayDispatchEvents["WebhooksUpdate"] = "WEBHOOKS_UPDATE"; -})(GatewayDispatchEvents || (exports.GatewayDispatchEvents = GatewayDispatchEvents = {})); -// #endregion Shared -//# sourceMappingURL=v6.js.map \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v6.js.map b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v6.js.map deleted file mode 100644 index c6659b4..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v6.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"v6.js","sourceRoot":"","sources":["v6.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v6.mjs b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v6.mjs deleted file mode 100644 index 848edfc..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v6.mjs +++ /dev/null @@ -1,10 +0,0 @@ -import mod from "./v6.js"; - -export default mod; -export const GatewayCloseCodes = mod.GatewayCloseCodes; -export const GatewayDispatchEvents = mod.GatewayDispatchEvents; -export const GatewayIntentBits = mod.GatewayIntentBits; -export const GatewayOPCodes = mod.GatewayOPCodes; -export const GatewayVersion = mod.GatewayVersion; -export const VoiceCloseCodes = mod.VoiceCloseCodes; -export const VoiceOPCodes = mod.VoiceOPCodes; diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v8.d.ts b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v8.d.ts deleted file mode 100644 index 43223fc..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v8.d.ts +++ /dev/null @@ -1,1575 +0,0 @@ -/** - * Types extracted from https://discord.com/developers/docs/topics/gateway - */ -import type { Snowflake } from '../globals'; -import type { APIApplication, APIChannel, APIEmoji, APIGuild, APIGuildIntegration, APIGuildMember, APIGuildScheduledEvent, APIInteraction, APIMessage, APIRole, APIStageInstance, APISticker, APIUnavailableGuild, APIUser, GatewayActivity, GatewayPresenceUpdate as RawGatewayPresenceUpdate, GatewayVoiceState, InviteTargetType, PresenceUpdateStatus } from '../payloads/v8/index'; -import type { Nullable } from '../utils/internals'; -export * from './common'; -/** - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export declare const GatewayVersion = "8"; -/** - * https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-opcodes - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export declare enum GatewayOpcodes { - /** - * An event was dispatched - */ - Dispatch = 0, - /** - * A bidirectional opcode to maintain an active gateway connection. - * Fired periodically by the client, or fired by the gateway to request an immediate heartbeat from the client. - */ - Heartbeat = 1, - /** - * Starts a new session during the initial handshake - */ - Identify = 2, - /** - * Update the client's presence - */ - PresenceUpdate = 3, - /** - * Used to join/leave or move between voice channels - */ - VoiceStateUpdate = 4, - /** - * Resume a previous session that was disconnected - */ - Resume = 6, - /** - * You should attempt to reconnect and resume immediately - */ - Reconnect = 7, - /** - * Request information about offline guild members in a large guild - */ - RequestGuildMembers = 8, - /** - * The session has been invalidated. You should reconnect and identify/resume accordingly - */ - InvalidSession = 9, - /** - * Sent immediately after connecting, contains the `heartbeat_interval` to use - */ - Hello = 10, - /** - * Sent in response to receiving a heartbeat to acknowledge that it has been received - */ - HeartbeatAck = 11 -} -/** - * https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-close-event-codes - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export declare enum GatewayCloseCodes { - /** - * We're not sure what went wrong. Try reconnecting? - */ - UnknownError = 4000, - /** - * You sent an invalid Gateway opcode or an invalid payload for an opcode. Don't do that! - * - * See https://discord.com/developers/docs/topics/gateway#payloads-and-opcodes - */ - UnknownOpcode = 4001, - /** - * You sent an invalid payload to us. Don't do that! - * - * See https://discord.com/developers/docs/topics/gateway#sending-payloads - */ - DecodeError = 4002, - /** - * You sent us a payload prior to identifying - * - * See https://discord.com/developers/docs/topics/gateway#identify - */ - NotAuthenticated = 4003, - /** - * The account token sent with your identify payload is incorrect - * - * See https://discord.com/developers/docs/topics/gateway#identify - */ - AuthenticationFailed = 4004, - /** - * You sent more than one identify payload. Don't do that! - */ - AlreadyAuthenticated = 4005, - /** - * The sequence sent when resuming the session was invalid. Reconnect and start a new session - * - * See https://discord.com/developers/docs/topics/gateway#resume - */ - InvalidSeq = 4007, - /** - * Woah nelly! You're sending payloads to us too quickly. Slow it down! You will be disconnected on receiving this - */ - RateLimited = 4008, - /** - * Your session timed out. Reconnect and start a new one - */ - SessionTimedOut = 4009, - /** - * You sent us an invalid shard when identifying - * - * See https://discord.com/developers/docs/topics/gateway#sharding - */ - InvalidShard = 4010, - /** - * The session would have handled too many guilds - you are required to shard your connection in order to connect - * - * See https://discord.com/developers/docs/topics/gateway#sharding - */ - ShardingRequired = 4011, - /** - * You sent an invalid version for the gateway - */ - InvalidAPIVersion = 4012, - /** - * You sent an invalid intent for a Gateway Intent. You may have incorrectly calculated the bitwise value - * - * See https://discord.com/developers/docs/topics/gateway#gateway-intents - */ - InvalidIntents = 4013, - /** - * You sent a disallowed intent for a Gateway Intent. You may have tried to specify an intent that you have not - * enabled or are not whitelisted for - * - * See https://discord.com/developers/docs/topics/gateway#gateway-intents - * - * See https://discord.com/developers/docs/topics/gateway#privileged-intents - */ - DisallowedIntents = 4014 -} -/** - * https://discord.com/developers/docs/topics/gateway#list-of-intents - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export declare enum GatewayIntentBits { - Guilds = 1, - GuildMembers = 2, - GuildBans = 4, - GuildEmojisAndStickers = 8, - GuildIntegrations = 16, - GuildWebhooks = 32, - GuildInvites = 64, - GuildVoiceStates = 128, - GuildPresences = 256, - GuildMessages = 512, - GuildMessageReactions = 1024, - GuildMessageTyping = 2048, - DirectMessages = 4096, - DirectMessageReactions = 8192, - DirectMessageTyping = 16384, - GuildScheduledEvents = 65536 -} -/** - * https://discord.com/developers/docs/topics/gateway#commands-and-events-gateway-events - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export declare enum GatewayDispatchEvents { - ChannelCreate = "CHANNEL_CREATE", - ChannelDelete = "CHANNEL_DELETE", - ChannelPinsUpdate = "CHANNEL_PINS_UPDATE", - ChannelUpdate = "CHANNEL_UPDATE", - GuildBanAdd = "GUILD_BAN_ADD", - GuildBanRemove = "GUILD_BAN_REMOVE", - GuildCreate = "GUILD_CREATE", - GuildDelete = "GUILD_DELETE", - GuildEmojisUpdate = "GUILD_EMOJIS_UPDATE", - GuildIntegrationsUpdate = "GUILD_INTEGRATIONS_UPDATE", - GuildMemberAdd = "GUILD_MEMBER_ADD", - GuildMemberRemove = "GUILD_MEMBER_REMOVE", - GuildMembersChunk = "GUILD_MEMBERS_CHUNK", - GuildMemberUpdate = "GUILD_MEMBER_UPDATE", - GuildRoleCreate = "GUILD_ROLE_CREATE", - GuildRoleDelete = "GUILD_ROLE_DELETE", - GuildRoleUpdate = "GUILD_ROLE_UPDATE", - GuildStickersUpdate = "GUILD_STICKERS_UPDATE", - GuildUpdate = "GUILD_UPDATE", - IntegrationCreate = "INTEGRATION_CREATE", - IntegrationDelete = "INTEGRATION_DELETE", - IntegrationUpdate = "INTEGRATION_UPDATE", - InteractionCreate = "INTERACTION_CREATE", - InviteCreate = "INVITE_CREATE", - InviteDelete = "INVITE_DELETE", - MessageCreate = "MESSAGE_CREATE", - MessageDelete = "MESSAGE_DELETE", - MessageDeleteBulk = "MESSAGE_DELETE_BULK", - MessageReactionAdd = "MESSAGE_REACTION_ADD", - MessageReactionRemove = "MESSAGE_REACTION_REMOVE", - MessageReactionRemoveAll = "MESSAGE_REACTION_REMOVE_ALL", - MessageReactionRemoveEmoji = "MESSAGE_REACTION_REMOVE_EMOJI", - MessageUpdate = "MESSAGE_UPDATE", - PresenceUpdate = "PRESENCE_UPDATE", - StageInstanceCreate = "STAGE_INSTANCE_CREATE", - StageInstanceDelete = "STAGE_INSTANCE_DELETE", - StageInstanceUpdate = "STAGE_INSTANCE_UPDATE", - Ready = "READY", - Resumed = "RESUMED", - TypingStart = "TYPING_START", - UserUpdate = "USER_UPDATE", - VoiceServerUpdate = "VOICE_SERVER_UPDATE", - VoiceStateUpdate = "VOICE_STATE_UPDATE", - WebhooksUpdate = "WEBHOOKS_UPDATE", - GuildScheduledEventCreate = "GUILD_SCHEDULED_EVENT_CREATE", - GuildScheduledEventUpdate = "GUILD_SCHEDULED_EVENT_UPDATE", - GuildScheduledEventDelete = "GUILD_SCHEDULED_EVENT_DELETE", - GuildScheduledEventUserAdd = "GUILD_SCHEDULED_EVENT_USER_ADD", - GuildScheduledEventUserRemove = "GUILD_SCHEDULED_EVENT_USER_REMOVE" -} -/** - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewaySendPayload = GatewayHeartbeat | GatewayIdentify | GatewayRequestGuildMembers | GatewayResume | GatewayUpdatePresence | GatewayVoiceStateUpdate; -/** - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayReceivePayload = GatewayDispatchPayload | GatewayHeartbeatAck | GatewayHeartbeatRequest | GatewayHello | GatewayInvalidSession | GatewayReconnect; -/** - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayDispatchPayload = GatewayChannelModifyDispatch | GatewayChannelPinsUpdateDispatch | GatewayGuildBanModifyDispatch | GatewayGuildDeleteDispatch | GatewayGuildEmojisUpdateDispatch | GatewayGuildIntegrationsUpdateDispatch | GatewayGuildMemberAddDispatch | GatewayGuildMemberRemoveDispatch | GatewayGuildMembersChunkDispatch | GatewayGuildMemberUpdateDispatch | GatewayGuildModifyDispatch | GatewayGuildRoleDeleteDispatch | GatewayGuildRoleModifyDispatch | GatewayGuildScheduledEventCreateDispatch | GatewayGuildScheduledEventDeleteDispatch | GatewayGuildScheduledEventUpdateDispatch | GatewayGuildScheduledEventUserAddDispatch | GatewayGuildScheduledEventUserRemoveDispatch | GatewayGuildStickersUpdateDispatch | GatewayIntegrationCreateDispatch | GatewayIntegrationDeleteDispatch | GatewayIntegrationUpdateDispatch | GatewayInteractionCreateDispatch | GatewayInviteCreateDispatch | GatewayInviteDeleteDispatch | GatewayMessageCreateDispatch | GatewayMessageDeleteBulkDispatch | GatewayMessageDeleteDispatch | GatewayMessageReactionAddDispatch | GatewayMessageReactionRemoveAllDispatch | GatewayMessageReactionRemoveDispatch | GatewayMessageReactionRemoveEmojiDispatch | GatewayMessageUpdateDispatch | GatewayPresenceUpdateDispatch | GatewayReadyDispatch | GatewayResumedDispatch | GatewayStageInstanceCreateDispatch | GatewayStageInstanceDeleteDispatch | GatewayStageInstanceUpdateDispatch | GatewayTypingStartDispatch | GatewayUserUpdateDispatch | GatewayVoiceServerUpdateDispatch | GatewayVoiceStateUpdateDispatch | GatewayWebhooksUpdateDispatch; -/** - * https://discord.com/developers/docs/topics/gateway#hello - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayHello extends NonDispatchPayload { - op: GatewayOpcodes.Hello; - d: GatewayHelloData; -} -/** - * https://discord.com/developers/docs/topics/gateway#hello - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayHelloData { - /** - * The interval (in milliseconds) the client should heartbeat with - */ - heartbeat_interval: number; -} -/** - * https://discord.com/developers/docs/topics/gateway#heartbeating - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayHeartbeatRequest extends NonDispatchPayload { - op: GatewayOpcodes.Heartbeat; - d: never; -} -/** - * https://discord.com/developers/docs/topics/gateway#heartbeating-example-gateway-heartbeat-ack - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayHeartbeatAck extends NonDispatchPayload { - op: GatewayOpcodes.HeartbeatAck; - d: never; -} -/** - * https://discord.com/developers/docs/topics/gateway#invalid-session - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayInvalidSession extends NonDispatchPayload { - op: GatewayOpcodes.InvalidSession; - d: GatewayInvalidSessionData; -} -/** - * https://discord.com/developers/docs/topics/gateway#invalid-session - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayInvalidSessionData = boolean; -/** - * https://discord.com/developers/docs/topics/gateway#reconnect - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayReconnect extends NonDispatchPayload { - op: GatewayOpcodes.Reconnect; - d: never; -} -/** - * https://discord.com/developers/docs/topics/gateway#ready - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayReadyDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#ready - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayReadyDispatchData { - /** - * Gateway version - * - * See https://discord.com/developers/docs/topics/gateway#gateways-gateway-versions - */ - v: number; - /** - * Information about the user including email - * - * See https://discord.com/developers/docs/resources/user#user-object - */ - user: APIUser; - /** - * The guilds the user is in - * - * See https://discord.com/developers/docs/resources/guild#unavailable-guild-object - */ - guilds: APIUnavailableGuild[]; - /** - * Used for resuming connections - */ - session_id: string; - /** - * The shard information associated with this session, if sent when identifying - * - * See https://discord.com/developers/docs/topics/gateway#sharding - */ - shard?: [shard_id: number, shard_count: number]; - /** - * Contains `id` and `flags` - * - * See https://discord.com/developers/docs/resources/application#application-object - */ - application: Pick; -} -/** - * https://discord.com/developers/docs/topics/gateway#resumed - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayResumedDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#channel-create - * https://discord.com/developers/docs/topics/gateway#channel-update - * https://discord.com/developers/docs/topics/gateway#channel-delete - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayChannelModifyDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#channel-create - * https://discord.com/developers/docs/topics/gateway#channel-update - * https://discord.com/developers/docs/topics/gateway#channel-delete - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayChannelModifyDispatchData = APIChannel; -/** - * https://discord.com/developers/docs/topics/gateway#channel-create - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayChannelCreateDispatch = GatewayChannelModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway#channel-create - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayChannelCreateDispatchData = GatewayChannelModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway#channel-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayChannelUpdateDispatch = GatewayChannelModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway#channel-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayChannelUpdateDispatchData = GatewayChannelModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway#channel-delete - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayChannelDeleteDispatch = GatewayChannelModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway#channel-delete - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayChannelDeleteDispatchData = GatewayChannelModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway#channel-pins-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayChannelPinsUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#channel-pins-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayChannelPinsUpdateDispatchData { - /** - * The id of the guild - */ - guild_id?: Snowflake; - /** - * The id of the channel - */ - channel_id: Snowflake; - /** - * The time at which the most recent pinned message was pinned - */ - last_pin_timestamp?: string | null; -} -/** - * https://discord.com/developers/docs/topics/gateway#guild-create - * https://discord.com/developers/docs/topics/gateway#guild-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildModifyDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#guild-create - * https://discord.com/developers/docs/topics/gateway#guild-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildModifyDispatchData = APIGuild; -/** - * https://discord.com/developers/docs/topics/gateway#guild-create - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildCreateDispatch = GatewayGuildModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway#guild-create - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildCreateDispatchData = GatewayGuildModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway#guild-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildUpdateDispatch = GatewayGuildModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway#guild-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildUpdateDispatchData = GatewayGuildModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway#guild-delete - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildDeleteDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#guild-delete - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildDeleteDispatchData = APIUnavailableGuild; -/** - * https://discord.com/developers/docs/topics/gateway#guild-ban-add - * https://discord.com/developers/docs/topics/gateway#guild-ban-remove - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildBanModifyDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#guild-ban-add - * https://discord.com/developers/docs/topics/gateway#guild-ban-remove - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayGuildBanModifyDispatchData { - /** - * ID of the guild - */ - guild_id: Snowflake; - /** - * The banned user - * - * See https://discord.com/developers/docs/resources/user#user-object - */ - user: APIUser; -} -/** - * https://discord.com/developers/docs/topics/gateway#guild-ban-add - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildBanAddDispatch = GatewayGuildBanModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway#guild-ban-add - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildBanAddDispatchData = GatewayGuildBanModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway#guild-ban-remove - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildBanRemoveDispatch = GatewayGuildBanModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway#guild-ban-remove - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildBanRemoveDispatchData = GatewayGuildBanModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway#guild-emojis-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildEmojisUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#guild-emojis-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayGuildEmojisUpdateDispatchData { - /** - * ID of the guild - */ - guild_id: Snowflake; - /** - * Array of emojis - * - * See https://discord.com/developers/docs/resources/emoji#emoji-object - */ - emojis: APIEmoji[]; -} -/** - * https://discord.com/developers/docs/topics/gateway#guild-stickers-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildStickersUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#guild-stickers-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayGuildStickersUpdateDispatchData { - /** - * ID of the guild - */ - guild_id: Snowflake; - /** - * Array of stickers - * - * See https://discord.com/developers/docs/resources/sticker#sticker-object - */ - stickers: APISticker[]; -} -/** - * https://discord.com/developers/docs/topics/gateway#guild-integrations-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildIntegrationsUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#guild-integrations-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayGuildIntegrationsUpdateDispatchData { - /** - * ID of the guild whose integrations were updated - */ - guild_id: Snowflake; -} -/** - * https://discord.com/developers/docs/topics/gateway#guild-member-add - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildMemberAddDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#guild-member-add - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayGuildMemberAddDispatchData extends APIGuildMember { - /** - * The id of the guild - */ - guild_id: Snowflake; -} -/** - * https://discord.com/developers/docs/topics/gateway#guild-member-remove - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildMemberRemoveDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#guild-member-remove - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayGuildMemberRemoveDispatchData { - /** - * The id of the guild - */ - guild_id: Snowflake; - /** - * The user who was removed - * - * See https://discord.com/developers/docs/resources/user#user-object - */ - user: APIUser; -} -/** - * https://discord.com/developers/docs/topics/gateway#guild-member-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildMemberUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#guild-member-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildMemberUpdateDispatchData = Nullable> & Omit & Partial> & Required> & { - /** - * The id of the guild - */ - guild_id: Snowflake; -}; -/** - * https://discord.com/developers/docs/topics/gateway#guild-members-chunk - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildMembersChunkDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#guild-members-chunk - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayGuildMembersChunkDispatchData { - /** - * The id of the guild - */ - guild_id: Snowflake; - /** - * Set of guild members - * - * See https://discord.com/developers/docs/resources/guild#guild-member-object - */ - members: APIGuildMember[]; - /** - * The chunk index in the expected chunks for this response (`0 <= chunk_index < chunk_count`) - */ - chunk_index?: number; - /** - * The total number of expected chunks for this response - */ - chunk_count?: number; - /** - * If passing an invalid id to `REQUEST_GUILD_MEMBERS`, it will be returned here - */ - not_found?: unknown[]; - /** - * If passing true to `REQUEST_GUILD_MEMBERS`, presences of the returned members will be here - * - * See https://discord.com/developers/docs/topics/gateway#presence - */ - presences?: RawGatewayPresenceUpdate[]; - /** - * The nonce used in the Guild Members Request - * - * See https://discord.com/developers/docs/topics/gateway#request-guild-members - */ - nonce?: string; -} -/** - * https://discord.com/developers/docs/topics/gateway#guild-role-create - * https://discord.com/developers/docs/topics/gateway#guild-role-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildRoleModifyDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#guild-role-create - * https://discord.com/developers/docs/topics/gateway#guild-role-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayGuildRoleModifyDispatchData { - /** - * The id of the guild - */ - guild_id: Snowflake; - /** - * The role created or updated - * - * See https://discord.com/developers/docs/topics/permissions#role-object - */ - role: APIRole; -} -/** - * https://discord.com/developers/docs/topics/gateway#guild-role-create - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildRoleCreateDispatch = GatewayGuildRoleModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway#guild-role-create - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildRoleCreateDispatchData = GatewayGuildRoleModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway#guild-role-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildRoleUpdateDispatch = GatewayGuildRoleModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway#guild-role-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildRoleUpdateDispatchData = GatewayGuildRoleModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway#guild-role-delete - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildRoleDeleteDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#guild-role-delete - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayGuildRoleDeleteDispatchData { - /** - * The id of the guild - */ - guild_id: Snowflake; - /** - * The id of the role - */ - role_id: Snowflake; -} -/** - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildScheduledEventCreateDispatch = DataPayload; -/** - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildScheduledEventCreateDispatchData = APIGuildScheduledEvent; -/** - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildScheduledEventUpdateDispatch = DataPayload; -/** - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildScheduledEventUpdateDispatchData = APIGuildScheduledEvent; -/** - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildScheduledEventDeleteDispatch = DataPayload; -/** - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildScheduledEventDeleteDispatchData = APIGuildScheduledEvent; -/** - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildScheduledEventUserAddDispatch = DataPayload; -/** - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayGuildScheduledEventUserAddDispatchData { - guild_scheduled_event_id: Snowflake; - user_id: Snowflake; - guild_id: Snowflake; -} -/** - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayGuildScheduledEventUserRemoveDispatch = DataPayload; -/** - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayGuildScheduledEventUserRemoveDispatchData { - guild_scheduled_event_id: Snowflake; - user_id: Snowflake; - guild_id: Snowflake; -} -/** - * https://discord.com/developers/docs/topics/gateway#integration-create - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayIntegrationCreateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#integration-create - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayIntegrationCreateDispatchData = APIGuildIntegration & { - guild_id: Snowflake; -}; -/** - * https://discord.com/developers/docs/topics/gateway#integration-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayIntegrationUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#integration-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayIntegrationUpdateDispatchData = APIGuildIntegration & { - guild_id: Snowflake; -}; -/** - * https://discord.com/developers/docs/topics/gateway#integration-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayIntegrationDeleteDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#integration-delete - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayIntegrationDeleteDispatchData { - /** - * Integration id - */ - id: Snowflake; - /** - * ID of the guild - */ - guild_id: Snowflake; - /** - * ID of the bot/OAuth2 application for this Discord integration - */ - application_id?: Snowflake; -} -/** - * https://discord.com/developers/docs/topics/gateway#interaction-create - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayInteractionCreateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#interaction-create - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayInteractionCreateDispatchData = APIInteraction; -/** - * https://discord.com/developers/docs/topics/gateway#invite-create - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayInviteCreateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#invite-create - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayInviteCreateDispatchData { - /** - * The channel the invite is for - */ - channel_id: Snowflake; - /** - * The unique invite code - * - * See https://discord.com/developers/docs/resources/invite#invite-object - */ - code: string; - /** - * The time at which the invite was created - */ - created_at: number; - /** - * The guild of the invite - */ - guild_id?: Snowflake; - /** - * The user that created the invite - * - * See https://discord.com/developers/docs/resources/user#user-object - */ - inviter?: APIUser; - /** - * How long the invite is valid for (in seconds) - */ - max_age: number; - /** - * The maximum number of times the invite can be used - */ - max_uses: number; - /** - * The type of target for this voice channel invite - * - * See https://discord.com/developers/docs/resources/invite#invite-object-invite-target-types - */ - target_type?: InviteTargetType; - /** - * The user whose stream to display for this voice channel stream invite - * - * See https://discord.com/developers/docs/resources/user#user-object - */ - target_user?: APIUser; - /** - * The embedded application to open for this voice channel embedded application invite - */ - target_application?: Partial; - /** - * Whether or not the invite is temporary (invited users will be kicked on disconnect unless they're assigned a role) - */ - temporary: boolean; - /** - * How many times the invite has been used (always will be `0`) - */ - uses: 0; -} -/** - * https://discord.com/developers/docs/topics/gateway#invite-delete - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayInviteDeleteDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#invite-delete - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayInviteDeleteDispatchData { - /** - * The channel of the invite - */ - channel_id: Snowflake; - /** - * The guild of the invite - */ - guild_id?: Snowflake; - /** - * The unique invite code - * - * See https://discord.com/developers/docs/resources/invite#invite-object - */ - code: string; -} -/** - * https://discord.com/developers/docs/topics/gateway#message-create - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayMessageCreateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#message-create - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayMessageCreateDispatchData = APIMessage; -/** - * https://discord.com/developers/docs/topics/gateway#message-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayMessageUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#message-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayMessageUpdateDispatchData = Partial & { - id: Snowflake; - channel_id: Snowflake; -}; -/** - * https://discord.com/developers/docs/topics/gateway#message-delete - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayMessageDeleteDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#message-delete - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayMessageDeleteDispatchData { - /** - * The id of the message - */ - id: Snowflake; - /** - * The id of the channel - */ - channel_id: Snowflake; - /** - * The id of the guild - */ - guild_id?: Snowflake; -} -/** - * https://discord.com/developers/docs/topics/gateway#message-delete-bulk - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayMessageDeleteBulkDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#message-delete-bulk - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayMessageDeleteBulkDispatchData { - /** - * The ids of the messages - */ - ids: Snowflake[]; - /** - * The id of the channel - */ - channel_id: Snowflake; - /** - * The id of the guild - */ - guild_id?: Snowflake; -} -/** - * https://discord.com/developers/docs/topics/gateway#message-reaction-add - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayMessageReactionAddDispatch = ReactionData; -/** - * https://discord.com/developers/docs/topics/gateway#message-reaction-add - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayMessageReactionAddDispatchData = GatewayMessageReactionAddDispatch['d']; -/** - * https://discord.com/developers/docs/topics/gateway#message-reaction-remove - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayMessageReactionRemoveDispatch = ReactionData; -/** - * https://discord.com/developers/docs/topics/gateway#message-reaction-remove - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayMessageReactionRemoveDispatchData = GatewayMessageReactionRemoveDispatch['d']; -/** - * https://discord.com/developers/docs/topics/gateway#message-reaction-remove-all - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayMessageReactionRemoveAllDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#message-reaction-remove-all - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayMessageReactionRemoveAllDispatchData = MessageReactionRemoveData; -/** - * https://discord.com/developers/docs/topics/gateway#message-reaction-remove-emoji - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayMessageReactionRemoveEmojiDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#message-reaction-remove-emoji - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayMessageReactionRemoveEmojiDispatchData extends MessageReactionRemoveData { - /** - * The emoji that was removed - */ - emoji: APIEmoji; -} -/** - * https://discord.com/developers/docs/topics/gateway#presence-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayPresenceUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#presence-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayPresenceUpdateDispatchData = RawGatewayPresenceUpdate; -/** - * https://discord.com/developers/docs/topics/gateway#stage-instance-create - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayStageInstanceCreateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#stage-instance-create - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayStageInstanceCreateDispatchData = APIStageInstance; -/** - * https://discord.com/developers/docs/topics/gateway#stage-instance-delete - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayStageInstanceDeleteDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#stage-instance-delete - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayStageInstanceDeleteDispatchData = APIStageInstance; -/** - * https://discord.com/developers/docs/topics/gateway#stage-instance-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayStageInstanceUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#stage-instance-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayStageInstanceUpdateDispatchData = APIStageInstance; -/** - * https://discord.com/developers/docs/topics/gateway#typing-start - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayTypingStartDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#typing-start - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayTypingStartDispatchData { - /** - * The id of the channel - */ - channel_id: Snowflake; - /** - * The id of the guild - */ - guild_id?: Snowflake; - /** - * The id of the user - */ - user_id: Snowflake; - /** - * Unix time (in seconds) of when the user started typing - */ - timestamp: number; - /** - * The member who started typing if this happened in a guild - * - * See https://discord.com/developers/docs/resources/guild#guild-member-object - */ - member?: APIGuildMember; -} -/** - * https://discord.com/developers/docs/topics/gateway#user-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayUserUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#user-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayUserUpdateDispatchData = APIUser; -/** - * https://discord.com/developers/docs/topics/gateway#voice-state-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayVoiceStateUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#voice-state-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayVoiceStateUpdateDispatchData = GatewayVoiceState; -/** - * https://discord.com/developers/docs/topics/gateway#voice-server-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayVoiceServerUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#voice-server-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayVoiceServerUpdateDispatchData { - /** - * Voice connection token - */ - token: string; - /** - * The guild this voice server update is for - */ - guild_id: Snowflake; - /** - * The voice server host - * - * A `null` endpoint means that the voice server allocated has gone away and is trying to be reallocated. - * You should attempt to disconnect from the currently connected voice server, and not attempt to reconnect - * until a new voice server is allocated - */ - endpoint: string | null; -} -/** - * https://discord.com/developers/docs/topics/gateway#webhooks-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayWebhooksUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway#webhooks-update - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayWebhooksUpdateDispatchData { - /** - * The id of the guild - */ - guild_id: Snowflake; - /** - * The id of the channel - */ - channel_id: Snowflake; -} -/** - * https://discord.com/developers/docs/topics/gateway#heartbeating - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayHeartbeat { - op: GatewayOpcodes.Heartbeat; - d: GatewayHeartbeatData; -} -/** - * https://discord.com/developers/docs/topics/gateway#heartbeating - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayHeartbeatData = number | null; -/** - * https://discord.com/developers/docs/topics/gateway#identify - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayIdentify { - op: GatewayOpcodes.Identify; - d: GatewayIdentifyData; -} -/** - * https://discord.com/developers/docs/topics/gateway#identify - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayIdentifyData { - /** - * Authentication token - */ - token: string; - /** - * Connection properties - * - * See https://discord.com/developers/docs/topics/gateway#identify-identify-connection-properties - */ - properties: GatewayIdentifyProperties; - /** - * Whether this connection supports compression of packets - * - * @default false - */ - compress?: boolean; - /** - * Value between 50 and 250, total number of members where the gateway will stop sending - * offline members in the guild member list - * - * @default 50 - */ - large_threshold?: number; - /** - * Used for Guild Sharding - * - * See https://discord.com/developers/docs/topics/gateway#sharding - */ - shard?: [shard_id: number, shard_count: number]; - /** - * Presence structure for initial presence information - * - * See https://discord.com/developers/docs/topics/gateway#update-presence - */ - presence?: GatewayPresenceUpdateData; - /** - * The Gateway Intents you wish to receive - * - * See https://discord.com/developers/docs/topics/gateway#gateway-intents - */ - intents: number; -} -/** - * https://discord.com/developers/docs/topics/gateway#identify-identify-connection-properties - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayIdentifyProperties { - /** - * Your operating system - */ - $os: string; - /** - * Your library name - */ - $browser: string; - /** - * Your library name - */ - $device: string; -} -/** - * https://discord.com/developers/docs/topics/gateway#resume - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayResume { - op: GatewayOpcodes.Resume; - d: GatewayResumeData; -} -/** - * https://discord.com/developers/docs/topics/gateway#resume - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayResumeData { - /** - * Session token - */ - token: string; - /** - * Session id - */ - session_id: string; - /** - * Last sequence number received - */ - seq: number; -} -/** - * https://discord.com/developers/docs/topics/gateway#request-guild-members - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayRequestGuildMembers { - op: GatewayOpcodes.RequestGuildMembers; - d: GatewayRequestGuildMembersData; -} -/** - * https://discord.com/developers/docs/topics/gateway#request-guild-members - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayRequestGuildMembersData { - /** - * ID of the guild to get members for - */ - guild_id: Snowflake; - /** - * String that username starts with, or an empty string to return all members - */ - query?: string; - /** - * Maximum number of members to send matching the `query`; - * a limit of `0` can be used with an empty string `query` to return all members - */ - limit: number; - /** - * Used to specify if we want the presences of the matched members - */ - presences?: boolean; - /** - * Used to specify which users you wish to fetch - */ - user_ids?: Snowflake | Snowflake[]; - /** - * Nonce to identify the Guild Members Chunk response - * - * Nonce can only be up to 32 bytes. If you send an invalid nonce it will be ignored and the reply member_chunk(s) will not have a `nonce` set. - * - * See https://discord.com/developers/docs/topics/gateway#guild-members-chunk - */ - nonce?: string; -} -/** - * https://discord.com/developers/docs/topics/gateway#update-voice-state - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayVoiceStateUpdate { - op: GatewayOpcodes.VoiceStateUpdate; - d: GatewayVoiceStateUpdateData; -} -/** - * https://discord.com/developers/docs/topics/gateway#update-voice-state - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayVoiceStateUpdateData { - /** - * ID of the guild - */ - guild_id: Snowflake; - /** - * ID of the voice channel client wants to join (`null` if disconnecting) - */ - channel_id: Snowflake | null; - /** - * Is the client muted - */ - self_mute: boolean; - /** - * Is the client deafened - */ - self_deaf: boolean; -} -/** - * https://discord.com/developers/docs/topics/gateway#update-presence - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayUpdatePresence { - op: GatewayOpcodes.PresenceUpdate; - d: GatewayPresenceUpdateData; -} -/** - * https://discord.com/developers/docs/topics/gateway#update-presence-gateway-presence-update-structure - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export interface GatewayPresenceUpdateData { - /** - * Unix time (in milliseconds) of when the client went idle, or `null` if the client is not idle - */ - since: number | null; - /** - * The user's activities - * - * See https://discord.com/developers/docs/topics/gateway-events#activity-object - */ - activities: GatewayActivityUpdateData[]; - /** - * The user's new status - * - * See https://discord.com/developers/docs/topics/gateway#update-presence-status-types - */ - status: PresenceUpdateStatus; - /** - * Whether or not the client is afk - */ - afk: boolean; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-structure - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -export type GatewayActivityUpdateData = Pick; -interface BasePayload { - /** - * Opcode for the payload - */ - op: GatewayOpcodes; - /** - * Event data - */ - d?: unknown; - /** - * Sequence number, used for resuming sessions and heartbeats - */ - s: number; - /** - * The event name for this payload - */ - t?: string; -} -type NonDispatchPayload = Omit & { - t: null; - s: null; -}; -interface DataPayload extends BasePayload { - op: GatewayOpcodes.Dispatch; - t: Event; - d: D; -} -type ReactionData = DataPayload>; -/** - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -interface MessageReactionRemoveData { - /** - * The id of the channel - */ - channel_id: Snowflake; - /** - * The id of the message - */ - message_id: Snowflake; - /** - * The id of the guild - */ - guild_id?: Snowflake; -} -//# sourceMappingURL=v8.d.ts.map \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v8.d.ts.map b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v8.d.ts.map deleted file mode 100644 index bd4594e..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v8.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"v8.d.ts","sourceRoot":"","sources":["v8.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v8.js b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v8.js deleted file mode 100644 index 56b95b2..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v8.js +++ /dev/null @@ -1,246 +0,0 @@ -"use strict"; -/** - * Types extracted from https://discord.com/developers/docs/topics/gateway - */ -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.GatewayDispatchEvents = exports.GatewayIntentBits = exports.GatewayCloseCodes = exports.GatewayOpcodes = exports.GatewayVersion = void 0; -__exportStar(require("./common"), exports); -/** - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -exports.GatewayVersion = '8'; -/** - * https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-opcodes - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -var GatewayOpcodes; -(function (GatewayOpcodes) { - /** - * An event was dispatched - */ - GatewayOpcodes[GatewayOpcodes["Dispatch"] = 0] = "Dispatch"; - /** - * A bidirectional opcode to maintain an active gateway connection. - * Fired periodically by the client, or fired by the gateway to request an immediate heartbeat from the client. - */ - GatewayOpcodes[GatewayOpcodes["Heartbeat"] = 1] = "Heartbeat"; - /** - * Starts a new session during the initial handshake - */ - GatewayOpcodes[GatewayOpcodes["Identify"] = 2] = "Identify"; - /** - * Update the client's presence - */ - GatewayOpcodes[GatewayOpcodes["PresenceUpdate"] = 3] = "PresenceUpdate"; - /** - * Used to join/leave or move between voice channels - */ - GatewayOpcodes[GatewayOpcodes["VoiceStateUpdate"] = 4] = "VoiceStateUpdate"; - /** - * Resume a previous session that was disconnected - */ - GatewayOpcodes[GatewayOpcodes["Resume"] = 6] = "Resume"; - /** - * You should attempt to reconnect and resume immediately - */ - GatewayOpcodes[GatewayOpcodes["Reconnect"] = 7] = "Reconnect"; - /** - * Request information about offline guild members in a large guild - */ - GatewayOpcodes[GatewayOpcodes["RequestGuildMembers"] = 8] = "RequestGuildMembers"; - /** - * The session has been invalidated. You should reconnect and identify/resume accordingly - */ - GatewayOpcodes[GatewayOpcodes["InvalidSession"] = 9] = "InvalidSession"; - /** - * Sent immediately after connecting, contains the `heartbeat_interval` to use - */ - GatewayOpcodes[GatewayOpcodes["Hello"] = 10] = "Hello"; - /** - * Sent in response to receiving a heartbeat to acknowledge that it has been received - */ - GatewayOpcodes[GatewayOpcodes["HeartbeatAck"] = 11] = "HeartbeatAck"; -})(GatewayOpcodes || (exports.GatewayOpcodes = GatewayOpcodes = {})); -/** - * https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-close-event-codes - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -var GatewayCloseCodes; -(function (GatewayCloseCodes) { - /** - * We're not sure what went wrong. Try reconnecting? - */ - GatewayCloseCodes[GatewayCloseCodes["UnknownError"] = 4000] = "UnknownError"; - /** - * You sent an invalid Gateway opcode or an invalid payload for an opcode. Don't do that! - * - * See https://discord.com/developers/docs/topics/gateway#payloads-and-opcodes - */ - GatewayCloseCodes[GatewayCloseCodes["UnknownOpcode"] = 4001] = "UnknownOpcode"; - /** - * You sent an invalid payload to us. Don't do that! - * - * See https://discord.com/developers/docs/topics/gateway#sending-payloads - */ - GatewayCloseCodes[GatewayCloseCodes["DecodeError"] = 4002] = "DecodeError"; - /** - * You sent us a payload prior to identifying - * - * See https://discord.com/developers/docs/topics/gateway#identify - */ - GatewayCloseCodes[GatewayCloseCodes["NotAuthenticated"] = 4003] = "NotAuthenticated"; - /** - * The account token sent with your identify payload is incorrect - * - * See https://discord.com/developers/docs/topics/gateway#identify - */ - GatewayCloseCodes[GatewayCloseCodes["AuthenticationFailed"] = 4004] = "AuthenticationFailed"; - /** - * You sent more than one identify payload. Don't do that! - */ - GatewayCloseCodes[GatewayCloseCodes["AlreadyAuthenticated"] = 4005] = "AlreadyAuthenticated"; - /** - * The sequence sent when resuming the session was invalid. Reconnect and start a new session - * - * See https://discord.com/developers/docs/topics/gateway#resume - */ - GatewayCloseCodes[GatewayCloseCodes["InvalidSeq"] = 4007] = "InvalidSeq"; - /** - * Woah nelly! You're sending payloads to us too quickly. Slow it down! You will be disconnected on receiving this - */ - GatewayCloseCodes[GatewayCloseCodes["RateLimited"] = 4008] = "RateLimited"; - /** - * Your session timed out. Reconnect and start a new one - */ - GatewayCloseCodes[GatewayCloseCodes["SessionTimedOut"] = 4009] = "SessionTimedOut"; - /** - * You sent us an invalid shard when identifying - * - * See https://discord.com/developers/docs/topics/gateway#sharding - */ - GatewayCloseCodes[GatewayCloseCodes["InvalidShard"] = 4010] = "InvalidShard"; - /** - * The session would have handled too many guilds - you are required to shard your connection in order to connect - * - * See https://discord.com/developers/docs/topics/gateway#sharding - */ - GatewayCloseCodes[GatewayCloseCodes["ShardingRequired"] = 4011] = "ShardingRequired"; - /** - * You sent an invalid version for the gateway - */ - GatewayCloseCodes[GatewayCloseCodes["InvalidAPIVersion"] = 4012] = "InvalidAPIVersion"; - /** - * You sent an invalid intent for a Gateway Intent. You may have incorrectly calculated the bitwise value - * - * See https://discord.com/developers/docs/topics/gateway#gateway-intents - */ - GatewayCloseCodes[GatewayCloseCodes["InvalidIntents"] = 4013] = "InvalidIntents"; - /** - * You sent a disallowed intent for a Gateway Intent. You may have tried to specify an intent that you have not - * enabled or are not whitelisted for - * - * See https://discord.com/developers/docs/topics/gateway#gateway-intents - * - * See https://discord.com/developers/docs/topics/gateway#privileged-intents - */ - GatewayCloseCodes[GatewayCloseCodes["DisallowedIntents"] = 4014] = "DisallowedIntents"; -})(GatewayCloseCodes || (exports.GatewayCloseCodes = GatewayCloseCodes = {})); -/** - * https://discord.com/developers/docs/topics/gateway#list-of-intents - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -var GatewayIntentBits; -(function (GatewayIntentBits) { - GatewayIntentBits[GatewayIntentBits["Guilds"] = 1] = "Guilds"; - GatewayIntentBits[GatewayIntentBits["GuildMembers"] = 2] = "GuildMembers"; - GatewayIntentBits[GatewayIntentBits["GuildBans"] = 4] = "GuildBans"; - GatewayIntentBits[GatewayIntentBits["GuildEmojisAndStickers"] = 8] = "GuildEmojisAndStickers"; - GatewayIntentBits[GatewayIntentBits["GuildIntegrations"] = 16] = "GuildIntegrations"; - GatewayIntentBits[GatewayIntentBits["GuildWebhooks"] = 32] = "GuildWebhooks"; - GatewayIntentBits[GatewayIntentBits["GuildInvites"] = 64] = "GuildInvites"; - GatewayIntentBits[GatewayIntentBits["GuildVoiceStates"] = 128] = "GuildVoiceStates"; - GatewayIntentBits[GatewayIntentBits["GuildPresences"] = 256] = "GuildPresences"; - GatewayIntentBits[GatewayIntentBits["GuildMessages"] = 512] = "GuildMessages"; - GatewayIntentBits[GatewayIntentBits["GuildMessageReactions"] = 1024] = "GuildMessageReactions"; - GatewayIntentBits[GatewayIntentBits["GuildMessageTyping"] = 2048] = "GuildMessageTyping"; - GatewayIntentBits[GatewayIntentBits["DirectMessages"] = 4096] = "DirectMessages"; - GatewayIntentBits[GatewayIntentBits["DirectMessageReactions"] = 8192] = "DirectMessageReactions"; - GatewayIntentBits[GatewayIntentBits["DirectMessageTyping"] = 16384] = "DirectMessageTyping"; - GatewayIntentBits[GatewayIntentBits["GuildScheduledEvents"] = 65536] = "GuildScheduledEvents"; -})(GatewayIntentBits || (exports.GatewayIntentBits = GatewayIntentBits = {})); -/** - * https://discord.com/developers/docs/topics/gateway#commands-and-events-gateway-events - * - * @deprecated API and gateway v8 are deprecated and the types will not receive further updates, please update to v10. - */ -var GatewayDispatchEvents; -(function (GatewayDispatchEvents) { - GatewayDispatchEvents["ChannelCreate"] = "CHANNEL_CREATE"; - GatewayDispatchEvents["ChannelDelete"] = "CHANNEL_DELETE"; - GatewayDispatchEvents["ChannelPinsUpdate"] = "CHANNEL_PINS_UPDATE"; - GatewayDispatchEvents["ChannelUpdate"] = "CHANNEL_UPDATE"; - GatewayDispatchEvents["GuildBanAdd"] = "GUILD_BAN_ADD"; - GatewayDispatchEvents["GuildBanRemove"] = "GUILD_BAN_REMOVE"; - GatewayDispatchEvents["GuildCreate"] = "GUILD_CREATE"; - GatewayDispatchEvents["GuildDelete"] = "GUILD_DELETE"; - GatewayDispatchEvents["GuildEmojisUpdate"] = "GUILD_EMOJIS_UPDATE"; - GatewayDispatchEvents["GuildIntegrationsUpdate"] = "GUILD_INTEGRATIONS_UPDATE"; - GatewayDispatchEvents["GuildMemberAdd"] = "GUILD_MEMBER_ADD"; - GatewayDispatchEvents["GuildMemberRemove"] = "GUILD_MEMBER_REMOVE"; - GatewayDispatchEvents["GuildMembersChunk"] = "GUILD_MEMBERS_CHUNK"; - GatewayDispatchEvents["GuildMemberUpdate"] = "GUILD_MEMBER_UPDATE"; - GatewayDispatchEvents["GuildRoleCreate"] = "GUILD_ROLE_CREATE"; - GatewayDispatchEvents["GuildRoleDelete"] = "GUILD_ROLE_DELETE"; - GatewayDispatchEvents["GuildRoleUpdate"] = "GUILD_ROLE_UPDATE"; - GatewayDispatchEvents["GuildStickersUpdate"] = "GUILD_STICKERS_UPDATE"; - GatewayDispatchEvents["GuildUpdate"] = "GUILD_UPDATE"; - GatewayDispatchEvents["IntegrationCreate"] = "INTEGRATION_CREATE"; - GatewayDispatchEvents["IntegrationDelete"] = "INTEGRATION_DELETE"; - GatewayDispatchEvents["IntegrationUpdate"] = "INTEGRATION_UPDATE"; - GatewayDispatchEvents["InteractionCreate"] = "INTERACTION_CREATE"; - GatewayDispatchEvents["InviteCreate"] = "INVITE_CREATE"; - GatewayDispatchEvents["InviteDelete"] = "INVITE_DELETE"; - GatewayDispatchEvents["MessageCreate"] = "MESSAGE_CREATE"; - GatewayDispatchEvents["MessageDelete"] = "MESSAGE_DELETE"; - GatewayDispatchEvents["MessageDeleteBulk"] = "MESSAGE_DELETE_BULK"; - GatewayDispatchEvents["MessageReactionAdd"] = "MESSAGE_REACTION_ADD"; - GatewayDispatchEvents["MessageReactionRemove"] = "MESSAGE_REACTION_REMOVE"; - GatewayDispatchEvents["MessageReactionRemoveAll"] = "MESSAGE_REACTION_REMOVE_ALL"; - GatewayDispatchEvents["MessageReactionRemoveEmoji"] = "MESSAGE_REACTION_REMOVE_EMOJI"; - GatewayDispatchEvents["MessageUpdate"] = "MESSAGE_UPDATE"; - GatewayDispatchEvents["PresenceUpdate"] = "PRESENCE_UPDATE"; - GatewayDispatchEvents["StageInstanceCreate"] = "STAGE_INSTANCE_CREATE"; - GatewayDispatchEvents["StageInstanceDelete"] = "STAGE_INSTANCE_DELETE"; - GatewayDispatchEvents["StageInstanceUpdate"] = "STAGE_INSTANCE_UPDATE"; - GatewayDispatchEvents["Ready"] = "READY"; - GatewayDispatchEvents["Resumed"] = "RESUMED"; - GatewayDispatchEvents["TypingStart"] = "TYPING_START"; - GatewayDispatchEvents["UserUpdate"] = "USER_UPDATE"; - GatewayDispatchEvents["VoiceServerUpdate"] = "VOICE_SERVER_UPDATE"; - GatewayDispatchEvents["VoiceStateUpdate"] = "VOICE_STATE_UPDATE"; - GatewayDispatchEvents["WebhooksUpdate"] = "WEBHOOKS_UPDATE"; - GatewayDispatchEvents["GuildScheduledEventCreate"] = "GUILD_SCHEDULED_EVENT_CREATE"; - GatewayDispatchEvents["GuildScheduledEventUpdate"] = "GUILD_SCHEDULED_EVENT_UPDATE"; - GatewayDispatchEvents["GuildScheduledEventDelete"] = "GUILD_SCHEDULED_EVENT_DELETE"; - GatewayDispatchEvents["GuildScheduledEventUserAdd"] = "GUILD_SCHEDULED_EVENT_USER_ADD"; - GatewayDispatchEvents["GuildScheduledEventUserRemove"] = "GUILD_SCHEDULED_EVENT_USER_REMOVE"; -})(GatewayDispatchEvents || (exports.GatewayDispatchEvents = GatewayDispatchEvents = {})); -// #endregion Shared -//# sourceMappingURL=v8.js.map \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v8.js.map b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v8.js.map deleted file mode 100644 index 594acd2..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v8.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"v8.js","sourceRoot":"","sources":["v8.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v8.mjs b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v8.mjs deleted file mode 100644 index c5cfed1..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v8.mjs +++ /dev/null @@ -1,8 +0,0 @@ -import mod from "./v8.js"; - -export default mod; -export const GatewayCloseCodes = mod.GatewayCloseCodes; -export const GatewayDispatchEvents = mod.GatewayDispatchEvents; -export const GatewayIntentBits = mod.GatewayIntentBits; -export const GatewayOpcodes = mod.GatewayOpcodes; -export const GatewayVersion = mod.GatewayVersion; diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v9.d.ts b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v9.d.ts deleted file mode 100644 index eddc15c..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v9.d.ts +++ /dev/null @@ -1,1743 +0,0 @@ -/** - * Types extracted from https://discord.com/developers/docs/topics/gateway - */ -import type { Snowflake } from '../globals'; -import type { GatewayPresenceUpdate } from '../payloads/v9/gateway'; -import type { APIApplication, APIApplicationCommandPermission, APIAutoModerationRule, APIAutoModerationAction, APIChannel, APIEmoji, APIGuild, APIGuildIntegration, APIGuildMember, APIGuildScheduledEvent, APIInteraction, APIMessage, APIRole, APIStageInstance, APISticker, APIThreadChannel, APIThreadMember, APIUnavailableGuild, APIUser, GatewayActivity, GatewayPresenceUpdate as RawGatewayPresenceUpdate, GatewayThreadListSync as RawGatewayThreadListSync, GatewayThreadMembersUpdate as RawGatewayThreadMembersUpdate, APIVoiceState, InviteTargetType, PresenceUpdateStatus, AutoModerationRuleTriggerType, APIAuditLogEntry, ChannelType } from '../payloads/v9/index'; -import type { ReactionType } from '../rest/v9/index'; -import type { Nullable } from '../utils/internals'; -import type { APIEntitlement } from '../v10'; -export * from './common'; -export declare const GatewayVersion = "9"; -/** - * https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-opcodes - */ -export declare enum GatewayOpcodes { - /** - * An event was dispatched - */ - Dispatch = 0, - /** - * A bidirectional opcode to maintain an active gateway connection. - * Fired periodically by the client, or fired by the gateway to request an immediate heartbeat from the client. - */ - Heartbeat = 1, - /** - * Starts a new session during the initial handshake - */ - Identify = 2, - /** - * Update the client's presence - */ - PresenceUpdate = 3, - /** - * Used to join/leave or move between voice channels - */ - VoiceStateUpdate = 4, - /** - * Resume a previous session that was disconnected - */ - Resume = 6, - /** - * You should attempt to reconnect and resume immediately - */ - Reconnect = 7, - /** - * Request information about offline guild members in a large guild - */ - RequestGuildMembers = 8, - /** - * The session has been invalidated. You should reconnect and identify/resume accordingly - */ - InvalidSession = 9, - /** - * Sent immediately after connecting, contains the `heartbeat_interval` to use - */ - Hello = 10, - /** - * Sent in response to receiving a heartbeat to acknowledge that it has been received - */ - HeartbeatAck = 11 -} -/** - * https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-close-event-codes - */ -export declare enum GatewayCloseCodes { - /** - * We're not sure what went wrong. Try reconnecting? - */ - UnknownError = 4000, - /** - * You sent an invalid Gateway opcode or an invalid payload for an opcode. Don't do that! - * - * See https://discord.com/developers/docs/topics/gateway-events#payload-structure - */ - UnknownOpcode = 4001, - /** - * You sent an invalid payload to us. Don't do that! - * - * See https://discord.com/developers/docs/topics/gateway#sending-events - */ - DecodeError = 4002, - /** - * You sent us a payload prior to identifying - * - * See https://discord.com/developers/docs/topics/gateway-events#identify - */ - NotAuthenticated = 4003, - /** - * The account token sent with your identify payload is incorrect - * - * See https://discord.com/developers/docs/topics/gateway-events#identify - */ - AuthenticationFailed = 4004, - /** - * You sent more than one identify payload. Don't do that! - */ - AlreadyAuthenticated = 4005, - /** - * The sequence sent when resuming the session was invalid. Reconnect and start a new session - * - * See https://discord.com/developers/docs/topics/gateway-events#resume - */ - InvalidSeq = 4007, - /** - * Woah nelly! You're sending payloads to us too quickly. Slow it down! You will be disconnected on receiving this - */ - RateLimited = 4008, - /** - * Your session timed out. Reconnect and start a new one - */ - SessionTimedOut = 4009, - /** - * You sent us an invalid shard when identifying - * - * See https://discord.com/developers/docs/topics/gateway#sharding - */ - InvalidShard = 4010, - /** - * The session would have handled too many guilds - you are required to shard your connection in order to connect - * - * See https://discord.com/developers/docs/topics/gateway#sharding - */ - ShardingRequired = 4011, - /** - * You sent an invalid version for the gateway - */ - InvalidAPIVersion = 4012, - /** - * You sent an invalid intent for a Gateway Intent. You may have incorrectly calculated the bitwise value - * - * See https://discord.com/developers/docs/topics/gateway#gateway-intents - */ - InvalidIntents = 4013, - /** - * You sent a disallowed intent for a Gateway Intent. You may have tried to specify an intent that you have not - * enabled or are not whitelisted for - * - * See https://discord.com/developers/docs/topics/gateway#gateway-intents - * - * See https://discord.com/developers/docs/topics/gateway#privileged-intents - */ - DisallowedIntents = 4014 -} -/** - * https://discord.com/developers/docs/topics/gateway#list-of-intents - */ -export declare enum GatewayIntentBits { - Guilds = 1, - GuildMembers = 2, - GuildModeration = 4, - /** - * @deprecated This is the old name for {@apilink GatewayIntentBits#GuildModeration} - */ - GuildBans = 4, - GuildEmojisAndStickers = 8, - GuildIntegrations = 16, - GuildWebhooks = 32, - GuildInvites = 64, - GuildVoiceStates = 128, - GuildPresences = 256, - GuildMessages = 512, - GuildMessageReactions = 1024, - GuildMessageTyping = 2048, - DirectMessages = 4096, - DirectMessageReactions = 8192, - DirectMessageTyping = 16384, - GuildScheduledEvents = 65536, - AutoModerationConfiguration = 1048576, - AutoModerationExecution = 2097152, - GuildMessagePolls = 16777216, - DirectMessagePolls = 33554432 -} -/** - * https://discord.com/developers/docs/topics/gateway-events#receive-events - */ -export declare enum GatewayDispatchEvents { - ApplicationCommandPermissionsUpdate = "APPLICATION_COMMAND_PERMISSIONS_UPDATE", - ChannelCreate = "CHANNEL_CREATE", - ChannelDelete = "CHANNEL_DELETE", - ChannelPinsUpdate = "CHANNEL_PINS_UPDATE", - ChannelUpdate = "CHANNEL_UPDATE", - GuildBanAdd = "GUILD_BAN_ADD", - GuildBanRemove = "GUILD_BAN_REMOVE", - GuildCreate = "GUILD_CREATE", - GuildDelete = "GUILD_DELETE", - GuildEmojisUpdate = "GUILD_EMOJIS_UPDATE", - GuildIntegrationsUpdate = "GUILD_INTEGRATIONS_UPDATE", - GuildMemberAdd = "GUILD_MEMBER_ADD", - GuildMemberRemove = "GUILD_MEMBER_REMOVE", - GuildMembersChunk = "GUILD_MEMBERS_CHUNK", - GuildMemberUpdate = "GUILD_MEMBER_UPDATE", - GuildRoleCreate = "GUILD_ROLE_CREATE", - GuildRoleDelete = "GUILD_ROLE_DELETE", - GuildRoleUpdate = "GUILD_ROLE_UPDATE", - GuildStickersUpdate = "GUILD_STICKERS_UPDATE", - GuildUpdate = "GUILD_UPDATE", - IntegrationCreate = "INTEGRATION_CREATE", - IntegrationDelete = "INTEGRATION_DELETE", - IntegrationUpdate = "INTEGRATION_UPDATE", - InteractionCreate = "INTERACTION_CREATE", - InviteCreate = "INVITE_CREATE", - InviteDelete = "INVITE_DELETE", - MessageCreate = "MESSAGE_CREATE", - MessageDelete = "MESSAGE_DELETE", - MessageDeleteBulk = "MESSAGE_DELETE_BULK", - MessageReactionAdd = "MESSAGE_REACTION_ADD", - MessageReactionRemove = "MESSAGE_REACTION_REMOVE", - MessageReactionRemoveAll = "MESSAGE_REACTION_REMOVE_ALL", - MessageReactionRemoveEmoji = "MESSAGE_REACTION_REMOVE_EMOJI", - MessageUpdate = "MESSAGE_UPDATE", - PresenceUpdate = "PRESENCE_UPDATE", - StageInstanceCreate = "STAGE_INSTANCE_CREATE", - StageInstanceDelete = "STAGE_INSTANCE_DELETE", - StageInstanceUpdate = "STAGE_INSTANCE_UPDATE", - Ready = "READY", - Resumed = "RESUMED", - ThreadCreate = "THREAD_CREATE", - ThreadDelete = "THREAD_DELETE", - ThreadListSync = "THREAD_LIST_SYNC", - ThreadMembersUpdate = "THREAD_MEMBERS_UPDATE", - ThreadMemberUpdate = "THREAD_MEMBER_UPDATE", - ThreadUpdate = "THREAD_UPDATE", - TypingStart = "TYPING_START", - UserUpdate = "USER_UPDATE", - VoiceServerUpdate = "VOICE_SERVER_UPDATE", - VoiceStateUpdate = "VOICE_STATE_UPDATE", - WebhooksUpdate = "WEBHOOKS_UPDATE", - MessagePollVoteAdd = "MESSAGE_POLL_VOTE_ADD", - MessagePollVoteRemove = "MESSAGE_POLL_VOTE_REMOVE", - GuildScheduledEventCreate = "GUILD_SCHEDULED_EVENT_CREATE", - GuildScheduledEventUpdate = "GUILD_SCHEDULED_EVENT_UPDATE", - GuildScheduledEventDelete = "GUILD_SCHEDULED_EVENT_DELETE", - GuildScheduledEventUserAdd = "GUILD_SCHEDULED_EVENT_USER_ADD", - GuildScheduledEventUserRemove = "GUILD_SCHEDULED_EVENT_USER_REMOVE", - AutoModerationRuleCreate = "AUTO_MODERATION_RULE_CREATE", - AutoModerationRuleUpdate = "AUTO_MODERATION_RULE_UPDATE", - AutoModerationRuleDelete = "AUTO_MODERATION_RULE_DELETE", - AutoModerationActionExecution = "AUTO_MODERATION_ACTION_EXECUTION", - GuildAuditLogEntryCreate = "GUILD_AUDIT_LOG_ENTRY_CREATE", - EntitlementCreate = "ENTITLEMENT_CREATE", - EntitlementUpdate = "ENTITLEMENT_UPDATE", - EntitlementDelete = "ENTITLEMENT_DELETE" -} -export type GatewaySendPayload = GatewayHeartbeat | GatewayIdentify | GatewayRequestGuildMembers | GatewayResume | GatewayUpdatePresence | GatewayVoiceStateUpdate; -export type GatewayReceivePayload = GatewayDispatchPayload | GatewayHeartbeatAck | GatewayHeartbeatRequest | GatewayHello | GatewayInvalidSession | GatewayReconnect; -export type GatewayDispatchPayload = GatewayApplicationCommandPermissionsUpdateDispatch | GatewayAutoModerationActionExecutionDispatch | GatewayAutoModerationRuleCreateDispatch | GatewayAutoModerationRuleDeleteDispatch | GatewayAutoModerationRuleModifyDispatch | GatewayChannelModifyDispatch | GatewayChannelPinsUpdateDispatch | GatewayEntitlementModifyDispatch | GatewayGuildAuditLogEntryCreateDispatch | GatewayGuildBanModifyDispatch | GatewayGuildCreateDispatch | GatewayGuildDeleteDispatch | GatewayGuildEmojisUpdateDispatch | GatewayGuildIntegrationsUpdateDispatch | GatewayGuildMemberAddDispatch | GatewayGuildMemberRemoveDispatch | GatewayGuildMembersChunkDispatch | GatewayGuildMemberUpdateDispatch | GatewayGuildModifyDispatch | GatewayGuildRoleDeleteDispatch | GatewayGuildRoleModifyDispatch | GatewayGuildScheduledEventCreateDispatch | GatewayGuildScheduledEventDeleteDispatch | GatewayGuildScheduledEventUpdateDispatch | GatewayGuildScheduledEventUserAddDispatch | GatewayGuildScheduledEventUserRemoveDispatch | GatewayGuildStickersUpdateDispatch | GatewayIntegrationCreateDispatch | GatewayIntegrationDeleteDispatch | GatewayIntegrationUpdateDispatch | GatewayInteractionCreateDispatch | GatewayInviteCreateDispatch | GatewayInviteDeleteDispatch | GatewayMessageCreateDispatch | GatewayMessageDeleteBulkDispatch | GatewayMessageDeleteDispatch | GatewayMessagePollVoteAddDispatch | GatewayMessagePollVoteRemoveDispatch | GatewayMessageReactionAddDispatch | GatewayMessageReactionRemoveAllDispatch | GatewayMessageReactionRemoveDispatch | GatewayMessageReactionRemoveEmojiDispatch | GatewayMessageUpdateDispatch | GatewayPresenceUpdateDispatch | GatewayReadyDispatch | GatewayResumedDispatch | GatewayStageInstanceCreateDispatch | GatewayStageInstanceDeleteDispatch | GatewayStageInstanceUpdateDispatch | GatewayThreadCreateDispatch | GatewayThreadDeleteDispatch | GatewayThreadListSyncDispatch | GatewayThreadMembersUpdateDispatch | GatewayThreadMemberUpdateDispatch | GatewayThreadUpdateDispatch | GatewayTypingStartDispatch | GatewayUserUpdateDispatch | GatewayVoiceServerUpdateDispatch | GatewayVoiceStateUpdateDispatch | GatewayWebhooksUpdateDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#hello - */ -export interface GatewayHello extends NonDispatchPayload { - op: GatewayOpcodes.Hello; - d: GatewayHelloData; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#hello - */ -export interface GatewayHelloData { - /** - * The interval (in milliseconds) the client should heartbeat with - */ - heartbeat_interval: number; -} -/** - * https://discord.com/developers/docs/topics/gateway#sending-heartbeats - */ -export interface GatewayHeartbeatRequest extends NonDispatchPayload { - op: GatewayOpcodes.Heartbeat; - d: never; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#heartbeat - */ -export interface GatewayHeartbeatAck extends NonDispatchPayload { - op: GatewayOpcodes.HeartbeatAck; - d: never; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#invalid-session - */ -export interface GatewayInvalidSession extends NonDispatchPayload { - op: GatewayOpcodes.InvalidSession; - d: GatewayInvalidSessionData; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#invalid-session - */ -export type GatewayInvalidSessionData = boolean; -/** - * https://discord.com/developers/docs/topics/gateway-events#reconnect - */ -export interface GatewayReconnect extends NonDispatchPayload { - op: GatewayOpcodes.Reconnect; - d: never; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#ready - */ -export type GatewayReadyDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#ready - */ -export interface GatewayReadyDispatchData { - /** - * Gateway version - * - * See https://discord.com/developers/docs/reference#api-versioning - */ - v: number; - /** - * Information about the user including email - * - * See https://discord.com/developers/docs/resources/user#user-object - */ - user: APIUser; - /** - * The guilds the user is in - * - * See https://discord.com/developers/docs/resources/guild#unavailable-guild-object - */ - guilds: APIUnavailableGuild[]; - /** - * Used for resuming connections - */ - session_id: string; - /** - * Gateway url for resuming connections - */ - resume_gateway_url: string; - /** - * The shard information associated with this session, if sent when identifying - * - * See https://discord.com/developers/docs/topics/gateway#sharding - */ - shard?: [shard_id: number, shard_count: number]; - /** - * Contains `id` and `flags` - * - * See https://discord.com/developers/docs/resources/application#application-object - */ - application: Pick; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#resumed - */ -export type GatewayResumedDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-create - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-update - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-delete - */ -export type GatewayAutoModerationRuleModifyDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-create - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-update - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-delete - */ -export type GatewayAutoModerationRuleModifyDispatchData = APIAutoModerationRule; -/** - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-create - */ -export type GatewayAutoModerationRuleCreateDispatch = GatewayAutoModerationRuleModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-create - */ -export type GatewayAutoModerationRuleCreateDispatchData = GatewayAutoModerationRuleModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-update - */ -export type GatewayAutoModerationRuleUpdateDispatch = GatewayAutoModerationRuleModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-update - */ -export type GatewayAutoModerationRuleUpdateDispatchData = GatewayAutoModerationRuleModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-delete - */ -export type GatewayAutoModerationRuleDeleteDispatch = GatewayAutoModerationRuleModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-delete - */ -export type GatewayAutoModerationRuleDeleteDispatchData = GatewayAutoModerationRuleModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-action-execution - */ -export type GatewayAutoModerationActionExecutionDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-action-execution - */ -export interface GatewayAutoModerationActionExecutionDispatchData { - /** - * The id of the guild in which action was executed - */ - guild_id: Snowflake; - /** - * The action which was executed - */ - action: APIAutoModerationAction; - /** - * The id of the rule which action belongs to - */ - rule_id: Snowflake; - /** - * The trigger type of rule which was triggered - */ - rule_trigger_type: AutoModerationRuleTriggerType; - /** - * The id of the user which generated the content which triggered the rule - */ - user_id: Snowflake; - /** - * The id of the channel in which user content was posted - */ - channel_id?: Snowflake; - /** - * The id of any user message which content belongs to - * - * This field will not be present if message was blocked by AutoMod or content was not part of any message - */ - message_id?: Snowflake; - /** - * The id of any system auto moderation messages posted as a result of this action - * - * This field will not be present if this event does not correspond to an action with type {@link AutoModerationActionType.SendAlertMessage} - */ - alert_system_message_id?: Snowflake; - /** - * The user generated text content - * - * `MESSAGE_CONTENT` (`1 << 15`) gateway intent is required to receive non-empty values from this field - */ - content: string; - /** - * The word or phrase configured in the rule that triggered the rule - */ - matched_keyword: string | null; - /** - * The substring in content that triggered the rule - * - * `MESSAGE_CONTENT` (`1 << 15`) gateway intent is required to receive non-empty values from this field - */ - matched_content: string | null; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#application-command-permissions-update - */ -export type GatewayApplicationCommandPermissionsUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#application-command-permissions-update - */ -export interface GatewayApplicationCommandPermissionsUpdateDispatchData { - /** - * ID of the command or the application ID - */ - id: Snowflake; - /** - * ID of the application the command belongs to - */ - application_id: Snowflake; - /** - * ID of the guild - */ - guild_id: Snowflake; - /** - * Permissions for the command in the guild, max of 100 - */ - permissions: APIApplicationCommandPermission[]; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#channel-create - * https://discord.com/developers/docs/topics/gateway-events#channel-update - * https://discord.com/developers/docs/topics/gateway-events#channel-delete - */ -export type GatewayChannelModifyDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#channel-create - * https://discord.com/developers/docs/topics/gateway-events#channel-update - * https://discord.com/developers/docs/topics/gateway-events#channel-delete - */ -export type GatewayChannelModifyDispatchData = APIChannel; -/** - * https://discord.com/developers/docs/topics/gateway-events#channel-create - */ -export type GatewayChannelCreateDispatch = GatewayChannelModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#channel-create - */ -export type GatewayChannelCreateDispatchData = GatewayChannelModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#channel-update - */ -export type GatewayChannelUpdateDispatch = GatewayChannelModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#channel-update - */ -export type GatewayChannelUpdateDispatchData = GatewayChannelModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#channel-delete - */ -export type GatewayChannelDeleteDispatch = GatewayChannelModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#channel-delete - */ -export type GatewayChannelDeleteDispatchData = GatewayChannelModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#channel-pins-update - */ -export type GatewayChannelPinsUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#channel-pins-update - */ -export interface GatewayChannelPinsUpdateDispatchData { - /** - * The id of the guild - */ - guild_id?: Snowflake; - /** - * The id of the channel - */ - channel_id: Snowflake; - /** - * The time at which the most recent pinned message was pinned - */ - last_pin_timestamp?: string | null; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#entitlement-create - * https://discord.com/developers/docs/topics/gateway-events#entitlement-update - * https://discord.com/developers/docs/topics/gateway-events#entitlement-delete - */ -export type GatewayEntitlementModifyDispatchData = APIEntitlement; -/** - * https://discord.com/developers/docs/topics/gateway-events#entitlement-create - * https://discord.com/developers/docs/topics/gateway-events#entitlement-update - * https://discord.com/developers/docs/topics/gateway-events#entitlement-delete - */ -export type GatewayEntitlementModifyDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#entitlement-create - */ -export type GatewayEntitlementCreateDispatchData = GatewayEntitlementModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#entitlement-create - */ -export type GatewayEntitlementCreateDispatch = GatewayEntitlementModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#entitlement-update - */ -export type GatewayEntitlementUpdateDispatchData = GatewayEntitlementModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#entitlement-update - */ -export type GatewayEntitlementUpdateDispatch = GatewayEntitlementModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#entitlement-delete - */ -export type GatewayEntitlementDeleteDispatchData = GatewayEntitlementModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#entitlement-delete - */ -export type GatewayEntitlementDeleteDispatch = GatewayEntitlementModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-update - */ -export type GatewayGuildModifyDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-update - */ -export type GatewayGuildModifyDispatchData = APIGuild; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-create - */ -export type GatewayGuildCreateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-create - * https://discord.com/developers/docs/topics/gateway-events#guild-create-guild-create-extra-fields - */ -export interface GatewayGuildCreateDispatchData extends APIGuild { - /** - * When this guild was joined at - * - * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event** - */ - joined_at: string; - /** - * `true` if this is considered a large guild - * - * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event** - */ - large: boolean; - /** - * `true` if this guild is unavailable due to an outage - */ - unavailable?: boolean; - /** - * Total number of members in this guild - * - * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event** - */ - member_count: number; - /** - * States of members currently in voice channels; lacks the `guild_id` key - * - * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event** - * - * See https://discord.com/developers/docs/resources/voice#voice-state-object - */ - voice_states: Omit[]; - /** - * Users in the guild - * - * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event** - * - * See https://discord.com/developers/docs/resources/guild#guild-member-object - */ - members: APIGuildMember[]; - /** - * Channels in the guild - * - * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event** - * - * See https://discord.com/developers/docs/resources/channel#channel-object - */ - channels: APIChannel[]; - /** - * Threads in the guild - * - * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event** - * - * See https://discord.com/developers/docs/resources/channel#channel-object - */ - threads: APIChannel[]; - /** - * Presences of the members in the guild, will only include non-offline members if the size is greater than `large_threshold` - * - * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event** - * - * See https://discord.com/developers/docs/topics/gateway-events#presence-update - */ - presences: GatewayPresenceUpdate[]; - /** - * The stage instances in the guild - * - * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event** - * - * See https://discord.com/developers/docs/resources/stage-instance#stage-instance-object-stage-instance-structure - */ - stage_instances: APIStageInstance[]; - /** - * The scheduled events in the guild - * - * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event** - * - * https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object - */ - guild_scheduled_events: APIGuildScheduledEvent[]; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-update - */ -export type GatewayGuildUpdateDispatch = GatewayGuildModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-update - */ -export type GatewayGuildUpdateDispatchData = GatewayGuildModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-delete - */ -export type GatewayGuildDeleteDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-delete - */ -export type GatewayGuildDeleteDispatchData = APIUnavailableGuild; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-ban-add - * https://discord.com/developers/docs/topics/gateway-events#guild-ban-remove - */ -export type GatewayGuildBanModifyDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-ban-add - * https://discord.com/developers/docs/topics/gateway-events#guild-ban-remove - */ -export interface GatewayGuildBanModifyDispatchData { - /** - * ID of the guild - */ - guild_id: Snowflake; - /** - * The banned user - * - * See https://discord.com/developers/docs/resources/user#user-object - */ - user: APIUser; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-ban-add - */ -export type GatewayGuildBanAddDispatch = GatewayGuildBanModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-ban-add - */ -export type GatewayGuildBanAddDispatchData = GatewayGuildBanModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-ban-remove - */ -export type GatewayGuildBanRemoveDispatch = GatewayGuildBanModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-ban-remove - */ -export type GatewayGuildBanRemoveDispatchData = GatewayGuildBanModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-emojis-update - */ -export type GatewayGuildEmojisUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-emojis-update - */ -export interface GatewayGuildEmojisUpdateDispatchData { - /** - * ID of the guild - */ - guild_id: Snowflake; - /** - * Array of emojis - * - * See https://discord.com/developers/docs/resources/emoji#emoji-object - */ - emojis: APIEmoji[]; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-stickers-update - */ -export type GatewayGuildStickersUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-stickers-update - */ -export interface GatewayGuildStickersUpdateDispatchData { - /** - * ID of the guild - */ - guild_id: Snowflake; - /** - * Array of stickers - * - * See https://discord.com/developers/docs/resources/sticker#sticker-object - */ - stickers: APISticker[]; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-integrations-update - */ -export type GatewayGuildIntegrationsUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-integrations-update - */ -export interface GatewayGuildIntegrationsUpdateDispatchData { - /** - * ID of the guild whose integrations were updated - */ - guild_id: Snowflake; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-member-add - */ -export type GatewayGuildMemberAddDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-member-add - */ -export interface GatewayGuildMemberAddDispatchData extends APIGuildMember { - /** - * The id of the guild - */ - guild_id: Snowflake; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-member-remove - */ -export type GatewayGuildMemberRemoveDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-member-remove - */ -export interface GatewayGuildMemberRemoveDispatchData { - /** - * The id of the guild - */ - guild_id: Snowflake; - /** - * The user who was removed - * - * See https://discord.com/developers/docs/resources/user#user-object - */ - user: APIUser; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-member-update - */ -export type GatewayGuildMemberUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-member-update - */ -export type GatewayGuildMemberUpdateDispatchData = Nullable> & Omit & Partial> & Required> & { - /** - * The id of the guild - */ - guild_id: Snowflake; -}; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-members-chunk - */ -export type GatewayGuildMembersChunkDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#update-presence - */ -export type GatewayGuildMembersChunkPresence = Omit; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-members-chunk - */ -export interface GatewayGuildMembersChunkDispatchData { - /** - * The id of the guild - */ - guild_id: Snowflake; - /** - * Set of guild members - * - * See https://discord.com/developers/docs/resources/guild#guild-member-object - */ - members: APIGuildMember[]; - /** - * The chunk index in the expected chunks for this response (`0 <= chunk_index < chunk_count`) - */ - chunk_index: number; - /** - * The total number of expected chunks for this response - */ - chunk_count: number; - /** - * If passing an invalid id to `REQUEST_GUILD_MEMBERS`, it will be returned here - */ - not_found?: unknown[]; - /** - * If passing true to `REQUEST_GUILD_MEMBERS`, presences of the returned members will be here - * - * See https://discord.com/developers/docs/topics/gateway-events#update-presence - */ - presences?: GatewayGuildMembersChunkPresence[]; - /** - * The nonce used in the Guild Members Request - * - * See https://discord.com/developers/docs/topics/gateway-events#request-guild-members - */ - nonce?: string; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-role-create - * https://discord.com/developers/docs/topics/gateway-events#guild-role-update - */ -export type GatewayGuildRoleModifyDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-role-create - * https://discord.com/developers/docs/topics/gateway-events#guild-role-update - */ -export interface GatewayGuildRoleModifyDispatchData { - /** - * The id of the guild - */ - guild_id: Snowflake; - /** - * The role created or updated - * - * See https://discord.com/developers/docs/topics/permissions#role-object - */ - role: APIRole; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-role-create - */ -export type GatewayGuildRoleCreateDispatch = GatewayGuildRoleModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-role-create - */ -export type GatewayGuildRoleCreateDispatchData = GatewayGuildRoleModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-role-update - */ -export type GatewayGuildRoleUpdateDispatch = GatewayGuildRoleModifyDispatch; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-role-update - */ -export type GatewayGuildRoleUpdateDispatchData = GatewayGuildRoleModifyDispatchData; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-role-delete - */ -export type GatewayGuildRoleDeleteDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-role-delete - */ -export interface GatewayGuildRoleDeleteDispatchData { - /** - * The id of the guild - */ - guild_id: Snowflake; - /** - * The id of the role - */ - role_id: Snowflake; -} -export type GatewayGuildScheduledEventCreateDispatch = DataPayload; -export type GatewayGuildScheduledEventCreateDispatchData = APIGuildScheduledEvent; -export type GatewayGuildScheduledEventUpdateDispatch = DataPayload; -export type GatewayGuildScheduledEventUpdateDispatchData = APIGuildScheduledEvent; -export type GatewayGuildScheduledEventDeleteDispatch = DataPayload; -export type GatewayGuildScheduledEventDeleteDispatchData = APIGuildScheduledEvent; -export type GatewayGuildScheduledEventUserAddDispatch = DataPayload; -export interface GatewayGuildScheduledEventUserAddDispatchData { - guild_scheduled_event_id: Snowflake; - user_id: Snowflake; - guild_id: Snowflake; -} -export type GatewayGuildScheduledEventUserRemoveDispatch = DataPayload; -export interface GatewayGuildScheduledEventUserRemoveDispatchData { - guild_scheduled_event_id: Snowflake; - user_id: Snowflake; - guild_id: Snowflake; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#integration-create - */ -export type GatewayIntegrationCreateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#integration-create - */ -export type GatewayIntegrationCreateDispatchData = APIGuildIntegration & { - guild_id: Snowflake; -}; -/** - * https://discord.com/developers/docs/topics/gateway-events#integration-update - */ -export type GatewayIntegrationUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#integration-update - */ -export type GatewayIntegrationUpdateDispatchData = APIGuildIntegration & { - guild_id: Snowflake; -}; -/** - * https://discord.com/developers/docs/topics/gateway-events#integration-update - */ -export type GatewayIntegrationDeleteDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#integration-delete - */ -export interface GatewayIntegrationDeleteDispatchData { - /** - * Integration id - */ - id: Snowflake; - /** - * ID of the guild - */ - guild_id: Snowflake; - /** - * ID of the bot/OAuth2 application for this Discord integration - */ - application_id?: Snowflake; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#interaction-create - */ -export type GatewayInteractionCreateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#interaction-create - */ -export type GatewayInteractionCreateDispatchData = APIInteraction; -/** - * https://discord.com/developers/docs/topics/gateway-events#invite-create - */ -export type GatewayInviteCreateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#invite-create - */ -export interface GatewayInviteCreateDispatchData { - /** - * The channel the invite is for - */ - channel_id: Snowflake; - /** - * The unique invite code - * - * See https://discord.com/developers/docs/resources/invite#invite-object - */ - code: string; - /** - * The time at which the invite was created - */ - created_at: number; - /** - * The guild of the invite - */ - guild_id?: Snowflake; - /** - * The user that created the invite - * - * See https://discord.com/developers/docs/resources/user#user-object - */ - inviter?: APIUser; - /** - * How long the invite is valid for (in seconds) - */ - max_age: number; - /** - * The maximum number of times the invite can be used - */ - max_uses: number; - /** - * The type of target for this voice channel invite - * - * See https://discord.com/developers/docs/resources/invite#invite-object-invite-target-types - */ - target_type?: InviteTargetType; - /** - * The user whose stream to display for this voice channel stream invite - * - * See https://discord.com/developers/docs/resources/user#user-object - */ - target_user?: APIUser; - /** - * The embedded application to open for this voice channel embedded application invite - */ - target_application?: Partial; - /** - * Whether or not the invite is temporary (invited users will be kicked on disconnect unless they're assigned a role) - */ - temporary: boolean; - /** - * How many times the invite has been used (always will be `0`) - */ - uses: 0; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#invite-delete - */ -export type GatewayInviteDeleteDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#invite-delete - */ -export interface GatewayInviteDeleteDispatchData { - /** - * The channel of the invite - */ - channel_id: Snowflake; - /** - * The guild of the invite - */ - guild_id?: Snowflake; - /** - * The unique invite code - * - * See https://discord.com/developers/docs/resources/invite#invite-object - */ - code: string; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#message-create - */ -export type GatewayMessageCreateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-create - */ -export type GatewayMessageCreateDispatchData = GatewayMessageEventExtraFields & Omit; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-update - */ -export type GatewayMessageUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-update - */ -export type GatewayMessageUpdateDispatchData = GatewayMessageEventExtraFields & Omit, 'mentions'> & { - /** - * ID of the message - */ - id: Snowflake; - /** - * ID of the channel the message was sent in - */ - channel_id: Snowflake; -}; -export interface GatewayMessageEventExtraFields { - /** - * ID of the guild the message was sent in - */ - guild_id?: Snowflake; - /** - * Member properties for this message's author - * - * The member object exists in `MESSAGE_CREATE` and `MESSAGE_UPDATE` events - * from text-based guild channels - * - * See https://discord.com/developers/docs/resources/guild#guild-member-object - */ - member?: Omit; - /** - * Users specifically mentioned in the message - * - * The `member` field is only present in `MESSAGE_CREATE` and `MESSAGE_UPDATE` events - * from text-based guild channels - * - * See https://discord.com/developers/docs/resources/user#user-object - * See https://discord.com/developers/docs/resources/guild#guild-member-object - */ - mentions: (APIUser & { - member?: Omit; - })[]; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#message-delete - */ -export type GatewayMessageDeleteDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-delete - */ -export interface GatewayMessageDeleteDispatchData { - /** - * The id of the message - */ - id: Snowflake; - /** - * The id of the channel - */ - channel_id: Snowflake; - /** - * The id of the guild - */ - guild_id?: Snowflake; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#message-delete-bulk - */ -export type GatewayMessageDeleteBulkDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-delete-bulk - */ -export interface GatewayMessageDeleteBulkDispatchData { - /** - * The ids of the messages - */ - ids: Snowflake[]; - /** - * The id of the channel - */ - channel_id: Snowflake; - /** - * The id of the guild - */ - guild_id?: Snowflake; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#message-reaction-add - */ -export type GatewayMessageReactionAddDispatch = ReactionData; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-reaction-add - */ -export type GatewayMessageReactionAddDispatchData = GatewayMessageReactionAddDispatch['d']; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-reaction-remove - */ -export type GatewayMessageReactionRemoveDispatch = ReactionData; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-reaction-remove - */ -export type GatewayMessageReactionRemoveDispatchData = GatewayMessageReactionRemoveDispatch['d']; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-reaction-remove-all - */ -export type GatewayMessageReactionRemoveAllDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-reaction-remove-all - */ -export type GatewayMessageReactionRemoveAllDispatchData = MessageReactionRemoveData; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-reaction-remove-emoji - */ -export type GatewayMessageReactionRemoveEmojiDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-reaction-remove-emoji - */ -export interface GatewayMessageReactionRemoveEmojiDispatchData extends MessageReactionRemoveData { - /** - * The emoji that was removed - */ - emoji: APIEmoji; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#presence-update - */ -export type GatewayPresenceUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#presence-update - */ -export type GatewayPresenceUpdateDispatchData = RawGatewayPresenceUpdate; -/** - * https://discord.com/developers/docs/topics/gateway-events#stage-instance-create - */ -export type GatewayStageInstanceCreateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#stage-instance-create - */ -export type GatewayStageInstanceCreateDispatchData = APIStageInstance; -/** - * https://discord.com/developers/docs/topics/gateway-events#stage-instance-delete - */ -export type GatewayStageInstanceDeleteDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#stage-instance-delete - */ -export type GatewayStageInstanceDeleteDispatchData = APIStageInstance; -/** - * https://discord.com/developers/docs/topics/gateway-events#stage-instance-update - */ -export type GatewayStageInstanceUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#stage-instance-update - */ -export type GatewayStageInstanceUpdateDispatchData = APIStageInstance; -/** - * https://discord.com/developers/docs/topics/gateway-events#thread-list-sync - */ -export type GatewayThreadListSyncDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#thread-list-sync - */ -export type GatewayThreadListSyncDispatchData = RawGatewayThreadListSync; -/** - * https://discord.com/developers/docs/topics/gateway-events#thread-members-update - */ -export type GatewayThreadMembersUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#thread-members-update - */ -export type GatewayThreadMembersUpdateDispatchData = RawGatewayThreadMembersUpdate; -/** - * https://discord.com/developers/docs/topics/gateway-events#thread-member-update - */ -export type GatewayThreadMemberUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#thread-member-update - */ -export type GatewayThreadMemberUpdateDispatchData = APIThreadMember & { - guild_id: Snowflake; -}; -/** - * @deprecated This type doesn't accurately reflect the Discord API. - * Use {@apilink GatewayThreadCreateDispatch}, - * {@apilink GatewayThreadUpdateDispatch}, or - * {@apilink GatewayThreadDeleteDispatch} instead. - * https://discord.com/developers/docs/topics/gateway-events#thread-create - * https://discord.com/developers/docs/topics/gateway-events#thread-update - * https://discord.com/developers/docs/topics/gateway-events#thread-delete - */ -export type GatewayThreadModifyDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#thread-create - */ -export type GatewayThreadCreateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#thread-create - */ -export interface GatewayThreadCreateDispatchData extends APIThreadChannel { - /** - * Whether the thread is newly created or not. - */ - newly_created?: true; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#thread-update - */ -export type GatewayThreadUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#thread-update - */ -export type GatewayThreadUpdateDispatchData = APIThreadChannel; -/** - * https://discord.com/developers/docs/topics/gateway-events#thread-delete - */ -export type GatewayThreadDeleteDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#thread-delete - */ -export interface GatewayThreadDeleteDispatchData { - /** - * The id of the channel - */ - id: Snowflake; - /** - * The id of the guild - */ - guild_id: Snowflake; - /** - * The id of the parent channel of the thread - */ - parent_id: Snowflake; - /** - * The type of the channel - * - * See https://discord.com/developers/docs/resources/channel#channel-object-channel-types - */ - type: ChannelType; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#typing-start - */ -export type GatewayTypingStartDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#typing-start - */ -export interface GatewayTypingStartDispatchData { - /** - * The id of the channel - */ - channel_id: Snowflake; - /** - * The id of the guild - */ - guild_id?: Snowflake; - /** - * The id of the user - */ - user_id: Snowflake; - /** - * Unix time (in seconds) of when the user started typing - */ - timestamp: number; - /** - * The member who started typing if this happened in a guild - * - * See https://discord.com/developers/docs/resources/guild#guild-member-object - */ - member?: APIGuildMember; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#user-update - */ -export type GatewayUserUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#user-update - */ -export type GatewayUserUpdateDispatchData = APIUser; -/** - * https://discord.com/developers/docs/topics/gateway-events#voice-state-update - */ -export type GatewayVoiceStateUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#voice-state-update - */ -export type GatewayVoiceStateUpdateDispatchData = APIVoiceState; -/** - * https://discord.com/developers/docs/topics/gateway-events#voice-server-update - */ -export type GatewayVoiceServerUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#voice-server-update - */ -export interface GatewayVoiceServerUpdateDispatchData { - /** - * Voice connection token - */ - token: string; - /** - * The guild this voice server update is for - */ - guild_id: Snowflake; - /** - * The voice server host - * - * A `null` endpoint means that the voice server allocated has gone away and is trying to be reallocated. - * You should attempt to disconnect from the currently connected voice server, and not attempt to reconnect - * until a new voice server is allocated - */ - endpoint: string | null; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#webhooks-update - */ -export type GatewayWebhooksUpdateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#webhooks-update - */ -export interface GatewayWebhooksUpdateDispatchData { - /** - * The id of the guild - */ - guild_id: Snowflake; - /** - * The id of the channel - */ - channel_id: Snowflake; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-audit-log-entry-create - */ -export type GatewayGuildAuditLogEntryCreateDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#guild-audit-log-entry-create - */ -export interface GatewayGuildAuditLogEntryCreateDispatchData extends APIAuditLogEntry { - /** - * ID of the guild - */ - guild_id: Snowflake; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#message-poll-vote-add - */ -export type GatewayMessagePollVoteAddDispatch = DataPayload; -/** - * https://discord.com/developers/docs/topics/gateway-events#message-poll-vote-remove - */ -export type GatewayMessagePollVoteRemoveDispatch = DataPayload; -export interface GatewayMessagePollVoteDispatchData { - /** - * ID of the user - */ - user_id: Snowflake; - /** - * ID of the channel - */ - channel_id: Snowflake; - /** - * ID of the message - */ - message_id: Snowflake; - /** - * ID of the guild - */ - guild_id?: Snowflake; - /** - * ID of the answer - */ - answer_id: number; -} -/** - * https://discord.com/developers/docs/topics/gateway#sending-heartbeats - */ -export interface GatewayHeartbeat { - op: GatewayOpcodes.Heartbeat; - d: GatewayHeartbeatData; -} -/** - * https://discord.com/developers/docs/topics/gateway#sending-heartbeats - */ -export type GatewayHeartbeatData = number | null; -/** - * https://discord.com/developers/docs/topics/gateway-events#identify - */ -export interface GatewayIdentify { - op: GatewayOpcodes.Identify; - d: GatewayIdentifyData; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#identify - */ -export interface GatewayIdentifyData { - /** - * Authentication token - */ - token: string; - /** - * Connection properties - * - * See https://discord.com/developers/docs/topics/gateway-events#identify-identify-connection-properties - */ - properties: GatewayIdentifyProperties; - /** - * Whether this connection supports compression of packets - * - * @default false - */ - compress?: boolean; - /** - * Value between 50 and 250, total number of members where the gateway will stop sending - * offline members in the guild member list - * - * @default 50 - */ - large_threshold?: number; - /** - * Used for Guild Sharding - * - * See https://discord.com/developers/docs/topics/gateway#sharding - */ - shard?: [shard_id: number, shard_count: number]; - /** - * Presence structure for initial presence information - * - * See https://discord.com/developers/docs/topics/gateway-events#update-presence - */ - presence?: GatewayPresenceUpdateData; - /** - * The Gateway Intents you wish to receive - * - * See https://discord.com/developers/docs/topics/gateway#gateway-intents - */ - intents: number; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#identify-identify-connection-properties - */ -export interface GatewayIdentifyProperties { - /** - * Your operating system - */ - os: string; - /** - * Your library name - */ - browser: string; - /** - * Your library name - */ - device: string; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#resume - */ -export interface GatewayResume { - op: GatewayOpcodes.Resume; - d: GatewayResumeData; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#resume - */ -export interface GatewayResumeData { - /** - * Session token - */ - token: string; - /** - * Session id - */ - session_id: string; - /** - * Last sequence number received - */ - seq: number; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#request-guild-members - */ -export interface GatewayRequestGuildMembers { - op: GatewayOpcodes.RequestGuildMembers; - d: GatewayRequestGuildMembersData; -} -export interface GatewayRequestGuildMembersDataBase { - /** - * ID of the guild to get members for - */ - guild_id: Snowflake; - /** - * Used to specify if we want the presences of the matched members - */ - presences?: boolean; - /** - * Nonce to identify the Guild Members Chunk response - * - * Nonce can only be up to 32 bytes. If you send an invalid nonce it will be ignored and the reply member_chunk(s) will not have a `nonce` set. - * - * See https://discord.com/developers/docs/topics/gateway-events#guild-members-chunk - */ - nonce?: string; -} -export interface GatewayRequestGuildMembersDataWithUserIds extends GatewayRequestGuildMembersDataBase { - /** - * Used to specify which users you wish to fetch - */ - user_ids: Snowflake | Snowflake[]; -} -export interface GatewayRequestGuildMembersDataWithQuery extends GatewayRequestGuildMembersDataBase { - /** - * String that username starts with, or an empty string to return all members - */ - query: string; - /** - * Maximum number of members to send matching the `query`; - * a limit of `0` can be used with an empty string `query` to return all members - */ - limit: number; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#request-guild-members - */ -export type GatewayRequestGuildMembersData = GatewayRequestGuildMembersDataWithQuery | GatewayRequestGuildMembersDataWithUserIds; -/** - * https://discord.com/developers/docs/topics/gateway-events#update-voice-state - */ -export interface GatewayVoiceStateUpdate { - op: GatewayOpcodes.VoiceStateUpdate; - d: GatewayVoiceStateUpdateData; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#update-voice-state - */ -export interface GatewayVoiceStateUpdateData { - /** - * ID of the guild - */ - guild_id: Snowflake; - /** - * ID of the voice channel client wants to join (`null` if disconnecting) - */ - channel_id: Snowflake | null; - /** - * Is the client muted - */ - self_mute: boolean; - /** - * Is the client deafened - */ - self_deaf: boolean; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#update-presence - */ -export interface GatewayUpdatePresence { - op: GatewayOpcodes.PresenceUpdate; - d: GatewayPresenceUpdateData; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#update-presence-gateway-presence-update-structure - */ -export interface GatewayPresenceUpdateData { - /** - * Unix time (in milliseconds) of when the client went idle, or `null` if the client is not idle - */ - since: number | null; - /** - * The user's activities - * - * See https://discord.com/developers/docs/topics/gateway-events#activity-object - */ - activities: GatewayActivityUpdateData[]; - /** - * The user's new status - * - * See https://discord.com/developers/docs/topics/gateway-events#update-presence-status-types - */ - status: PresenceUpdateStatus; - /** - * Whether or not the client is afk - */ - afk: boolean; -} -/** - * https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-structure - */ -export type GatewayActivityUpdateData = Pick; -interface BasePayload { - /** - * Opcode for the payload - */ - op: GatewayOpcodes; - /** - * Event data - */ - d?: unknown; - /** - * Sequence number, used for resuming sessions and heartbeats - */ - s: number; - /** - * The event name for this payload - */ - t?: string; -} -type NonDispatchPayload = Omit & { - t: null; - s: null; -}; -interface DataPayload extends BasePayload { - op: GatewayOpcodes.Dispatch; - t: Event; - d: D; -} -type ReactionData = DataPayload>; -interface MessageReactionRemoveData { - /** - * The id of the channel - */ - channel_id: Snowflake; - /** - * The id of the message - */ - message_id: Snowflake; - /** - * The id of the guild - */ - guild_id?: Snowflake; -} -//# sourceMappingURL=v9.d.ts.map \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v9.d.ts.map b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v9.d.ts.map deleted file mode 100644 index 288f59a..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v9.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"v9.d.ts","sourceRoot":"","sources":["v9.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v9.js b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v9.js deleted file mode 100644 index 9bcc597..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v9.js +++ /dev/null @@ -1,260 +0,0 @@ -"use strict"; -/** - * Types extracted from https://discord.com/developers/docs/topics/gateway - */ -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.GatewayDispatchEvents = exports.GatewayIntentBits = exports.GatewayCloseCodes = exports.GatewayOpcodes = exports.GatewayVersion = void 0; -__exportStar(require("./common"), exports); -exports.GatewayVersion = '9'; -/** - * https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-opcodes - */ -var GatewayOpcodes; -(function (GatewayOpcodes) { - /** - * An event was dispatched - */ - GatewayOpcodes[GatewayOpcodes["Dispatch"] = 0] = "Dispatch"; - /** - * A bidirectional opcode to maintain an active gateway connection. - * Fired periodically by the client, or fired by the gateway to request an immediate heartbeat from the client. - */ - GatewayOpcodes[GatewayOpcodes["Heartbeat"] = 1] = "Heartbeat"; - /** - * Starts a new session during the initial handshake - */ - GatewayOpcodes[GatewayOpcodes["Identify"] = 2] = "Identify"; - /** - * Update the client's presence - */ - GatewayOpcodes[GatewayOpcodes["PresenceUpdate"] = 3] = "PresenceUpdate"; - /** - * Used to join/leave or move between voice channels - */ - GatewayOpcodes[GatewayOpcodes["VoiceStateUpdate"] = 4] = "VoiceStateUpdate"; - /** - * Resume a previous session that was disconnected - */ - GatewayOpcodes[GatewayOpcodes["Resume"] = 6] = "Resume"; - /** - * You should attempt to reconnect and resume immediately - */ - GatewayOpcodes[GatewayOpcodes["Reconnect"] = 7] = "Reconnect"; - /** - * Request information about offline guild members in a large guild - */ - GatewayOpcodes[GatewayOpcodes["RequestGuildMembers"] = 8] = "RequestGuildMembers"; - /** - * The session has been invalidated. You should reconnect and identify/resume accordingly - */ - GatewayOpcodes[GatewayOpcodes["InvalidSession"] = 9] = "InvalidSession"; - /** - * Sent immediately after connecting, contains the `heartbeat_interval` to use - */ - GatewayOpcodes[GatewayOpcodes["Hello"] = 10] = "Hello"; - /** - * Sent in response to receiving a heartbeat to acknowledge that it has been received - */ - GatewayOpcodes[GatewayOpcodes["HeartbeatAck"] = 11] = "HeartbeatAck"; -})(GatewayOpcodes || (exports.GatewayOpcodes = GatewayOpcodes = {})); -/** - * https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-close-event-codes - */ -var GatewayCloseCodes; -(function (GatewayCloseCodes) { - /** - * We're not sure what went wrong. Try reconnecting? - */ - GatewayCloseCodes[GatewayCloseCodes["UnknownError"] = 4000] = "UnknownError"; - /** - * You sent an invalid Gateway opcode or an invalid payload for an opcode. Don't do that! - * - * See https://discord.com/developers/docs/topics/gateway-events#payload-structure - */ - GatewayCloseCodes[GatewayCloseCodes["UnknownOpcode"] = 4001] = "UnknownOpcode"; - /** - * You sent an invalid payload to us. Don't do that! - * - * See https://discord.com/developers/docs/topics/gateway#sending-events - */ - GatewayCloseCodes[GatewayCloseCodes["DecodeError"] = 4002] = "DecodeError"; - /** - * You sent us a payload prior to identifying - * - * See https://discord.com/developers/docs/topics/gateway-events#identify - */ - GatewayCloseCodes[GatewayCloseCodes["NotAuthenticated"] = 4003] = "NotAuthenticated"; - /** - * The account token sent with your identify payload is incorrect - * - * See https://discord.com/developers/docs/topics/gateway-events#identify - */ - GatewayCloseCodes[GatewayCloseCodes["AuthenticationFailed"] = 4004] = "AuthenticationFailed"; - /** - * You sent more than one identify payload. Don't do that! - */ - GatewayCloseCodes[GatewayCloseCodes["AlreadyAuthenticated"] = 4005] = "AlreadyAuthenticated"; - /** - * The sequence sent when resuming the session was invalid. Reconnect and start a new session - * - * See https://discord.com/developers/docs/topics/gateway-events#resume - */ - GatewayCloseCodes[GatewayCloseCodes["InvalidSeq"] = 4007] = "InvalidSeq"; - /** - * Woah nelly! You're sending payloads to us too quickly. Slow it down! You will be disconnected on receiving this - */ - GatewayCloseCodes[GatewayCloseCodes["RateLimited"] = 4008] = "RateLimited"; - /** - * Your session timed out. Reconnect and start a new one - */ - GatewayCloseCodes[GatewayCloseCodes["SessionTimedOut"] = 4009] = "SessionTimedOut"; - /** - * You sent us an invalid shard when identifying - * - * See https://discord.com/developers/docs/topics/gateway#sharding - */ - GatewayCloseCodes[GatewayCloseCodes["InvalidShard"] = 4010] = "InvalidShard"; - /** - * The session would have handled too many guilds - you are required to shard your connection in order to connect - * - * See https://discord.com/developers/docs/topics/gateway#sharding - */ - GatewayCloseCodes[GatewayCloseCodes["ShardingRequired"] = 4011] = "ShardingRequired"; - /** - * You sent an invalid version for the gateway - */ - GatewayCloseCodes[GatewayCloseCodes["InvalidAPIVersion"] = 4012] = "InvalidAPIVersion"; - /** - * You sent an invalid intent for a Gateway Intent. You may have incorrectly calculated the bitwise value - * - * See https://discord.com/developers/docs/topics/gateway#gateway-intents - */ - GatewayCloseCodes[GatewayCloseCodes["InvalidIntents"] = 4013] = "InvalidIntents"; - /** - * You sent a disallowed intent for a Gateway Intent. You may have tried to specify an intent that you have not - * enabled or are not whitelisted for - * - * See https://discord.com/developers/docs/topics/gateway#gateway-intents - * - * See https://discord.com/developers/docs/topics/gateway#privileged-intents - */ - GatewayCloseCodes[GatewayCloseCodes["DisallowedIntents"] = 4014] = "DisallowedIntents"; -})(GatewayCloseCodes || (exports.GatewayCloseCodes = GatewayCloseCodes = {})); -/** - * https://discord.com/developers/docs/topics/gateway#list-of-intents - */ -var GatewayIntentBits; -(function (GatewayIntentBits) { - GatewayIntentBits[GatewayIntentBits["Guilds"] = 1] = "Guilds"; - GatewayIntentBits[GatewayIntentBits["GuildMembers"] = 2] = "GuildMembers"; - GatewayIntentBits[GatewayIntentBits["GuildModeration"] = 4] = "GuildModeration"; - /** - * @deprecated This is the old name for {@apilink GatewayIntentBits#GuildModeration} - */ - GatewayIntentBits[GatewayIntentBits["GuildBans"] = 4] = "GuildBans"; - GatewayIntentBits[GatewayIntentBits["GuildEmojisAndStickers"] = 8] = "GuildEmojisAndStickers"; - GatewayIntentBits[GatewayIntentBits["GuildIntegrations"] = 16] = "GuildIntegrations"; - GatewayIntentBits[GatewayIntentBits["GuildWebhooks"] = 32] = "GuildWebhooks"; - GatewayIntentBits[GatewayIntentBits["GuildInvites"] = 64] = "GuildInvites"; - GatewayIntentBits[GatewayIntentBits["GuildVoiceStates"] = 128] = "GuildVoiceStates"; - GatewayIntentBits[GatewayIntentBits["GuildPresences"] = 256] = "GuildPresences"; - GatewayIntentBits[GatewayIntentBits["GuildMessages"] = 512] = "GuildMessages"; - GatewayIntentBits[GatewayIntentBits["GuildMessageReactions"] = 1024] = "GuildMessageReactions"; - GatewayIntentBits[GatewayIntentBits["GuildMessageTyping"] = 2048] = "GuildMessageTyping"; - GatewayIntentBits[GatewayIntentBits["DirectMessages"] = 4096] = "DirectMessages"; - GatewayIntentBits[GatewayIntentBits["DirectMessageReactions"] = 8192] = "DirectMessageReactions"; - GatewayIntentBits[GatewayIntentBits["DirectMessageTyping"] = 16384] = "DirectMessageTyping"; - GatewayIntentBits[GatewayIntentBits["GuildScheduledEvents"] = 65536] = "GuildScheduledEvents"; - GatewayIntentBits[GatewayIntentBits["AutoModerationConfiguration"] = 1048576] = "AutoModerationConfiguration"; - GatewayIntentBits[GatewayIntentBits["AutoModerationExecution"] = 2097152] = "AutoModerationExecution"; - GatewayIntentBits[GatewayIntentBits["GuildMessagePolls"] = 16777216] = "GuildMessagePolls"; - GatewayIntentBits[GatewayIntentBits["DirectMessagePolls"] = 33554432] = "DirectMessagePolls"; -})(GatewayIntentBits || (exports.GatewayIntentBits = GatewayIntentBits = {})); -/** - * https://discord.com/developers/docs/topics/gateway-events#receive-events - */ -var GatewayDispatchEvents; -(function (GatewayDispatchEvents) { - GatewayDispatchEvents["ApplicationCommandPermissionsUpdate"] = "APPLICATION_COMMAND_PERMISSIONS_UPDATE"; - GatewayDispatchEvents["ChannelCreate"] = "CHANNEL_CREATE"; - GatewayDispatchEvents["ChannelDelete"] = "CHANNEL_DELETE"; - GatewayDispatchEvents["ChannelPinsUpdate"] = "CHANNEL_PINS_UPDATE"; - GatewayDispatchEvents["ChannelUpdate"] = "CHANNEL_UPDATE"; - GatewayDispatchEvents["GuildBanAdd"] = "GUILD_BAN_ADD"; - GatewayDispatchEvents["GuildBanRemove"] = "GUILD_BAN_REMOVE"; - GatewayDispatchEvents["GuildCreate"] = "GUILD_CREATE"; - GatewayDispatchEvents["GuildDelete"] = "GUILD_DELETE"; - GatewayDispatchEvents["GuildEmojisUpdate"] = "GUILD_EMOJIS_UPDATE"; - GatewayDispatchEvents["GuildIntegrationsUpdate"] = "GUILD_INTEGRATIONS_UPDATE"; - GatewayDispatchEvents["GuildMemberAdd"] = "GUILD_MEMBER_ADD"; - GatewayDispatchEvents["GuildMemberRemove"] = "GUILD_MEMBER_REMOVE"; - GatewayDispatchEvents["GuildMembersChunk"] = "GUILD_MEMBERS_CHUNK"; - GatewayDispatchEvents["GuildMemberUpdate"] = "GUILD_MEMBER_UPDATE"; - GatewayDispatchEvents["GuildRoleCreate"] = "GUILD_ROLE_CREATE"; - GatewayDispatchEvents["GuildRoleDelete"] = "GUILD_ROLE_DELETE"; - GatewayDispatchEvents["GuildRoleUpdate"] = "GUILD_ROLE_UPDATE"; - GatewayDispatchEvents["GuildStickersUpdate"] = "GUILD_STICKERS_UPDATE"; - GatewayDispatchEvents["GuildUpdate"] = "GUILD_UPDATE"; - GatewayDispatchEvents["IntegrationCreate"] = "INTEGRATION_CREATE"; - GatewayDispatchEvents["IntegrationDelete"] = "INTEGRATION_DELETE"; - GatewayDispatchEvents["IntegrationUpdate"] = "INTEGRATION_UPDATE"; - GatewayDispatchEvents["InteractionCreate"] = "INTERACTION_CREATE"; - GatewayDispatchEvents["InviteCreate"] = "INVITE_CREATE"; - GatewayDispatchEvents["InviteDelete"] = "INVITE_DELETE"; - GatewayDispatchEvents["MessageCreate"] = "MESSAGE_CREATE"; - GatewayDispatchEvents["MessageDelete"] = "MESSAGE_DELETE"; - GatewayDispatchEvents["MessageDeleteBulk"] = "MESSAGE_DELETE_BULK"; - GatewayDispatchEvents["MessageReactionAdd"] = "MESSAGE_REACTION_ADD"; - GatewayDispatchEvents["MessageReactionRemove"] = "MESSAGE_REACTION_REMOVE"; - GatewayDispatchEvents["MessageReactionRemoveAll"] = "MESSAGE_REACTION_REMOVE_ALL"; - GatewayDispatchEvents["MessageReactionRemoveEmoji"] = "MESSAGE_REACTION_REMOVE_EMOJI"; - GatewayDispatchEvents["MessageUpdate"] = "MESSAGE_UPDATE"; - GatewayDispatchEvents["PresenceUpdate"] = "PRESENCE_UPDATE"; - GatewayDispatchEvents["StageInstanceCreate"] = "STAGE_INSTANCE_CREATE"; - GatewayDispatchEvents["StageInstanceDelete"] = "STAGE_INSTANCE_DELETE"; - GatewayDispatchEvents["StageInstanceUpdate"] = "STAGE_INSTANCE_UPDATE"; - GatewayDispatchEvents["Ready"] = "READY"; - GatewayDispatchEvents["Resumed"] = "RESUMED"; - GatewayDispatchEvents["ThreadCreate"] = "THREAD_CREATE"; - GatewayDispatchEvents["ThreadDelete"] = "THREAD_DELETE"; - GatewayDispatchEvents["ThreadListSync"] = "THREAD_LIST_SYNC"; - GatewayDispatchEvents["ThreadMembersUpdate"] = "THREAD_MEMBERS_UPDATE"; - GatewayDispatchEvents["ThreadMemberUpdate"] = "THREAD_MEMBER_UPDATE"; - GatewayDispatchEvents["ThreadUpdate"] = "THREAD_UPDATE"; - GatewayDispatchEvents["TypingStart"] = "TYPING_START"; - GatewayDispatchEvents["UserUpdate"] = "USER_UPDATE"; - GatewayDispatchEvents["VoiceServerUpdate"] = "VOICE_SERVER_UPDATE"; - GatewayDispatchEvents["VoiceStateUpdate"] = "VOICE_STATE_UPDATE"; - GatewayDispatchEvents["WebhooksUpdate"] = "WEBHOOKS_UPDATE"; - GatewayDispatchEvents["MessagePollVoteAdd"] = "MESSAGE_POLL_VOTE_ADD"; - GatewayDispatchEvents["MessagePollVoteRemove"] = "MESSAGE_POLL_VOTE_REMOVE"; - GatewayDispatchEvents["GuildScheduledEventCreate"] = "GUILD_SCHEDULED_EVENT_CREATE"; - GatewayDispatchEvents["GuildScheduledEventUpdate"] = "GUILD_SCHEDULED_EVENT_UPDATE"; - GatewayDispatchEvents["GuildScheduledEventDelete"] = "GUILD_SCHEDULED_EVENT_DELETE"; - GatewayDispatchEvents["GuildScheduledEventUserAdd"] = "GUILD_SCHEDULED_EVENT_USER_ADD"; - GatewayDispatchEvents["GuildScheduledEventUserRemove"] = "GUILD_SCHEDULED_EVENT_USER_REMOVE"; - GatewayDispatchEvents["AutoModerationRuleCreate"] = "AUTO_MODERATION_RULE_CREATE"; - GatewayDispatchEvents["AutoModerationRuleUpdate"] = "AUTO_MODERATION_RULE_UPDATE"; - GatewayDispatchEvents["AutoModerationRuleDelete"] = "AUTO_MODERATION_RULE_DELETE"; - GatewayDispatchEvents["AutoModerationActionExecution"] = "AUTO_MODERATION_ACTION_EXECUTION"; - GatewayDispatchEvents["GuildAuditLogEntryCreate"] = "GUILD_AUDIT_LOG_ENTRY_CREATE"; - GatewayDispatchEvents["EntitlementCreate"] = "ENTITLEMENT_CREATE"; - GatewayDispatchEvents["EntitlementUpdate"] = "ENTITLEMENT_UPDATE"; - GatewayDispatchEvents["EntitlementDelete"] = "ENTITLEMENT_DELETE"; -})(GatewayDispatchEvents || (exports.GatewayDispatchEvents = GatewayDispatchEvents = {})); -// #endregion Shared -//# sourceMappingURL=v9.js.map \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v9.js.map b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v9.js.map deleted file mode 100644 index a24a5ab..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v9.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"v9.js","sourceRoot":"","sources":["v9.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v9.mjs b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v9.mjs deleted file mode 100644 index 27b1baf..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v9.mjs +++ /dev/null @@ -1,8 +0,0 @@ -import mod from "./v9.js"; - -export default mod; -export const GatewayCloseCodes = mod.GatewayCloseCodes; -export const GatewayDispatchEvents = mod.GatewayDispatchEvents; -export const GatewayIntentBits = mod.GatewayIntentBits; -export const GatewayOpcodes = mod.GatewayOpcodes; -export const GatewayVersion = mod.GatewayVersion; diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/globals.d.ts b/node_modules/@discordjs/builders/node_modules/discord-api-types/globals.d.ts deleted file mode 100644 index bd4145c..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/globals.d.ts +++ /dev/null @@ -1,92 +0,0 @@ -/** - * https://discord.com/developers/docs/reference#snowflakes - */ -export type Snowflake = string; -/** - * https://discord.com/developers/docs/topics/permissions - * - * @internal - */ -export type Permissions = string; -/** - * https://discord.com/developers/docs/reference#message-formatting-formats - */ -export declare const FormattingPatterns: { - /** - * Regular expression for matching a user mention, strictly without a nickname - * - * The `id` group property is present on the `exec` result of this expression - */ - readonly User: RegExp; - /** - * Regular expression for matching a user mention, strictly with a nickname - * - * The `id` group property is present on the `exec` result of this expression - * - * @deprecated Passing `!` in user mentions is no longer necessary / supported, and future message contents won't have it - */ - readonly UserWithNickname: RegExp; - /** - * Regular expression for matching a user mention, with or without a nickname - * - * The `id` group property is present on the `exec` result of this expression - * - * @deprecated Passing `!` in user mentions is no longer necessary / supported, and future message contents won't have it - */ - readonly UserWithOptionalNickname: RegExp; - /** - * Regular expression for matching a channel mention - * - * The `id` group property is present on the `exec` result of this expression - */ - readonly Channel: RegExp; - /** - * Regular expression for matching a role mention - * - * The `id` group property is present on the `exec` result of this expression - */ - readonly Role: RegExp; - /** - * Regular expression for matching a application command mention - * - * The `fullName` (possibly including `name`, `subcommandOrGroup` and `subcommand`) and `id` group properties are present on the `exec` result of this expression - */ - readonly SlashCommand: RegExp; - /** - * Regular expression for matching a custom emoji, either static or animated - * - * The `animated`, `name` and `id` group properties are present on the `exec` result of this expression - */ - readonly Emoji: RegExp; - /** - * Regular expression for matching strictly an animated custom emoji - * - * The `animated`, `name` and `id` group properties are present on the `exec` result of this expression - */ - readonly AnimatedEmoji: RegExp; - /** - * Regular expression for matching strictly a static custom emoji - * - * The `name` and `id` group properties are present on the `exec` result of this expression - */ - readonly StaticEmoji: RegExp; - /** - * Regular expression for matching a timestamp, either default or custom styled - * - * The `timestamp` and `style` group properties are present on the `exec` result of this expression - */ - readonly Timestamp: RegExp; - /** - * Regular expression for matching strictly default styled timestamps - * - * The `timestamp` group property is present on the `exec` result of this expression - */ - readonly DefaultStyledTimestamp: RegExp; - /** - * Regular expression for matching strictly custom styled timestamps - * - * The `timestamp` and `style` group properties are present on the `exec` result of this expression - */ - readonly StyledTimestamp: RegExp; -}; -//# sourceMappingURL=globals.d.ts.map \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/globals.d.ts.map b/node_modules/@discordjs/builders/node_modules/discord-api-types/globals.d.ts.map deleted file mode 100644 index 1a81c64..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/globals.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"globals.d.ts","sourceRoot":"","sources":["globals.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAE/B;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,kBAAkB;IAC9B;;;;OAIG;;IAEH;;;;;;OAMG;;IAEH;;;;;;OAMG;;IAEH;;;;OAIG;;IAEH;;;;OAIG;;IAEH;;;;OAIG;;IAIH;;;;OAIG;;IAEH;;;;OAIG;;IAEH;;;;OAIG;;IAEH;;;;OAIG;;IAGH;;;;OAIG;;IAEH;;;;OAIG;;CAEM,CAAC"} \ No newline at end of file diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/globals.js b/node_modules/@discordjs/builders/node_modules/discord-api-types/globals.js deleted file mode 100644 index 636db41..0000000 --- a/node_modules/@discordjs/builders/node_modules/discord-api-types/globals.js +++ /dev/null @@ -1,94 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.FormattingPatterns = void 0; -/** - * https://discord.com/developers/docs/reference#message-formatting-formats - */ -exports.FormattingPatterns = { - /** - * Regular expression for matching a user mention, strictly without a nickname - * - * The `id` group property is present on the `exec` result of this expression - */ - User: /<@(?\d{17,20})>/, - /** - * Regular expression for matching a user mention, strictly with a nickname - * - * The `id` group property is present on the `exec` result of this expression - * - * @deprecated Passing `!` in user mentions is no longer necessary / supported, and future message contents won't have it - */ - UserWithNickname: /<@!(?\d{17,20})>/, - /** - * Regular expression for matching a user mention, with or without a nickname - * - * The `id` group property is present on the `exec` result of this expression - * - * @deprecated Passing `!` in user mentions is no longer necessary / supported, and future message contents won't have it - */ - UserWithOptionalNickname: /<@!?(?\d{17,20})>/, - /** - * Regular expression for matching a channel mention - * - * The `id` group property is present on the `exec` result of this expression - */ - Channel: /<#(?\d{17,20})>/, - /** - * Regular expression for matching a role mention - * - * The `id` group property is present on the `exec` result of this expression - */ - Role: /<@&(?\d{17,20})>/, - /** - * Regular expression for matching a application command mention - * - * The `fullName` (possibly including `name`, `subcommandOrGroup` and `subcommand`) and `id` group properties are present on the `exec` result of this expression - */ - SlashCommand: - // eslint-disable-next-line unicorn/no-unsafe-regex - /<\/(?(?[-_\p{Letter}\p{Number}\p{sc=Deva}\p{sc=Thai}]{1,32})(?: (?[-_\p{Letter}\p{Number}\p{sc=Deva}\p{sc=Thai}]{1,32}))?(?: (?[-_\p{Letter}\p{Number}\p{sc=Deva}\p{sc=Thai}]{1,32}))?):(?\d{17,20})>/u, - /** - * Regular expression for matching a custom emoji, either static or animated - * - * The `animated`, `name` and `id` group properties are present on the `exec` result of this expression - */ - Emoji: /<(?a)?:(?\w{2,32}):(?\d{17,20})>/, - /** - * Regular expression for matching strictly an animated custom emoji - * - * The `animated`, `name` and `id` group properties are present on the `exec` result of this expression - */ - AnimatedEmoji: /<(?a):(?\w{2,32}):(?\d{17,20})>/, - /** - * Regular expression for matching strictly a static custom emoji - * - * The `name` and `id` group properties are present on the `exec` result of this expression - */ - StaticEmoji: /<:(?\w{2,32}):(?\d{17,20})>/, - /** - * Regular expression for matching a timestamp, either default or custom styled - * - * The `timestamp` and `style` group properties are present on the `exec` result of this expression - */ - // eslint-disable-next-line prefer-named-capture-group - Timestamp: /-?\d{1,13})(:(?