@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,586 @@
|
|
|
1
|
+
import * as Cause from "effect/Cause"
|
|
2
|
+
import * as Effect from "effect/Effect"
|
|
3
|
+
import * as Exit from "effect/Exit"
|
|
4
|
+
import { errAsync, okAsync, ResultAsync, type Result } from "neverthrow"
|
|
5
|
+
import { CriticalWorkerStoppedError, type RunBotOptions } from "#sdk/bot-runner"
|
|
6
|
+
import {
|
|
7
|
+
readIgnoreBots,
|
|
8
|
+
reportBotFailure,
|
|
9
|
+
runBotCore,
|
|
10
|
+
skipsBotMessage,
|
|
11
|
+
snapshotBotCommandDelivery,
|
|
12
|
+
snapshotBotEvents,
|
|
13
|
+
standaloneBotLogger,
|
|
14
|
+
validateBotClientOptions,
|
|
15
|
+
validateRunOptions,
|
|
16
|
+
} from "#sdk/internal/bot-runner"
|
|
17
|
+
import { clientServices } from "#sdk/internal/client-registry"
|
|
18
|
+
import { throwIfErr } from "#sdk/internal/failures"
|
|
19
|
+
import { defectReason } from "#sdk/internal/defects"
|
|
20
|
+
import type { ClientOptions, ShutdownOptions } from "#sdk/client"
|
|
21
|
+
import type { CommandArgumentSchema } from "#sdk/command-arguments"
|
|
22
|
+
import { ApplicationError, CancelledError, ConfigurationError, SdkDefect, type ConnectError } from "#sdk/errors"
|
|
23
|
+
import { EventOverflowError } from "#sdk/message-errors"
|
|
24
|
+
import type { Message, MessageCore, MessageFields, SelectedMessage, ReplyInput, SendOptions } from "#sdk/messages"
|
|
25
|
+
import type { HandlerOptions, EventMap, EventName } from "#sdk/events"
|
|
26
|
+
import type { FailureReport } from "#sdk/failures"
|
|
27
|
+
import {
|
|
28
|
+
botRouter,
|
|
29
|
+
boundDefaultReply,
|
|
30
|
+
type DefaultPrefixCommandBatch,
|
|
31
|
+
type DefaultPrefixCommandRouter,
|
|
32
|
+
type DefaultPrefixCommandsOptions,
|
|
33
|
+
} from "#sdk/default-commands"
|
|
34
|
+
import { type Subscription, type EventHandlerOptions } from "./events.js"
|
|
35
|
+
import { type Client, createClient } from "./client.js"
|
|
36
|
+
import { type OperationFailure, fromExit } from "#sdk/internal/binding/execute"
|
|
37
|
+
|
|
38
|
+
type BotFailure = ConnectError | CancelledError | CriticalWorkerStoppedError | ApplicationError | ConfigurationError
|
|
39
|
+
/** Failures the runner observes from client operations. Its own signal is always valid, so a signal ConfigurationError
|
|
40
|
+
* cannot occur. An overflowing subscription's EventOverflowError becomes CriticalWorkerStoppedError before the Result,
|
|
41
|
+
* and a failed setup callback adds ApplicationError
|
|
42
|
+
*/
|
|
43
|
+
type RunnerFailure = Exclude<BotFailure, ApplicationError> | ConfigurationError | EventOverflowError
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Read or validate runBot options. Misuse, SDK defects and register-callback failures keep their errors, and any other
|
|
47
|
+
* throw, such as from an option getter, is an application fault reported as an SdkDefect for runBot
|
|
48
|
+
*/
|
|
49
|
+
function readBotOptions<A>(read: () => A): A {
|
|
50
|
+
try {
|
|
51
|
+
return read()
|
|
52
|
+
} catch (error) {
|
|
53
|
+
if (error instanceof ConfigurationError || error instanceof SdkDefect || error instanceof ApplicationError)
|
|
54
|
+
throw error
|
|
55
|
+
throw new SdkDefect("runBot", [defectReason(error, "application")])
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function restoreTrustedSdkDefect<A, E extends OperationFailure>(effect: Effect.Effect<A, E>): Effect.Effect<A, E> {
|
|
60
|
+
return effect.pipe(
|
|
61
|
+
Effect.catchCause((cause) => {
|
|
62
|
+
const reason = cause.reasons.length === 1 ? cause.reasons[0] : undefined
|
|
63
|
+
if (reason?._tag !== "Die" || !(reason.defect instanceof SdkDefect)) return Effect.failCause(cause)
|
|
64
|
+
if (reason.defect.reasons.length === 0) return Effect.failCause(Cause.die(reason.defect))
|
|
65
|
+
const restored = reason.defect.reasons.reduce<Cause.Cause<E>>(
|
|
66
|
+
(combined, detail) =>
|
|
67
|
+
Cause.combine(
|
|
68
|
+
combined,
|
|
69
|
+
detail.kind === "Failure"
|
|
70
|
+
? Cause.fail(detail.failure as E)
|
|
71
|
+
: detail.kind === "Interruption"
|
|
72
|
+
? Cause.interrupt()
|
|
73
|
+
: Cause.die(detail.defect),
|
|
74
|
+
),
|
|
75
|
+
Cause.empty,
|
|
76
|
+
)
|
|
77
|
+
return Effect.failCause(restored)
|
|
78
|
+
}),
|
|
79
|
+
)
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
function botOperation<A, E extends RunnerFailure>(
|
|
83
|
+
start: (signal: AbortSignal) => ResultAsync<A, E>,
|
|
84
|
+
trustedSdkDefects = false,
|
|
85
|
+
): Effect.Effect<A, E> {
|
|
86
|
+
const controller = new AbortController()
|
|
87
|
+
const operation = Promise.resolve(start(controller.signal))
|
|
88
|
+
const awaited = Effect.promise(() => operation)
|
|
89
|
+
const observed = trustedSdkDefects ? restoreTrustedSdkDefect(awaited) : awaited
|
|
90
|
+
return observed.pipe(
|
|
91
|
+
Effect.flatMap((result) => (result.isErr() ? Effect.fail(result.error) : Effect.succeed(result.value))),
|
|
92
|
+
Effect.onInterrupt(() =>
|
|
93
|
+
Effect.sync(() => controller.abort()).pipe(
|
|
94
|
+
Effect.andThen(observed),
|
|
95
|
+
Effect.flatMap((result) =>
|
|
96
|
+
result.isErr() &&
|
|
97
|
+
result.error._tag !== "CancelledError" &&
|
|
98
|
+
result.error._tag !== "ClientClosedError"
|
|
99
|
+
? Effect.fail(result.error)
|
|
100
|
+
: Effect.void,
|
|
101
|
+
),
|
|
102
|
+
),
|
|
103
|
+
),
|
|
104
|
+
)
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Data and operations available to one configured bot event handler
|
|
109
|
+
*
|
|
110
|
+
* @category Client and lifecycle
|
|
111
|
+
*/
|
|
112
|
+
export type BotEventContext<K extends EventName, M extends MessageCore = Message> = {
|
|
113
|
+
/** Frozen event payload, using this client's selected message fields where applicable */
|
|
114
|
+
readonly event: EventMap<M>[K]
|
|
115
|
+
/** Full client for operations beyond the event's convenience methods. The runner owns its lifetime */
|
|
116
|
+
readonly client: Client<M>
|
|
117
|
+
/** Cancels SDK operations passed this signal when the handler is stopped. It cannot stop arbitrary application Promises */
|
|
118
|
+
readonly signal: AbortSignal
|
|
119
|
+
} & (K extends "messageCreate"
|
|
120
|
+
? {
|
|
121
|
+
/** The same incoming message as event */
|
|
122
|
+
readonly message: M
|
|
123
|
+
/** Reply to this message with the handler's cancellation signal already applied. A string is sent as the content.
|
|
124
|
+
* Uses client.messages.reply without extra retries. Returning the result from the handler reports an Err
|
|
125
|
+
* like a thrown error, so `({ reply }) => reply("Pong")` needs no further checks.
|
|
126
|
+
* An uncertain failure can leave a reply posted. Retaining this function does not extend the handler's lifetime
|
|
127
|
+
*/
|
|
128
|
+
readonly reply: (
|
|
129
|
+
input: ReplyInput | string,
|
|
130
|
+
options?: SendOptions,
|
|
131
|
+
) => ReturnType<Client<M>["messages"]["reply"]>
|
|
132
|
+
}
|
|
133
|
+
: {})
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* A runBot event handler. A returned or resolved Err result is reported like a thrown error, and other return values are ignored
|
|
137
|
+
*
|
|
138
|
+
* @category Client and lifecycle
|
|
139
|
+
*/
|
|
140
|
+
export type BotEventHandler<K extends EventName, M extends MessageCore = Message> = (
|
|
141
|
+
context: BotEventContext<K, M>,
|
|
142
|
+
) => unknown
|
|
143
|
+
|
|
144
|
+
/** A runBot event handler with its own delivery settings.
|
|
145
|
+
* Omitted settings use the runBot defaults: Overflow dropOldest, concurrency 8 for messageCreate or a partitioned handler and 1 otherwise,
|
|
146
|
+
* and the client.on queue limits
|
|
147
|
+
*
|
|
148
|
+
* @category Client and lifecycle
|
|
149
|
+
*/
|
|
150
|
+
export interface BotEventOptions<K extends EventName, M extends MessageCore = Message> extends HandlerOptions<
|
|
151
|
+
EventMap<M>[K]
|
|
152
|
+
> {
|
|
153
|
+
/** Called for each event */
|
|
154
|
+
readonly handler: BotEventHandler<K, M>
|
|
155
|
+
/** Receive this handler's failures instead of the client-level onError */
|
|
156
|
+
readonly onError?: (report: FailureReport) => unknown
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/** One optional handler per event, as a function or an object with a handler and delivery settings.
|
|
160
|
+
* The runBot function delivers with overflow dropOldest, so a full queue drops the oldest waiting event with a Warn record and a
|
|
161
|
+
* counter instead of stopping the bot. Handlers for messageCreate run up to eight at a time by default, so they can finish
|
|
162
|
+
* out of order, and other events run one at a time.
|
|
163
|
+
* A failed handler is reported with its original error to onError, or logged in full, without stopping the
|
|
164
|
+
* bot or retrying that handler
|
|
165
|
+
*
|
|
166
|
+
* @category Client and lifecycle
|
|
167
|
+
*/
|
|
168
|
+
export type BotEvents<M extends MessageCore = Message> = {
|
|
169
|
+
readonly [K in EventName]?: BotEventHandler<K, M> | BotEventOptions<K, M> | undefined
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Prefix commands for runBot: The router options of commands.create, the commands themselves, an optional failure hook
|
|
174
|
+
* and the delivery settings of the router's attach.
|
|
175
|
+
* The router is attached before the gateway starts and closed when the bot stops.
|
|
176
|
+
* The delivery settings concurrency, partition, overflow, maxPendingMessages and maxPendingBytes are passed to attach
|
|
177
|
+
* unchanged and checked before any client exists. Omitted settings keep the attach defaults: Eight commands at a time
|
|
178
|
+
* and overflow dropOldest, so a burst drops the oldest waiting message with a Warn record. With overflow "stop", a full
|
|
179
|
+
* queue stops the bot with CriticalWorkerStoppedError.
|
|
180
|
+
* Unlike commands.create, runBot replies to a rejected command by default, such as one with a missing argument, as
|
|
181
|
+
* `onReject: "reply"` does. Set `onReject: "silent"` to send no reply, or a function to give custom feedback.
|
|
182
|
+
* An unset ignoreBots follows the runBot ignoreBots setting
|
|
183
|
+
*
|
|
184
|
+
* @category Commands
|
|
185
|
+
*/
|
|
186
|
+
export interface BotCommandsOptions<
|
|
187
|
+
M extends MessageCore = Message,
|
|
188
|
+
S extends Readonly<Record<string, unknown>> = Readonly<Record<string, CommandArgumentSchema | undefined>>,
|
|
189
|
+
>
|
|
190
|
+
extends DefaultPrefixCommandsOptions<M>, HandlerOptions<M> {
|
|
191
|
+
/**
|
|
192
|
+
* Commands keyed by name, such as `{ ping: { execute: ({ reply }) => reply("Pong") } }`, or a callback that
|
|
193
|
+
* receives the empty router and returns it with registrations, for groups or commands built elsewhere.
|
|
194
|
+
* The callback runs synchronously inside runBot. Invalid registrations and a return value other than the registered
|
|
195
|
+
* router throw ConfigurationError. Any other throw from the callback creates no client, and runBot returns an Err
|
|
196
|
+
* ApplicationError whose source is "runBot commands" and whose cause is the thrown value
|
|
197
|
+
*/
|
|
198
|
+
readonly commands:
|
|
199
|
+
DefaultPrefixCommandBatch<M, S> | ((router: DefaultPrefixCommandRouter<M>) => DefaultPrefixCommandRouter<M>)
|
|
200
|
+
/** Receive command failures instead of the client-level onError, as the router attach option does */
|
|
201
|
+
readonly onError?: (report: FailureReport) => unknown
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Configure a bot: Client settings, event handlers, prefix commands, optional startup work and stop signals.
|
|
206
|
+
* A missing token or a commands-registration failure reported before client creation uses the configured logging
|
|
207
|
+
* settings and masks the normalized token, including a token enclosed in matching quotes. Other misuse and
|
|
208
|
+
* option-getter failures instead throw synchronously without a runner report or exit-status change
|
|
209
|
+
*
|
|
210
|
+
* @category Client and lifecycle
|
|
211
|
+
*/
|
|
212
|
+
export interface BotOptions<
|
|
213
|
+
F extends MessageFields | undefined = undefined,
|
|
214
|
+
S extends Readonly<Record<string, unknown>> = Readonly<Record<string, CommandArgumentSchema | undefined>>,
|
|
215
|
+
>
|
|
216
|
+
extends ClientOptions<F>, RunBotOptions {
|
|
217
|
+
/** Handlers registered before connecting and closed when the bot stops.
|
|
218
|
+
* Own enumerable entries are read once when runBot is called. Undefined handlers are skipped.
|
|
219
|
+
* Pass a function, or an object with a handler and its own delivery settings.
|
|
220
|
+
* By default messageCreate runs up to 8 callbacks at a time and other events 1, and a full queue drops the oldest
|
|
221
|
+
* waiting event with a Warn record instead of stopping the bot.
|
|
222
|
+
* Bot-authored messageCreate and messageUpdate events skip these handlers unless ignoreBots is false
|
|
223
|
+
*/
|
|
224
|
+
readonly events?: BotEvents<SelectedMessage<F>>
|
|
225
|
+
/**
|
|
226
|
+
* Skip messageCreate and messageUpdate events whose author is a bot, including this bot's own messages, before they
|
|
227
|
+
* reach the events handlers or prefix commands. Defaults to true, so a reply cannot trigger its own handler.
|
|
228
|
+
* Set false for a bridge or logging bot that handles every message, and check message.author.isBot where needed.
|
|
229
|
+
* Prefix commands follow the same setting unless commands.ignoreBots sets its own.
|
|
230
|
+
* A value other than a boolean throws ConfigurationError
|
|
231
|
+
*/
|
|
232
|
+
readonly ignoreBots?: boolean
|
|
233
|
+
/** Prefix commands registered and attached before connecting. See BotCommandsOptions */
|
|
234
|
+
readonly commands?: BotCommandsOptions<SelectedMessage<F>, S>
|
|
235
|
+
/**
|
|
236
|
+
* Startup work after events and commands are registered and before the gateway connects, such as extra subscriptions,
|
|
237
|
+
* cache warm-up or scheduled tasks. The bot connects only after a returned promise settles, so no handler runs before setup finishes.
|
|
238
|
+
* Start timers and background work with client.schedule, whose tasks belong to the bot: A requested stop lets their
|
|
239
|
+
* running work finish within drainMs, every stop cancels the rest, and a failure reaches onError or the log.
|
|
240
|
+
* The signal aborts when the bot begins stopping for any reason, including a requested stop before its drain, a
|
|
241
|
+
* failure and a stop while setup is still running. Pass it to SDK operations, or listen for its abort event to end
|
|
242
|
+
* other work started here, which the runner does not track or await.
|
|
243
|
+
* A throw, rejection or returned or resolved Err result stops the bot before connecting, and runBot returns an Err
|
|
244
|
+
* ApplicationError whose source is "runBot setup" and whose cause is the original value, such as the
|
|
245
|
+
* GuildOperationError of a failed read. A thrown SdkDefect remains a defect and rejects with SdkDefect.
|
|
246
|
+
* The Effect API runs setup in the bot's Scope instead, so its finalizers and scoped fibers end with the bot
|
|
247
|
+
*/
|
|
248
|
+
readonly setup?: (client: Client<SelectedMessage<F>>, context: { readonly signal: AbortSignal }) => unknown
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Start a bot from event handlers and prefix commands, and watch its connection and subscriptions.
|
|
253
|
+
* The client is created and every handler and command is registered synchronously, before this function returns and
|
|
254
|
+
* before the gateway connects, so no event is missed and no handler runs before registration and setup complete.
|
|
255
|
+
* Invalid options, such as a misspelled option key, an unknown event name, invalid delivery settings or an invalid
|
|
256
|
+
* command, throw ConfigurationError at once. Every option is checked before any client, signal listener or request
|
|
257
|
+
* exists, even when the signal is already aborted, so misuse leaves nothing to clean up.
|
|
258
|
+
* A missing or empty token, usually from an unset environment variable, is reported like a failed run instead: Once
|
|
259
|
+
* every other option is valid, runBot returns an Err ConfigurationError with field token before any client exists.
|
|
260
|
+
* The returned ResultAsync then runs the bot until it stops.
|
|
261
|
+
* Handler contexts expose the full client. Message-create contexts also expose message and a cancellation-aware reply.
|
|
262
|
+
* Handler and command failures are reported to onError, or logged in full, without restarting them or stopping the bot.
|
|
263
|
+
* By default, SIGINT and SIGTERM request a normal stop and messages written by bots skip the events handlers and
|
|
264
|
+
* prefix commands. Set processSignals or ignoreBots to false to opt out. Stopping waits for SDK cleanup, not unrelated application Promises.
|
|
265
|
+
* Expected runner failures return Err, including ApplicationError when the setup callback or a commands register
|
|
266
|
+
* callback fails and ConfigurationError for a missing token, and SDK defects reject with SdkDefect.
|
|
267
|
+
* By default a failed run is also logged once, with code lifecycle.botFailed unless the client already logged that
|
|
268
|
+
* error, and sets process.exitCode to 1, so `await runBot({...})` needs no further handling.
|
|
269
|
+
* Set reportFailure to false when the application handles the returned failure and exit status itself.
|
|
270
|
+
* A missing token or a commands-registration failure reported before client creation uses the configured logging
|
|
271
|
+
* settings, prints no stack for the missing token and masks the token after removing surrounding whitespace and one pair
|
|
272
|
+
* of matching quotes. Unusable logging settings are misuse.
|
|
273
|
+
* An option getter that throws while the options are checked throws SdkDefect with code application.defect and the
|
|
274
|
+
* thrown value as the cause, before any client exists. Other misuse and option-getter failures throw synchronously
|
|
275
|
+
* without a runner report or exit-status change, regardless of reportFailure
|
|
276
|
+
*
|
|
277
|
+
* @remarks
|
|
278
|
+
* Aborting the optional signal requests a normal stop, not a cancellation Err. A requested stop first stops accepting
|
|
279
|
+
* events and lets running handlers, scheduled tasks and their requests finish for up to drainMs, default 5,000 ms. Success means the client has
|
|
280
|
+
* stopped and cleanup has finished. The runner always shuts down its client, including after a failure.
|
|
281
|
+
* If an event or command subscription closes while the bot is still running, the result fails with
|
|
282
|
+
* CriticalWorkerStoppedError. That includes a handler or command router set to overflow "stop" whose queue overflows.
|
|
283
|
+
* The overflow is still reported to onError or logged, and the error names the event and the exceeded capacity, with
|
|
284
|
+
* the EventOverflowError as its cause.
|
|
285
|
+
* Process signal listeners are removed when the run finishes, and the runner never exits the process
|
|
286
|
+
*
|
|
287
|
+
* @example
|
|
288
|
+
* ```ts
|
|
289
|
+
* import { runBot } from "@neontechspace/fluxerly"
|
|
290
|
+
*
|
|
291
|
+
* export function pingBot(token: string | undefined) {
|
|
292
|
+
* return runBot({
|
|
293
|
+
* token,
|
|
294
|
+
* commands: {
|
|
295
|
+
* prefix: "!",
|
|
296
|
+
* commands: {
|
|
297
|
+
* ping: { execute: ({ reply }) => reply("Pong!") },
|
|
298
|
+
* roll: {
|
|
299
|
+
* arguments: { sides: { type: "integer", min: 2, max: 100, default: 6 } },
|
|
300
|
+
* execute: ({ reply, values }) => reply(`${1 + Math.floor(Math.random() * values.sides)}`),
|
|
301
|
+
* },
|
|
302
|
+
* },
|
|
303
|
+
* },
|
|
304
|
+
* })
|
|
305
|
+
* }
|
|
306
|
+
* ```
|
|
307
|
+
*
|
|
308
|
+
* @category Client and lifecycle
|
|
309
|
+
*/
|
|
310
|
+
export function runBot<
|
|
311
|
+
const F extends MessageFields | undefined = undefined,
|
|
312
|
+
const S extends Readonly<Record<string, unknown>> = Readonly<Record<string, CommandArgumentSchema | undefined>>,
|
|
313
|
+
>(
|
|
314
|
+
options: BotOptions<F, S>,
|
|
315
|
+
): ResultAsync<
|
|
316
|
+
void,
|
|
317
|
+
ConnectError | CancelledError | CriticalWorkerStoppedError | ApplicationError | ConfigurationError
|
|
318
|
+
> {
|
|
319
|
+
try {
|
|
320
|
+
return startBot<F, S>(options)
|
|
321
|
+
} catch (error) {
|
|
322
|
+
// Misuse is found inside validation, so the stack starts at the caller's line instead, as in createClient
|
|
323
|
+
if (error instanceof ConfigurationError) Error.captureStackTrace(error, runBot)
|
|
324
|
+
throw error
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
function startBot<const F extends MessageFields | undefined, const S extends Readonly<Record<string, unknown>>>(
|
|
329
|
+
options: BotOptions<F, S>,
|
|
330
|
+
): ResultAsync<void, BotFailure> {
|
|
331
|
+
type M = SelectedMessage<F>
|
|
332
|
+
if (typeof options !== "object" || options === null || Array.isArray(options))
|
|
333
|
+
throw new ConfigurationError("configuration", "The runBot options must be an object")
|
|
334
|
+
const { events, ignoreBots, commands, setup, signal, processSignals, reportFailure, drainMs, clientOptions } =
|
|
335
|
+
readBotOptions(() => {
|
|
336
|
+
const {
|
|
337
|
+
events,
|
|
338
|
+
ignoreBots,
|
|
339
|
+
commands,
|
|
340
|
+
setup,
|
|
341
|
+
signal,
|
|
342
|
+
processSignals,
|
|
343
|
+
reportFailure,
|
|
344
|
+
drainMs,
|
|
345
|
+
...clientOptions
|
|
346
|
+
} = options
|
|
347
|
+
return {
|
|
348
|
+
events,
|
|
349
|
+
ignoreBots,
|
|
350
|
+
commands,
|
|
351
|
+
setup,
|
|
352
|
+
signal,
|
|
353
|
+
processSignals,
|
|
354
|
+
reportFailure,
|
|
355
|
+
drainMs,
|
|
356
|
+
clientOptions,
|
|
357
|
+
}
|
|
358
|
+
})
|
|
359
|
+
readBotOptions(() => validateRunOptions({ signal, processSignals, reportFailure, drainMs }))
|
|
360
|
+
const runOptions: RunBotOptions = {
|
|
361
|
+
...(signal === undefined ? {} : { signal }),
|
|
362
|
+
// The default API handles process signals unless the application opts out
|
|
363
|
+
processSignals: processSignals !== false,
|
|
364
|
+
...(reportFailure === undefined ? {} : { reportFailure }),
|
|
365
|
+
...(drainMs === undefined ? {} : { drainMs }),
|
|
366
|
+
}
|
|
367
|
+
// All configuration is checked before any client, listener or request exists, so misuse has no side effects.
|
|
368
|
+
// An already aborted signal still reports misuse rather than hiding it
|
|
369
|
+
const { entries, skipBots, router, commandHook, commandDelivery, commandsFailure } = prepareBot<M>(
|
|
370
|
+
events,
|
|
371
|
+
ignoreBots,
|
|
372
|
+
commands as BotCommandsOptions<M, never> | undefined,
|
|
373
|
+
setup,
|
|
374
|
+
)
|
|
375
|
+
// A missing token and the callback's failure are returned even when the signal is already aborted
|
|
376
|
+
const failure = readBotOptions(() => validateBotClientOptions(clientOptions, false)) ?? commandsFailure
|
|
377
|
+
if (failure !== undefined) {
|
|
378
|
+
Effect.runSync(reportBotFailure(Exit.fail(failure), standaloneBotLogger(clientOptions, false), runOptions))
|
|
379
|
+
return errAsync<void, BotFailure>(failure)
|
|
380
|
+
}
|
|
381
|
+
if (readBotOptions(() => signal?.aborted)) return okAsync<void, BotFailure>(undefined)
|
|
382
|
+
const client = createClient<F>(clientOptions as ClientOptions<F>)
|
|
383
|
+
let subscriptions: readonly Subscription[]
|
|
384
|
+
try {
|
|
385
|
+
subscriptions = registerBot(client, { entries, skipBots, router, commandHook, commandDelivery })
|
|
386
|
+
} catch (error) {
|
|
387
|
+
// Validated registration cannot be misuse here, so this is a defect. The unused client owns no socket yet,
|
|
388
|
+
// and its cleanup failure is logged by the client
|
|
389
|
+
void client
|
|
390
|
+
.shutdown()
|
|
391
|
+
.then(undefined, (defect: unknown) => clientServices(client)?.logging.outputFailure(defect))
|
|
392
|
+
throw error
|
|
393
|
+
}
|
|
394
|
+
const shutdownClient = (options?: ShutdownOptions) =>
|
|
395
|
+
restoreTrustedSdkDefect(Effect.promise(() => client.shutdown(options))).pipe(Effect.asVoid)
|
|
396
|
+
// Every way the runner stops shuts its client down, so aborting there tells setup work that the bot is stopping
|
|
397
|
+
const stopping = new AbortController()
|
|
398
|
+
// The client exists before the runner starts, so the runner owns its shutdown only once it takes the client
|
|
399
|
+
let taken = false
|
|
400
|
+
const program = runBotCore(
|
|
401
|
+
Effect.sync(() => {
|
|
402
|
+
taken = true
|
|
403
|
+
return {
|
|
404
|
+
source: client,
|
|
405
|
+
logger: clientServices(client)?.logging,
|
|
406
|
+
get state() {
|
|
407
|
+
return client.state
|
|
408
|
+
},
|
|
409
|
+
run: () => botOperation((signal) => client.run({ signal }), true),
|
|
410
|
+
shutdown: (options?: ShutdownOptions) =>
|
|
411
|
+
Effect.sync(() => stopping.abort()).pipe(Effect.andThen(shutdownClient(options))),
|
|
412
|
+
}
|
|
413
|
+
}),
|
|
414
|
+
() =>
|
|
415
|
+
(setup === undefined
|
|
416
|
+
? Effect.void
|
|
417
|
+
: // @effect-diagnostics-next-line unknownInEffectCatch:off
|
|
418
|
+
Effect.tryPromise({
|
|
419
|
+
try: () => runBotSetup(setup, client, stopping.signal),
|
|
420
|
+
catch: (error) => error,
|
|
421
|
+
}).pipe(
|
|
422
|
+
// Setup failures, such as a failed read, are application outcomes. An SDK defect stays a defect
|
|
423
|
+
Effect.catch((error) =>
|
|
424
|
+
error instanceof ApplicationError ? Effect.fail(error) : Effect.die(error),
|
|
425
|
+
),
|
|
426
|
+
)
|
|
427
|
+
).pipe(
|
|
428
|
+
Effect.as(
|
|
429
|
+
subscriptions.map((subscription, index) => ({
|
|
430
|
+
// A subscription stopped by overflow "stop" stops the bot, naming its event and capacity
|
|
431
|
+
waitForClose: () =>
|
|
432
|
+
botOperation((signal) => subscription.waitForClose({ signal })).pipe(
|
|
433
|
+
Effect.mapError((error) =>
|
|
434
|
+
error instanceof EventOverflowError
|
|
435
|
+
? new CriticalWorkerStoppedError(index, {
|
|
436
|
+
// The command router follows the event handlers and receives messageCreate
|
|
437
|
+
event: entries[index]?.event ?? "messageCreate",
|
|
438
|
+
error,
|
|
439
|
+
})
|
|
440
|
+
: error,
|
|
441
|
+
),
|
|
442
|
+
),
|
|
443
|
+
})),
|
|
444
|
+
),
|
|
445
|
+
),
|
|
446
|
+
runOptions,
|
|
447
|
+
).pipe(Effect.ensuring(Effect.suspend(() => (taken ? Effect.void : shutdownClient()))))
|
|
448
|
+
// fromExit returns a single failure unchanged, including the setup ApplicationError that no client operation returns
|
|
449
|
+
return new ResultAsync(
|
|
450
|
+
Effect.runPromiseExit(program as Effect.Effect<void, RunnerFailure>).then(
|
|
451
|
+
(exit) => fromExit<void, RunnerFailure>(exit, "runBot") as Result<void, BotFailure>,
|
|
452
|
+
),
|
|
453
|
+
)
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
/**
|
|
457
|
+
* Read and check a bot's event handlers, commands and setup callback before any client exists. Misuse throws
|
|
458
|
+
* ConfigurationError. A commands register callback's own failure is returned as commandsFailure, so the caller can
|
|
459
|
+
* finish checking the other options first
|
|
460
|
+
*/
|
|
461
|
+
function prepareBot<M extends MessageCore>(
|
|
462
|
+
events: unknown,
|
|
463
|
+
ignoreBots: unknown,
|
|
464
|
+
commands: BotCommandsOptions<M> | undefined,
|
|
465
|
+
setup: unknown,
|
|
466
|
+
) {
|
|
467
|
+
if (setup !== undefined && typeof setup !== "function")
|
|
468
|
+
throw new ConfigurationError("configuration", 'The option "setup" must be a function')
|
|
469
|
+
const entries = readBotOptions(() => snapshotBotEvents(events))
|
|
470
|
+
const skipBots = readIgnoreBots(ignoreBots)
|
|
471
|
+
let router: DefaultPrefixCommandRouter<M> | undefined
|
|
472
|
+
let commandsFailure: ApplicationError | undefined
|
|
473
|
+
try {
|
|
474
|
+
router = commands === undefined ? undefined : readBotOptions(() => botRouter<M>(commands, skipBots))
|
|
475
|
+
} catch (error) {
|
|
476
|
+
// A register callback's own failure is an application outcome, returned once the other options are checked
|
|
477
|
+
if (!(error instanceof ApplicationError)) throw error
|
|
478
|
+
commandsFailure = error
|
|
479
|
+
}
|
|
480
|
+
const commandHook = readBotOptions(() => commands?.onError)
|
|
481
|
+
if (commandHook !== undefined && typeof commandHook !== "function")
|
|
482
|
+
throw new ConfigurationError("onError", 'The option "commands.onError" must be a function')
|
|
483
|
+
const commandDelivery =
|
|
484
|
+
commands === undefined ? undefined : readBotOptions(() => snapshotBotCommandDelivery(commands))
|
|
485
|
+
return { entries, skipBots, router, commandHook, commandDelivery, commandsFailure }
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
/**
|
|
489
|
+
* Run a bot's setup callback once with the signal that aborts when the bot begins stopping. A throw, rejection or
|
|
490
|
+
* returned Err rejects with ApplicationError whose source is "runBot setup" and whose cause is the original value.
|
|
491
|
+
* A thrown SdkDefect rejects unchanged
|
|
492
|
+
*/
|
|
493
|
+
async function runBotSetup<M extends MessageCore>(
|
|
494
|
+
setup: (client: Client<M>, context: { readonly signal: AbortSignal }) => unknown,
|
|
495
|
+
client: Client<M>,
|
|
496
|
+
signal: AbortSignal,
|
|
497
|
+
) {
|
|
498
|
+
try {
|
|
499
|
+
throwIfErr(await setup(client, Object.freeze({ signal })))
|
|
500
|
+
} catch (error) {
|
|
501
|
+
throw error instanceof SdkDefect ? error : new ApplicationError("runBot setup", error)
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
/**
|
|
506
|
+
* Register runBot events and commands on a test client with the same checks, contexts and registration as runBot,
|
|
507
|
+
* returning the setup work that the test client runs before it connects, given the signal that aborts when the test
|
|
508
|
+
* client stops. Used by the testing entry point.
|
|
509
|
+
* Misuse throws ConfigurationError, and a commands register callback's own failure throws its ApplicationError
|
|
510
|
+
*/
|
|
511
|
+
export function installTestBot<M extends MessageCore>(
|
|
512
|
+
client: Client<M>,
|
|
513
|
+
options: Pick<BotOptions, "events" | "ignoreBots" | "commands" | "setup">,
|
|
514
|
+
): (signal: AbortSignal) => Promise<void> {
|
|
515
|
+
const { events, ignoreBots, commands, setup } = readBotOptions(() => ({
|
|
516
|
+
events: options.events,
|
|
517
|
+
ignoreBots: options.ignoreBots,
|
|
518
|
+
commands: options.commands,
|
|
519
|
+
setup: options.setup,
|
|
520
|
+
}))
|
|
521
|
+
const prepared = prepareBot<M>(events, ignoreBots, commands as BotCommandsOptions<M, never> | undefined, setup)
|
|
522
|
+
if (prepared.commandsFailure !== undefined) throw prepared.commandsFailure
|
|
523
|
+
registerBot(client, prepared)
|
|
524
|
+
return setup === undefined
|
|
525
|
+
? async () => undefined
|
|
526
|
+
: (signal) =>
|
|
527
|
+
runBotSetup(
|
|
528
|
+
setup as unknown as (client: Client<M>, context: { readonly signal: AbortSignal }) => unknown,
|
|
529
|
+
client,
|
|
530
|
+
signal,
|
|
531
|
+
)
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
/** Register the bot's event handlers and command router synchronously, returning the subscriptions to supervise */
|
|
535
|
+
function registerBot<M extends MessageCore>(
|
|
536
|
+
client: Client<M>,
|
|
537
|
+
{
|
|
538
|
+
entries,
|
|
539
|
+
skipBots,
|
|
540
|
+
router,
|
|
541
|
+
commandHook,
|
|
542
|
+
commandDelivery,
|
|
543
|
+
}: Pick<ReturnType<typeof prepareBot<M>>, "entries" | "skipBots" | "router" | "commandHook" | "commandDelivery">,
|
|
544
|
+
): readonly Subscription[] {
|
|
545
|
+
const subscriptions: Subscription[] = []
|
|
546
|
+
try {
|
|
547
|
+
for (const { event, handler, options } of entries) {
|
|
548
|
+
// The snapshot validates functions, and client.on validates event names and delivery settings
|
|
549
|
+
const callback = handler as (context: BotEventContext<EventName, M>) => unknown
|
|
550
|
+
subscriptions.push(
|
|
551
|
+
client.on(
|
|
552
|
+
event,
|
|
553
|
+
(payload, signal) =>
|
|
554
|
+
skipsBotMessage(event, payload, skipBots)
|
|
555
|
+
? undefined
|
|
556
|
+
: callback(
|
|
557
|
+
Object.freeze({
|
|
558
|
+
event: payload,
|
|
559
|
+
client,
|
|
560
|
+
signal,
|
|
561
|
+
...(event === "messageCreate"
|
|
562
|
+
? {
|
|
563
|
+
message: payload as M,
|
|
564
|
+
reply: boundDefaultReply(client, payload as M, signal),
|
|
565
|
+
}
|
|
566
|
+
: {}),
|
|
567
|
+
}) as BotEventContext<EventName, M>,
|
|
568
|
+
),
|
|
569
|
+
options as EventHandlerOptions,
|
|
570
|
+
),
|
|
571
|
+
)
|
|
572
|
+
}
|
|
573
|
+
if (router !== undefined)
|
|
574
|
+
subscriptions.push(
|
|
575
|
+
router.attach(client, {
|
|
576
|
+
...commandDelivery,
|
|
577
|
+
...(commandHook === undefined ? {} : { onError: commandHook }),
|
|
578
|
+
} as EventHandlerOptions),
|
|
579
|
+
)
|
|
580
|
+
return subscriptions
|
|
581
|
+
} catch (error) {
|
|
582
|
+
for (const subscription of subscriptions) subscription.close()
|
|
583
|
+
if (error instanceof ConfigurationError) throw error
|
|
584
|
+
throw new SdkDefect("runBot", [defectReason(error)])
|
|
585
|
+
}
|
|
586
|
+
}
|