@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,874 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Guild channel operations: Request validation and encoding, with REST and gateway channel data projected by
|
|
3
|
+
* [channel decoding](/projects/sdk/src/internal/channel-decode.ts).
|
|
4
|
+
* Invariant: Guild and channel routes use separate rate-limit groups while sharing global limits and cleanup, omitted permission
|
|
5
|
+
* overwrites stay distinct from an explicit empty list through input encoding, and channel deletion or visibility loss evicts
|
|
6
|
+
* related cached messages without synthesizing message events or changing collector completion. Implements [SDK contracts: Delivery, requests and caches](/docs/SDK-CONTRACTS.md#delivery-requests-and-caches)
|
|
7
|
+
*/
|
|
8
|
+
import {
|
|
9
|
+
ChannelFlags,
|
|
10
|
+
ChannelType,
|
|
11
|
+
ForumLayout,
|
|
12
|
+
ForumSortOrder,
|
|
13
|
+
ThreadAutoArchiveMinutes,
|
|
14
|
+
type ChannelCreate,
|
|
15
|
+
type ChannelEdit,
|
|
16
|
+
type ChannelFollowInput,
|
|
17
|
+
type ChannelFollowerStats,
|
|
18
|
+
type FollowedChannel,
|
|
19
|
+
type ForumTagInput,
|
|
20
|
+
type ChannelPosition,
|
|
21
|
+
type GuildChannel,
|
|
22
|
+
type GuildForumChannel,
|
|
23
|
+
type GuildMediaChannel,
|
|
24
|
+
type PermissionOverwrite,
|
|
25
|
+
} from "#sdk/channels"
|
|
26
|
+
import { InputValidationFailure, inputValidationFailure, unsupportedKeyFailure } from "#sdk/input-validation"
|
|
27
|
+
import type { EncodedBody } from "./attachments.js"
|
|
28
|
+
import { decodeGuildChannel, decodeGuildChannels, url } from "./channel-decode.js"
|
|
29
|
+
import { count as nonNegativeInt32, fieldsOnce, identifier, int32, record } from "./decode/primitives.js"
|
|
30
|
+
import { channelName, normalizedText, rawText } from "./field-text.js"
|
|
31
|
+
|
|
32
|
+
/** Validated request description, with the shared REST owner retaining admission, cleanup and rate state */
|
|
33
|
+
export interface ChannelRequest<A> {
|
|
34
|
+
/** Scheduler major resource, the guild for guild routes and otherwise the channel */
|
|
35
|
+
readonly majorId: string
|
|
36
|
+
readonly bucket: string
|
|
37
|
+
readonly path: string
|
|
38
|
+
readonly method: "GET" | "POST" | "PATCH" | "PUT" | "DELETE"
|
|
39
|
+
readonly status: 200 | 201 | 204
|
|
40
|
+
readonly json?: string
|
|
41
|
+
/** A JSON body with attachment files, sent inline as multipart form data instead of json */
|
|
42
|
+
readonly body?: EncodedBody
|
|
43
|
+
/** Allows the shared REST owner to validate and send an operation audit reason */
|
|
44
|
+
readonly audited?: true
|
|
45
|
+
/** Private client capabilities required for one explicit provider-gated replacement */
|
|
46
|
+
readonly features?: readonly string[]
|
|
47
|
+
readonly decode: (value: unknown) => A | undefined
|
|
48
|
+
/** Decodes an HTTP 202 response, for a route that answers 202 instead of status while its result is not ready */
|
|
49
|
+
readonly accepted?: (value: unknown) => A | undefined
|
|
50
|
+
/**
|
|
51
|
+
* Cache ownership hints consumed by the channel cache owner. Only a mutation, whose result the cache never stores, or
|
|
52
|
+
* a request whose result is one channel or a list of channels may carry them
|
|
53
|
+
*/
|
|
54
|
+
readonly cache?: {
|
|
55
|
+
readonly channelId?: string
|
|
56
|
+
readonly guildId?: string
|
|
57
|
+
readonly mutation?: boolean
|
|
58
|
+
readonly replace?: boolean
|
|
59
|
+
/**
|
|
60
|
+
* The result is one thread or a list of threads. A mutation changes only the thread named by channelId, or
|
|
61
|
+
* creates a thread when channelId is absent
|
|
62
|
+
*/
|
|
63
|
+
readonly thread?: boolean
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
type ChannelValidationResult<A> = ChannelRequest<A> | InputValidationFailure
|
|
68
|
+
|
|
69
|
+
const maxWritablePermission = 9_223_372_036_854_775_807n
|
|
70
|
+
const maxRequestBytes = 4_194_304
|
|
71
|
+
|
|
72
|
+
const nullableIdentifier = (value: unknown): value is string | null => value === null || identifier(value)
|
|
73
|
+
const writablePermission = (value: unknown): value is bigint =>
|
|
74
|
+
typeof value === "bigint" && value >= 0n && value <= maxWritablePermission
|
|
75
|
+
|
|
76
|
+
function nullableValue(value: unknown, guard: (candidate: unknown) => boolean): boolean {
|
|
77
|
+
return value === null || guard(value)
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const threadDefaultKeys = ["defaultAutoArchiveMinutes", "defaultThreadRateLimitPerUser"]
|
|
81
|
+
const forumSettingKeys = ["availableTags", "defaultReactionEmoji", "defaultSortOrder", "defaultTagSetting", "flags"]
|
|
82
|
+
/** Fluxer's limit on the tags of one forum or media channel */
|
|
83
|
+
const maxForumTags = 20
|
|
84
|
+
const forumTopicMaxLength = 4096
|
|
85
|
+
const textTopicMaxLength = 1024
|
|
86
|
+
const threadAutoArchiveValues: readonly unknown[] = Object.values(ThreadAutoArchiveMinutes)
|
|
87
|
+
const forumSortOrderValues: readonly unknown[] = Object.values(ForumSortOrder)
|
|
88
|
+
const forumLayoutValues: readonly unknown[] = Object.values(ForumLayout)
|
|
89
|
+
const forumFlagBits = ChannelFlags.RequireTag
|
|
90
|
+
const mediaFlagBits = ChannelFlags.RequireTag | ChannelFlags.HideMediaDownloadOptions
|
|
91
|
+
|
|
92
|
+
function validateOptionalFields(input: Record<string, unknown>, create: boolean): true | InputValidationFailure {
|
|
93
|
+
// A created channel's type selects which thread and forum settings it can have. An edit cannot tell the type of
|
|
94
|
+
// the channel, so it accepts every setting and leaves the type check to Fluxer
|
|
95
|
+
const type = input.type
|
|
96
|
+
const threadParent =
|
|
97
|
+
type === ChannelType.Text ||
|
|
98
|
+
type === ChannelType.Announcement ||
|
|
99
|
+
type === ChannelType.Forum ||
|
|
100
|
+
type === ChannelType.Media
|
|
101
|
+
const forumParent = type === ChannelType.Forum || type === ChannelType.Media
|
|
102
|
+
const allowed = create
|
|
103
|
+
? [
|
|
104
|
+
"type",
|
|
105
|
+
"name",
|
|
106
|
+
"topic",
|
|
107
|
+
"url",
|
|
108
|
+
"parentId",
|
|
109
|
+
"bitrate",
|
|
110
|
+
"userLimit",
|
|
111
|
+
"voiceConnectionLimit",
|
|
112
|
+
"permissionOverwrites",
|
|
113
|
+
"nsfw",
|
|
114
|
+
"nsfwOverride",
|
|
115
|
+
"contentWarningLevel",
|
|
116
|
+
"contentWarningText",
|
|
117
|
+
"rateLimitPerUser",
|
|
118
|
+
...(threadParent ? threadDefaultKeys : []),
|
|
119
|
+
...(forumParent ? forumSettingKeys : []),
|
|
120
|
+
...(type === ChannelType.Forum ? ["defaultForumLayout"] : []),
|
|
121
|
+
]
|
|
122
|
+
: [
|
|
123
|
+
"type",
|
|
124
|
+
"name",
|
|
125
|
+
"topic",
|
|
126
|
+
"url",
|
|
127
|
+
"bitrate",
|
|
128
|
+
"userLimit",
|
|
129
|
+
"voiceConnectionLimit",
|
|
130
|
+
"nsfw",
|
|
131
|
+
"nsfwOverride",
|
|
132
|
+
"contentWarningLevel",
|
|
133
|
+
"contentWarningText",
|
|
134
|
+
"rateLimitPerUser",
|
|
135
|
+
"permissionOverwrites",
|
|
136
|
+
"rtcRegion",
|
|
137
|
+
...threadDefaultKeys,
|
|
138
|
+
...forumSettingKeys,
|
|
139
|
+
"defaultForumLayout",
|
|
140
|
+
]
|
|
141
|
+
const unsupported = unsupportedKeyFailure(
|
|
142
|
+
input,
|
|
143
|
+
allowed,
|
|
144
|
+
"input",
|
|
145
|
+
create ? "the channel create input" : "the channel edit input",
|
|
146
|
+
)
|
|
147
|
+
if (unsupported) return unsupported
|
|
148
|
+
if (
|
|
149
|
+
create &&
|
|
150
|
+
type !== 0 &&
|
|
151
|
+
type !== 2 &&
|
|
152
|
+
type !== 4 &&
|
|
153
|
+
type !== 5 &&
|
|
154
|
+
type !== ChannelType.Forum &&
|
|
155
|
+
type !== ChannelType.Media &&
|
|
156
|
+
type !== 998
|
|
157
|
+
)
|
|
158
|
+
return inputValidationFailure(
|
|
159
|
+
"type",
|
|
160
|
+
"allowedValue",
|
|
161
|
+
"Channel type must be 0 (Text), 2 (Voice), 4 (Category), 5 (Announcement), 15 (Forum), 16 (Media), or 998 (Link)",
|
|
162
|
+
)
|
|
163
|
+
if (
|
|
164
|
+
!create &&
|
|
165
|
+
input.type !== undefined &&
|
|
166
|
+
input.type !== ChannelType.Text &&
|
|
167
|
+
input.type !== ChannelType.Announcement
|
|
168
|
+
)
|
|
169
|
+
return inputValidationFailure(
|
|
170
|
+
"type",
|
|
171
|
+
"allowedValue",
|
|
172
|
+
"Channel conversion type must be 0 (Text) or 5 (Announcement)",
|
|
173
|
+
)
|
|
174
|
+
if (create && input.name === undefined)
|
|
175
|
+
return inputValidationFailure("name", "required", "Channel name is required")
|
|
176
|
+
if (input.name !== undefined && !channelName(input.name))
|
|
177
|
+
return inputValidationFailure(
|
|
178
|
+
"name",
|
|
179
|
+
"length",
|
|
180
|
+
"Channel name must contain 1 through 100 UTF-16 code units after Fluxer's normalization, and at most 10,000 before it",
|
|
181
|
+
)
|
|
182
|
+
// Forum and media channels allow a longer topic. An edit cannot tell the channel's type, so Fluxer checks the
|
|
183
|
+
// text limit there
|
|
184
|
+
const topicMaxLength = forumParent || !create ? forumTopicMaxLength : textTopicMaxLength
|
|
185
|
+
if (
|
|
186
|
+
input.topic !== undefined &&
|
|
187
|
+
!nullableValue(input.topic, (candidate) => normalizedText(candidate, 1, topicMaxLength))
|
|
188
|
+
)
|
|
189
|
+
return inputValidationFailure(
|
|
190
|
+
"topic",
|
|
191
|
+
"length",
|
|
192
|
+
`Channel topic must be null or contain 1 through ${topicMaxLength.toLocaleString("en-US")} UTF-16 code units after Fluxer's normalization`,
|
|
193
|
+
)
|
|
194
|
+
if (input.url !== undefined && !nullableValue(input.url, url))
|
|
195
|
+
return inputValidationFailure("url", "format", "Channel URL must be null or a valid absolute URL")
|
|
196
|
+
if (input.parentId !== undefined && !nullableIdentifier(input.parentId))
|
|
197
|
+
return inputValidationFailure("parentId", "format", "Channel parentId must be null or a decimal string")
|
|
198
|
+
if (
|
|
199
|
+
input.bitrate !== undefined &&
|
|
200
|
+
!nullableValue(input.bitrate, (candidate) => int32(candidate) && candidate >= 8_000 && candidate <= 384_000)
|
|
201
|
+
)
|
|
202
|
+
return inputValidationFailure(
|
|
203
|
+
"bitrate",
|
|
204
|
+
"range",
|
|
205
|
+
"Channel bitrate must be null or an integer from 8,000 through 384,000 bits per second",
|
|
206
|
+
)
|
|
207
|
+
if (
|
|
208
|
+
input.userLimit !== undefined &&
|
|
209
|
+
!nullableValue(input.userLimit, (candidate) => int32(candidate) && candidate >= 0 && candidate <= 99)
|
|
210
|
+
)
|
|
211
|
+
return inputValidationFailure(
|
|
212
|
+
"userLimit",
|
|
213
|
+
"range",
|
|
214
|
+
"Channel userLimit must be null or an integer from 0 through 99",
|
|
215
|
+
)
|
|
216
|
+
if (
|
|
217
|
+
input.voiceConnectionLimit !== undefined &&
|
|
218
|
+
!nullableValue(
|
|
219
|
+
input.voiceConnectionLimit,
|
|
220
|
+
(candidate) => int32(candidate) && candidate >= 1 && candidate <= 100,
|
|
221
|
+
)
|
|
222
|
+
)
|
|
223
|
+
return inputValidationFailure(
|
|
224
|
+
"voiceConnectionLimit",
|
|
225
|
+
"range",
|
|
226
|
+
"Channel voiceConnectionLimit must be null or an integer from 1 through 100",
|
|
227
|
+
)
|
|
228
|
+
if (input.nsfw !== undefined && !(typeof input.nsfw === "boolean" || (!create && input.nsfw === null)))
|
|
229
|
+
return inputValidationFailure("nsfw", "type", "Channel nsfw must be boolean, or null when editing")
|
|
230
|
+
if (input.nsfwOverride !== undefined && !(typeof input.nsfwOverride === "boolean" || input.nsfwOverride === null))
|
|
231
|
+
return inputValidationFailure("nsfwOverride", "type", "Channel nsfwOverride must be boolean or null")
|
|
232
|
+
if (input.contentWarningLevel !== undefined && input.contentWarningLevel !== 0 && input.contentWarningLevel !== 1)
|
|
233
|
+
return inputValidationFailure(
|
|
234
|
+
"contentWarningLevel",
|
|
235
|
+
"allowedValue",
|
|
236
|
+
"Channel contentWarningLevel must be 0 or 1",
|
|
237
|
+
)
|
|
238
|
+
if (
|
|
239
|
+
input.contentWarningText !== undefined &&
|
|
240
|
+
!nullableValue(input.contentWarningText, (candidate) => rawText(candidate, 0, 200))
|
|
241
|
+
)
|
|
242
|
+
return inputValidationFailure(
|
|
243
|
+
"contentWarningText",
|
|
244
|
+
"length",
|
|
245
|
+
"Channel contentWarningText must be null or contain at most 200 raw UTF-16 code units",
|
|
246
|
+
)
|
|
247
|
+
if (
|
|
248
|
+
input.rateLimitPerUser !== undefined &&
|
|
249
|
+
!nullableValue(input.rateLimitPerUser, (candidate) => int32(candidate) && candidate >= 0 && candidate <= 21_600)
|
|
250
|
+
)
|
|
251
|
+
return inputValidationFailure(
|
|
252
|
+
"rateLimitPerUser",
|
|
253
|
+
"range",
|
|
254
|
+
"Channel rateLimitPerUser must be null or an integer from 0 through 21,600 seconds",
|
|
255
|
+
)
|
|
256
|
+
if (
|
|
257
|
+
input.rtcRegion !== undefined &&
|
|
258
|
+
!nullableValue(input.rtcRegion, (candidate) => normalizedText(candidate, 1, 64))
|
|
259
|
+
)
|
|
260
|
+
return inputValidationFailure(
|
|
261
|
+
"rtcRegion",
|
|
262
|
+
"length",
|
|
263
|
+
"Channel rtcRegion must be null or contain 1 through 64 UTF-16 code units after Fluxer's normalization",
|
|
264
|
+
)
|
|
265
|
+
if (
|
|
266
|
+
input.defaultAutoArchiveMinutes !== undefined &&
|
|
267
|
+
!nullableValue(input.defaultAutoArchiveMinutes, (candidate) => threadAutoArchiveValues.includes(candidate))
|
|
268
|
+
)
|
|
269
|
+
return inputValidationFailure(
|
|
270
|
+
"defaultAutoArchiveMinutes",
|
|
271
|
+
"allowedValue",
|
|
272
|
+
"Channel defaultAutoArchiveMinutes must be null, or 60, 1440, 4320 or 10080 minutes",
|
|
273
|
+
)
|
|
274
|
+
if (
|
|
275
|
+
input.defaultThreadRateLimitPerUser !== undefined &&
|
|
276
|
+
!nullableValue(
|
|
277
|
+
input.defaultThreadRateLimitPerUser,
|
|
278
|
+
(candidate) => int32(candidate) && candidate >= 0 && candidate <= 21_600,
|
|
279
|
+
)
|
|
280
|
+
)
|
|
281
|
+
return inputValidationFailure(
|
|
282
|
+
"defaultThreadRateLimitPerUser",
|
|
283
|
+
"range",
|
|
284
|
+
"Channel defaultThreadRateLimitPerUser must be null or an integer from 0 through 21,600 seconds",
|
|
285
|
+
)
|
|
286
|
+
if (
|
|
287
|
+
input.defaultSortOrder !== undefined &&
|
|
288
|
+
!nullableValue(input.defaultSortOrder, (candidate) => forumSortOrderValues.includes(candidate))
|
|
289
|
+
)
|
|
290
|
+
return inputValidationFailure(
|
|
291
|
+
"defaultSortOrder",
|
|
292
|
+
"allowedValue",
|
|
293
|
+
"Channel defaultSortOrder must be null, 0 (latest activity) or 1 (creation time)",
|
|
294
|
+
)
|
|
295
|
+
if (
|
|
296
|
+
input.defaultForumLayout !== undefined &&
|
|
297
|
+
!nullableValue(input.defaultForumLayout, (candidate) => forumLayoutValues.includes(candidate))
|
|
298
|
+
)
|
|
299
|
+
return inputValidationFailure(
|
|
300
|
+
"defaultForumLayout",
|
|
301
|
+
"allowedValue",
|
|
302
|
+
"Channel defaultForumLayout must be null, 0 (default), 1 (list) or 2 (grid)",
|
|
303
|
+
)
|
|
304
|
+
if (
|
|
305
|
+
input.defaultTagSetting !== undefined &&
|
|
306
|
+
input.defaultTagSetting !== null &&
|
|
307
|
+
input.defaultTagSetting !== "match_some" &&
|
|
308
|
+
input.defaultTagSetting !== "match_all"
|
|
309
|
+
)
|
|
310
|
+
return inputValidationFailure(
|
|
311
|
+
"defaultTagSetting",
|
|
312
|
+
"allowedValue",
|
|
313
|
+
'Channel defaultTagSetting must be null, "match_some" or "match_all"',
|
|
314
|
+
)
|
|
315
|
+
if (input.flags !== undefined) {
|
|
316
|
+
// A created forum channel can set only the bits that its own type allows. An edit accepts the bits of either
|
|
317
|
+
// type, because Fluxer checks them against the channel it edits
|
|
318
|
+
const settable = create && type === ChannelType.Forum ? forumFlagBits : mediaFlagBits
|
|
319
|
+
if (!int32(input.flags) || input.flags < 0 || (input.flags & ~settable) !== 0)
|
|
320
|
+
return inputValidationFailure(
|
|
321
|
+
"flags",
|
|
322
|
+
"allowedValue",
|
|
323
|
+
create && type === ChannelType.Forum
|
|
324
|
+
? "Channel flags must be a nonnegative integer that sets only ChannelFlags.RequireTag on a forum channel"
|
|
325
|
+
: "Channel flags must be a nonnegative integer that sets only ChannelFlags.RequireTag or ChannelFlags.HideMediaDownloadOptions",
|
|
326
|
+
)
|
|
327
|
+
}
|
|
328
|
+
return true
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
/**
|
|
332
|
+
* Encode one forum tag, reading each field once. The `listed` argument is true for an entry of a channel's tag list, and allowId is
|
|
333
|
+
* false where an ID is certain to fail, which is the tag list of a new channel because it has no tags. The single-tag
|
|
334
|
+
* routes accept an ID so that a received tag is valid input, and their callers keep it out of the body
|
|
335
|
+
*/
|
|
336
|
+
function encodeForumTag(
|
|
337
|
+
value: unknown,
|
|
338
|
+
listed: boolean,
|
|
339
|
+
allowId: boolean,
|
|
340
|
+
): Record<string, string | boolean | null> | InputValidationFailure {
|
|
341
|
+
const container = listed ? "availableTags[]" : "input"
|
|
342
|
+
const field = (name: string) => (listed ? `availableTags[].${name}` : name)
|
|
343
|
+
if (!record(value)) return inputValidationFailure(container, "type", "A forum tag must be an object")
|
|
344
|
+
const unsupported = unsupportedKeyFailure(
|
|
345
|
+
value,
|
|
346
|
+
allowId ? ["id", "name", "moderated", "emojiId", "emojiName"] : ["name", "moderated", "emojiId", "emojiName"],
|
|
347
|
+
container,
|
|
348
|
+
listed ? "a forum tag list entry" : "the forum tag input",
|
|
349
|
+
)
|
|
350
|
+
if (unsupported) return unsupported
|
|
351
|
+
const read = fieldsOnce(value)
|
|
352
|
+
const id = read("id")
|
|
353
|
+
const name = read("name")
|
|
354
|
+
const moderated = read("moderated")
|
|
355
|
+
const emojiId = read("emojiId")
|
|
356
|
+
const emojiName = read("emojiName")
|
|
357
|
+
if (id !== undefined && !identifier(id))
|
|
358
|
+
return inputValidationFailure(field("id"), "format", "Forum tag IDs must be decimal strings")
|
|
359
|
+
if (name === undefined) return inputValidationFailure(field("name"), "required", "A forum tag needs a name")
|
|
360
|
+
if (!normalizedText(name, 1, 50))
|
|
361
|
+
return inputValidationFailure(
|
|
362
|
+
field("name"),
|
|
363
|
+
"length",
|
|
364
|
+
"Forum tag name must contain 1 through 50 UTF-16 code units after Fluxer's normalization",
|
|
365
|
+
)
|
|
366
|
+
if (moderated !== undefined && typeof moderated !== "boolean")
|
|
367
|
+
return inputValidationFailure(field("moderated"), "type", "Forum tag moderated must be boolean")
|
|
368
|
+
const emoji = encodeEmoji(emojiId, emojiName, field, container)
|
|
369
|
+
if (emoji instanceof InputValidationFailure) return emoji
|
|
370
|
+
return {
|
|
371
|
+
...(id === undefined ? {} : { id }),
|
|
372
|
+
name,
|
|
373
|
+
...(moderated === undefined ? {} : { moderated }),
|
|
374
|
+
...emoji,
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
/** Validate and encode the emoji pair of a forum tag or a default reaction, where at most one of the two may be set */
|
|
379
|
+
function encodeEmoji(
|
|
380
|
+
emojiId: unknown,
|
|
381
|
+
emojiName: unknown,
|
|
382
|
+
path: (field: string) => string,
|
|
383
|
+
container: string,
|
|
384
|
+
): Record<string, string | null> | InputValidationFailure {
|
|
385
|
+
if (emojiId !== undefined && !nullableIdentifier(emojiId))
|
|
386
|
+
return inputValidationFailure(path("emojiId"), "format", "Emoji IDs must be null or decimal strings")
|
|
387
|
+
if (emojiName !== undefined && !(emojiName === null || normalizedText(emojiName, 1, 64)))
|
|
388
|
+
return inputValidationFailure(
|
|
389
|
+
path("emojiName"),
|
|
390
|
+
"length",
|
|
391
|
+
"An emoji name must be null or contain 1 through 64 UTF-16 code units after Fluxer's normalization",
|
|
392
|
+
)
|
|
393
|
+
if (emojiId != null && emojiName != null)
|
|
394
|
+
return inputValidationFailure(container, "relationship", "Set at most one of emojiId and emojiName")
|
|
395
|
+
return {
|
|
396
|
+
...(emojiId === undefined ? {} : { emoji_id: emojiId }),
|
|
397
|
+
...(emojiName === undefined ? {} : { emoji_name: emojiName }),
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
function encodeForumTags(
|
|
402
|
+
value: unknown,
|
|
403
|
+
allowId: boolean,
|
|
404
|
+
): readonly Record<string, string | boolean | null>[] | InputValidationFailure {
|
|
405
|
+
if (!Array.isArray(value))
|
|
406
|
+
return inputValidationFailure("availableTags", "type", "Forum channel availableTags must be an array")
|
|
407
|
+
if (value.length > maxForumTags)
|
|
408
|
+
return inputValidationFailure("availableTags", "length", "A forum channel can have at most 20 tags")
|
|
409
|
+
const tags: Array<Record<string, string | boolean | null>> = []
|
|
410
|
+
for (const item of value) {
|
|
411
|
+
const tag = encodeForumTag(item, true, allowId)
|
|
412
|
+
if (tag instanceof InputValidationFailure) return tag
|
|
413
|
+
tags.push(tag)
|
|
414
|
+
}
|
|
415
|
+
return tags
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
function encodeDefaultReaction(value: unknown): Record<string, string | null> | null | InputValidationFailure {
|
|
419
|
+
if (value === null) return null
|
|
420
|
+
if (!record(value))
|
|
421
|
+
return inputValidationFailure(
|
|
422
|
+
"defaultReactionEmoji",
|
|
423
|
+
"type",
|
|
424
|
+
"Channel defaultReactionEmoji must be null or an object",
|
|
425
|
+
)
|
|
426
|
+
const unsupported = unsupportedKeyFailure(
|
|
427
|
+
value,
|
|
428
|
+
["emojiId", "emojiName"],
|
|
429
|
+
"defaultReactionEmoji",
|
|
430
|
+
"the default reaction",
|
|
431
|
+
)
|
|
432
|
+
if (unsupported) return unsupported
|
|
433
|
+
const read = fieldsOnce(value)
|
|
434
|
+
return encodeEmoji(
|
|
435
|
+
read("emojiId"),
|
|
436
|
+
read("emojiName"),
|
|
437
|
+
(field) => `defaultReactionEmoji.${field}`,
|
|
438
|
+
"defaultReactionEmoji",
|
|
439
|
+
)
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
function encodeOverwrites(value: unknown): readonly Record<string, string | number>[] | InputValidationFailure {
|
|
443
|
+
if (!Array.isArray(value))
|
|
444
|
+
return inputValidationFailure("permissionOverwrites", "type", "Permission overwrites must be an array")
|
|
445
|
+
const overwrites: Array<Record<string, string | number>> = []
|
|
446
|
+
const ids = new Set<string>()
|
|
447
|
+
for (const item of value) {
|
|
448
|
+
if (!record(item))
|
|
449
|
+
return inputValidationFailure("permissionOverwrites[]", "type", "Permission overwrites must be objects")
|
|
450
|
+
const unsupported = unsupportedKeyFailure(
|
|
451
|
+
item,
|
|
452
|
+
["id", "type", "allow", "deny"],
|
|
453
|
+
"permissionOverwrites[]",
|
|
454
|
+
"A permission overwrite",
|
|
455
|
+
)
|
|
456
|
+
if (unsupported) return unsupported
|
|
457
|
+
if (!identifier(item.id))
|
|
458
|
+
return inputValidationFailure(
|
|
459
|
+
"permissionOverwrites[].id",
|
|
460
|
+
"format",
|
|
461
|
+
"Permission overwrite IDs must be decimal strings",
|
|
462
|
+
)
|
|
463
|
+
if (ids.has(item.id))
|
|
464
|
+
return inputValidationFailure(
|
|
465
|
+
"permissionOverwrites[].id",
|
|
466
|
+
"unique",
|
|
467
|
+
"Permission overwrite IDs must be unique",
|
|
468
|
+
)
|
|
469
|
+
if (item.type !== "role" && item.type !== "member")
|
|
470
|
+
return inputValidationFailure(
|
|
471
|
+
"permissionOverwrites[].type",
|
|
472
|
+
"allowedValue",
|
|
473
|
+
"Permission overwrite type must be role or member",
|
|
474
|
+
)
|
|
475
|
+
if (!writablePermission(item.allow))
|
|
476
|
+
return inputValidationFailure(
|
|
477
|
+
"permissionOverwrites[].allow",
|
|
478
|
+
"range",
|
|
479
|
+
"Permission overwrite allow must be a bigint from 0 through 9,223,372,036,854,775,807",
|
|
480
|
+
)
|
|
481
|
+
if (!writablePermission(item.deny))
|
|
482
|
+
return inputValidationFailure(
|
|
483
|
+
"permissionOverwrites[].deny",
|
|
484
|
+
"range",
|
|
485
|
+
"Permission overwrite deny must be a bigint from 0 through 9,223,372,036,854,775,807",
|
|
486
|
+
)
|
|
487
|
+
ids.add(item.id)
|
|
488
|
+
overwrites.push({
|
|
489
|
+
id: item.id,
|
|
490
|
+
type: item.type === "role" ? 0 : 1,
|
|
491
|
+
allow: item.allow.toString(),
|
|
492
|
+
deny: item.deny.toString(),
|
|
493
|
+
})
|
|
494
|
+
}
|
|
495
|
+
return overwrites
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
function channelBody(input: ChannelCreate | ChannelEdit, create: boolean): string | InputValidationFailure {
|
|
499
|
+
if (!record(input)) return inputValidationFailure("input", "type", "Channel input must be an object")
|
|
500
|
+
const validated = validateOptionalFields(input, create)
|
|
501
|
+
if (validated instanceof InputValidationFailure) return validated
|
|
502
|
+
const permissionOverwrites =
|
|
503
|
+
input.permissionOverwrites === undefined ? undefined : encodeOverwrites(input.permissionOverwrites)
|
|
504
|
+
if (permissionOverwrites instanceof InputValidationFailure) return permissionOverwrites
|
|
505
|
+
const availableTags = input.availableTags === undefined ? undefined : encodeForumTags(input.availableTags, !create)
|
|
506
|
+
if (availableTags instanceof InputValidationFailure) return availableTags
|
|
507
|
+
const defaultReaction =
|
|
508
|
+
input.defaultReactionEmoji === undefined ? undefined : encodeDefaultReaction(input.defaultReactionEmoji)
|
|
509
|
+
if (defaultReaction instanceof InputValidationFailure) return defaultReaction
|
|
510
|
+
const body = {
|
|
511
|
+
...(input.type === undefined ? {} : { type: input.type }),
|
|
512
|
+
...(input.name === undefined ? {} : { name: input.name }),
|
|
513
|
+
...(input.topic === undefined ? {} : { topic: input.topic }),
|
|
514
|
+
...(input.url === undefined ? {} : { url: input.url }),
|
|
515
|
+
...(create && input.parentId !== undefined ? { parent_id: input.parentId } : {}),
|
|
516
|
+
...(input.bitrate === undefined ? {} : { bitrate: input.bitrate }),
|
|
517
|
+
...(input.userLimit === undefined ? {} : { user_limit: input.userLimit }),
|
|
518
|
+
...(input.voiceConnectionLimit === undefined ? {} : { voice_connection_limit: input.voiceConnectionLimit }),
|
|
519
|
+
...(permissionOverwrites === undefined ? {} : { permission_overwrites: permissionOverwrites }),
|
|
520
|
+
...(input.nsfw === undefined ? {} : { nsfw: input.nsfw }),
|
|
521
|
+
...(input.nsfwOverride === undefined ? {} : { nsfw_override: input.nsfwOverride }),
|
|
522
|
+
...(input.contentWarningLevel === undefined ? {} : { content_warning_level: input.contentWarningLevel }),
|
|
523
|
+
...(input.contentWarningText === undefined ? {} : { content_warning_text: input.contentWarningText }),
|
|
524
|
+
...(input.rateLimitPerUser === undefined ? {} : { rate_limit_per_user: input.rateLimitPerUser }),
|
|
525
|
+
...(!create && input.rtcRegion !== undefined ? { rtc_region: input.rtcRegion } : {}),
|
|
526
|
+
...(input.defaultAutoArchiveMinutes === undefined
|
|
527
|
+
? {}
|
|
528
|
+
: { default_auto_archive_duration: input.defaultAutoArchiveMinutes }),
|
|
529
|
+
...(input.defaultThreadRateLimitPerUser === undefined
|
|
530
|
+
? {}
|
|
531
|
+
: { default_thread_rate_limit_per_user: input.defaultThreadRateLimitPerUser }),
|
|
532
|
+
...(availableTags === undefined ? {} : { available_tags: availableTags }),
|
|
533
|
+
...(defaultReaction === undefined ? {} : { default_reaction_emoji: defaultReaction }),
|
|
534
|
+
...(input.defaultSortOrder === undefined ? {} : { default_sort_order: input.defaultSortOrder }),
|
|
535
|
+
...(input.defaultForumLayout === undefined ? {} : { default_forum_layout: input.defaultForumLayout }),
|
|
536
|
+
...(input.defaultTagSetting === undefined ? {} : { default_tag_setting: input.defaultTagSetting }),
|
|
537
|
+
...(input.flags === undefined ? {} : { flags: input.flags }),
|
|
538
|
+
}
|
|
539
|
+
const json = JSON.stringify(body)
|
|
540
|
+
if (json === "{}") return inputValidationFailure("input", "required", "Channel edit must contain a change")
|
|
541
|
+
return Buffer.byteLength(json) > maxRequestBytes
|
|
542
|
+
? inputValidationFailure("input", "size", "Channel input must not exceed 4,194,304 encoded bytes")
|
|
543
|
+
: json
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
export function channelFetch(channelId: string): ChannelValidationResult<GuildChannel> {
|
|
547
|
+
if (!identifier(channelId))
|
|
548
|
+
return inputValidationFailure("channelId", "format", "Channel IDs must be decimal strings")
|
|
549
|
+
return {
|
|
550
|
+
majorId: channelId,
|
|
551
|
+
bucket: "channel:read",
|
|
552
|
+
path: `/channels/${channelId}`,
|
|
553
|
+
method: "GET",
|
|
554
|
+
status: 200,
|
|
555
|
+
cache: { channelId },
|
|
556
|
+
decode: (value) => {
|
|
557
|
+
const channel = decodeGuildChannel(value)
|
|
558
|
+
return channel?.id === channelId ? channel : undefined
|
|
559
|
+
},
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
export function channelFollow(channelId: string, input: ChannelFollowInput): ChannelValidationResult<FollowedChannel> {
|
|
564
|
+
if (!identifier(channelId))
|
|
565
|
+
return inputValidationFailure("channelId", "format", "Channel IDs must be decimal strings")
|
|
566
|
+
if (!record(input)) return inputValidationFailure("input", "type", "Channel follow input must be an object")
|
|
567
|
+
const unsupported = unsupportedKeyFailure(input, ["targetChannelId"], "input", "the channel follow input")
|
|
568
|
+
if (unsupported) return unsupported
|
|
569
|
+
const targetChannelId = input.targetChannelId
|
|
570
|
+
if (!identifier(targetChannelId))
|
|
571
|
+
return inputValidationFailure("targetChannelId", "format", "Target channel IDs must be decimal strings")
|
|
572
|
+
return {
|
|
573
|
+
majorId: channelId,
|
|
574
|
+
bucket: "channel:follow",
|
|
575
|
+
audited: true,
|
|
576
|
+
path: `/channels/${channelId}/followers`,
|
|
577
|
+
method: "POST",
|
|
578
|
+
status: 200,
|
|
579
|
+
json: JSON.stringify({ webhook_channel_id: targetChannelId }),
|
|
580
|
+
cache: { channelId: targetChannelId, mutation: true },
|
|
581
|
+
decode: (value) =>
|
|
582
|
+
record(value) && value.channel_id === channelId && identifier(value.webhook_id)
|
|
583
|
+
? Object.freeze({ channelId, webhookId: value.webhook_id })
|
|
584
|
+
: undefined,
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
export function channelFollowerStats(channelId: string): ChannelValidationResult<ChannelFollowerStats> {
|
|
589
|
+
if (!identifier(channelId))
|
|
590
|
+
return inputValidationFailure("channelId", "format", "Channel IDs must be decimal strings")
|
|
591
|
+
return {
|
|
592
|
+
majorId: channelId,
|
|
593
|
+
bucket: "channel:follower_stats",
|
|
594
|
+
path: `/channels/${channelId}/follower-stats`,
|
|
595
|
+
method: "GET",
|
|
596
|
+
status: 200,
|
|
597
|
+
decode: (value) =>
|
|
598
|
+
record(value) && nonNegativeInt32(value.channel_count) && nonNegativeInt32(value.guild_count)
|
|
599
|
+
? Object.freeze({ channelCount: value.channel_count, guildCount: value.guild_count })
|
|
600
|
+
: undefined,
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
export function channelList(guildId: string): ChannelValidationResult<readonly GuildChannel[]> {
|
|
605
|
+
if (!identifier(guildId)) return inputValidationFailure("guildId", "format", "Guild IDs must be decimal strings")
|
|
606
|
+
return {
|
|
607
|
+
majorId: guildId,
|
|
608
|
+
bucket: "guild:channels:list",
|
|
609
|
+
path: `/guilds/${guildId}/channels`,
|
|
610
|
+
method: "GET",
|
|
611
|
+
status: 200,
|
|
612
|
+
cache: { guildId, replace: true },
|
|
613
|
+
decode: (value) => decodeGuildChannels(value, guildId),
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
export function channelCreate(guildId: string, input: ChannelCreate): ChannelValidationResult<GuildChannel> {
|
|
618
|
+
if (!identifier(guildId)) return inputValidationFailure("guildId", "format", "Guild IDs must be decimal strings")
|
|
619
|
+
const json = channelBody(input, true)
|
|
620
|
+
if (json instanceof InputValidationFailure) return json
|
|
621
|
+
return {
|
|
622
|
+
majorId: guildId,
|
|
623
|
+
bucket: "guild:channel:create",
|
|
624
|
+
audited: true,
|
|
625
|
+
path: `/guilds/${guildId}/channels`,
|
|
626
|
+
method: "POST",
|
|
627
|
+
status: 200,
|
|
628
|
+
json,
|
|
629
|
+
...(input.permissionOverwrites === undefined ? {} : { features: ["view_channel_members_permission"] }),
|
|
630
|
+
cache: { guildId, mutation: true },
|
|
631
|
+
decode: (value) => {
|
|
632
|
+
const channel = decodeGuildChannel(value)
|
|
633
|
+
return channel?.guildId === guildId ? channel : undefined
|
|
634
|
+
},
|
|
635
|
+
}
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
export function channelEdit(channelId: string, input: ChannelEdit): ChannelValidationResult<GuildChannel> {
|
|
639
|
+
if (!identifier(channelId))
|
|
640
|
+
return inputValidationFailure("channelId", "format", "Channel IDs must be decimal strings")
|
|
641
|
+
const json = channelBody(input, false)
|
|
642
|
+
if (json instanceof InputValidationFailure) return json
|
|
643
|
+
return {
|
|
644
|
+
majorId: channelId,
|
|
645
|
+
bucket: "channel:update",
|
|
646
|
+
audited: true,
|
|
647
|
+
path: `/channels/${channelId}`,
|
|
648
|
+
method: "PATCH",
|
|
649
|
+
status: 200,
|
|
650
|
+
json,
|
|
651
|
+
...(input.permissionOverwrites === undefined ? {} : { features: ["view_channel_members_permission"] }),
|
|
652
|
+
cache: { channelId, mutation: true },
|
|
653
|
+
decode: (value) => {
|
|
654
|
+
const channel = decodeGuildChannel(value)
|
|
655
|
+
return channel?.id === channelId ? channel : undefined
|
|
656
|
+
},
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
function forumTagRequest(
|
|
661
|
+
channelId: string,
|
|
662
|
+
tagId: string | undefined,
|
|
663
|
+
method: "POST" | "PUT" | "DELETE",
|
|
664
|
+
json?: string,
|
|
665
|
+
): ChannelRequest<GuildForumChannel | GuildMediaChannel> {
|
|
666
|
+
return {
|
|
667
|
+
majorId: channelId,
|
|
668
|
+
bucket: "channel:forum_tags",
|
|
669
|
+
audited: true,
|
|
670
|
+
path: tagId === undefined ? `/channels/${channelId}/tags` : `/channels/${channelId}/tags/${tagId}`,
|
|
671
|
+
method,
|
|
672
|
+
status: 200,
|
|
673
|
+
...(json === undefined ? {} : { json }),
|
|
674
|
+
cache: { channelId, mutation: true },
|
|
675
|
+
// Fluxer answers with the updated channel, so any other shape is a malformed response
|
|
676
|
+
decode: (value) => {
|
|
677
|
+
const channel = decodeGuildChannel(value)
|
|
678
|
+
return channel?.id === channelId &&
|
|
679
|
+
(channel.type === ChannelType.Forum || channel.type === ChannelType.Media)
|
|
680
|
+
? channel
|
|
681
|
+
: undefined
|
|
682
|
+
},
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
export function forumTagCreate(
|
|
687
|
+
channelId: string,
|
|
688
|
+
input: ForumTagInput,
|
|
689
|
+
): ChannelValidationResult<GuildForumChannel | GuildMediaChannel> {
|
|
690
|
+
if (!identifier(channelId))
|
|
691
|
+
return inputValidationFailure("channelId", "format", "Channel IDs must be decimal strings")
|
|
692
|
+
const tag = encodeForumTag(input, false, true)
|
|
693
|
+
if (tag instanceof InputValidationFailure) return tag
|
|
694
|
+
// Fluxer assigns the ID of a new tag, so a received tag's own ID is dropped instead of sent
|
|
695
|
+
const { id: _ignored, ...body } = tag
|
|
696
|
+
return forumTagRequest(channelId, undefined, "POST", JSON.stringify(body))
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
export function forumTagEdit(
|
|
700
|
+
channelId: string,
|
|
701
|
+
tagId: string,
|
|
702
|
+
input: ForumTagInput,
|
|
703
|
+
): ChannelValidationResult<GuildForumChannel | GuildMediaChannel> {
|
|
704
|
+
if (!identifier(channelId))
|
|
705
|
+
return inputValidationFailure("channelId", "format", "Channel IDs must be decimal strings")
|
|
706
|
+
if (!identifier(tagId)) return inputValidationFailure("tagId", "format", "Forum tag IDs must be decimal strings")
|
|
707
|
+
const tag = encodeForumTag(input, false, true)
|
|
708
|
+
if (tag instanceof InputValidationFailure) return tag
|
|
709
|
+
// The route names the tag, and Fluxer would ignore another ID in the body, so a different one is a mistake
|
|
710
|
+
const { id, ...body } = tag
|
|
711
|
+
if (id !== undefined && id !== tagId)
|
|
712
|
+
return inputValidationFailure("id", "relationship", "A forum tag's id must equal the tagId argument")
|
|
713
|
+
return forumTagRequest(channelId, tagId, "PUT", JSON.stringify(body))
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
export function forumTagDelete(
|
|
717
|
+
channelId: string,
|
|
718
|
+
tagId: string,
|
|
719
|
+
): ChannelValidationResult<GuildForumChannel | GuildMediaChannel> {
|
|
720
|
+
if (!identifier(channelId))
|
|
721
|
+
return inputValidationFailure("channelId", "format", "Channel IDs must be decimal strings")
|
|
722
|
+
if (!identifier(tagId)) return inputValidationFailure("tagId", "format", "Forum tag IDs must be decimal strings")
|
|
723
|
+
return forumTagRequest(channelId, tagId, "DELETE")
|
|
724
|
+
}
|
|
725
|
+
|
|
726
|
+
export function channelDelete(channelId: string): ChannelValidationResult<void> {
|
|
727
|
+
if (!identifier(channelId))
|
|
728
|
+
return inputValidationFailure("channelId", "format", "Channel IDs must be decimal strings")
|
|
729
|
+
return {
|
|
730
|
+
majorId: channelId,
|
|
731
|
+
bucket: "channel:delete",
|
|
732
|
+
audited: true,
|
|
733
|
+
path: `/channels/${channelId}`,
|
|
734
|
+
method: "DELETE",
|
|
735
|
+
status: 204,
|
|
736
|
+
cache: { channelId, mutation: true },
|
|
737
|
+
decode: () => undefined,
|
|
738
|
+
}
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
function channelPositionBody(positions: readonly ChannelPosition[]): string | InputValidationFailure {
|
|
742
|
+
if (!Array.isArray(positions))
|
|
743
|
+
return inputValidationFailure("positions", "type", "Channel positions must be an array")
|
|
744
|
+
if (positions.length === 0)
|
|
745
|
+
return inputValidationFailure("positions", "length", "Channel positions must contain at least one entry")
|
|
746
|
+
const ids = new Set<string>()
|
|
747
|
+
const updates: Array<Record<string, string | number | boolean | null>> = []
|
|
748
|
+
let bytes = 2
|
|
749
|
+
for (const item of positions) {
|
|
750
|
+
const unsupported = record(item)
|
|
751
|
+
? unsupportedKeyFailure(
|
|
752
|
+
item,
|
|
753
|
+
["id", "position", "parentId", "precedingSiblingId", "syncPermissionsOnMove"],
|
|
754
|
+
"positions[]",
|
|
755
|
+
"a channel position entry",
|
|
756
|
+
)
|
|
757
|
+
: undefined
|
|
758
|
+
if (unsupported) return unsupported
|
|
759
|
+
if (
|
|
760
|
+
!record(item) ||
|
|
761
|
+
!identifier(item.id) ||
|
|
762
|
+
ids.has(item.id) ||
|
|
763
|
+
(item.position !== undefined &&
|
|
764
|
+
(typeof item.position !== "number" || !Number.isSafeInteger(item.position) || item.position < 0)) ||
|
|
765
|
+
(item.parentId !== undefined && !nullableIdentifier(item.parentId)) ||
|
|
766
|
+
(item.precedingSiblingId !== undefined && !nullableIdentifier(item.precedingSiblingId)) ||
|
|
767
|
+
(item.syncPermissionsOnMove !== undefined && typeof item.syncPermissionsOnMove !== "boolean")
|
|
768
|
+
)
|
|
769
|
+
return inputValidationFailure(
|
|
770
|
+
"positions[]",
|
|
771
|
+
"format",
|
|
772
|
+
"Each channel position entry must be an object with a unique decimal id, and may also contain only position (a nonnegative integer), parentId and precedingSiblingId (decimal IDs or null), and syncPermissionsOnMove (a boolean)",
|
|
773
|
+
)
|
|
774
|
+
const update = {
|
|
775
|
+
id: item.id,
|
|
776
|
+
...(item.position === undefined ? {} : { position: item.position }),
|
|
777
|
+
...(item.parentId === undefined ? {} : { parent_id: item.parentId }),
|
|
778
|
+
...(item.precedingSiblingId === undefined ? {} : { preceding_sibling_id: item.precedingSiblingId }),
|
|
779
|
+
...(item.syncPermissionsOnMove === undefined ? {} : { lock_permissions: item.syncPermissionsOnMove }),
|
|
780
|
+
}
|
|
781
|
+
bytes += Buffer.byteLength(JSON.stringify(update)) + (updates.length ? 1 : 0)
|
|
782
|
+
if (bytes > maxRequestBytes)
|
|
783
|
+
return inputValidationFailure(
|
|
784
|
+
"positions",
|
|
785
|
+
"size",
|
|
786
|
+
"Channel positions must not exceed 4,194,304 encoded bytes",
|
|
787
|
+
)
|
|
788
|
+
ids.add(item.id)
|
|
789
|
+
updates.push(update)
|
|
790
|
+
}
|
|
791
|
+
return JSON.stringify(updates)
|
|
792
|
+
}
|
|
793
|
+
|
|
794
|
+
export function channelReorder(guildId: string, positions: readonly ChannelPosition[]): ChannelValidationResult<void> {
|
|
795
|
+
if (!identifier(guildId)) return inputValidationFailure("guildId", "format", "Guild IDs must be decimal strings")
|
|
796
|
+
const json = channelPositionBody(positions)
|
|
797
|
+
if (json instanceof InputValidationFailure) return json
|
|
798
|
+
return {
|
|
799
|
+
majorId: guildId,
|
|
800
|
+
bucket: "guild:channel:positions",
|
|
801
|
+
audited: true,
|
|
802
|
+
path: `/guilds/${guildId}/channels`,
|
|
803
|
+
method: "PATCH",
|
|
804
|
+
status: 204,
|
|
805
|
+
json,
|
|
806
|
+
cache: { guildId, mutation: true },
|
|
807
|
+
decode: () => undefined,
|
|
808
|
+
}
|
|
809
|
+
}
|
|
810
|
+
|
|
811
|
+
function permissionSetBody(input: PermissionOverwrite): string | InputValidationFailure {
|
|
812
|
+
const unsupported = record(input)
|
|
813
|
+
? unsupportedKeyFailure(
|
|
814
|
+
input,
|
|
815
|
+
["id", "type", "allow", "deny"],
|
|
816
|
+
"permissionOverwrite",
|
|
817
|
+
"the permission overwrite",
|
|
818
|
+
)
|
|
819
|
+
: undefined
|
|
820
|
+
if (unsupported) return unsupported
|
|
821
|
+
if (
|
|
822
|
+
!record(input) ||
|
|
823
|
+
!identifier(input.id) ||
|
|
824
|
+
(input.type !== "role" && input.type !== "member") ||
|
|
825
|
+
!writablePermission(input.allow) ||
|
|
826
|
+
!writablePermission(input.deny)
|
|
827
|
+
)
|
|
828
|
+
return inputValidationFailure(
|
|
829
|
+
"permissionOverwrite",
|
|
830
|
+
"format",
|
|
831
|
+
"Permission overwrite requires a decimal ID, role or member type, and allow and deny values from 0 through 9,223,372,036,854,775,807",
|
|
832
|
+
)
|
|
833
|
+
return JSON.stringify({
|
|
834
|
+
type: input.type === "role" ? 0 : 1,
|
|
835
|
+
allow: input.allow.toString(),
|
|
836
|
+
deny: input.deny.toString(),
|
|
837
|
+
})
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
export function permissionSet(channelId: string, input: PermissionOverwrite): ChannelValidationResult<void> {
|
|
841
|
+
if (!identifier(channelId))
|
|
842
|
+
return inputValidationFailure("channelId", "format", "Channel IDs must be decimal strings")
|
|
843
|
+
const json = permissionSetBody(input)
|
|
844
|
+
if (json instanceof InputValidationFailure) return json
|
|
845
|
+
return {
|
|
846
|
+
majorId: channelId,
|
|
847
|
+
bucket: "channel:update",
|
|
848
|
+
audited: true,
|
|
849
|
+
path: `/channels/${channelId}/permissions/${input.id}`,
|
|
850
|
+
method: "PUT",
|
|
851
|
+
status: 204,
|
|
852
|
+
json,
|
|
853
|
+
features: ["view_channel_members_permission"],
|
|
854
|
+
cache: { channelId, mutation: true },
|
|
855
|
+
decode: () => undefined,
|
|
856
|
+
}
|
|
857
|
+
}
|
|
858
|
+
|
|
859
|
+
export function permissionRemove(channelId: string, targetId: string): ChannelValidationResult<void> {
|
|
860
|
+
if (!identifier(channelId))
|
|
861
|
+
return inputValidationFailure("channelId", "format", "Channel IDs must be decimal strings")
|
|
862
|
+
if (!identifier(targetId))
|
|
863
|
+
return inputValidationFailure("targetId", "format", "Permission target IDs must be decimal strings")
|
|
864
|
+
return {
|
|
865
|
+
majorId: channelId,
|
|
866
|
+
bucket: "channel:update",
|
|
867
|
+
audited: true,
|
|
868
|
+
path: `/channels/${channelId}/permissions/${targetId}`,
|
|
869
|
+
method: "DELETE",
|
|
870
|
+
status: 204,
|
|
871
|
+
cache: { channelId, mutation: true },
|
|
872
|
+
decode: () => undefined,
|
|
873
|
+
}
|
|
874
|
+
}
|