@neontechspace/fluxerly 1000.0.0-nightly.12
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/CHANGELOG.md +833 -0
- package/LICENSE +201 -0
- package/README.md +129 -0
- package/agents/AGENTS.md +195 -0
- package/dist/api/default/application.d.ts +34 -0
- package/dist/api/default/application.d.ts.map +1 -0
- package/dist/api/default/application.js +2 -0
- package/dist/api/default/application.js.map +1 -0
- package/dist/api/default/attachments.d.ts +89 -0
- package/dist/api/default/attachments.d.ts.map +1 -0
- package/dist/api/default/attachments.js +2 -0
- package/dist/api/default/attachments.js.map +1 -0
- package/dist/api/default/audit-logs.d.ts +48 -0
- package/dist/api/default/audit-logs.d.ts.map +1 -0
- package/dist/api/default/audit-logs.js +2 -0
- package/dist/api/default/audit-logs.js.map +1 -0
- package/dist/api/default/bot.d.ts +200 -0
- package/dist/api/default/bot.d.ts.map +1 -0
- package/dist/api/default/bot.js +309 -0
- package/dist/api/default/bot.js.map +1 -0
- package/dist/api/default/cache.d.ts +105 -0
- package/dist/api/default/cache.d.ts.map +1 -0
- package/dist/api/default/cache.js +2 -0
- package/dist/api/default/cache.js.map +1 -0
- package/dist/api/default/channels.d.ts +249 -0
- package/dist/api/default/channels.d.ts.map +1 -0
- package/dist/api/default/channels.js +2 -0
- package/dist/api/default/channels.js.map +1 -0
- package/dist/api/default/client.d.ts +528 -0
- package/dist/api/default/client.d.ts.map +1 -0
- package/dist/api/default/client.js +301 -0
- package/dist/api/default/client.js.map +1 -0
- package/dist/api/default/collectors.d.ts +76 -0
- package/dist/api/default/collectors.d.ts.map +1 -0
- package/dist/api/default/collectors.js +2 -0
- package/dist/api/default/collectors.js.map +1 -0
- package/dist/api/default/commands.d.ts +91 -0
- package/dist/api/default/commands.d.ts.map +1 -0
- package/dist/api/default/commands.js +92 -0
- package/dist/api/default/commands.js.map +1 -0
- package/dist/api/default/direct-messages.d.ts +111 -0
- package/dist/api/default/direct-messages.d.ts.map +1 -0
- package/dist/api/default/direct-messages.js +2 -0
- package/dist/api/default/direct-messages.js.map +1 -0
- package/dist/api/default/discovery.d.ts +76 -0
- package/dist/api/default/discovery.d.ts.map +1 -0
- package/dist/api/default/discovery.js +2 -0
- package/dist/api/default/discovery.js.map +1 -0
- package/dist/api/default/emojis.d.ts +88 -0
- package/dist/api/default/emojis.d.ts.map +1 -0
- package/dist/api/default/emojis.js +2 -0
- package/dist/api/default/emojis.js.map +1 -0
- package/dist/api/default/events.d.ts +127 -0
- package/dist/api/default/events.d.ts.map +1 -0
- package/dist/api/default/events.js +2 -0
- package/dist/api/default/events.js.map +1 -0
- package/dist/api/default/gateway.d.ts +62 -0
- package/dist/api/default/gateway.d.ts.map +1 -0
- package/dist/api/default/gateway.js +2 -0
- package/dist/api/default/gateway.js.map +1 -0
- package/dist/api/default/guards.d.ts +87 -0
- package/dist/api/default/guards.d.ts.map +1 -0
- package/dist/api/default/guards.js +78 -0
- package/dist/api/default/guards.js.map +1 -0
- package/dist/api/default/guilds.d.ts +230 -0
- package/dist/api/default/guilds.d.ts.map +1 -0
- package/dist/api/default/guilds.js +2 -0
- package/dist/api/default/guilds.js.map +1 -0
- package/dist/api/default/helpers.d.ts +79 -0
- package/dist/api/default/helpers.d.ts.map +1 -0
- package/dist/api/default/helpers.js +79 -0
- package/dist/api/default/helpers.js.map +1 -0
- package/dist/api/default/instance.d.ts +47 -0
- package/dist/api/default/instance.d.ts.map +1 -0
- package/dist/api/default/instance.js +2 -0
- package/dist/api/default/instance.js.map +1 -0
- package/dist/api/default/invites.d.ts +57 -0
- package/dist/api/default/invites.d.ts.map +1 -0
- package/dist/api/default/invites.js +2 -0
- package/dist/api/default/invites.js.map +1 -0
- package/dist/api/default/logging.d.ts +37 -0
- package/dist/api/default/logging.d.ts.map +1 -0
- package/dist/api/default/logging.js +2 -0
- package/dist/api/default/logging.js.map +1 -0
- package/dist/api/default/members.d.ts +442 -0
- package/dist/api/default/members.d.ts.map +1 -0
- package/dist/api/default/members.js +2 -0
- package/dist/api/default/members.js.map +1 -0
- package/dist/api/default/messages.d.ts +898 -0
- package/dist/api/default/messages.d.ts.map +1 -0
- package/dist/api/default/messages.js +2 -0
- package/dist/api/default/messages.js.map +1 -0
- package/dist/api/default/oauth.d.ts +168 -0
- package/dist/api/default/oauth.d.ts.map +1 -0
- package/dist/api/default/oauth.js +84 -0
- package/dist/api/default/oauth.js.map +1 -0
- package/dist/api/default/permissions.d.ts +44 -0
- package/dist/api/default/permissions.d.ts.map +1 -0
- package/dist/api/default/permissions.js +2 -0
- package/dist/api/default/permissions.js.map +1 -0
- package/dist/api/default/presence.d.ts +88 -0
- package/dist/api/default/presence.d.ts.map +1 -0
- package/dist/api/default/presence.js +2 -0
- package/dist/api/default/presence.js.map +1 -0
- package/dist/api/default/rest.d.ts +28 -0
- package/dist/api/default/rest.d.ts.map +1 -0
- package/dist/api/default/rest.js +2 -0
- package/dist/api/default/rest.js.map +1 -0
- package/dist/api/default/results.d.ts +31 -0
- package/dist/api/default/results.d.ts.map +1 -0
- package/dist/api/default/results.js +14 -0
- package/dist/api/default/results.js.map +1 -0
- package/dist/api/default/roles.d.ts +119 -0
- package/dist/api/default/roles.d.ts.map +1 -0
- package/dist/api/default/roles.js +2 -0
- package/dist/api/default/roles.js.map +1 -0
- package/dist/api/default/stickers.d.ts +92 -0
- package/dist/api/default/stickers.d.ts.map +1 -0
- package/dist/api/default/stickers.js +2 -0
- package/dist/api/default/stickers.js.map +1 -0
- package/dist/api/default/supervisor.d.ts +51 -0
- package/dist/api/default/supervisor.d.ts.map +1 -0
- package/dist/api/default/supervisor.js +53 -0
- package/dist/api/default/supervisor.js.map +1 -0
- package/dist/api/default/threads.d.ts +158 -0
- package/dist/api/default/threads.d.ts.map +1 -0
- package/dist/api/default/threads.js +2 -0
- package/dist/api/default/threads.js.map +1 -0
- package/dist/api/default/users.d.ts +73 -0
- package/dist/api/default/users.d.ts.map +1 -0
- package/dist/api/default/users.js +2 -0
- package/dist/api/default/users.js.map +1 -0
- package/dist/api/default/webhook-client.d.ts +149 -0
- package/dist/api/default/webhook-client.d.ts.map +1 -0
- package/dist/api/default/webhook-client.js +69 -0
- package/dist/api/default/webhook-client.js.map +1 -0
- package/dist/api/default/webhooks.d.ts +62 -0
- package/dist/api/default/webhooks.d.ts.map +1 -0
- package/dist/api/default/webhooks.js +2 -0
- package/dist/api/default/webhooks.js.map +1 -0
- package/dist/api/effect/application.d.ts +29 -0
- package/dist/api/effect/application.d.ts.map +1 -0
- package/dist/api/effect/application.js +2 -0
- package/dist/api/effect/application.js.map +1 -0
- package/dist/api/effect/attachments.d.ts +84 -0
- package/dist/api/effect/attachments.d.ts.map +1 -0
- package/dist/api/effect/attachments.js +2 -0
- package/dist/api/effect/attachments.js.map +1 -0
- package/dist/api/effect/audit-logs.d.ts +42 -0
- package/dist/api/effect/audit-logs.d.ts.map +1 -0
- package/dist/api/effect/audit-logs.js +2 -0
- package/dist/api/effect/audit-logs.js.map +1 -0
- package/dist/api/effect/bot.d.ts +233 -0
- package/dist/api/effect/bot.d.ts.map +1 -0
- package/dist/api/effect/bot.js +230 -0
- package/dist/api/effect/bot.js.map +1 -0
- package/dist/api/effect/cache.d.ts +103 -0
- package/dist/api/effect/cache.d.ts.map +1 -0
- package/dist/api/effect/cache.js +2 -0
- package/dist/api/effect/cache.js.map +1 -0
- package/dist/api/effect/channels.d.ts +231 -0
- package/dist/api/effect/channels.d.ts.map +1 -0
- package/dist/api/effect/channels.js +2 -0
- package/dist/api/effect/channels.js.map +1 -0
- package/dist/api/effect/client.d.ts +622 -0
- package/dist/api/effect/client.d.ts.map +1 -0
- package/dist/api/effect/client.js +191 -0
- package/dist/api/effect/client.js.map +1 -0
- package/dist/api/effect/collectors.d.ts +90 -0
- package/dist/api/effect/collectors.d.ts.map +1 -0
- package/dist/api/effect/collectors.js +2 -0
- package/dist/api/effect/collectors.js.map +1 -0
- package/dist/api/effect/commands.d.ts +86 -0
- package/dist/api/effect/commands.d.ts.map +1 -0
- package/dist/api/effect/commands.js +87 -0
- package/dist/api/effect/commands.js.map +1 -0
- package/dist/api/effect/direct-messages.d.ts +102 -0
- package/dist/api/effect/direct-messages.d.ts.map +1 -0
- package/dist/api/effect/direct-messages.js +2 -0
- package/dist/api/effect/direct-messages.js.map +1 -0
- package/dist/api/effect/discovery.d.ts +68 -0
- package/dist/api/effect/discovery.d.ts.map +1 -0
- package/dist/api/effect/discovery.js +2 -0
- package/dist/api/effect/discovery.js.map +1 -0
- package/dist/api/effect/emojis.d.ts +77 -0
- package/dist/api/effect/emojis.d.ts.map +1 -0
- package/dist/api/effect/emojis.js +2 -0
- package/dist/api/effect/emojis.js.map +1 -0
- package/dist/api/effect/events.d.ts +78 -0
- package/dist/api/effect/events.d.ts.map +1 -0
- package/dist/api/effect/events.js +12 -0
- package/dist/api/effect/events.js.map +1 -0
- package/dist/api/effect/failures.d.ts +14 -0
- package/dist/api/effect/failures.d.ts.map +1 -0
- package/dist/api/effect/failures.js +2 -0
- package/dist/api/effect/failures.js.map +1 -0
- package/dist/api/effect/gateway.d.ts +63 -0
- package/dist/api/effect/gateway.d.ts.map +1 -0
- package/dist/api/effect/gateway.js +2 -0
- package/dist/api/effect/gateway.js.map +1 -0
- package/dist/api/effect/guards.d.ts +91 -0
- package/dist/api/effect/guards.d.ts.map +1 -0
- package/dist/api/effect/guards.js +94 -0
- package/dist/api/effect/guards.js.map +1 -0
- package/dist/api/effect/guilds.d.ts +221 -0
- package/dist/api/effect/guilds.d.ts.map +1 -0
- package/dist/api/effect/guilds.js +2 -0
- package/dist/api/effect/guilds.js.map +1 -0
- package/dist/api/effect/helpers.d.ts +300 -0
- package/dist/api/effect/helpers.d.ts.map +1 -0
- package/dist/api/effect/helpers.js +156 -0
- package/dist/api/effect/helpers.js.map +1 -0
- package/dist/api/effect/hierarchy.d.ts +26 -0
- package/dist/api/effect/hierarchy.d.ts.map +1 -0
- package/dist/api/effect/hierarchy.js +26 -0
- package/dist/api/effect/hierarchy.js.map +1 -0
- package/dist/api/effect/instance.d.ts +46 -0
- package/dist/api/effect/instance.d.ts.map +1 -0
- package/dist/api/effect/instance.js +8 -0
- package/dist/api/effect/instance.js.map +1 -0
- package/dist/api/effect/invites.d.ts +49 -0
- package/dist/api/effect/invites.d.ts.map +1 -0
- package/dist/api/effect/invites.js +2 -0
- package/dist/api/effect/invites.js.map +1 -0
- package/dist/api/effect/logging.d.ts +37 -0
- package/dist/api/effect/logging.d.ts.map +1 -0
- package/dist/api/effect/logging.js +2 -0
- package/dist/api/effect/logging.js.map +1 -0
- package/dist/api/effect/members.d.ts +433 -0
- package/dist/api/effect/members.d.ts.map +1 -0
- package/dist/api/effect/members.js +2 -0
- package/dist/api/effect/members.js.map +1 -0
- package/dist/api/effect/messages.d.ts +877 -0
- package/dist/api/effect/messages.d.ts.map +1 -0
- package/dist/api/effect/messages.js +2 -0
- package/dist/api/effect/messages.js.map +1 -0
- package/dist/api/effect/oauth.d.ts +148 -0
- package/dist/api/effect/oauth.d.ts.map +1 -0
- package/dist/api/effect/oauth.js +51 -0
- package/dist/api/effect/oauth.js.map +1 -0
- package/dist/api/effect/permissions.d.ts +41 -0
- package/dist/api/effect/permissions.d.ts.map +1 -0
- package/dist/api/effect/permissions.js +2 -0
- package/dist/api/effect/permissions.js.map +1 -0
- package/dist/api/effect/presence.d.ts +83 -0
- package/dist/api/effect/presence.d.ts.map +1 -0
- package/dist/api/effect/presence.js +2 -0
- package/dist/api/effect/presence.js.map +1 -0
- package/dist/api/effect/rest.d.ts +27 -0
- package/dist/api/effect/rest.d.ts.map +1 -0
- package/dist/api/effect/rest.js +2 -0
- package/dist/api/effect/rest.js.map +1 -0
- package/dist/api/effect/roles.d.ts +104 -0
- package/dist/api/effect/roles.d.ts.map +1 -0
- package/dist/api/effect/roles.js +2 -0
- package/dist/api/effect/roles.js.map +1 -0
- package/dist/api/effect/service.d.ts +76 -0
- package/dist/api/effect/service.d.ts.map +1 -0
- package/dist/api/effect/service.js +79 -0
- package/dist/api/effect/service.js.map +1 -0
- package/dist/api/effect/stickers.d.ts +81 -0
- package/dist/api/effect/stickers.d.ts.map +1 -0
- package/dist/api/effect/stickers.js +2 -0
- package/dist/api/effect/stickers.js.map +1 -0
- package/dist/api/effect/supervisor.d.ts +56 -0
- package/dist/api/effect/supervisor.d.ts.map +1 -0
- package/dist/api/effect/supervisor.js +58 -0
- package/dist/api/effect/supervisor.js.map +1 -0
- package/dist/api/effect/threads.d.ts +154 -0
- package/dist/api/effect/threads.d.ts.map +1 -0
- package/dist/api/effect/threads.js +2 -0
- package/dist/api/effect/threads.js.map +1 -0
- package/dist/api/effect/users.d.ts +62 -0
- package/dist/api/effect/users.d.ts.map +1 -0
- package/dist/api/effect/users.js +2 -0
- package/dist/api/effect/users.js.map +1 -0
- package/dist/api/effect/webhook-client.d.ts +140 -0
- package/dist/api/effect/webhook-client.d.ts.map +1 -0
- package/dist/api/effect/webhook-client.js +50 -0
- package/dist/api/effect/webhook-client.js.map +1 -0
- package/dist/api/effect/webhooks.d.ts +54 -0
- package/dist/api/effect/webhooks.d.ts.map +1 -0
- package/dist/api/effect/webhooks.js +2 -0
- package/dist/api/effect/webhooks.js.map +1 -0
- package/dist/api-errors.d.ts +609 -0
- package/dist/api-errors.d.ts.map +1 -0
- package/dist/api-errors.js +589 -0
- package/dist/api-errors.js.map +1 -0
- package/dist/application.d.ts +85 -0
- package/dist/application.d.ts.map +1 -0
- package/dist/application.js +44 -0
- package/dist/application.js.map +1 -0
- package/dist/assets.d.ts +197 -0
- package/dist/assets.d.ts.map +1 -0
- package/dist/assets.js +419 -0
- package/dist/assets.js.map +1 -0
- package/dist/attachments.d.ts +400 -0
- package/dist/attachments.d.ts.map +1 -0
- package/dist/attachments.js +88 -0
- package/dist/attachments.js.map +1 -0
- package/dist/audit-logs.d.ts +292 -0
- package/dist/audit-logs.d.ts.map +1 -0
- package/dist/audit-logs.js +46 -0
- package/dist/audit-logs.js.map +1 -0
- package/dist/bot-runner.d.ts +69 -0
- package/dist/bot-runner.d.ts.map +1 -0
- package/dist/bot-runner.js +41 -0
- package/dist/bot-runner.js.map +1 -0
- package/dist/builders.d.ts +153 -0
- package/dist/builders.d.ts.map +1 -0
- package/dist/builders.js +326 -0
- package/dist/builders.js.map +1 -0
- package/dist/cache.d.ts +187 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +2 -0
- package/dist/cache.js.map +1 -0
- package/dist/channels.d.ts +903 -0
- package/dist/channels.d.ts.map +1 -0
- package/dist/channels.js +125 -0
- package/dist/channels.js.map +1 -0
- package/dist/cli.d.ts +9 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +65 -0
- package/dist/cli.js.map +1 -0
- package/dist/client.d.ts +645 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +2 -0
- package/dist/client.js.map +1 -0
- package/dist/collectors.d.ts +205 -0
- package/dist/collectors.d.ts.map +1 -0
- package/dist/collectors.js +71 -0
- package/dist/collectors.js.map +1 -0
- package/dist/colors.d.ts +55 -0
- package/dist/colors.d.ts.map +1 -0
- package/dist/colors.js +40 -0
- package/dist/colors.js.map +1 -0
- package/dist/command-arguments.d.ts +353 -0
- package/dist/command-arguments.d.ts.map +1 -0
- package/dist/command-arguments.js +2 -0
- package/dist/command-arguments.js.map +1 -0
- package/dist/command-help.d.ts +54 -0
- package/dist/command-help.d.ts.map +1 -0
- package/dist/command-help.js +2 -0
- package/dist/command-help.js.map +1 -0
- package/dist/commands.d.ts +328 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +62 -0
- package/dist/commands.js.map +1 -0
- package/dist/counts.d.ts +124 -0
- package/dist/counts.d.ts.map +1 -0
- package/dist/counts.js +52 -0
- package/dist/counts.js.map +1 -0
- package/dist/default-commands.d.ts +400 -0
- package/dist/default-commands.d.ts.map +1 -0
- package/dist/default-commands.js +488 -0
- package/dist/default-commands.js.map +1 -0
- package/dist/default-supervisor.d.ts +111 -0
- package/dist/default-supervisor.d.ts.map +1 -0
- package/dist/default-supervisor.js +277 -0
- package/dist/default-supervisor.js.map +1 -0
- package/dist/discovery.d.ts +223 -0
- package/dist/discovery.d.ts.map +1 -0
- package/dist/discovery.js +18 -0
- package/dist/discovery.js.map +1 -0
- package/dist/effect-testing.d.ts +388 -0
- package/dist/effect-testing.d.ts.map +1 -0
- package/dist/effect-testing.js +261 -0
- package/dist/effect-testing.js.map +1 -0
- package/dist/effect.d.ts +220 -0
- package/dist/effect.d.ts.map +1 -0
- package/dist/effect.js +101 -0
- package/dist/effect.js.map +1 -0
- package/dist/embeds.d.ts +243 -0
- package/dist/embeds.d.ts.map +1 -0
- package/dist/embeds.js +2 -0
- package/dist/embeds.js.map +1 -0
- package/dist/error-tools.d.ts +101 -0
- package/dist/error-tools.d.ts.map +1 -0
- package/dist/error-tools.js +125 -0
- package/dist/error-tools.js.map +1 -0
- package/dist/errors.d.ts +386 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +440 -0
- package/dist/errors.js.map +1 -0
- package/dist/events.d.ts +798 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +2 -0
- package/dist/events.js.map +1 -0
- package/dist/expressions.d.ts +188 -0
- package/dist/expressions.d.ts.map +1 -0
- package/dist/expressions.js +2 -0
- package/dist/expressions.js.map +1 -0
- package/dist/failures.d.ts +53 -0
- package/dist/failures.d.ts.map +1 -0
- package/dist/failures.js +2 -0
- package/dist/failures.js.map +1 -0
- package/dist/gateway.d.ts +48 -0
- package/dist/gateway.d.ts.map +1 -0
- package/dist/gateway.js +60 -0
- package/dist/gateway.js.map +1 -0
- package/dist/guilds.d.ts +923 -0
- package/dist/guilds.d.ts.map +1 -0
- package/dist/guilds.js +204 -0
- package/dist/guilds.js.map +1 -0
- package/dist/helpers.d.ts +423 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +434 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +228 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +109 -0
- package/dist/index.js.map +1 -0
- package/dist/input-validation.d.ts +51 -0
- package/dist/input-validation.d.ts.map +1 -0
- package/dist/input-validation.js +34 -0
- package/dist/input-validation.js.map +1 -0
- package/dist/instance.d.ts +101 -0
- package/dist/instance.d.ts.map +1 -0
- package/dist/instance.js +2 -0
- package/dist/instance.js.map +1 -0
- package/dist/internal/agents-section.d.ts +22 -0
- package/dist/internal/agents-section.d.ts.map +1 -0
- package/dist/internal/agents-section.js +101 -0
- package/dist/internal/agents-section.js.map +1 -0
- package/dist/internal/application.d.ts +16 -0
- package/dist/internal/application.d.ts.map +1 -0
- package/dist/internal/application.js +33 -0
- package/dist/internal/application.js.map +1 -0
- package/dist/internal/attachment-refresh.d.ts +18 -0
- package/dist/internal/attachment-refresh.d.ts.map +1 -0
- package/dist/internal/attachment-refresh.js +39 -0
- package/dist/internal/attachment-refresh.js.map +1 -0
- package/dist/internal/attachments.d.ts +45 -0
- package/dist/internal/attachments.d.ts.map +1 -0
- package/dist/internal/attachments.js +230 -0
- package/dist/internal/attachments.js.map +1 -0
- package/dist/internal/audit-logs.d.ts +13 -0
- package/dist/internal/audit-logs.d.ts.map +1 -0
- package/dist/internal/audit-logs.js +295 -0
- package/dist/internal/audit-logs.js.map +1 -0
- package/dist/internal/audit.d.ts +12 -0
- package/dist/internal/audit.d.ts.map +1 -0
- package/dist/internal/audit.js +22 -0
- package/dist/internal/audit.js.map +1 -0
- package/dist/internal/binding/default-adapters.d.ts +22 -0
- package/dist/internal/binding/default-adapters.d.ts.map +1 -0
- package/dist/internal/binding/default-adapters.js +304 -0
- package/dist/internal/binding/default-adapters.js.map +1 -0
- package/dist/internal/binding/default.d.ts +45 -0
- package/dist/internal/binding/default.d.ts.map +1 -0
- package/dist/internal/binding/default.js +86 -0
- package/dist/internal/binding/default.js.map +1 -0
- package/dist/internal/binding/execute.d.ts +51 -0
- package/dist/internal/binding/execute.d.ts.map +1 -0
- package/dist/internal/binding/execute.js +123 -0
- package/dist/internal/binding/execute.js.map +1 -0
- package/dist/internal/binding/native-adapters.d.ts +23 -0
- package/dist/internal/binding/native-adapters.d.ts.map +1 -0
- package/dist/internal/binding/native-adapters.js +90 -0
- package/dist/internal/binding/native-adapters.js.map +1 -0
- package/dist/internal/binding/native.d.ts +41 -0
- package/dist/internal/binding/native.d.ts.map +1 -0
- package/dist/internal/binding/native.js +34 -0
- package/dist/internal/binding/native.js.map +1 -0
- package/dist/internal/binding/operations.d.ts +361 -0
- package/dist/internal/binding/operations.d.ts.map +1 -0
- package/dist/internal/binding/operations.js +272 -0
- package/dist/internal/binding/operations.js.map +1 -0
- package/dist/internal/bot-runner.d.ts +65 -0
- package/dist/internal/bot-runner.d.ts.map +1 -0
- package/dist/internal/bot-runner.js +363 -0
- package/dist/internal/bot-runner.js.map +1 -0
- package/dist/internal/cache-changes.d.ts +43 -0
- package/dist/internal/cache-changes.d.ts.map +1 -0
- package/dist/internal/cache-changes.js +320 -0
- package/dist/internal/cache-changes.js.map +1 -0
- package/dist/internal/cache.d.ts +57 -0
- package/dist/internal/cache.d.ts.map +1 -0
- package/dist/internal/cache.js +318 -0
- package/dist/internal/cache.js.map +1 -0
- package/dist/internal/calls.d.ts +16 -0
- package/dist/internal/calls.d.ts.map +1 -0
- package/dist/internal/calls.js +108 -0
- package/dist/internal/calls.js.map +1 -0
- package/dist/internal/channel-cache.d.ts +69 -0
- package/dist/internal/channel-cache.d.ts.map +1 -0
- package/dist/internal/channel-cache.js +413 -0
- package/dist/internal/channel-cache.js.map +1 -0
- package/dist/internal/channel-decode.d.ts +44 -0
- package/dist/internal/channel-decode.d.ts.map +1 -0
- package/dist/internal/channel-decode.js +377 -0
- package/dist/internal/channel-decode.js.map +1 -0
- package/dist/internal/channels.d.ts +60 -0
- package/dist/internal/channels.d.ts.map +1 -0
- package/dist/internal/channels.js +605 -0
- package/dist/internal/channels.js.map +1 -0
- package/dist/internal/client/backoff.d.ts +42 -0
- package/dist/internal/client/backoff.d.ts.map +1 -0
- package/dist/internal/client/backoff.js +36 -0
- package/dist/internal/client/backoff.js.map +1 -0
- package/dist/internal/client/configuration-fields.d.ts +14 -0
- package/dist/internal/client/configuration-fields.d.ts.map +1 -0
- package/dist/internal/client/configuration-fields.js +11 -0
- package/dist/internal/client/configuration-fields.js.map +1 -0
- package/dist/internal/client/drain.d.ts +33 -0
- package/dist/internal/client/drain.d.ts.map +1 -0
- package/dist/internal/client/drain.js +109 -0
- package/dist/internal/client/drain.js.map +1 -0
- package/dist/internal/client/intake.d.ts +27 -0
- package/dist/internal/client/intake.d.ts.map +1 -0
- package/dist/internal/client/intake.js +198 -0
- package/dist/internal/client/intake.js.map +1 -0
- package/dist/internal/client/lifetime.d.ts +35 -0
- package/dist/internal/client/lifetime.d.ts.map +1 -0
- package/dist/internal/client/lifetime.js +109 -0
- package/dist/internal/client/lifetime.js.map +1 -0
- package/dist/internal/client/shard-loop.d.ts +93 -0
- package/dist/internal/client/shard-loop.d.ts.map +1 -0
- package/dist/internal/client/shard-loop.js +452 -0
- package/dist/internal/client/shard-loop.js.map +1 -0
- package/dist/internal/client-registry.d.ts +26 -0
- package/dist/internal/client-registry.d.ts.map +1 -0
- package/dist/internal/client-registry.js +11 -0
- package/dist/internal/client-registry.js.map +1 -0
- package/dist/internal/client.d.ts +189 -0
- package/dist/internal/client.d.ts.map +1 -0
- package/dist/internal/client.js +1935 -0
- package/dist/internal/client.js.map +1 -0
- package/dist/internal/clock.d.ts +9 -0
- package/dist/internal/clock.d.ts.map +1 -0
- package/dist/internal/clock.js +5 -0
- package/dist/internal/clock.js.map +1 -0
- package/dist/internal/code-catalogue.d.ts +712 -0
- package/dist/internal/code-catalogue.d.ts.map +1 -0
- package/dist/internal/code-catalogue.js +655 -0
- package/dist/internal/code-catalogue.js.map +1 -0
- package/dist/internal/collector.d.ts +34 -0
- package/dist/internal/collector.d.ts.map +1 -0
- package/dist/internal/collector.js +400 -0
- package/dist/internal/collector.js.map +1 -0
- package/dist/internal/command-arguments.d.ts +29 -0
- package/dist/internal/command-arguments.d.ts.map +1 -0
- package/dist/internal/command-arguments.js +484 -0
- package/dist/internal/command-arguments.js.map +1 -0
- package/dist/internal/command-guards.d.ts +57 -0
- package/dist/internal/command-guards.d.ts.map +1 -0
- package/dist/internal/command-guards.js +81 -0
- package/dist/internal/command-guards.js.map +1 -0
- package/dist/internal/command-help.d.ts +15 -0
- package/dist/internal/command-help.d.ts.map +1 -0
- package/dist/internal/command-help.js +121 -0
- package/dist/internal/command-help.js.map +1 -0
- package/dist/internal/commands.d.ts +212 -0
- package/dist/internal/commands.d.ts.map +1 -0
- package/dist/internal/commands.js +1004 -0
- package/dist/internal/commands.js.map +1 -0
- package/dist/internal/configuration.d.ts +86 -0
- package/dist/internal/configuration.d.ts.map +1 -0
- package/dist/internal/configuration.js +401 -0
- package/dist/internal/configuration.js.map +1 -0
- package/dist/internal/counts.d.ts +33 -0
- package/dist/internal/counts.d.ts.map +1 -0
- package/dist/internal/counts.js +348 -0
- package/dist/internal/counts.js.map +1 -0
- package/dist/internal/decode/primitives.d.ts +30 -0
- package/dist/internal/decode/primitives.d.ts.map +1 -0
- package/dist/internal/decode/primitives.js +56 -0
- package/dist/internal/decode/primitives.js.map +1 -0
- package/dist/internal/decode/timestamp.d.ts +13 -0
- package/dist/internal/decode/timestamp.d.ts.map +1 -0
- package/dist/internal/decode/timestamp.js +27 -0
- package/dist/internal/decode/timestamp.js.map +1 -0
- package/dist/internal/decode/trace.d.ts +11 -0
- package/dist/internal/decode/trace.d.ts.map +1 -0
- package/dist/internal/decode/trace.js +69 -0
- package/dist/internal/decode/trace.js.map +1 -0
- package/dist/internal/defects.d.ts +48 -0
- package/dist/internal/defects.d.ts.map +1 -0
- package/dist/internal/defects.js +100 -0
- package/dist/internal/defects.js.map +1 -0
- package/dist/internal/effect-failures.d.ts +12 -0
- package/dist/internal/effect-failures.d.ts.map +1 -0
- package/dist/internal/effect-failures.js +45 -0
- package/dist/internal/effect-failures.js.map +1 -0
- package/dist/internal/embeds.d.ts +12 -0
- package/dist/internal/embeds.d.ts.map +1 -0
- package/dist/internal/embeds.js +308 -0
- package/dist/internal/embeds.js.map +1 -0
- package/dist/internal/events.d.ts +156 -0
- package/dist/internal/events.d.ts.map +1 -0
- package/dist/internal/events.js +1071 -0
- package/dist/internal/events.js.map +1 -0
- package/dist/internal/expiry-queue.d.ts +42 -0
- package/dist/internal/expiry-queue.d.ts.map +1 -0
- package/dist/internal/expiry-queue.js +138 -0
- package/dist/internal/expiry-queue.js.map +1 -0
- package/dist/internal/expressions.d.ts +35 -0
- package/dist/internal/expressions.d.ts.map +1 -0
- package/dist/internal/expressions.js +311 -0
- package/dist/internal/expressions.js.map +1 -0
- package/dist/internal/failures.d.ts +107 -0
- package/dist/internal/failures.d.ts.map +1 -0
- package/dist/internal/failures.js +416 -0
- package/dist/internal/failures.js.map +1 -0
- package/dist/internal/field-text.d.ts +10 -0
- package/dist/internal/field-text.d.ts.map +1 -0
- package/dist/internal/field-text.js +37 -0
- package/dist/internal/field-text.js.map +1 -0
- package/dist/internal/gateway/commands.d.ts +92 -0
- package/dist/internal/gateway/commands.d.ts.map +1 -0
- package/dist/internal/gateway/commands.js +223 -0
- package/dist/internal/gateway/commands.js.map +1 -0
- package/dist/internal/gateway/dispatch-table.d.ts +42 -0
- package/dist/internal/gateway/dispatch-table.d.ts.map +1 -0
- package/dist/internal/gateway/dispatch-table.js +288 -0
- package/dist/internal/gateway/dispatch-table.js.map +1 -0
- package/dist/internal/gateway/event-dispatches.d.ts +97 -0
- package/dist/internal/gateway/event-dispatches.d.ts.map +1 -0
- package/dist/internal/gateway/event-dispatches.js +172 -0
- package/dist/internal/gateway/event-dispatches.js.map +1 -0
- package/dist/internal/gateway/frames.d.ts +45 -0
- package/dist/internal/gateway/frames.d.ts.map +1 -0
- package/dist/internal/gateway/frames.js +121 -0
- package/dist/internal/gateway/frames.js.map +1 -0
- package/dist/internal/gateway/options.d.ts +24 -0
- package/dist/internal/gateway/options.d.ts.map +1 -0
- package/dist/internal/gateway/options.js +103 -0
- package/dist/internal/gateway/options.js.map +1 -0
- package/dist/internal/gateway/session.d.ts +104 -0
- package/dist/internal/gateway/session.d.ts.map +1 -0
- package/dist/internal/gateway/session.js +420 -0
- package/dist/internal/gateway/session.js.map +1 -0
- package/dist/internal/gateway-requests.d.ts +10 -0
- package/dist/internal/gateway-requests.d.ts.map +1 -0
- package/dist/internal/gateway-requests.js +26 -0
- package/dist/internal/gateway-requests.js.map +1 -0
- package/dist/internal/gateway.d.ts +19 -0
- package/dist/internal/gateway.d.ts.map +1 -0
- package/dist/internal/gateway.js +11 -0
- package/dist/internal/gateway.js.map +1 -0
- package/dist/internal/guild-cache.d.ts +69 -0
- package/dist/internal/guild-cache.d.ts.map +1 -0
- package/dist/internal/guild-cache.js +402 -0
- package/dist/internal/guild-cache.js.map +1 -0
- package/dist/internal/guild-discovery.d.ts +15 -0
- package/dist/internal/guild-discovery.d.ts.map +1 -0
- package/dist/internal/guild-discovery.js +258 -0
- package/dist/internal/guild-discovery.js.map +1 -0
- package/dist/internal/guild-lifecycle.d.ts +18 -0
- package/dist/internal/guild-lifecycle.d.ts.map +1 -0
- package/dist/internal/guild-lifecycle.js +119 -0
- package/dist/internal/guild-lifecycle.js.map +1 -0
- package/dist/internal/guild-settings.d.ts +11 -0
- package/dist/internal/guild-settings.d.ts.map +1 -0
- package/dist/internal/guild-settings.js +150 -0
- package/dist/internal/guild-settings.js.map +1 -0
- package/dist/internal/guilds.d.ts +94 -0
- package/dist/internal/guilds.d.ts.map +1 -0
- package/dist/internal/guilds.js +785 -0
- package/dist/internal/guilds.js.map +1 -0
- package/dist/internal/init-command.d.ts +54 -0
- package/dist/internal/init-command.d.ts.map +1 -0
- package/dist/internal/init-command.js +248 -0
- package/dist/internal/init-command.js.map +1 -0
- package/dist/internal/instance.d.ts +69 -0
- package/dist/internal/instance.d.ts.map +1 -0
- package/dist/internal/instance.js +455 -0
- package/dist/internal/instance.js.map +1 -0
- package/dist/internal/invalid-callback-return.d.ts +3 -0
- package/dist/internal/invalid-callback-return.d.ts.map +1 -0
- package/dist/internal/invalid-callback-return.js +26 -0
- package/dist/internal/invalid-callback-return.js.map +1 -0
- package/dist/internal/invites.d.ts +19 -0
- package/dist/internal/invites.d.ts.map +1 -0
- package/dist/internal/invites.js +182 -0
- package/dist/internal/invites.js.map +1 -0
- package/dist/internal/logging.d.ts +129 -0
- package/dist/internal/logging.d.ts.map +1 -0
- package/dist/internal/logging.js +868 -0
- package/dist/internal/logging.js.map +1 -0
- package/dist/internal/logical-scheduler.d.ts +27 -0
- package/dist/internal/logical-scheduler.d.ts.map +1 -0
- package/dist/internal/logical-scheduler.js +102 -0
- package/dist/internal/logical-scheduler.js.map +1 -0
- package/dist/internal/masking.d.ts +13 -0
- package/dist/internal/masking.d.ts.map +1 -0
- package/dist/internal/masking.js +235 -0
- package/dist/internal/masking.js.map +1 -0
- package/dist/internal/member-chunks.d.ts +96 -0
- package/dist/internal/member-chunks.d.ts.map +1 -0
- package/dist/internal/member-chunks.js +557 -0
- package/dist/internal/member-chunks.js.map +1 -0
- package/dist/internal/member-search-workflow.d.ts +19 -0
- package/dist/internal/member-search-workflow.d.ts.map +1 -0
- package/dist/internal/member-search-workflow.js +143 -0
- package/dist/internal/member-search-workflow.js.map +1 -0
- package/dist/internal/member-search.d.ts +20 -0
- package/dist/internal/member-search.d.ts.map +1 -0
- package/dist/internal/member-search.js +201 -0
- package/dist/internal/member-search.js.map +1 -0
- package/dist/internal/message-cleanup.d.ts +9 -0
- package/dist/internal/message-cleanup.d.ts.map +1 -0
- package/dist/internal/message-cleanup.js +368 -0
- package/dist/internal/message-cleanup.js.map +1 -0
- package/dist/internal/message-fields.d.ts +9 -0
- package/dist/internal/message-fields.d.ts.map +1 -0
- package/dist/internal/message-fields.js +55 -0
- package/dist/internal/message-fields.js.map +1 -0
- package/dist/internal/message-search-workflow.d.ts +14 -0
- package/dist/internal/message-search-workflow.d.ts.map +1 -0
- package/dist/internal/message-search-workflow.js +101 -0
- package/dist/internal/message-search-workflow.js.map +1 -0
- package/dist/internal/message-search.d.ts +19 -0
- package/dist/internal/message-search.d.ts.map +1 -0
- package/dist/internal/message-search.js +317 -0
- package/dist/internal/message-search.js.map +1 -0
- package/dist/internal/message.d.ts +34 -0
- package/dist/internal/message.d.ts.map +1 -0
- package/dist/internal/message.js +723 -0
- package/dist/internal/message.js.map +1 -0
- package/dist/internal/metrics.d.ts +16 -0
- package/dist/internal/metrics.d.ts.map +1 -0
- package/dist/internal/metrics.js +49 -0
- package/dist/internal/metrics.js.map +1 -0
- package/dist/internal/moderation.d.ts +20 -0
- package/dist/internal/moderation.d.ts.map +1 -0
- package/dist/internal/moderation.js +219 -0
- package/dist/internal/moderation.js.map +1 -0
- package/dist/internal/multipart.d.ts +10 -0
- package/dist/internal/multipart.d.ts.map +1 -0
- package/dist/internal/multipart.js +156 -0
- package/dist/internal/multipart.js.map +1 -0
- package/dist/internal/node-version.d.ts +10 -0
- package/dist/internal/node-version.d.ts.map +1 -0
- package/dist/internal/node-version.js +21 -0
- package/dist/internal/node-version.js.map +1 -0
- package/dist/internal/oauth.d.ts +29 -0
- package/dist/internal/oauth.d.ts.map +1 -0
- package/dist/internal/oauth.js +721 -0
- package/dist/internal/oauth.js.map +1 -0
- package/dist/internal/observer.d.ts +21 -0
- package/dist/internal/observer.d.ts.map +1 -0
- package/dist/internal/observer.js +48 -0
- package/dist/internal/observer.js.map +1 -0
- package/dist/internal/operation-signal.d.ts +9 -0
- package/dist/internal/operation-signal.d.ts.map +1 -0
- package/dist/internal/operation-signal.js +19 -0
- package/dist/internal/operation-signal.js.map +1 -0
- package/dist/internal/pagination.d.ts +67 -0
- package/dist/internal/pagination.d.ts.map +1 -0
- package/dist/internal/pagination.js +306 -0
- package/dist/internal/pagination.js.map +1 -0
- package/dist/internal/permission-requirements.d.ts +34 -0
- package/dist/internal/permission-requirements.d.ts.map +1 -0
- package/dist/internal/permission-requirements.js +204 -0
- package/dist/internal/permission-requirements.js.map +1 -0
- package/dist/internal/permissions.d.ts +28 -0
- package/dist/internal/permissions.d.ts.map +1 -0
- package/dist/internal/permissions.js +314 -0
- package/dist/internal/permissions.js.map +1 -0
- package/dist/internal/pins.d.ts +24 -0
- package/dist/internal/pins.d.ts.map +1 -0
- package/dist/internal/pins.js +83 -0
- package/dist/internal/pins.js.map +1 -0
- package/dist/internal/presence.d.ts +101 -0
- package/dist/internal/presence.d.ts.map +1 -0
- package/dist/internal/presence.js +581 -0
- package/dist/internal/presence.js.map +1 -0
- package/dist/internal/protocol/gateway.d.ts +116 -0
- package/dist/internal/protocol/gateway.d.ts.map +1 -0
- package/dist/internal/protocol/gateway.js +258 -0
- package/dist/internal/protocol/gateway.js.map +1 -0
- package/dist/internal/rate-limit-templates.d.ts +2 -0
- package/dist/internal/rate-limit-templates.d.ts.map +1 -0
- package/dist/internal/rate-limit-templates.js +132 -0
- package/dist/internal/rate-limit-templates.js.map +1 -0
- package/dist/internal/rate-limits.d.ts +32 -0
- package/dist/internal/rate-limits.d.ts.map +1 -0
- package/dist/internal/rate-limits.js +306 -0
- package/dist/internal/rate-limits.js.map +1 -0
- package/dist/internal/reaction-collector.d.ts +39 -0
- package/dist/internal/reaction-collector.d.ts.map +1 -0
- package/dist/internal/reaction-collector.js +441 -0
- package/dist/internal/reaction-collector.js.map +1 -0
- package/dist/internal/reaction-pages.d.ts +18 -0
- package/dist/internal/reaction-pages.d.ts.map +1 -0
- package/dist/internal/reaction-pages.js +213 -0
- package/dist/internal/reaction-pages.js.map +1 -0
- package/dist/internal/reactions.d.ts +30 -0
- package/dist/internal/reactions.d.ts.map +1 -0
- package/dist/internal/reactions.js +160 -0
- package/dist/internal/reactions.js.map +1 -0
- package/dist/internal/rejection-scope.d.ts +25 -0
- package/dist/internal/rejection-scope.d.ts.map +1 -0
- package/dist/internal/rejection-scope.js +103 -0
- package/dist/internal/rejection-scope.js.map +1 -0
- package/dist/internal/response-json.d.ts +12 -0
- package/dist/internal/response-json.d.ts.map +1 -0
- package/dist/internal/response-json.js +74 -0
- package/dist/internal/response-json.js.map +1 -0
- package/dist/internal/rest/admission.d.ts +77 -0
- package/dist/internal/rest/admission.d.ts.map +1 -0
- package/dist/internal/rest/admission.js +178 -0
- package/dist/internal/rest/admission.js.map +1 -0
- package/dist/internal/rest/attempt.d.ts +124 -0
- package/dist/internal/rest/attempt.d.ts.map +1 -0
- package/dist/internal/rest/attempt.js +410 -0
- package/dist/internal/rest/attempt.js.map +1 -0
- package/dist/internal/rest/classify.d.ts +93 -0
- package/dist/internal/rest/classify.d.ts.map +1 -0
- package/dist/internal/rest/classify.js +304 -0
- package/dist/internal/rest/classify.js.map +1 -0
- package/dist/internal/rest/download.d.ts +66 -0
- package/dist/internal/rest/download.d.ts.map +1 -0
- package/dist/internal/rest/download.js +552 -0
- package/dist/internal/rest/download.js.map +1 -0
- package/dist/internal/rest/options.d.ts +42 -0
- package/dist/internal/rest/options.d.ts.map +1 -0
- package/dist/internal/rest/options.js +99 -0
- package/dist/internal/rest/options.js.map +1 -0
- package/dist/internal/rest/owner.d.ts +154 -0
- package/dist/internal/rest/owner.d.ts.map +1 -0
- package/dist/internal/rest/owner.js +1292 -0
- package/dist/internal/rest/owner.js.map +1 -0
- package/dist/internal/rest/request.d.ts +31 -0
- package/dist/internal/rest/request.d.ts.map +1 -0
- package/dist/internal/rest/request.js +227 -0
- package/dist/internal/rest/request.js.map +1 -0
- package/dist/internal/rest.d.ts +10 -0
- package/dist/internal/rest.d.ts.map +1 -0
- package/dist/internal/rest.js +9 -0
- package/dist/internal/rest.js.map +1 -0
- package/dist/internal/retention-age.d.ts +11 -0
- package/dist/internal/retention-age.d.ts.map +1 -0
- package/dist/internal/retention-age.js +29 -0
- package/dist/internal/retention-age.js.map +1 -0
- package/dist/internal/role-hierarchy-workflow.d.ts +15 -0
- package/dist/internal/role-hierarchy-workflow.d.ts.map +1 -0
- package/dist/internal/role-hierarchy-workflow.js +122 -0
- package/dist/internal/role-hierarchy-workflow.js.map +1 -0
- package/dist/internal/role-hierarchy.d.ts +11 -0
- package/dist/internal/role-hierarchy.d.ts.map +1 -0
- package/dist/internal/role-hierarchy.js +87 -0
- package/dist/internal/role-hierarchy.js.map +1 -0
- package/dist/internal/scheduled-tasks.d.ts +46 -0
- package/dist/internal/scheduled-tasks.d.ts.map +1 -0
- package/dist/internal/scheduled-tasks.js +190 -0
- package/dist/internal/scheduled-tasks.js.map +1 -0
- package/dist/internal/sharding.d.ts +62 -0
- package/dist/internal/sharding.d.ts.map +1 -0
- package/dist/internal/sharding.js +205 -0
- package/dist/internal/sharding.js.map +1 -0
- package/dist/internal/starter-project.d.ts +27 -0
- package/dist/internal/starter-project.d.ts.map +1 -0
- package/dist/internal/starter-project.js +224 -0
- package/dist/internal/starter-project.js.map +1 -0
- package/dist/internal/suggest.d.ts +12 -0
- package/dist/internal/suggest.d.ts.map +1 -0
- package/dist/internal/suggest.js +51 -0
- package/dist/internal/suggest.js.map +1 -0
- package/dist/internal/supervisor.d.ts +95 -0
- package/dist/internal/supervisor.d.ts.map +1 -0
- package/dist/internal/supervisor.js +1829 -0
- package/dist/internal/supervisor.js.map +1 -0
- package/dist/internal/testing/discovery.d.ts +24 -0
- package/dist/internal/testing/discovery.d.ts.map +1 -0
- package/dist/internal/testing/discovery.js +22 -0
- package/dist/internal/testing/discovery.js.map +1 -0
- package/dist/internal/testing/errors.d.ts +43 -0
- package/dist/internal/testing/errors.d.ts.map +1 -0
- package/dist/internal/testing/errors.js +63 -0
- package/dist/internal/testing/errors.js.map +1 -0
- package/dist/internal/testing/fixtures.d.ts +477 -0
- package/dist/internal/testing/fixtures.d.ts.map +1 -0
- package/dist/internal/testing/fixtures.js +233 -0
- package/dist/internal/testing/fixtures.js.map +1 -0
- package/dist/internal/testing/gateway.d.ts +51 -0
- package/dist/internal/testing/gateway.d.ts.map +1 -0
- package/dist/internal/testing/gateway.js +265 -0
- package/dist/internal/testing/gateway.js.map +1 -0
- package/dist/internal/testing/harness.d.ts +60 -0
- package/dist/internal/testing/harness.d.ts.map +1 -0
- package/dist/internal/testing/harness.js +280 -0
- package/dist/internal/testing/harness.js.map +1 -0
- package/dist/internal/testing/http.d.ts +31 -0
- package/dist/internal/testing/http.d.ts.map +1 -0
- package/dist/internal/testing/http.js +347 -0
- package/dist/internal/testing/http.js.map +1 -0
- package/dist/internal/testing/types.d.ts +222 -0
- package/dist/internal/testing/types.d.ts.map +1 -0
- package/dist/internal/testing/types.js +2 -0
- package/dist/internal/testing/types.js.map +1 -0
- package/dist/internal/testing/wait.d.ts +16 -0
- package/dist/internal/testing/wait.d.ts.map +1 -0
- package/dist/internal/testing/wait.js +55 -0
- package/dist/internal/testing/wait.js.map +1 -0
- package/dist/internal/thread-events.d.ts +40 -0
- package/dist/internal/thread-events.d.ts.map +1 -0
- package/dist/internal/thread-events.js +121 -0
- package/dist/internal/thread-events.js.map +1 -0
- package/dist/internal/threads.d.ts +47 -0
- package/dist/internal/threads.d.ts.map +1 -0
- package/dist/internal/threads.js +587 -0
- package/dist/internal/threads.js.map +1 -0
- package/dist/internal/transfer-source.d.ts +29 -0
- package/dist/internal/transfer-source.d.ts.map +1 -0
- package/dist/internal/transfer-source.js +347 -0
- package/dist/internal/transfer-source.js.map +1 -0
- package/dist/internal/transport/http.d.ts +12 -0
- package/dist/internal/transport/http.d.ts.map +1 -0
- package/dist/internal/transport/http.js +44 -0
- package/dist/internal/transport/http.js.map +1 -0
- package/dist/internal/transport/index.d.ts +21 -0
- package/dist/internal/transport/index.d.ts.map +1 -0
- package/dist/internal/transport/index.js +15 -0
- package/dist/internal/transport/index.js.map +1 -0
- package/dist/internal/transport/socket.d.ts +51 -0
- package/dist/internal/transport/socket.d.ts.map +1 -0
- package/dist/internal/transport/socket.js +27 -0
- package/dist/internal/transport/socket.js.map +1 -0
- package/dist/internal/transport/user-agent.d.ts +7 -0
- package/dist/internal/transport/user-agent.d.ts.map +1 -0
- package/dist/internal/transport/user-agent.js +42 -0
- package/dist/internal/transport/user-agent.js.map +1 -0
- package/dist/internal/uploads.d.ts +23 -0
- package/dist/internal/uploads.d.ts.map +1 -0
- package/dist/internal/uploads.js +89 -0
- package/dist/internal/uploads.js.map +1 -0
- package/dist/internal/user-cache.d.ts +50 -0
- package/dist/internal/user-cache.d.ts.map +1 -0
- package/dist/internal/user-cache.js +273 -0
- package/dist/internal/user-cache.js.map +1 -0
- package/dist/internal/users.d.ts +41 -0
- package/dist/internal/users.d.ts.map +1 -0
- package/dist/internal/users.js +333 -0
- package/dist/internal/users.js.map +1 -0
- package/dist/internal/vanity-url.d.ts +11 -0
- package/dist/internal/vanity-url.d.ts.map +1 -0
- package/dist/internal/vanity-url.js +58 -0
- package/dist/internal/vanity-url.js.map +1 -0
- package/dist/internal/webhooks.d.ts +58 -0
- package/dist/internal/webhooks.d.ts.map +1 -0
- package/dist/internal/webhooks.js +490 -0
- package/dist/internal/webhooks.js.map +1 -0
- package/dist/invites.d.ts +86 -0
- package/dist/invites.d.ts.map +1 -0
- package/dist/invites.js +2 -0
- package/dist/invites.js.map +1 -0
- package/dist/logging.d.ts +228 -0
- package/dist/logging.d.ts.map +1 -0
- package/dist/logging.js +2 -0
- package/dist/logging.js.map +1 -0
- package/dist/member-chunks.d.ts +145 -0
- package/dist/member-chunks.d.ts.map +1 -0
- package/dist/member-chunks.js +68 -0
- package/dist/member-chunks.js.map +1 -0
- package/dist/member-search.d.ts +140 -0
- package/dist/member-search.d.ts.map +1 -0
- package/dist/member-search.js +14 -0
- package/dist/member-search.js.map +1 -0
- package/dist/message-cleanup.d.ts +227 -0
- package/dist/message-cleanup.d.ts.map +1 -0
- package/dist/message-cleanup.js +101 -0
- package/dist/message-cleanup.js.map +1 -0
- package/dist/message-errors.d.ts +172 -0
- package/dist/message-errors.d.ts.map +1 -0
- package/dist/message-errors.js +173 -0
- package/dist/message-errors.js.map +1 -0
- package/dist/message-search.d.ts +201 -0
- package/dist/message-search.d.ts.map +1 -0
- package/dist/message-search.js +2 -0
- package/dist/message-search.js.map +1 -0
- package/dist/messages.d.ts +694 -0
- package/dist/messages.d.ts.map +1 -0
- package/dist/messages.js +37 -0
- package/dist/messages.js.map +1 -0
- package/dist/native-commands.d.ts +451 -0
- package/dist/native-commands.d.ts.map +1 -0
- package/dist/native-commands.js +432 -0
- package/dist/native-commands.js.map +1 -0
- package/dist/native-supervisor.d.ts +125 -0
- package/dist/native-supervisor.d.ts.map +1 -0
- package/dist/native-supervisor.js +126 -0
- package/dist/native-supervisor.js.map +1 -0
- package/dist/oauth.d.ts +298 -0
- package/dist/oauth.d.ts.map +1 -0
- package/dist/oauth.js +128 -0
- package/dist/oauth.js.map +1 -0
- package/dist/observer.d.ts +111 -0
- package/dist/observer.d.ts.map +1 -0
- package/dist/observer.js +2 -0
- package/dist/observer.js.map +1 -0
- package/dist/pagination.d.ts +117 -0
- package/dist/pagination.d.ts.map +1 -0
- package/dist/pagination.js +61 -0
- package/dist/pagination.js.map +1 -0
- package/dist/permissions.d.ts +73 -0
- package/dist/permissions.d.ts.map +1 -0
- package/dist/permissions.js +2 -0
- package/dist/permissions.js.map +1 -0
- package/dist/pins.d.ts +62 -0
- package/dist/pins.d.ts.map +1 -0
- package/dist/pins.js +2 -0
- package/dist/pins.js.map +1 -0
- package/dist/presence.d.ts +84 -0
- package/dist/presence.d.ts.map +1 -0
- package/dist/presence.js +46 -0
- package/dist/presence.js.map +1 -0
- package/dist/reaction-pages.d.ts +99 -0
- package/dist/reaction-pages.d.ts.map +1 -0
- package/dist/reaction-pages.js +2 -0
- package/dist/reaction-pages.js.map +1 -0
- package/dist/reactions.d.ts +118 -0
- package/dist/reactions.d.ts.map +1 -0
- package/dist/reactions.js +2 -0
- package/dist/reactions.js.map +1 -0
- package/dist/rest.d.ts +260 -0
- package/dist/rest.d.ts.map +1 -0
- package/dist/rest.js +46 -0
- package/dist/rest.js.map +1 -0
- package/dist/role-hierarchy.d.ts +81 -0
- package/dist/role-hierarchy.d.ts.map +1 -0
- package/dist/role-hierarchy.js +53 -0
- package/dist/role-hierarchy.js.map +1 -0
- package/dist/sharding.d.ts +219 -0
- package/dist/sharding.d.ts.map +1 -0
- package/dist/sharding.js +86 -0
- package/dist/sharding.js.map +1 -0
- package/dist/supervisor.d.ts +392 -0
- package/dist/supervisor.d.ts.map +1 -0
- package/dist/supervisor.js +101 -0
- package/dist/supervisor.js.map +1 -0
- package/dist/testing.d.ts +258 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +202 -0
- package/dist/testing.js.map +1 -0
- package/dist/text.d.ts +38 -0
- package/dist/text.d.ts.map +1 -0
- package/dist/text.js +46 -0
- package/dist/text.js.map +1 -0
- package/dist/threads.d.ts +258 -0
- package/dist/threads.d.ts.map +1 -0
- package/dist/threads.js +2 -0
- package/dist/threads.js.map +1 -0
- package/dist/users.d.ts +204 -0
- package/dist/users.d.ts.map +1 -0
- package/dist/users.js +44 -0
- package/dist/users.js.map +1 -0
- package/dist/webhooks.d.ts +423 -0
- package/dist/webhooks.d.ts.map +1 -0
- package/dist/webhooks.js +68 -0
- package/dist/webhooks.js.map +1 -0
- package/esm-only.cjs +3 -0
- package/examples/starter/bot-effect.ts +17 -0
- package/examples/starter/bot.js +13 -0
- package/examples/starter/bot.ts +13 -0
- package/package.json +82 -0
- package/src/api/default/application.ts +40 -0
- package/src/api/default/attachments.ts +106 -0
- package/src/api/default/audit-logs.ts +58 -0
- package/src/api/default/bot.ts +586 -0
- package/src/api/default/cache.ts +106 -0
- package/src/api/default/channels.ts +317 -0
- package/src/api/default/client.ts +829 -0
- package/src/api/default/collectors.ts +81 -0
- package/src/api/default/commands.ts +92 -0
- package/src/api/default/direct-messages.ts +143 -0
- package/src/api/default/discovery.ts +103 -0
- package/src/api/default/emojis.ts +125 -0
- package/src/api/default/events.ts +144 -0
- package/src/api/default/gateway.ts +67 -0
- package/src/api/default/guards.ts +173 -0
- package/src/api/default/guilds.ts +271 -0
- package/src/api/default/helpers.ts +97 -0
- package/src/api/default/instance.ts +49 -0
- package/src/api/default/invites.ts +73 -0
- package/src/api/default/logging.ts +37 -0
- package/src/api/default/members.ts +550 -0
- package/src/api/default/messages.ts +1053 -0
- package/src/api/default/oauth.ts +293 -0
- package/src/api/default/permissions.ts +47 -0
- package/src/api/default/presence.ts +88 -0
- package/src/api/default/rest.ts +30 -0
- package/src/api/default/results.ts +44 -0
- package/src/api/default/roles.ts +154 -0
- package/src/api/default/stickers.ts +129 -0
- package/src/api/default/supervisor.ts +53 -0
- package/src/api/default/threads.ts +233 -0
- package/src/api/default/users.ts +82 -0
- package/src/api/default/webhook-client.ts +266 -0
- package/src/api/default/webhooks.ts +89 -0
- package/src/api/effect/application.ts +29 -0
- package/src/api/effect/attachments.ts +100 -0
- package/src/api/effect/audit-logs.ts +50 -0
- package/src/api/effect/bot.ts +546 -0
- package/src/api/effect/cache.ts +110 -0
- package/src/api/effect/channels.ts +293 -0
- package/src/api/effect/client.ts +792 -0
- package/src/api/effect/collectors.ts +103 -0
- package/src/api/effect/commands.ts +87 -0
- package/src/api/effect/direct-messages.ts +119 -0
- package/src/api/effect/discovery.ts +87 -0
- package/src/api/effect/emojis.ts +108 -0
- package/src/api/effect/events.ts +92 -0
- package/src/api/effect/failures.ts +14 -0
- package/src/api/effect/gateway.ts +63 -0
- package/src/api/effect/guards.ts +194 -0
- package/src/api/effect/guilds.ts +247 -0
- package/src/api/effect/helpers.ts +359 -0
- package/src/api/effect/hierarchy.ts +26 -0
- package/src/api/effect/instance.ts +50 -0
- package/src/api/effect/invites.ts +59 -0
- package/src/api/effect/logging.ts +37 -0
- package/src/api/effect/members.ts +521 -0
- package/src/api/effect/messages.ts +1003 -0
- package/src/api/effect/oauth.ts +208 -0
- package/src/api/effect/permissions.ts +44 -0
- package/src/api/effect/presence.ts +83 -0
- package/src/api/effect/rest.ts +27 -0
- package/src/api/effect/roles.ts +136 -0
- package/src/api/effect/service.ts +104 -0
- package/src/api/effect/stickers.ts +112 -0
- package/src/api/effect/supervisor.ts +58 -0
- package/src/api/effect/threads.ts +221 -0
- package/src/api/effect/users.ts +66 -0
- package/src/api/effect/webhook-client.ts +206 -0
- package/src/api/effect/webhooks.ts +75 -0
- package/src/api-errors.ts +985 -0
- package/src/application.ts +103 -0
- package/src/assets.ts +731 -0
- package/src/attachments.ts +469 -0
- package/src/audit-logs.ts +355 -0
- package/src/bot-runner.ts +91 -0
- package/src/builders.ts +390 -0
- package/src/cache.ts +190 -0
- package/src/channels.ts +1051 -0
- package/src/cli.ts +60 -0
- package/src/client.ts +663 -0
- package/src/collectors.ts +248 -0
- package/src/colors.ts +91 -0
- package/src/command-arguments.ts +432 -0
- package/src/command-help.ts +55 -0
- package/src/commands.ts +403 -0
- package/src/counts.ts +160 -0
- package/src/default-commands.ts +1147 -0
- package/src/default-supervisor.ts +484 -0
- package/src/discovery.ts +241 -0
- package/src/effect-testing.ts +603 -0
- package/src/effect.ts +751 -0
- package/src/embeds.ts +253 -0
- package/src/error-tools.ts +191 -0
- package/src/errors.ts +849 -0
- package/src/events.ts +830 -0
- package/src/expressions.ts +198 -0
- package/src/failures.ts +55 -0
- package/src/gateway.ts +86 -0
- package/src/guilds.ts +1108 -0
- package/src/helpers.ts +836 -0
- package/src/index.ts +796 -0
- package/src/input-validation.ts +94 -0
- package/src/instance.ts +111 -0
- package/src/internal/agents-section.ts +114 -0
- package/src/internal/application.ts +51 -0
- package/src/internal/attachment-refresh.ts +57 -0
- package/src/internal/attachments.ts +313 -0
- package/src/internal/audit-logs.ts +336 -0
- package/src/internal/audit.ts +33 -0
- package/src/internal/binding/default-adapters.ts +482 -0
- package/src/internal/binding/default.ts +155 -0
- package/src/internal/binding/execute.ts +221 -0
- package/src/internal/binding/native-adapters.ts +199 -0
- package/src/internal/binding/native.ts +72 -0
- package/src/internal/binding/operations.ts +1171 -0
- package/src/internal/bot-runner.ts +480 -0
- package/src/internal/cache-changes.ts +363 -0
- package/src/internal/cache.ts +323 -0
- package/src/internal/calls.ts +119 -0
- package/src/internal/channel-cache.ts +435 -0
- package/src/internal/channel-decode.ts +399 -0
- package/src/internal/channels.ts +874 -0
- package/src/internal/client/backoff.ts +69 -0
- package/src/internal/client/configuration-fields.ts +18 -0
- package/src/internal/client/drain.ts +150 -0
- package/src/internal/client/intake.ts +228 -0
- package/src/internal/client/lifetime.ts +165 -0
- package/src/internal/client/shard-loop.ts +586 -0
- package/src/internal/client-registry.ts +35 -0
- package/src/internal/client.ts +2448 -0
- package/src/internal/clock.ts +11 -0
- package/src/internal/code-catalogue.ts +739 -0
- package/src/internal/collector.ts +452 -0
- package/src/internal/command-arguments.ts +585 -0
- package/src/internal/command-guards.ts +96 -0
- package/src/internal/command-help.ts +156 -0
- package/src/internal/commands.ts +1319 -0
- package/src/internal/configuration.ts +529 -0
- package/src/internal/counts.ts +471 -0
- package/src/internal/decode/primitives.ts +67 -0
- package/src/internal/decode/timestamp.ts +29 -0
- package/src/internal/decode/trace.ts +65 -0
- package/src/internal/defects.ts +115 -0
- package/src/internal/effect-failures.ts +65 -0
- package/src/internal/embeds.ts +355 -0
- package/src/internal/events.ts +1345 -0
- package/src/internal/expiry-queue.ts +148 -0
- package/src/internal/expressions.ts +415 -0
- package/src/internal/failures.ts +492 -0
- package/src/internal/field-text.ts +40 -0
- package/src/internal/gateway/commands.ts +328 -0
- package/src/internal/gateway/dispatch-table.ts +383 -0
- package/src/internal/gateway/event-dispatches.ts +201 -0
- package/src/internal/gateway/frames.ts +176 -0
- package/src/internal/gateway/options.ts +144 -0
- package/src/internal/gateway/session.ts +625 -0
- package/src/internal/gateway-requests.ts +26 -0
- package/src/internal/gateway.ts +22 -0
- package/src/internal/guild-cache.ts +424 -0
- package/src/internal/guild-discovery.ts +332 -0
- package/src/internal/guild-lifecycle.ts +128 -0
- package/src/internal/guild-settings.ts +209 -0
- package/src/internal/guilds.ts +949 -0
- package/src/internal/init-command.ts +305 -0
- package/src/internal/instance.ts +645 -0
- package/src/internal/invalid-callback-return.ts +28 -0
- package/src/internal/invites.ts +234 -0
- package/src/internal/logging.ts +1007 -0
- package/src/internal/logical-scheduler.ts +139 -0
- package/src/internal/masking.ts +224 -0
- package/src/internal/member-chunks.ts +649 -0
- package/src/internal/member-search-workflow.ts +237 -0
- package/src/internal/member-search.ts +272 -0
- package/src/internal/message-cleanup.ts +515 -0
- package/src/internal/message-fields.ts +71 -0
- package/src/internal/message-search-workflow.ts +166 -0
- package/src/internal/message-search.ts +476 -0
- package/src/internal/message.ts +879 -0
- package/src/internal/metrics.ts +55 -0
- package/src/internal/moderation.ts +288 -0
- package/src/internal/multipart.ts +171 -0
- package/src/internal/node-version.ts +22 -0
- package/src/internal/oauth.ts +1146 -0
- package/src/internal/observer.ts +62 -0
- package/src/internal/operation-signal.ts +26 -0
- package/src/internal/pagination.ts +494 -0
- package/src/internal/permission-requirements.ts +359 -0
- package/src/internal/permissions.ts +417 -0
- package/src/internal/pins.ts +115 -0
- package/src/internal/presence.ts +745 -0
- package/src/internal/protocol/gateway.ts +299 -0
- package/src/internal/rate-limit-templates.ts +138 -0
- package/src/internal/rate-limits.ts +346 -0
- package/src/internal/reaction-collector.ts +499 -0
- package/src/internal/reaction-pages.ts +260 -0
- package/src/internal/reactions.ts +174 -0
- package/src/internal/rejection-scope.ts +119 -0
- package/src/internal/response-json.ts +76 -0
- package/src/internal/rest/admission.ts +210 -0
- package/src/internal/rest/attempt.ts +617 -0
- package/src/internal/rest/classify.ts +391 -0
- package/src/internal/rest/download.ts +658 -0
- package/src/internal/rest/options.ts +145 -0
- package/src/internal/rest/owner.ts +1828 -0
- package/src/internal/rest/request.ts +289 -0
- package/src/internal/rest.ts +9 -0
- package/src/internal/retention-age.ts +33 -0
- package/src/internal/role-hierarchy-workflow.ts +150 -0
- package/src/internal/role-hierarchy.ts +93 -0
- package/src/internal/scheduled-tasks.ts +217 -0
- package/src/internal/sharding.ts +270 -0
- package/src/internal/starter-project.ts +251 -0
- package/src/internal/suggest.ts +50 -0
- package/src/internal/supervisor.ts +2253 -0
- package/src/internal/testing/discovery.ts +23 -0
- package/src/internal/testing/errors.ts +67 -0
- package/src/internal/testing/fixtures.ts +714 -0
- package/src/internal/testing/gateway.ts +305 -0
- package/src/internal/testing/harness.ts +328 -0
- package/src/internal/testing/http.ts +395 -0
- package/src/internal/testing/types.ts +240 -0
- package/src/internal/testing/wait.ts +63 -0
- package/src/internal/thread-events.ts +128 -0
- package/src/internal/threads.ts +718 -0
- package/src/internal/transfer-source.ts +359 -0
- package/src/internal/transport/http.ts +46 -0
- package/src/internal/transport/index.ts +23 -0
- package/src/internal/transport/socket.ts +71 -0
- package/src/internal/transport/user-agent.ts +46 -0
- package/src/internal/uploads.ts +111 -0
- package/src/internal/user-cache.ts +294 -0
- package/src/internal/users.ts +402 -0
- package/src/internal/vanity-url.ts +80 -0
- package/src/internal/webhooks.ts +690 -0
- package/src/invites.ts +87 -0
- package/src/logging.ts +247 -0
- package/src/member-chunks.ts +195 -0
- package/src/member-search.ts +152 -0
- package/src/message-cleanup.ts +308 -0
- package/src/message-errors.ts +245 -0
- package/src/message-search.ts +213 -0
- package/src/messages.ts +768 -0
- package/src/native-commands.ts +1249 -0
- package/src/native-supervisor.ts +345 -0
- package/src/oauth.ts +413 -0
- package/src/observer.ts +118 -0
- package/src/pagination.ts +172 -0
- package/src/permissions.ts +74 -0
- package/src/pins.ts +65 -0
- package/src/presence.ts +124 -0
- package/src/reaction-pages.ts +106 -0
- package/src/reactions.ts +126 -0
- package/src/rest.ts +282 -0
- package/src/role-hierarchy.ts +127 -0
- package/src/sharding.ts +272 -0
- package/src/supervisor.ts +460 -0
- package/src/testing.ts +424 -0
- package/src/text.ts +76 -0
- package/src/threads.ts +274 -0
- package/src/users.ts +237 -0
- package/src/webhooks.ts +512 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Permissions that Fluxer checks for SDK operations, behind details.requiredPermissions and the missing-permission hint.
|
|
3
|
+
* Invariant: Every entry comes from Fluxer's own permission check in fluxerapp/fluxer. Entries that name no other commit
|
|
4
|
+
* come from a95172bf88da26dd877255ceee139bf84e6799fa, and the forum tag and threads.* entries come from the commit
|
|
5
|
+
* 4749eb7f866ceba0c9622014a9824900d5be8172 that their comments name. Source references are relative to
|
|
6
|
+
* fluxer_api/src/api.
|
|
7
|
+
* An operation whose rejection the source does not tie to one set of permissions has no entry and keeps the generic hint.
|
|
8
|
+
* Channel-authenticated routes first check View Channel in channel/services/BaseChannelAuthService.ts:213 and reject
|
|
9
|
+
* it with MISSING_PERMISSIONS, so their entries include it.
|
|
10
|
+
* Implements [SDK contracts: Validation requirements](/docs/SDK-CONTRACTS.md#validation-requirements)
|
|
11
|
+
*/
|
|
12
|
+
import type { Operation } from "#sdk/errors";
|
|
13
|
+
import type { PermissionName } from "#sdk/helpers";
|
|
14
|
+
/**
|
|
15
|
+
* Where Fluxer reads a permission: In the channel, where permission overrides apply, community-wide from the bot's
|
|
16
|
+
* roles, or community-wide and again in the channel
|
|
17
|
+
*/
|
|
18
|
+
type PermissionScope = "channel" | "guild" | "guildAndChannel";
|
|
19
|
+
/** What one operation needs, as Fluxer's permission checks state it */
|
|
20
|
+
export interface PermissionRequirement {
|
|
21
|
+
/** Permissions that Fluxer checks on the operation's usual path */
|
|
22
|
+
readonly permissions: readonly PermissionName[];
|
|
23
|
+
readonly scope: PermissionScope;
|
|
24
|
+
/** Other checks behind the same rejection, such as role hierarchy or permissions that only some inputs need */
|
|
25
|
+
readonly also?: string;
|
|
26
|
+
}
|
|
27
|
+
/** Requirement of each operation whose permission checks the pinned source ties to one set */
|
|
28
|
+
export declare const permissionRequirements: Readonly<Partial<Record<Operation, PermissionRequirement>>>;
|
|
29
|
+
/** What Fluxer requires for an operation, or undefined when its permission checks are not tied to one set */
|
|
30
|
+
export declare function permissionRequirement(operation: string): PermissionRequirement | undefined;
|
|
31
|
+
/** The suggested fix for a missing-permission rejection of an operation with a known requirement */
|
|
32
|
+
export declare function requiredPermissionsHint(requirement: PermissionRequirement): string;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=permission-requirements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission-requirements.d.ts","sourceRoot":"","sources":["../../src/internal/permission-requirements.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD;;;GAGG;AACH,KAAK,eAAe,GAAG,SAAS,GAAG,OAAO,GAAG,iBAAiB,CAAA;AAE9D,uEAAuE;AACvE,MAAM,WAAW,qBAAqB;IAClC,mEAAmE;IACnE,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAA;IAC/C,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,+GAA+G;IAC/G,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACzB;AAaD,8FAA8F;AAC9F,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC,CAsS9F,CAAA;AAED,6GAA6G;AAC7G,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,CAE1F;AAKD,oGAAoG;AACpG,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,qBAAqB,GAAG,MAAM,CAYlF"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
const requires = (scope, permissions, also) => Object.freeze({
|
|
2
|
+
permissions: Object.freeze([...permissions]),
|
|
3
|
+
scope,
|
|
4
|
+
...(also === undefined ? {} : { also }),
|
|
5
|
+
});
|
|
6
|
+
const memberHierarchy = "Fluxer also requires the bot's highest role to be above the member's highest role, and never allows acting on the community owner";
|
|
7
|
+
const ownPermissions = "the bot can allow, or stop denying, only permissions it has";
|
|
8
|
+
/** Requirement of each operation whose permission checks the pinned source ties to one set */
|
|
9
|
+
export const permissionRequirements = {
|
|
10
|
+
// channel/services/channel_data/ChannelOperationsService.ts:114
|
|
11
|
+
"channels.fetch": requires("channel", ["ViewChannel"]),
|
|
12
|
+
// webhook/ChannelFollowService.ts:181
|
|
13
|
+
"channels.fetchFollowerStats": requires("channel", ["ViewChannel"]),
|
|
14
|
+
// guild/services/GuildChannelService.ts:92, guild/services/channel/ChannelOperationsService.ts:83-97
|
|
15
|
+
"channels.create": requires("guild", ["ManageChannels"], "Setting permission overwrites also needs Manage Roles, and the bot can allow only permissions it has"),
|
|
16
|
+
// channel/services/channel_data/ChannelOperationsService.ts:164, 189, 219-258
|
|
17
|
+
"channels.edit": requires("channel", ["ViewChannel", "ManageChannels"], `Changing permission overwrites also needs Manage Roles, and ${ownPermissions}. Changing a voice region also needs Update RTC Region`),
|
|
18
|
+
// channel/services/channel_data/ChannelOperationsService.ts:418
|
|
19
|
+
"channels.delete": requires("channel", ["ViewChannel", "ManageChannels"]),
|
|
20
|
+
// guild/services/GuildChannelService.ts:115, guild/services/channel/ChannelOperationsService.ts:396-405
|
|
21
|
+
"channels.reorder": requires("guild", ["ManageChannels"], `Moving a channel with syncPermissionsOnMove also needs Manage Roles, and ${ownPermissions}`),
|
|
22
|
+
// channel/services/channel_data/ChannelOperationsService.ts:647-676
|
|
23
|
+
"channels.setPermissionOverwrite": requires("channel", ["ManageRoles"], `Also, ${ownPermissions}`),
|
|
24
|
+
// channel/services/channel_data/ChannelOperationsService.ts:719-738
|
|
25
|
+
"channels.removePermissionOverwrite": requires("channel", ["ManageRoles"], "Also, the bot can remove an overwrite only when it has every permission that overwrite denies"),
|
|
26
|
+
// webhook/ChannelFollowService.ts:77-100, webhook/WebhookService.ts:614-634
|
|
27
|
+
"channels.follow": requires("guildAndChannel", ["ViewChannel", "ManageWebhooks"], "Fluxer checks View Channel in both channels and Manage Webhooks in the destination"),
|
|
28
|
+
// Upstream 4749eb7f, channel/services/ChannelRequestService.ts:164-171, where the three tag routes in
|
|
29
|
+
// channel/controllers/ForumController.ts check Manage Channels before changing the channel's tags
|
|
30
|
+
"channels.createForumTag": requires("channel", ["ViewChannel", "ManageChannels"]),
|
|
31
|
+
"channels.editForumTag": requires("channel", ["ViewChannel", "ManageChannels"]),
|
|
32
|
+
"channels.deleteForumTag": requires("channel", ["ViewChannel", "ManageChannels"]),
|
|
33
|
+
// webhook/WebhookService.ts:197-204, 614-634
|
|
34
|
+
"webhooks.create": requires("guildAndChannel", ["ViewChannel", "ManageWebhooks"]),
|
|
35
|
+
// webhook/WebhookService.ts:177-184
|
|
36
|
+
"webhooks.fetchForChannel": requires("guildAndChannel", ["ViewChannel", "ManageWebhooks"]),
|
|
37
|
+
// webhook/WebhookService.ts:163-164
|
|
38
|
+
"webhooks.fetchForGuild": requires("guild", ["ManageWebhooks"]),
|
|
39
|
+
// webhook/WebhookService.ts:154-155, 506-518
|
|
40
|
+
"webhooks.fetch": requires("guildAndChannel", ["ViewChannel", "ManageWebhooks"]),
|
|
41
|
+
// webhook/WebhookService.ts:241-275
|
|
42
|
+
"webhooks.edit": requires("guildAndChannel", ["ViewChannel", "ManageWebhooks"], "Moving the webhook to another channel also needs them in that channel"),
|
|
43
|
+
// webhook/WebhookService.ts:362-365
|
|
44
|
+
"webhooks.delete": requires("guildAndChannel", ["ViewChannel", "ManageWebhooks"]),
|
|
45
|
+
// invite/InviteService.ts:151, 189-198
|
|
46
|
+
"invites.create": requires("channel", ["ViewChannel", "CreateInstantInvite"]),
|
|
47
|
+
// invite/InviteService.ts:117-129
|
|
48
|
+
"invites.fetchForChannel": requires("guildAndChannel", ["ViewChannel", "ManageChannels"], "For a group direct message, only its owner can list them"),
|
|
49
|
+
// invite/InviteService.ts:135-139
|
|
50
|
+
"invites.fetchForGuild": requires("guild", ["ManageGuild"]),
|
|
51
|
+
// invite/InviteService.ts:364-392
|
|
52
|
+
"invites.delete": requires("guild", ["ManageGuild"], "Deleting an invite the bot created needs no Manage Guild. For a group direct message invite, only the group owner can delete it"),
|
|
53
|
+
// guild/services/content/EmojiService.ts:102. Editing and deleting need Create Expressions for the bot's own
|
|
54
|
+
// emoji and Manage Expressions otherwise, so they have no entry
|
|
55
|
+
"emojis.create": requires("guild", ["CreateExpressions"]),
|
|
56
|
+
// guild/services/content/EmojiService.ts:219
|
|
57
|
+
"emojis.createMany": requires("guild", ["CreateExpressions"]),
|
|
58
|
+
// guild/services/content/EmojiService.ts:164
|
|
59
|
+
"emojis.clone": requires("guild", ["CreateExpressions"]),
|
|
60
|
+
// guild/services/content/StickerService.ts:118
|
|
61
|
+
"stickers.create": requires("guild", ["CreateExpressions"]),
|
|
62
|
+
// guild/services/content/StickerService.ts:238
|
|
63
|
+
"stickers.createMany": requires("guild", ["CreateExpressions"]),
|
|
64
|
+
// guild/services/content/StickerService.ts:178
|
|
65
|
+
"stickers.clone": requires("guild", ["CreateExpressions"]),
|
|
66
|
+
// guild/services/data/GuildOperationsService.ts:462
|
|
67
|
+
"guilds.edit": requires("guild", ["ManageGuild"]),
|
|
68
|
+
// guild/services/data/GuildVanityService.ts:34
|
|
69
|
+
"guilds.fetchVanityUrl": requires("guild", ["ManageGuild"]),
|
|
70
|
+
// guild/services/data/GuildVanityService.ts:61
|
|
71
|
+
"guilds.editVanityUrl": requires("guild", ["ManageGuild"]),
|
|
72
|
+
// guild/services/GuildService.ts:306-318
|
|
73
|
+
"auditLogs.fetchPage": requires("guild", ["ViewAuditLog"]),
|
|
74
|
+
// guild/controllers/GuildDiscoveryController.ts:163
|
|
75
|
+
"discovery.apply": requires("guild", ["ManageGuild"]),
|
|
76
|
+
// guild/controllers/GuildDiscoveryController.ts:198
|
|
77
|
+
"discovery.edit": requires("guild", ["ManageGuild"]),
|
|
78
|
+
// guild/controllers/GuildDiscoveryController.ts:228
|
|
79
|
+
"discovery.withdraw": requires("guild", ["ManageGuild"]),
|
|
80
|
+
// guild/controllers/GuildDiscoveryController.ts:252
|
|
81
|
+
"discovery.fetchStatus": requires("guild", ["ManageGuild"]),
|
|
82
|
+
// guild/services/member/GuildMemberOperationsService.ts:395-401
|
|
83
|
+
"members.kick": requires("guild", ["KickMembers"], memberHierarchy),
|
|
84
|
+
// guild/services/GuildModerationService.ts:83-92
|
|
85
|
+
"members.ban": requires("guild", ["BanMembers"], memberHierarchy),
|
|
86
|
+
// guild/services/GuildModerationService.ts:184
|
|
87
|
+
"members.unban": requires("guild", ["BanMembers"]),
|
|
88
|
+
// guild/services/GuildModerationService.ts:170
|
|
89
|
+
"members.fetchBans": requires("guild", ["BanMembers"]),
|
|
90
|
+
// guild/services/member/GuildMemberOperationsService.ts:577-586
|
|
91
|
+
"members.timeout": requires("guild", ["ModerateMembers"], `${memberHierarchy}, the bot itself or a member with Administrator`),
|
|
92
|
+
"members.clearTimeout": requires("guild", ["ModerateMembers"], `${memberHierarchy}, the bot itself or a member with Administrator`),
|
|
93
|
+
// guild/services/member/GuildMemberOperationsService.ts:289-291
|
|
94
|
+
"members.setNickname": requires("guild", ["ManageNicknames"], memberHierarchy),
|
|
95
|
+
// guild/services/member/GuildMemberOperationsService.ts:880-887
|
|
96
|
+
"members.setMute": requires("guild", ["MuteMembers"], memberHierarchy),
|
|
97
|
+
// guild/services/member/GuildMemberOperationsService.ts:880-891
|
|
98
|
+
"members.setDeaf": requires("guild", ["DeafenMembers"], memberHierarchy),
|
|
99
|
+
// guild/services/member/GuildMemberOperationsService.ts:880-917
|
|
100
|
+
"members.move": requires("guild", ["MoveMembers"], `${memberHierarchy}. The bot and the member also need Connect in the destination channel`),
|
|
101
|
+
// guild/services/member/GuildMemberOperationsService.ts:880-896
|
|
102
|
+
"members.disconnect": requires("guild", ["MoveMembers"], memberHierarchy),
|
|
103
|
+
// guild/services/member/GuildMemberValidationService.ts:50-62
|
|
104
|
+
"members.setRoles": requires("guild", ["ManageRoles"], "Fluxer also requires the bot's highest role to be above every role it adds or removes"),
|
|
105
|
+
// guild/services/member/GuildMemberValidationService.ts:84-89
|
|
106
|
+
"members.addRole": requires("guild", ["ManageRoles"], "Fluxer also requires the bot's highest role to be above the role"),
|
|
107
|
+
"members.removeRole": requires("guild", ["ManageRoles"], "Fluxer also requires the bot's highest role to be above the role"),
|
|
108
|
+
// guild/services/GuildRoleService.ts:121, 180-185
|
|
109
|
+
"roles.create": requires("guild", ["ManageRoles"], "Also, the bot can grant only permissions it has"),
|
|
110
|
+
// guild/services/GuildRoleService.ts:202-222
|
|
111
|
+
"roles.edit": requires("guild", ["ManageRoles"], "Fluxer also requires the bot's highest role to be above the role, and the bot can grant only permissions it has"),
|
|
112
|
+
// guild/services/GuildRoleService.ts:265-274
|
|
113
|
+
"roles.delete": requires("guild", ["ManageRoles"], "Fluxer also requires the bot's highest role to be above the role"),
|
|
114
|
+
// guild/services/GuildRoleService.ts:317, 612-624
|
|
115
|
+
"roles.reorder": requires("guild", ["ManageRoles"], "Also, the bot can move only roles below its highest role"),
|
|
116
|
+
// guild/services/GuildRoleService.ts:354, 372-389
|
|
117
|
+
"roles.setHoistPositions": requires("guild", ["ManageRoles"], "Also, the bot can change only roles below its highest role"),
|
|
118
|
+
// guild/services/GuildRoleService.ts:432
|
|
119
|
+
"roles.resetHoistPositions": requires("guild", ["ManageRoles"]),
|
|
120
|
+
// channel/services/message/MessageSendService.ts:268-291, 679-682, channel/services/AttachmentUploadService.ts:491.
|
|
121
|
+
// Every send, reply, forward and direct message reports this operation, and direct messages never check these
|
|
122
|
+
send: requires("channel", ["ViewChannel", "SendMessages"], "Embeds also need Embed Links, files need Attach Files, and a forward needs View Channel in its source channel"),
|
|
123
|
+
// channel/services/MessageInteractionService.ts:75-76
|
|
124
|
+
typing: requires("channel", ["ViewChannel", "SendMessages"]),
|
|
125
|
+
// channel/services/message/MessageRetrievalService.ts:76
|
|
126
|
+
fetch: requires("channel", ["ViewChannel"]),
|
|
127
|
+
fetchHistory: requires("channel", ["ViewChannel"]),
|
|
128
|
+
// channel/services/message/MessageEditService.ts:71-93
|
|
129
|
+
edit: requires("channel", ["ViewChannel"], "Adding embeds also needs Embed Links, and adding files needs Attach Files"),
|
|
130
|
+
// channel/services/message/MessageDeleteService.ts:67-77, channel/services/message/MessageValidationService.ts:249-255
|
|
131
|
+
delete: requires("channel", ["ViewChannel", "ManageMessages"], "Deleting the bot's own message needs no Manage Messages, and Fluxer does not allow deleting some system messages"),
|
|
132
|
+
// channel/services/message/MessageDeleteService.ts:179-184
|
|
133
|
+
deleteMany: requires("channel", ["ViewChannel", "ManageMessages"]),
|
|
134
|
+
// channel/services/AttachmentUploadService.ts:357-369
|
|
135
|
+
deleteAttachment: requires("channel", ["ViewChannel"], "Also, Fluxer lets only the message's author remove its attachments"),
|
|
136
|
+
// channel/controllers/MessageController.ts:478
|
|
137
|
+
deleteOwnMessages: requires("channel", ["ViewChannel"]),
|
|
138
|
+
// channel/services/message/MessageCrosspostService.ts:70-92
|
|
139
|
+
publish: requires("channel", ["ViewChannel", "SendMessages"], "Publishing another author's message also needs Manage Messages"),
|
|
140
|
+
// channel/services/MessageInteractionService.ts:115, channel/services/interaction/MessagePinService.ts:155
|
|
141
|
+
pin: requires("channel", ["ViewChannel", "PinMessages"]),
|
|
142
|
+
// channel/services/MessageInteractionService.ts:136, channel/services/interaction/MessagePinService.ts:206
|
|
143
|
+
unpin: requires("channel", ["ViewChannel", "PinMessages"]),
|
|
144
|
+
// channel/services/MessageInteractionService.ts:98
|
|
145
|
+
fetchPins: requires("channel", ["ViewChannel"]),
|
|
146
|
+
// channel/services/MessageInteractionService.ts:162
|
|
147
|
+
fetchReactionUsers: requires("channel", ["ViewChannel"]),
|
|
148
|
+
// channel/services/MessageInteractionService.ts:180, channel/services/interaction/MessageReactionService.ts:208-209, 431-433
|
|
149
|
+
addReaction: requires("channel", ["ViewChannel", "AddReactions"], "Adding to an existing reaction needs no Add Reactions, and a new reaction with a custom emoji also needs Use External Emojis"),
|
|
150
|
+
// channel/services/MessageInteractionService.ts:227, channel/services/interaction/MessageReactionService.ts:276-278
|
|
151
|
+
removeReaction: requires("channel", ["ViewChannel"]),
|
|
152
|
+
// channel/services/interaction/MessageReactionService.ts:276-278, 363-376
|
|
153
|
+
removeUserReaction: requires("channel", ["ViewChannel", "ManageMessages"], "Fluxer allows it only in community channels"),
|
|
154
|
+
// channel/services/MessageInteractionService.ts:260, channel/services/interaction/MessageReactionService.ts:316
|
|
155
|
+
clearReaction: requires("channel", ["ViewChannel", "ManageMessages"]),
|
|
156
|
+
// channel/services/MessageInteractionService.ts:273, channel/services/interaction/MessageReactionService.ts:347
|
|
157
|
+
clearReactions: requires("channel", ["ViewChannel", "ManageMessages"]),
|
|
158
|
+
// The threads.* entries come from fluxerapp/fluxer commit 4749eb7f866ceba0c9622014a9824900d5be8172, where paths
|
|
159
|
+
// starting with packages/ are relative to the repository root. Fluxer reads a thread's permissions in its parent
|
|
160
|
+
// channel, and a thread it cannot view fails with MISSING_ACCESS instead, so thread-targeted entries leave out
|
|
161
|
+
// View Channel. Join, leave, fetchActive and member reads have no entry because none of their checks fails with
|
|
162
|
+
// MISSING_PERMISSIONS.
|
|
163
|
+
// channel/services/BaseChannelAuthService.ts:248, channel/services/thread/ThreadCreationService.ts:378,
|
|
164
|
+
// packages/constants/src/ThreadPermissionUtils.ts:214-231
|
|
165
|
+
"threads.create": requires("channel", ["ViewChannel", "CreatePublicThreads"], "A private thread needs Create Private Threads instead"),
|
|
166
|
+
// channel/services/BaseChannelAuthService.ts:248, channel/services/thread/ThreadCreationService.ts:120, 378,
|
|
167
|
+
// packages/constants/src/ThreadPermissionUtils.ts:222-225
|
|
168
|
+
"threads.createFromMessage": requires("channel", ["ViewChannel", "CreatePublicThreads", "ReadMessageHistory"]),
|
|
169
|
+
// channel/services/BaseChannelAuthService.ts:248, channel/services/thread/ThreadCreationService.ts:228, 236,
|
|
170
|
+
// channel/services/message/MessageSendService.ts:254-298
|
|
171
|
+
"threads.createPost": requires("channel", ["ViewChannel", "SendMessages"], "Embeds in the first message also need Embed Links, and files need Attach Files"),
|
|
172
|
+
// channel/services/thread/ThreadModifyService.ts:137, packages/constants/src/ThreadPermissionUtils.ts:124-158
|
|
173
|
+
"threads.edit": requires("channel", ["ManageThreads"], "The thread's creator needs it only to unlock the thread or change rateLimitPerUser, pinned or moderated tags, and every change in a locked thread needs it"),
|
|
174
|
+
// channel/services/BaseChannelAuthService.ts:248, channel/services/thread/ThreadListService.ts:144,
|
|
175
|
+
// packages/constants/src/ThreadPermissionUtils.ts:233-241
|
|
176
|
+
"threads.fetchArchived": requires("channel", ["ViewChannel", "ReadMessageHistory"], "Listing private archived threads also needs Manage Threads"),
|
|
177
|
+
// channel/services/BaseChannelAuthService.ts:248, channel/services/thread/ThreadForumService.ts:217
|
|
178
|
+
"threads.search": requires("channel", ["ViewChannel", "ReadMessageHistory"]),
|
|
179
|
+
// channel/services/thread/ThreadMemberService.ts:80, packages/constants/src/ThreadPermissionUtils.ts:179-193
|
|
180
|
+
"threads.addMember": requires("channel", ["SendMessagesInThreads"], "Adding to a private thread that is not invitable also needs Manage Threads, unless the added member has it"),
|
|
181
|
+
// channel/services/thread/ThreadMemberService.ts:105, packages/constants/src/ThreadPermissionUtils.ts:195-201
|
|
182
|
+
"threads.removeMember": requires("channel", ["ManageThreads"], "The creator of a private thread can remove its members without it"),
|
|
183
|
+
};
|
|
184
|
+
/** What Fluxer requires for an operation, or undefined when its permission checks are not tied to one set */
|
|
185
|
+
export function permissionRequirement(operation) {
|
|
186
|
+
return Object.hasOwn(permissionRequirements, operation) ? permissionRequirements[operation] : undefined;
|
|
187
|
+
}
|
|
188
|
+
/** Readable name of a permission, such as Manage Channels for ManageChannels */
|
|
189
|
+
const permissionLabel = (name) => name.replace(/([a-z])([A-Z])/g, "$1 $2");
|
|
190
|
+
/** The suggested fix for a missing-permission rejection of an operation with a known requirement */
|
|
191
|
+
export function requiredPermissionsHint(requirement) {
|
|
192
|
+
const labels = requirement.permissions.map(permissionLabel);
|
|
193
|
+
const list = labels.length === 1 ? labels[0] : `${labels.slice(0, -1).join(", ")} and ${labels.at(-1)}`;
|
|
194
|
+
const them = labels.length === 1 ? "it" : "them";
|
|
195
|
+
const where = {
|
|
196
|
+
channel: `Grant ${them} to the bot's role in the community settings or the channel's permission overrides`,
|
|
197
|
+
guild: `Grant ${them} to the bot's role in the community settings`,
|
|
198
|
+
guildAndChannel: `Grant ${them} to the bot's role in the community settings, and check that the channel's permission overrides do not deny ${them}`,
|
|
199
|
+
}[requirement.scope];
|
|
200
|
+
return [`The bot needs ${list} for this operation`, where, requirement.also]
|
|
201
|
+
.filter((part) => part !== undefined)
|
|
202
|
+
.join(". ");
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=permission-requirements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission-requirements.js","sourceRoot":"","sources":["../../src/internal/permission-requirements.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Permission calculation from explicit guild, member, role and channel data.
|
|
3
|
+
* Invariant: Results are checks for the supplied data, never action authorization, and Fluxer stays authoritative.
|
|
4
|
+
* Implements [SDK contracts: Delivery, requests and caches](/docs/SDK-CONTRACTS.md#delivery-requests-and-caches)
|
|
5
|
+
*/
|
|
6
|
+
import * as Effect from "effect/Effect";
|
|
7
|
+
import type { ChannelOperationFailure } from "#sdk/channels";
|
|
8
|
+
import type { GuildOperationFailure, GuildOperationOptions } from "#sdk/guilds";
|
|
9
|
+
import { GuildOperationError } from "#sdk/guilds";
|
|
10
|
+
import type { PermissionInput, PermissionTarget } from "#sdk/permissions";
|
|
11
|
+
import type { ClientOwner } from "./client.js";
|
|
12
|
+
/**
|
|
13
|
+
* Calculates Fluxer's raw guild, explicit-channel or thread permission bitfield from one validated local snapshot.
|
|
14
|
+
* A thread is calculated in its parent channel, matching upstream threadViewPermissions in
|
|
15
|
+
* packages/constants/src/ThreadPermissionUtils.ts at 4749eb7f
|
|
16
|
+
*/
|
|
17
|
+
export declare function calculatePermissions(input: PermissionInput): Effect.Effect<bigint, GuildOperationError>;
|
|
18
|
+
/**
|
|
19
|
+
* Fetches independent guild, member, role, and optional channel observations, then calculates their raw bitfield.
|
|
20
|
+
* A thread channel adds a read of its parent channel, whose permissions the thread takes
|
|
21
|
+
*
|
|
22
|
+
* This always reads remotely without consulting local caches. Its deadline covers the whole composition, but the
|
|
23
|
+
* resulting observations are not transactional and do not establish access, hierarchy, timeouts, or action success
|
|
24
|
+
*/
|
|
25
|
+
export declare function fetchPermissions(owner: Pick<ClientOwner, "guild" | "channel" | "logical"> & {
|
|
26
|
+
readonly defaultTimeoutMs?: number;
|
|
27
|
+
}, target: PermissionTarget, options?: GuildOperationOptions): Effect.Effect<bigint, GuildOperationFailure | ChannelOperationFailure>;
|
|
28
|
+
//# sourceMappingURL=permissions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/internal/permissions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,uBAAuB,EAAqC,MAAM,eAAe,CAAA;AAC/F,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAC/E,OAAO,EAAE,mBAAmB,EAAe,MAAM,aAAa,CAAA;AAE9D,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAEzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAgQ9C;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAQvG;AAuED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC5B,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC,GAAG;IAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE,EAClG,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,qBAAqB,GAChC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,GAAG,uBAAuB,CAAC,CAoDxE"}
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Permission calculation from explicit guild, member, role and channel data.
|
|
3
|
+
* Invariant: Results are checks for the supplied data, never action authorization, and Fluxer stays authoritative.
|
|
4
|
+
* Implements [SDK contracts: Delivery, requests and caches](/docs/SDK-CONTRACTS.md#delivery-requests-and-caches)
|
|
5
|
+
*/
|
|
6
|
+
import * as Effect from "effect/Effect";
|
|
7
|
+
import { isThreadChannel } from "#sdk/channels";
|
|
8
|
+
import { GuildOperationError, Permissions } from "#sdk/guilds";
|
|
9
|
+
import { composedStepFacts } from "#sdk/api-errors";
|
|
10
|
+
import { channelFetch } from "./channels.js";
|
|
11
|
+
import { guildFetch, memberFetch, roleList } from "./guilds.js";
|
|
12
|
+
import { identifier, record } from "./decode/primitives.js";
|
|
13
|
+
import { readCaller, suspendInput, suspendMarked } from "./defects.js";
|
|
14
|
+
import { InputValidationFailure, inputValidationFailure, unsupportedKeyFailure } from "#sdk/input-validation";
|
|
15
|
+
const allPermissions = (1n << 64n) - 1n;
|
|
16
|
+
const administrator = 1n << 3n;
|
|
17
|
+
const unsigned64 = (value) => typeof value === "bigint" && value >= 0n && value <= allPermissions;
|
|
18
|
+
const inputFailure = (operation, failure) => new GuildOperationError({ operation, reason: "input", outcome: "notDispatched", inputValidation: failure.detail });
|
|
19
|
+
const timeoutFailure = () => new GuildOperationError({ operation: "permissions.fetch", reason: "timeout", outcome: "notDispatched" });
|
|
20
|
+
// Each validator reads a caller field once, so the validated value is the one calculated
|
|
21
|
+
function validateMember(value, guildId) {
|
|
22
|
+
if (!record(value) || value.guildId !== guildId)
|
|
23
|
+
return undefined;
|
|
24
|
+
const userId = value.userId;
|
|
25
|
+
const roleInput = value.roleIds;
|
|
26
|
+
if (!identifier(userId) || !Array.isArray(roleInput))
|
|
27
|
+
return undefined;
|
|
28
|
+
const roleIds = [];
|
|
29
|
+
const seen = new Set();
|
|
30
|
+
for (const roleId of roleInput) {
|
|
31
|
+
if (!identifier(roleId) || roleId === guildId || seen.has(roleId))
|
|
32
|
+
return undefined;
|
|
33
|
+
seen.add(roleId);
|
|
34
|
+
roleIds.push(roleId);
|
|
35
|
+
}
|
|
36
|
+
return { guildId, userId, roleIds };
|
|
37
|
+
}
|
|
38
|
+
function validateRoles(value, guildId, member) {
|
|
39
|
+
if (!Array.isArray(value))
|
|
40
|
+
return undefined;
|
|
41
|
+
const roles = new Map();
|
|
42
|
+
for (const role of value) {
|
|
43
|
+
if (!record(role) || role.guildId !== guildId)
|
|
44
|
+
return undefined;
|
|
45
|
+
const id = role.id;
|
|
46
|
+
const permissions = role.permissions;
|
|
47
|
+
if (!identifier(id) || !unsigned64(permissions) || roles.has(id))
|
|
48
|
+
return undefined;
|
|
49
|
+
roles.set(id, { id, guildId, permissions });
|
|
50
|
+
}
|
|
51
|
+
if (!roles.has(guildId) || member.roleIds.some((roleId) => !roles.has(roleId)))
|
|
52
|
+
return undefined;
|
|
53
|
+
return roles;
|
|
54
|
+
}
|
|
55
|
+
function decodeOverwrite(value, seen) {
|
|
56
|
+
if (!record(value))
|
|
57
|
+
return undefined;
|
|
58
|
+
const id = value.id;
|
|
59
|
+
const type = value.type;
|
|
60
|
+
const allow = value.allow;
|
|
61
|
+
const deny = value.deny;
|
|
62
|
+
if (!identifier(id) || (type !== "role" && type !== "member") || !unsigned64(allow) || !unsigned64(deny))
|
|
63
|
+
return undefined;
|
|
64
|
+
const key = `${type}:${id}`;
|
|
65
|
+
if (seen.has(key))
|
|
66
|
+
return undefined;
|
|
67
|
+
seen.add(key);
|
|
68
|
+
return { id, type, allow, deny };
|
|
69
|
+
}
|
|
70
|
+
function validateChannel(value, guildId) {
|
|
71
|
+
if (!record(value) || value.guildId !== guildId)
|
|
72
|
+
return undefined;
|
|
73
|
+
const id = value.id;
|
|
74
|
+
if (!identifier(id) || !("permissionOverwrites" in value))
|
|
75
|
+
return undefined;
|
|
76
|
+
const overwrites = value.permissionOverwrites;
|
|
77
|
+
if (!Array.isArray(overwrites))
|
|
78
|
+
return undefined;
|
|
79
|
+
const seen = new Set();
|
|
80
|
+
const decoded = [];
|
|
81
|
+
for (const overwrite of overwrites) {
|
|
82
|
+
const valid = decodeOverwrite(overwrite, seen);
|
|
83
|
+
if (!valid)
|
|
84
|
+
return undefined;
|
|
85
|
+
decoded.push(valid);
|
|
86
|
+
}
|
|
87
|
+
return { id, guildId, permissionOverwrites: decoded };
|
|
88
|
+
}
|
|
89
|
+
/** The parent channel ID of a thread in the guild, or undefined when the thread's guild or IDs are invalid */
|
|
90
|
+
function threadParentId(value, guildId) {
|
|
91
|
+
if (!record(value) || value.guildId !== guildId || !identifier(value.id))
|
|
92
|
+
return undefined;
|
|
93
|
+
const parentId = value.parentId;
|
|
94
|
+
return identifier(parentId) ? parentId : undefined;
|
|
95
|
+
}
|
|
96
|
+
function validateChannels(channelInput, parentInput, guildId) {
|
|
97
|
+
if (channelInput === undefined || !isThreadChannel(channelInput)) {
|
|
98
|
+
if (parentInput !== undefined)
|
|
99
|
+
return inputValidationFailure("input.parentChannel", "relationship", "Permission parentChannel is supported only when channel is a thread");
|
|
100
|
+
if (channelInput === undefined)
|
|
101
|
+
return { channel: undefined, inThread: false };
|
|
102
|
+
const channel = validateChannel(channelInput, guildId);
|
|
103
|
+
if (!channel)
|
|
104
|
+
return inputValidationFailure("input.channel", "format", "Permission channel must match the guild and contain unique valid role or member overwrites");
|
|
105
|
+
return { channel, inThread: false };
|
|
106
|
+
}
|
|
107
|
+
// A thread has no overwrites of its own, so Fluxer calculates its permissions in the parent channel
|
|
108
|
+
const parentId = threadParentId(channelInput, guildId);
|
|
109
|
+
if (parentId === undefined)
|
|
110
|
+
return inputValidationFailure("input.channel", "format", "Permission thread must match the guild and contain decimal thread and parent channel IDs");
|
|
111
|
+
if (parentInput === undefined)
|
|
112
|
+
return inputValidationFailure("input.parentChannel", "required", "Permission parentChannel is required when channel is a thread, because a thread takes its parent's permissions");
|
|
113
|
+
const parent = validateChannel(parentInput, guildId);
|
|
114
|
+
if (!parent)
|
|
115
|
+
return inputValidationFailure("input.parentChannel", "format", "Permission parentChannel must match the guild and contain unique valid role or member overwrites");
|
|
116
|
+
if (parent.id !== parentId)
|
|
117
|
+
return inputValidationFailure("input.parentChannel", "relationship", "Permission parentChannel must be the channel that the thread's parentId names");
|
|
118
|
+
return { channel: parent, inThread: true };
|
|
119
|
+
}
|
|
120
|
+
function validateInput(value) {
|
|
121
|
+
if (!record(value))
|
|
122
|
+
return inputValidationFailure("input", "type", "Permission input must be an object");
|
|
123
|
+
const guildInput = value.guild;
|
|
124
|
+
if (!record(guildInput))
|
|
125
|
+
return inputValidationFailure("input.guild", "type", "Permission guild must be an object");
|
|
126
|
+
const guildId = guildInput.id;
|
|
127
|
+
if (!identifier(guildId))
|
|
128
|
+
return inputValidationFailure("input.guild.id", "format", "Permission guild ID must be a decimal string");
|
|
129
|
+
const ownerId = guildInput.ownerId;
|
|
130
|
+
if (!identifier(ownerId))
|
|
131
|
+
return inputValidationFailure("input.guild.ownerId", "format", "Permission guild owner ID must be a decimal string");
|
|
132
|
+
const guild = { id: guildId, ownerId };
|
|
133
|
+
const member = validateMember(value.member, guild.id);
|
|
134
|
+
if (!member)
|
|
135
|
+
return inputValidationFailure("input.member", "format", "Permission member must match the guild and contain a decimal user ID and unique non-default role IDs");
|
|
136
|
+
const roles = validateRoles(value.roles, guild.id, member);
|
|
137
|
+
if (!roles)
|
|
138
|
+
return inputValidationFailure("input.roles[]", "format", "Permission roles must be unique same-guild roles with unsigned 64-bit permissions and cover the member roles");
|
|
139
|
+
const channels = validateChannels(value.channel, value.parentChannel, guild.id);
|
|
140
|
+
if (channels instanceof InputValidationFailure)
|
|
141
|
+
return channels;
|
|
142
|
+
return { guild, member, roles, ...channels };
|
|
143
|
+
}
|
|
144
|
+
function applyOverwrite(permissions, overwrite) {
|
|
145
|
+
return (permissions & ~overwrite.deny) | overwrite.allow;
|
|
146
|
+
}
|
|
147
|
+
/** Fluxer's thread rule: SendMessages in a thread follows SendMessagesInThreads in its parent, whichever way it is set */
|
|
148
|
+
function threadPermissions(parentPermissions) {
|
|
149
|
+
const withoutSend = parentPermissions & ~Permissions.SendMessages;
|
|
150
|
+
return (parentPermissions & Permissions.SendMessagesInThreads) === Permissions.SendMessagesInThreads
|
|
151
|
+
? withoutSend | Permissions.SendMessages
|
|
152
|
+
: withoutSend;
|
|
153
|
+
}
|
|
154
|
+
function calculate(input) {
|
|
155
|
+
const { guild, member, roles, channel, inThread } = input;
|
|
156
|
+
if (member.userId === guild.ownerId)
|
|
157
|
+
return allPermissions;
|
|
158
|
+
let permissions = roles.get(guild.id).permissions;
|
|
159
|
+
for (const roleId of member.roleIds)
|
|
160
|
+
permissions |= roles.get(roleId).permissions;
|
|
161
|
+
if ((permissions & administrator) === administrator)
|
|
162
|
+
return allPermissions;
|
|
163
|
+
if (!channel)
|
|
164
|
+
return permissions;
|
|
165
|
+
const overwrites = channel.permissionOverwrites;
|
|
166
|
+
for (const overwrite of overwrites)
|
|
167
|
+
if (overwrite.type === "role" && overwrite.id === guild.id)
|
|
168
|
+
permissions = applyOverwrite(permissions, overwrite);
|
|
169
|
+
let roleAllow = 0n;
|
|
170
|
+
let roleDeny = 0n;
|
|
171
|
+
const memberRoles = new Set(member.roleIds);
|
|
172
|
+
for (const overwrite of overwrites)
|
|
173
|
+
if (overwrite.type === "role" && memberRoles.has(overwrite.id)) {
|
|
174
|
+
roleAllow |= overwrite.allow;
|
|
175
|
+
roleDeny |= overwrite.deny;
|
|
176
|
+
}
|
|
177
|
+
permissions = (permissions & ~roleDeny) | roleAllow;
|
|
178
|
+
for (const overwrite of overwrites)
|
|
179
|
+
if (overwrite.type === "member" && overwrite.id === member.userId)
|
|
180
|
+
permissions = applyOverwrite(permissions, overwrite);
|
|
181
|
+
return inThread ? threadPermissions(permissions) : permissions;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Calculates Fluxer's raw guild, explicit-channel or thread permission bitfield from one validated local snapshot.
|
|
185
|
+
* A thread is calculated in its parent channel, matching upstream threadViewPermissions in
|
|
186
|
+
* packages/constants/src/ThreadPermissionUtils.ts at 4749eb7f
|
|
187
|
+
*/
|
|
188
|
+
export function calculatePermissions(input) {
|
|
189
|
+
// Only reading the caller input is marked, so a fault in the calculation stays an SDK fault
|
|
190
|
+
return suspendMarked(() => {
|
|
191
|
+
const validated = readCaller(() => validateInput(input));
|
|
192
|
+
return validated instanceof InputValidationFailure
|
|
193
|
+
? Effect.fail(inputFailure("permissions.calculate", validated))
|
|
194
|
+
: Effect.succeed(calculate(validated));
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
function validateTarget(value) {
|
|
198
|
+
if (!record(value))
|
|
199
|
+
return inputValidationFailure("target", "type", "Permission target must be an object");
|
|
200
|
+
const unsupported = unsupportedKeyFailure(value, ["guildId", "userId", "channelId"], "target", "the permission target");
|
|
201
|
+
if (unsupported)
|
|
202
|
+
return unsupported;
|
|
203
|
+
const guildId = value.guildId;
|
|
204
|
+
if (!identifier(guildId))
|
|
205
|
+
return inputValidationFailure("target.guildId", "format", "Guild IDs must be decimal strings");
|
|
206
|
+
const userId = value.userId;
|
|
207
|
+
if (!identifier(userId))
|
|
208
|
+
return inputValidationFailure("target.userId", "format", "User IDs must be decimal strings");
|
|
209
|
+
const channelId = value.channelId;
|
|
210
|
+
if (channelId !== undefined && !identifier(channelId))
|
|
211
|
+
return inputValidationFailure("target.channelId", "format", "Channel IDs must be decimal strings");
|
|
212
|
+
return { guildId, userId, channelId };
|
|
213
|
+
}
|
|
214
|
+
function validateOptions(value) {
|
|
215
|
+
if (value === undefined)
|
|
216
|
+
return {};
|
|
217
|
+
if (!record(value))
|
|
218
|
+
return inputValidationFailure("options", "type", "Permission fetch options must be an object");
|
|
219
|
+
const unsupported = unsupportedKeyFailure(value, ["timeoutMs", "signal"], "options", "the permission fetch options");
|
|
220
|
+
if (unsupported)
|
|
221
|
+
return unsupported;
|
|
222
|
+
const signal = value.signal;
|
|
223
|
+
if (signal !== undefined &&
|
|
224
|
+
(!record(signal) ||
|
|
225
|
+
typeof signal.aborted !== "boolean" ||
|
|
226
|
+
typeof signal.addEventListener !== "function" ||
|
|
227
|
+
typeof signal.removeEventListener !== "function"))
|
|
228
|
+
return inputValidationFailure("options.signal", "type", "Permission fetch signal must be an AbortSignal");
|
|
229
|
+
const timeoutMs = value.timeoutMs;
|
|
230
|
+
if (timeoutMs !== undefined &&
|
|
231
|
+
(typeof timeoutMs !== "number" ||
|
|
232
|
+
!Number.isSafeInteger(timeoutMs) ||
|
|
233
|
+
timeoutMs <= 0 ||
|
|
234
|
+
timeoutMs > 2_147_483_647))
|
|
235
|
+
return inputValidationFailure("options.timeoutMs", "range", "Permission fetch timeout must be an integer from 1 through 2,147,483,647 ms");
|
|
236
|
+
// Keep only the validated timeout: The requests use their own remaining deadlines
|
|
237
|
+
return timeoutMs === undefined ? {} : { timeoutMs };
|
|
238
|
+
}
|
|
239
|
+
function remainingOptions(deadline, now) {
|
|
240
|
+
const remaining = Math.floor(deadline - now());
|
|
241
|
+
return remaining > 0 ? { timeoutMs: remaining } : undefined;
|
|
242
|
+
}
|
|
243
|
+
function remoteCalculationFailure(error) {
|
|
244
|
+
return new GuildOperationError({
|
|
245
|
+
operation: "permissions.fetch",
|
|
246
|
+
reason: error.reason === "input" ? "response" : error.reason,
|
|
247
|
+
outcome: error.outcome,
|
|
248
|
+
status: error.status,
|
|
249
|
+
retryAfterMs: error.retryAfterMs,
|
|
250
|
+
apiError: error.apiError,
|
|
251
|
+
...composedStepFacts(error),
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Fetches independent guild, member, role, and optional channel observations, then calculates their raw bitfield.
|
|
256
|
+
* A thread channel adds a read of its parent channel, whose permissions the thread takes
|
|
257
|
+
*
|
|
258
|
+
* This always reads remotely without consulting local caches. Its deadline covers the whole composition, but the
|
|
259
|
+
* resulting observations are not transactional and do not establish access, hierarchy, timeouts, or action success
|
|
260
|
+
*/
|
|
261
|
+
export function fetchPermissions(owner, target, options) {
|
|
262
|
+
// Reading and validating the caller target and options is marked as application input
|
|
263
|
+
return suspendInput(() => {
|
|
264
|
+
const targetSnapshot = validateTarget(target);
|
|
265
|
+
if (targetSnapshot instanceof InputValidationFailure)
|
|
266
|
+
return Effect.fail(inputFailure("permissions.fetch", targetSnapshot));
|
|
267
|
+
const validatedOptions = validateOptions(options);
|
|
268
|
+
if (validatedOptions instanceof InputValidationFailure)
|
|
269
|
+
return Effect.fail(inputFailure("permissions.fetch", validatedOptions));
|
|
270
|
+
const timedOut = () => Effect.fail(timeoutFailure());
|
|
271
|
+
return Effect.gen(function* () {
|
|
272
|
+
const now = () => owner.logical.now();
|
|
273
|
+
const deadline = now() + (validatedOptions.timeoutMs ?? owner.defaultTimeoutMs ?? 30_000);
|
|
274
|
+
const requestOptions = () => remainingOptions(deadline, now);
|
|
275
|
+
const guildOptions = requestOptions();
|
|
276
|
+
if (!guildOptions)
|
|
277
|
+
return yield* timedOut();
|
|
278
|
+
const guild = yield* owner.guild("guilds.fetch", () => guildFetch(targetSnapshot.guildId), guildOptions);
|
|
279
|
+
const memberOptions = requestOptions();
|
|
280
|
+
if (!memberOptions)
|
|
281
|
+
return yield* timedOut();
|
|
282
|
+
const member = yield* owner.guild("members.fetch", () => memberFetch(targetSnapshot), memberOptions);
|
|
283
|
+
const roleOptions = requestOptions();
|
|
284
|
+
if (!roleOptions)
|
|
285
|
+
return yield* timedOut();
|
|
286
|
+
const roles = yield* owner.guild("roles.fetchAll", () => roleList(targetSnapshot.guildId), roleOptions);
|
|
287
|
+
let channel;
|
|
288
|
+
const channelId = targetSnapshot.channelId;
|
|
289
|
+
if (channelId !== undefined) {
|
|
290
|
+
const channelOptions = requestOptions();
|
|
291
|
+
if (!channelOptions)
|
|
292
|
+
return yield* timedOut();
|
|
293
|
+
channel = yield* owner.channel("channels.fetch", () => channelFetch(channelId), channelOptions);
|
|
294
|
+
}
|
|
295
|
+
// A thread takes its permissions from its parent channel, read under the same deadline
|
|
296
|
+
let parentChannel;
|
|
297
|
+
if (isThreadChannel(channel)) {
|
|
298
|
+
const parentId = channel.parentId;
|
|
299
|
+
const parentOptions = requestOptions();
|
|
300
|
+
if (!parentOptions)
|
|
301
|
+
return yield* timedOut();
|
|
302
|
+
parentChannel = yield* owner.channel("channels.fetch", () => channelFetch(parentId), parentOptions);
|
|
303
|
+
}
|
|
304
|
+
return yield* calculatePermissions({
|
|
305
|
+
guild,
|
|
306
|
+
member,
|
|
307
|
+
roles,
|
|
308
|
+
...(channel === undefined ? {} : { channel }),
|
|
309
|
+
...(parentChannel === undefined ? {} : { parentChannel }),
|
|
310
|
+
}).pipe(Effect.mapError(remoteCalculationFailure));
|
|
311
|
+
});
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
//# sourceMappingURL=permissions.js.map
|