@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,879 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Message encoding, projection and reference snapshots for the message operations that REST schedules.
|
|
3
|
+
* Invariant: Fetch, edit and delete reuse REST admission with provisional route groups, learned buckets and shared global limits,
|
|
4
|
+
* and their failures stay separate from the send and reply delivery contract. Repeated deletion or a missing target never proves a
|
|
5
|
+
* prior operation succeeded. History pages are explicit requests, independent of cache reads and gateway events. Implements [SDK contracts: Delivery, requests and caches](/docs/SDK-CONTRACTS.md#delivery-requests-and-caches)
|
|
6
|
+
*/
|
|
7
|
+
import { EmbedBuilder } from "#sdk/builders"
|
|
8
|
+
import { MessageFlags } from "#sdk/messages"
|
|
9
|
+
import type {
|
|
10
|
+
Message,
|
|
11
|
+
CrosspostSource,
|
|
12
|
+
CrosspostSourceGuild,
|
|
13
|
+
MessageInput,
|
|
14
|
+
MessageReference,
|
|
15
|
+
MessageDeletion,
|
|
16
|
+
MessageBulkDeletion,
|
|
17
|
+
MessageUser,
|
|
18
|
+
MessageChannelMention,
|
|
19
|
+
MessageReactionSummary,
|
|
20
|
+
MessageContextReference,
|
|
21
|
+
MessageSnapshot,
|
|
22
|
+
MessageSticker,
|
|
23
|
+
MessageField,
|
|
24
|
+
ReferencedMessage,
|
|
25
|
+
} from "#sdk/messages"
|
|
26
|
+
import type { MessageObservation } from "./message-fields.js"
|
|
27
|
+
import { MessageError } from "#sdk/message-errors"
|
|
28
|
+
import { InputValidationFailure, inputValidationFailure, unsupportedKeyFailure } from "#sdk/input-validation"
|
|
29
|
+
import { decodeEmbeds, encodeEmbeds } from "./embeds.js"
|
|
30
|
+
import { decodeAttachments, encodeAttachments, type EncodedBody } from "./attachments.js"
|
|
31
|
+
import { decodeThread } from "./channel-decode.js"
|
|
32
|
+
import { count, fieldsOnce, identifier, int32, record } from "./decode/primitives.js"
|
|
33
|
+
import { timestamp } from "./decode/timestamp.js"
|
|
34
|
+
|
|
35
|
+
const writableMessageFlags = MessageFlags.SuppressEmbeds | MessageFlags.SuppressNotifications
|
|
36
|
+
const writableFlags = (value: unknown): value is number =>
|
|
37
|
+
typeof value === "number" &&
|
|
38
|
+
Number.isSafeInteger(value) &&
|
|
39
|
+
value >= 0 &&
|
|
40
|
+
value <= 2_147_483_647 &&
|
|
41
|
+
(value & ~writableMessageFlags) === 0
|
|
42
|
+
|
|
43
|
+
/** Decode the public source snapshot separately from Guild so it cannot enter the guild cache */
|
|
44
|
+
export function decodeCrosspostSource(value: unknown): CrosspostSource | undefined {
|
|
45
|
+
if (!record(value) || !record(value.guild)) return undefined
|
|
46
|
+
const guild = value.guild
|
|
47
|
+
if (
|
|
48
|
+
!identifier(guild.id) ||
|
|
49
|
+
typeof guild.name !== "string" ||
|
|
50
|
+
(guild.description !== null && typeof guild.description !== "string") ||
|
|
51
|
+
!Array.isArray(guild.features) ||
|
|
52
|
+
(guild.approximate_member_count !== null && !count(guild.approximate_member_count)) ||
|
|
53
|
+
(guild.approximate_presence_count !== null && !count(guild.approximate_presence_count)) ||
|
|
54
|
+
typeof guild.discoverable !== "boolean" ||
|
|
55
|
+
(guild.icon !== undefined && guild.icon !== null && typeof guild.icon !== "string") ||
|
|
56
|
+
(guild.banner !== undefined && guild.banner !== null && typeof guild.banner !== "string")
|
|
57
|
+
)
|
|
58
|
+
return undefined
|
|
59
|
+
const features: Array<CrosspostSourceGuild["features"][number]> = []
|
|
60
|
+
for (const feature of guild.features) {
|
|
61
|
+
if (typeof feature !== "string") return undefined
|
|
62
|
+
features.push(feature)
|
|
63
|
+
}
|
|
64
|
+
return Object.freeze({
|
|
65
|
+
guild: Object.freeze({
|
|
66
|
+
id: guild.id,
|
|
67
|
+
name: guild.name,
|
|
68
|
+
description: guild.description,
|
|
69
|
+
features: Object.freeze(features),
|
|
70
|
+
approximateMemberCount: guild.approximate_member_count,
|
|
71
|
+
approximatePresenceCount: guild.approximate_presence_count,
|
|
72
|
+
discoverable: guild.discoverable,
|
|
73
|
+
...(guild.icon === undefined ? {} : { icon: guild.icon }),
|
|
74
|
+
...(guild.banner === undefined ? {} : { banner: guild.banner }),
|
|
75
|
+
}),
|
|
76
|
+
})
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export function decodeMessage(value: unknown): Message | undefined
|
|
80
|
+
export function decodeMessage(
|
|
81
|
+
value: unknown,
|
|
82
|
+
fields: ReadonlySet<MessageField> | undefined,
|
|
83
|
+
): MessageObservation | undefined
|
|
84
|
+
/** Selection changes construction only. Every recognized wire field keeps the full decoder's validation rules */
|
|
85
|
+
export function decodeMessage(value: unknown, fields?: ReadonlySet<MessageField>): MessageObservation | undefined {
|
|
86
|
+
const decoded = decodeMessageValue(value, fields, true, true)
|
|
87
|
+
return decoded === true ? undefined : decoded
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function decodeMessageValue(
|
|
91
|
+
value: unknown,
|
|
92
|
+
fields: ReadonlySet<MessageField> | undefined,
|
|
93
|
+
allowReferencedMessage: boolean,
|
|
94
|
+
construct: boolean,
|
|
95
|
+
): MessageObservation | true | undefined {
|
|
96
|
+
if (!record(value) || !identifier(value.id) || !identifier(value.channel_id) || typeof value.content !== "string")
|
|
97
|
+
return undefined
|
|
98
|
+
if (
|
|
99
|
+
(value.pinned !== undefined && typeof value.pinned !== "boolean") ||
|
|
100
|
+
(value.tts !== undefined && typeof value.tts !== "boolean") ||
|
|
101
|
+
(value.timestamp !== undefined && !timestamp(value.timestamp)) ||
|
|
102
|
+
(value.edited_timestamp !== undefined &&
|
|
103
|
+
value.edited_timestamp !== null &&
|
|
104
|
+
!timestamp(value.edited_timestamp)) ||
|
|
105
|
+
(value.type !== undefined && !int32(value.type)) ||
|
|
106
|
+
(value.flags !== undefined && !int32(value.flags)) ||
|
|
107
|
+
(value.guild_id !== undefined && !identifier(value.guild_id)) ||
|
|
108
|
+
(value.mention_everyone !== undefined && typeof value.mention_everyone !== "boolean") ||
|
|
109
|
+
(value.nonce !== undefined && value.nonce !== null && typeof value.nonce !== "string")
|
|
110
|
+
)
|
|
111
|
+
return undefined
|
|
112
|
+
if (value.webhook_id != null && !identifier(value.webhook_id)) return undefined
|
|
113
|
+
const author = decodeMessageUser(value.author, construct)
|
|
114
|
+
if (!author) return undefined
|
|
115
|
+
const selected = (field: MessageField) => construct && (fields === undefined || fields.has(field))
|
|
116
|
+
const embeds = decodeEmbeds(value.embeds, selected("embeds"))
|
|
117
|
+
const attachments = decodeAttachments(value.attachments, selected("attachments"))
|
|
118
|
+
const stickers = decodeStickers(value.stickers, selected("stickers"))
|
|
119
|
+
if (embeds === undefined || attachments === undefined || stickers === undefined) return undefined
|
|
120
|
+
const mentions = decodeMentions(value.mentions, selected("mentions"))
|
|
121
|
+
const referencedUsers = decodeReferencedUsers(value.users, selected("referencedUsers"))
|
|
122
|
+
const mentionRoles = decodeIdentifiers(value.mention_roles, selected("mentionRoleIds"))
|
|
123
|
+
const nsfwEmojiIds = decodeIdentifiers(value.nsfw_emojis, selected("nsfwEmojiIds"))
|
|
124
|
+
const mentionChannels = decodeMentionChannels(value.mention_channels, selected("mentionChannels"))
|
|
125
|
+
const reactions = decodeReactionSummaries(value.reactions, selected("reactions"))
|
|
126
|
+
const messageReference = decodeMessageReference(value.message_reference, selected("messageReference"))
|
|
127
|
+
const messageSnapshots = decodeMessageSnapshots(value.message_snapshots, selected("messageSnapshots"))
|
|
128
|
+
const referencedMessage = allowReferencedMessage
|
|
129
|
+
? decodeReferencedMessage(value.referenced_message, selected("referencedMessage"))
|
|
130
|
+
: "referenced_message" in value
|
|
131
|
+
? undefined
|
|
132
|
+
: unobserved
|
|
133
|
+
if (
|
|
134
|
+
mentions === undefined ||
|
|
135
|
+
referencedUsers === undefined ||
|
|
136
|
+
mentionRoles === undefined ||
|
|
137
|
+
nsfwEmojiIds === undefined ||
|
|
138
|
+
mentionChannels === undefined ||
|
|
139
|
+
reactions === undefined ||
|
|
140
|
+
messageReference === undefined ||
|
|
141
|
+
messageSnapshots === undefined ||
|
|
142
|
+
referencedMessage === undefined
|
|
143
|
+
)
|
|
144
|
+
return undefined
|
|
145
|
+
const thread = value.thread === undefined ? undefined : decodeThread(value.thread)
|
|
146
|
+
if (value.thread !== undefined && thread === undefined) return undefined
|
|
147
|
+
if (!construct) return true
|
|
148
|
+
return Object.freeze({
|
|
149
|
+
id: value.id,
|
|
150
|
+
channelId: value.channel_id,
|
|
151
|
+
content: value.content,
|
|
152
|
+
...(!selected("nonce") || value.nonce === undefined ? {} : { nonce: value.nonce }),
|
|
153
|
+
...(!selected("webhookId") || value.webhook_id == null ? {} : { webhookId: value.webhook_id }),
|
|
154
|
+
...(!selected("pinned") || value.pinned === undefined ? {} : { pinned: value.pinned }),
|
|
155
|
+
...(!selected("tts") || value.tts === undefined ? {} : { tts: value.tts }),
|
|
156
|
+
...(!selected("createdAt") || value.timestamp === undefined ? {} : { createdAt: value.timestamp }),
|
|
157
|
+
...(!selected("editedAt") || value.edited_timestamp === undefined ? {} : { editedAt: value.edited_timestamp }),
|
|
158
|
+
...(value.type === undefined ? {} : { type: value.type }),
|
|
159
|
+
...(!selected("flags") || value.flags === undefined ? {} : { flags: value.flags }),
|
|
160
|
+
...(value.guild_id === undefined ? {} : { guildId: value.guild_id }),
|
|
161
|
+
...(!selected("mentionedEveryone") || value.mention_everyone === undefined
|
|
162
|
+
? {}
|
|
163
|
+
: { mentionedEveryone: value.mention_everyone }),
|
|
164
|
+
...(embeds === true ? {} : { embeds }),
|
|
165
|
+
...(attachments === true ? {} : { attachments }),
|
|
166
|
+
...(stickers === true ? {} : { stickers }),
|
|
167
|
+
...(mentions.value === undefined ? {} : { mentions: mentions.value }),
|
|
168
|
+
...(referencedUsers.value === undefined ? {} : { referencedUsers: referencedUsers.value }),
|
|
169
|
+
...(mentionRoles.value === undefined ? {} : { mentionRoleIds: mentionRoles.value }),
|
|
170
|
+
...(nsfwEmojiIds.value === undefined ? {} : { nsfwEmojiIds: nsfwEmojiIds.value }),
|
|
171
|
+
...(mentionChannels.value === undefined ? {} : { mentionChannels: mentionChannels.value }),
|
|
172
|
+
...(reactions.value === undefined ? {} : { reactions: reactions.value }),
|
|
173
|
+
...(messageReference.value === undefined ? {} : { messageReference: messageReference.value }),
|
|
174
|
+
...(messageSnapshots.value === undefined ? {} : { messageSnapshots: messageSnapshots.value }),
|
|
175
|
+
...(referencedMessage.value === undefined ? {} : { referencedMessage: referencedMessage.value }),
|
|
176
|
+
...(!selected("thread") || thread === undefined ? {} : { thread }),
|
|
177
|
+
author: author as MessageUser,
|
|
178
|
+
})
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
type Observed<A> = { readonly value: A | undefined }
|
|
182
|
+
const unobserved: Observed<never> = Object.freeze({ value: undefined })
|
|
183
|
+
|
|
184
|
+
function decodeStickers(value: unknown, construct = true): readonly MessageSticker[] | true | undefined {
|
|
185
|
+
if (value === undefined || value === null) return construct ? Object.freeze([]) : true
|
|
186
|
+
const rawStickers = value
|
|
187
|
+
if (!Array.isArray(rawStickers)) return undefined
|
|
188
|
+
const stickers: MessageSticker[] | undefined = construct ? [] : undefined
|
|
189
|
+
for (const sticker of rawStickers) {
|
|
190
|
+
if (
|
|
191
|
+
!record(sticker) ||
|
|
192
|
+
!identifier(sticker.id) ||
|
|
193
|
+
typeof sticker.name !== "string" ||
|
|
194
|
+
typeof sticker.animated !== "boolean"
|
|
195
|
+
)
|
|
196
|
+
return undefined
|
|
197
|
+
if (stickers) stickers.push(Object.freeze({ id: sticker.id, name: sticker.name, animated: sticker.animated }))
|
|
198
|
+
}
|
|
199
|
+
return stickers ? Object.freeze(stickers) : true
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
function decodeMessageUser(value: unknown, construct = true): MessageUser | true | undefined {
|
|
203
|
+
if (
|
|
204
|
+
!record(value) ||
|
|
205
|
+
!identifier(value.id) ||
|
|
206
|
+
typeof value.username !== "string" ||
|
|
207
|
+
(value.discriminator !== undefined && typeof value.discriminator !== "string") ||
|
|
208
|
+
(value.global_name !== undefined && value.global_name !== null && typeof value.global_name !== "string") ||
|
|
209
|
+
(value.avatar !== undefined && value.avatar !== null && typeof value.avatar !== "string") ||
|
|
210
|
+
(value.avatar_color !== undefined && value.avatar_color !== null && !int32(value.avatar_color)) ||
|
|
211
|
+
(value.bot !== undefined && typeof value.bot !== "boolean") ||
|
|
212
|
+
(value.system !== undefined && typeof value.system !== "boolean") ||
|
|
213
|
+
(value.flags !== undefined && !int32(value.flags)) ||
|
|
214
|
+
(value.mention_flags !== undefined &&
|
|
215
|
+
value.mention_flags !== 0 &&
|
|
216
|
+
value.mention_flags !== 1 &&
|
|
217
|
+
value.mention_flags !== 2)
|
|
218
|
+
)
|
|
219
|
+
return undefined
|
|
220
|
+
if (!construct) return true
|
|
221
|
+
return Object.freeze({
|
|
222
|
+
id: value.id,
|
|
223
|
+
username: value.username,
|
|
224
|
+
isBot: value.bot === true,
|
|
225
|
+
...(value.discriminator === undefined ? {} : { discriminator: value.discriminator }),
|
|
226
|
+
...(value.global_name === undefined ? {} : { displayName: value.global_name }),
|
|
227
|
+
...(value.avatar === undefined ? {} : { avatar: value.avatar }),
|
|
228
|
+
...(value.avatar_color === undefined ? {} : { avatarColor: value.avatar_color }),
|
|
229
|
+
...(value.system === undefined ? {} : { isSystem: value.system }),
|
|
230
|
+
...(value.flags === undefined ? {} : { flags: value.flags }),
|
|
231
|
+
...(value.mention_flags === undefined ? {} : { mentionFlags: value.mention_flags as 0 | 1 | 2 }),
|
|
232
|
+
})
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
function decodeMessageUsers(value: unknown, construct = true): Observed<readonly MessageUser[]> | undefined {
|
|
236
|
+
if (value === undefined) return unobserved
|
|
237
|
+
if (!Array.isArray(value)) return undefined
|
|
238
|
+
const users: MessageUser[] | undefined = construct ? [] : undefined
|
|
239
|
+
for (const input of value) {
|
|
240
|
+
const user = decodeMessageUser(input, construct)
|
|
241
|
+
if (!user) return undefined
|
|
242
|
+
if (users && user !== true) users.push(user)
|
|
243
|
+
}
|
|
244
|
+
return users ? { value: Object.freeze(users) } : unobserved
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
function decodeMentions(value: unknown, construct = true): Observed<readonly MessageUser[]> | undefined {
|
|
248
|
+
return decodeMessageUsers(value, construct)
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
function decodeReferencedUsers(value: unknown, construct = true): Observed<readonly MessageUser[] | null> | undefined {
|
|
252
|
+
if (value === null) return construct ? { value: null } : unobserved
|
|
253
|
+
return decodeMessageUsers(value, construct)
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
function decodeIdentifiers(value: unknown, construct = true): Observed<readonly string[]> | undefined {
|
|
257
|
+
if (value === undefined) return unobserved
|
|
258
|
+
if (!Array.isArray(value) || !value.every(identifier)) return undefined
|
|
259
|
+
return construct ? { value: Object.freeze([...value]) } : unobserved
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
function decodeMentionChannels(
|
|
263
|
+
value: unknown,
|
|
264
|
+
construct = true,
|
|
265
|
+
): Observed<readonly MessageChannelMention[] | null> | undefined {
|
|
266
|
+
if (value === undefined) return unobserved
|
|
267
|
+
if (value === null) return construct ? { value: null } : unobserved
|
|
268
|
+
if (!Array.isArray(value)) return undefined
|
|
269
|
+
const channels: MessageChannelMention[] | undefined = construct ? [] : undefined
|
|
270
|
+
for (const channel of value) {
|
|
271
|
+
if (!record(channel) || !identifier(channel.id) || typeof channel.name !== "string" || !int32(channel.type))
|
|
272
|
+
return undefined
|
|
273
|
+
if (channels) channels.push(Object.freeze({ id: channel.id, name: channel.name, type: channel.type }))
|
|
274
|
+
}
|
|
275
|
+
return channels ? { value: Object.freeze(channels) } : unobserved
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
function decodeReactionSummaries(
|
|
279
|
+
value: unknown,
|
|
280
|
+
construct = true,
|
|
281
|
+
): Observed<readonly MessageReactionSummary[] | null> | undefined {
|
|
282
|
+
if (value === undefined) return unobserved
|
|
283
|
+
if (value === null) return construct ? { value: null } : unobserved
|
|
284
|
+
if (!Array.isArray(value)) return undefined
|
|
285
|
+
const reactions: MessageReactionSummary[] | undefined = construct ? [] : undefined
|
|
286
|
+
for (const reaction of value) {
|
|
287
|
+
if (!record(reaction) || !record(reaction.emoji) || !count(reaction.count)) return undefined
|
|
288
|
+
const emoji = reaction.emoji
|
|
289
|
+
if (
|
|
290
|
+
typeof emoji.name !== "string" ||
|
|
291
|
+
(emoji.id !== undefined && emoji.id !== null && !identifier(emoji.id)) ||
|
|
292
|
+
(emoji.animated !== undefined && emoji.animated !== null && typeof emoji.animated !== "boolean") ||
|
|
293
|
+
(reaction.me !== undefined && reaction.me !== null && typeof reaction.me !== "boolean")
|
|
294
|
+
)
|
|
295
|
+
return undefined
|
|
296
|
+
if (reactions)
|
|
297
|
+
reactions.push(
|
|
298
|
+
Object.freeze({
|
|
299
|
+
emoji: Object.freeze({
|
|
300
|
+
name: emoji.name,
|
|
301
|
+
...(emoji.id === undefined ? {} : { id: emoji.id }),
|
|
302
|
+
...(emoji.animated === undefined ? {} : { animated: emoji.animated }),
|
|
303
|
+
}),
|
|
304
|
+
count: reaction.count,
|
|
305
|
+
...(reaction.me === undefined ? {} : { me: reaction.me }),
|
|
306
|
+
}),
|
|
307
|
+
)
|
|
308
|
+
}
|
|
309
|
+
return reactions ? { value: Object.freeze(reactions) } : unobserved
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
function decodeMessageReference(
|
|
313
|
+
value: unknown,
|
|
314
|
+
construct = true,
|
|
315
|
+
): Observed<MessageContextReference | null> | undefined {
|
|
316
|
+
if (value === undefined) return unobserved
|
|
317
|
+
if (value === null) return construct ? { value: null } : unobserved
|
|
318
|
+
if (
|
|
319
|
+
!record(value) ||
|
|
320
|
+
(value.message_id !== undefined && value.message_id !== null && !identifier(value.message_id)) ||
|
|
321
|
+
!identifier(value.channel_id) ||
|
|
322
|
+
(value.guild_id !== undefined && value.guild_id !== null && !identifier(value.guild_id)) ||
|
|
323
|
+
(value.type !== undefined && !int32(value.type))
|
|
324
|
+
)
|
|
325
|
+
return undefined
|
|
326
|
+
if (!construct) return unobserved
|
|
327
|
+
return {
|
|
328
|
+
value: Object.freeze({
|
|
329
|
+
...(value.message_id == null ? {} : { id: value.message_id }),
|
|
330
|
+
channelId: value.channel_id,
|
|
331
|
+
...(value.guild_id === undefined ? {} : { guildId: value.guild_id }),
|
|
332
|
+
...(value.type === undefined ? {} : { type: value.type }),
|
|
333
|
+
}),
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
function decodeMessageSnapshots(
|
|
338
|
+
value: unknown,
|
|
339
|
+
construct = true,
|
|
340
|
+
): Observed<readonly MessageSnapshot[] | null> | undefined {
|
|
341
|
+
if (value === undefined) return unobserved
|
|
342
|
+
if (value === null) return construct ? { value: null } : unobserved
|
|
343
|
+
if (!Array.isArray(value)) return undefined
|
|
344
|
+
const snapshots: MessageSnapshot[] | undefined = construct ? [] : undefined
|
|
345
|
+
for (const snapshot of value) {
|
|
346
|
+
const decoded = decodeMessageSnapshot(snapshot, construct)
|
|
347
|
+
if (!decoded) return undefined
|
|
348
|
+
if (snapshots && decoded !== true) snapshots.push(decoded)
|
|
349
|
+
}
|
|
350
|
+
return snapshots ? { value: Object.freeze(snapshots) } : unobserved
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
function decodeMessageSnapshot(value: unknown, construct = true): MessageSnapshot | true | undefined {
|
|
354
|
+
if (
|
|
355
|
+
!record(value) ||
|
|
356
|
+
!timestamp(value.timestamp) ||
|
|
357
|
+
!int32(value.type) ||
|
|
358
|
+
!int32(value.flags) ||
|
|
359
|
+
(value.content !== undefined && value.content !== null && typeof value.content !== "string") ||
|
|
360
|
+
(value.edited_timestamp !== undefined && value.edited_timestamp !== null && !timestamp(value.edited_timestamp))
|
|
361
|
+
)
|
|
362
|
+
return undefined
|
|
363
|
+
const mentionUserIds = decodeSnapshotField(value.mentions, decodeSnapshotIdentifiers, construct)
|
|
364
|
+
const mentionRoleIds = decodeSnapshotField(value.mention_roles, decodeSnapshotIdentifiers, construct)
|
|
365
|
+
const mentionChannels = decodeSnapshotField(value.mention_channels, decodeSnapshotMentionChannels, construct)
|
|
366
|
+
const embeds = decodeSnapshotField(value.embeds, decodeEmbeds, construct)
|
|
367
|
+
const attachments = decodeSnapshotField(value.attachments, decodeAttachments, construct)
|
|
368
|
+
const stickers = decodeSnapshotField(value.stickers, decodeStickers, construct)
|
|
369
|
+
if (
|
|
370
|
+
mentionUserIds === undefined ||
|
|
371
|
+
mentionRoleIds === undefined ||
|
|
372
|
+
mentionChannels === undefined ||
|
|
373
|
+
embeds === undefined ||
|
|
374
|
+
attachments === undefined ||
|
|
375
|
+
stickers === undefined
|
|
376
|
+
)
|
|
377
|
+
return undefined
|
|
378
|
+
if (!construct) return true
|
|
379
|
+
return Object.freeze({
|
|
380
|
+
...(value.content === undefined ? {} : { content: value.content }),
|
|
381
|
+
createdAt: value.timestamp,
|
|
382
|
+
...(value.edited_timestamp === undefined ? {} : { editedAt: value.edited_timestamp }),
|
|
383
|
+
...(mentionUserIds.value === undefined ? {} : { mentionUserIds: mentionUserIds.value }),
|
|
384
|
+
...(mentionRoleIds.value === undefined ? {} : { mentionRoleIds: mentionRoleIds.value }),
|
|
385
|
+
...(mentionChannels.value === undefined ? {} : { mentionChannels: mentionChannels.value }),
|
|
386
|
+
...(embeds.value === undefined ? {} : { embeds: embeds.value }),
|
|
387
|
+
...(attachments.value === undefined ? {} : { attachments: attachments.value }),
|
|
388
|
+
...(stickers.value === undefined ? {} : { stickers: stickers.value }),
|
|
389
|
+
type: value.type,
|
|
390
|
+
flags: value.flags,
|
|
391
|
+
})
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
function decodeSnapshotField<A>(
|
|
395
|
+
value: unknown,
|
|
396
|
+
decode: (value: unknown, construct: boolean) => A | true | undefined,
|
|
397
|
+
construct: boolean,
|
|
398
|
+
): Observed<A | null> | undefined {
|
|
399
|
+
if (value === undefined) return unobserved
|
|
400
|
+
if (value === null) return construct ? { value: null } : unobserved
|
|
401
|
+
const decoded = decode(value, construct)
|
|
402
|
+
return decoded === undefined ? undefined : decoded === true ? unobserved : { value: decoded }
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
function decodeSnapshotIdentifiers(value: unknown, construct = true): readonly string[] | true | undefined {
|
|
406
|
+
if (!Array.isArray(value) || !value.every(identifier)) return undefined
|
|
407
|
+
return construct ? Object.freeze([...value]) : true
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
function decodeSnapshotMentionChannels(
|
|
411
|
+
value: unknown,
|
|
412
|
+
construct = true,
|
|
413
|
+
): readonly MessageChannelMention[] | true | undefined {
|
|
414
|
+
const decoded = decodeMentionChannels(value, construct)
|
|
415
|
+
if (decoded === undefined) return undefined
|
|
416
|
+
return construct ? (decoded.value ?? undefined) : true
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
function decodeReferencedMessage(value: unknown, construct = true): Observed<ReferencedMessage | null> | undefined {
|
|
420
|
+
if (value === undefined) return unobserved
|
|
421
|
+
if (value === null) return construct ? { value: null } : unobserved
|
|
422
|
+
const message = decodeMessageValue(value, undefined, false, construct)
|
|
423
|
+
if (!message) return undefined
|
|
424
|
+
return construct && message !== true ? { value: message as ReferencedMessage } : unobserved
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
/** Read one message target without retaining a caller-controlled object across validation and dispatch */
|
|
428
|
+
export function snapshotReference(value: unknown): MessageReference | undefined {
|
|
429
|
+
if (!record(value)) return undefined
|
|
430
|
+
const id = value.id
|
|
431
|
+
const channelId = value.channelId
|
|
432
|
+
return identifier(id) && identifier(channelId) ? Object.freeze({ id, channelId }) : undefined
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
export function encodeHistory(channelId: unknown, query: unknown) {
|
|
436
|
+
if (!identifier(channelId))
|
|
437
|
+
return inputValidationFailure("channelId", "format", "Channel IDs must be decimal strings")
|
|
438
|
+
const input = query === undefined ? {} : query
|
|
439
|
+
if (!record(input)) return inputValidationFailure("query", "type", "History query must be an object")
|
|
440
|
+
const unsupported = unsupportedKeyFailure(
|
|
441
|
+
input,
|
|
442
|
+
["limit", "before", "after", "around"],
|
|
443
|
+
"query",
|
|
444
|
+
"the history query",
|
|
445
|
+
)
|
|
446
|
+
if (unsupported) return unsupported
|
|
447
|
+
const limit = input.limit === undefined ? 50 : input.limit
|
|
448
|
+
if (typeof limit !== "number" || !Number.isInteger(limit) || limit < 1 || limit > 100)
|
|
449
|
+
return inputValidationFailure("query.limit", "range", "History limit must be an integer from 1 through 100")
|
|
450
|
+
const cursors = ["before", "after", "around"].filter((key) => input[key] !== undefined)
|
|
451
|
+
if (cursors.length > 1)
|
|
452
|
+
return inputValidationFailure(
|
|
453
|
+
"query",
|
|
454
|
+
"relationship",
|
|
455
|
+
"History query may contain at most one of before, after, and around",
|
|
456
|
+
)
|
|
457
|
+
const params = new URLSearchParams({ limit: String(limit) })
|
|
458
|
+
for (const key of cursors) {
|
|
459
|
+
const id = input[key]
|
|
460
|
+
if (!identifier(id))
|
|
461
|
+
return inputValidationFailure(`query.${key}`, "format", "History cursor IDs must be decimal strings")
|
|
462
|
+
params.set(key, id)
|
|
463
|
+
}
|
|
464
|
+
return { limit, params }
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
export function decodeDeletion(value: unknown): MessageDeletion | undefined {
|
|
468
|
+
if (!record(value) || !identifier(value.id) || !identifier(value.channel_id)) return undefined
|
|
469
|
+
if (value.guild_id !== undefined && !identifier(value.guild_id)) return undefined
|
|
470
|
+
if ("content" in value && value.content !== null && typeof value.content !== "string") return undefined
|
|
471
|
+
if ("author_id" in value && !identifier(value.author_id)) return undefined
|
|
472
|
+
return Object.freeze({
|
|
473
|
+
id: value.id,
|
|
474
|
+
channelId: value.channel_id,
|
|
475
|
+
...(value.guild_id === undefined ? {} : { guildId: value.guild_id as string }),
|
|
476
|
+
...(value.content === null || typeof value.content === "string" ? { content: value.content } : {}),
|
|
477
|
+
...(identifier(value.author_id) ? { authorId: value.author_id } : {}),
|
|
478
|
+
})
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
export function decodeBulkDeletion(value: unknown): MessageBulkDeletion | undefined {
|
|
482
|
+
if (
|
|
483
|
+
!record(value) ||
|
|
484
|
+
!identifier(value.channel_id) ||
|
|
485
|
+
!Array.isArray(value.ids) ||
|
|
486
|
+
!value.ids.every(identifier) ||
|
|
487
|
+
(value.guild_id !== undefined && !identifier(value.guild_id))
|
|
488
|
+
)
|
|
489
|
+
return undefined
|
|
490
|
+
return Object.freeze({
|
|
491
|
+
channelId: value.channel_id,
|
|
492
|
+
ids: Object.freeze([...value.ids]),
|
|
493
|
+
...(value.guild_id === undefined ? {} : { guildId: value.guild_id as string }),
|
|
494
|
+
})
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
const messageInputKeys: readonly string[] = [
|
|
498
|
+
"content",
|
|
499
|
+
"nonce",
|
|
500
|
+
"embeds",
|
|
501
|
+
"attachments",
|
|
502
|
+
"stickerIds",
|
|
503
|
+
"allowedMentions",
|
|
504
|
+
"messageReference",
|
|
505
|
+
"flags",
|
|
506
|
+
"tts",
|
|
507
|
+
]
|
|
508
|
+
|
|
509
|
+
/**
|
|
510
|
+
* Unknown input fields fail before dispatch, and unknown wire response fields are not copied into snapshots.
|
|
511
|
+
* Each top-level input field is read at most once, in validation order, so the validated value is the one sent.
|
|
512
|
+
* A direct message rejects its own messageReference before the other fields are checked
|
|
513
|
+
*/
|
|
514
|
+
export function encodeMessage(
|
|
515
|
+
channelId: unknown,
|
|
516
|
+
input: unknown,
|
|
517
|
+
defaultNonce: string,
|
|
518
|
+
replyTarget?: MessageReference,
|
|
519
|
+
directMessage = false,
|
|
520
|
+
): EncodedBody | MessageError {
|
|
521
|
+
const invalid = (failure: InputValidationFailure) =>
|
|
522
|
+
new MessageError({ reason: "input", outcome: "notDispatched", inputValidation: failure.detail })
|
|
523
|
+
if (!identifier(channelId))
|
|
524
|
+
return invalid(inputValidationFailure("channelId", "format", "Channel IDs must be decimal strings"))
|
|
525
|
+
input = messageObject(input)
|
|
526
|
+
if (!record(input))
|
|
527
|
+
return invalid(inputValidationFailure("input", "type", "Message input must be a string or an object"))
|
|
528
|
+
const field = fieldsOnce(input)
|
|
529
|
+
if (directMessage && field("messageReference") !== undefined)
|
|
530
|
+
return invalid(
|
|
531
|
+
inputValidationFailure(
|
|
532
|
+
"messageReference",
|
|
533
|
+
"relationship",
|
|
534
|
+
"Direct messages cannot include a message reference",
|
|
535
|
+
),
|
|
536
|
+
)
|
|
537
|
+
const unsupported = unsupportedKeyFailure(input, messageInputKeys, "input", "the message input")
|
|
538
|
+
if (unsupported) return invalid(unsupported)
|
|
539
|
+
const nonce = encodeNonce(field("nonce"), defaultNonce)
|
|
540
|
+
if (nonce instanceof InputValidationFailure) return invalid(nonce)
|
|
541
|
+
const attachments = encodeAttachments(field("attachments"), false)
|
|
542
|
+
if (attachments instanceof InputValidationFailure) return invalid(attachments)
|
|
543
|
+
const body = encodeBody(field, attachments.uploadedFilenames)
|
|
544
|
+
if (body instanceof InputValidationFailure) return invalid(body)
|
|
545
|
+
const stickerInput = field("stickerIds")
|
|
546
|
+
let stickerIds: readonly unknown[] | undefined
|
|
547
|
+
if (stickerInput !== undefined) {
|
|
548
|
+
if (!Array.isArray(stickerInput))
|
|
549
|
+
return invalid(inputValidationFailure("stickerIds", "type", "Sticker IDs must be an array"))
|
|
550
|
+
const count = stickerInput.length
|
|
551
|
+
if (count > 3)
|
|
552
|
+
return invalid(
|
|
553
|
+
inputValidationFailure("stickerIds", "length", "A message may contain at most three sticker IDs"),
|
|
554
|
+
)
|
|
555
|
+
stickerIds = snapshotArray(stickerInput, count)
|
|
556
|
+
if (!stickerIds.every(identifier))
|
|
557
|
+
return invalid(inputValidationFailure("stickerIds[]", "format", "Sticker IDs must be decimal strings"))
|
|
558
|
+
}
|
|
559
|
+
const flags = field("flags")
|
|
560
|
+
if (flags !== undefined && !writableFlags(flags))
|
|
561
|
+
return invalid(
|
|
562
|
+
inputValidationFailure(
|
|
563
|
+
"flags",
|
|
564
|
+
"allowedValue",
|
|
565
|
+
"Writable message flags may contain only SuppressEmbeds and SuppressNotifications. Server-managed flags cannot be sent or edited",
|
|
566
|
+
),
|
|
567
|
+
)
|
|
568
|
+
const tts = field("tts")
|
|
569
|
+
if (tts !== undefined && typeof tts !== "boolean")
|
|
570
|
+
return invalid(inputValidationFailure("tts", "type", "Message tts must be a boolean"))
|
|
571
|
+
if (body === undefined)
|
|
572
|
+
return invalid(
|
|
573
|
+
inputValidationFailure(
|
|
574
|
+
"input",
|
|
575
|
+
"required",
|
|
576
|
+
"A message must contain non-empty content, an embed, an attachment, or a sticker",
|
|
577
|
+
),
|
|
578
|
+
)
|
|
579
|
+
const content = field("content")
|
|
580
|
+
if (
|
|
581
|
+
!(typeof content === "string" && content.length > 0) &&
|
|
582
|
+
!body.embeds?.length &&
|
|
583
|
+
!attachments.files.length &&
|
|
584
|
+
!stickerIds?.length
|
|
585
|
+
)
|
|
586
|
+
return invalid(
|
|
587
|
+
inputValidationFailure(
|
|
588
|
+
"input",
|
|
589
|
+
"required",
|
|
590
|
+
"A message must contain non-empty content, an embed, an attachment, or a sticker",
|
|
591
|
+
),
|
|
592
|
+
)
|
|
593
|
+
const mentions = encodeAllowedMentions(field("allowedMentions"))
|
|
594
|
+
if (mentions instanceof InputValidationFailure) return invalid(mentions)
|
|
595
|
+
const rawReference = replyTarget ?? field("messageReference")
|
|
596
|
+
const ref = rawReference === undefined ? undefined : snapshotReference(rawReference)
|
|
597
|
+
if (rawReference !== undefined && ref === undefined)
|
|
598
|
+
return invalid(
|
|
599
|
+
inputValidationFailure(
|
|
600
|
+
"messageReference",
|
|
601
|
+
"format",
|
|
602
|
+
"Message references require decimal id and channelId strings",
|
|
603
|
+
),
|
|
604
|
+
)
|
|
605
|
+
if (ref !== undefined && ref.channelId !== channelId)
|
|
606
|
+
return invalid(
|
|
607
|
+
inputValidationFailure(
|
|
608
|
+
"messageReference.channelId",
|
|
609
|
+
"relationship",
|
|
610
|
+
"A reply reference must point to a message in the destination channel",
|
|
611
|
+
),
|
|
612
|
+
)
|
|
613
|
+
return {
|
|
614
|
+
files: attachments.files,
|
|
615
|
+
json: JSON.stringify({
|
|
616
|
+
...body,
|
|
617
|
+
...(stickerIds === undefined ? {} : { sticker_ids: stickerIds }),
|
|
618
|
+
...(attachments.metadata === undefined ? {} : { attachments: attachments.metadata }),
|
|
619
|
+
nonce,
|
|
620
|
+
allowed_mentions: mentions,
|
|
621
|
+
...(flags === undefined ? {} : { flags }),
|
|
622
|
+
...(tts === undefined ? {} : { tts }),
|
|
623
|
+
...(ref === undefined
|
|
624
|
+
? {}
|
|
625
|
+
: { message_reference: { message_id: ref.id, channel_id: ref.channelId, type: 0 } }),
|
|
626
|
+
}),
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
/** Forward inputs encode only Fluxer's source reference and optional media selectors */
|
|
631
|
+
export function encodeForward(channelId: unknown, input: unknown, defaultNonce: string): EncodedBody | MessageError {
|
|
632
|
+
const invalid = (failure: InputValidationFailure) =>
|
|
633
|
+
new MessageError({ reason: "input", outcome: "notDispatched", inputValidation: failure.detail })
|
|
634
|
+
if (!identifier(channelId))
|
|
635
|
+
return invalid(inputValidationFailure("channelId", "format", "Channel IDs must be decimal strings"))
|
|
636
|
+
if (!record(input)) return invalid(inputValidationFailure("input", "type", "Forward input must be an object"))
|
|
637
|
+
const unsupported = unsupportedKeyFailure(
|
|
638
|
+
input,
|
|
639
|
+
["source", "nonce", "attachmentIds", "embedIndices"],
|
|
640
|
+
"input",
|
|
641
|
+
"the forward input",
|
|
642
|
+
)
|
|
643
|
+
if (unsupported) return invalid(unsupported)
|
|
644
|
+
const nonce = encodeNonce(input.nonce, defaultNonce)
|
|
645
|
+
if (nonce instanceof InputValidationFailure) return invalid(nonce)
|
|
646
|
+
const source = snapshotReference(input.source)
|
|
647
|
+
if (source === undefined)
|
|
648
|
+
return invalid(
|
|
649
|
+
inputValidationFailure("source", "format", "Forward source requires decimal id and channelId strings"),
|
|
650
|
+
)
|
|
651
|
+
const attachmentIdsInput = input.attachmentIds
|
|
652
|
+
const embedIndicesInput = input.embedIndices
|
|
653
|
+
let attachmentIds: readonly unknown[] | undefined
|
|
654
|
+
if (attachmentIdsInput !== undefined) {
|
|
655
|
+
if (!Array.isArray(attachmentIdsInput))
|
|
656
|
+
return invalid(inputValidationFailure("attachmentIds", "type", "Forward attachment IDs must be an array"))
|
|
657
|
+
const count = attachmentIdsInput.length
|
|
658
|
+
if (count > 10)
|
|
659
|
+
return invalid(
|
|
660
|
+
inputValidationFailure("attachmentIds", "length", "A forward may select at most ten attachments"),
|
|
661
|
+
)
|
|
662
|
+
attachmentIds = snapshotArray(attachmentIdsInput, count)
|
|
663
|
+
if (!attachmentIds.every(identifier))
|
|
664
|
+
return invalid(
|
|
665
|
+
inputValidationFailure("attachmentIds[]", "format", "Forward attachment IDs must be decimal strings"),
|
|
666
|
+
)
|
|
667
|
+
}
|
|
668
|
+
let embedIndices: readonly unknown[] | undefined
|
|
669
|
+
if (embedIndicesInput !== undefined) {
|
|
670
|
+
if (!Array.isArray(embedIndicesInput))
|
|
671
|
+
return invalid(inputValidationFailure("embedIndices", "type", "Forward embed indices must be an array"))
|
|
672
|
+
const count = embedIndicesInput.length
|
|
673
|
+
if (count > 10)
|
|
674
|
+
return invalid(inputValidationFailure("embedIndices", "length", "A forward may select at most ten embeds"))
|
|
675
|
+
embedIndices = snapshotArray(embedIndicesInput, count)
|
|
676
|
+
if (
|
|
677
|
+
!embedIndices.every(
|
|
678
|
+
(index) =>
|
|
679
|
+
typeof index === "number" && Number.isSafeInteger(index) && index >= 0 && index <= 2_147_483_647,
|
|
680
|
+
)
|
|
681
|
+
)
|
|
682
|
+
return invalid(
|
|
683
|
+
inputValidationFailure(
|
|
684
|
+
"embedIndices[]",
|
|
685
|
+
"range",
|
|
686
|
+
"Forward embed indices must be integers from 0 through 2,147,483,647",
|
|
687
|
+
),
|
|
688
|
+
)
|
|
689
|
+
}
|
|
690
|
+
return {
|
|
691
|
+
files: [],
|
|
692
|
+
json: JSON.stringify({
|
|
693
|
+
nonce,
|
|
694
|
+
message_reference: {
|
|
695
|
+
message_id: source.id,
|
|
696
|
+
channel_id: source.channelId,
|
|
697
|
+
type: 1,
|
|
698
|
+
...(attachmentIds === undefined ? {} : { attachment_ids: attachmentIds }),
|
|
699
|
+
...(embedIndices === undefined ? {} : { embed_indices: embedIndices }),
|
|
700
|
+
},
|
|
701
|
+
}),
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
|
|
705
|
+
function encodeNonce(value: unknown, defaultNonce: string): string | InputValidationFailure {
|
|
706
|
+
if (value === undefined) return defaultNonce
|
|
707
|
+
if (typeof value === "string") {
|
|
708
|
+
if (value.length >= 1 && value.length <= 32) return value
|
|
709
|
+
return inputValidationFailure("nonce", "length", "Message nonces must contain 1 through 32 UTF-16 code units")
|
|
710
|
+
}
|
|
711
|
+
if (typeof value === "number") {
|
|
712
|
+
if (Number.isSafeInteger(value) && value >= 0) return String(value)
|
|
713
|
+
return inputValidationFailure("nonce", "range", "Message nonce numbers must be nonnegative safe integers")
|
|
714
|
+
}
|
|
715
|
+
return inputValidationFailure("nonce", "type", "Message nonces must be strings or nonnegative safe integers")
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
function encodeAllowedMentions(value: unknown) {
|
|
719
|
+
const mentions = value === undefined ? {} : value
|
|
720
|
+
if (!record(mentions))
|
|
721
|
+
return inputValidationFailure("allowedMentions", "type", "Allowed mentions must be an object")
|
|
722
|
+
const unsupported = unsupportedKeyFailure(
|
|
723
|
+
mentions,
|
|
724
|
+
["users", "roles", "everyone", "repliedUser"],
|
|
725
|
+
"allowedMentions",
|
|
726
|
+
"the allowedMentions setting",
|
|
727
|
+
)
|
|
728
|
+
if (unsupported) return unsupported
|
|
729
|
+
const field = fieldsOnce(mentions)
|
|
730
|
+
const selections: Record<"users" | "roles", readonly unknown[] | undefined> = { users: undefined, roles: undefined }
|
|
731
|
+
for (const key of ["users", "roles"] as const) {
|
|
732
|
+
const list = field(key)
|
|
733
|
+
if (list !== undefined && !Array.isArray(list))
|
|
734
|
+
return inputValidationFailure(`allowedMentions.${key}`, "type", "Mention selections must be arrays")
|
|
735
|
+
if (list === undefined) continue
|
|
736
|
+
const count = list.length
|
|
737
|
+
if (count > 100)
|
|
738
|
+
return inputValidationFailure(
|
|
739
|
+
`allowedMentions.${key}`,
|
|
740
|
+
"length",
|
|
741
|
+
"Mention selections may contain at most 100 IDs",
|
|
742
|
+
)
|
|
743
|
+
const selection = snapshotArray(list, count)
|
|
744
|
+
if (!selection.every(identifier))
|
|
745
|
+
return inputValidationFailure(
|
|
746
|
+
`allowedMentions.${key}[]`,
|
|
747
|
+
"format",
|
|
748
|
+
"Mention selection IDs must be decimal strings",
|
|
749
|
+
)
|
|
750
|
+
selections[key] = selection
|
|
751
|
+
}
|
|
752
|
+
for (const key of ["everyone", "repliedUser"])
|
|
753
|
+
if (field(key) !== undefined && typeof field(key) !== "boolean")
|
|
754
|
+
return inputValidationFailure(`allowedMentions.${key}`, "type", "Mention switches must be booleans")
|
|
755
|
+
return {
|
|
756
|
+
parse: field("everyone") === true ? ["everyone"] : [],
|
|
757
|
+
users: selections.users ?? [],
|
|
758
|
+
roles: selections.roles ?? [],
|
|
759
|
+
replied_user: field("repliedUser") ?? false,
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
/** Copy already bounded indexed entries once, avoiding caller-defined iteration during validation or encoding */
|
|
764
|
+
function snapshotArray(value: readonly unknown[], count: number): readonly unknown[] {
|
|
765
|
+
const result: unknown[] = []
|
|
766
|
+
for (let index = 0; index < count; index += 1) result.push(value[index])
|
|
767
|
+
return Object.freeze(result)
|
|
768
|
+
}
|
|
769
|
+
|
|
770
|
+
/** Each top-level edit field is read at most once, in validation order, so the validated value is the one sent */
|
|
771
|
+
export function encodeEdit(input: unknown): EncodedBody | InputValidationFailure {
|
|
772
|
+
input = messageObject(input)
|
|
773
|
+
if (!record(input))
|
|
774
|
+
return inputValidationFailure("input", "type", "Message edit input must be a string or an object")
|
|
775
|
+
const unsupported = unsupportedKeyFailure(
|
|
776
|
+
input,
|
|
777
|
+
["content", "embeds", "attachments", "allowedMentions", "flags"],
|
|
778
|
+
"input",
|
|
779
|
+
"the message edit input",
|
|
780
|
+
)
|
|
781
|
+
if (unsupported) return unsupported
|
|
782
|
+
const field = fieldsOnce(input)
|
|
783
|
+
const attachments = encodeAttachments(field("attachments"), true)
|
|
784
|
+
if (attachments instanceof InputValidationFailure) return attachments
|
|
785
|
+
const body = encodeBody(field, attachments.uploadedFilenames)
|
|
786
|
+
if (body instanceof InputValidationFailure) return body
|
|
787
|
+
const mentions = encodeAllowedMentions(field("allowedMentions"))
|
|
788
|
+
if (mentions instanceof InputValidationFailure) return mentions
|
|
789
|
+
const hasBodyInput =
|
|
790
|
+
field("content") !== undefined || field("embeds") !== undefined || field("attachments") !== undefined
|
|
791
|
+
const flags = field("flags")
|
|
792
|
+
if (flags !== undefined && !writableFlags(flags))
|
|
793
|
+
return inputValidationFailure(
|
|
794
|
+
"flags",
|
|
795
|
+
"allowedValue",
|
|
796
|
+
"Writable message flags may contain only SuppressEmbeds and SuppressNotifications. Server-managed flags cannot be sent or edited",
|
|
797
|
+
)
|
|
798
|
+
if (!body && (hasBodyInput || flags === undefined))
|
|
799
|
+
return inputValidationFailure("input", "required", "A message edit must contain at least one editable field")
|
|
800
|
+
if (attachments.metadata?.length === 0 && !field("content") && !body?.embeds?.length)
|
|
801
|
+
return inputValidationFailure(
|
|
802
|
+
"input",
|
|
803
|
+
"required",
|
|
804
|
+
"A message edit must retain non-empty content, an embed, or an attachment",
|
|
805
|
+
)
|
|
806
|
+
return {
|
|
807
|
+
files: attachments.files,
|
|
808
|
+
json: JSON.stringify({
|
|
809
|
+
...body,
|
|
810
|
+
allowed_mentions: mentions,
|
|
811
|
+
...(flags === undefined ? {} : { flags }),
|
|
812
|
+
...(attachments.metadata === undefined ? {} : { attachments: attachments.metadata }),
|
|
813
|
+
}),
|
|
814
|
+
}
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
export function replyInput(
|
|
818
|
+
target: unknown,
|
|
819
|
+
input: unknown,
|
|
820
|
+
): { readonly target: MessageReference; readonly input: MessageInput } | MessageError {
|
|
821
|
+
const invalid = (failure: InputValidationFailure) =>
|
|
822
|
+
new MessageError({ reason: "input", outcome: "notDispatched", inputValidation: failure.detail })
|
|
823
|
+
const reference = snapshotReference(target)
|
|
824
|
+
if (reference === undefined)
|
|
825
|
+
return invalid(
|
|
826
|
+
inputValidationFailure("target", "format", "Reply targets require decimal id and channelId strings"),
|
|
827
|
+
)
|
|
828
|
+
input = messageObject(input)
|
|
829
|
+
if (!record(input))
|
|
830
|
+
return invalid(inputValidationFailure("input", "type", "Reply input must be a string or an object"))
|
|
831
|
+
if ("messageReference" in input)
|
|
832
|
+
return invalid(
|
|
833
|
+
inputValidationFailure(
|
|
834
|
+
"messageReference",
|
|
835
|
+
"relationship",
|
|
836
|
+
"Reply input must not provide its own messageReference",
|
|
837
|
+
),
|
|
838
|
+
)
|
|
839
|
+
// The send owner validates the original structural body in its normal order after accepting the lifetime
|
|
840
|
+
return Object.freeze({ target: reference, input: input as MessageInput })
|
|
841
|
+
}
|
|
842
|
+
|
|
843
|
+
/** A plain string is shorthand for a message whose only field is its content */
|
|
844
|
+
export function messageObject(input: unknown): unknown {
|
|
845
|
+
return typeof input === "string" ? { content: input } : input
|
|
846
|
+
}
|
|
847
|
+
|
|
848
|
+
/** Build each EmbedBuilder in an embeds array once, reading every index once, so later validation sees plain objects */
|
|
849
|
+
function builtEmbeds(value: unknown): unknown {
|
|
850
|
+
if (!Array.isArray(value)) return value
|
|
851
|
+
const count = value.length
|
|
852
|
+
const embeds: unknown[] = []
|
|
853
|
+
for (let index = 0; index < count; index += 1) {
|
|
854
|
+
const embed: unknown = value[index]
|
|
855
|
+
embeds.push(embed instanceof EmbedBuilder ? embed.build() : embed)
|
|
856
|
+
}
|
|
857
|
+
return embeds
|
|
858
|
+
}
|
|
859
|
+
|
|
860
|
+
/** Encode content and embeds from fields read through the caller's single-read field reader */
|
|
861
|
+
function encodeBody(field: (key: string) => unknown, uploadedFilenames?: readonly string[]) {
|
|
862
|
+
if (
|
|
863
|
+
field("content") === undefined &&
|
|
864
|
+
field("embeds") === undefined &&
|
|
865
|
+
field("attachments") === undefined &&
|
|
866
|
+
field("stickerIds") === undefined
|
|
867
|
+
)
|
|
868
|
+
return undefined
|
|
869
|
+
const content = field("content")
|
|
870
|
+
if (content !== undefined && typeof content !== "string")
|
|
871
|
+
return inputValidationFailure("content", "type", "Message content must be a string")
|
|
872
|
+
const embedInput = field("embeds")
|
|
873
|
+
const embeds = embedInput === undefined ? undefined : encodeEmbeds(builtEmbeds(embedInput), uploadedFilenames)
|
|
874
|
+
if (embeds instanceof InputValidationFailure) return embeds
|
|
875
|
+
return {
|
|
876
|
+
...(content === undefined ? {} : { content }),
|
|
877
|
+
...(embeds === undefined ? {} : { embeds }),
|
|
878
|
+
}
|
|
879
|
+
}
|