@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,829 @@
|
|
|
1
|
+
import * as Cause from "effect/Cause"
|
|
2
|
+
import * as Deferred from "effect/Deferred"
|
|
3
|
+
import * as Effect from "effect/Effect"
|
|
4
|
+
import * as Exit from "effect/Exit"
|
|
5
|
+
import * as Scope from "effect/Scope"
|
|
6
|
+
import { ok, ResultAsync } from "neverthrow"
|
|
7
|
+
import { causeReasons, defectReason, suspendInput } from "#sdk/internal/defects"
|
|
8
|
+
import { shutdownDrainMs } from "#sdk/internal/client/drain"
|
|
9
|
+
import { scheduleTiming } from "#sdk/internal/scheduled-tasks"
|
|
10
|
+
import { promiseHook, throwIfErr } from "#sdk/internal/failures"
|
|
11
|
+
import { fiberRejectionScope, inRejectionScope } from "#sdk/internal/rejection-scope"
|
|
12
|
+
import { registerClientOwner } from "#sdk/internal/client-registry"
|
|
13
|
+
import type {
|
|
14
|
+
ClientDiagnostics,
|
|
15
|
+
ClientState,
|
|
16
|
+
ClientOptions,
|
|
17
|
+
ConnectionState,
|
|
18
|
+
OperationOptions,
|
|
19
|
+
ScheduleOptions,
|
|
20
|
+
ShutdownOptions,
|
|
21
|
+
} from "#sdk/client"
|
|
22
|
+
import {
|
|
23
|
+
CancelledError,
|
|
24
|
+
ClientClosedError,
|
|
25
|
+
ConfigurationError,
|
|
26
|
+
SdkDefect,
|
|
27
|
+
type ConnectError,
|
|
28
|
+
type ConnectionFailure,
|
|
29
|
+
} from "#sdk/errors"
|
|
30
|
+
import { makeClient } from "#sdk/internal/client"
|
|
31
|
+
import { defaultMiddleware, type EventSource, waitForEvent } from "#sdk/internal/events"
|
|
32
|
+
import { type EventWaitFailure } from "#sdk/message-errors"
|
|
33
|
+
import type { Message, MessageCore, MessageFields, SelectedMessage } from "#sdk/messages"
|
|
34
|
+
import type { EventBufferOptions, EventContext, EventInvocation, EventMap, EventName } from "#sdk/events"
|
|
35
|
+
import {
|
|
36
|
+
type Subscription,
|
|
37
|
+
type EventSubscription,
|
|
38
|
+
type EventHandlerOptions,
|
|
39
|
+
type DefaultEventWaitOptions,
|
|
40
|
+
type EventMiddleware,
|
|
41
|
+
type MiddlewareRegistration,
|
|
42
|
+
type StateObserver,
|
|
43
|
+
} from "./events.js"
|
|
44
|
+
import { type Attachments } from "./attachments.js"
|
|
45
|
+
import { type Messages } from "./messages.js"
|
|
46
|
+
import { type AuditLogs } from "./audit-logs.js"
|
|
47
|
+
import { type Invites } from "./invites.js"
|
|
48
|
+
import { type Emojis } from "./emojis.js"
|
|
49
|
+
import { type Stickers } from "./stickers.js"
|
|
50
|
+
import { type Discovery } from "./discovery.js"
|
|
51
|
+
import { type Guilds } from "./guilds.js"
|
|
52
|
+
import { type Channels } from "./channels.js"
|
|
53
|
+
import { type Threads } from "./threads.js"
|
|
54
|
+
import { type Members } from "./members.js"
|
|
55
|
+
import { type PermissionHelpers } from "./permissions.js"
|
|
56
|
+
import { type Roles } from "./roles.js"
|
|
57
|
+
import { type Webhooks } from "./webhooks.js"
|
|
58
|
+
import { type ClientCache } from "./cache.js"
|
|
59
|
+
import { type RestRequests } from "./rest.js"
|
|
60
|
+
import { type GatewayCommands } from "./gateway.js"
|
|
61
|
+
import { type ClientLogging } from "./logging.js"
|
|
62
|
+
import { type Instance } from "./instance.js"
|
|
63
|
+
import { bindDefault, defaultContext } from "#sdk/internal/binding/default"
|
|
64
|
+
import { fromExit } from "#sdk/internal/binding/execute"
|
|
65
|
+
import { type Presence } from "./presence.js"
|
|
66
|
+
import { type CurrentBotApplication } from "./application.js"
|
|
67
|
+
import { type Users } from "./users.js"
|
|
68
|
+
import { type DirectMessages } from "./direct-messages.js"
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Use a bot client for messages, community resources, HTTP requests and gateway events.
|
|
72
|
+
* Call methods directly.
|
|
73
|
+
* Network and other I/O operations start immediately and return ResultAsync. Await it to receive Ok or Err.
|
|
74
|
+
* If isErr() is true, read error.
|
|
75
|
+
* Otherwise, read value, or call orThrow to get the value and throw the error instead.
|
|
76
|
+
* Expected failures are Err values, and an Err returned from a handler is reported like a thrown error.
|
|
77
|
+
* Local registration and cache lookups return their value directly and throw ConfigurationError when misused.
|
|
78
|
+
* Subscriptions and collectors registered after shutdown began, such as from a handler still running, return already-closed handles.
|
|
79
|
+
* Middleware registration on a closing client throws ClientClosedError.
|
|
80
|
+
* Unexpected SDK or cleanup failures reject with SdkDefect.
|
|
81
|
+
* Use run for a connection lifetime controlled by its signal.
|
|
82
|
+
* Alternatively, connect for startup, waitForClose for terminal failure, and shutdown for final cleanup.
|
|
83
|
+
* Use `await using` to shut the client down when the enclosing block ends
|
|
84
|
+
*
|
|
85
|
+
* @remarks
|
|
86
|
+
* A malformed options.signal returns ConfigurationError for signal before work starts.
|
|
87
|
+
* A valid aborted signal returns CancelledError.
|
|
88
|
+
* Cleanup failure stops retries and preserves safe details of an accompanying failure or cancellation.
|
|
89
|
+
* Shared REST success JSON is limited to 16 MiB before parsing, not total memory.
|
|
90
|
+
* Upload-plan and completion responses have a separate 1 MiB limit
|
|
91
|
+
*
|
|
92
|
+
* Confirmed HTTP 429 responses with a valid retry delay pause all of this client's API routes when
|
|
93
|
+
* X-RateLimit-Global is true, X-RateLimit-Scope is global, or the bounded JSON body has global: true.
|
|
94
|
+
* A valid global assertion wins over conflicting local metadata. Malformed scope values are ignored.
|
|
95
|
+
* A global header with a valid Retry-After starts the pause before body inspection, including when
|
|
96
|
+
* the body is missing, malformed, oversized or too slow. Body inspection stays bounded to 8 KiB and 100 ms before awaited cleanup.
|
|
97
|
+
* Without global metadata, only requests in the same rate-limit group wait. Without a usable delay, the rejection fails instead of guessing how long to wait.
|
|
98
|
+
* Waits remain within each call's original deadline. Cancelling a queued call removes only that call, not the shared pause.
|
|
99
|
+
* A call whose known pause outlasts its deadline fails at once with reason rateLimit and the remaining wait as retryAfterMs instead of waiting.
|
|
100
|
+
* Separate clients do not coordinate these waits. Attachment downloads do not wait for API rate limits.
|
|
101
|
+
* Writes retry only confirmed rate-limit rejection, never an uncertain outcome
|
|
102
|
+
*
|
|
103
|
+
* Valid X-RateLimit-Bucket metadata tells the client which requests share a rate limit, without application configuration.
|
|
104
|
+
* For known Fluxer routes, requests remain grouped by their channel, community, user, webhook or invite resource.
|
|
105
|
+
* Unknown routes reporting the same bucket identifier share one rate-limit group within this client.
|
|
106
|
+
* Initial requests can still receive 429 before the server's grouping is learned.
|
|
107
|
+
* Each client tracks at most 2,048 route aliases and 2,048 rate-limit groups. Unused aliases expire after five minutes unless a pause is still active.
|
|
108
|
+
* An older response cannot replace a newer grouping or lift a rate-limit pause early. Regrouping preserves an existing pause until it expires.
|
|
109
|
+
* When tracking is full, the client discards groups without active pauses first. If active pauses fill capacity or a request cannot be grouped safely,
|
|
110
|
+
* the client waits rather than ignoring a known limit. Closing the client clears this temporary tracking data
|
|
111
|
+
*
|
|
112
|
+
* Each gateway connection accepts complete uncompressed text messages up to 100 MiB (104,857,600 bytes), including fragments combined.
|
|
113
|
+
* The transport enforces this fixed receive ceiling before UTF-8 decoding and JSON parsing. It preserves the previous transport default.
|
|
114
|
+
* This is not a Fluxer server-to-client maximum, an outbound command limit, a subscription budget or a JavaScript heap bound.
|
|
115
|
+
* Larger messages fail with ConnectionError, phase gateway, reason protocol and status 1009. Invalid UTF-8 uses status 1007.
|
|
116
|
+
* Neither failure retries automatically.
|
|
117
|
+
* A failed standalone connect waits for cleanup and allows another explicit connect.
|
|
118
|
+
* A failed managed run or established connection ends the client lifetime.
|
|
119
|
+
* Use waitForClose to observe later failures
|
|
120
|
+
*
|
|
121
|
+
* @category Client and lifecycle
|
|
122
|
+
*/
|
|
123
|
+
export interface Client<M extends MessageCore = Message> extends ClientState, AsyncDisposable {
|
|
124
|
+
/**
|
|
125
|
+
* Find this client's instance endpoints and get pure asset and link URL helpers for that instance
|
|
126
|
+
*/
|
|
127
|
+
readonly instance: Instance
|
|
128
|
+
/**
|
|
129
|
+
* Search the public community directory and manage listings, without joining communities or finding instance endpoints
|
|
130
|
+
*/
|
|
131
|
+
readonly discovery: Discovery
|
|
132
|
+
/**
|
|
133
|
+
* Set bot status or select member presence updates, restored after gateway reconnects but not stored across process restarts
|
|
134
|
+
*/
|
|
135
|
+
readonly presence: Presence
|
|
136
|
+
/**
|
|
137
|
+
* Read documented fields for the authenticated bot's application, without owner details or management operations
|
|
138
|
+
*/
|
|
139
|
+
readonly application: CurrentBotApplication
|
|
140
|
+
/**
|
|
141
|
+
* Fetch public account data or look up an account in the optional local cache
|
|
142
|
+
*/
|
|
143
|
+
readonly users: Users
|
|
144
|
+
/**
|
|
145
|
+
* Open and manage one-to-one or group conversations, or send a direct message.
|
|
146
|
+
* Use messages for other content operations once the channel IDs are known
|
|
147
|
+
*/
|
|
148
|
+
readonly directMessages: DirectMessages<M>
|
|
149
|
+
/**
|
|
150
|
+
* Manage webhooks with the bot's permissions, returning metadata without tokens
|
|
151
|
+
*/
|
|
152
|
+
readonly webhooks: Webhooks
|
|
153
|
+
/**
|
|
154
|
+
* Manage community roles or look up roles in an explicitly enabled local cache
|
|
155
|
+
*/
|
|
156
|
+
readonly roles: Roles
|
|
157
|
+
/**
|
|
158
|
+
* Calculate permission flags locally or from fresh resource reads, without caching decisions
|
|
159
|
+
*/
|
|
160
|
+
readonly permissions: PermissionHelpers
|
|
161
|
+
/**
|
|
162
|
+
* Read community data and memberships, or use the optional local community cache
|
|
163
|
+
*/
|
|
164
|
+
readonly guilds: Guilds
|
|
165
|
+
/**
|
|
166
|
+
* Inspect, create, list and revoke invite codes, without using them to join or retaining codes
|
|
167
|
+
*/
|
|
168
|
+
readonly invites: Invites
|
|
169
|
+
/**
|
|
170
|
+
* Read filtered audit pages or bounded entry scans, without retaining an audit cache
|
|
171
|
+
*/
|
|
172
|
+
readonly auditLogs: AuditLogs
|
|
173
|
+
/**
|
|
174
|
+
* Manage custom emoji and optionally look up their cached metadata
|
|
175
|
+
*/
|
|
176
|
+
readonly emojis: Emojis
|
|
177
|
+
/**
|
|
178
|
+
* Manage custom stickers and optionally look up their cached metadata
|
|
179
|
+
*/
|
|
180
|
+
readonly stickers: Stickers
|
|
181
|
+
/**
|
|
182
|
+
* Read or change community channels and optionally look up cached channel data
|
|
183
|
+
*/
|
|
184
|
+
readonly channels: Channels
|
|
185
|
+
/**
|
|
186
|
+
* Create threads and forum posts, change, list and search threads, and manage thread members
|
|
187
|
+
*/
|
|
188
|
+
readonly threads: Threads<M>
|
|
189
|
+
/**
|
|
190
|
+
* Read, moderate and ban community members and change their assigned roles
|
|
191
|
+
*/
|
|
192
|
+
readonly members: Members
|
|
193
|
+
/**
|
|
194
|
+
* Refresh signed attachment URLs explicitly or download from this instance's discovered media path with byte limits
|
|
195
|
+
*/
|
|
196
|
+
readonly attachments: Attachments
|
|
197
|
+
/**
|
|
198
|
+
* Read, send, edit and delete messages, use the optional message cache, or collect future messages and reactions
|
|
199
|
+
*/
|
|
200
|
+
readonly messages: Messages<M>
|
|
201
|
+
/**
|
|
202
|
+
* Enumerate or release locally cached data.
|
|
203
|
+
* Caching is disabled unless enabled in ClientOptions.cache
|
|
204
|
+
*/
|
|
205
|
+
readonly cache: ClientCache<M>
|
|
206
|
+
/**
|
|
207
|
+
* Send requests to Fluxer API routes without an SDK method, through this client's shared request scheduling
|
|
208
|
+
*/
|
|
209
|
+
readonly rest: RestRequests
|
|
210
|
+
/**
|
|
211
|
+
* Send gateway commands without an SDK method on this client's ready shards
|
|
212
|
+
*/
|
|
213
|
+
readonly gateway: GatewayCommands
|
|
214
|
+
/**
|
|
215
|
+
* Change the log level and per-category levels while the client runs
|
|
216
|
+
*/
|
|
217
|
+
readonly logging: ClientLogging
|
|
218
|
+
/**
|
|
219
|
+
* Register a handler for future events of one type, before or after connecting the client.
|
|
220
|
+
* Use the returned Subscription to close it and observe waitForClose.
|
|
221
|
+
* No history is replayed and HTTP operations do not create events locally.
|
|
222
|
+
* Bulk deletion events do not also call messageDelete handlers.
|
|
223
|
+
* Enabled cache updates happen before handlers and do not depend on a subscription succeeding, including its overflow
|
|
224
|
+
*
|
|
225
|
+
* Handlers run one at a time by default.
|
|
226
|
+
* Increasing concurrency keeps receive-order starts, but not completion order.
|
|
227
|
+
* Each subscription has its own ordering and queue, with no ordering across event types and no exactly-once delivery.
|
|
228
|
+
* Default pending limits are 256 payloads or 4 MiB of full source JSON, not total process memory.
|
|
229
|
+
* A bulk payload counts once, including all its bytes.
|
|
230
|
+
* A full queue drops its oldest waiting event by default, logs a Warn record and counts the drop, and the subscription keeps running.
|
|
231
|
+
* Choose overflow stop to close only this subscription instead, observable through the returned handle
|
|
232
|
+
*
|
|
233
|
+
* A failed handler is isolated and not retried.
|
|
234
|
+
* A default API handler fails when it throws, rejects, or returns or resolves an Err result, and a native handler fails when its Effect fails.
|
|
235
|
+
* Its original failure, with the event name, subscription ID and message IDs, goes to this subscription's onError, else the client-level onError, else an Error log record with the full message, stack and cause chain.
|
|
236
|
+
* Observe the subscription's outcome as well as the client's run or waitForClose outcome.
|
|
237
|
+
* Registration misuse, such as an unknown event name, fails with a suggested correction
|
|
238
|
+
*
|
|
239
|
+
* Each invocation also receives an EventContext with the receiving shard and the received frame size.
|
|
240
|
+
* Event middleware registered with use runs around every handler invocation, including those of subscriptions registered earlier
|
|
241
|
+
*
|
|
242
|
+
* @remarks
|
|
243
|
+
* The handler receives the event payload, a signal requesting cancellation on close or shutdown, and the EventContext.
|
|
244
|
+
* Return or await asynchronous handler work. Other return values are ignored.
|
|
245
|
+
* The SDK cannot stop promises that ignore the signal or manage work the handler did not return.
|
|
246
|
+
* Registration returns the Subscription synchronously.
|
|
247
|
+
* Invalid arguments throw ConfigurationError, and unexpected failures throw SdkDefect.
|
|
248
|
+
* Registration after shutdown began, such as from a handler still running during shutdown, is not misuse: It returns
|
|
249
|
+
* an already-closed Subscription whose handler never runs and whose waitForClose succeeds, and writes a Warn log
|
|
250
|
+
* record with code events.registeredAfterShutdown
|
|
251
|
+
*
|
|
252
|
+
* @example
|
|
253
|
+
* ```ts
|
|
254
|
+
* import { describeError, type Client, type Message } from "@neontechspace/fluxerly"
|
|
255
|
+
* export function debugHandlerExample(
|
|
256
|
+
* client: Client,
|
|
257
|
+
* handle: (message: Message) => Promise<void>,
|
|
258
|
+
* inspectFailure: (text: string) => void,
|
|
259
|
+
* ) {
|
|
260
|
+
* return client.on("messageCreate", (event) => handle(event), {
|
|
261
|
+
* // The report holds the original error and the message IDs, never its content
|
|
262
|
+
* onError: (report) => inspectFailure(`${report.describe()}\n${describeError(report.error)}`),
|
|
263
|
+
* })
|
|
264
|
+
* }
|
|
265
|
+
* ```
|
|
266
|
+
*/
|
|
267
|
+
on<K extends EventName>(
|
|
268
|
+
event: K,
|
|
269
|
+
handler: (event: EventMap<M>[K], signal: AbortSignal, context: EventContext) => unknown,
|
|
270
|
+
options?: EventHandlerOptions<EventMap<M>[K]>,
|
|
271
|
+
): Subscription
|
|
272
|
+
/**
|
|
273
|
+
* Add event middleware that runs around every later on handler invocation, for every event and subscription, including
|
|
274
|
+
* subscriptions registered before it, command routers and runBot handlers.
|
|
275
|
+
* Middleware runs in registration order, the first registered outermost, and each invocation keeps the middleware registered when it started.
|
|
276
|
+
* It receives the invocation's event name, payload, EventContext and subscription ID, and a next step that runs the rest of the chain and the handler.
|
|
277
|
+
* Not calling next skips the handler for that invocation. Calling next again returns the same completion without running the handler twice,
|
|
278
|
+
* and calling it after the middleware finished reports a ConfigurationError instead of running the handler.
|
|
279
|
+
* The handler slot stays occupied until the middleware and any next it started have finished.
|
|
280
|
+
* The next step completes whether or not the rest of the chain failed and never fails itself, so a handler failure is always reported.
|
|
281
|
+
* A failing middleware is reported like a failed handler, with the event name, subscription ID and message IDs, to the subscription's onError, else the client-level onError, else an Error log record.
|
|
282
|
+
* Middleware does not run for subscribe, waitFor, message collectors or reaction collectors.
|
|
283
|
+
* Registration misuse, such as a middleware that is not a function, fails like other registration misuse
|
|
284
|
+
*
|
|
285
|
+
* @remarks
|
|
286
|
+
* The middleware receives the invocation, a next function returning a promise and the handler's cancellation signal.
|
|
287
|
+
* Registration returns synchronously. The returned registration's close stops applying the middleware to later invocations.
|
|
288
|
+
* A middleware that is not a function throws ConfigurationError, a closing or closed client throws ClientClosedError, and unexpected failures throw SdkDefect
|
|
289
|
+
*
|
|
290
|
+
* @example
|
|
291
|
+
* ```ts
|
|
292
|
+
* import type { Client } from "@neontechspace/fluxerly"
|
|
293
|
+
* export function timingMiddlewareExample(client: Client, record: (event: string, durationMs: number) => void) {
|
|
294
|
+
* return client.use(async (invocation, next) => {
|
|
295
|
+
* const startedAt = performance.now()
|
|
296
|
+
* await next()
|
|
297
|
+
* record(invocation.event, performance.now() - startedAt)
|
|
298
|
+
* })
|
|
299
|
+
* }
|
|
300
|
+
* ```
|
|
301
|
+
*/
|
|
302
|
+
use(middleware: EventMiddleware<M>): MiddlewareRegistration
|
|
303
|
+
/**
|
|
304
|
+
* Run a task later, once or repeatedly, as part of this client's lifetime instead of an event handler or command.
|
|
305
|
+
* Scheduling returns at once, so a handler or command that schedules a task finishes without waiting for it and does
|
|
306
|
+
* not hold its slot. Without options the task runs once as soon as possible, which suits background work started in
|
|
307
|
+
* runBot setup. The delay and interval follow the Clock of the client's other timers, and the interval counts from the
|
|
308
|
+
* end of each run, so runs never overlap
|
|
309
|
+
*
|
|
310
|
+
* A failed run is reported with its original error to the client-level onError, else an Error log record with code
|
|
311
|
+
* lifecycle.taskFailed. A repeating task keeps its schedule after a failed run, so a passing problem such as a network
|
|
312
|
+
* error does not end it, and a lasting one is reported at every run
|
|
313
|
+
*
|
|
314
|
+
* Shutdown cancels the runs that have not started. A draining shutdown, such as a stop requested from runBot, starts no
|
|
315
|
+
* new run and lets runs in progress finish within its drainMs, and then shutdown cancels what is left.
|
|
316
|
+
* One lifecycle.tasksCancelled Info record counts the tasks that shutdown ended with a run waiting or in progress.
|
|
317
|
+
* Tasks are kept in memory only, so a restart forgets them.
|
|
318
|
+
* Scheduling after shutdown began, including during a drain, is refused with ClientClosedError, and invalid options
|
|
319
|
+
* are misuse with ConfigurationError
|
|
320
|
+
*
|
|
321
|
+
* @remarks
|
|
322
|
+
* The task receives a signal that aborts when shutdown cancels its run. Return or await its asynchronous work: A throw,
|
|
323
|
+
* a rejection, or a returned or resolved Err result fails the run. The SDK cannot stop a promise that ignores the signal.
|
|
324
|
+
* Returns the task's handle synchronously. A task that is not a function and invalid options throw ConfigurationError,
|
|
325
|
+
* scheduling after shutdown began throws ClientClosedError, and an option getter that throws causes SdkDefect.
|
|
326
|
+
* A waiting task keeps Node.js running until it ends or closes, or the client shuts down
|
|
327
|
+
*
|
|
328
|
+
* @example
|
|
329
|
+
* ```ts
|
|
330
|
+
* import type { Client } from "@neontechspace/fluxerly"
|
|
331
|
+
* export function hourlyStatusExample(client: Client, channelId: string) {
|
|
332
|
+
* return client.schedule((signal) => client.messages.send(channelId, "Still running", { signal }), {
|
|
333
|
+
* intervalMs: 3_600_000,
|
|
334
|
+
* })
|
|
335
|
+
* }
|
|
336
|
+
* ```
|
|
337
|
+
*/
|
|
338
|
+
schedule(task: (signal: AbortSignal) => unknown, options?: ScheduleOptions): ScheduledTask
|
|
339
|
+
/**
|
|
340
|
+
* Receive future events of one type in receive order through a bounded buffer.
|
|
341
|
+
* No history is replayed and bulk events are not split into individual events.
|
|
342
|
+
* Enabled cache changes happen before delivery and remain independent of this subscription and its overflow.
|
|
343
|
+
* Overflow fails this subscription rather than silently dropping events.
|
|
344
|
+
* Options govern the source buffer only
|
|
345
|
+
*
|
|
346
|
+
* @remarks
|
|
347
|
+
* Returns a subscription synchronously.
|
|
348
|
+
* Call next for each payload and close when finished, or use `await using`.
|
|
349
|
+
* Invalid arguments throw ConfigurationError, and unexpected failures throw SdkDefect.
|
|
350
|
+
* Registration after shutdown began is not misuse: It returns an already-closed subscription whose next returns
|
|
351
|
+
* Ok(null) and whose waitForClose succeeds, and writes a Warn log record with code events.registeredAfterShutdown
|
|
352
|
+
*/
|
|
353
|
+
subscribe<K extends EventName>(event: K, options?: EventBufferOptions): EventSubscription<K, M>
|
|
354
|
+
/**
|
|
355
|
+
* Wait for the first future event of one type that passes the supplied synchronous filter.
|
|
356
|
+
* Observation starts without connecting the client, reading history or cache, or making a remote request
|
|
357
|
+
*
|
|
358
|
+
* The default timeout is 30,000 ms from registration.
|
|
359
|
+
* A timeout or invalid or throwing filter fails with EventWaitError without input or exception text.
|
|
360
|
+
* Inspect a filter exception inside the filter before rethrowing if needed.
|
|
361
|
+
* Buffer limits match subscribe.
|
|
362
|
+
* Reconnection can miss events and does not reset the deadline.
|
|
363
|
+
* Overflow, invalid configuration and client closure remain distinct failures
|
|
364
|
+
*
|
|
365
|
+
* Completion or cancellation releases the queue, filter, timer and subscription without shutting down the client.
|
|
366
|
+
* This returns an event, not a registration handle.
|
|
367
|
+
* Use subscribe, a scoped on subscription or a collector to confirm registration before triggering an action
|
|
368
|
+
*
|
|
369
|
+
* @remarks
|
|
370
|
+
* Observation starts when called.
|
|
371
|
+
* Abort returns CancelledError after subscription cleanup.
|
|
372
|
+
* Unexpected SDK or cleanup failures reject with SdkDefect
|
|
373
|
+
*
|
|
374
|
+
* @example
|
|
375
|
+
* ```ts
|
|
376
|
+
* import type { Client } from "@neontechspace/fluxerly"
|
|
377
|
+
* export function eventWaitExample(client: Client, channelId: string, userId: string) {
|
|
378
|
+
* return client.waitFor("typingStart", {
|
|
379
|
+
* filter: event => event.channelId === channelId && event.userId === userId,
|
|
380
|
+
* timeoutMs: 10_000,
|
|
381
|
+
* })
|
|
382
|
+
* }
|
|
383
|
+
* ```
|
|
384
|
+
*/
|
|
385
|
+
waitFor<K extends EventName>(
|
|
386
|
+
event: K,
|
|
387
|
+
options?: DefaultEventWaitOptions<K, M>,
|
|
388
|
+
): ResultAsync<EventMap<M>[K], EventWaitFailure | CancelledError | ConfigurationError>
|
|
389
|
+
/**
|
|
390
|
+
* Read a frozen local report of active work, queues and cache occupancy.
|
|
391
|
+
* No request, telemetry or persistent record is created.
|
|
392
|
+
* The report excludes tokens, routes, resource IDs and payloads.
|
|
393
|
+
* Counts cover only this client's assigned shards and local work.
|
|
394
|
+
* Event counts include open sources, message and reaction collectors and executing subscription handlers, not an enforced client-wide admission quota.
|
|
395
|
+
* Accounted cache and queue bytes are not heap memory, process memory or remote storage.
|
|
396
|
+
* After closure, configured limits remain visible and retained counts show cleanup progress.
|
|
397
|
+
* These values do not prove remote completeness or gateway readiness.
|
|
398
|
+
* This runs immediately and takes no signal
|
|
399
|
+
*/
|
|
400
|
+
diagnostics(): ClientDiagnostics
|
|
401
|
+
/**
|
|
402
|
+
* Connect the gateway and complete when every shard assigned to this client has authenticated and received READY.
|
|
403
|
+
* This does not wait for GUILD_CREATE, a full community roster or all resources to load.
|
|
404
|
+
* Use connect when startup must finish separately from the client's lifetime.
|
|
405
|
+
* After success, the connection and automatic recovery continue until shutdown or permanent failure, and waitForClose observes that later outcome
|
|
406
|
+
*
|
|
407
|
+
* The call controls startup only, using the client's connection settings.
|
|
408
|
+
* Cancellation or an expected failure before initial readiness waits for shard cleanup and leaves the client Disconnected, so connect can be tried again.
|
|
409
|
+
* An already-connected client not managed by run succeeds without opening another socket.
|
|
410
|
+
* A competing call fails with ClientBusyError without disturbing active work, and closing clients fail with ClientClosedError.
|
|
411
|
+
* After initial readiness, permanent failure of a required shard in a multi-shard plan closes the client.
|
|
412
|
+
* The waitForClose method retains that failure as ShardConnectionError with shardId and failure
|
|
413
|
+
*
|
|
414
|
+
* @remarks
|
|
415
|
+
* After success, the startup signal no longer affects the session.
|
|
416
|
+
* Unexpected SDK or cleanup failures reject with SdkDefect
|
|
417
|
+
*/
|
|
418
|
+
connect(options?: OperationOptions): ResultAsync<void, ConnectError | CancelledError | ConfigurationError>
|
|
419
|
+
/**
|
|
420
|
+
* Start and maintain a gateway connection for the client's whole lifetime, including transient recovery, until shutdown, permanent failure or cancellation.
|
|
421
|
+
* Use run when one owner should control startup, lifetime observation and permanent cleanup together.
|
|
422
|
+
* Once run is accepted, its end always leaves the client Closed after cleanup.
|
|
423
|
+
* Success means normal shutdown, not merely reaching READY.
|
|
424
|
+
* A permanent required-shard failure after readiness closes a multi-shard client with ShardConnectionError
|
|
425
|
+
*
|
|
426
|
+
* The run method requires a Disconnected client with no competing connection work.
|
|
427
|
+
* A rejected or pre-cancelled call does not take over or close the client.
|
|
428
|
+
* Expected connection, busy and closed failures use ConnectError
|
|
429
|
+
*
|
|
430
|
+
* @remarks
|
|
431
|
+
* The returned ResultAsync stays pending while connected or recovering, and one AbortSignal controls the whole lifetime.
|
|
432
|
+
* Cancellation returns CancelledError.
|
|
433
|
+
* Unexpected SDK or cleanup failures reject with SdkDefect, including failures during cancellation cleanup
|
|
434
|
+
*
|
|
435
|
+
* @example
|
|
436
|
+
* ```ts
|
|
437
|
+
* import { createClient } from "@neontechspace/fluxerly"
|
|
438
|
+
*
|
|
439
|
+
* export async function runClient(token: string | undefined, signal: AbortSignal): Promise<void> {
|
|
440
|
+
* await using client = createClient({ token })
|
|
441
|
+
* const result = await client.run({ signal })
|
|
442
|
+
* if (result.isErr() && result.error._tag !== "CancelledError") console.error(result.error.message)
|
|
443
|
+
* }
|
|
444
|
+
* ```
|
|
445
|
+
*/
|
|
446
|
+
run(options?: OperationOptions): ResultAsync<void, ConnectError | CancelledError | ConfigurationError>
|
|
447
|
+
/**
|
|
448
|
+
* Wait for this client's final shutdown or permanent connection failure, without starting or owning a connection.
|
|
449
|
+
* Recovery keeps the wait pending.
|
|
450
|
+
* An expected connect failure before initial readiness also leaves this wait pending, because the client can connect again.
|
|
451
|
+
* Multiple or later waiters receive the same retained outcome.
|
|
452
|
+
* Normal shutdown succeeds with no value, and a permanent connection failure fails with ConnectionFailure.
|
|
453
|
+
* After initial readiness, required-shard failure in a multi-shard plan is retained as ShardConnectionError.
|
|
454
|
+
* Cancelling this wait affects only this waiter, not the client or other waiters
|
|
455
|
+
*
|
|
456
|
+
* @remarks
|
|
457
|
+
* Unexpected background or cleanup failures reject with SdkDefect
|
|
458
|
+
*/
|
|
459
|
+
waitForClose(options?: OperationOptions): ResultAsync<void, ConnectionFailure | CancelledError | ConfigurationError>
|
|
460
|
+
/**
|
|
461
|
+
* Permanently close this client and wait for startup, recovery, sockets and request cleanup.
|
|
462
|
+
* Credentials, cached references, presence intent and expiry timers are released.
|
|
463
|
+
* Active handlers and message and reaction collector callbacks are cancelled.
|
|
464
|
+
* Pass drainMs to first stop accepting events and let running handlers and REST requests finish for up to that many
|
|
465
|
+
* milliseconds, as runBot does when asked to stop. See ShutdownOptions.
|
|
466
|
+
* Events still waiting in a subscription's queue are discarded, with one events.discarded Info record for each
|
|
467
|
+
* subscription that had any, and a drain records the events it refused in one events.refused Info record.
|
|
468
|
+
* Both kinds are counted in diagnostics().counters.eventsDropped.closed.
|
|
469
|
+
* Collector callback cleanup is awaited, so a collector callback that ignores cancellation can delay shutdown.
|
|
470
|
+
* Repeated and concurrent calls share the shutdown outcome.
|
|
471
|
+
* A pending connection call fails with ClientClosedError rather than cancellation.
|
|
472
|
+
* Established sockets get up to 5,000 ms to close gracefully, then are terminated and their close events awaited.
|
|
473
|
+
* Pending handshakes are terminated immediately, and forced termination can discard unsent data.
|
|
474
|
+
* Cleanup cannot be abandoned, and this method never exits the application or undoes remote writes.
|
|
475
|
+
* Create a new client to connect again.
|
|
476
|
+
* A failed cleanup step, such as a socket close that throws or an event handler or collector callback whose cancellation cleanup fails, is also logged at Error in the lifecycle category and counted in diagnostics().counters.cleanupFailures
|
|
477
|
+
*
|
|
478
|
+
* @remarks
|
|
479
|
+
* Handlers and callbacks receive cancellation through their signal, and returned collector callback promises are awaited.
|
|
480
|
+
* Application reporter promises are not awaited.
|
|
481
|
+
* No signal is accepted.
|
|
482
|
+
* Invalid options throw ConfigurationError before shutdown starts.
|
|
483
|
+
* Success is Ok(undefined) after cleanup.
|
|
484
|
+
* Unexpected SDK or cleanup failures reject with SdkDefect, whose reasons keep every interruption and fault value
|
|
485
|
+
*
|
|
486
|
+
* @example
|
|
487
|
+
* ```ts
|
|
488
|
+
* import type { Client } from "@neontechspace/fluxerly"
|
|
489
|
+
* export function stopGracefully(client: Client) {
|
|
490
|
+
* // Let running handlers finish their replies for up to 10 seconds
|
|
491
|
+
* return client.shutdown({ drainMs: 10_000 })
|
|
492
|
+
* }
|
|
493
|
+
* ```
|
|
494
|
+
*/
|
|
495
|
+
shutdown(options?: ShutdownOptions): ResultAsync<void, never>
|
|
496
|
+
/**
|
|
497
|
+
* Shut down this client and wait for cleanup, as `await using` does at the end of a block.
|
|
498
|
+
* Unexpected cleanup failures reject with SdkDefect, as shutdown does
|
|
499
|
+
*/
|
|
500
|
+
[Symbol.asyncDispose](): Promise<void>
|
|
501
|
+
/**
|
|
502
|
+
* Receive the current connection state, then later state updates.
|
|
503
|
+
* While a subscriber is busy, only the newest pending state is kept.
|
|
504
|
+
* Slow subscribers can miss intermediate states without delaying recovery.
|
|
505
|
+
* Ending the subscription drops pending delivery without stopping the client.
|
|
506
|
+
* Use waitForClose, not state changes, to observe the client's terminal failure
|
|
507
|
+
*
|
|
508
|
+
* @remarks
|
|
509
|
+
* The listener runs asynchronously, one call at a time per subscriber, awaiting a returned promise.
|
|
510
|
+
* A listener that throws, rejects or returns an Err result goes to the client-level onError as an observer failure, or is logged at Error, and does not close the client.
|
|
511
|
+
* The returned observer's close ends delivery, but cannot cancel listener code already running
|
|
512
|
+
*/
|
|
513
|
+
observeState(listener: (state: ConnectionState) => unknown): StateObserver
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
/**
|
|
517
|
+
* A task started with client.schedule. It ends by itself after its only run, or when the client shuts down
|
|
518
|
+
*
|
|
519
|
+
* @category Client and lifecycle
|
|
520
|
+
*/
|
|
521
|
+
export interface ScheduledTask {
|
|
522
|
+
/**
|
|
523
|
+
* Cancel every later run. A run in progress continues, and a draining shutdown still waits for it.
|
|
524
|
+
* The task can close itself from its own run. Repeated calls do nothing
|
|
525
|
+
*/
|
|
526
|
+
close(): void
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
/**
|
|
530
|
+
* Create a bot client from a token, initially Disconnected
|
|
531
|
+
*
|
|
532
|
+
* Use `run` or `connect` to receive gateway events. HTTP requests work without connecting.
|
|
533
|
+
* Always finish with `shutdown` unless an accepted `run` already manages the client's full lifetime
|
|
534
|
+
*
|
|
535
|
+
* @remarks
|
|
536
|
+
* **Creation and configuration**
|
|
537
|
+
*
|
|
538
|
+
* Creation validates configuration synchronously without authenticating the token or opening sockets.
|
|
539
|
+
* No timers or process signal handlers are started.
|
|
540
|
+
* Invalid options throw `ConfigurationError` without the rejected value.
|
|
541
|
+
* An unsupported option key, such as a misspelled `logging`, throws with a hint naming the closest supported key.
|
|
542
|
+
* A missing or blank token, such as an unset environment variable, throws `ConfigurationError` with a hint naming that likely cause.
|
|
543
|
+
* Unexpected creation failures throw `SdkDefect`. An option getter that throws produces code `application.defect` with the thrown value as the cause
|
|
544
|
+
*
|
|
545
|
+
* **Instance and caching**
|
|
546
|
+
*
|
|
547
|
+
* Hosted Fluxer is selected by default.
|
|
548
|
+
* For a self-hosted instance, pass its root and let the SDK discover API, gateway and URL endpoints when first needed.
|
|
549
|
+
* HTTPS and WSS are required unless that explicit instance enables allowInsecure for HTTP and WS
|
|
550
|
+
*
|
|
551
|
+
* Caching is disabled by default.
|
|
552
|
+
* Cache settings are copied and validated without calling retention policies or reporters.
|
|
553
|
+
* Unknown cache or message-cache keys fail validation.
|
|
554
|
+
* The messageFields option selects received message fields once for this client's lifetime
|
|
555
|
+
*
|
|
556
|
+
* **Connection and sharding**
|
|
557
|
+
*
|
|
558
|
+
* Gateway startup defaults to a 30,000 ms overall budget and three total attempts per assigned shard.
|
|
559
|
+
* An explicit sharding plan fixes this client's assigned IDs for its lifetime, while automatic sharding and a client
|
|
560
|
+
* without sharding settings may move to a larger plan when Fluxer asks for more shards.
|
|
561
|
+
* Shard zero receives direct-message gateway traffic.
|
|
562
|
+
* Request and cache limits still apply across the whole client, not separately to each shard
|
|
563
|
+
*
|
|
564
|
+
* @example
|
|
565
|
+
* ```ts
|
|
566
|
+
* import { createClient } from "@neontechspace/fluxerly"
|
|
567
|
+
*
|
|
568
|
+
* export function shardingExample(token: string) {
|
|
569
|
+
* return createClient({ token, sharding: { totalShards: 4, shardIds: [0, 2] } })
|
|
570
|
+
* }
|
|
571
|
+
* ```
|
|
572
|
+
*
|
|
573
|
+
* @category Client and lifecycle
|
|
574
|
+
*/
|
|
575
|
+
export function createClient<const F extends MessageFields | undefined = undefined>(
|
|
576
|
+
options: ClientOptions<F>,
|
|
577
|
+
): Client<SelectedMessage<F>> {
|
|
578
|
+
type M = SelectedMessage<F>
|
|
579
|
+
const scope = Scope.makeUnsafe()
|
|
580
|
+
const exit = Effect.runSyncExit(makeClient<F>(options, scope))
|
|
581
|
+
if (Exit.isFailure(exit)) {
|
|
582
|
+
if (Cause.hasDies(exit.cause)) throw new SdkDefect("createClient", causeReasons(exit.cause))
|
|
583
|
+
const failure = exit.cause.reasons.find((reason) => reason._tag === "Fail")
|
|
584
|
+
if (failure?._tag === "Fail") {
|
|
585
|
+
// The configuration error was created inside validation, so its stack starts at the caller's line instead
|
|
586
|
+
Error.captureStackTrace(failure.error, createClient)
|
|
587
|
+
throw failure.error
|
|
588
|
+
}
|
|
589
|
+
throw new SdkDefect("createClient", causeReasons(exit.cause))
|
|
590
|
+
}
|
|
591
|
+
const owner = exit.value
|
|
592
|
+
const context = defaultContext(owner)
|
|
593
|
+
const { execute } = context
|
|
594
|
+
const subscription = (source: Pick<EventSource, "stop" | "closed" | "id">): Subscription => {
|
|
595
|
+
const waitForClose = (options?: OperationOptions) =>
|
|
596
|
+
execute(Deferred.await(source.closed), "subscription.waitForClose", options)
|
|
597
|
+
return Object.freeze({
|
|
598
|
+
id: source.id,
|
|
599
|
+
close: () => source.stop(),
|
|
600
|
+
waitForClose,
|
|
601
|
+
[Symbol.asyncDispose]: async () => {
|
|
602
|
+
source.stop()
|
|
603
|
+
// The overflow outcome stays readable through waitForClose, so disposal only awaits cleanup
|
|
604
|
+
await waitForClose()
|
|
605
|
+
},
|
|
606
|
+
})
|
|
607
|
+
}
|
|
608
|
+
// Registration misuse throws its ConfigurationError, as other local misuse does. A closing client is not misuse: the
|
|
609
|
+
// event bus returns an already-closed source for it
|
|
610
|
+
const register = <A, E>(effect: Effect.Effect<A, E>, operation: "on" | "subscribe"): A => {
|
|
611
|
+
const exit = Effect.runSyncExit(owner.logging.provide(effect))
|
|
612
|
+
if (Exit.isSuccess(exit)) return exit.value
|
|
613
|
+
if (Cause.hasDies(exit.cause) || Cause.hasInterrupts(exit.cause))
|
|
614
|
+
throw new SdkDefect(operation, causeReasons(exit.cause))
|
|
615
|
+
const reason = exit.cause.reasons.find((reason) => reason._tag === "Fail")
|
|
616
|
+
if (reason?._tag === "Fail") throw reason.error
|
|
617
|
+
throw new SdkDefect(operation, causeReasons(exit.cause))
|
|
618
|
+
}
|
|
619
|
+
const shutdown = (options?: ShutdownOptions) => {
|
|
620
|
+
let drainMs: number | ConfigurationError
|
|
621
|
+
try {
|
|
622
|
+
drainMs = shutdownDrainMs(options)
|
|
623
|
+
} catch (error) {
|
|
624
|
+
// A throwing option getter is an application fault, reported like other default-API input faults
|
|
625
|
+
throw new SdkDefect("shutdown", [defectReason(error, "application")])
|
|
626
|
+
}
|
|
627
|
+
if (drainMs instanceof ConfigurationError) {
|
|
628
|
+
Error.captureStackTrace(drainMs, shutdown)
|
|
629
|
+
throw drainMs
|
|
630
|
+
}
|
|
631
|
+
return new ResultAsync<void, never>(
|
|
632
|
+
Effect.runPromiseExit(
|
|
633
|
+
owner.logging.provide(owner.shutdown(drainMs).pipe(Effect.ensuring(Scope.close(scope, Exit.void)))),
|
|
634
|
+
).then((exit) => {
|
|
635
|
+
const result = fromExit(exit, "shutdown")
|
|
636
|
+
if (result.isErr())
|
|
637
|
+
throw new SdkDefect("shutdown", Exit.isFailure(exit) ? causeReasons(exit.cause) : [])
|
|
638
|
+
return ok(undefined)
|
|
639
|
+
}),
|
|
640
|
+
)
|
|
641
|
+
}
|
|
642
|
+
const schedule = (task: (signal: AbortSignal) => unknown, options?: ScheduleOptions): ScheduledTask => {
|
|
643
|
+
if (typeof task !== "function") throw new ConfigurationError("task", "The scheduled task must be a function")
|
|
644
|
+
let timing: ReturnType<typeof scheduleTiming>
|
|
645
|
+
try {
|
|
646
|
+
timing = scheduleTiming(options)
|
|
647
|
+
} catch (error) {
|
|
648
|
+
// A throwing option getter is an application fault, reported like other default-API input faults
|
|
649
|
+
throw new SdkDefect("schedule", [defectReason(error, "application")])
|
|
650
|
+
}
|
|
651
|
+
if (timing instanceof ConfigurationError) {
|
|
652
|
+
Error.captureStackTrace(timing, schedule)
|
|
653
|
+
throw timing
|
|
654
|
+
}
|
|
655
|
+
// @effect-diagnostics-next-line unknownInEffectCatch:off
|
|
656
|
+
const run = Effect.tryPromise({
|
|
657
|
+
try: (signal) => Promise.resolve(task(signal)).then(throwIfErr),
|
|
658
|
+
// Keep the thrown or rejected value itself for the failure report
|
|
659
|
+
catch: (error) => error,
|
|
660
|
+
})
|
|
661
|
+
const close = owner.tasks.start(run, timing, Effect.runSync(owner.logging.provide(Effect.context<never>())))
|
|
662
|
+
return Object.freeze({ close })
|
|
663
|
+
}
|
|
664
|
+
const namespaces = bindDefault(context)
|
|
665
|
+
return registerClientOwner(
|
|
666
|
+
Object.freeze({
|
|
667
|
+
// Listing namespaces instead of spreading them keeps the accessors below in declaration order
|
|
668
|
+
instance: namespaces.instance,
|
|
669
|
+
presence: namespaces.presence,
|
|
670
|
+
cache: namespaces.cache,
|
|
671
|
+
application: namespaces.application,
|
|
672
|
+
users: namespaces.users,
|
|
673
|
+
directMessages: namespaces.directMessages,
|
|
674
|
+
webhooks: namespaces.webhooks,
|
|
675
|
+
emojis: namespaces.emojis,
|
|
676
|
+
stickers: namespaces.stickers,
|
|
677
|
+
auditLogs: namespaces.auditLogs,
|
|
678
|
+
invites: namespaces.invites,
|
|
679
|
+
discovery: namespaces.discovery,
|
|
680
|
+
guilds: namespaces.guilds,
|
|
681
|
+
channels: namespaces.channels,
|
|
682
|
+
threads: namespaces.threads,
|
|
683
|
+
members: namespaces.members,
|
|
684
|
+
permissions: namespaces.permissions,
|
|
685
|
+
roles: namespaces.roles,
|
|
686
|
+
attachments: namespaces.attachments,
|
|
687
|
+
messages: namespaces.messages,
|
|
688
|
+
rest: namespaces.rest,
|
|
689
|
+
gateway: namespaces.gateway,
|
|
690
|
+
logging: namespaces.logging,
|
|
691
|
+
on: <K extends EventName>(
|
|
692
|
+
event: K,
|
|
693
|
+
handler: (event: EventMap<M>[K], signal: AbortSignal, context: EventContext) => unknown,
|
|
694
|
+
options?: EventHandlerOptions<EventMap<M>[K]>,
|
|
695
|
+
) => {
|
|
696
|
+
return register(
|
|
697
|
+
suspendInput(() => {
|
|
698
|
+
if (typeof handler !== "function")
|
|
699
|
+
return Effect.fail(
|
|
700
|
+
new ConfigurationError("handler", "The event handler must be a function"),
|
|
701
|
+
)
|
|
702
|
+
const reporter = options?.onError
|
|
703
|
+
if (reporter !== undefined && typeof reporter !== "function")
|
|
704
|
+
return Effect.fail(
|
|
705
|
+
new ConfigurationError("onError", 'The option "onError" must be a function'),
|
|
706
|
+
)
|
|
707
|
+
return owner.events
|
|
708
|
+
.on(
|
|
709
|
+
event,
|
|
710
|
+
(message, context) =>
|
|
711
|
+
Effect.withFiber((fiber) => {
|
|
712
|
+
// Operations the handler starts hold their rejection records for its outcome
|
|
713
|
+
const rejections = fiberRejectionScope(fiber.context)
|
|
714
|
+
// @effect-diagnostics-next-line unknownInEffectCatch:off
|
|
715
|
+
return Effect.tryPromise({
|
|
716
|
+
try: (signal) =>
|
|
717
|
+
Promise.resolve(
|
|
718
|
+
inRejectionScope(rejections, () =>
|
|
719
|
+
handler(message, signal, context),
|
|
720
|
+
),
|
|
721
|
+
).then(throwIfErr),
|
|
722
|
+
// Keep the thrown or rejected value itself for the failure report
|
|
723
|
+
catch: (error) => error,
|
|
724
|
+
})
|
|
725
|
+
}),
|
|
726
|
+
options,
|
|
727
|
+
reporter ? promiseHook(reporter) : undefined,
|
|
728
|
+
scope,
|
|
729
|
+
)
|
|
730
|
+
.pipe(Effect.map(subscription))
|
|
731
|
+
}),
|
|
732
|
+
"on",
|
|
733
|
+
)
|
|
734
|
+
},
|
|
735
|
+
use: (middleware: EventMiddleware<M>): MiddlewareRegistration => {
|
|
736
|
+
if (typeof middleware !== "function")
|
|
737
|
+
throw new ConfigurationError("middleware", "Event middleware must be a function")
|
|
738
|
+
if (owner.events.closed) throw new ClientClosedError()
|
|
739
|
+
const remove = owner.events.addMiddleware(
|
|
740
|
+
defaultMiddleware(
|
|
741
|
+
middleware as (
|
|
742
|
+
invocation: EventInvocation<MessageCore>,
|
|
743
|
+
next: () => Promise<void>,
|
|
744
|
+
signal: AbortSignal,
|
|
745
|
+
) => unknown,
|
|
746
|
+
),
|
|
747
|
+
)
|
|
748
|
+
return Object.freeze({ close: remove, [Symbol.dispose]: remove })
|
|
749
|
+
},
|
|
750
|
+
schedule,
|
|
751
|
+
subscribe: <K extends EventName>(event: K, options?: EventBufferOptions) =>
|
|
752
|
+
register(
|
|
753
|
+
owner.events.open(event, options).pipe(
|
|
754
|
+
Effect.map((source): EventSubscription<K, M> =>
|
|
755
|
+
Object.freeze({
|
|
756
|
+
...subscription(source),
|
|
757
|
+
next: (options?: OperationOptions) => execute(source.next(), "next", options),
|
|
758
|
+
}),
|
|
759
|
+
),
|
|
760
|
+
),
|
|
761
|
+
"subscribe",
|
|
762
|
+
),
|
|
763
|
+
waitFor: <K extends EventName>(event: K, options?: DefaultEventWaitOptions<K, M>) =>
|
|
764
|
+
execute(waitForEvent(owner.events, event, options, true), "waitFor", options),
|
|
765
|
+
diagnostics: () => owner.diagnostics(),
|
|
766
|
+
get state() {
|
|
767
|
+
return owner.state
|
|
768
|
+
},
|
|
769
|
+
get gatewayLatencyMs() {
|
|
770
|
+
return owner.gatewayLatencyMs
|
|
771
|
+
},
|
|
772
|
+
get shards() {
|
|
773
|
+
return owner.shards
|
|
774
|
+
},
|
|
775
|
+
shardIdForGuild: (guildId: string) => owner.ownedShardForGuild(guildId),
|
|
776
|
+
connect: (options?: OperationOptions) => execute(owner.connect(), "connect", options),
|
|
777
|
+
run: (options?: OperationOptions) => execute(owner.run(), "run", options),
|
|
778
|
+
waitForClose: (options?: OperationOptions) => execute(owner.waitForClose(), "waitForClose", options),
|
|
779
|
+
shutdown,
|
|
780
|
+
[Symbol.asyncDispose]: async () => {
|
|
781
|
+
await shutdown()
|
|
782
|
+
},
|
|
783
|
+
observeState: (listener: (state: ConnectionState) => unknown) => {
|
|
784
|
+
let active = true
|
|
785
|
+
let busy = false
|
|
786
|
+
let pending: ConnectionState | undefined
|
|
787
|
+
const deliver = (state: ConnectionState) => {
|
|
788
|
+
if (!active) return
|
|
789
|
+
if (busy) {
|
|
790
|
+
if (pending !== undefined)
|
|
791
|
+
owner.logging.log({
|
|
792
|
+
level: "debug",
|
|
793
|
+
category: "lifecycle",
|
|
794
|
+
code: "lifecycle.observerCoalesced",
|
|
795
|
+
message: `A state observer was still running, so it skips the ${pending} state and receives ${state} next`,
|
|
796
|
+
fields: { skipped: pending, next: state },
|
|
797
|
+
})
|
|
798
|
+
pending = state
|
|
799
|
+
return
|
|
800
|
+
}
|
|
801
|
+
busy = true
|
|
802
|
+
Promise.resolve()
|
|
803
|
+
.then(() => (active ? listener(state) : undefined))
|
|
804
|
+
.then(throwIfErr)
|
|
805
|
+
.catch((error: unknown) => {
|
|
806
|
+
// The report goes to onError or the log, never back into this observer
|
|
807
|
+
owner.failures.report({ kind: "observer", error })
|
|
808
|
+
})
|
|
809
|
+
.finally(() => {
|
|
810
|
+
busy = false
|
|
811
|
+
if (pending !== undefined) {
|
|
812
|
+
const next = pending
|
|
813
|
+
pending = undefined
|
|
814
|
+
deliver(next)
|
|
815
|
+
}
|
|
816
|
+
})
|
|
817
|
+
}
|
|
818
|
+
const unsubscribe = owner.subscribe(deliver)
|
|
819
|
+
const close = () => {
|
|
820
|
+
active = false
|
|
821
|
+
pending = undefined
|
|
822
|
+
unsubscribe()
|
|
823
|
+
}
|
|
824
|
+
return Object.freeze({ close, [Symbol.dispose]: close })
|
|
825
|
+
},
|
|
826
|
+
}),
|
|
827
|
+
owner,
|
|
828
|
+
)
|
|
829
|
+
}
|