diff --git a/config.json b/config.json new file mode 100644 index 0000000..b150276 --- /dev/null +++ b/config.json @@ -0,0 +1,6 @@ +{ + "clientId": "890975056400904242", + "guildId": "876543210987654321", + "token": "ODkwOTc1MDU2NDAwOTA0MjQy.YU3nLg.T5wCbJ4UuDBanMjVaE-JX-aSELo", + "authorId": "307975903999164416" +} \ No newline at end of file diff --git a/friendsCommands.json b/friendsCommands.json new file mode 100644 index 0000000..a94022c --- /dev/null +++ b/friendsCommands.json @@ -0,0 +1,72 @@ +{ + "commands": [ + { + "key": "ping", + "value": "pong" + }, + { + "key": "pong", + "value": "ping" + }, + { + "key": "stop", + "value": "Pas envie !" + }, + { + "key": "chink", + "value": "Sale raciste" + }, + { + "key": "egg", + "value": "xue hua piao piao bei feng xiao xiao... " + }, + { + "key": "marvin", + "value": "Sortira de ses études à 30 ans OKLM il sera millionaire après !" + }, + { + "key": "anthony", + "value": "Oh Anthony the Almighty, Allahu Allaaaah, Protect me and Guide me, Allahu Allaaaaah... " + }, + { + "key": "robin", + "value": "Robin est un putain de dieu vivant !" + }, + { + "key": "steph", + "value": "Baisse la tête* - Ah tu étais donc là Steph !" + }, + { + "key": "maxime", + "value": "Il est toujours vivant lui ?" + }, + { + "key": "flo", + "value": "*Boum* *Boum* , c'est un éléphant ? godzilla ? thanos ? Biensûr que non, c'est FLo et son énorme Ch... charisme" + }, + { + "key": "jean", + "value": "FDP va" + }, + { + "key": "hugo", + "value": "Intestable au blindtest et plus tanky qu'un pilier de bar, c'est notre Scaix national" + }, + { + "key": "ludo", + "value": "Number One à la Gileppe, mais qui peut test Ludo en fait" + }, + { + "key": "greg", + "value": "Allez voir ce Streameur, c'est un putain de dieu : https://www.twitch.tv/regigigreg" + }, + { + "key": "lulu", + "value": "Aime avoir mal au cul sur un vélo et s'est fait chier dessus par alderiate alors qu'il aime Skyrim tout comme lui... C'est lulu" + }, + { + "key": "tg", + "value": "Non twa tagueule !" + } + ] +} \ No newline at end of file diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 0000000..5de2467 --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,310 @@ +{ + "name": "BOT_DISCORD", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "node_modules/@discordjs/builders": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.12.0.tgz", + "integrity": "sha512-Vx2MjUZd6QVo1uS2uWt708Fd6cHWGFblAvbpL5EBO+kLl0BADmPwwvts+YJ/VfSywed6Vsk6K2cEooR/Ytjhjw==", + "dependencies": { + "@sindresorhus/is": "^4.3.0", + "discord-api-types": "^0.26.1", + "ts-mixer": "^6.0.0", + "tslib": "^2.3.1", + "zod": "^3.11.6" + }, + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@discordjs/builders/node_modules/discord-api-types": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.26.1.tgz", + "integrity": "sha512-T5PdMQ+Y1MEECYMV5wmyi9VEYPagEDEi4S0amgsszpWY0VB9JJ/hEvM6BgLhbdnKky4gfmZEXtEEtojN8ZKJQQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/@discordjs/collection": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.4.0.tgz", + "integrity": "sha512-zmjq+l/rV35kE6zRrwe8BHqV78JvIh2ybJeZavBi5NySjWXqN3hmmAKg7kYMMXSeiWtSsMoZ/+MQi0DiQWy2lw==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@discordjs/rest": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-0.3.0.tgz", + "integrity": "sha512-F9aeP3odlAlllM1ciBZLdd+adiAyBj4VaZBejj4UMj4afE2wfCkNTGvYYiRxrXUE9fN7e/BuDP2ePl0tVA2m7Q==", + "dependencies": { + "@discordjs/collection": "^0.4.0", + "@sapphire/async-queue": "^1.1.9", + "@sapphire/snowflake": "^3.0.1", + "discord-api-types": "^0.26.1", + "form-data": "^4.0.0", + "node-fetch": "^2.6.5", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/@discordjs/rest/node_modules/discord-api-types": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.26.1.tgz", + "integrity": "sha512-T5PdMQ+Y1MEECYMV5wmyi9VEYPagEDEi4S0amgsszpWY0VB9JJ/hEvM6BgLhbdnKky4gfmZEXtEEtojN8ZKJQQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/@sapphire/async-queue": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.3.0.tgz", + "integrity": "sha512-z+CDw5X4UgIEpZL8KM+ThVx1i8V60HBg0l/oFewTNbQQeRDJHdVxHyJykv+SF1H+Rc8EkMS81VTWo95jVYgO/g==", + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@sapphire/snowflake": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.2.0.tgz", + "integrity": "sha512-tfHzY+6/5bbHdB+uNqsEQ5rhjaZAoFUrqP/l1S5jwxMdKeSCIiGkJjcE99/WGGdzyWGjTNgNVX/dt4Me/FdMlg==", + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@types/node": { + "version": "17.0.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", + "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" + }, + "node_modules/@types/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==", + "dependencies": { + "@types/node": "*", + "form-data": "^3.0.0" + } + }, + "node_modules/@types/node-fetch/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/discord-api-types": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.30.0.tgz", + "integrity": "sha512-wYst0jrT8EJs2tVlwUTQ2xT0oWMjUrRMpFTkNY3NMleWyQNHgWaKhqFfxdLPdC2im9IuR5EsxcEgjhf/npeftw==" + }, + "node_modules/discord.js": { + "version": "13.6.0", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.6.0.tgz", + "integrity": "sha512-tXNR8zgsEPxPBvGk3AQjJ9ljIIC6/LOPjzKwpwz8Y1Q2X66Vi3ZqFgRHYwnHKC0jC0F+l4LzxlhmOJsBZDNg9g==", + "dependencies": { + "@discordjs/builders": "^0.11.0", + "@discordjs/collection": "^0.4.0", + "@sapphire/async-queue": "^1.1.9", + "@types/node-fetch": "^2.5.12", + "@types/ws": "^8.2.2", + "discord-api-types": "^0.26.0", + "form-data": "^4.0.0", + "node-fetch": "^2.6.1", + "ws": "^8.4.0" + }, + "engines": { + "node": ">=16.6.0", + "npm": ">=7.0.0" + } + }, + "node_modules/discord.js/node_modules/@discordjs/builders": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.11.0.tgz", + "integrity": "sha512-ZTB8yJdJKrKlq44dpWkNUrAtEJEq0gqpb7ASdv4vmq6/mZal5kOv312hQ56I/vxwMre+VIkoHquNUAfnTbiYtg==", + "dependencies": { + "@sindresorhus/is": "^4.2.0", + "discord-api-types": "^0.26.0", + "ts-mixer": "^6.0.0", + "tslib": "^2.3.1", + "zod": "^3.11.6" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/discord.js/node_modules/discord-api-types": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.26.1.tgz", + "integrity": "sha512-T5PdMQ+Y1MEECYMV5wmyi9VEYPagEDEi4S0amgsszpWY0VB9JJ/hEvM6BgLhbdnKky4gfmZEXtEEtojN8ZKJQQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "node_modules/ts-mixer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.1.tgz", + "integrity": "sha512-hvE+ZYXuINrx6Ei6D6hz+PTim0Uf++dYbK9FFifLNwQj+RwKquhQpn868yZsCtJYiclZF1u8l6WZxxKi+vv7Rg==" + }, + "node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "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/zod": { + "version": "3.14.3", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.14.3.tgz", + "integrity": "sha512-OzwRCSXB1+/8F6w6HkYHdbuWysYWnAF4fkRgKDcSFc54CE+Sv0rHXKfeNUReGCrHukm1LNpi6AYeXotznhYJbQ==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/node_modules/@discordjs/builders/CHANGELOG.md b/node_modules/@discordjs/builders/CHANGELOG.md new file mode 100644 index 0000000..de844f7 --- /dev/null +++ b/node_modules/@discordjs/builders/CHANGELOG.md @@ -0,0 +1,126 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +# [0.12.0](https://github.com/discordjs/discord.js/compare/@discordjs/builders@0.11.0...@discordjs/builders@0.12.0) (2021-12-08) + +## Bug Fixes + +- **builders:** Dont export `Button` component stuff twice (#7289) ([86d9d06](https://github.com/discordjs/discord.js/commit/86d9d0674347c08d056cd054cb4ce4253195bf94)) + +## Documentation + +- **SlashCommandSubcommands:** Updating old links from Discord developer portal (#7224) ([bd7a6f2](https://github.com/discordjs/discord.js/commit/bd7a6f265212624199fb0b2ddc8ece39759c63de)) + +## Features + +- Add components to /builders (#7195) ([2bb40fd](https://github.com/discordjs/discord.js/commit/2bb40fd767cf5918e3ba422ff73082734bfa05b0)) + +## Typings + +- Make `required` a boolean (#7307) ([c10afea](https://github.com/discordjs/discord.js/commit/c10afeadc702ab98bec5e077b3b92494a9596f9c)) + +# [0.11.0](https://github.com/discordjs/builders/compare/v0.10.0...v0.11.0) (2021-12-29) + +## Bug Fixes + +- **ApplicationCommandOptions:** clean up code for builder options ([#68](https://github.com/discordjs/builders/issues/68)) ([b5d0b15](https://github.com/discordjs/builders/commit/b5d0b157b1262bd01fa011f8e0cf33adb82776e7)) + +# [0.10.0](https://github.com/discordjs/builders/compare/v0.9.0...v0.10.0) (2021-12-24) + +## Bug Fixes + +- use zod instead of ow for max/min option validation ([#66](https://github.com/discordjs/builders/issues/66)) ([beb35fb](https://github.com/discordjs/builders/commit/beb35fb1f65bd6be2321e17cc792f67e8615fd48)) + +## Features + +- add max/min option for int and number builder options ([#47](https://github.com/discordjs/builders/issues/47)) ([2e1e860](https://github.com/discordjs/builders/commit/2e1e860b46e3453398b20df63dabb6d4325e32d1)) + +# [0.9.0](https://github.com/discordjs/builders/compare/v0.8.2...v0.9.0) (2021-12-02) + +## Bug Fixes + +- replace ow with zod ([#58](https://github.com/discordjs/builders/issues/58)) ([0b6fb81](https://github.com/discordjs/builders/commit/0b6fb8161b858e42781855fb73aaa873fec58160)) + +## Features + +- **SlashCommandBuilder:** add autocomplete ([#53](https://github.com/discordjs/builders/issues/53)) ([05b07a7](https://github.com/discordjs/builders/commit/05b07a7e88848188c27d7380d9f948cba25ef778)) + +## [0.8.2](https://github.com/discordjs/builders/compare/v0.8.1...v0.8.2) (2021-10-30) + +## Bug Fixes + +- downgrade ow because of esm issues ([#55](https://github.com/discordjs/builders/issues/55)) ([3722d2c](https://github.com/discordjs/builders/commit/3722d2c1109a7a5c0abad63c1a7eb944df6e46c8)) + +## [0.8.1](https://github.com/discordjs/builders/compare/v0.8.0...v0.8.1) (2021-10-29) + +## Bug Fixes + +- documentation ([e33ec8d](https://github.com/discordjs/builders/commit/e33ec8dfd5785312f82e0afb017a3dac614fd71d)) + +# [0.7.0](https://github.com/discordjs/builders/compare/v0.6.0...v0.7.0) (2021-10-18) + +## Bug Fixes + +- properly type `toJSON` methods ([#34](https://github.com/discordjs/builders/issues/34)) ([7723ad0](https://github.com/discordjs/builders/commit/7723ad0da169386e638188de220451a97513bc25)) + +## Features + +- **ContextMenus:** add context menu command builder ([#29](https://github.com/discordjs/builders/issues/29)) ([f0641e5](https://github.com/discordjs/builders/commit/f0641e55733de8992600f3082bcf054e6f815cf7)) +- add support for channel types on channel options ([#41](https://github.com/discordjs/builders/issues/41)) ([f6c187e](https://github.com/discordjs/builders/commit/f6c187e0ad6ebe03e65186ece3e95cb1db5aeb50)) + +# [0.6.0](https://github.com/discordjs/builders/compare/v0.5.0...v0.6.0) (2021-08-24) + +## Bug Fixes + +- **SlashCommandBuilder:** allow subcommands and groups to coexist at the root level ([#26](https://github.com/discordjs/builders/issues/26)) ([0be4daf](https://github.com/discordjs/builders/commit/0be4dafdfc0b5747c880be0078c00ada913eb4fb)) + +## Features + +- create `Embed` builder ([#11](https://github.com/discordjs/builders/issues/11)) ([eb942a4](https://github.com/discordjs/builders/commit/eb942a4d1f3bcec9a4e370b6af602a713ad8f9b7)) +- **SlashCommandBuilder:** create setDefaultPermission function ([#19](https://github.com/discordjs/builders/issues/19)) ([5d53759](https://github.com/discordjs/builders/commit/5d537593937a8da330153ce4711b7d093a80330e)) +- **SlashCommands:** add number option type ([#23](https://github.com/discordjs/builders/issues/23)) ([1563991](https://github.com/discordjs/builders/commit/1563991d421bb07bf7a412c87e7613692d770f04)) + +# [0.5.0](https://github.com/discordjs/builders/compare/v0.3.0...v0.5.0) (2021-08-10) + +## Features + +- **Formatters:** add `formatEmoji` ([#20](https://github.com/discordjs/builders/issues/20)) ([c3d8bb5](https://github.com/discordjs/builders/commit/c3d8bb5363a1d46b45c0def4277da6921e2ba209)) + +# [0.4.0](https://github.com/discordjs/builders/compare/v0.3.0...v0.4.0) (2021-08-05) + +## Features + +- `sub command` => `subcommand` ([#18](https://github.com/discordjs/builders/pull/18)) ([95599c5](https://github.com/discordjs/builders/commit/95599c5b5366ebd054c4c277c52f1a44cda1209d)) + +# [0.3.0](https://github.com/discordjs/builders/compare/v0.2.0...v0.3.0) (2021-08-01) + +## Bug Fixes + +- **Shrug:** Update comment ([#14](https://github.com/discordjs/builders/issues/14)) ([6fa6c40](https://github.com/discordjs/builders/commit/6fa6c405f2ea733811677d3d1bfb1e2806d504d5)) +- shrug face rendering ([#13](https://github.com/discordjs/builders/issues/13)) ([6ad24ec](https://github.com/discordjs/builders/commit/6ad24ecd96c82b0f576e78e9e53fc7bf9c36ef5d)) + +## Features + +- **formatters:** mentions ([#9](https://github.com/discordjs/builders/issues/9)) ([f83fe99](https://github.com/discordjs/builders/commit/f83fe99b83188ed999845751ffb005c687dbd60a)) +- **Formatters:** Add a spoiler function ([#16](https://github.com/discordjs/builders/issues/16)) ([c213a6a](https://github.com/discordjs/builders/commit/c213a6abb114f65653017a4edec4bdba2162d771)) +- **SlashCommands:** add slash command builders ([#3](https://github.com/discordjs/builders/issues/3)) ([6aa3af0](https://github.com/discordjs/builders/commit/6aa3af07b0ee342fff91f080914bb12b3ab773f8)) +- shrug, tableflip and unflip strings ([#5](https://github.com/discordjs/builders/issues/5)) ([de5fa82](https://github.com/discordjs/builders/commit/de5fa823cd6f1feba5b2d0a63b2cb1761dfd1814)) + +# [0.2.0](https://github.com/discordjs/builders/compare/v0.1.1...v0.2.0) (2021-07-03) + +## Features + +- **Formatters:** added `hyperlink` and `hideLinkEmbed` ([#4](https://github.com/discordjs/builders/issues/4)) ([c532daf](https://github.com/discordjs/builders/commit/c532daf2ba2feae75bf9668f63462e96a5314cff)) + +# [0.1.1](https://github.com/discordjs/builders/compare/v0.1.0...v0.1.1) (2021-06-30) + +## Bug Fixes + +- **Deps:** added `tslib` as dependency ([#2](https://github.com/discordjs/builders/issues/2)) ([5576ff3](https://github.com/discordjs/builders/commit/5576ff3b67136b957bed0ab8a4c655d5de322813)) + +# 0.1.0 (2021-06-30) + +## Features + +- added message formatters ([#1](https://github.com/discordjs/builders/issues/1)) ([765e46d](https://github.com/discordjs/builders/commit/765e46dac96c4e49d350243e5fad34c2bc738a7c)) diff --git a/node_modules/@discordjs/builders/LICENSE b/node_modules/@discordjs/builders/LICENSE new file mode 100644 index 0000000..cbe9c65 --- /dev/null +++ b/node_modules/@discordjs/builders/LICENSE @@ -0,0 +1,191 @@ + 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 new file mode 100644 index 0000000..211fc2f --- /dev/null +++ b/node_modules/@discordjs/builders/README.md @@ -0,0 +1,53 @@ +
+
+

+ discord.js +

+
+

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

+
+ +## Installation + +**Node.js 16.9.0 or newer is required.** + +```sh-session +npm install @discordjs/builders +yarn add @discordjs/builders +pnpm add @discordjs/builders +``` + +## Examples + +Here are some examples for the builders and utilities you can find in this package: + +- [Slash Command Builders](./docs/examples/Slash%20Command%20Builders.md) + +## Links + +- [Website](https://discord.js.org/) ([source](https://github.com/discordjs/website)) +- [Documentation](https://discord.js.org/#/docs/builders) +- [Guide](https://discordjs.guide/) ([source](https://github.com/discordjs/guide)) + See also the [Update Guide](https://discordjs.guide/additional-info/changes-in-v13.html), including updated and removed items in the library. +- [discord.js Discord server](https://discord.gg/djs) +- [Discord API Discord server](https://discord.gg/discord-api) +- [GitHub](https://github.com/discordjs/discord.js/tree/main/packages/builders) +- [npm](https://www.npmjs.com/package/@discordjs/builders) +- [Related libraries](https://discord.com/developers/docs/topics/community-resources#libraries) + +## Contributing + +Before creating an issue, please ensure that it hasn't already been reported/suggested, and double-check the +[documentation](https://discord.js.org/#/docs/builders). +See [the contribution guide](https://github.com/discordjs/discord.js/blob/main/.github/CONTRIBUTING.md) 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](https://discord.gg/djs). diff --git a/node_modules/@discordjs/builders/dist/index.d.ts b/node_modules/@discordjs/builders/dist/index.d.ts new file mode 100644 index 0000000..d3e84b1 --- /dev/null +++ b/node_modules/@discordjs/builders/dist/index.d.ts @@ -0,0 +1,1084 @@ +import { APIEmbedField, APIEmbed, APIEmbedThumbnail, APIEmbedImage, APIEmbedVideo, APIEmbedAuthor, APIEmbedProvider, APIEmbedFooter, APIMessageComponentEmoji, APISelectMenuOption, ButtonStyle, ComponentType, APIMessageComponent, APIActionRowComponent, APIButtonComponent, APISelectMenuComponent, ApplicationCommandOptionType, APIApplicationCommandBasicOption, APIApplicationCommandBooleanOption, ChannelType, APIApplicationCommandChannelOption, APIApplicationCommandOptionChoice, APIApplicationCommandIntegerOption, APIApplicationCommandMentionableOption, APIApplicationCommandNumberOption, APIApplicationCommandRoleOption, APIApplicationCommandStringOption, APIApplicationCommandUserOption, APIApplicationCommandSubcommandGroupOption, APIApplicationCommandSubcommandOption, RESTPostAPIApplicationCommandsJSONBody, APIApplicationCommandOption, ApplicationCommandType } from 'discord-api-types/v9'; +import { z } from 'zod'; +import { Snowflake } from 'discord-api-types/globals'; +import { URL } from 'url'; + +declare const fieldNamePredicate: z.ZodString; +declare const fieldValuePredicate: z.ZodString; +declare const fieldInlinePredicate: z.ZodOptional; +declare const embedFieldPredicate: z.ZodObject<{ + name: z.ZodString; + value: z.ZodString; + inline: z.ZodOptional; +}, "strip", z.ZodTypeAny, { + inline?: boolean | undefined; + name: string; + value: string; +}, { + inline?: boolean | undefined; + name: string; + value: string; +}>; +declare const embedFieldsArrayPredicate: z.ZodArray; +}, "strip", z.ZodTypeAny, { + inline?: boolean | undefined; + name: string; + value: string; +}, { + inline?: boolean | undefined; + name: string; + value: string; +}>, "many">; +declare const fieldLengthPredicate: z.ZodNumber; +declare function validateFieldLength(fields: APIEmbedField[], amountAdding: number): void; +declare const authorNamePredicate: z.ZodNullable; +declare const urlPredicate: z.ZodNullable>; +declare const colorPredicate: z.ZodNullable; +declare const descriptionPredicate: z.ZodNullable; +declare const footerTextPredicate: z.ZodNullable; +declare const timestampPredicate: z.ZodNullable>; +declare const titlePredicate: z.ZodNullable; + +declare const Assertions$3_fieldNamePredicate: typeof fieldNamePredicate; +declare const Assertions$3_fieldValuePredicate: typeof fieldValuePredicate; +declare const Assertions$3_fieldInlinePredicate: typeof fieldInlinePredicate; +declare const Assertions$3_embedFieldPredicate: typeof embedFieldPredicate; +declare const Assertions$3_embedFieldsArrayPredicate: typeof embedFieldsArrayPredicate; +declare const Assertions$3_fieldLengthPredicate: typeof fieldLengthPredicate; +declare const Assertions$3_validateFieldLength: typeof validateFieldLength; +declare const Assertions$3_authorNamePredicate: typeof authorNamePredicate; +declare const Assertions$3_urlPredicate: typeof urlPredicate; +declare const Assertions$3_colorPredicate: typeof colorPredicate; +declare const Assertions$3_descriptionPredicate: typeof descriptionPredicate; +declare const Assertions$3_footerTextPredicate: typeof footerTextPredicate; +declare const Assertions$3_timestampPredicate: typeof timestampPredicate; +declare const Assertions$3_titlePredicate: typeof titlePredicate; +declare namespace Assertions$3 { + export { + Assertions$3_fieldNamePredicate as fieldNamePredicate, + Assertions$3_fieldValuePredicate as fieldValuePredicate, + Assertions$3_fieldInlinePredicate as fieldInlinePredicate, + Assertions$3_embedFieldPredicate as embedFieldPredicate, + Assertions$3_embedFieldsArrayPredicate as embedFieldsArrayPredicate, + Assertions$3_fieldLengthPredicate as fieldLengthPredicate, + Assertions$3_validateFieldLength as validateFieldLength, + Assertions$3_authorNamePredicate as authorNamePredicate, + Assertions$3_urlPredicate as urlPredicate, + Assertions$3_colorPredicate as colorPredicate, + Assertions$3_descriptionPredicate as descriptionPredicate, + Assertions$3_footerTextPredicate as footerTextPredicate, + Assertions$3_timestampPredicate as timestampPredicate, + Assertions$3_titlePredicate as titlePredicate, + }; +} + +interface AuthorOptions { + name: string; + url?: string; + iconURL?: string; +} +interface FooterOptions { + text: string; + iconURL?: string; +} +/** + * Represents an embed in a message (image/video preview, rich embed, etc.) + */ +declare class Embed implements APIEmbed { + /** + * An array of fields of this embed + */ + fields: APIEmbedField[]; + /** + * The embed title + */ + title?: string; + /** + * The embed description + */ + description?: string; + /** + * The embed url + */ + url?: string; + /** + * The embed color + */ + color?: number; + /** + * The timestamp of the embed in the ISO format + */ + timestamp?: string; + /** + * The embed thumbnail data + */ + thumbnail?: APIEmbedThumbnail; + /** + * The embed image data + */ + image?: APIEmbedImage; + /** + * Received video data + */ + video?: APIEmbedVideo; + /** + * The embed author data + */ + author?: APIEmbedAuthor; + /** + * Received data about the embed provider + */ + provider?: APIEmbedProvider; + /** + * The embed footer data + */ + footer?: APIEmbedFooter; + constructor(data?: APIEmbed); + /** + * The accumulated length for the embed title, description, fields, footer text, and author name + */ + get length(): number; + /** + * Adds a field to the embed (max 25) + * + * @param field The field to add. + */ + addField(field: APIEmbedField): this; + /** + * Adds fields to the embed (max 25) + * + * @param fields The fields to add + */ + addFields(...fields: APIEmbedField[]): this; + /** + * Removes, replaces, or inserts fields in the embed (max 25) + * + * @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 author of this embed + * + * @param options The options for the author + */ + setAuthor(options: AuthorOptions | null): this; + /** + * Sets the color of this embed + * + * @param color The color of the embed + */ + setColor(color: number | null): this; + /** + * Sets the description of this embed + * + * @param description The description + */ + setDescription(description: string | null): this; + /** + * Sets the footer of this embed + * + * @param options The options for the footer + */ + setFooter(options: FooterOptions | null): this; + /** + * Sets the image of this embed + * + * @param url The URL of the image + */ + setImage(url: string | null): this; + /** + * Sets the thumbnail of this embed + * + * @param url The URL of the thumbnail + */ + setThumbnail(url: string | null): this; + /** + * Sets the timestamp of this embed + * + * @param timestamp The timestamp or date + */ + setTimestamp(timestamp?: number | Date | null): this; + /** + * Sets the title of this embed + * + * @param title The title + */ + setTitle(title: string | null): this; + /** + * Sets the URL of this embed + * + * @param url The URL + */ + setURL(url: string | null): this; + /** + * Transforms the embed to a plain object + */ + toJSON(): APIEmbed; + /** + * Normalizes field input and resolves strings + * + * @param fields Fields to normalize + */ + static normalizeFields(...fields: APIEmbedField[]): APIEmbedField[]; +} + +/** + * Wraps the content inside a codeblock with no language + * + * @param content The content to wrap + */ +declare function codeBlock(content: C): `\`\`\`\n${C}\`\`\``; +/** + * Wraps the content inside a codeblock with the specified language + * + * @param language The language for the codeblock + * @param content The content to wrap + */ +declare function codeBlock(language: L, content: C): `\`\`\`${L}\n${C}\`\`\``; +/** + * Wraps the content inside \`backticks\`, which formats it as inline code + * + * @param content The content to wrap + */ +declare function inlineCode(content: C): `\`${C}\``; +/** + * Formats the content into italic text + * + * @param content The content to wrap + */ +declare function italic(content: C): `_${C}_`; +/** + * Formats the content into bold text + * + * @param content The content to wrap + */ +declare function bold(content: C): `**${C}**`; +/** + * Formats the content into underscored text + * + * @param content The content to wrap + */ +declare function underscore(content: C): `__${C}__`; +/** + * Formats the content into strike-through text + * + * @param content The content to wrap + */ +declare function strikethrough(content: C): `~~${C}~~`; +/** + * Formats the content into a quote. This needs to be at the start of the line for Discord to format it + * + * @param content The content to wrap + */ +declare function quote(content: C): `> ${C}`; +/** + * Formats the content into a block quote. This needs to be at the start of the line for Discord to format it + * + * @param content The content to wrap + */ +declare function blockQuote(content: C): `>>> ${C}`; +/** + * Wraps the URL into `<>`, which stops it from embedding + * + * @param url The URL to wrap + */ +declare function hideLinkEmbed(url: C): `<${C}>`; +/** + * Wraps the URL into `<>`, which stops it from embedding + * + * @param url The URL to wrap + */ +declare function hideLinkEmbed(url: URL): `<${string}>`; +/** + * Formats the content and the URL into a masked URL + * + * @param content The content to display + * @param url The URL the content links to + */ +declare function hyperlink(content: C, url: URL): `[${C}](${string})`; +/** + * Formats the content and the URL into a masked URL + * + * @param content The content to display + * @param url The URL the content links to + */ +declare function hyperlink(content: C, url: U): `[${C}](${U})`; +/** + * Formats the content and the URL into a masked URL + * + * @param content The content to display + * @param url The URL the content links to + * @param title The title shown when hovering on the masked link + */ +declare function hyperlink(content: C, url: URL, title: T): `[${C}](${string} "${T}")`; +/** + * Formats the content and the URL into a masked URL + * + * @param content The content to display + * @param url The URL the content links to + * @param title The title shown when hovering on the masked link + */ +declare function hyperlink(content: C, url: U, title: T): `[${C}](${U} "${T}")`; +/** + * Wraps the content inside spoiler (hidden text) + * + * @param content The content to wrap + */ +declare function spoiler(content: C): `||${C}||`; +/** + * Formats a user ID into a user mention + * + * @param userId The user ID to format + */ +declare function userMention(userId: C): `<@${C}>`; +/** + * Formats a user ID into a member-nickname mention + * + * @param memberId The user ID to format + */ +declare function memberNicknameMention(memberId: C): `<@!${C}>`; +/** + * Formats a channel ID into a channel mention + * + * @param channelId The channel ID to format + */ +declare function channelMention(channelId: C): `<#${C}>`; +/** + * Formats a role ID into a role mention + * + * @param roleId The role ID to format + */ +declare function roleMention(roleId: C): `<@&${C}>`; +/** + * Formats an emoji ID into a fully qualified emoji identifier + * + * @param emojiId The emoji ID to format + */ +declare function formatEmoji(emojiId: C, animated?: false): `<:_:${C}>`; +/** + * Formats an emoji ID into a fully qualified emoji identifier + * + * @param emojiId The emoji ID to format + * @param animated Whether the emoji is animated or not. Defaults to `false` + */ +declare function formatEmoji(emojiId: C, animated?: true): ``; +/** + * Formats a date into a short date-time string + * + * @param date The date to format, defaults to the current time + */ +declare function time(date?: Date): ``; +/** + * Formats a date given a format style + * + * @param date The date to format + * @param style The style to use + */ +declare function time(date: Date, style: S): ``; +/** + * Formats the given timestamp into a short date-time string + * + * @param seconds The time to format, represents an UNIX timestamp in seconds + */ +declare function time(seconds: C): ``; +/** + * Formats the given timestamp into a short date-time string + * + * @param seconds The time to format, represents an UNIX timestamp in seconds + * @param style The style to use + */ +declare function time(seconds: C, style: S): ``; +/** + * The [message formatting timestamp styles](https://discord.com/developers/docs/reference#message-formatting-timestamp-styles) supported by Discord + */ +declare const TimestampStyles: { + /** + * Short time format, consisting of hours and minutes, e.g. 16:20 + */ + readonly ShortTime: "t"; + /** + * Long time format, consisting of hours, minutes, and seconds, e.g. 16:20:30 + */ + readonly LongTime: "T"; + /** + * Short date format, consisting of day, month, and year, e.g. 20/04/2021 + */ + readonly ShortDate: "d"; + /** + * Long date format, consisting of day, month, and year, e.g. 20 April 2021 + */ + readonly LongDate: "D"; + /** + * Short date-time format, consisting of short date and short time formats, e.g. 20 April 2021 16:20 + */ + readonly ShortDateTime: "f"; + /** + * Long date-time format, consisting of long date and short time formats, e.g. Tuesday, 20 April 2021 16:20 + */ + readonly LongDateTime: "F"; + /** + * Relative time format, consisting of a relative duration format, e.g. 2 months ago + */ + readonly RelativeTime: "R"; +}; +/** + * The possible values, see {@link TimestampStyles} for more information + */ +declare type TimestampStylesString = typeof TimestampStyles[keyof typeof TimestampStyles]; +/** + * An enum with all the available faces from Discord's native slash commands + */ +declare enum Faces { + /** + * ¯\\_(ツ)\\_/¯ + */ + Shrug = "\u00AF\\_(\u30C4)\\_/\u00AF", + /** + * (╯°□°)╯︵ ┻━┻ + */ + Tableflip = "(\u256F\u00B0\u25A1\u00B0\uFF09\u256F\uFE35 \u253B\u2501\u253B", + /** + * ┬─┬ ノ( ゜-゜ノ) + */ + Unflip = "\u252C\u2500\u252C \u30CE( \u309C-\u309C\u30CE)" +} + +/** + * Represents an option within a select menu component + */ +declare class SelectMenuOption { + readonly label: string; + readonly value: string; + readonly description?: string; + readonly emoji?: APIMessageComponentEmoji; + readonly default?: boolean; + constructor(data?: APISelectMenuOption); + /** + * Sets the label of this option + * @param label The label to show on this option + */ + setLabel(label: string): this; + /** + * Sets the value of this option + * @param value The value of this option + */ + setValue(value: string): this; + /** + * Sets the description of this option. + * @param description The description of this option + */ + setDescription(description: string): this; + /** + * Sets whether this option is selected by default + * @param isDefault Whether or not this option is selected by default + */ + setDefault(isDefault: boolean): this; + /** + * Sets the emoji to display on this button + * @param emoji The emoji to display on this button + */ + setEmoji(emoji: APIMessageComponentEmoji): this; + toJSON(): APISelectMenuOption; +} + +declare const customIdValidator: z.ZodString; +declare const emojiValidator: z.ZodObject<{ + id: z.ZodOptional; + name: z.ZodOptional; + animated: z.ZodOptional; +}, "strict", z.ZodTypeAny, { + name?: string | undefined; + id?: string | undefined; + animated?: boolean | undefined; +}, { + name?: string | undefined; + id?: string | undefined; + animated?: boolean | undefined; +}>; +declare const disabledValidator: z.ZodBoolean; +declare const buttonLabelValidator: z.ZodString; +declare const buttonStyleValidator: z.ZodNumber; +declare const placeholderValidator: z.ZodString; +declare const minMaxValidator: z.ZodNumber; +declare const optionsValidator: z.ZodArray, "atleastone">; +declare function validateRequiredSelectMenuParameters(options: SelectMenuOption[], customId?: string): void; +declare const labelValueValidator: z.ZodString; +declare const defaultValidator: z.ZodBoolean; +declare function validateRequiredSelectMenuOptionParameters(label?: string, value?: string): void; +declare const urlValidator: z.ZodString; +declare function validateRequiredButtonParameters(style: ButtonStyle, label?: string, emoji?: APIMessageComponentEmoji, customId?: string, url?: string): void; + +declare const Assertions$2_customIdValidator: typeof customIdValidator; +declare const Assertions$2_emojiValidator: typeof emojiValidator; +declare const Assertions$2_disabledValidator: typeof disabledValidator; +declare const Assertions$2_buttonLabelValidator: typeof buttonLabelValidator; +declare const Assertions$2_buttonStyleValidator: typeof buttonStyleValidator; +declare const Assertions$2_placeholderValidator: typeof placeholderValidator; +declare const Assertions$2_minMaxValidator: typeof minMaxValidator; +declare const Assertions$2_optionsValidator: typeof optionsValidator; +declare const Assertions$2_validateRequiredSelectMenuParameters: typeof validateRequiredSelectMenuParameters; +declare const Assertions$2_labelValueValidator: typeof labelValueValidator; +declare const Assertions$2_defaultValidator: typeof defaultValidator; +declare const Assertions$2_validateRequiredSelectMenuOptionParameters: typeof validateRequiredSelectMenuOptionParameters; +declare const Assertions$2_urlValidator: typeof urlValidator; +declare const Assertions$2_validateRequiredButtonParameters: typeof validateRequiredButtonParameters; +declare namespace Assertions$2 { + export { + Assertions$2_customIdValidator as customIdValidator, + Assertions$2_emojiValidator as emojiValidator, + Assertions$2_disabledValidator as disabledValidator, + Assertions$2_buttonLabelValidator as buttonLabelValidator, + Assertions$2_buttonStyleValidator as buttonStyleValidator, + Assertions$2_placeholderValidator as placeholderValidator, + Assertions$2_minMaxValidator as minMaxValidator, + Assertions$2_optionsValidator as optionsValidator, + Assertions$2_validateRequiredSelectMenuParameters as validateRequiredSelectMenuParameters, + Assertions$2_labelValueValidator as labelValueValidator, + Assertions$2_defaultValidator as defaultValidator, + Assertions$2_validateRequiredSelectMenuOptionParameters as validateRequiredSelectMenuOptionParameters, + Assertions$2_urlValidator as urlValidator, + Assertions$2_validateRequiredButtonParameters as validateRequiredButtonParameters, + }; +} + +/** + * Represents a discord component + */ +interface Component { + /** + * The type of this component + */ + readonly type: ComponentType; + /** + * Converts this component to an API-compatible JSON object + */ + toJSON: () => APIMessageComponent; +} + +declare type ActionRowComponent = ButtonComponent | SelectMenuComponent; +/** + * Represents an action row component + */ +declare class ActionRow implements Component { + readonly components: T[]; + readonly type = ComponentType.ActionRow; + constructor(data?: APIActionRowComponent); + /** + * Adds components to this action row. + * @param components The components to add to this action row. + * @returns + */ + addComponents(...components: T[]): this; + /** + * Sets the components in this action row + * @param components The components to set this row to + */ + setComponents(components: T[]): this; + toJSON(): APIActionRowComponent; +} + +declare class ButtonComponent implements Component { + readonly type: ComponentType.Button; + readonly style: ButtonStyle; + readonly label?: string; + readonly emoji?: APIMessageComponentEmoji; + readonly disabled?: boolean; + readonly custom_id: string; + readonly url: string; + constructor(data?: APIButtonComponent); + /** + * Sets the style of this button + * @param style The style of the button + */ + setStyle(style: ButtonStyle): this; + /** + * Sets the URL for this button + * @param url The URL to open when this button is clicked + */ + setURL(url: string): this; + /** + * Sets the custom Id for this button + * @param customId The custom ID to use for this button + */ + setCustomId(customId: string): this; + /** + * Sets the emoji to display on this button + * @param emoji The emoji to display on this button + */ + setEmoji(emoji: APIMessageComponentEmoji): this; + /** + * Sets whether this button is disable or not + * @param disabled Whether or not to disable this button or not + */ + setDisabled(disabled: boolean): this; + /** + * Sets the label for this button + * @param label The label to display on this button + */ + setLabel(label: string): this; + toJSON(): APIButtonComponent; +} + +interface MappedComponentTypes { + [ComponentType.ActionRow]: ActionRow; + [ComponentType.Button]: ButtonComponent; + [ComponentType.SelectMenu]: SelectMenuComponent; +} +/** + * Factory for creating components from API data + * @param data The api data to transform to a component class + */ +declare function createComponent(data: APIMessageComponent & { + type: T; +}): MappedComponentTypes[T]; + +/** + * Represents a select menu component + */ +declare class SelectMenuComponent implements Component { + readonly type: ComponentType.SelectMenu; + readonly options: SelectMenuOption[]; + readonly placeholder?: string; + readonly min_values?: number; + readonly max_values?: number; + readonly custom_id: string; + readonly disabled?: boolean; + constructor(data?: APISelectMenuComponent); + /** + * Sets the placeholder for this select menu + * @param placeholder The placeholder to use for this select menu + */ + setPlaceholder(placeholder: string): this; + /** + * Sets thes minimum values that must be selected in the select menu + * @param minValues The minimum values that must be selected + */ + setMinValues(minValues: number): this; + /** + * Sets thes maximum values that must be selected in the select menu + * @param minValues 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 for this select menu + */ + setCustomId(customId: string): this; + /** + * Sets whether or not this select menu is disabled + * @param disabled Whether or not this select menu is disabled + */ + setDisabled(disabled: boolean): this; + /** + * Adds options to this select menu + * @param options The options to add to this select menu + * @returns + */ + addOptions(...options: SelectMenuOption[]): this; + /** + * Sets the options on this select menu + * @param options The options to set on this select menu + */ + setOptions(options: SelectMenuOption[]): this; + toJSON(): APISelectMenuComponent; +} + +declare class SharedNameAndDescription { + readonly name: string; + readonly description: string; + /** + * Sets the name + * + * @param name The name + */ + setName(name: string): this; + /** + * Sets the description + * + * @param description The description + */ + setDescription(description: string): this; +} + +declare abstract class ApplicationCommandOptionBase extends SharedNameAndDescription { + abstract readonly type: ApplicationCommandOptionType; + readonly required: boolean; + /** + * Marks the option as required + * + * @param required If this option should be required + */ + setRequired(required: boolean): this; + abstract toJSON(): APIApplicationCommandBasicOption; + protected runRequiredValidations(): void; +} + +declare class SlashCommandBooleanOption extends ApplicationCommandOptionBase { + readonly type: ApplicationCommandOptionType.Boolean; + toJSON(): APIApplicationCommandBooleanOption; +} + +declare const allowedChannelTypes: readonly [ChannelType.GuildText, ChannelType.GuildVoice, ChannelType.GuildCategory, ChannelType.GuildNews, ChannelType.GuildStore, ChannelType.GuildNewsThread, ChannelType.GuildPublicThread, ChannelType.GuildPrivateThread, ChannelType.GuildStageVoice]; +declare type ApplicationCommandOptionAllowedChannelTypes = typeof allowedChannelTypes[number]; +declare class ApplicationCommandOptionChannelTypesMixin { + readonly channel_types?: ApplicationCommandOptionAllowedChannelTypes[]; + /** + * Adds a channel type to this option + * + * @param channelType The type of channel to allow + */ + addChannelType(channelType: ApplicationCommandOptionAllowedChannelTypes): this; + /** + * Adds channel types to this option + * + * @param channelTypes The channel types to add + */ + addChannelTypes(channelTypes: ApplicationCommandOptionAllowedChannelTypes[]): this; +} + +declare class SlashCommandChannelOption extends ApplicationCommandOptionBase { + readonly type: ApplicationCommandOptionType.Channel; + toJSON(): APIApplicationCommandChannelOption; +} +interface SlashCommandChannelOption extends ApplicationCommandOptionChannelTypesMixin { +} + +declare abstract class ApplicationCommandNumericOptionMinMaxValueMixin { + readonly max_value?: number; + 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; +} + +declare class ApplicationCommandOptionWithChoicesAndAutocompleteMixin { + readonly choices?: APIApplicationCommandOptionChoice[]; + readonly autocomplete?: boolean; + readonly type: ApplicationCommandOptionType; + /** + * Adds a choice for this option + * + * @param name The name of the choice + * @param value The value of the choice + */ + addChoice(name: string, value: T): Omit; + /** + * Adds multiple choices for this option + * + * @param choices The choices to add + */ + addChoices(choices: [name: string, value: T][]): Omit; + setChoices(choices: Input): Input extends [] ? this & Pick, 'setAutocomplete'> : Omit; + /** + * Marks the option as autocompletable + * @param autocomplete If this option should be autocompletable + */ + setAutocomplete(autocomplete: U): U extends true ? Omit : this & Pick, 'addChoice' | 'addChoices'>; +} + +declare class SlashCommandIntegerOption extends ApplicationCommandOptionBase implements ApplicationCommandNumericOptionMinMaxValueMixin { + readonly type: ApplicationCommandOptionType.Integer; + setMaxValue(max: number): this; + setMinValue(min: number): this; + toJSON(): APIApplicationCommandIntegerOption; +} +interface SlashCommandIntegerOption extends ApplicationCommandNumericOptionMinMaxValueMixin, ApplicationCommandOptionWithChoicesAndAutocompleteMixin { +} + +declare class SlashCommandMentionableOption extends ApplicationCommandOptionBase { + readonly type: ApplicationCommandOptionType.Mentionable; + toJSON(): APIApplicationCommandMentionableOption; +} + +declare class SlashCommandNumberOption extends ApplicationCommandOptionBase implements ApplicationCommandNumericOptionMinMaxValueMixin { + readonly type: ApplicationCommandOptionType.Number; + setMaxValue(max: number): this; + setMinValue(min: number): this; + toJSON(): APIApplicationCommandNumberOption; +} +interface SlashCommandNumberOption extends ApplicationCommandNumericOptionMinMaxValueMixin, ApplicationCommandOptionWithChoicesAndAutocompleteMixin { +} + +declare class SlashCommandRoleOption extends ApplicationCommandOptionBase { + readonly type: ApplicationCommandOptionType.Role; + toJSON(): APIApplicationCommandRoleOption; +} + +declare class SlashCommandStringOption extends ApplicationCommandOptionBase { + readonly type: ApplicationCommandOptionType.String; + toJSON(): APIApplicationCommandStringOption; +} +interface SlashCommandStringOption extends ApplicationCommandOptionWithChoicesAndAutocompleteMixin { +} + +declare class SlashCommandUserOption extends ApplicationCommandOptionBase { + readonly type: ApplicationCommandOptionType.User; + toJSON(): APIApplicationCommandUserOption; +} + +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)): ShouldOmitSubcommandFunctions extends true ? Omit : this; + /** + * Adds a user option + * + * @param input A function that returns an option builder, or an already built builder + */ + addUserOption(input: SlashCommandUserOption | ((builder: SlashCommandUserOption) => SlashCommandUserOption)): ShouldOmitSubcommandFunctions extends true ? Omit : this; + /** + * Adds a channel option + * + * @param input A function that returns an option builder, or an already built builder + */ + addChannelOption(input: SlashCommandChannelOption | ((builder: SlashCommandChannelOption) => SlashCommandChannelOption)): ShouldOmitSubcommandFunctions extends true ? Omit : this; + /** + * Adds a role option + * + * @param input A function that returns an option builder, or an already built builder + */ + addRoleOption(input: SlashCommandRoleOption | ((builder: SlashCommandRoleOption) => SlashCommandRoleOption)): ShouldOmitSubcommandFunctions extends true ? Omit : this; + /** + * Adds a mentionable option + * + * @param input A function that returns an option builder, or an already built builder + */ + addMentionableOption(input: SlashCommandMentionableOption | ((builder: SlashCommandMentionableOption) => SlashCommandMentionableOption)): ShouldOmitSubcommandFunctions extends true ? Omit : this; + /** + * Adds a string option + * + * @param input A function that returns an option builder, or an already built builder + */ + addStringOption(input: SlashCommandStringOption | Omit | Omit | ((builder: SlashCommandStringOption) => SlashCommandStringOption | Omit | Omit)): ShouldOmitSubcommandFunctions extends true ? Omit : this; + /** + * Adds an integer option + * + * @param input A function that returns an option builder, or an already built builder + */ + addIntegerOption(input: SlashCommandIntegerOption | Omit | Omit | ((builder: SlashCommandIntegerOption) => SlashCommandIntegerOption | Omit | Omit)): ShouldOmitSubcommandFunctions extends true ? Omit : this; + /** + * Adds a number option + * + * @param input A function that returns an option builder, or an already built builder + */ + addNumberOption(input: SlashCommandNumberOption | Omit | Omit | ((builder: SlashCommandNumberOption) => SlashCommandNumberOption | Omit | Omit)): ShouldOmitSubcommandFunctions extends true ? Omit : this; + private _sharedAddOptionMethod; +} + +/** + * Represents a folder for subcommands + * + * For more information, go to 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 part of 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; + toJSON(): APIApplicationCommandSubcommandGroupOption; +} +interface SlashCommandSubcommandGroupBuilder extends SharedNameAndDescription { +} +/** + * Represents a subcommand + * + * For more information, go to 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 of this subcommand + */ + readonly options: ApplicationCommandOptionBase[]; + toJSON(): APIApplicationCommandSubcommandOption; +} +interface SlashCommandSubcommandBuilder extends SharedNameAndDescription, SharedSlashCommandOptions { +} + +declare class SlashCommandBuilder { + /** + * The name of this slash command + */ + readonly name: string; + /** + * The description of this slash command + */ + readonly description: string; + /** + * The options of this slash command + */ + readonly options: ToAPIApplicationCommandOptions[]; + /** + * Whether the command is enabled by default when the app is added to a guild + * + * @default true + */ + readonly defaultPermission: boolean | undefined; + /** + * Returns the final data that should be sent to Discord. + * + * **Note:** Calling this function will validate required properties based on their conditions. + */ + toJSON(): RESTPostAPIApplicationCommandsJSONBody; + /** + * Sets whether the command is enabled by default when the application is added to a guild. + * + * **Note**: 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 https://discord.com/developers/docs/interactions/application-commands#permissions + */ + setDefaultPermission(value: boolean): this; + /** + * 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)): SlashCommandSubcommandsOnlyBuilder; + /** + * 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)): SlashCommandSubcommandsOnlyBuilder; +} +interface SlashCommandBuilder extends SharedNameAndDescription, SharedSlashCommandOptions { +} +interface SlashCommandSubcommandsOnlyBuilder extends SharedNameAndDescription, Pick { +} +interface SlashCommandOptionsOnlyBuilder extends SharedNameAndDescription, SharedSlashCommandOptions, Pick { +} +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 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 validateMaxChoicesLength(choices: APIApplicationCommandOptionChoice[]): void; +declare function assertReturnOfBuilder(input: unknown, ExpectedInstanceOf: new () => T): asserts input is T; + +declare const Assertions$1_validateDescription: typeof validateDescription; +declare const Assertions$1_validateMaxOptionsLength: typeof validateMaxOptionsLength; +declare const Assertions$1_validateRequired: typeof validateRequired; +declare const Assertions$1_validateMaxChoicesLength: typeof validateMaxChoicesLength; +declare const Assertions$1_assertReturnOfBuilder: typeof assertReturnOfBuilder; +declare namespace Assertions$1 { + export { + validateName$1 as validateName, + Assertions$1_validateDescription as validateDescription, + Assertions$1_validateMaxOptionsLength as validateMaxOptionsLength, + validateRequiredParameters$1 as validateRequiredParameters, + validateDefaultPermission$1 as validateDefaultPermission, + Assertions$1_validateRequired as validateRequired, + Assertions$1_validateMaxChoicesLength as validateMaxChoicesLength, + Assertions$1_assertReturnOfBuilder as assertReturnOfBuilder, + }; +} + +declare class ContextMenuCommandBuilder { + /** + * The name of this context menu command + */ + readonly name: string; + /** + * The type of this context menu command + */ + readonly type: ContextMenuCommandType; + /** + * Whether the command is enabled by default when the app is added to a guild + * + * @default true + */ + readonly defaultPermission: boolean | undefined; + /** + * Sets the name + * + * @param name The name + */ + setName(name: string): this; + /** + * Sets the type + * + * @param type The type + */ + setType(type: ContextMenuCommandType): this; + /** + * Sets whether the command is enabled by default when the application is added to a guild. + * + * **Note**: 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 https://discord.com/developers/docs/interactions/application-commands#permissions + */ + setDefaultPermission(value: boolean): this; + /** + * Returns the final data that should be sent to Discord. + * + * **Note:** Calling this function will validate required properties based on their conditions. + */ + toJSON(): RESTPostAPIApplicationCommandsJSONBody; +} +declare type ContextMenuCommandType = ApplicationCommandType.User | ApplicationCommandType.Message; + +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 const Assertions_validateDefaultPermission: typeof validateDefaultPermission; +declare const Assertions_validateName: typeof validateName; +declare const Assertions_validateType: typeof validateType; +declare const Assertions_validateRequiredParameters: typeof validateRequiredParameters; +declare namespace Assertions { + export { + Assertions_validateDefaultPermission as validateDefaultPermission, + Assertions_validateName as validateName, + Assertions_validateType as validateType, + Assertions_validateRequiredParameters as validateRequiredParameters, + }; +} + +export { ActionRow, ActionRowComponent, AuthorOptions, ButtonComponent, Component, Assertions$2 as ComponentAssertions, Assertions as ContextMenuCommandAssertions, ContextMenuCommandBuilder, ContextMenuCommandType, Embed, Assertions$3 as EmbedAssertions, Faces, FooterOptions, MappedComponentTypes, SelectMenuComponent, SelectMenuOption, Assertions$1 as SlashCommandAssertions, SlashCommandBooleanOption, SlashCommandBuilder, SlashCommandChannelOption, SlashCommandIntegerOption, SlashCommandMentionableOption, SlashCommandNumberOption, SlashCommandOptionsOnlyBuilder, SlashCommandRoleOption, SlashCommandStringOption, SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder, SlashCommandSubcommandsOnlyBuilder, SlashCommandUserOption, TimestampStyles, TimestampStylesString, ToAPIApplicationCommandOptions, blockQuote, bold, channelMention, codeBlock, createComponent, formatEmoji, hideLinkEmbed, hyperlink, inlineCode, italic, memberNicknameMention, quote, roleMention, spoiler, strikethrough, time, underscore, userMention }; diff --git a/node_modules/@discordjs/builders/dist/index.js b/node_modules/@discordjs/builders/dist/index.js new file mode 100644 index 0000000..14c9f4d --- /dev/null +++ b/node_modules/@discordjs/builders/dist/index.js @@ -0,0 +1,4 @@ +var bt=Object.create;var O=Object.defineProperty;var Le=Object.getOwnPropertyDescriptor;var Ct=Object.getOwnPropertyNames;var ft=Object.getPrototypeOf,xt=Object.prototype.hasOwnProperty;var At=(t,e,i)=>e in t?O(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i;var ke=t=>O(t,"__esModule",{value:!0});var B=(t,e)=>{for(var i in e)O(t,i,{get:e[i],enumerable:!0})},De=(t,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Ct(e))!xt.call(t,a)&&(i||a!=="default")&&O(t,a,{get:()=>e[a],enumerable:!(n=Le(e,a))||n.enumerable});return t},yt=(t,e)=>De(ke(O(t!=null?bt(ft(t)):{},"default",!e&&t&&t.__esModule?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t),Ot=(t=>(e,i)=>t&&t.get(e)||(i=De(ke({}),e,1),t&&t.set(e,i),i))(typeof WeakMap!="undefined"?new WeakMap:0),m=(t,e,i,n)=>{for(var a=n>1?void 0:n?Le(e,i):e,y=t.length-1,w;y>=0;y--)(w=t[y])&&(a=(n?w(e,i,a):w(a))||a);return n&&a&&O(e,i,a),a};var o=(t,e,i)=>(At(t,typeof e!="symbol"?e+"":e,i),i);var Zt={};B(Zt,{ActionRow:()=>z,ButtonComponent:()=>W,ComponentAssertions:()=>Pe,ContextMenuCommandAssertions:()=>Ve,ContextMenuCommandBuilder:()=>ht,Embed:()=>N,EmbedAssertions:()=>be,Faces:()=>je,SelectMenuComponent:()=>Z,SelectMenuOption:()=>Q,SlashCommandAssertions:()=>Re,SlashCommandBooleanOption:()=>te,SlashCommandBuilder:()=>ae,SlashCommandChannelOption:()=>P,SlashCommandIntegerOption:()=>I,SlashCommandMentionableOption:()=>ie,SlashCommandNumberOption:()=>M,SlashCommandRoleOption:()=>ne,SlashCommandStringOption:()=>R,SlashCommandSubcommandBuilder:()=>u,SlashCommandSubcommandGroupBuilder:()=>A,SlashCommandUserOption:()=>re,TimestampStyles:()=>Dt,blockQuote:()=>vt,bold:()=>Tt,channelMention:()=>_t,codeBlock:()=>St,createComponent:()=>Te,formatEmoji:()=>Lt,hideLinkEmbed:()=>wt,hyperlink:()=>Bt,inlineCode:()=>gt,italic:()=>Pt,memberNicknameMention:()=>Et,quote:()=>Rt,roleMention:()=>Vt,spoiler:()=>Nt,strikethrough:()=>Mt,time:()=>kt,underscore:()=>It,userMention:()=>$t});var be={};B(be,{authorNamePredicate:()=>me,colorPredicate:()=>le,descriptionPredicate:()=>de,embedFieldPredicate:()=>Ue,embedFieldsArrayPredicate:()=>J,fieldInlinePredicate:()=>U,fieldLengthPredicate:()=>Je,fieldNamePredicate:()=>S,fieldValuePredicate:()=>D,footerTextPredicate:()=>ce,timestampPredicate:()=>ue,titlePredicate:()=>he,urlPredicate:()=>h,validateFieldLength:()=>j});var l=require("zod"),S=l.z.string().min(1).max(256),D=l.z.string().min(1).max(1024),U=l.z.boolean().optional(),Ue=l.z.object({name:S,value:D,inline:U}),J=Ue.array(),Je=l.z.number().lte(25);function j(t,e){Je.parse(t.length+e)}var me=S.nullable(),h=l.z.string().url().nullish(),le=l.z.number().gte(0).lte(16777215).nullable(),de=l.z.string().min(1).max(4096).nullable(),ce=l.z.string().min(1).max(2048).nullable(),ue=l.z.union([l.z.number(),l.z.date()]).nullable(),he=S.nullable();var N=class{constructor(e={}){o(this,"fields");o(this,"title");o(this,"description");o(this,"url");o(this,"color");o(this,"timestamp");o(this,"thumbnail");o(this,"image");o(this,"video");o(this,"author");o(this,"provider");o(this,"footer");this.title=e.title,this.description=e.description,this.url=e.url,this.color=e.color,this.thumbnail=e.thumbnail,this.image=e.image,this.video=e.video,this.author=e.author,this.provider=e.provider,this.footer=e.footer,this.fields=e.fields??[],e.timestamp&&(this.timestamp=new Date(e.timestamp).toISOString())}get length(){return(this.title?.length??0)+(this.description?.length??0)+this.fields.reduce((e,i)=>e+i.name.length+i.value.length,0)+(this.footer?.text.length??0)+(this.author?.name.length??0)}addField(e){return this.addFields(e)}addFields(...e){return J.parse(e),j(this.fields,e.length),this.fields.push(...N.normalizeFields(...e)),this}spliceFields(e,i,...n){return J.parse(n),j(this.fields,n.length-i),this.fields.splice(e,i,...N.normalizeFields(...n)),this}setAuthor(e){if(e===null)return this.author=void 0,this;let{name:i,iconURL:n,url:a}=e;return me.parse(i),h.parse(n),h.parse(a),this.author={name:i,url:a,icon_url:n},this}setColor(e){return le.parse(e),this.color=e??void 0,this}setDescription(e){return de.parse(e),this.description=e??void 0,this}setFooter(e){if(e===null)return this.footer=void 0,this;let{text:i,iconURL:n}=e;return ce.parse(i),h.parse(n),this.footer={text:i,icon_url:n},this}setImage(e){return h.parse(e),this.image=e?{url:e}:void 0,this}setThumbnail(e){return h.parse(e),this.thumbnail=e?{url:e}:void 0,this}setTimestamp(e=Date.now()){return ue.parse(e),this.timestamp=e?new Date(e).toISOString():void 0,this}setTitle(e){return he.parse(e),this.title=e??void 0,this}setURL(e){return h.parse(e),this.url=e??void 0,this}toJSON(){return{...this}}static normalizeFields(...e){return e.flat(1/0).map(i=>(S.parse(i.name),D.parse(i.value),U.parse(i.inline),{name:i.name,value:i.value,inline:i.inline??void 0}))}};function St(t,e){return typeof e=="undefined"?`\`\`\` +${t}\`\`\``:`\`\`\`${t} +${e}\`\`\``}function gt(t){return`\`${t}\``}function Pt(t){return`_${t}_`}function Tt(t){return`**${t}**`}function It(t){return`__${t}__`}function Mt(t){return`~~${t}~~`}function Rt(t){return`> ${t}`}function vt(t){return`>>> ${t}`}function wt(t){return`<${t}>`}function Bt(t,e,i){return i?`[${t}](${e} "${i}")`:`[${t}](${e})`}function Nt(t){return`||${t}||`}function $t(t){return`<@${t}>`}function Et(t){return`<@!${t}>`}function _t(t){return`<#${t}>`}function Vt(t){return`<@&${t}>`}function Lt(t,e=!1){return`<${e?"a":""}:_:${t}>`}function kt(t,e){return typeof t!="number"&&(t=Math.floor((t?.getTime()??Date.now())/1e3)),typeof e=="string"?``:``}var Dt={ShortTime:"t",LongTime:"T",ShortDate:"d",LongDate:"D",ShortDateTime:"f",LongDateTime:"F",RelativeTime:"R"},je=(n=>(n.Shrug="\xAF\\_(\u30C4)\\_/\xAF",n.Tableflip="(\u256F\xB0\u25A1\xB0\uFF09\u256F\uFE35 \u253B\u2501\u253B",n.Unflip="\u252C\u2500\u252C \u30CE( \u309C-\u309C\u30CE)",n))(je||{});var Pe={};B(Pe,{buttonLabelValidator:()=>Ce,buttonStyleValidator:()=>fe,customIdValidator:()=>g,defaultValidator:()=>ye,disabledValidator:()=>E,emojiValidator:()=>$,labelValueValidator:()=>_,minMaxValidator:()=>F,optionsValidator:()=>qe,placeholderValidator:()=>xe,urlValidator:()=>Se,validateRequiredButtonParameters:()=>ge,validateRequiredSelectMenuOptionParameters:()=>Oe,validateRequiredSelectMenuParameters:()=>Ae});var q=require("discord-api-types/v9"),p=require("zod"),g=p.z.string().min(1).max(100),$=p.z.object({id:p.z.string(),name:p.z.string(),animated:p.z.boolean()}).partial().strict(),E=p.z.boolean(),Ce=p.z.string().nonempty().max(80),fe=p.z.number().int().min(q.ButtonStyle.Primary).max(q.ButtonStyle.Link),xe=p.z.string().max(100),F=p.z.number().int().min(0).max(25),qe=p.z.object({}).array().nonempty();function Ae(t,e){g.parse(e),qe.parse(t)}var _=p.z.string().min(1).max(100),ye=p.z.boolean();function Oe(t,e){_.parse(t),_.parse(e)}var Se=p.z.string().url();function ge(t,e,i,n,a){if(a&&n)throw new RangeError("URL and custom id are mutually exclusive");if(!e&&!i)throw new RangeError("Buttons must have a label and/or an emoji");if(t===q.ButtonStyle.Link){if(!a)throw new RangeError("Link buttons must have a url")}else if(a)throw new RangeError("Non-link buttons cannot have a url")}var Fe=require("discord-api-types/v9");var G=require("discord-api-types/v9");function Te(t){switch(t.type){case G.ComponentType.ActionRow:return new z(t);case G.ComponentType.Button:return new W(t);case G.ComponentType.SelectMenu:return new Z(t);default:throw new Error(`Cannot serialize component type: ${t.type}`)}}var z=class{constructor(e){o(this,"components",[]);o(this,"type",Fe.ComponentType.ActionRow);this.components=e?.components.map(Te)??[]}addComponents(...e){return this.components.push(...e),this}setComponents(e){return Reflect.set(this,"components",[...e]),this}toJSON(){return{...this,components:this.components.map(e=>e.toJSON())}}};var K=require("discord-api-types/v9");var W=class{constructor(e){o(this,"type",K.ComponentType.Button);o(this,"style");o(this,"label");o(this,"emoji");o(this,"disabled");o(this,"custom_id");o(this,"url");this.style=e?.style,this.label=e?.label,this.emoji=e?.emoji,this.disabled=e?.disabled,e?.style===K.ButtonStyle.Link?this.url=e.url:this.custom_id=e?.custom_id}setStyle(e){return fe.parse(e),Reflect.set(this,"style",e),this}setURL(e){return Se.parse(e),Reflect.set(this,"url",e),this}setCustomId(e){return g.parse(e),Reflect.set(this,"custom_id",e),this}setEmoji(e){return $.parse(e),Reflect.set(this,"emoji",e),this}setDisabled(e){return E.parse(e),Reflect.set(this,"disabled",e),this}setLabel(e){return Ce.parse(e),Reflect.set(this,"label",e),this}toJSON(){return ge(this.style,this.label,this.emoji,this.custom_id,this.url),{...this}}};var Ge=require("discord-api-types/v9");var Q=class{constructor(e){o(this,"label");o(this,"value");o(this,"description");o(this,"emoji");o(this,"default");this.label=e?.label,this.value=e?.value,this.description=e?.description,this.emoji=e?.emoji,this.default=e?.default}setLabel(e){return Reflect.set(this,"label",e),this}setValue(e){return Reflect.set(this,"value",e),this}setDescription(e){return _.parse(e),Reflect.set(this,"description",e),this}setDefault(e){return ye.parse(e),Reflect.set(this,"default",e),this}setEmoji(e){return $.parse(e),Reflect.set(this,"emoji",e),this}toJSON(){return Oe(this.label,this.value),{...this}}};var Z=class{constructor(e){o(this,"type",Ge.ComponentType.SelectMenu);o(this,"options");o(this,"placeholder");o(this,"min_values");o(this,"max_values");o(this,"custom_id");o(this,"disabled");this.options=e?.options.map(i=>new Q(i))??[],this.placeholder=e?.placeholder,this.min_values=e?.min_values,this.max_values=e?.max_values,this.custom_id=e?.custom_id,this.disabled=e?.disabled}setPlaceholder(e){return xe.parse(e),Reflect.set(this,"placeholder",e),this}setMinValues(e){return F.parse(e),Reflect.set(this,"min_values",e),this}setMaxValues(e){return F.parse(e),Reflect.set(this,"max_values",e),this}setCustomId(e){return g.parse(e),Reflect.set(this,"custom_id",e),this}setDisabled(e){return E.parse(e),Reflect.set(this,"disabled",e),this}addOptions(...e){return this.options.push(...e),this}setOptions(e){return Reflect.set(this,"options",[...e]),this}toJSON(){return Ae(this.options,this.custom_id),{...this,options:this.options.map(e=>e.toJSON())}}};var Re={};B(Re,{assertReturnOfBuilder:()=>C,validateDefaultPermission:()=>Ie,validateDescription:()=>Y,validateMaxChoicesLength:()=>Me,validateMaxOptionsLength:()=>c,validateName:()=>X,validateRequired:()=>ee,validateRequiredParameters:()=>b});var H=yt(require("@sindresorhus/is")),V=require("zod"),Ut=V.z.string().min(1).max(32).regex(/^[\P{Lu}\p{N}_-]+$/u);function X(t){Ut.parse(t)}var Jt=V.z.string().min(1).max(100);function Y(t){Jt.parse(t)}var ze=V.z.unknown().array().max(25);function c(t){ze.parse(t)}function b(t,e,i){X(t),Y(e),c(i)}var We=V.z.boolean();function Ie(t){We.parse(t)}function ee(t){We.parse(t)}function Me(t){ze.parse(t)}function C(t,e){let i=e.name;if(H.default.nullOrUndefined(t))throw new TypeError(`Expected to receive a ${i} builder, got ${t===null?"null":"undefined"} instead.`);if(H.default.primitive(t))throw new TypeError(`Expected to receive a ${i} builder, got a primitive (${typeof t}) instead.`);if(!(t instanceof e)){let n=t,a=H.default.function_(t)?t.name:n.constructor.name,y=Reflect.get(n,Symbol.toStringTag),w=y?`${a} [${y}]`:a;throw new TypeError(`Expected to receive a ${i} builder, got ${w} instead.`)}}var ut=require("ts-mixer");var Ze=require("discord-api-types/v9");var f=class{constructor(){o(this,"name");o(this,"description")}setName(e){return X(e),Reflect.set(this,"name",e),this}setDescription(e){return Y(e),Reflect.set(this,"description",e),this}};var s=class extends f{constructor(){super(...arguments);o(this,"required",!1)}setRequired(e){return ee(e),Reflect.set(this,"required",e),this}runRequiredValidations(){b(this.name,this.description,[]),ee(this.required)}};var te=class extends s{constructor(){super(...arguments);o(this,"type",Ze.ApplicationCommandOptionType.Boolean)}toJSON(){return this.runRequiredValidations(),{...this}}};var Ke=require("discord-api-types/v9"),Qe=require("ts-mixer");var d=require("discord-api-types/v9"),ve=require("zod"),jt=[d.ChannelType.GuildText,d.ChannelType.GuildVoice,d.ChannelType.GuildCategory,d.ChannelType.GuildNews,d.ChannelType.GuildStore,d.ChannelType.GuildNewsThread,d.ChannelType.GuildPublicThread,d.ChannelType.GuildPrivateThread,d.ChannelType.GuildStageVoice],qt=ve.z.union(jt.map(t=>ve.z.literal(t))),we=class{constructor(){o(this,"channel_types")}addChannelType(e){return this.channel_types===void 0&&Reflect.set(this,"channel_types",[]),qt.parse(e),this.channel_types.push(e),this}addChannelTypes(e){return e.forEach(i=>this.addChannelType(i)),this}};var P=class extends s{constructor(){super(...arguments);o(this,"type",Ke.ApplicationCommandOptionType.Channel)}toJSON(){return this.runRequiredValidations(),{...this}}};P=m([(0,Qe.mix)(we)],P);var et=require("discord-api-types/v9"),tt=require("ts-mixer"),ot=require("zod");var L=class{constructor(){o(this,"max_value");o(this,"min_value")}};var He=require("discord-api-types/v9"),T=require("zod");var oe=T.z.string().min(1).max(100),Xe=T.z.number().gt(-1/0).lt(1/0),Ye=T.z.tuple([oe,T.z.union([oe,Xe])]).array(),Ft=T.z.boolean(),x=class{constructor(){o(this,"choices");o(this,"autocomplete");o(this,"type")}addChoice(e,i){if(this.autocomplete)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");return this.choices===void 0&&Reflect.set(this,"choices",[]),Me(this.choices),oe.parse(e),this.type===He.ApplicationCommandOptionType.String?oe.parse(i):Xe.parse(i),this.choices.push({name:e,value:i}),this}addChoices(e){if(this.autocomplete)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");Ye.parse(e);for(let[i,n]of e)this.addChoice(i,n);return this}setChoices(e){if(e.length>0&&this.autocomplete)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");Ye.parse(e),Reflect.set(this,"choices",[]);for(let[i,n]of e)this.addChoice(i,n);return this}setAutocomplete(e){if(Ft.parse(e),e&&Array.isArray(this.choices)&&this.choices.length>0)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");return Reflect.set(this,"autocomplete",e),this}};var it=ot.z.number().int().nonnegative(),I=class extends s{constructor(){super(...arguments);o(this,"type",et.ApplicationCommandOptionType.Integer)}setMaxValue(e){return it.parse(e),Reflect.set(this,"max_value",e),this}setMinValue(e){return it.parse(e),Reflect.set(this,"min_value",e),this}toJSON(){if(this.runRequiredValidations(),this.autocomplete&&Array.isArray(this.choices)&&this.choices.length>0)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");return{...this}}};I=m([(0,tt.mix)(L,x)],I);var nt=require("discord-api-types/v9");var ie=class extends s{constructor(){super(...arguments);o(this,"type",nt.ApplicationCommandOptionType.Mentionable)}toJSON(){return this.runRequiredValidations(),{...this}}};var rt=require("discord-api-types/v9"),at=require("ts-mixer"),st=require("zod");var pt=st.z.number().nonnegative(),M=class extends s{constructor(){super(...arguments);o(this,"type",rt.ApplicationCommandOptionType.Number)}setMaxValue(e){return pt.parse(e),Reflect.set(this,"max_value",e),this}setMinValue(e){return pt.parse(e),Reflect.set(this,"min_value",e),this}toJSON(){if(this.runRequiredValidations(),this.autocomplete&&Array.isArray(this.choices)&&this.choices.length>0)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");return{...this}}};M=m([(0,at.mix)(L,x)],M);var mt=require("discord-api-types/v9");var ne=class extends s{constructor(){super(...arguments);o(this,"type",mt.ApplicationCommandOptionType.Role)}toJSON(){return this.runRequiredValidations(),{...this}}};var lt=require("discord-api-types/v9"),dt=require("ts-mixer");var R=class extends s{constructor(){super(...arguments);o(this,"type",lt.ApplicationCommandOptionType.String)}toJSON(){if(this.runRequiredValidations(),this.autocomplete&&Array.isArray(this.choices)&&this.choices.length>0)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");return{...this}}};R=m([(0,dt.mix)(x)],R);var ct=require("discord-api-types/v9");var re=class extends s{constructor(){super(...arguments);o(this,"type",ct.ApplicationCommandOptionType.User)}toJSON(){return this.runRequiredValidations(),{...this}}};var k=class{constructor(){o(this,"options")}addBooleanOption(e){return this._sharedAddOptionMethod(e,te)}addUserOption(e){return this._sharedAddOptionMethod(e,re)}addChannelOption(e){return this._sharedAddOptionMethod(e,P)}addRoleOption(e){return this._sharedAddOptionMethod(e,ne)}addMentionableOption(e){return this._sharedAddOptionMethod(e,ie)}addStringOption(e){return this._sharedAddOptionMethod(e,R)}addIntegerOption(e){return this._sharedAddOptionMethod(e,I)}addNumberOption(e){return this._sharedAddOptionMethod(e,M)}_sharedAddOptionMethod(e,i){let{options:n}=this;c(n);let a=typeof e=="function"?e(new i):e;return C(a,i),n.push(a),this}};var Be=require("discord-api-types/v9"),Ne=require("ts-mixer");var A=class{constructor(){o(this,"name");o(this,"description");o(this,"options",[])}addSubcommand(e){let{options:i}=this;c(i);let n=typeof e=="function"?e(new u):e;return C(n,u),i.push(n),this}toJSON(){return b(this.name,this.description,this.options),{type:Be.ApplicationCommandOptionType.SubcommandGroup,name:this.name,description:this.description,options:this.options.map(e=>e.toJSON())}}};A=m([(0,Ne.mix)(f)],A);var u=class{constructor(){o(this,"name");o(this,"description");o(this,"options",[])}toJSON(){return b(this.name,this.description,this.options),{type:Be.ApplicationCommandOptionType.Subcommand,name:this.name,description:this.description,options:this.options.map(e=>e.toJSON())}}};u=m([(0,Ne.mix)(f,k)],u);var ae=class{constructor(){o(this,"name");o(this,"description");o(this,"options",[]);o(this,"defaultPermission")}toJSON(){return b(this.name,this.description,this.options),{name:this.name,description:this.description,options:this.options.map(e=>e.toJSON()),default_permission:this.defaultPermission}}setDefaultPermission(e){return Ie(e),Reflect.set(this,"defaultPermission",e),this}addSubcommandGroup(e){let{options:i}=this;c(i);let n=typeof e=="function"?e(new A):e;return C(n,A),i.push(n),this}addSubcommand(e){let{options:i}=this;c(i);let n=typeof e=="function"?e(new u):e;return C(n,u),i.push(n),this}};ae=m([(0,ut.mix)(k,f)],ae);var Ve={};B(Ve,{validateDefaultPermission:()=>Ee,validateName:()=>se,validateRequiredParameters:()=>_e,validateType:()=>pe});var v=require("zod"),$e=require("discord-api-types/v9"),Gt=v.z.string().min(1).max(32).regex(/^( *[\p{L}\p{N}_-]+ *)+$/u),zt=v.z.union([v.z.literal($e.ApplicationCommandType.User),v.z.literal($e.ApplicationCommandType.Message)]),Wt=v.z.boolean();function Ee(t){Wt.parse(t)}function se(t){Gt.parse(t)}function pe(t){zt.parse(t)}function _e(t,e){se(t),pe(e)}var ht=class{constructor(){o(this,"name");o(this,"type");o(this,"defaultPermission")}setName(e){return se(e),Reflect.set(this,"name",e),this}setType(e){return pe(e),Reflect.set(this,"type",e),this}setDefaultPermission(e){return Ee(e),Reflect.set(this,"defaultPermission",e),this}toJSON(){return _e(this.name,this.type),{name:this.name,type:this.type,default_permission:this.defaultPermission}}};module.exports=Ot(Zt);0&&(module.exports={ActionRow,ButtonComponent,ComponentAssertions,ContextMenuCommandAssertions,ContextMenuCommandBuilder,Embed,EmbedAssertions,Faces,SelectMenuComponent,SelectMenuOption,SlashCommandAssertions,SlashCommandBooleanOption,SlashCommandBuilder,SlashCommandChannelOption,SlashCommandIntegerOption,SlashCommandMentionableOption,SlashCommandNumberOption,SlashCommandRoleOption,SlashCommandStringOption,SlashCommandSubcommandBuilder,SlashCommandSubcommandGroupBuilder,SlashCommandUserOption,TimestampStyles,blockQuote,bold,channelMention,codeBlock,createComponent,formatEmoji,hideLinkEmbed,hyperlink,inlineCode,italic,memberNicknameMention,quote,roleMention,spoiler,strikethrough,time,underscore,userMention}); +//# 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 new file mode 100644 index 0000000..882665a --- /dev/null +++ b/node_modules/@discordjs/builders/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.ts","../src/messages/embed/Assertions.ts","../src/messages/embed/Embed.ts","../src/messages/formatters.ts","../src/components/Assertions.ts","../src/components/ActionRow.ts","../src/components/Components.ts","../src/components/Button.ts","../src/components/selectMenu/SelectMenu.ts","../src/components/selectMenu/SelectMenuOption.ts","../src/interactions/slashCommands/Assertions.ts","../src/interactions/slashCommands/SlashCommandBuilder.ts","../src/interactions/slashCommands/options/boolean.ts","../src/interactions/slashCommands/mixins/NameAndDescription.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionBase.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/ApplicationCommandOptionWithChoicesAndAutocompleteMixin.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/contextMenuCommands/Assertions.ts","../src/interactions/contextMenuCommands/ContextMenuCommandBuilder.ts"],"sourcesContent":["export * as EmbedAssertions from './messages/embed/Assertions';\nexport * from './messages/embed/Embed';\nexport * from './messages/formatters';\n\nexport * as ComponentAssertions from './components/Assertions';\nexport * from './components/ActionRow';\nexport * from './components/Button';\nexport * from './components/Component';\nexport * from './components/Components';\nexport * from './components/selectMenu/SelectMenu';\nexport * from './components/selectMenu/SelectMenuOption';\n\nexport * as SlashCommandAssertions from './interactions/slashCommands/Assertions';\nexport * from './interactions/slashCommands/SlashCommandBuilder';\nexport * from './interactions/slashCommands/SlashCommandSubcommands';\nexport * from './interactions/slashCommands/options/boolean';\nexport * from './interactions/slashCommands/options/channel';\nexport * from './interactions/slashCommands/options/integer';\nexport * from './interactions/slashCommands/options/mentionable';\nexport * from './interactions/slashCommands/options/number';\nexport * from './interactions/slashCommands/options/role';\nexport * from './interactions/slashCommands/options/string';\nexport * from './interactions/slashCommands/options/user';\n\nexport * as ContextMenuCommandAssertions from './interactions/contextMenuCommands/Assertions';\nexport * from './interactions/contextMenuCommands/ContextMenuCommandBuilder';\n","import type { APIEmbedField } from 'discord-api-types/v9';\nimport { z } from 'zod';\n\nexport const fieldNamePredicate = z.string().min(1).max(256);\n\nexport const fieldValuePredicate = z.string().min(1).max(1024);\n\nexport const fieldInlinePredicate = z.boolean().optional();\n\nexport const embedFieldPredicate = z.object({\n\tname: fieldNamePredicate,\n\tvalue: fieldValuePredicate,\n\tinline: fieldInlinePredicate,\n});\n\nexport const embedFieldsArrayPredicate = embedFieldPredicate.array();\n\nexport const fieldLengthPredicate = z.number().lte(25);\n\nexport function validateFieldLength(fields: APIEmbedField[], amountAdding: number): void {\n\tfieldLengthPredicate.parse(fields.length + amountAdding);\n}\n\nexport const authorNamePredicate = fieldNamePredicate.nullable();\n\nexport const urlPredicate = z.string().url().nullish();\n\nexport const colorPredicate = z.number().gte(0).lte(0xffffff).nullable();\n\nexport const descriptionPredicate = z.string().min(1).max(4096).nullable();\n\nexport const footerTextPredicate = z.string().min(1).max(2048).nullable();\n\nexport const timestampPredicate = z.union([z.number(), z.date()]).nullable();\n\nexport const titlePredicate = fieldNamePredicate.nullable();\n","import type {\n\tAPIEmbed,\n\tAPIEmbedAuthor,\n\tAPIEmbedField,\n\tAPIEmbedFooter,\n\tAPIEmbedImage,\n\tAPIEmbedProvider,\n\tAPIEmbedThumbnail,\n\tAPIEmbedVideo,\n} from 'discord-api-types/v9';\nimport {\n\tauthorNamePredicate,\n\tcolorPredicate,\n\tdescriptionPredicate,\n\tembedFieldsArrayPredicate,\n\tfieldInlinePredicate,\n\tfieldNamePredicate,\n\tfieldValuePredicate,\n\tfooterTextPredicate,\n\ttimestampPredicate,\n\ttitlePredicate,\n\turlPredicate,\n\tvalidateFieldLength,\n} from './Assertions';\n\nexport interface AuthorOptions {\n\tname: string;\n\turl?: string;\n\ticonURL?: string;\n}\n\nexport interface FooterOptions {\n\ttext: string;\n\ticonURL?: string;\n}\n\n/**\n * Represents an embed in a message (image/video preview, rich embed, etc.)\n */\nexport class Embed implements APIEmbed {\n\t/**\n\t * An array of fields of this embed\n\t */\n\tpublic fields: APIEmbedField[];\n\n\t/**\n\t * The embed title\n\t */\n\tpublic title?: string;\n\n\t/**\n\t * The embed description\n\t */\n\tpublic description?: string;\n\n\t/**\n\t * The embed url\n\t */\n\tpublic url?: string;\n\n\t/**\n\t * The embed color\n\t */\n\tpublic color?: number;\n\n\t/**\n\t * The timestamp of the embed in the ISO format\n\t */\n\tpublic timestamp?: string;\n\n\t/**\n\t * The embed thumbnail data\n\t */\n\tpublic thumbnail?: APIEmbedThumbnail;\n\n\t/**\n\t * The embed image data\n\t */\n\tpublic image?: APIEmbedImage;\n\n\t/**\n\t * Received video data\n\t */\n\tpublic video?: APIEmbedVideo;\n\n\t/**\n\t * The embed author data\n\t */\n\tpublic author?: APIEmbedAuthor;\n\n\t/**\n\t * Received data about the embed provider\n\t */\n\tpublic provider?: APIEmbedProvider;\n\n\t/**\n\t * The embed footer data\n\t */\n\tpublic footer?: APIEmbedFooter;\n\n\tpublic constructor(data: APIEmbed = {}) {\n\t\tthis.title = data.title;\n\t\tthis.description = data.description;\n\t\tthis.url = data.url;\n\t\tthis.color = data.color;\n\t\tthis.thumbnail = data.thumbnail;\n\t\tthis.image = data.image;\n\t\tthis.video = data.video;\n\t\tthis.author = data.author;\n\t\tthis.provider = data.provider;\n\t\tthis.footer = data.footer;\n\t\tthis.fields = data.fields ?? [];\n\n\t\tif (data.timestamp) this.timestamp = new Date(data.timestamp).toISOString();\n\t}\n\n\t/**\n\t * The accumulated length for the embed title, description, fields, footer text, and author name\n\t */\n\tpublic get length(): number {\n\t\treturn (\n\t\t\t(this.title?.length ?? 0) +\n\t\t\t(this.description?.length ?? 0) +\n\t\t\tthis.fields.reduce((prev, curr) => prev + curr.name.length + curr.value.length, 0) +\n\t\t\t(this.footer?.text.length ?? 0) +\n\t\t\t(this.author?.name.length ?? 0)\n\t\t);\n\t}\n\n\t/**\n\t * Adds a field to the embed (max 25)\n\t *\n\t * @param field The field to add.\n\t */\n\tpublic addField(field: APIEmbedField): this {\n\t\treturn this.addFields(field);\n\t}\n\n\t/**\n\t * Adds fields to the embed (max 25)\n\t *\n\t * @param fields The fields to add\n\t */\n\tpublic addFields(...fields: APIEmbedField[]): this {\n\t\t// Data assertions\n\t\tembedFieldsArrayPredicate.parse(fields);\n\n\t\t// Ensure adding these fields won't exceed the 25 field limit\n\t\tvalidateFieldLength(this.fields, fields.length);\n\n\t\tthis.fields.push(...Embed.normalizeFields(...fields));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts fields in the embed (max 25)\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// Data assertions\n\t\tembedFieldsArrayPredicate.parse(fields);\n\n\t\t// Ensure adding these fields won't exceed the 25 field limit\n\t\tvalidateFieldLength(this.fields, fields.length - deleteCount);\n\n\t\tthis.fields.splice(index, deleteCount, ...Embed.normalizeFields(...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 for the author\n\t */\n\tpublic setAuthor(options: AuthorOptions | null): this {\n\t\tif (options === null) {\n\t\t\tthis.author = undefined;\n\t\t\treturn this;\n\t\t}\n\n\t\tconst { name, iconURL, url } = options;\n\t\t// Data assertions\n\t\tauthorNamePredicate.parse(name);\n\t\turlPredicate.parse(iconURL);\n\t\turlPredicate.parse(url);\n\n\t\tthis.author = { name, url, icon_url: 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 of the embed\n\t */\n\tpublic setColor(color: number | null): this {\n\t\t// Data assertions\n\t\tcolorPredicate.parse(color);\n\n\t\tthis.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\n\t */\n\tpublic setDescription(description: string | null): this {\n\t\t// Data assertions\n\t\tdescriptionPredicate.parse(description);\n\n\t\tthis.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 options for the footer\n\t */\n\tpublic setFooter(options: FooterOptions | null): this {\n\t\tif (options === null) {\n\t\t\tthis.footer = undefined;\n\t\t\treturn this;\n\t\t}\n\n\t\tconst { text, iconURL } = options;\n\t\t// Data assertions\n\t\tfooterTextPredicate.parse(text);\n\t\turlPredicate.parse(iconURL);\n\n\t\tthis.footer = { text, icon_url: 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 URL of the image\n\t */\n\tpublic setImage(url: string | null): this {\n\t\t// Data assertions\n\t\turlPredicate.parse(url);\n\n\t\tthis.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 URL of the thumbnail\n\t */\n\tpublic setThumbnail(url: string | null): this {\n\t\t// Data assertions\n\t\turlPredicate.parse(url);\n\n\t\tthis.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\n\t */\n\tpublic setTimestamp(timestamp: number | Date | null = Date.now()): this {\n\t\t// Data assertions\n\t\ttimestampPredicate.parse(timestamp);\n\n\t\tthis.timestamp = timestamp ? new Date(timestamp).toISOString() : undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the title of this embed\n\t *\n\t * @param title The title\n\t */\n\tpublic setTitle(title: string | null): this {\n\t\t// Data assertions\n\t\ttitlePredicate.parse(title);\n\n\t\tthis.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\n\t */\n\tpublic setURL(url: string | null): this {\n\t\t// Data assertions\n\t\turlPredicate.parse(url);\n\n\t\tthis.url = url ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Transforms the embed to a plain object\n\t */\n\tpublic toJSON(): APIEmbed {\n\t\treturn { ...this };\n\t}\n\n\t/**\n\t * Normalizes field input and resolves strings\n\t *\n\t * @param fields Fields to normalize\n\t */\n\tpublic static normalizeFields(...fields: APIEmbedField[]): APIEmbedField[] {\n\t\treturn fields.flat(Infinity).map((field) => {\n\t\t\tfieldNamePredicate.parse(field.name);\n\t\t\tfieldValuePredicate.parse(field.value);\n\t\t\tfieldInlinePredicate.parse(field.inline);\n\n\t\t\treturn { name: field.name, value: field.value, inline: field.inline ?? undefined };\n\t\t});\n\t}\n}\n","import type { Snowflake } from 'discord-api-types/globals';\nimport type { URL } from 'url';\n\n/**\n * Wraps the content inside a codeblock with no language\n *\n * @param content The content to wrap\n */\nexport function codeBlock(content: C): `\\`\\`\\`\\n${C}\\`\\`\\``;\n\n/**\n * Wraps the content inside a codeblock with the specified language\n *\n * @param language The language for the codeblock\n * @param content The content to wrap\n */\nexport function codeBlock(language: L, content: C): `\\`\\`\\`${L}\\n${C}\\`\\`\\``;\nexport function codeBlock(language: string, content?: string): string {\n\treturn typeof content === 'undefined' ? `\\`\\`\\`\\n${language}\\`\\`\\`` : `\\`\\`\\`${language}\\n${content}\\`\\`\\``;\n}\n\n/**\n * Wraps the content inside \\`backticks\\`, which formats it as inline code\n *\n * @param content The content to wrap\n */\nexport function inlineCode(content: C): `\\`${C}\\`` {\n\treturn `\\`${content}\\``;\n}\n\n/**\n * Formats the content into italic text\n *\n * @param content The content to wrap\n */\nexport function italic(content: C): `_${C}_` {\n\treturn `_${content}_`;\n}\n\n/**\n * Formats the content into bold text\n *\n * @param content The content to wrap\n */\nexport function bold(content: C): `**${C}**` {\n\treturn `**${content}**`;\n}\n\n/**\n * Formats the content into underscored text\n *\n * @param content The content to wrap\n */\nexport function underscore(content: C): `__${C}__` {\n\treturn `__${content}__`;\n}\n\n/**\n * Formats the content into strike-through text\n *\n * @param content The content to wrap\n */\nexport function strikethrough(content: C): `~~${C}~~` {\n\treturn `~~${content}~~`;\n}\n\n/**\n * Formats the content into a quote. This needs to be at the start of the line for Discord to format it\n *\n * @param content The content to wrap\n */\nexport function quote(content: C): `> ${C}` {\n\treturn `> ${content}`;\n}\n\n/**\n * Formats the content into a block quote. This needs to be at the start of the line for Discord to format it\n *\n * @param content The content to wrap\n */\nexport function blockQuote(content: C): `>>> ${C}` {\n\treturn `>>> ${content}`;\n}\n\n/**\n * Wraps the URL into `<>`, which stops it from embedding\n *\n * @param url The URL to wrap\n */\nexport function hideLinkEmbed(url: C): `<${C}>`;\n\n/**\n * Wraps the URL into `<>`, which stops it from embedding\n *\n * @param url The URL to wrap\n */\nexport function hideLinkEmbed(url: URL): `<${string}>`;\nexport function hideLinkEmbed(url: string | URL) {\n\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\treturn `<${url}>`;\n}\n\n/**\n * Formats the content and the URL into a masked URL\n *\n * @param content The content to display\n * @param url The URL the content links to\n */\nexport function hyperlink(content: C, url: URL): `[${C}](${string})`;\n\n/**\n * Formats the content and the URL into a masked URL\n *\n * @param content The content to display\n * @param url The URL the content links to\n */\nexport function hyperlink(content: C, url: U): `[${C}](${U})`;\n\n/**\n * Formats the content and the URL into a masked URL\n *\n * @param content The content to display\n * @param url The URL the content links to\n * @param title The title shown when hovering on the masked link\n */\nexport function hyperlink(\n\tcontent: C,\n\turl: URL,\n\ttitle: T,\n): `[${C}](${string} \"${T}\")`;\n\n/**\n * Formats the content and the URL into a masked URL\n *\n * @param content The content to display\n * @param url The URL the content links to\n * @param title The title shown when hovering on the masked link\n */\nexport function hyperlink(\n\tcontent: C,\n\turl: U,\n\ttitle: T,\n): `[${C}](${U} \"${T}\")`;\nexport function hyperlink(content: string, url: string | URL, title?: string) {\n\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\treturn title ? `[${content}](${url} \"${title}\")` : `[${content}](${url})`;\n}\n\n/**\n * Wraps the content inside spoiler (hidden text)\n *\n * @param content The content to wrap\n */\nexport function spoiler(content: C): `||${C}||` {\n\treturn `||${content}||`;\n}\n\n/**\n * Formats a user ID into a user mention\n *\n * @param userId The user ID to format\n */\nexport function userMention(userId: C): `<@${C}>` {\n\treturn `<@${userId}>`;\n}\n\n/**\n * Formats a user ID into a member-nickname mention\n *\n * @param memberId The user ID to format\n */\nexport function memberNicknameMention(memberId: C): `<@!${C}>` {\n\treturn `<@!${memberId}>`;\n}\n\n/**\n * Formats a channel ID into a channel mention\n *\n * @param channelId The channel ID to format\n */\nexport function channelMention(channelId: C): `<#${C}>` {\n\treturn `<#${channelId}>`;\n}\n\n/**\n * Formats a role ID into a role mention\n *\n * @param roleId The role ID to format\n */\nexport function roleMention(roleId: C): `<@&${C}>` {\n\treturn `<@&${roleId}>`;\n}\n\n/**\n * Formats an emoji ID into a fully qualified emoji identifier\n *\n * @param emojiId The emoji ID to format\n */\nexport function formatEmoji(emojiId: C, animated?: false): `<:_:${C}>`;\n\n/**\n * Formats an emoji ID into a fully qualified emoji identifier\n *\n * @param emojiId The emoji ID to format\n * @param animated Whether the emoji is animated or not. Defaults to `false`\n */\nexport function formatEmoji(emojiId: C, animated?: true): ``;\n\n/**\n * Formats an emoji ID into a fully qualified emoji identifier\n *\n * @param emojiId The emoji ID to format\n * @param animated Whether the emoji is animated or not. Defaults to `false`\n */\nexport function formatEmoji(emojiId: C, animated = false): `` | `<:_:${C}>` {\n\treturn `<${animated ? 'a' : ''}:_:${emojiId}>`;\n}\n\n/**\n * Formats a date into a short date-time string\n *\n * @param date The date to format, defaults to the current time\n */\nexport function time(date?: Date): ``;\n\n/**\n * Formats a date given a format style\n *\n * @param date The date to format\n * @param style The style to use\n */\nexport function time(date: Date, style: S): ``;\n\n/**\n * Formats the given timestamp into a short date-time string\n *\n * @param seconds The time to format, represents an UNIX timestamp in seconds\n */\nexport function time(seconds: C): ``;\n\n/**\n * Formats the given timestamp into a short date-time string\n *\n * @param seconds The time to format, represents an UNIX timestamp in seconds\n * @param style The style to use\n */\nexport function time(seconds: C, style: S): ``;\nexport function time(timeOrSeconds?: number | Date, style?: TimestampStylesString): string {\n\tif (typeof timeOrSeconds !== 'number') {\n\t\ttimeOrSeconds = Math.floor((timeOrSeconds?.getTime() ?? Date.now()) / 1000);\n\t}\n\n\treturn typeof style === 'string' ? `` : ``;\n}\n\n/**\n * The [message formatting timestamp styles](https://discord.com/developers/docs/reference#message-formatting-timestamp-styles) supported by Discord\n */\nexport const TimestampStyles = {\n\t/**\n\t * Short time format, consisting of hours and minutes, e.g. 16:20\n\t */\n\tShortTime: 't',\n\n\t/**\n\t * Long time format, consisting of hours, minutes, and seconds, e.g. 16:20:30\n\t */\n\tLongTime: 'T',\n\n\t/**\n\t * Short date format, consisting of day, month, and year, e.g. 20/04/2021\n\t */\n\tShortDate: 'd',\n\n\t/**\n\t * Long date format, consisting of day, month, and year, e.g. 20 April 2021\n\t */\n\tLongDate: 'D',\n\n\t/**\n\t * Short date-time format, consisting of short date and short time formats, e.g. 20 April 2021 16:20\n\t */\n\tShortDateTime: 'f',\n\n\t/**\n\t * Long date-time format, consisting of long date and short time formats, e.g. Tuesday, 20 April 2021 16:20\n\t */\n\tLongDateTime: 'F',\n\n\t/**\n\t * Relative time format, consisting of a relative duration format, e.g. 2 months ago\n\t */\n\tRelativeTime: 'R',\n} as const;\n\n/**\n * The possible values, see {@link TimestampStyles} for more information\n */\nexport type TimestampStylesString = typeof TimestampStyles[keyof typeof TimestampStyles];\n\n/**\n * An enum with all the available faces from Discord's native slash commands\n */\nexport enum Faces {\n\t/**\n\t * ¯\\\\_(ツ)\\\\_/¯\n\t */\n\tShrug = '¯\\\\_(ツ)\\\\_/¯',\n\n\t/**\n\t * (╯°□°)╯︵ ┻━┻\n\t */\n\tTableflip = '(╯°□°)╯︵ ┻━┻',\n\n\t/**\n\t * ┬─┬ ノ( ゜-゜ノ)\n\t */\n\tUnflip = '┬─┬ ノ( ゜-゜ノ)',\n}\n","import { APIMessageComponentEmoji, ButtonStyle } from 'discord-api-types/v9';\nimport { z } from 'zod';\nimport type { SelectMenuOption } from './selectMenu/SelectMenuOption';\n\nexport const customIdValidator = z.string().min(1).max(100);\n\nexport const emojiValidator = z\n\t.object({\n\t\tid: z.string(),\n\t\tname: z.string(),\n\t\tanimated: z.boolean(),\n\t})\n\t.partial()\n\t.strict();\n\nexport const disabledValidator = z.boolean();\n\nexport const buttonLabelValidator = z.string().nonempty().max(80);\n\nexport const buttonStyleValidator = z.number().int().min(ButtonStyle.Primary).max(ButtonStyle.Link);\n\nexport const placeholderValidator = z.string().max(100);\nexport const minMaxValidator = z.number().int().min(0).max(25);\n\nexport const optionsValidator = z.object({}).array().nonempty();\n\nexport function validateRequiredSelectMenuParameters(options: SelectMenuOption[], customId?: string) {\n\tcustomIdValidator.parse(customId);\n\toptionsValidator.parse(options);\n}\n\nexport const labelValueValidator = z.string().min(1).max(100);\nexport const defaultValidator = z.boolean();\n\nexport function validateRequiredSelectMenuOptionParameters(label?: string, value?: string) {\n\tlabelValueValidator.parse(label);\n\tlabelValueValidator.parse(value);\n}\n\nexport const urlValidator = z.string().url();\n\nexport function validateRequiredButtonParameters(\n\tstyle: ButtonStyle,\n\tlabel?: string,\n\temoji?: APIMessageComponentEmoji,\n\tcustomId?: string,\n\turl?: string,\n) {\n\tif (url && customId) {\n\t\tthrow new RangeError('URL and custom id are mutually exclusive');\n\t}\n\n\tif (!label && !emoji) {\n\t\tthrow new RangeError('Buttons must have a label and/or an emoji');\n\t}\n\n\tif (style === ButtonStyle.Link) {\n\t\tif (!url) {\n\t\t\tthrow new RangeError('Link buttons must have a url');\n\t\t}\n\t} else if (url) {\n\t\tthrow new RangeError('Non-link buttons cannot have a url');\n\t}\n}\n","import { APIActionRowComponent, ComponentType } from 'discord-api-types/v9';\nimport type { ButtonComponent, SelectMenuComponent } from '..';\nimport type { Component } from './Component';\nimport { createComponent } from './Components';\n\nexport type ActionRowComponent = ButtonComponent | SelectMenuComponent;\n\n// TODO: Add valid form component types\n\n/**\n * Represents an action row component\n */\nexport class ActionRow implements Component {\n\tpublic readonly components: T[] = [];\n\tpublic readonly type = ComponentType.ActionRow;\n\n\tpublic constructor(data?: APIActionRowComponent) {\n\t\tthis.components = (data?.components.map(createComponent) ?? []) as T[];\n\t}\n\n\t/**\n\t * Adds components to this action row.\n\t * @param components The components to add to this action row.\n\t * @returns\n\t */\n\tpublic addComponents(...components: T[]) {\n\t\tthis.components.push(...components);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the components in this action row\n\t * @param components The components to set this row to\n\t */\n\tpublic setComponents(components: T[]) {\n\t\tReflect.set(this, 'components', [...components]);\n\t\treturn this;\n\t}\n\n\tpublic toJSON(): APIActionRowComponent {\n\t\treturn {\n\t\t\t...this,\n\t\t\tcomponents: this.components.map((component) => component.toJSON()),\n\t\t};\n\t}\n}\n","import { APIMessageComponent, ComponentType } from 'discord-api-types/v9';\nimport { ActionRow, ButtonComponent, Component, SelectMenuComponent } from '../index';\nimport type { ActionRowComponent } from './ActionRow';\n\nexport interface MappedComponentTypes {\n\t[ComponentType.ActionRow]: ActionRow;\n\t[ComponentType.Button]: ButtonComponent;\n\t[ComponentType.SelectMenu]: SelectMenuComponent;\n}\n\n/**\n * Factory for creating components from API data\n * @param data The api data to transform to a component class\n */\nexport function createComponent(\n\tdata: APIMessageComponent & { type: T },\n): MappedComponentTypes[T];\nexport function createComponent(data: APIMessageComponent): Component {\n\tswitch (data.type) {\n\t\tcase ComponentType.ActionRow:\n\t\t\treturn new ActionRow(data);\n\t\tcase ComponentType.Button:\n\t\t\treturn new ButtonComponent(data);\n\t\tcase ComponentType.SelectMenu:\n\t\t\treturn new SelectMenuComponent(data);\n\t\tdefault:\n\t\t\t// @ts-expect-error\n\t\t\tthrow new Error(`Cannot serialize component type: ${data.type as number}`);\n\t}\n}\n","import { APIButtonComponent, APIMessageComponentEmoji, ButtonStyle, ComponentType } from 'discord-api-types/v9';\nimport {\n\tbuttonLabelValidator,\n\tbuttonStyleValidator,\n\tcustomIdValidator,\n\tdisabledValidator,\n\temojiValidator,\n\turlValidator,\n\tvalidateRequiredButtonParameters,\n} from './Assertions';\nimport type { Component } from './Component';\n\nexport class ButtonComponent implements Component {\n\tpublic readonly type = ComponentType.Button as const;\n\tpublic readonly style!: ButtonStyle;\n\tpublic readonly label?: string;\n\tpublic readonly emoji?: APIMessageComponentEmoji;\n\tpublic readonly disabled?: boolean;\n\tpublic readonly custom_id!: string;\n\tpublic readonly url!: string;\n\n\tpublic constructor(data?: APIButtonComponent) {\n\t\t/* eslint-disable @typescript-eslint/non-nullable-type-assertion-style */\n\t\tthis.style = data?.style as ButtonStyle;\n\t\tthis.label = data?.label;\n\t\tthis.emoji = data?.emoji;\n\t\tthis.disabled = data?.disabled;\n\n\t\t// This if/else makes typescript happy\n\t\tif (data?.style === ButtonStyle.Link) {\n\t\t\tthis.url = data.url;\n\t\t} else {\n\t\t\tthis.custom_id = data?.custom_id as string;\n\t\t}\n\n\t\t/* eslint-enable @typescript-eslint/non-nullable-type-assertion-style */\n\t}\n\n\t/**\n\t * Sets the style of this button\n\t * @param style The style of the button\n\t */\n\tpublic setStyle(style: ButtonStyle) {\n\t\tbuttonStyleValidator.parse(style);\n\t\tReflect.set(this, 'style', style);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the URL for this button\n\t * @param url The URL to open when this button is clicked\n\t */\n\tpublic setURL(url: string) {\n\t\turlValidator.parse(url);\n\t\tReflect.set(this, 'url', url);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the custom Id for this button\n\t * @param customId The custom ID to use for this button\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tcustomIdValidator.parse(customId);\n\t\tReflect.set(this, 'custom_id', customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the emoji to display on this button\n\t * @param emoji The emoji to display on this button\n\t */\n\tpublic setEmoji(emoji: APIMessageComponentEmoji) {\n\t\temojiValidator.parse(emoji);\n\t\tReflect.set(this, 'emoji', emoji);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this button is disable or not\n\t * @param disabled Whether or not to disable this button or not\n\t */\n\tpublic setDisabled(disabled: boolean) {\n\t\tdisabledValidator.parse(disabled);\n\t\tReflect.set(this, 'disabled', disabled);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the label for this button\n\t * @param label The label to display on this button\n\t */\n\tpublic setLabel(label: string) {\n\t\tbuttonLabelValidator.parse(label);\n\t\tReflect.set(this, 'label', label);\n\t\treturn this;\n\t}\n\n\tpublic toJSON(): APIButtonComponent {\n\t\tvalidateRequiredButtonParameters(this.style, this.label, this.emoji, this.custom_id, this.url);\n\t\treturn {\n\t\t\t...this,\n\t\t};\n\t}\n}\n","import { APISelectMenuComponent, ComponentType } from 'discord-api-types/v9';\nimport {\n\tcustomIdValidator,\n\tdisabledValidator,\n\tminMaxValidator,\n\tplaceholderValidator,\n\tvalidateRequiredSelectMenuParameters,\n} from '../Assertions';\nimport type { Component } from '../Component';\nimport { SelectMenuOption } from './SelectMenuOption';\n\n/**\n * Represents a select menu component\n */\nexport class SelectMenuComponent implements Component {\n\tpublic readonly type = ComponentType.SelectMenu as const;\n\tpublic readonly options: SelectMenuOption[];\n\tpublic readonly placeholder?: string;\n\tpublic readonly min_values?: number;\n\tpublic readonly max_values?: number;\n\tpublic readonly custom_id!: string;\n\tpublic readonly disabled?: boolean;\n\n\tpublic constructor(data?: APISelectMenuComponent) {\n\t\tthis.options = data?.options.map((option) => new SelectMenuOption(option)) ?? [];\n\t\tthis.placeholder = data?.placeholder;\n\t\tthis.min_values = data?.min_values;\n\t\tthis.max_values = data?.max_values;\n\t\t/* eslint-disable @typescript-eslint/non-nullable-type-assertion-style */\n\t\tthis.custom_id = data?.custom_id as string;\n\t\t/* eslint-enable @typescript-eslint/non-nullable-type-assertion-style */\n\t\tthis.disabled = data?.disabled;\n\t}\n\n\t/**\n\t * Sets the placeholder for this select menu\n\t * @param placeholder The placeholder to use for this select menu\n\t */\n\tpublic setPlaceholder(placeholder: string) {\n\t\tplaceholderValidator.parse(placeholder);\n\t\tReflect.set(this, 'placeholder', placeholder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets thes minimum values that must be selected in the select menu\n\t * @param minValues The minimum values that must be selected\n\t */\n\tpublic setMinValues(minValues: number) {\n\t\tminMaxValidator.parse(minValues);\n\t\tReflect.set(this, 'min_values', minValues);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets thes maximum values that must be selected in the select menu\n\t * @param minValues The maximum values that must be selected\n\t */\n\tpublic setMaxValues(maxValues: number) {\n\t\tminMaxValidator.parse(maxValues);\n\t\tReflect.set(this, 'max_values', maxValues);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the custom Id for this select menu\n\t * @param customId The custom ID to use for this select menu\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tcustomIdValidator.parse(customId);\n\t\tReflect.set(this, 'custom_id', customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether or not this select menu is disabled\n\t * @param disabled Whether or not this select menu is disabled\n\t */\n\tpublic setDisabled(disabled: boolean) {\n\t\tdisabledValidator.parse(disabled);\n\t\tReflect.set(this, 'disabled', disabled);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds options to this select menu\n\t * @param options The options to add to this select menu\n\t * @returns\n\t */\n\tpublic addOptions(...options: SelectMenuOption[]) {\n\t\tthis.options.push(...options);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the options on this select menu\n\t * @param options The options to set on this select menu\n\t */\n\tpublic setOptions(options: SelectMenuOption[]) {\n\t\tReflect.set(this, 'options', [...options]);\n\t\treturn this;\n\t}\n\n\tpublic toJSON(): APISelectMenuComponent {\n\t\tvalidateRequiredSelectMenuParameters(this.options, this.custom_id);\n\t\treturn {\n\t\t\t...this,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\t}\n}\n","import type { APIMessageComponentEmoji, APISelectMenuOption } from 'discord-api-types/v9';\nimport {\n\tdefaultValidator,\n\temojiValidator,\n\tlabelValueValidator,\n\tvalidateRequiredSelectMenuOptionParameters,\n} from '../Assertions';\n\n/**\n * Represents an option within a select menu component\n */\nexport class SelectMenuOption {\n\tpublic readonly label!: string;\n\tpublic readonly value!: string;\n\tpublic readonly description?: string;\n\tpublic readonly emoji?: APIMessageComponentEmoji;\n\tpublic readonly default?: boolean;\n\n\tpublic constructor(data?: APISelectMenuOption) {\n\t\t/* eslint-disable @typescript-eslint/non-nullable-type-assertion-style */\n\t\tthis.label = data?.label as string;\n\t\tthis.value = data?.value as string;\n\t\t/* eslint-enable @typescript-eslint/non-nullable-type-assertion-style */\n\t\tthis.description = data?.description;\n\t\tthis.emoji = data?.emoji;\n\t\tthis.default = data?.default;\n\t}\n\n\t/**\n\t * Sets the label of this option\n\t * @param label The label to show on this option\n\t */\n\tpublic setLabel(label: string) {\n\t\tReflect.set(this, 'label', label);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the value of this option\n\t * @param value The value of this option\n\t */\n\tpublic setValue(value: string) {\n\t\tReflect.set(this, 'value', value);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description of this option.\n\t * @param description The description of this option\n\t */\n\tpublic setDescription(description: string) {\n\t\tlabelValueValidator.parse(description);\n\t\tReflect.set(this, 'description', description);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this option is selected by default\n\t * @param isDefault Whether or not this option is selected by default\n\t */\n\tpublic setDefault(isDefault: boolean) {\n\t\tdefaultValidator.parse(isDefault);\n\t\tReflect.set(this, 'default', isDefault);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the emoji to display on this button\n\t * @param emoji The emoji to display on this button\n\t */\n\tpublic setEmoji(emoji: APIMessageComponentEmoji) {\n\t\temojiValidator.parse(emoji);\n\t\tReflect.set(this, 'emoji', emoji);\n\t\treturn this;\n\t}\n\n\tpublic toJSON(): APISelectMenuOption {\n\t\tvalidateRequiredSelectMenuOptionParameters(this.label, this.value);\n\t\treturn {\n\t\t\t...this,\n\t\t};\n\t}\n}\n","import is from '@sindresorhus/is';\nimport type { APIApplicationCommandOptionChoice } from 'discord-api-types/v9';\nimport { z } from 'zod';\nimport type { ApplicationCommandOptionBase } from './mixins/ApplicationCommandOptionBase';\nimport type { ToAPIApplicationCommandOptions } from './SlashCommandBuilder';\nimport type { SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder } from './SlashCommandSubcommands';\n\nconst namePredicate = z\n\t.string()\n\t.min(1)\n\t.max(32)\n\t.regex(/^[\\P{Lu}\\p{N}_-]+$/u);\n\nexport function validateName(name: unknown): asserts name is string {\n\tnamePredicate.parse(name);\n}\n\nconst descriptionPredicate = z.string().min(1).max(100);\n\nexport function validateDescription(description: unknown): asserts description is string {\n\tdescriptionPredicate.parse(description);\n}\n\nconst maxArrayLengthPredicate = z.unknown().array().max(25);\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 = z.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\nexport function validateMaxChoicesLength(choices: APIApplicationCommandOptionChoice[]) {\n\tmaxArrayLengthPredicate.parse(choices);\n}\n\nexport function assertReturnOfBuilder<\n\tT extends ApplicationCommandOptionBase | SlashCommandSubcommandBuilder | SlashCommandSubcommandGroupBuilder,\n>(input: unknown, ExpectedInstanceOf: new () => T): asserts input is T {\n\tconst instanceName = ExpectedInstanceOf.name;\n\n\tif (is.nullOrUndefined(input)) {\n\t\tthrow new TypeError(\n\t\t\t`Expected to receive a ${instanceName} builder, got ${input === null ? 'null' : 'undefined'} instead.`,\n\t\t);\n\t}\n\n\tif (is.primitive(input)) {\n\t\tthrow new TypeError(`Expected to receive a ${instanceName} builder, got a primitive (${typeof input}) instead.`);\n\t}\n\n\tif (!(input instanceof ExpectedInstanceOf)) {\n\t\tconst casted = input as Record;\n\n\t\tconst constructorName = is.function_(input) ? input.name : casted.constructor.name;\n\t\tconst stringTag = Reflect.get(casted, Symbol.toStringTag) as string | undefined;\n\n\t\tconst fullResultName = stringTag ? `${constructorName} [${stringTag}]` : constructorName;\n\n\t\tthrow new TypeError(`Expected to receive a ${instanceName} builder, got ${fullResultName} instead.`);\n\t}\n}\n","import type { APIApplicationCommandOption, RESTPostAPIApplicationCommandsJSONBody } from 'discord-api-types/v9';\nimport { mix } from 'ts-mixer';\nimport {\n\tassertReturnOfBuilder,\n\tvalidateDefaultPermission,\n\tvalidateMaxOptionsLength,\n\tvalidateRequiredParameters,\n} from './Assertions';\nimport { SharedSlashCommandOptions } from './mixins/SharedSlashCommandOptions';\nimport { SharedNameAndDescription } from './mixins/NameAndDescription';\nimport { SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder } from './SlashCommandSubcommands';\n\n@mix(SharedSlashCommandOptions, SharedNameAndDescription)\nexport class SlashCommandBuilder {\n\t/**\n\t * The name of this slash command\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The description of this slash command\n\t */\n\tpublic readonly description: string = undefined!;\n\n\t/**\n\t * The options of this slash command\n\t */\n\tpublic readonly options: ToAPIApplicationCommandOptions[] = [];\n\n\t/**\n\t * Whether the command is enabled by default when the app is added to a guild\n\t *\n\t * @default true\n\t */\n\tpublic readonly defaultPermission: boolean | undefined = undefined;\n\n\t/**\n\t * Returns the final data that should be sent to Discord.\n\t *\n\t * **Note:** Calling this function will validate required properties based on their conditions.\n\t */\n\tpublic toJSON(): RESTPostAPIApplicationCommandsJSONBody {\n\t\tvalidateRequiredParameters(this.name, this.description, this.options);\n\n\t\treturn {\n\t\t\tname: this.name,\n\t\t\tdescription: this.description,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t\tdefault_permission: this.defaultPermission,\n\t\t};\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 * **Note**: If set to `false`, you will have to later `PUT` the permissions for this command.\n\t *\n\t * @param value Whether or not to enable this command by default\n\t *\n\t * @see https://discord.com/developers/docs/interactions/application-commands#permissions\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, 'defaultPermission', value);\n\n\t\treturn this;\n\t}\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): SlashCommandSubcommandsOnlyBuilder {\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;\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): SlashCommandSubcommandsOnlyBuilder {\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;\n\t}\n}\n\nexport interface SlashCommandBuilder extends SharedNameAndDescription, SharedSlashCommandOptions {}\n\nexport interface SlashCommandSubcommandsOnlyBuilder\n\textends SharedNameAndDescription,\n\t\tPick {}\n\nexport interface SlashCommandOptionsOnlyBuilder\n\textends SharedNameAndDescription,\n\t\tSharedSlashCommandOptions,\n\t\tPick {}\n\nexport interface ToAPIApplicationCommandOptions {\n\ttoJSON: () => APIApplicationCommandOption;\n}\n","import { APIApplicationCommandBooleanOption, ApplicationCommandOptionType } from 'discord-api-types/v9';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase';\n\nexport class SlashCommandBooleanOption extends ApplicationCommandOptionBase {\n\tpublic readonly type = ApplicationCommandOptionType.Boolean as const;\n\n\tpublic toJSON(): APIApplicationCommandBooleanOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { validateDescription, validateName } from '../Assertions';\n\nexport class SharedNameAndDescription {\n\tpublic readonly name!: string;\n\tpublic readonly description!: string;\n\n\t/**\n\t * Sets the name\n\t *\n\t * @param name The name\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\n\t *\n\t * @param description The description\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","import type { APIApplicationCommandBasicOption, ApplicationCommandOptionType } from 'discord-api-types/v9';\nimport { validateRequiredParameters, validateRequired } from '../Assertions';\nimport { SharedNameAndDescription } from './NameAndDescription';\n\nexport abstract class ApplicationCommandOptionBase extends SharedNameAndDescription {\n\tpublic abstract readonly type: ApplicationCommandOptionType;\n\n\tpublic readonly required: boolean = false;\n\n\t/**\n\t * Marks the option as required\n\t *\n\t * @param required If 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\tpublic abstract toJSON(): APIApplicationCommandBasicOption;\n\n\tprotected runRequiredValidations() {\n\t\tvalidateRequiredParameters(this.name, this.description, []);\n\n\t\t// Assert that you actually passed a boolean\n\t\tvalidateRequired(this.required);\n\t}\n}\n","import { APIApplicationCommandChannelOption, ApplicationCommandOptionType } from 'discord-api-types/v9';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase';\nimport { ApplicationCommandOptionChannelTypesMixin } from '../mixins/ApplicationCommandOptionChannelTypesMixin';\n\n@mix(ApplicationCommandOptionChannelTypesMixin)\nexport class SlashCommandChannelOption extends ApplicationCommandOptionBase {\n\tpublic override readonly type = ApplicationCommandOptionType.Channel as const;\n\n\tpublic toJSON(): APIApplicationCommandChannelOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n\nexport interface SlashCommandChannelOption extends ApplicationCommandOptionChannelTypesMixin {}\n","import { ChannelType } from 'discord-api-types/v9';\nimport { z, ZodLiteral } from 'zod';\n\n// Only allow valid channel types to be used. (This can't be dynamic because const enums are erased at runtime)\nconst allowedChannelTypes = [\n\tChannelType.GuildText,\n\tChannelType.GuildVoice,\n\tChannelType.GuildCategory,\n\tChannelType.GuildNews,\n\tChannelType.GuildStore,\n\tChannelType.GuildNewsThread,\n\tChannelType.GuildPublicThread,\n\tChannelType.GuildPrivateThread,\n\tChannelType.GuildStageVoice,\n] as const;\n\nexport type ApplicationCommandOptionAllowedChannelTypes = typeof allowedChannelTypes[number];\n\nconst channelTypePredicate = z.union(\n\tallowedChannelTypes.map((type) => z.literal(type)) as [\n\t\tZodLiteral,\n\t\tZodLiteral,\n\t\t...ZodLiteral[]\n\t],\n);\n\nexport class ApplicationCommandOptionChannelTypesMixin {\n\tpublic readonly channel_types?: ApplicationCommandOptionAllowedChannelTypes[];\n\n\t/**\n\t * Adds a channel type to this option\n\t *\n\t * @param channelType The type of channel to allow\n\t */\n\tpublic addChannelType(channelType: ApplicationCommandOptionAllowedChannelTypes) {\n\t\tif (this.channel_types === undefined) {\n\t\t\tReflect.set(this, 'channel_types', []);\n\t\t}\n\n\t\tchannelTypePredicate.parse(channelType);\n\t\tthis.channel_types!.push(channelType);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds channel types to this option\n\t *\n\t * @param channelTypes The channel types to add\n\t */\n\tpublic addChannelTypes(channelTypes: ApplicationCommandOptionAllowedChannelTypes[]) {\n\t\tchannelTypes.forEach((channelType) => this.addChannelType(channelType));\n\t\treturn this;\n\t}\n}\n","import { APIApplicationCommandIntegerOption, ApplicationCommandOptionType } from 'discord-api-types/v9';\nimport { mix } from 'ts-mixer';\nimport { z } from 'zod';\nimport { ApplicationCommandNumericOptionMinMaxValueMixin } from '../mixins/ApplicationCommandNumericOptionMinMaxValueMixin';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase';\nimport { ApplicationCommandOptionWithChoicesAndAutocompleteMixin } from '../mixins/ApplicationCommandOptionWithChoicesAndAutocompleteMixin';\n\nconst numberValidator = z.number().int().nonnegative();\n\n@mix(ApplicationCommandNumericOptionMinMaxValueMixin, ApplicationCommandOptionWithChoicesAndAutocompleteMixin)\nexport class SlashCommandIntegerOption\n\textends ApplicationCommandOptionBase\n\timplements ApplicationCommandNumericOptionMinMaxValueMixin\n{\n\tpublic readonly type = ApplicationCommandOptionType.Integer as const;\n\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\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\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 };\n\t}\n}\n\nexport interface SlashCommandIntegerOption\n\textends ApplicationCommandNumericOptionMinMaxValueMixin,\n\t\tApplicationCommandOptionWithChoicesAndAutocompleteMixin {}\n","export abstract class ApplicationCommandNumericOptionMinMaxValueMixin {\n\tpublic readonly max_value?: number;\n\tpublic readonly min_value?: number;\n\n\t/**\n\t * Sets the maximum number value of this option\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 * @param min The minimum value this option can be\n\t */\n\tpublic abstract setMinValue(min: number): this;\n}\n","import { APIApplicationCommandOptionChoice, ApplicationCommandOptionType } from 'discord-api-types/v9';\nimport { z } from 'zod';\nimport { validateMaxChoicesLength } from '../Assertions';\n\nconst stringPredicate = z.string().min(1).max(100);\nconst numberPredicate = z.number().gt(-Infinity).lt(Infinity);\nconst choicesPredicate = z.tuple([stringPredicate, z.union([stringPredicate, numberPredicate])]).array();\nconst booleanPredicate = z.boolean();\n\nexport class ApplicationCommandOptionWithChoicesAndAutocompleteMixin {\n\tpublic readonly choices?: APIApplicationCommandOptionChoice[];\n\tpublic readonly autocomplete?: boolean;\n\n\t// Since this is present and this is a mixin, this is needed\n\tpublic readonly type!: ApplicationCommandOptionType;\n\n\t/**\n\t * Adds a choice for this option\n\t *\n\t * @param name The name of the choice\n\t * @param value The value of the choice\n\t */\n\tpublic addChoice(name: string, value: T): Omit {\n\t\tif (this.autocomplete) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\tif (this.choices === undefined) {\n\t\t\tReflect.set(this, 'choices', []);\n\t\t}\n\n\t\tvalidateMaxChoicesLength(this.choices!);\n\n\t\t// Validate name\n\t\tstringPredicate.parse(name);\n\n\t\t// Validate the value\n\t\tif (this.type === ApplicationCommandOptionType.String) {\n\t\t\tstringPredicate.parse(value);\n\t\t} else {\n\t\t\tnumberPredicate.parse(value);\n\t\t}\n\n\t\tthis.choices!.push({ name, value });\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds multiple choices for this option\n\t *\n\t * @param choices The choices to add\n\t */\n\tpublic addChoices(choices: [name: string, value: T][]): Omit {\n\t\tif (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(choices);\n\n\t\tfor (const [label, value] of choices) this.addChoice(label, value);\n\t\treturn this;\n\t}\n\n\tpublic setChoices(\n\t\tchoices: Input,\n\t): Input extends []\n\t\t? this & Pick, 'setAutocomplete'>\n\t\t: Omit {\n\t\tif (choices.length > 0 && 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(choices);\n\n\t\tReflect.set(this, 'choices', []);\n\t\tfor (const [label, value] of choices) this.addChoice(label, value);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Marks the option as autocompletable\n\t * @param autocomplete If this option should be autocompletable\n\t */\n\tpublic setAutocomplete(\n\t\tautocomplete: U,\n\t): U extends true\n\t\t? Omit\n\t\t: this & Pick, 'addChoice' | 'addChoices'> {\n\t\t// Assert that you actually passed a boolean\n\t\tbooleanPredicate.parse(autocomplete);\n\n\t\tif (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\tReflect.set(this, 'autocomplete', autocomplete);\n\n\t\treturn this;\n\t}\n}\n","import { APIApplicationCommandMentionableOption, ApplicationCommandOptionType } from 'discord-api-types/v9';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase';\n\nexport class SlashCommandMentionableOption extends ApplicationCommandOptionBase {\n\tpublic readonly type = ApplicationCommandOptionType.Mentionable as const;\n\n\tpublic toJSON(): APIApplicationCommandMentionableOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { APIApplicationCommandNumberOption, ApplicationCommandOptionType } from 'discord-api-types/v9';\nimport { mix } from 'ts-mixer';\nimport { z } from 'zod';\nimport { ApplicationCommandNumericOptionMinMaxValueMixin } from '../mixins/ApplicationCommandNumericOptionMinMaxValueMixin';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase';\nimport { ApplicationCommandOptionWithChoicesAndAutocompleteMixin } from '../mixins/ApplicationCommandOptionWithChoicesAndAutocompleteMixin';\n\nconst numberValidator = z.number().nonnegative();\n\n@mix(ApplicationCommandNumericOptionMinMaxValueMixin, ApplicationCommandOptionWithChoicesAndAutocompleteMixin)\nexport class SlashCommandNumberOption\n\textends ApplicationCommandOptionBase\n\timplements ApplicationCommandNumericOptionMinMaxValueMixin\n{\n\tpublic readonly type = ApplicationCommandOptionType.Number as const;\n\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\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\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 };\n\t}\n}\n\nexport interface SlashCommandNumberOption\n\textends ApplicationCommandNumericOptionMinMaxValueMixin,\n\t\tApplicationCommandOptionWithChoicesAndAutocompleteMixin {}\n","import { APIApplicationCommandRoleOption, ApplicationCommandOptionType } from 'discord-api-types/v9';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase';\n\nexport class SlashCommandRoleOption extends ApplicationCommandOptionBase {\n\tpublic override readonly type = ApplicationCommandOptionType.Role as const;\n\n\tpublic toJSON(): APIApplicationCommandRoleOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { APIApplicationCommandStringOption, ApplicationCommandOptionType } from 'discord-api-types/v9';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase';\nimport { ApplicationCommandOptionWithChoicesAndAutocompleteMixin } from '../mixins/ApplicationCommandOptionWithChoicesAndAutocompleteMixin';\n\n@mix(ApplicationCommandOptionWithChoicesAndAutocompleteMixin)\nexport class SlashCommandStringOption extends ApplicationCommandOptionBase {\n\tpublic readonly type = ApplicationCommandOptionType.String as const;\n\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 };\n\t}\n}\n\nexport interface SlashCommandStringOption extends ApplicationCommandOptionWithChoicesAndAutocompleteMixin {}\n","import { APIApplicationCommandUserOption, ApplicationCommandOptionType } from 'discord-api-types/v9';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase';\n\nexport class SlashCommandUserOption extends ApplicationCommandOptionBase {\n\tpublic readonly type = ApplicationCommandOptionType.User as const;\n\n\tpublic toJSON(): APIApplicationCommandUserOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { assertReturnOfBuilder, validateMaxOptionsLength } from '../Assertions';\nimport type { ApplicationCommandOptionBase } from './ApplicationCommandOptionBase';\nimport { SlashCommandBooleanOption } from '../options/boolean';\nimport { SlashCommandChannelOption } from '../options/channel';\nimport { SlashCommandIntegerOption } from '../options/integer';\nimport { SlashCommandMentionableOption } from '../options/mentionable';\nimport { SlashCommandNumberOption } from '../options/number';\nimport { SlashCommandRoleOption } from '../options/role';\nimport { SlashCommandStringOption } from '../options/string';\nimport { SlashCommandUserOption } from '../options/user';\nimport type { ToAPIApplicationCommandOptions } from '../SlashCommandBuilder';\n\nexport class SharedSlashCommandOptions {\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 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:\n\t\t\t| SlashCommandStringOption\n\t\t\t| Omit\n\t\t\t| Omit\n\t\t\t| ((\n\t\t\t\t\tbuilder: SlashCommandStringOption,\n\t\t\t ) =>\n\t\t\t\t\t| SlashCommandStringOption\n\t\t\t\t\t| Omit\n\t\t\t\t\t| Omit),\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:\n\t\t\t| SlashCommandIntegerOption\n\t\t\t| Omit\n\t\t\t| Omit\n\t\t\t| ((\n\t\t\t\t\tbuilder: SlashCommandIntegerOption,\n\t\t\t ) =>\n\t\t\t\t\t| SlashCommandIntegerOption\n\t\t\t\t\t| Omit\n\t\t\t\t\t| Omit),\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:\n\t\t\t| SlashCommandNumberOption\n\t\t\t| Omit\n\t\t\t| Omit\n\t\t\t| ((\n\t\t\t\t\tbuilder: SlashCommandNumberOption,\n\t\t\t ) =>\n\t\t\t\t\t| SlashCommandNumberOption\n\t\t\t\t\t| Omit\n\t\t\t\t\t| Omit),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandNumberOption);\n\t}\n\n\tprivate _sharedAddOptionMethod(\n\t\tinput:\n\t\t\t| T\n\t\t\t| Omit\n\t\t\t| Omit\n\t\t\t| ((builder: T) => T | Omit | Omit),\n\t\tInstance: new () => T,\n\t): ShouldOmitSubcommandFunctions extends true ? Omit : this {\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;\n\t}\n}\n","import {\n\tAPIApplicationCommandSubcommandGroupOption,\n\tAPIApplicationCommandSubcommandOption,\n\tApplicationCommandOptionType,\n} from 'discord-api-types/v9';\nimport { mix } from 'ts-mixer';\nimport { assertReturnOfBuilder, validateMaxOptionsLength, validateRequiredParameters } from './Assertions';\nimport type { ApplicationCommandOptionBase } from './mixins/ApplicationCommandOptionBase';\nimport { SharedNameAndDescription } from './mixins/NameAndDescription';\nimport { SharedSlashCommandOptions } from './mixins/SharedSlashCommandOptions';\nimport type { ToAPIApplicationCommandOptions } from './SlashCommandBuilder';\n\n/**\n * Represents a folder for subcommands\n *\n * For more information, go to 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 part of 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\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\tdescription: this.description,\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 * Represents a subcommand\n *\n * For more information, go to 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 of this subcommand\n\t */\n\tpublic readonly options: ApplicationCommandOptionBase[] = [];\n\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\tdescription: this.description,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\t}\n}\n\nexport interface SlashCommandSubcommandBuilder extends SharedNameAndDescription, SharedSlashCommandOptions {}\n","import { z } from 'zod';\nimport { ApplicationCommandType } from 'discord-api-types/v9';\nimport type { ContextMenuCommandType } from './ContextMenuCommandBuilder';\n\nconst namePredicate = z\n\t.string()\n\t.min(1)\n\t.max(32)\n\t.regex(/^( *[\\p{L}\\p{N}_-]+ *)+$/u);\n\nconst typePredicate = z.union([z.literal(ApplicationCommandType.User), z.literal(ApplicationCommandType.Message)]);\n\nconst booleanPredicate = z.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","import { validateRequiredParameters, validateName, validateType, validateDefaultPermission } from './Assertions';\nimport type { ApplicationCommandType, RESTPostAPIApplicationCommandsJSONBody } from 'discord-api-types/v9';\n\nexport class ContextMenuCommandBuilder {\n\t/**\n\t * The name of this context menu command\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The type of this context menu command\n\t */\n\tpublic readonly type: ContextMenuCommandType = undefined!;\n\n\t/**\n\t * Whether the command is enabled by default when the app is added to a guild\n\t *\n\t * @default true\n\t */\n\tpublic readonly defaultPermission: boolean | undefined = undefined;\n\n\t/**\n\t * Sets the name\n\t *\n\t * @param name The name\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\n\t *\n\t * @param type The type\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 * **Note**: If set to `false`, you will have to later `PUT` the permissions for this command.\n\t *\n\t * @param value Whether or not to enable this command by default\n\t *\n\t * @see https://discord.com/developers/docs/interactions/application-commands#permissions\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, 'defaultPermission', value);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Returns the final data that should be sent to Discord.\n\t *\n\t * **Note:** Calling this function will validate required properties based on their conditions.\n\t */\n\tpublic toJSON(): RESTPostAPIApplicationCommandsJSONBody {\n\t\tvalidateRequiredParameters(this.name, this.type);\n\t\treturn {\n\t\t\tname: this.name,\n\t\t\ttype: this.type,\n\t\t\tdefault_permission: this.defaultPermission,\n\t\t};\n\t}\n}\n\nexport type ContextMenuCommandType = ApplicationCommandType.User | ApplicationCommandType.Message;\n"],"mappings":"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","names":[]} \ No newline at end of file diff --git a/node_modules/@discordjs/builders/dist/index.mjs b/node_modules/@discordjs/builders/dist/index.mjs new file mode 100644 index 0000000..18dae28 --- /dev/null +++ b/node_modules/@discordjs/builders/dist/index.mjs @@ -0,0 +1,4 @@ +var Q=Object.defineProperty;var ze=Object.getOwnPropertyDescriptor;var We=(t,e,i)=>e in t?Q(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i;var V=(t,e)=>{for(var i in e)Q(t,i,{get:e[i],enumerable:!0})};var l=(t,e,i,n)=>{for(var s=n>1?void 0:n?ze(e,i):e,y=t.length-1,P;y>=0;y--)(P=t[y])&&(s=(n?P(e,i,s):P(s))||s);return n&&s&&Q(e,i,s),s};var o=(t,e,i)=>(We(t,typeof e!="symbol"?e+"":e,i),i);var we={};V(we,{authorNamePredicate:()=>H,colorPredicate:()=>X,descriptionPredicate:()=>Y,embedFieldPredicate:()=>Re,embedFieldsArrayPredicate:()=>D,fieldInlinePredicate:()=>k,fieldLengthPredicate:()=>ve,fieldNamePredicate:()=>O,fieldValuePredicate:()=>L,footerTextPredicate:()=>ee,timestampPredicate:()=>te,titlePredicate:()=>oe,urlPredicate:()=>h,validateFieldLength:()=>U});import{z as d}from"zod";var O=d.string().min(1).max(256),L=d.string().min(1).max(1024),k=d.boolean().optional(),Re=d.object({name:O,value:L,inline:k}),D=Re.array(),ve=d.number().lte(25);function U(t,e){ve.parse(t.length+e)}var H=O.nullable(),h=d.string().url().nullish(),X=d.number().gte(0).lte(16777215).nullable(),Y=d.string().min(1).max(4096).nullable(),ee=d.string().min(1).max(2048).nullable(),te=d.union([d.number(),d.date()]).nullable(),oe=O.nullable();var J=class{constructor(e={}){o(this,"fields");o(this,"title");o(this,"description");o(this,"url");o(this,"color");o(this,"timestamp");o(this,"thumbnail");o(this,"image");o(this,"video");o(this,"author");o(this,"provider");o(this,"footer");this.title=e.title,this.description=e.description,this.url=e.url,this.color=e.color,this.thumbnail=e.thumbnail,this.image=e.image,this.video=e.video,this.author=e.author,this.provider=e.provider,this.footer=e.footer,this.fields=e.fields??[],e.timestamp&&(this.timestamp=new Date(e.timestamp).toISOString())}get length(){return(this.title?.length??0)+(this.description?.length??0)+this.fields.reduce((e,i)=>e+i.name.length+i.value.length,0)+(this.footer?.text.length??0)+(this.author?.name.length??0)}addField(e){return this.addFields(e)}addFields(...e){return D.parse(e),U(this.fields,e.length),this.fields.push(...J.normalizeFields(...e)),this}spliceFields(e,i,...n){return D.parse(n),U(this.fields,n.length-i),this.fields.splice(e,i,...J.normalizeFields(...n)),this}setAuthor(e){if(e===null)return this.author=void 0,this;let{name:i,iconURL:n,url:s}=e;return H.parse(i),h.parse(n),h.parse(s),this.author={name:i,url:s,icon_url:n},this}setColor(e){return X.parse(e),this.color=e??void 0,this}setDescription(e){return Y.parse(e),this.description=e??void 0,this}setFooter(e){if(e===null)return this.footer=void 0,this;let{text:i,iconURL:n}=e;return ee.parse(i),h.parse(n),this.footer={text:i,icon_url:n},this}setImage(e){return h.parse(e),this.image=e?{url:e}:void 0,this}setThumbnail(e){return h.parse(e),this.thumbnail=e?{url:e}:void 0,this}setTimestamp(e=Date.now()){return te.parse(e),this.timestamp=e?new Date(e).toISOString():void 0,this}setTitle(e){return oe.parse(e),this.title=e??void 0,this}setURL(e){return h.parse(e),this.url=e??void 0,this}toJSON(){return{...this}}static normalizeFields(...e){return e.flat(1/0).map(i=>(O.parse(i.name),L.parse(i.value),k.parse(i.inline),{name:i.name,value:i.value,inline:i.inline??void 0}))}};function Rt(t,e){return typeof e=="undefined"?`\`\`\` +${t}\`\`\``:`\`\`\`${t} +${e}\`\`\``}function vt(t){return`\`${t}\``}function wt(t){return`_${t}_`}function Bt(t){return`**${t}**`}function Nt(t){return`__${t}__`}function $t(t){return`~~${t}~~`}function Et(t){return`> ${t}`}function _t(t){return`>>> ${t}`}function Vt(t){return`<${t}>`}function Lt(t,e,i){return i?`[${t}](${e} "${i}")`:`[${t}](${e})`}function kt(t){return`||${t}||`}function Dt(t){return`<@${t}>`}function Ut(t){return`<@!${t}>`}function Jt(t){return`<#${t}>`}function jt(t){return`<@&${t}>`}function qt(t,e=!1){return`<${e?"a":""}:_:${t}>`}function Ft(t,e){return typeof t!="number"&&(t=Math.floor((t?.getTime()??Date.now())/1e3)),typeof e=="string"?``:``}var Gt={ShortTime:"t",LongTime:"T",ShortDate:"d",LongDate:"D",ShortDateTime:"f",LongDateTime:"F",RelativeTime:"R"},Ze=(n=>(n.Shrug="\xAF\\_(\u30C4)\\_/\xAF",n.Tableflip="(\u256F\xB0\u25A1\xB0\uFF09\u256F\uFE35 \u253B\u2501\u253B",n.Unflip="\u252C\u2500\u252C \u30CE( \u309C-\u309C\u30CE)",n))(Ze||{});var Ne={};V(Ne,{buttonLabelValidator:()=>ne,buttonStyleValidator:()=>re,customIdValidator:()=>S,defaultValidator:()=>pe,disabledValidator:()=>I,emojiValidator:()=>T,labelValueValidator:()=>M,minMaxValidator:()=>j,optionsValidator:()=>Be,placeholderValidator:()=>ae,urlValidator:()=>le,validateRequiredButtonParameters:()=>de,validateRequiredSelectMenuOptionParameters:()=>me,validateRequiredSelectMenuParameters:()=>se});import{ButtonStyle as ie}from"discord-api-types/v9";import{z as m}from"zod";var S=m.string().min(1).max(100),T=m.object({id:m.string(),name:m.string(),animated:m.boolean()}).partial().strict(),I=m.boolean(),ne=m.string().nonempty().max(80),re=m.number().int().min(ie.Primary).max(ie.Link),ae=m.string().max(100),j=m.number().int().min(0).max(25),Be=m.object({}).array().nonempty();function se(t,e){S.parse(e),Be.parse(t)}var M=m.string().min(1).max(100),pe=m.boolean();function me(t,e){M.parse(t),M.parse(e)}var le=m.string().url();function de(t,e,i,n,s){if(s&&n)throw new RangeError("URL and custom id are mutually exclusive");if(!e&&!i)throw new RangeError("Buttons must have a label and/or an emoji");if(t===ie.Link){if(!s)throw new RangeError("Link buttons must have a url")}else if(s)throw new RangeError("Non-link buttons cannot have a url")}import{ComponentType as Ke}from"discord-api-types/v9";import{ComponentType as ce}from"discord-api-types/v9";function $e(t){switch(t.type){case ce.ActionRow:return new ue(t);case ce.Button:return new he(t);case ce.SelectMenu:return new be(t);default:throw new Error(`Cannot serialize component type: ${t.type}`)}}var ue=class{constructor(e){o(this,"components",[]);o(this,"type",Ke.ActionRow);this.components=e?.components.map($e)??[]}addComponents(...e){return this.components.push(...e),this}setComponents(e){return Reflect.set(this,"components",[...e]),this}toJSON(){return{...this,components:this.components.map(e=>e.toJSON())}}};import{ButtonStyle as Qe,ComponentType as He}from"discord-api-types/v9";var he=class{constructor(e){o(this,"type",He.Button);o(this,"style");o(this,"label");o(this,"emoji");o(this,"disabled");o(this,"custom_id");o(this,"url");this.style=e?.style,this.label=e?.label,this.emoji=e?.emoji,this.disabled=e?.disabled,e?.style===Qe.Link?this.url=e.url:this.custom_id=e?.custom_id}setStyle(e){return re.parse(e),Reflect.set(this,"style",e),this}setURL(e){return le.parse(e),Reflect.set(this,"url",e),this}setCustomId(e){return S.parse(e),Reflect.set(this,"custom_id",e),this}setEmoji(e){return T.parse(e),Reflect.set(this,"emoji",e),this}setDisabled(e){return I.parse(e),Reflect.set(this,"disabled",e),this}setLabel(e){return ne.parse(e),Reflect.set(this,"label",e),this}toJSON(){return de(this.style,this.label,this.emoji,this.custom_id,this.url),{...this}}};import{ComponentType as Xe}from"discord-api-types/v9";var Ce=class{constructor(e){o(this,"label");o(this,"value");o(this,"description");o(this,"emoji");o(this,"default");this.label=e?.label,this.value=e?.value,this.description=e?.description,this.emoji=e?.emoji,this.default=e?.default}setLabel(e){return Reflect.set(this,"label",e),this}setValue(e){return Reflect.set(this,"value",e),this}setDescription(e){return M.parse(e),Reflect.set(this,"description",e),this}setDefault(e){return pe.parse(e),Reflect.set(this,"default",e),this}setEmoji(e){return T.parse(e),Reflect.set(this,"emoji",e),this}toJSON(){return me(this.label,this.value),{...this}}};var be=class{constructor(e){o(this,"type",Xe.SelectMenu);o(this,"options");o(this,"placeholder");o(this,"min_values");o(this,"max_values");o(this,"custom_id");o(this,"disabled");this.options=e?.options.map(i=>new Ce(i))??[],this.placeholder=e?.placeholder,this.min_values=e?.min_values,this.max_values=e?.max_values,this.custom_id=e?.custom_id,this.disabled=e?.disabled}setPlaceholder(e){return ae.parse(e),Reflect.set(this,"placeholder",e),this}setMinValues(e){return j.parse(e),Reflect.set(this,"min_values",e),this}setMaxValues(e){return j.parse(e),Reflect.set(this,"max_values",e),this}setCustomId(e){return S.parse(e),Reflect.set(this,"custom_id",e),this}setDisabled(e){return I.parse(e),Reflect.set(this,"disabled",e),this}addOptions(...e){return this.options.push(...e),this}setOptions(e){return Reflect.set(this,"options",[...e]),this}toJSON(){return se(this.options,this.custom_id),{...this,options:this.options.map(e=>e.toJSON())}}};var Ve={};V(Ve,{assertReturnOfBuilder:()=>C,validateDefaultPermission:()=>xe,validateDescription:()=>G,validateMaxChoicesLength:()=>Ae,validateMaxOptionsLength:()=>c,validateName:()=>F,validateRequired:()=>z,validateRequiredParameters:()=>b});import fe from"@sindresorhus/is";import{z as q}from"zod";var Ye=q.string().min(1).max(32).regex(/^[\P{Lu}\p{N}_-]+$/u);function F(t){Ye.parse(t)}var et=q.string().min(1).max(100);function G(t){et.parse(t)}var Ee=q.unknown().array().max(25);function c(t){Ee.parse(t)}function b(t,e,i){F(t),G(e),c(i)}var _e=q.boolean();function xe(t){_e.parse(t)}function z(t){_e.parse(t)}function Ae(t){Ee.parse(t)}function C(t,e){let i=e.name;if(fe.nullOrUndefined(t))throw new TypeError(`Expected to receive a ${i} builder, got ${t===null?"null":"undefined"} instead.`);if(fe.primitive(t))throw new TypeError(`Expected to receive a ${i} builder, got a primitive (${typeof t}) instead.`);if(!(t instanceof e)){let n=t,s=fe.function_(t)?t.name:n.constructor.name,y=Reflect.get(n,Symbol.toStringTag),P=y?`${s} [${y}]`:s;throw new TypeError(`Expected to receive a ${i} builder, got ${P} instead.`)}}import{mix as At}from"ts-mixer";import{ApplicationCommandOptionType as tt}from"discord-api-types/v9";var f=class{constructor(){o(this,"name");o(this,"description")}setName(e){return F(e),Reflect.set(this,"name",e),this}setDescription(e){return G(e),Reflect.set(this,"description",e),this}};var p=class extends f{constructor(){super(...arguments);o(this,"required",!1)}setRequired(e){return z(e),Reflect.set(this,"required",e),this}runRequiredValidations(){b(this.name,this.description,[]),z(this.required)}};var ye=class extends p{constructor(){super(...arguments);o(this,"type",tt.Boolean)}toJSON(){return this.runRequiredValidations(),{...this}}};import{ApplicationCommandOptionType as nt}from"discord-api-types/v9";import{mix as rt}from"ts-mixer";import{ChannelType as u}from"discord-api-types/v9";import{z as Le}from"zod";var ot=[u.GuildText,u.GuildVoice,u.GuildCategory,u.GuildNews,u.GuildStore,u.GuildNewsThread,u.GuildPublicThread,u.GuildPrivateThread,u.GuildStageVoice],it=Le.union(ot.map(t=>Le.literal(t))),Oe=class{constructor(){o(this,"channel_types")}addChannelType(e){return this.channel_types===void 0&&Reflect.set(this,"channel_types",[]),it.parse(e),this.channel_types.push(e),this}addChannelTypes(e){return e.forEach(i=>this.addChannelType(i)),this}};var R=class extends p{constructor(){super(...arguments);o(this,"type",nt.Channel)}toJSON(){return this.runRequiredValidations(),{...this}}};R=l([rt(Oe)],R);import{ApplicationCommandOptionType as pt}from"discord-api-types/v9";import{mix as mt}from"ts-mixer";import{z as lt}from"zod";var v=class{constructor(){o(this,"max_value");o(this,"min_value")}};import{ApplicationCommandOptionType as at}from"discord-api-types/v9";import{z as w}from"zod";var W=w.string().min(1).max(100),ke=w.number().gt(-1/0).lt(1/0),De=w.tuple([W,w.union([W,ke])]).array(),st=w.boolean(),A=class{constructor(){o(this,"choices");o(this,"autocomplete");o(this,"type")}addChoice(e,i){if(this.autocomplete)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");return this.choices===void 0&&Reflect.set(this,"choices",[]),Ae(this.choices),W.parse(e),this.type===at.String?W.parse(i):ke.parse(i),this.choices.push({name:e,value:i}),this}addChoices(e){if(this.autocomplete)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");De.parse(e);for(let[i,n]of e)this.addChoice(i,n);return this}setChoices(e){if(e.length>0&&this.autocomplete)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");De.parse(e),Reflect.set(this,"choices",[]);for(let[i,n]of e)this.addChoice(i,n);return this}setAutocomplete(e){if(st.parse(e),e&&Array.isArray(this.choices)&&this.choices.length>0)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");return Reflect.set(this,"autocomplete",e),this}};var Ue=lt.number().int().nonnegative(),B=class extends p{constructor(){super(...arguments);o(this,"type",pt.Integer)}setMaxValue(e){return Ue.parse(e),Reflect.set(this,"max_value",e),this}setMinValue(e){return Ue.parse(e),Reflect.set(this,"min_value",e),this}toJSON(){if(this.runRequiredValidations(),this.autocomplete&&Array.isArray(this.choices)&&this.choices.length>0)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");return{...this}}};B=l([mt(v,A)],B);import{ApplicationCommandOptionType as dt}from"discord-api-types/v9";var Se=class extends p{constructor(){super(...arguments);o(this,"type",dt.Mentionable)}toJSON(){return this.runRequiredValidations(),{...this}}};import{ApplicationCommandOptionType as ct}from"discord-api-types/v9";import{mix as ut}from"ts-mixer";import{z as ht}from"zod";var Je=ht.number().nonnegative(),N=class extends p{constructor(){super(...arguments);o(this,"type",ct.Number)}setMaxValue(e){return Je.parse(e),Reflect.set(this,"max_value",e),this}setMinValue(e){return Je.parse(e),Reflect.set(this,"min_value",e),this}toJSON(){if(this.runRequiredValidations(),this.autocomplete&&Array.isArray(this.choices)&&this.choices.length>0)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");return{...this}}};N=l([ut(v,A)],N);import{ApplicationCommandOptionType as bt}from"discord-api-types/v9";var ge=class extends p{constructor(){super(...arguments);o(this,"type",bt.Role)}toJSON(){return this.runRequiredValidations(),{...this}}};import{ApplicationCommandOptionType as Ct}from"discord-api-types/v9";import{mix as ft}from"ts-mixer";var $=class extends p{constructor(){super(...arguments);o(this,"type",Ct.String)}toJSON(){if(this.runRequiredValidations(),this.autocomplete&&Array.isArray(this.choices)&&this.choices.length>0)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");return{...this}}};$=l([ft(A)],$);import{ApplicationCommandOptionType as xt}from"discord-api-types/v9";var Pe=class extends p{constructor(){super(...arguments);o(this,"type",xt.User)}toJSON(){return this.runRequiredValidations(),{...this}}};var E=class{constructor(){o(this,"options")}addBooleanOption(e){return this._sharedAddOptionMethod(e,ye)}addUserOption(e){return this._sharedAddOptionMethod(e,Pe)}addChannelOption(e){return this._sharedAddOptionMethod(e,R)}addRoleOption(e){return this._sharedAddOptionMethod(e,ge)}addMentionableOption(e){return this._sharedAddOptionMethod(e,Se)}addStringOption(e){return this._sharedAddOptionMethod(e,$)}addIntegerOption(e){return this._sharedAddOptionMethod(e,B)}addNumberOption(e){return this._sharedAddOptionMethod(e,N)}_sharedAddOptionMethod(e,i){let{options:n}=this;c(n);let s=typeof e=="function"?e(new i):e;return C(s,i),n.push(s),this}};import{ApplicationCommandOptionType as je}from"discord-api-types/v9";import{mix as qe}from"ts-mixer";var g=class{constructor(){o(this,"name");o(this,"description");o(this,"options",[])}addSubcommand(e){let{options:i}=this;c(i);let n=typeof e=="function"?e(new x):e;return C(n,x),i.push(n),this}toJSON(){return b(this.name,this.description,this.options),{type:je.SubcommandGroup,name:this.name,description:this.description,options:this.options.map(e=>e.toJSON())}}};g=l([qe(f)],g);var x=class{constructor(){o(this,"name");o(this,"description");o(this,"options",[])}toJSON(){return b(this.name,this.description,this.options),{type:je.Subcommand,name:this.name,description:this.description,options:this.options.map(e=>e.toJSON())}}};x=l([qe(f,E)],x);var Te=class{constructor(){o(this,"name");o(this,"description");o(this,"options",[]);o(this,"defaultPermission")}toJSON(){return b(this.name,this.description,this.options),{name:this.name,description:this.description,options:this.options.map(e=>e.toJSON()),default_permission:this.defaultPermission}}setDefaultPermission(e){return xe(e),Reflect.set(this,"defaultPermission",e),this}addSubcommandGroup(e){let{options:i}=this;c(i);let n=typeof e=="function"?e(new g):e;return C(n,g),i.push(n),this}addSubcommand(e){let{options:i}=this;c(i);let n=typeof e=="function"?e(new x):e;return C(n,x),i.push(n),this}};Te=l([At(E,f)],Te);var Ge={};V(Ge,{validateDefaultPermission:()=>Ie,validateName:()=>Z,validateRequiredParameters:()=>Me,validateType:()=>K});import{z as _}from"zod";import{ApplicationCommandType as Fe}from"discord-api-types/v9";var yt=_.string().min(1).max(32).regex(/^( *[\p{L}\p{N}_-]+ *)+$/u),Ot=_.union([_.literal(Fe.User),_.literal(Fe.Message)]),St=_.boolean();function Ie(t){St.parse(t)}function Z(t){yt.parse(t)}function K(t){Ot.parse(t)}function Me(t,e){Z(t),K(e)}var gt=class{constructor(){o(this,"name");o(this,"type");o(this,"defaultPermission")}setName(e){return Z(e),Reflect.set(this,"name",e),this}setType(e){return K(e),Reflect.set(this,"type",e),this}setDefaultPermission(e){return Ie(e),Reflect.set(this,"defaultPermission",e),this}toJSON(){return Me(this.name,this.type),{name:this.name,type:this.type,default_permission:this.defaultPermission}}};export{ue as ActionRow,he as ButtonComponent,Ne as ComponentAssertions,Ge as ContextMenuCommandAssertions,gt as ContextMenuCommandBuilder,J as Embed,we as EmbedAssertions,Ze as Faces,be as SelectMenuComponent,Ce as SelectMenuOption,Ve as SlashCommandAssertions,ye as SlashCommandBooleanOption,Te as SlashCommandBuilder,R as SlashCommandChannelOption,B as SlashCommandIntegerOption,Se as SlashCommandMentionableOption,N as SlashCommandNumberOption,ge as SlashCommandRoleOption,$ as SlashCommandStringOption,x as SlashCommandSubcommandBuilder,g as SlashCommandSubcommandGroupBuilder,Pe as SlashCommandUserOption,Gt as TimestampStyles,_t as blockQuote,Bt as bold,Jt as channelMention,Rt as codeBlock,$e as createComponent,qt as formatEmoji,Vt as hideLinkEmbed,Lt as hyperlink,vt as inlineCode,wt as italic,Ut as memberNicknameMention,Et as quote,jt as roleMention,kt as spoiler,$t as strikethrough,Ft as time,Nt as underscore,Dt as userMention}; +//# 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 new file mode 100644 index 0000000..e0a21b0 --- /dev/null +++ b/node_modules/@discordjs/builders/dist/index.mjs.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/messages/embed/Assertions.ts","../src/messages/embed/Embed.ts","../src/messages/formatters.ts","../src/components/Assertions.ts","../src/components/ActionRow.ts","../src/components/Components.ts","../src/components/Button.ts","../src/components/selectMenu/SelectMenu.ts","../src/components/selectMenu/SelectMenuOption.ts","../src/interactions/slashCommands/Assertions.ts","../src/interactions/slashCommands/SlashCommandBuilder.ts","../src/interactions/slashCommands/options/boolean.ts","../src/interactions/slashCommands/mixins/NameAndDescription.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionBase.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/ApplicationCommandOptionWithChoicesAndAutocompleteMixin.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/contextMenuCommands/Assertions.ts","../src/interactions/contextMenuCommands/ContextMenuCommandBuilder.ts"],"sourcesContent":["import type { APIEmbedField } from 'discord-api-types/v9';\nimport { z } from 'zod';\n\nexport const fieldNamePredicate = z.string().min(1).max(256);\n\nexport const fieldValuePredicate = z.string().min(1).max(1024);\n\nexport const fieldInlinePredicate = z.boolean().optional();\n\nexport const embedFieldPredicate = z.object({\n\tname: fieldNamePredicate,\n\tvalue: fieldValuePredicate,\n\tinline: fieldInlinePredicate,\n});\n\nexport const embedFieldsArrayPredicate = embedFieldPredicate.array();\n\nexport const fieldLengthPredicate = z.number().lte(25);\n\nexport function validateFieldLength(fields: APIEmbedField[], amountAdding: number): void {\n\tfieldLengthPredicate.parse(fields.length + amountAdding);\n}\n\nexport const authorNamePredicate = fieldNamePredicate.nullable();\n\nexport const urlPredicate = z.string().url().nullish();\n\nexport const colorPredicate = z.number().gte(0).lte(0xffffff).nullable();\n\nexport const descriptionPredicate = z.string().min(1).max(4096).nullable();\n\nexport const footerTextPredicate = z.string().min(1).max(2048).nullable();\n\nexport const timestampPredicate = z.union([z.number(), z.date()]).nullable();\n\nexport const titlePredicate = fieldNamePredicate.nullable();\n","import type {\n\tAPIEmbed,\n\tAPIEmbedAuthor,\n\tAPIEmbedField,\n\tAPIEmbedFooter,\n\tAPIEmbedImage,\n\tAPIEmbedProvider,\n\tAPIEmbedThumbnail,\n\tAPIEmbedVideo,\n} from 'discord-api-types/v9';\nimport {\n\tauthorNamePredicate,\n\tcolorPredicate,\n\tdescriptionPredicate,\n\tembedFieldsArrayPredicate,\n\tfieldInlinePredicate,\n\tfieldNamePredicate,\n\tfieldValuePredicate,\n\tfooterTextPredicate,\n\ttimestampPredicate,\n\ttitlePredicate,\n\turlPredicate,\n\tvalidateFieldLength,\n} from './Assertions';\n\nexport interface AuthorOptions {\n\tname: string;\n\turl?: string;\n\ticonURL?: string;\n}\n\nexport interface FooterOptions {\n\ttext: string;\n\ticonURL?: string;\n}\n\n/**\n * Represents an embed in a message (image/video preview, rich embed, etc.)\n */\nexport class Embed implements APIEmbed {\n\t/**\n\t * An array of fields of this embed\n\t */\n\tpublic fields: APIEmbedField[];\n\n\t/**\n\t * The embed title\n\t */\n\tpublic title?: string;\n\n\t/**\n\t * The embed description\n\t */\n\tpublic description?: string;\n\n\t/**\n\t * The embed url\n\t */\n\tpublic url?: string;\n\n\t/**\n\t * The embed color\n\t */\n\tpublic color?: number;\n\n\t/**\n\t * The timestamp of the embed in the ISO format\n\t */\n\tpublic timestamp?: string;\n\n\t/**\n\t * The embed thumbnail data\n\t */\n\tpublic thumbnail?: APIEmbedThumbnail;\n\n\t/**\n\t * The embed image data\n\t */\n\tpublic image?: APIEmbedImage;\n\n\t/**\n\t * Received video data\n\t */\n\tpublic video?: APIEmbedVideo;\n\n\t/**\n\t * The embed author data\n\t */\n\tpublic author?: APIEmbedAuthor;\n\n\t/**\n\t * Received data about the embed provider\n\t */\n\tpublic provider?: APIEmbedProvider;\n\n\t/**\n\t * The embed footer data\n\t */\n\tpublic footer?: APIEmbedFooter;\n\n\tpublic constructor(data: APIEmbed = {}) {\n\t\tthis.title = data.title;\n\t\tthis.description = data.description;\n\t\tthis.url = data.url;\n\t\tthis.color = data.color;\n\t\tthis.thumbnail = data.thumbnail;\n\t\tthis.image = data.image;\n\t\tthis.video = data.video;\n\t\tthis.author = data.author;\n\t\tthis.provider = data.provider;\n\t\tthis.footer = data.footer;\n\t\tthis.fields = data.fields ?? [];\n\n\t\tif (data.timestamp) this.timestamp = new Date(data.timestamp).toISOString();\n\t}\n\n\t/**\n\t * The accumulated length for the embed title, description, fields, footer text, and author name\n\t */\n\tpublic get length(): number {\n\t\treturn (\n\t\t\t(this.title?.length ?? 0) +\n\t\t\t(this.description?.length ?? 0) +\n\t\t\tthis.fields.reduce((prev, curr) => prev + curr.name.length + curr.value.length, 0) +\n\t\t\t(this.footer?.text.length ?? 0) +\n\t\t\t(this.author?.name.length ?? 0)\n\t\t);\n\t}\n\n\t/**\n\t * Adds a field to the embed (max 25)\n\t *\n\t * @param field The field to add.\n\t */\n\tpublic addField(field: APIEmbedField): this {\n\t\treturn this.addFields(field);\n\t}\n\n\t/**\n\t * Adds fields to the embed (max 25)\n\t *\n\t * @param fields The fields to add\n\t */\n\tpublic addFields(...fields: APIEmbedField[]): this {\n\t\t// Data assertions\n\t\tembedFieldsArrayPredicate.parse(fields);\n\n\t\t// Ensure adding these fields won't exceed the 25 field limit\n\t\tvalidateFieldLength(this.fields, fields.length);\n\n\t\tthis.fields.push(...Embed.normalizeFields(...fields));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts fields in the embed (max 25)\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// Data assertions\n\t\tembedFieldsArrayPredicate.parse(fields);\n\n\t\t// Ensure adding these fields won't exceed the 25 field limit\n\t\tvalidateFieldLength(this.fields, fields.length - deleteCount);\n\n\t\tthis.fields.splice(index, deleteCount, ...Embed.normalizeFields(...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 for the author\n\t */\n\tpublic setAuthor(options: AuthorOptions | null): this {\n\t\tif (options === null) {\n\t\t\tthis.author = undefined;\n\t\t\treturn this;\n\t\t}\n\n\t\tconst { name, iconURL, url } = options;\n\t\t// Data assertions\n\t\tauthorNamePredicate.parse(name);\n\t\turlPredicate.parse(iconURL);\n\t\turlPredicate.parse(url);\n\n\t\tthis.author = { name, url, icon_url: 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 of the embed\n\t */\n\tpublic setColor(color: number | null): this {\n\t\t// Data assertions\n\t\tcolorPredicate.parse(color);\n\n\t\tthis.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\n\t */\n\tpublic setDescription(description: string | null): this {\n\t\t// Data assertions\n\t\tdescriptionPredicate.parse(description);\n\n\t\tthis.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 options for the footer\n\t */\n\tpublic setFooter(options: FooterOptions | null): this {\n\t\tif (options === null) {\n\t\t\tthis.footer = undefined;\n\t\t\treturn this;\n\t\t}\n\n\t\tconst { text, iconURL } = options;\n\t\t// Data assertions\n\t\tfooterTextPredicate.parse(text);\n\t\turlPredicate.parse(iconURL);\n\n\t\tthis.footer = { text, icon_url: 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 URL of the image\n\t */\n\tpublic setImage(url: string | null): this {\n\t\t// Data assertions\n\t\turlPredicate.parse(url);\n\n\t\tthis.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 URL of the thumbnail\n\t */\n\tpublic setThumbnail(url: string | null): this {\n\t\t// Data assertions\n\t\turlPredicate.parse(url);\n\n\t\tthis.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\n\t */\n\tpublic setTimestamp(timestamp: number | Date | null = Date.now()): this {\n\t\t// Data assertions\n\t\ttimestampPredicate.parse(timestamp);\n\n\t\tthis.timestamp = timestamp ? new Date(timestamp).toISOString() : undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the title of this embed\n\t *\n\t * @param title The title\n\t */\n\tpublic setTitle(title: string | null): this {\n\t\t// Data assertions\n\t\ttitlePredicate.parse(title);\n\n\t\tthis.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\n\t */\n\tpublic setURL(url: string | null): this {\n\t\t// Data assertions\n\t\turlPredicate.parse(url);\n\n\t\tthis.url = url ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Transforms the embed to a plain object\n\t */\n\tpublic toJSON(): APIEmbed {\n\t\treturn { ...this };\n\t}\n\n\t/**\n\t * Normalizes field input and resolves strings\n\t *\n\t * @param fields Fields to normalize\n\t */\n\tpublic static normalizeFields(...fields: APIEmbedField[]): APIEmbedField[] {\n\t\treturn fields.flat(Infinity).map((field) => {\n\t\t\tfieldNamePredicate.parse(field.name);\n\t\t\tfieldValuePredicate.parse(field.value);\n\t\t\tfieldInlinePredicate.parse(field.inline);\n\n\t\t\treturn { name: field.name, value: field.value, inline: field.inline ?? undefined };\n\t\t});\n\t}\n}\n","import type { Snowflake } from 'discord-api-types/globals';\nimport type { URL } from 'url';\n\n/**\n * Wraps the content inside a codeblock with no language\n *\n * @param content The content to wrap\n */\nexport function codeBlock(content: C): `\\`\\`\\`\\n${C}\\`\\`\\``;\n\n/**\n * Wraps the content inside a codeblock with the specified language\n *\n * @param language The language for the codeblock\n * @param content The content to wrap\n */\nexport function codeBlock(language: L, content: C): `\\`\\`\\`${L}\\n${C}\\`\\`\\``;\nexport function codeBlock(language: string, content?: string): string {\n\treturn typeof content === 'undefined' ? `\\`\\`\\`\\n${language}\\`\\`\\`` : `\\`\\`\\`${language}\\n${content}\\`\\`\\``;\n}\n\n/**\n * Wraps the content inside \\`backticks\\`, which formats it as inline code\n *\n * @param content The content to wrap\n */\nexport function inlineCode(content: C): `\\`${C}\\`` {\n\treturn `\\`${content}\\``;\n}\n\n/**\n * Formats the content into italic text\n *\n * @param content The content to wrap\n */\nexport function italic(content: C): `_${C}_` {\n\treturn `_${content}_`;\n}\n\n/**\n * Formats the content into bold text\n *\n * @param content The content to wrap\n */\nexport function bold(content: C): `**${C}**` {\n\treturn `**${content}**`;\n}\n\n/**\n * Formats the content into underscored text\n *\n * @param content The content to wrap\n */\nexport function underscore(content: C): `__${C}__` {\n\treturn `__${content}__`;\n}\n\n/**\n * Formats the content into strike-through text\n *\n * @param content The content to wrap\n */\nexport function strikethrough(content: C): `~~${C}~~` {\n\treturn `~~${content}~~`;\n}\n\n/**\n * Formats the content into a quote. This needs to be at the start of the line for Discord to format it\n *\n * @param content The content to wrap\n */\nexport function quote(content: C): `> ${C}` {\n\treturn `> ${content}`;\n}\n\n/**\n * Formats the content into a block quote. This needs to be at the start of the line for Discord to format it\n *\n * @param content The content to wrap\n */\nexport function blockQuote(content: C): `>>> ${C}` {\n\treturn `>>> ${content}`;\n}\n\n/**\n * Wraps the URL into `<>`, which stops it from embedding\n *\n * @param url The URL to wrap\n */\nexport function hideLinkEmbed(url: C): `<${C}>`;\n\n/**\n * Wraps the URL into `<>`, which stops it from embedding\n *\n * @param url The URL to wrap\n */\nexport function hideLinkEmbed(url: URL): `<${string}>`;\nexport function hideLinkEmbed(url: string | URL) {\n\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\treturn `<${url}>`;\n}\n\n/**\n * Formats the content and the URL into a masked URL\n *\n * @param content The content to display\n * @param url The URL the content links to\n */\nexport function hyperlink(content: C, url: URL): `[${C}](${string})`;\n\n/**\n * Formats the content and the URL into a masked URL\n *\n * @param content The content to display\n * @param url The URL the content links to\n */\nexport function hyperlink(content: C, url: U): `[${C}](${U})`;\n\n/**\n * Formats the content and the URL into a masked URL\n *\n * @param content The content to display\n * @param url The URL the content links to\n * @param title The title shown when hovering on the masked link\n */\nexport function hyperlink(\n\tcontent: C,\n\turl: URL,\n\ttitle: T,\n): `[${C}](${string} \"${T}\")`;\n\n/**\n * Formats the content and the URL into a masked URL\n *\n * @param content The content to display\n * @param url The URL the content links to\n * @param title The title shown when hovering on the masked link\n */\nexport function hyperlink(\n\tcontent: C,\n\turl: U,\n\ttitle: T,\n): `[${C}](${U} \"${T}\")`;\nexport function hyperlink(content: string, url: string | URL, title?: string) {\n\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\treturn title ? `[${content}](${url} \"${title}\")` : `[${content}](${url})`;\n}\n\n/**\n * Wraps the content inside spoiler (hidden text)\n *\n * @param content The content to wrap\n */\nexport function spoiler(content: C): `||${C}||` {\n\treturn `||${content}||`;\n}\n\n/**\n * Formats a user ID into a user mention\n *\n * @param userId The user ID to format\n */\nexport function userMention(userId: C): `<@${C}>` {\n\treturn `<@${userId}>`;\n}\n\n/**\n * Formats a user ID into a member-nickname mention\n *\n * @param memberId The user ID to format\n */\nexport function memberNicknameMention(memberId: C): `<@!${C}>` {\n\treturn `<@!${memberId}>`;\n}\n\n/**\n * Formats a channel ID into a channel mention\n *\n * @param channelId The channel ID to format\n */\nexport function channelMention(channelId: C): `<#${C}>` {\n\treturn `<#${channelId}>`;\n}\n\n/**\n * Formats a role ID into a role mention\n *\n * @param roleId The role ID to format\n */\nexport function roleMention(roleId: C): `<@&${C}>` {\n\treturn `<@&${roleId}>`;\n}\n\n/**\n * Formats an emoji ID into a fully qualified emoji identifier\n *\n * @param emojiId The emoji ID to format\n */\nexport function formatEmoji(emojiId: C, animated?: false): `<:_:${C}>`;\n\n/**\n * Formats an emoji ID into a fully qualified emoji identifier\n *\n * @param emojiId The emoji ID to format\n * @param animated Whether the emoji is animated or not. Defaults to `false`\n */\nexport function formatEmoji(emojiId: C, animated?: true): ``;\n\n/**\n * Formats an emoji ID into a fully qualified emoji identifier\n *\n * @param emojiId The emoji ID to format\n * @param animated Whether the emoji is animated or not. Defaults to `false`\n */\nexport function formatEmoji(emojiId: C, animated = false): `` | `<:_:${C}>` {\n\treturn `<${animated ? 'a' : ''}:_:${emojiId}>`;\n}\n\n/**\n * Formats a date into a short date-time string\n *\n * @param date The date to format, defaults to the current time\n */\nexport function time(date?: Date): ``;\n\n/**\n * Formats a date given a format style\n *\n * @param date The date to format\n * @param style The style to use\n */\nexport function time(date: Date, style: S): ``;\n\n/**\n * Formats the given timestamp into a short date-time string\n *\n * @param seconds The time to format, represents an UNIX timestamp in seconds\n */\nexport function time(seconds: C): ``;\n\n/**\n * Formats the given timestamp into a short date-time string\n *\n * @param seconds The time to format, represents an UNIX timestamp in seconds\n * @param style The style to use\n */\nexport function time(seconds: C, style: S): ``;\nexport function time(timeOrSeconds?: number | Date, style?: TimestampStylesString): string {\n\tif (typeof timeOrSeconds !== 'number') {\n\t\ttimeOrSeconds = Math.floor((timeOrSeconds?.getTime() ?? Date.now()) / 1000);\n\t}\n\n\treturn typeof style === 'string' ? `` : ``;\n}\n\n/**\n * The [message formatting timestamp styles](https://discord.com/developers/docs/reference#message-formatting-timestamp-styles) supported by Discord\n */\nexport const TimestampStyles = {\n\t/**\n\t * Short time format, consisting of hours and minutes, e.g. 16:20\n\t */\n\tShortTime: 't',\n\n\t/**\n\t * Long time format, consisting of hours, minutes, and seconds, e.g. 16:20:30\n\t */\n\tLongTime: 'T',\n\n\t/**\n\t * Short date format, consisting of day, month, and year, e.g. 20/04/2021\n\t */\n\tShortDate: 'd',\n\n\t/**\n\t * Long date format, consisting of day, month, and year, e.g. 20 April 2021\n\t */\n\tLongDate: 'D',\n\n\t/**\n\t * Short date-time format, consisting of short date and short time formats, e.g. 20 April 2021 16:20\n\t */\n\tShortDateTime: 'f',\n\n\t/**\n\t * Long date-time format, consisting of long date and short time formats, e.g. Tuesday, 20 April 2021 16:20\n\t */\n\tLongDateTime: 'F',\n\n\t/**\n\t * Relative time format, consisting of a relative duration format, e.g. 2 months ago\n\t */\n\tRelativeTime: 'R',\n} as const;\n\n/**\n * The possible values, see {@link TimestampStyles} for more information\n */\nexport type TimestampStylesString = typeof TimestampStyles[keyof typeof TimestampStyles];\n\n/**\n * An enum with all the available faces from Discord's native slash commands\n */\nexport enum Faces {\n\t/**\n\t * ¯\\\\_(ツ)\\\\_/¯\n\t */\n\tShrug = '¯\\\\_(ツ)\\\\_/¯',\n\n\t/**\n\t * (╯°□°)╯︵ ┻━┻\n\t */\n\tTableflip = '(╯°□°)╯︵ ┻━┻',\n\n\t/**\n\t * ┬─┬ ノ( ゜-゜ノ)\n\t */\n\tUnflip = '┬─┬ ノ( ゜-゜ノ)',\n}\n","import { APIMessageComponentEmoji, ButtonStyle } from 'discord-api-types/v9';\nimport { z } from 'zod';\nimport type { SelectMenuOption } from './selectMenu/SelectMenuOption';\n\nexport const customIdValidator = z.string().min(1).max(100);\n\nexport const emojiValidator = z\n\t.object({\n\t\tid: z.string(),\n\t\tname: z.string(),\n\t\tanimated: z.boolean(),\n\t})\n\t.partial()\n\t.strict();\n\nexport const disabledValidator = z.boolean();\n\nexport const buttonLabelValidator = z.string().nonempty().max(80);\n\nexport const buttonStyleValidator = z.number().int().min(ButtonStyle.Primary).max(ButtonStyle.Link);\n\nexport const placeholderValidator = z.string().max(100);\nexport const minMaxValidator = z.number().int().min(0).max(25);\n\nexport const optionsValidator = z.object({}).array().nonempty();\n\nexport function validateRequiredSelectMenuParameters(options: SelectMenuOption[], customId?: string) {\n\tcustomIdValidator.parse(customId);\n\toptionsValidator.parse(options);\n}\n\nexport const labelValueValidator = z.string().min(1).max(100);\nexport const defaultValidator = z.boolean();\n\nexport function validateRequiredSelectMenuOptionParameters(label?: string, value?: string) {\n\tlabelValueValidator.parse(label);\n\tlabelValueValidator.parse(value);\n}\n\nexport const urlValidator = z.string().url();\n\nexport function validateRequiredButtonParameters(\n\tstyle: ButtonStyle,\n\tlabel?: string,\n\temoji?: APIMessageComponentEmoji,\n\tcustomId?: string,\n\turl?: string,\n) {\n\tif (url && customId) {\n\t\tthrow new RangeError('URL and custom id are mutually exclusive');\n\t}\n\n\tif (!label && !emoji) {\n\t\tthrow new RangeError('Buttons must have a label and/or an emoji');\n\t}\n\n\tif (style === ButtonStyle.Link) {\n\t\tif (!url) {\n\t\t\tthrow new RangeError('Link buttons must have a url');\n\t\t}\n\t} else if (url) {\n\t\tthrow new RangeError('Non-link buttons cannot have a url');\n\t}\n}\n","import { APIActionRowComponent, ComponentType } from 'discord-api-types/v9';\nimport type { ButtonComponent, SelectMenuComponent } from '..';\nimport type { Component } from './Component';\nimport { createComponent } from './Components';\n\nexport type ActionRowComponent = ButtonComponent | SelectMenuComponent;\n\n// TODO: Add valid form component types\n\n/**\n * Represents an action row component\n */\nexport class ActionRow implements Component {\n\tpublic readonly components: T[] = [];\n\tpublic readonly type = ComponentType.ActionRow;\n\n\tpublic constructor(data?: APIActionRowComponent) {\n\t\tthis.components = (data?.components.map(createComponent) ?? []) as T[];\n\t}\n\n\t/**\n\t * Adds components to this action row.\n\t * @param components The components to add to this action row.\n\t * @returns\n\t */\n\tpublic addComponents(...components: T[]) {\n\t\tthis.components.push(...components);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the components in this action row\n\t * @param components The components to set this row to\n\t */\n\tpublic setComponents(components: T[]) {\n\t\tReflect.set(this, 'components', [...components]);\n\t\treturn this;\n\t}\n\n\tpublic toJSON(): APIActionRowComponent {\n\t\treturn {\n\t\t\t...this,\n\t\t\tcomponents: this.components.map((component) => component.toJSON()),\n\t\t};\n\t}\n}\n","import { APIMessageComponent, ComponentType } from 'discord-api-types/v9';\nimport { ActionRow, ButtonComponent, Component, SelectMenuComponent } from '../index';\nimport type { ActionRowComponent } from './ActionRow';\n\nexport interface MappedComponentTypes {\n\t[ComponentType.ActionRow]: ActionRow;\n\t[ComponentType.Button]: ButtonComponent;\n\t[ComponentType.SelectMenu]: SelectMenuComponent;\n}\n\n/**\n * Factory for creating components from API data\n * @param data The api data to transform to a component class\n */\nexport function createComponent(\n\tdata: APIMessageComponent & { type: T },\n): MappedComponentTypes[T];\nexport function createComponent(data: APIMessageComponent): Component {\n\tswitch (data.type) {\n\t\tcase ComponentType.ActionRow:\n\t\t\treturn new ActionRow(data);\n\t\tcase ComponentType.Button:\n\t\t\treturn new ButtonComponent(data);\n\t\tcase ComponentType.SelectMenu:\n\t\t\treturn new SelectMenuComponent(data);\n\t\tdefault:\n\t\t\t// @ts-expect-error\n\t\t\tthrow new Error(`Cannot serialize component type: ${data.type as number}`);\n\t}\n}\n","import { APIButtonComponent, APIMessageComponentEmoji, ButtonStyle, ComponentType } from 'discord-api-types/v9';\nimport {\n\tbuttonLabelValidator,\n\tbuttonStyleValidator,\n\tcustomIdValidator,\n\tdisabledValidator,\n\temojiValidator,\n\turlValidator,\n\tvalidateRequiredButtonParameters,\n} from './Assertions';\nimport type { Component } from './Component';\n\nexport class ButtonComponent implements Component {\n\tpublic readonly type = ComponentType.Button as const;\n\tpublic readonly style!: ButtonStyle;\n\tpublic readonly label?: string;\n\tpublic readonly emoji?: APIMessageComponentEmoji;\n\tpublic readonly disabled?: boolean;\n\tpublic readonly custom_id!: string;\n\tpublic readonly url!: string;\n\n\tpublic constructor(data?: APIButtonComponent) {\n\t\t/* eslint-disable @typescript-eslint/non-nullable-type-assertion-style */\n\t\tthis.style = data?.style as ButtonStyle;\n\t\tthis.label = data?.label;\n\t\tthis.emoji = data?.emoji;\n\t\tthis.disabled = data?.disabled;\n\n\t\t// This if/else makes typescript happy\n\t\tif (data?.style === ButtonStyle.Link) {\n\t\t\tthis.url = data.url;\n\t\t} else {\n\t\t\tthis.custom_id = data?.custom_id as string;\n\t\t}\n\n\t\t/* eslint-enable @typescript-eslint/non-nullable-type-assertion-style */\n\t}\n\n\t/**\n\t * Sets the style of this button\n\t * @param style The style of the button\n\t */\n\tpublic setStyle(style: ButtonStyle) {\n\t\tbuttonStyleValidator.parse(style);\n\t\tReflect.set(this, 'style', style);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the URL for this button\n\t * @param url The URL to open when this button is clicked\n\t */\n\tpublic setURL(url: string) {\n\t\turlValidator.parse(url);\n\t\tReflect.set(this, 'url', url);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the custom Id for this button\n\t * @param customId The custom ID to use for this button\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tcustomIdValidator.parse(customId);\n\t\tReflect.set(this, 'custom_id', customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the emoji to display on this button\n\t * @param emoji The emoji to display on this button\n\t */\n\tpublic setEmoji(emoji: APIMessageComponentEmoji) {\n\t\temojiValidator.parse(emoji);\n\t\tReflect.set(this, 'emoji', emoji);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this button is disable or not\n\t * @param disabled Whether or not to disable this button or not\n\t */\n\tpublic setDisabled(disabled: boolean) {\n\t\tdisabledValidator.parse(disabled);\n\t\tReflect.set(this, 'disabled', disabled);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the label for this button\n\t * @param label The label to display on this button\n\t */\n\tpublic setLabel(label: string) {\n\t\tbuttonLabelValidator.parse(label);\n\t\tReflect.set(this, 'label', label);\n\t\treturn this;\n\t}\n\n\tpublic toJSON(): APIButtonComponent {\n\t\tvalidateRequiredButtonParameters(this.style, this.label, this.emoji, this.custom_id, this.url);\n\t\treturn {\n\t\t\t...this,\n\t\t};\n\t}\n}\n","import { APISelectMenuComponent, ComponentType } from 'discord-api-types/v9';\nimport {\n\tcustomIdValidator,\n\tdisabledValidator,\n\tminMaxValidator,\n\tplaceholderValidator,\n\tvalidateRequiredSelectMenuParameters,\n} from '../Assertions';\nimport type { Component } from '../Component';\nimport { SelectMenuOption } from './SelectMenuOption';\n\n/**\n * Represents a select menu component\n */\nexport class SelectMenuComponent implements Component {\n\tpublic readonly type = ComponentType.SelectMenu as const;\n\tpublic readonly options: SelectMenuOption[];\n\tpublic readonly placeholder?: string;\n\tpublic readonly min_values?: number;\n\tpublic readonly max_values?: number;\n\tpublic readonly custom_id!: string;\n\tpublic readonly disabled?: boolean;\n\n\tpublic constructor(data?: APISelectMenuComponent) {\n\t\tthis.options = data?.options.map((option) => new SelectMenuOption(option)) ?? [];\n\t\tthis.placeholder = data?.placeholder;\n\t\tthis.min_values = data?.min_values;\n\t\tthis.max_values = data?.max_values;\n\t\t/* eslint-disable @typescript-eslint/non-nullable-type-assertion-style */\n\t\tthis.custom_id = data?.custom_id as string;\n\t\t/* eslint-enable @typescript-eslint/non-nullable-type-assertion-style */\n\t\tthis.disabled = data?.disabled;\n\t}\n\n\t/**\n\t * Sets the placeholder for this select menu\n\t * @param placeholder The placeholder to use for this select menu\n\t */\n\tpublic setPlaceholder(placeholder: string) {\n\t\tplaceholderValidator.parse(placeholder);\n\t\tReflect.set(this, 'placeholder', placeholder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets thes minimum values that must be selected in the select menu\n\t * @param minValues The minimum values that must be selected\n\t */\n\tpublic setMinValues(minValues: number) {\n\t\tminMaxValidator.parse(minValues);\n\t\tReflect.set(this, 'min_values', minValues);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets thes maximum values that must be selected in the select menu\n\t * @param minValues The maximum values that must be selected\n\t */\n\tpublic setMaxValues(maxValues: number) {\n\t\tminMaxValidator.parse(maxValues);\n\t\tReflect.set(this, 'max_values', maxValues);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the custom Id for this select menu\n\t * @param customId The custom ID to use for this select menu\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tcustomIdValidator.parse(customId);\n\t\tReflect.set(this, 'custom_id', customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether or not this select menu is disabled\n\t * @param disabled Whether or not this select menu is disabled\n\t */\n\tpublic setDisabled(disabled: boolean) {\n\t\tdisabledValidator.parse(disabled);\n\t\tReflect.set(this, 'disabled', disabled);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds options to this select menu\n\t * @param options The options to add to this select menu\n\t * @returns\n\t */\n\tpublic addOptions(...options: SelectMenuOption[]) {\n\t\tthis.options.push(...options);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the options on this select menu\n\t * @param options The options to set on this select menu\n\t */\n\tpublic setOptions(options: SelectMenuOption[]) {\n\t\tReflect.set(this, 'options', [...options]);\n\t\treturn this;\n\t}\n\n\tpublic toJSON(): APISelectMenuComponent {\n\t\tvalidateRequiredSelectMenuParameters(this.options, this.custom_id);\n\t\treturn {\n\t\t\t...this,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\t}\n}\n","import type { APIMessageComponentEmoji, APISelectMenuOption } from 'discord-api-types/v9';\nimport {\n\tdefaultValidator,\n\temojiValidator,\n\tlabelValueValidator,\n\tvalidateRequiredSelectMenuOptionParameters,\n} from '../Assertions';\n\n/**\n * Represents an option within a select menu component\n */\nexport class SelectMenuOption {\n\tpublic readonly label!: string;\n\tpublic readonly value!: string;\n\tpublic readonly description?: string;\n\tpublic readonly emoji?: APIMessageComponentEmoji;\n\tpublic readonly default?: boolean;\n\n\tpublic constructor(data?: APISelectMenuOption) {\n\t\t/* eslint-disable @typescript-eslint/non-nullable-type-assertion-style */\n\t\tthis.label = data?.label as string;\n\t\tthis.value = data?.value as string;\n\t\t/* eslint-enable @typescript-eslint/non-nullable-type-assertion-style */\n\t\tthis.description = data?.description;\n\t\tthis.emoji = data?.emoji;\n\t\tthis.default = data?.default;\n\t}\n\n\t/**\n\t * Sets the label of this option\n\t * @param label The label to show on this option\n\t */\n\tpublic setLabel(label: string) {\n\t\tReflect.set(this, 'label', label);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the value of this option\n\t * @param value The value of this option\n\t */\n\tpublic setValue(value: string) {\n\t\tReflect.set(this, 'value', value);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description of this option.\n\t * @param description The description of this option\n\t */\n\tpublic setDescription(description: string) {\n\t\tlabelValueValidator.parse(description);\n\t\tReflect.set(this, 'description', description);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this option is selected by default\n\t * @param isDefault Whether or not this option is selected by default\n\t */\n\tpublic setDefault(isDefault: boolean) {\n\t\tdefaultValidator.parse(isDefault);\n\t\tReflect.set(this, 'default', isDefault);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the emoji to display on this button\n\t * @param emoji The emoji to display on this button\n\t */\n\tpublic setEmoji(emoji: APIMessageComponentEmoji) {\n\t\temojiValidator.parse(emoji);\n\t\tReflect.set(this, 'emoji', emoji);\n\t\treturn this;\n\t}\n\n\tpublic toJSON(): APISelectMenuOption {\n\t\tvalidateRequiredSelectMenuOptionParameters(this.label, this.value);\n\t\treturn {\n\t\t\t...this,\n\t\t};\n\t}\n}\n","import is from '@sindresorhus/is';\nimport type { APIApplicationCommandOptionChoice } from 'discord-api-types/v9';\nimport { z } from 'zod';\nimport type { ApplicationCommandOptionBase } from './mixins/ApplicationCommandOptionBase';\nimport type { ToAPIApplicationCommandOptions } from './SlashCommandBuilder';\nimport type { SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder } from './SlashCommandSubcommands';\n\nconst namePredicate = z\n\t.string()\n\t.min(1)\n\t.max(32)\n\t.regex(/^[\\P{Lu}\\p{N}_-]+$/u);\n\nexport function validateName(name: unknown): asserts name is string {\n\tnamePredicate.parse(name);\n}\n\nconst descriptionPredicate = z.string().min(1).max(100);\n\nexport function validateDescription(description: unknown): asserts description is string {\n\tdescriptionPredicate.parse(description);\n}\n\nconst maxArrayLengthPredicate = z.unknown().array().max(25);\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 = z.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\nexport function validateMaxChoicesLength(choices: APIApplicationCommandOptionChoice[]) {\n\tmaxArrayLengthPredicate.parse(choices);\n}\n\nexport function assertReturnOfBuilder<\n\tT extends ApplicationCommandOptionBase | SlashCommandSubcommandBuilder | SlashCommandSubcommandGroupBuilder,\n>(input: unknown, ExpectedInstanceOf: new () => T): asserts input is T {\n\tconst instanceName = ExpectedInstanceOf.name;\n\n\tif (is.nullOrUndefined(input)) {\n\t\tthrow new TypeError(\n\t\t\t`Expected to receive a ${instanceName} builder, got ${input === null ? 'null' : 'undefined'} instead.`,\n\t\t);\n\t}\n\n\tif (is.primitive(input)) {\n\t\tthrow new TypeError(`Expected to receive a ${instanceName} builder, got a primitive (${typeof input}) instead.`);\n\t}\n\n\tif (!(input instanceof ExpectedInstanceOf)) {\n\t\tconst casted = input as Record;\n\n\t\tconst constructorName = is.function_(input) ? input.name : casted.constructor.name;\n\t\tconst stringTag = Reflect.get(casted, Symbol.toStringTag) as string | undefined;\n\n\t\tconst fullResultName = stringTag ? `${constructorName} [${stringTag}]` : constructorName;\n\n\t\tthrow new TypeError(`Expected to receive a ${instanceName} builder, got ${fullResultName} instead.`);\n\t}\n}\n","import type { APIApplicationCommandOption, RESTPostAPIApplicationCommandsJSONBody } from 'discord-api-types/v9';\nimport { mix } from 'ts-mixer';\nimport {\n\tassertReturnOfBuilder,\n\tvalidateDefaultPermission,\n\tvalidateMaxOptionsLength,\n\tvalidateRequiredParameters,\n} from './Assertions';\nimport { SharedSlashCommandOptions } from './mixins/SharedSlashCommandOptions';\nimport { SharedNameAndDescription } from './mixins/NameAndDescription';\nimport { SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder } from './SlashCommandSubcommands';\n\n@mix(SharedSlashCommandOptions, SharedNameAndDescription)\nexport class SlashCommandBuilder {\n\t/**\n\t * The name of this slash command\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The description of this slash command\n\t */\n\tpublic readonly description: string = undefined!;\n\n\t/**\n\t * The options of this slash command\n\t */\n\tpublic readonly options: ToAPIApplicationCommandOptions[] = [];\n\n\t/**\n\t * Whether the command is enabled by default when the app is added to a guild\n\t *\n\t * @default true\n\t */\n\tpublic readonly defaultPermission: boolean | undefined = undefined;\n\n\t/**\n\t * Returns the final data that should be sent to Discord.\n\t *\n\t * **Note:** Calling this function will validate required properties based on their conditions.\n\t */\n\tpublic toJSON(): RESTPostAPIApplicationCommandsJSONBody {\n\t\tvalidateRequiredParameters(this.name, this.description, this.options);\n\n\t\treturn {\n\t\t\tname: this.name,\n\t\t\tdescription: this.description,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t\tdefault_permission: this.defaultPermission,\n\t\t};\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 * **Note**: If set to `false`, you will have to later `PUT` the permissions for this command.\n\t *\n\t * @param value Whether or not to enable this command by default\n\t *\n\t * @see https://discord.com/developers/docs/interactions/application-commands#permissions\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, 'defaultPermission', value);\n\n\t\treturn this;\n\t}\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): SlashCommandSubcommandsOnlyBuilder {\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;\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): SlashCommandSubcommandsOnlyBuilder {\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;\n\t}\n}\n\nexport interface SlashCommandBuilder extends SharedNameAndDescription, SharedSlashCommandOptions {}\n\nexport interface SlashCommandSubcommandsOnlyBuilder\n\textends SharedNameAndDescription,\n\t\tPick {}\n\nexport interface SlashCommandOptionsOnlyBuilder\n\textends SharedNameAndDescription,\n\t\tSharedSlashCommandOptions,\n\t\tPick {}\n\nexport interface ToAPIApplicationCommandOptions {\n\ttoJSON: () => APIApplicationCommandOption;\n}\n","import { APIApplicationCommandBooleanOption, ApplicationCommandOptionType } from 'discord-api-types/v9';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase';\n\nexport class SlashCommandBooleanOption extends ApplicationCommandOptionBase {\n\tpublic readonly type = ApplicationCommandOptionType.Boolean as const;\n\n\tpublic toJSON(): APIApplicationCommandBooleanOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { validateDescription, validateName } from '../Assertions';\n\nexport class SharedNameAndDescription {\n\tpublic readonly name!: string;\n\tpublic readonly description!: string;\n\n\t/**\n\t * Sets the name\n\t *\n\t * @param name The name\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\n\t *\n\t * @param description The description\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","import type { APIApplicationCommandBasicOption, ApplicationCommandOptionType } from 'discord-api-types/v9';\nimport { validateRequiredParameters, validateRequired } from '../Assertions';\nimport { SharedNameAndDescription } from './NameAndDescription';\n\nexport abstract class ApplicationCommandOptionBase extends SharedNameAndDescription {\n\tpublic abstract readonly type: ApplicationCommandOptionType;\n\n\tpublic readonly required: boolean = false;\n\n\t/**\n\t * Marks the option as required\n\t *\n\t * @param required If 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\tpublic abstract toJSON(): APIApplicationCommandBasicOption;\n\n\tprotected runRequiredValidations() {\n\t\tvalidateRequiredParameters(this.name, this.description, []);\n\n\t\t// Assert that you actually passed a boolean\n\t\tvalidateRequired(this.required);\n\t}\n}\n","import { APIApplicationCommandChannelOption, ApplicationCommandOptionType } from 'discord-api-types/v9';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase';\nimport { ApplicationCommandOptionChannelTypesMixin } from '../mixins/ApplicationCommandOptionChannelTypesMixin';\n\n@mix(ApplicationCommandOptionChannelTypesMixin)\nexport class SlashCommandChannelOption extends ApplicationCommandOptionBase {\n\tpublic override readonly type = ApplicationCommandOptionType.Channel as const;\n\n\tpublic toJSON(): APIApplicationCommandChannelOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n\nexport interface SlashCommandChannelOption extends ApplicationCommandOptionChannelTypesMixin {}\n","import { ChannelType } from 'discord-api-types/v9';\nimport { z, ZodLiteral } from 'zod';\n\n// Only allow valid channel types to be used. (This can't be dynamic because const enums are erased at runtime)\nconst allowedChannelTypes = [\n\tChannelType.GuildText,\n\tChannelType.GuildVoice,\n\tChannelType.GuildCategory,\n\tChannelType.GuildNews,\n\tChannelType.GuildStore,\n\tChannelType.GuildNewsThread,\n\tChannelType.GuildPublicThread,\n\tChannelType.GuildPrivateThread,\n\tChannelType.GuildStageVoice,\n] as const;\n\nexport type ApplicationCommandOptionAllowedChannelTypes = typeof allowedChannelTypes[number];\n\nconst channelTypePredicate = z.union(\n\tallowedChannelTypes.map((type) => z.literal(type)) as [\n\t\tZodLiteral,\n\t\tZodLiteral,\n\t\t...ZodLiteral[]\n\t],\n);\n\nexport class ApplicationCommandOptionChannelTypesMixin {\n\tpublic readonly channel_types?: ApplicationCommandOptionAllowedChannelTypes[];\n\n\t/**\n\t * Adds a channel type to this option\n\t *\n\t * @param channelType The type of channel to allow\n\t */\n\tpublic addChannelType(channelType: ApplicationCommandOptionAllowedChannelTypes) {\n\t\tif (this.channel_types === undefined) {\n\t\t\tReflect.set(this, 'channel_types', []);\n\t\t}\n\n\t\tchannelTypePredicate.parse(channelType);\n\t\tthis.channel_types!.push(channelType);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds channel types to this option\n\t *\n\t * @param channelTypes The channel types to add\n\t */\n\tpublic addChannelTypes(channelTypes: ApplicationCommandOptionAllowedChannelTypes[]) {\n\t\tchannelTypes.forEach((channelType) => this.addChannelType(channelType));\n\t\treturn this;\n\t}\n}\n","import { APIApplicationCommandIntegerOption, ApplicationCommandOptionType } from 'discord-api-types/v9';\nimport { mix } from 'ts-mixer';\nimport { z } from 'zod';\nimport { ApplicationCommandNumericOptionMinMaxValueMixin } from '../mixins/ApplicationCommandNumericOptionMinMaxValueMixin';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase';\nimport { ApplicationCommandOptionWithChoicesAndAutocompleteMixin } from '../mixins/ApplicationCommandOptionWithChoicesAndAutocompleteMixin';\n\nconst numberValidator = z.number().int().nonnegative();\n\n@mix(ApplicationCommandNumericOptionMinMaxValueMixin, ApplicationCommandOptionWithChoicesAndAutocompleteMixin)\nexport class SlashCommandIntegerOption\n\textends ApplicationCommandOptionBase\n\timplements ApplicationCommandNumericOptionMinMaxValueMixin\n{\n\tpublic readonly type = ApplicationCommandOptionType.Integer as const;\n\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\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\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 };\n\t}\n}\n\nexport interface SlashCommandIntegerOption\n\textends ApplicationCommandNumericOptionMinMaxValueMixin,\n\t\tApplicationCommandOptionWithChoicesAndAutocompleteMixin {}\n","export abstract class ApplicationCommandNumericOptionMinMaxValueMixin {\n\tpublic readonly max_value?: number;\n\tpublic readonly min_value?: number;\n\n\t/**\n\t * Sets the maximum number value of this option\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 * @param min The minimum value this option can be\n\t */\n\tpublic abstract setMinValue(min: number): this;\n}\n","import { APIApplicationCommandOptionChoice, ApplicationCommandOptionType } from 'discord-api-types/v9';\nimport { z } from 'zod';\nimport { validateMaxChoicesLength } from '../Assertions';\n\nconst stringPredicate = z.string().min(1).max(100);\nconst numberPredicate = z.number().gt(-Infinity).lt(Infinity);\nconst choicesPredicate = z.tuple([stringPredicate, z.union([stringPredicate, numberPredicate])]).array();\nconst booleanPredicate = z.boolean();\n\nexport class ApplicationCommandOptionWithChoicesAndAutocompleteMixin {\n\tpublic readonly choices?: APIApplicationCommandOptionChoice[];\n\tpublic readonly autocomplete?: boolean;\n\n\t// Since this is present and this is a mixin, this is needed\n\tpublic readonly type!: ApplicationCommandOptionType;\n\n\t/**\n\t * Adds a choice for this option\n\t *\n\t * @param name The name of the choice\n\t * @param value The value of the choice\n\t */\n\tpublic addChoice(name: string, value: T): Omit {\n\t\tif (this.autocomplete) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\tif (this.choices === undefined) {\n\t\t\tReflect.set(this, 'choices', []);\n\t\t}\n\n\t\tvalidateMaxChoicesLength(this.choices!);\n\n\t\t// Validate name\n\t\tstringPredicate.parse(name);\n\n\t\t// Validate the value\n\t\tif (this.type === ApplicationCommandOptionType.String) {\n\t\t\tstringPredicate.parse(value);\n\t\t} else {\n\t\t\tnumberPredicate.parse(value);\n\t\t}\n\n\t\tthis.choices!.push({ name, value });\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds multiple choices for this option\n\t *\n\t * @param choices The choices to add\n\t */\n\tpublic addChoices(choices: [name: string, value: T][]): Omit {\n\t\tif (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(choices);\n\n\t\tfor (const [label, value] of choices) this.addChoice(label, value);\n\t\treturn this;\n\t}\n\n\tpublic setChoices(\n\t\tchoices: Input,\n\t): Input extends []\n\t\t? this & Pick, 'setAutocomplete'>\n\t\t: Omit {\n\t\tif (choices.length > 0 && 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(choices);\n\n\t\tReflect.set(this, 'choices', []);\n\t\tfor (const [label, value] of choices) this.addChoice(label, value);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Marks the option as autocompletable\n\t * @param autocomplete If this option should be autocompletable\n\t */\n\tpublic setAutocomplete(\n\t\tautocomplete: U,\n\t): U extends true\n\t\t? Omit\n\t\t: this & Pick, 'addChoice' | 'addChoices'> {\n\t\t// Assert that you actually passed a boolean\n\t\tbooleanPredicate.parse(autocomplete);\n\n\t\tif (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\tReflect.set(this, 'autocomplete', autocomplete);\n\n\t\treturn this;\n\t}\n}\n","import { APIApplicationCommandMentionableOption, ApplicationCommandOptionType } from 'discord-api-types/v9';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase';\n\nexport class SlashCommandMentionableOption extends ApplicationCommandOptionBase {\n\tpublic readonly type = ApplicationCommandOptionType.Mentionable as const;\n\n\tpublic toJSON(): APIApplicationCommandMentionableOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { APIApplicationCommandNumberOption, ApplicationCommandOptionType } from 'discord-api-types/v9';\nimport { mix } from 'ts-mixer';\nimport { z } from 'zod';\nimport { ApplicationCommandNumericOptionMinMaxValueMixin } from '../mixins/ApplicationCommandNumericOptionMinMaxValueMixin';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase';\nimport { ApplicationCommandOptionWithChoicesAndAutocompleteMixin } from '../mixins/ApplicationCommandOptionWithChoicesAndAutocompleteMixin';\n\nconst numberValidator = z.number().nonnegative();\n\n@mix(ApplicationCommandNumericOptionMinMaxValueMixin, ApplicationCommandOptionWithChoicesAndAutocompleteMixin)\nexport class SlashCommandNumberOption\n\textends ApplicationCommandOptionBase\n\timplements ApplicationCommandNumericOptionMinMaxValueMixin\n{\n\tpublic readonly type = ApplicationCommandOptionType.Number as const;\n\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\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\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 };\n\t}\n}\n\nexport interface SlashCommandNumberOption\n\textends ApplicationCommandNumericOptionMinMaxValueMixin,\n\t\tApplicationCommandOptionWithChoicesAndAutocompleteMixin {}\n","import { APIApplicationCommandRoleOption, ApplicationCommandOptionType } from 'discord-api-types/v9';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase';\n\nexport class SlashCommandRoleOption extends ApplicationCommandOptionBase {\n\tpublic override readonly type = ApplicationCommandOptionType.Role as const;\n\n\tpublic toJSON(): APIApplicationCommandRoleOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { APIApplicationCommandStringOption, ApplicationCommandOptionType } from 'discord-api-types/v9';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase';\nimport { ApplicationCommandOptionWithChoicesAndAutocompleteMixin } from '../mixins/ApplicationCommandOptionWithChoicesAndAutocompleteMixin';\n\n@mix(ApplicationCommandOptionWithChoicesAndAutocompleteMixin)\nexport class SlashCommandStringOption extends ApplicationCommandOptionBase {\n\tpublic readonly type = ApplicationCommandOptionType.String as const;\n\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 };\n\t}\n}\n\nexport interface SlashCommandStringOption extends ApplicationCommandOptionWithChoicesAndAutocompleteMixin {}\n","import { APIApplicationCommandUserOption, ApplicationCommandOptionType } from 'discord-api-types/v9';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase';\n\nexport class SlashCommandUserOption extends ApplicationCommandOptionBase {\n\tpublic readonly type = ApplicationCommandOptionType.User as const;\n\n\tpublic toJSON(): APIApplicationCommandUserOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { assertReturnOfBuilder, validateMaxOptionsLength } from '../Assertions';\nimport type { ApplicationCommandOptionBase } from './ApplicationCommandOptionBase';\nimport { SlashCommandBooleanOption } from '../options/boolean';\nimport { SlashCommandChannelOption } from '../options/channel';\nimport { SlashCommandIntegerOption } from '../options/integer';\nimport { SlashCommandMentionableOption } from '../options/mentionable';\nimport { SlashCommandNumberOption } from '../options/number';\nimport { SlashCommandRoleOption } from '../options/role';\nimport { SlashCommandStringOption } from '../options/string';\nimport { SlashCommandUserOption } from '../options/user';\nimport type { ToAPIApplicationCommandOptions } from '../SlashCommandBuilder';\n\nexport class SharedSlashCommandOptions {\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 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:\n\t\t\t| SlashCommandStringOption\n\t\t\t| Omit\n\t\t\t| Omit\n\t\t\t| ((\n\t\t\t\t\tbuilder: SlashCommandStringOption,\n\t\t\t ) =>\n\t\t\t\t\t| SlashCommandStringOption\n\t\t\t\t\t| Omit\n\t\t\t\t\t| Omit),\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:\n\t\t\t| SlashCommandIntegerOption\n\t\t\t| Omit\n\t\t\t| Omit\n\t\t\t| ((\n\t\t\t\t\tbuilder: SlashCommandIntegerOption,\n\t\t\t ) =>\n\t\t\t\t\t| SlashCommandIntegerOption\n\t\t\t\t\t| Omit\n\t\t\t\t\t| Omit),\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:\n\t\t\t| SlashCommandNumberOption\n\t\t\t| Omit\n\t\t\t| Omit\n\t\t\t| ((\n\t\t\t\t\tbuilder: SlashCommandNumberOption,\n\t\t\t ) =>\n\t\t\t\t\t| SlashCommandNumberOption\n\t\t\t\t\t| Omit\n\t\t\t\t\t| Omit),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandNumberOption);\n\t}\n\n\tprivate _sharedAddOptionMethod(\n\t\tinput:\n\t\t\t| T\n\t\t\t| Omit\n\t\t\t| Omit\n\t\t\t| ((builder: T) => T | Omit | Omit),\n\t\tInstance: new () => T,\n\t): ShouldOmitSubcommandFunctions extends true ? Omit : this {\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;\n\t}\n}\n","import {\n\tAPIApplicationCommandSubcommandGroupOption,\n\tAPIApplicationCommandSubcommandOption,\n\tApplicationCommandOptionType,\n} from 'discord-api-types/v9';\nimport { mix } from 'ts-mixer';\nimport { assertReturnOfBuilder, validateMaxOptionsLength, validateRequiredParameters } from './Assertions';\nimport type { ApplicationCommandOptionBase } from './mixins/ApplicationCommandOptionBase';\nimport { SharedNameAndDescription } from './mixins/NameAndDescription';\nimport { SharedSlashCommandOptions } from './mixins/SharedSlashCommandOptions';\nimport type { ToAPIApplicationCommandOptions } from './SlashCommandBuilder';\n\n/**\n * Represents a folder for subcommands\n *\n * For more information, go to 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 part of 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\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\tdescription: this.description,\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 * Represents a subcommand\n *\n * For more information, go to 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 of this subcommand\n\t */\n\tpublic readonly options: ApplicationCommandOptionBase[] = [];\n\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\tdescription: this.description,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\t}\n}\n\nexport interface SlashCommandSubcommandBuilder extends SharedNameAndDescription, SharedSlashCommandOptions {}\n","import { z } from 'zod';\nimport { ApplicationCommandType } from 'discord-api-types/v9';\nimport type { ContextMenuCommandType } from './ContextMenuCommandBuilder';\n\nconst namePredicate = z\n\t.string()\n\t.min(1)\n\t.max(32)\n\t.regex(/^( *[\\p{L}\\p{N}_-]+ *)+$/u);\n\nconst typePredicate = z.union([z.literal(ApplicationCommandType.User), z.literal(ApplicationCommandType.Message)]);\n\nconst booleanPredicate = z.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","import { validateRequiredParameters, validateName, validateType, validateDefaultPermission } from './Assertions';\nimport type { ApplicationCommandType, RESTPostAPIApplicationCommandsJSONBody } from 'discord-api-types/v9';\n\nexport class ContextMenuCommandBuilder {\n\t/**\n\t * The name of this context menu command\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The type of this context menu command\n\t */\n\tpublic readonly type: ContextMenuCommandType = undefined!;\n\n\t/**\n\t * Whether the command is enabled by default when the app is added to a guild\n\t *\n\t * @default true\n\t */\n\tpublic readonly defaultPermission: boolean | undefined = undefined;\n\n\t/**\n\t * Sets the name\n\t *\n\t * @param name The name\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\n\t *\n\t * @param type The type\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 * **Note**: If set to `false`, you will have to later `PUT` the permissions for this command.\n\t *\n\t * @param value Whether or not to enable this command by default\n\t *\n\t * @see https://discord.com/developers/docs/interactions/application-commands#permissions\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, 'defaultPermission', value);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Returns the final data that should be sent to Discord.\n\t *\n\t * **Note:** Calling this function will validate required properties based on their conditions.\n\t */\n\tpublic toJSON(): RESTPostAPIApplicationCommandsJSONBody {\n\t\tvalidateRequiredParameters(this.name, this.type);\n\t\treturn {\n\t\t\tname: this.name,\n\t\t\ttype: this.type,\n\t\t\tdefault_permission: this.defaultPermission,\n\t\t};\n\t}\n}\n\nexport type ContextMenuCommandType = ApplicationCommandType.User | ApplicationCommandType.Message;\n"],"mappings":"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","names":[]} \ No newline at end of file diff --git a/node_modules/@discordjs/builders/docs/README.md b/node_modules/@discordjs/builders/docs/README.md new file mode 100644 index 0000000..b5a4bb0 --- /dev/null +++ b/node_modules/@discordjs/builders/docs/README.md @@ -0,0 +1 @@ +## [View the documentation here.](https://discord.js.org/#/docs/builders) diff --git a/node_modules/@discordjs/builders/docs/index.yml b/node_modules/@discordjs/builders/docs/index.yml new file mode 100644 index 0000000..2c99351 --- /dev/null +++ b/node_modules/@discordjs/builders/docs/index.yml @@ -0,0 +1,5 @@ +- name: General + files: + - name: Welcome + id: welcome + path: ../../README.md diff --git a/node_modules/@discordjs/builders/node_modules/discord-api-types/LICENSE b/node_modules/@discordjs/builders/node_modules/discord-api-types/LICENSE new file mode 100644 index 0000000..a8b1694 --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/LICENSE @@ -0,0 +1,21 @@ +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 new file mode 100644 index 0000000..e0ab3b3 --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/README.md @@ -0,0 +1,97 @@ +# 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) + +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/v9'); +``` + +```ts +// TypeScript/ES Module support +import { APIUser } from 'discord-api-types/v9'; +``` + +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/v9'); +``` + +```ts +// TypeScript/ES Module support +import { GatewayVersion } from 'discord-api-types/gateway/v9'; +``` + +> _**Note:** The `v*` exports (`discord-api-type/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/v9.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/v9.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/v9?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. + +**Warning**: This package documents just KNOWN (and documented) properties. Anything that isn't documented will NOT be added to this package (unless said properties are in an open Pull Request to Discord's [API Documentation repository](https://github.com/discord/discord-api-docs) or known through other means _and have received the green light to be used_). For clarification's sake, this means that properties that are only known through the process of data mining and have not yet been confirmed in a way as described will **NOT** be included. 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 new file mode 100644 index 0000000..d8bcf32 --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/common.d.ts @@ -0,0 +1,9 @@ +/** + * https://discord.com/developers/docs/topics/gateway#connecting-gateway-url-params + */ +export interface GatewayURLQuery { + v: string; + encoding: 'json' | 'etf'; + 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 new file mode 100644 index 0000000..59c2f60 --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/common.d.ts.map @@ -0,0 +1 @@ +{"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,MAAM,GAAG,KAAK,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 new file mode 100644 index 0000000..023264f --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/common.js @@ -0,0 +1,3 @@ +"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 new file mode 100644 index 0000000..d0f541d --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/common.js.map @@ -0,0 +1 @@ +{"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 new file mode 100644 index 0000000..e5b0d5c --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/index.d.ts @@ -0,0 +1,2 @@ +export * from './v9'; +//# 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 new file mode 100644 index 0000000..c1a119e --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAGA,cAAc,MAAM,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 new file mode 100644 index 0000000..f9a73ed --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/index.js @@ -0,0 +1,16 @@ +"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; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (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("./v9"), 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 new file mode 100644 index 0000000..e8cb276 --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,2FAA2F;;;;;;;;;;;;AAE3F,uCAAqB"} \ 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 new file mode 100644 index 0000000..fd4ff25 --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/index.mjs @@ -0,0 +1,8 @@ +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/v6.d.ts b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v6.d.ts new file mode 100644 index 0000000..13aa6ad --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v6.d.ts @@ -0,0 +1,608 @@ +/** + * 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 declare type GatewaySendPayload = GatewayHeartbeat | GatewayIdentify | GatewayUpdatePresence | GatewayVoiceStateUpdate | GatewayResume | GatewayRequestGuildMembers; +/** + * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. + */ +export declare type GatewayReceivePayload = GatewayHello | GatewayHeartbeatRequest | GatewayHeartbeatAck | GatewayInvalidSession | GatewayReconnect | GatewayDispatchPayload; +/** + * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. + */ +export declare type GatewayDispatchPayload = GatewayReadyDispatch | GatewayResumedDispatch | GatewayChannelModifyDispatch | GatewayChannelPinsUpdateDispatch | GatewayGuildModifyDispatch | GatewayGuildDeleteDispatch | GatewayGuildBanModifyDispatch | GatewayGuildEmojisUpdateDispatch | GatewayGuildIntegrationsUpdateDispatch | GatewayGuildMemberAddDispatch | GatewayGuildMemberRemoveDispatch | GatewayGuildMemberUpdateDispatch | GatewayGuildMembersChunkDispatch | GatewayGuildRoleModifyDispatch | GatewayGuildRoleDeleteDispatch | GatewayInviteCreateDispatch | GatewayInviteDeleteDispatch | GatewayMessageCreateDispatch | GatewayMessageUpdateDispatch | GatewayMessageDeleteDispatch | GatewayMessageDeleteBulkDispatch | GatewayMessageReactionAddDispatch | GatewayMessageReactionRemoveDispatch | GatewayMessageReactionRemoveAllDispatch | GatewayMessageReactionRemoveEmojiDispatch | GatewayPresenceUpdateDispatch | GatewayTypingStartDispatch | GatewayUserUpdateDispatch | GatewayVoiceStateUpdateDispatch | GatewayVoiceServerUpdateDispatch | 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 declare 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 declare 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 declare type GatewayChannelModifyDispatch = DataPayload; +/** + * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. + */ +export declare type GatewayChannelCreateDispatch = GatewayChannelModifyDispatch; +/** + * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. + */ +export declare type GatewayChannelUpdateDispatch = GatewayChannelModifyDispatch; +/** + * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. + */ +export declare 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 declare 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 declare type GatewayGuildModifyDispatch = DataPayload; +/** + * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. + */ +export declare type GatewayGuildCreateDispatch = GatewayGuildModifyDispatch; +/** + * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. + */ +export declare 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 declare 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 declare type GatewayGuildBanModifyDispatch = DataPayload; +/** + * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. + */ +export declare type GatewayGuildBanAddDispatch = GatewayGuildBanModifyDispatch; +/** + * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. + */ +export declare 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 declare 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 declare 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 declare 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 declare 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 declare 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 declare 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 declare type GatewayGuildRoleModifyDispatch = DataPayload; +/** + * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. + */ +export declare type GatewayGuildRoleCreateDispatch = GatewayGuildRoleModifyDispatch; +/** + * @deprecated Gateway v6 is deprecated and the types will not receive further updates, please update to v8. + */ +export declare 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 declare 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 declare 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 declare 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 declare 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 declare type GatewayMessageUpdateDispatch = DataPayload>; +/** + * 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 declare 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 declare 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 declare 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 declare 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 declare 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 declare 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 declare 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 declare 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 declare 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 declare 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 declare 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 declare 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. + */ +declare 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. + */ +declare 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 new file mode 100644 index 0000000..30bcd47 --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v6.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"v6.d.ts","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.js b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v6.js new file mode 100644 index 0000000..42dab1b --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v6.js @@ -0,0 +1,163 @@ +"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; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (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 || (exports.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 || (exports.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 || (exports.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 || (exports.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 || (exports.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 || (exports.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 new file mode 100644 index 0000000..c52f494 --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v6.js.map @@ -0,0 +1 @@ +{"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 new file mode 100644 index 0000000..848edfc --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v6.mjs @@ -0,0 +1,10 @@ +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 new file mode 100644 index 0000000..356cb34 --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v8.d.ts @@ -0,0 +1,1290 @@ +/** + * Types extracted from https://discord.com/developers/docs/topics/gateway + */ +import type { Snowflake } from '../globals'; +import type { APIApplication, APIApplicationCommandInteraction, APIChannel, APIEmoji, APIGuild, APIGuildScheduledEvent, APIGuildIntegration, APIGuildMember, APIMessage, APIMessageComponentInteraction, 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'; +export declare const GatewayVersion = "8"; +/** + * https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-opcodes + */ +export declare const 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 const 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 + */ +export declare const 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 + */ +export declare const 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" +} +export declare type GatewaySendPayload = GatewayHeartbeat | GatewayIdentify | GatewayUpdatePresence | GatewayVoiceStateUpdate | GatewayResume | GatewayRequestGuildMembers; +export declare type GatewayReceivePayload = GatewayHello | GatewayHeartbeatRequest | GatewayHeartbeatAck | GatewayInvalidSession | GatewayReconnect | GatewayDispatchPayload; +export declare type GatewayDispatchPayload = GatewayChannelModifyDispatch | GatewayChannelPinsUpdateDispatch | GatewayGuildBanModifyDispatch | GatewayGuildDeleteDispatch | GatewayGuildEmojisUpdateDispatch | GatewayGuildIntegrationsUpdateDispatch | GatewayGuildMemberAddDispatch | GatewayGuildMemberRemoveDispatch | GatewayGuildMembersChunkDispatch | GatewayGuildMemberUpdateDispatch | GatewayGuildModifyDispatch | GatewayGuildRoleDeleteDispatch | GatewayGuildRoleModifyDispatch | GatewayGuildScheduledEventCreateDispatch | GatewayGuildScheduledEventUpdateDispatch | GatewayGuildScheduledEventDeleteDispatch | GatewayGuildScheduledEventUserAddDispatch | GatewayGuildScheduledEventUserRemoveDispatch | GatewayGuildStickersUpdateDispatch | GatewayIntegrationCreateDispatch | GatewayIntegrationDeleteDispatch | GatewayIntegrationUpdateDispatch | GatewayInteractionCreateDispatch | GatewayInviteCreateDispatch | GatewayInviteDeleteDispatch | GatewayMessageCreateDispatch | GatewayMessageDeleteBulkDispatch | GatewayMessageDeleteDispatch | GatewayMessageReactionAddDispatch | GatewayMessageReactionRemoveAllDispatch | GatewayMessageReactionRemoveDispatch | GatewayMessageReactionRemoveEmojiDispatch | GatewayMessageUpdateDispatch | GatewayPresenceUpdateDispatch | GatewayStageInstanceCreateDispatch | GatewayStageInstanceDeleteDispatch | GatewayStageInstanceUpdateDispatch | GatewayReadyDispatch | GatewayResumedDispatch | GatewayTypingStartDispatch | GatewayUserUpdateDispatch | GatewayVoiceServerUpdateDispatch | GatewayVoiceStateUpdateDispatch | GatewayWebhooksUpdateDispatch; +/** + * https://discord.com/developers/docs/topics/gateway#hello + */ +export interface GatewayHello extends NonDispatchPayload { + op: GatewayOpcodes.Hello; + d: GatewayHelloData; +} +/** + * https://discord.com/developers/docs/topics/gateway#hello + */ +export interface GatewayHelloData { + /** + * The interval (in milliseconds) the client should heartbeat with + */ + heartbeat_interval: number; +} +/** + * https://discord.com/developers/docs/topics/gateway#heartbeating + */ +export interface GatewayHeartbeatRequest extends NonDispatchPayload { + op: GatewayOpcodes.Heartbeat; + d: never; +} +/** + * https://discord.com/developers/docs/topics/gateway#heartbeating-example-gateway-heartbeat-ack + */ +export interface GatewayHeartbeatAck extends NonDispatchPayload { + op: GatewayOpcodes.HeartbeatAck; + d: never; +} +/** + * https://discord.com/developers/docs/topics/gateway#invalid-session + */ +export interface GatewayInvalidSession extends NonDispatchPayload { + op: GatewayOpcodes.InvalidSession; + d: GatewayInvalidSessionData; +} +/** + * https://discord.com/developers/docs/topics/gateway#invalid-session + */ +export declare type GatewayInvalidSessionData = boolean; +/** + * https://discord.com/developers/docs/topics/gateway#reconnect + */ +export interface GatewayReconnect extends NonDispatchPayload { + op: GatewayOpcodes.Reconnect; + d: never; +} +/** + * https://discord.com/developers/docs/topics/gateway#ready + */ +export declare type GatewayReadyDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#ready + */ +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 + */ +export declare 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 + */ +export declare 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 + */ +export declare type GatewayChannelModifyDispatchData = APIChannel; +/** + * https://discord.com/developers/docs/topics/gateway#channel-create + */ +export declare type GatewayChannelCreateDispatch = GatewayChannelModifyDispatch; +/** + * https://discord.com/developers/docs/topics/gateway#channel-create + */ +export declare type GatewayChannelCreateDispatchData = GatewayChannelModifyDispatchData; +/** + * https://discord.com/developers/docs/topics/gateway#channel-update + */ +export declare type GatewayChannelUpdateDispatch = GatewayChannelModifyDispatch; +/** + * https://discord.com/developers/docs/topics/gateway#channel-update + */ +export declare type GatewayChannelUpdateDispatchData = GatewayChannelModifyDispatchData; +/** + * https://discord.com/developers/docs/topics/gateway#channel-delete + */ +export declare type GatewayChannelDeleteDispatch = GatewayChannelModifyDispatch; +/** + * https://discord.com/developers/docs/topics/gateway#channel-delete + */ +export declare type GatewayChannelDeleteDispatchData = GatewayChannelModifyDispatchData; +/** + * https://discord.com/developers/docs/topics/gateway#channel-pins-update + */ +export declare type GatewayChannelPinsUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#guild-create + * https://discord.com/developers/docs/topics/gateway#guild-update + */ +export declare type GatewayGuildModifyDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#guild-create + * https://discord.com/developers/docs/topics/gateway#guild-update + */ +export declare type GatewayGuildModifyDispatchData = APIGuild; +/** + * https://discord.com/developers/docs/topics/gateway#guild-create + */ +export declare type GatewayGuildCreateDispatch = GatewayGuildModifyDispatch; +/** + * https://discord.com/developers/docs/topics/gateway#guild-create + */ +export declare type GatewayGuildCreateDispatchData = GatewayGuildModifyDispatchData; +/** + * https://discord.com/developers/docs/topics/gateway#guild-update + */ +export declare type GatewayGuildUpdateDispatch = GatewayGuildModifyDispatch; +/** + * https://discord.com/developers/docs/topics/gateway#guild-update + */ +export declare type GatewayGuildUpdateDispatchData = GatewayGuildModifyDispatchData; +/** + * https://discord.com/developers/docs/topics/gateway#guild-delete + */ +export declare type GatewayGuildDeleteDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#guild-delete + */ +export declare type GatewayGuildDeleteDispatchData = APIUnavailableGuild; +/** + * https://discord.com/developers/docs/topics/gateway#guild-ban-add + * https://discord.com/developers/docs/topics/gateway#guild-ban-remove + */ +export declare type GatewayGuildBanModifyDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#guild-ban-add + * https://discord.com/developers/docs/topics/gateway#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#guild-ban-add + */ +export declare type GatewayGuildBanAddDispatch = GatewayGuildBanModifyDispatch; +/** + * https://discord.com/developers/docs/topics/gateway#guild-ban-add + */ +export declare type GatewayGuildBanAddDispatchData = GatewayGuildBanModifyDispatchData; +/** + * https://discord.com/developers/docs/topics/gateway#guild-ban-remove + */ +export declare type GatewayGuildBanRemoveDispatch = GatewayGuildBanModifyDispatch; +/** + * https://discord.com/developers/docs/topics/gateway#guild-ban-remove + */ +export declare type GatewayGuildBanRemoveDispatchData = GatewayGuildBanModifyDispatchData; +/** + * https://discord.com/developers/docs/topics/gateway#guild-emojis-update + */ +export declare type GatewayGuildEmojisUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#guild-stickers-update + */ +export declare type GatewayGuildStickersUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#guild-integrations-update + */ +export declare type GatewayGuildIntegrationsUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#guild-integrations-update + */ +export interface GatewayGuildIntegrationsUpdateDispatchData { + /** + * ID of the guild whose integrations were updated + */ + guild_id: Snowflake; +} +/** + * https://discord.com/developers/docs/topics/gateway#guild-member-add + */ +export declare type GatewayGuildMemberAddDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#guild-member-add + */ +export interface GatewayGuildMemberAddDispatchData extends APIGuildMember { + /** + * The id of the guild + */ + guild_id: Snowflake; +} +/** + * https://discord.com/developers/docs/topics/gateway#guild-member-remove + */ +export declare type GatewayGuildMemberRemoveDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#guild-member-update + */ +export declare type GatewayGuildMemberUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#guild-member-update + */ +export declare type GatewayGuildMemberUpdateDispatchData = Omit & Partial> & Required> & Nullable> & { + /** + * The id of the guild + */ + guild_id: Snowflake; +}; +/** + * https://discord.com/developers/docs/topics/gateway#guild-members-chunk + */ +export declare type GatewayGuildMembersChunkDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#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 + */ +export declare type GatewayGuildRoleModifyDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#guild-role-create + * https://discord.com/developers/docs/topics/gateway#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#guild-role-create + */ +export declare type GatewayGuildRoleCreateDispatch = GatewayGuildRoleModifyDispatch; +/** + * https://discord.com/developers/docs/topics/gateway#guild-role-create + */ +export declare type GatewayGuildRoleCreateDispatchData = GatewayGuildRoleModifyDispatchData; +/** + * https://discord.com/developers/docs/topics/gateway#guild-role-update + */ +export declare type GatewayGuildRoleUpdateDispatch = GatewayGuildRoleModifyDispatch; +/** + * https://discord.com/developers/docs/topics/gateway#guild-role-update + */ +export declare type GatewayGuildRoleUpdateDispatchData = GatewayGuildRoleModifyDispatchData; +/** + * https://discord.com/developers/docs/topics/gateway#guild-role-delete + */ +export declare type GatewayGuildRoleDeleteDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#guild-role-delete + */ +export interface GatewayGuildRoleDeleteDispatchData { + /** + * The id of the guild + */ + guild_id: Snowflake; + /** + * The id of the role + */ + role_id: Snowflake; +} +export declare type GatewayGuildScheduledEventCreateDispatch = DataPayload; +export declare type GatewayGuildScheduledEventCreateDispatchData = APIGuildScheduledEvent; +export declare type GatewayGuildScheduledEventUpdateDispatch = DataPayload; +export declare type GatewayGuildScheduledEventUpdateDispatchData = APIGuildScheduledEvent; +export declare type GatewayGuildScheduledEventDeleteDispatch = DataPayload; +export declare type GatewayGuildScheduledEventDeleteDispatchData = APIGuildScheduledEvent; +export declare type GatewayGuildScheduledEventUserAddDispatch = DataPayload; +export interface GatewayGuildScheduledEventUserAddDispatchData { + guild_scheduled_event_id: Snowflake; + user_id: Snowflake; + guild_id: Snowflake; +} +export declare type GatewayGuildScheduledEventUserRemoveDispatch = DataPayload; +export interface GatewayGuildScheduledEventUserRemoveDispatchData { + guild_scheduled_event_id: Snowflake; + user_id: Snowflake; + guild_id: Snowflake; +} +/** + * https://discord.com/developers/docs/topics/gateway#integration-create + */ +export declare type GatewayIntegrationCreateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#integration-create + */ +export declare type GatewayIntegrationCreateDispatchData = APIGuildIntegration & { + guild_id: Snowflake; +}; +/** + * https://discord.com/developers/docs/topics/gateway#integration-update + */ +export declare type GatewayIntegrationUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#integration-update + */ +export declare type GatewayIntegrationUpdateDispatchData = APIGuildIntegration & { + guild_id: Snowflake; +}; +/** + * https://discord.com/developers/docs/topics/gateway#integration-update + */ +export declare type GatewayIntegrationDeleteDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#interaction-create + */ +export declare type GatewayInteractionCreateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#interaction-create + */ +export declare type GatewayInteractionCreateDispatchData = APIApplicationCommandInteraction | APIMessageComponentInteraction; +/** + * https://discord.com/developers/docs/topics/gateway#invite-create + */ +export declare type GatewayInviteCreateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#invite-delete + */ +export declare type GatewayInviteDeleteDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#message-create + */ +export declare type GatewayMessageCreateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#message-create + */ +export declare type GatewayMessageCreateDispatchData = APIMessage; +/** + * https://discord.com/developers/docs/topics/gateway#message-update + */ +export declare type GatewayMessageUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#message-update + */ +export declare type GatewayMessageUpdateDispatchData = { + id: Snowflake; + channel_id: Snowflake; +} & Partial; +/** + * https://discord.com/developers/docs/topics/gateway#message-delete + */ +export declare type GatewayMessageDeleteDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#message-delete-bulk + */ +export declare type GatewayMessageDeleteBulkDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#message-reaction-add + */ +export declare type GatewayMessageReactionAddDispatch = ReactionData; +/** + * https://discord.com/developers/docs/topics/gateway#message-reaction-add + */ +export declare type GatewayMessageReactionAddDispatchData = GatewayMessageReactionAddDispatch['d']; +/** + * https://discord.com/developers/docs/topics/gateway#message-reaction-remove + */ +export declare type GatewayMessageReactionRemoveDispatch = ReactionData; +/** + * https://discord.com/developers/docs/topics/gateway#message-reaction-remove + */ +export declare type GatewayMessageReactionRemoveDispatchData = GatewayMessageReactionRemoveDispatch['d']; +/** + * https://discord.com/developers/docs/topics/gateway#message-reaction-remove-all + */ +export declare type GatewayMessageReactionRemoveAllDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#message-reaction-remove-all + */ +export declare type GatewayMessageReactionRemoveAllDispatchData = MessageReactionRemoveData; +/** + * https://discord.com/developers/docs/topics/gateway#message-reaction-remove-emoji + */ +export declare type GatewayMessageReactionRemoveEmojiDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#message-reaction-remove-emoji + */ +export interface GatewayMessageReactionRemoveEmojiDispatchData extends MessageReactionRemoveData { + /** + * The emoji that was removed + */ + emoji: APIEmoji; +} +/** + * https://discord.com/developers/docs/topics/gateway#presence-update + */ +export declare type GatewayPresenceUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#presence-update + */ +export declare type GatewayPresenceUpdateDispatchData = RawGatewayPresenceUpdate; +/** + * https://discord.com/developers/docs/topics/gateway#stage-instance-create + */ +export declare type GatewayStageInstanceCreateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#stage-instance-create + */ +export declare type GatewayStageInstanceCreateDispatchData = APIStageInstance; +/** + * https://discord.com/developers/docs/topics/gateway#stage-instance-delete + */ +export declare type GatewayStageInstanceDeleteDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#stage-instance-delete + */ +export declare type GatewayStageInstanceDeleteDispatchData = APIStageInstance; +/** + * https://discord.com/developers/docs/topics/gateway#stage-instance-update + */ +export declare type GatewayStageInstanceUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#stage-instance-update + */ +export declare type GatewayStageInstanceUpdateDispatchData = APIStageInstance; +/** + * https://discord.com/developers/docs/topics/gateway#typing-start + */ +export declare type GatewayTypingStartDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#user-update + */ +export declare type GatewayUserUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#user-update + */ +export declare type GatewayUserUpdateDispatchData = APIUser; +/** + * https://discord.com/developers/docs/topics/gateway#voice-state-update + */ +export declare type GatewayVoiceStateUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#voice-state-update + */ +export declare type GatewayVoiceStateUpdateDispatchData = GatewayVoiceState; +/** + * https://discord.com/developers/docs/topics/gateway#voice-server-update + */ +export declare type GatewayVoiceServerUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#webhooks-update + */ +export declare type GatewayWebhooksUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#heartbeating + */ +export interface GatewayHeartbeat { + op: GatewayOpcodes.Heartbeat; + d: GatewayHeartbeatData; +} +/** + * https://discord.com/developers/docs/topics/gateway#heartbeating + */ +export declare type GatewayHeartbeatData = number | null; +/** + * https://discord.com/developers/docs/topics/gateway#identify + */ +export interface GatewayIdentify { + op: GatewayOpcodes.Identify; + d: GatewayIdentifyData; +} +/** + * https://discord.com/developers/docs/topics/gateway#identify + */ +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 + */ +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 + */ +export interface GatewayResume { + op: GatewayOpcodes.Resume; + d: GatewayResumeData; +} +/** + * https://discord.com/developers/docs/topics/gateway#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#request-guild-members + */ +export interface GatewayRequestGuildMembers { + op: GatewayOpcodes.RequestGuildMembers; + d: GatewayRequestGuildMembersData; +} +/** + * https://discord.com/developers/docs/topics/gateway#request-guild-members + */ +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 + */ +export interface GatewayVoiceStateUpdate { + op: GatewayOpcodes.VoiceStateUpdate; + d: GatewayVoiceStateUpdateData; +} +/** + * https://discord.com/developers/docs/topics/gateway#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#update-presence + */ +export interface GatewayUpdatePresence { + op: GatewayOpcodes.PresenceUpdate; + d: GatewayPresenceUpdateData; +} +/** + * https://discord.com/developers/docs/topics/gateway#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#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#activity-object-activity-structure + */ +export declare 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; +} +declare type NonDispatchPayload = Omit & { + t: null; + s: null; +}; +interface DataPayload extends BasePayload { + op: GatewayOpcodes.Dispatch; + t: Event; + d: D; +} +declare 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=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 new file mode 100644 index 0000000..5b44396 --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v8.d.ts.map @@ -0,0 +1 @@ +{"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 new file mode 100644 index 0000000..5090ff0 --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v8.js @@ -0,0 +1,231 @@ +"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; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (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 = '8'; +/** + * 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 || (exports.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#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 || (exports.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["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 || (exports.GatewayIntentBits = {})); +/** + * https://discord.com/developers/docs/topics/gateway#commands-and-events-gateway-events + */ +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 || (exports.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 new file mode 100644 index 0000000..518af7c --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v8.js.map @@ -0,0 +1 @@ +{"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 new file mode 100644 index 0000000..c5cfed1 --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v8.mjs @@ -0,0 +1,8 @@ +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 new file mode 100644 index 0000000..5a42836 --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v9.d.ts @@ -0,0 +1,1352 @@ +/** + * Types extracted from https://discord.com/developers/docs/topics/gateway + */ +import type { Snowflake } from '../globals'; +import type { APIApplication, APIApplicationCommandInteraction, APIChannel, APIEmoji, APIGuild, APIGuildScheduledEvent, APIGuildIntegration, APIGuildMember, APIMessage, APIMessageComponentInteraction, APIRole, APIStageInstance, APISticker, APIThreadMember, APIUnavailableGuild, APIUser, GatewayActivity, GatewayPresenceUpdate as RawGatewayPresenceUpdate, GatewayThreadListSync as RawGatewayThreadListSync, GatewayThreadMembersUpdate as RawGatewayThreadMembersUpdate, GatewayVoiceState, InviteTargetType, PresenceUpdateStatus } from '../payloads/v9/index'; +import type { Nullable } from '../utils/internals'; +export * from './common'; +export declare const GatewayVersion = "9"; +/** + * https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-opcodes + */ +export declare const 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 const 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 + */ +export declare const 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 + */ +export declare const 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", + 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", + 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" +} +export declare type GatewaySendPayload = GatewayHeartbeat | GatewayIdentify | GatewayUpdatePresence | GatewayVoiceStateUpdate | GatewayResume | GatewayRequestGuildMembers; +export declare type GatewayReceivePayload = GatewayHello | GatewayHeartbeatRequest | GatewayHeartbeatAck | GatewayInvalidSession | GatewayReconnect | GatewayDispatchPayload; +export declare type GatewayDispatchPayload = GatewayChannelModifyDispatch | GatewayChannelPinsUpdateDispatch | GatewayGuildBanModifyDispatch | GatewayGuildDeleteDispatch | GatewayGuildEmojisUpdateDispatch | GatewayGuildIntegrationsUpdateDispatch | GatewayGuildMemberAddDispatch | GatewayGuildMemberRemoveDispatch | GatewayGuildMembersChunkDispatch | GatewayGuildMemberUpdateDispatch | GatewayGuildModifyDispatch | GatewayGuildRoleDeleteDispatch | GatewayGuildRoleModifyDispatch | GatewayGuildScheduledEventCreateDispatch | GatewayGuildScheduledEventUpdateDispatch | GatewayGuildScheduledEventDeleteDispatch | GatewayGuildScheduledEventUserAddDispatch | GatewayGuildScheduledEventUserRemoveDispatch | GatewayGuildStickersUpdateDispatch | GatewayIntegrationCreateDispatch | GatewayIntegrationDeleteDispatch | GatewayIntegrationUpdateDispatch | GatewayInteractionCreateDispatch | GatewayInviteCreateDispatch | GatewayInviteDeleteDispatch | GatewayMessageCreateDispatch | GatewayMessageDeleteBulkDispatch | GatewayMessageDeleteDispatch | GatewayMessageReactionAddDispatch | GatewayMessageReactionRemoveAllDispatch | GatewayMessageReactionRemoveDispatch | GatewayMessageReactionRemoveEmojiDispatch | GatewayMessageUpdateDispatch | GatewayPresenceUpdateDispatch | GatewayStageInstanceCreateDispatch | GatewayStageInstanceDeleteDispatch | GatewayStageInstanceUpdateDispatch | GatewayReadyDispatch | GatewayResumedDispatch | GatewayThreadListSyncDispatch | GatewayThreadMembersUpdateDispatch | GatewayThreadMemberUpdateDispatch | GatewayThreadModifyDispatch | GatewayTypingStartDispatch | GatewayUserUpdateDispatch | GatewayVoiceServerUpdateDispatch | GatewayVoiceStateUpdateDispatch | GatewayWebhooksUpdateDispatch; +/** + * https://discord.com/developers/docs/topics/gateway#hello + */ +export interface GatewayHello extends NonDispatchPayload { + op: GatewayOpcodes.Hello; + d: GatewayHelloData; +} +/** + * https://discord.com/developers/docs/topics/gateway#hello + */ +export interface GatewayHelloData { + /** + * The interval (in milliseconds) the client should heartbeat with + */ + heartbeat_interval: number; +} +/** + * https://discord.com/developers/docs/topics/gateway#heartbeating + */ +export interface GatewayHeartbeatRequest extends NonDispatchPayload { + op: GatewayOpcodes.Heartbeat; + d: never; +} +/** + * https://discord.com/developers/docs/topics/gateway#heartbeating-example-gateway-heartbeat-ack + */ +export interface GatewayHeartbeatAck extends NonDispatchPayload { + op: GatewayOpcodes.HeartbeatAck; + d: never; +} +/** + * https://discord.com/developers/docs/topics/gateway#invalid-session + */ +export interface GatewayInvalidSession extends NonDispatchPayload { + op: GatewayOpcodes.InvalidSession; + d: GatewayInvalidSessionData; +} +/** + * https://discord.com/developers/docs/topics/gateway#invalid-session + */ +export declare type GatewayInvalidSessionData = boolean; +/** + * https://discord.com/developers/docs/topics/gateway#reconnect + */ +export interface GatewayReconnect extends NonDispatchPayload { + op: GatewayOpcodes.Reconnect; + d: never; +} +/** + * https://discord.com/developers/docs/topics/gateway#ready + */ +export declare type GatewayReadyDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#ready + */ +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 + */ +export declare 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 + */ +export declare 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 + */ +export declare type GatewayChannelModifyDispatchData = APIChannel; +/** + * https://discord.com/developers/docs/topics/gateway#channel-create + */ +export declare type GatewayChannelCreateDispatch = GatewayChannelModifyDispatch; +/** + * https://discord.com/developers/docs/topics/gateway#channel-create + */ +export declare type GatewayChannelCreateDispatchData = GatewayChannelModifyDispatchData; +/** + * https://discord.com/developers/docs/topics/gateway#channel-update + */ +export declare type GatewayChannelUpdateDispatch = GatewayChannelModifyDispatch; +/** + * https://discord.com/developers/docs/topics/gateway#channel-update + */ +export declare type GatewayChannelUpdateDispatchData = GatewayChannelModifyDispatchData; +/** + * https://discord.com/developers/docs/topics/gateway#channel-delete + */ +export declare type GatewayChannelDeleteDispatch = GatewayChannelModifyDispatch; +/** + * https://discord.com/developers/docs/topics/gateway#channel-delete + */ +export declare type GatewayChannelDeleteDispatchData = GatewayChannelModifyDispatchData; +/** + * https://discord.com/developers/docs/topics/gateway#channel-pins-update + */ +export declare type GatewayChannelPinsUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#guild-create + * https://discord.com/developers/docs/topics/gateway#guild-update + */ +export declare type GatewayGuildModifyDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#guild-create + * https://discord.com/developers/docs/topics/gateway#guild-update + */ +export declare type GatewayGuildModifyDispatchData = APIGuild; +/** + * https://discord.com/developers/docs/topics/gateway#guild-create + */ +export declare type GatewayGuildCreateDispatch = GatewayGuildModifyDispatch; +/** + * https://discord.com/developers/docs/topics/gateway#guild-create + */ +export declare type GatewayGuildCreateDispatchData = GatewayGuildModifyDispatchData; +/** + * https://discord.com/developers/docs/topics/gateway#guild-update + */ +export declare type GatewayGuildUpdateDispatch = GatewayGuildModifyDispatch; +/** + * https://discord.com/developers/docs/topics/gateway#guild-update + */ +export declare type GatewayGuildUpdateDispatchData = GatewayGuildModifyDispatchData; +/** + * https://discord.com/developers/docs/topics/gateway#guild-delete + */ +export declare type GatewayGuildDeleteDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#guild-delete + */ +export declare type GatewayGuildDeleteDispatchData = APIUnavailableGuild; +/** + * https://discord.com/developers/docs/topics/gateway#guild-ban-add + * https://discord.com/developers/docs/topics/gateway#guild-ban-remove + */ +export declare type GatewayGuildBanModifyDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#guild-ban-add + * https://discord.com/developers/docs/topics/gateway#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#guild-ban-add + */ +export declare type GatewayGuildBanAddDispatch = GatewayGuildBanModifyDispatch; +/** + * https://discord.com/developers/docs/topics/gateway#guild-ban-add + */ +export declare type GatewayGuildBanAddDispatchData = GatewayGuildBanModifyDispatchData; +/** + * https://discord.com/developers/docs/topics/gateway#guild-ban-remove + */ +export declare type GatewayGuildBanRemoveDispatch = GatewayGuildBanModifyDispatch; +/** + * https://discord.com/developers/docs/topics/gateway#guild-ban-remove + */ +export declare type GatewayGuildBanRemoveDispatchData = GatewayGuildBanModifyDispatchData; +/** + * https://discord.com/developers/docs/topics/gateway#guild-emojis-update + */ +export declare type GatewayGuildEmojisUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#guild-stickers-update + */ +export declare type GatewayGuildStickersUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#guild-integrations-update + */ +export declare type GatewayGuildIntegrationsUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#guild-integrations-update + */ +export interface GatewayGuildIntegrationsUpdateDispatchData { + /** + * ID of the guild whose integrations were updated + */ + guild_id: Snowflake; +} +/** + * https://discord.com/developers/docs/topics/gateway#guild-member-add + */ +export declare type GatewayGuildMemberAddDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#guild-member-add + */ +export interface GatewayGuildMemberAddDispatchData extends APIGuildMember { + /** + * The id of the guild + */ + guild_id: Snowflake; +} +/** + * https://discord.com/developers/docs/topics/gateway#guild-member-remove + */ +export declare type GatewayGuildMemberRemoveDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#guild-member-update + */ +export declare type GatewayGuildMemberUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#guild-member-update + */ +export declare type GatewayGuildMemberUpdateDispatchData = Omit & Partial> & Required> & Nullable> & { + /** + * The id of the guild + */ + guild_id: Snowflake; +}; +/** + * https://discord.com/developers/docs/topics/gateway#guild-members-chunk + */ +export declare type GatewayGuildMembersChunkDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#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 + */ +export declare type GatewayGuildRoleModifyDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#guild-role-create + * https://discord.com/developers/docs/topics/gateway#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#guild-role-create + */ +export declare type GatewayGuildRoleCreateDispatch = GatewayGuildRoleModifyDispatch; +/** + * https://discord.com/developers/docs/topics/gateway#guild-role-create + */ +export declare type GatewayGuildRoleCreateDispatchData = GatewayGuildRoleModifyDispatchData; +/** + * https://discord.com/developers/docs/topics/gateway#guild-role-update + */ +export declare type GatewayGuildRoleUpdateDispatch = GatewayGuildRoleModifyDispatch; +/** + * https://discord.com/developers/docs/topics/gateway#guild-role-update + */ +export declare type GatewayGuildRoleUpdateDispatchData = GatewayGuildRoleModifyDispatchData; +/** + * https://discord.com/developers/docs/topics/gateway#guild-role-delete + */ +export declare type GatewayGuildRoleDeleteDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#guild-role-delete + */ +export interface GatewayGuildRoleDeleteDispatchData { + /** + * The id of the guild + */ + guild_id: Snowflake; + /** + * The id of the role + */ + role_id: Snowflake; +} +export declare type GatewayGuildScheduledEventCreateDispatch = DataPayload; +export declare type GatewayGuildScheduledEventCreateDispatchData = APIGuildScheduledEvent; +export declare type GatewayGuildScheduledEventUpdateDispatch = DataPayload; +export declare type GatewayGuildScheduledEventUpdateDispatchData = APIGuildScheduledEvent; +export declare type GatewayGuildScheduledEventDeleteDispatch = DataPayload; +export declare type GatewayGuildScheduledEventDeleteDispatchData = APIGuildScheduledEvent; +export declare type GatewayGuildScheduledEventUserAddDispatch = DataPayload; +export interface GatewayGuildScheduledEventUserAddDispatchData { + guild_scheduled_event_id: Snowflake; + user_id: Snowflake; + guild_id: Snowflake; +} +export declare type GatewayGuildScheduledEventUserRemoveDispatch = DataPayload; +export interface GatewayGuildScheduledEventUserRemoveDispatchData { + guild_scheduled_event_id: Snowflake; + user_id: Snowflake; + guild_id: Snowflake; +} +/** + * https://discord.com/developers/docs/topics/gateway#integration-create + */ +export declare type GatewayIntegrationCreateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#integration-create + */ +export declare type GatewayIntegrationCreateDispatchData = APIGuildIntegration & { + guild_id: Snowflake; +}; +/** + * https://discord.com/developers/docs/topics/gateway#integration-update + */ +export declare type GatewayIntegrationUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#integration-update + */ +export declare type GatewayIntegrationUpdateDispatchData = APIGuildIntegration & { + guild_id: Snowflake; +}; +/** + * https://discord.com/developers/docs/topics/gateway#integration-update + */ +export declare type GatewayIntegrationDeleteDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#interaction-create + */ +export declare type GatewayInteractionCreateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#interaction-create + */ +export declare type GatewayInteractionCreateDispatchData = APIApplicationCommandInteraction | APIMessageComponentInteraction; +/** + * https://discord.com/developers/docs/topics/gateway#invite-create + */ +export declare type GatewayInviteCreateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#invite-delete + */ +export declare type GatewayInviteDeleteDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#message-create + */ +export declare type GatewayMessageCreateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#message-create + */ +export declare type GatewayMessageCreateDispatchData = APIMessage; +/** + * https://discord.com/developers/docs/topics/gateway#message-update + */ +export declare type GatewayMessageUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#message-update + */ +export declare type GatewayMessageUpdateDispatchData = { + id: Snowflake; + channel_id: Snowflake; +} & Partial; +/** + * https://discord.com/developers/docs/topics/gateway#message-delete + */ +export declare type GatewayMessageDeleteDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#message-delete-bulk + */ +export declare type GatewayMessageDeleteBulkDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#message-reaction-add + */ +export declare type GatewayMessageReactionAddDispatch = ReactionData; +/** + * https://discord.com/developers/docs/topics/gateway#message-reaction-add + */ +export declare type GatewayMessageReactionAddDispatchData = GatewayMessageReactionAddDispatch['d']; +/** + * https://discord.com/developers/docs/topics/gateway#message-reaction-remove + */ +export declare type GatewayMessageReactionRemoveDispatch = ReactionData; +/** + * https://discord.com/developers/docs/topics/gateway#message-reaction-remove + */ +export declare type GatewayMessageReactionRemoveDispatchData = GatewayMessageReactionRemoveDispatch['d']; +/** + * https://discord.com/developers/docs/topics/gateway#message-reaction-remove-all + */ +export declare type GatewayMessageReactionRemoveAllDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#message-reaction-remove-all + */ +export declare type GatewayMessageReactionRemoveAllDispatchData = MessageReactionRemoveData; +/** + * https://discord.com/developers/docs/topics/gateway#message-reaction-remove-emoji + */ +export declare type GatewayMessageReactionRemoveEmojiDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#message-reaction-remove-emoji + */ +export interface GatewayMessageReactionRemoveEmojiDispatchData extends MessageReactionRemoveData { + /** + * The emoji that was removed + */ + emoji: APIEmoji; +} +/** + * https://discord.com/developers/docs/topics/gateway#presence-update + */ +export declare type GatewayPresenceUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#presence-update + */ +export declare type GatewayPresenceUpdateDispatchData = RawGatewayPresenceUpdate; +/** + * https://discord.com/developers/docs/topics/gateway#stage-instance-create + */ +export declare type GatewayStageInstanceCreateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#stage-instance-create + */ +export declare type GatewayStageInstanceCreateDispatchData = APIStageInstance; +/** + * https://discord.com/developers/docs/topics/gateway#stage-instance-delete + */ +export declare type GatewayStageInstanceDeleteDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#stage-instance-delete + */ +export declare type GatewayStageInstanceDeleteDispatchData = APIStageInstance; +/** + * https://discord.com/developers/docs/topics/gateway#stage-instance-update + */ +export declare type GatewayStageInstanceUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#stage-instance-update + */ +export declare type GatewayStageInstanceUpdateDispatchData = APIStageInstance; +/** + * https://discord.com/developers/docs/topics/gateway#thread-list-sync + */ +export declare type GatewayThreadListSyncDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#thread-list-sync + */ +export declare type GatewayThreadListSyncDispatchData = RawGatewayThreadListSync; +/** + * https://discord.com/developers/docs/topics/gateway#thread-members-update + */ +export declare type GatewayThreadMembersUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#thread-members-update + */ +export declare type GatewayThreadMembersUpdateDispatchData = RawGatewayThreadMembersUpdate; +/** + * https://discord.com/developers/docs/topics/gateway#thread-member-update + */ +export declare type GatewayThreadMemberUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#thread-member-update + */ +export declare type GatewayThreadMemberUpdateDispatchData = APIThreadMember & { + guild_id: Snowflake; +}; +/** + * https://discord.com/developers/docs/topics/gateway#thread-create + * https://discord.com/developers/docs/topics/gateway#thread-update + * https://discord.com/developers/docs/topics/gateway#thread-delete + */ +export declare type GatewayThreadModifyDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#thread-create + */ +export declare type GatewayThreadCreateDispatch = GatewayChannelModifyDispatch; +/** + * https://discord.com/developers/docs/topics/gateway#thread-create + */ +export declare type GatewayThreadCreateDispatchData = GatewayChannelModifyDispatchData; +/** + * https://discord.com/developers/docs/topics/gateway#thread-update + */ +export declare type GatewayThreadUpdateDispatch = GatewayChannelModifyDispatch; +/** + * https://discord.com/developers/docs/topics/gateway#thread-update + */ +export declare type GatewayThreadUpdateDispatchData = GatewayChannelModifyDispatchData; +/** + * https://discord.com/developers/docs/topics/gateway#thread-delete + */ +export declare type GatewayThreadDeleteDispatch = GatewayChannelModifyDispatch; +/** + * https://discord.com/developers/docs/topics/gateway#thread-delete + */ +export declare type GatewayThreadDeleteDispatchData = GatewayChannelModifyDispatchData; +/** + * https://discord.com/developers/docs/topics/gateway#typing-start + */ +export declare type GatewayTypingStartDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#user-update + */ +export declare type GatewayUserUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#user-update + */ +export declare type GatewayUserUpdateDispatchData = APIUser; +/** + * https://discord.com/developers/docs/topics/gateway#voice-state-update + */ +export declare type GatewayVoiceStateUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#voice-state-update + */ +export declare type GatewayVoiceStateUpdateDispatchData = GatewayVoiceState; +/** + * https://discord.com/developers/docs/topics/gateway#voice-server-update + */ +export declare type GatewayVoiceServerUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#webhooks-update + */ +export declare type GatewayWebhooksUpdateDispatch = DataPayload; +/** + * https://discord.com/developers/docs/topics/gateway#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#heartbeating + */ +export interface GatewayHeartbeat { + op: GatewayOpcodes.Heartbeat; + d: GatewayHeartbeatData; +} +/** + * https://discord.com/developers/docs/topics/gateway#heartbeating + */ +export declare type GatewayHeartbeatData = number | null; +/** + * https://discord.com/developers/docs/topics/gateway#identify + */ +export interface GatewayIdentify { + op: GatewayOpcodes.Identify; + d: GatewayIdentifyData; +} +/** + * https://discord.com/developers/docs/topics/gateway#identify + */ +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 + */ +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 + */ +export interface GatewayResume { + op: GatewayOpcodes.Resume; + d: GatewayResumeData; +} +/** + * https://discord.com/developers/docs/topics/gateway#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#request-guild-members + */ +export interface GatewayRequestGuildMembers { + op: GatewayOpcodes.RequestGuildMembers; + d: GatewayRequestGuildMembersData; +} +/** + * https://discord.com/developers/docs/topics/gateway#request-guild-members + */ +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 + */ +export interface GatewayVoiceStateUpdate { + op: GatewayOpcodes.VoiceStateUpdate; + d: GatewayVoiceStateUpdateData; +} +/** + * https://discord.com/developers/docs/topics/gateway#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#update-status + */ +export interface GatewayUpdatePresence { + op: GatewayOpcodes.PresenceUpdate; + d: GatewayPresenceUpdateData; +} +/** + * https://discord.com/developers/docs/topics/gateway#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#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#activity-object-activity-structure + */ +export declare 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; +} +declare type NonDispatchPayload = Omit & { + t: null; + s: null; +}; +interface DataPayload extends BasePayload { + op: GatewayOpcodes.Dispatch; + t: Event; + d: D; +} +declare 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 new file mode 100644 index 0000000..da09f09 --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v9.d.ts.map @@ -0,0 +1 @@ +{"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 new file mode 100644 index 0000000..bb1e6e1 --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v9.js @@ -0,0 +1,237 @@ +"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; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (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 || (exports.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#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 || (exports.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["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 || (exports.GatewayIntentBits = {})); +/** + * https://discord.com/developers/docs/topics/gateway#commands-and-events-gateway-events + */ +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["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["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 || (exports.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 new file mode 100644 index 0000000..4c07290 --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v9.js.map @@ -0,0 +1 @@ +{"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 new file mode 100644 index 0000000..27b1baf --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/gateway/v9.mjs @@ -0,0 +1,8 @@ +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 new file mode 100644 index 0000000..8b91dbf --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/globals.d.ts @@ -0,0 +1,81 @@ +/** + * https://discord.com/developers/docs/reference#snowflakes + */ +export declare type Snowflake = string; +/** + * https://discord.com/developers/docs/topics/permissions + * @internal + */ +export declare 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 + */ + 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 + */ + 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 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 new file mode 100644 index 0000000..505ffb2 --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/globals.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"globals.d.ts","sourceRoot":"","sources":["globals.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,SAAS,GAAG,MAAM,CAAC;AAE/B;;;GAGG;AACH,oBAAY,WAAW,GAAG,MAAM,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,kBAAkB;IAC9B;;;;OAIG;;IAEH;;;;OAIG;;IAEH;;;;OAIG;;IAEH;;;;OAIG;;IAEH;;;;OAIG;;IAEH;;;;OAIG;;IAEH;;;;OAIG;;IAEH;;;;OAIG;;IAEH;;;;OAIG;;IAEH;;;;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 new file mode 100644 index 0000000..1fb5179 --- /dev/null +++ b/node_modules/@discordjs/builders/node_modules/discord-api-types/globals.js @@ -0,0 +1,80 @@ +"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 + */ + 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 + */ + 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 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 + */ + Timestamp: /-?\d{1,13})(:(?