@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,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Role hierarchy checks that fetch the required guild data.
|
|
3
|
+
* Invariant: Checks describe the fetched data and never authorize an action.
|
|
4
|
+
* Implements [SDK contracts: Delivery, requests and caches](/docs/SDK-CONTRACTS.md#delivery-requests-and-caches)
|
|
5
|
+
*/
|
|
6
|
+
import * as Effect from "effect/Effect";
|
|
7
|
+
import { GuildOperationError } from "#sdk/guilds";
|
|
8
|
+
import { composedStepFacts } from "#sdk/api-errors";
|
|
9
|
+
import { mapFailureCause } from "./effect-failures.js";
|
|
10
|
+
import { guildFetch, memberFetch, memberSelf, roleList } from "./guilds.js";
|
|
11
|
+
import { identifier, record } from "./decode/primitives.js";
|
|
12
|
+
import { suspendInput } from "./defects.js";
|
|
13
|
+
import { evaluateMemberHierarchy } from "./role-hierarchy.js";
|
|
14
|
+
import { InputValidationFailure, inputValidationFailure, unsupportedKeyFailure } from "#sdk/input-validation";
|
|
15
|
+
const inputFailure = (failure) => new GuildOperationError({
|
|
16
|
+
operation: "members.fetchCanManage",
|
|
17
|
+
reason: "input",
|
|
18
|
+
outcome: "notDispatched",
|
|
19
|
+
inputValidation: failure.detail,
|
|
20
|
+
});
|
|
21
|
+
const timeoutFailure = () => new GuildOperationError({ operation: "members.fetchCanManage", reason: "timeout", outcome: "notDispatched" });
|
|
22
|
+
function target(value) {
|
|
23
|
+
if (!record(value))
|
|
24
|
+
return inputValidationFailure("target", "type", "Hierarchy target must be an object");
|
|
25
|
+
const unsupported = unsupportedKeyFailure(value, ["guildId", "userId"], "target", "the hierarchy target");
|
|
26
|
+
if (unsupported)
|
|
27
|
+
return unsupported;
|
|
28
|
+
// Read each field once, so the validated IDs are the ones fetched
|
|
29
|
+
const guildId = value.guildId;
|
|
30
|
+
if (!identifier(guildId))
|
|
31
|
+
return inputValidationFailure("target.guildId", "format", "Guild IDs must be decimal strings");
|
|
32
|
+
const userId = value.userId;
|
|
33
|
+
if (!identifier(userId))
|
|
34
|
+
return inputValidationFailure("target.userId", "format", "User IDs must be decimal strings");
|
|
35
|
+
return { guildId, userId };
|
|
36
|
+
}
|
|
37
|
+
function options(value) {
|
|
38
|
+
if (value === undefined)
|
|
39
|
+
return {};
|
|
40
|
+
if (!record(value))
|
|
41
|
+
return inputValidationFailure("options", "type", "Hierarchy options must be an object");
|
|
42
|
+
const unsupported = unsupportedKeyFailure(value, ["timeoutMs", "signal", "actorUserId"], "options", "the hierarchy options");
|
|
43
|
+
if (unsupported)
|
|
44
|
+
return unsupported;
|
|
45
|
+
const actorUserId = value.actorUserId;
|
|
46
|
+
if (actorUserId !== undefined && !identifier(actorUserId))
|
|
47
|
+
return inputValidationFailure("options.actorUserId", "format", "User IDs must be decimal strings");
|
|
48
|
+
const timeoutMs = value.timeoutMs;
|
|
49
|
+
if (timeoutMs !== undefined &&
|
|
50
|
+
(typeof timeoutMs !== "number" ||
|
|
51
|
+
!Number.isSafeInteger(timeoutMs) ||
|
|
52
|
+
timeoutMs < 1 ||
|
|
53
|
+
timeoutMs > 2_147_483_647))
|
|
54
|
+
return inputValidationFailure("options.timeoutMs", "range", "Hierarchy timeout must be an integer from 1 through 2,147,483,647 ms");
|
|
55
|
+
const signal = value.signal;
|
|
56
|
+
if (signal !== undefined &&
|
|
57
|
+
(!record(signal) ||
|
|
58
|
+
typeof signal.aborted !== "boolean" ||
|
|
59
|
+
typeof signal.addEventListener !== "function" ||
|
|
60
|
+
typeof signal.removeEventListener !== "function"))
|
|
61
|
+
return inputValidationFailure("options.signal", "type", "Hierarchy signal must be an AbortSignal");
|
|
62
|
+
// Keep only the validated actor and timeout: The requests use their own remaining deadlines
|
|
63
|
+
return { ...(actorUserId === undefined ? {} : { actorUserId }), ...(timeoutMs === undefined ? {} : { timeoutMs }) };
|
|
64
|
+
}
|
|
65
|
+
function remaining(deadline, now) {
|
|
66
|
+
const timeoutMs = Math.floor(deadline - now());
|
|
67
|
+
return timeoutMs > 0 ? { timeoutMs } : undefined;
|
|
68
|
+
}
|
|
69
|
+
function remoteFailure(error) {
|
|
70
|
+
if (error instanceof GuildOperationError)
|
|
71
|
+
return new GuildOperationError({
|
|
72
|
+
operation: "members.fetchCanManage",
|
|
73
|
+
reason: error.reason === "input" ? "response" : error.reason,
|
|
74
|
+
outcome: error.outcome,
|
|
75
|
+
status: error.status,
|
|
76
|
+
retryAfterMs: error.retryAfterMs,
|
|
77
|
+
apiError: error.apiError,
|
|
78
|
+
...composedStepFacts(error),
|
|
79
|
+
});
|
|
80
|
+
return error;
|
|
81
|
+
}
|
|
82
|
+
/** Fetches the four independent hierarchy inputs in parallel under one deadline, then evaluates the pure local rule.
|
|
83
|
+
* The actor is the bot unless actorUserId names another member of the target's guild
|
|
84
|
+
*/
|
|
85
|
+
export function fetchCanManage(owner, input, suppliedOptions) {
|
|
86
|
+
// Reading and validating the caller target and options is marked as application input
|
|
87
|
+
return suspendInput(() => {
|
|
88
|
+
const member = target(input);
|
|
89
|
+
const validOptions = options(suppliedOptions);
|
|
90
|
+
if (member instanceof InputValidationFailure)
|
|
91
|
+
return Effect.fail(inputFailure(member));
|
|
92
|
+
if (validOptions instanceof InputValidationFailure)
|
|
93
|
+
return Effect.fail(inputFailure(validOptions));
|
|
94
|
+
return Effect.gen(function* () {
|
|
95
|
+
const now = () => owner.logical.now();
|
|
96
|
+
const deadline = now() + (validOptions.timeoutMs ?? owner.defaultTimeoutMs ?? 30_000);
|
|
97
|
+
const guildOptions = remaining(deadline, now);
|
|
98
|
+
const selfOptions = remaining(deadline, now);
|
|
99
|
+
const targetOptions = remaining(deadline, now);
|
|
100
|
+
const roleOptions = remaining(deadline, now);
|
|
101
|
+
if (!guildOptions || !selfOptions || !targetOptions || !roleOptions)
|
|
102
|
+
return yield* Effect.fail(timeoutFailure());
|
|
103
|
+
const [guild, actor, targetMember, roles] = yield* Effect.all([
|
|
104
|
+
owner.guild("guilds.fetch", () => guildFetch(member.guildId), guildOptions),
|
|
105
|
+
validOptions.actorUserId === undefined
|
|
106
|
+
? owner.guild("members.fetchSelf", () => memberSelf(member.guildId), selfOptions)
|
|
107
|
+
: owner.guild("members.fetch", () => memberFetch({ guildId: member.guildId, userId: validOptions.actorUserId }), selfOptions),
|
|
108
|
+
owner.guild("members.fetch", () => memberFetch(member), targetOptions),
|
|
109
|
+
owner.guild("roles.fetchAll", () => roleList(member.guildId), roleOptions),
|
|
110
|
+
], { concurrency: "unbounded" }).pipe(mapFailureCause(remoteFailure));
|
|
111
|
+
const manageable = evaluateMemberHierarchy({ guild, actor, target: targetMember, roles });
|
|
112
|
+
return manageable === undefined
|
|
113
|
+
? yield* Effect.fail(new GuildOperationError({
|
|
114
|
+
operation: "members.fetchCanManage",
|
|
115
|
+
reason: "response",
|
|
116
|
+
outcome: "unknown",
|
|
117
|
+
}))
|
|
118
|
+
: manageable;
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=role-hierarchy-workflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role-hierarchy-workflow.js","sourceRoot":"","sources":["../../src/internal/role-hierarchy-workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure role hierarchy comparison.
|
|
3
|
+
* Invariant: Comparisons use position and then ID, and invalid or cross-guild roles compare as unknown.
|
|
4
|
+
* Implements [SDK contracts: Delivery, requests and caches](/docs/SDK-CONTRACTS.md#delivery-requests-and-caches)
|
|
5
|
+
*/
|
|
6
|
+
import type { GuildRole } from "#sdk/guilds";
|
|
7
|
+
import type { RoleHierarchyInput } from "#sdk/role-hierarchy";
|
|
8
|
+
export declare function compareRoleHierarchy(left: GuildRole, right: GuildRole): -1 | 0 | 1 | undefined;
|
|
9
|
+
export declare function isRoleAboveInHierarchy(left: GuildRole, right: GuildRole): boolean | undefined;
|
|
10
|
+
export declare function evaluateMemberHierarchy(input: RoleHierarchyInput): boolean | undefined;
|
|
11
|
+
//# sourceMappingURL=role-hierarchy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role-hierarchy.d.ts","sourceRoot":"","sources":["../../src/internal/role-hierarchy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAe,SAAS,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAa7D,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAK9F;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAG7F;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,GAAG,SAAS,CAatF"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { identifier } from "./decode/primitives.js";
|
|
2
|
+
const validRole = (value) => typeof value === "object" &&
|
|
3
|
+
value !== null &&
|
|
4
|
+
identifier(value.guildId) &&
|
|
5
|
+
identifier(value.id) &&
|
|
6
|
+
typeof value.position === "number" &&
|
|
7
|
+
Number.isInteger(value.position) &&
|
|
8
|
+
value.position >= 0 &&
|
|
9
|
+
value.position <= 2_147_483_647;
|
|
10
|
+
export function compareRoleHierarchy(left, right) {
|
|
11
|
+
if (!validRole(left) || !validRole(right) || left.guildId !== right.guildId)
|
|
12
|
+
return undefined;
|
|
13
|
+
if (left.id === right.id)
|
|
14
|
+
return 0;
|
|
15
|
+
if (left.position !== right.position)
|
|
16
|
+
return left.position > right.position ? 1 : -1;
|
|
17
|
+
return BigInt(left.id) < BigInt(right.id) ? 1 : -1;
|
|
18
|
+
}
|
|
19
|
+
export function isRoleAboveInHierarchy(left, right) {
|
|
20
|
+
const comparison = compareRoleHierarchy(left, right);
|
|
21
|
+
return comparison === undefined ? undefined : comparison === 1;
|
|
22
|
+
}
|
|
23
|
+
export function evaluateMemberHierarchy(input) {
|
|
24
|
+
if (!validInput(input))
|
|
25
|
+
return undefined;
|
|
26
|
+
const { guild, actor, target, roles } = input;
|
|
27
|
+
if (actor.userId === target.userId)
|
|
28
|
+
return true;
|
|
29
|
+
if (actor.userId === guild.ownerId)
|
|
30
|
+
return true;
|
|
31
|
+
if (target.userId === guild.ownerId)
|
|
32
|
+
return false;
|
|
33
|
+
const roleById = new Map(roles.filter((role) => role.id !== guild.id).map((role) => [role.id, role]));
|
|
34
|
+
const actorRole = highestExplicitRole(actor.roleIds, roleById);
|
|
35
|
+
const targetRole = highestExplicitRole(target.roleIds, roleById);
|
|
36
|
+
if (!actorRole)
|
|
37
|
+
return false;
|
|
38
|
+
if (!targetRole)
|
|
39
|
+
return true;
|
|
40
|
+
return isRoleAboveInHierarchy(actorRole, targetRole);
|
|
41
|
+
}
|
|
42
|
+
function validMember(value, guildId) {
|
|
43
|
+
if (typeof value !== "object" ||
|
|
44
|
+
value === null ||
|
|
45
|
+
value.guildId !== guildId ||
|
|
46
|
+
!identifier(value.userId) ||
|
|
47
|
+
!Array.isArray(value.roleIds))
|
|
48
|
+
return false;
|
|
49
|
+
const ids = new Set();
|
|
50
|
+
for (const roleId of value.roleIds) {
|
|
51
|
+
if (!identifier(roleId) || roleId === guildId || ids.has(roleId))
|
|
52
|
+
return false;
|
|
53
|
+
ids.add(roleId);
|
|
54
|
+
}
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
function validInput(value) {
|
|
58
|
+
if (typeof value !== "object" || value === null)
|
|
59
|
+
return false;
|
|
60
|
+
const input = value;
|
|
61
|
+
if (!input.guild ||
|
|
62
|
+
!identifier(input.guild.id) ||
|
|
63
|
+
!identifier(input.guild.ownerId) ||
|
|
64
|
+
!validMember(input.actor, input.guild.id) ||
|
|
65
|
+
!validMember(input.target, input.guild.id) ||
|
|
66
|
+
!Array.isArray(input.roles))
|
|
67
|
+
return false;
|
|
68
|
+
const roleIds = new Set();
|
|
69
|
+
for (const role of input.roles) {
|
|
70
|
+
if (!validRole(role) || role.guildId !== input.guild.id || roleIds.has(role.id))
|
|
71
|
+
return false;
|
|
72
|
+
roleIds.add(role.id);
|
|
73
|
+
}
|
|
74
|
+
return [...input.actor.roleIds, ...input.target.roleIds].every((roleId) => roleIds.has(roleId));
|
|
75
|
+
}
|
|
76
|
+
function highestExplicitRole(roleIds, roles) {
|
|
77
|
+
let highest;
|
|
78
|
+
for (const roleId of roleIds) {
|
|
79
|
+
const role = roles.get(roleId);
|
|
80
|
+
if (!role)
|
|
81
|
+
return undefined;
|
|
82
|
+
if (!highest || isRoleAboveInHierarchy(role, highest))
|
|
83
|
+
highest = role;
|
|
84
|
+
}
|
|
85
|
+
return highest;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=role-hierarchy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role-hierarchy.js","sourceRoot":"","sources":["../../src/internal/role-hierarchy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type * as Context from "effect/Context";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import { ConfigurationError } from "#sdk/errors";
|
|
4
|
+
import type { FailureReporter } from "./failures.js";
|
|
5
|
+
import type { LogicalScheduler } from "./logical-scheduler.js";
|
|
6
|
+
import type { ClientLogger } from "./logging.js";
|
|
7
|
+
/** When a task first runs, and for a repeating task how long it waits after each run ends */
|
|
8
|
+
export interface ScheduleTiming {
|
|
9
|
+
readonly delayMs: number;
|
|
10
|
+
readonly intervalMs: number | undefined;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Read client.schedule options. Misuse returns ConfigurationError without the rejected value.
|
|
14
|
+
* Reading the options is application input, so the caller runs this under a defect boundary
|
|
15
|
+
*/
|
|
16
|
+
export declare function scheduleTiming(options: unknown): ScheduleTiming | ConfigurationError;
|
|
17
|
+
/** The client's scheduled tasks. Each one is a fiber that waits on the logical scheduler and then runs its work */
|
|
18
|
+
export declare class ScheduledTasks {
|
|
19
|
+
#private;
|
|
20
|
+
private readonly logical;
|
|
21
|
+
private readonly failures;
|
|
22
|
+
private readonly logging;
|
|
23
|
+
constructor(logical: LogicalScheduler, failures: FailureReporter, logging: ClientLogger);
|
|
24
|
+
/** Task runs in progress */
|
|
25
|
+
get running(): number;
|
|
26
|
+
/** Wait until the next run ends */
|
|
27
|
+
progress(): Effect.Effect<void>;
|
|
28
|
+
/** Whether the fiber runs a task, so a task that requests shutdown does not wait for itself */
|
|
29
|
+
owns(fiberId: number): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Start a task in a fiber of its own with the given services. It first runs after timing.delayMs and, when it repeats,
|
|
32
|
+
* again intervalMs after each run ends. Returns a close function that cancels later runs without interrupting a run
|
|
33
|
+
* in progress. Throws ClientClosedError once shutdown has begun
|
|
34
|
+
*/
|
|
35
|
+
start(run: Effect.Effect<unknown, unknown>, timing: ScheduleTiming, context: Context.Context<never>): () => void;
|
|
36
|
+
/** Start no new run and accept no new task, while runs in progress continue. A draining shutdown begins with this */
|
|
37
|
+
seal(): void;
|
|
38
|
+
/** Stop every task and wait until their fibers end. Fails only with defects raised while they stopped */
|
|
39
|
+
shutdown(): Effect.Effect<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Accept no new task and interrupt every task, including runs in progress, without waiting. The first call records
|
|
42
|
+
* in one Info record how many tasks shutdown ended with a run waiting or in progress, so none ends unrecorded
|
|
43
|
+
*/
|
|
44
|
+
stop(): void;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=scheduled-tasks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduled-tasks.d.ts","sourceRoot":"","sources":["../../src/internal/scheduled-tasks.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAE9C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,EAAqB,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAOhD,6FAA6F;AAC7F,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;CAC1C;AAMD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,GAAG,kBAAkB,CAoBpF;AAED,mHAAmH;AACnH,qBAAa,cAAc;;IAcnB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAH5B,YACqB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,YAAY,EACtC;IAEJ,4BAA4B;IAC5B,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,mCAAmC;IACnC,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAE9B;IAED,+FAA+F;IAC/F,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAG7B;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,CA6D/G;IAED,qHAAqH;IACrH,IAAI,IAAI,IAAI,CAEX;IAED,yGAAyG;IACzG,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAc9B;IAED;;;OAGG;IACH,IAAI,IAAI,IAAI,CAmBX;CAOJ"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scheduled tasks: Application work that client.schedule runs once or repeatedly within the client's lifetime.
|
|
3
|
+
* Invariant: Every wait uses the client's logical scheduler, and each task runs in a fiber of its own, never in an event
|
|
4
|
+
* handler or command slot. A failed run reaches the client failure reporter, and a repeating task keeps its schedule. A
|
|
5
|
+
* draining shutdown starts no new run and waits for running ones, and shutdown interrupts the rest, awaits their cleanup
|
|
6
|
+
* and records in one summary how many tasks it ended with a run waiting or in progress. Implements [SDK contracts: User-handler failures](/docs/SDK-CONTRACTS.md#user-handler-failures)
|
|
7
|
+
*/
|
|
8
|
+
import * as Cause from "effect/Cause";
|
|
9
|
+
import * as Deferred from "effect/Deferred";
|
|
10
|
+
import * as Effect from "effect/Effect";
|
|
11
|
+
import * as Exit from "effect/Exit";
|
|
12
|
+
import * as Fiber from "effect/Fiber";
|
|
13
|
+
import { ClientClosedError, ConfigurationError } from "#sdk/errors";
|
|
14
|
+
import { record } from "./decode/primitives.js";
|
|
15
|
+
import { unsupportedKeyHint } from "./suggest.js";
|
|
16
|
+
/** Longest delay or interval, the longest single timer delay */
|
|
17
|
+
const maximumMs = 2_147_483_647;
|
|
18
|
+
const optionKeys = ["delayMs", "intervalMs"];
|
|
19
|
+
function milliseconds(value, minimum) {
|
|
20
|
+
return typeof value === "number" && Number.isSafeInteger(value) && value >= minimum && value <= maximumMs;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Read client.schedule options. Misuse returns ConfigurationError without the rejected value.
|
|
24
|
+
* Reading the options is application input, so the caller runs this under a defect boundary
|
|
25
|
+
*/
|
|
26
|
+
export function scheduleTiming(options) {
|
|
27
|
+
if (options === undefined)
|
|
28
|
+
return { delayMs: 0, intervalMs: undefined };
|
|
29
|
+
if (!record(options))
|
|
30
|
+
return new ConfigurationError("configuration", "Schedule options must be an object");
|
|
31
|
+
const unsupported = Object.keys(options).find((key) => !optionKeys.includes(key));
|
|
32
|
+
if (unsupported !== undefined)
|
|
33
|
+
return new ConfigurationError("configuration", `Unsupported schedule option ${JSON.stringify(unsupported)}`, {
|
|
34
|
+
hint: unsupportedKeyHint(unsupported, optionKeys),
|
|
35
|
+
});
|
|
36
|
+
const { delayMs, intervalMs } = options;
|
|
37
|
+
if (delayMs !== undefined && !milliseconds(delayMs, 0))
|
|
38
|
+
return new ConfigurationError("delayMs", 'The option "delayMs" must be an integer from 0 through 2,147,483,647 milliseconds');
|
|
39
|
+
if (intervalMs !== undefined && !milliseconds(intervalMs, 1))
|
|
40
|
+
return new ConfigurationError("intervalMs", 'The option "intervalMs" must be an integer from 1 through 2,147,483,647 milliseconds');
|
|
41
|
+
return { delayMs: (delayMs ?? intervalMs ?? 0), intervalMs: intervalMs };
|
|
42
|
+
}
|
|
43
|
+
/** The client's scheduled tasks. Each one is a fiber that waits on the logical scheduler and then runs its work */
|
|
44
|
+
export class ScheduledTasks {
|
|
45
|
+
logical;
|
|
46
|
+
failures;
|
|
47
|
+
logging;
|
|
48
|
+
/** Each task's fiber, with whether the application closed it and whether a run is in progress */
|
|
49
|
+
#tasks = new Map();
|
|
50
|
+
/** Task runs in progress, which a draining shutdown waits for */
|
|
51
|
+
#running = 0;
|
|
52
|
+
/** Released and replaced whenever a run ends, so a drain can wait for progress */
|
|
53
|
+
#progress = Deferred.makeUnsafe();
|
|
54
|
+
/** Set when shutdown begins, draining or not: No task starts another run and no task can be added */
|
|
55
|
+
#closing = false;
|
|
56
|
+
/** Tasks that ended during a draining shutdown with runs still to come, reported when the tasks stop */
|
|
57
|
+
#ended = 0;
|
|
58
|
+
#stopped = false;
|
|
59
|
+
constructor(logical, failures, logging) {
|
|
60
|
+
this.logical = logical;
|
|
61
|
+
this.failures = failures;
|
|
62
|
+
this.logging = logging;
|
|
63
|
+
}
|
|
64
|
+
/** Task runs in progress */
|
|
65
|
+
get running() {
|
|
66
|
+
return this.#running;
|
|
67
|
+
}
|
|
68
|
+
/** Wait until the next run ends */
|
|
69
|
+
progress() {
|
|
70
|
+
return Effect.suspend(() => Deferred.await(this.#progress));
|
|
71
|
+
}
|
|
72
|
+
/** Whether the fiber runs a task, so a task that requests shutdown does not wait for itself */
|
|
73
|
+
owns(fiberId) {
|
|
74
|
+
for (const fiber of this.#tasks.keys())
|
|
75
|
+
if (fiber.id === fiberId)
|
|
76
|
+
return true;
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Start a task in a fiber of its own with the given services. It first runs after timing.delayMs and, when it repeats,
|
|
81
|
+
* again intervalMs after each run ends. Returns a close function that cancels later runs without interrupting a run
|
|
82
|
+
* in progress. Throws ClientClosedError once shutdown has begun
|
|
83
|
+
*/
|
|
84
|
+
start(run, timing, context) {
|
|
85
|
+
if (this.#closing)
|
|
86
|
+
throw new ClientClosedError();
|
|
87
|
+
const owner = this;
|
|
88
|
+
const state = { closed: false, running: false };
|
|
89
|
+
const wait = (delayMs) => Effect.callback((resume) => {
|
|
90
|
+
const timer = owner.logical.set(() => resume(Effect.void), delayMs, "scheduled task");
|
|
91
|
+
return Effect.sync(() => owner.logical.clear(timer));
|
|
92
|
+
});
|
|
93
|
+
// A failed run is reported and the task continues. Interruption ends the task, after reporting any defect with it
|
|
94
|
+
const once = Effect.uninterruptibleMask((restore) => {
|
|
95
|
+
state.running = true;
|
|
96
|
+
owner.#running++;
|
|
97
|
+
return restore(run).pipe(Effect.catchCause((cause) => {
|
|
98
|
+
const report = Cause.hasInterruptsOnly(cause)
|
|
99
|
+
? Effect.void
|
|
100
|
+
: Effect.withFiber((fiber) => Effect.sync(() => owner.failures.report({ kind: "task", cause }, fiber.context)));
|
|
101
|
+
return Cause.hasInterrupts(cause) ? report.pipe(Effect.andThen(Effect.interrupt)) : report;
|
|
102
|
+
}), Effect.ensuring(Effect.sync(() => {
|
|
103
|
+
state.running = false;
|
|
104
|
+
owner.#running--;
|
|
105
|
+
owner.#signalProgress();
|
|
106
|
+
})));
|
|
107
|
+
});
|
|
108
|
+
const task = Effect.gen(function* () {
|
|
109
|
+
let delayMs = timing.delayMs;
|
|
110
|
+
while (true) {
|
|
111
|
+
yield* wait(delayMs);
|
|
112
|
+
if (state.closed)
|
|
113
|
+
return;
|
|
114
|
+
// During a draining shutdown a due run never starts, and stop reports the task as cancelled
|
|
115
|
+
if (owner.#closing) {
|
|
116
|
+
owner.#ended++;
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
yield* once;
|
|
120
|
+
if (timing.intervalMs === undefined || state.closed)
|
|
121
|
+
return;
|
|
122
|
+
// Likewise a repeating task whose run ended during the drain gets no later run
|
|
123
|
+
if (owner.#closing) {
|
|
124
|
+
owner.#ended++;
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
delayMs = timing.intervalMs;
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
const fiber = Effect.runForkWith(context)(task.pipe(Effect.ensuring(Effect.sync(() => void owner.#tasks.delete(fiber)))));
|
|
131
|
+
this.#tasks.set(fiber, state);
|
|
132
|
+
return () => {
|
|
133
|
+
if (state.closed)
|
|
134
|
+
return;
|
|
135
|
+
state.closed = true;
|
|
136
|
+
// A run in progress finishes first, and the task then ends instead of waiting for another run
|
|
137
|
+
if (!state.running)
|
|
138
|
+
fiber.interruptUnsafe();
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
/** Start no new run and accept no new task, while runs in progress continue. A draining shutdown begins with this */
|
|
142
|
+
seal() {
|
|
143
|
+
this.#closing = true;
|
|
144
|
+
}
|
|
145
|
+
/** Stop every task and wait until their fibers end. Fails only with defects raised while they stopped */
|
|
146
|
+
shutdown() {
|
|
147
|
+
return Effect.suspend(() => {
|
|
148
|
+
this.stop();
|
|
149
|
+
return Effect.forEach([...this.#tasks.keys()], (fiber) => Fiber.await(fiber), {
|
|
150
|
+
concurrency: "unbounded",
|
|
151
|
+
}).pipe(Effect.flatMap((exits) => {
|
|
152
|
+
const reasons = exits.flatMap((exit) => Exit.isFailure(exit) ? exit.cause.reasons.filter((reason) => reason._tag === "Die") : []);
|
|
153
|
+
return reasons.length ? Effect.failCause(Cause.fromReasons(reasons)) : Effect.void;
|
|
154
|
+
}));
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Accept no new task and interrupt every task, including runs in progress, without waiting. The first call records
|
|
159
|
+
* in one Info record how many tasks shutdown ended with a run waiting or in progress, so none ends unrecorded
|
|
160
|
+
*/
|
|
161
|
+
stop() {
|
|
162
|
+
this.#closing = true;
|
|
163
|
+
if (this.#stopped)
|
|
164
|
+
return;
|
|
165
|
+
this.#stopped = true;
|
|
166
|
+
const running = this.#running;
|
|
167
|
+
let cancelled = this.#ended;
|
|
168
|
+
for (const [fiber, state] of this.#tasks) {
|
|
169
|
+
// A task the application closed has no run waiting, unless its last run is still in progress
|
|
170
|
+
if (state.running || !state.closed)
|
|
171
|
+
cancelled++;
|
|
172
|
+
fiber.interruptUnsafe();
|
|
173
|
+
}
|
|
174
|
+
if (cancelled === 0)
|
|
175
|
+
return;
|
|
176
|
+
this.logging.log({
|
|
177
|
+
level: "info",
|
|
178
|
+
category: "lifecycle",
|
|
179
|
+
code: "lifecycle.tasksCancelled",
|
|
180
|
+
message: `The client is closing, so it cancelled ${cancelled} scheduled ${cancelled === 1 ? "task" : "tasks"} that had a run waiting or in progress${running ? `, including ${running} ${running === 1 ? "run" : "runs"} in progress` : ""}`,
|
|
181
|
+
fields: { cancelled, running },
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
#signalProgress() {
|
|
185
|
+
const released = this.#progress;
|
|
186
|
+
this.#progress = Deferred.makeUnsafe();
|
|
187
|
+
Deferred.doneUnsafe(released, Effect.void);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=scheduled-tasks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduled-tasks.js","sourceRoot":"","sources":["../../src/internal/scheduled-tasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shard plan: Validation of the fixed local shard assignment, automatic plan sizing, scaling hooks and guild-to-shard
|
|
3
|
+
* routing.
|
|
4
|
+
* Invariant: A plan is immutable once known and decides guild ownership, never cache contents or discovery hints. An
|
|
5
|
+
* automatic plan is computed at the first connect from the bot's guild count, and omitted settings start with one shard.
|
|
6
|
+
* The client replaces either with a new, larger automatic plan only when Fluxer closes a shard with 4011 (sharding
|
|
7
|
+
* required), and an explicit plan never changes.
|
|
8
|
+
* Implements [SDK contracts: Connection and recovery](/docs/SDK-CONTRACTS.md#connection-and-recovery)
|
|
9
|
+
*/
|
|
10
|
+
import { ConfigurationError } from "#sdk/errors";
|
|
11
|
+
import type { IdentifyCoordinator, SessionSnapshot, SessionStore } from "#sdk/sharding";
|
|
12
|
+
/** Largest total shard count Fluxer accepts */
|
|
13
|
+
export declare const maximumShardCount = 16384;
|
|
14
|
+
/**
|
|
15
|
+
* Average guilds per shard that automatic sharding aims for, four fifths of Fluxer's per-shard ceiling.
|
|
16
|
+
* Fluxer counts the guilds routed to each shard, not the average. The validate_session_guild_count function in
|
|
17
|
+
* fluxer_gateway/src/gateway/gateway_sharding.erl at fluxerapp/fluxer commit 858a2d9e2b987330edd81711bb53e4f7edc0bbcc
|
|
18
|
+
* rejects Identify with 4011 when one shard's own guilds exceed 2,500. Routing by (id >> 22) % totalShards is uneven,
|
|
19
|
+
* so a plan sized to the ceiling almost always overfills a shard above about 20,000 guilds. At 2,000 the fullest of
|
|
20
|
+
* 16,384 shards stays near 2,200 and leaves room for growth before a 4011 closure makes the client move to a larger plan
|
|
21
|
+
*/
|
|
22
|
+
export declare const guildsPerShard: number;
|
|
23
|
+
export interface ShardPlan {
|
|
24
|
+
readonly totalShards: number;
|
|
25
|
+
readonly shardIds: readonly number[];
|
|
26
|
+
readonly identifyShards: boolean;
|
|
27
|
+
}
|
|
28
|
+
/** Validated sharding settings: A known plan or "auto", plus the optional scaling hooks */
|
|
29
|
+
export interface ShardingConfiguration {
|
|
30
|
+
readonly plan: ShardPlan | "auto";
|
|
31
|
+
/** Whether a 4011 (sharding required) closure moves to a larger automatic plan: For "auto" and omitted settings */
|
|
32
|
+
readonly reshard: boolean;
|
|
33
|
+
readonly identify: IdentifyCoordinator | undefined;
|
|
34
|
+
readonly sessions: SessionStore | undefined;
|
|
35
|
+
/** Whether shards that resume a stored session refill the guild, role and channel caches through REST */
|
|
36
|
+
readonly refillCaches: boolean;
|
|
37
|
+
}
|
|
38
|
+
/** Validate and copy the one-time sharding settings without changing caller-owned input */
|
|
39
|
+
export declare function parseSharding(input: unknown): ShardingConfiguration | ConfigurationError;
|
|
40
|
+
/** The plan automatic sharding picks for a guild count: Every shard, at most guildsPerShard guilds each on average */
|
|
41
|
+
export declare function automaticShardPlan(guildCount: number): ShardPlan;
|
|
42
|
+
/**
|
|
43
|
+
* The plan an automatic client moves to after Fluxer closed one of its shards with 4011 (sharding required): The plan
|
|
44
|
+
* for the new guild count, or one shard more than before when that count still fits the old total, because Fluxer
|
|
45
|
+
* found a shard above its ceiling whatever the average. Callers check that the old total is below maximumShardCount
|
|
46
|
+
*/
|
|
47
|
+
export declare function largerShardPlan(guildCount: number, previousTotalShards: number): ShardPlan;
|
|
48
|
+
/**
|
|
49
|
+
* Admit a move to a larger automatic plan at now, recording it in history, or return why it is refused: The plan
|
|
50
|
+
* already has the largest total, or reshardLimit moves happened within reshardWindowMs. The history keeps only moves
|
|
51
|
+
* inside the window
|
|
52
|
+
*/
|
|
53
|
+
export declare function admitReshard(history: number[], now: number, totalShards: number): string | undefined;
|
|
54
|
+
/** Route a guild snowflake to its planned shard. Callers provide a validated plan total */
|
|
55
|
+
export declare function guildShardId(guildId: string, totalShards: number): number;
|
|
56
|
+
/** Check a loaded snapshot: The frozen copy to resume, or why it cannot be resumed */
|
|
57
|
+
export declare function checkSnapshot(value: unknown, gatewayUrl: string, totalShards: number, nowMs: number): {
|
|
58
|
+
readonly snapshot: SessionSnapshot;
|
|
59
|
+
} | {
|
|
60
|
+
readonly problem: string;
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=sharding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sharding.d.ts","sourceRoot":"","sources":["../../src/internal/sharding.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAMvF,+CAA+C;AAC/C,eAAO,MAAM,iBAAiB,QAAS,CAAA;AAEvC;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,QAA8B,CAAA;AAEzD,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;CACnC;AAED,2FAA2F;AAC3F,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAAA;IACjC,mHAAmH;IACnH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,GAAG,SAAS,CAAA;IAClD,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAA;IAC3C,yGAAyG;IACzG,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;CACjC;AAiCD,2FAA2F;AAC3F,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,qBAAqB,GAAG,kBAAkB,CA0FxF;AAED,sHAAsH;AACtH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAEhE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAK1F;AAMD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQpG;AAUD,2FAA2F;AAC3F,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAEzE;AAaD,sFAAsF;AACtF,wBAAgB,aAAa,CACzB,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACd;IAAE,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAiCvE"}
|