carbon-proxy 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +237 -0
- package/dist/package.json +43 -0
- package/dist/src/abstracts/AnySelectMenu.d.ts +40 -0
- package/dist/src/abstracts/AnySelectMenu.d.ts.map +1 -0
- package/dist/src/abstracts/AnySelectMenu.js +41 -0
- package/dist/src/abstracts/AnySelectMenu.js.map +1 -0
- package/dist/src/abstracts/AnySelectMenuInteraction.d.ts +12 -0
- package/dist/src/abstracts/AnySelectMenuInteraction.d.ts.map +1 -0
- package/dist/src/abstracts/AnySelectMenuInteraction.js +19 -0
- package/dist/src/abstracts/AnySelectMenuInteraction.js.map +1 -0
- package/dist/src/abstracts/Base.d.ts +10 -0
- package/dist/src/abstracts/Base.d.ts.map +1 -0
- package/dist/src/abstracts/Base.js +11 -0
- package/dist/src/abstracts/Base.js.map +1 -0
- package/dist/src/abstracts/BaseChannel.d.ts +60 -0
- package/dist/src/abstracts/BaseChannel.d.ts.map +1 -0
- package/dist/src/abstracts/BaseChannel.js +90 -0
- package/dist/src/abstracts/BaseChannel.js.map +1 -0
- package/dist/src/abstracts/BaseCommand.d.ts +77 -0
- package/dist/src/abstracts/BaseCommand.d.ts.map +1 -0
- package/dist/src/abstracts/BaseCommand.js +127 -0
- package/dist/src/abstracts/BaseCommand.js.map +1 -0
- package/dist/src/abstracts/BaseComponent.d.ts +20 -0
- package/dist/src/abstracts/BaseComponent.d.ts.map +1 -0
- package/dist/src/abstracts/BaseComponent.js +10 -0
- package/dist/src/abstracts/BaseComponent.js.map +1 -0
- package/dist/src/abstracts/BaseComponentInteraction.d.ts +18 -0
- package/dist/src/abstracts/BaseComponentInteraction.d.ts.map +1 -0
- package/dist/src/abstracts/BaseComponentInteraction.js +41 -0
- package/dist/src/abstracts/BaseComponentInteraction.js.map +1 -0
- package/dist/src/abstracts/BaseGuildChannel.d.ts +61 -0
- package/dist/src/abstracts/BaseGuildChannel.d.ts.map +1 -0
- package/dist/src/abstracts/BaseGuildChannel.js +125 -0
- package/dist/src/abstracts/BaseGuildChannel.js.map +1 -0
- package/dist/src/abstracts/BaseGuildTextChannel.d.ts +53 -0
- package/dist/src/abstracts/BaseGuildTextChannel.d.ts.map +1 -0
- package/dist/src/abstracts/BaseGuildTextChannel.js +89 -0
- package/dist/src/abstracts/BaseGuildTextChannel.js.map +1 -0
- package/dist/src/abstracts/BaseInteraction.d.ts +166 -0
- package/dist/src/abstracts/BaseInteraction.d.ts.map +1 -0
- package/dist/src/abstracts/BaseInteraction.js +274 -0
- package/dist/src/abstracts/BaseInteraction.js.map +1 -0
- package/dist/src/abstracts/BaseListener.d.ts +13 -0
- package/dist/src/abstracts/BaseListener.d.ts.map +1 -0
- package/dist/src/abstracts/BaseListener.js +8 -0
- package/dist/src/abstracts/BaseListener.js.map +1 -0
- package/dist/src/abstracts/BaseMessageInteractiveComponent.d.ts +41 -0
- package/dist/src/abstracts/BaseMessageInteractiveComponent.d.ts.map +1 -0
- package/dist/src/abstracts/BaseMessageInteractiveComponent.js +35 -0
- package/dist/src/abstracts/BaseMessageInteractiveComponent.js.map +1 -0
- package/dist/src/abstracts/BaseModalComponent.d.ts +9 -0
- package/dist/src/abstracts/BaseModalComponent.d.ts.map +1 -0
- package/dist/src/abstracts/BaseModalComponent.js +5 -0
- package/dist/src/abstracts/BaseModalComponent.js.map +1 -0
- package/dist/src/abstracts/GuildThreadOnlyChannel.d.ts +58 -0
- package/dist/src/abstracts/GuildThreadOnlyChannel.d.ts.map +1 -0
- package/dist/src/abstracts/GuildThreadOnlyChannel.js +102 -0
- package/dist/src/abstracts/GuildThreadOnlyChannel.js.map +1 -0
- package/dist/src/abstracts/Plugin.d.ts +49 -0
- package/dist/src/abstracts/Plugin.d.ts.map +1 -0
- package/dist/src/abstracts/Plugin.js +6 -0
- package/dist/src/abstracts/Plugin.js.map +1 -0
- package/dist/src/adapters/bun/index.d.ts +13 -0
- package/dist/src/adapters/bun/index.d.ts.map +1 -0
- package/dist/src/adapters/bun/index.js +16 -0
- package/dist/src/adapters/bun/index.js.map +1 -0
- package/dist/src/adapters/fetch/index.d.ts +11 -0
- package/dist/src/adapters/fetch/index.d.ts.map +1 -0
- package/dist/src/adapters/fetch/index.js +50 -0
- package/dist/src/adapters/fetch/index.js.map +1 -0
- package/dist/src/adapters/node/index.d.ts +13 -0
- package/dist/src/adapters/node/index.d.ts.map +1 -0
- package/dist/src/adapters/node/index.js +17 -0
- package/dist/src/adapters/node/index.js.map +1 -0
- package/dist/src/classes/Client.d.ts +253 -0
- package/dist/src/classes/Client.d.ts.map +1 -0
- package/dist/src/classes/Client.js +419 -0
- package/dist/src/classes/Client.js.map +1 -0
- package/dist/src/classes/Command.d.ts +44 -0
- package/dist/src/classes/Command.d.ts.map +1 -0
- package/dist/src/classes/Command.js +53 -0
- package/dist/src/classes/Command.js.map +1 -0
- package/dist/src/classes/CommandWithSubcommandGroups.d.ts +22 -0
- package/dist/src/classes/CommandWithSubcommandGroups.d.ts.map +1 -0
- package/dist/src/classes/CommandWithSubcommandGroups.js +27 -0
- package/dist/src/classes/CommandWithSubcommandGroups.js.map +1 -0
- package/dist/src/classes/CommandWithSubcommands.d.ts +19 -0
- package/dist/src/classes/CommandWithSubcommands.d.ts.map +1 -0
- package/dist/src/classes/CommandWithSubcommands.js +19 -0
- package/dist/src/classes/CommandWithSubcommands.js.map +1 -0
- package/dist/src/classes/Embed.d.ts +61 -0
- package/dist/src/classes/Embed.d.ts.map +1 -0
- package/dist/src/classes/Embed.js +75 -0
- package/dist/src/classes/Embed.js.map +1 -0
- package/dist/src/classes/Listener.d.ts +392 -0
- package/dist/src/classes/Listener.d.ts.map +1 -0
- package/dist/src/classes/Listener.js +1034 -0
- package/dist/src/classes/Listener.js.map +1 -0
- package/dist/src/classes/Modal.d.ts +37 -0
- package/dist/src/classes/Modal.d.ts.map +1 -0
- package/dist/src/classes/Modal.js +28 -0
- package/dist/src/classes/Modal.js.map +1 -0
- package/dist/src/classes/RequestClient.d.ts +106 -0
- package/dist/src/classes/RequestClient.d.ts.map +1 -0
- package/dist/src/classes/RequestClient.js +451 -0
- package/dist/src/classes/RequestClient.js.map +1 -0
- package/dist/src/classes/components/Button.d.ts +52 -0
- package/dist/src/classes/components/Button.d.ts.map +1 -0
- package/dist/src/classes/components/Button.js +71 -0
- package/dist/src/classes/components/Button.js.map +1 -0
- package/dist/src/classes/components/ChannelSelectMenu.d.ts +17 -0
- package/dist/src/classes/components/ChannelSelectMenu.d.ts.map +1 -0
- package/dist/src/classes/components/ChannelSelectMenu.js +22 -0
- package/dist/src/classes/components/ChannelSelectMenu.js.map +1 -0
- package/dist/src/classes/components/Checkbox.d.ts +12 -0
- package/dist/src/classes/components/Checkbox.d.ts.map +1 -0
- package/dist/src/classes/components/Checkbox.js +20 -0
- package/dist/src/classes/components/Checkbox.js.map +1 -0
- package/dist/src/classes/components/CheckboxGroup.d.ts +24 -0
- package/dist/src/classes/components/CheckboxGroup.d.ts.map +1 -0
- package/dist/src/classes/components/CheckboxGroup.js +37 -0
- package/dist/src/classes/components/CheckboxGroup.js.map +1 -0
- package/dist/src/classes/components/Container.d.ts +28 -0
- package/dist/src/classes/components/Container.d.ts.map +1 -0
- package/dist/src/classes/components/Container.js +38 -0
- package/dist/src/classes/components/Container.js.map +1 -0
- package/dist/src/classes/components/File.d.ts +21 -0
- package/dist/src/classes/components/File.d.ts.map +1 -0
- package/dist/src/classes/components/File.js +36 -0
- package/dist/src/classes/components/File.js.map +1 -0
- package/dist/src/classes/components/FileUpload.d.ts +23 -0
- package/dist/src/classes/components/FileUpload.d.ts.map +1 -0
- package/dist/src/classes/components/FileUpload.js +36 -0
- package/dist/src/classes/components/FileUpload.js.map +1 -0
- package/dist/src/classes/components/Label.d.ts +31 -0
- package/dist/src/classes/components/Label.d.ts.map +1 -0
- package/dist/src/classes/components/Label.js +35 -0
- package/dist/src/classes/components/Label.js.map +1 -0
- package/dist/src/classes/components/MediaGallery.d.ts +22 -0
- package/dist/src/classes/components/MediaGallery.d.ts.map +1 -0
- package/dist/src/classes/components/MediaGallery.js +32 -0
- package/dist/src/classes/components/MediaGallery.js.map +1 -0
- package/dist/src/classes/components/MentionableSelectMenu.d.ts +15 -0
- package/dist/src/classes/components/MentionableSelectMenu.d.ts.map +1 -0
- package/dist/src/classes/components/MentionableSelectMenu.js +20 -0
- package/dist/src/classes/components/MentionableSelectMenu.js.map +1 -0
- package/dist/src/classes/components/RadioGroup.d.ts +24 -0
- package/dist/src/classes/components/RadioGroup.d.ts.map +1 -0
- package/dist/src/classes/components/RadioGroup.js +33 -0
- package/dist/src/classes/components/RadioGroup.js.map +1 -0
- package/dist/src/classes/components/RoleSelectMenu.d.ts +15 -0
- package/dist/src/classes/components/RoleSelectMenu.d.ts.map +1 -0
- package/dist/src/classes/components/RoleSelectMenu.js +20 -0
- package/dist/src/classes/components/RoleSelectMenu.js.map +1 -0
- package/dist/src/classes/components/Row.d.ts +28 -0
- package/dist/src/classes/components/Row.d.ts.map +1 -0
- package/dist/src/classes/components/Row.js +44 -0
- package/dist/src/classes/components/Row.js.map +1 -0
- package/dist/src/classes/components/Section.d.ts +23 -0
- package/dist/src/classes/components/Section.d.ts.map +1 -0
- package/dist/src/classes/components/Section.js +37 -0
- package/dist/src/classes/components/Section.js.map +1 -0
- package/dist/src/classes/components/Separator.d.ts +22 -0
- package/dist/src/classes/components/Separator.d.ts.map +1 -0
- package/dist/src/classes/components/Separator.js +33 -0
- package/dist/src/classes/components/Separator.js.map +1 -0
- package/dist/src/classes/components/StringSelectMenu.d.ts +15 -0
- package/dist/src/classes/components/StringSelectMenu.d.ts.map +1 -0
- package/dist/src/classes/components/StringSelectMenu.js +19 -0
- package/dist/src/classes/components/StringSelectMenu.js.map +1 -0
- package/dist/src/classes/components/TextDisplay.d.ts +10 -0
- package/dist/src/classes/components/TextDisplay.d.ts.map +1 -0
- package/dist/src/classes/components/TextDisplay.js +22 -0
- package/dist/src/classes/components/TextDisplay.js.map +1 -0
- package/dist/src/classes/components/TextInput.d.ts +53 -0
- package/dist/src/classes/components/TextInput.d.ts.map +1 -0
- package/dist/src/classes/components/TextInput.js +57 -0
- package/dist/src/classes/components/TextInput.js.map +1 -0
- package/dist/src/classes/components/Thumbnail.d.ts +14 -0
- package/dist/src/classes/components/Thumbnail.d.ts.map +1 -0
- package/dist/src/classes/components/Thumbnail.js +27 -0
- package/dist/src/classes/components/Thumbnail.js.map +1 -0
- package/dist/src/classes/components/UserSelectMenu.d.ts +15 -0
- package/dist/src/classes/components/UserSelectMenu.d.ts.map +1 -0
- package/dist/src/classes/components/UserSelectMenu.js +20 -0
- package/dist/src/classes/components/UserSelectMenu.js.map +1 -0
- package/dist/src/errors/BaseError.d.ts +3 -0
- package/dist/src/errors/BaseError.d.ts.map +1 -0
- package/dist/src/errors/BaseError.js +3 -0
- package/dist/src/errors/BaseError.js.map +1 -0
- package/dist/src/errors/DiscordError.d.ts +25 -0
- package/dist/src/errors/DiscordError.d.ts.map +1 -0
- package/dist/src/errors/DiscordError.js +31 -0
- package/dist/src/errors/DiscordError.js.map +1 -0
- package/dist/src/errors/RatelimitError.d.ts +15 -0
- package/dist/src/errors/RatelimitError.d.ts.map +1 -0
- package/dist/src/errors/RatelimitError.js +18 -0
- package/dist/src/errors/RatelimitError.js.map +1 -0
- package/dist/src/functions/channelFactory.d.ts +14 -0
- package/dist/src/functions/channelFactory.d.ts.map +1 -0
- package/dist/src/functions/channelFactory.js +39 -0
- package/dist/src/functions/channelFactory.js.map +1 -0
- package/dist/src/functions/enforceChoicesLimit.d.ts +3 -0
- package/dist/src/functions/enforceChoicesLimit.d.ts.map +1 -0
- package/dist/src/functions/enforceChoicesLimit.js +17 -0
- package/dist/src/functions/enforceChoicesLimit.js.map +1 -0
- package/dist/src/functions/errorsMapper.d.ts +14 -0
- package/dist/src/functions/errorsMapper.d.ts.map +1 -0
- package/dist/src/functions/errorsMapper.js +46 -0
- package/dist/src/functions/errorsMapper.js.map +1 -0
- package/dist/src/index.d.ts +93 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +100 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/internals/AutocompleteInteraction.d.ts +43 -0
- package/dist/src/internals/AutocompleteInteraction.d.ts.map +1 -0
- package/dist/src/internals/AutocompleteInteraction.js +73 -0
- package/dist/src/internals/AutocompleteInteraction.js.map +1 -0
- package/dist/src/internals/ButtonInteraction.d.ts +8 -0
- package/dist/src/internals/ButtonInteraction.d.ts.map +1 -0
- package/dist/src/internals/ButtonInteraction.js +16 -0
- package/dist/src/internals/ButtonInteraction.js.map +1 -0
- package/dist/src/internals/ChannelSelectMenuInteraction.d.ts +8 -0
- package/dist/src/internals/ChannelSelectMenuInteraction.d.ts.map +1 -0
- package/dist/src/internals/ChannelSelectMenuInteraction.js +11 -0
- package/dist/src/internals/ChannelSelectMenuInteraction.js.map +1 -0
- package/dist/src/internals/CommandHandler.d.ts +13 -0
- package/dist/src/internals/CommandHandler.d.ts.map +1 -0
- package/dist/src/internals/CommandHandler.js +143 -0
- package/dist/src/internals/CommandHandler.js.map +1 -0
- package/dist/src/internals/CommandInteraction.d.ts +26 -0
- package/dist/src/internals/CommandInteraction.d.ts.map +1 -0
- package/dist/src/internals/CommandInteraction.js +60 -0
- package/dist/src/internals/CommandInteraction.js.map +1 -0
- package/dist/src/internals/ComponentHandler.d.ts +14 -0
- package/dist/src/internals/ComponentHandler.d.ts.map +1 -0
- package/dist/src/internals/ComponentHandler.js +183 -0
- package/dist/src/internals/ComponentHandler.js.map +1 -0
- package/dist/src/internals/EmojiHandler.d.ts +19 -0
- package/dist/src/internals/EmojiHandler.d.ts.map +1 -0
- package/dist/src/internals/EmojiHandler.js +34 -0
- package/dist/src/internals/EmojiHandler.js.map +1 -0
- package/dist/src/internals/EventHandler.d.ts +22 -0
- package/dist/src/internals/EventHandler.d.ts.map +1 -0
- package/dist/src/internals/EventHandler.js +23 -0
- package/dist/src/internals/EventHandler.js.map +1 -0
- package/dist/src/internals/EventQueue.d.ts +59 -0
- package/dist/src/internals/EventQueue.d.ts.map +1 -0
- package/dist/src/internals/EventQueue.js +131 -0
- package/dist/src/internals/EventQueue.js.map +1 -0
- package/dist/src/internals/FieldsHandler.d.ts +68 -0
- package/dist/src/internals/FieldsHandler.d.ts.map +1 -0
- package/dist/src/internals/FieldsHandler.js +146 -0
- package/dist/src/internals/FieldsHandler.js.map +1 -0
- package/dist/src/internals/MentionableSelectMenuInteraction.d.ts +9 -0
- package/dist/src/internals/MentionableSelectMenuInteraction.d.ts.map +1 -0
- package/dist/src/internals/MentionableSelectMenuInteraction.js +15 -0
- package/dist/src/internals/MentionableSelectMenuInteraction.js.map +1 -0
- package/dist/src/internals/ModalHandler.d.ts +17 -0
- package/dist/src/internals/ModalHandler.d.ts.map +1 -0
- package/dist/src/internals/ModalHandler.js +35 -0
- package/dist/src/internals/ModalHandler.js.map +1 -0
- package/dist/src/internals/ModalInteraction.d.ts +21 -0
- package/dist/src/internals/ModalInteraction.d.ts.map +1 -0
- package/dist/src/internals/ModalInteraction.js +41 -0
- package/dist/src/internals/ModalInteraction.js.map +1 -0
- package/dist/src/internals/OptionsHandler.d.ts +108 -0
- package/dist/src/internals/OptionsHandler.d.ts.map +1 -0
- package/dist/src/internals/OptionsHandler.js +237 -0
- package/dist/src/internals/OptionsHandler.js.map +1 -0
- package/dist/src/internals/RoleSelectMenuInteraction.d.ts +9 -0
- package/dist/src/internals/RoleSelectMenuInteraction.d.ts.map +1 -0
- package/dist/src/internals/RoleSelectMenuInteraction.js +14 -0
- package/dist/src/internals/RoleSelectMenuInteraction.js.map +1 -0
- package/dist/src/internals/StringSelectMenuInteraction.d.ts +9 -0
- package/dist/src/internals/StringSelectMenuInteraction.d.ts.map +1 -0
- package/dist/src/internals/StringSelectMenuInteraction.js +14 -0
- package/dist/src/internals/StringSelectMenuInteraction.js.map +1 -0
- package/dist/src/internals/TemporaryListenerManager.d.ts +20 -0
- package/dist/src/internals/TemporaryListenerManager.d.ts.map +1 -0
- package/dist/src/internals/TemporaryListenerManager.js +59 -0
- package/dist/src/internals/TemporaryListenerManager.js.map +1 -0
- package/dist/src/internals/UserSelectMenuInteraction.d.ts +9 -0
- package/dist/src/internals/UserSelectMenuInteraction.d.ts.map +1 -0
- package/dist/src/internals/UserSelectMenuInteraction.js +14 -0
- package/dist/src/internals/UserSelectMenuInteraction.js.map +1 -0
- package/dist/src/permissions.d.ts +56 -0
- package/dist/src/permissions.d.ts.map +1 -0
- package/dist/src/permissions.js +4 -0
- package/dist/src/permissions.js.map +1 -0
- package/dist/src/plugins/client-manager/ClientManager.d.ts +151 -0
- package/dist/src/plugins/client-manager/ClientManager.d.ts.map +1 -0
- package/dist/src/plugins/client-manager/ClientManager.js +253 -0
- package/dist/src/plugins/client-manager/ClientManager.js.map +1 -0
- package/dist/src/plugins/client-manager/index.d.ts +2 -0
- package/dist/src/plugins/client-manager/index.d.ts.map +1 -0
- package/dist/src/plugins/client-manager/index.js +2 -0
- package/dist/src/plugins/client-manager/index.js.map +1 -0
- package/dist/src/plugins/command-data/CommandDataPlugin.d.ts +16 -0
- package/dist/src/plugins/command-data/CommandDataPlugin.d.ts.map +1 -0
- package/dist/src/plugins/command-data/CommandDataPlugin.js +43 -0
- package/dist/src/plugins/command-data/CommandDataPlugin.js.map +1 -0
- package/dist/src/plugins/command-data/index.d.ts +2 -0
- package/dist/src/plugins/command-data/index.d.ts.map +1 -0
- package/dist/src/plugins/command-data/index.js +2 -0
- package/dist/src/plugins/command-data/index.js.map +1 -0
- package/dist/src/plugins/gateway/BabyCache.d.ts +16 -0
- package/dist/src/plugins/gateway/BabyCache.d.ts.map +1 -0
- package/dist/src/plugins/gateway/BabyCache.js +53 -0
- package/dist/src/plugins/gateway/BabyCache.js.map +1 -0
- package/dist/src/plugins/gateway/GatewayPlugin.d.ts +90 -0
- package/dist/src/plugins/gateway/GatewayPlugin.d.ts.map +1 -0
- package/dist/src/plugins/gateway/GatewayPlugin.js +516 -0
- package/dist/src/plugins/gateway/GatewayPlugin.js.map +1 -0
- package/dist/src/plugins/gateway/InteractionEventListener.d.ts +8 -0
- package/dist/src/plugins/gateway/InteractionEventListener.d.ts.map +1 -0
- package/dist/src/plugins/gateway/InteractionEventListener.js +9 -0
- package/dist/src/plugins/gateway/InteractionEventListener.js.map +1 -0
- package/dist/src/plugins/gateway/index.d.ts +7 -0
- package/dist/src/plugins/gateway/index.d.ts.map +1 -0
- package/dist/src/plugins/gateway/index.js +7 -0
- package/dist/src/plugins/gateway/index.js.map +1 -0
- package/dist/src/plugins/gateway/types.d.ts +130 -0
- package/dist/src/plugins/gateway/types.d.ts.map +1 -0
- package/dist/src/plugins/gateway/types.js +5 -0
- package/dist/src/plugins/gateway/types.js.map +1 -0
- package/dist/src/plugins/gateway/utils/heartbeat.d.ts +18 -0
- package/dist/src/plugins/gateway/utils/heartbeat.d.ts.map +1 -0
- package/dist/src/plugins/gateway/utils/heartbeat.js +33 -0
- package/dist/src/plugins/gateway/utils/heartbeat.js.map +1 -0
- package/dist/src/plugins/gateway/utils/monitor.d.ts +37 -0
- package/dist/src/plugins/gateway/utils/monitor.d.ts.map +1 -0
- package/dist/src/plugins/gateway/utils/monitor.js +88 -0
- package/dist/src/plugins/gateway/utils/monitor.js.map +1 -0
- package/dist/src/plugins/gateway/utils/payload.d.ts +24 -0
- package/dist/src/plugins/gateway/utils/payload.d.ts.map +1 -0
- package/dist/src/plugins/gateway/utils/payload.js +65 -0
- package/dist/src/plugins/gateway/utils/payload.js.map +1 -0
- package/dist/src/plugins/gateway/utils/rateLimit.d.ts +41 -0
- package/dist/src/plugins/gateway/utils/rateLimit.d.ts.map +1 -0
- package/dist/src/plugins/gateway/utils/rateLimit.js +61 -0
- package/dist/src/plugins/gateway/utils/rateLimit.js.map +1 -0
- package/dist/src/plugins/gateway-forwarder/GatewayForwarderPlugin.d.ts +30 -0
- package/dist/src/plugins/gateway-forwarder/GatewayForwarderPlugin.d.ts.map +1 -0
- package/dist/src/plugins/gateway-forwarder/GatewayForwarderPlugin.js +80 -0
- package/dist/src/plugins/gateway-forwarder/GatewayForwarderPlugin.js.map +1 -0
- package/dist/src/plugins/gateway-forwarder/ShardedGatewayForwarderPlugin.d.ts +9 -0
- package/dist/src/plugins/gateway-forwarder/ShardedGatewayForwarderPlugin.d.ts.map +1 -0
- package/dist/src/plugins/gateway-forwarder/ShardedGatewayForwarderPlugin.js +7 -0
- package/dist/src/plugins/gateway-forwarder/ShardedGatewayForwarderPlugin.js.map +1 -0
- package/dist/src/plugins/gateway-forwarder/index.d.ts +4 -0
- package/dist/src/plugins/gateway-forwarder/index.d.ts.map +1 -0
- package/dist/src/plugins/gateway-forwarder/index.js +4 -0
- package/dist/src/plugins/gateway-forwarder/index.js.map +1 -0
- package/dist/src/plugins/linked-roles/LinkedRoles.d.ts +70 -0
- package/dist/src/plugins/linked-roles/LinkedRoles.d.ts.map +1 -0
- package/dist/src/plugins/linked-roles/LinkedRoles.js +211 -0
- package/dist/src/plugins/linked-roles/LinkedRoles.js.map +1 -0
- package/dist/src/plugins/linked-roles/index.d.ts +3 -0
- package/dist/src/plugins/linked-roles/index.d.ts.map +1 -0
- package/dist/src/plugins/linked-roles/index.js +3 -0
- package/dist/src/plugins/linked-roles/index.js.map +1 -0
- package/dist/src/plugins/linked-roles/types.d.ts +94 -0
- package/dist/src/plugins/linked-roles/types.d.ts.map +1 -0
- package/dist/src/plugins/linked-roles/types.js +39 -0
- package/dist/src/plugins/linked-roles/types.js.map +1 -0
- package/dist/src/plugins/paginator/GoToPageModal.d.ts +18 -0
- package/dist/src/plugins/paginator/GoToPageModal.d.ts.map +1 -0
- package/dist/src/plugins/paginator/GoToPageModal.js +56 -0
- package/dist/src/plugins/paginator/GoToPageModal.js.map +1 -0
- package/dist/src/plugins/paginator/Paginator.d.ts +53 -0
- package/dist/src/plugins/paginator/Paginator.d.ts.map +1 -0
- package/dist/src/plugins/paginator/Paginator.js +183 -0
- package/dist/src/plugins/paginator/Paginator.js.map +1 -0
- package/dist/src/plugins/paginator/index.d.ts +11 -0
- package/dist/src/plugins/paginator/index.d.ts.map +1 -0
- package/dist/src/plugins/paginator/index.js +11 -0
- package/dist/src/plugins/paginator/index.js.map +1 -0
- package/dist/src/plugins/sharding/ShardingPlugin.d.ts +44 -0
- package/dist/src/plugins/sharding/ShardingPlugin.d.ts.map +1 -0
- package/dist/src/plugins/sharding/ShardingPlugin.js +119 -0
- package/dist/src/plugins/sharding/ShardingPlugin.js.map +1 -0
- package/dist/src/plugins/sharding/index.d.ts +3 -0
- package/dist/src/plugins/sharding/index.d.ts.map +1 -0
- package/dist/src/plugins/sharding/index.js +3 -0
- package/dist/src/plugins/sharding/index.js.map +1 -0
- package/dist/src/plugins/voice/GuildDeleteListener.d.ts +7 -0
- package/dist/src/plugins/voice/GuildDeleteListener.d.ts.map +1 -0
- package/dist/src/plugins/voice/GuildDeleteListener.js +11 -0
- package/dist/src/plugins/voice/GuildDeleteListener.js.map +1 -0
- package/dist/src/plugins/voice/VoicePlugin.d.ts +15 -0
- package/dist/src/plugins/voice/VoicePlugin.d.ts.map +1 -0
- package/dist/src/plugins/voice/VoicePlugin.js +58 -0
- package/dist/src/plugins/voice/VoicePlugin.js.map +1 -0
- package/dist/src/plugins/voice/VoiceServerUpdateListener.d.ts +10 -0
- package/dist/src/plugins/voice/VoiceServerUpdateListener.d.ts.map +1 -0
- package/dist/src/plugins/voice/VoiceServerUpdateListener.js +16 -0
- package/dist/src/plugins/voice/VoiceServerUpdateListener.js.map +1 -0
- package/dist/src/plugins/voice/VoiceStateUpdateListener.d.ts +10 -0
- package/dist/src/plugins/voice/VoiceStateUpdateListener.d.ts.map +1 -0
- package/dist/src/plugins/voice/VoiceStateUpdateListener.js +21 -0
- package/dist/src/plugins/voice/VoiceStateUpdateListener.js.map +1 -0
- package/dist/src/plugins/voice/index.d.ts +2 -0
- package/dist/src/plugins/voice/index.d.ts.map +1 -0
- package/dist/src/plugins/voice/index.js +2 -0
- package/dist/src/plugins/voice/index.js.map +1 -0
- package/dist/src/structures/DmChannel.d.ts +22 -0
- package/dist/src/structures/DmChannel.d.ts.map +1 -0
- package/dist/src/structures/DmChannel.js +33 -0
- package/dist/src/structures/DmChannel.js.map +1 -0
- package/dist/src/structures/Emoji.d.ts +75 -0
- package/dist/src/structures/Emoji.d.ts.map +1 -0
- package/dist/src/structures/Emoji.js +156 -0
- package/dist/src/structures/Emoji.js.map +1 -0
- package/dist/src/structures/GroupDmChannel.d.ts +75 -0
- package/dist/src/structures/GroupDmChannel.d.ts.map +1 -0
- package/dist/src/structures/GroupDmChannel.js +131 -0
- package/dist/src/structures/GroupDmChannel.js.map +1 -0
- package/dist/src/structures/Guild.d.ts +338 -0
- package/dist/src/structures/Guild.d.ts.map +1 -0
- package/dist/src/structures/Guild.js +715 -0
- package/dist/src/structures/Guild.js.map +1 -0
- package/dist/src/structures/GuildAnnouncementChannel.d.ts +21 -0
- package/dist/src/structures/GuildAnnouncementChannel.d.ts.map +1 -0
- package/dist/src/structures/GuildAnnouncementChannel.js +35 -0
- package/dist/src/structures/GuildAnnouncementChannel.js.map +1 -0
- package/dist/src/structures/GuildCategoryChannel.d.ts +23 -0
- package/dist/src/structures/GuildCategoryChannel.d.ts.map +1 -0
- package/dist/src/structures/GuildCategoryChannel.js +34 -0
- package/dist/src/structures/GuildCategoryChannel.js.map +1 -0
- package/dist/src/structures/GuildForumChannel.d.ts +14 -0
- package/dist/src/structures/GuildForumChannel.d.ts.map +1 -0
- package/dist/src/structures/GuildForumChannel.js +15 -0
- package/dist/src/structures/GuildForumChannel.js.map +1 -0
- package/dist/src/structures/GuildMediaChannel.d.ts +9 -0
- package/dist/src/structures/GuildMediaChannel.d.ts.map +1 -0
- package/dist/src/structures/GuildMediaChannel.js +7 -0
- package/dist/src/structures/GuildMediaChannel.js.map +1 -0
- package/dist/src/structures/GuildMember.d.ts +145 -0
- package/dist/src/structures/GuildMember.d.ts.map +1 -0
- package/dist/src/structures/GuildMember.js +320 -0
- package/dist/src/structures/GuildMember.js.map +1 -0
- package/dist/src/structures/GuildScheduledEvent.d.ts +121 -0
- package/dist/src/structures/GuildScheduledEvent.d.ts.map +1 -0
- package/dist/src/structures/GuildScheduledEvent.js +228 -0
- package/dist/src/structures/GuildScheduledEvent.js.map +1 -0
- package/dist/src/structures/GuildStageOrVoiceChannel.d.ts +40 -0
- package/dist/src/structures/GuildStageOrVoiceChannel.d.ts.map +1 -0
- package/dist/src/structures/GuildStageOrVoiceChannel.js +63 -0
- package/dist/src/structures/GuildStageOrVoiceChannel.js.map +1 -0
- package/dist/src/structures/GuildTextChannel.d.ts +24 -0
- package/dist/src/structures/GuildTextChannel.d.ts.map +1 -0
- package/dist/src/structures/GuildTextChannel.js +41 -0
- package/dist/src/structures/GuildTextChannel.js.map +1 -0
- package/dist/src/structures/GuildThreadChannel.d.ts +90 -0
- package/dist/src/structures/GuildThreadChannel.d.ts.map +1 -0
- package/dist/src/structures/GuildThreadChannel.js +165 -0
- package/dist/src/structures/GuildThreadChannel.js.map +1 -0
- package/dist/src/structures/Message.d.ts +174 -0
- package/dist/src/structures/Message.d.ts.map +1 -0
- package/dist/src/structures/Message.js +417 -0
- package/dist/src/structures/Message.js.map +1 -0
- package/dist/src/structures/Poll.d.ts +29 -0
- package/dist/src/structures/Poll.d.ts.map +1 -0
- package/dist/src/structures/Poll.js +51 -0
- package/dist/src/structures/Poll.js.map +1 -0
- package/dist/src/structures/Role.d.ts +151 -0
- package/dist/src/structures/Role.d.ts.map +1 -0
- package/dist/src/structures/Role.js +291 -0
- package/dist/src/structures/Role.js.map +1 -0
- package/dist/src/structures/ThreadMember.d.ts +40 -0
- package/dist/src/structures/ThreadMember.d.ts.map +1 -0
- package/dist/src/structures/ThreadMember.js +79 -0
- package/dist/src/structures/ThreadMember.js.map +1 -0
- package/dist/src/structures/User.d.ts +104 -0
- package/dist/src/structures/User.d.ts.map +1 -0
- package/dist/src/structures/User.js +199 -0
- package/dist/src/structures/User.js.map +1 -0
- package/dist/src/structures/Webhook.d.ts +160 -0
- package/dist/src/structures/Webhook.d.ts.map +1 -0
- package/dist/src/structures/Webhook.js +287 -0
- package/dist/src/structures/Webhook.js.map +1 -0
- package/dist/src/types/index.d.ts +199 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/types/index.js +2 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/types/listeners.d.ts +579 -0
- package/dist/src/types/listeners.d.ts.map +1 -0
- package/dist/src/types/listeners.js +14 -0
- package/dist/src/types/listeners.js.map +1 -0
- package/dist/src/utils/LRUCache.d.ts +46 -0
- package/dist/src/utils/LRUCache.d.ts.map +1 -0
- package/dist/src/utils/LRUCache.js +78 -0
- package/dist/src/utils/LRUCache.js.map +1 -0
- package/dist/src/utils/cdn.d.ts +31 -0
- package/dist/src/utils/cdn.d.ts.map +1 -0
- package/dist/src/utils/cdn.js +18 -0
- package/dist/src/utils/cdn.js.map +1 -0
- package/dist/src/utils/customIdParser.d.ts +3 -0
- package/dist/src/utils/customIdParser.d.ts.map +1 -0
- package/dist/src/utils/customIdParser.js +38 -0
- package/dist/src/utils/customIdParser.js.map +1 -0
- package/dist/src/utils/index.d.ts +6 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/index.js +6 -0
- package/dist/src/utils/index.js.map +1 -0
- package/dist/src/utils/payload.d.ts +4 -0
- package/dist/src/utils/payload.d.ts.map +1 -0
- package/dist/src/utils/payload.js +61 -0
- package/dist/src/utils/payload.js.map +1 -0
- package/dist/src/utils/proxy.d.ts +27 -0
- package/dist/src/utils/proxy.d.ts.map +1 -0
- package/dist/src/utils/proxy.js +135 -0
- package/dist/src/utils/proxy.js.map +1 -0
- package/dist/src/utils/verification.d.ts +4 -0
- package/dist/src/utils/verification.d.ts.map +1 -0
- package/dist/src/utils/verification.js +52 -0
- package/dist/src/utils/verification.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +43 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { createPrivateKey, sign } from "node:crypto";
|
|
2
|
+
import { ApplicationWebhookType } from "discord-api-types/v10";
|
|
3
|
+
import { concatUint8Arrays, valueToUint8Array } from "../../utils/index.js";
|
|
4
|
+
import { GatewayPlugin } from "../gateway/GatewayPlugin.js";
|
|
5
|
+
export class GatewayForwarderPlugin extends GatewayPlugin {
|
|
6
|
+
id = "gateway-forwarder";
|
|
7
|
+
options;
|
|
8
|
+
privateKey;
|
|
9
|
+
constructor(options) {
|
|
10
|
+
if (!options.privateKey) {
|
|
11
|
+
throw new Error("privateKey is required for GatewayForwarderPlugin");
|
|
12
|
+
}
|
|
13
|
+
super(options);
|
|
14
|
+
try {
|
|
15
|
+
const keyString = options.privateKey.replace(/\\n/g, "\n");
|
|
16
|
+
this.privateKey = createPrivateKey({
|
|
17
|
+
key: keyString,
|
|
18
|
+
format: "pem"
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
23
|
+
throw new Error(`Failed to parse private key: ${message}`);
|
|
24
|
+
}
|
|
25
|
+
this.options = options;
|
|
26
|
+
}
|
|
27
|
+
setupWebSocket() {
|
|
28
|
+
super.setupWebSocket();
|
|
29
|
+
if (!this.ws)
|
|
30
|
+
return;
|
|
31
|
+
this.ws.on("message", async (data) => {
|
|
32
|
+
try {
|
|
33
|
+
const payload = JSON.parse(data.toString());
|
|
34
|
+
if (payload.t && payload.d) {
|
|
35
|
+
if (this.options.eventFilter &&
|
|
36
|
+
!this.options.eventFilter(payload.t))
|
|
37
|
+
return;
|
|
38
|
+
// In the below code, the events are not truly webhook events,
|
|
39
|
+
// but we use the webhook event type so that the payloads are structured correctly to work as if they were webhook events
|
|
40
|
+
const timestamp = Date.now();
|
|
41
|
+
const webhookEvent = {
|
|
42
|
+
version: 1,
|
|
43
|
+
application_id: this.client?.options.clientId || "unknown",
|
|
44
|
+
type: ApplicationWebhookType.Event,
|
|
45
|
+
event: {
|
|
46
|
+
type: payload.t,
|
|
47
|
+
timestamp: new Date().toISOString(),
|
|
48
|
+
data: payload.d
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
const body = JSON.stringify(webhookEvent);
|
|
52
|
+
const timestampData = valueToUint8Array(timestamp.toString());
|
|
53
|
+
const bodyData = valueToUint8Array(body);
|
|
54
|
+
const message = concatUint8Arrays(timestampData, bodyData);
|
|
55
|
+
const signature = sign(null, message, this.privateKey);
|
|
56
|
+
const signatureHex = signature.toString("hex");
|
|
57
|
+
const headers = new Headers(this.options.webhookHeaders);
|
|
58
|
+
const response = await fetch(this.options.webhookUrl, {
|
|
59
|
+
method: "POST",
|
|
60
|
+
headers: {
|
|
61
|
+
...headers,
|
|
62
|
+
"Content-Type": "application/json",
|
|
63
|
+
"X-Signature-Ed25519": signatureHex,
|
|
64
|
+
"X-Signature-Timestamp": timestamp.toString()
|
|
65
|
+
},
|
|
66
|
+
body
|
|
67
|
+
});
|
|
68
|
+
await response.text().catch(() => { });
|
|
69
|
+
if (!response.ok) {
|
|
70
|
+
console.error(`Failed to forward event ${payload.t}: ${response.status} ${response.statusText}`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
console.error("Error forwarding webhook event:", error);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=GatewayForwarderPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GatewayForwarderPlugin.js","sourceRoot":"","sources":["../../../../src/plugins/gateway-forwarder/GatewayForwarderPlugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ShardingPlugin, type ShardingPluginOptions } from "../sharding/ShardingPlugin.js";
|
|
2
|
+
import type { GatewayForwarderPluginOptions } from "./GatewayForwarderPlugin.js";
|
|
3
|
+
import { GatewayForwarderPlugin } from "./GatewayForwarderPlugin.js";
|
|
4
|
+
export type ShardedGatewayForwarderPluginOptions = GatewayForwarderPluginOptions & ShardingPluginOptions;
|
|
5
|
+
export declare class ShardedGatewayForwarderPlugin extends ShardingPlugin {
|
|
6
|
+
readonly id: "sharding";
|
|
7
|
+
customGatewayPlugin: typeof GatewayForwarderPlugin;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=ShardedGatewayForwarderPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShardedGatewayForwarderPlugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/gateway-forwarder/ShardedGatewayForwarderPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,cAAc,EACd,KAAK,qBAAqB,EAC1B,MAAM,+BAA+B,CAAA;AACtC,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAEpE,MAAM,MAAM,oCAAoC,GAC/C,6BAA6B,GAAG,qBAAqB,CAAA;AAEtD,qBAAa,6BAA8B,SAAQ,cAAc;IAChE,SAAkB,EAAE,EAAkC,UAAU,CAAA;IAEhE,mBAAmB,gCAAyB;CAC5C"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ShardingPlugin } from "../sharding/ShardingPlugin.js";
|
|
2
|
+
import { GatewayForwarderPlugin } from "./GatewayForwarderPlugin.js";
|
|
3
|
+
export class ShardedGatewayForwarderPlugin extends ShardingPlugin {
|
|
4
|
+
id = "sharded-gateway-forwarder";
|
|
5
|
+
customGatewayPlugin = GatewayForwarderPlugin;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=ShardedGatewayForwarderPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShardedGatewayForwarderPlugin.js","sourceRoot":"","sources":["../../../../src/plugins/gateway-forwarder/ShardedGatewayForwarderPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,cAAc,EAEd,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAKpE,MAAM,OAAO,6BAA8B,SAAQ,cAAc;IAC9C,EAAE,GAAG,2BAAyC,CAAA;IAEhE,mBAAmB,GAAG,sBAAsB,CAAA;CAC5C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/gateway-forwarder/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,oCAAoC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/gateway-forwarder/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,oCAAoC,CAAA"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Plugin } from "../../abstracts/Plugin.js";
|
|
2
|
+
import type { Client } from "../../classes/Client.js";
|
|
3
|
+
import { type LinkedRolesOptions } from "./types.js";
|
|
4
|
+
declare module "../../classes/Client.d.ts" {
|
|
5
|
+
interface ClientOptions {
|
|
6
|
+
/**
|
|
7
|
+
* The client secret of the app, used for OAuth
|
|
8
|
+
*/
|
|
9
|
+
clientSecret: string;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* This class is the main class that is used for the linked roles feature of Carbon.
|
|
14
|
+
* It handles all the additional routes and oauth.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* import { Client, ApplicationRoleConnectionMetadataType } from "@buape/carbon"
|
|
19
|
+
* import { LinkedRoles } from "@buape/carbon/linked-roles"
|
|
20
|
+
*
|
|
21
|
+
* const linkedRoles = new LinkedRoles({
|
|
22
|
+
* metadata: [
|
|
23
|
+
* {
|
|
24
|
+
* key: "is_staff",
|
|
25
|
+
* name: "Verified Staff",
|
|
26
|
+
* description: "Whether the user is a verified staff member",
|
|
27
|
+
* type: ApplicationRoleConnectionMetadataType.BooleanEqual
|
|
28
|
+
* }
|
|
29
|
+
* ],
|
|
30
|
+
* metadataCheckers: {
|
|
31
|
+
* is_staff: async (userId) => {
|
|
32
|
+
* const allStaff = ["439223656200273932"]
|
|
33
|
+
* return allStaff.includes(userId)
|
|
34
|
+
* }
|
|
35
|
+
* }
|
|
36
|
+
* })
|
|
37
|
+
*
|
|
38
|
+
* const client = new Client({ ... }, [ ... ], [linkedRoles])
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare class LinkedRoles extends Plugin {
|
|
42
|
+
readonly id = "linked-roles";
|
|
43
|
+
client?: Client;
|
|
44
|
+
options: LinkedRolesOptions;
|
|
45
|
+
constructor(options: LinkedRolesOptions);
|
|
46
|
+
registerClient(client: Client): void;
|
|
47
|
+
registerRoutes(client: Client): void;
|
|
48
|
+
private assertRegistered;
|
|
49
|
+
/**
|
|
50
|
+
* Handle a request to deploy the linked roles to Discord
|
|
51
|
+
* @returns A response
|
|
52
|
+
*/
|
|
53
|
+
handleDeployRequest(): Promise<Response>;
|
|
54
|
+
/**
|
|
55
|
+
* Handle the verify user request
|
|
56
|
+
* @returns A response
|
|
57
|
+
*/
|
|
58
|
+
handleUserVerificationRequest(): Promise<Response>;
|
|
59
|
+
/**
|
|
60
|
+
* Handle the verify user callback request
|
|
61
|
+
* @param req The request
|
|
62
|
+
* @returns A response
|
|
63
|
+
*/
|
|
64
|
+
handleUserVerificationCallbackRequest(req: Request): Promise<Response>;
|
|
65
|
+
private getMetadataFromCheckers;
|
|
66
|
+
private getOAuthTokens;
|
|
67
|
+
private updateMetadata;
|
|
68
|
+
private setMetadata;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=LinkedRoles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkedRoles.d.ts","sourceRoot":"","sources":["../../../../src/plugins/linked-roles/LinkedRoles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAEN,KAAK,kBAAkB,EACvB,MAAM,YAAY,CAAA;AAUnB,OAAO,QAAQ,2BAA2B,CAAC;IAC1C,UAAU,aAAa;QACtB;;WAEG;QACH,YAAY,EAAE,MAAM,CAAA;KACpB;CACD;AAOD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,WAAY,SAAQ,MAAM;IACtC,QAAQ,CAAC,EAAE,kBAAiB;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,kBAAkB,CAAA;gBAEf,OAAO,EAAE,kBAAkB;IAKhC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQpC,cAAc,CAAC,MAAM,EAAE,MAAM;IAsBpC,OAAO,CAAC,gBAAgB;IAIxB;;;OAGG;IACU,mBAAmB;IAKhC;;;OAGG;IACU,6BAA6B;IAU1C;;;;OAIG;IACU,qCAAqC,CAAC,GAAG,EAAE,OAAO;YA8BjD,uBAAuB;YAiCvB,cAAc;YA8Bd,cAAc;YAyBd,WAAW;CAsBzB"}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { Plugin } from "../../abstracts/Plugin.js";
|
|
2
|
+
import { ApplicationRoleConnectionMetadataType } from "./types.js";
|
|
3
|
+
// TODO: IMO, the metadata for this should be handled similarly to the client and its commands
|
|
4
|
+
// That is passing an array of connection instances as the second argument to the constructor
|
|
5
|
+
// That is, maybe, for another pr though
|
|
6
|
+
// TODO: Improve the response messages
|
|
7
|
+
/**
|
|
8
|
+
* This class is the main class that is used for the linked roles feature of Carbon.
|
|
9
|
+
* It handles all the additional routes and oauth.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* import { Client, ApplicationRoleConnectionMetadataType } from "@buape/carbon"
|
|
14
|
+
* import { LinkedRoles } from "@buape/carbon/linked-roles"
|
|
15
|
+
*
|
|
16
|
+
* const linkedRoles = new LinkedRoles({
|
|
17
|
+
* metadata: [
|
|
18
|
+
* {
|
|
19
|
+
* key: "is_staff",
|
|
20
|
+
* name: "Verified Staff",
|
|
21
|
+
* description: "Whether the user is a verified staff member",
|
|
22
|
+
* type: ApplicationRoleConnectionMetadataType.BooleanEqual
|
|
23
|
+
* }
|
|
24
|
+
* ],
|
|
25
|
+
* metadataCheckers: {
|
|
26
|
+
* is_staff: async (userId) => {
|
|
27
|
+
* const allStaff = ["439223656200273932"]
|
|
28
|
+
* return allStaff.includes(userId)
|
|
29
|
+
* }
|
|
30
|
+
* }
|
|
31
|
+
* })
|
|
32
|
+
*
|
|
33
|
+
* const client = new Client({ ... }, [ ... ], [linkedRoles])
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export class LinkedRoles extends Plugin {
|
|
37
|
+
id = "linked-roles";
|
|
38
|
+
client;
|
|
39
|
+
options;
|
|
40
|
+
constructor(options) {
|
|
41
|
+
super();
|
|
42
|
+
this.options = { ...options };
|
|
43
|
+
}
|
|
44
|
+
registerClient(client) {
|
|
45
|
+
if (!client.options.baseUrl)
|
|
46
|
+
throw new Error("Missing base URL");
|
|
47
|
+
if (!client.options.clientSecret)
|
|
48
|
+
throw new Error("Missing client secret");
|
|
49
|
+
if (!client.options.deploySecret && !this.options.disableDeployRoute)
|
|
50
|
+
throw new Error("Missing deploy secret");
|
|
51
|
+
this.client = client;
|
|
52
|
+
}
|
|
53
|
+
registerRoutes(client) {
|
|
54
|
+
client.routes.push({
|
|
55
|
+
method: "GET",
|
|
56
|
+
path: "/linked-roles/deploy",
|
|
57
|
+
handler: this.handleDeployRequest.bind(this),
|
|
58
|
+
protected: true,
|
|
59
|
+
disabled: this.options.disableDeployRoute
|
|
60
|
+
});
|
|
61
|
+
client.routes.push({
|
|
62
|
+
method: "GET",
|
|
63
|
+
path: "/linked-roles/verify-user",
|
|
64
|
+
handler: this.handleUserVerificationRequest.bind(this),
|
|
65
|
+
disabled: this.options.disableVerifyUserRoute
|
|
66
|
+
});
|
|
67
|
+
client.routes.push({
|
|
68
|
+
method: "GET",
|
|
69
|
+
path: "/linked-roles/verify-user/callback",
|
|
70
|
+
handler: this.handleUserVerificationCallbackRequest.bind(this),
|
|
71
|
+
disabled: this.options.disableVerifyUserCallbackRoute
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
assertRegistered() {
|
|
75
|
+
if (!this.client)
|
|
76
|
+
throw new Error("Client not registered");
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Handle a request to deploy the linked roles to Discord
|
|
80
|
+
* @returns A response
|
|
81
|
+
*/
|
|
82
|
+
async handleDeployRequest() {
|
|
83
|
+
await this.setMetadata(this.options.metadata);
|
|
84
|
+
return new Response("OK", { status: 202 });
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Handle the verify user request
|
|
88
|
+
* @returns A response
|
|
89
|
+
*/
|
|
90
|
+
async handleUserVerificationRequest() {
|
|
91
|
+
this.assertRegistered();
|
|
92
|
+
return new Response("Found", {
|
|
93
|
+
status: 302,
|
|
94
|
+
headers: {
|
|
95
|
+
Location: `https://discord.com/oauth2/authorize?client_id=${this.client.options.clientId}&redirect_uri=${encodeURIComponent(`${this.client.options.baseUrl}/linked-roles/verify-user/callback`)}&response_type=code&scope=identify+role_connections.write&prompt=none`
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Handle the verify user callback request
|
|
101
|
+
* @param req The request
|
|
102
|
+
* @returns A response
|
|
103
|
+
*/
|
|
104
|
+
async handleUserVerificationCallbackRequest(req) {
|
|
105
|
+
this.assertRegistered();
|
|
106
|
+
const url = new URL(req.url);
|
|
107
|
+
const code = String(url.searchParams.get("code"));
|
|
108
|
+
const tokens = await this.getOAuthTokens(code);
|
|
109
|
+
const authData = await (await fetch("https://discord.com/api/v10/oauth2/@me", {
|
|
110
|
+
headers: {
|
|
111
|
+
Authorization: `Bearer ${tokens.access_token}`
|
|
112
|
+
}
|
|
113
|
+
})).json();
|
|
114
|
+
if (!authData.user)
|
|
115
|
+
return new Response("", {
|
|
116
|
+
status: 307,
|
|
117
|
+
headers: {
|
|
118
|
+
Location: `${this.client.options.baseUrl}/connect`
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
const newMetadata = await this.getMetadataFromCheckers(authData.user.id);
|
|
122
|
+
await this.updateMetadata(authData.user?.id, newMetadata, tokens);
|
|
123
|
+
// IDEA: Maybe we can redirect to a success page instead of just a message
|
|
124
|
+
return new Response("You can now close this tab.");
|
|
125
|
+
}
|
|
126
|
+
async getMetadataFromCheckers(userId) {
|
|
127
|
+
const result = {};
|
|
128
|
+
for (const metadata of this.options.metadata) {
|
|
129
|
+
const checker = this.options.metadataCheckers[metadata.key];
|
|
130
|
+
if (!checker)
|
|
131
|
+
throw new Error(`You did not provide a checker for ${metadata.key}`);
|
|
132
|
+
const value = await checker(userId);
|
|
133
|
+
switch (metadata.type) {
|
|
134
|
+
case ApplicationRoleConnectionMetadataType.BooleanEqual:
|
|
135
|
+
case ApplicationRoleConnectionMetadataType.BooleanNotEqual:
|
|
136
|
+
if (typeof value !== "boolean")
|
|
137
|
+
throw new Error(`Expected boolean for ${metadata.key}`);
|
|
138
|
+
break;
|
|
139
|
+
case ApplicationRoleConnectionMetadataType.DatetimeGreaterThanOrEqual:
|
|
140
|
+
case ApplicationRoleConnectionMetadataType.DatetimeLessThanOrEqual:
|
|
141
|
+
if (typeof value !== "number")
|
|
142
|
+
throw new Error(`Expected number for ${metadata.key}`);
|
|
143
|
+
break;
|
|
144
|
+
case ApplicationRoleConnectionMetadataType.IntegerEqual:
|
|
145
|
+
case ApplicationRoleConnectionMetadataType.IntegerNotEqual:
|
|
146
|
+
case ApplicationRoleConnectionMetadataType.IntegerGreaterThanOrEqual:
|
|
147
|
+
case ApplicationRoleConnectionMetadataType.IntegerLessThanOrEqual:
|
|
148
|
+
if (!(typeof value === "number" && Number.isSafeInteger(value)))
|
|
149
|
+
throw new Error(`Expected integer for ${metadata.key}`);
|
|
150
|
+
break;
|
|
151
|
+
default:
|
|
152
|
+
throw new Error(`Unknown metadata type ${metadata.type}`);
|
|
153
|
+
}
|
|
154
|
+
result[metadata.key] = value;
|
|
155
|
+
}
|
|
156
|
+
return result;
|
|
157
|
+
}
|
|
158
|
+
async getOAuthTokens(code) {
|
|
159
|
+
this.assertRegistered();
|
|
160
|
+
const url = "https://discord.com/api/v10/oauth2/token";
|
|
161
|
+
const body = new URLSearchParams({
|
|
162
|
+
client_id: this.client.options.clientId,
|
|
163
|
+
client_secret: this.client.options.clientSecret,
|
|
164
|
+
grant_type: "authorization_code",
|
|
165
|
+
code,
|
|
166
|
+
redirect_uri: `${this.client.options.baseUrl}/linked-roles/verify-user/callback`
|
|
167
|
+
});
|
|
168
|
+
const response = await fetch(url, {
|
|
169
|
+
body,
|
|
170
|
+
method: "POST",
|
|
171
|
+
headers: {
|
|
172
|
+
"Content-Type": "application/x-www-form-urlencoded"
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
if (response.ok) {
|
|
176
|
+
const data = await response.json();
|
|
177
|
+
return data;
|
|
178
|
+
}
|
|
179
|
+
throw new Error(`Error fetching OAuth tokens: [${response.status}] ${JSON.stringify(await response.json())}`);
|
|
180
|
+
}
|
|
181
|
+
async updateMetadata(userId, metadata, tokens) {
|
|
182
|
+
this.assertRegistered();
|
|
183
|
+
const url = `https://discord.com/api/v10/users/@me/applications/${this.client.options.clientId}/role-connection`;
|
|
184
|
+
const response = await fetch(url, {
|
|
185
|
+
method: "PUT",
|
|
186
|
+
body: JSON.stringify({ metadata }),
|
|
187
|
+
headers: {
|
|
188
|
+
Authorization: `Bearer ${tokens.access_token}`,
|
|
189
|
+
"Content-Type": "application/json"
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
if (!response.ok) {
|
|
193
|
+
throw new Error(`Error pushing discord metadata for ${userId}: [${response.status}] ${JSON.stringify(await response.json())}`);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
async setMetadata(data) {
|
|
197
|
+
this.assertRegistered();
|
|
198
|
+
const response = await fetch(`https://discord.com/api/v10/applications/${this.client.options.clientId}/role-connections/metadata`, {
|
|
199
|
+
method: "PUT",
|
|
200
|
+
body: JSON.stringify(data),
|
|
201
|
+
headers: {
|
|
202
|
+
"Content-Type": "application/json",
|
|
203
|
+
Authorization: `Bot ${this.client.options.token}`
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
if (!response.ok) {
|
|
207
|
+
throw new Error(`Error pushing discord metadata: [${response.status}] ${JSON.stringify(await response.json())}`);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=LinkedRoles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkedRoles.js","sourceRoot":"","sources":["../../../../src/plugins/linked-roles/LinkedRoles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/linked-roles/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/linked-roles/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The type of metadata that you can check for
|
|
3
|
+
*/
|
|
4
|
+
export declare enum ApplicationRoleConnectionMetadataType {
|
|
5
|
+
/**
|
|
6
|
+
* The metadata value (`integer`) is less than or equal to the guild's configured value (`integer`)
|
|
7
|
+
*/
|
|
8
|
+
IntegerLessThanOrEqual = 1,
|
|
9
|
+
/**
|
|
10
|
+
* The metadata value (`integer`) is greater than or equal to the guild's configured value (`integer`)
|
|
11
|
+
*/
|
|
12
|
+
IntegerGreaterThanOrEqual = 2,
|
|
13
|
+
/**
|
|
14
|
+
* The metadata value (`integer`) is equal to the guild's configured value (`integer`)
|
|
15
|
+
*/
|
|
16
|
+
IntegerEqual = 3,
|
|
17
|
+
/**
|
|
18
|
+
* The metadata value (`integer`) is not equal to the guild's configured value (`integer`)
|
|
19
|
+
*/
|
|
20
|
+
IntegerNotEqual = 4,
|
|
21
|
+
/**
|
|
22
|
+
* The metadata value (`ISO8601 string`) is less than or equal to the guild's configured value (`integer`; days before current date)
|
|
23
|
+
*/
|
|
24
|
+
DatetimeLessThanOrEqual = 5,
|
|
25
|
+
/**
|
|
26
|
+
* The metadata value (`ISO8601 string`) is greater than or equal to the guild's configured value (`integer`; days before current date)
|
|
27
|
+
*/
|
|
28
|
+
DatetimeGreaterThanOrEqual = 6,
|
|
29
|
+
/**
|
|
30
|
+
* The metadata value (`integer`) is equal to the guild's configured value (`integer`; `1`)
|
|
31
|
+
*/
|
|
32
|
+
BooleanEqual = 7,
|
|
33
|
+
/**
|
|
34
|
+
* The metadata value (`integer`) is not equal to the guild's configured value (`integer`; `1`)
|
|
35
|
+
*/
|
|
36
|
+
BooleanNotEqual = 8
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The options for the linked roles package
|
|
40
|
+
*/
|
|
41
|
+
export type LinkedRolesOptions = {
|
|
42
|
+
/**
|
|
43
|
+
* The metadata that you want to check for, and that should show to the end-user on Discord.
|
|
44
|
+
*/
|
|
45
|
+
metadata: LinkedRoleCriteria[];
|
|
46
|
+
/**
|
|
47
|
+
* The functions that you want to use to check the metadata.
|
|
48
|
+
* @remarks
|
|
49
|
+
* If you are checking a boolean, you should return `true` or `false`.
|
|
50
|
+
* If you are checking an integer, you should return a number that is safe to use as an integer.
|
|
51
|
+
* If you are checking a datetime, you should return a Date.now() timestamp.
|
|
52
|
+
*/
|
|
53
|
+
metadataCheckers: {
|
|
54
|
+
[name: string]: (userId: string) => Promise<number | boolean>;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Whether the deploy route should be disabled.
|
|
58
|
+
* @default false
|
|
59
|
+
*/
|
|
60
|
+
disableDeployRoute?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Whether the connect route should be disabled.
|
|
63
|
+
* @default false
|
|
64
|
+
*/
|
|
65
|
+
disableVerifyUserRoute?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Whether the connect callback route should be disabled.
|
|
68
|
+
* @default false
|
|
69
|
+
*/
|
|
70
|
+
disableVerifyUserCallbackRoute?: boolean;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* The metadata that you want to check for, and that should show to the end-user on Discord.
|
|
74
|
+
* @remarks You can only have 5 metadata per application, and they apply across all guilds your app is in.
|
|
75
|
+
*/
|
|
76
|
+
export type LinkedRoleCriteria = {
|
|
77
|
+
/**
|
|
78
|
+
* The key of the metadata. This is only used on the code side, and is not seen by the end user.
|
|
79
|
+
*/
|
|
80
|
+
key: string;
|
|
81
|
+
/**
|
|
82
|
+
* The type of metadata that you want to check for.
|
|
83
|
+
*/
|
|
84
|
+
type: ApplicationRoleConnectionMetadataType;
|
|
85
|
+
/**
|
|
86
|
+
* The name of the metadata. This is what the end user will see.
|
|
87
|
+
*/
|
|
88
|
+
name: string;
|
|
89
|
+
/**
|
|
90
|
+
* A description of the metadata.
|
|
91
|
+
*/
|
|
92
|
+
description: string;
|
|
93
|
+
};
|
|
94
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/plugins/linked-roles/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,qCAAqC;IAChD;;OAEG;IACH,sBAAsB,IAAI;IAC1B;;OAEG;IACH,yBAAyB,IAAI;IAC7B;;OAEG;IACH,YAAY,IAAI;IAChB;;OAEG;IACH,eAAe,IAAI;IACnB;;OAEG;IACH,uBAAuB,IAAI;IAC3B;;OAEG;IACH,0BAA0B,IAAI;IAC9B;;OAEG;IACH,YAAY,IAAI;IAChB;;OAEG;IACH,eAAe,IAAI;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAChC;;OAEG;IACH,QAAQ,EAAE,kBAAkB,EAAE,CAAA;IAC9B;;;;;;OAMG;IACH,gBAAgB,EAAE;QACjB,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,CAAA;KAC7D,CAAA;IACD;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC;;;OAGG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAA;CACxC,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAChC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,IAAI,EAAE,qCAAqC,CAAA;IAC3C;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;CACnB,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The type of metadata that you can check for
|
|
3
|
+
*/
|
|
4
|
+
export var ApplicationRoleConnectionMetadataType;
|
|
5
|
+
(function (ApplicationRoleConnectionMetadataType) {
|
|
6
|
+
/**
|
|
7
|
+
* The metadata value (`integer`) is less than or equal to the guild's configured value (`integer`)
|
|
8
|
+
*/
|
|
9
|
+
ApplicationRoleConnectionMetadataType[ApplicationRoleConnectionMetadataType["IntegerLessThanOrEqual"] = 1] = "IntegerLessThanOrEqual";
|
|
10
|
+
/**
|
|
11
|
+
* The metadata value (`integer`) is greater than or equal to the guild's configured value (`integer`)
|
|
12
|
+
*/
|
|
13
|
+
ApplicationRoleConnectionMetadataType[ApplicationRoleConnectionMetadataType["IntegerGreaterThanOrEqual"] = 2] = "IntegerGreaterThanOrEqual";
|
|
14
|
+
/**
|
|
15
|
+
* The metadata value (`integer`) is equal to the guild's configured value (`integer`)
|
|
16
|
+
*/
|
|
17
|
+
ApplicationRoleConnectionMetadataType[ApplicationRoleConnectionMetadataType["IntegerEqual"] = 3] = "IntegerEqual";
|
|
18
|
+
/**
|
|
19
|
+
* The metadata value (`integer`) is not equal to the guild's configured value (`integer`)
|
|
20
|
+
*/
|
|
21
|
+
ApplicationRoleConnectionMetadataType[ApplicationRoleConnectionMetadataType["IntegerNotEqual"] = 4] = "IntegerNotEqual";
|
|
22
|
+
/**
|
|
23
|
+
* The metadata value (`ISO8601 string`) is less than or equal to the guild's configured value (`integer`; days before current date)
|
|
24
|
+
*/
|
|
25
|
+
ApplicationRoleConnectionMetadataType[ApplicationRoleConnectionMetadataType["DatetimeLessThanOrEqual"] = 5] = "DatetimeLessThanOrEqual";
|
|
26
|
+
/**
|
|
27
|
+
* The metadata value (`ISO8601 string`) is greater than or equal to the guild's configured value (`integer`; days before current date)
|
|
28
|
+
*/
|
|
29
|
+
ApplicationRoleConnectionMetadataType[ApplicationRoleConnectionMetadataType["DatetimeGreaterThanOrEqual"] = 6] = "DatetimeGreaterThanOrEqual";
|
|
30
|
+
/**
|
|
31
|
+
* The metadata value (`integer`) is equal to the guild's configured value (`integer`; `1`)
|
|
32
|
+
*/
|
|
33
|
+
ApplicationRoleConnectionMetadataType[ApplicationRoleConnectionMetadataType["BooleanEqual"] = 7] = "BooleanEqual";
|
|
34
|
+
/**
|
|
35
|
+
* The metadata value (`integer`) is not equal to the guild's configured value (`integer`; `1`)
|
|
36
|
+
*/
|
|
37
|
+
ApplicationRoleConnectionMetadataType[ApplicationRoleConnectionMetadataType["BooleanNotEqual"] = 8] = "BooleanNotEqual";
|
|
38
|
+
})(ApplicationRoleConnectionMetadataType || (ApplicationRoleConnectionMetadataType = {}));
|
|
39
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/plugins/linked-roles/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,qCAiCX;AAjCD,WAAY,qCAAqC;IAChD;;OAEG;IACH,qIAA0B,CAAA;IAC1B;;OAEG;IACH,2IAA6B,CAAA;IAC7B;;OAEG;IACH,iHAAgB,CAAA;IAChB;;OAEG;IACH,uHAAmB,CAAA;IACnB;;OAEG;IACH,uIAA2B,CAAA;IAC3B;;OAEG;IACH,6IAA8B,CAAA;IAC9B;;OAEG;IACH,iHAAgB,CAAA;IAChB;;OAEG;IACH,uHAAmB,CAAA;AACpB,CAAC,EAjCW,qCAAqC,KAArC,qCAAqC,QAiChD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Label } from "../../classes/components/Label.js";
|
|
2
|
+
import { Modal } from "../../classes/Modal.js";
|
|
3
|
+
import type { ModalInteraction } from "../../internals/ModalInteraction.js";
|
|
4
|
+
import type { ComponentData } from "../../types/index.js";
|
|
5
|
+
export declare class GoToPageModal extends Modal {
|
|
6
|
+
title: string;
|
|
7
|
+
customId: string;
|
|
8
|
+
components: PageNumberLabel[];
|
|
9
|
+
constructor(paginatorId: string, maxPages: number);
|
|
10
|
+
run(interaction: ModalInteraction, data: ComponentData): Promise<void | import("../../index.js").Message<false>>;
|
|
11
|
+
}
|
|
12
|
+
declare class PageNumberLabel extends Label {
|
|
13
|
+
label: string;
|
|
14
|
+
description: string;
|
|
15
|
+
constructor();
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=GoToPageModal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GoToPageModal.d.ts","sourceRoot":"","sources":["../../../../src/plugins/paginator/GoToPageModal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAA;AAEzD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEzD,qBAAa,aAAc,SAAQ,KAAK;IACvC,KAAK,SAAe;IACpB,QAAQ,EAAE,MAAM,CAAA;IAEhB,UAAU,oBAA0B;gBAExB,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAK3C,GAAG,CAAC,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa;CAiC5D;AAED,cAAM,eAAgB,SAAQ,KAAK;IAClC,KAAK,SAAgB;IACrB,WAAW,SAA4C;;CAKvD"}
|