From 88e5284441e0d2cb57b9c310ecd3034f8d1967ae Mon Sep 17 00:00:00 2001 From: Keyemail Date: Fri, 10 May 2024 22:44:38 -0700 Subject: [PATCH] Finished star board! --- .gitignore | 4 + config.json | 3 - node_modules/.package-lock.json | 310 - node_modules/@discordjs/builders/LICENSE | 191 - node_modules/@discordjs/builders/README.md | 72 - .../@discordjs/builders/dist/index.d.mts | 1971 -- .../@discordjs/builders/dist/index.d.ts | 1971 -- .../@discordjs/builders/dist/index.js | 2811 --- .../@discordjs/builders/dist/index.js.map | 1 - .../@discordjs/builders/dist/index.mjs | 2748 --- .../@discordjs/builders/dist/index.mjs.map | 1 - node_modules/@discordjs/builders/package.json | 99 - .../@discordjs/collection/CHANGELOG.md | 190 - node_modules/@discordjs/collection/LICENSE | 191 - node_modules/@discordjs/collection/README.md | 67 - .../@discordjs/collection/dist/index.d.mts | 457 - .../@discordjs/collection/dist/index.d.ts | 457 - .../@discordjs/collection/dist/index.js | 543 - .../@discordjs/collection/dist/index.js.map | 1 - .../@discordjs/collection/dist/index.mjs | 517 - .../@discordjs/collection/dist/index.mjs.map | 1 - .../@discordjs/collection/package.json | 76 - node_modules/@discordjs/formatters/LICENSE | 191 - node_modules/@discordjs/formatters/README.md | 82 - .../@discordjs/formatters/dist/index.d.mts | 650 - .../@discordjs/formatters/dist/index.d.ts | 650 - .../@discordjs/formatters/dist/index.js | 457 - .../@discordjs/formatters/dist/index.js.map | 1 - .../@discordjs/formatters/dist/index.mjs | 392 - .../@discordjs/formatters/dist/index.mjs.map | 1 - .../@discordjs/formatters/package.json | 83 - node_modules/@discordjs/rest/LICENSE | 192 - node_modules/@discordjs/rest/README.md | 139 - node_modules/@discordjs/rest/dist/index.d.mts | 904 - node_modules/@discordjs/rest/dist/index.d.ts | 904 - node_modules/@discordjs/rest/dist/index.js | 1486 -- .../@discordjs/rest/dist/index.js.map | 1 - node_modules/@discordjs/rest/dist/index.mjs | 1444 -- .../@discordjs/rest/dist/index.mjs.map | 1 - .../rest/dist/strategies/undiciRequest.d.mts | 13 - .../rest/dist/strategies/undiciRequest.d.ts | 13 - .../rest/dist/strategies/undiciRequest.js | 94 - .../rest/dist/strategies/undiciRequest.js.map | 1 - .../rest/dist/strategies/undiciRequest.mjs | 70 - .../dist/strategies/undiciRequest.mjs.map | 1 - node_modules/@discordjs/rest/dist/web.d.mts | 904 - node_modules/@discordjs/rest/dist/web.d.ts | 904 - node_modules/@discordjs/rest/dist/web.js | 1418 -- node_modules/@discordjs/rest/dist/web.js.map | 1 - node_modules/@discordjs/rest/dist/web.mjs | 1374 -- node_modules/@discordjs/rest/dist/web.mjs.map | 1 - .../@discordjs/collection/LICENSE | 191 - .../@discordjs/collection/README.md | 67 - .../@discordjs/collection/dist/index.d.mts | 535 - .../@discordjs/collection/dist/index.d.ts | 535 - .../@discordjs/collection/dist/index.js | 654 - .../@discordjs/collection/dist/index.js.map | 1 - .../@discordjs/collection/dist/index.mjs | 628 - .../@discordjs/collection/dist/index.mjs.map | 1 - .../@discordjs/collection/package.json | 86 - node_modules/@discordjs/rest/package.json | 119 - node_modules/@discordjs/util/LICENSE | 190 - node_modules/@discordjs/util/README.md | 65 - node_modules/@discordjs/util/dist/index.d.mts | 132 - node_modules/@discordjs/util/dist/index.d.ts | 132 - node_modules/@discordjs/util/dist/index.js | 144 - .../@discordjs/util/dist/index.js.map | 1 - node_modules/@discordjs/util/dist/index.mjs | 111 - .../@discordjs/util/dist/index.mjs.map | 1 - node_modules/@discordjs/util/package.json | 91 - node_modules/@discordjs/ws/LICENSE | 191 - node_modules/@discordjs/ws/README.md | 204 - .../@discordjs/ws/dist/defaultWorker.d.mts | 2 - .../@discordjs/ws/dist/defaultWorker.d.ts | 2 - .../@discordjs/ws/dist/defaultWorker.js | 1058 - .../@discordjs/ws/dist/defaultWorker.js.map | 1 - .../@discordjs/ws/dist/defaultWorker.mjs | 1040 - .../@discordjs/ws/dist/defaultWorker.mjs.map | 1 - node_modules/@discordjs/ws/dist/index.d.mts | 704 - node_modules/@discordjs/ws/dist/index.d.ts | 704 - node_modules/@discordjs/ws/dist/index.js | 1505 -- node_modules/@discordjs/ws/dist/index.js.map | 1 - node_modules/@discordjs/ws/dist/index.mjs | 1469 -- node_modules/@discordjs/ws/dist/index.mjs.map | 1 - .../@discordjs/collection/LICENSE | 191 - .../@discordjs/collection/README.md | 67 - .../@discordjs/collection/dist/index.d.mts | 535 - .../@discordjs/collection/dist/index.d.ts | 535 - .../@discordjs/collection/dist/index.js | 654 - .../@discordjs/collection/dist/index.js.map | 1 - .../@discordjs/collection/dist/index.mjs | 628 - .../@discordjs/collection/dist/index.mjs.map | 1 - .../@discordjs/collection/package.json | 86 - node_modules/@discordjs/ws/package.json | 113 - .../@sapphire/async-queue/CHANGELOG.md | 190 - node_modules/@sapphire/async-queue/README.md | 60 - .../@sapphire/async-queue/dist/cjs/index.cjs | 145 - .../async-queue/dist/cjs/index.cjs.map | 1 - .../async-queue/dist/cjs/index.d.cts | 55 - .../async-queue/dist/esm/index.d.mts | 55 - .../@sapphire/async-queue/dist/esm/index.mjs | 143 - .../async-queue/dist/esm/index.mjs.map | 1 - .../async-queue/dist/iife/index.global.js | 150 - .../async-queue/dist/iife/index.global.js.map | 1 - .../@sapphire/async-queue/package.json | 72 - .../@sapphire/shapeshift/CHANGELOG.md | 326 - node_modules/@sapphire/shapeshift/LICENSE.md | 24 - node_modules/@sapphire/shapeshift/README.md | 934 - .../@sapphire/shapeshift/dist/cjs/index.cjs | 3013 --- .../shapeshift/dist/cjs/index.cjs.map | 1 - .../@sapphire/shapeshift/dist/cjs/index.d.cts | 715 - .../@sapphire/shapeshift/dist/esm/index.d.mts | 715 - .../@sapphire/shapeshift/dist/esm/index.mjs | 2990 --- .../shapeshift/dist/esm/index.mjs.map | 1 - .../shapeshift/dist/iife/index.global.js | 4220 ---- .../shapeshift/dist/iife/index.global.js.map | 1 - .../@sapphire/shapeshift/package.json | 124 - node_modules/@sapphire/snowflake/CHANGELOG.md | 312 - node_modules/@sapphire/snowflake/README.md | 170 - .../@sapphire/snowflake/dist/cjs/index.cjs | 194 - .../snowflake/dist/cjs/index.cjs.map | 1 - .../@sapphire/snowflake/dist/cjs/index.d.cts | 202 - .../@sapphire/snowflake/dist/esm/index.d.mts | 202 - .../@sapphire/snowflake/dist/esm/index.mjs | 187 - .../snowflake/dist/esm/index.mjs.map | 1 - .../snowflake/dist/iife/index.global.js | 199 - .../snowflake/dist/iife/index.global.js.map | 1 - node_modules/@sapphire/snowflake/package.json | 72 - node_modules/@types/node/LICENSE | 21 - node_modules/@types/node/README.md | 15 - node_modules/@types/node/assert.d.ts | 1040 - node_modules/@types/node/assert/strict.d.ts | 8 - node_modules/@types/node/async_hooks.d.ts | 541 - node_modules/@types/node/buffer.d.ts | 2363 --- node_modules/@types/node/child_process.d.ts | 1542 -- node_modules/@types/node/cluster.d.ts | 578 - node_modules/@types/node/console.d.ts | 452 - node_modules/@types/node/constants.d.ts | 19 - node_modules/@types/node/crypto.d.ts | 4522 ---- node_modules/@types/node/dgram.d.ts | 596 - .../@types/node/diagnostics_channel.d.ts | 545 - node_modules/@types/node/dns.d.ts | 853 - node_modules/@types/node/dns/promises.d.ts | 473 - node_modules/@types/node/dom-events.d.ts | 124 - node_modules/@types/node/domain.d.ts | 170 - node_modules/@types/node/events.d.ts | 884 - node_modules/@types/node/fs.d.ts | 4317 ---- node_modules/@types/node/fs/promises.d.ts | 1245 -- node_modules/@types/node/globals.d.ts | 411 - node_modules/@types/node/globals.global.d.ts | 1 - node_modules/@types/node/http.d.ts | 1889 -- node_modules/@types/node/http2.d.ts | 2418 --- node_modules/@types/node/https.d.ts | 550 - node_modules/@types/node/index.d.ts | 89 - node_modules/@types/node/inspector.d.ts | 2746 --- node_modules/@types/node/module.d.ts | 315 - node_modules/@types/node/net.d.ts | 996 - node_modules/@types/node/os.d.ts | 495 - node_modules/@types/node/package.json | 217 - node_modules/@types/node/path.d.ts | 191 - node_modules/@types/node/perf_hooks.d.ts | 645 - node_modules/@types/node/process.d.ts | 1747 -- node_modules/@types/node/punycode.d.ts | 117 - node_modules/@types/node/querystring.d.ts | 153 - node_modules/@types/node/readline.d.ts | 540 - .../@types/node/readline/promises.d.ts | 150 - node_modules/@types/node/repl.d.ts | 430 - node_modules/@types/node/sea.d.ts | 153 - node_modules/@types/node/stream.d.ts | 1703 -- .../@types/node/stream/consumers.d.ts | 12 - node_modules/@types/node/stream/promises.d.ts | 83 - node_modules/@types/node/stream/web.d.ts | 367 - node_modules/@types/node/string_decoder.d.ts | 67 - node_modules/@types/node/test.d.ts | 1470 -- node_modules/@types/node/timers.d.ts | 240 - node_modules/@types/node/timers/promises.d.ts | 97 - node_modules/@types/node/tls.d.ts | 1217 -- node_modules/@types/node/trace_events.d.ts | 197 - node_modules/@types/node/tty.d.ts | 208 - node_modules/@types/node/url.d.ts | 944 - node_modules/@types/node/util.d.ts | 2276 -- node_modules/@types/node/v8.d.ts | 764 - node_modules/@types/node/vm.d.ts | 921 - node_modules/@types/node/wasi.d.ts | 181 - node_modules/@types/node/worker_threads.d.ts | 691 - node_modules/@types/node/zlib.d.ts | 530 - node_modules/@types/ws/LICENSE | 21 - node_modules/@types/ws/README.md | 15 - node_modules/@types/ws/index.d.mts | 21 - node_modules/@types/ws/index.d.ts | 410 - node_modules/@types/ws/package.json | 71 - .../async_event_emitter/CHANGELOG.md | 69 - .../async_event_emitter/LICENSE.md | 24 - .../@vladfrangu/async_event_emitter/README.md | 51 - .../THIRD_PARTY_LICENSE.md | 23 - .../async_event_emitter/dist/index.cjs | 568 - .../async_event_emitter/dist/index.cjs.map | 1 - .../async_event_emitter/dist/index.d.mts | 58 - .../async_event_emitter/dist/index.d.ts | 58 - .../async_event_emitter/dist/index.global.js | 570 - .../dist/index.global.js.map | 1 - .../async_event_emitter/dist/index.mjs | 549 - .../async_event_emitter/dist/index.mjs.map | 1 - .../async_event_emitter/package.json | 111 - node_modules/discord-api-types/LICENSE | 21 - node_modules/discord-api-types/README.md | 105 - .../discord-api-types/gateway/common.d.ts | 9 - .../discord-api-types/gateway/common.d.ts.map | 1 - .../discord-api-types/gateway/common.js | 3 - .../discord-api-types/gateway/common.js.map | 1 - .../discord-api-types/gateway/index.d.ts | 2 - .../discord-api-types/gateway/index.d.ts.map | 1 - .../discord-api-types/gateway/index.js | 20 - .../discord-api-types/gateway/index.js.map | 1 - .../discord-api-types/gateway/index.mjs | 8 - .../discord-api-types/gateway/v10.d.ts | 1730 -- .../discord-api-types/gateway/v10.d.ts.map | 1 - node_modules/discord-api-types/gateway/v10.js | 261 - .../discord-api-types/gateway/v10.js.map | 1 - .../discord-api-types/gateway/v10.mjs | 8 - .../discord-api-types/gateway/v6.d.ts | 658 - .../discord-api-types/gateway/v6.d.ts.map | 1 - node_modules/discord-api-types/gateway/v6.js | 173 - .../discord-api-types/gateway/v6.js.map | 1 - node_modules/discord-api-types/gateway/v6.mjs | 10 - .../discord-api-types/gateway/v8.d.ts | 1575 -- .../discord-api-types/gateway/v8.d.ts.map | 1 - node_modules/discord-api-types/gateway/v8.js | 246 - .../discord-api-types/gateway/v8.js.map | 1 - node_modules/discord-api-types/gateway/v8.mjs | 8 - .../discord-api-types/gateway/v9.d.ts | 1730 -- .../discord-api-types/gateway/v9.d.ts.map | 1 - node_modules/discord-api-types/gateway/v9.js | 260 - .../discord-api-types/gateway/v9.js.map | 1 - node_modules/discord-api-types/gateway/v9.mjs | 8 - node_modules/discord-api-types/globals.d.ts | 92 - .../discord-api-types/globals.d.ts.map | 1 - node_modules/discord-api-types/globals.js | 94 - node_modules/discord-api-types/globals.js.map | 1 - node_modules/discord-api-types/globals.mjs | 4 - node_modules/discord-api-types/package.json | 204 - .../discord-api-types/payloads/common.d.ts | 326 - .../payloads/common.d.ts.map | 1 - .../discord-api-types/payloads/common.js | 293 - .../discord-api-types/payloads/common.js.map | 1 - .../discord-api-types/payloads/index.d.ts | 2 - .../discord-api-types/payloads/index.d.ts.map | 1 - .../discord-api-types/payloads/index.js | 20 - .../discord-api-types/payloads/index.js.map | 1 - .../discord-api-types/payloads/index.mjs | 76 - .../_chatInput/attachment.d.ts | 6 - .../_chatInput/attachment.d.ts.map | 1 - .../_chatInput/attachment.js | 3 - .../_chatInput/attachment.js.map | 1 - .../_applicationCommands/_chatInput/base.d.ts | 23 - .../_chatInput/base.d.ts.map | 1 - .../_applicationCommands/_chatInput/base.js | 3 - .../_chatInput/base.js.map | 1 - .../_chatInput/boolean.d.ts | 5 - .../_chatInput/boolean.d.ts.map | 1 - .../_chatInput/boolean.js | 3 - .../_chatInput/boolean.js.map | 1 - .../_chatInput/channel.d.ts | 9 - .../_chatInput/channel.d.ts.map | 1 - .../_chatInput/channel.js | 3 - .../_chatInput/channel.js.map | 1 - .../_chatInput/integer.d.ts | 18 - .../_chatInput/integer.d.ts.map | 1 - .../_chatInput/integer.js | 3 - .../_chatInput/integer.js.map | 1 - .../_chatInput/mentionable.d.ts | 6 - .../_chatInput/mentionable.d.ts.map | 1 - .../_chatInput/mentionable.js | 3 - .../_chatInput/mentionable.js.map | 1 - .../_chatInput/number.d.ts | 18 - .../_chatInput/number.d.ts.map | 1 - .../_applicationCommands/_chatInput/number.js | 3 - .../_chatInput/number.js.map | 1 - .../_applicationCommands/_chatInput/role.d.ts | 6 - .../_chatInput/role.d.ts.map | 1 - .../_applicationCommands/_chatInput/role.js | 3 - .../_chatInput/role.js.map | 1 - .../_chatInput/shared.d.ts | 26 - .../_chatInput/shared.d.ts.map | 1 - .../_applicationCommands/_chatInput/shared.js | 21 - .../_chatInput/shared.js.map | 1 - .../_chatInput/string.d.ts | 18 - .../_chatInput/string.d.ts.map | 1 - .../_applicationCommands/_chatInput/string.js | 3 - .../_chatInput/string.js.map | 1 - .../_chatInput/subcommand.d.ts | 12 - .../_chatInput/subcommand.d.ts.map | 1 - .../_chatInput/subcommand.js | 3 - .../_chatInput/subcommand.js.map | 1 - .../_chatInput/subcommandGroup.d.ts | 12 - .../_chatInput/subcommandGroup.d.ts.map | 1 - .../_chatInput/subcommandGroup.js | 3 - .../_chatInput/subcommandGroup.js.map | 1 - .../_applicationCommands/_chatInput/user.d.ts | 6 - .../_chatInput/user.d.ts.map | 1 - .../_applicationCommands/_chatInput/user.js | 3 - .../_chatInput/user.js.map | 1 - .../_applicationCommands/chatInput.d.ts | 61 - .../_applicationCommands/chatInput.d.ts.map | 1 - .../_applicationCommands/chatInput.js | 30 - .../_applicationCommands/chatInput.js.map | 1 - .../_applicationCommands/contextMenu.d.ts | 66 - .../_applicationCommands/contextMenu.d.ts.map | 1 - .../_applicationCommands/contextMenu.js | 3 - .../_applicationCommands/contextMenu.js.map | 1 - .../_applicationCommands/internals.d.ts | 9 - .../_applicationCommands/internals.d.ts.map | 1 - .../_applicationCommands/internals.js | 3 - .../_applicationCommands/internals.js.map | 1 - .../_applicationCommands/permissions.d.ts | 55 - .../_applicationCommands/permissions.d.ts.map | 1 - .../_applicationCommands/permissions.js | 21 - .../_applicationCommands/permissions.js.map | 1 - .../_interactions/applicationCommands.d.ts | 111 - .../applicationCommands.d.ts.map | 1 - .../v10/_interactions/applicationCommands.js | 30 - .../_interactions/applicationCommands.js.map | 1 - .../v10/_interactions/autocomplete.d.ts | 11 - .../v10/_interactions/autocomplete.d.ts.map | 1 - .../v10/_interactions/autocomplete.js | 3 - .../v10/_interactions/autocomplete.js.map | 1 - .../payloads/v10/_interactions/base.d.ts | 152 - .../payloads/v10/_interactions/base.d.ts.map | 1 - .../payloads/v10/_interactions/base.js | 3 - .../payloads/v10/_interactions/base.js.map | 1 - .../v10/_interactions/messageComponents.d.ts | 42 - .../_interactions/messageComponents.d.ts.map | 1 - .../v10/_interactions/messageComponents.js | 3 - .../_interactions/messageComponents.js.map | 1 - .../v10/_interactions/modalSubmit.d.ts | 36 - .../v10/_interactions/modalSubmit.d.ts.map | 1 - .../payloads/v10/_interactions/modalSubmit.js | 3 - .../v10/_interactions/modalSubmit.js.map | 1 - .../payloads/v10/_interactions/ping.d.ts | 4 - .../payloads/v10/_interactions/ping.d.ts.map | 1 - .../payloads/v10/_interactions/ping.js | 3 - .../payloads/v10/_interactions/ping.js.map | 1 - .../payloads/v10/_interactions/responses.d.ts | 111 - .../v10/_interactions/responses.d.ts.map | 1 - .../payloads/v10/_interactions/responses.js | 53 - .../v10/_interactions/responses.js.map | 1 - .../payloads/v10/application.d.ts | 276 - .../payloads/v10/application.d.ts.map | 1 - .../payloads/v10/application.js | 118 - .../payloads/v10/application.js.map | 1 - .../payloads/v10/auditLog.d.ts | 643 - .../payloads/v10/auditLog.d.ts.map | 1 - .../payloads/v10/auditLog.js | 79 - .../payloads/v10/auditLog.js.map | 1 - .../payloads/v10/autoModeration.d.ts | 208 - .../payloads/v10/autoModeration.d.ts.map | 1 - .../payloads/v10/autoModeration.js | 76 - .../payloads/v10/autoModeration.js.map | 1 - .../payloads/v10/channel.d.ts | 1739 -- .../payloads/v10/channel.d.ts.map | 1 - .../discord-api-types/payloads/v10/channel.js | 464 - .../payloads/v10/channel.js.map | 1 - .../discord-api-types/payloads/v10/emoji.d.ts | 49 - .../payloads/v10/emoji.d.ts.map | 1 - .../discord-api-types/payloads/v10/emoji.js | 6 - .../payloads/v10/emoji.js.map | 1 - .../payloads/v10/gateway.d.ts | 374 - .../payloads/v10/gateway.d.ts.map | 1 - .../discord-api-types/payloads/v10/gateway.js | 83 - .../payloads/v10/gateway.js.map | 1 - .../discord-api-types/payloads/v10/guild.d.ts | 1086 - .../payloads/v10/guild.d.ts.map | 1 - .../discord-api-types/payloads/v10/guild.js | 363 - .../payloads/v10/guild.js.map | 1 - .../payloads/v10/guildScheduledEvent.d.ts | 139 - .../payloads/v10/guildScheduledEvent.d.ts.map | 1 - .../payloads/v10/guildScheduledEvent.js | 33 - .../payloads/v10/guildScheduledEvent.js.map | 1 - .../discord-api-types/payloads/v10/index.d.ts | 23 - .../payloads/v10/index.d.ts.map | 1 - .../discord-api-types/payloads/v10/index.js | 39 - .../payloads/v10/index.js.map | 1 - .../discord-api-types/payloads/v10/index.mjs | 76 - .../payloads/v10/interactions.d.ts | 25 - .../payloads/v10/interactions.d.ts.map | 1 - .../payloads/v10/interactions.js | 24 - .../payloads/v10/interactions.js.map | 1 - .../payloads/v10/invite.d.ts | 122 - .../payloads/v10/invite.d.ts.map | 1 - .../discord-api-types/payloads/v10/invite.js | 24 - .../payloads/v10/invite.js.map | 1 - .../payloads/v10/monetization.d.ts | 151 - .../payloads/v10/monetization.d.ts.map | 1 - .../payloads/v10/monetization.js | 80 - .../payloads/v10/monetization.js.map | 1 - .../payloads/v10/oauth2.d.ts | 132 - .../payloads/v10/oauth2.d.ts.map | 1 - .../discord-api-types/payloads/v10/oauth2.js | 136 - .../payloads/v10/oauth2.js.map | 1 - .../payloads/v10/permissions.d.ts | 98 - .../payloads/v10/permissions.d.ts.map | 1 - .../payloads/v10/permissions.js | 17 - .../payloads/v10/permissions.js.map | 1 - .../discord-api-types/payloads/v10/poll.d.ts | 101 - .../payloads/v10/poll.d.ts.map | 1 - .../discord-api-types/payloads/v10/poll.js | 17 - .../payloads/v10/poll.js.map | 1 - .../payloads/v10/stageInstance.d.ts | 78 - .../payloads/v10/stageInstance.d.ts.map | 1 - .../payloads/v10/stageInstance.js | 20 - .../payloads/v10/stageInstance.js.map | 1 - .../payloads/v10/sticker.d.ts | 124 - .../payloads/v10/sticker.d.ts.map | 1 - .../discord-api-types/payloads/v10/sticker.js | 31 - .../payloads/v10/sticker.js.map | 1 - .../discord-api-types/payloads/v10/teams.d.ts | 79 - .../payloads/v10/teams.d.ts.map | 1 - .../discord-api-types/payloads/v10/teams.js | 24 - .../payloads/v10/teams.js.map | 1 - .../payloads/v10/template.d.ts | 63 - .../payloads/v10/template.d.ts.map | 1 - .../payloads/v10/template.js | 6 - .../payloads/v10/template.js.map | 1 - .../discord-api-types/payloads/v10/user.d.ts | 315 - .../payloads/v10/user.d.ts.map | 1 - .../discord-api-types/payloads/v10/user.js | 167 - .../payloads/v10/user.js.map | 1 - .../discord-api-types/payloads/v10/voice.d.ts | 90 - .../payloads/v10/voice.d.ts.map | 1 - .../discord-api-types/payloads/v10/voice.js | 6 - .../payloads/v10/voice.js.map | 1 - .../payloads/v10/webhook.d.ts | 77 - .../payloads/v10/webhook.d.ts.map | 1 - .../discord-api-types/payloads/v10/webhook.js | 22 - .../payloads/v10/webhook.js.map | 1 - .../payloads/v6/auditLog.d.ts | 469 - .../payloads/v6/auditLog.d.ts.map | 1 - .../discord-api-types/payloads/v6/auditLog.js | 58 - .../payloads/v6/auditLog.js.map | 1 - .../payloads/v6/channel.d.ts | 343 - .../payloads/v6/channel.d.ts.map | 1 - .../discord-api-types/payloads/v6/channel.js | 95 - .../payloads/v6/channel.js.map | 1 - .../discord-api-types/payloads/v6/emoji.d.ts | 27 - .../payloads/v6/emoji.d.ts.map | 1 - .../discord-api-types/payloads/v6/emoji.js | 6 - .../payloads/v6/emoji.js.map | 1 - .../payloads/v6/gateway.d.ts | 149 - .../payloads/v6/gateway.d.ts.map | 1 - .../discord-api-types/payloads/v6/gateway.js | 45 - .../payloads/v6/gateway.js.map | 1 - .../discord-api-types/payloads/v6/guild.d.ts | 310 - .../payloads/v6/guild.d.ts.map | 1 - .../discord-api-types/payloads/v6/guild.js | 118 - .../payloads/v6/guild.js.map | 1 - .../discord-api-types/payloads/v6/index.d.ts | 13 - .../payloads/v6/index.d.ts.map | 1 - .../discord-api-types/payloads/v6/index.js | 29 - .../payloads/v6/index.js.map | 1 - .../discord-api-types/payloads/v6/index.mjs | 30 - .../discord-api-types/payloads/v6/invite.d.ts | 42 - .../payloads/v6/invite.d.ts.map | 1 - .../discord-api-types/payloads/v6/invite.js | 16 - .../payloads/v6/invite.js.map | 1 - .../discord-api-types/payloads/v6/oauth2.d.ts | 28 - .../payloads/v6/oauth2.d.ts.map | 1 - .../discord-api-types/payloads/v6/oauth2.js | 6 - .../payloads/v6/oauth2.js.map | 1 - .../payloads/v6/permissions.d.ts | 75 - .../payloads/v6/permissions.d.ts.map | 1 - .../payloads/v6/permissions.js | 56 - .../payloads/v6/permissions.js.map | 1 - .../discord-api-types/payloads/v6/teams.d.ts | 36 - .../payloads/v6/teams.d.ts.map | 1 - .../discord-api-types/payloads/v6/teams.js | 17 - .../payloads/v6/teams.js.map | 1 - .../discord-api-types/payloads/v6/user.d.ts | 79 - .../payloads/v6/user.d.ts.map | 1 - .../discord-api-types/payloads/v6/user.js | 48 - .../discord-api-types/payloads/v6/user.js.map | 1 - .../discord-api-types/payloads/v6/voice.d.ts | 37 - .../payloads/v6/voice.d.ts.map | 1 - .../discord-api-types/payloads/v6/voice.js | 6 - .../payloads/v6/voice.js.map | 1 - .../payloads/v6/webhook.d.ts | 32 - .../payloads/v6/webhook.d.ts.map | 1 - .../discord-api-types/payloads/v6/webhook.js | 15 - .../payloads/v6/webhook.js.map | 1 - .../_chatInput/attachment.d.ts | 12 - .../_chatInput/attachment.d.ts.map | 1 - .../_chatInput/attachment.js | 3 - .../_chatInput/attachment.js.map | 1 - .../_applicationCommands/_chatInput/base.d.ts | 28 - .../_chatInput/base.d.ts.map | 1 - .../_applicationCommands/_chatInput/base.js | 3 - .../_chatInput/base.js.map | 1 - .../_chatInput/boolean.d.ts | 11 - .../_chatInput/boolean.d.ts.map | 1 - .../_chatInput/boolean.js | 3 - .../_chatInput/boolean.js.map | 1 - .../_chatInput/channel.d.ts | 15 - .../_chatInput/channel.d.ts.map | 1 - .../_chatInput/channel.js | 3 - .../_chatInput/channel.js.map | 1 - .../_chatInput/integer.d.ts | 27 - .../_chatInput/integer.d.ts.map | 1 - .../_chatInput/integer.js | 3 - .../_chatInput/integer.js.map | 1 - .../_chatInput/mentionable.d.ts | 12 - .../_chatInput/mentionable.d.ts.map | 1 - .../_chatInput/mentionable.js | 3 - .../_chatInput/mentionable.js.map | 1 - .../_chatInput/number.d.ts | 27 - .../_chatInput/number.d.ts.map | 1 - .../_applicationCommands/_chatInput/number.js | 3 - .../_chatInput/number.js.map | 1 - .../_applicationCommands/_chatInput/role.d.ts | 12 - .../_chatInput/role.d.ts.map | 1 - .../_applicationCommands/_chatInput/role.js | 3 - .../_chatInput/role.js.map | 1 - .../_chatInput/shared.d.ts | 28 - .../_chatInput/shared.d.ts.map | 1 - .../_applicationCommands/_chatInput/shared.js | 23 - .../_chatInput/shared.js.map | 1 - .../_chatInput/string.d.ts | 13 - .../_chatInput/string.d.ts.map | 1 - .../_applicationCommands/_chatInput/string.js | 3 - .../_chatInput/string.js.map | 1 - .../_chatInput/subcommand.d.ts | 18 - .../_chatInput/subcommand.d.ts.map | 1 - .../_chatInput/subcommand.js | 3 - .../_chatInput/subcommand.js.map | 1 - .../_chatInput/subcommandGroup.d.ts | 18 - .../_chatInput/subcommandGroup.d.ts.map | 1 - .../_chatInput/subcommandGroup.js | 3 - .../_chatInput/subcommandGroup.js.map | 1 - .../_applicationCommands/_chatInput/user.d.ts | 12 - .../_chatInput/user.d.ts.map | 1 - .../_applicationCommands/_chatInput/user.js | 3 - .../_chatInput/user.js.map | 1 - .../_applicationCommands/chatInput.d.ts | 90 - .../_applicationCommands/chatInput.d.ts.map | 1 - .../_applicationCommands/chatInput.js | 29 - .../_applicationCommands/chatInput.js.map | 1 - .../_applicationCommands/contextMenu.d.ts | 102 - .../_applicationCommands/contextMenu.d.ts.map | 1 - .../_applicationCommands/contextMenu.js | 3 - .../_applicationCommands/contextMenu.js.map | 1 - .../_applicationCommands/internals.d.ts | 11 - .../_applicationCommands/internals.d.ts.map | 1 - .../_applicationCommands/internals.js | 3 - .../_applicationCommands/internals.js.map | 1 - .../_applicationCommands/permissions.d.ts | 53 - .../_applicationCommands/permissions.d.ts.map | 1 - .../_applicationCommands/permissions.js | 14 - .../_applicationCommands/permissions.js.map | 1 - .../v8/_interactions/applicationCommands.d.ts | 112 - .../applicationCommands.d.ts.map | 1 - .../v8/_interactions/applicationCommands.js | 32 - .../_interactions/applicationCommands.js.map | 1 - .../v8/_interactions/autocomplete.d.ts | 18 - .../v8/_interactions/autocomplete.d.ts.map | 1 - .../payloads/v8/_interactions/autocomplete.js | 3 - .../v8/_interactions/autocomplete.js.map | 1 - .../payloads/v8/_interactions/base.d.ts | 116 - .../payloads/v8/_interactions/base.d.ts.map | 1 - .../payloads/v8/_interactions/base.js | 3 - .../payloads/v8/_interactions/base.js.map | 1 - .../v8/_interactions/messageComponents.d.ts | 43 - .../_interactions/messageComponents.d.ts.map | 1 - .../v8/_interactions/messageComponents.js | 3 - .../v8/_interactions/messageComponents.js.map | 1 - .../v8/_interactions/modalSubmit.d.ts | 48 - .../v8/_interactions/modalSubmit.d.ts.map | 1 - .../payloads/v8/_interactions/modalSubmit.js | 3 - .../v8/_interactions/modalSubmit.js.map | 1 - .../payloads/v8/_interactions/ping.d.ts | 7 - .../payloads/v8/_interactions/ping.d.ts.map | 1 - .../payloads/v8/_interactions/ping.js | 3 - .../payloads/v8/_interactions/ping.js.map | 1 - .../payloads/v8/_interactions/responses.d.ts | 138 - .../v8/_interactions/responses.d.ts.map | 1 - .../payloads/v8/_interactions/responses.js | 53 - .../v8/_interactions/responses.js.map | 1 - .../payloads/v8/application.d.ts | 134 - .../payloads/v8/application.d.ts.map | 1 - .../payloads/v8/application.js | 28 - .../payloads/v8/application.js.map | 1 - .../payloads/v8/auditLog.d.ts | 637 - .../payloads/v8/auditLog.d.ts.map | 1 - .../discord-api-types/payloads/v8/auditLog.js | 67 - .../payloads/v8/auditLog.js.map | 1 - .../payloads/v8/channel.d.ts | 1273 -- .../payloads/v8/channel.d.ts.map | 1 - .../discord-api-types/payloads/v8/channel.js | 254 - .../payloads/v8/channel.js.map | 1 - .../discord-api-types/payloads/v8/emoji.d.ts | 53 - .../payloads/v8/emoji.d.ts.map | 1 - .../discord-api-types/payloads/v8/emoji.js | 6 - .../payloads/v8/emoji.js.map | 1 - .../payloads/v8/gateway.d.ts | 332 - .../payloads/v8/gateway.d.ts.map | 1 - .../discord-api-types/payloads/v8/gateway.js | 79 - .../payloads/v8/gateway.js.map | 1 - .../discord-api-types/payloads/v8/guild.d.ts | 1001 - .../payloads/v8/guild.d.ts.map | 1 - .../discord-api-types/payloads/v8/guild.js | 264 - .../payloads/v8/guild.js.map | 1 - .../payloads/v8/guildScheduledEvent.d.ts | 163 - .../payloads/v8/guildScheduledEvent.d.ts.map | 1 - .../payloads/v8/guildScheduledEvent.js | 39 - .../payloads/v8/guildScheduledEvent.js.map | 1 - .../discord-api-types/payloads/v8/index.d.ts | 20 - .../payloads/v8/index.d.ts.map | 1 - .../discord-api-types/payloads/v8/index.js | 36 - .../payloads/v8/index.js.map | 1 - .../discord-api-types/payloads/v8/index.mjs | 51 - .../payloads/v8/interactions.d.ts | 31 - .../payloads/v8/interactions.d.ts.map | 1 - .../payloads/v8/interactions.js | 24 - .../payloads/v8/interactions.js.map | 1 - .../discord-api-types/payloads/v8/invite.d.ts | 114 - .../payloads/v8/invite.d.ts.map | 1 - .../discord-api-types/payloads/v8/invite.js | 17 - .../payloads/v8/invite.js.map | 1 - .../discord-api-types/payloads/v8/oauth2.d.ts | 117 - .../payloads/v8/oauth2.d.ts.map | 1 - .../discord-api-types/payloads/v8/oauth2.js | 121 - .../payloads/v8/oauth2.js.map | 1 - .../payloads/v8/permissions.d.ts | 77 - .../payloads/v8/permissions.d.ts.map | 1 - .../payloads/v8/permissions.js | 6 - .../payloads/v8/permissions.js.map | 1 - .../payloads/v8/stageInstance.d.ts | 76 - .../payloads/v8/stageInstance.d.ts.map | 1 - .../payloads/v8/stageInstance.js | 20 - .../payloads/v8/stageInstance.js.map | 1 - .../payloads/v8/sticker.d.ts | 133 - .../payloads/v8/sticker.d.ts.map | 1 - .../discord-api-types/payloads/v8/sticker.js | 34 - .../payloads/v8/sticker.js.map | 1 - .../discord-api-types/payloads/v8/teams.d.ts | 69 - .../payloads/v8/teams.d.ts.map | 1 - .../discord-api-types/payloads/v8/teams.js | 17 - .../payloads/v8/teams.js.map | 1 - .../payloads/v8/template.d.ts | 68 - .../payloads/v8/template.d.ts.map | 1 - .../discord-api-types/payloads/v8/template.js | 6 - .../payloads/v8/template.js.map | 1 - .../discord-api-types/payloads/v8/user.d.ts | 228 - .../payloads/v8/user.d.ts.map | 1 - .../discord-api-types/payloads/v8/user.js | 108 - .../discord-api-types/payloads/v8/user.js.map | 1 - .../discord-api-types/payloads/v8/voice.d.ts | 94 - .../payloads/v8/voice.d.ts.map | 1 - .../discord-api-types/payloads/v8/voice.js | 6 - .../payloads/v8/voice.js.map | 1 - .../payloads/v8/webhook.d.ts | 82 - .../payloads/v8/webhook.d.ts.map | 1 - .../discord-api-types/payloads/v8/webhook.js | 25 - .../payloads/v8/webhook.js.map | 1 - .../_chatInput/attachment.d.ts | 6 - .../_chatInput/attachment.d.ts.map | 1 - .../_chatInput/attachment.js | 3 - .../_chatInput/attachment.js.map | 1 - .../_applicationCommands/_chatInput/base.d.ts | 23 - .../_chatInput/base.d.ts.map | 1 - .../_applicationCommands/_chatInput/base.js | 3 - .../_chatInput/base.js.map | 1 - .../_chatInput/boolean.d.ts | 5 - .../_chatInput/boolean.d.ts.map | 1 - .../_chatInput/boolean.js | 3 - .../_chatInput/boolean.js.map | 1 - .../_chatInput/channel.d.ts | 9 - .../_chatInput/channel.d.ts.map | 1 - .../_chatInput/channel.js | 3 - .../_chatInput/channel.js.map | 1 - .../_chatInput/integer.d.ts | 18 - .../_chatInput/integer.d.ts.map | 1 - .../_chatInput/integer.js | 3 - .../_chatInput/integer.js.map | 1 - .../_chatInput/mentionable.d.ts | 6 - .../_chatInput/mentionable.d.ts.map | 1 - .../_chatInput/mentionable.js | 3 - .../_chatInput/mentionable.js.map | 1 - .../_chatInput/number.d.ts | 18 - .../_chatInput/number.d.ts.map | 1 - .../_applicationCommands/_chatInput/number.js | 3 - .../_chatInput/number.js.map | 1 - .../_applicationCommands/_chatInput/role.d.ts | 6 - .../_chatInput/role.d.ts.map | 1 - .../_applicationCommands/_chatInput/role.js | 3 - .../_chatInput/role.js.map | 1 - .../_chatInput/shared.d.ts | 26 - .../_chatInput/shared.d.ts.map | 1 - .../_applicationCommands/_chatInput/shared.js | 21 - .../_chatInput/shared.js.map | 1 - .../_chatInput/string.d.ts | 18 - .../_chatInput/string.d.ts.map | 1 - .../_applicationCommands/_chatInput/string.js | 3 - .../_chatInput/string.js.map | 1 - .../_chatInput/subcommand.d.ts | 12 - .../_chatInput/subcommand.d.ts.map | 1 - .../_chatInput/subcommand.js | 3 - .../_chatInput/subcommand.js.map | 1 - .../_chatInput/subcommandGroup.d.ts | 12 - .../_chatInput/subcommandGroup.d.ts.map | 1 - .../_chatInput/subcommandGroup.js | 3 - .../_chatInput/subcommandGroup.js.map | 1 - .../_applicationCommands/_chatInput/user.d.ts | 6 - .../_chatInput/user.d.ts.map | 1 - .../_applicationCommands/_chatInput/user.js | 3 - .../_chatInput/user.js.map | 1 - .../_applicationCommands/chatInput.d.ts | 61 - .../_applicationCommands/chatInput.d.ts.map | 1 - .../_applicationCommands/chatInput.js | 30 - .../_applicationCommands/chatInput.js.map | 1 - .../_applicationCommands/contextMenu.d.ts | 66 - .../_applicationCommands/contextMenu.d.ts.map | 1 - .../_applicationCommands/contextMenu.js | 3 - .../_applicationCommands/contextMenu.js.map | 1 - .../_applicationCommands/internals.d.ts | 9 - .../_applicationCommands/internals.d.ts.map | 1 - .../_applicationCommands/internals.js | 3 - .../_applicationCommands/internals.js.map | 1 - .../_applicationCommands/permissions.d.ts | 55 - .../_applicationCommands/permissions.d.ts.map | 1 - .../_applicationCommands/permissions.js | 21 - .../_applicationCommands/permissions.js.map | 1 - .../v9/_interactions/applicationCommands.d.ts | 111 - .../applicationCommands.d.ts.map | 1 - .../v9/_interactions/applicationCommands.js | 30 - .../_interactions/applicationCommands.js.map | 1 - .../v9/_interactions/autocomplete.d.ts | 11 - .../v9/_interactions/autocomplete.d.ts.map | 1 - .../payloads/v9/_interactions/autocomplete.js | 3 - .../v9/_interactions/autocomplete.js.map | 1 - .../payloads/v9/_interactions/base.d.ts | 152 - .../payloads/v9/_interactions/base.d.ts.map | 1 - .../payloads/v9/_interactions/base.js | 3 - .../payloads/v9/_interactions/base.js.map | 1 - .../v9/_interactions/messageComponents.d.ts | 42 - .../_interactions/messageComponents.d.ts.map | 1 - .../v9/_interactions/messageComponents.js | 3 - .../v9/_interactions/messageComponents.js.map | 1 - .../v9/_interactions/modalSubmit.d.ts | 36 - .../v9/_interactions/modalSubmit.d.ts.map | 1 - .../payloads/v9/_interactions/modalSubmit.js | 3 - .../v9/_interactions/modalSubmit.js.map | 1 - .../payloads/v9/_interactions/ping.d.ts | 4 - .../payloads/v9/_interactions/ping.d.ts.map | 1 - .../payloads/v9/_interactions/ping.js | 3 - .../payloads/v9/_interactions/ping.js.map | 1 - .../payloads/v9/_interactions/responses.d.ts | 111 - .../v9/_interactions/responses.d.ts.map | 1 - .../payloads/v9/_interactions/responses.js | 53 - .../v9/_interactions/responses.js.map | 1 - .../payloads/v9/application.d.ts | 276 - .../payloads/v9/application.d.ts.map | 1 - .../payloads/v9/application.js | 118 - .../payloads/v9/application.js.map | 1 - .../payloads/v9/auditLog.d.ts | 643 - .../payloads/v9/auditLog.d.ts.map | 1 - .../discord-api-types/payloads/v9/auditLog.js | 79 - .../payloads/v9/auditLog.js.map | 1 - .../payloads/v9/autoModeration.d.ts | 208 - .../payloads/v9/autoModeration.d.ts.map | 1 - .../payloads/v9/autoModeration.js | 76 - .../payloads/v9/autoModeration.js.map | 1 - .../payloads/v9/channel.d.ts | 1710 -- .../payloads/v9/channel.d.ts.map | 1 - .../discord-api-types/payloads/v9/channel.js | 464 - .../payloads/v9/channel.js.map | 1 - .../discord-api-types/payloads/v9/emoji.d.ts | 49 - .../payloads/v9/emoji.d.ts.map | 1 - .../discord-api-types/payloads/v9/emoji.js | 6 - .../payloads/v9/emoji.js.map | 1 - .../payloads/v9/gateway.d.ts | 362 - .../payloads/v9/gateway.d.ts.map | 1 - .../discord-api-types/payloads/v9/gateway.js | 83 - .../payloads/v9/gateway.js.map | 1 - .../discord-api-types/payloads/v9/guild.d.ts | 1078 - .../payloads/v9/guild.d.ts.map | 1 - .../discord-api-types/payloads/v9/guild.js | 355 - .../payloads/v9/guild.js.map | 1 - .../payloads/v9/guildScheduledEvent.d.ts | 139 - .../payloads/v9/guildScheduledEvent.d.ts.map | 1 - .../payloads/v9/guildScheduledEvent.js | 33 - .../payloads/v9/guildScheduledEvent.js.map | 1 - .../discord-api-types/payloads/v9/index.d.ts | 23 - .../payloads/v9/index.d.ts.map | 1 - .../discord-api-types/payloads/v9/index.js | 39 - .../payloads/v9/index.js.map | 1 - .../discord-api-types/payloads/v9/index.mjs | 76 - .../payloads/v9/interactions.d.ts | 25 - .../payloads/v9/interactions.d.ts.map | 1 - .../payloads/v9/interactions.js | 24 - .../payloads/v9/interactions.js.map | 1 - .../discord-api-types/payloads/v9/invite.d.ts | 122 - .../payloads/v9/invite.d.ts.map | 1 - .../discord-api-types/payloads/v9/invite.js | 24 - .../payloads/v9/invite.js.map | 1 - .../payloads/v9/monetization.d.ts | 151 - .../payloads/v9/monetization.d.ts.map | 1 - .../payloads/v9/monetization.js | 80 - .../payloads/v9/monetization.js.map | 1 - .../discord-api-types/payloads/v9/oauth2.d.ts | 132 - .../payloads/v9/oauth2.d.ts.map | 1 - .../discord-api-types/payloads/v9/oauth2.js | 136 - .../payloads/v9/oauth2.js.map | 1 - .../payloads/v9/permissions.d.ts | 98 - .../payloads/v9/permissions.d.ts.map | 1 - .../payloads/v9/permissions.js | 17 - .../payloads/v9/permissions.js.map | 1 - .../discord-api-types/payloads/v9/poll.d.ts | 101 - .../payloads/v9/poll.d.ts.map | 1 - .../discord-api-types/payloads/v9/poll.js | 17 - .../discord-api-types/payloads/v9/poll.js.map | 1 - .../payloads/v9/stageInstance.d.ts | 80 - .../payloads/v9/stageInstance.d.ts.map | 1 - .../payloads/v9/stageInstance.js | 20 - .../payloads/v9/stageInstance.js.map | 1 - .../payloads/v9/sticker.d.ts | 124 - .../payloads/v9/sticker.d.ts.map | 1 - .../discord-api-types/payloads/v9/sticker.js | 31 - .../payloads/v9/sticker.js.map | 1 - .../discord-api-types/payloads/v9/teams.d.ts | 79 - .../payloads/v9/teams.d.ts.map | 1 - .../discord-api-types/payloads/v9/teams.js | 24 - .../payloads/v9/teams.js.map | 1 - .../payloads/v9/template.d.ts | 63 - .../payloads/v9/template.d.ts.map | 1 - .../discord-api-types/payloads/v9/template.js | 6 - .../payloads/v9/template.js.map | 1 - .../discord-api-types/payloads/v9/user.d.ts | 315 - .../payloads/v9/user.d.ts.map | 1 - .../discord-api-types/payloads/v9/user.js | 167 - .../discord-api-types/payloads/v9/user.js.map | 1 - .../discord-api-types/payloads/v9/voice.d.ts | 90 - .../payloads/v9/voice.d.ts.map | 1 - .../discord-api-types/payloads/v9/voice.js | 6 - .../payloads/v9/voice.js.map | 1 - .../payloads/v9/webhook.d.ts | 77 - .../payloads/v9/webhook.d.ts.map | 1 - .../discord-api-types/payloads/v9/webhook.js | 22 - .../payloads/v9/webhook.js.map | 1 - .../discord-api-types/rest/common.d.ts | 255 - .../discord-api-types/rest/common.d.ts.map | 1 - node_modules/discord-api-types/rest/common.js | 259 - .../discord-api-types/rest/common.js.map | 1 - .../discord-api-types/rest/index.d.ts | 2 - .../discord-api-types/rest/index.d.ts.map | 1 - node_modules/discord-api-types/rest/index.js | 20 - .../discord-api-types/rest/index.js.map | 1 - node_modules/discord-api-types/rest/index.mjs | 13 - .../rest/v10/application.d.ts | 27 - .../rest/v10/application.d.ts.map | 1 - .../discord-api-types/rest/v10/application.js | 3 - .../rest/v10/application.js.map | 1 - .../discord-api-types/rest/v10/auditLog.d.ts | 31 - .../rest/v10/auditLog.d.ts.map | 1 - .../discord-api-types/rest/v10/auditLog.js | 3 - .../rest/v10/auditLog.js.map | 1 - .../rest/v10/autoModeration.d.ts | 68 - .../rest/v10/autoModeration.d.ts.map | 1 - .../rest/v10/autoModeration.js | 3 - .../rest/v10/autoModeration.js.map | 1 - .../discord-api-types/rest/v10/channel.d.ts | 702 - .../rest/v10/channel.d.ts.map | 1 - .../discord-api-types/rest/v10/channel.js | 3 - .../discord-api-types/rest/v10/channel.js.map | 1 - .../discord-api-types/rest/v10/emoji.d.ts | 55 - .../discord-api-types/rest/v10/emoji.d.ts.map | 1 - .../discord-api-types/rest/v10/emoji.js | 3 - .../discord-api-types/rest/v10/emoji.js.map | 1 - .../discord-api-types/rest/v10/gateway.d.ts | 10 - .../rest/v10/gateway.d.ts.map | 1 - .../discord-api-types/rest/v10/gateway.js | 3 - .../discord-api-types/rest/v10/gateway.js.map | 1 - .../discord-api-types/rest/v10/guild.d.ts | 862 - .../discord-api-types/rest/v10/guild.d.ts.map | 1 - .../discord-api-types/rest/v10/guild.js | 3 - .../discord-api-types/rest/v10/guild.js.map | 1 - .../rest/v10/guildScheduledEvent.d.ts | 127 - .../rest/v10/guildScheduledEvent.d.ts.map | 1 - .../rest/v10/guildScheduledEvent.js | 3 - .../rest/v10/guildScheduledEvent.js.map | 1 - .../discord-api-types/rest/v10/index.d.ts | 862 - .../discord-api-types/rest/v10/index.d.ts.map | 1 - .../discord-api-types/rest/v10/index.js | 1112 - .../discord-api-types/rest/v10/index.js.map | 1 - .../discord-api-types/rest/v10/index.mjs | 13 - .../rest/v10/interactions.d.ts | 195 - .../rest/v10/interactions.d.ts.map | 1 - .../rest/v10/interactions.js | 3 - .../rest/v10/interactions.js.map | 1 - .../discord-api-types/rest/v10/invite.d.ts | 25 - .../rest/v10/invite.d.ts.map | 1 - .../discord-api-types/rest/v10/invite.js | 3 - .../discord-api-types/rest/v10/invite.js.map | 1 - .../rest/v10/monetization.d.ts | 83 - .../rest/v10/monetization.d.ts.map | 1 - .../rest/v10/monetization.js | 12 - .../rest/v10/monetization.js.map | 1 - .../discord-api-types/rest/v10/oauth2.d.ts | 173 - .../rest/v10/oauth2.d.ts.map | 1 - .../discord-api-types/rest/v10/oauth2.js | 3 - .../discord-api-types/rest/v10/oauth2.js.map | 1 - .../discord-api-types/rest/v10/poll.d.ts | 44 - .../discord-api-types/rest/v10/poll.d.ts.map | 1 - .../discord-api-types/rest/v10/poll.js | 3 - .../discord-api-types/rest/v10/poll.js.map | 1 - .../rest/v10/stageInstance.d.ts | 59 - .../rest/v10/stageInstance.d.ts.map | 1 - .../rest/v10/stageInstance.js | 3 - .../rest/v10/stageInstance.js.map | 1 - .../discord-api-types/rest/v10/sticker.d.ts | 78 - .../rest/v10/sticker.d.ts.map | 1 - .../discord-api-types/rest/v10/sticker.js | 3 - .../discord-api-types/rest/v10/sticker.js.map | 1 - .../discord-api-types/rest/v10/template.d.ts | 63 - .../rest/v10/template.d.ts.map | 1 - .../discord-api-types/rest/v10/template.js | 3 - .../rest/v10/template.js.map | 1 - .../discord-api-types/rest/v10/user.d.ts | 121 - .../discord-api-types/rest/v10/user.d.ts.map | 1 - .../discord-api-types/rest/v10/user.js | 3 - .../discord-api-types/rest/v10/user.js.map | 1 - .../discord-api-types/rest/v10/voice.d.ts | 10 - .../discord-api-types/rest/v10/voice.d.ts.map | 1 - .../discord-api-types/rest/v10/voice.js | 3 - .../discord-api-types/rest/v10/voice.js.map | 1 - .../discord-api-types/rest/v10/webhook.d.ts | 251 - .../rest/v10/webhook.d.ts.map | 1 - .../discord-api-types/rest/v10/webhook.js | 3 - .../discord-api-types/rest/v10/webhook.js.map | 1 - .../discord-api-types/rest/v6/auditLog.d.ts | 17 - .../rest/v6/auditLog.d.ts.map | 1 - .../discord-api-types/rest/v6/auditLog.js | 3 - .../discord-api-types/rest/v6/auditLog.js.map | 1 - .../discord-api-types/rest/v6/channel.d.ts | 268 - .../rest/v6/channel.d.ts.map | 1 - .../discord-api-types/rest/v6/channel.js | 15 - .../discord-api-types/rest/v6/channel.js.map | 1 - .../discord-api-types/rest/v6/emoji.d.ts | 50 - .../discord-api-types/rest/v6/emoji.d.ts.map | 1 - .../discord-api-types/rest/v6/emoji.js | 3 - .../discord-api-types/rest/v6/emoji.js.map | 1 - .../discord-api-types/rest/v6/gateway.d.ts | 14 - .../rest/v6/gateway.d.ts.map | 1 - .../discord-api-types/rest/v6/gateway.js | 3 - .../discord-api-types/rest/v6/gateway.js.map | 1 - .../discord-api-types/rest/v6/guild.d.ts | 465 - .../discord-api-types/rest/v6/guild.d.ts.map | 1 - .../discord-api-types/rest/v6/guild.js | 3 - .../discord-api-types/rest/v6/guild.js.map | 1 - .../discord-api-types/rest/v6/index.d.ts | 348 - .../discord-api-types/rest/v6/index.d.ts.map | 1 - .../discord-api-types/rest/v6/index.js | 480 - .../discord-api-types/rest/v6/index.js.map | 1 - .../discord-api-types/rest/v6/index.mjs | 8 - .../discord-api-types/rest/v6/invite.d.ts | 20 - .../discord-api-types/rest/v6/invite.d.ts.map | 1 - .../discord-api-types/rest/v6/invite.js | 3 - .../discord-api-types/rest/v6/invite.js.map | 1 - .../discord-api-types/rest/v6/oauth2.d.ts | 177 - .../discord-api-types/rest/v6/oauth2.d.ts.map | 1 - .../discord-api-types/rest/v6/oauth2.js | 3 - .../discord-api-types/rest/v6/oauth2.js.map | 1 - .../discord-api-types/rest/v6/user.d.ts | 80 - .../discord-api-types/rest/v6/user.d.ts.map | 1 - .../discord-api-types/rest/v6/user.js | 3 - .../discord-api-types/rest/v6/user.js.map | 1 - .../discord-api-types/rest/v6/voice.d.ts | 8 - .../discord-api-types/rest/v6/voice.d.ts.map | 1 - .../discord-api-types/rest/v6/voice.js | 3 - .../discord-api-types/rest/v6/voice.js.map | 1 - .../discord-api-types/rest/v6/webhook.d.ts | 139 - .../rest/v6/webhook.d.ts.map | 1 - .../discord-api-types/rest/v6/webhook.js | 3 - .../discord-api-types/rest/v6/webhook.js.map | 1 - .../discord-api-types/rest/v8/auditLog.d.ts | 32 - .../rest/v8/auditLog.d.ts.map | 1 - .../discord-api-types/rest/v8/auditLog.js | 3 - .../discord-api-types/rest/v8/auditLog.js.map | 1 - .../discord-api-types/rest/v8/channel.d.ts | 564 - .../rest/v8/channel.d.ts.map | 1 - .../discord-api-types/rest/v8/channel.js | 3 - .../discord-api-types/rest/v8/channel.js.map | 1 - .../discord-api-types/rest/v8/emoji.d.ts | 69 - .../discord-api-types/rest/v8/emoji.d.ts.map | 1 - .../discord-api-types/rest/v8/emoji.js | 3 - .../discord-api-types/rest/v8/emoji.js.map | 1 - .../discord-api-types/rest/v8/gateway.d.ts | 14 - .../rest/v8/gateway.d.ts.map | 1 - .../discord-api-types/rest/v8/gateway.js | 3 - .../discord-api-types/rest/v8/gateway.js.map | 1 - .../discord-api-types/rest/v8/guild.d.ts | 882 - .../discord-api-types/rest/v8/guild.d.ts.map | 1 - .../discord-api-types/rest/v8/guild.js | 3 - .../discord-api-types/rest/v8/guild.js.map | 1 - .../rest/v8/guildScheduledEvent.d.ts | 141 - .../rest/v8/guildScheduledEvent.d.ts.map | 1 - .../rest/v8/guildScheduledEvent.js | 3 - .../rest/v8/guildScheduledEvent.js.map | 1 - .../discord-api-types/rest/v8/index.d.ts | 539 - .../discord-api-types/rest/v8/index.d.ts.map | 1 - .../discord-api-types/rest/v8/index.js | 728 - .../discord-api-types/rest/v8/index.js.map | 1 - .../discord-api-types/rest/v8/index.mjs | 9 - .../rest/v8/interactions.d.ts | 257 - .../rest/v8/interactions.d.ts.map | 1 - .../discord-api-types/rest/v8/interactions.js | 3 - .../rest/v8/interactions.js.map | 1 - .../discord-api-types/rest/v8/invite.d.ts | 32 - .../discord-api-types/rest/v8/invite.d.ts.map | 1 - .../discord-api-types/rest/v8/invite.js | 3 - .../discord-api-types/rest/v8/invite.js.map | 1 - .../discord-api-types/rest/v8/oauth2.d.ts | 213 - .../discord-api-types/rest/v8/oauth2.d.ts.map | 1 - .../discord-api-types/rest/v8/oauth2.js | 3 - .../discord-api-types/rest/v8/oauth2.js.map | 1 - .../rest/v8/stageInstance.d.ts | 63 - .../rest/v8/stageInstance.d.ts.map | 1 - .../rest/v8/stageInstance.js | 3 - .../rest/v8/stageInstance.js.map | 1 - .../discord-api-types/rest/v8/sticker.d.ts | 70 - .../rest/v8/sticker.d.ts.map | 1 - .../discord-api-types/rest/v8/sticker.js | 3 - .../discord-api-types/rest/v8/sticker.js.map | 1 - .../discord-api-types/rest/v8/template.d.ts | 83 - .../rest/v8/template.d.ts.map | 1 - .../discord-api-types/rest/v8/template.js | 3 - .../discord-api-types/rest/v8/template.js.map | 1 - .../discord-api-types/rest/v8/user.d.ts | 109 - .../discord-api-types/rest/v8/user.d.ts.map | 1 - .../discord-api-types/rest/v8/user.js | 3 - .../discord-api-types/rest/v8/user.js.map | 1 - .../discord-api-types/rest/v8/voice.d.ts | 8 - .../discord-api-types/rest/v8/voice.d.ts.map | 1 - .../discord-api-types/rest/v8/voice.js | 3 - .../discord-api-types/rest/v8/voice.js.map | 1 - .../discord-api-types/rest/v8/webhook.d.ts | 283 - .../rest/v8/webhook.d.ts.map | 1 - .../discord-api-types/rest/v8/webhook.js | 3 - .../discord-api-types/rest/v8/webhook.js.map | 1 - .../rest/v9/application.d.ts | 27 - .../rest/v9/application.d.ts.map | 1 - .../discord-api-types/rest/v9/application.js | 3 - .../rest/v9/application.js.map | 1 - .../discord-api-types/rest/v9/auditLog.d.ts | 31 - .../rest/v9/auditLog.d.ts.map | 1 - .../discord-api-types/rest/v9/auditLog.js | 3 - .../discord-api-types/rest/v9/auditLog.js.map | 1 - .../rest/v9/autoModeration.d.ts | 68 - .../rest/v9/autoModeration.d.ts.map | 1 - .../rest/v9/autoModeration.js | 3 - .../rest/v9/autoModeration.js.map | 1 - .../discord-api-types/rest/v9/channel.d.ts | 719 - .../rest/v9/channel.d.ts.map | 1 - .../discord-api-types/rest/v9/channel.js | 3 - .../discord-api-types/rest/v9/channel.js.map | 1 - .../discord-api-types/rest/v9/emoji.d.ts | 55 - .../discord-api-types/rest/v9/emoji.d.ts.map | 1 - .../discord-api-types/rest/v9/emoji.js | 3 - .../discord-api-types/rest/v9/emoji.js.map | 1 - .../discord-api-types/rest/v9/gateway.d.ts | 10 - .../rest/v9/gateway.d.ts.map | 1 - .../discord-api-types/rest/v9/gateway.js | 3 - .../discord-api-types/rest/v9/gateway.js.map | 1 - .../discord-api-types/rest/v9/guild.d.ts | 868 - .../discord-api-types/rest/v9/guild.d.ts.map | 1 - .../discord-api-types/rest/v9/guild.js | 3 - .../discord-api-types/rest/v9/guild.js.map | 1 - .../rest/v9/guildScheduledEvent.d.ts | 127 - .../rest/v9/guildScheduledEvent.d.ts.map | 1 - .../rest/v9/guildScheduledEvent.js | 3 - .../rest/v9/guildScheduledEvent.js.map | 1 - .../discord-api-types/rest/v9/index.d.ts | 864 - .../discord-api-types/rest/v9/index.d.ts.map | 1 - .../discord-api-types/rest/v9/index.js | 1119 - .../discord-api-types/rest/v9/index.js.map | 1 - .../discord-api-types/rest/v9/index.mjs | 13 - .../rest/v9/interactions.d.ts | 195 - .../rest/v9/interactions.d.ts.map | 1 - .../discord-api-types/rest/v9/interactions.js | 3 - .../rest/v9/interactions.js.map | 1 - .../discord-api-types/rest/v9/invite.d.ts | 25 - .../discord-api-types/rest/v9/invite.d.ts.map | 1 - .../discord-api-types/rest/v9/invite.js | 3 - .../discord-api-types/rest/v9/invite.js.map | 1 - .../rest/v9/monetization.d.ts | 83 - .../rest/v9/monetization.d.ts.map | 1 - .../discord-api-types/rest/v9/monetization.js | 12 - .../rest/v9/monetization.js.map | 1 - .../discord-api-types/rest/v9/oauth2.d.ts | 173 - .../discord-api-types/rest/v9/oauth2.d.ts.map | 1 - .../discord-api-types/rest/v9/oauth2.js | 3 - .../discord-api-types/rest/v9/oauth2.js.map | 1 - .../discord-api-types/rest/v9/poll.d.ts | 44 - .../discord-api-types/rest/v9/poll.d.ts.map | 1 - .../discord-api-types/rest/v9/poll.js | 3 - .../discord-api-types/rest/v9/poll.js.map | 1 - .../rest/v9/stageInstance.d.ts | 59 - .../rest/v9/stageInstance.d.ts.map | 1 - .../rest/v9/stageInstance.js | 3 - .../rest/v9/stageInstance.js.map | 1 - .../discord-api-types/rest/v9/sticker.d.ts | 78 - .../rest/v9/sticker.d.ts.map | 1 - .../discord-api-types/rest/v9/sticker.js | 3 - .../discord-api-types/rest/v9/sticker.js.map | 1 - .../discord-api-types/rest/v9/template.d.ts | 63 - .../rest/v9/template.d.ts.map | 1 - .../discord-api-types/rest/v9/template.js | 3 - .../discord-api-types/rest/v9/template.js.map | 1 - .../discord-api-types/rest/v9/user.d.ts | 121 - .../discord-api-types/rest/v9/user.d.ts.map | 1 - .../discord-api-types/rest/v9/user.js | 3 - .../discord-api-types/rest/v9/user.js.map | 1 - .../discord-api-types/rest/v9/voice.d.ts | 10 - .../discord-api-types/rest/v9/voice.d.ts.map | 1 - .../discord-api-types/rest/v9/voice.js | 3 - .../discord-api-types/rest/v9/voice.js.map | 1 - .../discord-api-types/rest/v9/webhook.d.ts | 251 - .../rest/v9/webhook.d.ts.map | 1 - .../discord-api-types/rest/v9/webhook.js | 3 - .../discord-api-types/rest/v9/webhook.js.map | 1 - .../discord-api-types/rpc/common.d.ts | 33 - .../discord-api-types/rpc/common.d.ts.map | 1 - node_modules/discord-api-types/rpc/common.js | 38 - .../discord-api-types/rpc/common.js.map | 1 - node_modules/discord-api-types/rpc/index.d.ts | 2 - .../discord-api-types/rpc/index.d.ts.map | 1 - node_modules/discord-api-types/rpc/index.js | 20 - .../discord-api-types/rpc/index.js.map | 1 - node_modules/discord-api-types/rpc/index.mjs | 5 - node_modules/discord-api-types/rpc/v10.d.ts | 2 - .../discord-api-types/rpc/v10.d.ts.map | 1 - node_modules/discord-api-types/rpc/v10.js | 18 - node_modules/discord-api-types/rpc/v10.js.map | 1 - node_modules/discord-api-types/rpc/v10.mjs | 5 - node_modules/discord-api-types/rpc/v8.d.ts | 2 - .../discord-api-types/rpc/v8.d.ts.map | 1 - node_modules/discord-api-types/rpc/v8.js | 18 - node_modules/discord-api-types/rpc/v8.js.map | 1 - node_modules/discord-api-types/rpc/v8.mjs | 5 - node_modules/discord-api-types/rpc/v9.d.ts | 2 - .../discord-api-types/rpc/v9.d.ts.map | 1 - node_modules/discord-api-types/rpc/v9.js | 18 - node_modules/discord-api-types/rpc/v9.js.map | 1 - node_modules/discord-api-types/rpc/v9.mjs | 5 - .../discord-api-types/utils/index.d.ts | 2 - .../discord-api-types/utils/index.d.ts.map | 1 - node_modules/discord-api-types/utils/index.js | 20 - .../discord-api-types/utils/index.js.map | 1 - .../discord-api-types/utils/index.mjs | 16 - .../discord-api-types/utils/internals.d.ts | 29 - .../utils/internals.d.ts.map | 1 - .../discord-api-types/utils/internals.js | 3 - .../discord-api-types/utils/internals.js.map | 1 - node_modules/discord-api-types/utils/v10.d.ts | 93 - .../discord-api-types/utils/v10.d.ts.map | 1 - node_modules/discord-api-types/utils/v10.js | 148 - .../discord-api-types/utils/v10.js.map | 1 - node_modules/discord-api-types/utils/v10.mjs | 16 - node_modules/discord-api-types/utils/v8.d.ts | 66 - .../discord-api-types/utils/v8.d.ts.map | 1 - node_modules/discord-api-types/utils/v8.js | 97 - .../discord-api-types/utils/v8.js.map | 1 - node_modules/discord-api-types/utils/v8.mjs | 11 - node_modules/discord-api-types/utils/v9.d.ts | 93 - .../discord-api-types/utils/v9.d.ts.map | 1 - node_modules/discord-api-types/utils/v9.js | 148 - .../discord-api-types/utils/v9.js.map | 1 - node_modules/discord-api-types/utils/v9.mjs | 16 - node_modules/discord-api-types/v10.d.ts | 7 - node_modules/discord-api-types/v10.d.ts.map | 1 - node_modules/discord-api-types/v10.js | 24 - node_modules/discord-api-types/v10.js.map | 1 - node_modules/discord-api-types/v10.mjs | 95 - node_modules/discord-api-types/v6.d.ts | 5 - node_modules/discord-api-types/v6.d.ts.map | 1 - node_modules/discord-api-types/v6.js | 21 - node_modules/discord-api-types/v6.js.map | 1 - node_modules/discord-api-types/v6.mjs | 43 - node_modules/discord-api-types/v8.d.ts | 7 - node_modules/discord-api-types/v8.d.ts.map | 1 - node_modules/discord-api-types/v8.js | 24 - node_modules/discord-api-types/v8.js.map | 1 - node_modules/discord-api-types/v8.mjs | 66 - node_modules/discord-api-types/v9.d.ts | 7 - node_modules/discord-api-types/v9.d.ts.map | 1 - node_modules/discord-api-types/v9.js | 24 - node_modules/discord-api-types/v9.js.map | 1 - node_modules/discord-api-types/v9.mjs | 95 - .../discord-api-types/voice/index.d.ts | 2 - .../discord-api-types/voice/index.d.ts.map | 1 - node_modules/discord-api-types/voice/index.js | 20 - .../discord-api-types/voice/index.js.map | 1 - .../discord-api-types/voice/index.mjs | 6 - node_modules/discord-api-types/voice/v4.d.ts | 108 - .../discord-api-types/voice/v4.d.ts.map | 1 - node_modules/discord-api-types/voice/v4.js | 113 - .../discord-api-types/voice/v4.js.map | 1 - node_modules/discord-api-types/voice/v4.mjs | 6 - node_modules/discord.js/LICENSE | 191 - node_modules/discord.js/README.md | 144 - node_modules/discord.js/package.json | 105 - .../discord.js/src/client/BaseClient.js | 120 - node_modules/discord.js/src/client/Client.js | 611 - .../discord.js/src/client/WebhookClient.js | 103 - .../discord.js/src/client/actions/Action.js | 120 - .../src/client/actions/ActionsManager.js | 84 - .../ApplicationCommandPermissionsUpdate.js | 34 - .../actions/AutoModerationActionExecution.js | 26 - .../actions/AutoModerationRuleCreate.js | 27 - .../actions/AutoModerationRuleDelete.js | 31 - .../actions/AutoModerationRuleUpdate.js | 29 - .../src/client/actions/ChannelCreate.js | 23 - .../src/client/actions/ChannelDelete.js | 23 - .../src/client/actions/ChannelUpdate.js | 42 - .../src/client/actions/EntitlementCreate.js | 23 - .../src/client/actions/EntitlementDelete.js | 27 - .../src/client/actions/EntitlementUpdate.js | 25 - .../actions/GuildAuditLogEntryCreate.js | 29 - .../src/client/actions/GuildBanAdd.js | 20 - .../src/client/actions/GuildBanRemove.js | 25 - .../actions/GuildChannelsPositionUpdate.js | 21 - .../src/client/actions/GuildDelete.js | 44 - .../src/client/actions/GuildEmojiCreate.js | 20 - .../src/client/actions/GuildEmojiDelete.js | 19 - .../src/client/actions/GuildEmojiUpdate.js | 20 - .../src/client/actions/GuildEmojisUpdate.js | 34 - .../client/actions/GuildIntegrationsUpdate.js | 19 - .../src/client/actions/GuildMemberRemove.js | 31 - .../src/client/actions/GuildMemberUpdate.js | 44 - .../src/client/actions/GuildRoleCreate.js | 25 - .../src/client/actions/GuildRoleDelete.js | 29 - .../src/client/actions/GuildRoleUpdate.js | 39 - .../actions/GuildRolesPositionUpdate.js | 21 - .../actions/GuildScheduledEventCreate.js | 27 - .../actions/GuildScheduledEventDelete.js | 31 - .../actions/GuildScheduledEventUpdate.js | 30 - .../actions/GuildScheduledEventUserAdd.js | 32 - .../actions/GuildScheduledEventUserRemove.js | 32 - .../src/client/actions/GuildStickerCreate.js | 20 - .../src/client/actions/GuildStickerDelete.js | 19 - .../src/client/actions/GuildStickerUpdate.js | 20 - .../src/client/actions/GuildStickersUpdate.js | 34 - .../src/client/actions/GuildUpdate.js | 33 - .../src/client/actions/InteractionCreate.js | 101 - .../src/client/actions/InviteCreate.js | 27 - .../src/client/actions/InviteDelete.js | 29 - .../src/client/actions/MessageCreate.js | 37 - .../src/client/actions/MessageDelete.js | 32 - .../src/client/actions/MessageDeleteBulk.js | 47 - .../src/client/actions/MessagePollVoteAdd.js | 33 - .../client/actions/MessagePollVoteRemove.js | 33 - .../src/client/actions/MessageReactionAdd.js | 55 - .../client/actions/MessageReactionRemove.js | 45 - .../actions/MessageReactionRemoveAll.js | 33 - .../actions/MessageReactionRemoveEmoji.js | 28 - .../src/client/actions/MessageUpdate.js | 26 - .../src/client/actions/PresenceUpdate.js | 42 - .../src/client/actions/StageInstanceCreate.js | 28 - .../src/client/actions/StageInstanceDelete.js | 31 - .../src/client/actions/StageInstanceUpdate.js | 30 - .../src/client/actions/ThreadCreate.js | 24 - .../src/client/actions/ThreadDelete.js | 26 - .../src/client/actions/ThreadListSync.js | 60 - .../src/client/actions/ThreadMemberUpdate.js | 30 - .../src/client/actions/ThreadMembersUpdate.js | 47 - .../src/client/actions/TypingStart.js | 29 - .../src/client/actions/UserUpdate.js | 36 - .../src/client/actions/VoiceStateUpdate.js | 43 - .../src/client/actions/WebhooksUpdate.js | 37 - .../src/client/voice/ClientVoiceManager.js | 44 - .../src/client/websocket/WebSocketManager.js | 394 - .../src/client/websocket/WebSocketShard.js | 231 - .../APPLICATION_COMMAND_PERMISSIONS_UPDATE.js | 5 - .../AUTO_MODERATION_ACTION_EXECUTION.js | 5 - .../handlers/AUTO_MODERATION_RULE_CREATE.js | 5 - .../handlers/AUTO_MODERATION_RULE_DELETE.js | 5 - .../handlers/AUTO_MODERATION_RULE_UPDATE.js | 5 - .../websocket/handlers/CHANNEL_CREATE.js | 5 - .../websocket/handlers/CHANNEL_DELETE.js | 5 - .../websocket/handlers/CHANNEL_PINS_UPDATE.js | 22 - .../websocket/handlers/CHANNEL_UPDATE.js | 16 - .../websocket/handlers/ENTITLEMENT_CREATE.js | 5 - .../websocket/handlers/ENTITLEMENT_DELETE.js | 5 - .../websocket/handlers/ENTITLEMENT_UPDATE.js | 5 - .../handlers/GUILD_AUDIT_LOG_ENTRY_CREATE.js | 5 - .../websocket/handlers/GUILD_BAN_ADD.js | 5 - .../websocket/handlers/GUILD_BAN_REMOVE.js | 5 - .../client/websocket/handlers/GUILD_CREATE.js | 33 - .../client/websocket/handlers/GUILD_DELETE.js | 5 - .../websocket/handlers/GUILD_EMOJIS_UPDATE.js | 5 - .../handlers/GUILD_INTEGRATIONS_UPDATE.js | 5 - .../websocket/handlers/GUILD_MEMBERS_CHUNK.js | 39 - .../websocket/handlers/GUILD_MEMBER_ADD.js | 20 - .../websocket/handlers/GUILD_MEMBER_REMOVE.js | 5 - .../websocket/handlers/GUILD_MEMBER_UPDATE.js | 5 - .../websocket/handlers/GUILD_ROLE_CREATE.js | 5 - .../websocket/handlers/GUILD_ROLE_DELETE.js | 5 - .../websocket/handlers/GUILD_ROLE_UPDATE.js | 5 - .../handlers/GUILD_SCHEDULED_EVENT_CREATE.js | 5 - .../handlers/GUILD_SCHEDULED_EVENT_DELETE.js | 5 - .../handlers/GUILD_SCHEDULED_EVENT_UPDATE.js | 5 - .../GUILD_SCHEDULED_EVENT_USER_ADD.js | 5 - .../GUILD_SCHEDULED_EVENT_USER_REMOVE.js | 5 - .../handlers/GUILD_STICKERS_UPDATE.js | 5 - .../client/websocket/handlers/GUILD_UPDATE.js | 5 - .../websocket/handlers/INTERACTION_CREATE.js | 5 - .../websocket/handlers/INVITE_CREATE.js | 5 - .../websocket/handlers/INVITE_DELETE.js | 5 - .../websocket/handlers/MESSAGE_CREATE.js | 5 - .../websocket/handlers/MESSAGE_DELETE.js | 5 - .../websocket/handlers/MESSAGE_DELETE_BULK.js | 5 - .../handlers/MESSAGE_POLL_VOTE_ADD.js | 5 - .../handlers/MESSAGE_POLL_VOTE_REMOVE.js | 5 - .../handlers/MESSAGE_REACTION_ADD.js | 5 - .../handlers/MESSAGE_REACTION_REMOVE.js | 5 - .../handlers/MESSAGE_REACTION_REMOVE_ALL.js | 5 - .../handlers/MESSAGE_REACTION_REMOVE_EMOJI.js | 5 - .../websocket/handlers/MESSAGE_UPDATE.js | 16 - .../websocket/handlers/PRESENCE_UPDATE.js | 5 - .../src/client/websocket/handlers/READY.js | 27 - .../src/client/websocket/handlers/RESUMED.js | 14 - .../handlers/STAGE_INSTANCE_CREATE.js | 5 - .../handlers/STAGE_INSTANCE_DELETE.js | 5 - .../handlers/STAGE_INSTANCE_UPDATE.js | 5 - .../websocket/handlers/THREAD_CREATE.js | 5 - .../websocket/handlers/THREAD_DELETE.js | 5 - .../websocket/handlers/THREAD_LIST_SYNC.js | 5 - .../handlers/THREAD_MEMBERS_UPDATE.js | 5 - .../handlers/THREAD_MEMBER_UPDATE.js | 5 - .../websocket/handlers/THREAD_UPDATE.js | 16 - .../client/websocket/handlers/TYPING_START.js | 5 - .../client/websocket/handlers/USER_UPDATE.js | 5 - .../websocket/handlers/VOICE_SERVER_UPDATE.js | 6 - .../websocket/handlers/VOICE_STATE_UPDATE.js | 5 - .../websocket/handlers/WEBHOOKS_UPDATE.js | 5 - .../src/client/websocket/handlers/index.js | 69 - .../discord.js/src/errors/DJSError.js | 48 - .../discord.js/src/errors/ErrorCodes.js | 347 - .../discord.js/src/errors/Messages.js | 178 - node_modules/discord.js/src/errors/index.js | 5 - node_modules/discord.js/src/index.js | 231 - .../src/managers/ApplicationCommandManager.js | 266 - .../ApplicationCommandPermissionsManager.js | 428 - .../src/managers/AutoModerationRuleManager.js | 288 - .../src/managers/BaseGuildEmojiManager.js | 80 - .../discord.js/src/managers/BaseManager.js | 19 - .../discord.js/src/managers/CachedManager.js | 64 - .../managers/CategoryChannelChildManager.js | 79 - .../discord.js/src/managers/ChannelManager.js | 128 - .../src/managers/DMMessageManager.js | 17 - .../discord.js/src/managers/DataManager.js | 61 - .../src/managers/EntitlementManager.js | 139 - .../GuildApplicationCommandManager.js | 28 - .../src/managers/GuildBanManager.js | 249 - .../src/managers/GuildChannelManager.js | 507 - .../src/managers/GuildEmojiManager.js | 174 - .../src/managers/GuildEmojiRoleManager.js | 118 - .../src/managers/GuildForumThreadManager.js | 83 - .../src/managers/GuildInviteManager.js | 215 - .../discord.js/src/managers/GuildManager.js | 299 - .../src/managers/GuildMemberManager.js | 559 - .../src/managers/GuildMemberRoleManager.js | 204 - .../src/managers/GuildMessageManager.js | 17 - .../managers/GuildScheduledEventManager.js | 297 - .../src/managers/GuildStickerManager.js | 182 - .../src/managers/GuildTextThreadManager.js | 91 - .../discord.js/src/managers/MessageManager.js | 301 - .../managers/PermissionOverwriteManager.js | 168 - .../src/managers/PresenceManager.js | 58 - .../src/managers/ReactionManager.js | 68 - .../src/managers/ReactionUserManager.js | 77 - .../discord.js/src/managers/RoleManager.js | 360 - .../src/managers/StageInstanceManager.js | 159 - .../discord.js/src/managers/ThreadManager.js | 207 - .../src/managers/ThreadMemberManager.js | 184 - .../discord.js/src/managers/UserManager.js | 142 - .../src/managers/VoiceStateManager.js | 37 - node_modules/discord.js/src/sharding/Shard.js | 475 - .../src/sharding/ShardClientUtil.js | 291 - .../src/sharding/ShardingManager.js | 333 - .../discord.js/src/structures/ActionRow.js | 46 - .../src/structures/ActionRowBuilder.js | 35 - .../src/structures/AnonymousGuild.js | 97 - .../src/structures/ApplicationCommand.js | 596 - .../ApplicationRoleConnectionMetadata.js | 46 - .../discord.js/src/structures/Attachment.js | 152 - .../src/structures/AttachmentBuilder.js | 111 - .../AutoModerationActionExecution.js | 116 - .../src/structures/AutoModerationRule.js | 284 - .../src/structures/AutocompleteInteraction.js | 102 - .../discord.js/src/structures/Base.js | 43 - .../discord.js/src/structures/BaseChannel.js | 163 - .../discord.js/src/structures/BaseGuild.js | 119 - .../src/structures/BaseGuildEmoji.js | 75 - .../src/structures/BaseGuildTextChannel.js | 196 - .../src/structures/BaseGuildVoiceChannel.js | 234 - .../src/structures/BaseInteraction.js | 318 - .../src/structures/BaseSelectMenuComponent.js | 56 - .../src/structures/ButtonBuilder.js | 44 - .../src/structures/ButtonComponent.js | 65 - .../src/structures/ButtonInteraction.js | 11 - .../src/structures/CategoryChannel.js | 45 - .../structures/ChannelSelectMenuBuilder.js | 31 - .../structures/ChannelSelectMenuComponent.js | 20 - .../ChannelSelectMenuInteraction.js | 33 - .../structures/ChatInputCommandInteraction.js | 42 - .../src/structures/ClientApplication.js | 310 - .../src/structures/ClientPresence.js | 84 - .../discord.js/src/structures/ClientUser.js | 206 - .../src/structures/CommandInteraction.js | 162 - .../CommandInteractionOptionResolver.js | 308 - .../discord.js/src/structures/Component.js | 47 - .../ContextMenuCommandInteraction.js | 65 - .../discord.js/src/structures/DMChannel.js | 129 - .../src/structures/DirectoryChannel.js | 36 - .../discord.js/src/structures/Embed.js | 237 - .../discord.js/src/structures/EmbedBuilder.js | 50 - .../discord.js/src/structures/Emoji.js | 115 - .../discord.js/src/structures/Entitlement.js | 183 - .../discord.js/src/structures/ForumChannel.js | 31 - .../discord.js/src/structures/Guild.js | 1455 -- .../src/structures/GuildAuditLogs.js | 91 - .../src/structures/GuildAuditLogsEntry.js | 486 - .../discord.js/src/structures/GuildBan.js | 59 - .../discord.js/src/structures/GuildChannel.js | 475 - .../discord.js/src/structures/GuildEmoji.js | 148 - .../discord.js/src/structures/GuildMember.js | 515 - .../src/structures/GuildOnboarding.js | 64 - .../src/structures/GuildOnboardingPrompt.js | 78 - .../structures/GuildOnboardingPromptOption.js | 86 - .../discord.js/src/structures/GuildPreview.js | 193 - .../src/structures/GuildPreviewEmoji.js | 27 - .../src/structures/GuildScheduledEvent.js | 484 - .../src/structures/GuildTemplate.js | 241 - .../discord.js/src/structures/Integration.js | 220 - .../src/structures/IntegrationApplication.js | 85 - .../src/structures/InteractionCollector.js | 269 - .../src/structures/InteractionResponse.js | 102 - .../src/structures/InteractionWebhook.js | 59 - .../discord.js/src/structures/Invite.js | 322 - .../discord.js/src/structures/InviteGuild.js | 22 - .../src/structures/InviteStageInstance.js | 87 - .../discord.js/src/structures/MediaChannel.js | 11 - .../MentionableSelectMenuBuilder.js | 32 - .../MentionableSelectMenuComponent.js | 11 - .../MentionableSelectMenuInteraction.js | 71 - .../discord.js/src/structures/Message.js | 1022 - .../src/structures/MessageCollector.js | 146 - .../structures/MessageComponentInteraction.js | 108 - .../MessageContextMenuCommandInteraction.js | 20 - .../src/structures/MessageMentions.js | 297 - .../src/structures/MessagePayload.js | 321 - .../src/structures/MessageReaction.js | 142 - .../discord.js/src/structures/ModalBuilder.js | 36 - .../src/structures/ModalSubmitFields.js | 55 - .../src/structures/ModalSubmitInteraction.js | 126 - .../discord.js/src/structures/NewsChannel.js | 32 - .../discord.js/src/structures/OAuth2Guild.js | 28 - .../src/structures/PartialGroupDMChannel.js | 60 - .../src/structures/PermissionOverwrites.js | 196 - .../discord.js/src/structures/Poll.js | 109 - .../discord.js/src/structures/PollAnswer.js | 89 - .../discord.js/src/structures/Presence.js | 385 - .../src/structures/ReactionCollector.js | 229 - .../src/structures/ReactionEmoji.js | 31 - .../discord.js/src/structures/Role.js | 467 - .../src/structures/RoleSelectMenuBuilder.js | 31 - .../src/structures/RoleSelectMenuComponent.js | 11 - .../structures/RoleSelectMenuInteraction.js | 33 - node_modules/discord.js/src/structures/SKU.js | 52 - .../src/structures/SelectMenuBuilder.js | 26 - .../src/structures/SelectMenuComponent.js | 26 - .../src/structures/SelectMenuInteraction.js | 26 - .../src/structures/SelectMenuOptionBuilder.js | 26 - .../discord.js/src/structures/StageChannel.js | 112 - .../src/structures/StageInstance.js | 167 - .../discord.js/src/structures/Sticker.js | 267 - .../discord.js/src/structures/StickerPack.js | 95 - .../src/structures/StringSelectMenuBuilder.js | 79 - .../structures/StringSelectMenuComponent.js | 20 - .../structures/StringSelectMenuInteraction.js | 21 - .../StringSelectMenuOptionBuilder.js | 49 - .../discord.js/src/structures/Team.js | 117 - .../discord.js/src/structures/TeamMember.js | 79 - .../discord.js/src/structures/TextChannel.js | 33 - .../src/structures/TextInputBuilder.js | 31 - .../src/structures/TextInputComponent.js | 29 - .../src/structures/ThreadChannel.js | 615 - .../discord.js/src/structures/ThreadMember.js | 113 - .../src/structures/ThreadOnlyChannel.js | 249 - .../discord.js/src/structures/Typing.js | 74 - .../discord.js/src/structures/User.js | 375 - .../UserContextMenuCommandInteraction.js | 29 - .../src/structures/UserSelectMenuBuilder.js | 31 - .../src/structures/UserSelectMenuComponent.js | 11 - .../structures/UserSelectMenuInteraction.js | 51 - .../discord.js/src/structures/VoiceChannel.js | 96 - .../discord.js/src/structures/VoiceRegion.js | 46 - .../discord.js/src/structures/VoiceState.js | 303 - .../discord.js/src/structures/Webhook.js | 481 - .../src/structures/WelcomeChannel.js | 60 - .../src/structures/WelcomeScreen.js | 49 - .../discord.js/src/structures/Widget.js | 97 - .../discord.js/src/structures/WidgetMember.js | 99 - .../src/structures/interfaces/Application.js | 108 - .../src/structures/interfaces/Collector.js | 335 - .../interfaces/InteractionResponses.js | 340 - .../structures/interfaces/TextBasedChannel.js | 429 - node_modules/discord.js/src/util/APITypes.js | 536 - .../src/util/ActivityFlagsBitField.js | 26 - .../src/util/ApplicationFlagsBitField.js | 41 - .../src/util/AttachmentFlagsBitField.js | 26 - node_modules/discord.js/src/util/BitField.js | 178 - .../src/util/ChannelFlagsBitField.js | 41 - node_modules/discord.js/src/util/Channels.js | 161 - node_modules/discord.js/src/util/Colors.js | 73 - .../discord.js/src/util/Components.js | 152 - node_modules/discord.js/src/util/Constants.js | 252 - .../discord.js/src/util/DataResolver.js | 141 - node_modules/discord.js/src/util/Enums.js | 13 - node_modules/discord.js/src/util/Events.js | 172 - .../discord.js/src/util/Formatters.js | 413 - .../src/util/GuildMemberFlagsBitField.js | 41 - .../discord.js/src/util/IntentsBitField.js | 34 - .../discord.js/src/util/LimitedCollection.js | 68 - .../src/util/MessageFlagsBitField.js | 32 - node_modules/discord.js/src/util/Options.js | 237 - node_modules/discord.js/src/util/Partials.js | 44 - .../src/util/PermissionsBitField.js | 104 - .../discord.js/src/util/RoleFlagsBitField.js | 26 - .../discord.js/src/util/SKUFlagsBitField.js | 26 - .../discord.js/src/util/ShardEvents.js | 29 - node_modules/discord.js/src/util/Status.js | 33 - node_modules/discord.js/src/util/Sweepers.js | 487 - node_modules/discord.js/src/util/Symbols.js | 3 - .../src/util/SystemChannelFlagsBitField.js | 43 - .../src/util/ThreadMemberFlagsBitField.js | 31 - .../discord.js/src/util/Transformers.js | 36 - .../discord.js/src/util/UserFlagsBitField.js | 32 - node_modules/discord.js/src/util/Util.js | 526 - .../src/util/WebSocketShardEvents.js | 25 - node_modules/discord.js/typings/index.d.mts | 6930 ------- node_modules/discord.js/typings/index.d.ts | 6930 ------- .../discord.js/typings/index.test-d.ts | 2557 --- .../discord.js/typings/rawDataTypes.d.mts | 210 - .../discord.js/typings/rawDataTypes.d.ts | 210 - .../discord.js/typings/tsdoc-metadata.json | 11 - node_modules/fast-deep-equal/LICENSE | 21 - node_modules/fast-deep-equal/README.md | 96 - node_modules/fast-deep-equal/es6/index.d.ts | 2 - node_modules/fast-deep-equal/es6/index.js | 72 - node_modules/fast-deep-equal/es6/react.d.ts | 2 - node_modules/fast-deep-equal/es6/react.js | 79 - node_modules/fast-deep-equal/index.d.ts | 4 - node_modules/fast-deep-equal/index.js | 46 - node_modules/fast-deep-equal/package.json | 61 - node_modules/fast-deep-equal/react.d.ts | 2 - node_modules/fast-deep-equal/react.js | 53 - node_modules/fs/README.md | 9 - node_modules/fs/package.json | 20 - node_modules/inherits/LICENSE | 16 - node_modules/inherits/README.md | 42 - node_modules/inherits/inherits.js | 7 - node_modules/inherits/inherits_browser.js | 23 - node_modules/inherits/package.json | 29 - node_modules/lodash.snakecase/LICENSE | 47 - node_modules/lodash.snakecase/README.md | 18 - node_modules/lodash.snakecase/index.js | 435 - node_modules/lodash.snakecase/package.json | 17 - node_modules/lodash/LICENSE | 47 - node_modules/lodash/README.md | 39 - node_modules/lodash/_DataView.js | 7 - node_modules/lodash/_Hash.js | 32 - node_modules/lodash/_LazyWrapper.js | 28 - node_modules/lodash/_ListCache.js | 32 - node_modules/lodash/_LodashWrapper.js | 22 - node_modules/lodash/_Map.js | 7 - node_modules/lodash/_MapCache.js | 32 - node_modules/lodash/_Promise.js | 7 - node_modules/lodash/_Set.js | 7 - node_modules/lodash/_SetCache.js | 27 - node_modules/lodash/_Stack.js | 27 - node_modules/lodash/_Symbol.js | 6 - node_modules/lodash/_Uint8Array.js | 6 - node_modules/lodash/_WeakMap.js | 7 - node_modules/lodash/_apply.js | 21 - node_modules/lodash/_arrayAggregator.js | 22 - node_modules/lodash/_arrayEach.js | 22 - node_modules/lodash/_arrayEachRight.js | 21 - node_modules/lodash/_arrayEvery.js | 23 - node_modules/lodash/_arrayFilter.js | 25 - node_modules/lodash/_arrayIncludes.js | 17 - node_modules/lodash/_arrayIncludesWith.js | 22 - node_modules/lodash/_arrayLikeKeys.js | 49 - node_modules/lodash/_arrayMap.js | 21 - node_modules/lodash/_arrayPush.js | 20 - node_modules/lodash/_arrayReduce.js | 26 - node_modules/lodash/_arrayReduceRight.js | 24 - node_modules/lodash/_arraySample.js | 15 - node_modules/lodash/_arraySampleSize.js | 17 - node_modules/lodash/_arrayShuffle.js | 15 - node_modules/lodash/_arraySome.js | 23 - node_modules/lodash/_asciiSize.js | 12 - node_modules/lodash/_asciiToArray.js | 12 - node_modules/lodash/_asciiWords.js | 15 - node_modules/lodash/_assignMergeValue.js | 20 - node_modules/lodash/_assignValue.js | 28 - node_modules/lodash/_assocIndexOf.js | 21 - node_modules/lodash/_baseAggregator.js | 21 - node_modules/lodash/_baseAssign.js | 17 - node_modules/lodash/_baseAssignIn.js | 17 - node_modules/lodash/_baseAssignValue.js | 25 - node_modules/lodash/_baseAt.js | 23 - node_modules/lodash/_baseClamp.js | 22 - node_modules/lodash/_baseClone.js | 166 - node_modules/lodash/_baseConforms.js | 18 - node_modules/lodash/_baseConformsTo.js | 27 - node_modules/lodash/_baseCreate.js | 30 - node_modules/lodash/_baseDelay.js | 21 - node_modules/lodash/_baseDifference.js | 67 - node_modules/lodash/_baseEach.js | 14 - node_modules/lodash/_baseEachRight.js | 14 - node_modules/lodash/_baseEvery.js | 21 - node_modules/lodash/_baseExtremum.js | 32 - node_modules/lodash/_baseFill.js | 32 - node_modules/lodash/_baseFilter.js | 21 - node_modules/lodash/_baseFindIndex.js | 24 - node_modules/lodash/_baseFindKey.js | 23 - node_modules/lodash/_baseFlatten.js | 38 - node_modules/lodash/_baseFor.js | 16 - node_modules/lodash/_baseForOwn.js | 16 - node_modules/lodash/_baseForOwnRight.js | 16 - node_modules/lodash/_baseForRight.js | 15 - node_modules/lodash/_baseFunctions.js | 19 - node_modules/lodash/_baseGet.js | 24 - node_modules/lodash/_baseGetAllKeys.js | 20 - node_modules/lodash/_baseGetTag.js | 28 - node_modules/lodash/_baseGt.js | 14 - node_modules/lodash/_baseHas.js | 19 - node_modules/lodash/_baseHasIn.js | 13 - node_modules/lodash/_baseInRange.js | 18 - node_modules/lodash/_baseIndexOf.js | 20 - node_modules/lodash/_baseIndexOfWith.js | 23 - node_modules/lodash/_baseIntersection.js | 74 - node_modules/lodash/_baseInverter.js | 21 - node_modules/lodash/_baseInvoke.js | 24 - node_modules/lodash/_baseIsArguments.js | 18 - node_modules/lodash/_baseIsArrayBuffer.js | 17 - node_modules/lodash/_baseIsDate.js | 18 - node_modules/lodash/_baseIsEqual.js | 28 - node_modules/lodash/_baseIsEqualDeep.js | 83 - node_modules/lodash/_baseIsMap.js | 18 - node_modules/lodash/_baseIsMatch.js | 62 - node_modules/lodash/_baseIsNaN.js | 12 - node_modules/lodash/_baseIsNative.js | 47 - node_modules/lodash/_baseIsRegExp.js | 18 - node_modules/lodash/_baseIsSet.js | 18 - node_modules/lodash/_baseIsTypedArray.js | 60 - node_modules/lodash/_baseIteratee.js | 31 - node_modules/lodash/_baseKeys.js | 30 - node_modules/lodash/_baseKeysIn.js | 33 - node_modules/lodash/_baseLodash.js | 10 - node_modules/lodash/_baseLt.js | 14 - node_modules/lodash/_baseMap.js | 22 - node_modules/lodash/_baseMatches.js | 22 - node_modules/lodash/_baseMatchesProperty.js | 33 - node_modules/lodash/_baseMean.js | 20 - node_modules/lodash/_baseMerge.js | 42 - node_modules/lodash/_baseMergeDeep.js | 94 - node_modules/lodash/_baseNth.js | 20 - node_modules/lodash/_baseOrderBy.js | 49 - node_modules/lodash/_basePick.js | 19 - node_modules/lodash/_basePickBy.js | 30 - node_modules/lodash/_baseProperty.js | 14 - node_modules/lodash/_basePropertyDeep.js | 16 - node_modules/lodash/_basePropertyOf.js | 14 - node_modules/lodash/_basePullAll.js | 51 - node_modules/lodash/_basePullAt.js | 37 - node_modules/lodash/_baseRandom.js | 18 - node_modules/lodash/_baseRange.js | 28 - node_modules/lodash/_baseReduce.js | 23 - node_modules/lodash/_baseRepeat.js | 35 - node_modules/lodash/_baseRest.js | 17 - node_modules/lodash/_baseSample.js | 15 - node_modules/lodash/_baseSampleSize.js | 18 - node_modules/lodash/_baseSet.js | 51 - node_modules/lodash/_baseSetData.js | 17 - node_modules/lodash/_baseSetToString.js | 22 - node_modules/lodash/_baseShuffle.js | 15 - node_modules/lodash/_baseSlice.js | 31 - node_modules/lodash/_baseSome.js | 22 - node_modules/lodash/_baseSortBy.js | 21 - node_modules/lodash/_baseSortedIndex.js | 42 - node_modules/lodash/_baseSortedIndexBy.js | 67 - node_modules/lodash/_baseSortedUniq.js | 30 - node_modules/lodash/_baseSum.js | 24 - node_modules/lodash/_baseTimes.js | 20 - node_modules/lodash/_baseToNumber.js | 24 - node_modules/lodash/_baseToPairs.js | 18 - node_modules/lodash/_baseToString.js | 37 - node_modules/lodash/_baseTrim.js | 19 - node_modules/lodash/_baseUnary.js | 14 - node_modules/lodash/_baseUniq.js | 72 - node_modules/lodash/_baseUnset.js | 20 - node_modules/lodash/_baseUpdate.js | 18 - node_modules/lodash/_baseValues.js | 19 - node_modules/lodash/_baseWhile.js | 26 - node_modules/lodash/_baseWrapperValue.js | 25 - node_modules/lodash/_baseXor.js | 36 - node_modules/lodash/_baseZipObject.js | 23 - node_modules/lodash/_cacheHas.js | 13 - node_modules/lodash/_castArrayLikeObject.js | 14 - node_modules/lodash/_castFunction.js | 14 - node_modules/lodash/_castPath.js | 21 - node_modules/lodash/_castRest.js | 14 - node_modules/lodash/_castSlice.js | 18 - node_modules/lodash/_charsEndIndex.js | 19 - node_modules/lodash/_charsStartIndex.js | 20 - node_modules/lodash/_cloneArrayBuffer.js | 16 - node_modules/lodash/_cloneBuffer.js | 35 - node_modules/lodash/_cloneDataView.js | 16 - node_modules/lodash/_cloneRegExp.js | 17 - node_modules/lodash/_cloneSymbol.js | 18 - node_modules/lodash/_cloneTypedArray.js | 16 - node_modules/lodash/_compareAscending.js | 41 - node_modules/lodash/_compareMultiple.js | 44 - node_modules/lodash/_composeArgs.js | 39 - node_modules/lodash/_composeArgsRight.js | 41 - node_modules/lodash/_copyArray.js | 20 - node_modules/lodash/_copyObject.js | 40 - node_modules/lodash/_copySymbols.js | 16 - node_modules/lodash/_copySymbolsIn.js | 16 - node_modules/lodash/_coreJsData.js | 6 - node_modules/lodash/_countHolders.js | 21 - node_modules/lodash/_createAggregator.js | 23 - node_modules/lodash/_createAssigner.js | 37 - node_modules/lodash/_createBaseEach.js | 32 - node_modules/lodash/_createBaseFor.js | 25 - node_modules/lodash/_createBind.js | 28 - node_modules/lodash/_createCaseFirst.js | 33 - node_modules/lodash/_createCompounder.js | 24 - node_modules/lodash/_createCtor.js | 37 - node_modules/lodash/_createCurry.js | 46 - node_modules/lodash/_createFind.js | 25 - node_modules/lodash/_createFlow.js | 78 - node_modules/lodash/_createHybrid.js | 92 - node_modules/lodash/_createInverter.js | 17 - node_modules/lodash/_createMathOperation.js | 38 - node_modules/lodash/_createOver.js | 27 - node_modules/lodash/_createPadding.js | 33 - node_modules/lodash/_createPartial.js | 43 - node_modules/lodash/_createRange.js | 30 - node_modules/lodash/_createRecurry.js | 56 - .../lodash/_createRelationalOperation.js | 20 - node_modules/lodash/_createRound.js | 35 - node_modules/lodash/_createSet.js | 19 - node_modules/lodash/_createToPairs.js | 30 - node_modules/lodash/_createWrap.js | 106 - .../lodash/_customDefaultsAssignIn.js | 29 - node_modules/lodash/_customDefaultsMerge.js | 28 - node_modules/lodash/_customOmitClone.js | 16 - node_modules/lodash/_deburrLetter.js | 71 - node_modules/lodash/_defineProperty.js | 11 - node_modules/lodash/_equalArrays.js | 84 - node_modules/lodash/_equalByTag.js | 112 - node_modules/lodash/_equalObjects.js | 90 - node_modules/lodash/_escapeHtmlChar.js | 21 - node_modules/lodash/_escapeStringChar.js | 22 - node_modules/lodash/_flatRest.js | 16 - node_modules/lodash/_freeGlobal.js | 4 - node_modules/lodash/_getAllKeys.js | 16 - node_modules/lodash/_getAllKeysIn.js | 17 - node_modules/lodash/_getData.js | 15 - node_modules/lodash/_getFuncName.js | 31 - node_modules/lodash/_getHolder.js | 13 - node_modules/lodash/_getMapData.js | 18 - node_modules/lodash/_getMatchData.js | 24 - node_modules/lodash/_getNative.js | 17 - node_modules/lodash/_getPrototype.js | 6 - node_modules/lodash/_getRawTag.js | 46 - node_modules/lodash/_getSymbols.js | 30 - node_modules/lodash/_getSymbolsIn.js | 25 - node_modules/lodash/_getTag.js | 58 - node_modules/lodash/_getValue.js | 13 - node_modules/lodash/_getView.js | 33 - node_modules/lodash/_getWrapDetails.js | 17 - node_modules/lodash/_hasPath.js | 39 - node_modules/lodash/_hasUnicode.js | 26 - node_modules/lodash/_hasUnicodeWord.js | 15 - node_modules/lodash/_hashClear.js | 15 - node_modules/lodash/_hashDelete.js | 17 - node_modules/lodash/_hashGet.js | 30 - node_modules/lodash/_hashHas.js | 23 - node_modules/lodash/_hashSet.js | 23 - node_modules/lodash/_initCloneArray.js | 26 - node_modules/lodash/_initCloneByTag.js | 77 - node_modules/lodash/_initCloneObject.js | 18 - node_modules/lodash/_insertWrapDetails.js | 23 - node_modules/lodash/_isFlattenable.js | 20 - node_modules/lodash/_isIndex.js | 25 - node_modules/lodash/_isIterateeCall.js | 30 - node_modules/lodash/_isKey.js | 29 - node_modules/lodash/_isKeyable.js | 15 - node_modules/lodash/_isLaziable.js | 28 - node_modules/lodash/_isMaskable.js | 14 - node_modules/lodash/_isMasked.js | 20 - node_modules/lodash/_isPrototype.js | 18 - node_modules/lodash/_isStrictComparable.js | 15 - node_modules/lodash/_iteratorToArray.js | 18 - node_modules/lodash/_lazyClone.js | 23 - node_modules/lodash/_lazyReverse.js | 23 - node_modules/lodash/_lazyValue.js | 69 - node_modules/lodash/_listCacheClear.js | 13 - node_modules/lodash/_listCacheDelete.js | 35 - node_modules/lodash/_listCacheGet.js | 19 - node_modules/lodash/_listCacheHas.js | 16 - node_modules/lodash/_listCacheSet.js | 26 - node_modules/lodash/_mapCacheClear.js | 21 - node_modules/lodash/_mapCacheDelete.js | 18 - node_modules/lodash/_mapCacheGet.js | 16 - node_modules/lodash/_mapCacheHas.js | 16 - node_modules/lodash/_mapCacheSet.js | 22 - node_modules/lodash/_mapToArray.js | 18 - .../lodash/_matchesStrictComparable.js | 20 - node_modules/lodash/_memoizeCapped.js | 26 - node_modules/lodash/_mergeData.js | 90 - node_modules/lodash/_metaMap.js | 6 - node_modules/lodash/_nativeCreate.js | 6 - node_modules/lodash/_nativeKeys.js | 6 - node_modules/lodash/_nativeKeysIn.js | 20 - node_modules/lodash/_nodeUtil.js | 30 - node_modules/lodash/_objectToString.js | 22 - node_modules/lodash/_overArg.js | 15 - node_modules/lodash/_overRest.js | 36 - node_modules/lodash/_parent.js | 16 - node_modules/lodash/_reEscape.js | 4 - node_modules/lodash/_reEvaluate.js | 4 - node_modules/lodash/_reInterpolate.js | 4 - node_modules/lodash/_realNames.js | 4 - node_modules/lodash/_reorder.js | 29 - node_modules/lodash/_replaceHolders.js | 29 - node_modules/lodash/_root.js | 9 - node_modules/lodash/_safeGet.js | 21 - node_modules/lodash/_setCacheAdd.js | 19 - node_modules/lodash/_setCacheHas.js | 14 - node_modules/lodash/_setData.js | 20 - node_modules/lodash/_setToArray.js | 18 - node_modules/lodash/_setToPairs.js | 18 - node_modules/lodash/_setToString.js | 14 - node_modules/lodash/_setWrapToString.js | 21 - node_modules/lodash/_shortOut.js | 37 - node_modules/lodash/_shuffleSelf.js | 28 - node_modules/lodash/_stackClear.js | 15 - node_modules/lodash/_stackDelete.js | 18 - node_modules/lodash/_stackGet.js | 14 - node_modules/lodash/_stackHas.js | 14 - node_modules/lodash/_stackSet.js | 34 - node_modules/lodash/_strictIndexOf.js | 23 - node_modules/lodash/_strictLastIndexOf.js | 21 - node_modules/lodash/_stringSize.js | 18 - node_modules/lodash/_stringToArray.js | 18 - node_modules/lodash/_stringToPath.js | 27 - node_modules/lodash/_toKey.js | 21 - node_modules/lodash/_toSource.js | 26 - node_modules/lodash/_trimmedEndIndex.js | 19 - node_modules/lodash/_unescapeHtmlChar.js | 21 - node_modules/lodash/_unicodeSize.js | 44 - node_modules/lodash/_unicodeToArray.js | 40 - node_modules/lodash/_unicodeWords.js | 69 - node_modules/lodash/_updateWrapDetails.js | 46 - node_modules/lodash/_wrapperClone.js | 23 - node_modules/lodash/add.js | 22 - node_modules/lodash/after.js | 42 - node_modules/lodash/array.js | 67 - node_modules/lodash/ary.js | 29 - node_modules/lodash/assign.js | 58 - node_modules/lodash/assignIn.js | 40 - node_modules/lodash/assignInWith.js | 38 - node_modules/lodash/assignWith.js | 37 - node_modules/lodash/at.js | 23 - node_modules/lodash/attempt.js | 35 - node_modules/lodash/before.js | 40 - node_modules/lodash/bind.js | 57 - node_modules/lodash/bindAll.js | 41 - node_modules/lodash/bindKey.js | 68 - node_modules/lodash/camelCase.js | 29 - node_modules/lodash/capitalize.js | 23 - node_modules/lodash/castArray.js | 44 - node_modules/lodash/ceil.js | 26 - node_modules/lodash/chain.js | 38 - node_modules/lodash/chunk.js | 50 - node_modules/lodash/clamp.js | 39 - node_modules/lodash/clone.js | 36 - node_modules/lodash/cloneDeep.js | 29 - node_modules/lodash/cloneDeepWith.js | 40 - node_modules/lodash/cloneWith.js | 42 - node_modules/lodash/collection.js | 30 - node_modules/lodash/commit.js | 33 - node_modules/lodash/compact.js | 31 - node_modules/lodash/concat.js | 43 - node_modules/lodash/cond.js | 60 - node_modules/lodash/conforms.js | 35 - node_modules/lodash/conformsTo.js | 32 - node_modules/lodash/constant.js | 26 - node_modules/lodash/core.js | 3877 ---- node_modules/lodash/core.min.js | 29 - node_modules/lodash/countBy.js | 40 - node_modules/lodash/create.js | 43 - node_modules/lodash/curry.js | 57 - node_modules/lodash/curryRight.js | 54 - node_modules/lodash/date.js | 3 - node_modules/lodash/debounce.js | 191 - node_modules/lodash/deburr.js | 45 - node_modules/lodash/defaultTo.js | 25 - node_modules/lodash/defaults.js | 64 - node_modules/lodash/defaultsDeep.js | 30 - node_modules/lodash/defer.js | 26 - node_modules/lodash/delay.js | 28 - node_modules/lodash/difference.js | 33 - node_modules/lodash/differenceBy.js | 44 - node_modules/lodash/differenceWith.js | 40 - node_modules/lodash/divide.js | 22 - node_modules/lodash/drop.js | 38 - node_modules/lodash/dropRight.js | 39 - node_modules/lodash/dropRightWhile.js | 45 - node_modules/lodash/dropWhile.js | 45 - node_modules/lodash/each.js | 1 - node_modules/lodash/eachRight.js | 1 - node_modules/lodash/endsWith.js | 43 - node_modules/lodash/entries.js | 1 - node_modules/lodash/entriesIn.js | 1 - node_modules/lodash/eq.js | 37 - node_modules/lodash/escape.js | 43 - node_modules/lodash/escapeRegExp.js | 32 - node_modules/lodash/every.js | 56 - node_modules/lodash/extend.js | 1 - node_modules/lodash/extendWith.js | 1 - node_modules/lodash/fill.js | 45 - node_modules/lodash/filter.js | 52 - node_modules/lodash/find.js | 42 - node_modules/lodash/findIndex.js | 55 - node_modules/lodash/findKey.js | 44 - node_modules/lodash/findLast.js | 25 - node_modules/lodash/findLastIndex.js | 59 - node_modules/lodash/findLastKey.js | 44 - node_modules/lodash/first.js | 1 - node_modules/lodash/flake.lock | 40 - node_modules/lodash/flake.nix | 20 - node_modules/lodash/flatMap.js | 29 - node_modules/lodash/flatMapDeep.js | 31 - node_modules/lodash/flatMapDepth.js | 31 - node_modules/lodash/flatten.js | 22 - node_modules/lodash/flattenDeep.js | 25 - node_modules/lodash/flattenDepth.js | 33 - node_modules/lodash/flip.js | 28 - node_modules/lodash/floor.js | 26 - node_modules/lodash/flow.js | 27 - node_modules/lodash/flowRight.js | 26 - node_modules/lodash/forEach.js | 41 - node_modules/lodash/forEachRight.js | 31 - node_modules/lodash/forIn.js | 39 - node_modules/lodash/forInRight.js | 37 - node_modules/lodash/forOwn.js | 36 - node_modules/lodash/forOwnRight.js | 34 - node_modules/lodash/fp.js | 2 - node_modules/lodash/fp/F.js | 1 - node_modules/lodash/fp/T.js | 1 - node_modules/lodash/fp/__.js | 1 - node_modules/lodash/fp/_baseConvert.js | 569 - node_modules/lodash/fp/_convertBrowser.js | 18 - node_modules/lodash/fp/_falseOptions.js | 7 - node_modules/lodash/fp/_mapping.js | 358 - node_modules/lodash/fp/_util.js | 16 - node_modules/lodash/fp/add.js | 5 - node_modules/lodash/fp/after.js | 5 - node_modules/lodash/fp/all.js | 1 - node_modules/lodash/fp/allPass.js | 1 - node_modules/lodash/fp/always.js | 1 - node_modules/lodash/fp/any.js | 1 - node_modules/lodash/fp/anyPass.js | 1 - node_modules/lodash/fp/apply.js | 1 - node_modules/lodash/fp/array.js | 2 - node_modules/lodash/fp/ary.js | 5 - node_modules/lodash/fp/assign.js | 5 - node_modules/lodash/fp/assignAll.js | 5 - node_modules/lodash/fp/assignAllWith.js | 5 - node_modules/lodash/fp/assignIn.js | 5 - node_modules/lodash/fp/assignInAll.js | 5 - node_modules/lodash/fp/assignInAllWith.js | 5 - node_modules/lodash/fp/assignInWith.js | 5 - node_modules/lodash/fp/assignWith.js | 5 - node_modules/lodash/fp/assoc.js | 1 - node_modules/lodash/fp/assocPath.js | 1 - node_modules/lodash/fp/at.js | 5 - node_modules/lodash/fp/attempt.js | 5 - node_modules/lodash/fp/before.js | 5 - node_modules/lodash/fp/bind.js | 5 - node_modules/lodash/fp/bindAll.js | 5 - node_modules/lodash/fp/bindKey.js | 5 - node_modules/lodash/fp/camelCase.js | 5 - node_modules/lodash/fp/capitalize.js | 5 - node_modules/lodash/fp/castArray.js | 5 - node_modules/lodash/fp/ceil.js | 5 - node_modules/lodash/fp/chain.js | 5 - node_modules/lodash/fp/chunk.js | 5 - node_modules/lodash/fp/clamp.js | 5 - node_modules/lodash/fp/clone.js | 5 - node_modules/lodash/fp/cloneDeep.js | 5 - node_modules/lodash/fp/cloneDeepWith.js | 5 - node_modules/lodash/fp/cloneWith.js | 5 - node_modules/lodash/fp/collection.js | 2 - node_modules/lodash/fp/commit.js | 5 - node_modules/lodash/fp/compact.js | 5 - node_modules/lodash/fp/complement.js | 1 - node_modules/lodash/fp/compose.js | 1 - node_modules/lodash/fp/concat.js | 5 - node_modules/lodash/fp/cond.js | 5 - node_modules/lodash/fp/conforms.js | 1 - node_modules/lodash/fp/conformsTo.js | 5 - node_modules/lodash/fp/constant.js | 5 - node_modules/lodash/fp/contains.js | 1 - node_modules/lodash/fp/convert.js | 18 - node_modules/lodash/fp/countBy.js | 5 - node_modules/lodash/fp/create.js | 5 - node_modules/lodash/fp/curry.js | 5 - node_modules/lodash/fp/curryN.js | 5 - node_modules/lodash/fp/curryRight.js | 5 - node_modules/lodash/fp/curryRightN.js | 5 - node_modules/lodash/fp/date.js | 2 - node_modules/lodash/fp/debounce.js | 5 - node_modules/lodash/fp/deburr.js | 5 - node_modules/lodash/fp/defaultTo.js | 5 - node_modules/lodash/fp/defaults.js | 5 - node_modules/lodash/fp/defaultsAll.js | 5 - node_modules/lodash/fp/defaultsDeep.js | 5 - node_modules/lodash/fp/defaultsDeepAll.js | 5 - node_modules/lodash/fp/defer.js | 5 - node_modules/lodash/fp/delay.js | 5 - node_modules/lodash/fp/difference.js | 5 - node_modules/lodash/fp/differenceBy.js | 5 - node_modules/lodash/fp/differenceWith.js | 5 - node_modules/lodash/fp/dissoc.js | 1 - node_modules/lodash/fp/dissocPath.js | 1 - node_modules/lodash/fp/divide.js | 5 - node_modules/lodash/fp/drop.js | 5 - node_modules/lodash/fp/dropLast.js | 1 - node_modules/lodash/fp/dropLastWhile.js | 1 - node_modules/lodash/fp/dropRight.js | 5 - node_modules/lodash/fp/dropRightWhile.js | 5 - node_modules/lodash/fp/dropWhile.js | 5 - node_modules/lodash/fp/each.js | 1 - node_modules/lodash/fp/eachRight.js | 1 - node_modules/lodash/fp/endsWith.js | 5 - node_modules/lodash/fp/entries.js | 1 - node_modules/lodash/fp/entriesIn.js | 1 - node_modules/lodash/fp/eq.js | 5 - node_modules/lodash/fp/equals.js | 1 - node_modules/lodash/fp/escape.js | 5 - node_modules/lodash/fp/escapeRegExp.js | 5 - node_modules/lodash/fp/every.js | 5 - node_modules/lodash/fp/extend.js | 1 - node_modules/lodash/fp/extendAll.js | 1 - node_modules/lodash/fp/extendAllWith.js | 1 - node_modules/lodash/fp/extendWith.js | 1 - node_modules/lodash/fp/fill.js | 5 - node_modules/lodash/fp/filter.js | 5 - node_modules/lodash/fp/find.js | 5 - node_modules/lodash/fp/findFrom.js | 5 - node_modules/lodash/fp/findIndex.js | 5 - node_modules/lodash/fp/findIndexFrom.js | 5 - node_modules/lodash/fp/findKey.js | 5 - node_modules/lodash/fp/findLast.js | 5 - node_modules/lodash/fp/findLastFrom.js | 5 - node_modules/lodash/fp/findLastIndex.js | 5 - node_modules/lodash/fp/findLastIndexFrom.js | 5 - node_modules/lodash/fp/findLastKey.js | 5 - node_modules/lodash/fp/first.js | 1 - node_modules/lodash/fp/flatMap.js | 5 - node_modules/lodash/fp/flatMapDeep.js | 5 - node_modules/lodash/fp/flatMapDepth.js | 5 - node_modules/lodash/fp/flatten.js | 5 - node_modules/lodash/fp/flattenDeep.js | 5 - node_modules/lodash/fp/flattenDepth.js | 5 - node_modules/lodash/fp/flip.js | 5 - node_modules/lodash/fp/floor.js | 5 - node_modules/lodash/fp/flow.js | 5 - node_modules/lodash/fp/flowRight.js | 5 - node_modules/lodash/fp/forEach.js | 5 - node_modules/lodash/fp/forEachRight.js | 5 - node_modules/lodash/fp/forIn.js | 5 - node_modules/lodash/fp/forInRight.js | 5 - node_modules/lodash/fp/forOwn.js | 5 - node_modules/lodash/fp/forOwnRight.js | 5 - node_modules/lodash/fp/fromPairs.js | 5 - node_modules/lodash/fp/function.js | 2 - node_modules/lodash/fp/functions.js | 5 - node_modules/lodash/fp/functionsIn.js | 5 - node_modules/lodash/fp/get.js | 5 - node_modules/lodash/fp/getOr.js | 5 - node_modules/lodash/fp/groupBy.js | 5 - node_modules/lodash/fp/gt.js | 5 - node_modules/lodash/fp/gte.js | 5 - node_modules/lodash/fp/has.js | 5 - node_modules/lodash/fp/hasIn.js | 5 - node_modules/lodash/fp/head.js | 5 - node_modules/lodash/fp/identical.js | 1 - node_modules/lodash/fp/identity.js | 5 - node_modules/lodash/fp/inRange.js | 5 - node_modules/lodash/fp/includes.js | 5 - node_modules/lodash/fp/includesFrom.js | 5 - node_modules/lodash/fp/indexBy.js | 1 - node_modules/lodash/fp/indexOf.js | 5 - node_modules/lodash/fp/indexOfFrom.js | 5 - node_modules/lodash/fp/init.js | 1 - node_modules/lodash/fp/initial.js | 5 - node_modules/lodash/fp/intersection.js | 5 - node_modules/lodash/fp/intersectionBy.js | 5 - node_modules/lodash/fp/intersectionWith.js | 5 - node_modules/lodash/fp/invert.js | 5 - node_modules/lodash/fp/invertBy.js | 5 - node_modules/lodash/fp/invertObj.js | 1 - node_modules/lodash/fp/invoke.js | 5 - node_modules/lodash/fp/invokeArgs.js | 5 - node_modules/lodash/fp/invokeArgsMap.js | 5 - node_modules/lodash/fp/invokeMap.js | 5 - node_modules/lodash/fp/isArguments.js | 5 - node_modules/lodash/fp/isArray.js | 5 - node_modules/lodash/fp/isArrayBuffer.js | 5 - node_modules/lodash/fp/isArrayLike.js | 5 - node_modules/lodash/fp/isArrayLikeObject.js | 5 - node_modules/lodash/fp/isBoolean.js | 5 - node_modules/lodash/fp/isBuffer.js | 5 - node_modules/lodash/fp/isDate.js | 5 - node_modules/lodash/fp/isElement.js | 5 - node_modules/lodash/fp/isEmpty.js | 5 - node_modules/lodash/fp/isEqual.js | 5 - node_modules/lodash/fp/isEqualWith.js | 5 - node_modules/lodash/fp/isError.js | 5 - node_modules/lodash/fp/isFinite.js | 5 - node_modules/lodash/fp/isFunction.js | 5 - node_modules/lodash/fp/isInteger.js | 5 - node_modules/lodash/fp/isLength.js | 5 - node_modules/lodash/fp/isMap.js | 5 - node_modules/lodash/fp/isMatch.js | 5 - node_modules/lodash/fp/isMatchWith.js | 5 - node_modules/lodash/fp/isNaN.js | 5 - node_modules/lodash/fp/isNative.js | 5 - node_modules/lodash/fp/isNil.js | 5 - node_modules/lodash/fp/isNull.js | 5 - node_modules/lodash/fp/isNumber.js | 5 - node_modules/lodash/fp/isObject.js | 5 - node_modules/lodash/fp/isObjectLike.js | 5 - node_modules/lodash/fp/isPlainObject.js | 5 - node_modules/lodash/fp/isRegExp.js | 5 - node_modules/lodash/fp/isSafeInteger.js | 5 - node_modules/lodash/fp/isSet.js | 5 - node_modules/lodash/fp/isString.js | 5 - node_modules/lodash/fp/isSymbol.js | 5 - node_modules/lodash/fp/isTypedArray.js | 5 - node_modules/lodash/fp/isUndefined.js | 5 - node_modules/lodash/fp/isWeakMap.js | 5 - node_modules/lodash/fp/isWeakSet.js | 5 - node_modules/lodash/fp/iteratee.js | 5 - node_modules/lodash/fp/join.js | 5 - node_modules/lodash/fp/juxt.js | 1 - node_modules/lodash/fp/kebabCase.js | 5 - node_modules/lodash/fp/keyBy.js | 5 - node_modules/lodash/fp/keys.js | 5 - node_modules/lodash/fp/keysIn.js | 5 - node_modules/lodash/fp/lang.js | 2 - node_modules/lodash/fp/last.js | 5 - node_modules/lodash/fp/lastIndexOf.js | 5 - node_modules/lodash/fp/lastIndexOfFrom.js | 5 - node_modules/lodash/fp/lowerCase.js | 5 - node_modules/lodash/fp/lowerFirst.js | 5 - node_modules/lodash/fp/lt.js | 5 - node_modules/lodash/fp/lte.js | 5 - node_modules/lodash/fp/map.js | 5 - node_modules/lodash/fp/mapKeys.js | 5 - node_modules/lodash/fp/mapValues.js | 5 - node_modules/lodash/fp/matches.js | 1 - node_modules/lodash/fp/matchesProperty.js | 5 - node_modules/lodash/fp/math.js | 2 - node_modules/lodash/fp/max.js | 5 - node_modules/lodash/fp/maxBy.js | 5 - node_modules/lodash/fp/mean.js | 5 - node_modules/lodash/fp/meanBy.js | 5 - node_modules/lodash/fp/memoize.js | 5 - node_modules/lodash/fp/merge.js | 5 - node_modules/lodash/fp/mergeAll.js | 5 - node_modules/lodash/fp/mergeAllWith.js | 5 - node_modules/lodash/fp/mergeWith.js | 5 - node_modules/lodash/fp/method.js | 5 - node_modules/lodash/fp/methodOf.js | 5 - node_modules/lodash/fp/min.js | 5 - node_modules/lodash/fp/minBy.js | 5 - node_modules/lodash/fp/mixin.js | 5 - node_modules/lodash/fp/multiply.js | 5 - node_modules/lodash/fp/nAry.js | 1 - node_modules/lodash/fp/negate.js | 5 - node_modules/lodash/fp/next.js | 5 - node_modules/lodash/fp/noop.js | 5 - node_modules/lodash/fp/now.js | 5 - node_modules/lodash/fp/nth.js | 5 - node_modules/lodash/fp/nthArg.js | 5 - node_modules/lodash/fp/number.js | 2 - node_modules/lodash/fp/object.js | 2 - node_modules/lodash/fp/omit.js | 5 - node_modules/lodash/fp/omitAll.js | 1 - node_modules/lodash/fp/omitBy.js | 5 - node_modules/lodash/fp/once.js | 5 - node_modules/lodash/fp/orderBy.js | 5 - node_modules/lodash/fp/over.js | 5 - node_modules/lodash/fp/overArgs.js | 5 - node_modules/lodash/fp/overEvery.js | 5 - node_modules/lodash/fp/overSome.js | 5 - node_modules/lodash/fp/pad.js | 5 - node_modules/lodash/fp/padChars.js | 5 - node_modules/lodash/fp/padCharsEnd.js | 5 - node_modules/lodash/fp/padCharsStart.js | 5 - node_modules/lodash/fp/padEnd.js | 5 - node_modules/lodash/fp/padStart.js | 5 - node_modules/lodash/fp/parseInt.js | 5 - node_modules/lodash/fp/partial.js | 5 - node_modules/lodash/fp/partialRight.js | 5 - node_modules/lodash/fp/partition.js | 5 - node_modules/lodash/fp/path.js | 1 - node_modules/lodash/fp/pathEq.js | 1 - node_modules/lodash/fp/pathOr.js | 1 - node_modules/lodash/fp/paths.js | 1 - node_modules/lodash/fp/pick.js | 5 - node_modules/lodash/fp/pickAll.js | 1 - node_modules/lodash/fp/pickBy.js | 5 - node_modules/lodash/fp/pipe.js | 1 - node_modules/lodash/fp/placeholder.js | 6 - node_modules/lodash/fp/plant.js | 5 - node_modules/lodash/fp/pluck.js | 1 - node_modules/lodash/fp/prop.js | 1 - node_modules/lodash/fp/propEq.js | 1 - node_modules/lodash/fp/propOr.js | 1 - node_modules/lodash/fp/property.js | 1 - node_modules/lodash/fp/propertyOf.js | 5 - node_modules/lodash/fp/props.js | 1 - node_modules/lodash/fp/pull.js | 5 - node_modules/lodash/fp/pullAll.js | 5 - node_modules/lodash/fp/pullAllBy.js | 5 - node_modules/lodash/fp/pullAllWith.js | 5 - node_modules/lodash/fp/pullAt.js | 5 - node_modules/lodash/fp/random.js | 5 - node_modules/lodash/fp/range.js | 5 - node_modules/lodash/fp/rangeRight.js | 5 - node_modules/lodash/fp/rangeStep.js | 5 - node_modules/lodash/fp/rangeStepRight.js | 5 - node_modules/lodash/fp/rearg.js | 5 - node_modules/lodash/fp/reduce.js | 5 - node_modules/lodash/fp/reduceRight.js | 5 - node_modules/lodash/fp/reject.js | 5 - node_modules/lodash/fp/remove.js | 5 - node_modules/lodash/fp/repeat.js | 5 - node_modules/lodash/fp/replace.js | 5 - node_modules/lodash/fp/rest.js | 5 - node_modules/lodash/fp/restFrom.js | 5 - node_modules/lodash/fp/result.js | 5 - node_modules/lodash/fp/reverse.js | 5 - node_modules/lodash/fp/round.js | 5 - node_modules/lodash/fp/sample.js | 5 - node_modules/lodash/fp/sampleSize.js | 5 - node_modules/lodash/fp/seq.js | 2 - node_modules/lodash/fp/set.js | 5 - node_modules/lodash/fp/setWith.js | 5 - node_modules/lodash/fp/shuffle.js | 5 - node_modules/lodash/fp/size.js | 5 - node_modules/lodash/fp/slice.js | 5 - node_modules/lodash/fp/snakeCase.js | 5 - node_modules/lodash/fp/some.js | 5 - node_modules/lodash/fp/sortBy.js | 5 - node_modules/lodash/fp/sortedIndex.js | 5 - node_modules/lodash/fp/sortedIndexBy.js | 5 - node_modules/lodash/fp/sortedIndexOf.js | 5 - node_modules/lodash/fp/sortedLastIndex.js | 5 - node_modules/lodash/fp/sortedLastIndexBy.js | 5 - node_modules/lodash/fp/sortedLastIndexOf.js | 5 - node_modules/lodash/fp/sortedUniq.js | 5 - node_modules/lodash/fp/sortedUniqBy.js | 5 - node_modules/lodash/fp/split.js | 5 - node_modules/lodash/fp/spread.js | 5 - node_modules/lodash/fp/spreadFrom.js | 5 - node_modules/lodash/fp/startCase.js | 5 - node_modules/lodash/fp/startsWith.js | 5 - node_modules/lodash/fp/string.js | 2 - node_modules/lodash/fp/stubArray.js | 5 - node_modules/lodash/fp/stubFalse.js | 5 - node_modules/lodash/fp/stubObject.js | 5 - node_modules/lodash/fp/stubString.js | 5 - node_modules/lodash/fp/stubTrue.js | 5 - node_modules/lodash/fp/subtract.js | 5 - node_modules/lodash/fp/sum.js | 5 - node_modules/lodash/fp/sumBy.js | 5 - node_modules/lodash/fp/symmetricDifference.js | 1 - .../lodash/fp/symmetricDifferenceBy.js | 1 - .../lodash/fp/symmetricDifferenceWith.js | 1 - node_modules/lodash/fp/tail.js | 5 - node_modules/lodash/fp/take.js | 5 - node_modules/lodash/fp/takeLast.js | 1 - node_modules/lodash/fp/takeLastWhile.js | 1 - node_modules/lodash/fp/takeRight.js | 5 - node_modules/lodash/fp/takeRightWhile.js | 5 - node_modules/lodash/fp/takeWhile.js | 5 - node_modules/lodash/fp/tap.js | 5 - node_modules/lodash/fp/template.js | 5 - node_modules/lodash/fp/templateSettings.js | 5 - node_modules/lodash/fp/throttle.js | 5 - node_modules/lodash/fp/thru.js | 5 - node_modules/lodash/fp/times.js | 5 - node_modules/lodash/fp/toArray.js | 5 - node_modules/lodash/fp/toFinite.js | 5 - node_modules/lodash/fp/toInteger.js | 5 - node_modules/lodash/fp/toIterator.js | 5 - node_modules/lodash/fp/toJSON.js | 5 - node_modules/lodash/fp/toLength.js | 5 - node_modules/lodash/fp/toLower.js | 5 - node_modules/lodash/fp/toNumber.js | 5 - node_modules/lodash/fp/toPairs.js | 5 - node_modules/lodash/fp/toPairsIn.js | 5 - node_modules/lodash/fp/toPath.js | 5 - node_modules/lodash/fp/toPlainObject.js | 5 - node_modules/lodash/fp/toSafeInteger.js | 5 - node_modules/lodash/fp/toString.js | 5 - node_modules/lodash/fp/toUpper.js | 5 - node_modules/lodash/fp/transform.js | 5 - node_modules/lodash/fp/trim.js | 5 - node_modules/lodash/fp/trimChars.js | 5 - node_modules/lodash/fp/trimCharsEnd.js | 5 - node_modules/lodash/fp/trimCharsStart.js | 5 - node_modules/lodash/fp/trimEnd.js | 5 - node_modules/lodash/fp/trimStart.js | 5 - node_modules/lodash/fp/truncate.js | 5 - node_modules/lodash/fp/unapply.js | 1 - node_modules/lodash/fp/unary.js | 5 - node_modules/lodash/fp/unescape.js | 5 - node_modules/lodash/fp/union.js | 5 - node_modules/lodash/fp/unionBy.js | 5 - node_modules/lodash/fp/unionWith.js | 5 - node_modules/lodash/fp/uniq.js | 5 - node_modules/lodash/fp/uniqBy.js | 5 - node_modules/lodash/fp/uniqWith.js | 5 - node_modules/lodash/fp/uniqueId.js | 5 - node_modules/lodash/fp/unnest.js | 1 - node_modules/lodash/fp/unset.js | 5 - node_modules/lodash/fp/unzip.js | 5 - node_modules/lodash/fp/unzipWith.js | 5 - node_modules/lodash/fp/update.js | 5 - node_modules/lodash/fp/updateWith.js | 5 - node_modules/lodash/fp/upperCase.js | 5 - node_modules/lodash/fp/upperFirst.js | 5 - node_modules/lodash/fp/useWith.js | 1 - node_modules/lodash/fp/util.js | 2 - node_modules/lodash/fp/value.js | 5 - node_modules/lodash/fp/valueOf.js | 5 - node_modules/lodash/fp/values.js | 5 - node_modules/lodash/fp/valuesIn.js | 5 - node_modules/lodash/fp/where.js | 1 - node_modules/lodash/fp/whereEq.js | 1 - node_modules/lodash/fp/without.js | 5 - node_modules/lodash/fp/words.js | 5 - node_modules/lodash/fp/wrap.js | 5 - node_modules/lodash/fp/wrapperAt.js | 5 - node_modules/lodash/fp/wrapperChain.js | 5 - node_modules/lodash/fp/wrapperLodash.js | 5 - node_modules/lodash/fp/wrapperReverse.js | 5 - node_modules/lodash/fp/wrapperValue.js | 5 - node_modules/lodash/fp/xor.js | 5 - node_modules/lodash/fp/xorBy.js | 5 - node_modules/lodash/fp/xorWith.js | 5 - node_modules/lodash/fp/zip.js | 5 - node_modules/lodash/fp/zipAll.js | 5 - node_modules/lodash/fp/zipObj.js | 1 - node_modules/lodash/fp/zipObject.js | 5 - node_modules/lodash/fp/zipObjectDeep.js | 5 - node_modules/lodash/fp/zipWith.js | 5 - node_modules/lodash/fromPairs.js | 28 - node_modules/lodash/function.js | 25 - node_modules/lodash/functions.js | 31 - node_modules/lodash/functionsIn.js | 31 - node_modules/lodash/get.js | 33 - node_modules/lodash/groupBy.js | 41 - node_modules/lodash/gt.js | 29 - node_modules/lodash/gte.js | 30 - node_modules/lodash/has.js | 35 - node_modules/lodash/hasIn.js | 34 - node_modules/lodash/head.js | 23 - node_modules/lodash/identity.js | 21 - node_modules/lodash/inRange.js | 55 - node_modules/lodash/includes.js | 53 - node_modules/lodash/index.js | 1 - node_modules/lodash/indexOf.js | 42 - node_modules/lodash/initial.js | 22 - node_modules/lodash/intersection.js | 30 - node_modules/lodash/intersectionBy.js | 45 - node_modules/lodash/intersectionWith.js | 41 - node_modules/lodash/invert.js | 42 - node_modules/lodash/invertBy.js | 56 - node_modules/lodash/invoke.js | 24 - node_modules/lodash/invokeMap.js | 41 - node_modules/lodash/isArguments.js | 36 - node_modules/lodash/isArray.js | 26 - node_modules/lodash/isArrayBuffer.js | 27 - node_modules/lodash/isArrayLike.js | 33 - node_modules/lodash/isArrayLikeObject.js | 33 - node_modules/lodash/isBoolean.js | 29 - node_modules/lodash/isBuffer.js | 38 - node_modules/lodash/isDate.js | 27 - node_modules/lodash/isElement.js | 25 - node_modules/lodash/isEmpty.js | 77 - node_modules/lodash/isEqual.js | 35 - node_modules/lodash/isEqualWith.js | 41 - node_modules/lodash/isError.js | 36 - node_modules/lodash/isFinite.js | 36 - node_modules/lodash/isFunction.js | 37 - node_modules/lodash/isInteger.js | 33 - node_modules/lodash/isLength.js | 35 - node_modules/lodash/isMap.js | 27 - node_modules/lodash/isMatch.js | 36 - node_modules/lodash/isMatchWith.js | 41 - node_modules/lodash/isNaN.js | 38 - node_modules/lodash/isNative.js | 40 - node_modules/lodash/isNil.js | 25 - node_modules/lodash/isNull.js | 22 - node_modules/lodash/isNumber.js | 38 - node_modules/lodash/isObject.js | 31 - node_modules/lodash/isObjectLike.js | 29 - node_modules/lodash/isPlainObject.js | 62 - node_modules/lodash/isRegExp.js | 27 - node_modules/lodash/isSafeInteger.js | 37 - node_modules/lodash/isSet.js | 27 - node_modules/lodash/isString.js | 30 - node_modules/lodash/isSymbol.js | 29 - node_modules/lodash/isTypedArray.js | 27 - node_modules/lodash/isUndefined.js | 22 - node_modules/lodash/isWeakMap.js | 28 - node_modules/lodash/isWeakSet.js | 28 - node_modules/lodash/iteratee.js | 53 - node_modules/lodash/join.js | 26 - node_modules/lodash/kebabCase.js | 28 - node_modules/lodash/keyBy.js | 36 - node_modules/lodash/keys.js | 37 - node_modules/lodash/keysIn.js | 32 - node_modules/lodash/lang.js | 58 - node_modules/lodash/last.js | 20 - node_modules/lodash/lastIndexOf.js | 46 - node_modules/lodash/lodash.js | 17209 ---------------- node_modules/lodash/lodash.min.js | 140 - node_modules/lodash/lowerCase.js | 27 - node_modules/lodash/lowerFirst.js | 22 - node_modules/lodash/lt.js | 29 - node_modules/lodash/lte.js | 30 - node_modules/lodash/map.js | 53 - node_modules/lodash/mapKeys.js | 36 - node_modules/lodash/mapValues.js | 43 - node_modules/lodash/matches.js | 46 - node_modules/lodash/matchesProperty.js | 44 - node_modules/lodash/math.js | 17 - node_modules/lodash/max.js | 29 - node_modules/lodash/maxBy.js | 34 - node_modules/lodash/mean.js | 22 - node_modules/lodash/meanBy.js | 31 - node_modules/lodash/memoize.js | 73 - node_modules/lodash/merge.js | 39 - node_modules/lodash/mergeWith.js | 39 - node_modules/lodash/method.js | 34 - node_modules/lodash/methodOf.js | 33 - node_modules/lodash/min.js | 29 - node_modules/lodash/minBy.js | 34 - node_modules/lodash/mixin.js | 74 - node_modules/lodash/multiply.js | 22 - node_modules/lodash/negate.js | 40 - node_modules/lodash/next.js | 35 - node_modules/lodash/noop.js | 17 - node_modules/lodash/now.js | 23 - node_modules/lodash/nth.js | 29 - node_modules/lodash/nthArg.js | 32 - node_modules/lodash/number.js | 5 - node_modules/lodash/object.js | 49 - node_modules/lodash/omit.js | 57 - node_modules/lodash/omitBy.js | 29 - node_modules/lodash/once.js | 25 - node_modules/lodash/orderBy.js | 47 - node_modules/lodash/over.js | 24 - node_modules/lodash/overArgs.js | 61 - node_modules/lodash/overEvery.js | 34 - node_modules/lodash/overSome.js | 37 - node_modules/lodash/package.json | 17 - node_modules/lodash/pad.js | 49 - node_modules/lodash/padEnd.js | 39 - node_modules/lodash/padStart.js | 39 - node_modules/lodash/parseInt.js | 43 - node_modules/lodash/partial.js | 50 - node_modules/lodash/partialRight.js | 49 - node_modules/lodash/partition.js | 43 - node_modules/lodash/pick.js | 25 - node_modules/lodash/pickBy.js | 37 - node_modules/lodash/plant.js | 48 - node_modules/lodash/property.js | 32 - node_modules/lodash/propertyOf.js | 30 - node_modules/lodash/pull.js | 29 - node_modules/lodash/pullAll.js | 29 - node_modules/lodash/pullAllBy.js | 33 - node_modules/lodash/pullAllWith.js | 32 - node_modules/lodash/pullAt.js | 43 - node_modules/lodash/random.js | 82 - node_modules/lodash/range.js | 46 - node_modules/lodash/rangeRight.js | 41 - node_modules/lodash/rearg.js | 33 - node_modules/lodash/reduce.js | 51 - node_modules/lodash/reduceRight.js | 36 - node_modules/lodash/reject.js | 46 - node_modules/lodash/release.md | 48 - node_modules/lodash/remove.js | 53 - node_modules/lodash/repeat.js | 37 - node_modules/lodash/replace.js | 29 - node_modules/lodash/rest.js | 40 - node_modules/lodash/result.js | 56 - node_modules/lodash/reverse.js | 34 - node_modules/lodash/round.js | 26 - node_modules/lodash/sample.js | 24 - node_modules/lodash/sampleSize.js | 37 - node_modules/lodash/seq.js | 16 - node_modules/lodash/set.js | 35 - node_modules/lodash/setWith.js | 32 - node_modules/lodash/shuffle.js | 25 - node_modules/lodash/size.js | 46 - node_modules/lodash/slice.js | 37 - node_modules/lodash/snakeCase.js | 28 - node_modules/lodash/some.js | 51 - node_modules/lodash/sortBy.js | 48 - node_modules/lodash/sortedIndex.js | 24 - node_modules/lodash/sortedIndexBy.js | 33 - node_modules/lodash/sortedIndexOf.js | 31 - node_modules/lodash/sortedLastIndex.js | 25 - node_modules/lodash/sortedLastIndexBy.js | 33 - node_modules/lodash/sortedLastIndexOf.js | 31 - node_modules/lodash/sortedUniq.js | 24 - node_modules/lodash/sortedUniqBy.js | 26 - node_modules/lodash/split.js | 52 - node_modules/lodash/spread.js | 63 - node_modules/lodash/startCase.js | 29 - node_modules/lodash/startsWith.js | 39 - node_modules/lodash/string.js | 33 - node_modules/lodash/stubArray.js | 23 - node_modules/lodash/stubFalse.js | 18 - node_modules/lodash/stubObject.js | 23 - node_modules/lodash/stubString.js | 18 - node_modules/lodash/stubTrue.js | 18 - node_modules/lodash/subtract.js | 22 - node_modules/lodash/sum.js | 24 - node_modules/lodash/sumBy.js | 33 - node_modules/lodash/tail.js | 22 - node_modules/lodash/take.js | 37 - node_modules/lodash/takeRight.js | 39 - node_modules/lodash/takeRightWhile.js | 45 - node_modules/lodash/takeWhile.js | 45 - node_modules/lodash/tap.js | 29 - node_modules/lodash/template.js | 272 - node_modules/lodash/templateSettings.js | 67 - node_modules/lodash/throttle.js | 69 - node_modules/lodash/thru.js | 28 - node_modules/lodash/times.js | 51 - node_modules/lodash/toArray.js | 58 - node_modules/lodash/toFinite.js | 42 - node_modules/lodash/toInteger.js | 36 - node_modules/lodash/toIterator.js | 23 - node_modules/lodash/toJSON.js | 1 - node_modules/lodash/toLength.js | 38 - node_modules/lodash/toLower.js | 28 - node_modules/lodash/toNumber.js | 64 - node_modules/lodash/toPairs.js | 30 - node_modules/lodash/toPairsIn.js | 30 - node_modules/lodash/toPath.js | 33 - node_modules/lodash/toPlainObject.js | 32 - node_modules/lodash/toSafeInteger.js | 37 - node_modules/lodash/toString.js | 28 - node_modules/lodash/toUpper.js | 28 - node_modules/lodash/transform.js | 65 - node_modules/lodash/trim.js | 47 - node_modules/lodash/trimEnd.js | 41 - node_modules/lodash/trimStart.js | 43 - node_modules/lodash/truncate.js | 111 - node_modules/lodash/unary.js | 22 - node_modules/lodash/unescape.js | 34 - node_modules/lodash/union.js | 26 - node_modules/lodash/unionBy.js | 39 - node_modules/lodash/unionWith.js | 34 - node_modules/lodash/uniq.js | 25 - node_modules/lodash/uniqBy.js | 31 - node_modules/lodash/uniqWith.js | 28 - node_modules/lodash/uniqueId.js | 28 - node_modules/lodash/unset.js | 34 - node_modules/lodash/unzip.js | 45 - node_modules/lodash/unzipWith.js | 39 - node_modules/lodash/update.js | 35 - node_modules/lodash/updateWith.js | 33 - node_modules/lodash/upperCase.js | 27 - node_modules/lodash/upperFirst.js | 22 - node_modules/lodash/util.js | 34 - node_modules/lodash/value.js | 1 - node_modules/lodash/valueOf.js | 1 - node_modules/lodash/values.js | 34 - node_modules/lodash/valuesIn.js | 32 - node_modules/lodash/without.js | 31 - node_modules/lodash/words.js | 35 - node_modules/lodash/wrap.js | 30 - node_modules/lodash/wrapperAt.js | 48 - node_modules/lodash/wrapperChain.js | 34 - node_modules/lodash/wrapperLodash.js | 147 - node_modules/lodash/wrapperReverse.js | 44 - node_modules/lodash/wrapperValue.js | 21 - node_modules/lodash/xor.js | 28 - node_modules/lodash/xorBy.js | 39 - node_modules/lodash/xorWith.js | 34 - node_modules/lodash/zip.js | 22 - node_modules/lodash/zipObject.js | 24 - node_modules/lodash/zipObjectDeep.js | 23 - node_modules/lodash/zipWith.js | 32 - node_modules/magic-bytes.js/.gitattributes | 1 - .../.github/workflows/build-and-test.yml | 39 - .../.github/workflows/static-webapp.yml | 48 - node_modules/magic-bytes.js/.prettierignore | 1 - node_modules/magic-bytes.js/LICENSE | 21 - node_modules/magic-bytes.js/README.md | 109 - .../magic-bytes.js/commitlint.config.js | 1 - node_modules/magic-bytes.js/dist/index.d.ts | 7 - .../magic-bytes.js/dist/index.d.ts.map | 1 - node_modules/magic-bytes.js/dist/index.js | 60 - .../magic-bytes.js/dist/index.spec.d.ts | 2 - .../magic-bytes.js/dist/index.spec.d.ts.map | 1 - .../dist/model/pattern-tree.d.ts | 4 - .../dist/model/pattern-tree.d.ts.map | 1 - .../magic-bytes.js/dist/model/pattern-tree.js | 1155 -- .../magic-bytes.js/dist/model/toHex.d.ts | 3 - .../magic-bytes.js/dist/model/toHex.d.ts.map | 1 - .../magic-bytes.js/dist/model/toHex.js | 8 - .../magic-bytes.js/dist/model/tree.d.ts | 30 - .../magic-bytes.js/dist/model/tree.d.ts.map | 1 - .../magic-bytes.js/dist/model/tree.js | 70 - .../magic-bytes.js/dist/model/tree.spec.d.ts | 2 - .../dist/model/tree.spec.d.ts.map | 1 - node_modules/magic-bytes.js/jest.config.js | 5 - node_modules/magic-bytes.js/package.json | 72 - node_modules/magic-bytes.js/tsconfig.json | 78 - node_modules/path/.npmignore | 1 - node_modules/path/LICENSE | 18 - node_modules/path/README.md | 15 - node_modules/path/package.json | 24 - node_modules/path/path.js | 628 - node_modules/process/.eslintrc | 21 - node_modules/process/LICENSE | 22 - node_modules/process/README.md | 26 - node_modules/process/browser.js | 184 - node_modules/process/index.js | 2 - node_modules/process/package.json | 27 - node_modules/process/test.js | 199 - node_modules/ts-mixer/CHANGELOG.md | 120 - node_modules/ts-mixer/LICENSE | 21 - node_modules/ts-mixer/README.md | 270 - node_modules/ts-mixer/dist/cjs/decorator.js | 109 - node_modules/ts-mixer/dist/cjs/index.js | 12 - .../ts-mixer/dist/cjs/mixin-tracking.js | 42 - node_modules/ts-mixer/dist/cjs/mixins.js | 82 - node_modules/ts-mixer/dist/cjs/proxy.js | 82 - node_modules/ts-mixer/dist/cjs/settings.js | 9 - node_modules/ts-mixer/dist/cjs/types.js | 2 - node_modules/ts-mixer/dist/cjs/util.js | 85 - node_modules/ts-mixer/dist/esm/decorator.d.ts | 18 - node_modules/ts-mixer/dist/esm/index.d.ts | 4 - node_modules/ts-mixer/dist/esm/index.js | 366 - node_modules/ts-mixer/dist/esm/index.min.js | 1 - .../ts-mixer/dist/esm/mixin-tracking.d.ts | 4 - node_modules/ts-mixer/dist/esm/mixins.d.ts | 16 - node_modules/ts-mixer/dist/esm/proxy.d.ts | 16 - node_modules/ts-mixer/dist/esm/settings.d.ts | 7 - node_modules/ts-mixer/dist/esm/types.d.ts | 13 - node_modules/ts-mixer/dist/esm/util.d.ts | 27 - .../ts-mixer/dist/types/decorator.d.ts | 18 - node_modules/ts-mixer/dist/types/index.d.ts | 4 - .../ts-mixer/dist/types/mixin-tracking.d.ts | 4 - node_modules/ts-mixer/dist/types/mixins.d.ts | 16 - node_modules/ts-mixer/dist/types/proxy.d.ts | 16 - .../ts-mixer/dist/types/settings.d.ts | 7 - node_modules/ts-mixer/dist/types/types.d.ts | 13 - node_modules/ts-mixer/dist/types/util.d.ts | 27 - node_modules/ts-mixer/package.json | 63 - node_modules/tslib/CopyrightNotice.txt | 15 - node_modules/tslib/LICENSE.txt | 12 - node_modules/tslib/README.md | 164 - node_modules/tslib/SECURITY.md | 41 - node_modules/tslib/modules/index.d.ts | 37 - node_modules/tslib/modules/index.js | 68 - node_modules/tslib/modules/package.json | 3 - node_modules/tslib/package.json | 47 - node_modules/tslib/tslib.d.ts | 453 - node_modules/tslib/tslib.es6.html | 1 - node_modules/tslib/tslib.es6.js | 370 - node_modules/tslib/tslib.es6.mjs | 370 - node_modules/tslib/tslib.html | 1 - node_modules/tslib/tslib.js | 421 - node_modules/undici-types/README.md | 6 - node_modules/undici-types/agent.d.ts | 31 - node_modules/undici-types/api.d.ts | 43 - node_modules/undici-types/balanced-pool.d.ts | 18 - node_modules/undici-types/cache.d.ts | 36 - node_modules/undici-types/client.d.ts | 97 - node_modules/undici-types/connector.d.ts | 34 - node_modules/undici-types/content-type.d.ts | 21 - node_modules/undici-types/cookies.d.ts | 28 - .../undici-types/diagnostics-channel.d.ts | 67 - node_modules/undici-types/dispatcher.d.ts | 241 - node_modules/undici-types/errors.d.ts | 128 - node_modules/undici-types/fetch.d.ts | 209 - node_modules/undici-types/file.d.ts | 39 - node_modules/undici-types/filereader.d.ts | 54 - node_modules/undici-types/formdata.d.ts | 108 - .../undici-types/global-dispatcher.d.ts | 9 - node_modules/undici-types/global-origin.d.ts | 7 - node_modules/undici-types/handlers.d.ts | 9 - node_modules/undici-types/header.d.ts | 4 - node_modules/undici-types/index.d.ts | 63 - node_modules/undici-types/interceptors.d.ts | 5 - node_modules/undici-types/mock-agent.d.ts | 50 - node_modules/undici-types/mock-client.d.ts | 25 - node_modules/undici-types/mock-errors.d.ts | 12 - .../undici-types/mock-interceptor.d.ts | 93 - node_modules/undici-types/mock-pool.d.ts | 25 - node_modules/undici-types/package.json | 55 - node_modules/undici-types/patch.d.ts | 71 - node_modules/undici-types/pool-stats.d.ts | 19 - node_modules/undici-types/pool.d.ts | 28 - node_modules/undici-types/proxy-agent.d.ts | 30 - node_modules/undici-types/readable.d.ts | 61 - node_modules/undici-types/webidl.d.ts | 220 - node_modules/undici-types/websocket.d.ts | 131 - node_modules/undici/LICENSE | 21 - node_modules/undici/README.md | 466 - node_modules/undici/docs/docs/api/Agent.md | 80 - .../undici/docs/docs/api/BalancedPool.md | 99 - .../undici/docs/docs/api/CacheStorage.md | 30 - node_modules/undici/docs/docs/api/Client.md | 274 - .../undici/docs/docs/api/Connector.md | 115 - .../undici/docs/docs/api/ContentType.md | 57 - node_modules/undici/docs/docs/api/Cookies.md | 101 - node_modules/undici/docs/docs/api/Debug.md | 62 - .../docs/docs/api/DiagnosticsChannel.md | 204 - .../docs/docs/api/DispatchInterceptor.md | 60 - .../undici/docs/docs/api/Dispatcher.md | 1065 - node_modules/undici/docs/docs/api/Errors.md | 48 - .../undici/docs/docs/api/EventSource.md | 21 - node_modules/undici/docs/docs/api/Fetch.md | 57 - .../undici/docs/docs/api/MockAgent.md | 540 - .../undici/docs/docs/api/MockClient.md | 77 - .../undici/docs/docs/api/MockErrors.md | 12 - node_modules/undici/docs/docs/api/MockPool.md | 547 - node_modules/undici/docs/docs/api/Pool.md | 84 - .../undici/docs/docs/api/PoolStats.md | 35 - .../undici/docs/docs/api/ProxyAgent.md | 130 - .../undici/docs/docs/api/RedirectHandler.md | 96 - .../undici/docs/docs/api/RetryAgent.md | 45 - .../undici/docs/docs/api/RetryHandler.md | 114 - node_modules/undici/docs/docs/api/Util.md | 25 - .../undici/docs/docs/api/WebSocket.md | 43 - .../undici/docs/docs/api/api-lifecycle.md | 91 - .../docs/best-practices/client-certificate.md | 64 - .../docs/best-practices/mocking-request.md | 136 - .../undici/docs/docs/best-practices/proxy.md | 127 - .../docs/docs/best-practices/writing-tests.md | 20 - node_modules/undici/index-fetch.js | 21 - node_modules/undici/index.d.ts | 3 - node_modules/undici/index.js | 165 - node_modules/undici/lib/api/abort-signal.js | 57 - node_modules/undici/lib/api/api-connect.js | 108 - node_modules/undici/lib/api/api-pipeline.js | 251 - node_modules/undici/lib/api/api-request.js | 182 - node_modules/undici/lib/api/api-stream.js | 220 - node_modules/undici/lib/api/api-upgrade.js | 108 - node_modules/undici/lib/api/index.js | 7 - node_modules/undici/lib/api/readable.js | 357 - node_modules/undici/lib/api/util.js | 86 - node_modules/undici/lib/core/connect.js | 193 - node_modules/undici/lib/core/constants.js | 118 - node_modules/undici/lib/core/diagnostics.js | 202 - node_modules/undici/lib/core/errors.js | 231 - node_modules/undici/lib/core/request.js | 396 - node_modules/undici/lib/core/symbols.js | 64 - node_modules/undici/lib/core/tree.js | 152 - node_modules/undici/lib/core/util.js | 613 - node_modules/undici/lib/dispatcher/agent.js | 129 - .../undici/lib/dispatcher/balanced-pool.js | 190 - .../undici/lib/dispatcher/client-h1.js | 1347 -- .../undici/lib/dispatcher/client-h2.js | 695 - node_modules/undici/lib/dispatcher/client.js | 615 - .../undici/lib/dispatcher/dispatcher-base.js | 192 - .../undici/lib/dispatcher/dispatcher.js | 65 - .../undici/lib/dispatcher/fixed-queue.js | 117 - .../undici/lib/dispatcher/pool-base.js | 194 - .../undici/lib/dispatcher/pool-stats.js | 34 - node_modules/undici/lib/dispatcher/pool.js | 93 - .../undici/lib/dispatcher/proxy-agent.js | 190 - .../undici/lib/dispatcher/retry-agent.js | 35 - node_modules/undici/lib/global.js | 32 - .../undici/lib/handler/decorator-handler.js | 44 - .../undici/lib/handler/redirect-handler.js | 232 - .../undici/lib/handler/retry-handler.js | 350 - .../lib/interceptor/redirect-interceptor.js | 21 - .../undici/lib/interceptor/redirect.js | 24 - node_modules/undici/lib/interceptor/retry.js | 19 - node_modules/undici/lib/llhttp/constants.d.ts | 199 - node_modules/undici/lib/llhttp/constants.js | 278 - .../undici/lib/llhttp/constants.js.map | 1 - node_modules/undici/lib/llhttp/llhttp-wasm.js | 3 - .../undici/lib/llhttp/llhttp_simd-wasm.js | 3 - node_modules/undici/lib/llhttp/utils.d.ts | 4 - node_modules/undici/lib/llhttp/utils.js | 15 - node_modules/undici/lib/llhttp/utils.js.map | 1 - .../undici/lib/llhttp/wasm_build_env.txt | 32 - node_modules/undici/lib/mock/mock-agent.js | 160 - node_modules/undici/lib/mock/mock-client.js | 59 - node_modules/undici/lib/mock/mock-errors.js | 17 - .../undici/lib/mock/mock-interceptor.js | 207 - node_modules/undici/lib/mock/mock-pool.js | 59 - node_modules/undici/lib/mock/mock-symbols.js | 23 - node_modules/undici/lib/mock/mock-utils.js | 363 - .../mock/pending-interceptors-formatter.js | 43 - node_modules/undici/lib/mock/pluralizer.js | 29 - node_modules/undici/lib/util/timers.js | 97 - node_modules/undici/lib/web/cache/cache.js | 846 - .../undici/lib/web/cache/cachestorage.js | 144 - node_modules/undici/lib/web/cache/symbols.js | 5 - node_modules/undici/lib/web/cache/util.js | 45 - .../undici/lib/web/cookies/constants.js | 12 - node_modules/undici/lib/web/cookies/index.js | 184 - node_modules/undici/lib/web/cookies/parse.js | 317 - node_modules/undici/lib/web/cookies/util.js | 307 - .../lib/web/eventsource/eventsource-stream.js | 398 - .../undici/lib/web/eventsource/eventsource.js | 480 - .../undici/lib/web/eventsource/util.js | 37 - node_modules/undici/lib/web/fetch/LICENSE | 21 - node_modules/undici/lib/web/fetch/body.js | 491 - .../undici/lib/web/fetch/constants.js | 115 - node_modules/undici/lib/web/fetch/data-url.js | 743 - .../lib/web/fetch/dispatcher-weakref.js | 45 - node_modules/undici/lib/web/fetch/file.js | 337 - .../undici/lib/web/fetch/formdata-parser.js | 464 - node_modules/undici/lib/web/fetch/formdata.js | 244 - node_modules/undici/lib/web/fetch/global.js | 40 - node_modules/undici/lib/web/fetch/headers.js | 625 - node_modules/undici/lib/web/fetch/index.js | 2246 -- node_modules/undici/lib/web/fetch/request.js | 1022 - node_modules/undici/lib/web/fetch/response.js | 607 - node_modules/undici/lib/web/fetch/symbols.js | 11 - node_modules/undici/lib/web/fetch/util.js | 1617 -- node_modules/undici/lib/web/fetch/webidl.js | 680 - .../undici/lib/web/fileapi/encoding.js | 290 - .../undici/lib/web/fileapi/filereader.js | 344 - .../undici/lib/web/fileapi/progressevent.js | 78 - .../undici/lib/web/fileapi/symbols.js | 10 - node_modules/undici/lib/web/fileapi/util.js | 391 - .../undici/lib/web/websocket/connection.js | 297 - .../undici/lib/web/websocket/constants.js | 58 - .../undici/lib/web/websocket/events.js | 303 - .../undici/lib/web/websocket/frame.js | 74 - .../undici/lib/web/websocket/receiver.js | 332 - .../undici/lib/web/websocket/symbols.js | 12 - node_modules/undici/lib/web/websocket/util.js | 239 - .../undici/lib/web/websocket/websocket.js | 652 - node_modules/undici/package.json | 154 - node_modules/undici/scripts/strip-comments.js | 8 - node_modules/undici/types/README.md | 6 - node_modules/undici/types/agent.d.ts | 31 - node_modules/undici/types/api.d.ts | 43 - node_modules/undici/types/balanced-pool.d.ts | 29 - node_modules/undici/types/cache.d.ts | 36 - node_modules/undici/types/client.d.ts | 108 - node_modules/undici/types/connector.d.ts | 34 - node_modules/undici/types/content-type.d.ts | 21 - node_modules/undici/types/cookies.d.ts | 28 - .../undici/types/diagnostics-channel.d.ts | 66 - node_modules/undici/types/dispatcher.d.ts | 255 - node_modules/undici/types/errors.d.ts | 128 - node_modules/undici/types/eventsource.d.ts | 61 - node_modules/undici/types/fetch.d.ts | 208 - node_modules/undici/types/file.d.ts | 39 - node_modules/undici/types/filereader.d.ts | 54 - node_modules/undici/types/formdata.d.ts | 108 - .../undici/types/global-dispatcher.d.ts | 9 - node_modules/undici/types/global-origin.d.ts | 7 - node_modules/undici/types/handlers.d.ts | 15 - node_modules/undici/types/header.d.ts | 4 - node_modules/undici/types/index.d.ts | 68 - node_modules/undici/types/interceptors.d.ts | 5 - node_modules/undici/types/mock-agent.d.ts | 50 - node_modules/undici/types/mock-client.d.ts | 25 - node_modules/undici/types/mock-errors.d.ts | 12 - .../undici/types/mock-interceptor.d.ts | 93 - node_modules/undici/types/mock-pool.d.ts | 25 - node_modules/undici/types/patch.d.ts | 71 - node_modules/undici/types/pool-stats.d.ts | 19 - node_modules/undici/types/pool.d.ts | 39 - node_modules/undici/types/proxy-agent.d.ts | 28 - node_modules/undici/types/readable.d.ts | 60 - node_modules/undici/types/retry-agent.d.ts | 11 - node_modules/undici/types/retry-handler.d.ts | 116 - node_modules/undici/types/util.d.ts | 31 - node_modules/undici/types/webidl.d.ts | 225 - node_modules/undici/types/websocket.d.ts | 152 - node_modules/util/LICENSE | 18 - node_modules/util/README.md | 15 - node_modules/util/package.json | 35 - node_modules/util/support/isBuffer.js | 3 - node_modules/util/support/isBufferBrowser.js | 6 - node_modules/util/util.js | 586 - node_modules/ws/LICENSE | 20 - node_modules/ws/README.md | 548 - node_modules/ws/browser.js | 8 - node_modules/ws/index.js | 13 - node_modules/ws/lib/buffer-util.js | 131 - node_modules/ws/lib/constants.js | 12 - node_modules/ws/lib/event-target.js | 292 - node_modules/ws/lib/extension.js | 203 - node_modules/ws/lib/limiter.js | 55 - node_modules/ws/lib/permessage-deflate.js | 514 - node_modules/ws/lib/receiver.js | 704 - node_modules/ws/lib/sender.js | 477 - node_modules/ws/lib/stream.js | 159 - node_modules/ws/lib/subprotocol.js | 62 - node_modules/ws/lib/validation.js | 130 - node_modules/ws/lib/websocket-server.js | 539 - node_modules/ws/lib/websocket.js | 1336 -- node_modules/ws/package.json | 69 - node_modules/ws/wrapper.mjs | 8 - 2944 files changed, 4 insertions(+), 303040 deletions(-) delete mode 100644 config.json delete mode 100644 node_modules/.package-lock.json delete mode 100644 node_modules/@discordjs/builders/LICENSE delete mode 100644 node_modules/@discordjs/builders/README.md delete mode 100644 node_modules/@discordjs/builders/dist/index.d.mts delete mode 100644 node_modules/@discordjs/builders/dist/index.d.ts delete mode 100644 node_modules/@discordjs/builders/dist/index.js delete mode 100644 node_modules/@discordjs/builders/dist/index.js.map delete mode 100644 node_modules/@discordjs/builders/dist/index.mjs delete mode 100644 node_modules/@discordjs/builders/dist/index.mjs.map delete mode 100644 node_modules/@discordjs/builders/package.json delete mode 100644 node_modules/@discordjs/collection/CHANGELOG.md delete mode 100644 node_modules/@discordjs/collection/LICENSE delete mode 100644 node_modules/@discordjs/collection/README.md delete mode 100644 node_modules/@discordjs/collection/dist/index.d.mts delete mode 100644 node_modules/@discordjs/collection/dist/index.d.ts delete mode 100644 node_modules/@discordjs/collection/dist/index.js delete mode 100644 node_modules/@discordjs/collection/dist/index.js.map delete mode 100644 node_modules/@discordjs/collection/dist/index.mjs delete mode 100644 node_modules/@discordjs/collection/dist/index.mjs.map delete mode 100644 node_modules/@discordjs/collection/package.json delete mode 100644 node_modules/@discordjs/formatters/LICENSE delete mode 100644 node_modules/@discordjs/formatters/README.md delete mode 100644 node_modules/@discordjs/formatters/dist/index.d.mts delete mode 100644 node_modules/@discordjs/formatters/dist/index.d.ts delete mode 100644 node_modules/@discordjs/formatters/dist/index.js delete mode 100644 node_modules/@discordjs/formatters/dist/index.js.map delete mode 100644 node_modules/@discordjs/formatters/dist/index.mjs delete mode 100644 node_modules/@discordjs/formatters/dist/index.mjs.map delete mode 100644 node_modules/@discordjs/formatters/package.json delete mode 100644 node_modules/@discordjs/rest/LICENSE delete mode 100644 node_modules/@discordjs/rest/README.md delete mode 100644 node_modules/@discordjs/rest/dist/index.d.mts delete mode 100644 node_modules/@discordjs/rest/dist/index.d.ts delete mode 100644 node_modules/@discordjs/rest/dist/index.js delete mode 100644 node_modules/@discordjs/rest/dist/index.js.map delete mode 100644 node_modules/@discordjs/rest/dist/index.mjs delete mode 100644 node_modules/@discordjs/rest/dist/index.mjs.map delete mode 100644 node_modules/@discordjs/rest/dist/strategies/undiciRequest.d.mts delete mode 100644 node_modules/@discordjs/rest/dist/strategies/undiciRequest.d.ts delete mode 100644 node_modules/@discordjs/rest/dist/strategies/undiciRequest.js delete mode 100644 node_modules/@discordjs/rest/dist/strategies/undiciRequest.js.map delete mode 100644 node_modules/@discordjs/rest/dist/strategies/undiciRequest.mjs delete mode 100644 node_modules/@discordjs/rest/dist/strategies/undiciRequest.mjs.map delete mode 100644 node_modules/@discordjs/rest/dist/web.d.mts delete mode 100644 node_modules/@discordjs/rest/dist/web.d.ts delete mode 100644 node_modules/@discordjs/rest/dist/web.js delete mode 100644 node_modules/@discordjs/rest/dist/web.js.map delete mode 100644 node_modules/@discordjs/rest/dist/web.mjs delete mode 100644 node_modules/@discordjs/rest/dist/web.mjs.map delete mode 100644 node_modules/@discordjs/rest/node_modules/@discordjs/collection/LICENSE delete mode 100644 node_modules/@discordjs/rest/node_modules/@discordjs/collection/README.md delete mode 100644 node_modules/@discordjs/rest/node_modules/@discordjs/collection/dist/index.d.mts delete mode 100644 node_modules/@discordjs/rest/node_modules/@discordjs/collection/dist/index.d.ts delete mode 100644 node_modules/@discordjs/rest/node_modules/@discordjs/collection/dist/index.js delete mode 100644 node_modules/@discordjs/rest/node_modules/@discordjs/collection/dist/index.js.map delete mode 100644 node_modules/@discordjs/rest/node_modules/@discordjs/collection/dist/index.mjs delete mode 100644 node_modules/@discordjs/rest/node_modules/@discordjs/collection/dist/index.mjs.map delete mode 100644 node_modules/@discordjs/rest/node_modules/@discordjs/collection/package.json delete mode 100644 node_modules/@discordjs/rest/package.json delete mode 100644 node_modules/@discordjs/util/LICENSE delete mode 100644 node_modules/@discordjs/util/README.md delete mode 100644 node_modules/@discordjs/util/dist/index.d.mts delete mode 100644 node_modules/@discordjs/util/dist/index.d.ts delete mode 100644 node_modules/@discordjs/util/dist/index.js delete mode 100644 node_modules/@discordjs/util/dist/index.js.map delete mode 100644 node_modules/@discordjs/util/dist/index.mjs delete mode 100644 node_modules/@discordjs/util/dist/index.mjs.map delete mode 100644 node_modules/@discordjs/util/package.json delete mode 100644 node_modules/@discordjs/ws/LICENSE delete mode 100644 node_modules/@discordjs/ws/README.md delete mode 100644 node_modules/@discordjs/ws/dist/defaultWorker.d.mts delete mode 100644 node_modules/@discordjs/ws/dist/defaultWorker.d.ts delete mode 100644 node_modules/@discordjs/ws/dist/defaultWorker.js delete mode 100644 node_modules/@discordjs/ws/dist/defaultWorker.js.map delete mode 100644 node_modules/@discordjs/ws/dist/defaultWorker.mjs delete mode 100644 node_modules/@discordjs/ws/dist/defaultWorker.mjs.map delete mode 100644 node_modules/@discordjs/ws/dist/index.d.mts delete mode 100644 node_modules/@discordjs/ws/dist/index.d.ts delete mode 100644 node_modules/@discordjs/ws/dist/index.js delete mode 100644 node_modules/@discordjs/ws/dist/index.js.map delete mode 100644 node_modules/@discordjs/ws/dist/index.mjs delete mode 100644 node_modules/@discordjs/ws/dist/index.mjs.map delete mode 100644 node_modules/@discordjs/ws/node_modules/@discordjs/collection/LICENSE delete mode 100644 node_modules/@discordjs/ws/node_modules/@discordjs/collection/README.md delete mode 100644 node_modules/@discordjs/ws/node_modules/@discordjs/collection/dist/index.d.mts delete mode 100644 node_modules/@discordjs/ws/node_modules/@discordjs/collection/dist/index.d.ts delete mode 100644 node_modules/@discordjs/ws/node_modules/@discordjs/collection/dist/index.js delete mode 100644 node_modules/@discordjs/ws/node_modules/@discordjs/collection/dist/index.js.map delete mode 100644 node_modules/@discordjs/ws/node_modules/@discordjs/collection/dist/index.mjs delete mode 100644 node_modules/@discordjs/ws/node_modules/@discordjs/collection/dist/index.mjs.map delete mode 100644 node_modules/@discordjs/ws/node_modules/@discordjs/collection/package.json delete mode 100644 node_modules/@discordjs/ws/package.json delete mode 100644 node_modules/@sapphire/async-queue/CHANGELOG.md delete mode 100644 node_modules/@sapphire/async-queue/README.md delete mode 100644 node_modules/@sapphire/async-queue/dist/cjs/index.cjs delete mode 100644 node_modules/@sapphire/async-queue/dist/cjs/index.cjs.map delete mode 100644 node_modules/@sapphire/async-queue/dist/cjs/index.d.cts delete mode 100644 node_modules/@sapphire/async-queue/dist/esm/index.d.mts delete mode 100644 node_modules/@sapphire/async-queue/dist/esm/index.mjs delete mode 100644 node_modules/@sapphire/async-queue/dist/esm/index.mjs.map delete mode 100644 node_modules/@sapphire/async-queue/dist/iife/index.global.js delete mode 100644 node_modules/@sapphire/async-queue/dist/iife/index.global.js.map delete mode 100644 node_modules/@sapphire/async-queue/package.json delete mode 100644 node_modules/@sapphire/shapeshift/CHANGELOG.md delete mode 100644 node_modules/@sapphire/shapeshift/LICENSE.md delete mode 100644 node_modules/@sapphire/shapeshift/README.md delete mode 100644 node_modules/@sapphire/shapeshift/dist/cjs/index.cjs delete mode 100644 node_modules/@sapphire/shapeshift/dist/cjs/index.cjs.map delete mode 100644 node_modules/@sapphire/shapeshift/dist/cjs/index.d.cts delete mode 100644 node_modules/@sapphire/shapeshift/dist/esm/index.d.mts delete mode 100644 node_modules/@sapphire/shapeshift/dist/esm/index.mjs delete mode 100644 node_modules/@sapphire/shapeshift/dist/esm/index.mjs.map delete mode 100644 node_modules/@sapphire/shapeshift/dist/iife/index.global.js delete mode 100644 node_modules/@sapphire/shapeshift/dist/iife/index.global.js.map delete mode 100644 node_modules/@sapphire/shapeshift/package.json delete mode 100644 node_modules/@sapphire/snowflake/CHANGELOG.md delete mode 100644 node_modules/@sapphire/snowflake/README.md delete mode 100644 node_modules/@sapphire/snowflake/dist/cjs/index.cjs delete mode 100644 node_modules/@sapphire/snowflake/dist/cjs/index.cjs.map delete mode 100644 node_modules/@sapphire/snowflake/dist/cjs/index.d.cts delete mode 100644 node_modules/@sapphire/snowflake/dist/esm/index.d.mts delete mode 100644 node_modules/@sapphire/snowflake/dist/esm/index.mjs delete mode 100644 node_modules/@sapphire/snowflake/dist/esm/index.mjs.map delete mode 100644 node_modules/@sapphire/snowflake/dist/iife/index.global.js delete mode 100644 node_modules/@sapphire/snowflake/dist/iife/index.global.js.map delete mode 100644 node_modules/@sapphire/snowflake/package.json delete mode 100644 node_modules/@types/node/LICENSE delete mode 100644 node_modules/@types/node/README.md delete mode 100644 node_modules/@types/node/assert.d.ts delete mode 100644 node_modules/@types/node/assert/strict.d.ts delete mode 100644 node_modules/@types/node/async_hooks.d.ts delete mode 100644 node_modules/@types/node/buffer.d.ts delete mode 100644 node_modules/@types/node/child_process.d.ts delete mode 100644 node_modules/@types/node/cluster.d.ts delete mode 100644 node_modules/@types/node/console.d.ts delete mode 100644 node_modules/@types/node/constants.d.ts delete mode 100644 node_modules/@types/node/crypto.d.ts delete mode 100644 node_modules/@types/node/dgram.d.ts delete mode 100644 node_modules/@types/node/diagnostics_channel.d.ts delete mode 100644 node_modules/@types/node/dns.d.ts delete mode 100644 node_modules/@types/node/dns/promises.d.ts delete mode 100644 node_modules/@types/node/dom-events.d.ts delete mode 100644 node_modules/@types/node/domain.d.ts delete mode 100644 node_modules/@types/node/events.d.ts delete mode 100644 node_modules/@types/node/fs.d.ts delete mode 100644 node_modules/@types/node/fs/promises.d.ts delete mode 100644 node_modules/@types/node/globals.d.ts delete mode 100644 node_modules/@types/node/globals.global.d.ts delete mode 100644 node_modules/@types/node/http.d.ts delete mode 100644 node_modules/@types/node/http2.d.ts delete mode 100644 node_modules/@types/node/https.d.ts delete mode 100644 node_modules/@types/node/index.d.ts delete mode 100644 node_modules/@types/node/inspector.d.ts delete mode 100644 node_modules/@types/node/module.d.ts delete mode 100644 node_modules/@types/node/net.d.ts delete mode 100644 node_modules/@types/node/os.d.ts delete mode 100644 node_modules/@types/node/package.json delete mode 100644 node_modules/@types/node/path.d.ts delete mode 100644 node_modules/@types/node/perf_hooks.d.ts delete mode 100644 node_modules/@types/node/process.d.ts delete mode 100644 node_modules/@types/node/punycode.d.ts delete mode 100644 node_modules/@types/node/querystring.d.ts delete mode 100644 node_modules/@types/node/readline.d.ts delete mode 100644 node_modules/@types/node/readline/promises.d.ts delete mode 100644 node_modules/@types/node/repl.d.ts delete mode 100644 node_modules/@types/node/sea.d.ts delete mode 100644 node_modules/@types/node/stream.d.ts delete mode 100644 node_modules/@types/node/stream/consumers.d.ts delete mode 100644 node_modules/@types/node/stream/promises.d.ts delete mode 100644 node_modules/@types/node/stream/web.d.ts delete mode 100644 node_modules/@types/node/string_decoder.d.ts delete mode 100644 node_modules/@types/node/test.d.ts delete mode 100644 node_modules/@types/node/timers.d.ts delete mode 100644 node_modules/@types/node/timers/promises.d.ts delete mode 100644 node_modules/@types/node/tls.d.ts delete mode 100644 node_modules/@types/node/trace_events.d.ts delete mode 100644 node_modules/@types/node/tty.d.ts delete mode 100644 node_modules/@types/node/url.d.ts delete mode 100644 node_modules/@types/node/util.d.ts delete mode 100644 node_modules/@types/node/v8.d.ts delete mode 100644 node_modules/@types/node/vm.d.ts delete mode 100644 node_modules/@types/node/wasi.d.ts delete mode 100644 node_modules/@types/node/worker_threads.d.ts delete mode 100644 node_modules/@types/node/zlib.d.ts delete mode 100644 node_modules/@types/ws/LICENSE delete mode 100644 node_modules/@types/ws/README.md delete mode 100644 node_modules/@types/ws/index.d.mts delete mode 100644 node_modules/@types/ws/index.d.ts delete mode 100644 node_modules/@types/ws/package.json delete mode 100644 node_modules/@vladfrangu/async_event_emitter/CHANGELOG.md delete mode 100644 node_modules/@vladfrangu/async_event_emitter/LICENSE.md delete mode 100644 node_modules/@vladfrangu/async_event_emitter/README.md delete mode 100644 node_modules/@vladfrangu/async_event_emitter/THIRD_PARTY_LICENSE.md delete mode 100644 node_modules/@vladfrangu/async_event_emitter/dist/index.cjs delete mode 100644 node_modules/@vladfrangu/async_event_emitter/dist/index.cjs.map delete mode 100644 node_modules/@vladfrangu/async_event_emitter/dist/index.d.mts delete mode 100644 node_modules/@vladfrangu/async_event_emitter/dist/index.d.ts delete mode 100644 node_modules/@vladfrangu/async_event_emitter/dist/index.global.js delete mode 100644 node_modules/@vladfrangu/async_event_emitter/dist/index.global.js.map delete mode 100644 node_modules/@vladfrangu/async_event_emitter/dist/index.mjs delete mode 100644 node_modules/@vladfrangu/async_event_emitter/dist/index.mjs.map delete mode 100644 node_modules/@vladfrangu/async_event_emitter/package.json delete mode 100644 node_modules/discord-api-types/LICENSE delete mode 100644 node_modules/discord-api-types/README.md delete mode 100644 node_modules/discord-api-types/gateway/common.d.ts delete mode 100644 node_modules/discord-api-types/gateway/common.d.ts.map delete mode 100644 node_modules/discord-api-types/gateway/common.js delete mode 100644 node_modules/discord-api-types/gateway/common.js.map delete mode 100644 node_modules/discord-api-types/gateway/index.d.ts delete mode 100644 node_modules/discord-api-types/gateway/index.d.ts.map delete mode 100644 node_modules/discord-api-types/gateway/index.js delete mode 100644 node_modules/discord-api-types/gateway/index.js.map delete mode 100644 node_modules/discord-api-types/gateway/index.mjs delete mode 100644 node_modules/discord-api-types/gateway/v10.d.ts delete mode 100644 node_modules/discord-api-types/gateway/v10.d.ts.map delete mode 100644 node_modules/discord-api-types/gateway/v10.js delete mode 100644 node_modules/discord-api-types/gateway/v10.js.map delete mode 100644 node_modules/discord-api-types/gateway/v10.mjs delete mode 100644 node_modules/discord-api-types/gateway/v6.d.ts delete mode 100644 node_modules/discord-api-types/gateway/v6.d.ts.map delete mode 100644 node_modules/discord-api-types/gateway/v6.js delete mode 100644 node_modules/discord-api-types/gateway/v6.js.map delete mode 100644 node_modules/discord-api-types/gateway/v6.mjs delete mode 100644 node_modules/discord-api-types/gateway/v8.d.ts delete mode 100644 node_modules/discord-api-types/gateway/v8.d.ts.map delete mode 100644 node_modules/discord-api-types/gateway/v8.js delete mode 100644 node_modules/discord-api-types/gateway/v8.js.map delete mode 100644 node_modules/discord-api-types/gateway/v8.mjs delete mode 100644 node_modules/discord-api-types/gateway/v9.d.ts delete mode 100644 node_modules/discord-api-types/gateway/v9.d.ts.map delete mode 100644 node_modules/discord-api-types/gateway/v9.js delete mode 100644 node_modules/discord-api-types/gateway/v9.js.map delete mode 100644 node_modules/discord-api-types/gateway/v9.mjs delete mode 100644 node_modules/discord-api-types/globals.d.ts delete mode 100644 node_modules/discord-api-types/globals.d.ts.map delete mode 100644 node_modules/discord-api-types/globals.js delete mode 100644 node_modules/discord-api-types/globals.js.map delete mode 100644 node_modules/discord-api-types/globals.mjs delete mode 100644 node_modules/discord-api-types/package.json delete mode 100644 node_modules/discord-api-types/payloads/common.d.ts delete mode 100644 node_modules/discord-api-types/payloads/common.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/common.js delete mode 100644 node_modules/discord-api-types/payloads/common.js.map delete mode 100644 node_modules/discord-api-types/payloads/index.d.ts delete mode 100644 node_modules/discord-api-types/payloads/index.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/index.js delete mode 100644 node_modules/discord-api-types/payloads/index.js.map delete mode 100644 node_modules/discord-api-types/payloads/index.mjs delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/attachment.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/attachment.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/attachment.js delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/attachment.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/base.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/base.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/base.js delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/base.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/boolean.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/boolean.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/boolean.js delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/boolean.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/channel.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/channel.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/channel.js delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/channel.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/integer.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/integer.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/integer.js delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/integer.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/mentionable.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/mentionable.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/mentionable.js delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/mentionable.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/number.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/number.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/number.js delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/number.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/role.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/role.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/role.js delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/role.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/shared.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/shared.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/shared.js delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/shared.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/string.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/string.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/string.js delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/string.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/subcommand.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/subcommand.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/subcommand.js delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/subcommand.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/subcommandGroup.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/subcommandGroup.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/subcommandGroup.js delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/subcommandGroup.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/user.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/user.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/user.js delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/user.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/chatInput.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/chatInput.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/chatInput.js delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/chatInput.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/contextMenu.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/contextMenu.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/contextMenu.js delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/contextMenu.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/internals.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/internals.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/internals.js delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/internals.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/permissions.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/permissions.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/permissions.js delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/permissions.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/applicationCommands.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/applicationCommands.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/applicationCommands.js delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/applicationCommands.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/autocomplete.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/autocomplete.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/autocomplete.js delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/autocomplete.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/base.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/base.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/base.js delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/base.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/messageComponents.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/messageComponents.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/messageComponents.js delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/messageComponents.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/modalSubmit.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/modalSubmit.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/modalSubmit.js delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/modalSubmit.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/ping.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/ping.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/ping.js delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/ping.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/responses.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/responses.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/responses.js delete mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/responses.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/application.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/application.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/application.js delete mode 100644 node_modules/discord-api-types/payloads/v10/application.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/auditLog.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/auditLog.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/auditLog.js delete mode 100644 node_modules/discord-api-types/payloads/v10/auditLog.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/autoModeration.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/autoModeration.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/autoModeration.js delete mode 100644 node_modules/discord-api-types/payloads/v10/autoModeration.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/channel.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/channel.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/channel.js delete mode 100644 node_modules/discord-api-types/payloads/v10/channel.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/emoji.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/emoji.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/emoji.js delete mode 100644 node_modules/discord-api-types/payloads/v10/emoji.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/gateway.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/gateway.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/gateway.js delete mode 100644 node_modules/discord-api-types/payloads/v10/gateway.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/guild.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/guild.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/guild.js delete mode 100644 node_modules/discord-api-types/payloads/v10/guild.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/guildScheduledEvent.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/guildScheduledEvent.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/guildScheduledEvent.js delete mode 100644 node_modules/discord-api-types/payloads/v10/guildScheduledEvent.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/index.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/index.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/index.js delete mode 100644 node_modules/discord-api-types/payloads/v10/index.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/index.mjs delete mode 100644 node_modules/discord-api-types/payloads/v10/interactions.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/interactions.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/interactions.js delete mode 100644 node_modules/discord-api-types/payloads/v10/interactions.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/invite.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/invite.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/invite.js delete mode 100644 node_modules/discord-api-types/payloads/v10/invite.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/monetization.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/monetization.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/monetization.js delete mode 100644 node_modules/discord-api-types/payloads/v10/monetization.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/oauth2.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/oauth2.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/oauth2.js delete mode 100644 node_modules/discord-api-types/payloads/v10/oauth2.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/permissions.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/permissions.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/permissions.js delete mode 100644 node_modules/discord-api-types/payloads/v10/permissions.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/poll.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/poll.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/poll.js delete mode 100644 node_modules/discord-api-types/payloads/v10/poll.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/stageInstance.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/stageInstance.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/stageInstance.js delete mode 100644 node_modules/discord-api-types/payloads/v10/stageInstance.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/sticker.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/sticker.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/sticker.js delete mode 100644 node_modules/discord-api-types/payloads/v10/sticker.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/teams.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/teams.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/teams.js delete mode 100644 node_modules/discord-api-types/payloads/v10/teams.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/template.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/template.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/template.js delete mode 100644 node_modules/discord-api-types/payloads/v10/template.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/user.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/user.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/user.js delete mode 100644 node_modules/discord-api-types/payloads/v10/user.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/voice.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/voice.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/voice.js delete mode 100644 node_modules/discord-api-types/payloads/v10/voice.js.map delete mode 100644 node_modules/discord-api-types/payloads/v10/webhook.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v10/webhook.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v10/webhook.js delete mode 100644 node_modules/discord-api-types/payloads/v10/webhook.js.map delete mode 100644 node_modules/discord-api-types/payloads/v6/auditLog.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v6/auditLog.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v6/auditLog.js delete mode 100644 node_modules/discord-api-types/payloads/v6/auditLog.js.map delete mode 100644 node_modules/discord-api-types/payloads/v6/channel.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v6/channel.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v6/channel.js delete mode 100644 node_modules/discord-api-types/payloads/v6/channel.js.map delete mode 100644 node_modules/discord-api-types/payloads/v6/emoji.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v6/emoji.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v6/emoji.js delete mode 100644 node_modules/discord-api-types/payloads/v6/emoji.js.map delete mode 100644 node_modules/discord-api-types/payloads/v6/gateway.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v6/gateway.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v6/gateway.js delete mode 100644 node_modules/discord-api-types/payloads/v6/gateway.js.map delete mode 100644 node_modules/discord-api-types/payloads/v6/guild.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v6/guild.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v6/guild.js delete mode 100644 node_modules/discord-api-types/payloads/v6/guild.js.map delete mode 100644 node_modules/discord-api-types/payloads/v6/index.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v6/index.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v6/index.js delete mode 100644 node_modules/discord-api-types/payloads/v6/index.js.map delete mode 100644 node_modules/discord-api-types/payloads/v6/index.mjs delete mode 100644 node_modules/discord-api-types/payloads/v6/invite.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v6/invite.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v6/invite.js delete mode 100644 node_modules/discord-api-types/payloads/v6/invite.js.map delete mode 100644 node_modules/discord-api-types/payloads/v6/oauth2.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v6/oauth2.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v6/oauth2.js delete mode 100644 node_modules/discord-api-types/payloads/v6/oauth2.js.map delete mode 100644 node_modules/discord-api-types/payloads/v6/permissions.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v6/permissions.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v6/permissions.js delete mode 100644 node_modules/discord-api-types/payloads/v6/permissions.js.map delete mode 100644 node_modules/discord-api-types/payloads/v6/teams.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v6/teams.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v6/teams.js delete mode 100644 node_modules/discord-api-types/payloads/v6/teams.js.map delete mode 100644 node_modules/discord-api-types/payloads/v6/user.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v6/user.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v6/user.js delete mode 100644 node_modules/discord-api-types/payloads/v6/user.js.map delete mode 100644 node_modules/discord-api-types/payloads/v6/voice.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v6/voice.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v6/voice.js delete mode 100644 node_modules/discord-api-types/payloads/v6/voice.js.map delete mode 100644 node_modules/discord-api-types/payloads/v6/webhook.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v6/webhook.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v6/webhook.js delete mode 100644 node_modules/discord-api-types/payloads/v6/webhook.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/attachment.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/attachment.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/attachment.js delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/attachment.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/base.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/base.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/base.js delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/base.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/boolean.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/boolean.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/boolean.js delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/boolean.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/channel.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/channel.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/channel.js delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/channel.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/integer.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/integer.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/integer.js delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/integer.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/mentionable.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/mentionable.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/mentionable.js delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/mentionable.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/number.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/number.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/number.js delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/number.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/role.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/role.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/role.js delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/role.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/shared.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/shared.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/shared.js delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/shared.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/string.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/string.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/string.js delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/string.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/subcommand.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/subcommand.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/subcommand.js delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/subcommand.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/subcommandGroup.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/subcommandGroup.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/subcommandGroup.js delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/subcommandGroup.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/user.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/user.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/user.js delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/user.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/chatInput.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/chatInput.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/chatInput.js delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/chatInput.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/contextMenu.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/contextMenu.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/contextMenu.js delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/contextMenu.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/internals.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/internals.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/internals.js delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/internals.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/permissions.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/permissions.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/permissions.js delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/permissions.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/applicationCommands.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/applicationCommands.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/applicationCommands.js delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/applicationCommands.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/autocomplete.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/autocomplete.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/autocomplete.js delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/autocomplete.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/base.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/base.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/base.js delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/base.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/messageComponents.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/messageComponents.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/messageComponents.js delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/messageComponents.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/modalSubmit.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/modalSubmit.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/modalSubmit.js delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/modalSubmit.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/ping.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/ping.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/ping.js delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/ping.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/responses.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/responses.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/responses.js delete mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/responses.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/application.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/application.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/application.js delete mode 100644 node_modules/discord-api-types/payloads/v8/application.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/auditLog.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/auditLog.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/auditLog.js delete mode 100644 node_modules/discord-api-types/payloads/v8/auditLog.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/channel.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/channel.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/channel.js delete mode 100644 node_modules/discord-api-types/payloads/v8/channel.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/emoji.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/emoji.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/emoji.js delete mode 100644 node_modules/discord-api-types/payloads/v8/emoji.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/gateway.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/gateway.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/gateway.js delete mode 100644 node_modules/discord-api-types/payloads/v8/gateway.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/guild.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/guild.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/guild.js delete mode 100644 node_modules/discord-api-types/payloads/v8/guild.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/guildScheduledEvent.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/guildScheduledEvent.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/guildScheduledEvent.js delete mode 100644 node_modules/discord-api-types/payloads/v8/guildScheduledEvent.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/index.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/index.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/index.js delete mode 100644 node_modules/discord-api-types/payloads/v8/index.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/index.mjs delete mode 100644 node_modules/discord-api-types/payloads/v8/interactions.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/interactions.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/interactions.js delete mode 100644 node_modules/discord-api-types/payloads/v8/interactions.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/invite.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/invite.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/invite.js delete mode 100644 node_modules/discord-api-types/payloads/v8/invite.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/oauth2.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/oauth2.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/oauth2.js delete mode 100644 node_modules/discord-api-types/payloads/v8/oauth2.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/permissions.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/permissions.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/permissions.js delete mode 100644 node_modules/discord-api-types/payloads/v8/permissions.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/stageInstance.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/stageInstance.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/stageInstance.js delete mode 100644 node_modules/discord-api-types/payloads/v8/stageInstance.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/sticker.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/sticker.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/sticker.js delete mode 100644 node_modules/discord-api-types/payloads/v8/sticker.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/teams.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/teams.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/teams.js delete mode 100644 node_modules/discord-api-types/payloads/v8/teams.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/template.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/template.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/template.js delete mode 100644 node_modules/discord-api-types/payloads/v8/template.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/user.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/user.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/user.js delete mode 100644 node_modules/discord-api-types/payloads/v8/user.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/voice.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/voice.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/voice.js delete mode 100644 node_modules/discord-api-types/payloads/v8/voice.js.map delete mode 100644 node_modules/discord-api-types/payloads/v8/webhook.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v8/webhook.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v8/webhook.js delete mode 100644 node_modules/discord-api-types/payloads/v8/webhook.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/attachment.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/attachment.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/attachment.js delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/attachment.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/base.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/base.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/base.js delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/base.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/boolean.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/boolean.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/boolean.js delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/boolean.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/channel.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/channel.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/channel.js delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/channel.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/integer.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/integer.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/integer.js delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/integer.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/mentionable.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/mentionable.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/mentionable.js delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/mentionable.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/number.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/number.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/number.js delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/number.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/role.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/role.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/role.js delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/role.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/shared.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/shared.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/shared.js delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/shared.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/string.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/string.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/string.js delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/string.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/subcommand.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/subcommand.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/subcommand.js delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/subcommand.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/subcommandGroup.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/subcommandGroup.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/subcommandGroup.js delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/subcommandGroup.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/user.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/user.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/user.js delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/user.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/chatInput.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/chatInput.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/chatInput.js delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/chatInput.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/contextMenu.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/contextMenu.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/contextMenu.js delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/contextMenu.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/internals.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/internals.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/internals.js delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/internals.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/permissions.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/permissions.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/permissions.js delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/permissions.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/applicationCommands.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/applicationCommands.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/applicationCommands.js delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/applicationCommands.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/autocomplete.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/autocomplete.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/autocomplete.js delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/autocomplete.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/base.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/base.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/base.js delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/base.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/messageComponents.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/messageComponents.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/messageComponents.js delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/messageComponents.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/modalSubmit.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/modalSubmit.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/modalSubmit.js delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/modalSubmit.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/ping.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/ping.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/ping.js delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/ping.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/responses.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/responses.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/responses.js delete mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/responses.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/application.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/application.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/application.js delete mode 100644 node_modules/discord-api-types/payloads/v9/application.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/auditLog.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/auditLog.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/auditLog.js delete mode 100644 node_modules/discord-api-types/payloads/v9/auditLog.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/autoModeration.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/autoModeration.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/autoModeration.js delete mode 100644 node_modules/discord-api-types/payloads/v9/autoModeration.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/channel.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/channel.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/channel.js delete mode 100644 node_modules/discord-api-types/payloads/v9/channel.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/emoji.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/emoji.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/emoji.js delete mode 100644 node_modules/discord-api-types/payloads/v9/emoji.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/gateway.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/gateway.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/gateway.js delete mode 100644 node_modules/discord-api-types/payloads/v9/gateway.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/guild.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/guild.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/guild.js delete mode 100644 node_modules/discord-api-types/payloads/v9/guild.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/guildScheduledEvent.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/guildScheduledEvent.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/guildScheduledEvent.js delete mode 100644 node_modules/discord-api-types/payloads/v9/guildScheduledEvent.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/index.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/index.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/index.js delete mode 100644 node_modules/discord-api-types/payloads/v9/index.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/index.mjs delete mode 100644 node_modules/discord-api-types/payloads/v9/interactions.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/interactions.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/interactions.js delete mode 100644 node_modules/discord-api-types/payloads/v9/interactions.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/invite.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/invite.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/invite.js delete mode 100644 node_modules/discord-api-types/payloads/v9/invite.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/monetization.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/monetization.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/monetization.js delete mode 100644 node_modules/discord-api-types/payloads/v9/monetization.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/oauth2.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/oauth2.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/oauth2.js delete mode 100644 node_modules/discord-api-types/payloads/v9/oauth2.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/permissions.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/permissions.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/permissions.js delete mode 100644 node_modules/discord-api-types/payloads/v9/permissions.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/poll.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/poll.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/poll.js delete mode 100644 node_modules/discord-api-types/payloads/v9/poll.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/stageInstance.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/stageInstance.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/stageInstance.js delete mode 100644 node_modules/discord-api-types/payloads/v9/stageInstance.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/sticker.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/sticker.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/sticker.js delete mode 100644 node_modules/discord-api-types/payloads/v9/sticker.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/teams.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/teams.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/teams.js delete mode 100644 node_modules/discord-api-types/payloads/v9/teams.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/template.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/template.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/template.js delete mode 100644 node_modules/discord-api-types/payloads/v9/template.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/user.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/user.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/user.js delete mode 100644 node_modules/discord-api-types/payloads/v9/user.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/voice.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/voice.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/voice.js delete mode 100644 node_modules/discord-api-types/payloads/v9/voice.js.map delete mode 100644 node_modules/discord-api-types/payloads/v9/webhook.d.ts delete mode 100644 node_modules/discord-api-types/payloads/v9/webhook.d.ts.map delete mode 100644 node_modules/discord-api-types/payloads/v9/webhook.js delete mode 100644 node_modules/discord-api-types/payloads/v9/webhook.js.map delete mode 100644 node_modules/discord-api-types/rest/common.d.ts delete mode 100644 node_modules/discord-api-types/rest/common.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/common.js delete mode 100644 node_modules/discord-api-types/rest/common.js.map delete mode 100644 node_modules/discord-api-types/rest/index.d.ts delete mode 100644 node_modules/discord-api-types/rest/index.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/index.js delete mode 100644 node_modules/discord-api-types/rest/index.js.map delete mode 100644 node_modules/discord-api-types/rest/index.mjs delete mode 100644 node_modules/discord-api-types/rest/v10/application.d.ts delete mode 100644 node_modules/discord-api-types/rest/v10/application.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v10/application.js delete mode 100644 node_modules/discord-api-types/rest/v10/application.js.map delete mode 100644 node_modules/discord-api-types/rest/v10/auditLog.d.ts delete mode 100644 node_modules/discord-api-types/rest/v10/auditLog.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v10/auditLog.js delete mode 100644 node_modules/discord-api-types/rest/v10/auditLog.js.map delete mode 100644 node_modules/discord-api-types/rest/v10/autoModeration.d.ts delete mode 100644 node_modules/discord-api-types/rest/v10/autoModeration.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v10/autoModeration.js delete mode 100644 node_modules/discord-api-types/rest/v10/autoModeration.js.map delete mode 100644 node_modules/discord-api-types/rest/v10/channel.d.ts delete mode 100644 node_modules/discord-api-types/rest/v10/channel.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v10/channel.js delete mode 100644 node_modules/discord-api-types/rest/v10/channel.js.map delete mode 100644 node_modules/discord-api-types/rest/v10/emoji.d.ts delete mode 100644 node_modules/discord-api-types/rest/v10/emoji.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v10/emoji.js delete mode 100644 node_modules/discord-api-types/rest/v10/emoji.js.map delete mode 100644 node_modules/discord-api-types/rest/v10/gateway.d.ts delete mode 100644 node_modules/discord-api-types/rest/v10/gateway.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v10/gateway.js delete mode 100644 node_modules/discord-api-types/rest/v10/gateway.js.map delete mode 100644 node_modules/discord-api-types/rest/v10/guild.d.ts delete mode 100644 node_modules/discord-api-types/rest/v10/guild.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v10/guild.js delete mode 100644 node_modules/discord-api-types/rest/v10/guild.js.map delete mode 100644 node_modules/discord-api-types/rest/v10/guildScheduledEvent.d.ts delete mode 100644 node_modules/discord-api-types/rest/v10/guildScheduledEvent.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v10/guildScheduledEvent.js delete mode 100644 node_modules/discord-api-types/rest/v10/guildScheduledEvent.js.map delete mode 100644 node_modules/discord-api-types/rest/v10/index.d.ts delete mode 100644 node_modules/discord-api-types/rest/v10/index.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v10/index.js delete mode 100644 node_modules/discord-api-types/rest/v10/index.js.map delete mode 100644 node_modules/discord-api-types/rest/v10/index.mjs delete mode 100644 node_modules/discord-api-types/rest/v10/interactions.d.ts delete mode 100644 node_modules/discord-api-types/rest/v10/interactions.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v10/interactions.js delete mode 100644 node_modules/discord-api-types/rest/v10/interactions.js.map delete mode 100644 node_modules/discord-api-types/rest/v10/invite.d.ts delete mode 100644 node_modules/discord-api-types/rest/v10/invite.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v10/invite.js delete mode 100644 node_modules/discord-api-types/rest/v10/invite.js.map delete mode 100644 node_modules/discord-api-types/rest/v10/monetization.d.ts delete mode 100644 node_modules/discord-api-types/rest/v10/monetization.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v10/monetization.js delete mode 100644 node_modules/discord-api-types/rest/v10/monetization.js.map delete mode 100644 node_modules/discord-api-types/rest/v10/oauth2.d.ts delete mode 100644 node_modules/discord-api-types/rest/v10/oauth2.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v10/oauth2.js delete mode 100644 node_modules/discord-api-types/rest/v10/oauth2.js.map delete mode 100644 node_modules/discord-api-types/rest/v10/poll.d.ts delete mode 100644 node_modules/discord-api-types/rest/v10/poll.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v10/poll.js delete mode 100644 node_modules/discord-api-types/rest/v10/poll.js.map delete mode 100644 node_modules/discord-api-types/rest/v10/stageInstance.d.ts delete mode 100644 node_modules/discord-api-types/rest/v10/stageInstance.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v10/stageInstance.js delete mode 100644 node_modules/discord-api-types/rest/v10/stageInstance.js.map delete mode 100644 node_modules/discord-api-types/rest/v10/sticker.d.ts delete mode 100644 node_modules/discord-api-types/rest/v10/sticker.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v10/sticker.js delete mode 100644 node_modules/discord-api-types/rest/v10/sticker.js.map delete mode 100644 node_modules/discord-api-types/rest/v10/template.d.ts delete mode 100644 node_modules/discord-api-types/rest/v10/template.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v10/template.js delete mode 100644 node_modules/discord-api-types/rest/v10/template.js.map delete mode 100644 node_modules/discord-api-types/rest/v10/user.d.ts delete mode 100644 node_modules/discord-api-types/rest/v10/user.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v10/user.js delete mode 100644 node_modules/discord-api-types/rest/v10/user.js.map delete mode 100644 node_modules/discord-api-types/rest/v10/voice.d.ts delete mode 100644 node_modules/discord-api-types/rest/v10/voice.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v10/voice.js delete mode 100644 node_modules/discord-api-types/rest/v10/voice.js.map delete mode 100644 node_modules/discord-api-types/rest/v10/webhook.d.ts delete mode 100644 node_modules/discord-api-types/rest/v10/webhook.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v10/webhook.js delete mode 100644 node_modules/discord-api-types/rest/v10/webhook.js.map delete mode 100644 node_modules/discord-api-types/rest/v6/auditLog.d.ts delete mode 100644 node_modules/discord-api-types/rest/v6/auditLog.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v6/auditLog.js delete mode 100644 node_modules/discord-api-types/rest/v6/auditLog.js.map delete mode 100644 node_modules/discord-api-types/rest/v6/channel.d.ts delete mode 100644 node_modules/discord-api-types/rest/v6/channel.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v6/channel.js delete mode 100644 node_modules/discord-api-types/rest/v6/channel.js.map delete mode 100644 node_modules/discord-api-types/rest/v6/emoji.d.ts delete mode 100644 node_modules/discord-api-types/rest/v6/emoji.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v6/emoji.js delete mode 100644 node_modules/discord-api-types/rest/v6/emoji.js.map delete mode 100644 node_modules/discord-api-types/rest/v6/gateway.d.ts delete mode 100644 node_modules/discord-api-types/rest/v6/gateway.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v6/gateway.js delete mode 100644 node_modules/discord-api-types/rest/v6/gateway.js.map delete mode 100644 node_modules/discord-api-types/rest/v6/guild.d.ts delete mode 100644 node_modules/discord-api-types/rest/v6/guild.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v6/guild.js delete mode 100644 node_modules/discord-api-types/rest/v6/guild.js.map delete mode 100644 node_modules/discord-api-types/rest/v6/index.d.ts delete mode 100644 node_modules/discord-api-types/rest/v6/index.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v6/index.js delete mode 100644 node_modules/discord-api-types/rest/v6/index.js.map delete mode 100644 node_modules/discord-api-types/rest/v6/index.mjs delete mode 100644 node_modules/discord-api-types/rest/v6/invite.d.ts delete mode 100644 node_modules/discord-api-types/rest/v6/invite.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v6/invite.js delete mode 100644 node_modules/discord-api-types/rest/v6/invite.js.map delete mode 100644 node_modules/discord-api-types/rest/v6/oauth2.d.ts delete mode 100644 node_modules/discord-api-types/rest/v6/oauth2.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v6/oauth2.js delete mode 100644 node_modules/discord-api-types/rest/v6/oauth2.js.map delete mode 100644 node_modules/discord-api-types/rest/v6/user.d.ts delete mode 100644 node_modules/discord-api-types/rest/v6/user.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v6/user.js delete mode 100644 node_modules/discord-api-types/rest/v6/user.js.map delete mode 100644 node_modules/discord-api-types/rest/v6/voice.d.ts delete mode 100644 node_modules/discord-api-types/rest/v6/voice.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v6/voice.js delete mode 100644 node_modules/discord-api-types/rest/v6/voice.js.map delete mode 100644 node_modules/discord-api-types/rest/v6/webhook.d.ts delete mode 100644 node_modules/discord-api-types/rest/v6/webhook.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v6/webhook.js delete mode 100644 node_modules/discord-api-types/rest/v6/webhook.js.map delete mode 100644 node_modules/discord-api-types/rest/v8/auditLog.d.ts delete mode 100644 node_modules/discord-api-types/rest/v8/auditLog.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v8/auditLog.js delete mode 100644 node_modules/discord-api-types/rest/v8/auditLog.js.map delete mode 100644 node_modules/discord-api-types/rest/v8/channel.d.ts delete mode 100644 node_modules/discord-api-types/rest/v8/channel.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v8/channel.js delete mode 100644 node_modules/discord-api-types/rest/v8/channel.js.map delete mode 100644 node_modules/discord-api-types/rest/v8/emoji.d.ts delete mode 100644 node_modules/discord-api-types/rest/v8/emoji.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v8/emoji.js delete mode 100644 node_modules/discord-api-types/rest/v8/emoji.js.map delete mode 100644 node_modules/discord-api-types/rest/v8/gateway.d.ts delete mode 100644 node_modules/discord-api-types/rest/v8/gateway.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v8/gateway.js delete mode 100644 node_modules/discord-api-types/rest/v8/gateway.js.map delete mode 100644 node_modules/discord-api-types/rest/v8/guild.d.ts delete mode 100644 node_modules/discord-api-types/rest/v8/guild.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v8/guild.js delete mode 100644 node_modules/discord-api-types/rest/v8/guild.js.map delete mode 100644 node_modules/discord-api-types/rest/v8/guildScheduledEvent.d.ts delete mode 100644 node_modules/discord-api-types/rest/v8/guildScheduledEvent.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v8/guildScheduledEvent.js delete mode 100644 node_modules/discord-api-types/rest/v8/guildScheduledEvent.js.map delete mode 100644 node_modules/discord-api-types/rest/v8/index.d.ts delete mode 100644 node_modules/discord-api-types/rest/v8/index.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v8/index.js delete mode 100644 node_modules/discord-api-types/rest/v8/index.js.map delete mode 100644 node_modules/discord-api-types/rest/v8/index.mjs delete mode 100644 node_modules/discord-api-types/rest/v8/interactions.d.ts delete mode 100644 node_modules/discord-api-types/rest/v8/interactions.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v8/interactions.js delete mode 100644 node_modules/discord-api-types/rest/v8/interactions.js.map delete mode 100644 node_modules/discord-api-types/rest/v8/invite.d.ts delete mode 100644 node_modules/discord-api-types/rest/v8/invite.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v8/invite.js delete mode 100644 node_modules/discord-api-types/rest/v8/invite.js.map delete mode 100644 node_modules/discord-api-types/rest/v8/oauth2.d.ts delete mode 100644 node_modules/discord-api-types/rest/v8/oauth2.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v8/oauth2.js delete mode 100644 node_modules/discord-api-types/rest/v8/oauth2.js.map delete mode 100644 node_modules/discord-api-types/rest/v8/stageInstance.d.ts delete mode 100644 node_modules/discord-api-types/rest/v8/stageInstance.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v8/stageInstance.js delete mode 100644 node_modules/discord-api-types/rest/v8/stageInstance.js.map delete mode 100644 node_modules/discord-api-types/rest/v8/sticker.d.ts delete mode 100644 node_modules/discord-api-types/rest/v8/sticker.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v8/sticker.js delete mode 100644 node_modules/discord-api-types/rest/v8/sticker.js.map delete mode 100644 node_modules/discord-api-types/rest/v8/template.d.ts delete mode 100644 node_modules/discord-api-types/rest/v8/template.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v8/template.js delete mode 100644 node_modules/discord-api-types/rest/v8/template.js.map delete mode 100644 node_modules/discord-api-types/rest/v8/user.d.ts delete mode 100644 node_modules/discord-api-types/rest/v8/user.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v8/user.js delete mode 100644 node_modules/discord-api-types/rest/v8/user.js.map delete mode 100644 node_modules/discord-api-types/rest/v8/voice.d.ts delete mode 100644 node_modules/discord-api-types/rest/v8/voice.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v8/voice.js delete mode 100644 node_modules/discord-api-types/rest/v8/voice.js.map delete mode 100644 node_modules/discord-api-types/rest/v8/webhook.d.ts delete mode 100644 node_modules/discord-api-types/rest/v8/webhook.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v8/webhook.js delete mode 100644 node_modules/discord-api-types/rest/v8/webhook.js.map delete mode 100644 node_modules/discord-api-types/rest/v9/application.d.ts delete mode 100644 node_modules/discord-api-types/rest/v9/application.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v9/application.js delete mode 100644 node_modules/discord-api-types/rest/v9/application.js.map delete mode 100644 node_modules/discord-api-types/rest/v9/auditLog.d.ts delete mode 100644 node_modules/discord-api-types/rest/v9/auditLog.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v9/auditLog.js delete mode 100644 node_modules/discord-api-types/rest/v9/auditLog.js.map delete mode 100644 node_modules/discord-api-types/rest/v9/autoModeration.d.ts delete mode 100644 node_modules/discord-api-types/rest/v9/autoModeration.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v9/autoModeration.js delete mode 100644 node_modules/discord-api-types/rest/v9/autoModeration.js.map delete mode 100644 node_modules/discord-api-types/rest/v9/channel.d.ts delete mode 100644 node_modules/discord-api-types/rest/v9/channel.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v9/channel.js delete mode 100644 node_modules/discord-api-types/rest/v9/channel.js.map delete mode 100644 node_modules/discord-api-types/rest/v9/emoji.d.ts delete mode 100644 node_modules/discord-api-types/rest/v9/emoji.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v9/emoji.js delete mode 100644 node_modules/discord-api-types/rest/v9/emoji.js.map delete mode 100644 node_modules/discord-api-types/rest/v9/gateway.d.ts delete mode 100644 node_modules/discord-api-types/rest/v9/gateway.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v9/gateway.js delete mode 100644 node_modules/discord-api-types/rest/v9/gateway.js.map delete mode 100644 node_modules/discord-api-types/rest/v9/guild.d.ts delete mode 100644 node_modules/discord-api-types/rest/v9/guild.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v9/guild.js delete mode 100644 node_modules/discord-api-types/rest/v9/guild.js.map delete mode 100644 node_modules/discord-api-types/rest/v9/guildScheduledEvent.d.ts delete mode 100644 node_modules/discord-api-types/rest/v9/guildScheduledEvent.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v9/guildScheduledEvent.js delete mode 100644 node_modules/discord-api-types/rest/v9/guildScheduledEvent.js.map delete mode 100644 node_modules/discord-api-types/rest/v9/index.d.ts delete mode 100644 node_modules/discord-api-types/rest/v9/index.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v9/index.js delete mode 100644 node_modules/discord-api-types/rest/v9/index.js.map delete mode 100644 node_modules/discord-api-types/rest/v9/index.mjs delete mode 100644 node_modules/discord-api-types/rest/v9/interactions.d.ts delete mode 100644 node_modules/discord-api-types/rest/v9/interactions.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v9/interactions.js delete mode 100644 node_modules/discord-api-types/rest/v9/interactions.js.map delete mode 100644 node_modules/discord-api-types/rest/v9/invite.d.ts delete mode 100644 node_modules/discord-api-types/rest/v9/invite.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v9/invite.js delete mode 100644 node_modules/discord-api-types/rest/v9/invite.js.map delete mode 100644 node_modules/discord-api-types/rest/v9/monetization.d.ts delete mode 100644 node_modules/discord-api-types/rest/v9/monetization.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v9/monetization.js delete mode 100644 node_modules/discord-api-types/rest/v9/monetization.js.map delete mode 100644 node_modules/discord-api-types/rest/v9/oauth2.d.ts delete mode 100644 node_modules/discord-api-types/rest/v9/oauth2.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v9/oauth2.js delete mode 100644 node_modules/discord-api-types/rest/v9/oauth2.js.map delete mode 100644 node_modules/discord-api-types/rest/v9/poll.d.ts delete mode 100644 node_modules/discord-api-types/rest/v9/poll.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v9/poll.js delete mode 100644 node_modules/discord-api-types/rest/v9/poll.js.map delete mode 100644 node_modules/discord-api-types/rest/v9/stageInstance.d.ts delete mode 100644 node_modules/discord-api-types/rest/v9/stageInstance.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v9/stageInstance.js delete mode 100644 node_modules/discord-api-types/rest/v9/stageInstance.js.map delete mode 100644 node_modules/discord-api-types/rest/v9/sticker.d.ts delete mode 100644 node_modules/discord-api-types/rest/v9/sticker.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v9/sticker.js delete mode 100644 node_modules/discord-api-types/rest/v9/sticker.js.map delete mode 100644 node_modules/discord-api-types/rest/v9/template.d.ts delete mode 100644 node_modules/discord-api-types/rest/v9/template.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v9/template.js delete mode 100644 node_modules/discord-api-types/rest/v9/template.js.map delete mode 100644 node_modules/discord-api-types/rest/v9/user.d.ts delete mode 100644 node_modules/discord-api-types/rest/v9/user.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v9/user.js delete mode 100644 node_modules/discord-api-types/rest/v9/user.js.map delete mode 100644 node_modules/discord-api-types/rest/v9/voice.d.ts delete mode 100644 node_modules/discord-api-types/rest/v9/voice.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v9/voice.js delete mode 100644 node_modules/discord-api-types/rest/v9/voice.js.map delete mode 100644 node_modules/discord-api-types/rest/v9/webhook.d.ts delete mode 100644 node_modules/discord-api-types/rest/v9/webhook.d.ts.map delete mode 100644 node_modules/discord-api-types/rest/v9/webhook.js delete mode 100644 node_modules/discord-api-types/rest/v9/webhook.js.map delete mode 100644 node_modules/discord-api-types/rpc/common.d.ts delete mode 100644 node_modules/discord-api-types/rpc/common.d.ts.map delete mode 100644 node_modules/discord-api-types/rpc/common.js delete mode 100644 node_modules/discord-api-types/rpc/common.js.map delete mode 100644 node_modules/discord-api-types/rpc/index.d.ts delete mode 100644 node_modules/discord-api-types/rpc/index.d.ts.map delete mode 100644 node_modules/discord-api-types/rpc/index.js delete mode 100644 node_modules/discord-api-types/rpc/index.js.map delete mode 100644 node_modules/discord-api-types/rpc/index.mjs delete mode 100644 node_modules/discord-api-types/rpc/v10.d.ts delete mode 100644 node_modules/discord-api-types/rpc/v10.d.ts.map delete mode 100644 node_modules/discord-api-types/rpc/v10.js delete mode 100644 node_modules/discord-api-types/rpc/v10.js.map delete mode 100644 node_modules/discord-api-types/rpc/v10.mjs delete mode 100644 node_modules/discord-api-types/rpc/v8.d.ts delete mode 100644 node_modules/discord-api-types/rpc/v8.d.ts.map delete mode 100644 node_modules/discord-api-types/rpc/v8.js delete mode 100644 node_modules/discord-api-types/rpc/v8.js.map delete mode 100644 node_modules/discord-api-types/rpc/v8.mjs delete mode 100644 node_modules/discord-api-types/rpc/v9.d.ts delete mode 100644 node_modules/discord-api-types/rpc/v9.d.ts.map delete mode 100644 node_modules/discord-api-types/rpc/v9.js delete mode 100644 node_modules/discord-api-types/rpc/v9.js.map delete mode 100644 node_modules/discord-api-types/rpc/v9.mjs delete mode 100644 node_modules/discord-api-types/utils/index.d.ts delete mode 100644 node_modules/discord-api-types/utils/index.d.ts.map delete mode 100644 node_modules/discord-api-types/utils/index.js delete mode 100644 node_modules/discord-api-types/utils/index.js.map delete mode 100644 node_modules/discord-api-types/utils/index.mjs delete mode 100644 node_modules/discord-api-types/utils/internals.d.ts delete mode 100644 node_modules/discord-api-types/utils/internals.d.ts.map delete mode 100644 node_modules/discord-api-types/utils/internals.js delete mode 100644 node_modules/discord-api-types/utils/internals.js.map delete mode 100644 node_modules/discord-api-types/utils/v10.d.ts delete mode 100644 node_modules/discord-api-types/utils/v10.d.ts.map delete mode 100644 node_modules/discord-api-types/utils/v10.js delete mode 100644 node_modules/discord-api-types/utils/v10.js.map delete mode 100644 node_modules/discord-api-types/utils/v10.mjs delete mode 100644 node_modules/discord-api-types/utils/v8.d.ts delete mode 100644 node_modules/discord-api-types/utils/v8.d.ts.map delete mode 100644 node_modules/discord-api-types/utils/v8.js delete mode 100644 node_modules/discord-api-types/utils/v8.js.map delete mode 100644 node_modules/discord-api-types/utils/v8.mjs delete mode 100644 node_modules/discord-api-types/utils/v9.d.ts delete mode 100644 node_modules/discord-api-types/utils/v9.d.ts.map delete mode 100644 node_modules/discord-api-types/utils/v9.js delete mode 100644 node_modules/discord-api-types/utils/v9.js.map delete mode 100644 node_modules/discord-api-types/utils/v9.mjs delete mode 100644 node_modules/discord-api-types/v10.d.ts delete mode 100644 node_modules/discord-api-types/v10.d.ts.map delete mode 100644 node_modules/discord-api-types/v10.js delete mode 100644 node_modules/discord-api-types/v10.js.map delete mode 100644 node_modules/discord-api-types/v10.mjs delete mode 100644 node_modules/discord-api-types/v6.d.ts delete mode 100644 node_modules/discord-api-types/v6.d.ts.map delete mode 100644 node_modules/discord-api-types/v6.js delete mode 100644 node_modules/discord-api-types/v6.js.map delete mode 100644 node_modules/discord-api-types/v6.mjs delete mode 100644 node_modules/discord-api-types/v8.d.ts delete mode 100644 node_modules/discord-api-types/v8.d.ts.map delete mode 100644 node_modules/discord-api-types/v8.js delete mode 100644 node_modules/discord-api-types/v8.js.map delete mode 100644 node_modules/discord-api-types/v8.mjs delete mode 100644 node_modules/discord-api-types/v9.d.ts delete mode 100644 node_modules/discord-api-types/v9.d.ts.map delete mode 100644 node_modules/discord-api-types/v9.js delete mode 100644 node_modules/discord-api-types/v9.js.map delete mode 100644 node_modules/discord-api-types/v9.mjs delete mode 100644 node_modules/discord-api-types/voice/index.d.ts delete mode 100644 node_modules/discord-api-types/voice/index.d.ts.map delete mode 100644 node_modules/discord-api-types/voice/index.js delete mode 100644 node_modules/discord-api-types/voice/index.js.map delete mode 100644 node_modules/discord-api-types/voice/index.mjs delete mode 100644 node_modules/discord-api-types/voice/v4.d.ts delete mode 100644 node_modules/discord-api-types/voice/v4.d.ts.map delete mode 100644 node_modules/discord-api-types/voice/v4.js delete mode 100644 node_modules/discord-api-types/voice/v4.js.map delete mode 100644 node_modules/discord-api-types/voice/v4.mjs delete mode 100644 node_modules/discord.js/LICENSE delete mode 100644 node_modules/discord.js/README.md delete mode 100644 node_modules/discord.js/package.json delete mode 100644 node_modules/discord.js/src/client/BaseClient.js delete mode 100644 node_modules/discord.js/src/client/Client.js delete mode 100644 node_modules/discord.js/src/client/WebhookClient.js delete mode 100644 node_modules/discord.js/src/client/actions/Action.js delete mode 100644 node_modules/discord.js/src/client/actions/ActionsManager.js delete mode 100644 node_modules/discord.js/src/client/actions/ApplicationCommandPermissionsUpdate.js delete mode 100644 node_modules/discord.js/src/client/actions/AutoModerationActionExecution.js delete mode 100644 node_modules/discord.js/src/client/actions/AutoModerationRuleCreate.js delete mode 100644 node_modules/discord.js/src/client/actions/AutoModerationRuleDelete.js delete mode 100644 node_modules/discord.js/src/client/actions/AutoModerationRuleUpdate.js delete mode 100644 node_modules/discord.js/src/client/actions/ChannelCreate.js delete mode 100644 node_modules/discord.js/src/client/actions/ChannelDelete.js delete mode 100644 node_modules/discord.js/src/client/actions/ChannelUpdate.js delete mode 100644 node_modules/discord.js/src/client/actions/EntitlementCreate.js delete mode 100644 node_modules/discord.js/src/client/actions/EntitlementDelete.js delete mode 100644 node_modules/discord.js/src/client/actions/EntitlementUpdate.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildAuditLogEntryCreate.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildBanAdd.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildBanRemove.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildChannelsPositionUpdate.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildDelete.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildEmojiCreate.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildEmojiDelete.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildEmojiUpdate.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildEmojisUpdate.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildIntegrationsUpdate.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildMemberRemove.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildMemberUpdate.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildRoleCreate.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildRoleDelete.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildRoleUpdate.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildRolesPositionUpdate.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildScheduledEventCreate.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildScheduledEventDelete.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildScheduledEventUpdate.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildScheduledEventUserAdd.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildScheduledEventUserRemove.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildStickerCreate.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildStickerDelete.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildStickerUpdate.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildStickersUpdate.js delete mode 100644 node_modules/discord.js/src/client/actions/GuildUpdate.js delete mode 100644 node_modules/discord.js/src/client/actions/InteractionCreate.js delete mode 100644 node_modules/discord.js/src/client/actions/InviteCreate.js delete mode 100644 node_modules/discord.js/src/client/actions/InviteDelete.js delete mode 100644 node_modules/discord.js/src/client/actions/MessageCreate.js delete mode 100644 node_modules/discord.js/src/client/actions/MessageDelete.js delete mode 100644 node_modules/discord.js/src/client/actions/MessageDeleteBulk.js delete mode 100644 node_modules/discord.js/src/client/actions/MessagePollVoteAdd.js delete mode 100644 node_modules/discord.js/src/client/actions/MessagePollVoteRemove.js delete mode 100644 node_modules/discord.js/src/client/actions/MessageReactionAdd.js delete mode 100644 node_modules/discord.js/src/client/actions/MessageReactionRemove.js delete mode 100644 node_modules/discord.js/src/client/actions/MessageReactionRemoveAll.js delete mode 100644 node_modules/discord.js/src/client/actions/MessageReactionRemoveEmoji.js delete mode 100644 node_modules/discord.js/src/client/actions/MessageUpdate.js delete mode 100644 node_modules/discord.js/src/client/actions/PresenceUpdate.js delete mode 100644 node_modules/discord.js/src/client/actions/StageInstanceCreate.js delete mode 100644 node_modules/discord.js/src/client/actions/StageInstanceDelete.js delete mode 100644 node_modules/discord.js/src/client/actions/StageInstanceUpdate.js delete mode 100644 node_modules/discord.js/src/client/actions/ThreadCreate.js delete mode 100644 node_modules/discord.js/src/client/actions/ThreadDelete.js delete mode 100644 node_modules/discord.js/src/client/actions/ThreadListSync.js delete mode 100644 node_modules/discord.js/src/client/actions/ThreadMemberUpdate.js delete mode 100644 node_modules/discord.js/src/client/actions/ThreadMembersUpdate.js delete mode 100644 node_modules/discord.js/src/client/actions/TypingStart.js delete mode 100644 node_modules/discord.js/src/client/actions/UserUpdate.js delete mode 100644 node_modules/discord.js/src/client/actions/VoiceStateUpdate.js delete mode 100644 node_modules/discord.js/src/client/actions/WebhooksUpdate.js delete mode 100644 node_modules/discord.js/src/client/voice/ClientVoiceManager.js delete mode 100644 node_modules/discord.js/src/client/websocket/WebSocketManager.js delete mode 100644 node_modules/discord.js/src/client/websocket/WebSocketShard.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/AUTO_MODERATION_ACTION_EXECUTION.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/AUTO_MODERATION_RULE_CREATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/AUTO_MODERATION_RULE_DELETE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/AUTO_MODERATION_RULE_UPDATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/CHANNEL_CREATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/CHANNEL_DELETE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/CHANNEL_PINS_UPDATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/CHANNEL_UPDATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/ENTITLEMENT_CREATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/ENTITLEMENT_DELETE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/ENTITLEMENT_UPDATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_AUDIT_LOG_ENTRY_CREATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_BAN_ADD.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_BAN_REMOVE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_CREATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_DELETE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_EMOJIS_UPDATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_INTEGRATIONS_UPDATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_MEMBERS_CHUNK.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_MEMBER_ADD.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_MEMBER_REMOVE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_MEMBER_UPDATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_ROLE_CREATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_ROLE_DELETE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_ROLE_UPDATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_CREATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_DELETE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_UPDATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_ADD.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_REMOVE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_STICKERS_UPDATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_UPDATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/INTERACTION_CREATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/INVITE_CREATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/INVITE_DELETE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/MESSAGE_DELETE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/MESSAGE_DELETE_BULK.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/MESSAGE_POLL_VOTE_ADD.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/MESSAGE_POLL_VOTE_REMOVE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/MESSAGE_REACTION_ADD.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_ALL.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_EMOJI.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/MESSAGE_UPDATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/PRESENCE_UPDATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/READY.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/RESUMED.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/STAGE_INSTANCE_CREATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/STAGE_INSTANCE_DELETE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/STAGE_INSTANCE_UPDATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/THREAD_CREATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/THREAD_DELETE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/THREAD_LIST_SYNC.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/THREAD_MEMBERS_UPDATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/THREAD_MEMBER_UPDATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/THREAD_UPDATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/TYPING_START.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/USER_UPDATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/VOICE_SERVER_UPDATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/VOICE_STATE_UPDATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/WEBHOOKS_UPDATE.js delete mode 100644 node_modules/discord.js/src/client/websocket/handlers/index.js delete mode 100644 node_modules/discord.js/src/errors/DJSError.js delete mode 100644 node_modules/discord.js/src/errors/ErrorCodes.js delete mode 100644 node_modules/discord.js/src/errors/Messages.js delete mode 100644 node_modules/discord.js/src/errors/index.js delete mode 100644 node_modules/discord.js/src/index.js delete mode 100644 node_modules/discord.js/src/managers/ApplicationCommandManager.js delete mode 100644 node_modules/discord.js/src/managers/ApplicationCommandPermissionsManager.js delete mode 100644 node_modules/discord.js/src/managers/AutoModerationRuleManager.js delete mode 100644 node_modules/discord.js/src/managers/BaseGuildEmojiManager.js delete mode 100644 node_modules/discord.js/src/managers/BaseManager.js delete mode 100644 node_modules/discord.js/src/managers/CachedManager.js delete mode 100644 node_modules/discord.js/src/managers/CategoryChannelChildManager.js delete mode 100644 node_modules/discord.js/src/managers/ChannelManager.js delete mode 100644 node_modules/discord.js/src/managers/DMMessageManager.js delete mode 100644 node_modules/discord.js/src/managers/DataManager.js delete mode 100644 node_modules/discord.js/src/managers/EntitlementManager.js delete mode 100644 node_modules/discord.js/src/managers/GuildApplicationCommandManager.js delete mode 100644 node_modules/discord.js/src/managers/GuildBanManager.js delete mode 100644 node_modules/discord.js/src/managers/GuildChannelManager.js delete mode 100644 node_modules/discord.js/src/managers/GuildEmojiManager.js delete mode 100644 node_modules/discord.js/src/managers/GuildEmojiRoleManager.js delete mode 100644 node_modules/discord.js/src/managers/GuildForumThreadManager.js delete mode 100644 node_modules/discord.js/src/managers/GuildInviteManager.js delete mode 100644 node_modules/discord.js/src/managers/GuildManager.js delete mode 100644 node_modules/discord.js/src/managers/GuildMemberManager.js delete mode 100644 node_modules/discord.js/src/managers/GuildMemberRoleManager.js delete mode 100644 node_modules/discord.js/src/managers/GuildMessageManager.js delete mode 100644 node_modules/discord.js/src/managers/GuildScheduledEventManager.js delete mode 100644 node_modules/discord.js/src/managers/GuildStickerManager.js delete mode 100644 node_modules/discord.js/src/managers/GuildTextThreadManager.js delete mode 100644 node_modules/discord.js/src/managers/MessageManager.js delete mode 100644 node_modules/discord.js/src/managers/PermissionOverwriteManager.js delete mode 100644 node_modules/discord.js/src/managers/PresenceManager.js delete mode 100644 node_modules/discord.js/src/managers/ReactionManager.js delete mode 100644 node_modules/discord.js/src/managers/ReactionUserManager.js delete mode 100644 node_modules/discord.js/src/managers/RoleManager.js delete mode 100644 node_modules/discord.js/src/managers/StageInstanceManager.js delete mode 100644 node_modules/discord.js/src/managers/ThreadManager.js delete mode 100644 node_modules/discord.js/src/managers/ThreadMemberManager.js delete mode 100644 node_modules/discord.js/src/managers/UserManager.js delete mode 100644 node_modules/discord.js/src/managers/VoiceStateManager.js delete mode 100644 node_modules/discord.js/src/sharding/Shard.js delete mode 100644 node_modules/discord.js/src/sharding/ShardClientUtil.js delete mode 100644 node_modules/discord.js/src/sharding/ShardingManager.js delete mode 100644 node_modules/discord.js/src/structures/ActionRow.js delete mode 100644 node_modules/discord.js/src/structures/ActionRowBuilder.js delete mode 100644 node_modules/discord.js/src/structures/AnonymousGuild.js delete mode 100644 node_modules/discord.js/src/structures/ApplicationCommand.js delete mode 100644 node_modules/discord.js/src/structures/ApplicationRoleConnectionMetadata.js delete mode 100644 node_modules/discord.js/src/structures/Attachment.js delete mode 100644 node_modules/discord.js/src/structures/AttachmentBuilder.js delete mode 100644 node_modules/discord.js/src/structures/AutoModerationActionExecution.js delete mode 100644 node_modules/discord.js/src/structures/AutoModerationRule.js delete mode 100644 node_modules/discord.js/src/structures/AutocompleteInteraction.js delete mode 100644 node_modules/discord.js/src/structures/Base.js delete mode 100644 node_modules/discord.js/src/structures/BaseChannel.js delete mode 100644 node_modules/discord.js/src/structures/BaseGuild.js delete mode 100644 node_modules/discord.js/src/structures/BaseGuildEmoji.js delete mode 100644 node_modules/discord.js/src/structures/BaseGuildTextChannel.js delete mode 100644 node_modules/discord.js/src/structures/BaseGuildVoiceChannel.js delete mode 100644 node_modules/discord.js/src/structures/BaseInteraction.js delete mode 100644 node_modules/discord.js/src/structures/BaseSelectMenuComponent.js delete mode 100644 node_modules/discord.js/src/structures/ButtonBuilder.js delete mode 100644 node_modules/discord.js/src/structures/ButtonComponent.js delete mode 100644 node_modules/discord.js/src/structures/ButtonInteraction.js delete mode 100644 node_modules/discord.js/src/structures/CategoryChannel.js delete mode 100644 node_modules/discord.js/src/structures/ChannelSelectMenuBuilder.js delete mode 100644 node_modules/discord.js/src/structures/ChannelSelectMenuComponent.js delete mode 100644 node_modules/discord.js/src/structures/ChannelSelectMenuInteraction.js delete mode 100644 node_modules/discord.js/src/structures/ChatInputCommandInteraction.js delete mode 100644 node_modules/discord.js/src/structures/ClientApplication.js delete mode 100644 node_modules/discord.js/src/structures/ClientPresence.js delete mode 100644 node_modules/discord.js/src/structures/ClientUser.js delete mode 100644 node_modules/discord.js/src/structures/CommandInteraction.js delete mode 100644 node_modules/discord.js/src/structures/CommandInteractionOptionResolver.js delete mode 100644 node_modules/discord.js/src/structures/Component.js delete mode 100644 node_modules/discord.js/src/structures/ContextMenuCommandInteraction.js delete mode 100644 node_modules/discord.js/src/structures/DMChannel.js delete mode 100644 node_modules/discord.js/src/structures/DirectoryChannel.js delete mode 100644 node_modules/discord.js/src/structures/Embed.js delete mode 100644 node_modules/discord.js/src/structures/EmbedBuilder.js delete mode 100644 node_modules/discord.js/src/structures/Emoji.js delete mode 100644 node_modules/discord.js/src/structures/Entitlement.js delete mode 100644 node_modules/discord.js/src/structures/ForumChannel.js delete mode 100644 node_modules/discord.js/src/structures/Guild.js delete mode 100644 node_modules/discord.js/src/structures/GuildAuditLogs.js delete mode 100644 node_modules/discord.js/src/structures/GuildAuditLogsEntry.js delete mode 100644 node_modules/discord.js/src/structures/GuildBan.js delete mode 100644 node_modules/discord.js/src/structures/GuildChannel.js delete mode 100644 node_modules/discord.js/src/structures/GuildEmoji.js delete mode 100644 node_modules/discord.js/src/structures/GuildMember.js delete mode 100644 node_modules/discord.js/src/structures/GuildOnboarding.js delete mode 100644 node_modules/discord.js/src/structures/GuildOnboardingPrompt.js delete mode 100644 node_modules/discord.js/src/structures/GuildOnboardingPromptOption.js delete mode 100644 node_modules/discord.js/src/structures/GuildPreview.js delete mode 100644 node_modules/discord.js/src/structures/GuildPreviewEmoji.js delete mode 100644 node_modules/discord.js/src/structures/GuildScheduledEvent.js delete mode 100644 node_modules/discord.js/src/structures/GuildTemplate.js delete mode 100644 node_modules/discord.js/src/structures/Integration.js delete mode 100644 node_modules/discord.js/src/structures/IntegrationApplication.js delete mode 100644 node_modules/discord.js/src/structures/InteractionCollector.js delete mode 100644 node_modules/discord.js/src/structures/InteractionResponse.js delete mode 100644 node_modules/discord.js/src/structures/InteractionWebhook.js delete mode 100644 node_modules/discord.js/src/structures/Invite.js delete mode 100644 node_modules/discord.js/src/structures/InviteGuild.js delete mode 100644 node_modules/discord.js/src/structures/InviteStageInstance.js delete mode 100644 node_modules/discord.js/src/structures/MediaChannel.js delete mode 100644 node_modules/discord.js/src/structures/MentionableSelectMenuBuilder.js delete mode 100644 node_modules/discord.js/src/structures/MentionableSelectMenuComponent.js delete mode 100644 node_modules/discord.js/src/structures/MentionableSelectMenuInteraction.js delete mode 100644 node_modules/discord.js/src/structures/Message.js delete mode 100644 node_modules/discord.js/src/structures/MessageCollector.js delete mode 100644 node_modules/discord.js/src/structures/MessageComponentInteraction.js delete mode 100644 node_modules/discord.js/src/structures/MessageContextMenuCommandInteraction.js delete mode 100644 node_modules/discord.js/src/structures/MessageMentions.js delete mode 100644 node_modules/discord.js/src/structures/MessagePayload.js delete mode 100644 node_modules/discord.js/src/structures/MessageReaction.js delete mode 100644 node_modules/discord.js/src/structures/ModalBuilder.js delete mode 100644 node_modules/discord.js/src/structures/ModalSubmitFields.js delete mode 100644 node_modules/discord.js/src/structures/ModalSubmitInteraction.js delete mode 100644 node_modules/discord.js/src/structures/NewsChannel.js delete mode 100644 node_modules/discord.js/src/structures/OAuth2Guild.js delete mode 100644 node_modules/discord.js/src/structures/PartialGroupDMChannel.js delete mode 100644 node_modules/discord.js/src/structures/PermissionOverwrites.js delete mode 100644 node_modules/discord.js/src/structures/Poll.js delete mode 100644 node_modules/discord.js/src/structures/PollAnswer.js delete mode 100644 node_modules/discord.js/src/structures/Presence.js delete mode 100644 node_modules/discord.js/src/structures/ReactionCollector.js delete mode 100644 node_modules/discord.js/src/structures/ReactionEmoji.js delete mode 100644 node_modules/discord.js/src/structures/Role.js delete mode 100644 node_modules/discord.js/src/structures/RoleSelectMenuBuilder.js delete mode 100644 node_modules/discord.js/src/structures/RoleSelectMenuComponent.js delete mode 100644 node_modules/discord.js/src/structures/RoleSelectMenuInteraction.js delete mode 100644 node_modules/discord.js/src/structures/SKU.js delete mode 100644 node_modules/discord.js/src/structures/SelectMenuBuilder.js delete mode 100644 node_modules/discord.js/src/structures/SelectMenuComponent.js delete mode 100644 node_modules/discord.js/src/structures/SelectMenuInteraction.js delete mode 100644 node_modules/discord.js/src/structures/SelectMenuOptionBuilder.js delete mode 100644 node_modules/discord.js/src/structures/StageChannel.js delete mode 100644 node_modules/discord.js/src/structures/StageInstance.js delete mode 100644 node_modules/discord.js/src/structures/Sticker.js delete mode 100644 node_modules/discord.js/src/structures/StickerPack.js delete mode 100644 node_modules/discord.js/src/structures/StringSelectMenuBuilder.js delete mode 100644 node_modules/discord.js/src/structures/StringSelectMenuComponent.js delete mode 100644 node_modules/discord.js/src/structures/StringSelectMenuInteraction.js delete mode 100644 node_modules/discord.js/src/structures/StringSelectMenuOptionBuilder.js delete mode 100644 node_modules/discord.js/src/structures/Team.js delete mode 100644 node_modules/discord.js/src/structures/TeamMember.js delete mode 100644 node_modules/discord.js/src/structures/TextChannel.js delete mode 100644 node_modules/discord.js/src/structures/TextInputBuilder.js delete mode 100644 node_modules/discord.js/src/structures/TextInputComponent.js delete mode 100644 node_modules/discord.js/src/structures/ThreadChannel.js delete mode 100644 node_modules/discord.js/src/structures/ThreadMember.js delete mode 100644 node_modules/discord.js/src/structures/ThreadOnlyChannel.js delete mode 100644 node_modules/discord.js/src/structures/Typing.js delete mode 100644 node_modules/discord.js/src/structures/User.js delete mode 100644 node_modules/discord.js/src/structures/UserContextMenuCommandInteraction.js delete mode 100644 node_modules/discord.js/src/structures/UserSelectMenuBuilder.js delete mode 100644 node_modules/discord.js/src/structures/UserSelectMenuComponent.js delete mode 100644 node_modules/discord.js/src/structures/UserSelectMenuInteraction.js delete mode 100644 node_modules/discord.js/src/structures/VoiceChannel.js delete mode 100644 node_modules/discord.js/src/structures/VoiceRegion.js delete mode 100644 node_modules/discord.js/src/structures/VoiceState.js delete mode 100644 node_modules/discord.js/src/structures/Webhook.js delete mode 100644 node_modules/discord.js/src/structures/WelcomeChannel.js delete mode 100644 node_modules/discord.js/src/structures/WelcomeScreen.js delete mode 100644 node_modules/discord.js/src/structures/Widget.js delete mode 100644 node_modules/discord.js/src/structures/WidgetMember.js delete mode 100644 node_modules/discord.js/src/structures/interfaces/Application.js delete mode 100644 node_modules/discord.js/src/structures/interfaces/Collector.js delete mode 100644 node_modules/discord.js/src/structures/interfaces/InteractionResponses.js delete mode 100644 node_modules/discord.js/src/structures/interfaces/TextBasedChannel.js delete mode 100644 node_modules/discord.js/src/util/APITypes.js delete mode 100644 node_modules/discord.js/src/util/ActivityFlagsBitField.js delete mode 100644 node_modules/discord.js/src/util/ApplicationFlagsBitField.js delete mode 100644 node_modules/discord.js/src/util/AttachmentFlagsBitField.js delete mode 100644 node_modules/discord.js/src/util/BitField.js delete mode 100644 node_modules/discord.js/src/util/ChannelFlagsBitField.js delete mode 100644 node_modules/discord.js/src/util/Channels.js delete mode 100644 node_modules/discord.js/src/util/Colors.js delete mode 100644 node_modules/discord.js/src/util/Components.js delete mode 100644 node_modules/discord.js/src/util/Constants.js delete mode 100644 node_modules/discord.js/src/util/DataResolver.js delete mode 100644 node_modules/discord.js/src/util/Enums.js delete mode 100644 node_modules/discord.js/src/util/Events.js delete mode 100644 node_modules/discord.js/src/util/Formatters.js delete mode 100644 node_modules/discord.js/src/util/GuildMemberFlagsBitField.js delete mode 100644 node_modules/discord.js/src/util/IntentsBitField.js delete mode 100644 node_modules/discord.js/src/util/LimitedCollection.js delete mode 100644 node_modules/discord.js/src/util/MessageFlagsBitField.js delete mode 100644 node_modules/discord.js/src/util/Options.js delete mode 100644 node_modules/discord.js/src/util/Partials.js delete mode 100644 node_modules/discord.js/src/util/PermissionsBitField.js delete mode 100644 node_modules/discord.js/src/util/RoleFlagsBitField.js delete mode 100644 node_modules/discord.js/src/util/SKUFlagsBitField.js delete mode 100644 node_modules/discord.js/src/util/ShardEvents.js delete mode 100644 node_modules/discord.js/src/util/Status.js delete mode 100644 node_modules/discord.js/src/util/Sweepers.js delete mode 100644 node_modules/discord.js/src/util/Symbols.js delete mode 100644 node_modules/discord.js/src/util/SystemChannelFlagsBitField.js delete mode 100644 node_modules/discord.js/src/util/ThreadMemberFlagsBitField.js delete mode 100644 node_modules/discord.js/src/util/Transformers.js delete mode 100644 node_modules/discord.js/src/util/UserFlagsBitField.js delete mode 100644 node_modules/discord.js/src/util/Util.js delete mode 100644 node_modules/discord.js/src/util/WebSocketShardEvents.js delete mode 100644 node_modules/discord.js/typings/index.d.mts delete mode 100644 node_modules/discord.js/typings/index.d.ts delete mode 100644 node_modules/discord.js/typings/index.test-d.ts delete mode 100644 node_modules/discord.js/typings/rawDataTypes.d.mts delete mode 100644 node_modules/discord.js/typings/rawDataTypes.d.ts delete mode 100644 node_modules/discord.js/typings/tsdoc-metadata.json delete mode 100644 node_modules/fast-deep-equal/LICENSE delete mode 100644 node_modules/fast-deep-equal/README.md delete mode 100644 node_modules/fast-deep-equal/es6/index.d.ts delete mode 100644 node_modules/fast-deep-equal/es6/index.js delete mode 100644 node_modules/fast-deep-equal/es6/react.d.ts delete mode 100644 node_modules/fast-deep-equal/es6/react.js delete mode 100644 node_modules/fast-deep-equal/index.d.ts delete mode 100644 node_modules/fast-deep-equal/index.js delete mode 100644 node_modules/fast-deep-equal/package.json delete mode 100644 node_modules/fast-deep-equal/react.d.ts delete mode 100644 node_modules/fast-deep-equal/react.js delete mode 100644 node_modules/fs/README.md delete mode 100644 node_modules/fs/package.json delete mode 100644 node_modules/inherits/LICENSE delete mode 100644 node_modules/inherits/README.md delete mode 100644 node_modules/inherits/inherits.js delete mode 100644 node_modules/inherits/inherits_browser.js delete mode 100644 node_modules/inherits/package.json delete mode 100644 node_modules/lodash.snakecase/LICENSE delete mode 100644 node_modules/lodash.snakecase/README.md delete mode 100644 node_modules/lodash.snakecase/index.js delete mode 100644 node_modules/lodash.snakecase/package.json delete mode 100644 node_modules/lodash/LICENSE delete mode 100644 node_modules/lodash/README.md delete mode 100644 node_modules/lodash/_DataView.js delete mode 100644 node_modules/lodash/_Hash.js delete mode 100644 node_modules/lodash/_LazyWrapper.js delete mode 100644 node_modules/lodash/_ListCache.js delete mode 100644 node_modules/lodash/_LodashWrapper.js delete mode 100644 node_modules/lodash/_Map.js delete mode 100644 node_modules/lodash/_MapCache.js delete mode 100644 node_modules/lodash/_Promise.js delete mode 100644 node_modules/lodash/_Set.js delete mode 100644 node_modules/lodash/_SetCache.js delete mode 100644 node_modules/lodash/_Stack.js delete mode 100644 node_modules/lodash/_Symbol.js delete mode 100644 node_modules/lodash/_Uint8Array.js delete mode 100644 node_modules/lodash/_WeakMap.js delete mode 100644 node_modules/lodash/_apply.js delete mode 100644 node_modules/lodash/_arrayAggregator.js delete mode 100644 node_modules/lodash/_arrayEach.js delete mode 100644 node_modules/lodash/_arrayEachRight.js delete mode 100644 node_modules/lodash/_arrayEvery.js delete mode 100644 node_modules/lodash/_arrayFilter.js delete mode 100644 node_modules/lodash/_arrayIncludes.js delete mode 100644 node_modules/lodash/_arrayIncludesWith.js delete mode 100644 node_modules/lodash/_arrayLikeKeys.js delete mode 100644 node_modules/lodash/_arrayMap.js delete mode 100644 node_modules/lodash/_arrayPush.js delete mode 100644 node_modules/lodash/_arrayReduce.js delete mode 100644 node_modules/lodash/_arrayReduceRight.js delete mode 100644 node_modules/lodash/_arraySample.js delete mode 100644 node_modules/lodash/_arraySampleSize.js delete mode 100644 node_modules/lodash/_arrayShuffle.js delete mode 100644 node_modules/lodash/_arraySome.js delete mode 100644 node_modules/lodash/_asciiSize.js delete mode 100644 node_modules/lodash/_asciiToArray.js delete mode 100644 node_modules/lodash/_asciiWords.js delete mode 100644 node_modules/lodash/_assignMergeValue.js delete mode 100644 node_modules/lodash/_assignValue.js delete mode 100644 node_modules/lodash/_assocIndexOf.js delete mode 100644 node_modules/lodash/_baseAggregator.js delete mode 100644 node_modules/lodash/_baseAssign.js delete mode 100644 node_modules/lodash/_baseAssignIn.js delete mode 100644 node_modules/lodash/_baseAssignValue.js delete mode 100644 node_modules/lodash/_baseAt.js delete mode 100644 node_modules/lodash/_baseClamp.js delete mode 100644 node_modules/lodash/_baseClone.js delete mode 100644 node_modules/lodash/_baseConforms.js delete mode 100644 node_modules/lodash/_baseConformsTo.js delete mode 100644 node_modules/lodash/_baseCreate.js delete mode 100644 node_modules/lodash/_baseDelay.js delete mode 100644 node_modules/lodash/_baseDifference.js delete mode 100644 node_modules/lodash/_baseEach.js delete mode 100644 node_modules/lodash/_baseEachRight.js delete mode 100644 node_modules/lodash/_baseEvery.js delete mode 100644 node_modules/lodash/_baseExtremum.js delete mode 100644 node_modules/lodash/_baseFill.js delete mode 100644 node_modules/lodash/_baseFilter.js delete mode 100644 node_modules/lodash/_baseFindIndex.js delete mode 100644 node_modules/lodash/_baseFindKey.js delete mode 100644 node_modules/lodash/_baseFlatten.js delete mode 100644 node_modules/lodash/_baseFor.js delete mode 100644 node_modules/lodash/_baseForOwn.js delete mode 100644 node_modules/lodash/_baseForOwnRight.js delete mode 100644 node_modules/lodash/_baseForRight.js delete mode 100644 node_modules/lodash/_baseFunctions.js delete mode 100644 node_modules/lodash/_baseGet.js delete mode 100644 node_modules/lodash/_baseGetAllKeys.js delete mode 100644 node_modules/lodash/_baseGetTag.js delete mode 100644 node_modules/lodash/_baseGt.js delete mode 100644 node_modules/lodash/_baseHas.js delete mode 100644 node_modules/lodash/_baseHasIn.js delete mode 100644 node_modules/lodash/_baseInRange.js delete mode 100644 node_modules/lodash/_baseIndexOf.js delete mode 100644 node_modules/lodash/_baseIndexOfWith.js delete mode 100644 node_modules/lodash/_baseIntersection.js delete mode 100644 node_modules/lodash/_baseInverter.js delete mode 100644 node_modules/lodash/_baseInvoke.js delete mode 100644 node_modules/lodash/_baseIsArguments.js delete mode 100644 node_modules/lodash/_baseIsArrayBuffer.js delete mode 100644 node_modules/lodash/_baseIsDate.js delete mode 100644 node_modules/lodash/_baseIsEqual.js delete mode 100644 node_modules/lodash/_baseIsEqualDeep.js delete mode 100644 node_modules/lodash/_baseIsMap.js delete mode 100644 node_modules/lodash/_baseIsMatch.js delete mode 100644 node_modules/lodash/_baseIsNaN.js delete mode 100644 node_modules/lodash/_baseIsNative.js delete mode 100644 node_modules/lodash/_baseIsRegExp.js delete mode 100644 node_modules/lodash/_baseIsSet.js delete mode 100644 node_modules/lodash/_baseIsTypedArray.js delete mode 100644 node_modules/lodash/_baseIteratee.js delete mode 100644 node_modules/lodash/_baseKeys.js delete mode 100644 node_modules/lodash/_baseKeysIn.js delete mode 100644 node_modules/lodash/_baseLodash.js delete mode 100644 node_modules/lodash/_baseLt.js delete mode 100644 node_modules/lodash/_baseMap.js delete mode 100644 node_modules/lodash/_baseMatches.js delete mode 100644 node_modules/lodash/_baseMatchesProperty.js delete mode 100644 node_modules/lodash/_baseMean.js delete mode 100644 node_modules/lodash/_baseMerge.js delete mode 100644 node_modules/lodash/_baseMergeDeep.js delete mode 100644 node_modules/lodash/_baseNth.js delete mode 100644 node_modules/lodash/_baseOrderBy.js delete mode 100644 node_modules/lodash/_basePick.js delete mode 100644 node_modules/lodash/_basePickBy.js delete mode 100644 node_modules/lodash/_baseProperty.js delete mode 100644 node_modules/lodash/_basePropertyDeep.js delete mode 100644 node_modules/lodash/_basePropertyOf.js delete mode 100644 node_modules/lodash/_basePullAll.js delete mode 100644 node_modules/lodash/_basePullAt.js delete mode 100644 node_modules/lodash/_baseRandom.js delete mode 100644 node_modules/lodash/_baseRange.js delete mode 100644 node_modules/lodash/_baseReduce.js delete mode 100644 node_modules/lodash/_baseRepeat.js delete mode 100644 node_modules/lodash/_baseRest.js delete mode 100644 node_modules/lodash/_baseSample.js delete mode 100644 node_modules/lodash/_baseSampleSize.js delete mode 100644 node_modules/lodash/_baseSet.js delete mode 100644 node_modules/lodash/_baseSetData.js delete mode 100644 node_modules/lodash/_baseSetToString.js delete mode 100644 node_modules/lodash/_baseShuffle.js delete mode 100644 node_modules/lodash/_baseSlice.js delete mode 100644 node_modules/lodash/_baseSome.js delete mode 100644 node_modules/lodash/_baseSortBy.js delete mode 100644 node_modules/lodash/_baseSortedIndex.js delete mode 100644 node_modules/lodash/_baseSortedIndexBy.js delete mode 100644 node_modules/lodash/_baseSortedUniq.js delete mode 100644 node_modules/lodash/_baseSum.js delete mode 100644 node_modules/lodash/_baseTimes.js delete mode 100644 node_modules/lodash/_baseToNumber.js delete mode 100644 node_modules/lodash/_baseToPairs.js delete mode 100644 node_modules/lodash/_baseToString.js delete mode 100644 node_modules/lodash/_baseTrim.js delete mode 100644 node_modules/lodash/_baseUnary.js delete mode 100644 node_modules/lodash/_baseUniq.js delete mode 100644 node_modules/lodash/_baseUnset.js delete mode 100644 node_modules/lodash/_baseUpdate.js delete mode 100644 node_modules/lodash/_baseValues.js delete mode 100644 node_modules/lodash/_baseWhile.js delete mode 100644 node_modules/lodash/_baseWrapperValue.js delete mode 100644 node_modules/lodash/_baseXor.js delete mode 100644 node_modules/lodash/_baseZipObject.js delete mode 100644 node_modules/lodash/_cacheHas.js delete mode 100644 node_modules/lodash/_castArrayLikeObject.js delete mode 100644 node_modules/lodash/_castFunction.js delete mode 100644 node_modules/lodash/_castPath.js delete mode 100644 node_modules/lodash/_castRest.js delete mode 100644 node_modules/lodash/_castSlice.js delete mode 100644 node_modules/lodash/_charsEndIndex.js delete mode 100644 node_modules/lodash/_charsStartIndex.js delete mode 100644 node_modules/lodash/_cloneArrayBuffer.js delete mode 100644 node_modules/lodash/_cloneBuffer.js delete mode 100644 node_modules/lodash/_cloneDataView.js delete mode 100644 node_modules/lodash/_cloneRegExp.js delete mode 100644 node_modules/lodash/_cloneSymbol.js delete mode 100644 node_modules/lodash/_cloneTypedArray.js delete mode 100644 node_modules/lodash/_compareAscending.js delete mode 100644 node_modules/lodash/_compareMultiple.js delete mode 100644 node_modules/lodash/_composeArgs.js delete mode 100644 node_modules/lodash/_composeArgsRight.js delete mode 100644 node_modules/lodash/_copyArray.js delete mode 100644 node_modules/lodash/_copyObject.js delete mode 100644 node_modules/lodash/_copySymbols.js delete mode 100644 node_modules/lodash/_copySymbolsIn.js delete mode 100644 node_modules/lodash/_coreJsData.js delete mode 100644 node_modules/lodash/_countHolders.js delete mode 100644 node_modules/lodash/_createAggregator.js delete mode 100644 node_modules/lodash/_createAssigner.js delete mode 100644 node_modules/lodash/_createBaseEach.js delete mode 100644 node_modules/lodash/_createBaseFor.js delete mode 100644 node_modules/lodash/_createBind.js delete mode 100644 node_modules/lodash/_createCaseFirst.js delete mode 100644 node_modules/lodash/_createCompounder.js delete mode 100644 node_modules/lodash/_createCtor.js delete mode 100644 node_modules/lodash/_createCurry.js delete mode 100644 node_modules/lodash/_createFind.js delete mode 100644 node_modules/lodash/_createFlow.js delete mode 100644 node_modules/lodash/_createHybrid.js delete mode 100644 node_modules/lodash/_createInverter.js delete mode 100644 node_modules/lodash/_createMathOperation.js delete mode 100644 node_modules/lodash/_createOver.js delete mode 100644 node_modules/lodash/_createPadding.js delete mode 100644 node_modules/lodash/_createPartial.js delete mode 100644 node_modules/lodash/_createRange.js delete mode 100644 node_modules/lodash/_createRecurry.js delete mode 100644 node_modules/lodash/_createRelationalOperation.js delete mode 100644 node_modules/lodash/_createRound.js delete mode 100644 node_modules/lodash/_createSet.js delete mode 100644 node_modules/lodash/_createToPairs.js delete mode 100644 node_modules/lodash/_createWrap.js delete mode 100644 node_modules/lodash/_customDefaultsAssignIn.js delete mode 100644 node_modules/lodash/_customDefaultsMerge.js delete mode 100644 node_modules/lodash/_customOmitClone.js delete mode 100644 node_modules/lodash/_deburrLetter.js delete mode 100644 node_modules/lodash/_defineProperty.js delete mode 100644 node_modules/lodash/_equalArrays.js delete mode 100644 node_modules/lodash/_equalByTag.js delete mode 100644 node_modules/lodash/_equalObjects.js delete mode 100644 node_modules/lodash/_escapeHtmlChar.js delete mode 100644 node_modules/lodash/_escapeStringChar.js delete mode 100644 node_modules/lodash/_flatRest.js delete mode 100644 node_modules/lodash/_freeGlobal.js delete mode 100644 node_modules/lodash/_getAllKeys.js delete mode 100644 node_modules/lodash/_getAllKeysIn.js delete mode 100644 node_modules/lodash/_getData.js delete mode 100644 node_modules/lodash/_getFuncName.js delete mode 100644 node_modules/lodash/_getHolder.js delete mode 100644 node_modules/lodash/_getMapData.js delete mode 100644 node_modules/lodash/_getMatchData.js delete mode 100644 node_modules/lodash/_getNative.js delete mode 100644 node_modules/lodash/_getPrototype.js delete mode 100644 node_modules/lodash/_getRawTag.js delete mode 100644 node_modules/lodash/_getSymbols.js delete mode 100644 node_modules/lodash/_getSymbolsIn.js delete mode 100644 node_modules/lodash/_getTag.js delete mode 100644 node_modules/lodash/_getValue.js delete mode 100644 node_modules/lodash/_getView.js delete mode 100644 node_modules/lodash/_getWrapDetails.js delete mode 100644 node_modules/lodash/_hasPath.js delete mode 100644 node_modules/lodash/_hasUnicode.js delete mode 100644 node_modules/lodash/_hasUnicodeWord.js delete mode 100644 node_modules/lodash/_hashClear.js delete mode 100644 node_modules/lodash/_hashDelete.js delete mode 100644 node_modules/lodash/_hashGet.js delete mode 100644 node_modules/lodash/_hashHas.js delete mode 100644 node_modules/lodash/_hashSet.js delete mode 100644 node_modules/lodash/_initCloneArray.js delete mode 100644 node_modules/lodash/_initCloneByTag.js delete mode 100644 node_modules/lodash/_initCloneObject.js delete mode 100644 node_modules/lodash/_insertWrapDetails.js delete mode 100644 node_modules/lodash/_isFlattenable.js delete mode 100644 node_modules/lodash/_isIndex.js delete mode 100644 node_modules/lodash/_isIterateeCall.js delete mode 100644 node_modules/lodash/_isKey.js delete mode 100644 node_modules/lodash/_isKeyable.js delete mode 100644 node_modules/lodash/_isLaziable.js delete mode 100644 node_modules/lodash/_isMaskable.js delete mode 100644 node_modules/lodash/_isMasked.js delete mode 100644 node_modules/lodash/_isPrototype.js delete mode 100644 node_modules/lodash/_isStrictComparable.js delete mode 100644 node_modules/lodash/_iteratorToArray.js delete mode 100644 node_modules/lodash/_lazyClone.js delete mode 100644 node_modules/lodash/_lazyReverse.js delete mode 100644 node_modules/lodash/_lazyValue.js delete mode 100644 node_modules/lodash/_listCacheClear.js delete mode 100644 node_modules/lodash/_listCacheDelete.js delete mode 100644 node_modules/lodash/_listCacheGet.js delete mode 100644 node_modules/lodash/_listCacheHas.js delete mode 100644 node_modules/lodash/_listCacheSet.js delete mode 100644 node_modules/lodash/_mapCacheClear.js delete mode 100644 node_modules/lodash/_mapCacheDelete.js delete mode 100644 node_modules/lodash/_mapCacheGet.js delete mode 100644 node_modules/lodash/_mapCacheHas.js delete mode 100644 node_modules/lodash/_mapCacheSet.js delete mode 100644 node_modules/lodash/_mapToArray.js delete mode 100644 node_modules/lodash/_matchesStrictComparable.js delete mode 100644 node_modules/lodash/_memoizeCapped.js delete mode 100644 node_modules/lodash/_mergeData.js delete mode 100644 node_modules/lodash/_metaMap.js delete mode 100644 node_modules/lodash/_nativeCreate.js delete mode 100644 node_modules/lodash/_nativeKeys.js delete mode 100644 node_modules/lodash/_nativeKeysIn.js delete mode 100644 node_modules/lodash/_nodeUtil.js delete mode 100644 node_modules/lodash/_objectToString.js delete mode 100644 node_modules/lodash/_overArg.js delete mode 100644 node_modules/lodash/_overRest.js delete mode 100644 node_modules/lodash/_parent.js delete mode 100644 node_modules/lodash/_reEscape.js delete mode 100644 node_modules/lodash/_reEvaluate.js delete mode 100644 node_modules/lodash/_reInterpolate.js delete mode 100644 node_modules/lodash/_realNames.js delete mode 100644 node_modules/lodash/_reorder.js delete mode 100644 node_modules/lodash/_replaceHolders.js delete mode 100644 node_modules/lodash/_root.js delete mode 100644 node_modules/lodash/_safeGet.js delete mode 100644 node_modules/lodash/_setCacheAdd.js delete mode 100644 node_modules/lodash/_setCacheHas.js delete mode 100644 node_modules/lodash/_setData.js delete mode 100644 node_modules/lodash/_setToArray.js delete mode 100644 node_modules/lodash/_setToPairs.js delete mode 100644 node_modules/lodash/_setToString.js delete mode 100644 node_modules/lodash/_setWrapToString.js delete mode 100644 node_modules/lodash/_shortOut.js delete mode 100644 node_modules/lodash/_shuffleSelf.js delete mode 100644 node_modules/lodash/_stackClear.js delete mode 100644 node_modules/lodash/_stackDelete.js delete mode 100644 node_modules/lodash/_stackGet.js delete mode 100644 node_modules/lodash/_stackHas.js delete mode 100644 node_modules/lodash/_stackSet.js delete mode 100644 node_modules/lodash/_strictIndexOf.js delete mode 100644 node_modules/lodash/_strictLastIndexOf.js delete mode 100644 node_modules/lodash/_stringSize.js delete mode 100644 node_modules/lodash/_stringToArray.js delete mode 100644 node_modules/lodash/_stringToPath.js delete mode 100644 node_modules/lodash/_toKey.js delete mode 100644 node_modules/lodash/_toSource.js delete mode 100644 node_modules/lodash/_trimmedEndIndex.js delete mode 100644 node_modules/lodash/_unescapeHtmlChar.js delete mode 100644 node_modules/lodash/_unicodeSize.js delete mode 100644 node_modules/lodash/_unicodeToArray.js delete mode 100644 node_modules/lodash/_unicodeWords.js delete mode 100644 node_modules/lodash/_updateWrapDetails.js delete mode 100644 node_modules/lodash/_wrapperClone.js delete mode 100644 node_modules/lodash/add.js delete mode 100644 node_modules/lodash/after.js delete mode 100644 node_modules/lodash/array.js delete mode 100644 node_modules/lodash/ary.js delete mode 100644 node_modules/lodash/assign.js delete mode 100644 node_modules/lodash/assignIn.js delete mode 100644 node_modules/lodash/assignInWith.js delete mode 100644 node_modules/lodash/assignWith.js delete mode 100644 node_modules/lodash/at.js delete mode 100644 node_modules/lodash/attempt.js delete mode 100644 node_modules/lodash/before.js delete mode 100644 node_modules/lodash/bind.js delete mode 100644 node_modules/lodash/bindAll.js delete mode 100644 node_modules/lodash/bindKey.js delete mode 100644 node_modules/lodash/camelCase.js delete mode 100644 node_modules/lodash/capitalize.js delete mode 100644 node_modules/lodash/castArray.js delete mode 100644 node_modules/lodash/ceil.js delete mode 100644 node_modules/lodash/chain.js delete mode 100644 node_modules/lodash/chunk.js delete mode 100644 node_modules/lodash/clamp.js delete mode 100644 node_modules/lodash/clone.js delete mode 100644 node_modules/lodash/cloneDeep.js delete mode 100644 node_modules/lodash/cloneDeepWith.js delete mode 100644 node_modules/lodash/cloneWith.js delete mode 100644 node_modules/lodash/collection.js delete mode 100644 node_modules/lodash/commit.js delete mode 100644 node_modules/lodash/compact.js delete mode 100644 node_modules/lodash/concat.js delete mode 100644 node_modules/lodash/cond.js delete mode 100644 node_modules/lodash/conforms.js delete mode 100644 node_modules/lodash/conformsTo.js delete mode 100644 node_modules/lodash/constant.js delete mode 100644 node_modules/lodash/core.js delete mode 100644 node_modules/lodash/core.min.js delete mode 100644 node_modules/lodash/countBy.js delete mode 100644 node_modules/lodash/create.js delete mode 100644 node_modules/lodash/curry.js delete mode 100644 node_modules/lodash/curryRight.js delete mode 100644 node_modules/lodash/date.js delete mode 100644 node_modules/lodash/debounce.js delete mode 100644 node_modules/lodash/deburr.js delete mode 100644 node_modules/lodash/defaultTo.js delete mode 100644 node_modules/lodash/defaults.js delete mode 100644 node_modules/lodash/defaultsDeep.js delete mode 100644 node_modules/lodash/defer.js delete mode 100644 node_modules/lodash/delay.js delete mode 100644 node_modules/lodash/difference.js delete mode 100644 node_modules/lodash/differenceBy.js delete mode 100644 node_modules/lodash/differenceWith.js delete mode 100644 node_modules/lodash/divide.js delete mode 100644 node_modules/lodash/drop.js delete mode 100644 node_modules/lodash/dropRight.js delete mode 100644 node_modules/lodash/dropRightWhile.js delete mode 100644 node_modules/lodash/dropWhile.js delete mode 100644 node_modules/lodash/each.js delete mode 100644 node_modules/lodash/eachRight.js delete mode 100644 node_modules/lodash/endsWith.js delete mode 100644 node_modules/lodash/entries.js delete mode 100644 node_modules/lodash/entriesIn.js delete mode 100644 node_modules/lodash/eq.js delete mode 100644 node_modules/lodash/escape.js delete mode 100644 node_modules/lodash/escapeRegExp.js delete mode 100644 node_modules/lodash/every.js delete mode 100644 node_modules/lodash/extend.js delete mode 100644 node_modules/lodash/extendWith.js delete mode 100644 node_modules/lodash/fill.js delete mode 100644 node_modules/lodash/filter.js delete mode 100644 node_modules/lodash/find.js delete mode 100644 node_modules/lodash/findIndex.js delete mode 100644 node_modules/lodash/findKey.js delete mode 100644 node_modules/lodash/findLast.js delete mode 100644 node_modules/lodash/findLastIndex.js delete mode 100644 node_modules/lodash/findLastKey.js delete mode 100644 node_modules/lodash/first.js delete mode 100644 node_modules/lodash/flake.lock delete mode 100644 node_modules/lodash/flake.nix delete mode 100644 node_modules/lodash/flatMap.js delete mode 100644 node_modules/lodash/flatMapDeep.js delete mode 100644 node_modules/lodash/flatMapDepth.js delete mode 100644 node_modules/lodash/flatten.js delete mode 100644 node_modules/lodash/flattenDeep.js delete mode 100644 node_modules/lodash/flattenDepth.js delete mode 100644 node_modules/lodash/flip.js delete mode 100644 node_modules/lodash/floor.js delete mode 100644 node_modules/lodash/flow.js delete mode 100644 node_modules/lodash/flowRight.js delete mode 100644 node_modules/lodash/forEach.js delete mode 100644 node_modules/lodash/forEachRight.js delete mode 100644 node_modules/lodash/forIn.js delete mode 100644 node_modules/lodash/forInRight.js delete mode 100644 node_modules/lodash/forOwn.js delete mode 100644 node_modules/lodash/forOwnRight.js delete mode 100644 node_modules/lodash/fp.js delete mode 100644 node_modules/lodash/fp/F.js delete mode 100644 node_modules/lodash/fp/T.js delete mode 100644 node_modules/lodash/fp/__.js delete mode 100644 node_modules/lodash/fp/_baseConvert.js delete mode 100644 node_modules/lodash/fp/_convertBrowser.js delete mode 100644 node_modules/lodash/fp/_falseOptions.js delete mode 100644 node_modules/lodash/fp/_mapping.js delete mode 100644 node_modules/lodash/fp/_util.js delete mode 100644 node_modules/lodash/fp/add.js delete mode 100644 node_modules/lodash/fp/after.js delete mode 100644 node_modules/lodash/fp/all.js delete mode 100644 node_modules/lodash/fp/allPass.js delete mode 100644 node_modules/lodash/fp/always.js delete mode 100644 node_modules/lodash/fp/any.js delete mode 100644 node_modules/lodash/fp/anyPass.js delete mode 100644 node_modules/lodash/fp/apply.js delete mode 100644 node_modules/lodash/fp/array.js delete mode 100644 node_modules/lodash/fp/ary.js delete mode 100644 node_modules/lodash/fp/assign.js delete mode 100644 node_modules/lodash/fp/assignAll.js delete mode 100644 node_modules/lodash/fp/assignAllWith.js delete mode 100644 node_modules/lodash/fp/assignIn.js delete mode 100644 node_modules/lodash/fp/assignInAll.js delete mode 100644 node_modules/lodash/fp/assignInAllWith.js delete mode 100644 node_modules/lodash/fp/assignInWith.js delete mode 100644 node_modules/lodash/fp/assignWith.js delete mode 100644 node_modules/lodash/fp/assoc.js delete mode 100644 node_modules/lodash/fp/assocPath.js delete mode 100644 node_modules/lodash/fp/at.js delete mode 100644 node_modules/lodash/fp/attempt.js delete mode 100644 node_modules/lodash/fp/before.js delete mode 100644 node_modules/lodash/fp/bind.js delete mode 100644 node_modules/lodash/fp/bindAll.js delete mode 100644 node_modules/lodash/fp/bindKey.js delete mode 100644 node_modules/lodash/fp/camelCase.js delete mode 100644 node_modules/lodash/fp/capitalize.js delete mode 100644 node_modules/lodash/fp/castArray.js delete mode 100644 node_modules/lodash/fp/ceil.js delete mode 100644 node_modules/lodash/fp/chain.js delete mode 100644 node_modules/lodash/fp/chunk.js delete mode 100644 node_modules/lodash/fp/clamp.js delete mode 100644 node_modules/lodash/fp/clone.js delete mode 100644 node_modules/lodash/fp/cloneDeep.js delete mode 100644 node_modules/lodash/fp/cloneDeepWith.js delete mode 100644 node_modules/lodash/fp/cloneWith.js delete mode 100644 node_modules/lodash/fp/collection.js delete mode 100644 node_modules/lodash/fp/commit.js delete mode 100644 node_modules/lodash/fp/compact.js delete mode 100644 node_modules/lodash/fp/complement.js delete mode 100644 node_modules/lodash/fp/compose.js delete mode 100644 node_modules/lodash/fp/concat.js delete mode 100644 node_modules/lodash/fp/cond.js delete mode 100644 node_modules/lodash/fp/conforms.js delete mode 100644 node_modules/lodash/fp/conformsTo.js delete mode 100644 node_modules/lodash/fp/constant.js delete mode 100644 node_modules/lodash/fp/contains.js delete mode 100644 node_modules/lodash/fp/convert.js delete mode 100644 node_modules/lodash/fp/countBy.js delete mode 100644 node_modules/lodash/fp/create.js delete mode 100644 node_modules/lodash/fp/curry.js delete mode 100644 node_modules/lodash/fp/curryN.js delete mode 100644 node_modules/lodash/fp/curryRight.js delete mode 100644 node_modules/lodash/fp/curryRightN.js delete mode 100644 node_modules/lodash/fp/date.js delete mode 100644 node_modules/lodash/fp/debounce.js delete mode 100644 node_modules/lodash/fp/deburr.js delete mode 100644 node_modules/lodash/fp/defaultTo.js delete mode 100644 node_modules/lodash/fp/defaults.js delete mode 100644 node_modules/lodash/fp/defaultsAll.js delete mode 100644 node_modules/lodash/fp/defaultsDeep.js delete mode 100644 node_modules/lodash/fp/defaultsDeepAll.js delete mode 100644 node_modules/lodash/fp/defer.js delete mode 100644 node_modules/lodash/fp/delay.js delete mode 100644 node_modules/lodash/fp/difference.js delete mode 100644 node_modules/lodash/fp/differenceBy.js delete mode 100644 node_modules/lodash/fp/differenceWith.js delete mode 100644 node_modules/lodash/fp/dissoc.js delete mode 100644 node_modules/lodash/fp/dissocPath.js delete mode 100644 node_modules/lodash/fp/divide.js delete mode 100644 node_modules/lodash/fp/drop.js delete mode 100644 node_modules/lodash/fp/dropLast.js delete mode 100644 node_modules/lodash/fp/dropLastWhile.js delete mode 100644 node_modules/lodash/fp/dropRight.js delete mode 100644 node_modules/lodash/fp/dropRightWhile.js delete mode 100644 node_modules/lodash/fp/dropWhile.js delete mode 100644 node_modules/lodash/fp/each.js delete mode 100644 node_modules/lodash/fp/eachRight.js delete mode 100644 node_modules/lodash/fp/endsWith.js delete mode 100644 node_modules/lodash/fp/entries.js delete mode 100644 node_modules/lodash/fp/entriesIn.js delete mode 100644 node_modules/lodash/fp/eq.js delete mode 100644 node_modules/lodash/fp/equals.js delete mode 100644 node_modules/lodash/fp/escape.js delete mode 100644 node_modules/lodash/fp/escapeRegExp.js delete mode 100644 node_modules/lodash/fp/every.js delete mode 100644 node_modules/lodash/fp/extend.js delete mode 100644 node_modules/lodash/fp/extendAll.js delete mode 100644 node_modules/lodash/fp/extendAllWith.js delete mode 100644 node_modules/lodash/fp/extendWith.js delete mode 100644 node_modules/lodash/fp/fill.js delete mode 100644 node_modules/lodash/fp/filter.js delete mode 100644 node_modules/lodash/fp/find.js delete mode 100644 node_modules/lodash/fp/findFrom.js delete mode 100644 node_modules/lodash/fp/findIndex.js delete mode 100644 node_modules/lodash/fp/findIndexFrom.js delete mode 100644 node_modules/lodash/fp/findKey.js delete mode 100644 node_modules/lodash/fp/findLast.js delete mode 100644 node_modules/lodash/fp/findLastFrom.js delete mode 100644 node_modules/lodash/fp/findLastIndex.js delete mode 100644 node_modules/lodash/fp/findLastIndexFrom.js delete mode 100644 node_modules/lodash/fp/findLastKey.js delete mode 100644 node_modules/lodash/fp/first.js delete mode 100644 node_modules/lodash/fp/flatMap.js delete mode 100644 node_modules/lodash/fp/flatMapDeep.js delete mode 100644 node_modules/lodash/fp/flatMapDepth.js delete mode 100644 node_modules/lodash/fp/flatten.js delete mode 100644 node_modules/lodash/fp/flattenDeep.js delete mode 100644 node_modules/lodash/fp/flattenDepth.js delete mode 100644 node_modules/lodash/fp/flip.js delete mode 100644 node_modules/lodash/fp/floor.js delete mode 100644 node_modules/lodash/fp/flow.js delete mode 100644 node_modules/lodash/fp/flowRight.js delete mode 100644 node_modules/lodash/fp/forEach.js delete mode 100644 node_modules/lodash/fp/forEachRight.js delete mode 100644 node_modules/lodash/fp/forIn.js delete mode 100644 node_modules/lodash/fp/forInRight.js delete mode 100644 node_modules/lodash/fp/forOwn.js delete mode 100644 node_modules/lodash/fp/forOwnRight.js delete mode 100644 node_modules/lodash/fp/fromPairs.js delete mode 100644 node_modules/lodash/fp/function.js delete mode 100644 node_modules/lodash/fp/functions.js delete mode 100644 node_modules/lodash/fp/functionsIn.js delete mode 100644 node_modules/lodash/fp/get.js delete mode 100644 node_modules/lodash/fp/getOr.js delete mode 100644 node_modules/lodash/fp/groupBy.js delete mode 100644 node_modules/lodash/fp/gt.js delete mode 100644 node_modules/lodash/fp/gte.js delete mode 100644 node_modules/lodash/fp/has.js delete mode 100644 node_modules/lodash/fp/hasIn.js delete mode 100644 node_modules/lodash/fp/head.js delete mode 100644 node_modules/lodash/fp/identical.js delete mode 100644 node_modules/lodash/fp/identity.js delete mode 100644 node_modules/lodash/fp/inRange.js delete mode 100644 node_modules/lodash/fp/includes.js delete mode 100644 node_modules/lodash/fp/includesFrom.js delete mode 100644 node_modules/lodash/fp/indexBy.js delete mode 100644 node_modules/lodash/fp/indexOf.js delete mode 100644 node_modules/lodash/fp/indexOfFrom.js delete mode 100644 node_modules/lodash/fp/init.js delete mode 100644 node_modules/lodash/fp/initial.js delete mode 100644 node_modules/lodash/fp/intersection.js delete mode 100644 node_modules/lodash/fp/intersectionBy.js delete mode 100644 node_modules/lodash/fp/intersectionWith.js delete mode 100644 node_modules/lodash/fp/invert.js delete mode 100644 node_modules/lodash/fp/invertBy.js delete mode 100644 node_modules/lodash/fp/invertObj.js delete mode 100644 node_modules/lodash/fp/invoke.js delete mode 100644 node_modules/lodash/fp/invokeArgs.js delete mode 100644 node_modules/lodash/fp/invokeArgsMap.js delete mode 100644 node_modules/lodash/fp/invokeMap.js delete mode 100644 node_modules/lodash/fp/isArguments.js delete mode 100644 node_modules/lodash/fp/isArray.js delete mode 100644 node_modules/lodash/fp/isArrayBuffer.js delete mode 100644 node_modules/lodash/fp/isArrayLike.js delete mode 100644 node_modules/lodash/fp/isArrayLikeObject.js delete mode 100644 node_modules/lodash/fp/isBoolean.js delete mode 100644 node_modules/lodash/fp/isBuffer.js delete mode 100644 node_modules/lodash/fp/isDate.js delete mode 100644 node_modules/lodash/fp/isElement.js delete mode 100644 node_modules/lodash/fp/isEmpty.js delete mode 100644 node_modules/lodash/fp/isEqual.js delete mode 100644 node_modules/lodash/fp/isEqualWith.js delete mode 100644 node_modules/lodash/fp/isError.js delete mode 100644 node_modules/lodash/fp/isFinite.js delete mode 100644 node_modules/lodash/fp/isFunction.js delete mode 100644 node_modules/lodash/fp/isInteger.js delete mode 100644 node_modules/lodash/fp/isLength.js delete mode 100644 node_modules/lodash/fp/isMap.js delete mode 100644 node_modules/lodash/fp/isMatch.js delete mode 100644 node_modules/lodash/fp/isMatchWith.js delete mode 100644 node_modules/lodash/fp/isNaN.js delete mode 100644 node_modules/lodash/fp/isNative.js delete mode 100644 node_modules/lodash/fp/isNil.js delete mode 100644 node_modules/lodash/fp/isNull.js delete mode 100644 node_modules/lodash/fp/isNumber.js delete mode 100644 node_modules/lodash/fp/isObject.js delete mode 100644 node_modules/lodash/fp/isObjectLike.js delete mode 100644 node_modules/lodash/fp/isPlainObject.js delete mode 100644 node_modules/lodash/fp/isRegExp.js delete mode 100644 node_modules/lodash/fp/isSafeInteger.js delete mode 100644 node_modules/lodash/fp/isSet.js delete mode 100644 node_modules/lodash/fp/isString.js delete mode 100644 node_modules/lodash/fp/isSymbol.js delete mode 100644 node_modules/lodash/fp/isTypedArray.js delete mode 100644 node_modules/lodash/fp/isUndefined.js delete mode 100644 node_modules/lodash/fp/isWeakMap.js delete mode 100644 node_modules/lodash/fp/isWeakSet.js delete mode 100644 node_modules/lodash/fp/iteratee.js delete mode 100644 node_modules/lodash/fp/join.js delete mode 100644 node_modules/lodash/fp/juxt.js delete mode 100644 node_modules/lodash/fp/kebabCase.js delete mode 100644 node_modules/lodash/fp/keyBy.js delete mode 100644 node_modules/lodash/fp/keys.js delete mode 100644 node_modules/lodash/fp/keysIn.js delete mode 100644 node_modules/lodash/fp/lang.js delete mode 100644 node_modules/lodash/fp/last.js delete mode 100644 node_modules/lodash/fp/lastIndexOf.js delete mode 100644 node_modules/lodash/fp/lastIndexOfFrom.js delete mode 100644 node_modules/lodash/fp/lowerCase.js delete mode 100644 node_modules/lodash/fp/lowerFirst.js delete mode 100644 node_modules/lodash/fp/lt.js delete mode 100644 node_modules/lodash/fp/lte.js delete mode 100644 node_modules/lodash/fp/map.js delete mode 100644 node_modules/lodash/fp/mapKeys.js delete mode 100644 node_modules/lodash/fp/mapValues.js delete mode 100644 node_modules/lodash/fp/matches.js delete mode 100644 node_modules/lodash/fp/matchesProperty.js delete mode 100644 node_modules/lodash/fp/math.js delete mode 100644 node_modules/lodash/fp/max.js delete mode 100644 node_modules/lodash/fp/maxBy.js delete mode 100644 node_modules/lodash/fp/mean.js delete mode 100644 node_modules/lodash/fp/meanBy.js delete mode 100644 node_modules/lodash/fp/memoize.js delete mode 100644 node_modules/lodash/fp/merge.js delete mode 100644 node_modules/lodash/fp/mergeAll.js delete mode 100644 node_modules/lodash/fp/mergeAllWith.js delete mode 100644 node_modules/lodash/fp/mergeWith.js delete mode 100644 node_modules/lodash/fp/method.js delete mode 100644 node_modules/lodash/fp/methodOf.js delete mode 100644 node_modules/lodash/fp/min.js delete mode 100644 node_modules/lodash/fp/minBy.js delete mode 100644 node_modules/lodash/fp/mixin.js delete mode 100644 node_modules/lodash/fp/multiply.js delete mode 100644 node_modules/lodash/fp/nAry.js delete mode 100644 node_modules/lodash/fp/negate.js delete mode 100644 node_modules/lodash/fp/next.js delete mode 100644 node_modules/lodash/fp/noop.js delete mode 100644 node_modules/lodash/fp/now.js delete mode 100644 node_modules/lodash/fp/nth.js delete mode 100644 node_modules/lodash/fp/nthArg.js delete mode 100644 node_modules/lodash/fp/number.js delete mode 100644 node_modules/lodash/fp/object.js delete mode 100644 node_modules/lodash/fp/omit.js delete mode 100644 node_modules/lodash/fp/omitAll.js delete mode 100644 node_modules/lodash/fp/omitBy.js delete mode 100644 node_modules/lodash/fp/once.js delete mode 100644 node_modules/lodash/fp/orderBy.js delete mode 100644 node_modules/lodash/fp/over.js delete mode 100644 node_modules/lodash/fp/overArgs.js delete mode 100644 node_modules/lodash/fp/overEvery.js delete mode 100644 node_modules/lodash/fp/overSome.js delete mode 100644 node_modules/lodash/fp/pad.js delete mode 100644 node_modules/lodash/fp/padChars.js delete mode 100644 node_modules/lodash/fp/padCharsEnd.js delete mode 100644 node_modules/lodash/fp/padCharsStart.js delete mode 100644 node_modules/lodash/fp/padEnd.js delete mode 100644 node_modules/lodash/fp/padStart.js delete mode 100644 node_modules/lodash/fp/parseInt.js delete mode 100644 node_modules/lodash/fp/partial.js delete mode 100644 node_modules/lodash/fp/partialRight.js delete mode 100644 node_modules/lodash/fp/partition.js delete mode 100644 node_modules/lodash/fp/path.js delete mode 100644 node_modules/lodash/fp/pathEq.js delete mode 100644 node_modules/lodash/fp/pathOr.js delete mode 100644 node_modules/lodash/fp/paths.js delete mode 100644 node_modules/lodash/fp/pick.js delete mode 100644 node_modules/lodash/fp/pickAll.js delete mode 100644 node_modules/lodash/fp/pickBy.js delete mode 100644 node_modules/lodash/fp/pipe.js delete mode 100644 node_modules/lodash/fp/placeholder.js delete mode 100644 node_modules/lodash/fp/plant.js delete mode 100644 node_modules/lodash/fp/pluck.js delete mode 100644 node_modules/lodash/fp/prop.js delete mode 100644 node_modules/lodash/fp/propEq.js delete mode 100644 node_modules/lodash/fp/propOr.js delete mode 100644 node_modules/lodash/fp/property.js delete mode 100644 node_modules/lodash/fp/propertyOf.js delete mode 100644 node_modules/lodash/fp/props.js delete mode 100644 node_modules/lodash/fp/pull.js delete mode 100644 node_modules/lodash/fp/pullAll.js delete mode 100644 node_modules/lodash/fp/pullAllBy.js delete mode 100644 node_modules/lodash/fp/pullAllWith.js delete mode 100644 node_modules/lodash/fp/pullAt.js delete mode 100644 node_modules/lodash/fp/random.js delete mode 100644 node_modules/lodash/fp/range.js delete mode 100644 node_modules/lodash/fp/rangeRight.js delete mode 100644 node_modules/lodash/fp/rangeStep.js delete mode 100644 node_modules/lodash/fp/rangeStepRight.js delete mode 100644 node_modules/lodash/fp/rearg.js delete mode 100644 node_modules/lodash/fp/reduce.js delete mode 100644 node_modules/lodash/fp/reduceRight.js delete mode 100644 node_modules/lodash/fp/reject.js delete mode 100644 node_modules/lodash/fp/remove.js delete mode 100644 node_modules/lodash/fp/repeat.js delete mode 100644 node_modules/lodash/fp/replace.js delete mode 100644 node_modules/lodash/fp/rest.js delete mode 100644 node_modules/lodash/fp/restFrom.js delete mode 100644 node_modules/lodash/fp/result.js delete mode 100644 node_modules/lodash/fp/reverse.js delete mode 100644 node_modules/lodash/fp/round.js delete mode 100644 node_modules/lodash/fp/sample.js delete mode 100644 node_modules/lodash/fp/sampleSize.js delete mode 100644 node_modules/lodash/fp/seq.js delete mode 100644 node_modules/lodash/fp/set.js delete mode 100644 node_modules/lodash/fp/setWith.js delete mode 100644 node_modules/lodash/fp/shuffle.js delete mode 100644 node_modules/lodash/fp/size.js delete mode 100644 node_modules/lodash/fp/slice.js delete mode 100644 node_modules/lodash/fp/snakeCase.js delete mode 100644 node_modules/lodash/fp/some.js delete mode 100644 node_modules/lodash/fp/sortBy.js delete mode 100644 node_modules/lodash/fp/sortedIndex.js delete mode 100644 node_modules/lodash/fp/sortedIndexBy.js delete mode 100644 node_modules/lodash/fp/sortedIndexOf.js delete mode 100644 node_modules/lodash/fp/sortedLastIndex.js delete mode 100644 node_modules/lodash/fp/sortedLastIndexBy.js delete mode 100644 node_modules/lodash/fp/sortedLastIndexOf.js delete mode 100644 node_modules/lodash/fp/sortedUniq.js delete mode 100644 node_modules/lodash/fp/sortedUniqBy.js delete mode 100644 node_modules/lodash/fp/split.js delete mode 100644 node_modules/lodash/fp/spread.js delete mode 100644 node_modules/lodash/fp/spreadFrom.js delete mode 100644 node_modules/lodash/fp/startCase.js delete mode 100644 node_modules/lodash/fp/startsWith.js delete mode 100644 node_modules/lodash/fp/string.js delete mode 100644 node_modules/lodash/fp/stubArray.js delete mode 100644 node_modules/lodash/fp/stubFalse.js delete mode 100644 node_modules/lodash/fp/stubObject.js delete mode 100644 node_modules/lodash/fp/stubString.js delete mode 100644 node_modules/lodash/fp/stubTrue.js delete mode 100644 node_modules/lodash/fp/subtract.js delete mode 100644 node_modules/lodash/fp/sum.js delete mode 100644 node_modules/lodash/fp/sumBy.js delete mode 100644 node_modules/lodash/fp/symmetricDifference.js delete mode 100644 node_modules/lodash/fp/symmetricDifferenceBy.js delete mode 100644 node_modules/lodash/fp/symmetricDifferenceWith.js delete mode 100644 node_modules/lodash/fp/tail.js delete mode 100644 node_modules/lodash/fp/take.js delete mode 100644 node_modules/lodash/fp/takeLast.js delete mode 100644 node_modules/lodash/fp/takeLastWhile.js delete mode 100644 node_modules/lodash/fp/takeRight.js delete mode 100644 node_modules/lodash/fp/takeRightWhile.js delete mode 100644 node_modules/lodash/fp/takeWhile.js delete mode 100644 node_modules/lodash/fp/tap.js delete mode 100644 node_modules/lodash/fp/template.js delete mode 100644 node_modules/lodash/fp/templateSettings.js delete mode 100644 node_modules/lodash/fp/throttle.js delete mode 100644 node_modules/lodash/fp/thru.js delete mode 100644 node_modules/lodash/fp/times.js delete mode 100644 node_modules/lodash/fp/toArray.js delete mode 100644 node_modules/lodash/fp/toFinite.js delete mode 100644 node_modules/lodash/fp/toInteger.js delete mode 100644 node_modules/lodash/fp/toIterator.js delete mode 100644 node_modules/lodash/fp/toJSON.js delete mode 100644 node_modules/lodash/fp/toLength.js delete mode 100644 node_modules/lodash/fp/toLower.js delete mode 100644 node_modules/lodash/fp/toNumber.js delete mode 100644 node_modules/lodash/fp/toPairs.js delete mode 100644 node_modules/lodash/fp/toPairsIn.js delete mode 100644 node_modules/lodash/fp/toPath.js delete mode 100644 node_modules/lodash/fp/toPlainObject.js delete mode 100644 node_modules/lodash/fp/toSafeInteger.js delete mode 100644 node_modules/lodash/fp/toString.js delete mode 100644 node_modules/lodash/fp/toUpper.js delete mode 100644 node_modules/lodash/fp/transform.js delete mode 100644 node_modules/lodash/fp/trim.js delete mode 100644 node_modules/lodash/fp/trimChars.js delete mode 100644 node_modules/lodash/fp/trimCharsEnd.js delete mode 100644 node_modules/lodash/fp/trimCharsStart.js delete mode 100644 node_modules/lodash/fp/trimEnd.js delete mode 100644 node_modules/lodash/fp/trimStart.js delete mode 100644 node_modules/lodash/fp/truncate.js delete mode 100644 node_modules/lodash/fp/unapply.js delete mode 100644 node_modules/lodash/fp/unary.js delete mode 100644 node_modules/lodash/fp/unescape.js delete mode 100644 node_modules/lodash/fp/union.js delete mode 100644 node_modules/lodash/fp/unionBy.js delete mode 100644 node_modules/lodash/fp/unionWith.js delete mode 100644 node_modules/lodash/fp/uniq.js delete mode 100644 node_modules/lodash/fp/uniqBy.js delete mode 100644 node_modules/lodash/fp/uniqWith.js delete mode 100644 node_modules/lodash/fp/uniqueId.js delete mode 100644 node_modules/lodash/fp/unnest.js delete mode 100644 node_modules/lodash/fp/unset.js delete mode 100644 node_modules/lodash/fp/unzip.js delete mode 100644 node_modules/lodash/fp/unzipWith.js delete mode 100644 node_modules/lodash/fp/update.js delete mode 100644 node_modules/lodash/fp/updateWith.js delete mode 100644 node_modules/lodash/fp/upperCase.js delete mode 100644 node_modules/lodash/fp/upperFirst.js delete mode 100644 node_modules/lodash/fp/useWith.js delete mode 100644 node_modules/lodash/fp/util.js delete mode 100644 node_modules/lodash/fp/value.js delete mode 100644 node_modules/lodash/fp/valueOf.js delete mode 100644 node_modules/lodash/fp/values.js delete mode 100644 node_modules/lodash/fp/valuesIn.js delete mode 100644 node_modules/lodash/fp/where.js delete mode 100644 node_modules/lodash/fp/whereEq.js delete mode 100644 node_modules/lodash/fp/without.js delete mode 100644 node_modules/lodash/fp/words.js delete mode 100644 node_modules/lodash/fp/wrap.js delete mode 100644 node_modules/lodash/fp/wrapperAt.js delete mode 100644 node_modules/lodash/fp/wrapperChain.js delete mode 100644 node_modules/lodash/fp/wrapperLodash.js delete mode 100644 node_modules/lodash/fp/wrapperReverse.js delete mode 100644 node_modules/lodash/fp/wrapperValue.js delete mode 100644 node_modules/lodash/fp/xor.js delete mode 100644 node_modules/lodash/fp/xorBy.js delete mode 100644 node_modules/lodash/fp/xorWith.js delete mode 100644 node_modules/lodash/fp/zip.js delete mode 100644 node_modules/lodash/fp/zipAll.js delete mode 100644 node_modules/lodash/fp/zipObj.js delete mode 100644 node_modules/lodash/fp/zipObject.js delete mode 100644 node_modules/lodash/fp/zipObjectDeep.js delete mode 100644 node_modules/lodash/fp/zipWith.js delete mode 100644 node_modules/lodash/fromPairs.js delete mode 100644 node_modules/lodash/function.js delete mode 100644 node_modules/lodash/functions.js delete mode 100644 node_modules/lodash/functionsIn.js delete mode 100644 node_modules/lodash/get.js delete mode 100644 node_modules/lodash/groupBy.js delete mode 100644 node_modules/lodash/gt.js delete mode 100644 node_modules/lodash/gte.js delete mode 100644 node_modules/lodash/has.js delete mode 100644 node_modules/lodash/hasIn.js delete mode 100644 node_modules/lodash/head.js delete mode 100644 node_modules/lodash/identity.js delete mode 100644 node_modules/lodash/inRange.js delete mode 100644 node_modules/lodash/includes.js delete mode 100644 node_modules/lodash/index.js delete mode 100644 node_modules/lodash/indexOf.js delete mode 100644 node_modules/lodash/initial.js delete mode 100644 node_modules/lodash/intersection.js delete mode 100644 node_modules/lodash/intersectionBy.js delete mode 100644 node_modules/lodash/intersectionWith.js delete mode 100644 node_modules/lodash/invert.js delete mode 100644 node_modules/lodash/invertBy.js delete mode 100644 node_modules/lodash/invoke.js delete mode 100644 node_modules/lodash/invokeMap.js delete mode 100644 node_modules/lodash/isArguments.js delete mode 100644 node_modules/lodash/isArray.js delete mode 100644 node_modules/lodash/isArrayBuffer.js delete mode 100644 node_modules/lodash/isArrayLike.js delete mode 100644 node_modules/lodash/isArrayLikeObject.js delete mode 100644 node_modules/lodash/isBoolean.js delete mode 100644 node_modules/lodash/isBuffer.js delete mode 100644 node_modules/lodash/isDate.js delete mode 100644 node_modules/lodash/isElement.js delete mode 100644 node_modules/lodash/isEmpty.js delete mode 100644 node_modules/lodash/isEqual.js delete mode 100644 node_modules/lodash/isEqualWith.js delete mode 100644 node_modules/lodash/isError.js delete mode 100644 node_modules/lodash/isFinite.js delete mode 100644 node_modules/lodash/isFunction.js delete mode 100644 node_modules/lodash/isInteger.js delete mode 100644 node_modules/lodash/isLength.js delete mode 100644 node_modules/lodash/isMap.js delete mode 100644 node_modules/lodash/isMatch.js delete mode 100644 node_modules/lodash/isMatchWith.js delete mode 100644 node_modules/lodash/isNaN.js delete mode 100644 node_modules/lodash/isNative.js delete mode 100644 node_modules/lodash/isNil.js delete mode 100644 node_modules/lodash/isNull.js delete mode 100644 node_modules/lodash/isNumber.js delete mode 100644 node_modules/lodash/isObject.js delete mode 100644 node_modules/lodash/isObjectLike.js delete mode 100644 node_modules/lodash/isPlainObject.js delete mode 100644 node_modules/lodash/isRegExp.js delete mode 100644 node_modules/lodash/isSafeInteger.js delete mode 100644 node_modules/lodash/isSet.js delete mode 100644 node_modules/lodash/isString.js delete mode 100644 node_modules/lodash/isSymbol.js delete mode 100644 node_modules/lodash/isTypedArray.js delete mode 100644 node_modules/lodash/isUndefined.js delete mode 100644 node_modules/lodash/isWeakMap.js delete mode 100644 node_modules/lodash/isWeakSet.js delete mode 100644 node_modules/lodash/iteratee.js delete mode 100644 node_modules/lodash/join.js delete mode 100644 node_modules/lodash/kebabCase.js delete mode 100644 node_modules/lodash/keyBy.js delete mode 100644 node_modules/lodash/keys.js delete mode 100644 node_modules/lodash/keysIn.js delete mode 100644 node_modules/lodash/lang.js delete mode 100644 node_modules/lodash/last.js delete mode 100644 node_modules/lodash/lastIndexOf.js delete mode 100644 node_modules/lodash/lodash.js delete mode 100644 node_modules/lodash/lodash.min.js delete mode 100644 node_modules/lodash/lowerCase.js delete mode 100644 node_modules/lodash/lowerFirst.js delete mode 100644 node_modules/lodash/lt.js delete mode 100644 node_modules/lodash/lte.js delete mode 100644 node_modules/lodash/map.js delete mode 100644 node_modules/lodash/mapKeys.js delete mode 100644 node_modules/lodash/mapValues.js delete mode 100644 node_modules/lodash/matches.js delete mode 100644 node_modules/lodash/matchesProperty.js delete mode 100644 node_modules/lodash/math.js delete mode 100644 node_modules/lodash/max.js delete mode 100644 node_modules/lodash/maxBy.js delete mode 100644 node_modules/lodash/mean.js delete mode 100644 node_modules/lodash/meanBy.js delete mode 100644 node_modules/lodash/memoize.js delete mode 100644 node_modules/lodash/merge.js delete mode 100644 node_modules/lodash/mergeWith.js delete mode 100644 node_modules/lodash/method.js delete mode 100644 node_modules/lodash/methodOf.js delete mode 100644 node_modules/lodash/min.js delete mode 100644 node_modules/lodash/minBy.js delete mode 100644 node_modules/lodash/mixin.js delete mode 100644 node_modules/lodash/multiply.js delete mode 100644 node_modules/lodash/negate.js delete mode 100644 node_modules/lodash/next.js delete mode 100644 node_modules/lodash/noop.js delete mode 100644 node_modules/lodash/now.js delete mode 100644 node_modules/lodash/nth.js delete mode 100644 node_modules/lodash/nthArg.js delete mode 100644 node_modules/lodash/number.js delete mode 100644 node_modules/lodash/object.js delete mode 100644 node_modules/lodash/omit.js delete mode 100644 node_modules/lodash/omitBy.js delete mode 100644 node_modules/lodash/once.js delete mode 100644 node_modules/lodash/orderBy.js delete mode 100644 node_modules/lodash/over.js delete mode 100644 node_modules/lodash/overArgs.js delete mode 100644 node_modules/lodash/overEvery.js delete mode 100644 node_modules/lodash/overSome.js delete mode 100644 node_modules/lodash/package.json delete mode 100644 node_modules/lodash/pad.js delete mode 100644 node_modules/lodash/padEnd.js delete mode 100644 node_modules/lodash/padStart.js delete mode 100644 node_modules/lodash/parseInt.js delete mode 100644 node_modules/lodash/partial.js delete mode 100644 node_modules/lodash/partialRight.js delete mode 100644 node_modules/lodash/partition.js delete mode 100644 node_modules/lodash/pick.js delete mode 100644 node_modules/lodash/pickBy.js delete mode 100644 node_modules/lodash/plant.js delete mode 100644 node_modules/lodash/property.js delete mode 100644 node_modules/lodash/propertyOf.js delete mode 100644 node_modules/lodash/pull.js delete mode 100644 node_modules/lodash/pullAll.js delete mode 100644 node_modules/lodash/pullAllBy.js delete mode 100644 node_modules/lodash/pullAllWith.js delete mode 100644 node_modules/lodash/pullAt.js delete mode 100644 node_modules/lodash/random.js delete mode 100644 node_modules/lodash/range.js delete mode 100644 node_modules/lodash/rangeRight.js delete mode 100644 node_modules/lodash/rearg.js delete mode 100644 node_modules/lodash/reduce.js delete mode 100644 node_modules/lodash/reduceRight.js delete mode 100644 node_modules/lodash/reject.js delete mode 100644 node_modules/lodash/release.md delete mode 100644 node_modules/lodash/remove.js delete mode 100644 node_modules/lodash/repeat.js delete mode 100644 node_modules/lodash/replace.js delete mode 100644 node_modules/lodash/rest.js delete mode 100644 node_modules/lodash/result.js delete mode 100644 node_modules/lodash/reverse.js delete mode 100644 node_modules/lodash/round.js delete mode 100644 node_modules/lodash/sample.js delete mode 100644 node_modules/lodash/sampleSize.js delete mode 100644 node_modules/lodash/seq.js delete mode 100644 node_modules/lodash/set.js delete mode 100644 node_modules/lodash/setWith.js delete mode 100644 node_modules/lodash/shuffle.js delete mode 100644 node_modules/lodash/size.js delete mode 100644 node_modules/lodash/slice.js delete mode 100644 node_modules/lodash/snakeCase.js delete mode 100644 node_modules/lodash/some.js delete mode 100644 node_modules/lodash/sortBy.js delete mode 100644 node_modules/lodash/sortedIndex.js delete mode 100644 node_modules/lodash/sortedIndexBy.js delete mode 100644 node_modules/lodash/sortedIndexOf.js delete mode 100644 node_modules/lodash/sortedLastIndex.js delete mode 100644 node_modules/lodash/sortedLastIndexBy.js delete mode 100644 node_modules/lodash/sortedLastIndexOf.js delete mode 100644 node_modules/lodash/sortedUniq.js delete mode 100644 node_modules/lodash/sortedUniqBy.js delete mode 100644 node_modules/lodash/split.js delete mode 100644 node_modules/lodash/spread.js delete mode 100644 node_modules/lodash/startCase.js delete mode 100644 node_modules/lodash/startsWith.js delete mode 100644 node_modules/lodash/string.js delete mode 100644 node_modules/lodash/stubArray.js delete mode 100644 node_modules/lodash/stubFalse.js delete mode 100644 node_modules/lodash/stubObject.js delete mode 100644 node_modules/lodash/stubString.js delete mode 100644 node_modules/lodash/stubTrue.js delete mode 100644 node_modules/lodash/subtract.js delete mode 100644 node_modules/lodash/sum.js delete mode 100644 node_modules/lodash/sumBy.js delete mode 100644 node_modules/lodash/tail.js delete mode 100644 node_modules/lodash/take.js delete mode 100644 node_modules/lodash/takeRight.js delete mode 100644 node_modules/lodash/takeRightWhile.js delete mode 100644 node_modules/lodash/takeWhile.js delete mode 100644 node_modules/lodash/tap.js delete mode 100644 node_modules/lodash/template.js delete mode 100644 node_modules/lodash/templateSettings.js delete mode 100644 node_modules/lodash/throttle.js delete mode 100644 node_modules/lodash/thru.js delete mode 100644 node_modules/lodash/times.js delete mode 100644 node_modules/lodash/toArray.js delete mode 100644 node_modules/lodash/toFinite.js delete mode 100644 node_modules/lodash/toInteger.js delete mode 100644 node_modules/lodash/toIterator.js delete mode 100644 node_modules/lodash/toJSON.js delete mode 100644 node_modules/lodash/toLength.js delete mode 100644 node_modules/lodash/toLower.js delete mode 100644 node_modules/lodash/toNumber.js delete mode 100644 node_modules/lodash/toPairs.js delete mode 100644 node_modules/lodash/toPairsIn.js delete mode 100644 node_modules/lodash/toPath.js delete mode 100644 node_modules/lodash/toPlainObject.js delete mode 100644 node_modules/lodash/toSafeInteger.js delete mode 100644 node_modules/lodash/toString.js delete mode 100644 node_modules/lodash/toUpper.js delete mode 100644 node_modules/lodash/transform.js delete mode 100644 node_modules/lodash/trim.js delete mode 100644 node_modules/lodash/trimEnd.js delete mode 100644 node_modules/lodash/trimStart.js delete mode 100644 node_modules/lodash/truncate.js delete mode 100644 node_modules/lodash/unary.js delete mode 100644 node_modules/lodash/unescape.js delete mode 100644 node_modules/lodash/union.js delete mode 100644 node_modules/lodash/unionBy.js delete mode 100644 node_modules/lodash/unionWith.js delete mode 100644 node_modules/lodash/uniq.js delete mode 100644 node_modules/lodash/uniqBy.js delete mode 100644 node_modules/lodash/uniqWith.js delete mode 100644 node_modules/lodash/uniqueId.js delete mode 100644 node_modules/lodash/unset.js delete mode 100644 node_modules/lodash/unzip.js delete mode 100644 node_modules/lodash/unzipWith.js delete mode 100644 node_modules/lodash/update.js delete mode 100644 node_modules/lodash/updateWith.js delete mode 100644 node_modules/lodash/upperCase.js delete mode 100644 node_modules/lodash/upperFirst.js delete mode 100644 node_modules/lodash/util.js delete mode 100644 node_modules/lodash/value.js delete mode 100644 node_modules/lodash/valueOf.js delete mode 100644 node_modules/lodash/values.js delete mode 100644 node_modules/lodash/valuesIn.js delete mode 100644 node_modules/lodash/without.js delete mode 100644 node_modules/lodash/words.js delete mode 100644 node_modules/lodash/wrap.js delete mode 100644 node_modules/lodash/wrapperAt.js delete mode 100644 node_modules/lodash/wrapperChain.js delete mode 100644 node_modules/lodash/wrapperLodash.js delete mode 100644 node_modules/lodash/wrapperReverse.js delete mode 100644 node_modules/lodash/wrapperValue.js delete mode 100644 node_modules/lodash/xor.js delete mode 100644 node_modules/lodash/xorBy.js delete mode 100644 node_modules/lodash/xorWith.js delete mode 100644 node_modules/lodash/zip.js delete mode 100644 node_modules/lodash/zipObject.js delete mode 100644 node_modules/lodash/zipObjectDeep.js delete mode 100644 node_modules/lodash/zipWith.js delete mode 100644 node_modules/magic-bytes.js/.gitattributes delete mode 100644 node_modules/magic-bytes.js/.github/workflows/build-and-test.yml delete mode 100644 node_modules/magic-bytes.js/.github/workflows/static-webapp.yml delete mode 100644 node_modules/magic-bytes.js/.prettierignore delete mode 100644 node_modules/magic-bytes.js/LICENSE delete mode 100644 node_modules/magic-bytes.js/README.md delete mode 100644 node_modules/magic-bytes.js/commitlint.config.js delete mode 100644 node_modules/magic-bytes.js/dist/index.d.ts delete mode 100644 node_modules/magic-bytes.js/dist/index.d.ts.map delete mode 100644 node_modules/magic-bytes.js/dist/index.js delete mode 100644 node_modules/magic-bytes.js/dist/index.spec.d.ts delete mode 100644 node_modules/magic-bytes.js/dist/index.spec.d.ts.map delete mode 100644 node_modules/magic-bytes.js/dist/model/pattern-tree.d.ts delete mode 100644 node_modules/magic-bytes.js/dist/model/pattern-tree.d.ts.map delete mode 100644 node_modules/magic-bytes.js/dist/model/pattern-tree.js delete mode 100644 node_modules/magic-bytes.js/dist/model/toHex.d.ts delete mode 100644 node_modules/magic-bytes.js/dist/model/toHex.d.ts.map delete mode 100644 node_modules/magic-bytes.js/dist/model/toHex.js delete mode 100644 node_modules/magic-bytes.js/dist/model/tree.d.ts delete mode 100644 node_modules/magic-bytes.js/dist/model/tree.d.ts.map delete mode 100644 node_modules/magic-bytes.js/dist/model/tree.js delete mode 100644 node_modules/magic-bytes.js/dist/model/tree.spec.d.ts delete mode 100644 node_modules/magic-bytes.js/dist/model/tree.spec.d.ts.map delete mode 100644 node_modules/magic-bytes.js/jest.config.js delete mode 100644 node_modules/magic-bytes.js/package.json delete mode 100644 node_modules/magic-bytes.js/tsconfig.json delete mode 100644 node_modules/path/.npmignore delete mode 100644 node_modules/path/LICENSE delete mode 100644 node_modules/path/README.md delete mode 100644 node_modules/path/package.json delete mode 100644 node_modules/path/path.js delete mode 100644 node_modules/process/.eslintrc delete mode 100644 node_modules/process/LICENSE delete mode 100644 node_modules/process/README.md delete mode 100644 node_modules/process/browser.js delete mode 100644 node_modules/process/index.js delete mode 100644 node_modules/process/package.json delete mode 100644 node_modules/process/test.js delete mode 100644 node_modules/ts-mixer/CHANGELOG.md delete mode 100644 node_modules/ts-mixer/LICENSE delete mode 100644 node_modules/ts-mixer/README.md delete mode 100644 node_modules/ts-mixer/dist/cjs/decorator.js delete mode 100644 node_modules/ts-mixer/dist/cjs/index.js delete mode 100644 node_modules/ts-mixer/dist/cjs/mixin-tracking.js delete mode 100644 node_modules/ts-mixer/dist/cjs/mixins.js delete mode 100644 node_modules/ts-mixer/dist/cjs/proxy.js delete mode 100644 node_modules/ts-mixer/dist/cjs/settings.js delete mode 100644 node_modules/ts-mixer/dist/cjs/types.js delete mode 100644 node_modules/ts-mixer/dist/cjs/util.js delete mode 100644 node_modules/ts-mixer/dist/esm/decorator.d.ts delete mode 100644 node_modules/ts-mixer/dist/esm/index.d.ts delete mode 100644 node_modules/ts-mixer/dist/esm/index.js delete mode 100644 node_modules/ts-mixer/dist/esm/index.min.js delete mode 100644 node_modules/ts-mixer/dist/esm/mixin-tracking.d.ts delete mode 100644 node_modules/ts-mixer/dist/esm/mixins.d.ts delete mode 100644 node_modules/ts-mixer/dist/esm/proxy.d.ts delete mode 100644 node_modules/ts-mixer/dist/esm/settings.d.ts delete mode 100644 node_modules/ts-mixer/dist/esm/types.d.ts delete mode 100644 node_modules/ts-mixer/dist/esm/util.d.ts delete mode 100644 node_modules/ts-mixer/dist/types/decorator.d.ts delete mode 100644 node_modules/ts-mixer/dist/types/index.d.ts delete mode 100644 node_modules/ts-mixer/dist/types/mixin-tracking.d.ts delete mode 100644 node_modules/ts-mixer/dist/types/mixins.d.ts delete mode 100644 node_modules/ts-mixer/dist/types/proxy.d.ts delete mode 100644 node_modules/ts-mixer/dist/types/settings.d.ts delete mode 100644 node_modules/ts-mixer/dist/types/types.d.ts delete mode 100644 node_modules/ts-mixer/dist/types/util.d.ts delete mode 100644 node_modules/ts-mixer/package.json delete mode 100644 node_modules/tslib/CopyrightNotice.txt delete mode 100644 node_modules/tslib/LICENSE.txt delete mode 100644 node_modules/tslib/README.md delete mode 100644 node_modules/tslib/SECURITY.md delete mode 100644 node_modules/tslib/modules/index.d.ts delete mode 100644 node_modules/tslib/modules/index.js delete mode 100644 node_modules/tslib/modules/package.json delete mode 100644 node_modules/tslib/package.json delete mode 100644 node_modules/tslib/tslib.d.ts delete mode 100644 node_modules/tslib/tslib.es6.html delete mode 100644 node_modules/tslib/tslib.es6.js delete mode 100644 node_modules/tslib/tslib.es6.mjs delete mode 100644 node_modules/tslib/tslib.html delete mode 100644 node_modules/tslib/tslib.js delete mode 100644 node_modules/undici-types/README.md delete mode 100644 node_modules/undici-types/agent.d.ts delete mode 100644 node_modules/undici-types/api.d.ts delete mode 100644 node_modules/undici-types/balanced-pool.d.ts delete mode 100644 node_modules/undici-types/cache.d.ts delete mode 100644 node_modules/undici-types/client.d.ts delete mode 100644 node_modules/undici-types/connector.d.ts delete mode 100644 node_modules/undici-types/content-type.d.ts delete mode 100644 node_modules/undici-types/cookies.d.ts delete mode 100644 node_modules/undici-types/diagnostics-channel.d.ts delete mode 100644 node_modules/undici-types/dispatcher.d.ts delete mode 100644 node_modules/undici-types/errors.d.ts delete mode 100644 node_modules/undici-types/fetch.d.ts delete mode 100644 node_modules/undici-types/file.d.ts delete mode 100644 node_modules/undici-types/filereader.d.ts delete mode 100644 node_modules/undici-types/formdata.d.ts delete mode 100644 node_modules/undici-types/global-dispatcher.d.ts delete mode 100644 node_modules/undici-types/global-origin.d.ts delete mode 100644 node_modules/undici-types/handlers.d.ts delete mode 100644 node_modules/undici-types/header.d.ts delete mode 100644 node_modules/undici-types/index.d.ts delete mode 100644 node_modules/undici-types/interceptors.d.ts delete mode 100644 node_modules/undici-types/mock-agent.d.ts delete mode 100644 node_modules/undici-types/mock-client.d.ts delete mode 100644 node_modules/undici-types/mock-errors.d.ts delete mode 100644 node_modules/undici-types/mock-interceptor.d.ts delete mode 100644 node_modules/undici-types/mock-pool.d.ts delete mode 100644 node_modules/undici-types/package.json delete mode 100644 node_modules/undici-types/patch.d.ts delete mode 100644 node_modules/undici-types/pool-stats.d.ts delete mode 100644 node_modules/undici-types/pool.d.ts delete mode 100644 node_modules/undici-types/proxy-agent.d.ts delete mode 100644 node_modules/undici-types/readable.d.ts delete mode 100644 node_modules/undici-types/webidl.d.ts delete mode 100644 node_modules/undici-types/websocket.d.ts delete mode 100644 node_modules/undici/LICENSE delete mode 100644 node_modules/undici/README.md delete mode 100644 node_modules/undici/docs/docs/api/Agent.md delete mode 100644 node_modules/undici/docs/docs/api/BalancedPool.md delete mode 100644 node_modules/undici/docs/docs/api/CacheStorage.md delete mode 100644 node_modules/undici/docs/docs/api/Client.md delete mode 100644 node_modules/undici/docs/docs/api/Connector.md delete mode 100644 node_modules/undici/docs/docs/api/ContentType.md delete mode 100644 node_modules/undici/docs/docs/api/Cookies.md delete mode 100644 node_modules/undici/docs/docs/api/Debug.md delete mode 100644 node_modules/undici/docs/docs/api/DiagnosticsChannel.md delete mode 100644 node_modules/undici/docs/docs/api/DispatchInterceptor.md delete mode 100644 node_modules/undici/docs/docs/api/Dispatcher.md delete mode 100644 node_modules/undici/docs/docs/api/Errors.md delete mode 100644 node_modules/undici/docs/docs/api/EventSource.md delete mode 100644 node_modules/undici/docs/docs/api/Fetch.md delete mode 100644 node_modules/undici/docs/docs/api/MockAgent.md delete mode 100644 node_modules/undici/docs/docs/api/MockClient.md delete mode 100644 node_modules/undici/docs/docs/api/MockErrors.md delete mode 100644 node_modules/undici/docs/docs/api/MockPool.md delete mode 100644 node_modules/undici/docs/docs/api/Pool.md delete mode 100644 node_modules/undici/docs/docs/api/PoolStats.md delete mode 100644 node_modules/undici/docs/docs/api/ProxyAgent.md delete mode 100644 node_modules/undici/docs/docs/api/RedirectHandler.md delete mode 100644 node_modules/undici/docs/docs/api/RetryAgent.md delete mode 100644 node_modules/undici/docs/docs/api/RetryHandler.md delete mode 100644 node_modules/undici/docs/docs/api/Util.md delete mode 100644 node_modules/undici/docs/docs/api/WebSocket.md delete mode 100644 node_modules/undici/docs/docs/api/api-lifecycle.md delete mode 100644 node_modules/undici/docs/docs/best-practices/client-certificate.md delete mode 100644 node_modules/undici/docs/docs/best-practices/mocking-request.md delete mode 100644 node_modules/undici/docs/docs/best-practices/proxy.md delete mode 100644 node_modules/undici/docs/docs/best-practices/writing-tests.md delete mode 100644 node_modules/undici/index-fetch.js delete mode 100644 node_modules/undici/index.d.ts delete mode 100644 node_modules/undici/index.js delete mode 100644 node_modules/undici/lib/api/abort-signal.js delete mode 100644 node_modules/undici/lib/api/api-connect.js delete mode 100644 node_modules/undici/lib/api/api-pipeline.js delete mode 100644 node_modules/undici/lib/api/api-request.js delete mode 100644 node_modules/undici/lib/api/api-stream.js delete mode 100644 node_modules/undici/lib/api/api-upgrade.js delete mode 100644 node_modules/undici/lib/api/index.js delete mode 100644 node_modules/undici/lib/api/readable.js delete mode 100644 node_modules/undici/lib/api/util.js delete mode 100644 node_modules/undici/lib/core/connect.js delete mode 100644 node_modules/undici/lib/core/constants.js delete mode 100644 node_modules/undici/lib/core/diagnostics.js delete mode 100644 node_modules/undici/lib/core/errors.js delete mode 100644 node_modules/undici/lib/core/request.js delete mode 100644 node_modules/undici/lib/core/symbols.js delete mode 100644 node_modules/undici/lib/core/tree.js delete mode 100644 node_modules/undici/lib/core/util.js delete mode 100644 node_modules/undici/lib/dispatcher/agent.js delete mode 100644 node_modules/undici/lib/dispatcher/balanced-pool.js delete mode 100644 node_modules/undici/lib/dispatcher/client-h1.js delete mode 100644 node_modules/undici/lib/dispatcher/client-h2.js delete mode 100644 node_modules/undici/lib/dispatcher/client.js delete mode 100644 node_modules/undici/lib/dispatcher/dispatcher-base.js delete mode 100644 node_modules/undici/lib/dispatcher/dispatcher.js delete mode 100644 node_modules/undici/lib/dispatcher/fixed-queue.js delete mode 100644 node_modules/undici/lib/dispatcher/pool-base.js delete mode 100644 node_modules/undici/lib/dispatcher/pool-stats.js delete mode 100644 node_modules/undici/lib/dispatcher/pool.js delete mode 100644 node_modules/undici/lib/dispatcher/proxy-agent.js delete mode 100644 node_modules/undici/lib/dispatcher/retry-agent.js delete mode 100644 node_modules/undici/lib/global.js delete mode 100644 node_modules/undici/lib/handler/decorator-handler.js delete mode 100644 node_modules/undici/lib/handler/redirect-handler.js delete mode 100644 node_modules/undici/lib/handler/retry-handler.js delete mode 100644 node_modules/undici/lib/interceptor/redirect-interceptor.js delete mode 100644 node_modules/undici/lib/interceptor/redirect.js delete mode 100644 node_modules/undici/lib/interceptor/retry.js delete mode 100644 node_modules/undici/lib/llhttp/constants.d.ts delete mode 100644 node_modules/undici/lib/llhttp/constants.js delete mode 100644 node_modules/undici/lib/llhttp/constants.js.map delete mode 100644 node_modules/undici/lib/llhttp/llhttp-wasm.js delete mode 100644 node_modules/undici/lib/llhttp/llhttp_simd-wasm.js delete mode 100644 node_modules/undici/lib/llhttp/utils.d.ts delete mode 100644 node_modules/undici/lib/llhttp/utils.js delete mode 100644 node_modules/undici/lib/llhttp/utils.js.map delete mode 100644 node_modules/undici/lib/llhttp/wasm_build_env.txt delete mode 100644 node_modules/undici/lib/mock/mock-agent.js delete mode 100644 node_modules/undici/lib/mock/mock-client.js delete mode 100644 node_modules/undici/lib/mock/mock-errors.js delete mode 100644 node_modules/undici/lib/mock/mock-interceptor.js delete mode 100644 node_modules/undici/lib/mock/mock-pool.js delete mode 100644 node_modules/undici/lib/mock/mock-symbols.js delete mode 100644 node_modules/undici/lib/mock/mock-utils.js delete mode 100644 node_modules/undici/lib/mock/pending-interceptors-formatter.js delete mode 100644 node_modules/undici/lib/mock/pluralizer.js delete mode 100644 node_modules/undici/lib/util/timers.js delete mode 100644 node_modules/undici/lib/web/cache/cache.js delete mode 100644 node_modules/undici/lib/web/cache/cachestorage.js delete mode 100644 node_modules/undici/lib/web/cache/symbols.js delete mode 100644 node_modules/undici/lib/web/cache/util.js delete mode 100644 node_modules/undici/lib/web/cookies/constants.js delete mode 100644 node_modules/undici/lib/web/cookies/index.js delete mode 100644 node_modules/undici/lib/web/cookies/parse.js delete mode 100644 node_modules/undici/lib/web/cookies/util.js delete mode 100644 node_modules/undici/lib/web/eventsource/eventsource-stream.js delete mode 100644 node_modules/undici/lib/web/eventsource/eventsource.js delete mode 100644 node_modules/undici/lib/web/eventsource/util.js delete mode 100644 node_modules/undici/lib/web/fetch/LICENSE delete mode 100644 node_modules/undici/lib/web/fetch/body.js delete mode 100644 node_modules/undici/lib/web/fetch/constants.js delete mode 100644 node_modules/undici/lib/web/fetch/data-url.js delete mode 100644 node_modules/undici/lib/web/fetch/dispatcher-weakref.js delete mode 100644 node_modules/undici/lib/web/fetch/file.js delete mode 100644 node_modules/undici/lib/web/fetch/formdata-parser.js delete mode 100644 node_modules/undici/lib/web/fetch/formdata.js delete mode 100644 node_modules/undici/lib/web/fetch/global.js delete mode 100644 node_modules/undici/lib/web/fetch/headers.js delete mode 100644 node_modules/undici/lib/web/fetch/index.js delete mode 100644 node_modules/undici/lib/web/fetch/request.js delete mode 100644 node_modules/undici/lib/web/fetch/response.js delete mode 100644 node_modules/undici/lib/web/fetch/symbols.js delete mode 100644 node_modules/undici/lib/web/fetch/util.js delete mode 100644 node_modules/undici/lib/web/fetch/webidl.js delete mode 100644 node_modules/undici/lib/web/fileapi/encoding.js delete mode 100644 node_modules/undici/lib/web/fileapi/filereader.js delete mode 100644 node_modules/undici/lib/web/fileapi/progressevent.js delete mode 100644 node_modules/undici/lib/web/fileapi/symbols.js delete mode 100644 node_modules/undici/lib/web/fileapi/util.js delete mode 100644 node_modules/undici/lib/web/websocket/connection.js delete mode 100644 node_modules/undici/lib/web/websocket/constants.js delete mode 100644 node_modules/undici/lib/web/websocket/events.js delete mode 100644 node_modules/undici/lib/web/websocket/frame.js delete mode 100644 node_modules/undici/lib/web/websocket/receiver.js delete mode 100644 node_modules/undici/lib/web/websocket/symbols.js delete mode 100644 node_modules/undici/lib/web/websocket/util.js delete mode 100644 node_modules/undici/lib/web/websocket/websocket.js delete mode 100644 node_modules/undici/package.json delete mode 100644 node_modules/undici/scripts/strip-comments.js delete mode 100644 node_modules/undici/types/README.md delete mode 100644 node_modules/undici/types/agent.d.ts delete mode 100644 node_modules/undici/types/api.d.ts delete mode 100644 node_modules/undici/types/balanced-pool.d.ts delete mode 100644 node_modules/undici/types/cache.d.ts delete mode 100644 node_modules/undici/types/client.d.ts delete mode 100644 node_modules/undici/types/connector.d.ts delete mode 100644 node_modules/undici/types/content-type.d.ts delete mode 100644 node_modules/undici/types/cookies.d.ts delete mode 100644 node_modules/undici/types/diagnostics-channel.d.ts delete mode 100644 node_modules/undici/types/dispatcher.d.ts delete mode 100644 node_modules/undici/types/errors.d.ts delete mode 100644 node_modules/undici/types/eventsource.d.ts delete mode 100644 node_modules/undici/types/fetch.d.ts delete mode 100644 node_modules/undici/types/file.d.ts delete mode 100644 node_modules/undici/types/filereader.d.ts delete mode 100644 node_modules/undici/types/formdata.d.ts delete mode 100644 node_modules/undici/types/global-dispatcher.d.ts delete mode 100644 node_modules/undici/types/global-origin.d.ts delete mode 100644 node_modules/undici/types/handlers.d.ts delete mode 100644 node_modules/undici/types/header.d.ts delete mode 100644 node_modules/undici/types/index.d.ts delete mode 100644 node_modules/undici/types/interceptors.d.ts delete mode 100644 node_modules/undici/types/mock-agent.d.ts delete mode 100644 node_modules/undici/types/mock-client.d.ts delete mode 100644 node_modules/undici/types/mock-errors.d.ts delete mode 100644 node_modules/undici/types/mock-interceptor.d.ts delete mode 100644 node_modules/undici/types/mock-pool.d.ts delete mode 100644 node_modules/undici/types/patch.d.ts delete mode 100644 node_modules/undici/types/pool-stats.d.ts delete mode 100644 node_modules/undici/types/pool.d.ts delete mode 100644 node_modules/undici/types/proxy-agent.d.ts delete mode 100644 node_modules/undici/types/readable.d.ts delete mode 100644 node_modules/undici/types/retry-agent.d.ts delete mode 100644 node_modules/undici/types/retry-handler.d.ts delete mode 100644 node_modules/undici/types/util.d.ts delete mode 100644 node_modules/undici/types/webidl.d.ts delete mode 100644 node_modules/undici/types/websocket.d.ts delete mode 100644 node_modules/util/LICENSE delete mode 100644 node_modules/util/README.md delete mode 100644 node_modules/util/package.json delete mode 100644 node_modules/util/support/isBuffer.js delete mode 100644 node_modules/util/support/isBufferBrowser.js delete mode 100644 node_modules/util/util.js delete mode 100644 node_modules/ws/LICENSE delete mode 100644 node_modules/ws/README.md delete mode 100644 node_modules/ws/browser.js delete mode 100644 node_modules/ws/index.js delete mode 100644 node_modules/ws/lib/buffer-util.js delete mode 100644 node_modules/ws/lib/constants.js delete mode 100644 node_modules/ws/lib/event-target.js delete mode 100644 node_modules/ws/lib/extension.js delete mode 100644 node_modules/ws/lib/limiter.js delete mode 100644 node_modules/ws/lib/permessage-deflate.js delete mode 100644 node_modules/ws/lib/receiver.js delete mode 100644 node_modules/ws/lib/sender.js delete mode 100644 node_modules/ws/lib/stream.js delete mode 100644 node_modules/ws/lib/subprotocol.js delete mode 100644 node_modules/ws/lib/validation.js delete mode 100644 node_modules/ws/lib/websocket-server.js delete mode 100644 node_modules/ws/lib/websocket.js delete mode 100644 node_modules/ws/package.json delete mode 100644 node_modules/ws/wrapper.mjs diff --git a/.gitignore b/.gitignore index f7d4a3c..746e615 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,6 @@ +#FOLDERS node_modules + +#FILES config.json +*.env diff --git a/config.json b/config.json deleted file mode 100644 index c55e70d..0000000 --- a/config.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "token": "MTIwMTYwMjAxMzE0MjcxMjQzMQ.Gi0l5n.tldSN9fnBzxoWAgtdFBVr8jdXyOxaQKJ2_OOZk" -} diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json deleted file mode 100644 index 848e8dd..0000000 --- a/node_modules/.package-lock.json +++ /dev/null @@ -1,310 +0,0 @@ -{ - "name": "mbot", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "node_modules/@discordjs/builders": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-1.8.1.tgz", - "integrity": "sha512-GkF+HM01FHy+NSoTaUPR8z44otfQgJ1AIsRxclYGUZDyUbdZEFyD/5QVv2Y1Flx6M+B0bQLzg2M9CJv5lGTqpA==", - "dependencies": { - "@discordjs/formatters": "^0.4.0", - "@discordjs/util": "^1.1.0", - "@sapphire/shapeshift": "^3.9.7", - "discord-api-types": "0.37.83", - "fast-deep-equal": "^3.1.3", - "ts-mixer": "^6.0.4", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=16.11.0" - }, - "funding": { - "url": "https://github.com/discordjs/discord.js?sponsor" - } - }, - "node_modules/@discordjs/collection": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-1.5.3.tgz", - "integrity": "sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ==", - "engines": { - "node": ">=16.11.0" - } - }, - "node_modules/@discordjs/formatters": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@discordjs/formatters/-/formatters-0.4.0.tgz", - "integrity": "sha512-fJ06TLC1NiruF35470q3Nr1bi95BdvKFAF+T5bNfZJ4bNdqZ3VZ+Ttg6SThqTxm6qumSG3choxLBHMC69WXNXQ==", - "dependencies": { - "discord-api-types": "0.37.83" - }, - "engines": { - "node": ">=16.11.0" - }, - "funding": { - "url": "https://github.com/discordjs/discord.js?sponsor" - } - }, - "node_modules/@discordjs/rest": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-2.3.0.tgz", - "integrity": "sha512-C1kAJK8aSYRv3ZwMG8cvrrW4GN0g5eMdP8AuN8ODH5DyOCbHgJspze1my3xHOAgwLJdKUbWNVyAeJ9cEdduqIg==", - "dependencies": { - "@discordjs/collection": "^2.1.0", - "@discordjs/util": "^1.1.0", - "@sapphire/async-queue": "^1.5.2", - "@sapphire/snowflake": "^3.5.3", - "@vladfrangu/async_event_emitter": "^2.2.4", - "discord-api-types": "0.37.83", - "magic-bytes.js": "^1.10.0", - "tslib": "^2.6.2", - "undici": "6.13.0" - }, - "engines": { - "node": ">=16.11.0" - }, - "funding": { - "url": "https://github.com/discordjs/discord.js?sponsor" - } - }, - "node_modules/@discordjs/rest/node_modules/@discordjs/collection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-2.1.0.tgz", - "integrity": "sha512-mLcTACtXUuVgutoznkh6hS3UFqYirDYAg5Dc1m8xn6OvPjetnUlf/xjtqnnc47OwWdaoCQnHmHh9KofhD6uRqw==", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/discordjs/discord.js?sponsor" - } - }, - "node_modules/@discordjs/util": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@discordjs/util/-/util-1.1.0.tgz", - "integrity": "sha512-IndcI5hzlNZ7GS96RV3Xw1R2kaDuXEp7tRIy/KlhidpN/BQ1qh1NZt3377dMLTa44xDUNKT7hnXkA/oUAzD/lg==", - "engines": { - "node": ">=16.11.0" - }, - "funding": { - "url": "https://github.com/discordjs/discord.js?sponsor" - } - }, - "node_modules/@discordjs/ws": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@discordjs/ws/-/ws-1.1.0.tgz", - "integrity": "sha512-O97DIeSvfNTn5wz5vaER6ciyUsr7nOqSEtsLoMhhIgeFkhnxLRqSr00/Fpq2/ppLgjDGLbQCDzIK7ilGoB/M7A==", - "dependencies": { - "@discordjs/collection": "^2.1.0", - "@discordjs/rest": "^2.3.0", - "@discordjs/util": "^1.1.0", - "@sapphire/async-queue": "^1.5.2", - "@types/ws": "^8.5.10", - "@vladfrangu/async_event_emitter": "^2.2.4", - "discord-api-types": "0.37.83", - "tslib": "^2.6.2", - "ws": "^8.16.0" - }, - "engines": { - "node": ">=16.11.0" - }, - "funding": { - "url": "https://github.com/discordjs/discord.js?sponsor" - } - }, - "node_modules/@discordjs/ws/node_modules/@discordjs/collection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-2.1.0.tgz", - "integrity": "sha512-mLcTACtXUuVgutoznkh6hS3UFqYirDYAg5Dc1m8xn6OvPjetnUlf/xjtqnnc47OwWdaoCQnHmHh9KofhD6uRqw==", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/discordjs/discord.js?sponsor" - } - }, - "node_modules/@sapphire/async-queue": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.5.2.tgz", - "integrity": "sha512-7X7FFAA4DngXUl95+hYbUF19bp1LGiffjJtu7ygrZrbdCSsdDDBaSjB7Akw0ZbOu6k0xpXyljnJ6/RZUvLfRdg==", - "engines": { - "node": ">=v14.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@sapphire/shapeshift": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-3.9.7.tgz", - "integrity": "sha512-4It2mxPSr4OGn4HSQWGmhFMsNFGfFVhWeRPCRwbH972Ek2pzfGRZtb0pJ4Ze6oIzcyh2jw7nUDa6qGlWofgd9g==", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=v16" - } - }, - "node_modules/@sapphire/snowflake": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.5.3.tgz", - "integrity": "sha512-jjmJywLAFoWeBi1W7994zZyiNWPIiqRRNAmSERxyg93xRGzNYvGjlZ0gR6x0F4gPRi2+0O6S71kOZYyr3cxaIQ==", - "engines": { - "node": ">=v14.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@types/node": { - "version": "20.12.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.11.tgz", - "integrity": "sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/ws": { - "version": "8.5.10", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", - "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@vladfrangu/async_event_emitter": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@vladfrangu/async_event_emitter/-/async_event_emitter-2.2.4.tgz", - "integrity": "sha512-ButUPz9E9cXMLgvAW8aLAKKJJsPu1dY1/l/E8xzLFuysowXygs6GBcyunK9rnGC4zTsnIc2mQo71rGw9U+Ykug==", - "engines": { - "node": ">=v14.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/discord-api-types": { - "version": "0.37.83", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.83.tgz", - "integrity": "sha512-urGGYeWtWNYMKnYlZnOnDHm8fVRffQs3U0SpE8RHeiuLKb/u92APS8HoQnPTFbnXmY1vVnXjXO4dOxcAn3J+DA==" - }, - "node_modules/discord.js": { - "version": "14.15.2", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-14.15.2.tgz", - "integrity": "sha512-wGD37YCaTUNprtpqMIRuNiswwsvSWXrHykBSm2SAosoTYut0VUDj9yo9t4iLtMKvuhI49zYkvKc2TNdzdvpJhg==", - "dependencies": { - "@discordjs/builders": "^1.8.1", - "@discordjs/collection": "1.5.3", - "@discordjs/formatters": "^0.4.0", - "@discordjs/rest": "^2.3.0", - "@discordjs/util": "^1.1.0", - "@discordjs/ws": "^1.1.0", - "@sapphire/snowflake": "3.5.3", - "discord-api-types": "0.37.83", - "fast-deep-equal": "3.1.3", - "lodash.snakecase": "4.1.1", - "tslib": "2.6.2", - "undici": "6.13.0" - }, - "engines": { - "node": ">=16.11.0" - }, - "funding": { - "url": "https://github.com/discordjs/discord.js?sponsor" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fs": { - "version": "0.0.1-security", - "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", - "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==" - }, - "node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.snakecase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", - "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==" - }, - "node_modules/magic-bytes.js": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/magic-bytes.js/-/magic-bytes.js-1.10.0.tgz", - "integrity": "sha512-/k20Lg2q8LE5xiaaSkMXk4sfvI+9EGEykFS4b0CHHGWqDYU0bGUFSwchNOMA56D7TCs9GwVTkqe9als1/ns8UQ==" - }, - "node_modules/path": { - "version": "0.12.7", - "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", - "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==", - "dependencies": { - "process": "^0.11.1", - "util": "^0.10.3" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/ts-mixer": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.4.tgz", - "integrity": "sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==" - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/undici": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.13.0.tgz", - "integrity": "sha512-Q2rtqmZWrbP8nePMq7mOJIN98M0fYvSgV89vwl/BQRT4mDOeY2GXZngfGpcBBhtky3woM7G24wZV3Q304Bv6cw==", - "engines": { - "node": ">=18.0" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" - }, - "node_modules/util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/ws": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", - "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", - "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 - } - } - } - } -} diff --git a/node_modules/@discordjs/builders/LICENSE b/node_modules/@discordjs/builders/LICENSE deleted file mode 100644 index cbe9c65..0000000 --- a/node_modules/@discordjs/builders/LICENSE +++ /dev/null @@ -1,191 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - Copyright 2021 Noel Buechler - Copyright 2021 Vlad Frangu - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/node_modules/@discordjs/builders/README.md b/node_modules/@discordjs/builders/README.md deleted file mode 100644 index dc88b7f..0000000 --- a/node_modules/@discordjs/builders/README.md +++ /dev/null @@ -1,72 +0,0 @@ -
-
-

- discord.js -

-
-

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

-

- Vercel - Cloudflare Workers -

-
- -## About - -`@discordjs/builders` is a utility package for easily building Discord API payloads. - -## Installation - -**Node.js 16.11.0 or newer is required.** - -```sh -npm install @discordjs/builders -yarn add @discordjs/builders -pnpm add @discordjs/builders -``` - -## Examples - -You can find examples of how to use the builders in the [Slash Command Builders][example] examples. - -## Links - -- [Website][website] ([source][website-source]) -- [Documentation][documentation] -- [Guide][guide] ([source][guide-source]) - Also see the v13 to v14 [Update Guide][guide-update], which includes updated and removed items from the library. -- [discord.js Discord server][discord] -- [Discord API Discord server][discord-api] -- [GitHub][source] -- [npm][npm] -- [Related libraries][related-libs] - -## Contributing - -Before creating an issue, please ensure that it hasn't already been reported/suggested, and double-check the -[documentation][documentation]. -See [the contribution guide][contributing] if you'd like to submit a PR. - -## Help - -If you don't understand something in the documentation, you are experiencing problems, or you just need a gentle nudge in the right direction, please don't hesitate to join our official [discord.js Server][discord]. - -[example]: https://github.com/discordjs/discord.js/blob/main/packages/builders/docs/examples/Slash%20Command%20Builders.md -[website]: https://discord.js.org -[website-source]: https://github.com/discordjs/discord.js/tree/main/apps/website -[documentation]: https://discord.js.org/docs/packages/builders/stable -[guide]: https://discordjs.guide/ -[guide-source]: https://github.com/discordjs/guide -[guide-update]: https://discordjs.guide/additional-info/changes-in-v14.html -[discord]: https://discord.gg/djs -[discord-api]: https://discord.gg/discord-api -[source]: https://github.com/discordjs/discord.js/tree/main/packages/builders -[npm]: https://www.npmjs.com/package/@discordjs/builders -[related-libs]: https://discord.com/developers/docs/topics/community-resources#libraries -[contributing]: https://github.com/discordjs/discord.js/blob/main/.github/CONTRIBUTING.md diff --git a/node_modules/@discordjs/builders/dist/index.d.mts b/node_modules/@discordjs/builders/dist/index.d.mts deleted file mode 100644 index d129ca5..0000000 --- a/node_modules/@discordjs/builders/dist/index.d.mts +++ /dev/null @@ -1,1971 +0,0 @@ -import * as _sapphire_shapeshift from '@sapphire/shapeshift'; -import { APIEmbedField, APIEmbedAuthor, APIEmbedFooter, APIEmbedImage, APIEmbed, APISelectMenuOption, APIMessageComponentEmoji, ButtonStyle, ChannelType, APIActionRowComponent, APIActionRowComponentTypes, APIBaseComponent, ComponentType, APIButtonComponent, APISelectMenuComponent, APIChannelSelectComponent, Snowflake, APIMentionableSelectComponent, APISelectMenuDefaultValue, SelectMenuDefaultValueType, APIRoleSelectComponent, APIStringSelectComponent, APIUserSelectComponent, APITextInputComponent, TextInputStyle, APIMessageActionRowComponent, APIModalActionRowComponent, APIModalComponent, APIMessageComponent, APIModalInteractionResponseCallbackData, LocalizationMap, LocaleString, Permissions, RESTPostAPIChatInputApplicationCommandsJSONBody, ApplicationCommandOptionType, APIApplicationCommandBasicOption, APIApplicationCommandAttachmentOption, APIApplicationCommandBooleanOption, APIApplicationCommandChannelOption, APIApplicationCommandOptionChoice, APIApplicationCommandIntegerOption, APIApplicationCommandMentionableOption, APIApplicationCommandNumberOption, APIApplicationCommandRoleOption, APIApplicationCommandStringOption, APIApplicationCommandUserOption, APIApplicationCommandSubcommandGroupOption, APIApplicationCommandSubcommandOption, APIApplicationCommandOption, Locale, ApplicationCommandType, RESTPostAPIContextMenuApplicationCommandsJSONBody } from 'discord-api-types/v10'; -export * from '@discordjs/formatters'; -import { JSONEncodable, Equatable } from '@discordjs/util'; - -declare const fieldNamePredicate: _sapphire_shapeshift.StringValidator; -declare const fieldValuePredicate: _sapphire_shapeshift.StringValidator; -declare const fieldInlinePredicate: _sapphire_shapeshift.UnionValidator; -declare const embedFieldPredicate: _sapphire_shapeshift.ObjectValidator<{ - name: string; - value: string; - inline: boolean | undefined; -}, _sapphire_shapeshift.UndefinedToOptional<{ - name: string; - value: string; - inline: boolean | undefined; -}>>; -declare const embedFieldsArrayPredicate: _sapphire_shapeshift.ArrayValidator<_sapphire_shapeshift.UndefinedToOptional<{ - name: string; - value: string; - inline: boolean | undefined; -}>[], _sapphire_shapeshift.UndefinedToOptional<{ - name: string; - value: string; - inline: boolean | undefined; -}>>; -declare const fieldLengthPredicate: _sapphire_shapeshift.NumberValidator; -declare function validateFieldLength(amountAdding: number, fields?: APIEmbedField[]): void; -declare const authorNamePredicate: _sapphire_shapeshift.UnionValidator; -declare const imageURLPredicate: _sapphire_shapeshift.UnionValidator; -declare const urlPredicate: _sapphire_shapeshift.UnionValidator; -declare const embedAuthorPredicate: _sapphire_shapeshift.ObjectValidator<{ - name: string | null; - iconURL: string | null | undefined; - url: string | null | undefined; -}, _sapphire_shapeshift.UndefinedToOptional<{ - name: string | null; - iconURL: string | null | undefined; - url: string | null | undefined; -}>>; -declare const RGBPredicate: _sapphire_shapeshift.NumberValidator; -declare const colorPredicate: _sapphire_shapeshift.UnionValidator; -declare const descriptionPredicate: _sapphire_shapeshift.UnionValidator; -declare const footerTextPredicate: _sapphire_shapeshift.UnionValidator; -declare const embedFooterPredicate: _sapphire_shapeshift.ObjectValidator<{ - text: string | null; - iconURL: string | null | undefined; -}, _sapphire_shapeshift.UndefinedToOptional<{ - text: string | null; - iconURL: string | null | undefined; -}>>; -declare const timestampPredicate: _sapphire_shapeshift.UnionValidator; -declare const titlePredicate: _sapphire_shapeshift.UnionValidator; - -declare const Assertions$5_RGBPredicate: typeof RGBPredicate; -declare const Assertions$5_authorNamePredicate: typeof authorNamePredicate; -declare const Assertions$5_colorPredicate: typeof colorPredicate; -declare const Assertions$5_descriptionPredicate: typeof descriptionPredicate; -declare const Assertions$5_embedAuthorPredicate: typeof embedAuthorPredicate; -declare const Assertions$5_embedFieldPredicate: typeof embedFieldPredicate; -declare const Assertions$5_embedFieldsArrayPredicate: typeof embedFieldsArrayPredicate; -declare const Assertions$5_embedFooterPredicate: typeof embedFooterPredicate; -declare const Assertions$5_fieldInlinePredicate: typeof fieldInlinePredicate; -declare const Assertions$5_fieldLengthPredicate: typeof fieldLengthPredicate; -declare const Assertions$5_fieldNamePredicate: typeof fieldNamePredicate; -declare const Assertions$5_fieldValuePredicate: typeof fieldValuePredicate; -declare const Assertions$5_footerTextPredicate: typeof footerTextPredicate; -declare const Assertions$5_imageURLPredicate: typeof imageURLPredicate; -declare const Assertions$5_timestampPredicate: typeof timestampPredicate; -declare const Assertions$5_titlePredicate: typeof titlePredicate; -declare const Assertions$5_urlPredicate: typeof urlPredicate; -declare const Assertions$5_validateFieldLength: typeof validateFieldLength; -declare namespace Assertions$5 { - export { Assertions$5_RGBPredicate as RGBPredicate, Assertions$5_authorNamePredicate as authorNamePredicate, Assertions$5_colorPredicate as colorPredicate, Assertions$5_descriptionPredicate as descriptionPredicate, Assertions$5_embedAuthorPredicate as embedAuthorPredicate, Assertions$5_embedFieldPredicate as embedFieldPredicate, Assertions$5_embedFieldsArrayPredicate as embedFieldsArrayPredicate, Assertions$5_embedFooterPredicate as embedFooterPredicate, Assertions$5_fieldInlinePredicate as fieldInlinePredicate, Assertions$5_fieldLengthPredicate as fieldLengthPredicate, Assertions$5_fieldNamePredicate as fieldNamePredicate, Assertions$5_fieldValuePredicate as fieldValuePredicate, Assertions$5_footerTextPredicate as footerTextPredicate, Assertions$5_imageURLPredicate as imageURLPredicate, Assertions$5_timestampPredicate as timestampPredicate, Assertions$5_titlePredicate as titlePredicate, Assertions$5_urlPredicate as urlPredicate, Assertions$5_validateFieldLength as validateFieldLength }; -} - -/** - * Normalizes data that is a rest parameter or an array into an array with a depth of 1. - * - * @typeParam ItemType - The data that must satisfy {@link RestOrArray}. - * @param arr - The (possibly variadic) data to normalize - */ -declare function normalizeArray(arr: RestOrArray): ItemType[]; -/** - * Represents data that may be an array or came from a rest parameter. - * - * @remarks - * This type is used throughout builders to ensure both an array and variadic arguments - * may be used. It is normalized with {@link normalizeArray}. - */ -type RestOrArray = Type[] | [Type[]]; - -/** - * A tuple satisfying the RGB color model. - * - * @see {@link https://developer.mozilla.org/docs/Glossary/RGB} - */ -type RGBTuple = [red: number, green: number, blue: number]; -/** - * The base icon data typically used in payloads. - */ -interface IconData { - /** - * The URL of the icon. - */ - iconURL?: string; - /** - * The proxy URL of the icon. - */ - proxyIconURL?: string; -} -/** - * Represents the author data of an embed. - */ -interface EmbedAuthorData extends IconData, Omit { -} -/** - * Represents the author options of an embed. - */ -interface EmbedAuthorOptions extends Omit { -} -/** - * Represents the footer data of an embed. - */ -interface EmbedFooterData extends IconData, Omit { -} -/** - * Represents the footer options of an embed. - */ -interface EmbedFooterOptions extends Omit { -} -/** - * Represents the image data of an embed. - */ -interface EmbedImageData extends Omit { - /** - * The proxy URL for the image. - */ - proxyURL?: string; -} -/** - * A builder that creates API-compatible JSON data for embeds. - */ -declare class EmbedBuilder { - /** - * The API data associated with this embed. - */ - readonly data: APIEmbed; - /** - * Creates a new embed from API data. - * - * @param data - The API data to create this embed with - */ - constructor(data?: APIEmbed); - /** - * Appends fields to the embed. - * - * @remarks - * This method accepts either an array of fields or a variable number of field parameters. - * The maximum amount of fields that can be added is 25. - * @example - * Using an array: - * ```ts - * const fields: APIEmbedField[] = ...; - * const embed = new EmbedBuilder() - * .addFields(fields); - * ``` - * @example - * Using rest parameters (variadic): - * ```ts - * const embed = new EmbedBuilder() - * .addFields( - * { name: 'Field 1', value: 'Value 1' }, - * { name: 'Field 2', value: 'Value 2' }, - * ); - * ``` - * @param fields - The fields to add - */ - addFields(...fields: RestOrArray): this; - /** - * Removes, replaces, or inserts fields for this embed. - * - * @remarks - * This method behaves similarly - * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. - * The maximum amount of fields that can be added is 25. - * - * It's useful for modifying and adjusting order of the already-existing fields of an embed. - * @example - * Remove the first field: - * ```ts - * embed.spliceFields(0, 1); - * ``` - * @example - * Remove the first n fields: - * ```ts - * const n = 4; - * embed.spliceFields(0, n); - * ``` - * @example - * Remove the last field: - * ```ts - * embed.spliceFields(-1, 1); - * ``` - * @param index - The index to start at - * @param deleteCount - The number of fields to remove - * @param fields - The replacing field objects - */ - spliceFields(index: number, deleteCount: number, ...fields: APIEmbedField[]): this; - /** - * Sets the fields for this embed. - * - * @remarks - * This method is an alias for {@link EmbedBuilder.spliceFields}. More specifically, - * it splices the entire array of fields, replacing them with the provided fields. - * - * You can set a maximum of 25 fields. - * @param fields - The fields to set - */ - setFields(...fields: RestOrArray): this; - /** - * Sets the author of this embed. - * - * @param options - The options to use - */ - setAuthor(options: EmbedAuthorOptions | null): this; - /** - * Sets the color of this embed. - * - * @param color - The color to use - */ - setColor(color: RGBTuple | number | null): this; - /** - * Sets the description of this embed. - * - * @param description - The description to use - */ - setDescription(description: string | null): this; - /** - * Sets the footer of this embed. - * - * @param options - The footer to use - */ - setFooter(options: EmbedFooterOptions | null): this; - /** - * Sets the image of this embed. - * - * @param url - The image URL to use - */ - setImage(url: string | null): this; - /** - * Sets the thumbnail of this embed. - * - * @param url - The thumbnail URL to use - */ - setThumbnail(url: string | null): this; - /** - * Sets the timestamp of this embed. - * - * @param timestamp - The timestamp or date to use - */ - setTimestamp(timestamp?: Date | number | null): this; - /** - * Sets the title for this embed. - * - * @param title - The title to use - */ - setTitle(title: string | null): this; - /** - * Sets the URL of this embed. - * - * @param url - The URL to use - */ - setURL(url: string | null): this; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON(): APIEmbed; -} - -/** - * A builder that creates API-compatible JSON data for string select menu options. - */ -declare class StringSelectMenuOptionBuilder implements JSONEncodable { - data: Partial; - /** - * Creates a new string select menu option from API data. - * - * @param data - The API data to create this string select menu option with - * @example - * Creating a string select menu option from an API data object: - * ```ts - * const selectMenuOption = new SelectMenuOptionBuilder({ - * label: 'catchy label', - * value: '1', - * }); - * ``` - * @example - * Creating a string select menu option using setters and API data: - * ```ts - * const selectMenuOption = new SelectMenuOptionBuilder({ - * default: true, - * value: '1', - * }) - * .setLabel('woah'); - * ``` - */ - constructor(data?: Partial); - /** - * Sets the label for this option. - * - * @param label - The label to use - */ - setLabel(label: string): this; - /** - * Sets the value for this option. - * - * @param value - The value to use - */ - setValue(value: string): this; - /** - * Sets the description for this option. - * - * @param description - The description to use - */ - setDescription(description: string): this; - /** - * Sets whether this option is selected by default. - * - * @param isDefault - Whether this option is selected by default - */ - setDefault(isDefault?: boolean): this; - /** - * Sets the emoji to display for this option. - * - * @param emoji - The emoji to use - */ - setEmoji(emoji: APIMessageComponentEmoji): this; - /** - * {@inheritDoc BaseSelectMenuBuilder.toJSON} - */ - toJSON(): APISelectMenuOption; -} - -declare const customIdValidator: _sapphire_shapeshift.StringValidator; -declare const emojiValidator: _sapphire_shapeshift.ObjectValidator<{ - name?: string | undefined; - id?: string | undefined; - animated?: boolean | undefined; -}, _sapphire_shapeshift.UndefinedToOptional<{ - name?: string | undefined; - id?: string | undefined; - animated?: boolean | undefined; -}>>; -declare const disabledValidator: _sapphire_shapeshift.BooleanValidator; -declare const buttonLabelValidator: _sapphire_shapeshift.StringValidator; -declare const buttonStyleValidator: _sapphire_shapeshift.NativeEnumValidator; -declare const placeholderValidator$1: _sapphire_shapeshift.StringValidator; -declare const minMaxValidator: _sapphire_shapeshift.NumberValidator; -declare const labelValueDescriptionValidator: _sapphire_shapeshift.StringValidator; -declare const jsonOptionValidator: _sapphire_shapeshift.ObjectValidator<{ - label: string; - value: string; - description: string | undefined; - emoji: _sapphire_shapeshift.UndefinedToOptional<{ - name?: string | undefined; - id?: string | undefined; - animated?: boolean | undefined; - }> | undefined; - default: boolean | undefined; -}, _sapphire_shapeshift.UndefinedToOptional<{ - label: string; - value: string; - description: string | undefined; - emoji: _sapphire_shapeshift.UndefinedToOptional<{ - name?: string | undefined; - id?: string | undefined; - animated?: boolean | undefined; - }> | undefined; - default: boolean | undefined; -}>>; -declare const optionValidator: _sapphire_shapeshift.InstanceValidator; -declare const optionsValidator: _sapphire_shapeshift.ArrayValidator; -declare const optionsLengthValidator: _sapphire_shapeshift.NumberValidator; -declare function validateRequiredSelectMenuParameters(options: StringSelectMenuOptionBuilder[], customId?: string): void; -declare const defaultValidator: _sapphire_shapeshift.BooleanValidator; -declare function validateRequiredSelectMenuOptionParameters(label?: string, value?: string): void; -declare const channelTypesValidator: _sapphire_shapeshift.ArrayValidator; -declare const urlValidator: _sapphire_shapeshift.StringValidator; -declare function validateRequiredButtonParameters(style?: ButtonStyle, label?: string, emoji?: APIMessageComponentEmoji, customId?: string, url?: string): void; - -declare const Assertions$4_buttonLabelValidator: typeof buttonLabelValidator; -declare const Assertions$4_buttonStyleValidator: typeof buttonStyleValidator; -declare const Assertions$4_channelTypesValidator: typeof channelTypesValidator; -declare const Assertions$4_customIdValidator: typeof customIdValidator; -declare const Assertions$4_defaultValidator: typeof defaultValidator; -declare const Assertions$4_disabledValidator: typeof disabledValidator; -declare const Assertions$4_emojiValidator: typeof emojiValidator; -declare const Assertions$4_jsonOptionValidator: typeof jsonOptionValidator; -declare const Assertions$4_labelValueDescriptionValidator: typeof labelValueDescriptionValidator; -declare const Assertions$4_minMaxValidator: typeof minMaxValidator; -declare const Assertions$4_optionValidator: typeof optionValidator; -declare const Assertions$4_optionsLengthValidator: typeof optionsLengthValidator; -declare const Assertions$4_optionsValidator: typeof optionsValidator; -declare const Assertions$4_urlValidator: typeof urlValidator; -declare const Assertions$4_validateRequiredButtonParameters: typeof validateRequiredButtonParameters; -declare const Assertions$4_validateRequiredSelectMenuOptionParameters: typeof validateRequiredSelectMenuOptionParameters; -declare const Assertions$4_validateRequiredSelectMenuParameters: typeof validateRequiredSelectMenuParameters; -declare namespace Assertions$4 { - export { Assertions$4_buttonLabelValidator as buttonLabelValidator, Assertions$4_buttonStyleValidator as buttonStyleValidator, Assertions$4_channelTypesValidator as channelTypesValidator, Assertions$4_customIdValidator as customIdValidator, Assertions$4_defaultValidator as defaultValidator, Assertions$4_disabledValidator as disabledValidator, Assertions$4_emojiValidator as emojiValidator, Assertions$4_jsonOptionValidator as jsonOptionValidator, Assertions$4_labelValueDescriptionValidator as labelValueDescriptionValidator, Assertions$4_minMaxValidator as minMaxValidator, Assertions$4_optionValidator as optionValidator, Assertions$4_optionsLengthValidator as optionsLengthValidator, Assertions$4_optionsValidator as optionsValidator, placeholderValidator$1 as placeholderValidator, Assertions$4_urlValidator as urlValidator, Assertions$4_validateRequiredButtonParameters as validateRequiredButtonParameters, Assertions$4_validateRequiredSelectMenuOptionParameters as validateRequiredSelectMenuOptionParameters, Assertions$4_validateRequiredSelectMenuParameters as validateRequiredSelectMenuParameters }; -} - -/** - * Any action row component data represented as an object. - */ -type AnyAPIActionRowComponent = APIActionRowComponent | APIActionRowComponentTypes; -/** - * The base component builder that contains common symbols for all sorts of components. - * - * @typeParam DataType - The type of internal API data that is stored within the component - */ -declare abstract class ComponentBuilder> = APIBaseComponent> implements JSONEncodable { - /** - * The API data associated with this component. - */ - readonly data: Partial; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - abstract toJSON(): AnyAPIActionRowComponent; - /** - * Constructs a new kind of component. - * - * @param data - The data to construct a component out of - */ - constructor(data: Partial); -} - -/** - * A builder that creates API-compatible JSON data for buttons. - */ -declare class ButtonBuilder extends ComponentBuilder { - /** - * Creates a new button from API data. - * - * @param data - The API data to create this button with - * @example - * Creating a button from an API data object: - * ```ts - * const button = new ButtonBuilder({ - * custom_id: 'a cool button', - * style: ButtonStyle.Primary, - * label: 'Click Me', - * emoji: { - * name: 'smile', - * id: '123456789012345678', - * }, - * }); - * ``` - * @example - * Creating a button using setters and API data: - * ```ts - * const button = new ButtonBuilder({ - * style: ButtonStyle.Secondary, - * label: 'Click Me', - * }) - * .setEmoji({ name: '🙂' }) - * .setCustomId('another cool button'); - * ``` - */ - constructor(data?: Partial); - /** - * Sets the style of this button. - * - * @param style - The style to use - */ - setStyle(style: ButtonStyle): this; - /** - * Sets the URL for this button. - * - * @remarks - * This method is only available to buttons using the `Link` button style. - * Only three types of URL schemes are currently supported: `https://`, `http://`, and `discord://`. - * @param url - The URL to use - */ - setURL(url: string): this; - /** - * Sets the custom id for this button. - * - * @remarks - * This method is only applicable to buttons that are not using the `Link` button style. - * @param customId - The custom id to use - */ - setCustomId(customId: string): this; - /** - * Sets the emoji to display on this button. - * - * @param emoji - The emoji to use - */ - setEmoji(emoji: APIMessageComponentEmoji): this; - /** - * Sets whether this button is disabled. - * - * @param disabled - Whether to disable this button - */ - setDisabled(disabled?: boolean): this; - /** - * Sets the label for this button. - * - * @param label - The label to use - */ - setLabel(label: string): this; - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON(): APIButtonComponent; -} - -/** - * The base select menu builder that contains common symbols for select menu builders. - * - * @typeParam SelectMenuType - The type of select menu this would be instantiated for. - */ -declare abstract class BaseSelectMenuBuilder extends ComponentBuilder { - /** - * Sets the placeholder for this select menu. - * - * @param placeholder - The placeholder to use - */ - setPlaceholder(placeholder: string): this; - /** - * Sets the minimum values that must be selected in the select menu. - * - * @param minValues - The minimum values that must be selected - */ - setMinValues(minValues: number): this; - /** - * Sets the maximum values that must be selected in the select menu. - * - * @param maxValues - The maximum values that must be selected - */ - setMaxValues(maxValues: number): this; - /** - * Sets the custom id for this select menu. - * - * @param customId - The custom id to use - */ - setCustomId(customId: string): this; - /** - * Sets whether this select menu is disabled. - * - * @param disabled - Whether this select menu is disabled - */ - setDisabled(disabled?: boolean): this; - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON(): SelectMenuType; -} - -/** - * A builder that creates API-compatible JSON data for channel select menus. - */ -declare class ChannelSelectMenuBuilder extends BaseSelectMenuBuilder { - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new ChannelSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new ChannelSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .addChannelTypes(ChannelType.GuildText, ChannelType.GuildAnnouncement) - * .setMinValues(2); - * ``` - */ - constructor(data?: Partial); - /** - * Adds channel types to this select menu. - * - * @param types - The channel types to use - */ - addChannelTypes(...types: RestOrArray): this; - /** - * Sets channel types for this select menu. - * - * @param types - The channel types to use - */ - setChannelTypes(...types: RestOrArray): this; - /** - * Adds default channels to this auto populated select menu. - * - * @param channels - The channels to add - */ - addDefaultChannels(...channels: RestOrArray): this; - /** - * Sets default channels to this auto populated select menu. - * - * @param channels - The channels to set - */ - setDefaultChannels(...channels: RestOrArray): this; - /** - * {@inheritDoc BaseSelectMenuBuilder.toJSON} - */ - toJSON(): APIChannelSelectComponent; -} - -/** - * A builder that creates API-compatible JSON data for mentionable select menus. - */ -declare class MentionableSelectMenuBuilder extends BaseSelectMenuBuilder { - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new MentionableSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new MentionableSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1); - * ``` - */ - constructor(data?: Partial); - /** - * Adds default roles to this auto populated select menu. - * - * @param roles - The roles to add - */ - addDefaultRoles(...roles: RestOrArray): this; - /** - * Adds default users to this auto populated select menu. - * - * @param users - The users to add - */ - addDefaultUsers(...users: RestOrArray): this; - /** - * Adds default values to this auto populated select menu. - * - * @param values - The values to add - */ - addDefaultValues(...values: RestOrArray | APISelectMenuDefaultValue>): this; - /** - * Sets default values to this auto populated select menu. - * - * @param values - The values to set - */ - setDefaultValues(...values: RestOrArray | APISelectMenuDefaultValue>): this; -} - -/** - * A builder that creates API-compatible JSON data for role select menus. - */ -declare class RoleSelectMenuBuilder extends BaseSelectMenuBuilder { - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new RoleSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new RoleSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1); - * ``` - */ - constructor(data?: Partial); - /** - * Adds default roles to this auto populated select menu. - * - * @param roles - The roles to add - */ - addDefaultRoles(...roles: RestOrArray): this; - /** - * Sets default roles to this auto populated select menu. - * - * @param roles - The roles to set - */ - setDefaultRoles(...roles: RestOrArray): this; -} - -/** - * A builder that creates API-compatible JSON data for string select menus. - */ -declare class StringSelectMenuBuilder extends BaseSelectMenuBuilder { - /** - * The options within this select menu. - */ - readonly options: StringSelectMenuOptionBuilder[]; - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new StringSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * options: [ - * { label: 'option 1', value: '1' }, - * { label: 'option 2', value: '2' }, - * { label: 'option 3', value: '3' }, - * ], - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new StringSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1) - * .addOptions({ - * label: 'Catchy', - * value: 'catch', - * }); - * ``` - */ - constructor(data?: Partial); - /** - * Adds options to this select menu. - * - * @param options - The options to add - */ - addOptions(...options: RestOrArray): this; - /** - * Sets the options for this select menu. - * - * @param options - The options to set - */ - setOptions(...options: RestOrArray): this; - /** - * Removes, replaces, or inserts options for this select menu. - * - * @remarks - * This method behaves similarly - * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice | Array.prototype.splice()}. - * It's useful for modifying and adjusting the order of existing options. - * @example - * Remove the first option: - * ```ts - * selectMenu.spliceOptions(0, 1); - * ``` - * @example - * Remove the first n option: - * ```ts - * const n = 4; - * selectMenu.spliceOptions(0, n); - * ``` - * @example - * Remove the last option: - * ```ts - * selectMenu.spliceOptions(-1, 1); - * ``` - * @param index - The index to start at - * @param deleteCount - The number of options to remove - * @param options - The replacing option objects or builders - */ - spliceOptions(index: number, deleteCount: number, ...options: RestOrArray): this; - /** - * {@inheritDoc BaseSelectMenuBuilder.toJSON} - */ - toJSON(): APIStringSelectComponent; -} - -/** - * A builder that creates API-compatible JSON data for user select menus. - */ -declare class UserSelectMenuBuilder extends BaseSelectMenuBuilder { - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new UserSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new UserSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1); - * ``` - */ - constructor(data?: Partial); - /** - * Adds default users to this auto populated select menu. - * - * @param users - The users to add - */ - addDefaultUsers(...users: RestOrArray): this; - /** - * Sets default users to this auto populated select menu. - * - * @param users - The users to set - */ - setDefaultUsers(...users: RestOrArray): this; -} - -/** - * A builder that creates API-compatible JSON data for text inputs. - */ -declare class TextInputBuilder extends ComponentBuilder implements Equatable> { - /** - * Creates a new text input from API data. - * - * @param data - The API data to create this text input with - * @example - * Creating a select menu option from an API data object: - * ```ts - * const textInput = new TextInputBuilder({ - * custom_id: 'a cool select menu', - * label: 'Type something', - * style: TextInputStyle.Short, - * }); - * ``` - * @example - * Creating a select menu option using setters and API data: - * ```ts - * const textInput = new TextInputBuilder({ - * label: 'Type something else', - * }) - * .setCustomId('woah') - * .setStyle(TextInputStyle.Paragraph); - * ``` - */ - constructor(data?: APITextInputComponent & { - type?: ComponentType.TextInput; - }); - /** - * Sets the custom id for this text input. - * - * @param customId - The custom id to use - */ - setCustomId(customId: string): this; - /** - * Sets the label for this text input. - * - * @param label - The label to use - */ - setLabel(label: string): this; - /** - * Sets the style for this text input. - * - * @param style - The style to use - */ - setStyle(style: TextInputStyle): this; - /** - * Sets the minimum length of text for this text input. - * - * @param minLength - The minimum length of text for this text input - */ - setMinLength(minLength: number): this; - /** - * Sets the maximum length of text for this text input. - * - * @param maxLength - The maximum length of text for this text input - */ - setMaxLength(maxLength: number): this; - /** - * Sets the placeholder for this text input. - * - * @param placeholder - The placeholder to use - */ - setPlaceholder(placeholder: string): this; - /** - * Sets the value for this text input. - * - * @param value - The value to use - */ - setValue(value: string): this; - /** - * Sets whether this text input is required. - * - * @param required - Whether this text input is required - */ - setRequired(required?: boolean): this; - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON(): APITextInputComponent; - /** - * Whether this is equal to another structure. - */ - equals(other: APITextInputComponent | JSONEncodable): boolean; -} - -/** - * The builders that may be used for messages. - */ -type MessageComponentBuilder = ActionRowBuilder | MessageActionRowComponentBuilder; -/** - * The builders that may be used for modals. - */ -type ModalComponentBuilder = ActionRowBuilder | ModalActionRowComponentBuilder; -/** - * The builders that may be used within an action row for messages. - */ -type MessageActionRowComponentBuilder = ButtonBuilder | ChannelSelectMenuBuilder | MentionableSelectMenuBuilder | RoleSelectMenuBuilder | StringSelectMenuBuilder | UserSelectMenuBuilder; -/** - * The builders that may be used within an action row for modals. - */ -type ModalActionRowComponentBuilder = TextInputBuilder; -/** - * Any builder. - */ -type AnyComponentBuilder = MessageActionRowComponentBuilder | ModalActionRowComponentBuilder; -/** - * A builder that creates API-compatible JSON data for action rows. - * - * @typeParam ComponentType - The types of components this action row holds - */ -declare class ActionRowBuilder extends ComponentBuilder> { - /** - * The components within this action row. - */ - readonly components: ComponentType[]; - /** - * Creates a new action row from API data. - * - * @param data - The API data to create this action row with - * @example - * Creating an action row from an API data object: - * ```ts - * const actionRow = new ActionRowBuilder({ - * components: [ - * { - * custom_id: "custom id", - * label: "Type something", - * style: TextInputStyle.Short, - * type: ComponentType.TextInput, - * }, - * ], - * }); - * ``` - * @example - * Creating an action row using setters and API data: - * ```ts - * const actionRow = new ActionRowBuilder({ - * components: [ - * { - * custom_id: "custom id", - * label: "Click me", - * style: ButtonStyle.Primary, - * type: ComponentType.Button, - * }, - * ], - * }) - * .addComponents(button2, button3); - * ``` - */ - constructor({ components, ...data }?: Partial>); - /** - * Adds components to this action row. - * - * @param components - The components to add - */ - addComponents(...components: RestOrArray): this; - /** - * Sets components for this action row. - * - * @param components - The components to set - */ - setComponents(...components: RestOrArray): this; - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON(): APIActionRowComponent>; -} - -/** - * Components here are mapped to their respective builder. - */ -interface MappedComponentTypes { - /** - * The action row component type is associated with an {@link ActionRowBuilder}. - */ - [ComponentType.ActionRow]: ActionRowBuilder; - /** - * The button component type is associated with an {@link ButtonBuilder}. - */ - [ComponentType.Button]: ButtonBuilder; - /** - * The string select component type is associated with an {@link StringSelectMenuBuilder}. - */ - [ComponentType.StringSelect]: StringSelectMenuBuilder; - /** - * The text inpiut component type is associated with an {@link TextInputBuilder}. - */ - [ComponentType.TextInput]: TextInputBuilder; - /** - * The user select component type is associated with an {@link UserSelectMenuBuilder}. - */ - [ComponentType.UserSelect]: UserSelectMenuBuilder; - /** - * The role select component type is associated with an {@link RoleSelectMenuBuilder}. - */ - [ComponentType.RoleSelect]: RoleSelectMenuBuilder; - /** - * The mentionable select component type is associated with an {@link MentionableSelectMenuBuilder}. - */ - [ComponentType.MentionableSelect]: MentionableSelectMenuBuilder; - /** - * The channel select component type is associated with an {@link ChannelSelectMenuBuilder}. - */ - [ComponentType.ChannelSelect]: ChannelSelectMenuBuilder; -} -/** - * Factory for creating components from API data. - * - * @typeParam ComponentType - The type of component to use - * @param data - The API data to transform to a component class - */ -declare function createComponentBuilder(data: (APIModalComponent | APIMessageComponent) & { - type: ComponentType; -}): MappedComponentTypes[ComponentType]; -/** - * Factory for creating components from API data. - * - * @typeParam ComponentBuilder - The type of component to use - * @param data - The API data to transform to a component class - */ -declare function createComponentBuilder(data: ComponentBuilder): ComponentBuilder; - -declare const textInputStyleValidator: _sapphire_shapeshift.NativeEnumValidator; -declare const minLengthValidator: _sapphire_shapeshift.NumberValidator; -declare const maxLengthValidator: _sapphire_shapeshift.NumberValidator; -declare const requiredValidator: _sapphire_shapeshift.BooleanValidator; -declare const valueValidator: _sapphire_shapeshift.StringValidator; -declare const placeholderValidator: _sapphire_shapeshift.StringValidator; -declare const labelValidator: _sapphire_shapeshift.StringValidator; -declare function validateRequiredParameters$3(customId?: string, style?: TextInputStyle, label?: string): void; - -declare const Assertions$3_labelValidator: typeof labelValidator; -declare const Assertions$3_maxLengthValidator: typeof maxLengthValidator; -declare const Assertions$3_minLengthValidator: typeof minLengthValidator; -declare const Assertions$3_placeholderValidator: typeof placeholderValidator; -declare const Assertions$3_requiredValidator: typeof requiredValidator; -declare const Assertions$3_textInputStyleValidator: typeof textInputStyleValidator; -declare const Assertions$3_valueValidator: typeof valueValidator; -declare namespace Assertions$3 { - export { Assertions$3_labelValidator as labelValidator, Assertions$3_maxLengthValidator as maxLengthValidator, Assertions$3_minLengthValidator as minLengthValidator, Assertions$3_placeholderValidator as placeholderValidator, Assertions$3_requiredValidator as requiredValidator, Assertions$3_textInputStyleValidator as textInputStyleValidator, validateRequiredParameters$3 as validateRequiredParameters, Assertions$3_valueValidator as valueValidator }; -} - -/** - * A builder that creates API-compatible JSON data for modals. - */ -declare class ModalBuilder implements JSONEncodable { - /** - * The API data associated with this modal. - */ - readonly data: Partial; - /** - * The components within this modal. - */ - readonly components: ActionRowBuilder[]; - /** - * Creates a new modal from API data. - * - * @param data - The API data to create this modal with - */ - constructor({ components, ...data }?: Partial); - /** - * Sets the title of this modal. - * - * @param title - The title to use - */ - setTitle(title: string): this; - /** - * Sets the custom id of this modal. - * - * @param customId - The custom id to use - */ - setCustomId(customId: string): this; - /** - * Adds components to this modal. - * - * @param components - The components to add - */ - addComponents(...components: RestOrArray | APIActionRowComponent>): this; - /** - * Sets components for this modal. - * - * @param components - The components to set - */ - setComponents(...components: RestOrArray>): this; - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON(): APIModalInteractionResponseCallbackData; -} - -declare const titleValidator: _sapphire_shapeshift.StringValidator; -declare const componentsValidator: _sapphire_shapeshift.ArrayValidator<[ActionRowBuilder, ...ActionRowBuilder[]], ActionRowBuilder>; -declare function validateRequiredParameters$2(customId?: string, title?: string, components?: ActionRowBuilder[]): void; - -declare const Assertions$2_componentsValidator: typeof componentsValidator; -declare const Assertions$2_titleValidator: typeof titleValidator; -declare namespace Assertions$2 { - export { Assertions$2_componentsValidator as componentsValidator, Assertions$2_titleValidator as titleValidator, validateRequiredParameters$2 as validateRequiredParameters }; -} - -/** - * This mixin holds name and description symbols for slash commands. - */ -declare class SharedNameAndDescription { - /** - * The name of this command. - */ - readonly name: string; - /** - * The name localizations of this command. - */ - readonly name_localizations?: LocalizationMap; - /** - * The description of this command. - */ - readonly description: string; - /** - * The description localizations of this command. - */ - readonly description_localizations?: LocalizationMap; - /** - * Sets the name of this command. - * - * @param name - The name to use - */ - setName(name: string): this; - /** - * Sets the description of this command. - * - * @param description - The description to use - */ - setDescription(description: string): this; - /** - * Sets a name localization for this command. - * - * @param locale - The locale to set - * @param localizedName - The localized name for the given `locale` - */ - setNameLocalization(locale: LocaleString, localizedName: string | null): this; - /** - * Sets the name localizations for this command. - * - * @param localizedNames - The object of localized names to set - */ - setNameLocalizations(localizedNames: LocalizationMap | null): this; - /** - * Sets a description localization for this command. - * - * @param locale - The locale to set - * @param localizedDescription - The localized description for the given locale - */ - setDescriptionLocalization(locale: LocaleString, localizedDescription: string | null): this; - /** - * Sets the description localizations for this command. - * - * @param localizedDescriptions - The object of localized descriptions to set - */ - setDescriptionLocalizations(localizedDescriptions: LocalizationMap | null): this; -} - -/** - * This mixin holds symbols that can be shared in slashcommands independent of options or subcommands. - */ -declare class SharedSlashCommand { - readonly name: string; - readonly name_localizations?: LocalizationMap; - readonly description: string; - readonly description_localizations?: LocalizationMap; - readonly options: ToAPIApplicationCommandOptions[]; - /** - * Sets whether the command is enabled by default when the application is added to a guild. - * - * @remarks - * If set to `false`, you will have to later `PUT` the permissions for this command. - * @param value - Whether or not to enable this command by default - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. - */ - setDefaultPermission(value: boolean): this; - /** - * Sets the default permissions a member should have in order to run the command. - * - * @remarks - * You can set this to `'0'` to disable the command by default. - * @param permissions - The permissions bit field to set - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - */ - setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined): this; - /** - * Sets if the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This method is only for global commands. - * @param enabled - Whether the command should be enabled in direct messages - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - */ - setDMPermission(enabled: boolean | null | undefined): this; - /** - * Sets whether this command is NSFW. - * - * @param nsfw - Whether this command is NSFW - */ - setNSFW(nsfw?: boolean): this; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON(): RESTPostAPIChatInputApplicationCommandsJSONBody; -} - -/** - * The base application command option builder that contains common symbols for application command builders. - */ -declare abstract class ApplicationCommandOptionBase extends SharedNameAndDescription { - /** - * The type of this option. - */ - abstract readonly type: ApplicationCommandOptionType; - /** - * Whether this option is required. - * - * @defaultValue `false` - */ - readonly required: boolean; - /** - * Sets whether this option is required. - * - * @param required - Whether this option should be required - */ - setRequired(required: boolean): this; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - abstract toJSON(): APIApplicationCommandBasicOption; - /** - * This method runs required validators on this builder. - */ - protected runRequiredValidations(): void; -} - -/** - * A slash command attachment option. - */ -declare class SlashCommandAttachmentOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Attachment; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandAttachmentOption; -} - -/** - * A slash command boolean option. - */ -declare class SlashCommandBooleanOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Boolean; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandBooleanOption; -} - -/** - * The allowed channel types used for a channel option in a slash command builder. - * - * @privateRemarks This can't be dynamic because const enums are erased at runtime. - * @internal - */ -declare const allowedChannelTypes: readonly [ChannelType.GuildText, ChannelType.GuildVoice, ChannelType.GuildCategory, ChannelType.GuildAnnouncement, ChannelType.AnnouncementThread, ChannelType.PublicThread, ChannelType.PrivateThread, ChannelType.GuildStageVoice, ChannelType.GuildForum, ChannelType.GuildMedia]; -/** - * The type of allowed channel types used for a channel option. - */ -type ApplicationCommandOptionAllowedChannelTypes = (typeof allowedChannelTypes)[number]; -/** - * This mixin holds channel type symbols used for options. - */ -declare class ApplicationCommandOptionChannelTypesMixin { - /** - * The channel types of this option. - */ - readonly channel_types?: ApplicationCommandOptionAllowedChannelTypes[]; - /** - * Adds channel types to this option. - * - * @param channelTypes - The channel types - */ - addChannelTypes(...channelTypes: RestOrArray): this; -} - -/** - * A slash command channel option. - */ -declare class SlashCommandChannelOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Channel; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandChannelOption; -} -interface SlashCommandChannelOption extends ApplicationCommandOptionChannelTypesMixin { -} - -/** - * This mixin holds minimum and maximum symbols used for options. - */ -declare abstract class ApplicationCommandNumericOptionMinMaxValueMixin { - /** - * The maximum value of this option. - */ - readonly max_value?: number; - /** - * The minimum value of this option. - */ - readonly min_value?: number; - /** - * Sets the maximum number value of this option. - * - * @param max - The maximum value this option can be - */ - abstract setMaxValue(max: number): this; - /** - * Sets the minimum number value of this option. - * - * @param min - The minimum value this option can be - */ - abstract setMinValue(min: number): this; -} - -/** - * This mixin holds choices and autocomplete symbols used for options. - */ -declare class ApplicationCommandOptionWithAutocompleteMixin { - /** - * Whether this option utilizes autocomplete. - */ - readonly autocomplete?: boolean; - /** - * The type of this option. - * - * @privateRemarks Since this is present and this is a mixin, this is needed. - */ - readonly type: ApplicationCommandOptionType; - /** - * Whether this option uses autocomplete. - * - * @param autocomplete - Whether this option should use autocomplete - */ - setAutocomplete(autocomplete: boolean): this; -} - -/** - * This mixin holds choices and autocomplete symbols used for options. - */ -declare class ApplicationCommandOptionWithChoicesMixin { - /** - * The choices of this option. - */ - readonly choices?: APIApplicationCommandOptionChoice[]; - /** - * The type of this option. - * - * @privateRemarks Since this is present and this is a mixin, this is needed. - */ - readonly type: ApplicationCommandOptionType; - /** - * Adds multiple choices to this option. - * - * @param choices - The choices to add - */ - addChoices(...choices: RestOrArray>): this; - /** - * Sets multiple choices for this option. - * - * @param choices - The choices to set - */ - setChoices>(...choices: RestOrArray): this; -} - -/** - * A slash command integer option. - */ -declare class SlashCommandIntegerOption extends ApplicationCommandOptionBase implements ApplicationCommandNumericOptionMinMaxValueMixin { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Integer; - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue} - */ - setMaxValue(max: number): this; - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue} - */ - setMinValue(min: number): this; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandIntegerOption; -} -interface SlashCommandIntegerOption extends ApplicationCommandNumericOptionMinMaxValueMixin, ApplicationCommandOptionWithChoicesMixin, ApplicationCommandOptionWithAutocompleteMixin { -} - -/** - * A slash command mentionable option. - */ -declare class SlashCommandMentionableOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Mentionable; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandMentionableOption; -} - -/** - * A slash command number option. - */ -declare class SlashCommandNumberOption extends ApplicationCommandOptionBase implements ApplicationCommandNumericOptionMinMaxValueMixin { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Number; - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue} - */ - setMaxValue(max: number): this; - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue} - */ - setMinValue(min: number): this; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandNumberOption; -} -interface SlashCommandNumberOption extends ApplicationCommandNumericOptionMinMaxValueMixin, ApplicationCommandOptionWithChoicesMixin, ApplicationCommandOptionWithAutocompleteMixin { -} - -/** - * A slash command role option. - */ -declare class SlashCommandRoleOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Role; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandRoleOption; -} - -/** - * A slash command string option. - */ -declare class SlashCommandStringOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.String; - /** - * The maximum length of this option. - */ - readonly max_length?: number; - /** - * The minimum length of this option. - */ - readonly min_length?: number; - /** - * Sets the maximum length of this string option. - * - * @param max - The maximum length this option can be - */ - setMaxLength(max: number): this; - /** - * Sets the minimum length of this string option. - * - * @param min - The minimum length this option can be - */ - setMinLength(min: number): this; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandStringOption; -} -interface SlashCommandStringOption extends ApplicationCommandOptionWithChoicesMixin, ApplicationCommandOptionWithAutocompleteMixin { -} - -/** - * A slash command user option. - */ -declare class SlashCommandUserOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.User; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandUserOption; -} - -/** - * This mixin holds symbols that can be shared in slash command options. - * - * @typeParam TypeAfterAddingOptions - The type this class should return after adding an option. - */ -declare class SharedSlashCommandOptions> { - readonly options: ToAPIApplicationCommandOptions[]; - /** - * Adds a boolean option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addBooleanOption(input: SlashCommandBooleanOption | ((builder: SlashCommandBooleanOption) => SlashCommandBooleanOption)): TypeAfterAddingOptions; - /** - * Adds a user option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addUserOption(input: SlashCommandUserOption | ((builder: SlashCommandUserOption) => SlashCommandUserOption)): TypeAfterAddingOptions; - /** - * Adds a channel option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addChannelOption(input: SlashCommandChannelOption | ((builder: SlashCommandChannelOption) => SlashCommandChannelOption)): TypeAfterAddingOptions; - /** - * Adds a role option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addRoleOption(input: SlashCommandRoleOption | ((builder: SlashCommandRoleOption) => SlashCommandRoleOption)): TypeAfterAddingOptions; - /** - * Adds an attachment option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addAttachmentOption(input: SlashCommandAttachmentOption | ((builder: SlashCommandAttachmentOption) => SlashCommandAttachmentOption)): TypeAfterAddingOptions; - /** - * Adds a mentionable option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addMentionableOption(input: SlashCommandMentionableOption | ((builder: SlashCommandMentionableOption) => SlashCommandMentionableOption)): TypeAfterAddingOptions; - /** - * Adds a string option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addStringOption(input: SlashCommandStringOption | ((builder: SlashCommandStringOption) => SlashCommandStringOption)): TypeAfterAddingOptions; - /** - * Adds an integer option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addIntegerOption(input: SlashCommandIntegerOption | ((builder: SlashCommandIntegerOption) => SlashCommandIntegerOption)): TypeAfterAddingOptions; - /** - * Adds a number option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addNumberOption(input: SlashCommandNumberOption | ((builder: SlashCommandNumberOption) => SlashCommandNumberOption)): TypeAfterAddingOptions; - /** - * Where the actual adding magic happens. ✨ - * - * @param input - The input. What else? - * @param Instance - The instance of whatever is being added - * @internal - */ - private _sharedAddOptionMethod; -} - -/** - * Represents a folder for subcommands. - * - * @see {@link https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups} - */ -declare class SlashCommandSubcommandGroupBuilder implements ToAPIApplicationCommandOptions { - /** - * The name of this subcommand group. - */ - readonly name: string; - /** - * The description of this subcommand group. - */ - readonly description: string; - /** - * The subcommands within this subcommand group. - */ - readonly options: SlashCommandSubcommandBuilder[]; - /** - * Adds a new subcommand to this group. - * - * @param input - A function that returns a subcommand builder or an already built builder - */ - addSubcommand(input: SlashCommandSubcommandBuilder | ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder)): this; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON(): APIApplicationCommandSubcommandGroupOption; -} -interface SlashCommandSubcommandGroupBuilder extends SharedNameAndDescription { -} -/** - * A builder that creates API-compatible JSON data for slash command subcommands. - * - * @see {@link https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups} - */ -declare class SlashCommandSubcommandBuilder implements ToAPIApplicationCommandOptions { - /** - * The name of this subcommand. - */ - readonly name: string; - /** - * The description of this subcommand. - */ - readonly description: string; - /** - * The options within this subcommand. - */ - readonly options: ApplicationCommandOptionBase[]; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON(): APIApplicationCommandSubcommandOption; -} -interface SlashCommandSubcommandBuilder extends SharedNameAndDescription, SharedSlashCommandOptions { -} - -/** - * This mixin holds symbols that can be shared in slash subcommands. - * - * @typeParam TypeAfterAddingSubcommands - The type this class should return after adding a subcommand or subcommand group. - */ -declare class SharedSlashCommandSubcommands> { - readonly options: ToAPIApplicationCommandOptions[]; - /** - * Adds a new subcommand group to this command. - * - * @param input - A function that returns a subcommand group builder or an already built builder - */ - addSubcommandGroup(input: SlashCommandSubcommandGroupBuilder | ((subcommandGroup: SlashCommandSubcommandGroupBuilder) => SlashCommandSubcommandGroupBuilder)): TypeAfterAddingSubcommands; - /** - * Adds a new subcommand to this command. - * - * @param input - A function that returns a subcommand builder or an already built builder - */ - addSubcommand(input: SlashCommandSubcommandBuilder | ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder)): TypeAfterAddingSubcommands; -} - -/** - * A builder that creates API-compatible JSON data for slash commands. - */ -declare class SlashCommandBuilder { - /** - * The name of this command. - */ - readonly name: string; - /** - * The name localizations of this command. - */ - readonly name_localizations?: LocalizationMap; - /** - * The description of this command. - */ - readonly description: string; - /** - * The description localizations of this command. - */ - readonly description_localizations?: LocalizationMap; - /** - * The options of this command. - */ - readonly options: ToAPIApplicationCommandOptions[]; - /** - * Whether this command is enabled by default when the application is added to a guild. - * - * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. - */ - readonly default_permission: boolean | undefined; - /** - * The set of permissions represented as a bit set for the command. - */ - readonly default_member_permissions: Permissions | null | undefined; - /** - * Indicates whether the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This property is only for global commands. - */ - readonly dm_permission: boolean | undefined; - /** - * Whether this command is NSFW. - */ - readonly nsfw: boolean | undefined; -} -interface SlashCommandBuilder extends SharedNameAndDescription, SharedSlashCommandOptions, SharedSlashCommandSubcommands, SharedSlashCommand { -} -/** - * An interface specifically for slash command subcommands. - */ -interface SlashCommandSubcommandsOnlyBuilder extends SharedNameAndDescription, SharedSlashCommandSubcommands, SharedSlashCommand { -} -/** - * An interface specifically for slash command options. - */ -interface SlashCommandOptionsOnlyBuilder extends SharedNameAndDescription, SharedSlashCommandOptions, SharedSlashCommand { -} -/** - * An interface that ensures the `toJSON()` call will return something - * that can be serialized into API-compatible data. - */ -interface ToAPIApplicationCommandOptions { - toJSON(): APIApplicationCommandOption; -} - -declare function validateName$1(name: unknown): asserts name is string; -declare function validateDescription(description: unknown): asserts description is string; -declare function validateLocale(locale: unknown): Locale; -declare function validateMaxOptionsLength(options: unknown): asserts options is ToAPIApplicationCommandOptions[]; -declare function validateRequiredParameters$1(name: string, description: string, options: ToAPIApplicationCommandOptions[]): void; -declare function validateDefaultPermission$1(value: unknown): asserts value is boolean; -declare function validateRequired(required: unknown): asserts required is boolean; -declare function validateChoicesLength(amountAdding: number, choices?: APIApplicationCommandOptionChoice[]): void; -declare function assertReturnOfBuilder(input: unknown, ExpectedInstanceOf: new () => ReturnType): asserts input is ReturnType; -declare const localizationMapPredicate: _sapphire_shapeshift.UnionValidator<_sapphire_shapeshift.UndefinedToOptional>> | null | undefined>; -declare function validateLocalizationMap(value: unknown): asserts value is LocalizationMap; -declare function validateDMPermission$1(value: unknown): asserts value is boolean | null | undefined; -declare function validateDefaultMemberPermissions$1(permissions: unknown): string | null | undefined; -declare function validateNSFW(value: unknown): asserts value is boolean; - -declare const Assertions$1_assertReturnOfBuilder: typeof assertReturnOfBuilder; -declare const Assertions$1_localizationMapPredicate: typeof localizationMapPredicate; -declare const Assertions$1_validateChoicesLength: typeof validateChoicesLength; -declare const Assertions$1_validateDescription: typeof validateDescription; -declare const Assertions$1_validateLocale: typeof validateLocale; -declare const Assertions$1_validateLocalizationMap: typeof validateLocalizationMap; -declare const Assertions$1_validateMaxOptionsLength: typeof validateMaxOptionsLength; -declare const Assertions$1_validateNSFW: typeof validateNSFW; -declare const Assertions$1_validateRequired: typeof validateRequired; -declare namespace Assertions$1 { - export { Assertions$1_assertReturnOfBuilder as assertReturnOfBuilder, Assertions$1_localizationMapPredicate as localizationMapPredicate, Assertions$1_validateChoicesLength as validateChoicesLength, validateDMPermission$1 as validateDMPermission, validateDefaultMemberPermissions$1 as validateDefaultMemberPermissions, validateDefaultPermission$1 as validateDefaultPermission, Assertions$1_validateDescription as validateDescription, Assertions$1_validateLocale as validateLocale, Assertions$1_validateLocalizationMap as validateLocalizationMap, Assertions$1_validateMaxOptionsLength as validateMaxOptionsLength, Assertions$1_validateNSFW as validateNSFW, validateName$1 as validateName, Assertions$1_validateRequired as validateRequired, validateRequiredParameters$1 as validateRequiredParameters }; -} - -/** - * The type a context menu command can be. - */ -type ContextMenuCommandType = ApplicationCommandType.Message | ApplicationCommandType.User; -/** - * A builder that creates API-compatible JSON data for context menu commands. - */ -declare class ContextMenuCommandBuilder { - /** - * The name of this command. - */ - readonly name: string; - /** - * The name localizations of this command. - */ - readonly name_localizations?: LocalizationMap; - /** - * The type of this command. - */ - readonly type: ContextMenuCommandType; - /** - * Whether this command is enabled by default when the application is added to a guild. - * - * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead. - */ - readonly default_permission: boolean | undefined; - /** - * The set of permissions represented as a bit set for the command. - */ - readonly default_member_permissions: Permissions | null | undefined; - /** - * Indicates whether the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This property is only for global commands. - */ - readonly dm_permission: boolean | undefined; - /** - * Sets the name of this command. - * - * @param name - The name to use - */ - setName(name: string): this; - /** - * Sets the type of this command. - * - * @param type - The type to use - */ - setType(type: ContextMenuCommandType): this; - /** - * Sets whether the command is enabled by default when the application is added to a guild. - * - * @remarks - * If set to `false`, you will have to later `PUT` the permissions for this command. - * @param value - Whether to enable this command by default - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead. - */ - setDefaultPermission(value: boolean): this; - /** - * Sets the default permissions a member should have in order to run this command. - * - * @remarks - * You can set this to `'0'` to disable the command by default. - * @param permissions - The permissions bit field to set - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - */ - setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined): this; - /** - * Sets if the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This method is only for global commands. - * @param enabled - Whether the command should be enabled in direct messages - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - */ - setDMPermission(enabled: boolean | null | undefined): this; - /** - * Sets a name localization for this command. - * - * @param locale - The locale to set - * @param localizedName - The localized name for the given `locale` - */ - setNameLocalization(locale: LocaleString, localizedName: string | null): this; - /** - * Sets the name localizations for this command. - * - * @param localizedNames - The object of localized names to set - */ - setNameLocalizations(localizedNames: LocalizationMap | null): this; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON(): RESTPostAPIContextMenuApplicationCommandsJSONBody; -} - -declare function validateDefaultPermission(value: unknown): asserts value is boolean; -declare function validateName(name: unknown): asserts name is string; -declare function validateType(type: unknown): asserts type is ContextMenuCommandType; -declare function validateRequiredParameters(name: string, type: number): void; -declare function validateDMPermission(value: unknown): asserts value is boolean | null | undefined; -declare function validateDefaultMemberPermissions(permissions: unknown): string | null | undefined; - -declare const Assertions_validateDMPermission: typeof validateDMPermission; -declare const Assertions_validateDefaultMemberPermissions: typeof validateDefaultMemberPermissions; -declare const Assertions_validateDefaultPermission: typeof validateDefaultPermission; -declare const Assertions_validateName: typeof validateName; -declare const Assertions_validateRequiredParameters: typeof validateRequiredParameters; -declare const Assertions_validateType: typeof validateType; -declare namespace Assertions { - export { Assertions_validateDMPermission as validateDMPermission, Assertions_validateDefaultMemberPermissions as validateDefaultMemberPermissions, Assertions_validateDefaultPermission as validateDefaultPermission, Assertions_validateName as validateName, Assertions_validateRequiredParameters as validateRequiredParameters, Assertions_validateType as validateType }; -} - -/** - * Calculates the length of the embed. - * - * @param data - The embed data to check - */ -declare function embedLength(data: APIEmbed): number; - -/** - * Enables validators. - * - * @returns Whether validation is occurring. - */ -declare function enableValidators(): boolean; -/** - * Disables validators. - * - * @returns Whether validation is occurring. - */ -declare function disableValidators(): boolean; -/** - * Checks whether validation is occurring. - */ -declare function isValidationEnabled(): boolean; - -/** - * The {@link https://github.com/discordjs/discord.js/blob/main/packages/builders#readme | @discordjs/builders} version - * that you are currently using. - * - * @privateRemarks This needs to explicitly be `string` so it is not typed as a "const string" that gets injected by esbuild. - */ -declare const version: string; - -export { ActionRowBuilder, type AnyAPIActionRowComponent, type AnyComponentBuilder, ApplicationCommandNumericOptionMinMaxValueMixin, type ApplicationCommandOptionAllowedChannelTypes, ApplicationCommandOptionBase, ApplicationCommandOptionChannelTypesMixin, ApplicationCommandOptionWithAutocompleteMixin, ApplicationCommandOptionWithChoicesMixin, BaseSelectMenuBuilder, ButtonBuilder, ChannelSelectMenuBuilder, Assertions$4 as ComponentAssertions, ComponentBuilder, Assertions as ContextMenuCommandAssertions, ContextMenuCommandBuilder, type ContextMenuCommandType, Assertions$5 as EmbedAssertions, type EmbedAuthorData, type EmbedAuthorOptions, EmbedBuilder, type EmbedFooterData, type EmbedFooterOptions, type EmbedImageData, type IconData, type MappedComponentTypes, MentionableSelectMenuBuilder, type MessageActionRowComponentBuilder, type MessageComponentBuilder, type ModalActionRowComponentBuilder, Assertions$2 as ModalAssertions, ModalBuilder, type ModalComponentBuilder, type RGBTuple, type RestOrArray, RoleSelectMenuBuilder, StringSelectMenuBuilder as SelectMenuBuilder, StringSelectMenuOptionBuilder as SelectMenuOptionBuilder, SharedNameAndDescription, SharedSlashCommand, SharedSlashCommandOptions, SharedSlashCommandSubcommands, Assertions$1 as SlashCommandAssertions, SlashCommandAttachmentOption, SlashCommandBooleanOption, SlashCommandBuilder, SlashCommandChannelOption, SlashCommandIntegerOption, SlashCommandMentionableOption, SlashCommandNumberOption, type SlashCommandOptionsOnlyBuilder, SlashCommandRoleOption, SlashCommandStringOption, SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder, type SlashCommandSubcommandsOnlyBuilder, SlashCommandUserOption, StringSelectMenuBuilder, StringSelectMenuOptionBuilder, Assertions$3 as TextInputAssertions, TextInputBuilder, type ToAPIApplicationCommandOptions, UserSelectMenuBuilder, createComponentBuilder, disableValidators, embedLength, enableValidators, isValidationEnabled, normalizeArray, version }; diff --git a/node_modules/@discordjs/builders/dist/index.d.ts b/node_modules/@discordjs/builders/dist/index.d.ts deleted file mode 100644 index d129ca5..0000000 --- a/node_modules/@discordjs/builders/dist/index.d.ts +++ /dev/null @@ -1,1971 +0,0 @@ -import * as _sapphire_shapeshift from '@sapphire/shapeshift'; -import { APIEmbedField, APIEmbedAuthor, APIEmbedFooter, APIEmbedImage, APIEmbed, APISelectMenuOption, APIMessageComponentEmoji, ButtonStyle, ChannelType, APIActionRowComponent, APIActionRowComponentTypes, APIBaseComponent, ComponentType, APIButtonComponent, APISelectMenuComponent, APIChannelSelectComponent, Snowflake, APIMentionableSelectComponent, APISelectMenuDefaultValue, SelectMenuDefaultValueType, APIRoleSelectComponent, APIStringSelectComponent, APIUserSelectComponent, APITextInputComponent, TextInputStyle, APIMessageActionRowComponent, APIModalActionRowComponent, APIModalComponent, APIMessageComponent, APIModalInteractionResponseCallbackData, LocalizationMap, LocaleString, Permissions, RESTPostAPIChatInputApplicationCommandsJSONBody, ApplicationCommandOptionType, APIApplicationCommandBasicOption, APIApplicationCommandAttachmentOption, APIApplicationCommandBooleanOption, APIApplicationCommandChannelOption, APIApplicationCommandOptionChoice, APIApplicationCommandIntegerOption, APIApplicationCommandMentionableOption, APIApplicationCommandNumberOption, APIApplicationCommandRoleOption, APIApplicationCommandStringOption, APIApplicationCommandUserOption, APIApplicationCommandSubcommandGroupOption, APIApplicationCommandSubcommandOption, APIApplicationCommandOption, Locale, ApplicationCommandType, RESTPostAPIContextMenuApplicationCommandsJSONBody } from 'discord-api-types/v10'; -export * from '@discordjs/formatters'; -import { JSONEncodable, Equatable } from '@discordjs/util'; - -declare const fieldNamePredicate: _sapphire_shapeshift.StringValidator; -declare const fieldValuePredicate: _sapphire_shapeshift.StringValidator; -declare const fieldInlinePredicate: _sapphire_shapeshift.UnionValidator; -declare const embedFieldPredicate: _sapphire_shapeshift.ObjectValidator<{ - name: string; - value: string; - inline: boolean | undefined; -}, _sapphire_shapeshift.UndefinedToOptional<{ - name: string; - value: string; - inline: boolean | undefined; -}>>; -declare const embedFieldsArrayPredicate: _sapphire_shapeshift.ArrayValidator<_sapphire_shapeshift.UndefinedToOptional<{ - name: string; - value: string; - inline: boolean | undefined; -}>[], _sapphire_shapeshift.UndefinedToOptional<{ - name: string; - value: string; - inline: boolean | undefined; -}>>; -declare const fieldLengthPredicate: _sapphire_shapeshift.NumberValidator; -declare function validateFieldLength(amountAdding: number, fields?: APIEmbedField[]): void; -declare const authorNamePredicate: _sapphire_shapeshift.UnionValidator; -declare const imageURLPredicate: _sapphire_shapeshift.UnionValidator; -declare const urlPredicate: _sapphire_shapeshift.UnionValidator; -declare const embedAuthorPredicate: _sapphire_shapeshift.ObjectValidator<{ - name: string | null; - iconURL: string | null | undefined; - url: string | null | undefined; -}, _sapphire_shapeshift.UndefinedToOptional<{ - name: string | null; - iconURL: string | null | undefined; - url: string | null | undefined; -}>>; -declare const RGBPredicate: _sapphire_shapeshift.NumberValidator; -declare const colorPredicate: _sapphire_shapeshift.UnionValidator; -declare const descriptionPredicate: _sapphire_shapeshift.UnionValidator; -declare const footerTextPredicate: _sapphire_shapeshift.UnionValidator; -declare const embedFooterPredicate: _sapphire_shapeshift.ObjectValidator<{ - text: string | null; - iconURL: string | null | undefined; -}, _sapphire_shapeshift.UndefinedToOptional<{ - text: string | null; - iconURL: string | null | undefined; -}>>; -declare const timestampPredicate: _sapphire_shapeshift.UnionValidator; -declare const titlePredicate: _sapphire_shapeshift.UnionValidator; - -declare const Assertions$5_RGBPredicate: typeof RGBPredicate; -declare const Assertions$5_authorNamePredicate: typeof authorNamePredicate; -declare const Assertions$5_colorPredicate: typeof colorPredicate; -declare const Assertions$5_descriptionPredicate: typeof descriptionPredicate; -declare const Assertions$5_embedAuthorPredicate: typeof embedAuthorPredicate; -declare const Assertions$5_embedFieldPredicate: typeof embedFieldPredicate; -declare const Assertions$5_embedFieldsArrayPredicate: typeof embedFieldsArrayPredicate; -declare const Assertions$5_embedFooterPredicate: typeof embedFooterPredicate; -declare const Assertions$5_fieldInlinePredicate: typeof fieldInlinePredicate; -declare const Assertions$5_fieldLengthPredicate: typeof fieldLengthPredicate; -declare const Assertions$5_fieldNamePredicate: typeof fieldNamePredicate; -declare const Assertions$5_fieldValuePredicate: typeof fieldValuePredicate; -declare const Assertions$5_footerTextPredicate: typeof footerTextPredicate; -declare const Assertions$5_imageURLPredicate: typeof imageURLPredicate; -declare const Assertions$5_timestampPredicate: typeof timestampPredicate; -declare const Assertions$5_titlePredicate: typeof titlePredicate; -declare const Assertions$5_urlPredicate: typeof urlPredicate; -declare const Assertions$5_validateFieldLength: typeof validateFieldLength; -declare namespace Assertions$5 { - export { Assertions$5_RGBPredicate as RGBPredicate, Assertions$5_authorNamePredicate as authorNamePredicate, Assertions$5_colorPredicate as colorPredicate, Assertions$5_descriptionPredicate as descriptionPredicate, Assertions$5_embedAuthorPredicate as embedAuthorPredicate, Assertions$5_embedFieldPredicate as embedFieldPredicate, Assertions$5_embedFieldsArrayPredicate as embedFieldsArrayPredicate, Assertions$5_embedFooterPredicate as embedFooterPredicate, Assertions$5_fieldInlinePredicate as fieldInlinePredicate, Assertions$5_fieldLengthPredicate as fieldLengthPredicate, Assertions$5_fieldNamePredicate as fieldNamePredicate, Assertions$5_fieldValuePredicate as fieldValuePredicate, Assertions$5_footerTextPredicate as footerTextPredicate, Assertions$5_imageURLPredicate as imageURLPredicate, Assertions$5_timestampPredicate as timestampPredicate, Assertions$5_titlePredicate as titlePredicate, Assertions$5_urlPredicate as urlPredicate, Assertions$5_validateFieldLength as validateFieldLength }; -} - -/** - * Normalizes data that is a rest parameter or an array into an array with a depth of 1. - * - * @typeParam ItemType - The data that must satisfy {@link RestOrArray}. - * @param arr - The (possibly variadic) data to normalize - */ -declare function normalizeArray(arr: RestOrArray): ItemType[]; -/** - * Represents data that may be an array or came from a rest parameter. - * - * @remarks - * This type is used throughout builders to ensure both an array and variadic arguments - * may be used. It is normalized with {@link normalizeArray}. - */ -type RestOrArray = Type[] | [Type[]]; - -/** - * A tuple satisfying the RGB color model. - * - * @see {@link https://developer.mozilla.org/docs/Glossary/RGB} - */ -type RGBTuple = [red: number, green: number, blue: number]; -/** - * The base icon data typically used in payloads. - */ -interface IconData { - /** - * The URL of the icon. - */ - iconURL?: string; - /** - * The proxy URL of the icon. - */ - proxyIconURL?: string; -} -/** - * Represents the author data of an embed. - */ -interface EmbedAuthorData extends IconData, Omit { -} -/** - * Represents the author options of an embed. - */ -interface EmbedAuthorOptions extends Omit { -} -/** - * Represents the footer data of an embed. - */ -interface EmbedFooterData extends IconData, Omit { -} -/** - * Represents the footer options of an embed. - */ -interface EmbedFooterOptions extends Omit { -} -/** - * Represents the image data of an embed. - */ -interface EmbedImageData extends Omit { - /** - * The proxy URL for the image. - */ - proxyURL?: string; -} -/** - * A builder that creates API-compatible JSON data for embeds. - */ -declare class EmbedBuilder { - /** - * The API data associated with this embed. - */ - readonly data: APIEmbed; - /** - * Creates a new embed from API data. - * - * @param data - The API data to create this embed with - */ - constructor(data?: APIEmbed); - /** - * Appends fields to the embed. - * - * @remarks - * This method accepts either an array of fields or a variable number of field parameters. - * The maximum amount of fields that can be added is 25. - * @example - * Using an array: - * ```ts - * const fields: APIEmbedField[] = ...; - * const embed = new EmbedBuilder() - * .addFields(fields); - * ``` - * @example - * Using rest parameters (variadic): - * ```ts - * const embed = new EmbedBuilder() - * .addFields( - * { name: 'Field 1', value: 'Value 1' }, - * { name: 'Field 2', value: 'Value 2' }, - * ); - * ``` - * @param fields - The fields to add - */ - addFields(...fields: RestOrArray): this; - /** - * Removes, replaces, or inserts fields for this embed. - * - * @remarks - * This method behaves similarly - * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. - * The maximum amount of fields that can be added is 25. - * - * It's useful for modifying and adjusting order of the already-existing fields of an embed. - * @example - * Remove the first field: - * ```ts - * embed.spliceFields(0, 1); - * ``` - * @example - * Remove the first n fields: - * ```ts - * const n = 4; - * embed.spliceFields(0, n); - * ``` - * @example - * Remove the last field: - * ```ts - * embed.spliceFields(-1, 1); - * ``` - * @param index - The index to start at - * @param deleteCount - The number of fields to remove - * @param fields - The replacing field objects - */ - spliceFields(index: number, deleteCount: number, ...fields: APIEmbedField[]): this; - /** - * Sets the fields for this embed. - * - * @remarks - * This method is an alias for {@link EmbedBuilder.spliceFields}. More specifically, - * it splices the entire array of fields, replacing them with the provided fields. - * - * You can set a maximum of 25 fields. - * @param fields - The fields to set - */ - setFields(...fields: RestOrArray): this; - /** - * Sets the author of this embed. - * - * @param options - The options to use - */ - setAuthor(options: EmbedAuthorOptions | null): this; - /** - * Sets the color of this embed. - * - * @param color - The color to use - */ - setColor(color: RGBTuple | number | null): this; - /** - * Sets the description of this embed. - * - * @param description - The description to use - */ - setDescription(description: string | null): this; - /** - * Sets the footer of this embed. - * - * @param options - The footer to use - */ - setFooter(options: EmbedFooterOptions | null): this; - /** - * Sets the image of this embed. - * - * @param url - The image URL to use - */ - setImage(url: string | null): this; - /** - * Sets the thumbnail of this embed. - * - * @param url - The thumbnail URL to use - */ - setThumbnail(url: string | null): this; - /** - * Sets the timestamp of this embed. - * - * @param timestamp - The timestamp or date to use - */ - setTimestamp(timestamp?: Date | number | null): this; - /** - * Sets the title for this embed. - * - * @param title - The title to use - */ - setTitle(title: string | null): this; - /** - * Sets the URL of this embed. - * - * @param url - The URL to use - */ - setURL(url: string | null): this; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON(): APIEmbed; -} - -/** - * A builder that creates API-compatible JSON data for string select menu options. - */ -declare class StringSelectMenuOptionBuilder implements JSONEncodable { - data: Partial; - /** - * Creates a new string select menu option from API data. - * - * @param data - The API data to create this string select menu option with - * @example - * Creating a string select menu option from an API data object: - * ```ts - * const selectMenuOption = new SelectMenuOptionBuilder({ - * label: 'catchy label', - * value: '1', - * }); - * ``` - * @example - * Creating a string select menu option using setters and API data: - * ```ts - * const selectMenuOption = new SelectMenuOptionBuilder({ - * default: true, - * value: '1', - * }) - * .setLabel('woah'); - * ``` - */ - constructor(data?: Partial); - /** - * Sets the label for this option. - * - * @param label - The label to use - */ - setLabel(label: string): this; - /** - * Sets the value for this option. - * - * @param value - The value to use - */ - setValue(value: string): this; - /** - * Sets the description for this option. - * - * @param description - The description to use - */ - setDescription(description: string): this; - /** - * Sets whether this option is selected by default. - * - * @param isDefault - Whether this option is selected by default - */ - setDefault(isDefault?: boolean): this; - /** - * Sets the emoji to display for this option. - * - * @param emoji - The emoji to use - */ - setEmoji(emoji: APIMessageComponentEmoji): this; - /** - * {@inheritDoc BaseSelectMenuBuilder.toJSON} - */ - toJSON(): APISelectMenuOption; -} - -declare const customIdValidator: _sapphire_shapeshift.StringValidator; -declare const emojiValidator: _sapphire_shapeshift.ObjectValidator<{ - name?: string | undefined; - id?: string | undefined; - animated?: boolean | undefined; -}, _sapphire_shapeshift.UndefinedToOptional<{ - name?: string | undefined; - id?: string | undefined; - animated?: boolean | undefined; -}>>; -declare const disabledValidator: _sapphire_shapeshift.BooleanValidator; -declare const buttonLabelValidator: _sapphire_shapeshift.StringValidator; -declare const buttonStyleValidator: _sapphire_shapeshift.NativeEnumValidator; -declare const placeholderValidator$1: _sapphire_shapeshift.StringValidator; -declare const minMaxValidator: _sapphire_shapeshift.NumberValidator; -declare const labelValueDescriptionValidator: _sapphire_shapeshift.StringValidator; -declare const jsonOptionValidator: _sapphire_shapeshift.ObjectValidator<{ - label: string; - value: string; - description: string | undefined; - emoji: _sapphire_shapeshift.UndefinedToOptional<{ - name?: string | undefined; - id?: string | undefined; - animated?: boolean | undefined; - }> | undefined; - default: boolean | undefined; -}, _sapphire_shapeshift.UndefinedToOptional<{ - label: string; - value: string; - description: string | undefined; - emoji: _sapphire_shapeshift.UndefinedToOptional<{ - name?: string | undefined; - id?: string | undefined; - animated?: boolean | undefined; - }> | undefined; - default: boolean | undefined; -}>>; -declare const optionValidator: _sapphire_shapeshift.InstanceValidator; -declare const optionsValidator: _sapphire_shapeshift.ArrayValidator; -declare const optionsLengthValidator: _sapphire_shapeshift.NumberValidator; -declare function validateRequiredSelectMenuParameters(options: StringSelectMenuOptionBuilder[], customId?: string): void; -declare const defaultValidator: _sapphire_shapeshift.BooleanValidator; -declare function validateRequiredSelectMenuOptionParameters(label?: string, value?: string): void; -declare const channelTypesValidator: _sapphire_shapeshift.ArrayValidator; -declare const urlValidator: _sapphire_shapeshift.StringValidator; -declare function validateRequiredButtonParameters(style?: ButtonStyle, label?: string, emoji?: APIMessageComponentEmoji, customId?: string, url?: string): void; - -declare const Assertions$4_buttonLabelValidator: typeof buttonLabelValidator; -declare const Assertions$4_buttonStyleValidator: typeof buttonStyleValidator; -declare const Assertions$4_channelTypesValidator: typeof channelTypesValidator; -declare const Assertions$4_customIdValidator: typeof customIdValidator; -declare const Assertions$4_defaultValidator: typeof defaultValidator; -declare const Assertions$4_disabledValidator: typeof disabledValidator; -declare const Assertions$4_emojiValidator: typeof emojiValidator; -declare const Assertions$4_jsonOptionValidator: typeof jsonOptionValidator; -declare const Assertions$4_labelValueDescriptionValidator: typeof labelValueDescriptionValidator; -declare const Assertions$4_minMaxValidator: typeof minMaxValidator; -declare const Assertions$4_optionValidator: typeof optionValidator; -declare const Assertions$4_optionsLengthValidator: typeof optionsLengthValidator; -declare const Assertions$4_optionsValidator: typeof optionsValidator; -declare const Assertions$4_urlValidator: typeof urlValidator; -declare const Assertions$4_validateRequiredButtonParameters: typeof validateRequiredButtonParameters; -declare const Assertions$4_validateRequiredSelectMenuOptionParameters: typeof validateRequiredSelectMenuOptionParameters; -declare const Assertions$4_validateRequiredSelectMenuParameters: typeof validateRequiredSelectMenuParameters; -declare namespace Assertions$4 { - export { Assertions$4_buttonLabelValidator as buttonLabelValidator, Assertions$4_buttonStyleValidator as buttonStyleValidator, Assertions$4_channelTypesValidator as channelTypesValidator, Assertions$4_customIdValidator as customIdValidator, Assertions$4_defaultValidator as defaultValidator, Assertions$4_disabledValidator as disabledValidator, Assertions$4_emojiValidator as emojiValidator, Assertions$4_jsonOptionValidator as jsonOptionValidator, Assertions$4_labelValueDescriptionValidator as labelValueDescriptionValidator, Assertions$4_minMaxValidator as minMaxValidator, Assertions$4_optionValidator as optionValidator, Assertions$4_optionsLengthValidator as optionsLengthValidator, Assertions$4_optionsValidator as optionsValidator, placeholderValidator$1 as placeholderValidator, Assertions$4_urlValidator as urlValidator, Assertions$4_validateRequiredButtonParameters as validateRequiredButtonParameters, Assertions$4_validateRequiredSelectMenuOptionParameters as validateRequiredSelectMenuOptionParameters, Assertions$4_validateRequiredSelectMenuParameters as validateRequiredSelectMenuParameters }; -} - -/** - * Any action row component data represented as an object. - */ -type AnyAPIActionRowComponent = APIActionRowComponent | APIActionRowComponentTypes; -/** - * The base component builder that contains common symbols for all sorts of components. - * - * @typeParam DataType - The type of internal API data that is stored within the component - */ -declare abstract class ComponentBuilder> = APIBaseComponent> implements JSONEncodable { - /** - * The API data associated with this component. - */ - readonly data: Partial; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - abstract toJSON(): AnyAPIActionRowComponent; - /** - * Constructs a new kind of component. - * - * @param data - The data to construct a component out of - */ - constructor(data: Partial); -} - -/** - * A builder that creates API-compatible JSON data for buttons. - */ -declare class ButtonBuilder extends ComponentBuilder { - /** - * Creates a new button from API data. - * - * @param data - The API data to create this button with - * @example - * Creating a button from an API data object: - * ```ts - * const button = new ButtonBuilder({ - * custom_id: 'a cool button', - * style: ButtonStyle.Primary, - * label: 'Click Me', - * emoji: { - * name: 'smile', - * id: '123456789012345678', - * }, - * }); - * ``` - * @example - * Creating a button using setters and API data: - * ```ts - * const button = new ButtonBuilder({ - * style: ButtonStyle.Secondary, - * label: 'Click Me', - * }) - * .setEmoji({ name: '🙂' }) - * .setCustomId('another cool button'); - * ``` - */ - constructor(data?: Partial); - /** - * Sets the style of this button. - * - * @param style - The style to use - */ - setStyle(style: ButtonStyle): this; - /** - * Sets the URL for this button. - * - * @remarks - * This method is only available to buttons using the `Link` button style. - * Only three types of URL schemes are currently supported: `https://`, `http://`, and `discord://`. - * @param url - The URL to use - */ - setURL(url: string): this; - /** - * Sets the custom id for this button. - * - * @remarks - * This method is only applicable to buttons that are not using the `Link` button style. - * @param customId - The custom id to use - */ - setCustomId(customId: string): this; - /** - * Sets the emoji to display on this button. - * - * @param emoji - The emoji to use - */ - setEmoji(emoji: APIMessageComponentEmoji): this; - /** - * Sets whether this button is disabled. - * - * @param disabled - Whether to disable this button - */ - setDisabled(disabled?: boolean): this; - /** - * Sets the label for this button. - * - * @param label - The label to use - */ - setLabel(label: string): this; - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON(): APIButtonComponent; -} - -/** - * The base select menu builder that contains common symbols for select menu builders. - * - * @typeParam SelectMenuType - The type of select menu this would be instantiated for. - */ -declare abstract class BaseSelectMenuBuilder extends ComponentBuilder { - /** - * Sets the placeholder for this select menu. - * - * @param placeholder - The placeholder to use - */ - setPlaceholder(placeholder: string): this; - /** - * Sets the minimum values that must be selected in the select menu. - * - * @param minValues - The minimum values that must be selected - */ - setMinValues(minValues: number): this; - /** - * Sets the maximum values that must be selected in the select menu. - * - * @param maxValues - The maximum values that must be selected - */ - setMaxValues(maxValues: number): this; - /** - * Sets the custom id for this select menu. - * - * @param customId - The custom id to use - */ - setCustomId(customId: string): this; - /** - * Sets whether this select menu is disabled. - * - * @param disabled - Whether this select menu is disabled - */ - setDisabled(disabled?: boolean): this; - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON(): SelectMenuType; -} - -/** - * A builder that creates API-compatible JSON data for channel select menus. - */ -declare class ChannelSelectMenuBuilder extends BaseSelectMenuBuilder { - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new ChannelSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new ChannelSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .addChannelTypes(ChannelType.GuildText, ChannelType.GuildAnnouncement) - * .setMinValues(2); - * ``` - */ - constructor(data?: Partial); - /** - * Adds channel types to this select menu. - * - * @param types - The channel types to use - */ - addChannelTypes(...types: RestOrArray): this; - /** - * Sets channel types for this select menu. - * - * @param types - The channel types to use - */ - setChannelTypes(...types: RestOrArray): this; - /** - * Adds default channels to this auto populated select menu. - * - * @param channels - The channels to add - */ - addDefaultChannels(...channels: RestOrArray): this; - /** - * Sets default channels to this auto populated select menu. - * - * @param channels - The channels to set - */ - setDefaultChannels(...channels: RestOrArray): this; - /** - * {@inheritDoc BaseSelectMenuBuilder.toJSON} - */ - toJSON(): APIChannelSelectComponent; -} - -/** - * A builder that creates API-compatible JSON data for mentionable select menus. - */ -declare class MentionableSelectMenuBuilder extends BaseSelectMenuBuilder { - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new MentionableSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new MentionableSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1); - * ``` - */ - constructor(data?: Partial); - /** - * Adds default roles to this auto populated select menu. - * - * @param roles - The roles to add - */ - addDefaultRoles(...roles: RestOrArray): this; - /** - * Adds default users to this auto populated select menu. - * - * @param users - The users to add - */ - addDefaultUsers(...users: RestOrArray): this; - /** - * Adds default values to this auto populated select menu. - * - * @param values - The values to add - */ - addDefaultValues(...values: RestOrArray | APISelectMenuDefaultValue>): this; - /** - * Sets default values to this auto populated select menu. - * - * @param values - The values to set - */ - setDefaultValues(...values: RestOrArray | APISelectMenuDefaultValue>): this; -} - -/** - * A builder that creates API-compatible JSON data for role select menus. - */ -declare class RoleSelectMenuBuilder extends BaseSelectMenuBuilder { - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new RoleSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new RoleSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1); - * ``` - */ - constructor(data?: Partial); - /** - * Adds default roles to this auto populated select menu. - * - * @param roles - The roles to add - */ - addDefaultRoles(...roles: RestOrArray): this; - /** - * Sets default roles to this auto populated select menu. - * - * @param roles - The roles to set - */ - setDefaultRoles(...roles: RestOrArray): this; -} - -/** - * A builder that creates API-compatible JSON data for string select menus. - */ -declare class StringSelectMenuBuilder extends BaseSelectMenuBuilder { - /** - * The options within this select menu. - */ - readonly options: StringSelectMenuOptionBuilder[]; - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new StringSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * options: [ - * { label: 'option 1', value: '1' }, - * { label: 'option 2', value: '2' }, - * { label: 'option 3', value: '3' }, - * ], - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new StringSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1) - * .addOptions({ - * label: 'Catchy', - * value: 'catch', - * }); - * ``` - */ - constructor(data?: Partial); - /** - * Adds options to this select menu. - * - * @param options - The options to add - */ - addOptions(...options: RestOrArray): this; - /** - * Sets the options for this select menu. - * - * @param options - The options to set - */ - setOptions(...options: RestOrArray): this; - /** - * Removes, replaces, or inserts options for this select menu. - * - * @remarks - * This method behaves similarly - * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice | Array.prototype.splice()}. - * It's useful for modifying and adjusting the order of existing options. - * @example - * Remove the first option: - * ```ts - * selectMenu.spliceOptions(0, 1); - * ``` - * @example - * Remove the first n option: - * ```ts - * const n = 4; - * selectMenu.spliceOptions(0, n); - * ``` - * @example - * Remove the last option: - * ```ts - * selectMenu.spliceOptions(-1, 1); - * ``` - * @param index - The index to start at - * @param deleteCount - The number of options to remove - * @param options - The replacing option objects or builders - */ - spliceOptions(index: number, deleteCount: number, ...options: RestOrArray): this; - /** - * {@inheritDoc BaseSelectMenuBuilder.toJSON} - */ - toJSON(): APIStringSelectComponent; -} - -/** - * A builder that creates API-compatible JSON data for user select menus. - */ -declare class UserSelectMenuBuilder extends BaseSelectMenuBuilder { - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new UserSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new UserSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1); - * ``` - */ - constructor(data?: Partial); - /** - * Adds default users to this auto populated select menu. - * - * @param users - The users to add - */ - addDefaultUsers(...users: RestOrArray): this; - /** - * Sets default users to this auto populated select menu. - * - * @param users - The users to set - */ - setDefaultUsers(...users: RestOrArray): this; -} - -/** - * A builder that creates API-compatible JSON data for text inputs. - */ -declare class TextInputBuilder extends ComponentBuilder implements Equatable> { - /** - * Creates a new text input from API data. - * - * @param data - The API data to create this text input with - * @example - * Creating a select menu option from an API data object: - * ```ts - * const textInput = new TextInputBuilder({ - * custom_id: 'a cool select menu', - * label: 'Type something', - * style: TextInputStyle.Short, - * }); - * ``` - * @example - * Creating a select menu option using setters and API data: - * ```ts - * const textInput = new TextInputBuilder({ - * label: 'Type something else', - * }) - * .setCustomId('woah') - * .setStyle(TextInputStyle.Paragraph); - * ``` - */ - constructor(data?: APITextInputComponent & { - type?: ComponentType.TextInput; - }); - /** - * Sets the custom id for this text input. - * - * @param customId - The custom id to use - */ - setCustomId(customId: string): this; - /** - * Sets the label for this text input. - * - * @param label - The label to use - */ - setLabel(label: string): this; - /** - * Sets the style for this text input. - * - * @param style - The style to use - */ - setStyle(style: TextInputStyle): this; - /** - * Sets the minimum length of text for this text input. - * - * @param minLength - The minimum length of text for this text input - */ - setMinLength(minLength: number): this; - /** - * Sets the maximum length of text for this text input. - * - * @param maxLength - The maximum length of text for this text input - */ - setMaxLength(maxLength: number): this; - /** - * Sets the placeholder for this text input. - * - * @param placeholder - The placeholder to use - */ - setPlaceholder(placeholder: string): this; - /** - * Sets the value for this text input. - * - * @param value - The value to use - */ - setValue(value: string): this; - /** - * Sets whether this text input is required. - * - * @param required - Whether this text input is required - */ - setRequired(required?: boolean): this; - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON(): APITextInputComponent; - /** - * Whether this is equal to another structure. - */ - equals(other: APITextInputComponent | JSONEncodable): boolean; -} - -/** - * The builders that may be used for messages. - */ -type MessageComponentBuilder = ActionRowBuilder | MessageActionRowComponentBuilder; -/** - * The builders that may be used for modals. - */ -type ModalComponentBuilder = ActionRowBuilder | ModalActionRowComponentBuilder; -/** - * The builders that may be used within an action row for messages. - */ -type MessageActionRowComponentBuilder = ButtonBuilder | ChannelSelectMenuBuilder | MentionableSelectMenuBuilder | RoleSelectMenuBuilder | StringSelectMenuBuilder | UserSelectMenuBuilder; -/** - * The builders that may be used within an action row for modals. - */ -type ModalActionRowComponentBuilder = TextInputBuilder; -/** - * Any builder. - */ -type AnyComponentBuilder = MessageActionRowComponentBuilder | ModalActionRowComponentBuilder; -/** - * A builder that creates API-compatible JSON data for action rows. - * - * @typeParam ComponentType - The types of components this action row holds - */ -declare class ActionRowBuilder extends ComponentBuilder> { - /** - * The components within this action row. - */ - readonly components: ComponentType[]; - /** - * Creates a new action row from API data. - * - * @param data - The API data to create this action row with - * @example - * Creating an action row from an API data object: - * ```ts - * const actionRow = new ActionRowBuilder({ - * components: [ - * { - * custom_id: "custom id", - * label: "Type something", - * style: TextInputStyle.Short, - * type: ComponentType.TextInput, - * }, - * ], - * }); - * ``` - * @example - * Creating an action row using setters and API data: - * ```ts - * const actionRow = new ActionRowBuilder({ - * components: [ - * { - * custom_id: "custom id", - * label: "Click me", - * style: ButtonStyle.Primary, - * type: ComponentType.Button, - * }, - * ], - * }) - * .addComponents(button2, button3); - * ``` - */ - constructor({ components, ...data }?: Partial>); - /** - * Adds components to this action row. - * - * @param components - The components to add - */ - addComponents(...components: RestOrArray): this; - /** - * Sets components for this action row. - * - * @param components - The components to set - */ - setComponents(...components: RestOrArray): this; - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON(): APIActionRowComponent>; -} - -/** - * Components here are mapped to their respective builder. - */ -interface MappedComponentTypes { - /** - * The action row component type is associated with an {@link ActionRowBuilder}. - */ - [ComponentType.ActionRow]: ActionRowBuilder; - /** - * The button component type is associated with an {@link ButtonBuilder}. - */ - [ComponentType.Button]: ButtonBuilder; - /** - * The string select component type is associated with an {@link StringSelectMenuBuilder}. - */ - [ComponentType.StringSelect]: StringSelectMenuBuilder; - /** - * The text inpiut component type is associated with an {@link TextInputBuilder}. - */ - [ComponentType.TextInput]: TextInputBuilder; - /** - * The user select component type is associated with an {@link UserSelectMenuBuilder}. - */ - [ComponentType.UserSelect]: UserSelectMenuBuilder; - /** - * The role select component type is associated with an {@link RoleSelectMenuBuilder}. - */ - [ComponentType.RoleSelect]: RoleSelectMenuBuilder; - /** - * The mentionable select component type is associated with an {@link MentionableSelectMenuBuilder}. - */ - [ComponentType.MentionableSelect]: MentionableSelectMenuBuilder; - /** - * The channel select component type is associated with an {@link ChannelSelectMenuBuilder}. - */ - [ComponentType.ChannelSelect]: ChannelSelectMenuBuilder; -} -/** - * Factory for creating components from API data. - * - * @typeParam ComponentType - The type of component to use - * @param data - The API data to transform to a component class - */ -declare function createComponentBuilder(data: (APIModalComponent | APIMessageComponent) & { - type: ComponentType; -}): MappedComponentTypes[ComponentType]; -/** - * Factory for creating components from API data. - * - * @typeParam ComponentBuilder - The type of component to use - * @param data - The API data to transform to a component class - */ -declare function createComponentBuilder(data: ComponentBuilder): ComponentBuilder; - -declare const textInputStyleValidator: _sapphire_shapeshift.NativeEnumValidator; -declare const minLengthValidator: _sapphire_shapeshift.NumberValidator; -declare const maxLengthValidator: _sapphire_shapeshift.NumberValidator; -declare const requiredValidator: _sapphire_shapeshift.BooleanValidator; -declare const valueValidator: _sapphire_shapeshift.StringValidator; -declare const placeholderValidator: _sapphire_shapeshift.StringValidator; -declare const labelValidator: _sapphire_shapeshift.StringValidator; -declare function validateRequiredParameters$3(customId?: string, style?: TextInputStyle, label?: string): void; - -declare const Assertions$3_labelValidator: typeof labelValidator; -declare const Assertions$3_maxLengthValidator: typeof maxLengthValidator; -declare const Assertions$3_minLengthValidator: typeof minLengthValidator; -declare const Assertions$3_placeholderValidator: typeof placeholderValidator; -declare const Assertions$3_requiredValidator: typeof requiredValidator; -declare const Assertions$3_textInputStyleValidator: typeof textInputStyleValidator; -declare const Assertions$3_valueValidator: typeof valueValidator; -declare namespace Assertions$3 { - export { Assertions$3_labelValidator as labelValidator, Assertions$3_maxLengthValidator as maxLengthValidator, Assertions$3_minLengthValidator as minLengthValidator, Assertions$3_placeholderValidator as placeholderValidator, Assertions$3_requiredValidator as requiredValidator, Assertions$3_textInputStyleValidator as textInputStyleValidator, validateRequiredParameters$3 as validateRequiredParameters, Assertions$3_valueValidator as valueValidator }; -} - -/** - * A builder that creates API-compatible JSON data for modals. - */ -declare class ModalBuilder implements JSONEncodable { - /** - * The API data associated with this modal. - */ - readonly data: Partial; - /** - * The components within this modal. - */ - readonly components: ActionRowBuilder[]; - /** - * Creates a new modal from API data. - * - * @param data - The API data to create this modal with - */ - constructor({ components, ...data }?: Partial); - /** - * Sets the title of this modal. - * - * @param title - The title to use - */ - setTitle(title: string): this; - /** - * Sets the custom id of this modal. - * - * @param customId - The custom id to use - */ - setCustomId(customId: string): this; - /** - * Adds components to this modal. - * - * @param components - The components to add - */ - addComponents(...components: RestOrArray | APIActionRowComponent>): this; - /** - * Sets components for this modal. - * - * @param components - The components to set - */ - setComponents(...components: RestOrArray>): this; - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON(): APIModalInteractionResponseCallbackData; -} - -declare const titleValidator: _sapphire_shapeshift.StringValidator; -declare const componentsValidator: _sapphire_shapeshift.ArrayValidator<[ActionRowBuilder, ...ActionRowBuilder[]], ActionRowBuilder>; -declare function validateRequiredParameters$2(customId?: string, title?: string, components?: ActionRowBuilder[]): void; - -declare const Assertions$2_componentsValidator: typeof componentsValidator; -declare const Assertions$2_titleValidator: typeof titleValidator; -declare namespace Assertions$2 { - export { Assertions$2_componentsValidator as componentsValidator, Assertions$2_titleValidator as titleValidator, validateRequiredParameters$2 as validateRequiredParameters }; -} - -/** - * This mixin holds name and description symbols for slash commands. - */ -declare class SharedNameAndDescription { - /** - * The name of this command. - */ - readonly name: string; - /** - * The name localizations of this command. - */ - readonly name_localizations?: LocalizationMap; - /** - * The description of this command. - */ - readonly description: string; - /** - * The description localizations of this command. - */ - readonly description_localizations?: LocalizationMap; - /** - * Sets the name of this command. - * - * @param name - The name to use - */ - setName(name: string): this; - /** - * Sets the description of this command. - * - * @param description - The description to use - */ - setDescription(description: string): this; - /** - * Sets a name localization for this command. - * - * @param locale - The locale to set - * @param localizedName - The localized name for the given `locale` - */ - setNameLocalization(locale: LocaleString, localizedName: string | null): this; - /** - * Sets the name localizations for this command. - * - * @param localizedNames - The object of localized names to set - */ - setNameLocalizations(localizedNames: LocalizationMap | null): this; - /** - * Sets a description localization for this command. - * - * @param locale - The locale to set - * @param localizedDescription - The localized description for the given locale - */ - setDescriptionLocalization(locale: LocaleString, localizedDescription: string | null): this; - /** - * Sets the description localizations for this command. - * - * @param localizedDescriptions - The object of localized descriptions to set - */ - setDescriptionLocalizations(localizedDescriptions: LocalizationMap | null): this; -} - -/** - * This mixin holds symbols that can be shared in slashcommands independent of options or subcommands. - */ -declare class SharedSlashCommand { - readonly name: string; - readonly name_localizations?: LocalizationMap; - readonly description: string; - readonly description_localizations?: LocalizationMap; - readonly options: ToAPIApplicationCommandOptions[]; - /** - * Sets whether the command is enabled by default when the application is added to a guild. - * - * @remarks - * If set to `false`, you will have to later `PUT` the permissions for this command. - * @param value - Whether or not to enable this command by default - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. - */ - setDefaultPermission(value: boolean): this; - /** - * Sets the default permissions a member should have in order to run the command. - * - * @remarks - * You can set this to `'0'` to disable the command by default. - * @param permissions - The permissions bit field to set - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - */ - setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined): this; - /** - * Sets if the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This method is only for global commands. - * @param enabled - Whether the command should be enabled in direct messages - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - */ - setDMPermission(enabled: boolean | null | undefined): this; - /** - * Sets whether this command is NSFW. - * - * @param nsfw - Whether this command is NSFW - */ - setNSFW(nsfw?: boolean): this; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON(): RESTPostAPIChatInputApplicationCommandsJSONBody; -} - -/** - * The base application command option builder that contains common symbols for application command builders. - */ -declare abstract class ApplicationCommandOptionBase extends SharedNameAndDescription { - /** - * The type of this option. - */ - abstract readonly type: ApplicationCommandOptionType; - /** - * Whether this option is required. - * - * @defaultValue `false` - */ - readonly required: boolean; - /** - * Sets whether this option is required. - * - * @param required - Whether this option should be required - */ - setRequired(required: boolean): this; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - abstract toJSON(): APIApplicationCommandBasicOption; - /** - * This method runs required validators on this builder. - */ - protected runRequiredValidations(): void; -} - -/** - * A slash command attachment option. - */ -declare class SlashCommandAttachmentOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Attachment; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandAttachmentOption; -} - -/** - * A slash command boolean option. - */ -declare class SlashCommandBooleanOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Boolean; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandBooleanOption; -} - -/** - * The allowed channel types used for a channel option in a slash command builder. - * - * @privateRemarks This can't be dynamic because const enums are erased at runtime. - * @internal - */ -declare const allowedChannelTypes: readonly [ChannelType.GuildText, ChannelType.GuildVoice, ChannelType.GuildCategory, ChannelType.GuildAnnouncement, ChannelType.AnnouncementThread, ChannelType.PublicThread, ChannelType.PrivateThread, ChannelType.GuildStageVoice, ChannelType.GuildForum, ChannelType.GuildMedia]; -/** - * The type of allowed channel types used for a channel option. - */ -type ApplicationCommandOptionAllowedChannelTypes = (typeof allowedChannelTypes)[number]; -/** - * This mixin holds channel type symbols used for options. - */ -declare class ApplicationCommandOptionChannelTypesMixin { - /** - * The channel types of this option. - */ - readonly channel_types?: ApplicationCommandOptionAllowedChannelTypes[]; - /** - * Adds channel types to this option. - * - * @param channelTypes - The channel types - */ - addChannelTypes(...channelTypes: RestOrArray): this; -} - -/** - * A slash command channel option. - */ -declare class SlashCommandChannelOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Channel; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandChannelOption; -} -interface SlashCommandChannelOption extends ApplicationCommandOptionChannelTypesMixin { -} - -/** - * This mixin holds minimum and maximum symbols used for options. - */ -declare abstract class ApplicationCommandNumericOptionMinMaxValueMixin { - /** - * The maximum value of this option. - */ - readonly max_value?: number; - /** - * The minimum value of this option. - */ - readonly min_value?: number; - /** - * Sets the maximum number value of this option. - * - * @param max - The maximum value this option can be - */ - abstract setMaxValue(max: number): this; - /** - * Sets the minimum number value of this option. - * - * @param min - The minimum value this option can be - */ - abstract setMinValue(min: number): this; -} - -/** - * This mixin holds choices and autocomplete symbols used for options. - */ -declare class ApplicationCommandOptionWithAutocompleteMixin { - /** - * Whether this option utilizes autocomplete. - */ - readonly autocomplete?: boolean; - /** - * The type of this option. - * - * @privateRemarks Since this is present and this is a mixin, this is needed. - */ - readonly type: ApplicationCommandOptionType; - /** - * Whether this option uses autocomplete. - * - * @param autocomplete - Whether this option should use autocomplete - */ - setAutocomplete(autocomplete: boolean): this; -} - -/** - * This mixin holds choices and autocomplete symbols used for options. - */ -declare class ApplicationCommandOptionWithChoicesMixin { - /** - * The choices of this option. - */ - readonly choices?: APIApplicationCommandOptionChoice[]; - /** - * The type of this option. - * - * @privateRemarks Since this is present and this is a mixin, this is needed. - */ - readonly type: ApplicationCommandOptionType; - /** - * Adds multiple choices to this option. - * - * @param choices - The choices to add - */ - addChoices(...choices: RestOrArray>): this; - /** - * Sets multiple choices for this option. - * - * @param choices - The choices to set - */ - setChoices>(...choices: RestOrArray): this; -} - -/** - * A slash command integer option. - */ -declare class SlashCommandIntegerOption extends ApplicationCommandOptionBase implements ApplicationCommandNumericOptionMinMaxValueMixin { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Integer; - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue} - */ - setMaxValue(max: number): this; - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue} - */ - setMinValue(min: number): this; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandIntegerOption; -} -interface SlashCommandIntegerOption extends ApplicationCommandNumericOptionMinMaxValueMixin, ApplicationCommandOptionWithChoicesMixin, ApplicationCommandOptionWithAutocompleteMixin { -} - -/** - * A slash command mentionable option. - */ -declare class SlashCommandMentionableOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Mentionable; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandMentionableOption; -} - -/** - * A slash command number option. - */ -declare class SlashCommandNumberOption extends ApplicationCommandOptionBase implements ApplicationCommandNumericOptionMinMaxValueMixin { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Number; - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue} - */ - setMaxValue(max: number): this; - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue} - */ - setMinValue(min: number): this; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandNumberOption; -} -interface SlashCommandNumberOption extends ApplicationCommandNumericOptionMinMaxValueMixin, ApplicationCommandOptionWithChoicesMixin, ApplicationCommandOptionWithAutocompleteMixin { -} - -/** - * A slash command role option. - */ -declare class SlashCommandRoleOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.Role; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandRoleOption; -} - -/** - * A slash command string option. - */ -declare class SlashCommandStringOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.String; - /** - * The maximum length of this option. - */ - readonly max_length?: number; - /** - * The minimum length of this option. - */ - readonly min_length?: number; - /** - * Sets the maximum length of this string option. - * - * @param max - The maximum length this option can be - */ - setMaxLength(max: number): this; - /** - * Sets the minimum length of this string option. - * - * @param min - The minimum length this option can be - */ - setMinLength(min: number): this; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandStringOption; -} -interface SlashCommandStringOption extends ApplicationCommandOptionWithChoicesMixin, ApplicationCommandOptionWithAutocompleteMixin { -} - -/** - * A slash command user option. - */ -declare class SlashCommandUserOption extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - readonly type: ApplicationCommandOptionType.User; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON(): APIApplicationCommandUserOption; -} - -/** - * This mixin holds symbols that can be shared in slash command options. - * - * @typeParam TypeAfterAddingOptions - The type this class should return after adding an option. - */ -declare class SharedSlashCommandOptions> { - readonly options: ToAPIApplicationCommandOptions[]; - /** - * Adds a boolean option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addBooleanOption(input: SlashCommandBooleanOption | ((builder: SlashCommandBooleanOption) => SlashCommandBooleanOption)): TypeAfterAddingOptions; - /** - * Adds a user option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addUserOption(input: SlashCommandUserOption | ((builder: SlashCommandUserOption) => SlashCommandUserOption)): TypeAfterAddingOptions; - /** - * Adds a channel option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addChannelOption(input: SlashCommandChannelOption | ((builder: SlashCommandChannelOption) => SlashCommandChannelOption)): TypeAfterAddingOptions; - /** - * Adds a role option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addRoleOption(input: SlashCommandRoleOption | ((builder: SlashCommandRoleOption) => SlashCommandRoleOption)): TypeAfterAddingOptions; - /** - * Adds an attachment option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addAttachmentOption(input: SlashCommandAttachmentOption | ((builder: SlashCommandAttachmentOption) => SlashCommandAttachmentOption)): TypeAfterAddingOptions; - /** - * Adds a mentionable option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addMentionableOption(input: SlashCommandMentionableOption | ((builder: SlashCommandMentionableOption) => SlashCommandMentionableOption)): TypeAfterAddingOptions; - /** - * Adds a string option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addStringOption(input: SlashCommandStringOption | ((builder: SlashCommandStringOption) => SlashCommandStringOption)): TypeAfterAddingOptions; - /** - * Adds an integer option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addIntegerOption(input: SlashCommandIntegerOption | ((builder: SlashCommandIntegerOption) => SlashCommandIntegerOption)): TypeAfterAddingOptions; - /** - * Adds a number option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addNumberOption(input: SlashCommandNumberOption | ((builder: SlashCommandNumberOption) => SlashCommandNumberOption)): TypeAfterAddingOptions; - /** - * Where the actual adding magic happens. ✨ - * - * @param input - The input. What else? - * @param Instance - The instance of whatever is being added - * @internal - */ - private _sharedAddOptionMethod; -} - -/** - * Represents a folder for subcommands. - * - * @see {@link https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups} - */ -declare class SlashCommandSubcommandGroupBuilder implements ToAPIApplicationCommandOptions { - /** - * The name of this subcommand group. - */ - readonly name: string; - /** - * The description of this subcommand group. - */ - readonly description: string; - /** - * The subcommands within this subcommand group. - */ - readonly options: SlashCommandSubcommandBuilder[]; - /** - * Adds a new subcommand to this group. - * - * @param input - A function that returns a subcommand builder or an already built builder - */ - addSubcommand(input: SlashCommandSubcommandBuilder | ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder)): this; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON(): APIApplicationCommandSubcommandGroupOption; -} -interface SlashCommandSubcommandGroupBuilder extends SharedNameAndDescription { -} -/** - * A builder that creates API-compatible JSON data for slash command subcommands. - * - * @see {@link https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups} - */ -declare class SlashCommandSubcommandBuilder implements ToAPIApplicationCommandOptions { - /** - * The name of this subcommand. - */ - readonly name: string; - /** - * The description of this subcommand. - */ - readonly description: string; - /** - * The options within this subcommand. - */ - readonly options: ApplicationCommandOptionBase[]; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON(): APIApplicationCommandSubcommandOption; -} -interface SlashCommandSubcommandBuilder extends SharedNameAndDescription, SharedSlashCommandOptions { -} - -/** - * This mixin holds symbols that can be shared in slash subcommands. - * - * @typeParam TypeAfterAddingSubcommands - The type this class should return after adding a subcommand or subcommand group. - */ -declare class SharedSlashCommandSubcommands> { - readonly options: ToAPIApplicationCommandOptions[]; - /** - * Adds a new subcommand group to this command. - * - * @param input - A function that returns a subcommand group builder or an already built builder - */ - addSubcommandGroup(input: SlashCommandSubcommandGroupBuilder | ((subcommandGroup: SlashCommandSubcommandGroupBuilder) => SlashCommandSubcommandGroupBuilder)): TypeAfterAddingSubcommands; - /** - * Adds a new subcommand to this command. - * - * @param input - A function that returns a subcommand builder or an already built builder - */ - addSubcommand(input: SlashCommandSubcommandBuilder | ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder)): TypeAfterAddingSubcommands; -} - -/** - * A builder that creates API-compatible JSON data for slash commands. - */ -declare class SlashCommandBuilder { - /** - * The name of this command. - */ - readonly name: string; - /** - * The name localizations of this command. - */ - readonly name_localizations?: LocalizationMap; - /** - * The description of this command. - */ - readonly description: string; - /** - * The description localizations of this command. - */ - readonly description_localizations?: LocalizationMap; - /** - * The options of this command. - */ - readonly options: ToAPIApplicationCommandOptions[]; - /** - * Whether this command is enabled by default when the application is added to a guild. - * - * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. - */ - readonly default_permission: boolean | undefined; - /** - * The set of permissions represented as a bit set for the command. - */ - readonly default_member_permissions: Permissions | null | undefined; - /** - * Indicates whether the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This property is only for global commands. - */ - readonly dm_permission: boolean | undefined; - /** - * Whether this command is NSFW. - */ - readonly nsfw: boolean | undefined; -} -interface SlashCommandBuilder extends SharedNameAndDescription, SharedSlashCommandOptions, SharedSlashCommandSubcommands, SharedSlashCommand { -} -/** - * An interface specifically for slash command subcommands. - */ -interface SlashCommandSubcommandsOnlyBuilder extends SharedNameAndDescription, SharedSlashCommandSubcommands, SharedSlashCommand { -} -/** - * An interface specifically for slash command options. - */ -interface SlashCommandOptionsOnlyBuilder extends SharedNameAndDescription, SharedSlashCommandOptions, SharedSlashCommand { -} -/** - * An interface that ensures the `toJSON()` call will return something - * that can be serialized into API-compatible data. - */ -interface ToAPIApplicationCommandOptions { - toJSON(): APIApplicationCommandOption; -} - -declare function validateName$1(name: unknown): asserts name is string; -declare function validateDescription(description: unknown): asserts description is string; -declare function validateLocale(locale: unknown): Locale; -declare function validateMaxOptionsLength(options: unknown): asserts options is ToAPIApplicationCommandOptions[]; -declare function validateRequiredParameters$1(name: string, description: string, options: ToAPIApplicationCommandOptions[]): void; -declare function validateDefaultPermission$1(value: unknown): asserts value is boolean; -declare function validateRequired(required: unknown): asserts required is boolean; -declare function validateChoicesLength(amountAdding: number, choices?: APIApplicationCommandOptionChoice[]): void; -declare function assertReturnOfBuilder(input: unknown, ExpectedInstanceOf: new () => ReturnType): asserts input is ReturnType; -declare const localizationMapPredicate: _sapphire_shapeshift.UnionValidator<_sapphire_shapeshift.UndefinedToOptional>> | null | undefined>; -declare function validateLocalizationMap(value: unknown): asserts value is LocalizationMap; -declare function validateDMPermission$1(value: unknown): asserts value is boolean | null | undefined; -declare function validateDefaultMemberPermissions$1(permissions: unknown): string | null | undefined; -declare function validateNSFW(value: unknown): asserts value is boolean; - -declare const Assertions$1_assertReturnOfBuilder: typeof assertReturnOfBuilder; -declare const Assertions$1_localizationMapPredicate: typeof localizationMapPredicate; -declare const Assertions$1_validateChoicesLength: typeof validateChoicesLength; -declare const Assertions$1_validateDescription: typeof validateDescription; -declare const Assertions$1_validateLocale: typeof validateLocale; -declare const Assertions$1_validateLocalizationMap: typeof validateLocalizationMap; -declare const Assertions$1_validateMaxOptionsLength: typeof validateMaxOptionsLength; -declare const Assertions$1_validateNSFW: typeof validateNSFW; -declare const Assertions$1_validateRequired: typeof validateRequired; -declare namespace Assertions$1 { - export { Assertions$1_assertReturnOfBuilder as assertReturnOfBuilder, Assertions$1_localizationMapPredicate as localizationMapPredicate, Assertions$1_validateChoicesLength as validateChoicesLength, validateDMPermission$1 as validateDMPermission, validateDefaultMemberPermissions$1 as validateDefaultMemberPermissions, validateDefaultPermission$1 as validateDefaultPermission, Assertions$1_validateDescription as validateDescription, Assertions$1_validateLocale as validateLocale, Assertions$1_validateLocalizationMap as validateLocalizationMap, Assertions$1_validateMaxOptionsLength as validateMaxOptionsLength, Assertions$1_validateNSFW as validateNSFW, validateName$1 as validateName, Assertions$1_validateRequired as validateRequired, validateRequiredParameters$1 as validateRequiredParameters }; -} - -/** - * The type a context menu command can be. - */ -type ContextMenuCommandType = ApplicationCommandType.Message | ApplicationCommandType.User; -/** - * A builder that creates API-compatible JSON data for context menu commands. - */ -declare class ContextMenuCommandBuilder { - /** - * The name of this command. - */ - readonly name: string; - /** - * The name localizations of this command. - */ - readonly name_localizations?: LocalizationMap; - /** - * The type of this command. - */ - readonly type: ContextMenuCommandType; - /** - * Whether this command is enabled by default when the application is added to a guild. - * - * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead. - */ - readonly default_permission: boolean | undefined; - /** - * The set of permissions represented as a bit set for the command. - */ - readonly default_member_permissions: Permissions | null | undefined; - /** - * Indicates whether the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This property is only for global commands. - */ - readonly dm_permission: boolean | undefined; - /** - * Sets the name of this command. - * - * @param name - The name to use - */ - setName(name: string): this; - /** - * Sets the type of this command. - * - * @param type - The type to use - */ - setType(type: ContextMenuCommandType): this; - /** - * Sets whether the command is enabled by default when the application is added to a guild. - * - * @remarks - * If set to `false`, you will have to later `PUT` the permissions for this command. - * @param value - Whether to enable this command by default - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead. - */ - setDefaultPermission(value: boolean): this; - /** - * Sets the default permissions a member should have in order to run this command. - * - * @remarks - * You can set this to `'0'` to disable the command by default. - * @param permissions - The permissions bit field to set - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - */ - setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined): this; - /** - * Sets if the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This method is only for global commands. - * @param enabled - Whether the command should be enabled in direct messages - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - */ - setDMPermission(enabled: boolean | null | undefined): this; - /** - * Sets a name localization for this command. - * - * @param locale - The locale to set - * @param localizedName - The localized name for the given `locale` - */ - setNameLocalization(locale: LocaleString, localizedName: string | null): this; - /** - * Sets the name localizations for this command. - * - * @param localizedNames - The object of localized names to set - */ - setNameLocalizations(localizedNames: LocalizationMap | null): this; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON(): RESTPostAPIContextMenuApplicationCommandsJSONBody; -} - -declare function validateDefaultPermission(value: unknown): asserts value is boolean; -declare function validateName(name: unknown): asserts name is string; -declare function validateType(type: unknown): asserts type is ContextMenuCommandType; -declare function validateRequiredParameters(name: string, type: number): void; -declare function validateDMPermission(value: unknown): asserts value is boolean | null | undefined; -declare function validateDefaultMemberPermissions(permissions: unknown): string | null | undefined; - -declare const Assertions_validateDMPermission: typeof validateDMPermission; -declare const Assertions_validateDefaultMemberPermissions: typeof validateDefaultMemberPermissions; -declare const Assertions_validateDefaultPermission: typeof validateDefaultPermission; -declare const Assertions_validateName: typeof validateName; -declare const Assertions_validateRequiredParameters: typeof validateRequiredParameters; -declare const Assertions_validateType: typeof validateType; -declare namespace Assertions { - export { Assertions_validateDMPermission as validateDMPermission, Assertions_validateDefaultMemberPermissions as validateDefaultMemberPermissions, Assertions_validateDefaultPermission as validateDefaultPermission, Assertions_validateName as validateName, Assertions_validateRequiredParameters as validateRequiredParameters, Assertions_validateType as validateType }; -} - -/** - * Calculates the length of the embed. - * - * @param data - The embed data to check - */ -declare function embedLength(data: APIEmbed): number; - -/** - * Enables validators. - * - * @returns Whether validation is occurring. - */ -declare function enableValidators(): boolean; -/** - * Disables validators. - * - * @returns Whether validation is occurring. - */ -declare function disableValidators(): boolean; -/** - * Checks whether validation is occurring. - */ -declare function isValidationEnabled(): boolean; - -/** - * The {@link https://github.com/discordjs/discord.js/blob/main/packages/builders#readme | @discordjs/builders} version - * that you are currently using. - * - * @privateRemarks This needs to explicitly be `string` so it is not typed as a "const string" that gets injected by esbuild. - */ -declare const version: string; - -export { ActionRowBuilder, type AnyAPIActionRowComponent, type AnyComponentBuilder, ApplicationCommandNumericOptionMinMaxValueMixin, type ApplicationCommandOptionAllowedChannelTypes, ApplicationCommandOptionBase, ApplicationCommandOptionChannelTypesMixin, ApplicationCommandOptionWithAutocompleteMixin, ApplicationCommandOptionWithChoicesMixin, BaseSelectMenuBuilder, ButtonBuilder, ChannelSelectMenuBuilder, Assertions$4 as ComponentAssertions, ComponentBuilder, Assertions as ContextMenuCommandAssertions, ContextMenuCommandBuilder, type ContextMenuCommandType, Assertions$5 as EmbedAssertions, type EmbedAuthorData, type EmbedAuthorOptions, EmbedBuilder, type EmbedFooterData, type EmbedFooterOptions, type EmbedImageData, type IconData, type MappedComponentTypes, MentionableSelectMenuBuilder, type MessageActionRowComponentBuilder, type MessageComponentBuilder, type ModalActionRowComponentBuilder, Assertions$2 as ModalAssertions, ModalBuilder, type ModalComponentBuilder, type RGBTuple, type RestOrArray, RoleSelectMenuBuilder, StringSelectMenuBuilder as SelectMenuBuilder, StringSelectMenuOptionBuilder as SelectMenuOptionBuilder, SharedNameAndDescription, SharedSlashCommand, SharedSlashCommandOptions, SharedSlashCommandSubcommands, Assertions$1 as SlashCommandAssertions, SlashCommandAttachmentOption, SlashCommandBooleanOption, SlashCommandBuilder, SlashCommandChannelOption, SlashCommandIntegerOption, SlashCommandMentionableOption, SlashCommandNumberOption, type SlashCommandOptionsOnlyBuilder, SlashCommandRoleOption, SlashCommandStringOption, SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder, type SlashCommandSubcommandsOnlyBuilder, SlashCommandUserOption, StringSelectMenuBuilder, StringSelectMenuOptionBuilder, Assertions$3 as TextInputAssertions, TextInputBuilder, type ToAPIApplicationCommandOptions, UserSelectMenuBuilder, createComponentBuilder, disableValidators, embedLength, enableValidators, isValidationEnabled, normalizeArray, version }; diff --git a/node_modules/@discordjs/builders/dist/index.js b/node_modules/@discordjs/builders/dist/index.js deleted file mode 100644 index cbb7eb6..0000000 --- a/node_modules/@discordjs/builders/dist/index.js +++ /dev/null @@ -1,2811 +0,0 @@ -"use strict"; -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); -var __decorateClass = (decorators, target, key, kind) => { - var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target; - for (var i = decorators.length - 1, decorator; i >= 0; i--) - if (decorator = decorators[i]) - result = (kind ? decorator(target, key, result) : decorator(result)) || result; - if (kind && result) - __defProp(target, key, result); - return result; -}; - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - ActionRowBuilder: () => ActionRowBuilder, - ApplicationCommandNumericOptionMinMaxValueMixin: () => ApplicationCommandNumericOptionMinMaxValueMixin, - ApplicationCommandOptionBase: () => ApplicationCommandOptionBase, - ApplicationCommandOptionChannelTypesMixin: () => ApplicationCommandOptionChannelTypesMixin, - ApplicationCommandOptionWithAutocompleteMixin: () => ApplicationCommandOptionWithAutocompleteMixin, - ApplicationCommandOptionWithChoicesMixin: () => ApplicationCommandOptionWithChoicesMixin, - BaseSelectMenuBuilder: () => BaseSelectMenuBuilder, - ButtonBuilder: () => ButtonBuilder, - ChannelSelectMenuBuilder: () => ChannelSelectMenuBuilder, - ComponentAssertions: () => Assertions_exports2, - ComponentBuilder: () => ComponentBuilder, - ContextMenuCommandAssertions: () => Assertions_exports6, - ContextMenuCommandBuilder: () => ContextMenuCommandBuilder, - EmbedAssertions: () => Assertions_exports, - EmbedBuilder: () => EmbedBuilder, - MentionableSelectMenuBuilder: () => MentionableSelectMenuBuilder, - ModalAssertions: () => Assertions_exports4, - ModalBuilder: () => ModalBuilder, - RoleSelectMenuBuilder: () => RoleSelectMenuBuilder, - SelectMenuBuilder: () => StringSelectMenuBuilder, - SelectMenuOptionBuilder: () => StringSelectMenuOptionBuilder, - SharedNameAndDescription: () => SharedNameAndDescription, - SharedSlashCommand: () => SharedSlashCommand, - SharedSlashCommandOptions: () => SharedSlashCommandOptions, - SharedSlashCommandSubcommands: () => SharedSlashCommandSubcommands, - SlashCommandAssertions: () => Assertions_exports5, - SlashCommandAttachmentOption: () => SlashCommandAttachmentOption, - SlashCommandBooleanOption: () => SlashCommandBooleanOption, - SlashCommandBuilder: () => SlashCommandBuilder, - SlashCommandChannelOption: () => SlashCommandChannelOption, - SlashCommandIntegerOption: () => SlashCommandIntegerOption, - SlashCommandMentionableOption: () => SlashCommandMentionableOption, - SlashCommandNumberOption: () => SlashCommandNumberOption, - SlashCommandRoleOption: () => SlashCommandRoleOption, - SlashCommandStringOption: () => SlashCommandStringOption, - SlashCommandSubcommandBuilder: () => SlashCommandSubcommandBuilder, - SlashCommandSubcommandGroupBuilder: () => SlashCommandSubcommandGroupBuilder, - SlashCommandUserOption: () => SlashCommandUserOption, - StringSelectMenuBuilder: () => StringSelectMenuBuilder, - StringSelectMenuOptionBuilder: () => StringSelectMenuOptionBuilder, - TextInputAssertions: () => Assertions_exports3, - TextInputBuilder: () => TextInputBuilder, - UserSelectMenuBuilder: () => UserSelectMenuBuilder, - createComponentBuilder: () => createComponentBuilder, - disableValidators: () => disableValidators, - embedLength: () => embedLength, - enableValidators: () => enableValidators, - isValidationEnabled: () => isValidationEnabled, - normalizeArray: () => normalizeArray, - version: () => version -}); -module.exports = __toCommonJS(src_exports); - -// src/messages/embed/Assertions.ts -var Assertions_exports = {}; -__export(Assertions_exports, { - RGBPredicate: () => RGBPredicate, - authorNamePredicate: () => authorNamePredicate, - colorPredicate: () => colorPredicate, - descriptionPredicate: () => descriptionPredicate, - embedAuthorPredicate: () => embedAuthorPredicate, - embedFieldPredicate: () => embedFieldPredicate, - embedFieldsArrayPredicate: () => embedFieldsArrayPredicate, - embedFooterPredicate: () => embedFooterPredicate, - fieldInlinePredicate: () => fieldInlinePredicate, - fieldLengthPredicate: () => fieldLengthPredicate, - fieldNamePredicate: () => fieldNamePredicate, - fieldValuePredicate: () => fieldValuePredicate, - footerTextPredicate: () => footerTextPredicate, - imageURLPredicate: () => imageURLPredicate, - timestampPredicate: () => timestampPredicate, - titlePredicate: () => titlePredicate, - urlPredicate: () => urlPredicate, - validateFieldLength: () => validateFieldLength -}); -var import_shapeshift = require("@sapphire/shapeshift"); - -// src/util/validation.ts -var validate = true; -function enableValidators() { - return validate = true; -} -__name(enableValidators, "enableValidators"); -function disableValidators() { - return validate = false; -} -__name(disableValidators, "disableValidators"); -function isValidationEnabled() { - return validate; -} -__name(isValidationEnabled, "isValidationEnabled"); - -// src/messages/embed/Assertions.ts -var fieldNamePredicate = import_shapeshift.s.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(256).setValidationEnabled(isValidationEnabled); -var fieldValuePredicate = import_shapeshift.s.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(1024).setValidationEnabled(isValidationEnabled); -var fieldInlinePredicate = import_shapeshift.s.boolean.optional; -var embedFieldPredicate = import_shapeshift.s.object({ - name: fieldNamePredicate, - value: fieldValuePredicate, - inline: fieldInlinePredicate -}).setValidationEnabled(isValidationEnabled); -var embedFieldsArrayPredicate = embedFieldPredicate.array.setValidationEnabled(isValidationEnabled); -var fieldLengthPredicate = import_shapeshift.s.number.lessThanOrEqual(25).setValidationEnabled(isValidationEnabled); -function validateFieldLength(amountAdding, fields) { - fieldLengthPredicate.parse((fields?.length ?? 0) + amountAdding); -} -__name(validateFieldLength, "validateFieldLength"); -var authorNamePredicate = fieldNamePredicate.nullable.setValidationEnabled(isValidationEnabled); -var imageURLPredicate = import_shapeshift.s.string.url({ - allowedProtocols: ["http:", "https:", "attachment:"] -}).nullish.setValidationEnabled(isValidationEnabled); -var urlPredicate = import_shapeshift.s.string.url({ - allowedProtocols: ["http:", "https:"] -}).nullish.setValidationEnabled(isValidationEnabled); -var embedAuthorPredicate = import_shapeshift.s.object({ - name: authorNamePredicate, - iconURL: imageURLPredicate, - url: urlPredicate -}).setValidationEnabled(isValidationEnabled); -var RGBPredicate = import_shapeshift.s.number.int.greaterThanOrEqual(0).lessThanOrEqual(255).setValidationEnabled(isValidationEnabled); -var colorPredicate = import_shapeshift.s.number.int.greaterThanOrEqual(0).lessThanOrEqual(16777215).or(import_shapeshift.s.tuple([RGBPredicate, RGBPredicate, RGBPredicate])).nullable.setValidationEnabled(isValidationEnabled); -var descriptionPredicate = import_shapeshift.s.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(4096).nullable.setValidationEnabled(isValidationEnabled); -var footerTextPredicate = import_shapeshift.s.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(2048).nullable.setValidationEnabled(isValidationEnabled); -var embedFooterPredicate = import_shapeshift.s.object({ - text: footerTextPredicate, - iconURL: imageURLPredicate -}).setValidationEnabled(isValidationEnabled); -var timestampPredicate = import_shapeshift.s.union(import_shapeshift.s.number, import_shapeshift.s.date).nullable.setValidationEnabled(isValidationEnabled); -var titlePredicate = fieldNamePredicate.nullable.setValidationEnabled(isValidationEnabled); - -// src/util/normalizeArray.ts -function normalizeArray(arr) { - if (Array.isArray(arr[0])) - return [...arr[0]]; - return arr; -} -__name(normalizeArray, "normalizeArray"); - -// src/messages/embed/Embed.ts -var EmbedBuilder = class { - static { - __name(this, "EmbedBuilder"); - } - /** - * The API data associated with this embed. - */ - data; - /** - * Creates a new embed from API data. - * - * @param data - The API data to create this embed with - */ - constructor(data = {}) { - this.data = { ...data }; - if (data.timestamp) - this.data.timestamp = new Date(data.timestamp).toISOString(); - } - /** - * Appends fields to the embed. - * - * @remarks - * This method accepts either an array of fields or a variable number of field parameters. - * The maximum amount of fields that can be added is 25. - * @example - * Using an array: - * ```ts - * const fields: APIEmbedField[] = ...; - * const embed = new EmbedBuilder() - * .addFields(fields); - * ``` - * @example - * Using rest parameters (variadic): - * ```ts - * const embed = new EmbedBuilder() - * .addFields( - * { name: 'Field 1', value: 'Value 1' }, - * { name: 'Field 2', value: 'Value 2' }, - * ); - * ``` - * @param fields - The fields to add - */ - addFields(...fields) { - const normalizedFields = normalizeArray(fields); - validateFieldLength(normalizedFields.length, this.data.fields); - embedFieldsArrayPredicate.parse(normalizedFields); - if (this.data.fields) - this.data.fields.push(...normalizedFields); - else - this.data.fields = normalizedFields; - return this; - } - /** - * Removes, replaces, or inserts fields for this embed. - * - * @remarks - * This method behaves similarly - * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. - * The maximum amount of fields that can be added is 25. - * - * It's useful for modifying and adjusting order of the already-existing fields of an embed. - * @example - * Remove the first field: - * ```ts - * embed.spliceFields(0, 1); - * ``` - * @example - * Remove the first n fields: - * ```ts - * const n = 4; - * embed.spliceFields(0, n); - * ``` - * @example - * Remove the last field: - * ```ts - * embed.spliceFields(-1, 1); - * ``` - * @param index - The index to start at - * @param deleteCount - The number of fields to remove - * @param fields - The replacing field objects - */ - spliceFields(index, deleteCount, ...fields) { - validateFieldLength(fields.length - deleteCount, this.data.fields); - embedFieldsArrayPredicate.parse(fields); - if (this.data.fields) - this.data.fields.splice(index, deleteCount, ...fields); - else - this.data.fields = fields; - return this; - } - /** - * Sets the fields for this embed. - * - * @remarks - * This method is an alias for {@link EmbedBuilder.spliceFields}. More specifically, - * it splices the entire array of fields, replacing them with the provided fields. - * - * You can set a maximum of 25 fields. - * @param fields - The fields to set - */ - setFields(...fields) { - this.spliceFields(0, this.data.fields?.length ?? 0, ...normalizeArray(fields)); - return this; - } - /** - * Sets the author of this embed. - * - * @param options - The options to use - */ - setAuthor(options) { - if (options === null) { - this.data.author = void 0; - return this; - } - embedAuthorPredicate.parse(options); - this.data.author = { name: options.name, url: options.url, icon_url: options.iconURL }; - return this; - } - /** - * Sets the color of this embed. - * - * @param color - The color to use - */ - setColor(color) { - colorPredicate.parse(color); - if (Array.isArray(color)) { - const [red, green, blue] = color; - this.data.color = (red << 16) + (green << 8) + blue; - return this; - } - this.data.color = color ?? void 0; - return this; - } - /** - * Sets the description of this embed. - * - * @param description - The description to use - */ - setDescription(description) { - descriptionPredicate.parse(description); - this.data.description = description ?? void 0; - return this; - } - /** - * Sets the footer of this embed. - * - * @param options - The footer to use - */ - setFooter(options) { - if (options === null) { - this.data.footer = void 0; - return this; - } - embedFooterPredicate.parse(options); - this.data.footer = { text: options.text, icon_url: options.iconURL }; - return this; - } - /** - * Sets the image of this embed. - * - * @param url - The image URL to use - */ - setImage(url) { - imageURLPredicate.parse(url); - this.data.image = url ? { url } : void 0; - return this; - } - /** - * Sets the thumbnail of this embed. - * - * @param url - The thumbnail URL to use - */ - setThumbnail(url) { - imageURLPredicate.parse(url); - this.data.thumbnail = url ? { url } : void 0; - return this; - } - /** - * Sets the timestamp of this embed. - * - * @param timestamp - The timestamp or date to use - */ - setTimestamp(timestamp = Date.now()) { - timestampPredicate.parse(timestamp); - this.data.timestamp = timestamp ? new Date(timestamp).toISOString() : void 0; - return this; - } - /** - * Sets the title for this embed. - * - * @param title - The title to use - */ - setTitle(title) { - titlePredicate.parse(title); - this.data.title = title ?? void 0; - return this; - } - /** - * Sets the URL of this embed. - * - * @param url - The URL to use - */ - setURL(url) { - urlPredicate.parse(url); - this.data.url = url ?? void 0; - return this; - } - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON() { - return { ...this.data }; - } -}; - -// src/index.ts -__reExport(src_exports, require("@discordjs/formatters"), module.exports); - -// src/components/Assertions.ts -var Assertions_exports2 = {}; -__export(Assertions_exports2, { - buttonLabelValidator: () => buttonLabelValidator, - buttonStyleValidator: () => buttonStyleValidator, - channelTypesValidator: () => channelTypesValidator, - customIdValidator: () => customIdValidator, - defaultValidator: () => defaultValidator, - disabledValidator: () => disabledValidator, - emojiValidator: () => emojiValidator, - jsonOptionValidator: () => jsonOptionValidator, - labelValueDescriptionValidator: () => labelValueDescriptionValidator, - minMaxValidator: () => minMaxValidator, - optionValidator: () => optionValidator, - optionsLengthValidator: () => optionsLengthValidator, - optionsValidator: () => optionsValidator, - placeholderValidator: () => placeholderValidator, - urlValidator: () => urlValidator, - validateRequiredButtonParameters: () => validateRequiredButtonParameters, - validateRequiredSelectMenuOptionParameters: () => validateRequiredSelectMenuOptionParameters, - validateRequiredSelectMenuParameters: () => validateRequiredSelectMenuParameters -}); -var import_shapeshift2 = require("@sapphire/shapeshift"); -var import_v10 = require("discord-api-types/v10"); - -// src/components/selectMenu/StringSelectMenuOption.ts -var StringSelectMenuOptionBuilder = class { - /** - * Creates a new string select menu option from API data. - * - * @param data - The API data to create this string select menu option with - * @example - * Creating a string select menu option from an API data object: - * ```ts - * const selectMenuOption = new SelectMenuOptionBuilder({ - * label: 'catchy label', - * value: '1', - * }); - * ``` - * @example - * Creating a string select menu option using setters and API data: - * ```ts - * const selectMenuOption = new SelectMenuOptionBuilder({ - * default: true, - * value: '1', - * }) - * .setLabel('woah'); - * ``` - */ - constructor(data = {}) { - this.data = data; - } - static { - __name(this, "StringSelectMenuOptionBuilder"); - } - /** - * Sets the label for this option. - * - * @param label - The label to use - */ - setLabel(label) { - this.data.label = labelValueDescriptionValidator.parse(label); - return this; - } - /** - * Sets the value for this option. - * - * @param value - The value to use - */ - setValue(value) { - this.data.value = labelValueDescriptionValidator.parse(value); - return this; - } - /** - * Sets the description for this option. - * - * @param description - The description to use - */ - setDescription(description) { - this.data.description = labelValueDescriptionValidator.parse(description); - return this; - } - /** - * Sets whether this option is selected by default. - * - * @param isDefault - Whether this option is selected by default - */ - setDefault(isDefault = true) { - this.data.default = defaultValidator.parse(isDefault); - return this; - } - /** - * Sets the emoji to display for this option. - * - * @param emoji - The emoji to use - */ - setEmoji(emoji) { - this.data.emoji = emojiValidator.parse(emoji); - return this; - } - /** - * {@inheritDoc BaseSelectMenuBuilder.toJSON} - */ - toJSON() { - validateRequiredSelectMenuOptionParameters(this.data.label, this.data.value); - return { - ...this.data - }; - } -}; - -// src/components/Assertions.ts -var customIdValidator = import_shapeshift2.s.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled); -var emojiValidator = import_shapeshift2.s.object({ - id: import_shapeshift2.s.string, - name: import_shapeshift2.s.string, - animated: import_shapeshift2.s.boolean -}).partial.strict.setValidationEnabled(isValidationEnabled); -var disabledValidator = import_shapeshift2.s.boolean; -var buttonLabelValidator = import_shapeshift2.s.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(80).setValidationEnabled(isValidationEnabled); -var buttonStyleValidator = import_shapeshift2.s.nativeEnum(import_v10.ButtonStyle); -var placeholderValidator = import_shapeshift2.s.string.lengthLessThanOrEqual(150).setValidationEnabled(isValidationEnabled); -var minMaxValidator = import_shapeshift2.s.number.int.greaterThanOrEqual(0).lessThanOrEqual(25).setValidationEnabled(isValidationEnabled); -var labelValueDescriptionValidator = import_shapeshift2.s.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled); -var jsonOptionValidator = import_shapeshift2.s.object({ - label: labelValueDescriptionValidator, - value: labelValueDescriptionValidator, - description: labelValueDescriptionValidator.optional, - emoji: emojiValidator.optional, - default: import_shapeshift2.s.boolean.optional -}).setValidationEnabled(isValidationEnabled); -var optionValidator = import_shapeshift2.s.instance(StringSelectMenuOptionBuilder).setValidationEnabled(isValidationEnabled); -var optionsValidator = optionValidator.array.lengthGreaterThanOrEqual(0).setValidationEnabled(isValidationEnabled); -var optionsLengthValidator = import_shapeshift2.s.number.int.greaterThanOrEqual(0).lessThanOrEqual(25).setValidationEnabled(isValidationEnabled); -function validateRequiredSelectMenuParameters(options, customId) { - customIdValidator.parse(customId); - optionsValidator.parse(options); -} -__name(validateRequiredSelectMenuParameters, "validateRequiredSelectMenuParameters"); -var defaultValidator = import_shapeshift2.s.boolean; -function validateRequiredSelectMenuOptionParameters(label, value) { - labelValueDescriptionValidator.parse(label); - labelValueDescriptionValidator.parse(value); -} -__name(validateRequiredSelectMenuOptionParameters, "validateRequiredSelectMenuOptionParameters"); -var channelTypesValidator = import_shapeshift2.s.nativeEnum(import_v10.ChannelType).array.setValidationEnabled(isValidationEnabled); -var urlValidator = import_shapeshift2.s.string.url({ - allowedProtocols: ["http:", "https:", "discord:"] -}).setValidationEnabled(isValidationEnabled); -function validateRequiredButtonParameters(style, label, emoji, customId, url) { - if (url && customId) { - throw new RangeError("URL and custom id are mutually exclusive"); - } - if (!label && !emoji) { - throw new RangeError("Buttons must have a label and/or an emoji"); - } - if (style === import_v10.ButtonStyle.Link) { - if (!url) { - throw new RangeError("Link buttons must have a url"); - } - } else if (url) { - throw new RangeError("Non-link buttons cannot have a url"); - } -} -__name(validateRequiredButtonParameters, "validateRequiredButtonParameters"); - -// src/components/ActionRow.ts -var import_v1011 = require("discord-api-types/v10"); - -// src/components/Component.ts -var ComponentBuilder = class { - static { - __name(this, "ComponentBuilder"); - } - /** - * The API data associated with this component. - */ - data; - /** - * Constructs a new kind of component. - * - * @param data - The data to construct a component out of - */ - constructor(data) { - this.data = data; - } -}; - -// src/components/Components.ts -var import_v1010 = require("discord-api-types/v10"); - -// src/components/button/Button.ts -var import_v102 = require("discord-api-types/v10"); -var ButtonBuilder = class extends ComponentBuilder { - static { - __name(this, "ButtonBuilder"); - } - /** - * Creates a new button from API data. - * - * @param data - The API data to create this button with - * @example - * Creating a button from an API data object: - * ```ts - * const button = new ButtonBuilder({ - * custom_id: 'a cool button', - * style: ButtonStyle.Primary, - * label: 'Click Me', - * emoji: { - * name: 'smile', - * id: '123456789012345678', - * }, - * }); - * ``` - * @example - * Creating a button using setters and API data: - * ```ts - * const button = new ButtonBuilder({ - * style: ButtonStyle.Secondary, - * label: 'Click Me', - * }) - * .setEmoji({ name: '🙂' }) - * .setCustomId('another cool button'); - * ``` - */ - constructor(data) { - super({ type: import_v102.ComponentType.Button, ...data }); - } - /** - * Sets the style of this button. - * - * @param style - The style to use - */ - setStyle(style) { - this.data.style = buttonStyleValidator.parse(style); - return this; - } - /** - * Sets the URL for this button. - * - * @remarks - * This method is only available to buttons using the `Link` button style. - * Only three types of URL schemes are currently supported: `https://`, `http://`, and `discord://`. - * @param url - The URL to use - */ - setURL(url) { - this.data.url = urlValidator.parse(url); - return this; - } - /** - * Sets the custom id for this button. - * - * @remarks - * This method is only applicable to buttons that are not using the `Link` button style. - * @param customId - The custom id to use - */ - setCustomId(customId) { - this.data.custom_id = customIdValidator.parse(customId); - return this; - } - /** - * Sets the emoji to display on this button. - * - * @param emoji - The emoji to use - */ - setEmoji(emoji) { - this.data.emoji = emojiValidator.parse(emoji); - return this; - } - /** - * Sets whether this button is disabled. - * - * @param disabled - Whether to disable this button - */ - setDisabled(disabled = true) { - this.data.disabled = disabledValidator.parse(disabled); - return this; - } - /** - * Sets the label for this button. - * - * @param label - The label to use - */ - setLabel(label) { - this.data.label = buttonLabelValidator.parse(label); - return this; - } - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON() { - validateRequiredButtonParameters( - this.data.style, - this.data.label, - this.data.emoji, - this.data.custom_id, - this.data.url - ); - return { - ...this.data - }; - } -}; - -// src/components/selectMenu/ChannelSelectMenu.ts -var import_v103 = require("discord-api-types/v10"); - -// src/components/selectMenu/BaseSelectMenu.ts -var BaseSelectMenuBuilder = class extends ComponentBuilder { - static { - __name(this, "BaseSelectMenuBuilder"); - } - /** - * Sets the placeholder for this select menu. - * - * @param placeholder - The placeholder to use - */ - setPlaceholder(placeholder) { - this.data.placeholder = placeholderValidator.parse(placeholder); - return this; - } - /** - * Sets the minimum values that must be selected in the select menu. - * - * @param minValues - The minimum values that must be selected - */ - setMinValues(minValues) { - this.data.min_values = minMaxValidator.parse(minValues); - return this; - } - /** - * Sets the maximum values that must be selected in the select menu. - * - * @param maxValues - The maximum values that must be selected - */ - setMaxValues(maxValues) { - this.data.max_values = minMaxValidator.parse(maxValues); - return this; - } - /** - * Sets the custom id for this select menu. - * - * @param customId - The custom id to use - */ - setCustomId(customId) { - this.data.custom_id = customIdValidator.parse(customId); - return this; - } - /** - * Sets whether this select menu is disabled. - * - * @param disabled - Whether this select menu is disabled - */ - setDisabled(disabled = true) { - this.data.disabled = disabledValidator.parse(disabled); - return this; - } - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON() { - customIdValidator.parse(this.data.custom_id); - return { - ...this.data - }; - } -}; - -// src/components/selectMenu/ChannelSelectMenu.ts -var ChannelSelectMenuBuilder = class extends BaseSelectMenuBuilder { - static { - __name(this, "ChannelSelectMenuBuilder"); - } - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new ChannelSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new ChannelSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .addChannelTypes(ChannelType.GuildText, ChannelType.GuildAnnouncement) - * .setMinValues(2); - * ``` - */ - constructor(data) { - super({ ...data, type: import_v103.ComponentType.ChannelSelect }); - } - /** - * Adds channel types to this select menu. - * - * @param types - The channel types to use - */ - addChannelTypes(...types) { - const normalizedTypes = normalizeArray(types); - this.data.channel_types ??= []; - this.data.channel_types.push(...channelTypesValidator.parse(normalizedTypes)); - return this; - } - /** - * Sets channel types for this select menu. - * - * @param types - The channel types to use - */ - setChannelTypes(...types) { - const normalizedTypes = normalizeArray(types); - this.data.channel_types ??= []; - this.data.channel_types.splice(0, this.data.channel_types.length, ...channelTypesValidator.parse(normalizedTypes)); - return this; - } - /** - * Adds default channels to this auto populated select menu. - * - * @param channels - The channels to add - */ - addDefaultChannels(...channels) { - const normalizedValues = normalizeArray(channels); - optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); - this.data.default_values ??= []; - this.data.default_values.push( - ...normalizedValues.map((id) => ({ - id, - type: import_v103.SelectMenuDefaultValueType.Channel - })) - ); - return this; - } - /** - * Sets default channels to this auto populated select menu. - * - * @param channels - The channels to set - */ - setDefaultChannels(...channels) { - const normalizedValues = normalizeArray(channels); - optionsLengthValidator.parse(normalizedValues.length); - this.data.default_values = normalizedValues.map((id) => ({ - id, - type: import_v103.SelectMenuDefaultValueType.Channel - })); - return this; - } - /** - * {@inheritDoc BaseSelectMenuBuilder.toJSON} - */ - toJSON() { - customIdValidator.parse(this.data.custom_id); - return { - ...this.data - }; - } -}; - -// src/components/selectMenu/MentionableSelectMenu.ts -var import_v104 = require("discord-api-types/v10"); -var MentionableSelectMenuBuilder = class extends BaseSelectMenuBuilder { - static { - __name(this, "MentionableSelectMenuBuilder"); - } - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new MentionableSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new MentionableSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1); - * ``` - */ - constructor(data) { - super({ ...data, type: import_v104.ComponentType.MentionableSelect }); - } - /** - * Adds default roles to this auto populated select menu. - * - * @param roles - The roles to add - */ - addDefaultRoles(...roles) { - const normalizedValues = normalizeArray(roles); - optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); - this.data.default_values ??= []; - this.data.default_values.push( - ...normalizedValues.map((id) => ({ - id, - type: import_v104.SelectMenuDefaultValueType.Role - })) - ); - return this; - } - /** - * Adds default users to this auto populated select menu. - * - * @param users - The users to add - */ - addDefaultUsers(...users) { - const normalizedValues = normalizeArray(users); - optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); - this.data.default_values ??= []; - this.data.default_values.push( - ...normalizedValues.map((id) => ({ - id, - type: import_v104.SelectMenuDefaultValueType.User - })) - ); - return this; - } - /** - * Adds default values to this auto populated select menu. - * - * @param values - The values to add - */ - addDefaultValues(...values) { - const normalizedValues = normalizeArray(values); - optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); - this.data.default_values ??= []; - this.data.default_values.push(...normalizedValues); - return this; - } - /** - * Sets default values to this auto populated select menu. - * - * @param values - The values to set - */ - setDefaultValues(...values) { - const normalizedValues = normalizeArray(values); - optionsLengthValidator.parse(normalizedValues.length); - this.data.default_values = normalizedValues; - return this; - } -}; - -// src/components/selectMenu/RoleSelectMenu.ts -var import_v105 = require("discord-api-types/v10"); -var RoleSelectMenuBuilder = class extends BaseSelectMenuBuilder { - static { - __name(this, "RoleSelectMenuBuilder"); - } - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new RoleSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new RoleSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1); - * ``` - */ - constructor(data) { - super({ ...data, type: import_v105.ComponentType.RoleSelect }); - } - /** - * Adds default roles to this auto populated select menu. - * - * @param roles - The roles to add - */ - addDefaultRoles(...roles) { - const normalizedValues = normalizeArray(roles); - optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); - this.data.default_values ??= []; - this.data.default_values.push( - ...normalizedValues.map((id) => ({ - id, - type: import_v105.SelectMenuDefaultValueType.Role - })) - ); - return this; - } - /** - * Sets default roles to this auto populated select menu. - * - * @param roles - The roles to set - */ - setDefaultRoles(...roles) { - const normalizedValues = normalizeArray(roles); - optionsLengthValidator.parse(normalizedValues.length); - this.data.default_values = normalizedValues.map((id) => ({ - id, - type: import_v105.SelectMenuDefaultValueType.Role - })); - return this; - } -}; - -// src/components/selectMenu/StringSelectMenu.ts -var import_v106 = require("discord-api-types/v10"); -var StringSelectMenuBuilder = class extends BaseSelectMenuBuilder { - static { - __name(this, "StringSelectMenuBuilder"); - } - /** - * The options within this select menu. - */ - options; - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new StringSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * options: [ - * { label: 'option 1', value: '1' }, - * { label: 'option 2', value: '2' }, - * { label: 'option 3', value: '3' }, - * ], - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new StringSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1) - * .addOptions({ - * label: 'Catchy', - * value: 'catch', - * }); - * ``` - */ - constructor(data) { - const { options, ...initData } = data ?? {}; - super({ ...initData, type: import_v106.ComponentType.StringSelect }); - this.options = options?.map((option) => new StringSelectMenuOptionBuilder(option)) ?? []; - } - /** - * Adds options to this select menu. - * - * @param options - The options to add - */ - addOptions(...options) { - const normalizedOptions = normalizeArray(options); - optionsLengthValidator.parse(this.options.length + normalizedOptions.length); - this.options.push( - ...normalizedOptions.map( - (normalizedOption) => normalizedOption instanceof StringSelectMenuOptionBuilder ? normalizedOption : new StringSelectMenuOptionBuilder(jsonOptionValidator.parse(normalizedOption)) - ) - ); - return this; - } - /** - * Sets the options for this select menu. - * - * @param options - The options to set - */ - setOptions(...options) { - return this.spliceOptions(0, this.options.length, ...options); - } - /** - * Removes, replaces, or inserts options for this select menu. - * - * @remarks - * This method behaves similarly - * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice | Array.prototype.splice()}. - * It's useful for modifying and adjusting the order of existing options. - * @example - * Remove the first option: - * ```ts - * selectMenu.spliceOptions(0, 1); - * ``` - * @example - * Remove the first n option: - * ```ts - * const n = 4; - * selectMenu.spliceOptions(0, n); - * ``` - * @example - * Remove the last option: - * ```ts - * selectMenu.spliceOptions(-1, 1); - * ``` - * @param index - The index to start at - * @param deleteCount - The number of options to remove - * @param options - The replacing option objects or builders - */ - spliceOptions(index, deleteCount, ...options) { - const normalizedOptions = normalizeArray(options); - const clone = [...this.options]; - clone.splice( - index, - deleteCount, - ...normalizedOptions.map( - (normalizedOption) => normalizedOption instanceof StringSelectMenuOptionBuilder ? normalizedOption : new StringSelectMenuOptionBuilder(jsonOptionValidator.parse(normalizedOption)) - ) - ); - optionsLengthValidator.parse(clone.length); - this.options.splice(0, this.options.length, ...clone); - return this; - } - /** - * {@inheritDoc BaseSelectMenuBuilder.toJSON} - */ - toJSON() { - validateRequiredSelectMenuParameters(this.options, this.data.custom_id); - return { - ...this.data, - options: this.options.map((option) => option.toJSON()) - }; - } -}; - -// src/components/selectMenu/UserSelectMenu.ts -var import_v107 = require("discord-api-types/v10"); -var UserSelectMenuBuilder = class extends BaseSelectMenuBuilder { - static { - __name(this, "UserSelectMenuBuilder"); - } - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new UserSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new UserSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1); - * ``` - */ - constructor(data) { - super({ ...data, type: import_v107.ComponentType.UserSelect }); - } - /** - * Adds default users to this auto populated select menu. - * - * @param users - The users to add - */ - addDefaultUsers(...users) { - const normalizedValues = normalizeArray(users); - optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); - this.data.default_values ??= []; - this.data.default_values.push( - ...normalizedValues.map((id) => ({ - id, - type: import_v107.SelectMenuDefaultValueType.User - })) - ); - return this; - } - /** - * Sets default users to this auto populated select menu. - * - * @param users - The users to set - */ - setDefaultUsers(...users) { - const normalizedValues = normalizeArray(users); - optionsLengthValidator.parse(normalizedValues.length); - this.data.default_values = normalizedValues.map((id) => ({ - id, - type: import_v107.SelectMenuDefaultValueType.User - })); - return this; - } -}; - -// src/components/textInput/TextInput.ts -var import_util = require("@discordjs/util"); -var import_v109 = require("discord-api-types/v10"); -var import_fast_deep_equal = __toESM(require("fast-deep-equal")); - -// src/components/textInput/Assertions.ts -var Assertions_exports3 = {}; -__export(Assertions_exports3, { - labelValidator: () => labelValidator, - maxLengthValidator: () => maxLengthValidator, - minLengthValidator: () => minLengthValidator, - placeholderValidator: () => placeholderValidator2, - requiredValidator: () => requiredValidator, - textInputStyleValidator: () => textInputStyleValidator, - validateRequiredParameters: () => validateRequiredParameters, - valueValidator: () => valueValidator -}); -var import_shapeshift3 = require("@sapphire/shapeshift"); -var import_v108 = require("discord-api-types/v10"); -var textInputStyleValidator = import_shapeshift3.s.nativeEnum(import_v108.TextInputStyle); -var minLengthValidator = import_shapeshift3.s.number.int.greaterThanOrEqual(0).lessThanOrEqual(4e3).setValidationEnabled(isValidationEnabled); -var maxLengthValidator = import_shapeshift3.s.number.int.greaterThanOrEqual(1).lessThanOrEqual(4e3).setValidationEnabled(isValidationEnabled); -var requiredValidator = import_shapeshift3.s.boolean; -var valueValidator = import_shapeshift3.s.string.lengthLessThanOrEqual(4e3).setValidationEnabled(isValidationEnabled); -var placeholderValidator2 = import_shapeshift3.s.string.lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled); -var labelValidator = import_shapeshift3.s.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(45).setValidationEnabled(isValidationEnabled); -function validateRequiredParameters(customId, style, label) { - customIdValidator.parse(customId); - textInputStyleValidator.parse(style); - labelValidator.parse(label); -} -__name(validateRequiredParameters, "validateRequiredParameters"); - -// src/components/textInput/TextInput.ts -var TextInputBuilder = class extends ComponentBuilder { - static { - __name(this, "TextInputBuilder"); - } - /** - * Creates a new text input from API data. - * - * @param data - The API data to create this text input with - * @example - * Creating a select menu option from an API data object: - * ```ts - * const textInput = new TextInputBuilder({ - * custom_id: 'a cool select menu', - * label: 'Type something', - * style: TextInputStyle.Short, - * }); - * ``` - * @example - * Creating a select menu option using setters and API data: - * ```ts - * const textInput = new TextInputBuilder({ - * label: 'Type something else', - * }) - * .setCustomId('woah') - * .setStyle(TextInputStyle.Paragraph); - * ``` - */ - constructor(data) { - super({ type: import_v109.ComponentType.TextInput, ...data }); - } - /** - * Sets the custom id for this text input. - * - * @param customId - The custom id to use - */ - setCustomId(customId) { - this.data.custom_id = customIdValidator.parse(customId); - return this; - } - /** - * Sets the label for this text input. - * - * @param label - The label to use - */ - setLabel(label) { - this.data.label = labelValidator.parse(label); - return this; - } - /** - * Sets the style for this text input. - * - * @param style - The style to use - */ - setStyle(style) { - this.data.style = textInputStyleValidator.parse(style); - return this; - } - /** - * Sets the minimum length of text for this text input. - * - * @param minLength - The minimum length of text for this text input - */ - setMinLength(minLength) { - this.data.min_length = minLengthValidator.parse(minLength); - return this; - } - /** - * Sets the maximum length of text for this text input. - * - * @param maxLength - The maximum length of text for this text input - */ - setMaxLength(maxLength) { - this.data.max_length = maxLengthValidator.parse(maxLength); - return this; - } - /** - * Sets the placeholder for this text input. - * - * @param placeholder - The placeholder to use - */ - setPlaceholder(placeholder) { - this.data.placeholder = placeholderValidator2.parse(placeholder); - return this; - } - /** - * Sets the value for this text input. - * - * @param value - The value to use - */ - setValue(value) { - this.data.value = valueValidator.parse(value); - return this; - } - /** - * Sets whether this text input is required. - * - * @param required - Whether this text input is required - */ - setRequired(required = true) { - this.data.required = requiredValidator.parse(required); - return this; - } - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON() { - validateRequiredParameters(this.data.custom_id, this.data.style, this.data.label); - return { - ...this.data - }; - } - /** - * Whether this is equal to another structure. - */ - equals(other) { - if ((0, import_util.isJSONEncodable)(other)) { - return (0, import_fast_deep_equal.default)(other.toJSON(), this.data); - } - return (0, import_fast_deep_equal.default)(other, this.data); - } -}; - -// src/components/Components.ts -function createComponentBuilder(data) { - if (data instanceof ComponentBuilder) { - return data; - } - switch (data.type) { - case import_v1010.ComponentType.ActionRow: - return new ActionRowBuilder(data); - case import_v1010.ComponentType.Button: - return new ButtonBuilder(data); - case import_v1010.ComponentType.StringSelect: - return new StringSelectMenuBuilder(data); - case import_v1010.ComponentType.TextInput: - return new TextInputBuilder(data); - case import_v1010.ComponentType.UserSelect: - return new UserSelectMenuBuilder(data); - case import_v1010.ComponentType.RoleSelect: - return new RoleSelectMenuBuilder(data); - case import_v1010.ComponentType.MentionableSelect: - return new MentionableSelectMenuBuilder(data); - case import_v1010.ComponentType.ChannelSelect: - return new ChannelSelectMenuBuilder(data); - default: - throw new Error(`Cannot properly serialize component type: ${data.type}`); - } -} -__name(createComponentBuilder, "createComponentBuilder"); - -// src/components/ActionRow.ts -var ActionRowBuilder = class extends ComponentBuilder { - static { - __name(this, "ActionRowBuilder"); - } - /** - * The components within this action row. - */ - components; - /** - * Creates a new action row from API data. - * - * @param data - The API data to create this action row with - * @example - * Creating an action row from an API data object: - * ```ts - * const actionRow = new ActionRowBuilder({ - * components: [ - * { - * custom_id: "custom id", - * label: "Type something", - * style: TextInputStyle.Short, - * type: ComponentType.TextInput, - * }, - * ], - * }); - * ``` - * @example - * Creating an action row using setters and API data: - * ```ts - * const actionRow = new ActionRowBuilder({ - * components: [ - * { - * custom_id: "custom id", - * label: "Click me", - * style: ButtonStyle.Primary, - * type: ComponentType.Button, - * }, - * ], - * }) - * .addComponents(button2, button3); - * ``` - */ - constructor({ components, ...data } = {}) { - super({ type: import_v1011.ComponentType.ActionRow, ...data }); - this.components = components?.map((component) => createComponentBuilder(component)) ?? []; - } - /** - * Adds components to this action row. - * - * @param components - The components to add - */ - addComponents(...components) { - this.components.push(...normalizeArray(components)); - return this; - } - /** - * Sets components for this action row. - * - * @param components - The components to set - */ - setComponents(...components) { - this.components.splice(0, this.components.length, ...normalizeArray(components)); - return this; - } - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON() { - return { - ...this.data, - components: this.components.map((component) => component.toJSON()) - }; - } -}; - -// src/interactions/modals/Assertions.ts -var Assertions_exports4 = {}; -__export(Assertions_exports4, { - componentsValidator: () => componentsValidator, - titleValidator: () => titleValidator, - validateRequiredParameters: () => validateRequiredParameters2 -}); -var import_shapeshift4 = require("@sapphire/shapeshift"); -var titleValidator = import_shapeshift4.s.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(45).setValidationEnabled(isValidationEnabled); -var componentsValidator = import_shapeshift4.s.instance(ActionRowBuilder).array.lengthGreaterThanOrEqual(1).setValidationEnabled(isValidationEnabled); -function validateRequiredParameters2(customId, title, components) { - customIdValidator.parse(customId); - titleValidator.parse(title); - componentsValidator.parse(components); -} -__name(validateRequiredParameters2, "validateRequiredParameters"); - -// src/interactions/modals/Modal.ts -var ModalBuilder = class { - static { - __name(this, "ModalBuilder"); - } - /** - * The API data associated with this modal. - */ - data; - /** - * The components within this modal. - */ - components = []; - /** - * Creates a new modal from API data. - * - * @param data - The API data to create this modal with - */ - constructor({ components, ...data } = {}) { - this.data = { ...data }; - this.components = components?.map((component) => createComponentBuilder(component)) ?? []; - } - /** - * Sets the title of this modal. - * - * @param title - The title to use - */ - setTitle(title) { - this.data.title = titleValidator.parse(title); - return this; - } - /** - * Sets the custom id of this modal. - * - * @param customId - The custom id to use - */ - setCustomId(customId) { - this.data.custom_id = customIdValidator.parse(customId); - return this; - } - /** - * Adds components to this modal. - * - * @param components - The components to add - */ - addComponents(...components) { - this.components.push( - ...normalizeArray(components).map( - (component) => component instanceof ActionRowBuilder ? component : new ActionRowBuilder(component) - ) - ); - return this; - } - /** - * Sets components for this modal. - * - * @param components - The components to set - */ - setComponents(...components) { - this.components.splice(0, this.components.length, ...normalizeArray(components)); - return this; - } - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON() { - validateRequiredParameters2(this.data.custom_id, this.data.title, this.components); - return { - ...this.data, - components: this.components.map((component) => component.toJSON()) - }; - } -}; - -// src/interactions/slashCommands/Assertions.ts -var Assertions_exports5 = {}; -__export(Assertions_exports5, { - assertReturnOfBuilder: () => assertReturnOfBuilder, - localizationMapPredicate: () => localizationMapPredicate, - validateChoicesLength: () => validateChoicesLength, - validateDMPermission: () => validateDMPermission, - validateDefaultMemberPermissions: () => validateDefaultMemberPermissions, - validateDefaultPermission: () => validateDefaultPermission, - validateDescription: () => validateDescription, - validateLocale: () => validateLocale, - validateLocalizationMap: () => validateLocalizationMap, - validateMaxOptionsLength: () => validateMaxOptionsLength, - validateNSFW: () => validateNSFW, - validateName: () => validateName, - validateRequired: () => validateRequired, - validateRequiredParameters: () => validateRequiredParameters3 -}); -var import_shapeshift5 = require("@sapphire/shapeshift"); -var import_v1012 = require("discord-api-types/v10"); -var namePredicate = import_shapeshift5.s.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(32).regex(/^[\p{Ll}\p{Lm}\p{Lo}\p{N}\p{sc=Devanagari}\p{sc=Thai}_-]+$/u).setValidationEnabled(isValidationEnabled); -function validateName(name) { - namePredicate.parse(name); -} -__name(validateName, "validateName"); -var descriptionPredicate2 = import_shapeshift5.s.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled); -var localePredicate = import_shapeshift5.s.nativeEnum(import_v1012.Locale); -function validateDescription(description) { - descriptionPredicate2.parse(description); -} -__name(validateDescription, "validateDescription"); -var maxArrayLengthPredicate = import_shapeshift5.s.unknown.array.lengthLessThanOrEqual(25).setValidationEnabled(isValidationEnabled); -function validateLocale(locale) { - return localePredicate.parse(locale); -} -__name(validateLocale, "validateLocale"); -function validateMaxOptionsLength(options) { - maxArrayLengthPredicate.parse(options); -} -__name(validateMaxOptionsLength, "validateMaxOptionsLength"); -function validateRequiredParameters3(name, description, options) { - validateName(name); - validateDescription(description); - validateMaxOptionsLength(options); -} -__name(validateRequiredParameters3, "validateRequiredParameters"); -var booleanPredicate = import_shapeshift5.s.boolean; -function validateDefaultPermission(value) { - booleanPredicate.parse(value); -} -__name(validateDefaultPermission, "validateDefaultPermission"); -function validateRequired(required) { - booleanPredicate.parse(required); -} -__name(validateRequired, "validateRequired"); -var choicesLengthPredicate = import_shapeshift5.s.number.lessThanOrEqual(25).setValidationEnabled(isValidationEnabled); -function validateChoicesLength(amountAdding, choices) { - choicesLengthPredicate.parse((choices?.length ?? 0) + amountAdding); -} -__name(validateChoicesLength, "validateChoicesLength"); -function assertReturnOfBuilder(input, ExpectedInstanceOf) { - import_shapeshift5.s.instance(ExpectedInstanceOf).parse(input); -} -__name(assertReturnOfBuilder, "assertReturnOfBuilder"); -var localizationMapPredicate = import_shapeshift5.s.object(Object.fromEntries(Object.values(import_v1012.Locale).map((locale) => [locale, import_shapeshift5.s.string.nullish]))).strict.nullish.setValidationEnabled(isValidationEnabled); -function validateLocalizationMap(value) { - localizationMapPredicate.parse(value); -} -__name(validateLocalizationMap, "validateLocalizationMap"); -var dmPermissionPredicate = import_shapeshift5.s.boolean.nullish; -function validateDMPermission(value) { - dmPermissionPredicate.parse(value); -} -__name(validateDMPermission, "validateDMPermission"); -var memberPermissionPredicate = import_shapeshift5.s.union( - import_shapeshift5.s.bigint.transform((value) => value.toString()), - import_shapeshift5.s.number.safeInt.transform((value) => value.toString()), - import_shapeshift5.s.string.regex(/^\d+$/) -).nullish; -function validateDefaultMemberPermissions(permissions) { - return memberPermissionPredicate.parse(permissions); -} -__name(validateDefaultMemberPermissions, "validateDefaultMemberPermissions"); -function validateNSFW(value) { - booleanPredicate.parse(value); -} -__name(validateNSFW, "validateNSFW"); - -// src/interactions/slashCommands/SlashCommandBuilder.ts -var import_ts_mixer6 = require("ts-mixer"); - -// src/interactions/slashCommands/mixins/NameAndDescription.ts -var SharedNameAndDescription = class { - static { - __name(this, "SharedNameAndDescription"); - } - /** - * The name of this command. - */ - name; - /** - * The name localizations of this command. - */ - name_localizations; - /** - * The description of this command. - */ - description; - /** - * The description localizations of this command. - */ - description_localizations; - /** - * Sets the name of this command. - * - * @param name - The name to use - */ - setName(name) { - validateName(name); - Reflect.set(this, "name", name); - return this; - } - /** - * Sets the description of this command. - * - * @param description - The description to use - */ - setDescription(description) { - validateDescription(description); - Reflect.set(this, "description", description); - return this; - } - /** - * Sets a name localization for this command. - * - * @param locale - The locale to set - * @param localizedName - The localized name for the given `locale` - */ - setNameLocalization(locale, localizedName) { - if (!this.name_localizations) { - Reflect.set(this, "name_localizations", {}); - } - const parsedLocale = validateLocale(locale); - if (localizedName === null) { - this.name_localizations[parsedLocale] = null; - return this; - } - validateName(localizedName); - this.name_localizations[parsedLocale] = localizedName; - return this; - } - /** - * Sets the name localizations for this command. - * - * @param localizedNames - The object of localized names to set - */ - setNameLocalizations(localizedNames) { - if (localizedNames === null) { - Reflect.set(this, "name_localizations", null); - return this; - } - Reflect.set(this, "name_localizations", {}); - for (const args of Object.entries(localizedNames)) { - this.setNameLocalization(...args); - } - return this; - } - /** - * Sets a description localization for this command. - * - * @param locale - The locale to set - * @param localizedDescription - The localized description for the given locale - */ - setDescriptionLocalization(locale, localizedDescription) { - if (!this.description_localizations) { - Reflect.set(this, "description_localizations", {}); - } - const parsedLocale = validateLocale(locale); - if (localizedDescription === null) { - this.description_localizations[parsedLocale] = null; - return this; - } - validateDescription(localizedDescription); - this.description_localizations[parsedLocale] = localizedDescription; - return this; - } - /** - * Sets the description localizations for this command. - * - * @param localizedDescriptions - The object of localized descriptions to set - */ - setDescriptionLocalizations(localizedDescriptions) { - if (localizedDescriptions === null) { - Reflect.set(this, "description_localizations", null); - return this; - } - Reflect.set(this, "description_localizations", {}); - for (const args of Object.entries(localizedDescriptions)) { - this.setDescriptionLocalization(...args); - } - return this; - } -}; - -// src/interactions/slashCommands/mixins/SharedSlashCommand.ts -var SharedSlashCommand = class { - static { - __name(this, "SharedSlashCommand"); - } - name = void 0; - name_localizations; - description = void 0; - description_localizations; - options = []; - /** - * Sets whether the command is enabled by default when the application is added to a guild. - * - * @remarks - * If set to `false`, you will have to later `PUT` the permissions for this command. - * @param value - Whether or not to enable this command by default - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. - */ - setDefaultPermission(value) { - validateDefaultPermission(value); - Reflect.set(this, "default_permission", value); - return this; - } - /** - * Sets the default permissions a member should have in order to run the command. - * - * @remarks - * You can set this to `'0'` to disable the command by default. - * @param permissions - The permissions bit field to set - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - */ - setDefaultMemberPermissions(permissions) { - const permissionValue = validateDefaultMemberPermissions(permissions); - Reflect.set(this, "default_member_permissions", permissionValue); - return this; - } - /** - * Sets if the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This method is only for global commands. - * @param enabled - Whether the command should be enabled in direct messages - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - */ - setDMPermission(enabled) { - validateDMPermission(enabled); - Reflect.set(this, "dm_permission", enabled); - return this; - } - /** - * Sets whether this command is NSFW. - * - * @param nsfw - Whether this command is NSFW - */ - setNSFW(nsfw = true) { - validateNSFW(nsfw); - Reflect.set(this, "nsfw", nsfw); - return this; - } - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON() { - validateRequiredParameters3(this.name, this.description, this.options); - validateLocalizationMap(this.name_localizations); - validateLocalizationMap(this.description_localizations); - return { - ...this, - options: this.options.map((option) => option.toJSON()) - }; - } -}; - -// src/interactions/slashCommands/options/attachment.ts -var import_v1013 = require("discord-api-types/v10"); - -// src/interactions/slashCommands/mixins/ApplicationCommandOptionBase.ts -var ApplicationCommandOptionBase = class extends SharedNameAndDescription { - static { - __name(this, "ApplicationCommandOptionBase"); - } - /** - * Whether this option is required. - * - * @defaultValue `false` - */ - required = false; - /** - * Sets whether this option is required. - * - * @param required - Whether this option should be required - */ - setRequired(required) { - validateRequired(required); - Reflect.set(this, "required", required); - return this; - } - /** - * This method runs required validators on this builder. - */ - runRequiredValidations() { - validateRequiredParameters3(this.name, this.description, []); - validateLocalizationMap(this.name_localizations); - validateLocalizationMap(this.description_localizations); - validateRequired(this.required); - } -}; - -// src/interactions/slashCommands/options/attachment.ts -var SlashCommandAttachmentOption = class extends ApplicationCommandOptionBase { - static { - __name(this, "SlashCommandAttachmentOption"); - } - /** - * The type of this option. - */ - type = import_v1013.ApplicationCommandOptionType.Attachment; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - return { ...this }; - } -}; - -// src/interactions/slashCommands/options/boolean.ts -var import_v1014 = require("discord-api-types/v10"); -var SlashCommandBooleanOption = class extends ApplicationCommandOptionBase { - static { - __name(this, "SlashCommandBooleanOption"); - } - /** - * The type of this option. - */ - type = import_v1014.ApplicationCommandOptionType.Boolean; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - return { ...this }; - } -}; - -// src/interactions/slashCommands/options/channel.ts -var import_v1016 = require("discord-api-types/v10"); -var import_ts_mixer = require("ts-mixer"); - -// src/interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin.ts -var import_shapeshift6 = require("@sapphire/shapeshift"); -var import_v1015 = require("discord-api-types/v10"); -var allowedChannelTypes = [ - import_v1015.ChannelType.GuildText, - import_v1015.ChannelType.GuildVoice, - import_v1015.ChannelType.GuildCategory, - import_v1015.ChannelType.GuildAnnouncement, - import_v1015.ChannelType.AnnouncementThread, - import_v1015.ChannelType.PublicThread, - import_v1015.ChannelType.PrivateThread, - import_v1015.ChannelType.GuildStageVoice, - import_v1015.ChannelType.GuildForum, - import_v1015.ChannelType.GuildMedia -]; -var channelTypesPredicate = import_shapeshift6.s.array(import_shapeshift6.s.union(...allowedChannelTypes.map((type) => import_shapeshift6.s.literal(type)))); -var ApplicationCommandOptionChannelTypesMixin = class { - static { - __name(this, "ApplicationCommandOptionChannelTypesMixin"); - } - /** - * The channel types of this option. - */ - channel_types; - /** - * Adds channel types to this option. - * - * @param channelTypes - The channel types - */ - addChannelTypes(...channelTypes) { - if (this.channel_types === void 0) { - Reflect.set(this, "channel_types", []); - } - this.channel_types.push(...channelTypesPredicate.parse(normalizeArray(channelTypes))); - return this; - } -}; - -// src/interactions/slashCommands/options/channel.ts -var SlashCommandChannelOption = class extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - type = import_v1016.ApplicationCommandOptionType.Channel; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - return { ...this }; - } -}; -__name(SlashCommandChannelOption, "SlashCommandChannelOption"); -SlashCommandChannelOption = __decorateClass([ - (0, import_ts_mixer.mix)(ApplicationCommandOptionChannelTypesMixin) -], SlashCommandChannelOption); - -// src/interactions/slashCommands/options/integer.ts -var import_shapeshift9 = require("@sapphire/shapeshift"); -var import_v1018 = require("discord-api-types/v10"); -var import_ts_mixer2 = require("ts-mixer"); - -// src/interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin.ts -var ApplicationCommandNumericOptionMinMaxValueMixin = class { - static { - __name(this, "ApplicationCommandNumericOptionMinMaxValueMixin"); - } - /** - * The maximum value of this option. - */ - max_value; - /** - * The minimum value of this option. - */ - min_value; -}; - -// src/interactions/slashCommands/mixins/ApplicationCommandOptionWithAutocompleteMixin.ts -var import_shapeshift7 = require("@sapphire/shapeshift"); -var booleanPredicate2 = import_shapeshift7.s.boolean; -var ApplicationCommandOptionWithAutocompleteMixin = class { - static { - __name(this, "ApplicationCommandOptionWithAutocompleteMixin"); - } - /** - * Whether this option utilizes autocomplete. - */ - autocomplete; - /** - * The type of this option. - * - * @privateRemarks Since this is present and this is a mixin, this is needed. - */ - type; - /** - * Whether this option uses autocomplete. - * - * @param autocomplete - Whether this option should use autocomplete - */ - setAutocomplete(autocomplete) { - booleanPredicate2.parse(autocomplete); - if (autocomplete && "choices" in this && Array.isArray(this.choices) && this.choices.length > 0) { - throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); - } - Reflect.set(this, "autocomplete", autocomplete); - return this; - } -}; - -// src/interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesMixin.ts -var import_shapeshift8 = require("@sapphire/shapeshift"); -var import_v1017 = require("discord-api-types/v10"); -var stringPredicate = import_shapeshift8.s.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100); -var numberPredicate = import_shapeshift8.s.number.greaterThan(Number.NEGATIVE_INFINITY).lessThan(Number.POSITIVE_INFINITY); -var choicesPredicate = import_shapeshift8.s.object({ - name: stringPredicate, - name_localizations: localizationMapPredicate, - value: import_shapeshift8.s.union(stringPredicate, numberPredicate) -}).array; -var ApplicationCommandOptionWithChoicesMixin = class { - static { - __name(this, "ApplicationCommandOptionWithChoicesMixin"); - } - /** - * The choices of this option. - */ - choices; - /** - * The type of this option. - * - * @privateRemarks Since this is present and this is a mixin, this is needed. - */ - type; - /** - * Adds multiple choices to this option. - * - * @param choices - The choices to add - */ - addChoices(...choices) { - const normalizedChoices = normalizeArray(choices); - if (normalizedChoices.length > 0 && "autocomplete" in this && this.autocomplete) { - throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); - } - choicesPredicate.parse(normalizedChoices); - if (this.choices === void 0) { - Reflect.set(this, "choices", []); - } - validateChoicesLength(normalizedChoices.length, this.choices); - for (const { name, name_localizations, value } of normalizedChoices) { - if (this.type === import_v1017.ApplicationCommandOptionType.String) { - stringPredicate.parse(value); - } else { - numberPredicate.parse(value); - } - this.choices.push({ name, name_localizations, value }); - } - return this; - } - /** - * Sets multiple choices for this option. - * - * @param choices - The choices to set - */ - setChoices(...choices) { - const normalizedChoices = normalizeArray(choices); - if (normalizedChoices.length > 0 && "autocomplete" in this && this.autocomplete) { - throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); - } - choicesPredicate.parse(normalizedChoices); - Reflect.set(this, "choices", []); - this.addChoices(normalizedChoices); - return this; - } -}; - -// src/interactions/slashCommands/options/integer.ts -var numberValidator = import_shapeshift9.s.number.int; -var SlashCommandIntegerOption = class extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - type = import_v1018.ApplicationCommandOptionType.Integer; - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue} - */ - setMaxValue(max) { - numberValidator.parse(max); - Reflect.set(this, "max_value", max); - return this; - } - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue} - */ - setMinValue(min) { - numberValidator.parse(min); - Reflect.set(this, "min_value", min); - return this; - } - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - if (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) { - throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); - } - return { ...this }; - } -}; -__name(SlashCommandIntegerOption, "SlashCommandIntegerOption"); -SlashCommandIntegerOption = __decorateClass([ - (0, import_ts_mixer2.mix)( - ApplicationCommandNumericOptionMinMaxValueMixin, - ApplicationCommandOptionWithAutocompleteMixin, - ApplicationCommandOptionWithChoicesMixin - ) -], SlashCommandIntegerOption); - -// src/interactions/slashCommands/options/mentionable.ts -var import_v1019 = require("discord-api-types/v10"); -var SlashCommandMentionableOption = class extends ApplicationCommandOptionBase { - static { - __name(this, "SlashCommandMentionableOption"); - } - /** - * The type of this option. - */ - type = import_v1019.ApplicationCommandOptionType.Mentionable; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - return { ...this }; - } -}; - -// src/interactions/slashCommands/options/number.ts -var import_shapeshift10 = require("@sapphire/shapeshift"); -var import_v1020 = require("discord-api-types/v10"); -var import_ts_mixer3 = require("ts-mixer"); -var numberValidator2 = import_shapeshift10.s.number; -var SlashCommandNumberOption = class extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - type = import_v1020.ApplicationCommandOptionType.Number; - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue} - */ - setMaxValue(max) { - numberValidator2.parse(max); - Reflect.set(this, "max_value", max); - return this; - } - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue} - */ - setMinValue(min) { - numberValidator2.parse(min); - Reflect.set(this, "min_value", min); - return this; - } - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - if (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) { - throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); - } - return { ...this }; - } -}; -__name(SlashCommandNumberOption, "SlashCommandNumberOption"); -SlashCommandNumberOption = __decorateClass([ - (0, import_ts_mixer3.mix)( - ApplicationCommandNumericOptionMinMaxValueMixin, - ApplicationCommandOptionWithAutocompleteMixin, - ApplicationCommandOptionWithChoicesMixin - ) -], SlashCommandNumberOption); - -// src/interactions/slashCommands/options/role.ts -var import_v1021 = require("discord-api-types/v10"); -var SlashCommandRoleOption = class extends ApplicationCommandOptionBase { - static { - __name(this, "SlashCommandRoleOption"); - } - /** - * The type of this option. - */ - type = import_v1021.ApplicationCommandOptionType.Role; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - return { ...this }; - } -}; - -// src/interactions/slashCommands/options/string.ts -var import_shapeshift11 = require("@sapphire/shapeshift"); -var import_v1022 = require("discord-api-types/v10"); -var import_ts_mixer4 = require("ts-mixer"); -var minLengthValidator2 = import_shapeshift11.s.number.greaterThanOrEqual(0).lessThanOrEqual(6e3); -var maxLengthValidator2 = import_shapeshift11.s.number.greaterThanOrEqual(1).lessThanOrEqual(6e3); -var SlashCommandStringOption = class extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - type = import_v1022.ApplicationCommandOptionType.String; - /** - * The maximum length of this option. - */ - max_length; - /** - * The minimum length of this option. - */ - min_length; - /** - * Sets the maximum length of this string option. - * - * @param max - The maximum length this option can be - */ - setMaxLength(max) { - maxLengthValidator2.parse(max); - Reflect.set(this, "max_length", max); - return this; - } - /** - * Sets the minimum length of this string option. - * - * @param min - The minimum length this option can be - */ - setMinLength(min) { - minLengthValidator2.parse(min); - Reflect.set(this, "min_length", min); - return this; - } - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - if (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) { - throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); - } - return { ...this }; - } -}; -__name(SlashCommandStringOption, "SlashCommandStringOption"); -SlashCommandStringOption = __decorateClass([ - (0, import_ts_mixer4.mix)(ApplicationCommandOptionWithAutocompleteMixin, ApplicationCommandOptionWithChoicesMixin) -], SlashCommandStringOption); - -// src/interactions/slashCommands/options/user.ts -var import_v1023 = require("discord-api-types/v10"); -var SlashCommandUserOption = class extends ApplicationCommandOptionBase { - static { - __name(this, "SlashCommandUserOption"); - } - /** - * The type of this option. - */ - type = import_v1023.ApplicationCommandOptionType.User; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - return { ...this }; - } -}; - -// src/interactions/slashCommands/mixins/SharedSlashCommandOptions.ts -var SharedSlashCommandOptions = class { - static { - __name(this, "SharedSlashCommandOptions"); - } - options; - /** - * Adds a boolean option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addBooleanOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandBooleanOption); - } - /** - * Adds a user option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addUserOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandUserOption); - } - /** - * Adds a channel option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addChannelOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandChannelOption); - } - /** - * Adds a role option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addRoleOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandRoleOption); - } - /** - * Adds an attachment option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addAttachmentOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandAttachmentOption); - } - /** - * Adds a mentionable option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addMentionableOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandMentionableOption); - } - /** - * Adds a string option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addStringOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandStringOption); - } - /** - * Adds an integer option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addIntegerOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandIntegerOption); - } - /** - * Adds a number option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addNumberOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandNumberOption); - } - /** - * Where the actual adding magic happens. ✨ - * - * @param input - The input. What else? - * @param Instance - The instance of whatever is being added - * @internal - */ - _sharedAddOptionMethod(input, Instance) { - const { options } = this; - validateMaxOptionsLength(options); - const result = typeof input === "function" ? input(new Instance()) : input; - assertReturnOfBuilder(result, Instance); - options.push(result); - return this; - } -}; - -// src/interactions/slashCommands/SlashCommandSubcommands.ts -var import_v1024 = require("discord-api-types/v10"); -var import_ts_mixer5 = require("ts-mixer"); -var SlashCommandSubcommandGroupBuilder = class { - /** - * The name of this subcommand group. - */ - name = void 0; - /** - * The description of this subcommand group. - */ - description = void 0; - /** - * The subcommands within this subcommand group. - */ - options = []; - /** - * Adds a new subcommand to this group. - * - * @param input - A function that returns a subcommand builder or an already built builder - */ - addSubcommand(input) { - const { options } = this; - validateMaxOptionsLength(options); - const result = typeof input === "function" ? input(new SlashCommandSubcommandBuilder()) : input; - assertReturnOfBuilder(result, SlashCommandSubcommandBuilder); - options.push(result); - return this; - } - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON() { - validateRequiredParameters3(this.name, this.description, this.options); - return { - type: import_v1024.ApplicationCommandOptionType.SubcommandGroup, - name: this.name, - name_localizations: this.name_localizations, - description: this.description, - description_localizations: this.description_localizations, - options: this.options.map((option) => option.toJSON()) - }; - } -}; -__name(SlashCommandSubcommandGroupBuilder, "SlashCommandSubcommandGroupBuilder"); -SlashCommandSubcommandGroupBuilder = __decorateClass([ - (0, import_ts_mixer5.mix)(SharedNameAndDescription) -], SlashCommandSubcommandGroupBuilder); -var SlashCommandSubcommandBuilder = class { - /** - * The name of this subcommand. - */ - name = void 0; - /** - * The description of this subcommand. - */ - description = void 0; - /** - * The options within this subcommand. - */ - options = []; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON() { - validateRequiredParameters3(this.name, this.description, this.options); - return { - type: import_v1024.ApplicationCommandOptionType.Subcommand, - name: this.name, - name_localizations: this.name_localizations, - description: this.description, - description_localizations: this.description_localizations, - options: this.options.map((option) => option.toJSON()) - }; - } -}; -__name(SlashCommandSubcommandBuilder, "SlashCommandSubcommandBuilder"); -SlashCommandSubcommandBuilder = __decorateClass([ - (0, import_ts_mixer5.mix)(SharedNameAndDescription, SharedSlashCommandOptions) -], SlashCommandSubcommandBuilder); - -// src/interactions/slashCommands/mixins/SharedSubcommands.ts -var SharedSlashCommandSubcommands = class { - static { - __name(this, "SharedSlashCommandSubcommands"); - } - options = []; - /** - * Adds a new subcommand group to this command. - * - * @param input - A function that returns a subcommand group builder or an already built builder - */ - addSubcommandGroup(input) { - const { options } = this; - validateMaxOptionsLength(options); - const result = typeof input === "function" ? input(new SlashCommandSubcommandGroupBuilder()) : input; - assertReturnOfBuilder(result, SlashCommandSubcommandGroupBuilder); - options.push(result); - return this; - } - /** - * Adds a new subcommand to this command. - * - * @param input - A function that returns a subcommand builder or an already built builder - */ - addSubcommand(input) { - const { options } = this; - validateMaxOptionsLength(options); - const result = typeof input === "function" ? input(new SlashCommandSubcommandBuilder()) : input; - assertReturnOfBuilder(result, SlashCommandSubcommandBuilder); - options.push(result); - return this; - } -}; - -// src/interactions/slashCommands/SlashCommandBuilder.ts -var SlashCommandBuilder = class { - /** - * The name of this command. - */ - name = void 0; - /** - * The name localizations of this command. - */ - name_localizations; - /** - * The description of this command. - */ - description = void 0; - /** - * The description localizations of this command. - */ - description_localizations; - /** - * The options of this command. - */ - options = []; - /** - * Whether this command is enabled by default when the application is added to a guild. - * - * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. - */ - default_permission = void 0; - /** - * The set of permissions represented as a bit set for the command. - */ - default_member_permissions = void 0; - /** - * Indicates whether the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This property is only for global commands. - */ - dm_permission = void 0; - /** - * Whether this command is NSFW. - */ - nsfw = void 0; -}; -__name(SlashCommandBuilder, "SlashCommandBuilder"); -SlashCommandBuilder = __decorateClass([ - (0, import_ts_mixer6.mix)(SharedSlashCommandOptions, SharedNameAndDescription, SharedSlashCommandSubcommands, SharedSlashCommand) -], SlashCommandBuilder); - -// src/interactions/contextMenuCommands/Assertions.ts -var Assertions_exports6 = {}; -__export(Assertions_exports6, { - validateDMPermission: () => validateDMPermission2, - validateDefaultMemberPermissions: () => validateDefaultMemberPermissions2, - validateDefaultPermission: () => validateDefaultPermission2, - validateName: () => validateName2, - validateRequiredParameters: () => validateRequiredParameters4, - validateType: () => validateType -}); -var import_shapeshift12 = require("@sapphire/shapeshift"); -var import_v1025 = require("discord-api-types/v10"); -var namePredicate2 = import_shapeshift12.s.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(32).regex(/^( *[\p{P}\p{L}\p{N}\p{sc=Devanagari}\p{sc=Thai}]+ *)+$/u).setValidationEnabled(isValidationEnabled); -var typePredicate = import_shapeshift12.s.union(import_shapeshift12.s.literal(import_v1025.ApplicationCommandType.User), import_shapeshift12.s.literal(import_v1025.ApplicationCommandType.Message)).setValidationEnabled(isValidationEnabled); -var booleanPredicate3 = import_shapeshift12.s.boolean; -function validateDefaultPermission2(value) { - booleanPredicate3.parse(value); -} -__name(validateDefaultPermission2, "validateDefaultPermission"); -function validateName2(name) { - namePredicate2.parse(name); -} -__name(validateName2, "validateName"); -function validateType(type) { - typePredicate.parse(type); -} -__name(validateType, "validateType"); -function validateRequiredParameters4(name, type) { - validateName2(name); - validateType(type); -} -__name(validateRequiredParameters4, "validateRequiredParameters"); -var dmPermissionPredicate2 = import_shapeshift12.s.boolean.nullish; -function validateDMPermission2(value) { - dmPermissionPredicate2.parse(value); -} -__name(validateDMPermission2, "validateDMPermission"); -var memberPermissionPredicate2 = import_shapeshift12.s.union( - import_shapeshift12.s.bigint.transform((value) => value.toString()), - import_shapeshift12.s.number.safeInt.transform((value) => value.toString()), - import_shapeshift12.s.string.regex(/^\d+$/) -).nullish; -function validateDefaultMemberPermissions2(permissions) { - return memberPermissionPredicate2.parse(permissions); -} -__name(validateDefaultMemberPermissions2, "validateDefaultMemberPermissions"); - -// src/interactions/contextMenuCommands/ContextMenuCommandBuilder.ts -var ContextMenuCommandBuilder = class { - static { - __name(this, "ContextMenuCommandBuilder"); - } - /** - * The name of this command. - */ - name = void 0; - /** - * The name localizations of this command. - */ - name_localizations; - /** - * The type of this command. - */ - type = void 0; - /** - * Whether this command is enabled by default when the application is added to a guild. - * - * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead. - */ - default_permission = void 0; - /** - * The set of permissions represented as a bit set for the command. - */ - default_member_permissions = void 0; - /** - * Indicates whether the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This property is only for global commands. - */ - dm_permission = void 0; - /** - * Sets the name of this command. - * - * @param name - The name to use - */ - setName(name) { - validateName2(name); - Reflect.set(this, "name", name); - return this; - } - /** - * Sets the type of this command. - * - * @param type - The type to use - */ - setType(type) { - validateType(type); - Reflect.set(this, "type", type); - return this; - } - /** - * Sets whether the command is enabled by default when the application is added to a guild. - * - * @remarks - * If set to `false`, you will have to later `PUT` the permissions for this command. - * @param value - Whether to enable this command by default - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead. - */ - setDefaultPermission(value) { - validateDefaultPermission2(value); - Reflect.set(this, "default_permission", value); - return this; - } - /** - * Sets the default permissions a member should have in order to run this command. - * - * @remarks - * You can set this to `'0'` to disable the command by default. - * @param permissions - The permissions bit field to set - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - */ - setDefaultMemberPermissions(permissions) { - const permissionValue = validateDefaultMemberPermissions2(permissions); - Reflect.set(this, "default_member_permissions", permissionValue); - return this; - } - /** - * Sets if the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This method is only for global commands. - * @param enabled - Whether the command should be enabled in direct messages - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - */ - setDMPermission(enabled) { - validateDMPermission2(enabled); - Reflect.set(this, "dm_permission", enabled); - return this; - } - /** - * Sets a name localization for this command. - * - * @param locale - The locale to set - * @param localizedName - The localized name for the given `locale` - */ - setNameLocalization(locale, localizedName) { - if (!this.name_localizations) { - Reflect.set(this, "name_localizations", {}); - } - const parsedLocale = validateLocale(locale); - if (localizedName === null) { - this.name_localizations[parsedLocale] = null; - return this; - } - validateName2(localizedName); - this.name_localizations[parsedLocale] = localizedName; - return this; - } - /** - * Sets the name localizations for this command. - * - * @param localizedNames - The object of localized names to set - */ - setNameLocalizations(localizedNames) { - if (localizedNames === null) { - Reflect.set(this, "name_localizations", null); - return this; - } - Reflect.set(this, "name_localizations", {}); - for (const args of Object.entries(localizedNames)) - this.setNameLocalization(...args); - return this; - } - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON() { - validateRequiredParameters4(this.name, this.type); - validateLocalizationMap(this.name_localizations); - return { ...this }; - } -}; - -// src/util/componentUtil.ts -function embedLength(data) { - return (data.title?.length ?? 0) + (data.description?.length ?? 0) + (data.fields?.reduce((prev, curr) => prev + curr.name.length + curr.value.length, 0) ?? 0) + (data.footer?.text.length ?? 0) + (data.author?.name.length ?? 0); -} -__name(embedLength, "embedLength"); - -// src/index.ts -var version = "1.8.1"; -// Annotate the CommonJS export names for ESM import in node: -0 && (module.exports = { - ActionRowBuilder, - ApplicationCommandNumericOptionMinMaxValueMixin, - ApplicationCommandOptionBase, - ApplicationCommandOptionChannelTypesMixin, - ApplicationCommandOptionWithAutocompleteMixin, - ApplicationCommandOptionWithChoicesMixin, - BaseSelectMenuBuilder, - ButtonBuilder, - ChannelSelectMenuBuilder, - ComponentAssertions, - ComponentBuilder, - ContextMenuCommandAssertions, - ContextMenuCommandBuilder, - EmbedAssertions, - EmbedBuilder, - MentionableSelectMenuBuilder, - ModalAssertions, - ModalBuilder, - RoleSelectMenuBuilder, - SelectMenuBuilder, - SelectMenuOptionBuilder, - SharedNameAndDescription, - SharedSlashCommand, - SharedSlashCommandOptions, - SharedSlashCommandSubcommands, - SlashCommandAssertions, - SlashCommandAttachmentOption, - SlashCommandBooleanOption, - SlashCommandBuilder, - SlashCommandChannelOption, - SlashCommandIntegerOption, - SlashCommandMentionableOption, - SlashCommandNumberOption, - SlashCommandRoleOption, - SlashCommandStringOption, - SlashCommandSubcommandBuilder, - SlashCommandSubcommandGroupBuilder, - SlashCommandUserOption, - StringSelectMenuBuilder, - StringSelectMenuOptionBuilder, - TextInputAssertions, - TextInputBuilder, - UserSelectMenuBuilder, - createComponentBuilder, - disableValidators, - embedLength, - enableValidators, - isValidationEnabled, - normalizeArray, - version, - ...require("@discordjs/formatters") -}); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@discordjs/builders/dist/index.js.map b/node_modules/@discordjs/builders/dist/index.js.map deleted file mode 100644 index cc20ff3..0000000 --- a/node_modules/@discordjs/builders/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/index.ts","../src/messages/embed/Assertions.ts","../src/util/validation.ts","../src/util/normalizeArray.ts","../src/messages/embed/Embed.ts","../src/components/Assertions.ts","../src/components/selectMenu/StringSelectMenuOption.ts","../src/components/ActionRow.ts","../src/components/Component.ts","../src/components/Components.ts","../src/components/button/Button.ts","../src/components/selectMenu/ChannelSelectMenu.ts","../src/components/selectMenu/BaseSelectMenu.ts","../src/components/selectMenu/MentionableSelectMenu.ts","../src/components/selectMenu/RoleSelectMenu.ts","../src/components/selectMenu/StringSelectMenu.ts","../src/components/selectMenu/UserSelectMenu.ts","../src/components/textInput/TextInput.ts","../src/components/textInput/Assertions.ts","../src/interactions/modals/Assertions.ts","../src/interactions/modals/Modal.ts","../src/interactions/slashCommands/Assertions.ts","../src/interactions/slashCommands/SlashCommandBuilder.ts","../src/interactions/slashCommands/mixins/NameAndDescription.ts","../src/interactions/slashCommands/mixins/SharedSlashCommand.ts","../src/interactions/slashCommands/options/attachment.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionBase.ts","../src/interactions/slashCommands/options/boolean.ts","../src/interactions/slashCommands/options/channel.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin.ts","../src/interactions/slashCommands/options/integer.ts","../src/interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionWithAutocompleteMixin.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesMixin.ts","../src/interactions/slashCommands/options/mentionable.ts","../src/interactions/slashCommands/options/number.ts","../src/interactions/slashCommands/options/role.ts","../src/interactions/slashCommands/options/string.ts","../src/interactions/slashCommands/options/user.ts","../src/interactions/slashCommands/mixins/SharedSlashCommandOptions.ts","../src/interactions/slashCommands/SlashCommandSubcommands.ts","../src/interactions/slashCommands/mixins/SharedSubcommands.ts","../src/interactions/contextMenuCommands/Assertions.ts","../src/interactions/contextMenuCommands/ContextMenuCommandBuilder.ts","../src/util/componentUtil.ts"],"sourcesContent":["export * as EmbedAssertions from './messages/embed/Assertions.js';\nexport * from './messages/embed/Embed.js';\n// TODO: Consider removing this dep in the next major version\nexport * from '@discordjs/formatters';\n\nexport * as ComponentAssertions from './components/Assertions.js';\nexport * from './components/ActionRow.js';\nexport * from './components/button/Button.js';\nexport * from './components/Component.js';\nexport * from './components/Components.js';\nexport * from './components/textInput/TextInput.js';\nexport * as TextInputAssertions from './components/textInput/Assertions.js';\nexport * from './interactions/modals/Modal.js';\nexport * as ModalAssertions from './interactions/modals/Assertions.js';\n\nexport * from './components/selectMenu/BaseSelectMenu.js';\nexport * from './components/selectMenu/ChannelSelectMenu.js';\nexport * from './components/selectMenu/MentionableSelectMenu.js';\nexport * from './components/selectMenu/RoleSelectMenu.js';\nexport * from './components/selectMenu/StringSelectMenu.js';\n// TODO: Remove those aliases in v2\nexport {\n\t/**\n\t * @deprecated Will be removed in the next major version, use {@link StringSelectMenuBuilder} instead.\n\t */\n\tStringSelectMenuBuilder as SelectMenuBuilder,\n} from './components/selectMenu/StringSelectMenu.js';\nexport {\n\t/**\n\t * @deprecated Will be removed in the next major version, use {@link StringSelectMenuOptionBuilder} instead.\n\t */\n\tStringSelectMenuOptionBuilder as SelectMenuOptionBuilder,\n} from './components/selectMenu/StringSelectMenuOption.js';\nexport * from './components/selectMenu/StringSelectMenuOption.js';\nexport * from './components/selectMenu/UserSelectMenu.js';\n\nexport * as SlashCommandAssertions from './interactions/slashCommands/Assertions.js';\nexport * from './interactions/slashCommands/SlashCommandBuilder.js';\nexport * from './interactions/slashCommands/SlashCommandSubcommands.js';\nexport * from './interactions/slashCommands/options/boolean.js';\nexport * from './interactions/slashCommands/options/channel.js';\nexport * from './interactions/slashCommands/options/integer.js';\nexport * from './interactions/slashCommands/options/mentionable.js';\nexport * from './interactions/slashCommands/options/number.js';\nexport * from './interactions/slashCommands/options/role.js';\nexport * from './interactions/slashCommands/options/attachment.js';\nexport * from './interactions/slashCommands/options/string.js';\nexport * from './interactions/slashCommands/options/user.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandOptionBase.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandOptionWithAutocompleteMixin.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesMixin.js';\nexport * from './interactions/slashCommands/mixins/NameAndDescription.js';\nexport * from './interactions/slashCommands/mixins/SharedSlashCommandOptions.js';\nexport * from './interactions/slashCommands/mixins/SharedSubcommands.js';\nexport * from './interactions/slashCommands/mixins/SharedSlashCommand.js';\n\nexport * as ContextMenuCommandAssertions from './interactions/contextMenuCommands/Assertions.js';\nexport * from './interactions/contextMenuCommands/ContextMenuCommandBuilder.js';\n\nexport * from './util/componentUtil.js';\nexport * from './util/normalizeArray.js';\nexport * from './util/validation.js';\n\n/**\n * The {@link https://github.com/discordjs/discord.js/blob/main/packages/builders#readme | @discordjs/builders} version\n * that you are currently using.\n *\n * @privateRemarks This needs to explicitly be `string` so it is not typed as a \"const string\" that gets injected by esbuild.\n */\nexport const version = '1.8.1' as string;\n","import { s } from '@sapphire/shapeshift';\nimport type { APIEmbedField } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\n\nexport const fieldNamePredicate = s.string\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(256)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const fieldValuePredicate = s.string\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(1_024)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const fieldInlinePredicate = s.boolean.optional;\n\nexport const embedFieldPredicate = s\n\t.object({\n\t\tname: fieldNamePredicate,\n\t\tvalue: fieldValuePredicate,\n\t\tinline: fieldInlinePredicate,\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const embedFieldsArrayPredicate = embedFieldPredicate.array.setValidationEnabled(isValidationEnabled);\n\nexport const fieldLengthPredicate = s.number.lessThanOrEqual(25).setValidationEnabled(isValidationEnabled);\n\nexport function validateFieldLength(amountAdding: number, fields?: APIEmbedField[]): void {\n\tfieldLengthPredicate.parse((fields?.length ?? 0) + amountAdding);\n}\n\nexport const authorNamePredicate = fieldNamePredicate.nullable.setValidationEnabled(isValidationEnabled);\n\nexport const imageURLPredicate = s.string\n\t.url({\n\t\tallowedProtocols: ['http:', 'https:', 'attachment:'],\n\t})\n\t.nullish.setValidationEnabled(isValidationEnabled);\n\nexport const urlPredicate = s.string\n\t.url({\n\t\tallowedProtocols: ['http:', 'https:'],\n\t})\n\t.nullish.setValidationEnabled(isValidationEnabled);\n\nexport const embedAuthorPredicate = s\n\t.object({\n\t\tname: authorNamePredicate,\n\t\ticonURL: imageURLPredicate,\n\t\turl: urlPredicate,\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const RGBPredicate = s.number.int\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(255)\n\t.setValidationEnabled(isValidationEnabled);\nexport const colorPredicate = s.number.int\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(0xffffff)\n\t.or(s.tuple([RGBPredicate, RGBPredicate, RGBPredicate]))\n\t.nullable.setValidationEnabled(isValidationEnabled);\n\nexport const descriptionPredicate = s.string\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(4_096)\n\t.nullable.setValidationEnabled(isValidationEnabled);\n\nexport const footerTextPredicate = s.string\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(2_048)\n\t.nullable.setValidationEnabled(isValidationEnabled);\n\nexport const embedFooterPredicate = s\n\t.object({\n\t\ttext: footerTextPredicate,\n\t\ticonURL: imageURLPredicate,\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const timestampPredicate = s.union(s.number, s.date).nullable.setValidationEnabled(isValidationEnabled);\n\nexport const titlePredicate = fieldNamePredicate.nullable.setValidationEnabled(isValidationEnabled);\n","let validate = true;\n\n/**\n * Enables validators.\n *\n * @returns Whether validation is occurring.\n */\nexport function enableValidators() {\n\treturn (validate = true);\n}\n\n/**\n * Disables validators.\n *\n * @returns Whether validation is occurring.\n */\nexport function disableValidators() {\n\treturn (validate = false);\n}\n\n/**\n * Checks whether validation is occurring.\n */\nexport function isValidationEnabled() {\n\treturn validate;\n}\n","/**\n * Normalizes data that is a rest parameter or an array into an array with a depth of 1.\n *\n * @typeParam ItemType - The data that must satisfy {@link RestOrArray}.\n * @param arr - The (possibly variadic) data to normalize\n */\nexport function normalizeArray(arr: RestOrArray): ItemType[] {\n\tif (Array.isArray(arr[0])) return [...arr[0]];\n\treturn arr as ItemType[];\n}\n\n/**\n * Represents data that may be an array or came from a rest parameter.\n *\n * @remarks\n * This type is used throughout builders to ensure both an array and variadic arguments\n * may be used. It is normalized with {@link normalizeArray}.\n */\nexport type RestOrArray = Type[] | [Type[]];\n","import type { APIEmbed, APIEmbedAuthor, APIEmbedField, APIEmbedFooter, APIEmbedImage } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../util/normalizeArray.js';\nimport {\n\tcolorPredicate,\n\tdescriptionPredicate,\n\tembedAuthorPredicate,\n\tembedFieldsArrayPredicate,\n\tembedFooterPredicate,\n\timageURLPredicate,\n\ttimestampPredicate,\n\ttitlePredicate,\n\turlPredicate,\n\tvalidateFieldLength,\n} from './Assertions.js';\n\n/**\n * A tuple satisfying the RGB color model.\n *\n * @see {@link https://developer.mozilla.org/docs/Glossary/RGB}\n */\nexport type RGBTuple = [red: number, green: number, blue: number];\n\n/**\n * The base icon data typically used in payloads.\n */\nexport interface IconData {\n\t/**\n\t * The URL of the icon.\n\t */\n\ticonURL?: string;\n\t/**\n\t * The proxy URL of the icon.\n\t */\n\tproxyIconURL?: string;\n}\n\n/**\n * Represents the author data of an embed.\n */\nexport interface EmbedAuthorData extends IconData, Omit {}\n\n/**\n * Represents the author options of an embed.\n */\nexport interface EmbedAuthorOptions extends Omit {}\n\n/**\n * Represents the footer data of an embed.\n */\nexport interface EmbedFooterData extends IconData, Omit {}\n\n/**\n * Represents the footer options of an embed.\n */\nexport interface EmbedFooterOptions extends Omit {}\n\n/**\n * Represents the image data of an embed.\n */\nexport interface EmbedImageData extends Omit {\n\t/**\n\t * The proxy URL for the image.\n\t */\n\tproxyURL?: string;\n}\n\n/**\n * A builder that creates API-compatible JSON data for embeds.\n */\nexport class EmbedBuilder {\n\t/**\n\t * The API data associated with this embed.\n\t */\n\tpublic readonly data: APIEmbed;\n\n\t/**\n\t * Creates a new embed from API data.\n\t *\n\t * @param data - The API data to create this embed with\n\t */\n\tpublic constructor(data: APIEmbed = {}) {\n\t\tthis.data = { ...data };\n\t\tif (data.timestamp) this.data.timestamp = new Date(data.timestamp).toISOString();\n\t}\n\n\t/**\n\t * Appends fields to the embed.\n\t *\n\t * @remarks\n\t * This method accepts either an array of fields or a variable number of field parameters.\n\t * The maximum amount of fields that can be added is 25.\n\t * @example\n\t * Using an array:\n\t * ```ts\n\t * const fields: APIEmbedField[] = ...;\n\t * const embed = new EmbedBuilder()\n\t * \t.addFields(fields);\n\t * ```\n\t * @example\n\t * Using rest parameters (variadic):\n\t * ```ts\n\t * const embed = new EmbedBuilder()\n\t * \t.addFields(\n\t * \t\t{ name: 'Field 1', value: 'Value 1' },\n\t * \t\t{ name: 'Field 2', value: 'Value 2' },\n\t * \t);\n\t * ```\n\t * @param fields - The fields to add\n\t */\n\tpublic addFields(...fields: RestOrArray): this {\n\t\tconst normalizedFields = normalizeArray(fields);\n\t\t// Ensure adding these fields won't exceed the 25 field limit\n\t\tvalidateFieldLength(normalizedFields.length, this.data.fields);\n\n\t\t// Data assertions\n\t\tembedFieldsArrayPredicate.parse(normalizedFields);\n\n\t\tif (this.data.fields) this.data.fields.push(...normalizedFields);\n\t\telse this.data.fields = normalizedFields;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts fields for this embed.\n\t *\n\t * @remarks\n\t * This method behaves similarly\n\t * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}.\n\t * The maximum amount of fields that can be added is 25.\n\t *\n\t * It's useful for modifying and adjusting order of the already-existing fields of an embed.\n\t * @example\n\t * Remove the first field:\n\t * ```ts\n\t * embed.spliceFields(0, 1);\n\t * ```\n\t * @example\n\t * Remove the first n fields:\n\t * ```ts\n\t * const n = 4;\n\t * embed.spliceFields(0, n);\n\t * ```\n\t * @example\n\t * Remove the last field:\n\t * ```ts\n\t * embed.spliceFields(-1, 1);\n\t * ```\n\t * @param index - The index to start at\n\t * @param deleteCount - The number of fields to remove\n\t * @param fields - The replacing field objects\n\t */\n\tpublic spliceFields(index: number, deleteCount: number, ...fields: APIEmbedField[]): this {\n\t\t// Ensure adding these fields won't exceed the 25 field limit\n\t\tvalidateFieldLength(fields.length - deleteCount, this.data.fields);\n\n\t\t// Data assertions\n\t\tembedFieldsArrayPredicate.parse(fields);\n\t\tif (this.data.fields) this.data.fields.splice(index, deleteCount, ...fields);\n\t\telse this.data.fields = fields;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the fields for this embed.\n\t *\n\t * @remarks\n\t * This method is an alias for {@link EmbedBuilder.spliceFields}. More specifically,\n\t * it splices the entire array of fields, replacing them with the provided fields.\n\t *\n\t * You can set a maximum of 25 fields.\n\t * @param fields - The fields to set\n\t */\n\tpublic setFields(...fields: RestOrArray): this {\n\t\tthis.spliceFields(0, this.data.fields?.length ?? 0, ...normalizeArray(fields));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the author of this embed.\n\t *\n\t * @param options - The options to use\n\t */\n\n\tpublic setAuthor(options: EmbedAuthorOptions | null): this {\n\t\tif (options === null) {\n\t\t\tthis.data.author = undefined;\n\t\t\treturn this;\n\t\t}\n\n\t\t// Data assertions\n\t\tembedAuthorPredicate.parse(options);\n\n\t\tthis.data.author = { name: options.name, url: options.url, icon_url: options.iconURL };\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the color of this embed.\n\t *\n\t * @param color - The color to use\n\t */\n\tpublic setColor(color: RGBTuple | number | null): this {\n\t\t// Data assertions\n\t\tcolorPredicate.parse(color);\n\n\t\tif (Array.isArray(color)) {\n\t\t\tconst [red, green, blue] = color;\n\t\t\tthis.data.color = (red << 16) + (green << 8) + blue;\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.data.color = color ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description of this embed.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string | null): this {\n\t\t// Data assertions\n\t\tdescriptionPredicate.parse(description);\n\n\t\tthis.data.description = description ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the footer of this embed.\n\t *\n\t * @param options - The footer to use\n\t */\n\tpublic setFooter(options: EmbedFooterOptions | null): this {\n\t\tif (options === null) {\n\t\t\tthis.data.footer = undefined;\n\t\t\treturn this;\n\t\t}\n\n\t\t// Data assertions\n\t\tembedFooterPredicate.parse(options);\n\n\t\tthis.data.footer = { text: options.text, icon_url: options.iconURL };\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the image of this embed.\n\t *\n\t * @param url - The image URL to use\n\t */\n\tpublic setImage(url: string | null): this {\n\t\t// Data assertions\n\t\timageURLPredicate.parse(url);\n\n\t\tthis.data.image = url ? { url } : undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the thumbnail of this embed.\n\t *\n\t * @param url - The thumbnail URL to use\n\t */\n\tpublic setThumbnail(url: string | null): this {\n\t\t// Data assertions\n\t\timageURLPredicate.parse(url);\n\n\t\tthis.data.thumbnail = url ? { url } : undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the timestamp of this embed.\n\t *\n\t * @param timestamp - The timestamp or date to use\n\t */\n\tpublic setTimestamp(timestamp: Date | number | null = Date.now()): this {\n\t\t// Data assertions\n\t\ttimestampPredicate.parse(timestamp);\n\n\t\tthis.data.timestamp = timestamp ? new Date(timestamp).toISOString() : undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the title for this embed.\n\t *\n\t * @param title - The title to use\n\t */\n\tpublic setTitle(title: string | null): this {\n\t\t// Data assertions\n\t\ttitlePredicate.parse(title);\n\n\t\tthis.data.title = title ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the URL of this embed.\n\t *\n\t * @param url - The URL to use\n\t */\n\tpublic setURL(url: string | null): this {\n\t\t// Data assertions\n\t\turlPredicate.parse(url);\n\n\t\tthis.data.url = url ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): APIEmbed {\n\t\treturn { ...this.data };\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ButtonStyle, ChannelType, type APIMessageComponentEmoji } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../util/validation.js';\nimport { StringSelectMenuOptionBuilder } from './selectMenu/StringSelectMenuOption.js';\n\nexport const customIdValidator = s.string\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(100)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const emojiValidator = s\n\t.object({\n\t\tid: s.string,\n\t\tname: s.string,\n\t\tanimated: s.boolean,\n\t})\n\t.partial.strict.setValidationEnabled(isValidationEnabled);\n\nexport const disabledValidator = s.boolean;\n\nexport const buttonLabelValidator = s.string\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(80)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const buttonStyleValidator = s.nativeEnum(ButtonStyle);\n\nexport const placeholderValidator = s.string.lengthLessThanOrEqual(150).setValidationEnabled(isValidationEnabled);\nexport const minMaxValidator = s.number.int\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(25)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const labelValueDescriptionValidator = s.string\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(100)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const jsonOptionValidator = s\n\t.object({\n\t\tlabel: labelValueDescriptionValidator,\n\t\tvalue: labelValueDescriptionValidator,\n\t\tdescription: labelValueDescriptionValidator.optional,\n\t\temoji: emojiValidator.optional,\n\t\tdefault: s.boolean.optional,\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const optionValidator = s.instance(StringSelectMenuOptionBuilder).setValidationEnabled(isValidationEnabled);\n\nexport const optionsValidator = optionValidator.array\n\t.lengthGreaterThanOrEqual(0)\n\t.setValidationEnabled(isValidationEnabled);\nexport const optionsLengthValidator = s.number.int\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(25)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateRequiredSelectMenuParameters(options: StringSelectMenuOptionBuilder[], customId?: string) {\n\tcustomIdValidator.parse(customId);\n\toptionsValidator.parse(options);\n}\n\nexport const defaultValidator = s.boolean;\n\nexport function validateRequiredSelectMenuOptionParameters(label?: string, value?: string) {\n\tlabelValueDescriptionValidator.parse(label);\n\tlabelValueDescriptionValidator.parse(value);\n}\n\nexport const channelTypesValidator = s.nativeEnum(ChannelType).array.setValidationEnabled(isValidationEnabled);\n\nexport const urlValidator = s.string\n\t.url({\n\t\tallowedProtocols: ['http:', 'https:', 'discord:'],\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateRequiredButtonParameters(\n\tstyle?: ButtonStyle,\n\tlabel?: string,\n\temoji?: APIMessageComponentEmoji,\n\tcustomId?: string,\n\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 type { JSONEncodable } from '@discordjs/util';\nimport type { APIMessageComponentEmoji, APISelectMenuOption } from 'discord-api-types/v10';\nimport {\n\tdefaultValidator,\n\temojiValidator,\n\tlabelValueDescriptionValidator,\n\tvalidateRequiredSelectMenuOptionParameters,\n} from '../Assertions.js';\n\n/**\n * A builder that creates API-compatible JSON data for string select menu options.\n */\nexport class StringSelectMenuOptionBuilder implements JSONEncodable {\n\t/**\n\t * Creates a new string select menu option from API data.\n\t *\n\t * @param data - The API data to create this string select menu option with\n\t * @example\n\t * Creating a string select menu option from an API data object:\n\t * ```ts\n\t * const selectMenuOption = new SelectMenuOptionBuilder({\n\t * \tlabel: 'catchy label',\n\t * \tvalue: '1',\n\t * });\n\t * ```\n\t * @example\n\t * Creating a string select menu option using setters and API data:\n\t * ```ts\n\t * const selectMenuOption = new SelectMenuOptionBuilder({\n\t * \tdefault: true,\n\t * \tvalue: '1',\n\t * })\n\t * \t.setLabel('woah');\n\t * ```\n\t */\n\tpublic constructor(public data: Partial = {}) {}\n\n\t/**\n\t * Sets the label for this option.\n\t *\n\t * @param label - The label to use\n\t */\n\tpublic setLabel(label: string) {\n\t\tthis.data.label = labelValueDescriptionValidator.parse(label);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the value for this option.\n\t *\n\t * @param value - The value to use\n\t */\n\tpublic setValue(value: string) {\n\t\tthis.data.value = labelValueDescriptionValidator.parse(value);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description for this option.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string) {\n\t\tthis.data.description = labelValueDescriptionValidator.parse(description);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this option is selected by default.\n\t *\n\t * @param isDefault - Whether this option is selected by default\n\t */\n\tpublic setDefault(isDefault = true) {\n\t\tthis.data.default = defaultValidator.parse(isDefault);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the emoji to display for this option.\n\t *\n\t * @param emoji - The emoji to use\n\t */\n\tpublic setEmoji(emoji: APIMessageComponentEmoji) {\n\t\tthis.data.emoji = emojiValidator.parse(emoji);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc BaseSelectMenuBuilder.toJSON}\n\t */\n\tpublic toJSON(): APISelectMenuOption {\n\t\tvalidateRequiredSelectMenuOptionParameters(this.data.label, this.data.value);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APISelectMenuOption;\n\t}\n}\n","/* eslint-disable jsdoc/check-param-names */\n\nimport {\n\ttype APIActionRowComponent,\n\tComponentType,\n\ttype APIMessageActionRowComponent,\n\ttype APIModalActionRowComponent,\n\ttype APIActionRowComponentTypes,\n} from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../util/normalizeArray.js';\nimport { ComponentBuilder } from './Component.js';\nimport { createComponentBuilder } from './Components.js';\nimport type { ButtonBuilder } from './button/Button.js';\nimport type { ChannelSelectMenuBuilder } from './selectMenu/ChannelSelectMenu.js';\nimport type { MentionableSelectMenuBuilder } from './selectMenu/MentionableSelectMenu.js';\nimport type { RoleSelectMenuBuilder } from './selectMenu/RoleSelectMenu.js';\nimport type { StringSelectMenuBuilder } from './selectMenu/StringSelectMenu.js';\nimport type { UserSelectMenuBuilder } from './selectMenu/UserSelectMenu.js';\nimport type { TextInputBuilder } from './textInput/TextInput.js';\n\n/**\n * The builders that may be used for messages.\n */\nexport type MessageComponentBuilder =\n\t| ActionRowBuilder\n\t| MessageActionRowComponentBuilder;\n\n/**\n * The builders that may be used for modals.\n */\nexport type ModalComponentBuilder = ActionRowBuilder | ModalActionRowComponentBuilder;\n\n/**\n * The builders that may be used within an action row for messages.\n */\nexport type MessageActionRowComponentBuilder =\n\t| ButtonBuilder\n\t| ChannelSelectMenuBuilder\n\t| MentionableSelectMenuBuilder\n\t| RoleSelectMenuBuilder\n\t| StringSelectMenuBuilder\n\t| UserSelectMenuBuilder;\n\n/**\n * The builders that may be used within an action row for modals.\n */\nexport type ModalActionRowComponentBuilder = TextInputBuilder;\n\n/**\n * Any builder.\n */\nexport type AnyComponentBuilder = MessageActionRowComponentBuilder | ModalActionRowComponentBuilder;\n\n/**\n * A builder that creates API-compatible JSON data for action rows.\n *\n * @typeParam ComponentType - The types of components this action row holds\n */\nexport class ActionRowBuilder extends ComponentBuilder<\n\tAPIActionRowComponent\n> {\n\t/**\n\t * The components within this action row.\n\t */\n\tpublic readonly components: ComponentType[];\n\n\t/**\n\t * Creates a new action row from API data.\n\t *\n\t * @param data - The API data to create this action row with\n\t * @example\n\t * Creating an action row from an API data object:\n\t * ```ts\n\t * const actionRow = new ActionRowBuilder({\n\t * \tcomponents: [\n\t * \t\t{\n\t * \t\t\tcustom_id: \"custom id\",\n\t * \t\t\tlabel: \"Type something\",\n\t * \t\t\tstyle: TextInputStyle.Short,\n\t * \t\t\ttype: ComponentType.TextInput,\n\t * \t\t},\n\t * \t],\n\t * });\n\t * ```\n\t * @example\n\t * Creating an action row using setters and API data:\n\t * ```ts\n\t * const actionRow = new ActionRowBuilder({\n\t * \tcomponents: [\n\t * \t\t{\n\t * \t\t\tcustom_id: \"custom id\",\n\t * \t\t\tlabel: \"Click me\",\n\t * \t\t\tstyle: ButtonStyle.Primary,\n\t * \t\t\ttype: ComponentType.Button,\n\t * \t\t},\n\t * \t],\n\t * })\n\t * \t.addComponents(button2, button3);\n\t * ```\n\t */\n\tpublic constructor({ components, ...data }: Partial> = {}) {\n\t\tsuper({ type: ComponentType.ActionRow, ...data });\n\t\tthis.components = (components?.map((component) => createComponentBuilder(component)) ?? []) as ComponentType[];\n\t}\n\n\t/**\n\t * Adds components to this action row.\n\t *\n\t * @param components - The components to add\n\t */\n\tpublic addComponents(...components: RestOrArray) {\n\t\tthis.components.push(...normalizeArray(components));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets components for this action row.\n\t *\n\t * @param components - The components to set\n\t */\n\tpublic setComponents(...components: RestOrArray) {\n\t\tthis.components.splice(0, this.components.length, ...normalizeArray(components));\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIActionRowComponent> {\n\t\treturn {\n\t\t\t...this.data,\n\t\t\tcomponents: this.components.map((component) => component.toJSON()),\n\t\t} as APIActionRowComponent>;\n\t}\n}\n","import type { JSONEncodable } from '@discordjs/util';\nimport type {\n\tAPIActionRowComponent,\n\tAPIActionRowComponentTypes,\n\tAPIBaseComponent,\n\tComponentType,\n} from 'discord-api-types/v10';\n\n/**\n * Any action row component data represented as an object.\n */\nexport type AnyAPIActionRowComponent = APIActionRowComponent | APIActionRowComponentTypes;\n\n/**\n * The base component builder that contains common symbols for all sorts of components.\n *\n * @typeParam DataType - The type of internal API data that is stored within the component\n */\nexport abstract class ComponentBuilder<\n\tDataType extends Partial> = APIBaseComponent,\n> implements JSONEncodable\n{\n\t/**\n\t * The API data associated with this component.\n\t */\n\tpublic readonly data: Partial;\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic abstract toJSON(): AnyAPIActionRowComponent;\n\n\t/**\n\t * Constructs a new kind of component.\n\t *\n\t * @param data - The data to construct a component out of\n\t */\n\tpublic constructor(data: Partial) {\n\t\tthis.data = data;\n\t}\n}\n","import { ComponentType, type APIMessageComponent, type APIModalComponent } from 'discord-api-types/v10';\nimport {\n\tActionRowBuilder,\n\ttype AnyComponentBuilder,\n\ttype MessageComponentBuilder,\n\ttype ModalComponentBuilder,\n} from './ActionRow.js';\nimport { ComponentBuilder } from './Component.js';\nimport { ButtonBuilder } from './button/Button.js';\nimport { ChannelSelectMenuBuilder } from './selectMenu/ChannelSelectMenu.js';\nimport { MentionableSelectMenuBuilder } from './selectMenu/MentionableSelectMenu.js';\nimport { RoleSelectMenuBuilder } from './selectMenu/RoleSelectMenu.js';\nimport { StringSelectMenuBuilder } from './selectMenu/StringSelectMenu.js';\nimport { UserSelectMenuBuilder } from './selectMenu/UserSelectMenu.js';\nimport { TextInputBuilder } from './textInput/TextInput.js';\n\n/**\n * Components here are mapped to their respective builder.\n */\nexport interface MappedComponentTypes {\n\t/**\n\t * The action row component type is associated with an {@link ActionRowBuilder}.\n\t */\n\t[ComponentType.ActionRow]: ActionRowBuilder;\n\t/**\n\t * The button component type is associated with an {@link ButtonBuilder}.\n\t */\n\t[ComponentType.Button]: ButtonBuilder;\n\t/**\n\t * The string select component type is associated with an {@link StringSelectMenuBuilder}.\n\t */\n\t[ComponentType.StringSelect]: StringSelectMenuBuilder;\n\t/**\n\t * The text inpiut component type is associated with an {@link TextInputBuilder}.\n\t */\n\t[ComponentType.TextInput]: TextInputBuilder;\n\t/**\n\t * The user select component type is associated with an {@link UserSelectMenuBuilder}.\n\t */\n\t[ComponentType.UserSelect]: UserSelectMenuBuilder;\n\t/**\n\t * The role select component type is associated with an {@link RoleSelectMenuBuilder}.\n\t */\n\t[ComponentType.RoleSelect]: RoleSelectMenuBuilder;\n\t/**\n\t * The mentionable select component type is associated with an {@link MentionableSelectMenuBuilder}.\n\t */\n\t[ComponentType.MentionableSelect]: MentionableSelectMenuBuilder;\n\t/**\n\t * The channel select component type is associated with an {@link ChannelSelectMenuBuilder}.\n\t */\n\t[ComponentType.ChannelSelect]: ChannelSelectMenuBuilder;\n}\n\n/**\n * Factory for creating components from API data.\n *\n * @typeParam ComponentType - The type of component to use\n * @param data - The API data to transform to a component class\n */\nexport function createComponentBuilder(\n\t// eslint-disable-next-line @typescript-eslint/sort-type-constituents\n\tdata: (APIModalComponent | APIMessageComponent) & { type: ComponentType },\n): MappedComponentTypes[ComponentType];\n\n/**\n * Factory for creating components from API data.\n *\n * @typeParam ComponentBuilder - The type of component to use\n * @param data - The API data to transform to a component class\n */\nexport function createComponentBuilder(\n\tdata: ComponentBuilder,\n): ComponentBuilder;\n\nexport function createComponentBuilder(\n\tdata: APIMessageComponent | APIModalComponent | MessageComponentBuilder,\n): ComponentBuilder {\n\tif (data instanceof ComponentBuilder) {\n\t\treturn data;\n\t}\n\n\tswitch (data.type) {\n\t\tcase ComponentType.ActionRow:\n\t\t\treturn new ActionRowBuilder(data);\n\t\tcase ComponentType.Button:\n\t\t\treturn new ButtonBuilder(data);\n\t\tcase ComponentType.StringSelect:\n\t\t\treturn new StringSelectMenuBuilder(data);\n\t\tcase ComponentType.TextInput:\n\t\t\treturn new TextInputBuilder(data);\n\t\tcase ComponentType.UserSelect:\n\t\t\treturn new UserSelectMenuBuilder(data);\n\t\tcase ComponentType.RoleSelect:\n\t\t\treturn new RoleSelectMenuBuilder(data);\n\t\tcase ComponentType.MentionableSelect:\n\t\t\treturn new MentionableSelectMenuBuilder(data);\n\t\tcase ComponentType.ChannelSelect:\n\t\t\treturn new ChannelSelectMenuBuilder(data);\n\t\tdefault:\n\t\t\t// @ts-expect-error This case can still occur if we get a newer unsupported component type\n\t\t\tthrow new Error(`Cannot properly serialize component type: ${data.type}`);\n\t}\n}\n","import {\n\tComponentType,\n\ttype APIMessageComponentEmoji,\n\ttype APIButtonComponent,\n\ttype APIButtonComponentWithURL,\n\ttype APIButtonComponentWithCustomId,\n\ttype ButtonStyle,\n} from 'discord-api-types/v10';\nimport {\n\tbuttonLabelValidator,\n\tbuttonStyleValidator,\n\tcustomIdValidator,\n\tdisabledValidator,\n\temojiValidator,\n\turlValidator,\n\tvalidateRequiredButtonParameters,\n} from '../Assertions.js';\nimport { ComponentBuilder } from '../Component.js';\n\n/**\n * A builder that creates API-compatible JSON data for buttons.\n */\nexport class ButtonBuilder extends ComponentBuilder {\n\t/**\n\t * Creates a new button from API data.\n\t *\n\t * @param data - The API data to create this button with\n\t * @example\n\t * Creating a button from an API data object:\n\t * ```ts\n\t * const button = new ButtonBuilder({\n\t * \tcustom_id: 'a cool button',\n\t * \tstyle: ButtonStyle.Primary,\n\t * \tlabel: 'Click Me',\n\t * \temoji: {\n\t * \t\tname: 'smile',\n\t * \t\tid: '123456789012345678',\n\t * \t},\n\t * });\n\t * ```\n\t * @example\n\t * Creating a button using setters and API data:\n\t * ```ts\n\t * const button = new ButtonBuilder({\n\t * \tstyle: ButtonStyle.Secondary,\n\t * \tlabel: 'Click Me',\n\t * })\n\t * \t.setEmoji({ name: '🙂' })\n\t * \t.setCustomId('another cool button');\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ type: ComponentType.Button, ...data });\n\t}\n\n\t/**\n\t * Sets the style of this button.\n\t *\n\t * @param style - The style to use\n\t */\n\tpublic setStyle(style: ButtonStyle) {\n\t\tthis.data.style = buttonStyleValidator.parse(style);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the URL for this button.\n\t *\n\t * @remarks\n\t * This method is only available to buttons using the `Link` button style.\n\t * Only three types of URL schemes are currently supported: `https://`, `http://`, and `discord://`.\n\t * @param url - The URL to use\n\t */\n\tpublic setURL(url: string) {\n\t\t(this.data as APIButtonComponentWithURL).url = urlValidator.parse(url);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the custom id for this button.\n\t *\n\t * @remarks\n\t * This method is only applicable to buttons that are not using the `Link` button style.\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\t(this.data as APIButtonComponentWithCustomId).custom_id = customIdValidator.parse(customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the emoji to display on this button.\n\t *\n\t * @param emoji - The emoji to use\n\t */\n\tpublic setEmoji(emoji: APIMessageComponentEmoji) {\n\t\tthis.data.emoji = emojiValidator.parse(emoji);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this button is disabled.\n\t *\n\t * @param disabled - Whether to disable this button\n\t */\n\tpublic setDisabled(disabled = true) {\n\t\tthis.data.disabled = disabledValidator.parse(disabled);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the label for this button.\n\t *\n\t * @param label - The label to use\n\t */\n\tpublic setLabel(label: string) {\n\t\tthis.data.label = buttonLabelValidator.parse(label);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIButtonComponent {\n\t\tvalidateRequiredButtonParameters(\n\t\t\tthis.data.style,\n\t\t\tthis.data.label,\n\t\t\tthis.data.emoji,\n\t\t\t(this.data as APIButtonComponentWithCustomId).custom_id,\n\t\t\t(this.data as APIButtonComponentWithURL).url,\n\t\t);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APIButtonComponent;\n\t}\n}\n","import {\n\ttype APIChannelSelectComponent,\n\ttype ChannelType,\n\ttype Snowflake,\n\tComponentType,\n\tSelectMenuDefaultValueType,\n} from 'discord-api-types/v10';\nimport { type RestOrArray, normalizeArray } from '../../util/normalizeArray.js';\nimport { channelTypesValidator, customIdValidator, optionsLengthValidator } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\n\n/**\n * A builder that creates API-compatible JSON data for channel select menus.\n */\nexport class ChannelSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new ChannelSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new ChannelSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.addChannelTypes(ChannelType.GuildText, ChannelType.GuildAnnouncement)\n\t * \t.setMinValues(2);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ ...data, type: ComponentType.ChannelSelect });\n\t}\n\n\t/**\n\t * Adds channel types to this select menu.\n\t *\n\t * @param types - The channel types to use\n\t */\n\tpublic addChannelTypes(...types: RestOrArray) {\n\t\tconst normalizedTypes = normalizeArray(types);\n\t\tthis.data.channel_types ??= [];\n\t\tthis.data.channel_types.push(...channelTypesValidator.parse(normalizedTypes));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets channel types for this select menu.\n\t *\n\t * @param types - The channel types to use\n\t */\n\tpublic setChannelTypes(...types: RestOrArray) {\n\t\tconst normalizedTypes = normalizeArray(types);\n\t\tthis.data.channel_types ??= [];\n\t\tthis.data.channel_types.splice(0, this.data.channel_types.length, ...channelTypesValidator.parse(normalizedTypes));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds default channels to this auto populated select menu.\n\t *\n\t * @param channels - The channels to add\n\t */\n\tpublic addDefaultChannels(...channels: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(channels);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.Channel as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets default channels to this auto populated select menu.\n\t *\n\t * @param channels - The channels to set\n\t */\n\tpublic setDefaultChannels(...channels: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(channels);\n\t\toptionsLengthValidator.parse(normalizedValues.length);\n\n\t\tthis.data.default_values = normalizedValues.map((id) => ({\n\t\t\tid,\n\t\t\ttype: SelectMenuDefaultValueType.Channel as const,\n\t\t}));\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc BaseSelectMenuBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APIChannelSelectComponent {\n\t\tcustomIdValidator.parse(this.data.custom_id);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APIChannelSelectComponent;\n\t}\n}\n","import type { APISelectMenuComponent } from 'discord-api-types/v10';\nimport { customIdValidator, disabledValidator, minMaxValidator, placeholderValidator } from '../Assertions.js';\nimport { ComponentBuilder } from '../Component.js';\n\n/**\n * The base select menu builder that contains common symbols for select menu builders.\n *\n * @typeParam SelectMenuType - The type of select menu this would be instantiated for.\n */\nexport abstract class BaseSelectMenuBuilder<\n\tSelectMenuType extends APISelectMenuComponent,\n> extends ComponentBuilder {\n\t/**\n\t * Sets the placeholder for this select menu.\n\t *\n\t * @param placeholder - The placeholder to use\n\t */\n\tpublic setPlaceholder(placeholder: string) {\n\t\tthis.data.placeholder = placeholderValidator.parse(placeholder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the minimum values that must be selected in the select menu.\n\t *\n\t * @param minValues - The minimum values that must be selected\n\t */\n\tpublic setMinValues(minValues: number) {\n\t\tthis.data.min_values = minMaxValidator.parse(minValues);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the maximum values that must be selected in the select menu.\n\t *\n\t * @param maxValues - The maximum values that must be selected\n\t */\n\tpublic setMaxValues(maxValues: number) {\n\t\tthis.data.max_values = minMaxValidator.parse(maxValues);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the custom id for this select menu.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customIdValidator.parse(customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this select menu is disabled.\n\t *\n\t * @param disabled - Whether this select menu is disabled\n\t */\n\tpublic setDisabled(disabled = true) {\n\t\tthis.data.disabled = disabledValidator.parse(disabled);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): SelectMenuType {\n\t\tcustomIdValidator.parse(this.data.custom_id);\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as SelectMenuType;\n\t}\n}\n","import {\n\ttype APIMentionableSelectComponent,\n\ttype APISelectMenuDefaultValue,\n\ttype Snowflake,\n\tComponentType,\n\tSelectMenuDefaultValueType,\n} from 'discord-api-types/v10';\nimport { type RestOrArray, normalizeArray } from '../../util/normalizeArray.js';\nimport { optionsLengthValidator } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\n\n/**\n * A builder that creates API-compatible JSON data for mentionable select menus.\n */\nexport class MentionableSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new MentionableSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new MentionableSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.setMinValues(1);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ ...data, type: ComponentType.MentionableSelect });\n\t}\n\n\t/**\n\t * Adds default roles to this auto populated select menu.\n\t *\n\t * @param roles - The roles to add\n\t */\n\tpublic addDefaultRoles(...roles: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(roles);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.Role as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds default users to this auto populated select menu.\n\t *\n\t * @param users - The users to add\n\t */\n\tpublic addDefaultUsers(...users: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(users);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.User as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds default values to this auto populated select menu.\n\t *\n\t * @param values - The values to add\n\t */\n\tpublic addDefaultValues(\n\t\t...values: RestOrArray<\n\t\t\t| APISelectMenuDefaultValue\n\t\t\t| APISelectMenuDefaultValue\n\t\t>\n\t) {\n\t\tconst normalizedValues = normalizeArray(values);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\t\tthis.data.default_values.push(...normalizedValues);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets default values to this auto populated select menu.\n\t *\n\t * @param values - The values to set\n\t */\n\tpublic setDefaultValues(\n\t\t...values: RestOrArray<\n\t\t\t| APISelectMenuDefaultValue\n\t\t\t| APISelectMenuDefaultValue\n\t\t>\n\t) {\n\t\tconst normalizedValues = normalizeArray(values);\n\t\toptionsLengthValidator.parse(normalizedValues.length);\n\t\tthis.data.default_values = normalizedValues;\n\t\treturn this;\n\t}\n}\n","import {\n\ttype APIRoleSelectComponent,\n\ttype Snowflake,\n\tComponentType,\n\tSelectMenuDefaultValueType,\n} from 'discord-api-types/v10';\nimport { type RestOrArray, normalizeArray } from '../../util/normalizeArray.js';\nimport { optionsLengthValidator } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\n\n/**\n * A builder that creates API-compatible JSON data for role select menus.\n */\nexport class RoleSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new RoleSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new RoleSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.setMinValues(1);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ ...data, type: ComponentType.RoleSelect });\n\t}\n\n\t/**\n\t * Adds default roles to this auto populated select menu.\n\t *\n\t * @param roles - The roles to add\n\t */\n\tpublic addDefaultRoles(...roles: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(roles);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.Role as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets default roles to this auto populated select menu.\n\t *\n\t * @param roles - The roles to set\n\t */\n\tpublic setDefaultRoles(...roles: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(roles);\n\t\toptionsLengthValidator.parse(normalizedValues.length);\n\n\t\tthis.data.default_values = normalizedValues.map((id) => ({\n\t\t\tid,\n\t\t\ttype: SelectMenuDefaultValueType.Role as const,\n\t\t}));\n\n\t\treturn this;\n\t}\n}\n","import { ComponentType } from 'discord-api-types/v10';\nimport type { APIStringSelectComponent, APISelectMenuOption } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../util/normalizeArray.js';\nimport { jsonOptionValidator, optionsLengthValidator, validateRequiredSelectMenuParameters } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\nimport { StringSelectMenuOptionBuilder } from './StringSelectMenuOption.js';\n\n/**\n * A builder that creates API-compatible JSON data for string select menus.\n */\nexport class StringSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * The options within this select menu.\n\t */\n\tpublic readonly options: StringSelectMenuOptionBuilder[];\n\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new StringSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * \toptions: [\n\t * \t\t{ label: 'option 1', value: '1' },\n\t * \t\t{ label: 'option 2', value: '2' },\n\t * \t\t{ label: 'option 3', value: '3' },\n\t * \t],\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new StringSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.setMinValues(1)\n\t * \t.addOptions({\n\t * \t\tlabel: 'Catchy',\n\t * \t\tvalue: 'catch',\n\t * \t});\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tconst { options, ...initData } = data ?? {};\n\t\tsuper({ ...initData, type: ComponentType.StringSelect });\n\t\tthis.options = options?.map((option: APISelectMenuOption) => new StringSelectMenuOptionBuilder(option)) ?? [];\n\t}\n\n\t/**\n\t * Adds options to this select menu.\n\t *\n\t * @param options - The options to add\n\t */\n\tpublic addOptions(...options: RestOrArray) {\n\t\tconst normalizedOptions = normalizeArray(options);\n\t\toptionsLengthValidator.parse(this.options.length + normalizedOptions.length);\n\t\tthis.options.push(\n\t\t\t...normalizedOptions.map((normalizedOption) =>\n\t\t\t\tnormalizedOption instanceof StringSelectMenuOptionBuilder\n\t\t\t\t\t? normalizedOption\n\t\t\t\t\t: new StringSelectMenuOptionBuilder(jsonOptionValidator.parse(normalizedOption)),\n\t\t\t),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the options for this select menu.\n\t *\n\t * @param options - The options to set\n\t */\n\tpublic setOptions(...options: RestOrArray) {\n\t\treturn this.spliceOptions(0, this.options.length, ...options);\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts options for this select menu.\n\t *\n\t * @remarks\n\t * This method behaves similarly\n\t * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice | Array.prototype.splice()}.\n\t * It's useful for modifying and adjusting the order of existing options.\n\t * @example\n\t * Remove the first option:\n\t * ```ts\n\t * selectMenu.spliceOptions(0, 1);\n\t * ```\n\t * @example\n\t * Remove the first n option:\n\t * ```ts\n\t * const n = 4;\n\t * selectMenu.spliceOptions(0, n);\n\t * ```\n\t * @example\n\t * Remove the last option:\n\t * ```ts\n\t * selectMenu.spliceOptions(-1, 1);\n\t * ```\n\t * @param index - The index to start at\n\t * @param deleteCount - The number of options to remove\n\t * @param options - The replacing option objects or builders\n\t */\n\tpublic spliceOptions(\n\t\tindex: number,\n\t\tdeleteCount: number,\n\t\t...options: RestOrArray\n\t) {\n\t\tconst normalizedOptions = normalizeArray(options);\n\n\t\tconst clone = [...this.options];\n\n\t\tclone.splice(\n\t\t\tindex,\n\t\t\tdeleteCount,\n\t\t\t...normalizedOptions.map((normalizedOption) =>\n\t\t\t\tnormalizedOption instanceof StringSelectMenuOptionBuilder\n\t\t\t\t\t? normalizedOption\n\t\t\t\t\t: new StringSelectMenuOptionBuilder(jsonOptionValidator.parse(normalizedOption)),\n\t\t\t),\n\t\t);\n\n\t\toptionsLengthValidator.parse(clone.length);\n\t\tthis.options.splice(0, this.options.length, ...clone);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc BaseSelectMenuBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APIStringSelectComponent {\n\t\tvalidateRequiredSelectMenuParameters(this.options, this.data.custom_id);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t} as APIStringSelectComponent;\n\t}\n}\n","import {\n\ttype APIUserSelectComponent,\n\ttype Snowflake,\n\tComponentType,\n\tSelectMenuDefaultValueType,\n} from 'discord-api-types/v10';\nimport { type RestOrArray, normalizeArray } from '../../util/normalizeArray.js';\nimport { optionsLengthValidator } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\n\n/**\n * A builder that creates API-compatible JSON data for user select menus.\n */\nexport class UserSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new UserSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new UserSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.setMinValues(1);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ ...data, type: ComponentType.UserSelect });\n\t}\n\n\t/**\n\t * Adds default users to this auto populated select menu.\n\t *\n\t * @param users - The users to add\n\t */\n\tpublic addDefaultUsers(...users: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(users);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.User as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets default users to this auto populated select menu.\n\t *\n\t * @param users - The users to set\n\t */\n\tpublic setDefaultUsers(...users: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(users);\n\t\toptionsLengthValidator.parse(normalizedValues.length);\n\n\t\tthis.data.default_values = normalizedValues.map((id) => ({\n\t\t\tid,\n\t\t\ttype: SelectMenuDefaultValueType.User as const,\n\t\t}));\n\n\t\treturn this;\n\t}\n}\n","import { isJSONEncodable, type Equatable, type JSONEncodable } from '@discordjs/util';\nimport { ComponentType, type TextInputStyle, type APITextInputComponent } from 'discord-api-types/v10';\nimport isEqual from 'fast-deep-equal';\nimport { customIdValidator } from '../Assertions.js';\nimport { ComponentBuilder } from '../Component.js';\nimport {\n\tmaxLengthValidator,\n\tminLengthValidator,\n\tplaceholderValidator,\n\trequiredValidator,\n\tvalueValidator,\n\tvalidateRequiredParameters,\n\tlabelValidator,\n\ttextInputStyleValidator,\n} from './Assertions.js';\n\n/**\n * A builder that creates API-compatible JSON data for text inputs.\n */\nexport class TextInputBuilder\n\textends ComponentBuilder\n\timplements Equatable>\n{\n\t/**\n\t * Creates a new text input from API data.\n\t *\n\t * @param data - The API data to create this text input with\n\t * @example\n\t * Creating a select menu option from an API data object:\n\t * ```ts\n\t * const textInput = new TextInputBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tlabel: 'Type something',\n\t * \tstyle: TextInputStyle.Short,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu option using setters and API data:\n\t * ```ts\n\t * const textInput = new TextInputBuilder({\n\t * \tlabel: 'Type something else',\n\t * })\n\t * \t.setCustomId('woah')\n\t * \t.setStyle(TextInputStyle.Paragraph);\n\t * ```\n\t */\n\tpublic constructor(data?: APITextInputComponent & { type?: ComponentType.TextInput }) {\n\t\tsuper({ type: ComponentType.TextInput, ...data });\n\t}\n\n\t/**\n\t * Sets the custom id for this text input.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customIdValidator.parse(customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the label for this text input.\n\t *\n\t * @param label - The label to use\n\t */\n\tpublic setLabel(label: string) {\n\t\tthis.data.label = labelValidator.parse(label);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the style for this text input.\n\t *\n\t * @param style - The style to use\n\t */\n\tpublic setStyle(style: TextInputStyle) {\n\t\tthis.data.style = textInputStyleValidator.parse(style);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the minimum length of text for this text input.\n\t *\n\t * @param minLength - The minimum length of text for this text input\n\t */\n\tpublic setMinLength(minLength: number) {\n\t\tthis.data.min_length = minLengthValidator.parse(minLength);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the maximum length of text for this text input.\n\t *\n\t * @param maxLength - The maximum length of text for this text input\n\t */\n\tpublic setMaxLength(maxLength: number) {\n\t\tthis.data.max_length = maxLengthValidator.parse(maxLength);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the placeholder for this text input.\n\t *\n\t * @param placeholder - The placeholder to use\n\t */\n\tpublic setPlaceholder(placeholder: string) {\n\t\tthis.data.placeholder = placeholderValidator.parse(placeholder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the value for this text input.\n\t *\n\t * @param value - The value to use\n\t */\n\tpublic setValue(value: string) {\n\t\tthis.data.value = valueValidator.parse(value);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this text input is required.\n\t *\n\t * @param required - Whether this text input is required\n\t */\n\tpublic setRequired(required = true) {\n\t\tthis.data.required = requiredValidator.parse(required);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APITextInputComponent {\n\t\tvalidateRequiredParameters(this.data.custom_id, this.data.style, this.data.label);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APITextInputComponent;\n\t}\n\n\t/**\n\t * Whether this is equal to another structure.\n\t */\n\tpublic equals(other: APITextInputComponent | JSONEncodable): boolean {\n\t\tif (isJSONEncodable(other)) {\n\t\t\treturn isEqual(other.toJSON(), this.data);\n\t\t}\n\n\t\treturn isEqual(other, this.data);\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { TextInputStyle } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\nimport { customIdValidator } from '../Assertions.js';\n\nexport const textInputStyleValidator = s.nativeEnum(TextInputStyle);\nexport const minLengthValidator = s.number.int\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(4_000)\n\t.setValidationEnabled(isValidationEnabled);\nexport const maxLengthValidator = s.number.int\n\t.greaterThanOrEqual(1)\n\t.lessThanOrEqual(4_000)\n\t.setValidationEnabled(isValidationEnabled);\nexport const requiredValidator = s.boolean;\nexport const valueValidator = s.string.lengthLessThanOrEqual(4_000).setValidationEnabled(isValidationEnabled);\nexport const placeholderValidator = s.string.lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled);\nexport const labelValidator = s.string\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(45)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateRequiredParameters(customId?: string, style?: TextInputStyle, label?: string) {\n\tcustomIdValidator.parse(customId);\n\ttextInputStyleValidator.parse(style);\n\tlabelValidator.parse(label);\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ActionRowBuilder, type ModalActionRowComponentBuilder } from '../../components/ActionRow.js';\nimport { customIdValidator } from '../../components/Assertions.js';\nimport { isValidationEnabled } from '../../util/validation.js';\n\nexport const titleValidator = s.string\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(45)\n\t.setValidationEnabled(isValidationEnabled);\nexport const componentsValidator = s\n\t.instance(ActionRowBuilder)\n\t.array.lengthGreaterThanOrEqual(1)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateRequiredParameters(\n\tcustomId?: string,\n\ttitle?: string,\n\tcomponents?: ActionRowBuilder[],\n) {\n\tcustomIdValidator.parse(customId);\n\ttitleValidator.parse(title);\n\tcomponentsValidator.parse(components);\n}\n","/* eslint-disable jsdoc/check-param-names */\n\nimport type { JSONEncodable } from '@discordjs/util';\nimport type {\n\tAPIActionRowComponent,\n\tAPIModalActionRowComponent,\n\tAPIModalInteractionResponseCallbackData,\n} from 'discord-api-types/v10';\nimport { ActionRowBuilder, type ModalActionRowComponentBuilder } from '../../components/ActionRow.js';\nimport { customIdValidator } from '../../components/Assertions.js';\nimport { createComponentBuilder } from '../../components/Components.js';\nimport { normalizeArray, type RestOrArray } from '../../util/normalizeArray.js';\nimport { titleValidator, validateRequiredParameters } from './Assertions.js';\n\n/**\n * A builder that creates API-compatible JSON data for modals.\n */\nexport class ModalBuilder implements JSONEncodable {\n\t/**\n\t * The API data associated with this modal.\n\t */\n\tpublic readonly data: Partial;\n\n\t/**\n\t * The components within this modal.\n\t */\n\tpublic readonly components: ActionRowBuilder[] = [];\n\n\t/**\n\t * Creates a new modal from API data.\n\t *\n\t * @param data - The API data to create this modal with\n\t */\n\tpublic constructor({ components, ...data }: Partial = {}) {\n\t\tthis.data = { ...data };\n\t\tthis.components = (components?.map((component) => createComponentBuilder(component)) ??\n\t\t\t[]) as ActionRowBuilder[];\n\t}\n\n\t/**\n\t * Sets the title of this modal.\n\t *\n\t * @param title - The title to use\n\t */\n\tpublic setTitle(title: string) {\n\t\tthis.data.title = titleValidator.parse(title);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the custom id of this modal.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customIdValidator.parse(customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds components to this modal.\n\t *\n\t * @param components - The components to add\n\t */\n\tpublic addComponents(\n\t\t...components: RestOrArray<\n\t\t\tActionRowBuilder | APIActionRowComponent\n\t\t>\n\t) {\n\t\tthis.components.push(\n\t\t\t...normalizeArray(components).map((component) =>\n\t\t\t\tcomponent instanceof ActionRowBuilder\n\t\t\t\t\t? component\n\t\t\t\t\t: new ActionRowBuilder(component),\n\t\t\t),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets components for this modal.\n\t *\n\t * @param components - The components to set\n\t */\n\tpublic setComponents(...components: RestOrArray>) {\n\t\tthis.components.splice(0, this.components.length, ...normalizeArray(components));\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIModalInteractionResponseCallbackData {\n\t\tvalidateRequiredParameters(this.data.custom_id, this.data.title, this.components);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t\tcomponents: this.components.map((component) => component.toJSON()),\n\t\t} as APIModalInteractionResponseCallbackData;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { Locale, type APIApplicationCommandOptionChoice, type LocalizationMap } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\nimport type { ToAPIApplicationCommandOptions } from './SlashCommandBuilder.js';\nimport type { SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder } from './SlashCommandSubcommands.js';\nimport type { ApplicationCommandOptionBase } from './mixins/ApplicationCommandOptionBase.js';\n\nconst namePredicate = s.string\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(32)\n\t.regex(/^[\\p{Ll}\\p{Lm}\\p{Lo}\\p{N}\\p{sc=Devanagari}\\p{sc=Thai}_-]+$/u)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateName(name: unknown): asserts name is string {\n\tnamePredicate.parse(name);\n}\n\nconst descriptionPredicate = s.string\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(100)\n\t.setValidationEnabled(isValidationEnabled);\nconst localePredicate = s.nativeEnum(Locale);\n\nexport function validateDescription(description: unknown): asserts description is string {\n\tdescriptionPredicate.parse(description);\n}\n\nconst maxArrayLengthPredicate = s.unknown.array.lengthLessThanOrEqual(25).setValidationEnabled(isValidationEnabled);\nexport function validateLocale(locale: unknown) {\n\treturn localePredicate.parse(locale);\n}\n\nexport function validateMaxOptionsLength(options: unknown): asserts options is ToAPIApplicationCommandOptions[] {\n\tmaxArrayLengthPredicate.parse(options);\n}\n\nexport function validateRequiredParameters(\n\tname: string,\n\tdescription: string,\n\toptions: ToAPIApplicationCommandOptions[],\n) {\n\t// Assert name matches all conditions\n\tvalidateName(name);\n\n\t// Assert description conditions\n\tvalidateDescription(description);\n\n\t// Assert options conditions\n\tvalidateMaxOptionsLength(options);\n}\n\nconst booleanPredicate = s.boolean;\n\nexport function validateDefaultPermission(value: unknown): asserts value is boolean {\n\tbooleanPredicate.parse(value);\n}\n\nexport function validateRequired(required: unknown): asserts required is boolean {\n\tbooleanPredicate.parse(required);\n}\n\nconst choicesLengthPredicate = s.number.lessThanOrEqual(25).setValidationEnabled(isValidationEnabled);\n\nexport function validateChoicesLength(amountAdding: number, choices?: APIApplicationCommandOptionChoice[]): void {\n\tchoicesLengthPredicate.parse((choices?.length ?? 0) + amountAdding);\n}\n\nexport function assertReturnOfBuilder<\n\tReturnType extends ApplicationCommandOptionBase | SlashCommandSubcommandBuilder | SlashCommandSubcommandGroupBuilder,\n>(input: unknown, ExpectedInstanceOf: new () => ReturnType): asserts input is ReturnType {\n\ts.instance(ExpectedInstanceOf).parse(input);\n}\n\nexport const localizationMapPredicate = s\n\t.object(Object.fromEntries(Object.values(Locale).map((locale) => [locale, s.string.nullish])))\n\t.strict.nullish.setValidationEnabled(isValidationEnabled);\n\nexport function validateLocalizationMap(value: unknown): asserts value is LocalizationMap {\n\tlocalizationMapPredicate.parse(value);\n}\n\nconst dmPermissionPredicate = s.boolean.nullish;\n\nexport function validateDMPermission(value: unknown): asserts value is boolean | null | undefined {\n\tdmPermissionPredicate.parse(value);\n}\n\nconst memberPermissionPredicate = s.union(\n\ts.bigint.transform((value) => value.toString()),\n\ts.number.safeInt.transform((value) => value.toString()),\n\ts.string.regex(/^\\d+$/),\n).nullish;\n\nexport function validateDefaultMemberPermissions(permissions: unknown) {\n\treturn memberPermissionPredicate.parse(permissions);\n}\n\nexport function validateNSFW(value: unknown): asserts value is boolean {\n\tbooleanPredicate.parse(value);\n}\n","import type { APIApplicationCommandOption, LocalizationMap, Permissions } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { SharedNameAndDescription } from './mixins/NameAndDescription.js';\nimport { SharedSlashCommand } from './mixins/SharedSlashCommand.js';\nimport { SharedSlashCommandOptions } from './mixins/SharedSlashCommandOptions.js';\nimport { SharedSlashCommandSubcommands } from './mixins/SharedSubcommands.js';\n\n/**\n * A builder that creates API-compatible JSON data for slash commands.\n */\n@mix(SharedSlashCommandOptions, SharedNameAndDescription, SharedSlashCommandSubcommands, SharedSlashCommand)\nexport class SlashCommandBuilder {\n\t/**\n\t * The name of this command.\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The name localizations of this command.\n\t */\n\tpublic readonly name_localizations?: LocalizationMap;\n\n\t/**\n\t * The description of this command.\n\t */\n\tpublic readonly description: string = undefined!;\n\n\t/**\n\t * The description localizations of this command.\n\t */\n\tpublic readonly description_localizations?: LocalizationMap;\n\n\t/**\n\t * The options of this command.\n\t */\n\tpublic readonly options: ToAPIApplicationCommandOptions[] = [];\n\n\t/**\n\t * Whether this command is enabled by default when the application is added to a guild.\n\t *\n\t * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead.\n\t */\n\tpublic readonly default_permission: boolean | undefined = undefined;\n\n\t/**\n\t * The set of permissions represented as a bit set for the command.\n\t */\n\tpublic readonly default_member_permissions: Permissions | null | undefined = undefined;\n\n\t/**\n\t * Indicates whether the command is available in direct messages with the application.\n\t *\n\t * @remarks\n\t * By default, commands are visible. This property is only for global commands.\n\t */\n\tpublic readonly dm_permission: boolean | undefined = undefined;\n\n\t/**\n\t * Whether this command is NSFW.\n\t */\n\tpublic readonly nsfw: boolean | undefined = undefined;\n}\n\nexport interface SlashCommandBuilder\n\textends SharedNameAndDescription,\n\t\tSharedSlashCommandOptions,\n\t\tSharedSlashCommandSubcommands,\n\t\tSharedSlashCommand {}\n\n/**\n * An interface specifically for slash command subcommands.\n */\nexport interface SlashCommandSubcommandsOnlyBuilder\n\textends SharedNameAndDescription,\n\t\tSharedSlashCommandSubcommands,\n\t\tSharedSlashCommand {}\n\n/**\n * An interface specifically for slash command options.\n */\nexport interface SlashCommandOptionsOnlyBuilder\n\textends SharedNameAndDescription,\n\t\tSharedSlashCommandOptions,\n\t\tSharedSlashCommand {}\n\n/**\n * An interface that ensures the `toJSON()` call will return something\n * that can be serialized into API-compatible data.\n */\nexport interface ToAPIApplicationCommandOptions {\n\ttoJSON(): APIApplicationCommandOption;\n}\n","import type { LocaleString, LocalizationMap } from 'discord-api-types/v10';\nimport { validateDescription, validateLocale, validateName } from '../Assertions.js';\n\n/**\n * This mixin holds name and description symbols for slash commands.\n */\nexport class SharedNameAndDescription {\n\t/**\n\t * The name of this command.\n\t */\n\tpublic readonly name!: string;\n\n\t/**\n\t * The name localizations of this command.\n\t */\n\tpublic readonly name_localizations?: LocalizationMap;\n\n\t/**\n\t * The description of this command.\n\t */\n\tpublic readonly description!: string;\n\n\t/**\n\t * The description localizations of this command.\n\t */\n\tpublic readonly description_localizations?: LocalizationMap;\n\n\t/**\n\t * Sets the name of this command.\n\t *\n\t * @param name - The name to use\n\t */\n\tpublic setName(name: string): this {\n\t\t// Assert the name matches the conditions\n\t\tvalidateName(name);\n\n\t\tReflect.set(this, 'name', name);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description of this command.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string) {\n\t\t// Assert the description matches the conditions\n\t\tvalidateDescription(description);\n\n\t\tReflect.set(this, 'description', description);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a name localization for this command.\n\t *\n\t * @param locale - The locale to set\n\t * @param localizedName - The localized name for the given `locale`\n\t */\n\tpublic setNameLocalization(locale: LocaleString, localizedName: string | null) {\n\t\tif (!this.name_localizations) {\n\t\t\tReflect.set(this, 'name_localizations', {});\n\t\t}\n\n\t\tconst parsedLocale = validateLocale(locale);\n\n\t\tif (localizedName === null) {\n\t\t\tthis.name_localizations![parsedLocale] = null;\n\t\t\treturn this;\n\t\t}\n\n\t\tvalidateName(localizedName);\n\n\t\tthis.name_localizations![parsedLocale] = localizedName;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the name localizations for this command.\n\t *\n\t * @param localizedNames - The object of localized names to set\n\t */\n\tpublic setNameLocalizations(localizedNames: LocalizationMap | null) {\n\t\tif (localizedNames === null) {\n\t\t\tReflect.set(this, 'name_localizations', null);\n\t\t\treturn this;\n\t\t}\n\n\t\tReflect.set(this, 'name_localizations', {});\n\n\t\tfor (const args of Object.entries(localizedNames)) {\n\t\t\tthis.setNameLocalization(...(args as [LocaleString, string | null]));\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a description localization for this command.\n\t *\n\t * @param locale - The locale to set\n\t * @param localizedDescription - The localized description for the given locale\n\t */\n\tpublic setDescriptionLocalization(locale: LocaleString, localizedDescription: string | null) {\n\t\tif (!this.description_localizations) {\n\t\t\tReflect.set(this, 'description_localizations', {});\n\t\t}\n\n\t\tconst parsedLocale = validateLocale(locale);\n\n\t\tif (localizedDescription === null) {\n\t\t\tthis.description_localizations![parsedLocale] = null;\n\t\t\treturn this;\n\t\t}\n\n\t\tvalidateDescription(localizedDescription);\n\n\t\tthis.description_localizations![parsedLocale] = localizedDescription;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description localizations for this command.\n\t *\n\t * @param localizedDescriptions - The object of localized descriptions to set\n\t */\n\tpublic setDescriptionLocalizations(localizedDescriptions: LocalizationMap | null) {\n\t\tif (localizedDescriptions === null) {\n\t\t\tReflect.set(this, 'description_localizations', null);\n\t\t\treturn this;\n\t\t}\n\n\t\tReflect.set(this, 'description_localizations', {});\n\t\tfor (const args of Object.entries(localizedDescriptions)) {\n\t\t\tthis.setDescriptionLocalization(...(args as [LocaleString, string | null]));\n\t\t}\n\n\t\treturn this;\n\t}\n}\n","import type {\n\tLocalizationMap,\n\tPermissions,\n\tRESTPostAPIChatInputApplicationCommandsJSONBody,\n} from 'discord-api-types/v10';\nimport {\n\tvalidateDMPermission,\n\tvalidateDefaultMemberPermissions,\n\tvalidateDefaultPermission,\n\tvalidateLocalizationMap,\n\tvalidateNSFW,\n\tvalidateRequiredParameters,\n} from '../Assertions.js';\nimport type { ToAPIApplicationCommandOptions } from '../SlashCommandBuilder.js';\n\n/**\n * This mixin holds symbols that can be shared in slashcommands independent of options or subcommands.\n */\nexport class SharedSlashCommand {\n\tpublic readonly name: string = undefined!;\n\n\tpublic readonly name_localizations?: LocalizationMap;\n\n\tpublic readonly description: string = undefined!;\n\n\tpublic readonly description_localizations?: LocalizationMap;\n\n\tpublic readonly options: ToAPIApplicationCommandOptions[] = [];\n\n\t/**\n\t * Sets whether the command is enabled by default when the application is added to a guild.\n\t *\n\t * @remarks\n\t * If set to `false`, you will have to later `PUT` the permissions for this command.\n\t * @param value - Whether or not to enable this command by default\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead.\n\t */\n\tpublic setDefaultPermission(value: boolean) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateDefaultPermission(value);\n\n\t\tReflect.set(this, 'default_permission', value);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the default permissions a member should have in order to run the command.\n\t *\n\t * @remarks\n\t * You can set this to `'0'` to disable the command by default.\n\t * @param permissions - The permissions bit field to set\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t */\n\tpublic setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined) {\n\t\t// Assert the value and parse it\n\t\tconst permissionValue = validateDefaultMemberPermissions(permissions);\n\n\t\tReflect.set(this, 'default_member_permissions', permissionValue);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets if the command is available in direct messages with the application.\n\t *\n\t * @remarks\n\t * By default, commands are visible. This method is only for global commands.\n\t * @param enabled - Whether the command should be enabled in direct messages\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t */\n\tpublic setDMPermission(enabled: boolean | null | undefined) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateDMPermission(enabled);\n\n\t\tReflect.set(this, 'dm_permission', enabled);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this command is NSFW.\n\t *\n\t * @param nsfw - Whether this command is NSFW\n\t */\n\tpublic setNSFW(nsfw = true) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateNSFW(nsfw);\n\t\tReflect.set(this, 'nsfw', nsfw);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): RESTPostAPIChatInputApplicationCommandsJSONBody {\n\t\tvalidateRequiredParameters(this.name, this.description, this.options);\n\n\t\tvalidateLocalizationMap(this.name_localizations);\n\t\tvalidateLocalizationMap(this.description_localizations);\n\n\t\treturn {\n\t\t\t...this,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\t}\n}\n","import { ApplicationCommandOptionType, type APIApplicationCommandAttachmentOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command attachment option.\n */\nexport class SlashCommandAttachmentOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic override readonly type = ApplicationCommandOptionType.Attachment as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandAttachmentOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import type { APIApplicationCommandBasicOption, ApplicationCommandOptionType } from 'discord-api-types/v10';\nimport { validateRequiredParameters, validateRequired, validateLocalizationMap } from '../Assertions.js';\nimport { SharedNameAndDescription } from './NameAndDescription.js';\n\n/**\n * The base application command option builder that contains common symbols for application command builders.\n */\nexport abstract class ApplicationCommandOptionBase extends SharedNameAndDescription {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic abstract readonly type: ApplicationCommandOptionType;\n\n\t/**\n\t * Whether this option is required.\n\t *\n\t * @defaultValue `false`\n\t */\n\tpublic readonly required: boolean = false;\n\n\t/**\n\t * Sets whether this option is required.\n\t *\n\t * @param required - Whether this option should be required\n\t */\n\tpublic setRequired(required: boolean) {\n\t\t// Assert that you actually passed a boolean\n\t\tvalidateRequired(required);\n\n\t\tReflect.set(this, 'required', required);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic abstract toJSON(): APIApplicationCommandBasicOption;\n\n\t/**\n\t * This method runs required validators on this builder.\n\t */\n\tprotected runRequiredValidations() {\n\t\tvalidateRequiredParameters(this.name, this.description, []);\n\n\t\t// Validate localizations\n\t\tvalidateLocalizationMap(this.name_localizations);\n\t\tvalidateLocalizationMap(this.description_localizations);\n\n\t\t// Assert that you actually passed a boolean\n\t\tvalidateRequired(this.required);\n\t}\n}\n","import { ApplicationCommandOptionType, type APIApplicationCommandBooleanOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command boolean option.\n */\nexport class SlashCommandBooleanOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.Boolean as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandBooleanOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { ApplicationCommandOptionType, type APIApplicationCommandChannelOption } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\nimport { ApplicationCommandOptionChannelTypesMixin } from '../mixins/ApplicationCommandOptionChannelTypesMixin.js';\n\n/**\n * A slash command channel option.\n */\n@mix(ApplicationCommandOptionChannelTypesMixin)\nexport class SlashCommandChannelOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic override readonly type = ApplicationCommandOptionType.Channel as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandChannelOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n\nexport interface SlashCommandChannelOption extends ApplicationCommandOptionChannelTypesMixin {}\n","import { s } from '@sapphire/shapeshift';\nimport { ChannelType } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../../util/normalizeArray';\n\n/**\n * The allowed channel types used for a channel option in a slash command builder.\n *\n * @privateRemarks This can't be dynamic because const enums are erased at runtime.\n * @internal\n */\nconst allowedChannelTypes = [\n\tChannelType.GuildText,\n\tChannelType.GuildVoice,\n\tChannelType.GuildCategory,\n\tChannelType.GuildAnnouncement,\n\tChannelType.AnnouncementThread,\n\tChannelType.PublicThread,\n\tChannelType.PrivateThread,\n\tChannelType.GuildStageVoice,\n\tChannelType.GuildForum,\n\tChannelType.GuildMedia,\n] as const;\n\n/**\n * The type of allowed channel types used for a channel option.\n */\nexport type ApplicationCommandOptionAllowedChannelTypes = (typeof allowedChannelTypes)[number];\n\nconst channelTypesPredicate = s.array(s.union(...allowedChannelTypes.map((type) => s.literal(type))));\n\n/**\n * This mixin holds channel type symbols used for options.\n */\nexport class ApplicationCommandOptionChannelTypesMixin {\n\t/**\n\t * The channel types of this option.\n\t */\n\tpublic readonly channel_types?: ApplicationCommandOptionAllowedChannelTypes[];\n\n\t/**\n\t * Adds channel types to this option.\n\t *\n\t * @param channelTypes - The channel types\n\t */\n\tpublic addChannelTypes(...channelTypes: RestOrArray) {\n\t\tif (this.channel_types === undefined) {\n\t\t\tReflect.set(this, 'channel_types', []);\n\t\t}\n\n\t\tthis.channel_types!.push(...channelTypesPredicate.parse(normalizeArray(channelTypes)));\n\n\t\treturn this;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandOptionType, type APIApplicationCommandIntegerOption } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandNumericOptionMinMaxValueMixin } from '../mixins/ApplicationCommandNumericOptionMinMaxValueMixin.js';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\nimport { ApplicationCommandOptionWithAutocompleteMixin } from '../mixins/ApplicationCommandOptionWithAutocompleteMixin.js';\nimport { ApplicationCommandOptionWithChoicesMixin } from '../mixins/ApplicationCommandOptionWithChoicesMixin.js';\n\nconst numberValidator = s.number.int;\n\n/**\n * A slash command integer option.\n */\n@mix(\n\tApplicationCommandNumericOptionMinMaxValueMixin,\n\tApplicationCommandOptionWithAutocompleteMixin,\n\tApplicationCommandOptionWithChoicesMixin,\n)\nexport class SlashCommandIntegerOption\n\textends ApplicationCommandOptionBase\n\timplements ApplicationCommandNumericOptionMinMaxValueMixin\n{\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.Integer as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue}\n\t */\n\tpublic setMaxValue(max: number): this {\n\t\tnumberValidator.parse(max);\n\n\t\tReflect.set(this, 'max_value', max);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue}\n\t */\n\tpublic setMinValue(min: number): this {\n\t\tnumberValidator.parse(min);\n\n\t\tReflect.set(this, 'min_value', min);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandIntegerOption {\n\t\tthis.runRequiredValidations();\n\n\t\tif (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\treturn { ...this } as APIApplicationCommandIntegerOption;\n\t}\n}\n\nexport interface SlashCommandIntegerOption\n\textends ApplicationCommandNumericOptionMinMaxValueMixin,\n\t\tApplicationCommandOptionWithChoicesMixin,\n\t\tApplicationCommandOptionWithAutocompleteMixin {}\n","/**\n * This mixin holds minimum and maximum symbols used for options.\n */\nexport abstract class ApplicationCommandNumericOptionMinMaxValueMixin {\n\t/**\n\t * The maximum value of this option.\n\t */\n\tpublic readonly max_value?: number;\n\n\t/**\n\t * The minimum value of this option.\n\t */\n\tpublic readonly min_value?: number;\n\n\t/**\n\t * Sets the maximum number value of this option.\n\t *\n\t * @param max - The maximum value this option can be\n\t */\n\tpublic abstract setMaxValue(max: number): this;\n\n\t/**\n\t * Sets the minimum number value of this option.\n\t *\n\t * @param min - The minimum value this option can be\n\t */\n\tpublic abstract setMinValue(min: number): this;\n}\n","import { s } from '@sapphire/shapeshift';\nimport type { ApplicationCommandOptionType } from 'discord-api-types/v10';\n\nconst booleanPredicate = s.boolean;\n\n/**\n * This mixin holds choices and autocomplete symbols used for options.\n */\nexport class ApplicationCommandOptionWithAutocompleteMixin {\n\t/**\n\t * Whether this option utilizes autocomplete.\n\t */\n\tpublic readonly autocomplete?: boolean;\n\n\t/**\n\t * The type of this option.\n\t *\n\t * @privateRemarks Since this is present and this is a mixin, this is needed.\n\t */\n\tpublic readonly type!: ApplicationCommandOptionType;\n\n\t/**\n\t * Whether this option uses autocomplete.\n\t *\n\t * @param autocomplete - Whether this option should use autocomplete\n\t */\n\tpublic setAutocomplete(autocomplete: boolean): this {\n\t\t// Assert that you actually passed a boolean\n\t\tbooleanPredicate.parse(autocomplete);\n\n\t\tif (autocomplete && 'choices' in this && Array.isArray(this.choices) && this.choices.length > 0) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\tReflect.set(this, 'autocomplete', autocomplete);\n\n\t\treturn this;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandOptionType, type APIApplicationCommandOptionChoice } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../../util/normalizeArray.js';\nimport { localizationMapPredicate, validateChoicesLength } from '../Assertions.js';\n\nconst stringPredicate = s.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100);\nconst numberPredicate = s.number.greaterThan(Number.NEGATIVE_INFINITY).lessThan(Number.POSITIVE_INFINITY);\nconst choicesPredicate = s.object({\n\tname: stringPredicate,\n\tname_localizations: localizationMapPredicate,\n\tvalue: s.union(stringPredicate, numberPredicate),\n}).array;\n\n/**\n * This mixin holds choices and autocomplete symbols used for options.\n */\nexport class ApplicationCommandOptionWithChoicesMixin {\n\t/**\n\t * The choices of this option.\n\t */\n\tpublic readonly choices?: APIApplicationCommandOptionChoice[];\n\n\t/**\n\t * The type of this option.\n\t *\n\t * @privateRemarks Since this is present and this is a mixin, this is needed.\n\t */\n\tpublic readonly type!: ApplicationCommandOptionType;\n\n\t/**\n\t * Adds multiple choices to this option.\n\t *\n\t * @param choices - The choices to add\n\t */\n\tpublic addChoices(...choices: RestOrArray>): this {\n\t\tconst normalizedChoices = normalizeArray(choices);\n\t\tif (normalizedChoices.length > 0 && 'autocomplete' in this && this.autocomplete) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\tchoicesPredicate.parse(normalizedChoices);\n\n\t\tif (this.choices === undefined) {\n\t\t\tReflect.set(this, 'choices', []);\n\t\t}\n\n\t\tvalidateChoicesLength(normalizedChoices.length, this.choices);\n\n\t\tfor (const { name, name_localizations, value } of normalizedChoices) {\n\t\t\t// Validate the value\n\t\t\tif (this.type === ApplicationCommandOptionType.String) {\n\t\t\t\tstringPredicate.parse(value);\n\t\t\t} else {\n\t\t\t\tnumberPredicate.parse(value);\n\t\t\t}\n\n\t\t\tthis.choices!.push({ name, name_localizations, value });\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets multiple choices for this option.\n\t *\n\t * @param choices - The choices to set\n\t */\n\tpublic setChoices>(...choices: RestOrArray): this {\n\t\tconst normalizedChoices = normalizeArray(choices);\n\t\tif (normalizedChoices.length > 0 && 'autocomplete' in this && this.autocomplete) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\tchoicesPredicate.parse(normalizedChoices);\n\n\t\tReflect.set(this, 'choices', []);\n\t\tthis.addChoices(normalizedChoices);\n\n\t\treturn this;\n\t}\n}\n","import { ApplicationCommandOptionType, type APIApplicationCommandMentionableOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command mentionable option.\n */\nexport class SlashCommandMentionableOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.Mentionable as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandMentionableOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandOptionType, type APIApplicationCommandNumberOption } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandNumericOptionMinMaxValueMixin } from '../mixins/ApplicationCommandNumericOptionMinMaxValueMixin.js';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\nimport { ApplicationCommandOptionWithAutocompleteMixin } from '../mixins/ApplicationCommandOptionWithAutocompleteMixin.js';\nimport { ApplicationCommandOptionWithChoicesMixin } from '../mixins/ApplicationCommandOptionWithChoicesMixin.js';\n\nconst numberValidator = s.number;\n\n/**\n * A slash command number option.\n */\n@mix(\n\tApplicationCommandNumericOptionMinMaxValueMixin,\n\tApplicationCommandOptionWithAutocompleteMixin,\n\tApplicationCommandOptionWithChoicesMixin,\n)\nexport class SlashCommandNumberOption\n\textends ApplicationCommandOptionBase\n\timplements ApplicationCommandNumericOptionMinMaxValueMixin\n{\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.Number as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue}\n\t */\n\tpublic setMaxValue(max: number): this {\n\t\tnumberValidator.parse(max);\n\n\t\tReflect.set(this, 'max_value', max);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue}\n\t */\n\tpublic setMinValue(min: number): this {\n\t\tnumberValidator.parse(min);\n\n\t\tReflect.set(this, 'min_value', min);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandNumberOption {\n\t\tthis.runRequiredValidations();\n\n\t\tif (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\treturn { ...this } as APIApplicationCommandNumberOption;\n\t}\n}\n\nexport interface SlashCommandNumberOption\n\textends ApplicationCommandNumericOptionMinMaxValueMixin,\n\t\tApplicationCommandOptionWithChoicesMixin,\n\t\tApplicationCommandOptionWithAutocompleteMixin {}\n","import { ApplicationCommandOptionType, type APIApplicationCommandRoleOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command role option.\n */\nexport class SlashCommandRoleOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic override readonly type = ApplicationCommandOptionType.Role as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandRoleOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandOptionType, type APIApplicationCommandStringOption } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\nimport { ApplicationCommandOptionWithAutocompleteMixin } from '../mixins/ApplicationCommandOptionWithAutocompleteMixin.js';\nimport { ApplicationCommandOptionWithChoicesMixin } from '../mixins/ApplicationCommandOptionWithChoicesMixin.js';\n\nconst minLengthValidator = s.number.greaterThanOrEqual(0).lessThanOrEqual(6_000);\nconst maxLengthValidator = s.number.greaterThanOrEqual(1).lessThanOrEqual(6_000);\n\n/**\n * A slash command string option.\n */\n@mix(ApplicationCommandOptionWithAutocompleteMixin, ApplicationCommandOptionWithChoicesMixin)\nexport class SlashCommandStringOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.String as const;\n\n\t/**\n\t * The maximum length of this option.\n\t */\n\tpublic readonly max_length?: number;\n\n\t/**\n\t * The minimum length of this option.\n\t */\n\tpublic readonly min_length?: number;\n\n\t/**\n\t * Sets the maximum length of this string option.\n\t *\n\t * @param max - The maximum length this option can be\n\t */\n\tpublic setMaxLength(max: number): this {\n\t\tmaxLengthValidator.parse(max);\n\n\t\tReflect.set(this, 'max_length', max);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the minimum length of this string option.\n\t *\n\t * @param min - The minimum length this option can be\n\t */\n\tpublic setMinLength(min: number): this {\n\t\tminLengthValidator.parse(min);\n\n\t\tReflect.set(this, 'min_length', min);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandStringOption {\n\t\tthis.runRequiredValidations();\n\n\t\tif (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\treturn { ...this } as APIApplicationCommandStringOption;\n\t}\n}\n\nexport interface SlashCommandStringOption\n\textends ApplicationCommandOptionWithChoicesMixin,\n\t\tApplicationCommandOptionWithAutocompleteMixin {}\n","import { ApplicationCommandOptionType, type APIApplicationCommandUserOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command user option.\n */\nexport class SlashCommandUserOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.User as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandUserOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { assertReturnOfBuilder, validateMaxOptionsLength } from '../Assertions.js';\nimport type { ToAPIApplicationCommandOptions } from '../SlashCommandBuilder';\nimport { SlashCommandAttachmentOption } from '../options/attachment.js';\nimport { SlashCommandBooleanOption } from '../options/boolean.js';\nimport { SlashCommandChannelOption } from '../options/channel.js';\nimport { SlashCommandIntegerOption } from '../options/integer.js';\nimport { SlashCommandMentionableOption } from '../options/mentionable.js';\nimport { SlashCommandNumberOption } from '../options/number.js';\nimport { SlashCommandRoleOption } from '../options/role.js';\nimport { SlashCommandStringOption } from '../options/string.js';\nimport { SlashCommandUserOption } from '../options/user.js';\nimport type { ApplicationCommandOptionBase } from './ApplicationCommandOptionBase.js';\n\n/**\n * This mixin holds symbols that can be shared in slash command options.\n *\n * @typeParam TypeAfterAddingOptions - The type this class should return after adding an option.\n */\nexport class SharedSlashCommandOptions<\n\tTypeAfterAddingOptions extends SharedSlashCommandOptions,\n> {\n\tpublic readonly options!: ToAPIApplicationCommandOptions[];\n\n\t/**\n\t * Adds a boolean option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addBooleanOption(\n\t\tinput: SlashCommandBooleanOption | ((builder: SlashCommandBooleanOption) => SlashCommandBooleanOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandBooleanOption);\n\t}\n\n\t/**\n\t * Adds a user option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addUserOption(input: SlashCommandUserOption | ((builder: SlashCommandUserOption) => SlashCommandUserOption)) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandUserOption);\n\t}\n\n\t/**\n\t * Adds a channel option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addChannelOption(\n\t\tinput: SlashCommandChannelOption | ((builder: SlashCommandChannelOption) => SlashCommandChannelOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandChannelOption);\n\t}\n\n\t/**\n\t * Adds a role option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addRoleOption(input: SlashCommandRoleOption | ((builder: SlashCommandRoleOption) => SlashCommandRoleOption)) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandRoleOption);\n\t}\n\n\t/**\n\t * Adds an attachment option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addAttachmentOption(\n\t\tinput: SlashCommandAttachmentOption | ((builder: SlashCommandAttachmentOption) => SlashCommandAttachmentOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandAttachmentOption);\n\t}\n\n\t/**\n\t * Adds a mentionable option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addMentionableOption(\n\t\tinput: SlashCommandMentionableOption | ((builder: SlashCommandMentionableOption) => SlashCommandMentionableOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandMentionableOption);\n\t}\n\n\t/**\n\t * Adds a string option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addStringOption(\n\t\tinput: SlashCommandStringOption | ((builder: SlashCommandStringOption) => SlashCommandStringOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandStringOption);\n\t}\n\n\t/**\n\t * Adds an integer option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addIntegerOption(\n\t\tinput: SlashCommandIntegerOption | ((builder: SlashCommandIntegerOption) => SlashCommandIntegerOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandIntegerOption);\n\t}\n\n\t/**\n\t * Adds a number option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addNumberOption(\n\t\tinput: SlashCommandNumberOption | ((builder: SlashCommandNumberOption) => SlashCommandNumberOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandNumberOption);\n\t}\n\n\t/**\n\t * Where the actual adding magic happens. ✨\n\t *\n\t * @param input - The input. What else?\n\t * @param Instance - The instance of whatever is being added\n\t * @internal\n\t */\n\tprivate _sharedAddOptionMethod(\n\t\tinput: OptionBuilder | ((builder: OptionBuilder) => OptionBuilder),\n\t\tInstance: new () => OptionBuilder,\n\t): TypeAfterAddingOptions {\n\t\tconst { options } = this;\n\n\t\t// First, assert options conditions - we cannot have more than 25 options\n\t\tvalidateMaxOptionsLength(options);\n\n\t\t// Get the final result\n\t\tconst result = typeof input === 'function' ? input(new Instance()) : input;\n\n\t\tassertReturnOfBuilder(result, Instance);\n\n\t\t// Push it\n\t\toptions.push(result);\n\n\t\treturn this as unknown as TypeAfterAddingOptions;\n\t}\n}\n","import {\n\tApplicationCommandOptionType,\n\ttype APIApplicationCommandSubcommandGroupOption,\n\ttype APIApplicationCommandSubcommandOption,\n} from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { assertReturnOfBuilder, validateMaxOptionsLength, validateRequiredParameters } from './Assertions.js';\nimport type { ToAPIApplicationCommandOptions } from './SlashCommandBuilder.js';\nimport type { ApplicationCommandOptionBase } from './mixins/ApplicationCommandOptionBase.js';\nimport { SharedNameAndDescription } from './mixins/NameAndDescription.js';\nimport { SharedSlashCommandOptions } from './mixins/SharedSlashCommandOptions.js';\n\n/**\n * Represents a folder for subcommands.\n *\n * @see {@link https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups}\n */\n@mix(SharedNameAndDescription)\nexport class SlashCommandSubcommandGroupBuilder implements ToAPIApplicationCommandOptions {\n\t/**\n\t * The name of this subcommand group.\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The description of this subcommand group.\n\t */\n\tpublic readonly description: string = undefined!;\n\n\t/**\n\t * The subcommands within this subcommand group.\n\t */\n\tpublic readonly options: SlashCommandSubcommandBuilder[] = [];\n\n\t/**\n\t * Adds a new subcommand to this group.\n\t *\n\t * @param input - A function that returns a subcommand builder or an already built builder\n\t */\n\tpublic addSubcommand(\n\t\tinput:\n\t\t\t| SlashCommandSubcommandBuilder\n\t\t\t| ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder),\n\t) {\n\t\tconst { options } = this;\n\n\t\t// First, assert options conditions - we cannot have more than 25 options\n\t\tvalidateMaxOptionsLength(options);\n\n\t\t// Get the final result\n\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\tconst result = typeof input === 'function' ? input(new SlashCommandSubcommandBuilder()) : input;\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\tassertReturnOfBuilder(result, SlashCommandSubcommandBuilder);\n\n\t\t// Push it\n\t\toptions.push(result);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): APIApplicationCommandSubcommandGroupOption {\n\t\tvalidateRequiredParameters(this.name, this.description, this.options);\n\n\t\treturn {\n\t\t\ttype: ApplicationCommandOptionType.SubcommandGroup,\n\t\t\tname: this.name,\n\t\t\tname_localizations: this.name_localizations,\n\t\t\tdescription: this.description,\n\t\t\tdescription_localizations: this.description_localizations,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\t}\n}\n\nexport interface SlashCommandSubcommandGroupBuilder extends SharedNameAndDescription {}\n\n/**\n * A builder that creates API-compatible JSON data for slash command subcommands.\n *\n * @see {@link https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups}\n */\n@mix(SharedNameAndDescription, SharedSlashCommandOptions)\nexport class SlashCommandSubcommandBuilder implements ToAPIApplicationCommandOptions {\n\t/**\n\t * The name of this subcommand.\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The description of this subcommand.\n\t */\n\tpublic readonly description: string = undefined!;\n\n\t/**\n\t * The options within this subcommand.\n\t */\n\tpublic readonly options: ApplicationCommandOptionBase[] = [];\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): APIApplicationCommandSubcommandOption {\n\t\tvalidateRequiredParameters(this.name, this.description, this.options);\n\n\t\treturn {\n\t\t\ttype: ApplicationCommandOptionType.Subcommand,\n\t\t\tname: this.name,\n\t\t\tname_localizations: this.name_localizations,\n\t\t\tdescription: this.description,\n\t\t\tdescription_localizations: this.description_localizations,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\t}\n}\n\nexport interface SlashCommandSubcommandBuilder\n\textends SharedNameAndDescription,\n\t\tSharedSlashCommandOptions {}\n","import { assertReturnOfBuilder, validateMaxOptionsLength } from '../Assertions.js';\nimport type { ToAPIApplicationCommandOptions } from '../SlashCommandBuilder.js';\nimport { SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder } from '../SlashCommandSubcommands.js';\n\n/**\n * This mixin holds symbols that can be shared in slash subcommands.\n *\n * @typeParam TypeAfterAddingSubcommands - The type this class should return after adding a subcommand or subcommand group.\n */\nexport class SharedSlashCommandSubcommands<\n\tTypeAfterAddingSubcommands extends SharedSlashCommandSubcommands,\n> {\n\tpublic readonly options: ToAPIApplicationCommandOptions[] = [];\n\n\t/**\n\t * Adds a new subcommand group to this command.\n\t *\n\t * @param input - A function that returns a subcommand group builder or an already built builder\n\t */\n\tpublic addSubcommandGroup(\n\t\tinput:\n\t\t\t| SlashCommandSubcommandGroupBuilder\n\t\t\t| ((subcommandGroup: SlashCommandSubcommandGroupBuilder) => SlashCommandSubcommandGroupBuilder),\n\t): TypeAfterAddingSubcommands {\n\t\tconst { options } = this;\n\n\t\t// First, assert options conditions - we cannot have more than 25 options\n\t\tvalidateMaxOptionsLength(options);\n\n\t\t// Get the final result\n\t\tconst result = typeof input === 'function' ? input(new SlashCommandSubcommandGroupBuilder()) : input;\n\n\t\tassertReturnOfBuilder(result, SlashCommandSubcommandGroupBuilder);\n\n\t\t// Push it\n\t\toptions.push(result);\n\n\t\treturn this as unknown as TypeAfterAddingSubcommands;\n\t}\n\n\t/**\n\t * Adds a new subcommand to this command.\n\t *\n\t * @param input - A function that returns a subcommand builder or an already built builder\n\t */\n\tpublic addSubcommand(\n\t\tinput:\n\t\t\t| SlashCommandSubcommandBuilder\n\t\t\t| ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder),\n\t): TypeAfterAddingSubcommands {\n\t\tconst { options } = this;\n\n\t\t// First, assert options conditions - we cannot have more than 25 options\n\t\tvalidateMaxOptionsLength(options);\n\n\t\t// Get the final result\n\t\tconst result = typeof input === 'function' ? input(new SlashCommandSubcommandBuilder()) : input;\n\n\t\tassertReturnOfBuilder(result, SlashCommandSubcommandBuilder);\n\n\t\t// Push it\n\t\toptions.push(result);\n\n\t\treturn this as unknown as TypeAfterAddingSubcommands;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandType } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\nimport type { ContextMenuCommandType } from './ContextMenuCommandBuilder.js';\n\nconst namePredicate = s.string\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(32)\n\t// eslint-disable-next-line prefer-named-capture-group\n\t.regex(/^( *[\\p{P}\\p{L}\\p{N}\\p{sc=Devanagari}\\p{sc=Thai}]+ *)+$/u)\n\t.setValidationEnabled(isValidationEnabled);\nconst typePredicate = s\n\t.union(s.literal(ApplicationCommandType.User), s.literal(ApplicationCommandType.Message))\n\t.setValidationEnabled(isValidationEnabled);\nconst booleanPredicate = s.boolean;\n\nexport function validateDefaultPermission(value: unknown): asserts value is boolean {\n\tbooleanPredicate.parse(value);\n}\n\nexport function validateName(name: unknown): asserts name is string {\n\tnamePredicate.parse(name);\n}\n\nexport function validateType(type: unknown): asserts type is ContextMenuCommandType {\n\ttypePredicate.parse(type);\n}\n\nexport function validateRequiredParameters(name: string, type: number) {\n\t// Assert name matches all conditions\n\tvalidateName(name);\n\n\t// Assert type is valid\n\tvalidateType(type);\n}\n\nconst dmPermissionPredicate = s.boolean.nullish;\n\nexport function validateDMPermission(value: unknown): asserts value is boolean | null | undefined {\n\tdmPermissionPredicate.parse(value);\n}\n\nconst memberPermissionPredicate = s.union(\n\ts.bigint.transform((value) => value.toString()),\n\ts.number.safeInt.transform((value) => value.toString()),\n\ts.string.regex(/^\\d+$/),\n).nullish;\n\nexport function validateDefaultMemberPermissions(permissions: unknown) {\n\treturn memberPermissionPredicate.parse(permissions);\n}\n","import type {\n\tApplicationCommandType,\n\tLocaleString,\n\tLocalizationMap,\n\tPermissions,\n\tRESTPostAPIContextMenuApplicationCommandsJSONBody,\n} from 'discord-api-types/v10';\nimport { validateLocale, validateLocalizationMap } from '../slashCommands/Assertions.js';\nimport {\n\tvalidateRequiredParameters,\n\tvalidateName,\n\tvalidateType,\n\tvalidateDefaultPermission,\n\tvalidateDefaultMemberPermissions,\n\tvalidateDMPermission,\n} from './Assertions.js';\n\n/**\n * The type a context menu command can be.\n */\nexport type ContextMenuCommandType = ApplicationCommandType.Message | ApplicationCommandType.User;\n\n/**\n * A builder that creates API-compatible JSON data for context menu commands.\n */\nexport class ContextMenuCommandBuilder {\n\t/**\n\t * The name of this command.\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The name localizations of this command.\n\t */\n\tpublic readonly name_localizations?: LocalizationMap;\n\n\t/**\n\t * The type of this command.\n\t */\n\tpublic readonly type: ContextMenuCommandType = undefined!;\n\n\t/**\n\t * Whether this command is enabled by default when the application is added to a guild.\n\t *\n\t * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead.\n\t */\n\tpublic readonly default_permission: boolean | undefined = undefined;\n\n\t/**\n\t * The set of permissions represented as a bit set for the command.\n\t */\n\tpublic readonly default_member_permissions: Permissions | null | undefined = undefined;\n\n\t/**\n\t * Indicates whether the command is available in direct messages with the application.\n\t *\n\t * @remarks\n\t * By default, commands are visible. This property is only for global commands.\n\t */\n\tpublic readonly dm_permission: boolean | undefined = undefined;\n\n\t/**\n\t * Sets the name of this command.\n\t *\n\t * @param name - The name to use\n\t */\n\tpublic setName(name: string) {\n\t\t// Assert the name matches the conditions\n\t\tvalidateName(name);\n\n\t\tReflect.set(this, 'name', name);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the type of this command.\n\t *\n\t * @param type - The type to use\n\t */\n\tpublic setType(type: ContextMenuCommandType) {\n\t\t// Assert the type is valid\n\t\tvalidateType(type);\n\n\t\tReflect.set(this, 'type', type);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether the command is enabled by default when the application is added to a guild.\n\t *\n\t * @remarks\n\t * If set to `false`, you will have to later `PUT` the permissions for this command.\n\t * @param value - Whether to enable this command by default\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead.\n\t */\n\tpublic setDefaultPermission(value: boolean) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateDefaultPermission(value);\n\n\t\tReflect.set(this, 'default_permission', value);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the default permissions a member should have in order to run this command.\n\t *\n\t * @remarks\n\t * You can set this to `'0'` to disable the command by default.\n\t * @param permissions - The permissions bit field to set\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t */\n\tpublic setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined) {\n\t\t// Assert the value and parse it\n\t\tconst permissionValue = validateDefaultMemberPermissions(permissions);\n\n\t\tReflect.set(this, 'default_member_permissions', permissionValue);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets if the command is available in direct messages with the application.\n\t *\n\t * @remarks\n\t * By default, commands are visible. This method is only for global commands.\n\t * @param enabled - Whether the command should be enabled in direct messages\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t */\n\tpublic setDMPermission(enabled: boolean | null | undefined) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateDMPermission(enabled);\n\n\t\tReflect.set(this, 'dm_permission', enabled);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a name localization for this command.\n\t *\n\t * @param locale - The locale to set\n\t * @param localizedName - The localized name for the given `locale`\n\t */\n\tpublic setNameLocalization(locale: LocaleString, localizedName: string | null) {\n\t\tif (!this.name_localizations) {\n\t\t\tReflect.set(this, 'name_localizations', {});\n\t\t}\n\n\t\tconst parsedLocale = validateLocale(locale);\n\n\t\tif (localizedName === null) {\n\t\t\tthis.name_localizations![parsedLocale] = null;\n\t\t\treturn this;\n\t\t}\n\n\t\tvalidateName(localizedName);\n\n\t\tthis.name_localizations![parsedLocale] = localizedName;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the name localizations for this command.\n\t *\n\t * @param localizedNames - The object of localized names to set\n\t */\n\tpublic setNameLocalizations(localizedNames: LocalizationMap | null) {\n\t\tif (localizedNames === null) {\n\t\t\tReflect.set(this, 'name_localizations', null);\n\t\t\treturn this;\n\t\t}\n\n\t\tReflect.set(this, 'name_localizations', {});\n\n\t\tfor (const args of Object.entries(localizedNames))\n\t\t\tthis.setNameLocalization(...(args as [LocaleString, string | null]));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): RESTPostAPIContextMenuApplicationCommandsJSONBody {\n\t\tvalidateRequiredParameters(this.name, this.type);\n\n\t\tvalidateLocalizationMap(this.name_localizations);\n\n\t\treturn { ...this };\n\t}\n}\n","import type { APIEmbed } from 'discord-api-types/v10';\n\n/**\n * Calculates the length of the embed.\n *\n * @param data - The embed data to check\n */\nexport function embedLength(data: APIEmbed) {\n\treturn (\n\t\t(data.title?.length ?? 0) +\n\t\t(data.description?.length ?? 0) +\n\t\t(data.fields?.reduce((prev, curr) => prev + curr.name.length + curr.value.length, 0) ?? 0) +\n\t\t(data.footer?.text.length ?? 0) +\n\t\t(data.author?.name.length ?? 0)\n\t);\n}\n"],"mappings":"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","names":["Assertions_exports","Assertions_exports","import_shapeshift","import_v10","import_v10","import_v10","import_v10","import_v10","import_v10","import_v10","import_v10","import_v10","Assertions_exports","placeholderValidator","import_shapeshift","import_v10","placeholderValidator","placeholderValidator","isEqual","Assertions_exports","validateRequiredParameters","import_shapeshift","validateRequiredParameters","validateRequiredParameters","Assertions_exports","validateRequiredParameters","import_shapeshift","import_v10","descriptionPredicate","validateRequiredParameters","import_ts_mixer","validateRequiredParameters","import_v10","validateRequiredParameters","import_v10","import_v10","import_shapeshift","import_v10","import_shapeshift","import_v10","import_ts_mixer","import_shapeshift","booleanPredicate","import_shapeshift","import_v10","import_v10","import_shapeshift","import_v10","import_ts_mixer","numberValidator","import_v10","import_shapeshift","import_v10","import_ts_mixer","minLengthValidator","maxLengthValidator","import_v10","import_v10","import_ts_mixer","validateRequiredParameters","Assertions_exports","validateDMPermission","validateDefaultMemberPermissions","validateDefaultPermission","validateName","validateRequiredParameters","import_shapeshift","import_v10","namePredicate","booleanPredicate","validateDefaultPermission","validateName","validateRequiredParameters","dmPermissionPredicate","validateDMPermission","memberPermissionPredicate","validateDefaultMemberPermissions","validateName","validateDefaultPermission","validateDefaultMemberPermissions","validateDMPermission","validateRequiredParameters"]} \ No newline at end of file diff --git a/node_modules/@discordjs/builders/dist/index.mjs b/node_modules/@discordjs/builders/dist/index.mjs deleted file mode 100644 index e4d8e05..0000000 --- a/node_modules/@discordjs/builders/dist/index.mjs +++ /dev/null @@ -1,2748 +0,0 @@ -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __decorateClass = (decorators, target, key, kind) => { - var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target; - for (var i = decorators.length - 1, decorator; i >= 0; i--) - if (decorator = decorators[i]) - result = (kind ? decorator(target, key, result) : decorator(result)) || result; - if (kind && result) - __defProp(target, key, result); - return result; -}; - -// src/messages/embed/Assertions.ts -var Assertions_exports = {}; -__export(Assertions_exports, { - RGBPredicate: () => RGBPredicate, - authorNamePredicate: () => authorNamePredicate, - colorPredicate: () => colorPredicate, - descriptionPredicate: () => descriptionPredicate, - embedAuthorPredicate: () => embedAuthorPredicate, - embedFieldPredicate: () => embedFieldPredicate, - embedFieldsArrayPredicate: () => embedFieldsArrayPredicate, - embedFooterPredicate: () => embedFooterPredicate, - fieldInlinePredicate: () => fieldInlinePredicate, - fieldLengthPredicate: () => fieldLengthPredicate, - fieldNamePredicate: () => fieldNamePredicate, - fieldValuePredicate: () => fieldValuePredicate, - footerTextPredicate: () => footerTextPredicate, - imageURLPredicate: () => imageURLPredicate, - timestampPredicate: () => timestampPredicate, - titlePredicate: () => titlePredicate, - urlPredicate: () => urlPredicate, - validateFieldLength: () => validateFieldLength -}); -import { s } from "@sapphire/shapeshift"; - -// src/util/validation.ts -var validate = true; -function enableValidators() { - return validate = true; -} -__name(enableValidators, "enableValidators"); -function disableValidators() { - return validate = false; -} -__name(disableValidators, "disableValidators"); -function isValidationEnabled() { - return validate; -} -__name(isValidationEnabled, "isValidationEnabled"); - -// src/messages/embed/Assertions.ts -var fieldNamePredicate = s.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(256).setValidationEnabled(isValidationEnabled); -var fieldValuePredicate = s.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(1024).setValidationEnabled(isValidationEnabled); -var fieldInlinePredicate = s.boolean.optional; -var embedFieldPredicate = s.object({ - name: fieldNamePredicate, - value: fieldValuePredicate, - inline: fieldInlinePredicate -}).setValidationEnabled(isValidationEnabled); -var embedFieldsArrayPredicate = embedFieldPredicate.array.setValidationEnabled(isValidationEnabled); -var fieldLengthPredicate = s.number.lessThanOrEqual(25).setValidationEnabled(isValidationEnabled); -function validateFieldLength(amountAdding, fields) { - fieldLengthPredicate.parse((fields?.length ?? 0) + amountAdding); -} -__name(validateFieldLength, "validateFieldLength"); -var authorNamePredicate = fieldNamePredicate.nullable.setValidationEnabled(isValidationEnabled); -var imageURLPredicate = s.string.url({ - allowedProtocols: ["http:", "https:", "attachment:"] -}).nullish.setValidationEnabled(isValidationEnabled); -var urlPredicate = s.string.url({ - allowedProtocols: ["http:", "https:"] -}).nullish.setValidationEnabled(isValidationEnabled); -var embedAuthorPredicate = s.object({ - name: authorNamePredicate, - iconURL: imageURLPredicate, - url: urlPredicate -}).setValidationEnabled(isValidationEnabled); -var RGBPredicate = s.number.int.greaterThanOrEqual(0).lessThanOrEqual(255).setValidationEnabled(isValidationEnabled); -var colorPredicate = s.number.int.greaterThanOrEqual(0).lessThanOrEqual(16777215).or(s.tuple([RGBPredicate, RGBPredicate, RGBPredicate])).nullable.setValidationEnabled(isValidationEnabled); -var descriptionPredicate = s.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(4096).nullable.setValidationEnabled(isValidationEnabled); -var footerTextPredicate = s.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(2048).nullable.setValidationEnabled(isValidationEnabled); -var embedFooterPredicate = s.object({ - text: footerTextPredicate, - iconURL: imageURLPredicate -}).setValidationEnabled(isValidationEnabled); -var timestampPredicate = s.union(s.number, s.date).nullable.setValidationEnabled(isValidationEnabled); -var titlePredicate = fieldNamePredicate.nullable.setValidationEnabled(isValidationEnabled); - -// src/util/normalizeArray.ts -function normalizeArray(arr) { - if (Array.isArray(arr[0])) - return [...arr[0]]; - return arr; -} -__name(normalizeArray, "normalizeArray"); - -// src/messages/embed/Embed.ts -var EmbedBuilder = class { - static { - __name(this, "EmbedBuilder"); - } - /** - * The API data associated with this embed. - */ - data; - /** - * Creates a new embed from API data. - * - * @param data - The API data to create this embed with - */ - constructor(data = {}) { - this.data = { ...data }; - if (data.timestamp) - this.data.timestamp = new Date(data.timestamp).toISOString(); - } - /** - * Appends fields to the embed. - * - * @remarks - * This method accepts either an array of fields or a variable number of field parameters. - * The maximum amount of fields that can be added is 25. - * @example - * Using an array: - * ```ts - * const fields: APIEmbedField[] = ...; - * const embed = new EmbedBuilder() - * .addFields(fields); - * ``` - * @example - * Using rest parameters (variadic): - * ```ts - * const embed = new EmbedBuilder() - * .addFields( - * { name: 'Field 1', value: 'Value 1' }, - * { name: 'Field 2', value: 'Value 2' }, - * ); - * ``` - * @param fields - The fields to add - */ - addFields(...fields) { - const normalizedFields = normalizeArray(fields); - validateFieldLength(normalizedFields.length, this.data.fields); - embedFieldsArrayPredicate.parse(normalizedFields); - if (this.data.fields) - this.data.fields.push(...normalizedFields); - else - this.data.fields = normalizedFields; - return this; - } - /** - * Removes, replaces, or inserts fields for this embed. - * - * @remarks - * This method behaves similarly - * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. - * The maximum amount of fields that can be added is 25. - * - * It's useful for modifying and adjusting order of the already-existing fields of an embed. - * @example - * Remove the first field: - * ```ts - * embed.spliceFields(0, 1); - * ``` - * @example - * Remove the first n fields: - * ```ts - * const n = 4; - * embed.spliceFields(0, n); - * ``` - * @example - * Remove the last field: - * ```ts - * embed.spliceFields(-1, 1); - * ``` - * @param index - The index to start at - * @param deleteCount - The number of fields to remove - * @param fields - The replacing field objects - */ - spliceFields(index, deleteCount, ...fields) { - validateFieldLength(fields.length - deleteCount, this.data.fields); - embedFieldsArrayPredicate.parse(fields); - if (this.data.fields) - this.data.fields.splice(index, deleteCount, ...fields); - else - this.data.fields = fields; - return this; - } - /** - * Sets the fields for this embed. - * - * @remarks - * This method is an alias for {@link EmbedBuilder.spliceFields}. More specifically, - * it splices the entire array of fields, replacing them with the provided fields. - * - * You can set a maximum of 25 fields. - * @param fields - The fields to set - */ - setFields(...fields) { - this.spliceFields(0, this.data.fields?.length ?? 0, ...normalizeArray(fields)); - return this; - } - /** - * Sets the author of this embed. - * - * @param options - The options to use - */ - setAuthor(options) { - if (options === null) { - this.data.author = void 0; - return this; - } - embedAuthorPredicate.parse(options); - this.data.author = { name: options.name, url: options.url, icon_url: options.iconURL }; - return this; - } - /** - * Sets the color of this embed. - * - * @param color - The color to use - */ - setColor(color) { - colorPredicate.parse(color); - if (Array.isArray(color)) { - const [red, green, blue] = color; - this.data.color = (red << 16) + (green << 8) + blue; - return this; - } - this.data.color = color ?? void 0; - return this; - } - /** - * Sets the description of this embed. - * - * @param description - The description to use - */ - setDescription(description) { - descriptionPredicate.parse(description); - this.data.description = description ?? void 0; - return this; - } - /** - * Sets the footer of this embed. - * - * @param options - The footer to use - */ - setFooter(options) { - if (options === null) { - this.data.footer = void 0; - return this; - } - embedFooterPredicate.parse(options); - this.data.footer = { text: options.text, icon_url: options.iconURL }; - return this; - } - /** - * Sets the image of this embed. - * - * @param url - The image URL to use - */ - setImage(url) { - imageURLPredicate.parse(url); - this.data.image = url ? { url } : void 0; - return this; - } - /** - * Sets the thumbnail of this embed. - * - * @param url - The thumbnail URL to use - */ - setThumbnail(url) { - imageURLPredicate.parse(url); - this.data.thumbnail = url ? { url } : void 0; - return this; - } - /** - * Sets the timestamp of this embed. - * - * @param timestamp - The timestamp or date to use - */ - setTimestamp(timestamp = Date.now()) { - timestampPredicate.parse(timestamp); - this.data.timestamp = timestamp ? new Date(timestamp).toISOString() : void 0; - return this; - } - /** - * Sets the title for this embed. - * - * @param title - The title to use - */ - setTitle(title) { - titlePredicate.parse(title); - this.data.title = title ?? void 0; - return this; - } - /** - * Sets the URL of this embed. - * - * @param url - The URL to use - */ - setURL(url) { - urlPredicate.parse(url); - this.data.url = url ?? void 0; - return this; - } - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON() { - return { ...this.data }; - } -}; - -// src/index.ts -export * from "@discordjs/formatters"; - -// src/components/Assertions.ts -var Assertions_exports2 = {}; -__export(Assertions_exports2, { - buttonLabelValidator: () => buttonLabelValidator, - buttonStyleValidator: () => buttonStyleValidator, - channelTypesValidator: () => channelTypesValidator, - customIdValidator: () => customIdValidator, - defaultValidator: () => defaultValidator, - disabledValidator: () => disabledValidator, - emojiValidator: () => emojiValidator, - jsonOptionValidator: () => jsonOptionValidator, - labelValueDescriptionValidator: () => labelValueDescriptionValidator, - minMaxValidator: () => minMaxValidator, - optionValidator: () => optionValidator, - optionsLengthValidator: () => optionsLengthValidator, - optionsValidator: () => optionsValidator, - placeholderValidator: () => placeholderValidator, - urlValidator: () => urlValidator, - validateRequiredButtonParameters: () => validateRequiredButtonParameters, - validateRequiredSelectMenuOptionParameters: () => validateRequiredSelectMenuOptionParameters, - validateRequiredSelectMenuParameters: () => validateRequiredSelectMenuParameters -}); -import { s as s2 } from "@sapphire/shapeshift"; -import { ButtonStyle, ChannelType } from "discord-api-types/v10"; - -// src/components/selectMenu/StringSelectMenuOption.ts -var StringSelectMenuOptionBuilder = class { - /** - * Creates a new string select menu option from API data. - * - * @param data - The API data to create this string select menu option with - * @example - * Creating a string select menu option from an API data object: - * ```ts - * const selectMenuOption = new SelectMenuOptionBuilder({ - * label: 'catchy label', - * value: '1', - * }); - * ``` - * @example - * Creating a string select menu option using setters and API data: - * ```ts - * const selectMenuOption = new SelectMenuOptionBuilder({ - * default: true, - * value: '1', - * }) - * .setLabel('woah'); - * ``` - */ - constructor(data = {}) { - this.data = data; - } - static { - __name(this, "StringSelectMenuOptionBuilder"); - } - /** - * Sets the label for this option. - * - * @param label - The label to use - */ - setLabel(label) { - this.data.label = labelValueDescriptionValidator.parse(label); - return this; - } - /** - * Sets the value for this option. - * - * @param value - The value to use - */ - setValue(value) { - this.data.value = labelValueDescriptionValidator.parse(value); - return this; - } - /** - * Sets the description for this option. - * - * @param description - The description to use - */ - setDescription(description) { - this.data.description = labelValueDescriptionValidator.parse(description); - return this; - } - /** - * Sets whether this option is selected by default. - * - * @param isDefault - Whether this option is selected by default - */ - setDefault(isDefault = true) { - this.data.default = defaultValidator.parse(isDefault); - return this; - } - /** - * Sets the emoji to display for this option. - * - * @param emoji - The emoji to use - */ - setEmoji(emoji) { - this.data.emoji = emojiValidator.parse(emoji); - return this; - } - /** - * {@inheritDoc BaseSelectMenuBuilder.toJSON} - */ - toJSON() { - validateRequiredSelectMenuOptionParameters(this.data.label, this.data.value); - return { - ...this.data - }; - } -}; - -// src/components/Assertions.ts -var customIdValidator = s2.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled); -var emojiValidator = s2.object({ - id: s2.string, - name: s2.string, - animated: s2.boolean -}).partial.strict.setValidationEnabled(isValidationEnabled); -var disabledValidator = s2.boolean; -var buttonLabelValidator = s2.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(80).setValidationEnabled(isValidationEnabled); -var buttonStyleValidator = s2.nativeEnum(ButtonStyle); -var placeholderValidator = s2.string.lengthLessThanOrEqual(150).setValidationEnabled(isValidationEnabled); -var minMaxValidator = s2.number.int.greaterThanOrEqual(0).lessThanOrEqual(25).setValidationEnabled(isValidationEnabled); -var labelValueDescriptionValidator = s2.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled); -var jsonOptionValidator = s2.object({ - label: labelValueDescriptionValidator, - value: labelValueDescriptionValidator, - description: labelValueDescriptionValidator.optional, - emoji: emojiValidator.optional, - default: s2.boolean.optional -}).setValidationEnabled(isValidationEnabled); -var optionValidator = s2.instance(StringSelectMenuOptionBuilder).setValidationEnabled(isValidationEnabled); -var optionsValidator = optionValidator.array.lengthGreaterThanOrEqual(0).setValidationEnabled(isValidationEnabled); -var optionsLengthValidator = s2.number.int.greaterThanOrEqual(0).lessThanOrEqual(25).setValidationEnabled(isValidationEnabled); -function validateRequiredSelectMenuParameters(options, customId) { - customIdValidator.parse(customId); - optionsValidator.parse(options); -} -__name(validateRequiredSelectMenuParameters, "validateRequiredSelectMenuParameters"); -var defaultValidator = s2.boolean; -function validateRequiredSelectMenuOptionParameters(label, value) { - labelValueDescriptionValidator.parse(label); - labelValueDescriptionValidator.parse(value); -} -__name(validateRequiredSelectMenuOptionParameters, "validateRequiredSelectMenuOptionParameters"); -var channelTypesValidator = s2.nativeEnum(ChannelType).array.setValidationEnabled(isValidationEnabled); -var urlValidator = s2.string.url({ - allowedProtocols: ["http:", "https:", "discord:"] -}).setValidationEnabled(isValidationEnabled); -function validateRequiredButtonParameters(style, label, emoji, customId, url) { - if (url && customId) { - throw new RangeError("URL and custom id are mutually exclusive"); - } - if (!label && !emoji) { - throw new RangeError("Buttons must have a label and/or an emoji"); - } - if (style === ButtonStyle.Link) { - if (!url) { - throw new RangeError("Link buttons must have a url"); - } - } else if (url) { - throw new RangeError("Non-link buttons cannot have a url"); - } -} -__name(validateRequiredButtonParameters, "validateRequiredButtonParameters"); - -// src/components/ActionRow.ts -import { - ComponentType as ComponentType9 -} from "discord-api-types/v10"; - -// src/components/Component.ts -var ComponentBuilder = class { - static { - __name(this, "ComponentBuilder"); - } - /** - * The API data associated with this component. - */ - data; - /** - * Constructs a new kind of component. - * - * @param data - The data to construct a component out of - */ - constructor(data) { - this.data = data; - } -}; - -// src/components/Components.ts -import { ComponentType as ComponentType8 } from "discord-api-types/v10"; - -// src/components/button/Button.ts -import { - ComponentType -} from "discord-api-types/v10"; -var ButtonBuilder = class extends ComponentBuilder { - static { - __name(this, "ButtonBuilder"); - } - /** - * Creates a new button from API data. - * - * @param data - The API data to create this button with - * @example - * Creating a button from an API data object: - * ```ts - * const button = new ButtonBuilder({ - * custom_id: 'a cool button', - * style: ButtonStyle.Primary, - * label: 'Click Me', - * emoji: { - * name: 'smile', - * id: '123456789012345678', - * }, - * }); - * ``` - * @example - * Creating a button using setters and API data: - * ```ts - * const button = new ButtonBuilder({ - * style: ButtonStyle.Secondary, - * label: 'Click Me', - * }) - * .setEmoji({ name: '🙂' }) - * .setCustomId('another cool button'); - * ``` - */ - constructor(data) { - super({ type: ComponentType.Button, ...data }); - } - /** - * Sets the style of this button. - * - * @param style - The style to use - */ - setStyle(style) { - this.data.style = buttonStyleValidator.parse(style); - return this; - } - /** - * Sets the URL for this button. - * - * @remarks - * This method is only available to buttons using the `Link` button style. - * Only three types of URL schemes are currently supported: `https://`, `http://`, and `discord://`. - * @param url - The URL to use - */ - setURL(url) { - this.data.url = urlValidator.parse(url); - return this; - } - /** - * Sets the custom id for this button. - * - * @remarks - * This method is only applicable to buttons that are not using the `Link` button style. - * @param customId - The custom id to use - */ - setCustomId(customId) { - this.data.custom_id = customIdValidator.parse(customId); - return this; - } - /** - * Sets the emoji to display on this button. - * - * @param emoji - The emoji to use - */ - setEmoji(emoji) { - this.data.emoji = emojiValidator.parse(emoji); - return this; - } - /** - * Sets whether this button is disabled. - * - * @param disabled - Whether to disable this button - */ - setDisabled(disabled = true) { - this.data.disabled = disabledValidator.parse(disabled); - return this; - } - /** - * Sets the label for this button. - * - * @param label - The label to use - */ - setLabel(label) { - this.data.label = buttonLabelValidator.parse(label); - return this; - } - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON() { - validateRequiredButtonParameters( - this.data.style, - this.data.label, - this.data.emoji, - this.data.custom_id, - this.data.url - ); - return { - ...this.data - }; - } -}; - -// src/components/selectMenu/ChannelSelectMenu.ts -import { - ComponentType as ComponentType2, - SelectMenuDefaultValueType -} from "discord-api-types/v10"; - -// src/components/selectMenu/BaseSelectMenu.ts -var BaseSelectMenuBuilder = class extends ComponentBuilder { - static { - __name(this, "BaseSelectMenuBuilder"); - } - /** - * Sets the placeholder for this select menu. - * - * @param placeholder - The placeholder to use - */ - setPlaceholder(placeholder) { - this.data.placeholder = placeholderValidator.parse(placeholder); - return this; - } - /** - * Sets the minimum values that must be selected in the select menu. - * - * @param minValues - The minimum values that must be selected - */ - setMinValues(minValues) { - this.data.min_values = minMaxValidator.parse(minValues); - return this; - } - /** - * Sets the maximum values that must be selected in the select menu. - * - * @param maxValues - The maximum values that must be selected - */ - setMaxValues(maxValues) { - this.data.max_values = minMaxValidator.parse(maxValues); - return this; - } - /** - * Sets the custom id for this select menu. - * - * @param customId - The custom id to use - */ - setCustomId(customId) { - this.data.custom_id = customIdValidator.parse(customId); - return this; - } - /** - * Sets whether this select menu is disabled. - * - * @param disabled - Whether this select menu is disabled - */ - setDisabled(disabled = true) { - this.data.disabled = disabledValidator.parse(disabled); - return this; - } - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON() { - customIdValidator.parse(this.data.custom_id); - return { - ...this.data - }; - } -}; - -// src/components/selectMenu/ChannelSelectMenu.ts -var ChannelSelectMenuBuilder = class extends BaseSelectMenuBuilder { - static { - __name(this, "ChannelSelectMenuBuilder"); - } - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new ChannelSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new ChannelSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .addChannelTypes(ChannelType.GuildText, ChannelType.GuildAnnouncement) - * .setMinValues(2); - * ``` - */ - constructor(data) { - super({ ...data, type: ComponentType2.ChannelSelect }); - } - /** - * Adds channel types to this select menu. - * - * @param types - The channel types to use - */ - addChannelTypes(...types) { - const normalizedTypes = normalizeArray(types); - this.data.channel_types ??= []; - this.data.channel_types.push(...channelTypesValidator.parse(normalizedTypes)); - return this; - } - /** - * Sets channel types for this select menu. - * - * @param types - The channel types to use - */ - setChannelTypes(...types) { - const normalizedTypes = normalizeArray(types); - this.data.channel_types ??= []; - this.data.channel_types.splice(0, this.data.channel_types.length, ...channelTypesValidator.parse(normalizedTypes)); - return this; - } - /** - * Adds default channels to this auto populated select menu. - * - * @param channels - The channels to add - */ - addDefaultChannels(...channels) { - const normalizedValues = normalizeArray(channels); - optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); - this.data.default_values ??= []; - this.data.default_values.push( - ...normalizedValues.map((id) => ({ - id, - type: SelectMenuDefaultValueType.Channel - })) - ); - return this; - } - /** - * Sets default channels to this auto populated select menu. - * - * @param channels - The channels to set - */ - setDefaultChannels(...channels) { - const normalizedValues = normalizeArray(channels); - optionsLengthValidator.parse(normalizedValues.length); - this.data.default_values = normalizedValues.map((id) => ({ - id, - type: SelectMenuDefaultValueType.Channel - })); - return this; - } - /** - * {@inheritDoc BaseSelectMenuBuilder.toJSON} - */ - toJSON() { - customIdValidator.parse(this.data.custom_id); - return { - ...this.data - }; - } -}; - -// src/components/selectMenu/MentionableSelectMenu.ts -import { - ComponentType as ComponentType3, - SelectMenuDefaultValueType as SelectMenuDefaultValueType2 -} from "discord-api-types/v10"; -var MentionableSelectMenuBuilder = class extends BaseSelectMenuBuilder { - static { - __name(this, "MentionableSelectMenuBuilder"); - } - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new MentionableSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new MentionableSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1); - * ``` - */ - constructor(data) { - super({ ...data, type: ComponentType3.MentionableSelect }); - } - /** - * Adds default roles to this auto populated select menu. - * - * @param roles - The roles to add - */ - addDefaultRoles(...roles) { - const normalizedValues = normalizeArray(roles); - optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); - this.data.default_values ??= []; - this.data.default_values.push( - ...normalizedValues.map((id) => ({ - id, - type: SelectMenuDefaultValueType2.Role - })) - ); - return this; - } - /** - * Adds default users to this auto populated select menu. - * - * @param users - The users to add - */ - addDefaultUsers(...users) { - const normalizedValues = normalizeArray(users); - optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); - this.data.default_values ??= []; - this.data.default_values.push( - ...normalizedValues.map((id) => ({ - id, - type: SelectMenuDefaultValueType2.User - })) - ); - return this; - } - /** - * Adds default values to this auto populated select menu. - * - * @param values - The values to add - */ - addDefaultValues(...values) { - const normalizedValues = normalizeArray(values); - optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); - this.data.default_values ??= []; - this.data.default_values.push(...normalizedValues); - return this; - } - /** - * Sets default values to this auto populated select menu. - * - * @param values - The values to set - */ - setDefaultValues(...values) { - const normalizedValues = normalizeArray(values); - optionsLengthValidator.parse(normalizedValues.length); - this.data.default_values = normalizedValues; - return this; - } -}; - -// src/components/selectMenu/RoleSelectMenu.ts -import { - ComponentType as ComponentType4, - SelectMenuDefaultValueType as SelectMenuDefaultValueType3 -} from "discord-api-types/v10"; -var RoleSelectMenuBuilder = class extends BaseSelectMenuBuilder { - static { - __name(this, "RoleSelectMenuBuilder"); - } - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new RoleSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new RoleSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1); - * ``` - */ - constructor(data) { - super({ ...data, type: ComponentType4.RoleSelect }); - } - /** - * Adds default roles to this auto populated select menu. - * - * @param roles - The roles to add - */ - addDefaultRoles(...roles) { - const normalizedValues = normalizeArray(roles); - optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); - this.data.default_values ??= []; - this.data.default_values.push( - ...normalizedValues.map((id) => ({ - id, - type: SelectMenuDefaultValueType3.Role - })) - ); - return this; - } - /** - * Sets default roles to this auto populated select menu. - * - * @param roles - The roles to set - */ - setDefaultRoles(...roles) { - const normalizedValues = normalizeArray(roles); - optionsLengthValidator.parse(normalizedValues.length); - this.data.default_values = normalizedValues.map((id) => ({ - id, - type: SelectMenuDefaultValueType3.Role - })); - return this; - } -}; - -// src/components/selectMenu/StringSelectMenu.ts -import { ComponentType as ComponentType5 } from "discord-api-types/v10"; -var StringSelectMenuBuilder = class extends BaseSelectMenuBuilder { - static { - __name(this, "StringSelectMenuBuilder"); - } - /** - * The options within this select menu. - */ - options; - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new StringSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * options: [ - * { label: 'option 1', value: '1' }, - * { label: 'option 2', value: '2' }, - * { label: 'option 3', value: '3' }, - * ], - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new StringSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1) - * .addOptions({ - * label: 'Catchy', - * value: 'catch', - * }); - * ``` - */ - constructor(data) { - const { options, ...initData } = data ?? {}; - super({ ...initData, type: ComponentType5.StringSelect }); - this.options = options?.map((option) => new StringSelectMenuOptionBuilder(option)) ?? []; - } - /** - * Adds options to this select menu. - * - * @param options - The options to add - */ - addOptions(...options) { - const normalizedOptions = normalizeArray(options); - optionsLengthValidator.parse(this.options.length + normalizedOptions.length); - this.options.push( - ...normalizedOptions.map( - (normalizedOption) => normalizedOption instanceof StringSelectMenuOptionBuilder ? normalizedOption : new StringSelectMenuOptionBuilder(jsonOptionValidator.parse(normalizedOption)) - ) - ); - return this; - } - /** - * Sets the options for this select menu. - * - * @param options - The options to set - */ - setOptions(...options) { - return this.spliceOptions(0, this.options.length, ...options); - } - /** - * Removes, replaces, or inserts options for this select menu. - * - * @remarks - * This method behaves similarly - * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice | Array.prototype.splice()}. - * It's useful for modifying and adjusting the order of existing options. - * @example - * Remove the first option: - * ```ts - * selectMenu.spliceOptions(0, 1); - * ``` - * @example - * Remove the first n option: - * ```ts - * const n = 4; - * selectMenu.spliceOptions(0, n); - * ``` - * @example - * Remove the last option: - * ```ts - * selectMenu.spliceOptions(-1, 1); - * ``` - * @param index - The index to start at - * @param deleteCount - The number of options to remove - * @param options - The replacing option objects or builders - */ - spliceOptions(index, deleteCount, ...options) { - const normalizedOptions = normalizeArray(options); - const clone = [...this.options]; - clone.splice( - index, - deleteCount, - ...normalizedOptions.map( - (normalizedOption) => normalizedOption instanceof StringSelectMenuOptionBuilder ? normalizedOption : new StringSelectMenuOptionBuilder(jsonOptionValidator.parse(normalizedOption)) - ) - ); - optionsLengthValidator.parse(clone.length); - this.options.splice(0, this.options.length, ...clone); - return this; - } - /** - * {@inheritDoc BaseSelectMenuBuilder.toJSON} - */ - toJSON() { - validateRequiredSelectMenuParameters(this.options, this.data.custom_id); - return { - ...this.data, - options: this.options.map((option) => option.toJSON()) - }; - } -}; - -// src/components/selectMenu/UserSelectMenu.ts -import { - ComponentType as ComponentType6, - SelectMenuDefaultValueType as SelectMenuDefaultValueType4 -} from "discord-api-types/v10"; -var UserSelectMenuBuilder = class extends BaseSelectMenuBuilder { - static { - __name(this, "UserSelectMenuBuilder"); - } - /** - * Creates a new select menu from API data. - * - * @param data - The API data to create this select menu with - * @example - * Creating a select menu from an API data object: - * ```ts - * const selectMenu = new UserSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * placeholder: 'select an option', - * max_values: 2, - * }); - * ``` - * @example - * Creating a select menu using setters and API data: - * ```ts - * const selectMenu = new UserSelectMenuBuilder({ - * custom_id: 'a cool select menu', - * }) - * .setMinValues(1); - * ``` - */ - constructor(data) { - super({ ...data, type: ComponentType6.UserSelect }); - } - /** - * Adds default users to this auto populated select menu. - * - * @param users - The users to add - */ - addDefaultUsers(...users) { - const normalizedValues = normalizeArray(users); - optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); - this.data.default_values ??= []; - this.data.default_values.push( - ...normalizedValues.map((id) => ({ - id, - type: SelectMenuDefaultValueType4.User - })) - ); - return this; - } - /** - * Sets default users to this auto populated select menu. - * - * @param users - The users to set - */ - setDefaultUsers(...users) { - const normalizedValues = normalizeArray(users); - optionsLengthValidator.parse(normalizedValues.length); - this.data.default_values = normalizedValues.map((id) => ({ - id, - type: SelectMenuDefaultValueType4.User - })); - return this; - } -}; - -// src/components/textInput/TextInput.ts -import { isJSONEncodable } from "@discordjs/util"; -import { ComponentType as ComponentType7 } from "discord-api-types/v10"; -import isEqual from "fast-deep-equal"; - -// src/components/textInput/Assertions.ts -var Assertions_exports3 = {}; -__export(Assertions_exports3, { - labelValidator: () => labelValidator, - maxLengthValidator: () => maxLengthValidator, - minLengthValidator: () => minLengthValidator, - placeholderValidator: () => placeholderValidator2, - requiredValidator: () => requiredValidator, - textInputStyleValidator: () => textInputStyleValidator, - validateRequiredParameters: () => validateRequiredParameters, - valueValidator: () => valueValidator -}); -import { s as s3 } from "@sapphire/shapeshift"; -import { TextInputStyle } from "discord-api-types/v10"; -var textInputStyleValidator = s3.nativeEnum(TextInputStyle); -var minLengthValidator = s3.number.int.greaterThanOrEqual(0).lessThanOrEqual(4e3).setValidationEnabled(isValidationEnabled); -var maxLengthValidator = s3.number.int.greaterThanOrEqual(1).lessThanOrEqual(4e3).setValidationEnabled(isValidationEnabled); -var requiredValidator = s3.boolean; -var valueValidator = s3.string.lengthLessThanOrEqual(4e3).setValidationEnabled(isValidationEnabled); -var placeholderValidator2 = s3.string.lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled); -var labelValidator = s3.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(45).setValidationEnabled(isValidationEnabled); -function validateRequiredParameters(customId, style, label) { - customIdValidator.parse(customId); - textInputStyleValidator.parse(style); - labelValidator.parse(label); -} -__name(validateRequiredParameters, "validateRequiredParameters"); - -// src/components/textInput/TextInput.ts -var TextInputBuilder = class extends ComponentBuilder { - static { - __name(this, "TextInputBuilder"); - } - /** - * Creates a new text input from API data. - * - * @param data - The API data to create this text input with - * @example - * Creating a select menu option from an API data object: - * ```ts - * const textInput = new TextInputBuilder({ - * custom_id: 'a cool select menu', - * label: 'Type something', - * style: TextInputStyle.Short, - * }); - * ``` - * @example - * Creating a select menu option using setters and API data: - * ```ts - * const textInput = new TextInputBuilder({ - * label: 'Type something else', - * }) - * .setCustomId('woah') - * .setStyle(TextInputStyle.Paragraph); - * ``` - */ - constructor(data) { - super({ type: ComponentType7.TextInput, ...data }); - } - /** - * Sets the custom id for this text input. - * - * @param customId - The custom id to use - */ - setCustomId(customId) { - this.data.custom_id = customIdValidator.parse(customId); - return this; - } - /** - * Sets the label for this text input. - * - * @param label - The label to use - */ - setLabel(label) { - this.data.label = labelValidator.parse(label); - return this; - } - /** - * Sets the style for this text input. - * - * @param style - The style to use - */ - setStyle(style) { - this.data.style = textInputStyleValidator.parse(style); - return this; - } - /** - * Sets the minimum length of text for this text input. - * - * @param minLength - The minimum length of text for this text input - */ - setMinLength(minLength) { - this.data.min_length = minLengthValidator.parse(minLength); - return this; - } - /** - * Sets the maximum length of text for this text input. - * - * @param maxLength - The maximum length of text for this text input - */ - setMaxLength(maxLength) { - this.data.max_length = maxLengthValidator.parse(maxLength); - return this; - } - /** - * Sets the placeholder for this text input. - * - * @param placeholder - The placeholder to use - */ - setPlaceholder(placeholder) { - this.data.placeholder = placeholderValidator2.parse(placeholder); - return this; - } - /** - * Sets the value for this text input. - * - * @param value - The value to use - */ - setValue(value) { - this.data.value = valueValidator.parse(value); - return this; - } - /** - * Sets whether this text input is required. - * - * @param required - Whether this text input is required - */ - setRequired(required = true) { - this.data.required = requiredValidator.parse(required); - return this; - } - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON() { - validateRequiredParameters(this.data.custom_id, this.data.style, this.data.label); - return { - ...this.data - }; - } - /** - * Whether this is equal to another structure. - */ - equals(other) { - if (isJSONEncodable(other)) { - return isEqual(other.toJSON(), this.data); - } - return isEqual(other, this.data); - } -}; - -// src/components/Components.ts -function createComponentBuilder(data) { - if (data instanceof ComponentBuilder) { - return data; - } - switch (data.type) { - case ComponentType8.ActionRow: - return new ActionRowBuilder(data); - case ComponentType8.Button: - return new ButtonBuilder(data); - case ComponentType8.StringSelect: - return new StringSelectMenuBuilder(data); - case ComponentType8.TextInput: - return new TextInputBuilder(data); - case ComponentType8.UserSelect: - return new UserSelectMenuBuilder(data); - case ComponentType8.RoleSelect: - return new RoleSelectMenuBuilder(data); - case ComponentType8.MentionableSelect: - return new MentionableSelectMenuBuilder(data); - case ComponentType8.ChannelSelect: - return new ChannelSelectMenuBuilder(data); - default: - throw new Error(`Cannot properly serialize component type: ${data.type}`); - } -} -__name(createComponentBuilder, "createComponentBuilder"); - -// src/components/ActionRow.ts -var ActionRowBuilder = class extends ComponentBuilder { - static { - __name(this, "ActionRowBuilder"); - } - /** - * The components within this action row. - */ - components; - /** - * Creates a new action row from API data. - * - * @param data - The API data to create this action row with - * @example - * Creating an action row from an API data object: - * ```ts - * const actionRow = new ActionRowBuilder({ - * components: [ - * { - * custom_id: "custom id", - * label: "Type something", - * style: TextInputStyle.Short, - * type: ComponentType.TextInput, - * }, - * ], - * }); - * ``` - * @example - * Creating an action row using setters and API data: - * ```ts - * const actionRow = new ActionRowBuilder({ - * components: [ - * { - * custom_id: "custom id", - * label: "Click me", - * style: ButtonStyle.Primary, - * type: ComponentType.Button, - * }, - * ], - * }) - * .addComponents(button2, button3); - * ``` - */ - constructor({ components, ...data } = {}) { - super({ type: ComponentType9.ActionRow, ...data }); - this.components = components?.map((component) => createComponentBuilder(component)) ?? []; - } - /** - * Adds components to this action row. - * - * @param components - The components to add - */ - addComponents(...components) { - this.components.push(...normalizeArray(components)); - return this; - } - /** - * Sets components for this action row. - * - * @param components - The components to set - */ - setComponents(...components) { - this.components.splice(0, this.components.length, ...normalizeArray(components)); - return this; - } - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON() { - return { - ...this.data, - components: this.components.map((component) => component.toJSON()) - }; - } -}; - -// src/interactions/modals/Assertions.ts -var Assertions_exports4 = {}; -__export(Assertions_exports4, { - componentsValidator: () => componentsValidator, - titleValidator: () => titleValidator, - validateRequiredParameters: () => validateRequiredParameters2 -}); -import { s as s4 } from "@sapphire/shapeshift"; -var titleValidator = s4.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(45).setValidationEnabled(isValidationEnabled); -var componentsValidator = s4.instance(ActionRowBuilder).array.lengthGreaterThanOrEqual(1).setValidationEnabled(isValidationEnabled); -function validateRequiredParameters2(customId, title, components) { - customIdValidator.parse(customId); - titleValidator.parse(title); - componentsValidator.parse(components); -} -__name(validateRequiredParameters2, "validateRequiredParameters"); - -// src/interactions/modals/Modal.ts -var ModalBuilder = class { - static { - __name(this, "ModalBuilder"); - } - /** - * The API data associated with this modal. - */ - data; - /** - * The components within this modal. - */ - components = []; - /** - * Creates a new modal from API data. - * - * @param data - The API data to create this modal with - */ - constructor({ components, ...data } = {}) { - this.data = { ...data }; - this.components = components?.map((component) => createComponentBuilder(component)) ?? []; - } - /** - * Sets the title of this modal. - * - * @param title - The title to use - */ - setTitle(title) { - this.data.title = titleValidator.parse(title); - return this; - } - /** - * Sets the custom id of this modal. - * - * @param customId - The custom id to use - */ - setCustomId(customId) { - this.data.custom_id = customIdValidator.parse(customId); - return this; - } - /** - * Adds components to this modal. - * - * @param components - The components to add - */ - addComponents(...components) { - this.components.push( - ...normalizeArray(components).map( - (component) => component instanceof ActionRowBuilder ? component : new ActionRowBuilder(component) - ) - ); - return this; - } - /** - * Sets components for this modal. - * - * @param components - The components to set - */ - setComponents(...components) { - this.components.splice(0, this.components.length, ...normalizeArray(components)); - return this; - } - /** - * {@inheritDoc ComponentBuilder.toJSON} - */ - toJSON() { - validateRequiredParameters2(this.data.custom_id, this.data.title, this.components); - return { - ...this.data, - components: this.components.map((component) => component.toJSON()) - }; - } -}; - -// src/interactions/slashCommands/Assertions.ts -var Assertions_exports5 = {}; -__export(Assertions_exports5, { - assertReturnOfBuilder: () => assertReturnOfBuilder, - localizationMapPredicate: () => localizationMapPredicate, - validateChoicesLength: () => validateChoicesLength, - validateDMPermission: () => validateDMPermission, - validateDefaultMemberPermissions: () => validateDefaultMemberPermissions, - validateDefaultPermission: () => validateDefaultPermission, - validateDescription: () => validateDescription, - validateLocale: () => validateLocale, - validateLocalizationMap: () => validateLocalizationMap, - validateMaxOptionsLength: () => validateMaxOptionsLength, - validateNSFW: () => validateNSFW, - validateName: () => validateName, - validateRequired: () => validateRequired, - validateRequiredParameters: () => validateRequiredParameters3 -}); -import { s as s5 } from "@sapphire/shapeshift"; -import { Locale } from "discord-api-types/v10"; -var namePredicate = s5.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(32).regex(/^[\p{Ll}\p{Lm}\p{Lo}\p{N}\p{sc=Devanagari}\p{sc=Thai}_-]+$/u).setValidationEnabled(isValidationEnabled); -function validateName(name) { - namePredicate.parse(name); -} -__name(validateName, "validateName"); -var descriptionPredicate2 = s5.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled); -var localePredicate = s5.nativeEnum(Locale); -function validateDescription(description) { - descriptionPredicate2.parse(description); -} -__name(validateDescription, "validateDescription"); -var maxArrayLengthPredicate = s5.unknown.array.lengthLessThanOrEqual(25).setValidationEnabled(isValidationEnabled); -function validateLocale(locale) { - return localePredicate.parse(locale); -} -__name(validateLocale, "validateLocale"); -function validateMaxOptionsLength(options) { - maxArrayLengthPredicate.parse(options); -} -__name(validateMaxOptionsLength, "validateMaxOptionsLength"); -function validateRequiredParameters3(name, description, options) { - validateName(name); - validateDescription(description); - validateMaxOptionsLength(options); -} -__name(validateRequiredParameters3, "validateRequiredParameters"); -var booleanPredicate = s5.boolean; -function validateDefaultPermission(value) { - booleanPredicate.parse(value); -} -__name(validateDefaultPermission, "validateDefaultPermission"); -function validateRequired(required) { - booleanPredicate.parse(required); -} -__name(validateRequired, "validateRequired"); -var choicesLengthPredicate = s5.number.lessThanOrEqual(25).setValidationEnabled(isValidationEnabled); -function validateChoicesLength(amountAdding, choices) { - choicesLengthPredicate.parse((choices?.length ?? 0) + amountAdding); -} -__name(validateChoicesLength, "validateChoicesLength"); -function assertReturnOfBuilder(input, ExpectedInstanceOf) { - s5.instance(ExpectedInstanceOf).parse(input); -} -__name(assertReturnOfBuilder, "assertReturnOfBuilder"); -var localizationMapPredicate = s5.object(Object.fromEntries(Object.values(Locale).map((locale) => [locale, s5.string.nullish]))).strict.nullish.setValidationEnabled(isValidationEnabled); -function validateLocalizationMap(value) { - localizationMapPredicate.parse(value); -} -__name(validateLocalizationMap, "validateLocalizationMap"); -var dmPermissionPredicate = s5.boolean.nullish; -function validateDMPermission(value) { - dmPermissionPredicate.parse(value); -} -__name(validateDMPermission, "validateDMPermission"); -var memberPermissionPredicate = s5.union( - s5.bigint.transform((value) => value.toString()), - s5.number.safeInt.transform((value) => value.toString()), - s5.string.regex(/^\d+$/) -).nullish; -function validateDefaultMemberPermissions(permissions) { - return memberPermissionPredicate.parse(permissions); -} -__name(validateDefaultMemberPermissions, "validateDefaultMemberPermissions"); -function validateNSFW(value) { - booleanPredicate.parse(value); -} -__name(validateNSFW, "validateNSFW"); - -// src/interactions/slashCommands/SlashCommandBuilder.ts -import { mix as mix6 } from "ts-mixer"; - -// src/interactions/slashCommands/mixins/NameAndDescription.ts -var SharedNameAndDescription = class { - static { - __name(this, "SharedNameAndDescription"); - } - /** - * The name of this command. - */ - name; - /** - * The name localizations of this command. - */ - name_localizations; - /** - * The description of this command. - */ - description; - /** - * The description localizations of this command. - */ - description_localizations; - /** - * Sets the name of this command. - * - * @param name - The name to use - */ - setName(name) { - validateName(name); - Reflect.set(this, "name", name); - return this; - } - /** - * Sets the description of this command. - * - * @param description - The description to use - */ - setDescription(description) { - validateDescription(description); - Reflect.set(this, "description", description); - return this; - } - /** - * Sets a name localization for this command. - * - * @param locale - The locale to set - * @param localizedName - The localized name for the given `locale` - */ - setNameLocalization(locale, localizedName) { - if (!this.name_localizations) { - Reflect.set(this, "name_localizations", {}); - } - const parsedLocale = validateLocale(locale); - if (localizedName === null) { - this.name_localizations[parsedLocale] = null; - return this; - } - validateName(localizedName); - this.name_localizations[parsedLocale] = localizedName; - return this; - } - /** - * Sets the name localizations for this command. - * - * @param localizedNames - The object of localized names to set - */ - setNameLocalizations(localizedNames) { - if (localizedNames === null) { - Reflect.set(this, "name_localizations", null); - return this; - } - Reflect.set(this, "name_localizations", {}); - for (const args of Object.entries(localizedNames)) { - this.setNameLocalization(...args); - } - return this; - } - /** - * Sets a description localization for this command. - * - * @param locale - The locale to set - * @param localizedDescription - The localized description for the given locale - */ - setDescriptionLocalization(locale, localizedDescription) { - if (!this.description_localizations) { - Reflect.set(this, "description_localizations", {}); - } - const parsedLocale = validateLocale(locale); - if (localizedDescription === null) { - this.description_localizations[parsedLocale] = null; - return this; - } - validateDescription(localizedDescription); - this.description_localizations[parsedLocale] = localizedDescription; - return this; - } - /** - * Sets the description localizations for this command. - * - * @param localizedDescriptions - The object of localized descriptions to set - */ - setDescriptionLocalizations(localizedDescriptions) { - if (localizedDescriptions === null) { - Reflect.set(this, "description_localizations", null); - return this; - } - Reflect.set(this, "description_localizations", {}); - for (const args of Object.entries(localizedDescriptions)) { - this.setDescriptionLocalization(...args); - } - return this; - } -}; - -// src/interactions/slashCommands/mixins/SharedSlashCommand.ts -var SharedSlashCommand = class { - static { - __name(this, "SharedSlashCommand"); - } - name = void 0; - name_localizations; - description = void 0; - description_localizations; - options = []; - /** - * Sets whether the command is enabled by default when the application is added to a guild. - * - * @remarks - * If set to `false`, you will have to later `PUT` the permissions for this command. - * @param value - Whether or not to enable this command by default - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. - */ - setDefaultPermission(value) { - validateDefaultPermission(value); - Reflect.set(this, "default_permission", value); - return this; - } - /** - * Sets the default permissions a member should have in order to run the command. - * - * @remarks - * You can set this to `'0'` to disable the command by default. - * @param permissions - The permissions bit field to set - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - */ - setDefaultMemberPermissions(permissions) { - const permissionValue = validateDefaultMemberPermissions(permissions); - Reflect.set(this, "default_member_permissions", permissionValue); - return this; - } - /** - * Sets if the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This method is only for global commands. - * @param enabled - Whether the command should be enabled in direct messages - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - */ - setDMPermission(enabled) { - validateDMPermission(enabled); - Reflect.set(this, "dm_permission", enabled); - return this; - } - /** - * Sets whether this command is NSFW. - * - * @param nsfw - Whether this command is NSFW - */ - setNSFW(nsfw = true) { - validateNSFW(nsfw); - Reflect.set(this, "nsfw", nsfw); - return this; - } - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON() { - validateRequiredParameters3(this.name, this.description, this.options); - validateLocalizationMap(this.name_localizations); - validateLocalizationMap(this.description_localizations); - return { - ...this, - options: this.options.map((option) => option.toJSON()) - }; - } -}; - -// src/interactions/slashCommands/options/attachment.ts -import { ApplicationCommandOptionType } from "discord-api-types/v10"; - -// src/interactions/slashCommands/mixins/ApplicationCommandOptionBase.ts -var ApplicationCommandOptionBase = class extends SharedNameAndDescription { - static { - __name(this, "ApplicationCommandOptionBase"); - } - /** - * Whether this option is required. - * - * @defaultValue `false` - */ - required = false; - /** - * Sets whether this option is required. - * - * @param required - Whether this option should be required - */ - setRequired(required) { - validateRequired(required); - Reflect.set(this, "required", required); - return this; - } - /** - * This method runs required validators on this builder. - */ - runRequiredValidations() { - validateRequiredParameters3(this.name, this.description, []); - validateLocalizationMap(this.name_localizations); - validateLocalizationMap(this.description_localizations); - validateRequired(this.required); - } -}; - -// src/interactions/slashCommands/options/attachment.ts -var SlashCommandAttachmentOption = class extends ApplicationCommandOptionBase { - static { - __name(this, "SlashCommandAttachmentOption"); - } - /** - * The type of this option. - */ - type = ApplicationCommandOptionType.Attachment; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - return { ...this }; - } -}; - -// src/interactions/slashCommands/options/boolean.ts -import { ApplicationCommandOptionType as ApplicationCommandOptionType2 } from "discord-api-types/v10"; -var SlashCommandBooleanOption = class extends ApplicationCommandOptionBase { - static { - __name(this, "SlashCommandBooleanOption"); - } - /** - * The type of this option. - */ - type = ApplicationCommandOptionType2.Boolean; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - return { ...this }; - } -}; - -// src/interactions/slashCommands/options/channel.ts -import { ApplicationCommandOptionType as ApplicationCommandOptionType3 } from "discord-api-types/v10"; -import { mix } from "ts-mixer"; - -// src/interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin.ts -import { s as s6 } from "@sapphire/shapeshift"; -import { ChannelType as ChannelType2 } from "discord-api-types/v10"; -var allowedChannelTypes = [ - ChannelType2.GuildText, - ChannelType2.GuildVoice, - ChannelType2.GuildCategory, - ChannelType2.GuildAnnouncement, - ChannelType2.AnnouncementThread, - ChannelType2.PublicThread, - ChannelType2.PrivateThread, - ChannelType2.GuildStageVoice, - ChannelType2.GuildForum, - ChannelType2.GuildMedia -]; -var channelTypesPredicate = s6.array(s6.union(...allowedChannelTypes.map((type) => s6.literal(type)))); -var ApplicationCommandOptionChannelTypesMixin = class { - static { - __name(this, "ApplicationCommandOptionChannelTypesMixin"); - } - /** - * The channel types of this option. - */ - channel_types; - /** - * Adds channel types to this option. - * - * @param channelTypes - The channel types - */ - addChannelTypes(...channelTypes) { - if (this.channel_types === void 0) { - Reflect.set(this, "channel_types", []); - } - this.channel_types.push(...channelTypesPredicate.parse(normalizeArray(channelTypes))); - return this; - } -}; - -// src/interactions/slashCommands/options/channel.ts -var SlashCommandChannelOption = class extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - type = ApplicationCommandOptionType3.Channel; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - return { ...this }; - } -}; -__name(SlashCommandChannelOption, "SlashCommandChannelOption"); -SlashCommandChannelOption = __decorateClass([ - mix(ApplicationCommandOptionChannelTypesMixin) -], SlashCommandChannelOption); - -// src/interactions/slashCommands/options/integer.ts -import { s as s9 } from "@sapphire/shapeshift"; -import { ApplicationCommandOptionType as ApplicationCommandOptionType5 } from "discord-api-types/v10"; -import { mix as mix2 } from "ts-mixer"; - -// src/interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin.ts -var ApplicationCommandNumericOptionMinMaxValueMixin = class { - static { - __name(this, "ApplicationCommandNumericOptionMinMaxValueMixin"); - } - /** - * The maximum value of this option. - */ - max_value; - /** - * The minimum value of this option. - */ - min_value; -}; - -// src/interactions/slashCommands/mixins/ApplicationCommandOptionWithAutocompleteMixin.ts -import { s as s7 } from "@sapphire/shapeshift"; -var booleanPredicate2 = s7.boolean; -var ApplicationCommandOptionWithAutocompleteMixin = class { - static { - __name(this, "ApplicationCommandOptionWithAutocompleteMixin"); - } - /** - * Whether this option utilizes autocomplete. - */ - autocomplete; - /** - * The type of this option. - * - * @privateRemarks Since this is present and this is a mixin, this is needed. - */ - type; - /** - * Whether this option uses autocomplete. - * - * @param autocomplete - Whether this option should use autocomplete - */ - setAutocomplete(autocomplete) { - booleanPredicate2.parse(autocomplete); - if (autocomplete && "choices" in this && Array.isArray(this.choices) && this.choices.length > 0) { - throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); - } - Reflect.set(this, "autocomplete", autocomplete); - return this; - } -}; - -// src/interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesMixin.ts -import { s as s8 } from "@sapphire/shapeshift"; -import { ApplicationCommandOptionType as ApplicationCommandOptionType4 } from "discord-api-types/v10"; -var stringPredicate = s8.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100); -var numberPredicate = s8.number.greaterThan(Number.NEGATIVE_INFINITY).lessThan(Number.POSITIVE_INFINITY); -var choicesPredicate = s8.object({ - name: stringPredicate, - name_localizations: localizationMapPredicate, - value: s8.union(stringPredicate, numberPredicate) -}).array; -var ApplicationCommandOptionWithChoicesMixin = class { - static { - __name(this, "ApplicationCommandOptionWithChoicesMixin"); - } - /** - * The choices of this option. - */ - choices; - /** - * The type of this option. - * - * @privateRemarks Since this is present and this is a mixin, this is needed. - */ - type; - /** - * Adds multiple choices to this option. - * - * @param choices - The choices to add - */ - addChoices(...choices) { - const normalizedChoices = normalizeArray(choices); - if (normalizedChoices.length > 0 && "autocomplete" in this && this.autocomplete) { - throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); - } - choicesPredicate.parse(normalizedChoices); - if (this.choices === void 0) { - Reflect.set(this, "choices", []); - } - validateChoicesLength(normalizedChoices.length, this.choices); - for (const { name, name_localizations, value } of normalizedChoices) { - if (this.type === ApplicationCommandOptionType4.String) { - stringPredicate.parse(value); - } else { - numberPredicate.parse(value); - } - this.choices.push({ name, name_localizations, value }); - } - return this; - } - /** - * Sets multiple choices for this option. - * - * @param choices - The choices to set - */ - setChoices(...choices) { - const normalizedChoices = normalizeArray(choices); - if (normalizedChoices.length > 0 && "autocomplete" in this && this.autocomplete) { - throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); - } - choicesPredicate.parse(normalizedChoices); - Reflect.set(this, "choices", []); - this.addChoices(normalizedChoices); - return this; - } -}; - -// src/interactions/slashCommands/options/integer.ts -var numberValidator = s9.number.int; -var SlashCommandIntegerOption = class extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - type = ApplicationCommandOptionType5.Integer; - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue} - */ - setMaxValue(max) { - numberValidator.parse(max); - Reflect.set(this, "max_value", max); - return this; - } - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue} - */ - setMinValue(min) { - numberValidator.parse(min); - Reflect.set(this, "min_value", min); - return this; - } - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - if (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) { - throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); - } - return { ...this }; - } -}; -__name(SlashCommandIntegerOption, "SlashCommandIntegerOption"); -SlashCommandIntegerOption = __decorateClass([ - mix2( - ApplicationCommandNumericOptionMinMaxValueMixin, - ApplicationCommandOptionWithAutocompleteMixin, - ApplicationCommandOptionWithChoicesMixin - ) -], SlashCommandIntegerOption); - -// src/interactions/slashCommands/options/mentionable.ts -import { ApplicationCommandOptionType as ApplicationCommandOptionType6 } from "discord-api-types/v10"; -var SlashCommandMentionableOption = class extends ApplicationCommandOptionBase { - static { - __name(this, "SlashCommandMentionableOption"); - } - /** - * The type of this option. - */ - type = ApplicationCommandOptionType6.Mentionable; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - return { ...this }; - } -}; - -// src/interactions/slashCommands/options/number.ts -import { s as s10 } from "@sapphire/shapeshift"; -import { ApplicationCommandOptionType as ApplicationCommandOptionType7 } from "discord-api-types/v10"; -import { mix as mix3 } from "ts-mixer"; -var numberValidator2 = s10.number; -var SlashCommandNumberOption = class extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - type = ApplicationCommandOptionType7.Number; - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue} - */ - setMaxValue(max) { - numberValidator2.parse(max); - Reflect.set(this, "max_value", max); - return this; - } - /** - * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue} - */ - setMinValue(min) { - numberValidator2.parse(min); - Reflect.set(this, "min_value", min); - return this; - } - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - if (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) { - throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); - } - return { ...this }; - } -}; -__name(SlashCommandNumberOption, "SlashCommandNumberOption"); -SlashCommandNumberOption = __decorateClass([ - mix3( - ApplicationCommandNumericOptionMinMaxValueMixin, - ApplicationCommandOptionWithAutocompleteMixin, - ApplicationCommandOptionWithChoicesMixin - ) -], SlashCommandNumberOption); - -// src/interactions/slashCommands/options/role.ts -import { ApplicationCommandOptionType as ApplicationCommandOptionType8 } from "discord-api-types/v10"; -var SlashCommandRoleOption = class extends ApplicationCommandOptionBase { - static { - __name(this, "SlashCommandRoleOption"); - } - /** - * The type of this option. - */ - type = ApplicationCommandOptionType8.Role; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - return { ...this }; - } -}; - -// src/interactions/slashCommands/options/string.ts -import { s as s11 } from "@sapphire/shapeshift"; -import { ApplicationCommandOptionType as ApplicationCommandOptionType9 } from "discord-api-types/v10"; -import { mix as mix4 } from "ts-mixer"; -var minLengthValidator2 = s11.number.greaterThanOrEqual(0).lessThanOrEqual(6e3); -var maxLengthValidator2 = s11.number.greaterThanOrEqual(1).lessThanOrEqual(6e3); -var SlashCommandStringOption = class extends ApplicationCommandOptionBase { - /** - * The type of this option. - */ - type = ApplicationCommandOptionType9.String; - /** - * The maximum length of this option. - */ - max_length; - /** - * The minimum length of this option. - */ - min_length; - /** - * Sets the maximum length of this string option. - * - * @param max - The maximum length this option can be - */ - setMaxLength(max) { - maxLengthValidator2.parse(max); - Reflect.set(this, "max_length", max); - return this; - } - /** - * Sets the minimum length of this string option. - * - * @param min - The minimum length this option can be - */ - setMinLength(min) { - minLengthValidator2.parse(min); - Reflect.set(this, "min_length", min); - return this; - } - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - if (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) { - throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); - } - return { ...this }; - } -}; -__name(SlashCommandStringOption, "SlashCommandStringOption"); -SlashCommandStringOption = __decorateClass([ - mix4(ApplicationCommandOptionWithAutocompleteMixin, ApplicationCommandOptionWithChoicesMixin) -], SlashCommandStringOption); - -// src/interactions/slashCommands/options/user.ts -import { ApplicationCommandOptionType as ApplicationCommandOptionType10 } from "discord-api-types/v10"; -var SlashCommandUserOption = class extends ApplicationCommandOptionBase { - static { - __name(this, "SlashCommandUserOption"); - } - /** - * The type of this option. - */ - type = ApplicationCommandOptionType10.User; - /** - * {@inheritDoc ApplicationCommandOptionBase.toJSON} - */ - toJSON() { - this.runRequiredValidations(); - return { ...this }; - } -}; - -// src/interactions/slashCommands/mixins/SharedSlashCommandOptions.ts -var SharedSlashCommandOptions = class { - static { - __name(this, "SharedSlashCommandOptions"); - } - options; - /** - * Adds a boolean option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addBooleanOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandBooleanOption); - } - /** - * Adds a user option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addUserOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandUserOption); - } - /** - * Adds a channel option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addChannelOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandChannelOption); - } - /** - * Adds a role option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addRoleOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandRoleOption); - } - /** - * Adds an attachment option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addAttachmentOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandAttachmentOption); - } - /** - * Adds a mentionable option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addMentionableOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandMentionableOption); - } - /** - * Adds a string option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addStringOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandStringOption); - } - /** - * Adds an integer option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addIntegerOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandIntegerOption); - } - /** - * Adds a number option. - * - * @param input - A function that returns an option builder or an already built builder - */ - addNumberOption(input) { - return this._sharedAddOptionMethod(input, SlashCommandNumberOption); - } - /** - * Where the actual adding magic happens. ✨ - * - * @param input - The input. What else? - * @param Instance - The instance of whatever is being added - * @internal - */ - _sharedAddOptionMethod(input, Instance) { - const { options } = this; - validateMaxOptionsLength(options); - const result = typeof input === "function" ? input(new Instance()) : input; - assertReturnOfBuilder(result, Instance); - options.push(result); - return this; - } -}; - -// src/interactions/slashCommands/SlashCommandSubcommands.ts -import { - ApplicationCommandOptionType as ApplicationCommandOptionType11 -} from "discord-api-types/v10"; -import { mix as mix5 } from "ts-mixer"; -var SlashCommandSubcommandGroupBuilder = class { - /** - * The name of this subcommand group. - */ - name = void 0; - /** - * The description of this subcommand group. - */ - description = void 0; - /** - * The subcommands within this subcommand group. - */ - options = []; - /** - * Adds a new subcommand to this group. - * - * @param input - A function that returns a subcommand builder or an already built builder - */ - addSubcommand(input) { - const { options } = this; - validateMaxOptionsLength(options); - const result = typeof input === "function" ? input(new SlashCommandSubcommandBuilder()) : input; - assertReturnOfBuilder(result, SlashCommandSubcommandBuilder); - options.push(result); - return this; - } - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON() { - validateRequiredParameters3(this.name, this.description, this.options); - return { - type: ApplicationCommandOptionType11.SubcommandGroup, - name: this.name, - name_localizations: this.name_localizations, - description: this.description, - description_localizations: this.description_localizations, - options: this.options.map((option) => option.toJSON()) - }; - } -}; -__name(SlashCommandSubcommandGroupBuilder, "SlashCommandSubcommandGroupBuilder"); -SlashCommandSubcommandGroupBuilder = __decorateClass([ - mix5(SharedNameAndDescription) -], SlashCommandSubcommandGroupBuilder); -var SlashCommandSubcommandBuilder = class { - /** - * The name of this subcommand. - */ - name = void 0; - /** - * The description of this subcommand. - */ - description = void 0; - /** - * The options within this subcommand. - */ - options = []; - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON() { - validateRequiredParameters3(this.name, this.description, this.options); - return { - type: ApplicationCommandOptionType11.Subcommand, - name: this.name, - name_localizations: this.name_localizations, - description: this.description, - description_localizations: this.description_localizations, - options: this.options.map((option) => option.toJSON()) - }; - } -}; -__name(SlashCommandSubcommandBuilder, "SlashCommandSubcommandBuilder"); -SlashCommandSubcommandBuilder = __decorateClass([ - mix5(SharedNameAndDescription, SharedSlashCommandOptions) -], SlashCommandSubcommandBuilder); - -// src/interactions/slashCommands/mixins/SharedSubcommands.ts -var SharedSlashCommandSubcommands = class { - static { - __name(this, "SharedSlashCommandSubcommands"); - } - options = []; - /** - * Adds a new subcommand group to this command. - * - * @param input - A function that returns a subcommand group builder or an already built builder - */ - addSubcommandGroup(input) { - const { options } = this; - validateMaxOptionsLength(options); - const result = typeof input === "function" ? input(new SlashCommandSubcommandGroupBuilder()) : input; - assertReturnOfBuilder(result, SlashCommandSubcommandGroupBuilder); - options.push(result); - return this; - } - /** - * Adds a new subcommand to this command. - * - * @param input - A function that returns a subcommand builder or an already built builder - */ - addSubcommand(input) { - const { options } = this; - validateMaxOptionsLength(options); - const result = typeof input === "function" ? input(new SlashCommandSubcommandBuilder()) : input; - assertReturnOfBuilder(result, SlashCommandSubcommandBuilder); - options.push(result); - return this; - } -}; - -// src/interactions/slashCommands/SlashCommandBuilder.ts -var SlashCommandBuilder = class { - /** - * The name of this command. - */ - name = void 0; - /** - * The name localizations of this command. - */ - name_localizations; - /** - * The description of this command. - */ - description = void 0; - /** - * The description localizations of this command. - */ - description_localizations; - /** - * The options of this command. - */ - options = []; - /** - * Whether this command is enabled by default when the application is added to a guild. - * - * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. - */ - default_permission = void 0; - /** - * The set of permissions represented as a bit set for the command. - */ - default_member_permissions = void 0; - /** - * Indicates whether the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This property is only for global commands. - */ - dm_permission = void 0; - /** - * Whether this command is NSFW. - */ - nsfw = void 0; -}; -__name(SlashCommandBuilder, "SlashCommandBuilder"); -SlashCommandBuilder = __decorateClass([ - mix6(SharedSlashCommandOptions, SharedNameAndDescription, SharedSlashCommandSubcommands, SharedSlashCommand) -], SlashCommandBuilder); - -// src/interactions/contextMenuCommands/Assertions.ts -var Assertions_exports6 = {}; -__export(Assertions_exports6, { - validateDMPermission: () => validateDMPermission2, - validateDefaultMemberPermissions: () => validateDefaultMemberPermissions2, - validateDefaultPermission: () => validateDefaultPermission2, - validateName: () => validateName2, - validateRequiredParameters: () => validateRequiredParameters4, - validateType: () => validateType -}); -import { s as s12 } from "@sapphire/shapeshift"; -import { ApplicationCommandType } from "discord-api-types/v10"; -var namePredicate2 = s12.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(32).regex(/^( *[\p{P}\p{L}\p{N}\p{sc=Devanagari}\p{sc=Thai}]+ *)+$/u).setValidationEnabled(isValidationEnabled); -var typePredicate = s12.union(s12.literal(ApplicationCommandType.User), s12.literal(ApplicationCommandType.Message)).setValidationEnabled(isValidationEnabled); -var booleanPredicate3 = s12.boolean; -function validateDefaultPermission2(value) { - booleanPredicate3.parse(value); -} -__name(validateDefaultPermission2, "validateDefaultPermission"); -function validateName2(name) { - namePredicate2.parse(name); -} -__name(validateName2, "validateName"); -function validateType(type) { - typePredicate.parse(type); -} -__name(validateType, "validateType"); -function validateRequiredParameters4(name, type) { - validateName2(name); - validateType(type); -} -__name(validateRequiredParameters4, "validateRequiredParameters"); -var dmPermissionPredicate2 = s12.boolean.nullish; -function validateDMPermission2(value) { - dmPermissionPredicate2.parse(value); -} -__name(validateDMPermission2, "validateDMPermission"); -var memberPermissionPredicate2 = s12.union( - s12.bigint.transform((value) => value.toString()), - s12.number.safeInt.transform((value) => value.toString()), - s12.string.regex(/^\d+$/) -).nullish; -function validateDefaultMemberPermissions2(permissions) { - return memberPermissionPredicate2.parse(permissions); -} -__name(validateDefaultMemberPermissions2, "validateDefaultMemberPermissions"); - -// src/interactions/contextMenuCommands/ContextMenuCommandBuilder.ts -var ContextMenuCommandBuilder = class { - static { - __name(this, "ContextMenuCommandBuilder"); - } - /** - * The name of this command. - */ - name = void 0; - /** - * The name localizations of this command. - */ - name_localizations; - /** - * The type of this command. - */ - type = void 0; - /** - * Whether this command is enabled by default when the application is added to a guild. - * - * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead. - */ - default_permission = void 0; - /** - * The set of permissions represented as a bit set for the command. - */ - default_member_permissions = void 0; - /** - * Indicates whether the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This property is only for global commands. - */ - dm_permission = void 0; - /** - * Sets the name of this command. - * - * @param name - The name to use - */ - setName(name) { - validateName2(name); - Reflect.set(this, "name", name); - return this; - } - /** - * Sets the type of this command. - * - * @param type - The type to use - */ - setType(type) { - validateType(type); - Reflect.set(this, "type", type); - return this; - } - /** - * Sets whether the command is enabled by default when the application is added to a guild. - * - * @remarks - * If set to `false`, you will have to later `PUT` the permissions for this command. - * @param value - Whether to enable this command by default - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead. - */ - setDefaultPermission(value) { - validateDefaultPermission2(value); - Reflect.set(this, "default_permission", value); - return this; - } - /** - * Sets the default permissions a member should have in order to run this command. - * - * @remarks - * You can set this to `'0'` to disable the command by default. - * @param permissions - The permissions bit field to set - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - */ - setDefaultMemberPermissions(permissions) { - const permissionValue = validateDefaultMemberPermissions2(permissions); - Reflect.set(this, "default_member_permissions", permissionValue); - return this; - } - /** - * Sets if the command is available in direct messages with the application. - * - * @remarks - * By default, commands are visible. This method is only for global commands. - * @param enabled - Whether the command should be enabled in direct messages - * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} - */ - setDMPermission(enabled) { - validateDMPermission2(enabled); - Reflect.set(this, "dm_permission", enabled); - return this; - } - /** - * Sets a name localization for this command. - * - * @param locale - The locale to set - * @param localizedName - The localized name for the given `locale` - */ - setNameLocalization(locale, localizedName) { - if (!this.name_localizations) { - Reflect.set(this, "name_localizations", {}); - } - const parsedLocale = validateLocale(locale); - if (localizedName === null) { - this.name_localizations[parsedLocale] = null; - return this; - } - validateName2(localizedName); - this.name_localizations[parsedLocale] = localizedName; - return this; - } - /** - * Sets the name localizations for this command. - * - * @param localizedNames - The object of localized names to set - */ - setNameLocalizations(localizedNames) { - if (localizedNames === null) { - Reflect.set(this, "name_localizations", null); - return this; - } - Reflect.set(this, "name_localizations", {}); - for (const args of Object.entries(localizedNames)) - this.setNameLocalization(...args); - return this; - } - /** - * Serializes this builder to API-compatible JSON data. - * - * @remarks - * This method runs validations on the data before serializing it. - * As such, it may throw an error if the data is invalid. - */ - toJSON() { - validateRequiredParameters4(this.name, this.type); - validateLocalizationMap(this.name_localizations); - return { ...this }; - } -}; - -// src/util/componentUtil.ts -function embedLength(data) { - return (data.title?.length ?? 0) + (data.description?.length ?? 0) + (data.fields?.reduce((prev, curr) => prev + curr.name.length + curr.value.length, 0) ?? 0) + (data.footer?.text.length ?? 0) + (data.author?.name.length ?? 0); -} -__name(embedLength, "embedLength"); - -// src/index.ts -var version = "1.8.1"; -export { - ActionRowBuilder, - ApplicationCommandNumericOptionMinMaxValueMixin, - ApplicationCommandOptionBase, - ApplicationCommandOptionChannelTypesMixin, - ApplicationCommandOptionWithAutocompleteMixin, - ApplicationCommandOptionWithChoicesMixin, - BaseSelectMenuBuilder, - ButtonBuilder, - ChannelSelectMenuBuilder, - Assertions_exports2 as ComponentAssertions, - ComponentBuilder, - Assertions_exports6 as ContextMenuCommandAssertions, - ContextMenuCommandBuilder, - Assertions_exports as EmbedAssertions, - EmbedBuilder, - MentionableSelectMenuBuilder, - Assertions_exports4 as ModalAssertions, - ModalBuilder, - RoleSelectMenuBuilder, - StringSelectMenuBuilder as SelectMenuBuilder, - StringSelectMenuOptionBuilder as SelectMenuOptionBuilder, - SharedNameAndDescription, - SharedSlashCommand, - SharedSlashCommandOptions, - SharedSlashCommandSubcommands, - Assertions_exports5 as SlashCommandAssertions, - SlashCommandAttachmentOption, - SlashCommandBooleanOption, - SlashCommandBuilder, - SlashCommandChannelOption, - SlashCommandIntegerOption, - SlashCommandMentionableOption, - SlashCommandNumberOption, - SlashCommandRoleOption, - SlashCommandStringOption, - SlashCommandSubcommandBuilder, - SlashCommandSubcommandGroupBuilder, - SlashCommandUserOption, - StringSelectMenuBuilder, - StringSelectMenuOptionBuilder, - Assertions_exports3 as TextInputAssertions, - TextInputBuilder, - UserSelectMenuBuilder, - createComponentBuilder, - disableValidators, - embedLength, - enableValidators, - isValidationEnabled, - normalizeArray, - version -}; -//# sourceMappingURL=index.mjs.map \ No newline at end of file diff --git a/node_modules/@discordjs/builders/dist/index.mjs.map b/node_modules/@discordjs/builders/dist/index.mjs.map deleted file mode 100644 index 6ca8b64..0000000 --- a/node_modules/@discordjs/builders/dist/index.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/messages/embed/Assertions.ts","../src/util/validation.ts","../src/util/normalizeArray.ts","../src/messages/embed/Embed.ts","../src/index.ts","../src/components/Assertions.ts","../src/components/selectMenu/StringSelectMenuOption.ts","../src/components/ActionRow.ts","../src/components/Component.ts","../src/components/Components.ts","../src/components/button/Button.ts","../src/components/selectMenu/ChannelSelectMenu.ts","../src/components/selectMenu/BaseSelectMenu.ts","../src/components/selectMenu/MentionableSelectMenu.ts","../src/components/selectMenu/RoleSelectMenu.ts","../src/components/selectMenu/StringSelectMenu.ts","../src/components/selectMenu/UserSelectMenu.ts","../src/components/textInput/TextInput.ts","../src/components/textInput/Assertions.ts","../src/interactions/modals/Assertions.ts","../src/interactions/modals/Modal.ts","../src/interactions/slashCommands/Assertions.ts","../src/interactions/slashCommands/SlashCommandBuilder.ts","../src/interactions/slashCommands/mixins/NameAndDescription.ts","../src/interactions/slashCommands/mixins/SharedSlashCommand.ts","../src/interactions/slashCommands/options/attachment.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionBase.ts","../src/interactions/slashCommands/options/boolean.ts","../src/interactions/slashCommands/options/channel.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin.ts","../src/interactions/slashCommands/options/integer.ts","../src/interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionWithAutocompleteMixin.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesMixin.ts","../src/interactions/slashCommands/options/mentionable.ts","../src/interactions/slashCommands/options/number.ts","../src/interactions/slashCommands/options/role.ts","../src/interactions/slashCommands/options/string.ts","../src/interactions/slashCommands/options/user.ts","../src/interactions/slashCommands/mixins/SharedSlashCommandOptions.ts","../src/interactions/slashCommands/SlashCommandSubcommands.ts","../src/interactions/slashCommands/mixins/SharedSubcommands.ts","../src/interactions/contextMenuCommands/Assertions.ts","../src/interactions/contextMenuCommands/ContextMenuCommandBuilder.ts","../src/util/componentUtil.ts"],"sourcesContent":["import { s } from '@sapphire/shapeshift';\nimport type { APIEmbedField } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\n\nexport const fieldNamePredicate = s.string\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(256)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const fieldValuePredicate = s.string\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(1_024)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const fieldInlinePredicate = s.boolean.optional;\n\nexport const embedFieldPredicate = s\n\t.object({\n\t\tname: fieldNamePredicate,\n\t\tvalue: fieldValuePredicate,\n\t\tinline: fieldInlinePredicate,\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const embedFieldsArrayPredicate = embedFieldPredicate.array.setValidationEnabled(isValidationEnabled);\n\nexport const fieldLengthPredicate = s.number.lessThanOrEqual(25).setValidationEnabled(isValidationEnabled);\n\nexport function validateFieldLength(amountAdding: number, fields?: APIEmbedField[]): void {\n\tfieldLengthPredicate.parse((fields?.length ?? 0) + amountAdding);\n}\n\nexport const authorNamePredicate = fieldNamePredicate.nullable.setValidationEnabled(isValidationEnabled);\n\nexport const imageURLPredicate = s.string\n\t.url({\n\t\tallowedProtocols: ['http:', 'https:', 'attachment:'],\n\t})\n\t.nullish.setValidationEnabled(isValidationEnabled);\n\nexport const urlPredicate = s.string\n\t.url({\n\t\tallowedProtocols: ['http:', 'https:'],\n\t})\n\t.nullish.setValidationEnabled(isValidationEnabled);\n\nexport const embedAuthorPredicate = s\n\t.object({\n\t\tname: authorNamePredicate,\n\t\ticonURL: imageURLPredicate,\n\t\turl: urlPredicate,\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const RGBPredicate = s.number.int\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(255)\n\t.setValidationEnabled(isValidationEnabled);\nexport const colorPredicate = s.number.int\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(0xffffff)\n\t.or(s.tuple([RGBPredicate, RGBPredicate, RGBPredicate]))\n\t.nullable.setValidationEnabled(isValidationEnabled);\n\nexport const descriptionPredicate = s.string\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(4_096)\n\t.nullable.setValidationEnabled(isValidationEnabled);\n\nexport const footerTextPredicate = s.string\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(2_048)\n\t.nullable.setValidationEnabled(isValidationEnabled);\n\nexport const embedFooterPredicate = s\n\t.object({\n\t\ttext: footerTextPredicate,\n\t\ticonURL: imageURLPredicate,\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const timestampPredicate = s.union(s.number, s.date).nullable.setValidationEnabled(isValidationEnabled);\n\nexport const titlePredicate = fieldNamePredicate.nullable.setValidationEnabled(isValidationEnabled);\n","let validate = true;\n\n/**\n * Enables validators.\n *\n * @returns Whether validation is occurring.\n */\nexport function enableValidators() {\n\treturn (validate = true);\n}\n\n/**\n * Disables validators.\n *\n * @returns Whether validation is occurring.\n */\nexport function disableValidators() {\n\treturn (validate = false);\n}\n\n/**\n * Checks whether validation is occurring.\n */\nexport function isValidationEnabled() {\n\treturn validate;\n}\n","/**\n * Normalizes data that is a rest parameter or an array into an array with a depth of 1.\n *\n * @typeParam ItemType - The data that must satisfy {@link RestOrArray}.\n * @param arr - The (possibly variadic) data to normalize\n */\nexport function normalizeArray(arr: RestOrArray): ItemType[] {\n\tif (Array.isArray(arr[0])) return [...arr[0]];\n\treturn arr as ItemType[];\n}\n\n/**\n * Represents data that may be an array or came from a rest parameter.\n *\n * @remarks\n * This type is used throughout builders to ensure both an array and variadic arguments\n * may be used. It is normalized with {@link normalizeArray}.\n */\nexport type RestOrArray = Type[] | [Type[]];\n","import type { APIEmbed, APIEmbedAuthor, APIEmbedField, APIEmbedFooter, APIEmbedImage } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../util/normalizeArray.js';\nimport {\n\tcolorPredicate,\n\tdescriptionPredicate,\n\tembedAuthorPredicate,\n\tembedFieldsArrayPredicate,\n\tembedFooterPredicate,\n\timageURLPredicate,\n\ttimestampPredicate,\n\ttitlePredicate,\n\turlPredicate,\n\tvalidateFieldLength,\n} from './Assertions.js';\n\n/**\n * A tuple satisfying the RGB color model.\n *\n * @see {@link https://developer.mozilla.org/docs/Glossary/RGB}\n */\nexport type RGBTuple = [red: number, green: number, blue: number];\n\n/**\n * The base icon data typically used in payloads.\n */\nexport interface IconData {\n\t/**\n\t * The URL of the icon.\n\t */\n\ticonURL?: string;\n\t/**\n\t * The proxy URL of the icon.\n\t */\n\tproxyIconURL?: string;\n}\n\n/**\n * Represents the author data of an embed.\n */\nexport interface EmbedAuthorData extends IconData, Omit {}\n\n/**\n * Represents the author options of an embed.\n */\nexport interface EmbedAuthorOptions extends Omit {}\n\n/**\n * Represents the footer data of an embed.\n */\nexport interface EmbedFooterData extends IconData, Omit {}\n\n/**\n * Represents the footer options of an embed.\n */\nexport interface EmbedFooterOptions extends Omit {}\n\n/**\n * Represents the image data of an embed.\n */\nexport interface EmbedImageData extends Omit {\n\t/**\n\t * The proxy URL for the image.\n\t */\n\tproxyURL?: string;\n}\n\n/**\n * A builder that creates API-compatible JSON data for embeds.\n */\nexport class EmbedBuilder {\n\t/**\n\t * The API data associated with this embed.\n\t */\n\tpublic readonly data: APIEmbed;\n\n\t/**\n\t * Creates a new embed from API data.\n\t *\n\t * @param data - The API data to create this embed with\n\t */\n\tpublic constructor(data: APIEmbed = {}) {\n\t\tthis.data = { ...data };\n\t\tif (data.timestamp) this.data.timestamp = new Date(data.timestamp).toISOString();\n\t}\n\n\t/**\n\t * Appends fields to the embed.\n\t *\n\t * @remarks\n\t * This method accepts either an array of fields or a variable number of field parameters.\n\t * The maximum amount of fields that can be added is 25.\n\t * @example\n\t * Using an array:\n\t * ```ts\n\t * const fields: APIEmbedField[] = ...;\n\t * const embed = new EmbedBuilder()\n\t * \t.addFields(fields);\n\t * ```\n\t * @example\n\t * Using rest parameters (variadic):\n\t * ```ts\n\t * const embed = new EmbedBuilder()\n\t * \t.addFields(\n\t * \t\t{ name: 'Field 1', value: 'Value 1' },\n\t * \t\t{ name: 'Field 2', value: 'Value 2' },\n\t * \t);\n\t * ```\n\t * @param fields - The fields to add\n\t */\n\tpublic addFields(...fields: RestOrArray): this {\n\t\tconst normalizedFields = normalizeArray(fields);\n\t\t// Ensure adding these fields won't exceed the 25 field limit\n\t\tvalidateFieldLength(normalizedFields.length, this.data.fields);\n\n\t\t// Data assertions\n\t\tembedFieldsArrayPredicate.parse(normalizedFields);\n\n\t\tif (this.data.fields) this.data.fields.push(...normalizedFields);\n\t\telse this.data.fields = normalizedFields;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts fields for this embed.\n\t *\n\t * @remarks\n\t * This method behaves similarly\n\t * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}.\n\t * The maximum amount of fields that can be added is 25.\n\t *\n\t * It's useful for modifying and adjusting order of the already-existing fields of an embed.\n\t * @example\n\t * Remove the first field:\n\t * ```ts\n\t * embed.spliceFields(0, 1);\n\t * ```\n\t * @example\n\t * Remove the first n fields:\n\t * ```ts\n\t * const n = 4;\n\t * embed.spliceFields(0, n);\n\t * ```\n\t * @example\n\t * Remove the last field:\n\t * ```ts\n\t * embed.spliceFields(-1, 1);\n\t * ```\n\t * @param index - The index to start at\n\t * @param deleteCount - The number of fields to remove\n\t * @param fields - The replacing field objects\n\t */\n\tpublic spliceFields(index: number, deleteCount: number, ...fields: APIEmbedField[]): this {\n\t\t// Ensure adding these fields won't exceed the 25 field limit\n\t\tvalidateFieldLength(fields.length - deleteCount, this.data.fields);\n\n\t\t// Data assertions\n\t\tembedFieldsArrayPredicate.parse(fields);\n\t\tif (this.data.fields) this.data.fields.splice(index, deleteCount, ...fields);\n\t\telse this.data.fields = fields;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the fields for this embed.\n\t *\n\t * @remarks\n\t * This method is an alias for {@link EmbedBuilder.spliceFields}. More specifically,\n\t * it splices the entire array of fields, replacing them with the provided fields.\n\t *\n\t * You can set a maximum of 25 fields.\n\t * @param fields - The fields to set\n\t */\n\tpublic setFields(...fields: RestOrArray): this {\n\t\tthis.spliceFields(0, this.data.fields?.length ?? 0, ...normalizeArray(fields));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the author of this embed.\n\t *\n\t * @param options - The options to use\n\t */\n\n\tpublic setAuthor(options: EmbedAuthorOptions | null): this {\n\t\tif (options === null) {\n\t\t\tthis.data.author = undefined;\n\t\t\treturn this;\n\t\t}\n\n\t\t// Data assertions\n\t\tembedAuthorPredicate.parse(options);\n\n\t\tthis.data.author = { name: options.name, url: options.url, icon_url: options.iconURL };\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the color of this embed.\n\t *\n\t * @param color - The color to use\n\t */\n\tpublic setColor(color: RGBTuple | number | null): this {\n\t\t// Data assertions\n\t\tcolorPredicate.parse(color);\n\n\t\tif (Array.isArray(color)) {\n\t\t\tconst [red, green, blue] = color;\n\t\t\tthis.data.color = (red << 16) + (green << 8) + blue;\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.data.color = color ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description of this embed.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string | null): this {\n\t\t// Data assertions\n\t\tdescriptionPredicate.parse(description);\n\n\t\tthis.data.description = description ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the footer of this embed.\n\t *\n\t * @param options - The footer to use\n\t */\n\tpublic setFooter(options: EmbedFooterOptions | null): this {\n\t\tif (options === null) {\n\t\t\tthis.data.footer = undefined;\n\t\t\treturn this;\n\t\t}\n\n\t\t// Data assertions\n\t\tembedFooterPredicate.parse(options);\n\n\t\tthis.data.footer = { text: options.text, icon_url: options.iconURL };\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the image of this embed.\n\t *\n\t * @param url - The image URL to use\n\t */\n\tpublic setImage(url: string | null): this {\n\t\t// Data assertions\n\t\timageURLPredicate.parse(url);\n\n\t\tthis.data.image = url ? { url } : undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the thumbnail of this embed.\n\t *\n\t * @param url - The thumbnail URL to use\n\t */\n\tpublic setThumbnail(url: string | null): this {\n\t\t// Data assertions\n\t\timageURLPredicate.parse(url);\n\n\t\tthis.data.thumbnail = url ? { url } : undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the timestamp of this embed.\n\t *\n\t * @param timestamp - The timestamp or date to use\n\t */\n\tpublic setTimestamp(timestamp: Date | number | null = Date.now()): this {\n\t\t// Data assertions\n\t\ttimestampPredicate.parse(timestamp);\n\n\t\tthis.data.timestamp = timestamp ? new Date(timestamp).toISOString() : undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the title for this embed.\n\t *\n\t * @param title - The title to use\n\t */\n\tpublic setTitle(title: string | null): this {\n\t\t// Data assertions\n\t\ttitlePredicate.parse(title);\n\n\t\tthis.data.title = title ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the URL of this embed.\n\t *\n\t * @param url - The URL to use\n\t */\n\tpublic setURL(url: string | null): this {\n\t\t// Data assertions\n\t\turlPredicate.parse(url);\n\n\t\tthis.data.url = url ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): APIEmbed {\n\t\treturn { ...this.data };\n\t}\n}\n","export * as EmbedAssertions from './messages/embed/Assertions.js';\nexport * from './messages/embed/Embed.js';\n// TODO: Consider removing this dep in the next major version\nexport * from '@discordjs/formatters';\n\nexport * as ComponentAssertions from './components/Assertions.js';\nexport * from './components/ActionRow.js';\nexport * from './components/button/Button.js';\nexport * from './components/Component.js';\nexport * from './components/Components.js';\nexport * from './components/textInput/TextInput.js';\nexport * as TextInputAssertions from './components/textInput/Assertions.js';\nexport * from './interactions/modals/Modal.js';\nexport * as ModalAssertions from './interactions/modals/Assertions.js';\n\nexport * from './components/selectMenu/BaseSelectMenu.js';\nexport * from './components/selectMenu/ChannelSelectMenu.js';\nexport * from './components/selectMenu/MentionableSelectMenu.js';\nexport * from './components/selectMenu/RoleSelectMenu.js';\nexport * from './components/selectMenu/StringSelectMenu.js';\n// TODO: Remove those aliases in v2\nexport {\n\t/**\n\t * @deprecated Will be removed in the next major version, use {@link StringSelectMenuBuilder} instead.\n\t */\n\tStringSelectMenuBuilder as SelectMenuBuilder,\n} from './components/selectMenu/StringSelectMenu.js';\nexport {\n\t/**\n\t * @deprecated Will be removed in the next major version, use {@link StringSelectMenuOptionBuilder} instead.\n\t */\n\tStringSelectMenuOptionBuilder as SelectMenuOptionBuilder,\n} from './components/selectMenu/StringSelectMenuOption.js';\nexport * from './components/selectMenu/StringSelectMenuOption.js';\nexport * from './components/selectMenu/UserSelectMenu.js';\n\nexport * as SlashCommandAssertions from './interactions/slashCommands/Assertions.js';\nexport * from './interactions/slashCommands/SlashCommandBuilder.js';\nexport * from './interactions/slashCommands/SlashCommandSubcommands.js';\nexport * from './interactions/slashCommands/options/boolean.js';\nexport * from './interactions/slashCommands/options/channel.js';\nexport * from './interactions/slashCommands/options/integer.js';\nexport * from './interactions/slashCommands/options/mentionable.js';\nexport * from './interactions/slashCommands/options/number.js';\nexport * from './interactions/slashCommands/options/role.js';\nexport * from './interactions/slashCommands/options/attachment.js';\nexport * from './interactions/slashCommands/options/string.js';\nexport * from './interactions/slashCommands/options/user.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandOptionBase.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandOptionWithAutocompleteMixin.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesMixin.js';\nexport * from './interactions/slashCommands/mixins/NameAndDescription.js';\nexport * from './interactions/slashCommands/mixins/SharedSlashCommandOptions.js';\nexport * from './interactions/slashCommands/mixins/SharedSubcommands.js';\nexport * from './interactions/slashCommands/mixins/SharedSlashCommand.js';\n\nexport * as ContextMenuCommandAssertions from './interactions/contextMenuCommands/Assertions.js';\nexport * from './interactions/contextMenuCommands/ContextMenuCommandBuilder.js';\n\nexport * from './util/componentUtil.js';\nexport * from './util/normalizeArray.js';\nexport * from './util/validation.js';\n\n/**\n * The {@link https://github.com/discordjs/discord.js/blob/main/packages/builders#readme | @discordjs/builders} version\n * that you are currently using.\n *\n * @privateRemarks This needs to explicitly be `string` so it is not typed as a \"const string\" that gets injected by esbuild.\n */\nexport const version = '1.8.1' as string;\n","import { s } from '@sapphire/shapeshift';\nimport { ButtonStyle, ChannelType, type APIMessageComponentEmoji } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../util/validation.js';\nimport { StringSelectMenuOptionBuilder } from './selectMenu/StringSelectMenuOption.js';\n\nexport const customIdValidator = s.string\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(100)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const emojiValidator = s\n\t.object({\n\t\tid: s.string,\n\t\tname: s.string,\n\t\tanimated: s.boolean,\n\t})\n\t.partial.strict.setValidationEnabled(isValidationEnabled);\n\nexport const disabledValidator = s.boolean;\n\nexport const buttonLabelValidator = s.string\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(80)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const buttonStyleValidator = s.nativeEnum(ButtonStyle);\n\nexport const placeholderValidator = s.string.lengthLessThanOrEqual(150).setValidationEnabled(isValidationEnabled);\nexport const minMaxValidator = s.number.int\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(25)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const labelValueDescriptionValidator = s.string\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(100)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const jsonOptionValidator = s\n\t.object({\n\t\tlabel: labelValueDescriptionValidator,\n\t\tvalue: labelValueDescriptionValidator,\n\t\tdescription: labelValueDescriptionValidator.optional,\n\t\temoji: emojiValidator.optional,\n\t\tdefault: s.boolean.optional,\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const optionValidator = s.instance(StringSelectMenuOptionBuilder).setValidationEnabled(isValidationEnabled);\n\nexport const optionsValidator = optionValidator.array\n\t.lengthGreaterThanOrEqual(0)\n\t.setValidationEnabled(isValidationEnabled);\nexport const optionsLengthValidator = s.number.int\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(25)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateRequiredSelectMenuParameters(options: StringSelectMenuOptionBuilder[], customId?: string) {\n\tcustomIdValidator.parse(customId);\n\toptionsValidator.parse(options);\n}\n\nexport const defaultValidator = s.boolean;\n\nexport function validateRequiredSelectMenuOptionParameters(label?: string, value?: string) {\n\tlabelValueDescriptionValidator.parse(label);\n\tlabelValueDescriptionValidator.parse(value);\n}\n\nexport const channelTypesValidator = s.nativeEnum(ChannelType).array.setValidationEnabled(isValidationEnabled);\n\nexport const urlValidator = s.string\n\t.url({\n\t\tallowedProtocols: ['http:', 'https:', 'discord:'],\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateRequiredButtonParameters(\n\tstyle?: ButtonStyle,\n\tlabel?: string,\n\temoji?: APIMessageComponentEmoji,\n\tcustomId?: string,\n\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 type { JSONEncodable } from '@discordjs/util';\nimport type { APIMessageComponentEmoji, APISelectMenuOption } from 'discord-api-types/v10';\nimport {\n\tdefaultValidator,\n\temojiValidator,\n\tlabelValueDescriptionValidator,\n\tvalidateRequiredSelectMenuOptionParameters,\n} from '../Assertions.js';\n\n/**\n * A builder that creates API-compatible JSON data for string select menu options.\n */\nexport class StringSelectMenuOptionBuilder implements JSONEncodable {\n\t/**\n\t * Creates a new string select menu option from API data.\n\t *\n\t * @param data - The API data to create this string select menu option with\n\t * @example\n\t * Creating a string select menu option from an API data object:\n\t * ```ts\n\t * const selectMenuOption = new SelectMenuOptionBuilder({\n\t * \tlabel: 'catchy label',\n\t * \tvalue: '1',\n\t * });\n\t * ```\n\t * @example\n\t * Creating a string select menu option using setters and API data:\n\t * ```ts\n\t * const selectMenuOption = new SelectMenuOptionBuilder({\n\t * \tdefault: true,\n\t * \tvalue: '1',\n\t * })\n\t * \t.setLabel('woah');\n\t * ```\n\t */\n\tpublic constructor(public data: Partial = {}) {}\n\n\t/**\n\t * Sets the label for this option.\n\t *\n\t * @param label - The label to use\n\t */\n\tpublic setLabel(label: string) {\n\t\tthis.data.label = labelValueDescriptionValidator.parse(label);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the value for this option.\n\t *\n\t * @param value - The value to use\n\t */\n\tpublic setValue(value: string) {\n\t\tthis.data.value = labelValueDescriptionValidator.parse(value);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description for this option.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string) {\n\t\tthis.data.description = labelValueDescriptionValidator.parse(description);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this option is selected by default.\n\t *\n\t * @param isDefault - Whether this option is selected by default\n\t */\n\tpublic setDefault(isDefault = true) {\n\t\tthis.data.default = defaultValidator.parse(isDefault);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the emoji to display for this option.\n\t *\n\t * @param emoji - The emoji to use\n\t */\n\tpublic setEmoji(emoji: APIMessageComponentEmoji) {\n\t\tthis.data.emoji = emojiValidator.parse(emoji);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc BaseSelectMenuBuilder.toJSON}\n\t */\n\tpublic toJSON(): APISelectMenuOption {\n\t\tvalidateRequiredSelectMenuOptionParameters(this.data.label, this.data.value);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APISelectMenuOption;\n\t}\n}\n","/* eslint-disable jsdoc/check-param-names */\n\nimport {\n\ttype APIActionRowComponent,\n\tComponentType,\n\ttype APIMessageActionRowComponent,\n\ttype APIModalActionRowComponent,\n\ttype APIActionRowComponentTypes,\n} from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../util/normalizeArray.js';\nimport { ComponentBuilder } from './Component.js';\nimport { createComponentBuilder } from './Components.js';\nimport type { ButtonBuilder } from './button/Button.js';\nimport type { ChannelSelectMenuBuilder } from './selectMenu/ChannelSelectMenu.js';\nimport type { MentionableSelectMenuBuilder } from './selectMenu/MentionableSelectMenu.js';\nimport type { RoleSelectMenuBuilder } from './selectMenu/RoleSelectMenu.js';\nimport type { StringSelectMenuBuilder } from './selectMenu/StringSelectMenu.js';\nimport type { UserSelectMenuBuilder } from './selectMenu/UserSelectMenu.js';\nimport type { TextInputBuilder } from './textInput/TextInput.js';\n\n/**\n * The builders that may be used for messages.\n */\nexport type MessageComponentBuilder =\n\t| ActionRowBuilder\n\t| MessageActionRowComponentBuilder;\n\n/**\n * The builders that may be used for modals.\n */\nexport type ModalComponentBuilder = ActionRowBuilder | ModalActionRowComponentBuilder;\n\n/**\n * The builders that may be used within an action row for messages.\n */\nexport type MessageActionRowComponentBuilder =\n\t| ButtonBuilder\n\t| ChannelSelectMenuBuilder\n\t| MentionableSelectMenuBuilder\n\t| RoleSelectMenuBuilder\n\t| StringSelectMenuBuilder\n\t| UserSelectMenuBuilder;\n\n/**\n * The builders that may be used within an action row for modals.\n */\nexport type ModalActionRowComponentBuilder = TextInputBuilder;\n\n/**\n * Any builder.\n */\nexport type AnyComponentBuilder = MessageActionRowComponentBuilder | ModalActionRowComponentBuilder;\n\n/**\n * A builder that creates API-compatible JSON data for action rows.\n *\n * @typeParam ComponentType - The types of components this action row holds\n */\nexport class ActionRowBuilder extends ComponentBuilder<\n\tAPIActionRowComponent\n> {\n\t/**\n\t * The components within this action row.\n\t */\n\tpublic readonly components: ComponentType[];\n\n\t/**\n\t * Creates a new action row from API data.\n\t *\n\t * @param data - The API data to create this action row with\n\t * @example\n\t * Creating an action row from an API data object:\n\t * ```ts\n\t * const actionRow = new ActionRowBuilder({\n\t * \tcomponents: [\n\t * \t\t{\n\t * \t\t\tcustom_id: \"custom id\",\n\t * \t\t\tlabel: \"Type something\",\n\t * \t\t\tstyle: TextInputStyle.Short,\n\t * \t\t\ttype: ComponentType.TextInput,\n\t * \t\t},\n\t * \t],\n\t * });\n\t * ```\n\t * @example\n\t * Creating an action row using setters and API data:\n\t * ```ts\n\t * const actionRow = new ActionRowBuilder({\n\t * \tcomponents: [\n\t * \t\t{\n\t * \t\t\tcustom_id: \"custom id\",\n\t * \t\t\tlabel: \"Click me\",\n\t * \t\t\tstyle: ButtonStyle.Primary,\n\t * \t\t\ttype: ComponentType.Button,\n\t * \t\t},\n\t * \t],\n\t * })\n\t * \t.addComponents(button2, button3);\n\t * ```\n\t */\n\tpublic constructor({ components, ...data }: Partial> = {}) {\n\t\tsuper({ type: ComponentType.ActionRow, ...data });\n\t\tthis.components = (components?.map((component) => createComponentBuilder(component)) ?? []) as ComponentType[];\n\t}\n\n\t/**\n\t * Adds components to this action row.\n\t *\n\t * @param components - The components to add\n\t */\n\tpublic addComponents(...components: RestOrArray) {\n\t\tthis.components.push(...normalizeArray(components));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets components for this action row.\n\t *\n\t * @param components - The components to set\n\t */\n\tpublic setComponents(...components: RestOrArray) {\n\t\tthis.components.splice(0, this.components.length, ...normalizeArray(components));\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIActionRowComponent> {\n\t\treturn {\n\t\t\t...this.data,\n\t\t\tcomponents: this.components.map((component) => component.toJSON()),\n\t\t} as APIActionRowComponent>;\n\t}\n}\n","import type { JSONEncodable } from '@discordjs/util';\nimport type {\n\tAPIActionRowComponent,\n\tAPIActionRowComponentTypes,\n\tAPIBaseComponent,\n\tComponentType,\n} from 'discord-api-types/v10';\n\n/**\n * Any action row component data represented as an object.\n */\nexport type AnyAPIActionRowComponent = APIActionRowComponent | APIActionRowComponentTypes;\n\n/**\n * The base component builder that contains common symbols for all sorts of components.\n *\n * @typeParam DataType - The type of internal API data that is stored within the component\n */\nexport abstract class ComponentBuilder<\n\tDataType extends Partial> = APIBaseComponent,\n> implements JSONEncodable\n{\n\t/**\n\t * The API data associated with this component.\n\t */\n\tpublic readonly data: Partial;\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic abstract toJSON(): AnyAPIActionRowComponent;\n\n\t/**\n\t * Constructs a new kind of component.\n\t *\n\t * @param data - The data to construct a component out of\n\t */\n\tpublic constructor(data: Partial) {\n\t\tthis.data = data;\n\t}\n}\n","import { ComponentType, type APIMessageComponent, type APIModalComponent } from 'discord-api-types/v10';\nimport {\n\tActionRowBuilder,\n\ttype AnyComponentBuilder,\n\ttype MessageComponentBuilder,\n\ttype ModalComponentBuilder,\n} from './ActionRow.js';\nimport { ComponentBuilder } from './Component.js';\nimport { ButtonBuilder } from './button/Button.js';\nimport { ChannelSelectMenuBuilder } from './selectMenu/ChannelSelectMenu.js';\nimport { MentionableSelectMenuBuilder } from './selectMenu/MentionableSelectMenu.js';\nimport { RoleSelectMenuBuilder } from './selectMenu/RoleSelectMenu.js';\nimport { StringSelectMenuBuilder } from './selectMenu/StringSelectMenu.js';\nimport { UserSelectMenuBuilder } from './selectMenu/UserSelectMenu.js';\nimport { TextInputBuilder } from './textInput/TextInput.js';\n\n/**\n * Components here are mapped to their respective builder.\n */\nexport interface MappedComponentTypes {\n\t/**\n\t * The action row component type is associated with an {@link ActionRowBuilder}.\n\t */\n\t[ComponentType.ActionRow]: ActionRowBuilder;\n\t/**\n\t * The button component type is associated with an {@link ButtonBuilder}.\n\t */\n\t[ComponentType.Button]: ButtonBuilder;\n\t/**\n\t * The string select component type is associated with an {@link StringSelectMenuBuilder}.\n\t */\n\t[ComponentType.StringSelect]: StringSelectMenuBuilder;\n\t/**\n\t * The text inpiut component type is associated with an {@link TextInputBuilder}.\n\t */\n\t[ComponentType.TextInput]: TextInputBuilder;\n\t/**\n\t * The user select component type is associated with an {@link UserSelectMenuBuilder}.\n\t */\n\t[ComponentType.UserSelect]: UserSelectMenuBuilder;\n\t/**\n\t * The role select component type is associated with an {@link RoleSelectMenuBuilder}.\n\t */\n\t[ComponentType.RoleSelect]: RoleSelectMenuBuilder;\n\t/**\n\t * The mentionable select component type is associated with an {@link MentionableSelectMenuBuilder}.\n\t */\n\t[ComponentType.MentionableSelect]: MentionableSelectMenuBuilder;\n\t/**\n\t * The channel select component type is associated with an {@link ChannelSelectMenuBuilder}.\n\t */\n\t[ComponentType.ChannelSelect]: ChannelSelectMenuBuilder;\n}\n\n/**\n * Factory for creating components from API data.\n *\n * @typeParam ComponentType - The type of component to use\n * @param data - The API data to transform to a component class\n */\nexport function createComponentBuilder(\n\t// eslint-disable-next-line @typescript-eslint/sort-type-constituents\n\tdata: (APIModalComponent | APIMessageComponent) & { type: ComponentType },\n): MappedComponentTypes[ComponentType];\n\n/**\n * Factory for creating components from API data.\n *\n * @typeParam ComponentBuilder - The type of component to use\n * @param data - The API data to transform to a component class\n */\nexport function createComponentBuilder(\n\tdata: ComponentBuilder,\n): ComponentBuilder;\n\nexport function createComponentBuilder(\n\tdata: APIMessageComponent | APIModalComponent | MessageComponentBuilder,\n): ComponentBuilder {\n\tif (data instanceof ComponentBuilder) {\n\t\treturn data;\n\t}\n\n\tswitch (data.type) {\n\t\tcase ComponentType.ActionRow:\n\t\t\treturn new ActionRowBuilder(data);\n\t\tcase ComponentType.Button:\n\t\t\treturn new ButtonBuilder(data);\n\t\tcase ComponentType.StringSelect:\n\t\t\treturn new StringSelectMenuBuilder(data);\n\t\tcase ComponentType.TextInput:\n\t\t\treturn new TextInputBuilder(data);\n\t\tcase ComponentType.UserSelect:\n\t\t\treturn new UserSelectMenuBuilder(data);\n\t\tcase ComponentType.RoleSelect:\n\t\t\treturn new RoleSelectMenuBuilder(data);\n\t\tcase ComponentType.MentionableSelect:\n\t\t\treturn new MentionableSelectMenuBuilder(data);\n\t\tcase ComponentType.ChannelSelect:\n\t\t\treturn new ChannelSelectMenuBuilder(data);\n\t\tdefault:\n\t\t\t// @ts-expect-error This case can still occur if we get a newer unsupported component type\n\t\t\tthrow new Error(`Cannot properly serialize component type: ${data.type}`);\n\t}\n}\n","import {\n\tComponentType,\n\ttype APIMessageComponentEmoji,\n\ttype APIButtonComponent,\n\ttype APIButtonComponentWithURL,\n\ttype APIButtonComponentWithCustomId,\n\ttype ButtonStyle,\n} from 'discord-api-types/v10';\nimport {\n\tbuttonLabelValidator,\n\tbuttonStyleValidator,\n\tcustomIdValidator,\n\tdisabledValidator,\n\temojiValidator,\n\turlValidator,\n\tvalidateRequiredButtonParameters,\n} from '../Assertions.js';\nimport { ComponentBuilder } from '../Component.js';\n\n/**\n * A builder that creates API-compatible JSON data for buttons.\n */\nexport class ButtonBuilder extends ComponentBuilder {\n\t/**\n\t * Creates a new button from API data.\n\t *\n\t * @param data - The API data to create this button with\n\t * @example\n\t * Creating a button from an API data object:\n\t * ```ts\n\t * const button = new ButtonBuilder({\n\t * \tcustom_id: 'a cool button',\n\t * \tstyle: ButtonStyle.Primary,\n\t * \tlabel: 'Click Me',\n\t * \temoji: {\n\t * \t\tname: 'smile',\n\t * \t\tid: '123456789012345678',\n\t * \t},\n\t * });\n\t * ```\n\t * @example\n\t * Creating a button using setters and API data:\n\t * ```ts\n\t * const button = new ButtonBuilder({\n\t * \tstyle: ButtonStyle.Secondary,\n\t * \tlabel: 'Click Me',\n\t * })\n\t * \t.setEmoji({ name: '🙂' })\n\t * \t.setCustomId('another cool button');\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ type: ComponentType.Button, ...data });\n\t}\n\n\t/**\n\t * Sets the style of this button.\n\t *\n\t * @param style - The style to use\n\t */\n\tpublic setStyle(style: ButtonStyle) {\n\t\tthis.data.style = buttonStyleValidator.parse(style);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the URL for this button.\n\t *\n\t * @remarks\n\t * This method is only available to buttons using the `Link` button style.\n\t * Only three types of URL schemes are currently supported: `https://`, `http://`, and `discord://`.\n\t * @param url - The URL to use\n\t */\n\tpublic setURL(url: string) {\n\t\t(this.data as APIButtonComponentWithURL).url = urlValidator.parse(url);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the custom id for this button.\n\t *\n\t * @remarks\n\t * This method is only applicable to buttons that are not using the `Link` button style.\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\t(this.data as APIButtonComponentWithCustomId).custom_id = customIdValidator.parse(customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the emoji to display on this button.\n\t *\n\t * @param emoji - The emoji to use\n\t */\n\tpublic setEmoji(emoji: APIMessageComponentEmoji) {\n\t\tthis.data.emoji = emojiValidator.parse(emoji);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this button is disabled.\n\t *\n\t * @param disabled - Whether to disable this button\n\t */\n\tpublic setDisabled(disabled = true) {\n\t\tthis.data.disabled = disabledValidator.parse(disabled);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the label for this button.\n\t *\n\t * @param label - The label to use\n\t */\n\tpublic setLabel(label: string) {\n\t\tthis.data.label = buttonLabelValidator.parse(label);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIButtonComponent {\n\t\tvalidateRequiredButtonParameters(\n\t\t\tthis.data.style,\n\t\t\tthis.data.label,\n\t\t\tthis.data.emoji,\n\t\t\t(this.data as APIButtonComponentWithCustomId).custom_id,\n\t\t\t(this.data as APIButtonComponentWithURL).url,\n\t\t);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APIButtonComponent;\n\t}\n}\n","import {\n\ttype APIChannelSelectComponent,\n\ttype ChannelType,\n\ttype Snowflake,\n\tComponentType,\n\tSelectMenuDefaultValueType,\n} from 'discord-api-types/v10';\nimport { type RestOrArray, normalizeArray } from '../../util/normalizeArray.js';\nimport { channelTypesValidator, customIdValidator, optionsLengthValidator } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\n\n/**\n * A builder that creates API-compatible JSON data for channel select menus.\n */\nexport class ChannelSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new ChannelSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new ChannelSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.addChannelTypes(ChannelType.GuildText, ChannelType.GuildAnnouncement)\n\t * \t.setMinValues(2);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ ...data, type: ComponentType.ChannelSelect });\n\t}\n\n\t/**\n\t * Adds channel types to this select menu.\n\t *\n\t * @param types - The channel types to use\n\t */\n\tpublic addChannelTypes(...types: RestOrArray) {\n\t\tconst normalizedTypes = normalizeArray(types);\n\t\tthis.data.channel_types ??= [];\n\t\tthis.data.channel_types.push(...channelTypesValidator.parse(normalizedTypes));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets channel types for this select menu.\n\t *\n\t * @param types - The channel types to use\n\t */\n\tpublic setChannelTypes(...types: RestOrArray) {\n\t\tconst normalizedTypes = normalizeArray(types);\n\t\tthis.data.channel_types ??= [];\n\t\tthis.data.channel_types.splice(0, this.data.channel_types.length, ...channelTypesValidator.parse(normalizedTypes));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds default channels to this auto populated select menu.\n\t *\n\t * @param channels - The channels to add\n\t */\n\tpublic addDefaultChannels(...channels: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(channels);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.Channel as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets default channels to this auto populated select menu.\n\t *\n\t * @param channels - The channels to set\n\t */\n\tpublic setDefaultChannels(...channels: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(channels);\n\t\toptionsLengthValidator.parse(normalizedValues.length);\n\n\t\tthis.data.default_values = normalizedValues.map((id) => ({\n\t\t\tid,\n\t\t\ttype: SelectMenuDefaultValueType.Channel as const,\n\t\t}));\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc BaseSelectMenuBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APIChannelSelectComponent {\n\t\tcustomIdValidator.parse(this.data.custom_id);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APIChannelSelectComponent;\n\t}\n}\n","import type { APISelectMenuComponent } from 'discord-api-types/v10';\nimport { customIdValidator, disabledValidator, minMaxValidator, placeholderValidator } from '../Assertions.js';\nimport { ComponentBuilder } from '../Component.js';\n\n/**\n * The base select menu builder that contains common symbols for select menu builders.\n *\n * @typeParam SelectMenuType - The type of select menu this would be instantiated for.\n */\nexport abstract class BaseSelectMenuBuilder<\n\tSelectMenuType extends APISelectMenuComponent,\n> extends ComponentBuilder {\n\t/**\n\t * Sets the placeholder for this select menu.\n\t *\n\t * @param placeholder - The placeholder to use\n\t */\n\tpublic setPlaceholder(placeholder: string) {\n\t\tthis.data.placeholder = placeholderValidator.parse(placeholder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the minimum values that must be selected in the select menu.\n\t *\n\t * @param minValues - The minimum values that must be selected\n\t */\n\tpublic setMinValues(minValues: number) {\n\t\tthis.data.min_values = minMaxValidator.parse(minValues);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the maximum values that must be selected in the select menu.\n\t *\n\t * @param maxValues - The maximum values that must be selected\n\t */\n\tpublic setMaxValues(maxValues: number) {\n\t\tthis.data.max_values = minMaxValidator.parse(maxValues);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the custom id for this select menu.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customIdValidator.parse(customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this select menu is disabled.\n\t *\n\t * @param disabled - Whether this select menu is disabled\n\t */\n\tpublic setDisabled(disabled = true) {\n\t\tthis.data.disabled = disabledValidator.parse(disabled);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): SelectMenuType {\n\t\tcustomIdValidator.parse(this.data.custom_id);\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as SelectMenuType;\n\t}\n}\n","import {\n\ttype APIMentionableSelectComponent,\n\ttype APISelectMenuDefaultValue,\n\ttype Snowflake,\n\tComponentType,\n\tSelectMenuDefaultValueType,\n} from 'discord-api-types/v10';\nimport { type RestOrArray, normalizeArray } from '../../util/normalizeArray.js';\nimport { optionsLengthValidator } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\n\n/**\n * A builder that creates API-compatible JSON data for mentionable select menus.\n */\nexport class MentionableSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new MentionableSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new MentionableSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.setMinValues(1);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ ...data, type: ComponentType.MentionableSelect });\n\t}\n\n\t/**\n\t * Adds default roles to this auto populated select menu.\n\t *\n\t * @param roles - The roles to add\n\t */\n\tpublic addDefaultRoles(...roles: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(roles);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.Role as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds default users to this auto populated select menu.\n\t *\n\t * @param users - The users to add\n\t */\n\tpublic addDefaultUsers(...users: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(users);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.User as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds default values to this auto populated select menu.\n\t *\n\t * @param values - The values to add\n\t */\n\tpublic addDefaultValues(\n\t\t...values: RestOrArray<\n\t\t\t| APISelectMenuDefaultValue\n\t\t\t| APISelectMenuDefaultValue\n\t\t>\n\t) {\n\t\tconst normalizedValues = normalizeArray(values);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\t\tthis.data.default_values.push(...normalizedValues);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets default values to this auto populated select menu.\n\t *\n\t * @param values - The values to set\n\t */\n\tpublic setDefaultValues(\n\t\t...values: RestOrArray<\n\t\t\t| APISelectMenuDefaultValue\n\t\t\t| APISelectMenuDefaultValue\n\t\t>\n\t) {\n\t\tconst normalizedValues = normalizeArray(values);\n\t\toptionsLengthValidator.parse(normalizedValues.length);\n\t\tthis.data.default_values = normalizedValues;\n\t\treturn this;\n\t}\n}\n","import {\n\ttype APIRoleSelectComponent,\n\ttype Snowflake,\n\tComponentType,\n\tSelectMenuDefaultValueType,\n} from 'discord-api-types/v10';\nimport { type RestOrArray, normalizeArray } from '../../util/normalizeArray.js';\nimport { optionsLengthValidator } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\n\n/**\n * A builder that creates API-compatible JSON data for role select menus.\n */\nexport class RoleSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new RoleSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new RoleSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.setMinValues(1);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ ...data, type: ComponentType.RoleSelect });\n\t}\n\n\t/**\n\t * Adds default roles to this auto populated select menu.\n\t *\n\t * @param roles - The roles to add\n\t */\n\tpublic addDefaultRoles(...roles: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(roles);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.Role as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets default roles to this auto populated select menu.\n\t *\n\t * @param roles - The roles to set\n\t */\n\tpublic setDefaultRoles(...roles: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(roles);\n\t\toptionsLengthValidator.parse(normalizedValues.length);\n\n\t\tthis.data.default_values = normalizedValues.map((id) => ({\n\t\t\tid,\n\t\t\ttype: SelectMenuDefaultValueType.Role as const,\n\t\t}));\n\n\t\treturn this;\n\t}\n}\n","import { ComponentType } from 'discord-api-types/v10';\nimport type { APIStringSelectComponent, APISelectMenuOption } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../util/normalizeArray.js';\nimport { jsonOptionValidator, optionsLengthValidator, validateRequiredSelectMenuParameters } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\nimport { StringSelectMenuOptionBuilder } from './StringSelectMenuOption.js';\n\n/**\n * A builder that creates API-compatible JSON data for string select menus.\n */\nexport class StringSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * The options within this select menu.\n\t */\n\tpublic readonly options: StringSelectMenuOptionBuilder[];\n\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new StringSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * \toptions: [\n\t * \t\t{ label: 'option 1', value: '1' },\n\t * \t\t{ label: 'option 2', value: '2' },\n\t * \t\t{ label: 'option 3', value: '3' },\n\t * \t],\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new StringSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.setMinValues(1)\n\t * \t.addOptions({\n\t * \t\tlabel: 'Catchy',\n\t * \t\tvalue: 'catch',\n\t * \t});\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tconst { options, ...initData } = data ?? {};\n\t\tsuper({ ...initData, type: ComponentType.StringSelect });\n\t\tthis.options = options?.map((option: APISelectMenuOption) => new StringSelectMenuOptionBuilder(option)) ?? [];\n\t}\n\n\t/**\n\t * Adds options to this select menu.\n\t *\n\t * @param options - The options to add\n\t */\n\tpublic addOptions(...options: RestOrArray) {\n\t\tconst normalizedOptions = normalizeArray(options);\n\t\toptionsLengthValidator.parse(this.options.length + normalizedOptions.length);\n\t\tthis.options.push(\n\t\t\t...normalizedOptions.map((normalizedOption) =>\n\t\t\t\tnormalizedOption instanceof StringSelectMenuOptionBuilder\n\t\t\t\t\t? normalizedOption\n\t\t\t\t\t: new StringSelectMenuOptionBuilder(jsonOptionValidator.parse(normalizedOption)),\n\t\t\t),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the options for this select menu.\n\t *\n\t * @param options - The options to set\n\t */\n\tpublic setOptions(...options: RestOrArray) {\n\t\treturn this.spliceOptions(0, this.options.length, ...options);\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts options for this select menu.\n\t *\n\t * @remarks\n\t * This method behaves similarly\n\t * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice | Array.prototype.splice()}.\n\t * It's useful for modifying and adjusting the order of existing options.\n\t * @example\n\t * Remove the first option:\n\t * ```ts\n\t * selectMenu.spliceOptions(0, 1);\n\t * ```\n\t * @example\n\t * Remove the first n option:\n\t * ```ts\n\t * const n = 4;\n\t * selectMenu.spliceOptions(0, n);\n\t * ```\n\t * @example\n\t * Remove the last option:\n\t * ```ts\n\t * selectMenu.spliceOptions(-1, 1);\n\t * ```\n\t * @param index - The index to start at\n\t * @param deleteCount - The number of options to remove\n\t * @param options - The replacing option objects or builders\n\t */\n\tpublic spliceOptions(\n\t\tindex: number,\n\t\tdeleteCount: number,\n\t\t...options: RestOrArray\n\t) {\n\t\tconst normalizedOptions = normalizeArray(options);\n\n\t\tconst clone = [...this.options];\n\n\t\tclone.splice(\n\t\t\tindex,\n\t\t\tdeleteCount,\n\t\t\t...normalizedOptions.map((normalizedOption) =>\n\t\t\t\tnormalizedOption instanceof StringSelectMenuOptionBuilder\n\t\t\t\t\t? normalizedOption\n\t\t\t\t\t: new StringSelectMenuOptionBuilder(jsonOptionValidator.parse(normalizedOption)),\n\t\t\t),\n\t\t);\n\n\t\toptionsLengthValidator.parse(clone.length);\n\t\tthis.options.splice(0, this.options.length, ...clone);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc BaseSelectMenuBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APIStringSelectComponent {\n\t\tvalidateRequiredSelectMenuParameters(this.options, this.data.custom_id);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t} as APIStringSelectComponent;\n\t}\n}\n","import {\n\ttype APIUserSelectComponent,\n\ttype Snowflake,\n\tComponentType,\n\tSelectMenuDefaultValueType,\n} from 'discord-api-types/v10';\nimport { type RestOrArray, normalizeArray } from '../../util/normalizeArray.js';\nimport { optionsLengthValidator } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\n\n/**\n * A builder that creates API-compatible JSON data for user select menus.\n */\nexport class UserSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new UserSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new UserSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.setMinValues(1);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ ...data, type: ComponentType.UserSelect });\n\t}\n\n\t/**\n\t * Adds default users to this auto populated select menu.\n\t *\n\t * @param users - The users to add\n\t */\n\tpublic addDefaultUsers(...users: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(users);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.User as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets default users to this auto populated select menu.\n\t *\n\t * @param users - The users to set\n\t */\n\tpublic setDefaultUsers(...users: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(users);\n\t\toptionsLengthValidator.parse(normalizedValues.length);\n\n\t\tthis.data.default_values = normalizedValues.map((id) => ({\n\t\t\tid,\n\t\t\ttype: SelectMenuDefaultValueType.User as const,\n\t\t}));\n\n\t\treturn this;\n\t}\n}\n","import { isJSONEncodable, type Equatable, type JSONEncodable } from '@discordjs/util';\nimport { ComponentType, type TextInputStyle, type APITextInputComponent } from 'discord-api-types/v10';\nimport isEqual from 'fast-deep-equal';\nimport { customIdValidator } from '../Assertions.js';\nimport { ComponentBuilder } from '../Component.js';\nimport {\n\tmaxLengthValidator,\n\tminLengthValidator,\n\tplaceholderValidator,\n\trequiredValidator,\n\tvalueValidator,\n\tvalidateRequiredParameters,\n\tlabelValidator,\n\ttextInputStyleValidator,\n} from './Assertions.js';\n\n/**\n * A builder that creates API-compatible JSON data for text inputs.\n */\nexport class TextInputBuilder\n\textends ComponentBuilder\n\timplements Equatable>\n{\n\t/**\n\t * Creates a new text input from API data.\n\t *\n\t * @param data - The API data to create this text input with\n\t * @example\n\t * Creating a select menu option from an API data object:\n\t * ```ts\n\t * const textInput = new TextInputBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tlabel: 'Type something',\n\t * \tstyle: TextInputStyle.Short,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu option using setters and API data:\n\t * ```ts\n\t * const textInput = new TextInputBuilder({\n\t * \tlabel: 'Type something else',\n\t * })\n\t * \t.setCustomId('woah')\n\t * \t.setStyle(TextInputStyle.Paragraph);\n\t * ```\n\t */\n\tpublic constructor(data?: APITextInputComponent & { type?: ComponentType.TextInput }) {\n\t\tsuper({ type: ComponentType.TextInput, ...data });\n\t}\n\n\t/**\n\t * Sets the custom id for this text input.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customIdValidator.parse(customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the label for this text input.\n\t *\n\t * @param label - The label to use\n\t */\n\tpublic setLabel(label: string) {\n\t\tthis.data.label = labelValidator.parse(label);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the style for this text input.\n\t *\n\t * @param style - The style to use\n\t */\n\tpublic setStyle(style: TextInputStyle) {\n\t\tthis.data.style = textInputStyleValidator.parse(style);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the minimum length of text for this text input.\n\t *\n\t * @param minLength - The minimum length of text for this text input\n\t */\n\tpublic setMinLength(minLength: number) {\n\t\tthis.data.min_length = minLengthValidator.parse(minLength);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the maximum length of text for this text input.\n\t *\n\t * @param maxLength - The maximum length of text for this text input\n\t */\n\tpublic setMaxLength(maxLength: number) {\n\t\tthis.data.max_length = maxLengthValidator.parse(maxLength);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the placeholder for this text input.\n\t *\n\t * @param placeholder - The placeholder to use\n\t */\n\tpublic setPlaceholder(placeholder: string) {\n\t\tthis.data.placeholder = placeholderValidator.parse(placeholder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the value for this text input.\n\t *\n\t * @param value - The value to use\n\t */\n\tpublic setValue(value: string) {\n\t\tthis.data.value = valueValidator.parse(value);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this text input is required.\n\t *\n\t * @param required - Whether this text input is required\n\t */\n\tpublic setRequired(required = true) {\n\t\tthis.data.required = requiredValidator.parse(required);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APITextInputComponent {\n\t\tvalidateRequiredParameters(this.data.custom_id, this.data.style, this.data.label);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APITextInputComponent;\n\t}\n\n\t/**\n\t * Whether this is equal to another structure.\n\t */\n\tpublic equals(other: APITextInputComponent | JSONEncodable): boolean {\n\t\tif (isJSONEncodable(other)) {\n\t\t\treturn isEqual(other.toJSON(), this.data);\n\t\t}\n\n\t\treturn isEqual(other, this.data);\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { TextInputStyle } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\nimport { customIdValidator } from '../Assertions.js';\n\nexport const textInputStyleValidator = s.nativeEnum(TextInputStyle);\nexport const minLengthValidator = s.number.int\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(4_000)\n\t.setValidationEnabled(isValidationEnabled);\nexport const maxLengthValidator = s.number.int\n\t.greaterThanOrEqual(1)\n\t.lessThanOrEqual(4_000)\n\t.setValidationEnabled(isValidationEnabled);\nexport const requiredValidator = s.boolean;\nexport const valueValidator = s.string.lengthLessThanOrEqual(4_000).setValidationEnabled(isValidationEnabled);\nexport const placeholderValidator = s.string.lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled);\nexport const labelValidator = s.string\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(45)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateRequiredParameters(customId?: string, style?: TextInputStyle, label?: string) {\n\tcustomIdValidator.parse(customId);\n\ttextInputStyleValidator.parse(style);\n\tlabelValidator.parse(label);\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ActionRowBuilder, type ModalActionRowComponentBuilder } from '../../components/ActionRow.js';\nimport { customIdValidator } from '../../components/Assertions.js';\nimport { isValidationEnabled } from '../../util/validation.js';\n\nexport const titleValidator = s.string\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(45)\n\t.setValidationEnabled(isValidationEnabled);\nexport const componentsValidator = s\n\t.instance(ActionRowBuilder)\n\t.array.lengthGreaterThanOrEqual(1)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateRequiredParameters(\n\tcustomId?: string,\n\ttitle?: string,\n\tcomponents?: ActionRowBuilder[],\n) {\n\tcustomIdValidator.parse(customId);\n\ttitleValidator.parse(title);\n\tcomponentsValidator.parse(components);\n}\n","/* eslint-disable jsdoc/check-param-names */\n\nimport type { JSONEncodable } from '@discordjs/util';\nimport type {\n\tAPIActionRowComponent,\n\tAPIModalActionRowComponent,\n\tAPIModalInteractionResponseCallbackData,\n} from 'discord-api-types/v10';\nimport { ActionRowBuilder, type ModalActionRowComponentBuilder } from '../../components/ActionRow.js';\nimport { customIdValidator } from '../../components/Assertions.js';\nimport { createComponentBuilder } from '../../components/Components.js';\nimport { normalizeArray, type RestOrArray } from '../../util/normalizeArray.js';\nimport { titleValidator, validateRequiredParameters } from './Assertions.js';\n\n/**\n * A builder that creates API-compatible JSON data for modals.\n */\nexport class ModalBuilder implements JSONEncodable {\n\t/**\n\t * The API data associated with this modal.\n\t */\n\tpublic readonly data: Partial;\n\n\t/**\n\t * The components within this modal.\n\t */\n\tpublic readonly components: ActionRowBuilder[] = [];\n\n\t/**\n\t * Creates a new modal from API data.\n\t *\n\t * @param data - The API data to create this modal with\n\t */\n\tpublic constructor({ components, ...data }: Partial = {}) {\n\t\tthis.data = { ...data };\n\t\tthis.components = (components?.map((component) => createComponentBuilder(component)) ??\n\t\t\t[]) as ActionRowBuilder[];\n\t}\n\n\t/**\n\t * Sets the title of this modal.\n\t *\n\t * @param title - The title to use\n\t */\n\tpublic setTitle(title: string) {\n\t\tthis.data.title = titleValidator.parse(title);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the custom id of this modal.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customIdValidator.parse(customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds components to this modal.\n\t *\n\t * @param components - The components to add\n\t */\n\tpublic addComponents(\n\t\t...components: RestOrArray<\n\t\t\tActionRowBuilder | APIActionRowComponent\n\t\t>\n\t) {\n\t\tthis.components.push(\n\t\t\t...normalizeArray(components).map((component) =>\n\t\t\t\tcomponent instanceof ActionRowBuilder\n\t\t\t\t\t? component\n\t\t\t\t\t: new ActionRowBuilder(component),\n\t\t\t),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets components for this modal.\n\t *\n\t * @param components - The components to set\n\t */\n\tpublic setComponents(...components: RestOrArray>) {\n\t\tthis.components.splice(0, this.components.length, ...normalizeArray(components));\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIModalInteractionResponseCallbackData {\n\t\tvalidateRequiredParameters(this.data.custom_id, this.data.title, this.components);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t\tcomponents: this.components.map((component) => component.toJSON()),\n\t\t} as APIModalInteractionResponseCallbackData;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { Locale, type APIApplicationCommandOptionChoice, type LocalizationMap } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\nimport type { ToAPIApplicationCommandOptions } from './SlashCommandBuilder.js';\nimport type { SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder } from './SlashCommandSubcommands.js';\nimport type { ApplicationCommandOptionBase } from './mixins/ApplicationCommandOptionBase.js';\n\nconst namePredicate = s.string\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(32)\n\t.regex(/^[\\p{Ll}\\p{Lm}\\p{Lo}\\p{N}\\p{sc=Devanagari}\\p{sc=Thai}_-]+$/u)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateName(name: unknown): asserts name is string {\n\tnamePredicate.parse(name);\n}\n\nconst descriptionPredicate = s.string\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(100)\n\t.setValidationEnabled(isValidationEnabled);\nconst localePredicate = s.nativeEnum(Locale);\n\nexport function validateDescription(description: unknown): asserts description is string {\n\tdescriptionPredicate.parse(description);\n}\n\nconst maxArrayLengthPredicate = s.unknown.array.lengthLessThanOrEqual(25).setValidationEnabled(isValidationEnabled);\nexport function validateLocale(locale: unknown) {\n\treturn localePredicate.parse(locale);\n}\n\nexport function validateMaxOptionsLength(options: unknown): asserts options is ToAPIApplicationCommandOptions[] {\n\tmaxArrayLengthPredicate.parse(options);\n}\n\nexport function validateRequiredParameters(\n\tname: string,\n\tdescription: string,\n\toptions: ToAPIApplicationCommandOptions[],\n) {\n\t// Assert name matches all conditions\n\tvalidateName(name);\n\n\t// Assert description conditions\n\tvalidateDescription(description);\n\n\t// Assert options conditions\n\tvalidateMaxOptionsLength(options);\n}\n\nconst booleanPredicate = s.boolean;\n\nexport function validateDefaultPermission(value: unknown): asserts value is boolean {\n\tbooleanPredicate.parse(value);\n}\n\nexport function validateRequired(required: unknown): asserts required is boolean {\n\tbooleanPredicate.parse(required);\n}\n\nconst choicesLengthPredicate = s.number.lessThanOrEqual(25).setValidationEnabled(isValidationEnabled);\n\nexport function validateChoicesLength(amountAdding: number, choices?: APIApplicationCommandOptionChoice[]): void {\n\tchoicesLengthPredicate.parse((choices?.length ?? 0) + amountAdding);\n}\n\nexport function assertReturnOfBuilder<\n\tReturnType extends ApplicationCommandOptionBase | SlashCommandSubcommandBuilder | SlashCommandSubcommandGroupBuilder,\n>(input: unknown, ExpectedInstanceOf: new () => ReturnType): asserts input is ReturnType {\n\ts.instance(ExpectedInstanceOf).parse(input);\n}\n\nexport const localizationMapPredicate = s\n\t.object(Object.fromEntries(Object.values(Locale).map((locale) => [locale, s.string.nullish])))\n\t.strict.nullish.setValidationEnabled(isValidationEnabled);\n\nexport function validateLocalizationMap(value: unknown): asserts value is LocalizationMap {\n\tlocalizationMapPredicate.parse(value);\n}\n\nconst dmPermissionPredicate = s.boolean.nullish;\n\nexport function validateDMPermission(value: unknown): asserts value is boolean | null | undefined {\n\tdmPermissionPredicate.parse(value);\n}\n\nconst memberPermissionPredicate = s.union(\n\ts.bigint.transform((value) => value.toString()),\n\ts.number.safeInt.transform((value) => value.toString()),\n\ts.string.regex(/^\\d+$/),\n).nullish;\n\nexport function validateDefaultMemberPermissions(permissions: unknown) {\n\treturn memberPermissionPredicate.parse(permissions);\n}\n\nexport function validateNSFW(value: unknown): asserts value is boolean {\n\tbooleanPredicate.parse(value);\n}\n","import type { APIApplicationCommandOption, LocalizationMap, Permissions } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { SharedNameAndDescription } from './mixins/NameAndDescription.js';\nimport { SharedSlashCommand } from './mixins/SharedSlashCommand.js';\nimport { SharedSlashCommandOptions } from './mixins/SharedSlashCommandOptions.js';\nimport { SharedSlashCommandSubcommands } from './mixins/SharedSubcommands.js';\n\n/**\n * A builder that creates API-compatible JSON data for slash commands.\n */\n@mix(SharedSlashCommandOptions, SharedNameAndDescription, SharedSlashCommandSubcommands, SharedSlashCommand)\nexport class SlashCommandBuilder {\n\t/**\n\t * The name of this command.\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The name localizations of this command.\n\t */\n\tpublic readonly name_localizations?: LocalizationMap;\n\n\t/**\n\t * The description of this command.\n\t */\n\tpublic readonly description: string = undefined!;\n\n\t/**\n\t * The description localizations of this command.\n\t */\n\tpublic readonly description_localizations?: LocalizationMap;\n\n\t/**\n\t * The options of this command.\n\t */\n\tpublic readonly options: ToAPIApplicationCommandOptions[] = [];\n\n\t/**\n\t * Whether this command is enabled by default when the application is added to a guild.\n\t *\n\t * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead.\n\t */\n\tpublic readonly default_permission: boolean | undefined = undefined;\n\n\t/**\n\t * The set of permissions represented as a bit set for the command.\n\t */\n\tpublic readonly default_member_permissions: Permissions | null | undefined = undefined;\n\n\t/**\n\t * Indicates whether the command is available in direct messages with the application.\n\t *\n\t * @remarks\n\t * By default, commands are visible. This property is only for global commands.\n\t */\n\tpublic readonly dm_permission: boolean | undefined = undefined;\n\n\t/**\n\t * Whether this command is NSFW.\n\t */\n\tpublic readonly nsfw: boolean | undefined = undefined;\n}\n\nexport interface SlashCommandBuilder\n\textends SharedNameAndDescription,\n\t\tSharedSlashCommandOptions,\n\t\tSharedSlashCommandSubcommands,\n\t\tSharedSlashCommand {}\n\n/**\n * An interface specifically for slash command subcommands.\n */\nexport interface SlashCommandSubcommandsOnlyBuilder\n\textends SharedNameAndDescription,\n\t\tSharedSlashCommandSubcommands,\n\t\tSharedSlashCommand {}\n\n/**\n * An interface specifically for slash command options.\n */\nexport interface SlashCommandOptionsOnlyBuilder\n\textends SharedNameAndDescription,\n\t\tSharedSlashCommandOptions,\n\t\tSharedSlashCommand {}\n\n/**\n * An interface that ensures the `toJSON()` call will return something\n * that can be serialized into API-compatible data.\n */\nexport interface ToAPIApplicationCommandOptions {\n\ttoJSON(): APIApplicationCommandOption;\n}\n","import type { LocaleString, LocalizationMap } from 'discord-api-types/v10';\nimport { validateDescription, validateLocale, validateName } from '../Assertions.js';\n\n/**\n * This mixin holds name and description symbols for slash commands.\n */\nexport class SharedNameAndDescription {\n\t/**\n\t * The name of this command.\n\t */\n\tpublic readonly name!: string;\n\n\t/**\n\t * The name localizations of this command.\n\t */\n\tpublic readonly name_localizations?: LocalizationMap;\n\n\t/**\n\t * The description of this command.\n\t */\n\tpublic readonly description!: string;\n\n\t/**\n\t * The description localizations of this command.\n\t */\n\tpublic readonly description_localizations?: LocalizationMap;\n\n\t/**\n\t * Sets the name of this command.\n\t *\n\t * @param name - The name to use\n\t */\n\tpublic setName(name: string): this {\n\t\t// Assert the name matches the conditions\n\t\tvalidateName(name);\n\n\t\tReflect.set(this, 'name', name);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description of this command.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string) {\n\t\t// Assert the description matches the conditions\n\t\tvalidateDescription(description);\n\n\t\tReflect.set(this, 'description', description);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a name localization for this command.\n\t *\n\t * @param locale - The locale to set\n\t * @param localizedName - The localized name for the given `locale`\n\t */\n\tpublic setNameLocalization(locale: LocaleString, localizedName: string | null) {\n\t\tif (!this.name_localizations) {\n\t\t\tReflect.set(this, 'name_localizations', {});\n\t\t}\n\n\t\tconst parsedLocale = validateLocale(locale);\n\n\t\tif (localizedName === null) {\n\t\t\tthis.name_localizations![parsedLocale] = null;\n\t\t\treturn this;\n\t\t}\n\n\t\tvalidateName(localizedName);\n\n\t\tthis.name_localizations![parsedLocale] = localizedName;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the name localizations for this command.\n\t *\n\t * @param localizedNames - The object of localized names to set\n\t */\n\tpublic setNameLocalizations(localizedNames: LocalizationMap | null) {\n\t\tif (localizedNames === null) {\n\t\t\tReflect.set(this, 'name_localizations', null);\n\t\t\treturn this;\n\t\t}\n\n\t\tReflect.set(this, 'name_localizations', {});\n\n\t\tfor (const args of Object.entries(localizedNames)) {\n\t\t\tthis.setNameLocalization(...(args as [LocaleString, string | null]));\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a description localization for this command.\n\t *\n\t * @param locale - The locale to set\n\t * @param localizedDescription - The localized description for the given locale\n\t */\n\tpublic setDescriptionLocalization(locale: LocaleString, localizedDescription: string | null) {\n\t\tif (!this.description_localizations) {\n\t\t\tReflect.set(this, 'description_localizations', {});\n\t\t}\n\n\t\tconst parsedLocale = validateLocale(locale);\n\n\t\tif (localizedDescription === null) {\n\t\t\tthis.description_localizations![parsedLocale] = null;\n\t\t\treturn this;\n\t\t}\n\n\t\tvalidateDescription(localizedDescription);\n\n\t\tthis.description_localizations![parsedLocale] = localizedDescription;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description localizations for this command.\n\t *\n\t * @param localizedDescriptions - The object of localized descriptions to set\n\t */\n\tpublic setDescriptionLocalizations(localizedDescriptions: LocalizationMap | null) {\n\t\tif (localizedDescriptions === null) {\n\t\t\tReflect.set(this, 'description_localizations', null);\n\t\t\treturn this;\n\t\t}\n\n\t\tReflect.set(this, 'description_localizations', {});\n\t\tfor (const args of Object.entries(localizedDescriptions)) {\n\t\t\tthis.setDescriptionLocalization(...(args as [LocaleString, string | null]));\n\t\t}\n\n\t\treturn this;\n\t}\n}\n","import type {\n\tLocalizationMap,\n\tPermissions,\n\tRESTPostAPIChatInputApplicationCommandsJSONBody,\n} from 'discord-api-types/v10';\nimport {\n\tvalidateDMPermission,\n\tvalidateDefaultMemberPermissions,\n\tvalidateDefaultPermission,\n\tvalidateLocalizationMap,\n\tvalidateNSFW,\n\tvalidateRequiredParameters,\n} from '../Assertions.js';\nimport type { ToAPIApplicationCommandOptions } from '../SlashCommandBuilder.js';\n\n/**\n * This mixin holds symbols that can be shared in slashcommands independent of options or subcommands.\n */\nexport class SharedSlashCommand {\n\tpublic readonly name: string = undefined!;\n\n\tpublic readonly name_localizations?: LocalizationMap;\n\n\tpublic readonly description: string = undefined!;\n\n\tpublic readonly description_localizations?: LocalizationMap;\n\n\tpublic readonly options: ToAPIApplicationCommandOptions[] = [];\n\n\t/**\n\t * Sets whether the command is enabled by default when the application is added to a guild.\n\t *\n\t * @remarks\n\t * If set to `false`, you will have to later `PUT` the permissions for this command.\n\t * @param value - Whether or not to enable this command by default\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead.\n\t */\n\tpublic setDefaultPermission(value: boolean) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateDefaultPermission(value);\n\n\t\tReflect.set(this, 'default_permission', value);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the default permissions a member should have in order to run the command.\n\t *\n\t * @remarks\n\t * You can set this to `'0'` to disable the command by default.\n\t * @param permissions - The permissions bit field to set\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t */\n\tpublic setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined) {\n\t\t// Assert the value and parse it\n\t\tconst permissionValue = validateDefaultMemberPermissions(permissions);\n\n\t\tReflect.set(this, 'default_member_permissions', permissionValue);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets if the command is available in direct messages with the application.\n\t *\n\t * @remarks\n\t * By default, commands are visible. This method is only for global commands.\n\t * @param enabled - Whether the command should be enabled in direct messages\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t */\n\tpublic setDMPermission(enabled: boolean | null | undefined) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateDMPermission(enabled);\n\n\t\tReflect.set(this, 'dm_permission', enabled);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this command is NSFW.\n\t *\n\t * @param nsfw - Whether this command is NSFW\n\t */\n\tpublic setNSFW(nsfw = true) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateNSFW(nsfw);\n\t\tReflect.set(this, 'nsfw', nsfw);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): RESTPostAPIChatInputApplicationCommandsJSONBody {\n\t\tvalidateRequiredParameters(this.name, this.description, this.options);\n\n\t\tvalidateLocalizationMap(this.name_localizations);\n\t\tvalidateLocalizationMap(this.description_localizations);\n\n\t\treturn {\n\t\t\t...this,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\t}\n}\n","import { ApplicationCommandOptionType, type APIApplicationCommandAttachmentOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command attachment option.\n */\nexport class SlashCommandAttachmentOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic override readonly type = ApplicationCommandOptionType.Attachment as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandAttachmentOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import type { APIApplicationCommandBasicOption, ApplicationCommandOptionType } from 'discord-api-types/v10';\nimport { validateRequiredParameters, validateRequired, validateLocalizationMap } from '../Assertions.js';\nimport { SharedNameAndDescription } from './NameAndDescription.js';\n\n/**\n * The base application command option builder that contains common symbols for application command builders.\n */\nexport abstract class ApplicationCommandOptionBase extends SharedNameAndDescription {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic abstract readonly type: ApplicationCommandOptionType;\n\n\t/**\n\t * Whether this option is required.\n\t *\n\t * @defaultValue `false`\n\t */\n\tpublic readonly required: boolean = false;\n\n\t/**\n\t * Sets whether this option is required.\n\t *\n\t * @param required - Whether this option should be required\n\t */\n\tpublic setRequired(required: boolean) {\n\t\t// Assert that you actually passed a boolean\n\t\tvalidateRequired(required);\n\n\t\tReflect.set(this, 'required', required);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic abstract toJSON(): APIApplicationCommandBasicOption;\n\n\t/**\n\t * This method runs required validators on this builder.\n\t */\n\tprotected runRequiredValidations() {\n\t\tvalidateRequiredParameters(this.name, this.description, []);\n\n\t\t// Validate localizations\n\t\tvalidateLocalizationMap(this.name_localizations);\n\t\tvalidateLocalizationMap(this.description_localizations);\n\n\t\t// Assert that you actually passed a boolean\n\t\tvalidateRequired(this.required);\n\t}\n}\n","import { ApplicationCommandOptionType, type APIApplicationCommandBooleanOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command boolean option.\n */\nexport class SlashCommandBooleanOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.Boolean as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandBooleanOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { ApplicationCommandOptionType, type APIApplicationCommandChannelOption } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\nimport { ApplicationCommandOptionChannelTypesMixin } from '../mixins/ApplicationCommandOptionChannelTypesMixin.js';\n\n/**\n * A slash command channel option.\n */\n@mix(ApplicationCommandOptionChannelTypesMixin)\nexport class SlashCommandChannelOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic override readonly type = ApplicationCommandOptionType.Channel as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandChannelOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n\nexport interface SlashCommandChannelOption extends ApplicationCommandOptionChannelTypesMixin {}\n","import { s } from '@sapphire/shapeshift';\nimport { ChannelType } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../../util/normalizeArray';\n\n/**\n * The allowed channel types used for a channel option in a slash command builder.\n *\n * @privateRemarks This can't be dynamic because const enums are erased at runtime.\n * @internal\n */\nconst allowedChannelTypes = [\n\tChannelType.GuildText,\n\tChannelType.GuildVoice,\n\tChannelType.GuildCategory,\n\tChannelType.GuildAnnouncement,\n\tChannelType.AnnouncementThread,\n\tChannelType.PublicThread,\n\tChannelType.PrivateThread,\n\tChannelType.GuildStageVoice,\n\tChannelType.GuildForum,\n\tChannelType.GuildMedia,\n] as const;\n\n/**\n * The type of allowed channel types used for a channel option.\n */\nexport type ApplicationCommandOptionAllowedChannelTypes = (typeof allowedChannelTypes)[number];\n\nconst channelTypesPredicate = s.array(s.union(...allowedChannelTypes.map((type) => s.literal(type))));\n\n/**\n * This mixin holds channel type symbols used for options.\n */\nexport class ApplicationCommandOptionChannelTypesMixin {\n\t/**\n\t * The channel types of this option.\n\t */\n\tpublic readonly channel_types?: ApplicationCommandOptionAllowedChannelTypes[];\n\n\t/**\n\t * Adds channel types to this option.\n\t *\n\t * @param channelTypes - The channel types\n\t */\n\tpublic addChannelTypes(...channelTypes: RestOrArray) {\n\t\tif (this.channel_types === undefined) {\n\t\t\tReflect.set(this, 'channel_types', []);\n\t\t}\n\n\t\tthis.channel_types!.push(...channelTypesPredicate.parse(normalizeArray(channelTypes)));\n\n\t\treturn this;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandOptionType, type APIApplicationCommandIntegerOption } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandNumericOptionMinMaxValueMixin } from '../mixins/ApplicationCommandNumericOptionMinMaxValueMixin.js';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\nimport { ApplicationCommandOptionWithAutocompleteMixin } from '../mixins/ApplicationCommandOptionWithAutocompleteMixin.js';\nimport { ApplicationCommandOptionWithChoicesMixin } from '../mixins/ApplicationCommandOptionWithChoicesMixin.js';\n\nconst numberValidator = s.number.int;\n\n/**\n * A slash command integer option.\n */\n@mix(\n\tApplicationCommandNumericOptionMinMaxValueMixin,\n\tApplicationCommandOptionWithAutocompleteMixin,\n\tApplicationCommandOptionWithChoicesMixin,\n)\nexport class SlashCommandIntegerOption\n\textends ApplicationCommandOptionBase\n\timplements ApplicationCommandNumericOptionMinMaxValueMixin\n{\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.Integer as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue}\n\t */\n\tpublic setMaxValue(max: number): this {\n\t\tnumberValidator.parse(max);\n\n\t\tReflect.set(this, 'max_value', max);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue}\n\t */\n\tpublic setMinValue(min: number): this {\n\t\tnumberValidator.parse(min);\n\n\t\tReflect.set(this, 'min_value', min);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandIntegerOption {\n\t\tthis.runRequiredValidations();\n\n\t\tif (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\treturn { ...this } as APIApplicationCommandIntegerOption;\n\t}\n}\n\nexport interface SlashCommandIntegerOption\n\textends ApplicationCommandNumericOptionMinMaxValueMixin,\n\t\tApplicationCommandOptionWithChoicesMixin,\n\t\tApplicationCommandOptionWithAutocompleteMixin {}\n","/**\n * This mixin holds minimum and maximum symbols used for options.\n */\nexport abstract class ApplicationCommandNumericOptionMinMaxValueMixin {\n\t/**\n\t * The maximum value of this option.\n\t */\n\tpublic readonly max_value?: number;\n\n\t/**\n\t * The minimum value of this option.\n\t */\n\tpublic readonly min_value?: number;\n\n\t/**\n\t * Sets the maximum number value of this option.\n\t *\n\t * @param max - The maximum value this option can be\n\t */\n\tpublic abstract setMaxValue(max: number): this;\n\n\t/**\n\t * Sets the minimum number value of this option.\n\t *\n\t * @param min - The minimum value this option can be\n\t */\n\tpublic abstract setMinValue(min: number): this;\n}\n","import { s } from '@sapphire/shapeshift';\nimport type { ApplicationCommandOptionType } from 'discord-api-types/v10';\n\nconst booleanPredicate = s.boolean;\n\n/**\n * This mixin holds choices and autocomplete symbols used for options.\n */\nexport class ApplicationCommandOptionWithAutocompleteMixin {\n\t/**\n\t * Whether this option utilizes autocomplete.\n\t */\n\tpublic readonly autocomplete?: boolean;\n\n\t/**\n\t * The type of this option.\n\t *\n\t * @privateRemarks Since this is present and this is a mixin, this is needed.\n\t */\n\tpublic readonly type!: ApplicationCommandOptionType;\n\n\t/**\n\t * Whether this option uses autocomplete.\n\t *\n\t * @param autocomplete - Whether this option should use autocomplete\n\t */\n\tpublic setAutocomplete(autocomplete: boolean): this {\n\t\t// Assert that you actually passed a boolean\n\t\tbooleanPredicate.parse(autocomplete);\n\n\t\tif (autocomplete && 'choices' in this && Array.isArray(this.choices) && this.choices.length > 0) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\tReflect.set(this, 'autocomplete', autocomplete);\n\n\t\treturn this;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandOptionType, type APIApplicationCommandOptionChoice } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../../util/normalizeArray.js';\nimport { localizationMapPredicate, validateChoicesLength } from '../Assertions.js';\n\nconst stringPredicate = s.string.lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100);\nconst numberPredicate = s.number.greaterThan(Number.NEGATIVE_INFINITY).lessThan(Number.POSITIVE_INFINITY);\nconst choicesPredicate = s.object({\n\tname: stringPredicate,\n\tname_localizations: localizationMapPredicate,\n\tvalue: s.union(stringPredicate, numberPredicate),\n}).array;\n\n/**\n * This mixin holds choices and autocomplete symbols used for options.\n */\nexport class ApplicationCommandOptionWithChoicesMixin {\n\t/**\n\t * The choices of this option.\n\t */\n\tpublic readonly choices?: APIApplicationCommandOptionChoice[];\n\n\t/**\n\t * The type of this option.\n\t *\n\t * @privateRemarks Since this is present and this is a mixin, this is needed.\n\t */\n\tpublic readonly type!: ApplicationCommandOptionType;\n\n\t/**\n\t * Adds multiple choices to this option.\n\t *\n\t * @param choices - The choices to add\n\t */\n\tpublic addChoices(...choices: RestOrArray>): this {\n\t\tconst normalizedChoices = normalizeArray(choices);\n\t\tif (normalizedChoices.length > 0 && 'autocomplete' in this && this.autocomplete) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\tchoicesPredicate.parse(normalizedChoices);\n\n\t\tif (this.choices === undefined) {\n\t\t\tReflect.set(this, 'choices', []);\n\t\t}\n\n\t\tvalidateChoicesLength(normalizedChoices.length, this.choices);\n\n\t\tfor (const { name, name_localizations, value } of normalizedChoices) {\n\t\t\t// Validate the value\n\t\t\tif (this.type === ApplicationCommandOptionType.String) {\n\t\t\t\tstringPredicate.parse(value);\n\t\t\t} else {\n\t\t\t\tnumberPredicate.parse(value);\n\t\t\t}\n\n\t\t\tthis.choices!.push({ name, name_localizations, value });\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets multiple choices for this option.\n\t *\n\t * @param choices - The choices to set\n\t */\n\tpublic setChoices>(...choices: RestOrArray): this {\n\t\tconst normalizedChoices = normalizeArray(choices);\n\t\tif (normalizedChoices.length > 0 && 'autocomplete' in this && this.autocomplete) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\tchoicesPredicate.parse(normalizedChoices);\n\n\t\tReflect.set(this, 'choices', []);\n\t\tthis.addChoices(normalizedChoices);\n\n\t\treturn this;\n\t}\n}\n","import { ApplicationCommandOptionType, type APIApplicationCommandMentionableOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command mentionable option.\n */\nexport class SlashCommandMentionableOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.Mentionable as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandMentionableOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandOptionType, type APIApplicationCommandNumberOption } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandNumericOptionMinMaxValueMixin } from '../mixins/ApplicationCommandNumericOptionMinMaxValueMixin.js';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\nimport { ApplicationCommandOptionWithAutocompleteMixin } from '../mixins/ApplicationCommandOptionWithAutocompleteMixin.js';\nimport { ApplicationCommandOptionWithChoicesMixin } from '../mixins/ApplicationCommandOptionWithChoicesMixin.js';\n\nconst numberValidator = s.number;\n\n/**\n * A slash command number option.\n */\n@mix(\n\tApplicationCommandNumericOptionMinMaxValueMixin,\n\tApplicationCommandOptionWithAutocompleteMixin,\n\tApplicationCommandOptionWithChoicesMixin,\n)\nexport class SlashCommandNumberOption\n\textends ApplicationCommandOptionBase\n\timplements ApplicationCommandNumericOptionMinMaxValueMixin\n{\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.Number as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue}\n\t */\n\tpublic setMaxValue(max: number): this {\n\t\tnumberValidator.parse(max);\n\n\t\tReflect.set(this, 'max_value', max);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue}\n\t */\n\tpublic setMinValue(min: number): this {\n\t\tnumberValidator.parse(min);\n\n\t\tReflect.set(this, 'min_value', min);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandNumberOption {\n\t\tthis.runRequiredValidations();\n\n\t\tif (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\treturn { ...this } as APIApplicationCommandNumberOption;\n\t}\n}\n\nexport interface SlashCommandNumberOption\n\textends ApplicationCommandNumericOptionMinMaxValueMixin,\n\t\tApplicationCommandOptionWithChoicesMixin,\n\t\tApplicationCommandOptionWithAutocompleteMixin {}\n","import { ApplicationCommandOptionType, type APIApplicationCommandRoleOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command role option.\n */\nexport class SlashCommandRoleOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic override readonly type = ApplicationCommandOptionType.Role as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandRoleOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandOptionType, type APIApplicationCommandStringOption } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\nimport { ApplicationCommandOptionWithAutocompleteMixin } from '../mixins/ApplicationCommandOptionWithAutocompleteMixin.js';\nimport { ApplicationCommandOptionWithChoicesMixin } from '../mixins/ApplicationCommandOptionWithChoicesMixin.js';\n\nconst minLengthValidator = s.number.greaterThanOrEqual(0).lessThanOrEqual(6_000);\nconst maxLengthValidator = s.number.greaterThanOrEqual(1).lessThanOrEqual(6_000);\n\n/**\n * A slash command string option.\n */\n@mix(ApplicationCommandOptionWithAutocompleteMixin, ApplicationCommandOptionWithChoicesMixin)\nexport class SlashCommandStringOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.String as const;\n\n\t/**\n\t * The maximum length of this option.\n\t */\n\tpublic readonly max_length?: number;\n\n\t/**\n\t * The minimum length of this option.\n\t */\n\tpublic readonly min_length?: number;\n\n\t/**\n\t * Sets the maximum length of this string option.\n\t *\n\t * @param max - The maximum length this option can be\n\t */\n\tpublic setMaxLength(max: number): this {\n\t\tmaxLengthValidator.parse(max);\n\n\t\tReflect.set(this, 'max_length', max);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the minimum length of this string option.\n\t *\n\t * @param min - The minimum length this option can be\n\t */\n\tpublic setMinLength(min: number): this {\n\t\tminLengthValidator.parse(min);\n\n\t\tReflect.set(this, 'min_length', min);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandStringOption {\n\t\tthis.runRequiredValidations();\n\n\t\tif (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\treturn { ...this } as APIApplicationCommandStringOption;\n\t}\n}\n\nexport interface SlashCommandStringOption\n\textends ApplicationCommandOptionWithChoicesMixin,\n\t\tApplicationCommandOptionWithAutocompleteMixin {}\n","import { ApplicationCommandOptionType, type APIApplicationCommandUserOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command user option.\n */\nexport class SlashCommandUserOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.User as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandUserOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { assertReturnOfBuilder, validateMaxOptionsLength } from '../Assertions.js';\nimport type { ToAPIApplicationCommandOptions } from '../SlashCommandBuilder';\nimport { SlashCommandAttachmentOption } from '../options/attachment.js';\nimport { SlashCommandBooleanOption } from '../options/boolean.js';\nimport { SlashCommandChannelOption } from '../options/channel.js';\nimport { SlashCommandIntegerOption } from '../options/integer.js';\nimport { SlashCommandMentionableOption } from '../options/mentionable.js';\nimport { SlashCommandNumberOption } from '../options/number.js';\nimport { SlashCommandRoleOption } from '../options/role.js';\nimport { SlashCommandStringOption } from '../options/string.js';\nimport { SlashCommandUserOption } from '../options/user.js';\nimport type { ApplicationCommandOptionBase } from './ApplicationCommandOptionBase.js';\n\n/**\n * This mixin holds symbols that can be shared in slash command options.\n *\n * @typeParam TypeAfterAddingOptions - The type this class should return after adding an option.\n */\nexport class SharedSlashCommandOptions<\n\tTypeAfterAddingOptions extends SharedSlashCommandOptions,\n> {\n\tpublic readonly options!: ToAPIApplicationCommandOptions[];\n\n\t/**\n\t * Adds a boolean option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addBooleanOption(\n\t\tinput: SlashCommandBooleanOption | ((builder: SlashCommandBooleanOption) => SlashCommandBooleanOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandBooleanOption);\n\t}\n\n\t/**\n\t * Adds a user option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addUserOption(input: SlashCommandUserOption | ((builder: SlashCommandUserOption) => SlashCommandUserOption)) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandUserOption);\n\t}\n\n\t/**\n\t * Adds a channel option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addChannelOption(\n\t\tinput: SlashCommandChannelOption | ((builder: SlashCommandChannelOption) => SlashCommandChannelOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandChannelOption);\n\t}\n\n\t/**\n\t * Adds a role option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addRoleOption(input: SlashCommandRoleOption | ((builder: SlashCommandRoleOption) => SlashCommandRoleOption)) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandRoleOption);\n\t}\n\n\t/**\n\t * Adds an attachment option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addAttachmentOption(\n\t\tinput: SlashCommandAttachmentOption | ((builder: SlashCommandAttachmentOption) => SlashCommandAttachmentOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandAttachmentOption);\n\t}\n\n\t/**\n\t * Adds a mentionable option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addMentionableOption(\n\t\tinput: SlashCommandMentionableOption | ((builder: SlashCommandMentionableOption) => SlashCommandMentionableOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandMentionableOption);\n\t}\n\n\t/**\n\t * Adds a string option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addStringOption(\n\t\tinput: SlashCommandStringOption | ((builder: SlashCommandStringOption) => SlashCommandStringOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandStringOption);\n\t}\n\n\t/**\n\t * Adds an integer option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addIntegerOption(\n\t\tinput: SlashCommandIntegerOption | ((builder: SlashCommandIntegerOption) => SlashCommandIntegerOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandIntegerOption);\n\t}\n\n\t/**\n\t * Adds a number option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addNumberOption(\n\t\tinput: SlashCommandNumberOption | ((builder: SlashCommandNumberOption) => SlashCommandNumberOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandNumberOption);\n\t}\n\n\t/**\n\t * Where the actual adding magic happens. ✨\n\t *\n\t * @param input - The input. What else?\n\t * @param Instance - The instance of whatever is being added\n\t * @internal\n\t */\n\tprivate _sharedAddOptionMethod(\n\t\tinput: OptionBuilder | ((builder: OptionBuilder) => OptionBuilder),\n\t\tInstance: new () => OptionBuilder,\n\t): TypeAfterAddingOptions {\n\t\tconst { options } = this;\n\n\t\t// First, assert options conditions - we cannot have more than 25 options\n\t\tvalidateMaxOptionsLength(options);\n\n\t\t// Get the final result\n\t\tconst result = typeof input === 'function' ? input(new Instance()) : input;\n\n\t\tassertReturnOfBuilder(result, Instance);\n\n\t\t// Push it\n\t\toptions.push(result);\n\n\t\treturn this as unknown as TypeAfterAddingOptions;\n\t}\n}\n","import {\n\tApplicationCommandOptionType,\n\ttype APIApplicationCommandSubcommandGroupOption,\n\ttype APIApplicationCommandSubcommandOption,\n} from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { assertReturnOfBuilder, validateMaxOptionsLength, validateRequiredParameters } from './Assertions.js';\nimport type { ToAPIApplicationCommandOptions } from './SlashCommandBuilder.js';\nimport type { ApplicationCommandOptionBase } from './mixins/ApplicationCommandOptionBase.js';\nimport { SharedNameAndDescription } from './mixins/NameAndDescription.js';\nimport { SharedSlashCommandOptions } from './mixins/SharedSlashCommandOptions.js';\n\n/**\n * Represents a folder for subcommands.\n *\n * @see {@link https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups}\n */\n@mix(SharedNameAndDescription)\nexport class SlashCommandSubcommandGroupBuilder implements ToAPIApplicationCommandOptions {\n\t/**\n\t * The name of this subcommand group.\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The description of this subcommand group.\n\t */\n\tpublic readonly description: string = undefined!;\n\n\t/**\n\t * The subcommands within this subcommand group.\n\t */\n\tpublic readonly options: SlashCommandSubcommandBuilder[] = [];\n\n\t/**\n\t * Adds a new subcommand to this group.\n\t *\n\t * @param input - A function that returns a subcommand builder or an already built builder\n\t */\n\tpublic addSubcommand(\n\t\tinput:\n\t\t\t| SlashCommandSubcommandBuilder\n\t\t\t| ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder),\n\t) {\n\t\tconst { options } = this;\n\n\t\t// First, assert options conditions - we cannot have more than 25 options\n\t\tvalidateMaxOptionsLength(options);\n\n\t\t// Get the final result\n\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\tconst result = typeof input === 'function' ? input(new SlashCommandSubcommandBuilder()) : input;\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\tassertReturnOfBuilder(result, SlashCommandSubcommandBuilder);\n\n\t\t// Push it\n\t\toptions.push(result);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): APIApplicationCommandSubcommandGroupOption {\n\t\tvalidateRequiredParameters(this.name, this.description, this.options);\n\n\t\treturn {\n\t\t\ttype: ApplicationCommandOptionType.SubcommandGroup,\n\t\t\tname: this.name,\n\t\t\tname_localizations: this.name_localizations,\n\t\t\tdescription: this.description,\n\t\t\tdescription_localizations: this.description_localizations,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\t}\n}\n\nexport interface SlashCommandSubcommandGroupBuilder extends SharedNameAndDescription {}\n\n/**\n * A builder that creates API-compatible JSON data for slash command subcommands.\n *\n * @see {@link https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups}\n */\n@mix(SharedNameAndDescription, SharedSlashCommandOptions)\nexport class SlashCommandSubcommandBuilder implements ToAPIApplicationCommandOptions {\n\t/**\n\t * The name of this subcommand.\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The description of this subcommand.\n\t */\n\tpublic readonly description: string = undefined!;\n\n\t/**\n\t * The options within this subcommand.\n\t */\n\tpublic readonly options: ApplicationCommandOptionBase[] = [];\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): APIApplicationCommandSubcommandOption {\n\t\tvalidateRequiredParameters(this.name, this.description, this.options);\n\n\t\treturn {\n\t\t\ttype: ApplicationCommandOptionType.Subcommand,\n\t\t\tname: this.name,\n\t\t\tname_localizations: this.name_localizations,\n\t\t\tdescription: this.description,\n\t\t\tdescription_localizations: this.description_localizations,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\t}\n}\n\nexport interface SlashCommandSubcommandBuilder\n\textends SharedNameAndDescription,\n\t\tSharedSlashCommandOptions {}\n","import { assertReturnOfBuilder, validateMaxOptionsLength } from '../Assertions.js';\nimport type { ToAPIApplicationCommandOptions } from '../SlashCommandBuilder.js';\nimport { SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder } from '../SlashCommandSubcommands.js';\n\n/**\n * This mixin holds symbols that can be shared in slash subcommands.\n *\n * @typeParam TypeAfterAddingSubcommands - The type this class should return after adding a subcommand or subcommand group.\n */\nexport class SharedSlashCommandSubcommands<\n\tTypeAfterAddingSubcommands extends SharedSlashCommandSubcommands,\n> {\n\tpublic readonly options: ToAPIApplicationCommandOptions[] = [];\n\n\t/**\n\t * Adds a new subcommand group to this command.\n\t *\n\t * @param input - A function that returns a subcommand group builder or an already built builder\n\t */\n\tpublic addSubcommandGroup(\n\t\tinput:\n\t\t\t| SlashCommandSubcommandGroupBuilder\n\t\t\t| ((subcommandGroup: SlashCommandSubcommandGroupBuilder) => SlashCommandSubcommandGroupBuilder),\n\t): TypeAfterAddingSubcommands {\n\t\tconst { options } = this;\n\n\t\t// First, assert options conditions - we cannot have more than 25 options\n\t\tvalidateMaxOptionsLength(options);\n\n\t\t// Get the final result\n\t\tconst result = typeof input === 'function' ? input(new SlashCommandSubcommandGroupBuilder()) : input;\n\n\t\tassertReturnOfBuilder(result, SlashCommandSubcommandGroupBuilder);\n\n\t\t// Push it\n\t\toptions.push(result);\n\n\t\treturn this as unknown as TypeAfterAddingSubcommands;\n\t}\n\n\t/**\n\t * Adds a new subcommand to this command.\n\t *\n\t * @param input - A function that returns a subcommand builder or an already built builder\n\t */\n\tpublic addSubcommand(\n\t\tinput:\n\t\t\t| SlashCommandSubcommandBuilder\n\t\t\t| ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder),\n\t): TypeAfterAddingSubcommands {\n\t\tconst { options } = this;\n\n\t\t// First, assert options conditions - we cannot have more than 25 options\n\t\tvalidateMaxOptionsLength(options);\n\n\t\t// Get the final result\n\t\tconst result = typeof input === 'function' ? input(new SlashCommandSubcommandBuilder()) : input;\n\n\t\tassertReturnOfBuilder(result, SlashCommandSubcommandBuilder);\n\n\t\t// Push it\n\t\toptions.push(result);\n\n\t\treturn this as unknown as TypeAfterAddingSubcommands;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandType } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\nimport type { ContextMenuCommandType } from './ContextMenuCommandBuilder.js';\n\nconst namePredicate = s.string\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(32)\n\t// eslint-disable-next-line prefer-named-capture-group\n\t.regex(/^( *[\\p{P}\\p{L}\\p{N}\\p{sc=Devanagari}\\p{sc=Thai}]+ *)+$/u)\n\t.setValidationEnabled(isValidationEnabled);\nconst typePredicate = s\n\t.union(s.literal(ApplicationCommandType.User), s.literal(ApplicationCommandType.Message))\n\t.setValidationEnabled(isValidationEnabled);\nconst booleanPredicate = s.boolean;\n\nexport function validateDefaultPermission(value: unknown): asserts value is boolean {\n\tbooleanPredicate.parse(value);\n}\n\nexport function validateName(name: unknown): asserts name is string {\n\tnamePredicate.parse(name);\n}\n\nexport function validateType(type: unknown): asserts type is ContextMenuCommandType {\n\ttypePredicate.parse(type);\n}\n\nexport function validateRequiredParameters(name: string, type: number) {\n\t// Assert name matches all conditions\n\tvalidateName(name);\n\n\t// Assert type is valid\n\tvalidateType(type);\n}\n\nconst dmPermissionPredicate = s.boolean.nullish;\n\nexport function validateDMPermission(value: unknown): asserts value is boolean | null | undefined {\n\tdmPermissionPredicate.parse(value);\n}\n\nconst memberPermissionPredicate = s.union(\n\ts.bigint.transform((value) => value.toString()),\n\ts.number.safeInt.transform((value) => value.toString()),\n\ts.string.regex(/^\\d+$/),\n).nullish;\n\nexport function validateDefaultMemberPermissions(permissions: unknown) {\n\treturn memberPermissionPredicate.parse(permissions);\n}\n","import type {\n\tApplicationCommandType,\n\tLocaleString,\n\tLocalizationMap,\n\tPermissions,\n\tRESTPostAPIContextMenuApplicationCommandsJSONBody,\n} from 'discord-api-types/v10';\nimport { validateLocale, validateLocalizationMap } from '../slashCommands/Assertions.js';\nimport {\n\tvalidateRequiredParameters,\n\tvalidateName,\n\tvalidateType,\n\tvalidateDefaultPermission,\n\tvalidateDefaultMemberPermissions,\n\tvalidateDMPermission,\n} from './Assertions.js';\n\n/**\n * The type a context menu command can be.\n */\nexport type ContextMenuCommandType = ApplicationCommandType.Message | ApplicationCommandType.User;\n\n/**\n * A builder that creates API-compatible JSON data for context menu commands.\n */\nexport class ContextMenuCommandBuilder {\n\t/**\n\t * The name of this command.\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The name localizations of this command.\n\t */\n\tpublic readonly name_localizations?: LocalizationMap;\n\n\t/**\n\t * The type of this command.\n\t */\n\tpublic readonly type: ContextMenuCommandType = undefined!;\n\n\t/**\n\t * Whether this command is enabled by default when the application is added to a guild.\n\t *\n\t * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead.\n\t */\n\tpublic readonly default_permission: boolean | undefined = undefined;\n\n\t/**\n\t * The set of permissions represented as a bit set for the command.\n\t */\n\tpublic readonly default_member_permissions: Permissions | null | undefined = undefined;\n\n\t/**\n\t * Indicates whether the command is available in direct messages with the application.\n\t *\n\t * @remarks\n\t * By default, commands are visible. This property is only for global commands.\n\t */\n\tpublic readonly dm_permission: boolean | undefined = undefined;\n\n\t/**\n\t * Sets the name of this command.\n\t *\n\t * @param name - The name to use\n\t */\n\tpublic setName(name: string) {\n\t\t// Assert the name matches the conditions\n\t\tvalidateName(name);\n\n\t\tReflect.set(this, 'name', name);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the type of this command.\n\t *\n\t * @param type - The type to use\n\t */\n\tpublic setType(type: ContextMenuCommandType) {\n\t\t// Assert the type is valid\n\t\tvalidateType(type);\n\n\t\tReflect.set(this, 'type', type);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether the command is enabled by default when the application is added to a guild.\n\t *\n\t * @remarks\n\t * If set to `false`, you will have to later `PUT` the permissions for this command.\n\t * @param value - Whether to enable this command by default\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead.\n\t */\n\tpublic setDefaultPermission(value: boolean) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateDefaultPermission(value);\n\n\t\tReflect.set(this, 'default_permission', value);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the default permissions a member should have in order to run this command.\n\t *\n\t * @remarks\n\t * You can set this to `'0'` to disable the command by default.\n\t * @param permissions - The permissions bit field to set\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t */\n\tpublic setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined) {\n\t\t// Assert the value and parse it\n\t\tconst permissionValue = validateDefaultMemberPermissions(permissions);\n\n\t\tReflect.set(this, 'default_member_permissions', permissionValue);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets if the command is available in direct messages with the application.\n\t *\n\t * @remarks\n\t * By default, commands are visible. This method is only for global commands.\n\t * @param enabled - Whether the command should be enabled in direct messages\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t */\n\tpublic setDMPermission(enabled: boolean | null | undefined) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateDMPermission(enabled);\n\n\t\tReflect.set(this, 'dm_permission', enabled);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a name localization for this command.\n\t *\n\t * @param locale - The locale to set\n\t * @param localizedName - The localized name for the given `locale`\n\t */\n\tpublic setNameLocalization(locale: LocaleString, localizedName: string | null) {\n\t\tif (!this.name_localizations) {\n\t\t\tReflect.set(this, 'name_localizations', {});\n\t\t}\n\n\t\tconst parsedLocale = validateLocale(locale);\n\n\t\tif (localizedName === null) {\n\t\t\tthis.name_localizations![parsedLocale] = null;\n\t\t\treturn this;\n\t\t}\n\n\t\tvalidateName(localizedName);\n\n\t\tthis.name_localizations![parsedLocale] = localizedName;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the name localizations for this command.\n\t *\n\t * @param localizedNames - The object of localized names to set\n\t */\n\tpublic setNameLocalizations(localizedNames: LocalizationMap | null) {\n\t\tif (localizedNames === null) {\n\t\t\tReflect.set(this, 'name_localizations', null);\n\t\t\treturn this;\n\t\t}\n\n\t\tReflect.set(this, 'name_localizations', {});\n\n\t\tfor (const args of Object.entries(localizedNames))\n\t\t\tthis.setNameLocalization(...(args as [LocaleString, string | null]));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): RESTPostAPIContextMenuApplicationCommandsJSONBody {\n\t\tvalidateRequiredParameters(this.name, this.type);\n\n\t\tvalidateLocalizationMap(this.name_localizations);\n\n\t\treturn { ...this };\n\t}\n}\n","import type { APIEmbed } from 'discord-api-types/v10';\n\n/**\n * Calculates the length of the embed.\n *\n * @param data - The embed data to check\n */\nexport function embedLength(data: APIEmbed) {\n\treturn (\n\t\t(data.title?.length ?? 0) +\n\t\t(data.description?.length ?? 0) +\n\t\t(data.fields?.reduce((prev, curr) => prev + curr.name.length + curr.value.length, 0) ?? 0) +\n\t\t(data.footer?.text.length ?? 0) +\n\t\t(data.author?.name.length ?? 0)\n\t);\n}\n"],"mappings":"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","names":["Assertions_exports","s","s","ComponentType","ComponentType","ComponentType","ComponentType","ComponentType","SelectMenuDefaultValueType","ComponentType","SelectMenuDefaultValueType","ComponentType","SelectMenuDefaultValueType","ComponentType","SelectMenuDefaultValueType","ComponentType","ComponentType","ComponentType","SelectMenuDefaultValueType","ComponentType","SelectMenuDefaultValueType","ComponentType","Assertions_exports","placeholderValidator","s","s","placeholderValidator","ComponentType","placeholderValidator","ComponentType","ComponentType","Assertions_exports","validateRequiredParameters","s","s","validateRequiredParameters","validateRequiredParameters","Assertions_exports","validateRequiredParameters","s","s","descriptionPredicate","validateRequiredParameters","mix","validateRequiredParameters","validateRequiredParameters","ApplicationCommandOptionType","ApplicationCommandOptionType","ApplicationCommandOptionType","s","ChannelType","ChannelType","s","ApplicationCommandOptionType","s","ApplicationCommandOptionType","mix","s","booleanPredicate","s","s","ApplicationCommandOptionType","s","ApplicationCommandOptionType","s","ApplicationCommandOptionType","mix","ApplicationCommandOptionType","ApplicationCommandOptionType","s","ApplicationCommandOptionType","mix","numberValidator","s","ApplicationCommandOptionType","mix","ApplicationCommandOptionType","ApplicationCommandOptionType","s","ApplicationCommandOptionType","mix","minLengthValidator","s","maxLengthValidator","ApplicationCommandOptionType","mix","ApplicationCommandOptionType","ApplicationCommandOptionType","ApplicationCommandOptionType","mix","validateRequiredParameters","ApplicationCommandOptionType","mix","mix","Assertions_exports","validateDMPermission","validateDefaultMemberPermissions","validateDefaultPermission","validateName","validateRequiredParameters","s","namePredicate","s","booleanPredicate","validateDefaultPermission","validateName","validateRequiredParameters","dmPermissionPredicate","validateDMPermission","memberPermissionPredicate","validateDefaultMemberPermissions","validateName","validateDefaultPermission","validateDefaultMemberPermissions","validateDMPermission","validateRequiredParameters"]} \ No newline at end of file diff --git a/node_modules/@discordjs/builders/package.json b/node_modules/@discordjs/builders/package.json deleted file mode 100644 index 61f9cf8..0000000 --- a/node_modules/@discordjs/builders/package.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "name": "@discordjs/builders", - "version": "1.8.1", - "description": "A set of builders that you can use when creating your bot", - "exports": { - ".": { - "require": { - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - }, - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - } - } - }, - "main": "./dist/index.js", - "module": "./dist/index.mjs", - "types": "./dist/index.d.ts", - "directories": { - "lib": "src", - "test": "__tests__" - }, - "files": [ - "dist" - ], - "contributors": [ - "Vlad Frangu ", - "Crawl ", - "Amish Shah ", - "SpaceEEC ", - "Aura Román " - ], - "license": "Apache-2.0", - "keywords": [ - "discord", - "api", - "bot", - "client", - "node", - "discordapp", - "discordjs" - ], - "repository": { - "type": "git", - "url": "https://github.com/discordjs/discord.js.git", - "directory": "packages/builders" - }, - "bugs": { - "url": "https://github.com/discordjs/discord.js/issues" - }, - "homepage": "https://discord.js.org", - "funding": "https://github.com/discordjs/discord.js?sponsor", - "dependencies": { - "@sapphire/shapeshift": "^3.9.7", - "discord-api-types": "0.37.83", - "fast-deep-equal": "^3.1.3", - "ts-mixer": "^6.0.4", - "tslib": "^2.6.2", - "@discordjs/formatters": "^0.4.0", - "@discordjs/util": "^1.1.0" - }, - "devDependencies": { - "@favware/cliff-jumper": "^3.0.2", - "@types/node": "16.18.60", - "@vitest/coverage-v8": "^1.5.0", - "cross-env": "^7.0.3", - "esbuild-plugin-version-injector": "^1.2.1", - "eslint": "^8.57.0", - "eslint-config-neon": "^0.1.62", - "eslint-formatter-pretty": "^6.0.1", - "prettier": "^3.2.5", - "tsup": "^8.0.2", - "turbo": "^1.13.2", - "typescript": "^5.4.5", - "vitest": "^1.5.0", - "@discordjs/api-extractor": "^7.38.1", - "@discordjs/scripts": "^0.1.0" - }, - "engines": { - "node": ">=16.11.0" - }, - "publishConfig": { - "access": "public", - "provenance": true - }, - "scripts": { - "test": "vitest run", - "build": "tsc --noEmit && tsup", - "build:docs": "tsc -p tsconfig.docs.json", - "lint": "prettier --check . && cross-env TIMING=1 eslint --format=pretty src __tests__", - "format": "prettier --write . && cross-env TIMING=1 eslint --fix --format=pretty src __tests__", - "fmt": "pnpm run format", - "docs": "pnpm run build:docs && api-extractor run --local --minify && generate-split-documentation", - "changelog": "git cliff --prepend ./CHANGELOG.md -u -c ./cliff.toml -r ../../ --include-path 'packages/builders/*'", - "release": "cliff-jumper" - } -} \ No newline at end of file diff --git a/node_modules/@discordjs/collection/CHANGELOG.md b/node_modules/@discordjs/collection/CHANGELOG.md deleted file mode 100644 index 2c43057..0000000 --- a/node_modules/@discordjs/collection/CHANGELOG.md +++ /dev/null @@ -1,190 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -# [@discordjs/collection@1.5.3](https://github.com/discordjs/discord.js/compare/@discordjs/collection@1.5.2...@discordjs/collection@1.5.3) - (2023-08-17) - -## Documentation - -- Update Node.js requirement to 16.11.0 (#9764) ([188877c](https://github.com/discordjs/discord.js/commit/188877c50af70f0d5cffb246620fa277435c6ce6)) - -# [@discordjs/collection@1.5.2](https://github.com/discordjs/discord.js/compare/@discordjs/collection@1.5.1...@discordjs/collection@1.5.2) - (2023-07-31) - -## Refactor - -- **collection:** Reduce `reduce`'s code (#9581) ([b85a3f2](https://github.com/discordjs/discord.js/commit/b85a3f2ddee8fc5974749b95fc07389a03093df2)) - -# [@discordjs/collection@1.5.1](https://github.com/discordjs/discord.js/compare/@discordjs/collection@1.5.0...@discordjs/collection@1.5.1) - (2023-05-01) - -## Bug Fixes - -- Fix external links (#9313) ([a7425c2](https://github.com/discordjs/discord.js/commit/a7425c29c4f23f1b31f4c6a463107ca9eb7fd7e2)) - -## Documentation - -- Generate static imports for types with api-extractor ([98a76db](https://github.com/discordjs/discord.js/commit/98a76db482879f79d6bb2fb2e5fc65ac2c34e2d9)) - -# [@discordjs/collection@1.5.2](https://github.com/discordjs/discord.js/compare/@discordjs/collection@1.5.1...@discordjs/collection@1.5.2) - (2023-07-31) - -## Refactor - -- **collection:** Reduce `reduce`'s code (#9581) ([b85a3f2](https://github.com/discordjs/discord.js/commit/b85a3f2ddee8fc5974749b95fc07389a03093df2)) - -# [@discordjs/collection@1.5.1](https://github.com/discordjs/discord.js/compare/@discordjs/collection@1.5.0...@discordjs/collection@1.5.1) - (2023-05-01) - -## Bug Fixes - -- Fix external links (#9313) ([a7425c2](https://github.com/discordjs/discord.js/commit/a7425c29c4f23f1b31f4c6a463107ca9eb7fd7e2)) - -## Documentation - -- Generate static imports for types with api-extractor ([98a76db](https://github.com/discordjs/discord.js/commit/98a76db482879f79d6bb2fb2e5fc65ac2c34e2d9)) - -# [@discordjs/collection@1.5.1](https://github.com/discordjs/discord.js/compare/@discordjs/collection@1.5.0...@discordjs/collection@1.5.1) - (2023-05-01) - -## Bug Fixes - -- Fix external links (#9313) ([a7425c2](https://github.com/discordjs/discord.js/commit/a7425c29c4f23f1b31f4c6a463107ca9eb7fd7e2)) - -## Documentation - -- Generate static imports for types with api-extractor ([98a76db](https://github.com/discordjs/discord.js/commit/98a76db482879f79d6bb2fb2e5fc65ac2c34e2d9)) - -# [@discordjs/collection@1.5.0](https://github.com/discordjs/discord.js/compare/@discordjs/collection@1.4.0...@discordjs/collection@1.5.0) - (2023-04-01) - -## Bug Fixes - -- **scripts:** Accessing tsComment ([d8d5f31](https://github.com/discordjs/discord.js/commit/d8d5f31d3927fd1de62f1fa3a1a6e454243ad87b)) - -## Features - -- **website:** Render syntax and mdx on the server (#9086) ([ee5169e](https://github.com/discordjs/discord.js/commit/ee5169e0aadd7bbfcd752aae614ec0f69602b68b)) - -## Refactor - -- **collection:** Fix/silence linter warnings (#9266) ([d6f4e60](https://github.com/discordjs/discord.js/commit/d6f4e60efd1a1796fc84dbbfbac4f9790e480a1c)) - -# [@discordjs/collection@1.4.0](https://github.com/discordjs/discord.js/compare/@discordjs/collection@1.3.0...@discordjs/collection@1.4.0) - (2023-03-12) - -## Documentation - -- Fix version export (#9049) ([8b70f49](https://github.com/discordjs/discord.js/commit/8b70f497a1207e30edebdecd12b926c981c13d28)) - -## Features - -- **website:** Add support for source file links (#9048) ([f6506e9](https://github.com/discordjs/discord.js/commit/f6506e99c496683ee0ab67db0726b105b929af38)) - -## Refactor - -- Compare with `undefined` directly (#9191) ([869153c](https://github.com/discordjs/discord.js/commit/869153c3fdf155783e7c0ecebd3627b087c3a026)) - -# [@discordjs/collection@1.3.0](https://github.com/discordjs/discord.js/compare/@discordjs/collection@1.2.0...@discordjs/collection@1.3.0) - (2022-11-28) - -## Bug Fixes - -- Pin @types/node version ([9d8179c](https://github.com/discordjs/discord.js/commit/9d8179c6a78e1c7f9976f852804055964d5385d4)) - -## Features - -- Add `Collection#subtract()` (#8393) ([291f36c](https://github.com/discordjs/discord.js/commit/291f36cd736b5dea058145a1335bf7c78ec1d81d)) - -# [@discordjs/collection@1.2.0](https://github.com/discordjs/discord.js/compare/@discordjs/collection@1.1.0...@discordjs/collection@1.2.0) - (2022-10-08) - -## Bug Fixes - -- Footer / sidebar / deprecation alert ([ba3e0ed](https://github.com/discordjs/discord.js/commit/ba3e0ed348258fe8e51eefb4aa7379a1230616a9)) - -## Documentation - -- Change name (#8604) ([dd5a089](https://github.com/discordjs/discord.js/commit/dd5a08944c258a847fc4377f1d5e953264ab47d0)) -- Remove xml tag from collection#find (#8550) ([4032457](https://github.com/discordjs/discord.js/commit/40324574ebea9894cadcc967e0db0e4e21d62768)) - -## Features - -- Web-components (#8715) ([0ac3e76](https://github.com/discordjs/discord.js/commit/0ac3e766bd9dbdeb106483fa4bb085d74de346a2)) - -## Refactor - -- Website components (#8600) ([c334157](https://github.com/discordjs/discord.js/commit/c3341570d983aea9ecc419979d5a01de658c9d67)) -- Use `eslint-config-neon` for packages. (#8579) ([edadb9f](https://github.com/discordjs/discord.js/commit/edadb9fe5dfd9ff51a3cfc9b25cb242d3f9f5241)) - -## Typings - -- **Collection:** Make fn return type unknown (#8676) ([822b7f2](https://github.com/discordjs/discord.js/commit/822b7f234af053c8f917b0a998b82abfccd33801)) - -# [@discordjs/collection@1.1.0](https://github.com/discordjs/discord.js/compare/@discordjs/collection@1.0.1...@discordjs/collection@1.1.0) - (2022-08-22) - -## Bug Fixes - -- Use proper format for `@link` text (#8384) ([2655639](https://github.com/discordjs/discord.js/commit/26556390a3800e954974a00c1328ff47d3e67e9a)) - -## Documentation - -- Fence examples in codeblocks ([193b252](https://github.com/discordjs/discord.js/commit/193b252672440a860318d3c2968aedd9cb88e0ce)) -- Use link tags (#8382) ([5494791](https://github.com/discordjs/discord.js/commit/549479131318c659f86f0eb18578d597e22522d3)) - -## Features - -- **website:** Show `constructor` information (#8540) ([e42fd16](https://github.com/discordjs/discord.js/commit/e42fd1636973b10dd7ed6fb4280ee1a4a8f82007)) -- **website:** Show descriptions for `@typeParam` blocks (#8523) ([e475b63](https://github.com/discordjs/discord.js/commit/e475b63f257f6261d73cb89fee9ecbcdd84e2a6b)) - -## Refactor - -- **website:** Adjust typography (#8503) ([0f83402](https://github.com/discordjs/discord.js/commit/0f834029850d2448981596cf082ff59917018d66)) -- Docs design (#8487) ([4ab1d09](https://github.com/discordjs/discord.js/commit/4ab1d09997a18879a9eb9bda39df6f15aa22557e)) - -# [@discordjs/collection@0.8.0](https://github.com/discordjs/discord.js/compare/@discordjs/collection@0.7.0...@discordjs/collection@0.8.0) - (2022-07-17) - -## Bug Fixes - -- **Collection:** Make error messages consistent (#8224) ([5bd6b28](https://github.com/discordjs/discord.js/commit/5bd6b28b3ebfced1cb9d23e83bd7c0def7a12404)) -- Check for function type (#8064) ([3bb9c0e](https://github.com/discordjs/discord.js/commit/3bb9c0e5c37311044ff41761b572ac4f91cda57c)) - -## Documentation - -- Add codecov coverage badge to readmes (#8226) ([f6db285](https://github.com/discordjs/discord.js/commit/f6db285c073898a749fe4591cbd4463d1896daf5)) - -## Features - -- Codecov (#8219) ([f10f4cd](https://github.com/discordjs/discord.js/commit/f10f4cdcd88ca6be7ec735ed3a415ba13da83db0)) -- **docgen:** Update typedoc ([b3346f4](https://github.com/discordjs/discord.js/commit/b3346f4b9b3d4f96443506643d4631dc1c6d7b21)) -- Website (#8043) ([127931d](https://github.com/discordjs/discord.js/commit/127931d1df7a2a5c27923c2f2151dbf3824e50cc)) -- **docgen:** Typescript support ([3279b40](https://github.com/discordjs/discord.js/commit/3279b40912e6aa61507bedb7db15a2b8668de44b)) -- Docgen package (#8029) ([8b979c0](https://github.com/discordjs/discord.js/commit/8b979c0245c42fd824d8e98745ee869f5360fc86)) -- Use vitest instead of jest for more speed ([8d8e6c0](https://github.com/discordjs/discord.js/commit/8d8e6c03decd7352a2aa180f6e5bc1a13602539b)) -- Add scripts package for locally used scripts ([f2ae1f9](https://github.com/discordjs/discord.js/commit/f2ae1f9348bfd893332a9060f71a8a5f272a1b8b)) - -## Refactor - -- **collection:** Remove `default` property (#8055) ([c8f1690](https://github.com/discordjs/discord.js/commit/c8f1690896f55f06e05a83704262783cfc2bb91d)) -- **collection:** Remove default export (#8053) ([16810f3](https://github.com/discordjs/discord.js/commit/16810f3e410bf35ed7e6e7412d517ea74c792c5d)) -- Move all the config files to root (#8033) ([769ea0b](https://github.com/discordjs/discord.js/commit/769ea0bfe78c4f1d413c6b397c604ffe91e39c6a)) - -## Testing - -- **collection:** Improve coverage (#8222) ([a51f721](https://github.com/discordjs/discord.js/commit/a51f7215eca67a0f46fba8b2d706f7ec6f6dc228)) - -# [@discordjs/collection@0.7.0](https://github.com/discordjs/discord.js/compare/@discordjs/collection@0.6.0...@discordjs/collection@0.7.0) - (2022-06-04) - -## Styling - -- Cleanup tests and tsup configs ([6b8ef20](https://github.com/discordjs/discord.js/commit/6b8ef20cb3af5b5cfd176dd0aa0a1a1e98551629)) - -# [@discordjs/collection@0.6.0](https://github.com/discordjs/discord.js/compare/@discordjs/collection@0.5.0...@discordjs/collection@0.6.0) - (2022-04-17) - -## Features - -- Add support for module: NodeNext in TS and ESM (#7598) ([8f1986a](https://github.com/discordjs/discord.js/commit/8f1986a6aa98365e09b00e84ad5f9f354ab61f3d)) -- **builders:** Add attachment command option type (#7203) ([ae0f35f](https://github.com/discordjs/discord.js/commit/ae0f35f51d68dfa5a7dc43d161ef9365171debdb)) -- **Collection:** Add merging functions (#7299) ([e4bd07b](https://github.com/discordjs/discord.js/commit/e4bd07b2394f227ea06b72eb6999de9ab3127b25)) - -# [@discordjs/collection@0.5.0](https://github.com/discordjs/discord.js/compare/@discordjs/collection@0.4.0...@discordjs/collection@0.5.0) - (2022-01-24) - -## Refactor - -- Make `intersect` perform a true intersection (#7211) ([d8efba2](https://github.com/discordjs/discord.js/commit/d8efba24e09aa2a8dbf028fc57a561a56e7833fd)) - -## Typings - -- Add `ReadonlyCollection` (#7245) ([db25f52](https://github.com/discordjs/discord.js/commit/db25f529b26d7c819c1c42ad3e26c2263ea2da0e)) -- **Collection:** Union types on `intersect` and `difference` (#7196) ([1f9b922](https://github.com/discordjs/discord.js/commit/1f9b9225f2066e9cc66c3355417139fd25cc403c)) diff --git a/node_modules/@discordjs/collection/LICENSE b/node_modules/@discordjs/collection/LICENSE deleted file mode 100644 index d21f37a..0000000 --- a/node_modules/@discordjs/collection/LICENSE +++ /dev/null @@ -1,191 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - Copyright 2021 Noel Buechler - Copyright 2015 Amish Shah - - 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/collection/README.md b/node_modules/@discordjs/collection/README.md deleted file mode 100644 index 4ddde14..0000000 --- a/node_modules/@discordjs/collection/README.md +++ /dev/null @@ -1,67 +0,0 @@ -
-
-

- discord.js -

-
-

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

-

- Vercel - Cloudflare Workers -

-
- -## About - -`@discordjs/collection` is a powerful utility data structure used in discord.js. - -## Installation - -**Node.js 16.11.0 or newer is required.** - -```sh -npm install @discordjs/collection -yarn add @discordjs/collection -pnpm add @discordjs/collection -``` - -## Links - -- [Website][website] ([source][website-source]) -- [Documentation][documentation] -- [Guide][guide] ([source][guide-source]) - Also see the v13 to v14 [Update Guide][guide-update], which includes updated and removed items from the library. -- [discord.js Discord server][discord] -- [Discord API Discord server][discord-api] -- [GitHub][source] -- [npm][npm] -- [Related libraries][related-libs] - -## Contributing - -Before creating an issue, please ensure that it hasn't already been reported/suggested, and double-check the -[documentation][documentation]. -See [the contribution guide][contributing] if you'd like to submit a PR. - -## Help - -If you don't understand something in the documentation, you are experiencing problems, or you just need a gentle nudge in the right direction, please don't hesitate to join our official [discord.js Server][discord]. - -[website]: https://discord.js.org -[website-source]: https://github.com/discordjs/discord.js/tree/main/apps/website -[documentation]: https://discord.js.org/docs/packages/collection/stable -[guide]: https://discordjs.guide/ -[guide-source]: https://github.com/discordjs/guide -[guide-update]: https://discordjs.guide/additional-info/changes-in-v14.html -[discord]: https://discord.gg/djs -[discord-api]: https://discord.gg/discord-api -[source]: https://github.com/discordjs/discord.js/tree/main/packages/collection -[npm]: https://www.npmjs.com/package/@discordjs/collection -[related-libs]: https://discord.com/developers/docs/topics/community-resources#libraries -[contributing]: https://github.com/discordjs/discord.js/blob/main/.github/CONTRIBUTING.md diff --git a/node_modules/@discordjs/collection/dist/index.d.mts b/node_modules/@discordjs/collection/dist/index.d.mts deleted file mode 100644 index 5990c61..0000000 --- a/node_modules/@discordjs/collection/dist/index.d.mts +++ /dev/null @@ -1,457 +0,0 @@ -/** - * @internal - */ -interface CollectionConstructor { - new (): Collection; - new (entries?: readonly (readonly [K, V])[] | null): Collection; - new (iterable: Iterable): Collection; - readonly prototype: Collection; - readonly [Symbol.species]: CollectionConstructor; -} -/** - * Represents an immutable version of a collection - */ -type ReadonlyCollection = Omit, 'delete' | 'ensure' | 'forEach' | 'get' | 'reverse' | 'set' | 'sort' | 'sweep'> & ReadonlyMap; -/** - * Separate interface for the constructor so that emitted js does not have a constructor that overwrites itself - * - * @internal - */ -interface Collection extends Map { - constructor: CollectionConstructor; -} -/** - * A Map with additional utility methods. This is used throughout discord.js rather than Arrays for anything that has - * an ID, for significantly improved performance and ease-of-use. - * - * @typeParam K - The key type this collection holds - * @typeParam V - The value type this collection holds - */ -declare class Collection extends Map { - /** - * Obtains the value of the given key if it exists, otherwise sets and returns the value provided by the default value generator. - * - * @param key - The key to get if it exists, or set otherwise - * @param defaultValueGenerator - A function that generates the default value - * @example - * ```ts - * collection.ensure(guildId, () => defaultGuildConfig); - * ``` - */ - ensure(key: K, defaultValueGenerator: (key: K, collection: this) => V): V; - /** - * Checks if all of the elements exist in the collection. - * - * @param keys - The keys of the elements to check for - * @returns `true` if all of the elements exist, `false` if at least one does not exist. - */ - hasAll(...keys: K[]): boolean; - /** - * Checks if any of the elements exist in the collection. - * - * @param keys - The keys of the elements to check for - * @returns `true` if any of the elements exist, `false` if none exist. - */ - hasAny(...keys: K[]): boolean; - /** - * Obtains the first value(s) in this collection. - * - * @param amount - Amount of values to obtain from the beginning - * @returns A single value if no amount is provided or an array of values, starting from the end if amount is negative - */ - first(): V | undefined; - first(amount: number): V[]; - /** - * Obtains the first key(s) in this collection. - * - * @param amount - Amount of keys to obtain from the beginning - * @returns A single key if no amount is provided or an array of keys, starting from the end if - * amount is negative - */ - firstKey(): K | undefined; - firstKey(amount: number): K[]; - /** - * Obtains the last value(s) in this collection. - * - * @param amount - Amount of values to obtain from the end - * @returns A single value if no amount is provided or an array of values, starting from the start if - * amount is negative - */ - last(): V | undefined; - last(amount: number): V[]; - /** - * Obtains the last key(s) in this collection. - * - * @param amount - Amount of keys to obtain from the end - * @returns A single key if no amount is provided or an array of keys, starting from the start if - * amount is negative - */ - lastKey(): K | undefined; - lastKey(amount: number): K[]; - /** - * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at()}. - * Returns the item at a given index, allowing for positive and negative integers. - * Negative integers count back from the last item in the collection. - * - * @param index - The index of the element to obtain - */ - at(index: number): V | undefined; - /** - * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at()}. - * Returns the key at a given index, allowing for positive and negative integers. - * Negative integers count back from the last item in the collection. - * - * @param index - The index of the key to obtain - */ - keyAt(index: number): K | undefined; - /** - * Obtains unique random value(s) from this collection. - * - * @param amount - Amount of values to obtain randomly - * @returns A single value if no amount is provided or an array of values - */ - random(): V | undefined; - random(amount: number): V[]; - /** - * Obtains unique random key(s) from this collection. - * - * @param amount - Amount of keys to obtain randomly - * @returns A single key if no amount is provided or an array - */ - randomKey(): K | undefined; - randomKey(amount: number): K[]; - /** - * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse | Array.reverse()} - * but returns a Collection instead of an Array. - */ - reverse(): this; - /** - * Searches for a single item where the given function returns a truthy value. This behaves like - * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find | Array.find()}. - * All collections used in Discord.js are mapped using their `id` property, and if you want to find by id you - * should use the `get` method. See - * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/get | MDN} for details. - * - * @param fn - The function to test with (should return boolean) - * @param thisArg - Value to use as `this` when executing function - * @example - * ```ts - * collection.find(user => user.username === 'Bob'); - * ``` - */ - find(fn: (value: V, key: K, collection: this) => value is V2): V2 | undefined; - find(fn: (value: V, key: K, collection: this) => unknown): V | undefined; - find(fn: (this: This, value: V, key: K, collection: this) => value is V2, thisArg: This): V2 | undefined; - find(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): V | undefined; - /** - * Searches for the key of a single item where the given function returns a truthy value. This behaves like - * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex | Array.findIndex()}, - * but returns the key rather than the positional index. - * - * @param fn - The function to test with (should return boolean) - * @param thisArg - Value to use as `this` when executing function - * @example - * ```ts - * collection.findKey(user => user.username === 'Bob'); - * ``` - */ - findKey(fn: (value: V, key: K, collection: this) => key is K2): K2 | undefined; - findKey(fn: (value: V, key: K, collection: this) => unknown): K | undefined; - findKey(fn: (this: This, value: V, key: K, collection: this) => key is K2, thisArg: This): K2 | undefined; - findKey(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): K | undefined; - /** - * Removes items that satisfy the provided filter function. - * - * @param fn - Function used to test (should return a boolean) - * @param thisArg - Value to use as `this` when executing function - * @returns The number of removed entries - */ - sweep(fn: (value: V, key: K, collection: this) => unknown): number; - sweep(fn: (this: T, value: V, key: K, collection: this) => unknown, thisArg: T): number; - /** - * Identical to - * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter | Array.filter()}, - * but returns a Collection instead of an Array. - * - * @param fn - The function to test with (should return boolean) - * @param thisArg - Value to use as `this` when executing function - * @example - * ```ts - * collection.filter(user => user.username === 'Bob'); - * ``` - */ - filter(fn: (value: V, key: K, collection: this) => key is K2): Collection; - filter(fn: (value: V, key: K, collection: this) => value is V2): Collection; - filter(fn: (value: V, key: K, collection: this) => unknown): Collection; - filter(fn: (this: This, value: V, key: K, collection: this) => key is K2, thisArg: This): Collection; - filter(fn: (this: This, value: V, key: K, collection: this) => value is V2, thisArg: This): Collection; - filter(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): Collection; - /** - * Partitions the collection into two collections where the first collection - * contains the items that passed and the second contains the items that failed. - * - * @param fn - Function used to test (should return a boolean) - * @param thisArg - Value to use as `this` when executing function - * @example - * ```ts - * const [big, small] = collection.partition(guild => guild.memberCount > 250); - * ``` - */ - partition(fn: (value: V, key: K, collection: this) => key is K2): [Collection, Collection, V>]; - partition(fn: (value: V, key: K, collection: this) => value is V2): [Collection, Collection>]; - partition(fn: (value: V, key: K, collection: this) => unknown): [Collection, Collection]; - partition(fn: (this: This, value: V, key: K, collection: this) => key is K2, thisArg: This): [Collection, Collection, V>]; - partition(fn: (this: This, value: V, key: K, collection: this) => value is V2, thisArg: This): [Collection, Collection>]; - partition(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): [Collection, Collection]; - /** - * Maps each item into a Collection, then joins the results into a single Collection. Identical in behavior to - * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap | Array.flatMap()}. - * - * @param fn - Function that produces a new Collection - * @param thisArg - Value to use as `this` when executing function - * @example - * ```ts - * collection.flatMap(guild => guild.members.cache); - * ``` - */ - flatMap(fn: (value: V, key: K, collection: this) => Collection): Collection; - flatMap(fn: (this: This, value: V, key: K, collection: this) => Collection, thisArg: This): Collection; - /** - * Maps each item to another value into an array. Identical in behavior to - * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map | Array.map()}. - * - * @param fn - Function that produces an element of the new array, taking three arguments - * @param thisArg - Value to use as `this` when executing function - * @example - * ```ts - * collection.map(user => user.tag); - * ``` - */ - map(fn: (value: V, key: K, collection: this) => T): T[]; - map(fn: (this: This, value: V, key: K, collection: this) => T, thisArg: This): T[]; - /** - * Maps each item to another value into a collection. Identical in behavior to - * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map | Array.map()}. - * - * @param fn - Function that produces an element of the new collection, taking three arguments - * @param thisArg - Value to use as `this` when executing function - * @example - * ```ts - * collection.mapValues(user => user.tag); - * ``` - */ - mapValues(fn: (value: V, key: K, collection: this) => T): Collection; - mapValues(fn: (this: This, value: V, key: K, collection: this) => T, thisArg: This): Collection; - /** - * Checks if there exists an item that passes a test. Identical in behavior to - * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some | Array.some()}. - * - * @param fn - Function used to test (should return a boolean) - * @param thisArg - Value to use as `this` when executing function - * @example - * ```ts - * collection.some(user => user.discriminator === '0000'); - * ``` - */ - some(fn: (value: V, key: K, collection: this) => unknown): boolean; - some(fn: (this: T, value: V, key: K, collection: this) => unknown, thisArg: T): boolean; - /** - * Checks if all items passes a test. Identical in behavior to - * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every | Array.every()}. - * - * @param fn - Function used to test (should return a boolean) - * @param thisArg - Value to use as `this` when executing function - * @example - * ```ts - * collection.every(user => !user.bot); - * ``` - */ - every(fn: (value: V, key: K, collection: this) => key is K2): this is Collection; - every(fn: (value: V, key: K, collection: this) => value is V2): this is Collection; - every(fn: (value: V, key: K, collection: this) => unknown): boolean; - every(fn: (this: This, value: V, key: K, collection: this) => key is K2, thisArg: This): this is Collection; - every(fn: (this: This, value: V, key: K, collection: this) => value is V2, thisArg: This): this is Collection; - every(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): boolean; - /** - * Applies a function to produce a single value. Identical in behavior to - * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce | Array.reduce()}. - * - * @param fn - Function used to reduce, taking four arguments; `accumulator`, `currentValue`, `currentKey`, - * and `collection` - * @param initialValue - Starting value for the accumulator - * @example - * ```ts - * collection.reduce((acc, guild) => acc + guild.memberCount, 0); - * ``` - */ - reduce(fn: (accumulator: T, value: V, key: K, collection: this) => T, initialValue?: T): T; - /** - * Identical to - * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/forEach | Map.forEach()}, - * but returns the collection instead of undefined. - * - * @param fn - Function to execute for each element - * @param thisArg - Value to use as `this` when executing function - * @example - * ```ts - * collection - * .each(user => console.log(user.username)) - * .filter(user => user.bot) - * .each(user => console.log(user.username)); - * ``` - */ - each(fn: (value: V, key: K, collection: this) => void): this; - each(fn: (this: T, value: V, key: K, collection: this) => void, thisArg: T): this; - /** - * Runs a function on the collection and returns the collection. - * - * @param fn - Function to execute - * @param thisArg - Value to use as `this` when executing function - * @example - * ```ts - * collection - * .tap(coll => console.log(coll.size)) - * .filter(user => user.bot) - * .tap(coll => console.log(coll.size)) - * ``` - */ - tap(fn: (collection: this) => void): this; - tap(fn: (this: T, collection: this) => void, thisArg: T): this; - /** - * Creates an identical shallow copy of this collection. - * - * @example - * ```ts - * const newColl = someColl.clone(); - * ``` - */ - clone(): Collection; - /** - * Combines this collection with others into a new collection. None of the source collections are modified. - * - * @param collections - Collections to merge - * @example - * ```ts - * const newColl = someColl.concat(someOtherColl, anotherColl, ohBoyAColl); - * ``` - */ - concat(...collections: ReadonlyCollection[]): Collection; - /** - * Checks if this collection shares identical items with another. - * This is different to checking for equality using equal-signs, because - * the collections may be different objects, but contain the same data. - * - * @param collection - Collection to compare with - * @returns Whether the collections have identical contents - */ - equals(collection: ReadonlyCollection): boolean; - /** - * The sort method sorts the items of a collection in place and returns it. - * The sort is not necessarily stable in Node 10 or older. - * The default sort order is according to string Unicode code points. - * - * @param compareFunction - Specifies a function that defines the sort order. - * If omitted, the collection is sorted according to each character's Unicode code point value, according to the string conversion of each element. - * @example - * ```ts - * collection.sort((userA, userB) => userA.createdTimestamp - userB.createdTimestamp); - * ``` - */ - sort(compareFunction?: Comparator): this; - /** - * The intersect method returns a new structure containing items where the keys and values are present in both original structures. - * - * @param other - The other Collection to filter against - */ - intersect(other: ReadonlyCollection): Collection; - /** - * The subtract method returns a new structure containing items where the keys and values of the original structure are not present in the other. - * - * @param other - The other Collection to filter against - */ - subtract(other: ReadonlyCollection): Collection; - /** - * The difference method returns a new structure containing items where the key is present in one of the original structures but not the other. - * - * @param other - The other Collection to filter against - */ - difference(other: ReadonlyCollection): Collection; - /** - * Merges two Collections together into a new Collection. - * - * @param other - The other Collection to merge with - * @param whenInSelf - Function getting the result if the entry only exists in this Collection - * @param whenInOther - Function getting the result if the entry only exists in the other Collection - * @param whenInBoth - Function getting the result if the entry exists in both Collections - * @example - * ```ts - * // Sums up the entries in two collections. - * coll.merge( - * other, - * x => ({ keep: true, value: x }), - * y => ({ keep: true, value: y }), - * (x, y) => ({ keep: true, value: x + y }), - * ); - * ``` - * @example - * ```ts - * // Intersects two collections in a left-biased manner. - * coll.merge( - * other, - * x => ({ keep: false }), - * y => ({ keep: false }), - * (x, _) => ({ keep: true, value: x }), - * ); - * ``` - */ - merge(other: ReadonlyCollection, whenInSelf: (value: V, key: K) => Keep, whenInOther: (valueOther: T, key: K) => Keep, whenInBoth: (value: V, valueOther: T, key: K) => Keep): Collection; - /** - * The sorted method sorts the items of a collection and returns it. - * The sort is not necessarily stable in Node 10 or older. - * The default sort order is according to string Unicode code points. - * - * @param compareFunction - Specifies a function that defines the sort order. - * If omitted, the collection is sorted according to each character's Unicode code point value, - * according to the string conversion of each element. - * @example - * ```ts - * collection.sorted((userA, userB) => userA.createdTimestamp - userB.createdTimestamp); - * ``` - */ - sorted(compareFunction?: Comparator): Collection; - toJSON(): V[]; - private static defaultSort; - /** - * Creates a Collection from a list of entries. - * - * @param entries - The list of entries - * @param combine - Function to combine an existing entry with a new one - * @example - * ```ts - * Collection.combineEntries([["a", 1], ["b", 2], ["a", 2]], (x, y) => x + y); - * // returns Collection { "a" => 3, "b" => 2 } - * ``` - */ - static combineEntries(entries: Iterable<[K, V]>, combine: (firstValue: V, secondValue: V, key: K) => V): Collection; -} -/** - * @internal - */ -type Keep = { - keep: false; -} | { - keep: true; - value: V; -}; -/** - * @internal - */ -type Comparator = (firstValue: V, secondValue: V, firstKey: K, secondKey: K) => number; - -/** - * The {@link https://github.com/discordjs/discord.js/blob/main/packages/collection/#readme | @discordjs/collection} version - * that you are currently using. - */ -declare const version: string; - -export { Collection, CollectionConstructor, Comparator, Keep, ReadonlyCollection, version }; diff --git a/node_modules/@discordjs/collection/dist/index.d.ts b/node_modules/@discordjs/collection/dist/index.d.ts deleted file mode 100644 index 5990c61..0000000 --- a/node_modules/@discordjs/collection/dist/index.d.ts +++ /dev/null @@ -1,457 +0,0 @@ -/** - * @internal - */ -interface CollectionConstructor { - new (): Collection; - new (entries?: readonly (readonly [K, V])[] | null): Collection; - new (iterable: Iterable): Collection; - readonly prototype: Collection; - readonly [Symbol.species]: CollectionConstructor; -} -/** - * Represents an immutable version of a collection - */ -type ReadonlyCollection = Omit, 'delete' | 'ensure' | 'forEach' | 'get' | 'reverse' | 'set' | 'sort' | 'sweep'> & ReadonlyMap; -/** - * Separate interface for the constructor so that emitted js does not have a constructor that overwrites itself - * - * @internal - */ -interface Collection extends Map { - constructor: CollectionConstructor; -} -/** - * A Map with additional utility methods. This is used throughout discord.js rather than Arrays for anything that has - * an ID, for significantly improved performance and ease-of-use. - * - * @typeParam K - The key type this collection holds - * @typeParam V - The value type this collection holds - */ -declare class Collection extends Map { - /** - * Obtains the value of the given key if it exists, otherwise sets and returns the value provided by the default value generator. - * - * @param key - The key to get if it exists, or set otherwise - * @param defaultValueGenerator - A function that generates the default value - * @example - * ```ts - * collection.ensure(guildId, () => defaultGuildConfig); - * ``` - */ - ensure(key: K, defaultValueGenerator: (key: K, collection: this) => V): V; - /** - * Checks if all of the elements exist in the collection. - * - * @param keys - The keys of the elements to check for - * @returns `true` if all of the elements exist, `false` if at least one does not exist. - */ - hasAll(...keys: K[]): boolean; - /** - * Checks if any of the elements exist in the collection. - * - * @param keys - The keys of the elements to check for - * @returns `true` if any of the elements exist, `false` if none exist. - */ - hasAny(...keys: K[]): boolean; - /** - * Obtains the first value(s) in this collection. - * - * @param amount - Amount of values to obtain from the beginning - * @returns A single value if no amount is provided or an array of values, starting from the end if amount is negative - */ - first(): V | undefined; - first(amount: number): V[]; - /** - * Obtains the first key(s) in this collection. - * - * @param amount - Amount of keys to obtain from the beginning - * @returns A single key if no amount is provided or an array of keys, starting from the end if - * amount is negative - */ - firstKey(): K | undefined; - firstKey(amount: number): K[]; - /** - * Obtains the last value(s) in this collection. - * - * @param amount - Amount of values to obtain from the end - * @returns A single value if no amount is provided or an array of values, starting from the start if - * amount is negative - */ - last(): V | undefined; - last(amount: number): V[]; - /** - * Obtains the last key(s) in this collection. - * - * @param amount - Amount of keys to obtain from the end - * @returns A single key if no amount is provided or an array of keys, starting from the start if - * amount is negative - */ - lastKey(): K | undefined; - lastKey(amount: number): K[]; - /** - * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at()}. - * Returns the item at a given index, allowing for positive and negative integers. - * Negative integers count back from the last item in the collection. - * - * @param index - The index of the element to obtain - */ - at(index: number): V | undefined; - /** - * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at()}. - * Returns the key at a given index, allowing for positive and negative integers. - * Negative integers count back from the last item in the collection. - * - * @param index - The index of the key to obtain - */ - keyAt(index: number): K | undefined; - /** - * Obtains unique random value(s) from this collection. - * - * @param amount - Amount of values to obtain randomly - * @returns A single value if no amount is provided or an array of values - */ - random(): V | undefined; - random(amount: number): V[]; - /** - * Obtains unique random key(s) from this collection. - * - * @param amount - Amount of keys to obtain randomly - * @returns A single key if no amount is provided or an array - */ - randomKey(): K | undefined; - randomKey(amount: number): K[]; - /** - * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse | Array.reverse()} - * but returns a Collection instead of an Array. - */ - reverse(): this; - /** - * Searches for a single item where the given function returns a truthy value. This behaves like - * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find | Array.find()}. - * All collections used in Discord.js are mapped using their `id` property, and if you want to find by id you - * should use the `get` method. See - * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/get | MDN} for details. - * - * @param fn - The function to test with (should return boolean) - * @param thisArg - Value to use as `this` when executing function - * @example - * ```ts - * collection.find(user => user.username === 'Bob'); - * ``` - */ - find(fn: (value: V, key: K, collection: this) => value is V2): V2 | undefined; - find(fn: (value: V, key: K, collection: this) => unknown): V | undefined; - find(fn: (this: This, value: V, key: K, collection: this) => value is V2, thisArg: This): V2 | undefined; - find(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): V | undefined; - /** - * Searches for the key of a single item where the given function returns a truthy value. This behaves like - * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex | Array.findIndex()}, - * but returns the key rather than the positional index. - * - * @param fn - The function to test with (should return boolean) - * @param thisArg - Value to use as `this` when executing function - * @example - * ```ts - * collection.findKey(user => user.username === 'Bob'); - * ``` - */ - findKey(fn: (value: V, key: K, collection: this) => key is K2): K2 | undefined; - findKey(fn: (value: V, key: K, collection: this) => unknown): K | undefined; - findKey(fn: (this: This, value: V, key: K, collection: this) => key is K2, thisArg: This): K2 | undefined; - findKey(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): K | undefined; - /** - * Removes items that satisfy the provided filter function. - * - * @param fn - Function used to test (should return a boolean) - * @param thisArg - Value to use as `this` when executing function - * @returns The number of removed entries - */ - sweep(fn: (value: V, key: K, collection: this) => unknown): number; - sweep(fn: (this: T, value: V, key: K, collection: this) => unknown, thisArg: T): number; - /** - * Identical to - * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter | Array.filter()}, - * but returns a Collection instead of an Array. - * - * @param fn - The function to test with (should return boolean) - * @param thisArg - Value to use as `this` when executing function - * @example - * ```ts - * collection.filter(user => user.username === 'Bob'); - * ``` - */ - filter(fn: (value: V, key: K, collection: this) => key is K2): Collection; - filter(fn: (value: V, key: K, collection: this) => value is V2): Collection; - filter(fn: (value: V, key: K, collection: this) => unknown): Collection; - filter(fn: (this: This, value: V, key: K, collection: this) => key is K2, thisArg: This): Collection; - filter(fn: (this: This, value: V, key: K, collection: this) => value is V2, thisArg: This): Collection; - filter(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): Collection; - /** - * Partitions the collection into two collections where the first collection - * contains the items that passed and the second contains the items that failed. - * - * @param fn - Function used to test (should return a boolean) - * @param thisArg - Value to use as `this` when executing function - * @example - * ```ts - * const [big, small] = collection.partition(guild => guild.memberCount > 250); - * ``` - */ - partition(fn: (value: V, key: K, collection: this) => key is K2): [Collection, Collection, V>]; - partition(fn: (value: V, key: K, collection: this) => value is V2): [Collection, Collection>]; - partition(fn: (value: V, key: K, collection: this) => unknown): [Collection, Collection]; - partition(fn: (this: This, value: V, key: K, collection: this) => key is K2, thisArg: This): [Collection, Collection, V>]; - partition(fn: (this: This, value: V, key: K, collection: this) => value is V2, thisArg: This): [Collection, Collection>]; - partition(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): [Collection, Collection]; - /** - * Maps each item into a Collection, then joins the results into a single Collection. Identical in behavior to - * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap | Array.flatMap()}. - * - * @param fn - Function that produces a new Collection - * @param thisArg - Value to use as `this` when executing function - * @example - * ```ts - * collection.flatMap(guild => guild.members.cache); - * ``` - */ - flatMap(fn: (value: V, key: K, collection: this) => Collection): Collection; - flatMap(fn: (this: This, value: V, key: K, collection: this) => Collection, thisArg: This): Collection; - /** - * Maps each item to another value into an array. Identical in behavior to - * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map | Array.map()}. - * - * @param fn - Function that produces an element of the new array, taking three arguments - * @param thisArg - Value to use as `this` when executing function - * @example - * ```ts - * collection.map(user => user.tag); - * ``` - */ - map(fn: (value: V, key: K, collection: this) => T): T[]; - map(fn: (this: This, value: V, key: K, collection: this) => T, thisArg: This): T[]; - /** - * Maps each item to another value into a collection. Identical in behavior to - * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map | Array.map()}. - * - * @param fn - Function that produces an element of the new collection, taking three arguments - * @param thisArg - Value to use as `this` when executing function - * @example - * ```ts - * collection.mapValues(user => user.tag); - * ``` - */ - mapValues(fn: (value: V, key: K, collection: this) => T): Collection; - mapValues(fn: (this: This, value: V, key: K, collection: this) => T, thisArg: This): Collection; - /** - * Checks if there exists an item that passes a test. Identical in behavior to - * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some | Array.some()}. - * - * @param fn - Function used to test (should return a boolean) - * @param thisArg - Value to use as `this` when executing function - * @example - * ```ts - * collection.some(user => user.discriminator === '0000'); - * ``` - */ - some(fn: (value: V, key: K, collection: this) => unknown): boolean; - some(fn: (this: T, value: V, key: K, collection: this) => unknown, thisArg: T): boolean; - /** - * Checks if all items passes a test. Identical in behavior to - * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every | Array.every()}. - * - * @param fn - Function used to test (should return a boolean) - * @param thisArg - Value to use as `this` when executing function - * @example - * ```ts - * collection.every(user => !user.bot); - * ``` - */ - every(fn: (value: V, key: K, collection: this) => key is K2): this is Collection; - every(fn: (value: V, key: K, collection: this) => value is V2): this is Collection; - every(fn: (value: V, key: K, collection: this) => unknown): boolean; - every(fn: (this: This, value: V, key: K, collection: this) => key is K2, thisArg: This): this is Collection; - every(fn: (this: This, value: V, key: K, collection: this) => value is V2, thisArg: This): this is Collection; - every(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): boolean; - /** - * Applies a function to produce a single value. Identical in behavior to - * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce | Array.reduce()}. - * - * @param fn - Function used to reduce, taking four arguments; `accumulator`, `currentValue`, `currentKey`, - * and `collection` - * @param initialValue - Starting value for the accumulator - * @example - * ```ts - * collection.reduce((acc, guild) => acc + guild.memberCount, 0); - * ``` - */ - reduce(fn: (accumulator: T, value: V, key: K, collection: this) => T, initialValue?: T): T; - /** - * Identical to - * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/forEach | Map.forEach()}, - * but returns the collection instead of undefined. - * - * @param fn - Function to execute for each element - * @param thisArg - Value to use as `this` when executing function - * @example - * ```ts - * collection - * .each(user => console.log(user.username)) - * .filter(user => user.bot) - * .each(user => console.log(user.username)); - * ``` - */ - each(fn: (value: V, key: K, collection: this) => void): this; - each(fn: (this: T, value: V, key: K, collection: this) => void, thisArg: T): this; - /** - * Runs a function on the collection and returns the collection. - * - * @param fn - Function to execute - * @param thisArg - Value to use as `this` when executing function - * @example - * ```ts - * collection - * .tap(coll => console.log(coll.size)) - * .filter(user => user.bot) - * .tap(coll => console.log(coll.size)) - * ``` - */ - tap(fn: (collection: this) => void): this; - tap(fn: (this: T, collection: this) => void, thisArg: T): this; - /** - * Creates an identical shallow copy of this collection. - * - * @example - * ```ts - * const newColl = someColl.clone(); - * ``` - */ - clone(): Collection; - /** - * Combines this collection with others into a new collection. None of the source collections are modified. - * - * @param collections - Collections to merge - * @example - * ```ts - * const newColl = someColl.concat(someOtherColl, anotherColl, ohBoyAColl); - * ``` - */ - concat(...collections: ReadonlyCollection[]): Collection; - /** - * Checks if this collection shares identical items with another. - * This is different to checking for equality using equal-signs, because - * the collections may be different objects, but contain the same data. - * - * @param collection - Collection to compare with - * @returns Whether the collections have identical contents - */ - equals(collection: ReadonlyCollection): boolean; - /** - * The sort method sorts the items of a collection in place and returns it. - * The sort is not necessarily stable in Node 10 or older. - * The default sort order is according to string Unicode code points. - * - * @param compareFunction - Specifies a function that defines the sort order. - * If omitted, the collection is sorted according to each character's Unicode code point value, according to the string conversion of each element. - * @example - * ```ts - * collection.sort((userA, userB) => userA.createdTimestamp - userB.createdTimestamp); - * ``` - */ - sort(compareFunction?: Comparator): this; - /** - * The intersect method returns a new structure containing items where the keys and values are present in both original structures. - * - * @param other - The other Collection to filter against - */ - intersect(other: ReadonlyCollection): Collection; - /** - * The subtract method returns a new structure containing items where the keys and values of the original structure are not present in the other. - * - * @param other - The other Collection to filter against - */ - subtract(other: ReadonlyCollection): Collection; - /** - * The difference method returns a new structure containing items where the key is present in one of the original structures but not the other. - * - * @param other - The other Collection to filter against - */ - difference(other: ReadonlyCollection): Collection; - /** - * Merges two Collections together into a new Collection. - * - * @param other - The other Collection to merge with - * @param whenInSelf - Function getting the result if the entry only exists in this Collection - * @param whenInOther - Function getting the result if the entry only exists in the other Collection - * @param whenInBoth - Function getting the result if the entry exists in both Collections - * @example - * ```ts - * // Sums up the entries in two collections. - * coll.merge( - * other, - * x => ({ keep: true, value: x }), - * y => ({ keep: true, value: y }), - * (x, y) => ({ keep: true, value: x + y }), - * ); - * ``` - * @example - * ```ts - * // Intersects two collections in a left-biased manner. - * coll.merge( - * other, - * x => ({ keep: false }), - * y => ({ keep: false }), - * (x, _) => ({ keep: true, value: x }), - * ); - * ``` - */ - merge(other: ReadonlyCollection, whenInSelf: (value: V, key: K) => Keep, whenInOther: (valueOther: T, key: K) => Keep, whenInBoth: (value: V, valueOther: T, key: K) => Keep): Collection; - /** - * The sorted method sorts the items of a collection and returns it. - * The sort is not necessarily stable in Node 10 or older. - * The default sort order is according to string Unicode code points. - * - * @param compareFunction - Specifies a function that defines the sort order. - * If omitted, the collection is sorted according to each character's Unicode code point value, - * according to the string conversion of each element. - * @example - * ```ts - * collection.sorted((userA, userB) => userA.createdTimestamp - userB.createdTimestamp); - * ``` - */ - sorted(compareFunction?: Comparator): Collection; - toJSON(): V[]; - private static defaultSort; - /** - * Creates a Collection from a list of entries. - * - * @param entries - The list of entries - * @param combine - Function to combine an existing entry with a new one - * @example - * ```ts - * Collection.combineEntries([["a", 1], ["b", 2], ["a", 2]], (x, y) => x + y); - * // returns Collection { "a" => 3, "b" => 2 } - * ``` - */ - static combineEntries(entries: Iterable<[K, V]>, combine: (firstValue: V, secondValue: V, key: K) => V): Collection; -} -/** - * @internal - */ -type Keep = { - keep: false; -} | { - keep: true; - value: V; -}; -/** - * @internal - */ -type Comparator = (firstValue: V, secondValue: V, firstKey: K, secondKey: K) => number; - -/** - * The {@link https://github.com/discordjs/discord.js/blob/main/packages/collection/#readme | @discordjs/collection} version - * that you are currently using. - */ -declare const version: string; - -export { Collection, CollectionConstructor, Comparator, Keep, ReadonlyCollection, version }; diff --git a/node_modules/@discordjs/collection/dist/index.js b/node_modules/@discordjs/collection/dist/index.js deleted file mode 100644 index d9379ea..0000000 --- a/node_modules/@discordjs/collection/dist/index.js +++ /dev/null @@ -1,543 +0,0 @@ -"use strict"; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - Collection: () => Collection, - version: () => version -}); -module.exports = __toCommonJS(src_exports); - -// src/collection.ts -var Collection = class _Collection extends Map { - static { - __name(this, "Collection"); - } - /** - * Obtains the value of the given key if it exists, otherwise sets and returns the value provided by the default value generator. - * - * @param key - The key to get if it exists, or set otherwise - * @param defaultValueGenerator - A function that generates the default value - * @example - * ```ts - * collection.ensure(guildId, () => defaultGuildConfig); - * ``` - */ - ensure(key, defaultValueGenerator) { - if (this.has(key)) - return this.get(key); - if (typeof defaultValueGenerator !== "function") - throw new TypeError(`${defaultValueGenerator} is not a function`); - const defaultValue = defaultValueGenerator(key, this); - this.set(key, defaultValue); - return defaultValue; - } - /** - * Checks if all of the elements exist in the collection. - * - * @param keys - The keys of the elements to check for - * @returns `true` if all of the elements exist, `false` if at least one does not exist. - */ - hasAll(...keys) { - return keys.every((key) => super.has(key)); - } - /** - * Checks if any of the elements exist in the collection. - * - * @param keys - The keys of the elements to check for - * @returns `true` if any of the elements exist, `false` if none exist. - */ - hasAny(...keys) { - return keys.some((key) => super.has(key)); - } - first(amount) { - if (amount === void 0) - return this.values().next().value; - if (amount < 0) - return this.last(amount * -1); - amount = Math.min(this.size, amount); - const iter = this.values(); - return Array.from({ length: amount }, () => iter.next().value); - } - firstKey(amount) { - if (amount === void 0) - return this.keys().next().value; - if (amount < 0) - return this.lastKey(amount * -1); - amount = Math.min(this.size, amount); - const iter = this.keys(); - return Array.from({ length: amount }, () => iter.next().value); - } - last(amount) { - const arr = [...this.values()]; - if (amount === void 0) - return arr[arr.length - 1]; - if (amount < 0) - return this.first(amount * -1); - if (!amount) - return []; - return arr.slice(-amount); - } - lastKey(amount) { - const arr = [...this.keys()]; - if (amount === void 0) - return arr[arr.length - 1]; - if (amount < 0) - return this.firstKey(amount * -1); - if (!amount) - return []; - return arr.slice(-amount); - } - /** - * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at()}. - * Returns the item at a given index, allowing for positive and negative integers. - * Negative integers count back from the last item in the collection. - * - * @param index - The index of the element to obtain - */ - at(index) { - index = Math.floor(index); - const arr = [...this.values()]; - return arr.at(index); - } - /** - * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at()}. - * Returns the key at a given index, allowing for positive and negative integers. - * Negative integers count back from the last item in the collection. - * - * @param index - The index of the key to obtain - */ - keyAt(index) { - index = Math.floor(index); - const arr = [...this.keys()]; - return arr.at(index); - } - random(amount) { - const arr = [...this.values()]; - if (amount === void 0) - return arr[Math.floor(Math.random() * arr.length)]; - if (!arr.length || !amount) - return []; - return Array.from( - { length: Math.min(amount, arr.length) }, - () => arr.splice(Math.floor(Math.random() * arr.length), 1)[0] - ); - } - randomKey(amount) { - const arr = [...this.keys()]; - if (amount === void 0) - return arr[Math.floor(Math.random() * arr.length)]; - if (!arr.length || !amount) - return []; - return Array.from( - { length: Math.min(amount, arr.length) }, - () => arr.splice(Math.floor(Math.random() * arr.length), 1)[0] - ); - } - /** - * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse | Array.reverse()} - * but returns a Collection instead of an Array. - */ - reverse() { - const entries = [...this.entries()].reverse(); - this.clear(); - for (const [key, value] of entries) - this.set(key, value); - return this; - } - find(fn, thisArg) { - if (typeof fn !== "function") - throw new TypeError(`${fn} is not a function`); - if (thisArg !== void 0) - fn = fn.bind(thisArg); - for (const [key, val] of this) { - if (fn(val, key, this)) - return val; - } - return void 0; - } - findKey(fn, thisArg) { - if (typeof fn !== "function") - throw new TypeError(`${fn} is not a function`); - if (thisArg !== void 0) - fn = fn.bind(thisArg); - for (const [key, val] of this) { - if (fn(val, key, this)) - return key; - } - return void 0; - } - sweep(fn, thisArg) { - if (typeof fn !== "function") - throw new TypeError(`${fn} is not a function`); - if (thisArg !== void 0) - fn = fn.bind(thisArg); - const previousSize = this.size; - for (const [key, val] of this) { - if (fn(val, key, this)) - this.delete(key); - } - return previousSize - this.size; - } - filter(fn, thisArg) { - if (typeof fn !== "function") - throw new TypeError(`${fn} is not a function`); - if (thisArg !== void 0) - fn = fn.bind(thisArg); - const results = new this.constructor[Symbol.species](); - for (const [key, val] of this) { - if (fn(val, key, this)) - results.set(key, val); - } - return results; - } - partition(fn, thisArg) { - if (typeof fn !== "function") - throw new TypeError(`${fn} is not a function`); - if (thisArg !== void 0) - fn = fn.bind(thisArg); - const results = [ - new this.constructor[Symbol.species](), - new this.constructor[Symbol.species]() - ]; - for (const [key, val] of this) { - if (fn(val, key, this)) { - results[0].set(key, val); - } else { - results[1].set(key, val); - } - } - return results; - } - flatMap(fn, thisArg) { - const collections = this.map(fn, thisArg); - return new this.constructor[Symbol.species]().concat(...collections); - } - map(fn, thisArg) { - if (typeof fn !== "function") - throw new TypeError(`${fn} is not a function`); - if (thisArg !== void 0) - fn = fn.bind(thisArg); - const iter = this.entries(); - return Array.from({ length: this.size }, () => { - const [key, value] = iter.next().value; - return fn(value, key, this); - }); - } - mapValues(fn, thisArg) { - if (typeof fn !== "function") - throw new TypeError(`${fn} is not a function`); - if (thisArg !== void 0) - fn = fn.bind(thisArg); - const coll = new this.constructor[Symbol.species](); - for (const [key, val] of this) - coll.set(key, fn(val, key, this)); - return coll; - } - some(fn, thisArg) { - if (typeof fn !== "function") - throw new TypeError(`${fn} is not a function`); - if (thisArg !== void 0) - fn = fn.bind(thisArg); - for (const [key, val] of this) { - if (fn(val, key, this)) - return true; - } - return false; - } - every(fn, thisArg) { - if (typeof fn !== "function") - throw new TypeError(`${fn} is not a function`); - if (thisArg !== void 0) - fn = fn.bind(thisArg); - for (const [key, val] of this) { - if (!fn(val, key, this)) - return false; - } - return true; - } - /** - * Applies a function to produce a single value. Identical in behavior to - * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce | Array.reduce()}. - * - * @param fn - Function used to reduce, taking four arguments; `accumulator`, `currentValue`, `currentKey`, - * and `collection` - * @param initialValue - Starting value for the accumulator - * @example - * ```ts - * collection.reduce((acc, guild) => acc + guild.memberCount, 0); - * ``` - */ - reduce(fn, initialValue) { - if (typeof fn !== "function") - throw new TypeError(`${fn} is not a function`); - let accumulator; - const iterator = this.entries(); - if (initialValue === void 0) { - if (this.size === 0) - throw new TypeError("Reduce of empty collection with no initial value"); - accumulator = iterator.next().value[1]; - } else { - accumulator = initialValue; - } - for (const [key, value] of iterator) { - accumulator = fn(accumulator, value, key, this); - } - return accumulator; - } - each(fn, thisArg) { - if (typeof fn !== "function") - throw new TypeError(`${fn} is not a function`); - if (thisArg !== void 0) - fn = fn.bind(thisArg); - for (const [key, value] of this) { - fn(value, key, this); - } - return this; - } - tap(fn, thisArg) { - if (typeof fn !== "function") - throw new TypeError(`${fn} is not a function`); - if (thisArg !== void 0) - fn = fn.bind(thisArg); - fn(this); - return this; - } - /** - * Creates an identical shallow copy of this collection. - * - * @example - * ```ts - * const newColl = someColl.clone(); - * ``` - */ - clone() { - return new this.constructor[Symbol.species](this); - } - /** - * Combines this collection with others into a new collection. None of the source collections are modified. - * - * @param collections - Collections to merge - * @example - * ```ts - * const newColl = someColl.concat(someOtherColl, anotherColl, ohBoyAColl); - * ``` - */ - concat(...collections) { - const newColl = this.clone(); - for (const coll of collections) { - for (const [key, val] of coll) - newColl.set(key, val); - } - return newColl; - } - /** - * Checks if this collection shares identical items with another. - * This is different to checking for equality using equal-signs, because - * the collections may be different objects, but contain the same data. - * - * @param collection - Collection to compare with - * @returns Whether the collections have identical contents - */ - equals(collection) { - if (!collection) - return false; - if (this === collection) - return true; - if (this.size !== collection.size) - return false; - for (const [key, value] of this) { - if (!collection.has(key) || value !== collection.get(key)) { - return false; - } - } - return true; - } - /** - * The sort method sorts the items of a collection in place and returns it. - * The sort is not necessarily stable in Node 10 or older. - * The default sort order is according to string Unicode code points. - * - * @param compareFunction - Specifies a function that defines the sort order. - * If omitted, the collection is sorted according to each character's Unicode code point value, according to the string conversion of each element. - * @example - * ```ts - * collection.sort((userA, userB) => userA.createdTimestamp - userB.createdTimestamp); - * ``` - */ - sort(compareFunction = _Collection.defaultSort) { - const entries = [...this.entries()]; - entries.sort((a, b) => compareFunction(a[1], b[1], a[0], b[0])); - super.clear(); - for (const [key, value] of entries) { - super.set(key, value); - } - return this; - } - /** - * The intersect method returns a new structure containing items where the keys and values are present in both original structures. - * - * @param other - The other Collection to filter against - */ - intersect(other) { - const coll = new this.constructor[Symbol.species](); - for (const [key, value] of other) { - if (this.has(key) && Object.is(value, this.get(key))) { - coll.set(key, value); - } - } - return coll; - } - /** - * The subtract method returns a new structure containing items where the keys and values of the original structure are not present in the other. - * - * @param other - The other Collection to filter against - */ - subtract(other) { - const coll = new this.constructor[Symbol.species](); - for (const [key, value] of this) { - if (!other.has(key) || !Object.is(value, other.get(key))) { - coll.set(key, value); - } - } - return coll; - } - /** - * The difference method returns a new structure containing items where the key is present in one of the original structures but not the other. - * - * @param other - The other Collection to filter against - */ - difference(other) { - const coll = new this.constructor[Symbol.species](); - for (const [key, value] of other) { - if (!this.has(key)) - coll.set(key, value); - } - for (const [key, value] of this) { - if (!other.has(key)) - coll.set(key, value); - } - return coll; - } - /** - * Merges two Collections together into a new Collection. - * - * @param other - The other Collection to merge with - * @param whenInSelf - Function getting the result if the entry only exists in this Collection - * @param whenInOther - Function getting the result if the entry only exists in the other Collection - * @param whenInBoth - Function getting the result if the entry exists in both Collections - * @example - * ```ts - * // Sums up the entries in two collections. - * coll.merge( - * other, - * x => ({ keep: true, value: x }), - * y => ({ keep: true, value: y }), - * (x, y) => ({ keep: true, value: x + y }), - * ); - * ``` - * @example - * ```ts - * // Intersects two collections in a left-biased manner. - * coll.merge( - * other, - * x => ({ keep: false }), - * y => ({ keep: false }), - * (x, _) => ({ keep: true, value: x }), - * ); - * ``` - */ - merge(other, whenInSelf, whenInOther, whenInBoth) { - const coll = new this.constructor[Symbol.species](); - const keys = /* @__PURE__ */ new Set([...this.keys(), ...other.keys()]); - for (const key of keys) { - const hasInSelf = this.has(key); - const hasInOther = other.has(key); - if (hasInSelf && hasInOther) { - const result = whenInBoth(this.get(key), other.get(key), key); - if (result.keep) - coll.set(key, result.value); - } else if (hasInSelf) { - const result = whenInSelf(this.get(key), key); - if (result.keep) - coll.set(key, result.value); - } else if (hasInOther) { - const result = whenInOther(other.get(key), key); - if (result.keep) - coll.set(key, result.value); - } - } - return coll; - } - /** - * The sorted method sorts the items of a collection and returns it. - * The sort is not necessarily stable in Node 10 or older. - * The default sort order is according to string Unicode code points. - * - * @param compareFunction - Specifies a function that defines the sort order. - * If omitted, the collection is sorted according to each character's Unicode code point value, - * according to the string conversion of each element. - * @example - * ```ts - * collection.sorted((userA, userB) => userA.createdTimestamp - userB.createdTimestamp); - * ``` - */ - sorted(compareFunction = _Collection.defaultSort) { - return new this.constructor[Symbol.species](this).sort((av, bv, ak, bk) => compareFunction(av, bv, ak, bk)); - } - toJSON() { - return [...this.values()]; - } - static defaultSort(firstValue, secondValue) { - return Number(firstValue > secondValue) || Number(firstValue === secondValue) - 1; - } - /** - * Creates a Collection from a list of entries. - * - * @param entries - The list of entries - * @param combine - Function to combine an existing entry with a new one - * @example - * ```ts - * Collection.combineEntries([["a", 1], ["b", 2], ["a", 2]], (x, y) => x + y); - * // returns Collection { "a" => 3, "b" => 2 } - * ``` - */ - static combineEntries(entries, combine) { - const coll = new _Collection(); - for (const [key, value] of entries) { - if (coll.has(key)) { - coll.set(key, combine(coll.get(key), value, key)); - } else { - coll.set(key, value); - } - } - return coll; - } -}; - -// src/index.ts -var version = "1.5.3"; -// Annotate the CommonJS export names for ESM import in node: -0 && (module.exports = { - Collection, - version -}); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@discordjs/collection/dist/index.js.map b/node_modules/@discordjs/collection/dist/index.js.map deleted file mode 100644 index 247240c..0000000 --- a/node_modules/@discordjs/collection/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/index.ts","../src/collection.ts"],"sourcesContent":["export * from './collection.js';\n\n/**\n * The {@link https://github.com/discordjs/discord.js/blob/main/packages/collection/#readme | @discordjs/collection} version\n * that you are currently using.\n */\n// This needs to explicitly be `string` so it is not typed as a \"const string\" that gets injected by esbuild\nexport const version = '1.5.3' as string;\n","/* eslint-disable no-param-reassign */\n/**\n * @internal\n */\nexport interface CollectionConstructor {\n\tnew (): Collection;\n\tnew (entries?: readonly (readonly [K, V])[] | null): Collection;\n\tnew (iterable: Iterable): Collection;\n\treadonly prototype: Collection;\n\treadonly [Symbol.species]: CollectionConstructor;\n}\n\n/**\n * Represents an immutable version of a collection\n */\nexport type ReadonlyCollection = Omit<\n\tCollection,\n\t'delete' | 'ensure' | 'forEach' | 'get' | 'reverse' | 'set' | 'sort' | 'sweep'\n> &\n\tReadonlyMap;\n\n/**\n * Separate interface for the constructor so that emitted js does not have a constructor that overwrites itself\n *\n * @internal\n */\nexport interface Collection extends Map {\n\tconstructor: CollectionConstructor;\n}\n\n/**\n * A Map with additional utility methods. This is used throughout discord.js rather than Arrays for anything that has\n * an ID, for significantly improved performance and ease-of-use.\n *\n * @typeParam K - The key type this collection holds\n * @typeParam V - The value type this collection holds\n */\nexport class Collection extends Map {\n\t/**\n\t * Obtains the value of the given key if it exists, otherwise sets and returns the value provided by the default value generator.\n\t *\n\t * @param key - The key to get if it exists, or set otherwise\n\t * @param defaultValueGenerator - A function that generates the default value\n\t * @example\n\t * ```ts\n\t * collection.ensure(guildId, () => defaultGuildConfig);\n\t * ```\n\t */\n\tpublic ensure(key: K, defaultValueGenerator: (key: K, collection: this) => V): V {\n\t\tif (this.has(key)) return this.get(key)!;\n\t\tif (typeof defaultValueGenerator !== 'function') throw new TypeError(`${defaultValueGenerator} is not a function`);\n\t\tconst defaultValue = defaultValueGenerator(key, this);\n\t\tthis.set(key, defaultValue);\n\t\treturn defaultValue;\n\t}\n\n\t/**\n\t * Checks if all of the elements exist in the collection.\n\t *\n\t * @param keys - The keys of the elements to check for\n\t * @returns `true` if all of the elements exist, `false` if at least one does not exist.\n\t */\n\tpublic hasAll(...keys: K[]) {\n\t\treturn keys.every((key) => super.has(key));\n\t}\n\n\t/**\n\t * Checks if any of the elements exist in the collection.\n\t *\n\t * @param keys - The keys of the elements to check for\n\t * @returns `true` if any of the elements exist, `false` if none exist.\n\t */\n\tpublic hasAny(...keys: K[]) {\n\t\treturn keys.some((key) => super.has(key));\n\t}\n\n\t/**\n\t * Obtains the first value(s) in this collection.\n\t *\n\t * @param amount - Amount of values to obtain from the beginning\n\t * @returns A single value if no amount is provided or an array of values, starting from the end if amount is negative\n\t */\n\tpublic first(): V | undefined;\n\tpublic first(amount: number): V[];\n\tpublic first(amount?: number): V | V[] | undefined {\n\t\tif (amount === undefined) return this.values().next().value;\n\t\tif (amount < 0) return this.last(amount * -1);\n\t\tamount = Math.min(this.size, amount);\n\t\tconst iter = this.values();\n\t\treturn Array.from({ length: amount }, (): V => iter.next().value);\n\t}\n\n\t/**\n\t * Obtains the first key(s) in this collection.\n\t *\n\t * @param amount - Amount of keys to obtain from the beginning\n\t * @returns A single key if no amount is provided or an array of keys, starting from the end if\n\t * amount is negative\n\t */\n\tpublic firstKey(): K | undefined;\n\tpublic firstKey(amount: number): K[];\n\tpublic firstKey(amount?: number): K | K[] | undefined {\n\t\tif (amount === undefined) return this.keys().next().value;\n\t\tif (amount < 0) return this.lastKey(amount * -1);\n\t\tamount = Math.min(this.size, amount);\n\t\tconst iter = this.keys();\n\t\treturn Array.from({ length: amount }, (): K => iter.next().value);\n\t}\n\n\t/**\n\t * Obtains the last value(s) in this collection.\n\t *\n\t * @param amount - Amount of values to obtain from the end\n\t * @returns A single value if no amount is provided or an array of values, starting from the start if\n\t * amount is negative\n\t */\n\tpublic last(): V | undefined;\n\tpublic last(amount: number): V[];\n\tpublic last(amount?: number): V | V[] | undefined {\n\t\tconst arr = [...this.values()];\n\t\tif (amount === undefined) return arr[arr.length - 1];\n\t\tif (amount < 0) return this.first(amount * -1);\n\t\tif (!amount) return [];\n\t\treturn arr.slice(-amount);\n\t}\n\n\t/**\n\t * Obtains the last key(s) in this collection.\n\t *\n\t * @param amount - Amount of keys to obtain from the end\n\t * @returns A single key if no amount is provided or an array of keys, starting from the start if\n\t * amount is negative\n\t */\n\tpublic lastKey(): K | undefined;\n\tpublic lastKey(amount: number): K[];\n\tpublic lastKey(amount?: number): K | K[] | undefined {\n\t\tconst arr = [...this.keys()];\n\t\tif (amount === undefined) return arr[arr.length - 1];\n\t\tif (amount < 0) return this.firstKey(amount * -1);\n\t\tif (!amount) return [];\n\t\treturn arr.slice(-amount);\n\t}\n\n\t/**\n\t * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at()}.\n\t * Returns the item at a given index, allowing for positive and negative integers.\n\t * Negative integers count back from the last item in the collection.\n\t *\n\t * @param index - The index of the element to obtain\n\t */\n\tpublic at(index: number) {\n\t\tindex = Math.floor(index);\n\t\tconst arr = [...this.values()];\n\t\treturn arr.at(index);\n\t}\n\n\t/**\n\t * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at()}.\n\t * Returns the key at a given index, allowing for positive and negative integers.\n\t * Negative integers count back from the last item in the collection.\n\t *\n\t * @param index - The index of the key to obtain\n\t */\n\tpublic keyAt(index: number) {\n\t\tindex = Math.floor(index);\n\t\tconst arr = [...this.keys()];\n\t\treturn arr.at(index);\n\t}\n\n\t/**\n\t * Obtains unique random value(s) from this collection.\n\t *\n\t * @param amount - Amount of values to obtain randomly\n\t * @returns A single value if no amount is provided or an array of values\n\t */\n\tpublic random(): V | undefined;\n\tpublic random(amount: number): V[];\n\tpublic random(amount?: number): V | V[] | undefined {\n\t\tconst arr = [...this.values()];\n\t\tif (amount === undefined) return arr[Math.floor(Math.random() * arr.length)];\n\t\tif (!arr.length || !amount) return [];\n\t\treturn Array.from(\n\t\t\t{ length: Math.min(amount, arr.length) },\n\t\t\t(): V => arr.splice(Math.floor(Math.random() * arr.length), 1)[0]!,\n\t\t);\n\t}\n\n\t/**\n\t * Obtains unique random key(s) from this collection.\n\t *\n\t * @param amount - Amount of keys to obtain randomly\n\t * @returns A single key if no amount is provided or an array\n\t */\n\tpublic randomKey(): K | undefined;\n\tpublic randomKey(amount: number): K[];\n\tpublic randomKey(amount?: number): K | K[] | undefined {\n\t\tconst arr = [...this.keys()];\n\t\tif (amount === undefined) return arr[Math.floor(Math.random() * arr.length)];\n\t\tif (!arr.length || !amount) return [];\n\t\treturn Array.from(\n\t\t\t{ length: Math.min(amount, arr.length) },\n\t\t\t(): K => arr.splice(Math.floor(Math.random() * arr.length), 1)[0]!,\n\t\t);\n\t}\n\n\t/**\n\t * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse | Array.reverse()}\n\t * but returns a Collection instead of an Array.\n\t */\n\tpublic reverse() {\n\t\tconst entries = [...this.entries()].reverse();\n\t\tthis.clear();\n\t\tfor (const [key, value] of entries) this.set(key, value);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Searches for a single item where the given function returns a truthy value. This behaves like\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find | Array.find()}.\n\t * All collections used in Discord.js are mapped using their `id` property, and if you want to find by id you\n\t * should use the `get` method. See\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/get | MDN} for details.\n\t *\n\t * @param fn - The function to test with (should return boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.find(user => user.username === 'Bob');\n\t * ```\n\t */\n\tpublic find(fn: (value: V, key: K, collection: this) => value is V2): V2 | undefined;\n\tpublic find(fn: (value: V, key: K, collection: this) => unknown): V | undefined;\n\tpublic find(\n\t\tfn: (this: This, value: V, key: K, collection: this) => value is V2,\n\t\tthisArg: This,\n\t): V2 | undefined;\n\tpublic find(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): V | undefined;\n\tpublic find(fn: (value: V, key: K, collection: this) => unknown, thisArg?: unknown): V | undefined {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tfor (const [key, val] of this) {\n\t\t\tif (fn(val, key, this)) return val;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Searches for the key of a single item where the given function returns a truthy value. This behaves like\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex | Array.findIndex()},\n\t * but returns the key rather than the positional index.\n\t *\n\t * @param fn - The function to test with (should return boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.findKey(user => user.username === 'Bob');\n\t * ```\n\t */\n\tpublic findKey(fn: (value: V, key: K, collection: this) => key is K2): K2 | undefined;\n\tpublic findKey(fn: (value: V, key: K, collection: this) => unknown): K | undefined;\n\tpublic findKey(\n\t\tfn: (this: This, value: V, key: K, collection: this) => key is K2,\n\t\tthisArg: This,\n\t): K2 | undefined;\n\tpublic findKey(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): K | undefined;\n\tpublic findKey(fn: (value: V, key: K, collection: this) => unknown, thisArg?: unknown): K | undefined {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tfor (const [key, val] of this) {\n\t\t\tif (fn(val, key, this)) return key;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Removes items that satisfy the provided filter function.\n\t *\n\t * @param fn - Function used to test (should return a boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @returns The number of removed entries\n\t */\n\tpublic sweep(fn: (value: V, key: K, collection: this) => unknown): number;\n\tpublic sweep(fn: (this: T, value: V, key: K, collection: this) => unknown, thisArg: T): number;\n\tpublic sweep(fn: (value: V, key: K, collection: this) => unknown, thisArg?: unknown): number {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tconst previousSize = this.size;\n\t\tfor (const [key, val] of this) {\n\t\t\tif (fn(val, key, this)) this.delete(key);\n\t\t}\n\n\t\treturn previousSize - this.size;\n\t}\n\n\t/**\n\t * Identical to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter | Array.filter()},\n\t * but returns a Collection instead of an Array.\n\t *\n\t * @param fn - The function to test with (should return boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.filter(user => user.username === 'Bob');\n\t * ```\n\t */\n\tpublic filter(fn: (value: V, key: K, collection: this) => key is K2): Collection;\n\tpublic filter(fn: (value: V, key: K, collection: this) => value is V2): Collection;\n\tpublic filter(fn: (value: V, key: K, collection: this) => unknown): Collection;\n\tpublic filter(\n\t\tfn: (this: This, value: V, key: K, collection: this) => key is K2,\n\t\tthisArg: This,\n\t): Collection;\n\tpublic filter(\n\t\tfn: (this: This, value: V, key: K, collection: this) => value is V2,\n\t\tthisArg: This,\n\t): Collection;\n\tpublic filter(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): Collection;\n\tpublic filter(fn: (value: V, key: K, collection: this) => unknown, thisArg?: unknown): Collection {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tconst results = new this.constructor[Symbol.species]();\n\t\tfor (const [key, val] of this) {\n\t\t\tif (fn(val, key, this)) results.set(key, val);\n\t\t}\n\n\t\treturn results;\n\t}\n\n\t/**\n\t * Partitions the collection into two collections where the first collection\n\t * contains the items that passed and the second contains the items that failed.\n\t *\n\t * @param fn - Function used to test (should return a boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * const [big, small] = collection.partition(guild => guild.memberCount > 250);\n\t * ```\n\t */\n\tpublic partition(\n\t\tfn: (value: V, key: K, collection: this) => key is K2,\n\t): [Collection, Collection, V>];\n\tpublic partition(\n\t\tfn: (value: V, key: K, collection: this) => value is V2,\n\t): [Collection, Collection>];\n\tpublic partition(fn: (value: V, key: K, collection: this) => unknown): [Collection, Collection];\n\tpublic partition(\n\t\tfn: (this: This, value: V, key: K, collection: this) => key is K2,\n\t\tthisArg: This,\n\t): [Collection, Collection, V>];\n\tpublic partition(\n\t\tfn: (this: This, value: V, key: K, collection: this) => value is V2,\n\t\tthisArg: This,\n\t): [Collection, Collection>];\n\tpublic partition(\n\t\tfn: (this: This, value: V, key: K, collection: this) => unknown,\n\t\tthisArg: This,\n\t): [Collection, Collection];\n\tpublic partition(\n\t\tfn: (value: V, key: K, collection: this) => unknown,\n\t\tthisArg?: unknown,\n\t): [Collection, Collection] {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tconst results: [Collection, Collection] = [\n\t\t\tnew this.constructor[Symbol.species](),\n\t\t\tnew this.constructor[Symbol.species](),\n\t\t];\n\t\tfor (const [key, val] of this) {\n\t\t\tif (fn(val, key, this)) {\n\t\t\t\tresults[0].set(key, val);\n\t\t\t} else {\n\t\t\t\tresults[1].set(key, val);\n\t\t\t}\n\t\t}\n\n\t\treturn results;\n\t}\n\n\t/**\n\t * Maps each item into a Collection, then joins the results into a single Collection. Identical in behavior to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap | Array.flatMap()}.\n\t *\n\t * @param fn - Function that produces a new Collection\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.flatMap(guild => guild.members.cache);\n\t * ```\n\t */\n\tpublic flatMap(fn: (value: V, key: K, collection: this) => Collection): Collection;\n\tpublic flatMap(\n\t\tfn: (this: This, value: V, key: K, collection: this) => Collection,\n\t\tthisArg: This,\n\t): Collection;\n\tpublic flatMap(fn: (value: V, key: K, collection: this) => Collection, thisArg?: unknown): Collection {\n\t\t// eslint-disable-next-line unicorn/no-array-method-this-argument\n\t\tconst collections = this.map(fn, thisArg);\n\t\treturn new this.constructor[Symbol.species]().concat(...collections);\n\t}\n\n\t/**\n\t * Maps each item to another value into an array. Identical in behavior to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map | Array.map()}.\n\t *\n\t * @param fn - Function that produces an element of the new array, taking three arguments\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.map(user => user.tag);\n\t * ```\n\t */\n\tpublic map(fn: (value: V, key: K, collection: this) => T): T[];\n\tpublic map(fn: (this: This, value: V, key: K, collection: this) => T, thisArg: This): T[];\n\tpublic map(fn: (value: V, key: K, collection: this) => T, thisArg?: unknown): T[] {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tconst iter = this.entries();\n\t\treturn Array.from({ length: this.size }, (): T => {\n\t\t\tconst [key, value] = iter.next().value;\n\t\t\treturn fn(value, key, this);\n\t\t});\n\t}\n\n\t/**\n\t * Maps each item to another value into a collection. Identical in behavior to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map | Array.map()}.\n\t *\n\t * @param fn - Function that produces an element of the new collection, taking three arguments\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.mapValues(user => user.tag);\n\t * ```\n\t */\n\tpublic mapValues(fn: (value: V, key: K, collection: this) => T): Collection;\n\tpublic mapValues(fn: (this: This, value: V, key: K, collection: this) => T, thisArg: This): Collection;\n\tpublic mapValues(fn: (value: V, key: K, collection: this) => T, thisArg?: unknown): Collection {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tconst coll = new this.constructor[Symbol.species]();\n\t\tfor (const [key, val] of this) coll.set(key, fn(val, key, this));\n\t\treturn coll;\n\t}\n\n\t/**\n\t * Checks if there exists an item that passes a test. Identical in behavior to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some | Array.some()}.\n\t *\n\t * @param fn - Function used to test (should return a boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.some(user => user.discriminator === '0000');\n\t * ```\n\t */\n\tpublic some(fn: (value: V, key: K, collection: this) => unknown): boolean;\n\tpublic some(fn: (this: T, value: V, key: K, collection: this) => unknown, thisArg: T): boolean;\n\tpublic some(fn: (value: V, key: K, collection: this) => unknown, thisArg?: unknown): boolean {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tfor (const [key, val] of this) {\n\t\t\tif (fn(val, key, this)) return true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Checks if all items passes a test. Identical in behavior to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every | Array.every()}.\n\t *\n\t * @param fn - Function used to test (should return a boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.every(user => !user.bot);\n\t * ```\n\t */\n\tpublic every(fn: (value: V, key: K, collection: this) => key is K2): this is Collection;\n\tpublic every(fn: (value: V, key: K, collection: this) => value is V2): this is Collection;\n\tpublic every(fn: (value: V, key: K, collection: this) => unknown): boolean;\n\tpublic every(\n\t\tfn: (this: This, value: V, key: K, collection: this) => key is K2,\n\t\tthisArg: This,\n\t): this is Collection;\n\tpublic every(\n\t\tfn: (this: This, value: V, key: K, collection: this) => value is V2,\n\t\tthisArg: This,\n\t): this is Collection;\n\tpublic every(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): boolean;\n\tpublic every(fn: (value: V, key: K, collection: this) => unknown, thisArg?: unknown): boolean {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tfor (const [key, val] of this) {\n\t\t\tif (!fn(val, key, this)) return false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Applies a function to produce a single value. Identical in behavior to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce | Array.reduce()}.\n\t *\n\t * @param fn - Function used to reduce, taking four arguments; `accumulator`, `currentValue`, `currentKey`,\n\t * and `collection`\n\t * @param initialValue - Starting value for the accumulator\n\t * @example\n\t * ```ts\n\t * collection.reduce((acc, guild) => acc + guild.memberCount, 0);\n\t * ```\n\t */\n\tpublic reduce(fn: (accumulator: T, value: V, key: K, collection: this) => T, initialValue?: T): T {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tlet accumulator!: T;\n\n\t\tconst iterator = this.entries();\n\t\tif (initialValue === undefined) {\n\t\t\tif (this.size === 0) throw new TypeError('Reduce of empty collection with no initial value');\n\t\t\taccumulator = iterator.next().value[1];\n\t\t} else {\n\t\t\taccumulator = initialValue;\n\t\t}\n\n\t\tfor (const [key, value] of iterator) {\n\t\t\taccumulator = fn(accumulator, value, key, this);\n\t\t}\n\n\t\treturn accumulator;\n\t}\n\n\t/**\n\t * Identical to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/forEach | Map.forEach()},\n\t * but returns the collection instead of undefined.\n\t *\n\t * @param fn - Function to execute for each element\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection\n\t * .each(user => console.log(user.username))\n\t * .filter(user => user.bot)\n\t * .each(user => console.log(user.username));\n\t * ```\n\t */\n\tpublic each(fn: (value: V, key: K, collection: this) => void): this;\n\tpublic each(fn: (this: T, value: V, key: K, collection: this) => void, thisArg: T): this;\n\tpublic each(fn: (value: V, key: K, collection: this) => void, thisArg?: unknown): this {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\n\t\tfor (const [key, value] of this) {\n\t\t\tfn(value, key, this);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Runs a function on the collection and returns the collection.\n\t *\n\t * @param fn - Function to execute\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection\n\t * .tap(coll => console.log(coll.size))\n\t * .filter(user => user.bot)\n\t * .tap(coll => console.log(coll.size))\n\t * ```\n\t */\n\tpublic tap(fn: (collection: this) => void): this;\n\tpublic tap(fn: (this: T, collection: this) => void, thisArg: T): this;\n\tpublic tap(fn: (collection: this) => void, thisArg?: unknown): this {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tfn(this);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Creates an identical shallow copy of this collection.\n\t *\n\t * @example\n\t * ```ts\n\t * const newColl = someColl.clone();\n\t * ```\n\t */\n\tpublic clone(): Collection {\n\t\treturn new this.constructor[Symbol.species](this);\n\t}\n\n\t/**\n\t * Combines this collection with others into a new collection. None of the source collections are modified.\n\t *\n\t * @param collections - Collections to merge\n\t * @example\n\t * ```ts\n\t * const newColl = someColl.concat(someOtherColl, anotherColl, ohBoyAColl);\n\t * ```\n\t */\n\tpublic concat(...collections: ReadonlyCollection[]) {\n\t\tconst newColl = this.clone();\n\t\tfor (const coll of collections) {\n\t\t\tfor (const [key, val] of coll) newColl.set(key, val);\n\t\t}\n\n\t\treturn newColl;\n\t}\n\n\t/**\n\t * Checks if this collection shares identical items with another.\n\t * This is different to checking for equality using equal-signs, because\n\t * the collections may be different objects, but contain the same data.\n\t *\n\t * @param collection - Collection to compare with\n\t * @returns Whether the collections have identical contents\n\t */\n\tpublic equals(collection: ReadonlyCollection) {\n\t\tif (!collection) return false; // runtime check\n\t\tif (this === collection) return true;\n\t\tif (this.size !== collection.size) return false;\n\t\tfor (const [key, value] of this) {\n\t\t\tif (!collection.has(key) || value !== collection.get(key)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * The sort method sorts the items of a collection in place and returns it.\n\t * The sort is not necessarily stable in Node 10 or older.\n\t * The default sort order is according to string Unicode code points.\n\t *\n\t * @param compareFunction - Specifies a function that defines the sort order.\n\t * If omitted, the collection is sorted according to each character's Unicode code point value, according to the string conversion of each element.\n\t * @example\n\t * ```ts\n\t * collection.sort((userA, userB) => userA.createdTimestamp - userB.createdTimestamp);\n\t * ```\n\t */\n\tpublic sort(compareFunction: Comparator = Collection.defaultSort) {\n\t\tconst entries = [...this.entries()];\n\t\tentries.sort((a, b): number => compareFunction(a[1], b[1], a[0], b[0]));\n\n\t\t// Perform clean-up\n\t\tsuper.clear();\n\n\t\t// Set the new entries\n\t\tfor (const [key, value] of entries) {\n\t\t\tsuper.set(key, value);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * The intersect method returns a new structure containing items where the keys and values are present in both original structures.\n\t *\n\t * @param other - The other Collection to filter against\n\t */\n\tpublic intersect(other: ReadonlyCollection): Collection {\n\t\tconst coll = new this.constructor[Symbol.species]();\n\t\tfor (const [key, value] of other) {\n\t\t\tif (this.has(key) && Object.is(value, this.get(key))) {\n\t\t\t\tcoll.set(key, value);\n\t\t\t}\n\t\t}\n\n\t\treturn coll;\n\t}\n\n\t/**\n\t * The subtract method returns a new structure containing items where the keys and values of the original structure are not present in the other.\n\t *\n\t * @param other - The other Collection to filter against\n\t */\n\tpublic subtract(other: ReadonlyCollection): Collection {\n\t\tconst coll = new this.constructor[Symbol.species]();\n\t\tfor (const [key, value] of this) {\n\t\t\tif (!other.has(key) || !Object.is(value, other.get(key))) {\n\t\t\t\tcoll.set(key, value);\n\t\t\t}\n\t\t}\n\n\t\treturn coll;\n\t}\n\n\t/**\n\t * The difference method returns a new structure containing items where the key is present in one of the original structures but not the other.\n\t *\n\t * @param other - The other Collection to filter against\n\t */\n\tpublic difference(other: ReadonlyCollection): Collection {\n\t\tconst coll = new this.constructor[Symbol.species]();\n\t\tfor (const [key, value] of other) {\n\t\t\tif (!this.has(key)) coll.set(key, value);\n\t\t}\n\n\t\tfor (const [key, value] of this) {\n\t\t\tif (!other.has(key)) coll.set(key, value);\n\t\t}\n\n\t\treturn coll;\n\t}\n\n\t/**\n\t * Merges two Collections together into a new Collection.\n\t *\n\t * @param other - The other Collection to merge with\n\t * @param whenInSelf - Function getting the result if the entry only exists in this Collection\n\t * @param whenInOther - Function getting the result if the entry only exists in the other Collection\n\t * @param whenInBoth - Function getting the result if the entry exists in both Collections\n\t * @example\n\t * ```ts\n\t * // Sums up the entries in two collections.\n\t * coll.merge(\n\t * other,\n\t * x => ({ keep: true, value: x }),\n\t * y => ({ keep: true, value: y }),\n\t * (x, y) => ({ keep: true, value: x + y }),\n\t * );\n\t * ```\n\t * @example\n\t * ```ts\n\t * // Intersects two collections in a left-biased manner.\n\t * coll.merge(\n\t * other,\n\t * x => ({ keep: false }),\n\t * y => ({ keep: false }),\n\t * (x, _) => ({ keep: true, value: x }),\n\t * );\n\t * ```\n\t */\n\tpublic merge(\n\t\tother: ReadonlyCollection,\n\t\twhenInSelf: (value: V, key: K) => Keep,\n\t\twhenInOther: (valueOther: T, key: K) => Keep,\n\t\twhenInBoth: (value: V, valueOther: T, key: K) => Keep,\n\t): Collection {\n\t\tconst coll = new this.constructor[Symbol.species]();\n\t\tconst keys = new Set([...this.keys(), ...other.keys()]);\n\n\t\tfor (const key of keys) {\n\t\t\tconst hasInSelf = this.has(key);\n\t\t\tconst hasInOther = other.has(key);\n\n\t\t\tif (hasInSelf && hasInOther) {\n\t\t\t\tconst result = whenInBoth(this.get(key)!, other.get(key)!, key);\n\t\t\t\tif (result.keep) coll.set(key, result.value);\n\t\t\t} else if (hasInSelf) {\n\t\t\t\tconst result = whenInSelf(this.get(key)!, key);\n\t\t\t\tif (result.keep) coll.set(key, result.value);\n\t\t\t} else if (hasInOther) {\n\t\t\t\tconst result = whenInOther(other.get(key)!, key);\n\t\t\t\tif (result.keep) coll.set(key, result.value);\n\t\t\t}\n\t\t}\n\n\t\treturn coll;\n\t}\n\n\t/**\n\t * The sorted method sorts the items of a collection and returns it.\n\t * The sort is not necessarily stable in Node 10 or older.\n\t * The default sort order is according to string Unicode code points.\n\t *\n\t * @param compareFunction - Specifies a function that defines the sort order.\n\t * If omitted, the collection is sorted according to each character's Unicode code point value,\n\t * according to the string conversion of each element.\n\t * @example\n\t * ```ts\n\t * collection.sorted((userA, userB) => userA.createdTimestamp - userB.createdTimestamp);\n\t * ```\n\t */\n\tpublic sorted(compareFunction: Comparator = Collection.defaultSort) {\n\t\treturn new this.constructor[Symbol.species](this).sort((av, bv, ak, bk) => compareFunction(av, bv, ak, bk));\n\t}\n\n\tpublic toJSON() {\n\t\t// toJSON is called recursively by JSON.stringify.\n\t\treturn [...this.values()];\n\t}\n\n\tprivate static defaultSort(firstValue: V, secondValue: V): number {\n\t\treturn Number(firstValue > secondValue) || Number(firstValue === secondValue) - 1;\n\t}\n\n\t/**\n\t * Creates a Collection from a list of entries.\n\t *\n\t * @param entries - The list of entries\n\t * @param combine - Function to combine an existing entry with a new one\n\t * @example\n\t * ```ts\n\t * Collection.combineEntries([[\"a\", 1], [\"b\", 2], [\"a\", 2]], (x, y) => x + y);\n\t * // returns Collection { \"a\" => 3, \"b\" => 2 }\n\t * ```\n\t */\n\tpublic static combineEntries(\n\t\tentries: Iterable<[K, V]>,\n\t\tcombine: (firstValue: V, secondValue: V, key: K) => V,\n\t): Collection {\n\t\tconst coll = new Collection();\n\t\tfor (const [key, value] of entries) {\n\t\t\tif (coll.has(key)) {\n\t\t\t\tcoll.set(key, combine(coll.get(key)!, value, key));\n\t\t\t} else {\n\t\t\t\tcoll.set(key, value);\n\t\t\t}\n\t\t}\n\n\t\treturn coll;\n\t}\n}\n\n/**\n * @internal\n */\nexport type Keep = { keep: false } | { keep: true; value: V };\n\n/**\n * @internal\n */\nexport type Comparator = (firstValue: V, secondValue: V, firstKey: K, secondKey: K) => number;\n"],"mappings":"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","names":[]} \ No newline at end of file diff --git a/node_modules/@discordjs/collection/dist/index.mjs b/node_modules/@discordjs/collection/dist/index.mjs deleted file mode 100644 index c31c9ee..0000000 --- a/node_modules/@discordjs/collection/dist/index.mjs +++ /dev/null @@ -1,517 +0,0 @@ -var __defProp = Object.defineProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); - -// src/collection.ts -var Collection = class _Collection extends Map { - static { - __name(this, "Collection"); - } - /** - * Obtains the value of the given key if it exists, otherwise sets and returns the value provided by the default value generator. - * - * @param key - The key to get if it exists, or set otherwise - * @param defaultValueGenerator - A function that generates the default value - * @example - * ```ts - * collection.ensure(guildId, () => defaultGuildConfig); - * ``` - */ - ensure(key, defaultValueGenerator) { - if (this.has(key)) - return this.get(key); - if (typeof defaultValueGenerator !== "function") - throw new TypeError(`${defaultValueGenerator} is not a function`); - const defaultValue = defaultValueGenerator(key, this); - this.set(key, defaultValue); - return defaultValue; - } - /** - * Checks if all of the elements exist in the collection. - * - * @param keys - The keys of the elements to check for - * @returns `true` if all of the elements exist, `false` if at least one does not exist. - */ - hasAll(...keys) { - return keys.every((key) => super.has(key)); - } - /** - * Checks if any of the elements exist in the collection. - * - * @param keys - The keys of the elements to check for - * @returns `true` if any of the elements exist, `false` if none exist. - */ - hasAny(...keys) { - return keys.some((key) => super.has(key)); - } - first(amount) { - if (amount === void 0) - return this.values().next().value; - if (amount < 0) - return this.last(amount * -1); - amount = Math.min(this.size, amount); - const iter = this.values(); - return Array.from({ length: amount }, () => iter.next().value); - } - firstKey(amount) { - if (amount === void 0) - return this.keys().next().value; - if (amount < 0) - return this.lastKey(amount * -1); - amount = Math.min(this.size, amount); - const iter = this.keys(); - return Array.from({ length: amount }, () => iter.next().value); - } - last(amount) { - const arr = [...this.values()]; - if (amount === void 0) - return arr[arr.length - 1]; - if (amount < 0) - return this.first(amount * -1); - if (!amount) - return []; - return arr.slice(-amount); - } - lastKey(amount) { - const arr = [...this.keys()]; - if (amount === void 0) - return arr[arr.length - 1]; - if (amount < 0) - return this.firstKey(amount * -1); - if (!amount) - return []; - return arr.slice(-amount); - } - /** - * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at()}. - * Returns the item at a given index, allowing for positive and negative integers. - * Negative integers count back from the last item in the collection. - * - * @param index - The index of the element to obtain - */ - at(index) { - index = Math.floor(index); - const arr = [...this.values()]; - return arr.at(index); - } - /** - * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at()}. - * Returns the key at a given index, allowing for positive and negative integers. - * Negative integers count back from the last item in the collection. - * - * @param index - The index of the key to obtain - */ - keyAt(index) { - index = Math.floor(index); - const arr = [...this.keys()]; - return arr.at(index); - } - random(amount) { - const arr = [...this.values()]; - if (amount === void 0) - return arr[Math.floor(Math.random() * arr.length)]; - if (!arr.length || !amount) - return []; - return Array.from( - { length: Math.min(amount, arr.length) }, - () => arr.splice(Math.floor(Math.random() * arr.length), 1)[0] - ); - } - randomKey(amount) { - const arr = [...this.keys()]; - if (amount === void 0) - return arr[Math.floor(Math.random() * arr.length)]; - if (!arr.length || !amount) - return []; - return Array.from( - { length: Math.min(amount, arr.length) }, - () => arr.splice(Math.floor(Math.random() * arr.length), 1)[0] - ); - } - /** - * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse | Array.reverse()} - * but returns a Collection instead of an Array. - */ - reverse() { - const entries = [...this.entries()].reverse(); - this.clear(); - for (const [key, value] of entries) - this.set(key, value); - return this; - } - find(fn, thisArg) { - if (typeof fn !== "function") - throw new TypeError(`${fn} is not a function`); - if (thisArg !== void 0) - fn = fn.bind(thisArg); - for (const [key, val] of this) { - if (fn(val, key, this)) - return val; - } - return void 0; - } - findKey(fn, thisArg) { - if (typeof fn !== "function") - throw new TypeError(`${fn} is not a function`); - if (thisArg !== void 0) - fn = fn.bind(thisArg); - for (const [key, val] of this) { - if (fn(val, key, this)) - return key; - } - return void 0; - } - sweep(fn, thisArg) { - if (typeof fn !== "function") - throw new TypeError(`${fn} is not a function`); - if (thisArg !== void 0) - fn = fn.bind(thisArg); - const previousSize = this.size; - for (const [key, val] of this) { - if (fn(val, key, this)) - this.delete(key); - } - return previousSize - this.size; - } - filter(fn, thisArg) { - if (typeof fn !== "function") - throw new TypeError(`${fn} is not a function`); - if (thisArg !== void 0) - fn = fn.bind(thisArg); - const results = new this.constructor[Symbol.species](); - for (const [key, val] of this) { - if (fn(val, key, this)) - results.set(key, val); - } - return results; - } - partition(fn, thisArg) { - if (typeof fn !== "function") - throw new TypeError(`${fn} is not a function`); - if (thisArg !== void 0) - fn = fn.bind(thisArg); - const results = [ - new this.constructor[Symbol.species](), - new this.constructor[Symbol.species]() - ]; - for (const [key, val] of this) { - if (fn(val, key, this)) { - results[0].set(key, val); - } else { - results[1].set(key, val); - } - } - return results; - } - flatMap(fn, thisArg) { - const collections = this.map(fn, thisArg); - return new this.constructor[Symbol.species]().concat(...collections); - } - map(fn, thisArg) { - if (typeof fn !== "function") - throw new TypeError(`${fn} is not a function`); - if (thisArg !== void 0) - fn = fn.bind(thisArg); - const iter = this.entries(); - return Array.from({ length: this.size }, () => { - const [key, value] = iter.next().value; - return fn(value, key, this); - }); - } - mapValues(fn, thisArg) { - if (typeof fn !== "function") - throw new TypeError(`${fn} is not a function`); - if (thisArg !== void 0) - fn = fn.bind(thisArg); - const coll = new this.constructor[Symbol.species](); - for (const [key, val] of this) - coll.set(key, fn(val, key, this)); - return coll; - } - some(fn, thisArg) { - if (typeof fn !== "function") - throw new TypeError(`${fn} is not a function`); - if (thisArg !== void 0) - fn = fn.bind(thisArg); - for (const [key, val] of this) { - if (fn(val, key, this)) - return true; - } - return false; - } - every(fn, thisArg) { - if (typeof fn !== "function") - throw new TypeError(`${fn} is not a function`); - if (thisArg !== void 0) - fn = fn.bind(thisArg); - for (const [key, val] of this) { - if (!fn(val, key, this)) - return false; - } - return true; - } - /** - * Applies a function to produce a single value. Identical in behavior to - * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce | Array.reduce()}. - * - * @param fn - Function used to reduce, taking four arguments; `accumulator`, `currentValue`, `currentKey`, - * and `collection` - * @param initialValue - Starting value for the accumulator - * @example - * ```ts - * collection.reduce((acc, guild) => acc + guild.memberCount, 0); - * ``` - */ - reduce(fn, initialValue) { - if (typeof fn !== "function") - throw new TypeError(`${fn} is not a function`); - let accumulator; - const iterator = this.entries(); - if (initialValue === void 0) { - if (this.size === 0) - throw new TypeError("Reduce of empty collection with no initial value"); - accumulator = iterator.next().value[1]; - } else { - accumulator = initialValue; - } - for (const [key, value] of iterator) { - accumulator = fn(accumulator, value, key, this); - } - return accumulator; - } - each(fn, thisArg) { - if (typeof fn !== "function") - throw new TypeError(`${fn} is not a function`); - if (thisArg !== void 0) - fn = fn.bind(thisArg); - for (const [key, value] of this) { - fn(value, key, this); - } - return this; - } - tap(fn, thisArg) { - if (typeof fn !== "function") - throw new TypeError(`${fn} is not a function`); - if (thisArg !== void 0) - fn = fn.bind(thisArg); - fn(this); - return this; - } - /** - * Creates an identical shallow copy of this collection. - * - * @example - * ```ts - * const newColl = someColl.clone(); - * ``` - */ - clone() { - return new this.constructor[Symbol.species](this); - } - /** - * Combines this collection with others into a new collection. None of the source collections are modified. - * - * @param collections - Collections to merge - * @example - * ```ts - * const newColl = someColl.concat(someOtherColl, anotherColl, ohBoyAColl); - * ``` - */ - concat(...collections) { - const newColl = this.clone(); - for (const coll of collections) { - for (const [key, val] of coll) - newColl.set(key, val); - } - return newColl; - } - /** - * Checks if this collection shares identical items with another. - * This is different to checking for equality using equal-signs, because - * the collections may be different objects, but contain the same data. - * - * @param collection - Collection to compare with - * @returns Whether the collections have identical contents - */ - equals(collection) { - if (!collection) - return false; - if (this === collection) - return true; - if (this.size !== collection.size) - return false; - for (const [key, value] of this) { - if (!collection.has(key) || value !== collection.get(key)) { - return false; - } - } - return true; - } - /** - * The sort method sorts the items of a collection in place and returns it. - * The sort is not necessarily stable in Node 10 or older. - * The default sort order is according to string Unicode code points. - * - * @param compareFunction - Specifies a function that defines the sort order. - * If omitted, the collection is sorted according to each character's Unicode code point value, according to the string conversion of each element. - * @example - * ```ts - * collection.sort((userA, userB) => userA.createdTimestamp - userB.createdTimestamp); - * ``` - */ - sort(compareFunction = _Collection.defaultSort) { - const entries = [...this.entries()]; - entries.sort((a, b) => compareFunction(a[1], b[1], a[0], b[0])); - super.clear(); - for (const [key, value] of entries) { - super.set(key, value); - } - return this; - } - /** - * The intersect method returns a new structure containing items where the keys and values are present in both original structures. - * - * @param other - The other Collection to filter against - */ - intersect(other) { - const coll = new this.constructor[Symbol.species](); - for (const [key, value] of other) { - if (this.has(key) && Object.is(value, this.get(key))) { - coll.set(key, value); - } - } - return coll; - } - /** - * The subtract method returns a new structure containing items where the keys and values of the original structure are not present in the other. - * - * @param other - The other Collection to filter against - */ - subtract(other) { - const coll = new this.constructor[Symbol.species](); - for (const [key, value] of this) { - if (!other.has(key) || !Object.is(value, other.get(key))) { - coll.set(key, value); - } - } - return coll; - } - /** - * The difference method returns a new structure containing items where the key is present in one of the original structures but not the other. - * - * @param other - The other Collection to filter against - */ - difference(other) { - const coll = new this.constructor[Symbol.species](); - for (const [key, value] of other) { - if (!this.has(key)) - coll.set(key, value); - } - for (const [key, value] of this) { - if (!other.has(key)) - coll.set(key, value); - } - return coll; - } - /** - * Merges two Collections together into a new Collection. - * - * @param other - The other Collection to merge with - * @param whenInSelf - Function getting the result if the entry only exists in this Collection - * @param whenInOther - Function getting the result if the entry only exists in the other Collection - * @param whenInBoth - Function getting the result if the entry exists in both Collections - * @example - * ```ts - * // Sums up the entries in two collections. - * coll.merge( - * other, - * x => ({ keep: true, value: x }), - * y => ({ keep: true, value: y }), - * (x, y) => ({ keep: true, value: x + y }), - * ); - * ``` - * @example - * ```ts - * // Intersects two collections in a left-biased manner. - * coll.merge( - * other, - * x => ({ keep: false }), - * y => ({ keep: false }), - * (x, _) => ({ keep: true, value: x }), - * ); - * ``` - */ - merge(other, whenInSelf, whenInOther, whenInBoth) { - const coll = new this.constructor[Symbol.species](); - const keys = /* @__PURE__ */ new Set([...this.keys(), ...other.keys()]); - for (const key of keys) { - const hasInSelf = this.has(key); - const hasInOther = other.has(key); - if (hasInSelf && hasInOther) { - const result = whenInBoth(this.get(key), other.get(key), key); - if (result.keep) - coll.set(key, result.value); - } else if (hasInSelf) { - const result = whenInSelf(this.get(key), key); - if (result.keep) - coll.set(key, result.value); - } else if (hasInOther) { - const result = whenInOther(other.get(key), key); - if (result.keep) - coll.set(key, result.value); - } - } - return coll; - } - /** - * The sorted method sorts the items of a collection and returns it. - * The sort is not necessarily stable in Node 10 or older. - * The default sort order is according to string Unicode code points. - * - * @param compareFunction - Specifies a function that defines the sort order. - * If omitted, the collection is sorted according to each character's Unicode code point value, - * according to the string conversion of each element. - * @example - * ```ts - * collection.sorted((userA, userB) => userA.createdTimestamp - userB.createdTimestamp); - * ``` - */ - sorted(compareFunction = _Collection.defaultSort) { - return new this.constructor[Symbol.species](this).sort((av, bv, ak, bk) => compareFunction(av, bv, ak, bk)); - } - toJSON() { - return [...this.values()]; - } - static defaultSort(firstValue, secondValue) { - return Number(firstValue > secondValue) || Number(firstValue === secondValue) - 1; - } - /** - * Creates a Collection from a list of entries. - * - * @param entries - The list of entries - * @param combine - Function to combine an existing entry with a new one - * @example - * ```ts - * Collection.combineEntries([["a", 1], ["b", 2], ["a", 2]], (x, y) => x + y); - * // returns Collection { "a" => 3, "b" => 2 } - * ``` - */ - static combineEntries(entries, combine) { - const coll = new _Collection(); - for (const [key, value] of entries) { - if (coll.has(key)) { - coll.set(key, combine(coll.get(key), value, key)); - } else { - coll.set(key, value); - } - } - return coll; - } -}; - -// src/index.ts -var version = "1.5.3"; -export { - Collection, - version -}; -//# sourceMappingURL=index.mjs.map \ No newline at end of file diff --git a/node_modules/@discordjs/collection/dist/index.mjs.map b/node_modules/@discordjs/collection/dist/index.mjs.map deleted file mode 100644 index fcf72ab..0000000 --- a/node_modules/@discordjs/collection/dist/index.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/collection.ts","../src/index.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\n/**\n * @internal\n */\nexport interface CollectionConstructor {\n\tnew (): Collection;\n\tnew (entries?: readonly (readonly [K, V])[] | null): Collection;\n\tnew (iterable: Iterable): Collection;\n\treadonly prototype: Collection;\n\treadonly [Symbol.species]: CollectionConstructor;\n}\n\n/**\n * Represents an immutable version of a collection\n */\nexport type ReadonlyCollection = Omit<\n\tCollection,\n\t'delete' | 'ensure' | 'forEach' | 'get' | 'reverse' | 'set' | 'sort' | 'sweep'\n> &\n\tReadonlyMap;\n\n/**\n * Separate interface for the constructor so that emitted js does not have a constructor that overwrites itself\n *\n * @internal\n */\nexport interface Collection extends Map {\n\tconstructor: CollectionConstructor;\n}\n\n/**\n * A Map with additional utility methods. This is used throughout discord.js rather than Arrays for anything that has\n * an ID, for significantly improved performance and ease-of-use.\n *\n * @typeParam K - The key type this collection holds\n * @typeParam V - The value type this collection holds\n */\nexport class Collection extends Map {\n\t/**\n\t * Obtains the value of the given key if it exists, otherwise sets and returns the value provided by the default value generator.\n\t *\n\t * @param key - The key to get if it exists, or set otherwise\n\t * @param defaultValueGenerator - A function that generates the default value\n\t * @example\n\t * ```ts\n\t * collection.ensure(guildId, () => defaultGuildConfig);\n\t * ```\n\t */\n\tpublic ensure(key: K, defaultValueGenerator: (key: K, collection: this) => V): V {\n\t\tif (this.has(key)) return this.get(key)!;\n\t\tif (typeof defaultValueGenerator !== 'function') throw new TypeError(`${defaultValueGenerator} is not a function`);\n\t\tconst defaultValue = defaultValueGenerator(key, this);\n\t\tthis.set(key, defaultValue);\n\t\treturn defaultValue;\n\t}\n\n\t/**\n\t * Checks if all of the elements exist in the collection.\n\t *\n\t * @param keys - The keys of the elements to check for\n\t * @returns `true` if all of the elements exist, `false` if at least one does not exist.\n\t */\n\tpublic hasAll(...keys: K[]) {\n\t\treturn keys.every((key) => super.has(key));\n\t}\n\n\t/**\n\t * Checks if any of the elements exist in the collection.\n\t *\n\t * @param keys - The keys of the elements to check for\n\t * @returns `true` if any of the elements exist, `false` if none exist.\n\t */\n\tpublic hasAny(...keys: K[]) {\n\t\treturn keys.some((key) => super.has(key));\n\t}\n\n\t/**\n\t * Obtains the first value(s) in this collection.\n\t *\n\t * @param amount - Amount of values to obtain from the beginning\n\t * @returns A single value if no amount is provided or an array of values, starting from the end if amount is negative\n\t */\n\tpublic first(): V | undefined;\n\tpublic first(amount: number): V[];\n\tpublic first(amount?: number): V | V[] | undefined {\n\t\tif (amount === undefined) return this.values().next().value;\n\t\tif (amount < 0) return this.last(amount * -1);\n\t\tamount = Math.min(this.size, amount);\n\t\tconst iter = this.values();\n\t\treturn Array.from({ length: amount }, (): V => iter.next().value);\n\t}\n\n\t/**\n\t * Obtains the first key(s) in this collection.\n\t *\n\t * @param amount - Amount of keys to obtain from the beginning\n\t * @returns A single key if no amount is provided or an array of keys, starting from the end if\n\t * amount is negative\n\t */\n\tpublic firstKey(): K | undefined;\n\tpublic firstKey(amount: number): K[];\n\tpublic firstKey(amount?: number): K | K[] | undefined {\n\t\tif (amount === undefined) return this.keys().next().value;\n\t\tif (amount < 0) return this.lastKey(amount * -1);\n\t\tamount = Math.min(this.size, amount);\n\t\tconst iter = this.keys();\n\t\treturn Array.from({ length: amount }, (): K => iter.next().value);\n\t}\n\n\t/**\n\t * Obtains the last value(s) in this collection.\n\t *\n\t * @param amount - Amount of values to obtain from the end\n\t * @returns A single value if no amount is provided or an array of values, starting from the start if\n\t * amount is negative\n\t */\n\tpublic last(): V | undefined;\n\tpublic last(amount: number): V[];\n\tpublic last(amount?: number): V | V[] | undefined {\n\t\tconst arr = [...this.values()];\n\t\tif (amount === undefined) return arr[arr.length - 1];\n\t\tif (amount < 0) return this.first(amount * -1);\n\t\tif (!amount) return [];\n\t\treturn arr.slice(-amount);\n\t}\n\n\t/**\n\t * Obtains the last key(s) in this collection.\n\t *\n\t * @param amount - Amount of keys to obtain from the end\n\t * @returns A single key if no amount is provided or an array of keys, starting from the start if\n\t * amount is negative\n\t */\n\tpublic lastKey(): K | undefined;\n\tpublic lastKey(amount: number): K[];\n\tpublic lastKey(amount?: number): K | K[] | undefined {\n\t\tconst arr = [...this.keys()];\n\t\tif (amount === undefined) return arr[arr.length - 1];\n\t\tif (amount < 0) return this.firstKey(amount * -1);\n\t\tif (!amount) return [];\n\t\treturn arr.slice(-amount);\n\t}\n\n\t/**\n\t * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at()}.\n\t * Returns the item at a given index, allowing for positive and negative integers.\n\t * Negative integers count back from the last item in the collection.\n\t *\n\t * @param index - The index of the element to obtain\n\t */\n\tpublic at(index: number) {\n\t\tindex = Math.floor(index);\n\t\tconst arr = [...this.values()];\n\t\treturn arr.at(index);\n\t}\n\n\t/**\n\t * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at()}.\n\t * Returns the key at a given index, allowing for positive and negative integers.\n\t * Negative integers count back from the last item in the collection.\n\t *\n\t * @param index - The index of the key to obtain\n\t */\n\tpublic keyAt(index: number) {\n\t\tindex = Math.floor(index);\n\t\tconst arr = [...this.keys()];\n\t\treturn arr.at(index);\n\t}\n\n\t/**\n\t * Obtains unique random value(s) from this collection.\n\t *\n\t * @param amount - Amount of values to obtain randomly\n\t * @returns A single value if no amount is provided or an array of values\n\t */\n\tpublic random(): V | undefined;\n\tpublic random(amount: number): V[];\n\tpublic random(amount?: number): V | V[] | undefined {\n\t\tconst arr = [...this.values()];\n\t\tif (amount === undefined) return arr[Math.floor(Math.random() * arr.length)];\n\t\tif (!arr.length || !amount) return [];\n\t\treturn Array.from(\n\t\t\t{ length: Math.min(amount, arr.length) },\n\t\t\t(): V => arr.splice(Math.floor(Math.random() * arr.length), 1)[0]!,\n\t\t);\n\t}\n\n\t/**\n\t * Obtains unique random key(s) from this collection.\n\t *\n\t * @param amount - Amount of keys to obtain randomly\n\t * @returns A single key if no amount is provided or an array\n\t */\n\tpublic randomKey(): K | undefined;\n\tpublic randomKey(amount: number): K[];\n\tpublic randomKey(amount?: number): K | K[] | undefined {\n\t\tconst arr = [...this.keys()];\n\t\tif (amount === undefined) return arr[Math.floor(Math.random() * arr.length)];\n\t\tif (!arr.length || !amount) return [];\n\t\treturn Array.from(\n\t\t\t{ length: Math.min(amount, arr.length) },\n\t\t\t(): K => arr.splice(Math.floor(Math.random() * arr.length), 1)[0]!,\n\t\t);\n\t}\n\n\t/**\n\t * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse | Array.reverse()}\n\t * but returns a Collection instead of an Array.\n\t */\n\tpublic reverse() {\n\t\tconst entries = [...this.entries()].reverse();\n\t\tthis.clear();\n\t\tfor (const [key, value] of entries) this.set(key, value);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Searches for a single item where the given function returns a truthy value. This behaves like\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find | Array.find()}.\n\t * All collections used in Discord.js are mapped using their `id` property, and if you want to find by id you\n\t * should use the `get` method. See\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/get | MDN} for details.\n\t *\n\t * @param fn - The function to test with (should return boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.find(user => user.username === 'Bob');\n\t * ```\n\t */\n\tpublic find(fn: (value: V, key: K, collection: this) => value is V2): V2 | undefined;\n\tpublic find(fn: (value: V, key: K, collection: this) => unknown): V | undefined;\n\tpublic find(\n\t\tfn: (this: This, value: V, key: K, collection: this) => value is V2,\n\t\tthisArg: This,\n\t): V2 | undefined;\n\tpublic find(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): V | undefined;\n\tpublic find(fn: (value: V, key: K, collection: this) => unknown, thisArg?: unknown): V | undefined {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tfor (const [key, val] of this) {\n\t\t\tif (fn(val, key, this)) return val;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Searches for the key of a single item where the given function returns a truthy value. This behaves like\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex | Array.findIndex()},\n\t * but returns the key rather than the positional index.\n\t *\n\t * @param fn - The function to test with (should return boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.findKey(user => user.username === 'Bob');\n\t * ```\n\t */\n\tpublic findKey(fn: (value: V, key: K, collection: this) => key is K2): K2 | undefined;\n\tpublic findKey(fn: (value: V, key: K, collection: this) => unknown): K | undefined;\n\tpublic findKey(\n\t\tfn: (this: This, value: V, key: K, collection: this) => key is K2,\n\t\tthisArg: This,\n\t): K2 | undefined;\n\tpublic findKey(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): K | undefined;\n\tpublic findKey(fn: (value: V, key: K, collection: this) => unknown, thisArg?: unknown): K | undefined {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tfor (const [key, val] of this) {\n\t\t\tif (fn(val, key, this)) return key;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Removes items that satisfy the provided filter function.\n\t *\n\t * @param fn - Function used to test (should return a boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @returns The number of removed entries\n\t */\n\tpublic sweep(fn: (value: V, key: K, collection: this) => unknown): number;\n\tpublic sweep(fn: (this: T, value: V, key: K, collection: this) => unknown, thisArg: T): number;\n\tpublic sweep(fn: (value: V, key: K, collection: this) => unknown, thisArg?: unknown): number {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tconst previousSize = this.size;\n\t\tfor (const [key, val] of this) {\n\t\t\tif (fn(val, key, this)) this.delete(key);\n\t\t}\n\n\t\treturn previousSize - this.size;\n\t}\n\n\t/**\n\t * Identical to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter | Array.filter()},\n\t * but returns a Collection instead of an Array.\n\t *\n\t * @param fn - The function to test with (should return boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.filter(user => user.username === 'Bob');\n\t * ```\n\t */\n\tpublic filter(fn: (value: V, key: K, collection: this) => key is K2): Collection;\n\tpublic filter(fn: (value: V, key: K, collection: this) => value is V2): Collection;\n\tpublic filter(fn: (value: V, key: K, collection: this) => unknown): Collection;\n\tpublic filter(\n\t\tfn: (this: This, value: V, key: K, collection: this) => key is K2,\n\t\tthisArg: This,\n\t): Collection;\n\tpublic filter(\n\t\tfn: (this: This, value: V, key: K, collection: this) => value is V2,\n\t\tthisArg: This,\n\t): Collection;\n\tpublic filter(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): Collection;\n\tpublic filter(fn: (value: V, key: K, collection: this) => unknown, thisArg?: unknown): Collection {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tconst results = new this.constructor[Symbol.species]();\n\t\tfor (const [key, val] of this) {\n\t\t\tif (fn(val, key, this)) results.set(key, val);\n\t\t}\n\n\t\treturn results;\n\t}\n\n\t/**\n\t * Partitions the collection into two collections where the first collection\n\t * contains the items that passed and the second contains the items that failed.\n\t *\n\t * @param fn - Function used to test (should return a boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * const [big, small] = collection.partition(guild => guild.memberCount > 250);\n\t * ```\n\t */\n\tpublic partition(\n\t\tfn: (value: V, key: K, collection: this) => key is K2,\n\t): [Collection, Collection, V>];\n\tpublic partition(\n\t\tfn: (value: V, key: K, collection: this) => value is V2,\n\t): [Collection, Collection>];\n\tpublic partition(fn: (value: V, key: K, collection: this) => unknown): [Collection, Collection];\n\tpublic partition(\n\t\tfn: (this: This, value: V, key: K, collection: this) => key is K2,\n\t\tthisArg: This,\n\t): [Collection, Collection, V>];\n\tpublic partition(\n\t\tfn: (this: This, value: V, key: K, collection: this) => value is V2,\n\t\tthisArg: This,\n\t): [Collection, Collection>];\n\tpublic partition(\n\t\tfn: (this: This, value: V, key: K, collection: this) => unknown,\n\t\tthisArg: This,\n\t): [Collection, Collection];\n\tpublic partition(\n\t\tfn: (value: V, key: K, collection: this) => unknown,\n\t\tthisArg?: unknown,\n\t): [Collection, Collection] {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tconst results: [Collection, Collection] = [\n\t\t\tnew this.constructor[Symbol.species](),\n\t\t\tnew this.constructor[Symbol.species](),\n\t\t];\n\t\tfor (const [key, val] of this) {\n\t\t\tif (fn(val, key, this)) {\n\t\t\t\tresults[0].set(key, val);\n\t\t\t} else {\n\t\t\t\tresults[1].set(key, val);\n\t\t\t}\n\t\t}\n\n\t\treturn results;\n\t}\n\n\t/**\n\t * Maps each item into a Collection, then joins the results into a single Collection. Identical in behavior to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap | Array.flatMap()}.\n\t *\n\t * @param fn - Function that produces a new Collection\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.flatMap(guild => guild.members.cache);\n\t * ```\n\t */\n\tpublic flatMap(fn: (value: V, key: K, collection: this) => Collection): Collection;\n\tpublic flatMap(\n\t\tfn: (this: This, value: V, key: K, collection: this) => Collection,\n\t\tthisArg: This,\n\t): Collection;\n\tpublic flatMap(fn: (value: V, key: K, collection: this) => Collection, thisArg?: unknown): Collection {\n\t\t// eslint-disable-next-line unicorn/no-array-method-this-argument\n\t\tconst collections = this.map(fn, thisArg);\n\t\treturn new this.constructor[Symbol.species]().concat(...collections);\n\t}\n\n\t/**\n\t * Maps each item to another value into an array. Identical in behavior to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map | Array.map()}.\n\t *\n\t * @param fn - Function that produces an element of the new array, taking three arguments\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.map(user => user.tag);\n\t * ```\n\t */\n\tpublic map(fn: (value: V, key: K, collection: this) => T): T[];\n\tpublic map(fn: (this: This, value: V, key: K, collection: this) => T, thisArg: This): T[];\n\tpublic map(fn: (value: V, key: K, collection: this) => T, thisArg?: unknown): T[] {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tconst iter = this.entries();\n\t\treturn Array.from({ length: this.size }, (): T => {\n\t\t\tconst [key, value] = iter.next().value;\n\t\t\treturn fn(value, key, this);\n\t\t});\n\t}\n\n\t/**\n\t * Maps each item to another value into a collection. Identical in behavior to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map | Array.map()}.\n\t *\n\t * @param fn - Function that produces an element of the new collection, taking three arguments\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.mapValues(user => user.tag);\n\t * ```\n\t */\n\tpublic mapValues(fn: (value: V, key: K, collection: this) => T): Collection;\n\tpublic mapValues(fn: (this: This, value: V, key: K, collection: this) => T, thisArg: This): Collection;\n\tpublic mapValues(fn: (value: V, key: K, collection: this) => T, thisArg?: unknown): Collection {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tconst coll = new this.constructor[Symbol.species]();\n\t\tfor (const [key, val] of this) coll.set(key, fn(val, key, this));\n\t\treturn coll;\n\t}\n\n\t/**\n\t * Checks if there exists an item that passes a test. Identical in behavior to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some | Array.some()}.\n\t *\n\t * @param fn - Function used to test (should return a boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.some(user => user.discriminator === '0000');\n\t * ```\n\t */\n\tpublic some(fn: (value: V, key: K, collection: this) => unknown): boolean;\n\tpublic some(fn: (this: T, value: V, key: K, collection: this) => unknown, thisArg: T): boolean;\n\tpublic some(fn: (value: V, key: K, collection: this) => unknown, thisArg?: unknown): boolean {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tfor (const [key, val] of this) {\n\t\t\tif (fn(val, key, this)) return true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Checks if all items passes a test. Identical in behavior to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every | Array.every()}.\n\t *\n\t * @param fn - Function used to test (should return a boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.every(user => !user.bot);\n\t * ```\n\t */\n\tpublic every(fn: (value: V, key: K, collection: this) => key is K2): this is Collection;\n\tpublic every(fn: (value: V, key: K, collection: this) => value is V2): this is Collection;\n\tpublic every(fn: (value: V, key: K, collection: this) => unknown): boolean;\n\tpublic every(\n\t\tfn: (this: This, value: V, key: K, collection: this) => key is K2,\n\t\tthisArg: This,\n\t): this is Collection;\n\tpublic every(\n\t\tfn: (this: This, value: V, key: K, collection: this) => value is V2,\n\t\tthisArg: This,\n\t): this is Collection;\n\tpublic every(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): boolean;\n\tpublic every(fn: (value: V, key: K, collection: this) => unknown, thisArg?: unknown): boolean {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tfor (const [key, val] of this) {\n\t\t\tif (!fn(val, key, this)) return false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Applies a function to produce a single value. Identical in behavior to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce | Array.reduce()}.\n\t *\n\t * @param fn - Function used to reduce, taking four arguments; `accumulator`, `currentValue`, `currentKey`,\n\t * and `collection`\n\t * @param initialValue - Starting value for the accumulator\n\t * @example\n\t * ```ts\n\t * collection.reduce((acc, guild) => acc + guild.memberCount, 0);\n\t * ```\n\t */\n\tpublic reduce(fn: (accumulator: T, value: V, key: K, collection: this) => T, initialValue?: T): T {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tlet accumulator!: T;\n\n\t\tconst iterator = this.entries();\n\t\tif (initialValue === undefined) {\n\t\t\tif (this.size === 0) throw new TypeError('Reduce of empty collection with no initial value');\n\t\t\taccumulator = iterator.next().value[1];\n\t\t} else {\n\t\t\taccumulator = initialValue;\n\t\t}\n\n\t\tfor (const [key, value] of iterator) {\n\t\t\taccumulator = fn(accumulator, value, key, this);\n\t\t}\n\n\t\treturn accumulator;\n\t}\n\n\t/**\n\t * Identical to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/forEach | Map.forEach()},\n\t * but returns the collection instead of undefined.\n\t *\n\t * @param fn - Function to execute for each element\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection\n\t * .each(user => console.log(user.username))\n\t * .filter(user => user.bot)\n\t * .each(user => console.log(user.username));\n\t * ```\n\t */\n\tpublic each(fn: (value: V, key: K, collection: this) => void): this;\n\tpublic each(fn: (this: T, value: V, key: K, collection: this) => void, thisArg: T): this;\n\tpublic each(fn: (value: V, key: K, collection: this) => void, thisArg?: unknown): this {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\n\t\tfor (const [key, value] of this) {\n\t\t\tfn(value, key, this);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Runs a function on the collection and returns the collection.\n\t *\n\t * @param fn - Function to execute\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection\n\t * .tap(coll => console.log(coll.size))\n\t * .filter(user => user.bot)\n\t * .tap(coll => console.log(coll.size))\n\t * ```\n\t */\n\tpublic tap(fn: (collection: this) => void): this;\n\tpublic tap(fn: (this: T, collection: this) => void, thisArg: T): this;\n\tpublic tap(fn: (collection: this) => void, thisArg?: unknown): this {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tfn(this);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Creates an identical shallow copy of this collection.\n\t *\n\t * @example\n\t * ```ts\n\t * const newColl = someColl.clone();\n\t * ```\n\t */\n\tpublic clone(): Collection {\n\t\treturn new this.constructor[Symbol.species](this);\n\t}\n\n\t/**\n\t * Combines this collection with others into a new collection. None of the source collections are modified.\n\t *\n\t * @param collections - Collections to merge\n\t * @example\n\t * ```ts\n\t * const newColl = someColl.concat(someOtherColl, anotherColl, ohBoyAColl);\n\t * ```\n\t */\n\tpublic concat(...collections: ReadonlyCollection[]) {\n\t\tconst newColl = this.clone();\n\t\tfor (const coll of collections) {\n\t\t\tfor (const [key, val] of coll) newColl.set(key, val);\n\t\t}\n\n\t\treturn newColl;\n\t}\n\n\t/**\n\t * Checks if this collection shares identical items with another.\n\t * This is different to checking for equality using equal-signs, because\n\t * the collections may be different objects, but contain the same data.\n\t *\n\t * @param collection - Collection to compare with\n\t * @returns Whether the collections have identical contents\n\t */\n\tpublic equals(collection: ReadonlyCollection) {\n\t\tif (!collection) return false; // runtime check\n\t\tif (this === collection) return true;\n\t\tif (this.size !== collection.size) return false;\n\t\tfor (const [key, value] of this) {\n\t\t\tif (!collection.has(key) || value !== collection.get(key)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * The sort method sorts the items of a collection in place and returns it.\n\t * The sort is not necessarily stable in Node 10 or older.\n\t * The default sort order is according to string Unicode code points.\n\t *\n\t * @param compareFunction - Specifies a function that defines the sort order.\n\t * If omitted, the collection is sorted according to each character's Unicode code point value, according to the string conversion of each element.\n\t * @example\n\t * ```ts\n\t * collection.sort((userA, userB) => userA.createdTimestamp - userB.createdTimestamp);\n\t * ```\n\t */\n\tpublic sort(compareFunction: Comparator = Collection.defaultSort) {\n\t\tconst entries = [...this.entries()];\n\t\tentries.sort((a, b): number => compareFunction(a[1], b[1], a[0], b[0]));\n\n\t\t// Perform clean-up\n\t\tsuper.clear();\n\n\t\t// Set the new entries\n\t\tfor (const [key, value] of entries) {\n\t\t\tsuper.set(key, value);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * The intersect method returns a new structure containing items where the keys and values are present in both original structures.\n\t *\n\t * @param other - The other Collection to filter against\n\t */\n\tpublic intersect(other: ReadonlyCollection): Collection {\n\t\tconst coll = new this.constructor[Symbol.species]();\n\t\tfor (const [key, value] of other) {\n\t\t\tif (this.has(key) && Object.is(value, this.get(key))) {\n\t\t\t\tcoll.set(key, value);\n\t\t\t}\n\t\t}\n\n\t\treturn coll;\n\t}\n\n\t/**\n\t * The subtract method returns a new structure containing items where the keys and values of the original structure are not present in the other.\n\t *\n\t * @param other - The other Collection to filter against\n\t */\n\tpublic subtract(other: ReadonlyCollection): Collection {\n\t\tconst coll = new this.constructor[Symbol.species]();\n\t\tfor (const [key, value] of this) {\n\t\t\tif (!other.has(key) || !Object.is(value, other.get(key))) {\n\t\t\t\tcoll.set(key, value);\n\t\t\t}\n\t\t}\n\n\t\treturn coll;\n\t}\n\n\t/**\n\t * The difference method returns a new structure containing items where the key is present in one of the original structures but not the other.\n\t *\n\t * @param other - The other Collection to filter against\n\t */\n\tpublic difference(other: ReadonlyCollection): Collection {\n\t\tconst coll = new this.constructor[Symbol.species]();\n\t\tfor (const [key, value] of other) {\n\t\t\tif (!this.has(key)) coll.set(key, value);\n\t\t}\n\n\t\tfor (const [key, value] of this) {\n\t\t\tif (!other.has(key)) coll.set(key, value);\n\t\t}\n\n\t\treturn coll;\n\t}\n\n\t/**\n\t * Merges two Collections together into a new Collection.\n\t *\n\t * @param other - The other Collection to merge with\n\t * @param whenInSelf - Function getting the result if the entry only exists in this Collection\n\t * @param whenInOther - Function getting the result if the entry only exists in the other Collection\n\t * @param whenInBoth - Function getting the result if the entry exists in both Collections\n\t * @example\n\t * ```ts\n\t * // Sums up the entries in two collections.\n\t * coll.merge(\n\t * other,\n\t * x => ({ keep: true, value: x }),\n\t * y => ({ keep: true, value: y }),\n\t * (x, y) => ({ keep: true, value: x + y }),\n\t * );\n\t * ```\n\t * @example\n\t * ```ts\n\t * // Intersects two collections in a left-biased manner.\n\t * coll.merge(\n\t * other,\n\t * x => ({ keep: false }),\n\t * y => ({ keep: false }),\n\t * (x, _) => ({ keep: true, value: x }),\n\t * );\n\t * ```\n\t */\n\tpublic merge(\n\t\tother: ReadonlyCollection,\n\t\twhenInSelf: (value: V, key: K) => Keep,\n\t\twhenInOther: (valueOther: T, key: K) => Keep,\n\t\twhenInBoth: (value: V, valueOther: T, key: K) => Keep,\n\t): Collection {\n\t\tconst coll = new this.constructor[Symbol.species]();\n\t\tconst keys = new Set([...this.keys(), ...other.keys()]);\n\n\t\tfor (const key of keys) {\n\t\t\tconst hasInSelf = this.has(key);\n\t\t\tconst hasInOther = other.has(key);\n\n\t\t\tif (hasInSelf && hasInOther) {\n\t\t\t\tconst result = whenInBoth(this.get(key)!, other.get(key)!, key);\n\t\t\t\tif (result.keep) coll.set(key, result.value);\n\t\t\t} else if (hasInSelf) {\n\t\t\t\tconst result = whenInSelf(this.get(key)!, key);\n\t\t\t\tif (result.keep) coll.set(key, result.value);\n\t\t\t} else if (hasInOther) {\n\t\t\t\tconst result = whenInOther(other.get(key)!, key);\n\t\t\t\tif (result.keep) coll.set(key, result.value);\n\t\t\t}\n\t\t}\n\n\t\treturn coll;\n\t}\n\n\t/**\n\t * The sorted method sorts the items of a collection and returns it.\n\t * The sort is not necessarily stable in Node 10 or older.\n\t * The default sort order is according to string Unicode code points.\n\t *\n\t * @param compareFunction - Specifies a function that defines the sort order.\n\t * If omitted, the collection is sorted according to each character's Unicode code point value,\n\t * according to the string conversion of each element.\n\t * @example\n\t * ```ts\n\t * collection.sorted((userA, userB) => userA.createdTimestamp - userB.createdTimestamp);\n\t * ```\n\t */\n\tpublic sorted(compareFunction: Comparator = Collection.defaultSort) {\n\t\treturn new this.constructor[Symbol.species](this).sort((av, bv, ak, bk) => compareFunction(av, bv, ak, bk));\n\t}\n\n\tpublic toJSON() {\n\t\t// toJSON is called recursively by JSON.stringify.\n\t\treturn [...this.values()];\n\t}\n\n\tprivate static defaultSort(firstValue: V, secondValue: V): number {\n\t\treturn Number(firstValue > secondValue) || Number(firstValue === secondValue) - 1;\n\t}\n\n\t/**\n\t * Creates a Collection from a list of entries.\n\t *\n\t * @param entries - The list of entries\n\t * @param combine - Function to combine an existing entry with a new one\n\t * @example\n\t * ```ts\n\t * Collection.combineEntries([[\"a\", 1], [\"b\", 2], [\"a\", 2]], (x, y) => x + y);\n\t * // returns Collection { \"a\" => 3, \"b\" => 2 }\n\t * ```\n\t */\n\tpublic static combineEntries(\n\t\tentries: Iterable<[K, V]>,\n\t\tcombine: (firstValue: V, secondValue: V, key: K) => V,\n\t): Collection {\n\t\tconst coll = new Collection();\n\t\tfor (const [key, value] of entries) {\n\t\t\tif (coll.has(key)) {\n\t\t\t\tcoll.set(key, combine(coll.get(key)!, value, key));\n\t\t\t} else {\n\t\t\t\tcoll.set(key, value);\n\t\t\t}\n\t\t}\n\n\t\treturn coll;\n\t}\n}\n\n/**\n * @internal\n */\nexport type Keep = { keep: false } | { keep: true; value: V };\n\n/**\n * @internal\n */\nexport type Comparator = (firstValue: V, secondValue: V, firstKey: K, secondKey: K) => number;\n","export * from './collection.js';\n\n/**\n * The {@link https://github.com/discordjs/discord.js/blob/main/packages/collection/#readme | @discordjs/collection} version\n * that you are currently using.\n */\n// This needs to explicitly be `string` so it is not typed as a \"const string\" that gets injected by esbuild\nexport const version = '1.5.3' as string;\n"],"mappings":"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","names":[]} \ No newline at end of file diff --git a/node_modules/@discordjs/collection/package.json b/node_modules/@discordjs/collection/package.json deleted file mode 100644 index 81e2418..0000000 --- a/node_modules/@discordjs/collection/package.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "name": "@discordjs/collection", - "version": "1.5.3", - "description": "Utility data structure used in discord.js", - "scripts": { - "test": "vitest run", - "build": "tsup", - "build:docs": "tsc -p tsconfig.docs.json", - "lint": "prettier --check . && cross-env TIMING=1 eslint src __tests__ --ext .mjs,.js,.ts --format=pretty", - "format": "prettier --write . && cross-env TIMING=1 eslint src __tests__ --ext .mjs,.js,.ts --fix --format=pretty", - "fmt": "yarn format", - "docs": "yarn build:docs && api-extractor run --local && api-extractor run --local --config ./api-extractor-docs.json", - "prepack": "yarn lint && yarn test && yarn build", - "changelog": "git cliff --prepend ./CHANGELOG.md -u -c ./cliff.toml -r ../../ --include-path 'packages/collection/*'", - "release": "cliff-jumper" - }, - "main": "./dist/index.js", - "module": "./dist/index.mjs", - "types": "./dist/index.d.ts", - "exports": { - "types": "./dist/index.d.ts", - "import": "./dist/index.mjs", - "require": "./dist/index.js" - }, - "directories": { - "lib": "src", - "test": "__tests__" - }, - "files": [ - "dist" - ], - "contributors": [ - "Crawl ", - "Amish Shah ", - "SpaceEEC ", - "Vlad Frangu ", - "Aura Román " - ], - "license": "Apache-2.0", - "keywords": [ - "map", - "collection", - "utility" - ], - "repository": { - "type": "git", - "url": "https://github.com/discordjs/discord.js.git", - "directory": "packages/collection" - }, - "bugs": { - "url": "https://github.com/discordjs/discord.js/issues" - }, - "homepage": "https://discord.js.org", - "devDependencies": { - "@favware/cliff-jumper": "^2.1.1", - "@microsoft/api-extractor": "^7.36.4", - "@types/node": "16.18.40", - "@vitest/coverage-v8": "^0.34.2", - "cross-env": "^7.0.3", - "esbuild-plugin-version-injector": "^1.2.0", - "eslint": "^8.47.0", - "eslint-config-neon": "^0.1.47", - "eslint-formatter-pretty": "^5.0.0", - "prettier": "^2.8.8", - "tsup": "^7.2.0", - "turbo": "^1.10.12", - "typescript": "^5.1.6", - "vitest": "^0.34.2" - }, - "engines": { - "node": ">=16.11.0" - }, - "publishConfig": { - "access": "public" - } -} \ No newline at end of file diff --git a/node_modules/@discordjs/formatters/LICENSE b/node_modules/@discordjs/formatters/LICENSE deleted file mode 100644 index e2baac1..0000000 --- a/node_modules/@discordjs/formatters/LICENSE +++ /dev/null @@ -1,191 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - Copyright 2021 Noel Buechler - Copyright 2021 Vlad Frangu - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/node_modules/@discordjs/formatters/README.md b/node_modules/@discordjs/formatters/README.md deleted file mode 100644 index 65ad4b0..0000000 --- a/node_modules/@discordjs/formatters/README.md +++ /dev/null @@ -1,82 +0,0 @@ -
-
-

- discord.js -

-
-

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

-

- Vercel - Cloudflare Workers -

-
- -## About - -`@discordjs/formatters` is a collection of functions for formatting strings to be used on Discord. - -## Installation - -**Node.js 16.11.0 or newer is required.** - -```sh -npm install @discordjs/formatters -yarn add @discordjs/formatters -pnpm add @discordjs/formatters -bun add @discordjs/formatters -``` - -## Example usage - -````ts -import { codeBlock } from '@discordjs/formatters'; - -const formattedCode = codeBlock('hello world!'); -console.log(formattedCode); - -// Prints: -// ``` -// hello world! -// ``` -```` - -## Links - -- [Website][website] ([source][website-source]) -- [Documentation][documentation] -- [Guide][guide] ([source][guide-source]) - Also see the v13 to v14 [Update Guide][guide-update], which includes updated and removed items from the library. -- [discord.js Discord server][discord] -- [Discord API Discord server][discord-api] -- [GitHub][source] -- [npm][npm] -- [Related libraries][related-libs] - -## Contributing - -Before creating an issue, please ensure that it hasn't already been reported/suggested, and double-check the -[documentation][documentation]. -See [the contribution guide][contributing] if you'd like to submit a PR. - -## Help - -If you don't understand something in the documentation, you are experiencing problems, or you just need a gentle nudge in the right direction, please don't hesitate to join our official [discord.js Server][discord]. - -[website]: https://discord.js.org -[website-source]: https://github.com/discordjs/discord.js/tree/main/apps/website -[documentation]: https://discord.js.org/docs/packages/formatters/stable -[guide]: https://discordjs.guide/ -[guide-source]: https://github.com/discordjs/guide -[guide-update]: https://discordjs.guide/additional-info/changes-in-v14.html -[discord]: https://discord.gg/djs -[discord-api]: https://discord.gg/discord-api -[source]: https://github.com/discordjs/discord.js/tree/main/packages/formatters -[npm]: https://www.npmjs.com/package/@discordjs/formatters -[related-libs]: https://discord.com/developers/docs/topics/community-resources#libraries -[contributing]: https://github.com/discordjs/discord.js/blob/main/.github/CONTRIBUTING.md diff --git a/node_modules/@discordjs/formatters/dist/index.d.mts b/node_modules/@discordjs/formatters/dist/index.d.mts deleted file mode 100644 index 6a97e7c..0000000 --- a/node_modules/@discordjs/formatters/dist/index.d.mts +++ /dev/null @@ -1,650 +0,0 @@ -import { URL } from 'node:url'; -import { Snowflake } from 'discord-api-types/globals'; - -/** - * The options that affect what will be escaped. - */ -interface EscapeMarkdownOptions { - /** - * Whether to escape bold text. - * - * @defaultValue `true` - */ - bold?: boolean; - /** - * Whether to escape bulleted lists. - * - * @defaultValue `false` - */ - bulletedList?: boolean; - /** - * Whether to escape code blocks. - * - * @defaultValue `true` - */ - codeBlock?: boolean; - /** - * Whether to escape text inside code blocks. - * - * @defaultValue `true` - */ - codeBlockContent?: boolean; - /** - * Whether to escape `\`. - * - * @defaultValue `true` - */ - escape?: boolean; - /** - * Whether to escape headings. - * - * @defaultValue `false` - */ - heading?: boolean; - /** - * Whether to escape inline code. - * - * @defaultValue `true` - */ - inlineCode?: boolean; - /** - * Whether to escape text inside inline code. - * - * @defaultValue `true` - */ - inlineCodeContent?: boolean; - /** - * Whether to escape italics. - * - * @defaultValue `true` - */ - italic?: boolean; - /** - * Whether to escape masked links. - * - * @defaultValue `false` - */ - maskedLink?: boolean; - /** - * Whether to escape numbered lists. - * - * @defaultValue `false` - */ - numberedList?: boolean; - /** - * Whether to escape spoilers. - * - * @defaultValue `true` - */ - spoiler?: boolean; - /** - * Whether to escape strikethroughs. - * - * @defaultValue `true` - */ - strikethrough?: boolean; - /** - * Whether to escape underlines. - * - * @defaultValue `true` - */ - underline?: boolean; -} -/** - * Escapes any Discord-flavored markdown in a string. - * - * @param text - Content to escape - * @param options - Options for escaping the markdown - */ -declare function escapeMarkdown(text: string, options?: EscapeMarkdownOptions): string; -/** - * Escapes code block markdown in a string. - * - * @param text - Content to escape - */ -declare function escapeCodeBlock(text: string): string; -/** - * Escapes inline code markdown in a string. - * - * @param text - Content to escape - */ -declare function escapeInlineCode(text: string): string; -/** - * Escapes italic markdown in a string. - * - * @param text - Content to escape - */ -declare function escapeItalic(text: string): string; -/** - * Escapes bold markdown in a string. - * - * @param text - Content to escape - */ -declare function escapeBold(text: string): string; -/** - * Escapes underline markdown in a string. - * - * @param text - Content to escape - */ -declare function escapeUnderline(text: string): string; -/** - * Escapes strikethrough markdown in a string. - * - * @param text - Content to escape - */ -declare function escapeStrikethrough(text: string): string; -/** - * Escapes spoiler markdown in a string. - * - * @param text - Content to escape - */ -declare function escapeSpoiler(text: string): string; -/** - * Escapes escape characters in a string. - * - * @param text - Content to escape - */ -declare function escapeEscape(text: string): string; -/** - * Escapes heading characters in a string. - * - * @param text - Content to escape - */ -declare function escapeHeading(text: string): string; -/** - * Escapes bulleted list characters in a string. - * - * @param text - Content to escape - */ -declare function escapeBulletedList(text: string): string; -/** - * Escapes numbered list characters in a string. - * - * @param text - Content to escape - */ -declare function escapeNumberedList(text: string): string; -/** - * Escapes masked link characters in a string. - * - * @param text - Content to escape - */ -declare function escapeMaskedLink(text: string): string; - -/** - * Wraps the content inside a code block with no language. - * - * @typeParam Content - This is inferred by the supplied content - * @param content - The content to wrap - */ -declare function codeBlock(content: Content): `\`\`\`\n${Content}\n\`\`\``; -/** - * Wraps the content inside a code block with the specified language. - * - * @typeParam Language - This is inferred by the supplied language - * @typeParam Content - This is inferred by the supplied content - * @param language - The language for the code block - * @param content - The content to wrap - */ -declare function codeBlock(language: Language, content: Content): `\`\`\`${Language}\n${Content}\n\`\`\``; -/** - * Wraps the content inside \`backticks\` which formats it as inline code. - * - * @typeParam Content - This is inferred by the supplied content - * @param content - The content to wrap - */ -declare function inlineCode(content: Content): `\`${Content}\``; -/** - * Formats the content into italic text. - * - * @typeParam Content - This is inferred by the supplied content - * @param content - The content to wrap - */ -declare function italic(content: Content): `_${Content}_`; -/** - * Formats the content into bold text. - * - * @typeParam Content - This is inferred by the supplied content - * @param content - The content to wrap - */ -declare function bold(content: Content): `**${Content}**`; -/** - * Formats the content into underscored text. - * - * @typeParam Content - This is inferred by the supplied content - * @param content - The content to wrap - * @deprecated Use {@link underline} instead. - */ -declare function underscore(content: Content): `__${Content}__`; -/** - * Formats the content into underlined text. - * - * @typeParam Content - This is inferred by the supplied content - * @param content - The content to wrap - */ -declare function underline(content: Content): `__${Content}__`; -/** - * Formats the content into strike-through text. - * - * @typeParam Content - This is inferred by the supplied content - * @param content - The content to wrap - */ -declare function strikethrough(content: Content): `~~${Content}~~`; -/** - * Formats the content into a quote. - * - * @remarks This needs to be at the start of the line for Discord to format it. - * @typeParam Content - This is inferred by the supplied content - * @param content - The content to wrap - */ -declare function quote(content: Content): `> ${Content}`; -/** - * Formats the content into a block quote. - * - * @remarks This needs to be at the start of the line for Discord to format it. - * @typeParam Content - This is inferred by the supplied content - * @param content - The content to wrap - */ -declare function blockQuote(content: Content): `>>> ${Content}`; -/** - * Wraps the URL into `<>` which stops it from embedding. - * - * @typeParam Content - This is inferred by the supplied content - * @param url - The URL to wrap - */ -declare function hideLinkEmbed(url: Content): `<${Content}>`; -/** - * 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. - * - * @typeParam Content - This is inferred by the supplied content - * @param content - The content to display - * @param url - The URL the content links to - */ -declare function hyperlink(content: Content, url: URL): `[${Content}](${string})`; -/** - * Formats the content and the URL into a masked URL. - * - * @typeParam Content - This is inferred by the supplied content - * @typeParam Url - This is inferred by the supplied URL - * @param content - The content to display - * @param url - The URL the content links to - */ -declare function hyperlink(content: Content, url: Url): `[${Content}](${Url})`; -/** - * Formats the content and the URL into a masked URL with a custom tooltip. - * - * @typeParam Content - This is inferred by the supplied content - * @typeParam Title - This is inferred by the supplied title - * @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: Content, url: URL, title: Title): `[${Content}](${string} "${Title}")`; -/** - * Formats the content and the URL into a masked URL with a custom tooltip. - * - * @typeParam Content - This is inferred by the supplied content - * @typeParam Url - This is inferred by the supplied URL - * @typeParam Title - This is inferred by the supplied title - * @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: Content, url: Url, title: Title): `[${Content}](${Url} "${Title}")`; -/** - * Formats the content into a spoiler. - * - * @typeParam Content - This is inferred by the supplied content - * @param content - The content to wrap - */ -declare function spoiler(content: Content): `||${Content}||`; -/** - * Formats a user id into a user mention. - * - * @typeParam UserId - This is inferred by the supplied user id - * @param userId - The user id to format - */ -declare function userMention(userId: UserId): `<@${UserId}>`; -/** - * Formats a channel id into a channel mention. - * - * @typeParam ChannelId - This is inferred by the supplied channel id - * @param channelId - The channel id to format - */ -declare function channelMention(channelId: ChannelId): `<#${ChannelId}>`; -/** - * Formats a role id into a role mention. - * - * @typeParam RoleId - This is inferred by the supplied role id - * @param roleId - The role id to format - */ -declare function roleMention(roleId: RoleId): `<@&${RoleId}>`; -/** - * Formats an application command name, subcommand group name, subcommand name, and id into an application command mention. - * - * @typeParam CommandName - This is inferred by the supplied command name - * @typeParam SubcommandGroupName - This is inferred by the supplied subcommand group name - * @typeParam SubcommandName - This is inferred by the supplied subcommand name - * @typeParam CommandId - This is inferred by the supplied command id - * @param commandName - The application command name to format - * @param subcommandGroupName - The subcommand group name to format - * @param subcommandName - The subcommand name to format - * @param commandId - The application command id to format - */ -declare function chatInputApplicationCommandMention(commandName: CommandName, subcommandGroupName: SubcommandGroupName, subcommandName: SubcommandName, commandId: CommandId): ``; -/** - * Formats an application command name, subcommand name, and id into an application command mention. - * - * @typeParam CommandName - This is inferred by the supplied command name - * @typeParam SubcommandName - This is inferred by the supplied subcommand name - * @typeParam CommandId - This is inferred by the supplied command id - * @param commandName - The application command name to format - * @param subcommandName - The subcommand name to format - * @param commandId - The application command id to format - */ -declare function chatInputApplicationCommandMention(commandName: CommandName, subcommandName: SubcommandName, commandId: CommandId): ``; -/** - * Formats an application command name and id into an application command mention. - * - * @typeParam CommandName - This is inferred by the supplied command name - * @typeParam CommandId - This is inferred by the supplied command id - * @param commandName - The application command name to format - * @param commandId - The application command id to format - */ -declare function chatInputApplicationCommandMention(commandName: CommandName, commandId: CommandId): ``; -/** - * Formats a non-animated emoji id into a fully qualified emoji identifier. - * - * @typeParam EmojiId - This is inferred by the supplied emoji id - * @param emojiId - The emoji id to format - */ -declare function formatEmoji(emojiId: EmojiId, animated?: false): `<:_:${EmojiId}>`; -/** - * Formats an animated emoji id into a fully qualified emoji identifier. - * - * @typeParam EmojiId - This is inferred by the supplied emoji id - * @param emojiId - The emoji id to format - * @param animated - Whether the emoji is animated - */ -declare function formatEmoji(emojiId: EmojiId, animated?: true): ``; -/** - * Formats an emoji id into a fully qualified emoji identifier. - * - * @typeParam EmojiId - This is inferred by the supplied emoji id - * @param emojiId - The emoji id to format - * @param animated - Whether the emoji is animated - */ -declare function formatEmoji(emojiId: EmojiId, animated?: boolean): `<:_:${EmojiId}>` | ``; -/** - * Formats a non-animated emoji id and name into a fully qualified emoji identifier. - * - * @typeParam EmojiId - This is inferred by the supplied emoji id - * @typeParam EmojiName - This is inferred by the supplied name - * @param options - The options for formatting an emoji - */ -declare function formatEmoji(options: FormatEmojiOptions & { - animated: true; -}): ``; -/** - * Formats an animated emoji id and name into a fully qualified emoji identifier. - * - * @typeParam EmojiId - This is inferred by the supplied emoji id - * @typeParam EmojiName - This is inferred by the supplied name - * @param options - The options for formatting an emoji - */ -declare function formatEmoji(options: FormatEmojiOptions & { - animated?: false; -}): `<:${EmojiName}:${EmojiId}>`; -/** - * Formats an emoji id and name into a fully qualified emoji identifier. - * - * @typeParam EmojiId - This is inferred by the supplied emoji id - * @typeParam EmojiName - This is inferred by the supplied emoji name - * @param options - The options for formatting an emoji - */ -declare function formatEmoji(options: FormatEmojiOptions): `<:${EmojiName}:${EmojiId}>` | ``; -/** - * The options for formatting an emoji. - * - * @typeParam EmojiId - This is inferred by the supplied emoji id - * @typeParam EmojiName - This is inferred by the supplied emoji name - */ -interface FormatEmojiOptions { - /** - * Whether the emoji is animated - */ - animated?: boolean; - /** - * The emoji id to format - */ - id: EmojiId; - /** - * The name of the emoji - */ - name?: EmojiName; -} -/** - * Formats a channel link for a direct message channel. - * - * @typeParam ChannelId - This is inferred by the supplied channel id - * @param channelId - The channel's id - */ -declare function channelLink(channelId: ChannelId): `https://discord.com/channels/@me/${ChannelId}`; -/** - * Formats a channel link for a guild channel. - * - * @typeParam ChannelId - This is inferred by the supplied channel id - * @typeParam GuildId - This is inferred by the supplied guild id - * @param channelId - The channel's id - * @param guildId - The guild's id - */ -declare function channelLink(channelId: ChannelId, guildId: GuildId): `https://discord.com/channels/${GuildId}/${ChannelId}`; -/** - * Formats a message link for a direct message channel. - * - * @typeParam ChannelId - This is inferred by the supplied channel id - * @typeParam MessageId - This is inferred by the supplied message id - * @param channelId - The channel's id - * @param messageId - The message's id - */ -declare function messageLink(channelId: ChannelId, messageId: MessageId): `https://discord.com/channels/@me/${ChannelId}/${MessageId}`; -/** - * Formats a message link for a guild channel. - * - * @typeParam ChannelId - This is inferred by the supplied channel id - * @typeParam MessageId - This is inferred by the supplied message id - * @typeParam GuildId - This is inferred by the supplied guild id - * @param channelId - The channel's id - * @param messageId - The message's id - * @param guildId - The guild's id - */ -declare function messageLink(channelId: ChannelId, messageId: MessageId, guildId: GuildId): `https://discord.com/channels/${GuildId}/${ChannelId}/${MessageId}`; -/** - * The heading levels for expanded markdown. - */ -declare enum HeadingLevel { - /** - * The first heading level. - */ - One = 1, - /** - * The second heading level. - */ - Two = 2, - /** - * The third heading level. - */ - Three = 3 -} -/** - * Formats the content into a heading level. - * - * @typeParam Content - This is inferred by the supplied content - * @param content - The content to wrap - * @param level - The heading level - */ -declare function heading(content: Content, level?: HeadingLevel.One): `# ${Content}`; -/** - * Formats the content into a heading level. - * - * @typeParam Content - This is inferred by the supplied content - * @param content - The content to wrap - * @param level - The heading level - */ -declare function heading(content: Content, level: HeadingLevel.Two): `## ${Content}`; -/** - * Formats the content into a heading level. - * - * @typeParam Content - This is inferred by the supplied content - * @param content - The content to wrap - * @param level - The heading level - */ -declare function heading(content: Content, level: HeadingLevel.Three): `### ${Content}`; -/** - * A type that recursively traverses into arrays. - */ -type RecursiveArray = readonly (ItemType | RecursiveArray)[]; -/** - * Formats the elements in the array to an ordered list. - * - * @param list - The array of elements to list - * @param startNumber - The starting number for the list - */ -declare function orderedList(list: RecursiveArray, startNumber?: number): string; -/** - * Formats the elements in the array to an unordered list. - * - * @param list - The array of elements to list - */ -declare function unorderedList(list: RecursiveArray): string; -/** - * 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. - * - * @typeParam Style - This is inferred by the supplied {@link TimestampStylesString} - * @param date - The date to format - * @param style - The style to use - */ -declare function time