@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,205 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shard plan: Validation of the fixed local shard assignment, automatic plan sizing, scaling hooks and guild-to-shard
|
|
3
|
+
* routing.
|
|
4
|
+
* Invariant: A plan is immutable once known and decides guild ownership, never cache contents or discovery hints. An
|
|
5
|
+
* automatic plan is computed at the first connect from the bot's guild count, and omitted settings start with one shard.
|
|
6
|
+
* The client replaces either with a new, larger automatic plan only when Fluxer closes a shard with 4011 (sharding
|
|
7
|
+
* required), and an explicit plan never changes.
|
|
8
|
+
* Implements [SDK contracts: Connection and recovery](/docs/SDK-CONTRACTS.md#connection-and-recovery)
|
|
9
|
+
*/
|
|
10
|
+
import { ConfigurationError } from "#sdk/errors";
|
|
11
|
+
import { settingError } from "./client/configuration-fields.js";
|
|
12
|
+
import { record } from "./decode/primitives.js";
|
|
13
|
+
import { maxGuildsPerShard, sessionRetentionMs } from "./protocol/gateway.js";
|
|
14
|
+
import { unsupportedKeyHint } from "./suggest.js";
|
|
15
|
+
/** Largest total shard count Fluxer accepts */
|
|
16
|
+
export const maximumShardCount = 16_384;
|
|
17
|
+
/**
|
|
18
|
+
* Average guilds per shard that automatic sharding aims for, four fifths of Fluxer's per-shard ceiling.
|
|
19
|
+
* Fluxer counts the guilds routed to each shard, not the average. The validate_session_guild_count function in
|
|
20
|
+
* fluxer_gateway/src/gateway/gateway_sharding.erl at fluxerapp/fluxer commit 858a2d9e2b987330edd81711bb53e4f7edc0bbcc
|
|
21
|
+
* rejects Identify with 4011 when one shard's own guilds exceed 2,500. Routing by (id >> 22) % totalShards is uneven,
|
|
22
|
+
* so a plan sized to the ceiling almost always overfills a shard above about 20,000 guilds. At 2,000 the fullest of
|
|
23
|
+
* 16,384 shards stays near 2,200 and leaves room for growth before a 4011 closure makes the client move to a larger plan
|
|
24
|
+
*/
|
|
25
|
+
export const guildsPerShard = (maxGuildsPerShard * 4) / 5;
|
|
26
|
+
const defaultShardPlan = immutablePlan(1, [0]);
|
|
27
|
+
const defaultSharding = Object.freeze({
|
|
28
|
+
plan: defaultShardPlan,
|
|
29
|
+
reshard: true,
|
|
30
|
+
identify: undefined,
|
|
31
|
+
sessions: undefined,
|
|
32
|
+
refillCaches: true,
|
|
33
|
+
});
|
|
34
|
+
function hook(value, field, methods) {
|
|
35
|
+
if (value === undefined)
|
|
36
|
+
return undefined;
|
|
37
|
+
// Methods may come from a class prototype, and other members such as a store's own state are left alone
|
|
38
|
+
if (!record(value) || methods.some((method) => typeof value[method] !== "function"))
|
|
39
|
+
return settingError(field, field === "identify"
|
|
40
|
+
? 'The option "sharding.identify" must be an object with a permit function'
|
|
41
|
+
: 'The option "sharding.sessions" must be an object with load and save functions');
|
|
42
|
+
// Bind the methods now so later caller mutation cannot change the hooks this client calls
|
|
43
|
+
return Object.freeze(Object.fromEntries(methods.map((method) => [method, value[method].bind(value)])));
|
|
44
|
+
}
|
|
45
|
+
/** Validate and copy the one-time sharding settings without changing caller-owned input */
|
|
46
|
+
export function parseSharding(input) {
|
|
47
|
+
if (input === undefined)
|
|
48
|
+
return defaultSharding;
|
|
49
|
+
if (input === "auto")
|
|
50
|
+
return Object.freeze({
|
|
51
|
+
plan: "auto",
|
|
52
|
+
reshard: true,
|
|
53
|
+
identify: undefined,
|
|
54
|
+
sessions: undefined,
|
|
55
|
+
refillCaches: true,
|
|
56
|
+
});
|
|
57
|
+
if (!record(input))
|
|
58
|
+
return new ConfigurationError("sharding", 'Sharding settings must be an object or "auto"');
|
|
59
|
+
const shardingKeys = ["totalShards", "shardIds", "identify", "sessions", "refillCaches"];
|
|
60
|
+
const unsupported = Reflect.ownKeys(input).find((key) => typeof key !== "string" || !shardingKeys.includes(key));
|
|
61
|
+
if (unsupported !== undefined)
|
|
62
|
+
return new ConfigurationError("sharding", typeof unsupported === "string"
|
|
63
|
+
? `Unsupported sharding setting ${JSON.stringify(unsupported)}`
|
|
64
|
+
: "Sharding settings must not contain symbol keys", { hint: unsupportedKeyHint(typeof unsupported === "string" ? unsupported : "", shardingKeys, "settings") });
|
|
65
|
+
const identify = hook(input.identify, "identify", ["permit"]);
|
|
66
|
+
if (identify instanceof ConfigurationError)
|
|
67
|
+
return identify;
|
|
68
|
+
const sessions = hook(input.sessions, "sessions", ["load", "save"]);
|
|
69
|
+
if (sessions instanceof ConfigurationError)
|
|
70
|
+
return sessions;
|
|
71
|
+
const refillCaches = input.refillCaches ?? true;
|
|
72
|
+
if (typeof refillCaches !== "boolean")
|
|
73
|
+
return new ConfigurationError("sharding", 'The option "sharding.refillCaches" must be a boolean');
|
|
74
|
+
const hooks = {
|
|
75
|
+
identify: identify,
|
|
76
|
+
sessions: sessions,
|
|
77
|
+
refillCaches,
|
|
78
|
+
};
|
|
79
|
+
const totalShards = input.totalShards;
|
|
80
|
+
if (totalShards === "auto") {
|
|
81
|
+
if (input.shardIds !== undefined)
|
|
82
|
+
return new ConfigurationError("shardIds", "Automatic sharding assigns every shard, so omit sharding.shardIds", {
|
|
83
|
+
hint: "Set sharding.totalShards to a number to run only some shards",
|
|
84
|
+
});
|
|
85
|
+
return Object.freeze({ plan: "auto", reshard: true, ...hooks });
|
|
86
|
+
}
|
|
87
|
+
if (typeof totalShards !== "number" ||
|
|
88
|
+
!Number.isSafeInteger(totalShards) ||
|
|
89
|
+
totalShards < 1 ||
|
|
90
|
+
totalShards > maximumShardCount) {
|
|
91
|
+
return new ConfigurationError("totalShards", 'The option "sharding.totalShards" must be "auto" or an integer from 1 through 16,384');
|
|
92
|
+
}
|
|
93
|
+
const inputShardIds = input.shardIds;
|
|
94
|
+
if (inputShardIds === undefined) {
|
|
95
|
+
return Object.freeze({
|
|
96
|
+
plan: immutablePlan(totalShards, Array.from({ length: totalShards }, (_, shardId) => shardId)),
|
|
97
|
+
reshard: false,
|
|
98
|
+
...hooks,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
if (!Array.isArray(inputShardIds) || inputShardIds.length === 0)
|
|
102
|
+
return new ConfigurationError("shardIds", 'The option "sharding.shardIds" must be a non-empty array');
|
|
103
|
+
const shardIds = [];
|
|
104
|
+
const seen = new Set();
|
|
105
|
+
for (const shardId of inputShardIds) {
|
|
106
|
+
if (typeof shardId !== "number" ||
|
|
107
|
+
!Number.isSafeInteger(shardId) ||
|
|
108
|
+
shardId < 0 ||
|
|
109
|
+
shardId >= totalShards ||
|
|
110
|
+
seen.has(shardId)) {
|
|
111
|
+
return new ConfigurationError("shardIds", `The option "sharding.shardIds" must contain unique integers from 0 through ${totalShards - 1}`);
|
|
112
|
+
}
|
|
113
|
+
seen.add(shardId);
|
|
114
|
+
shardIds.push(shardId);
|
|
115
|
+
}
|
|
116
|
+
return Object.freeze({ plan: immutablePlan(totalShards, shardIds), reshard: false, ...hooks });
|
|
117
|
+
}
|
|
118
|
+
/** The plan automatic sharding picks for a guild count: Every shard, at most guildsPerShard guilds each on average */
|
|
119
|
+
export function automaticShardPlan(guildCount) {
|
|
120
|
+
return fullShardPlan(Math.min(maximumShardCount, Math.max(1, Math.ceil(guildCount / guildsPerShard))));
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* The plan an automatic client moves to after Fluxer closed one of its shards with 4011 (sharding required): The plan
|
|
124
|
+
* for the new guild count, or one shard more than before when that count still fits the old total, because Fluxer
|
|
125
|
+
* found a shard above its ceiling whatever the average. Callers check that the old total is below maximumShardCount
|
|
126
|
+
*/
|
|
127
|
+
export function largerShardPlan(guildCount, previousTotalShards) {
|
|
128
|
+
const counted = automaticShardPlan(guildCount);
|
|
129
|
+
return counted.totalShards > previousTotalShards
|
|
130
|
+
? counted
|
|
131
|
+
: fullShardPlan(Math.min(maximumShardCount, previousTotalShards + 1));
|
|
132
|
+
}
|
|
133
|
+
/** Moves to a larger automatic plan allowed within reshardWindowMs, for a client or a supervisor */
|
|
134
|
+
const reshardLimit = 3;
|
|
135
|
+
const reshardWindowMs = 3_600_000;
|
|
136
|
+
/**
|
|
137
|
+
* Admit a move to a larger automatic plan at now, recording it in history, or return why it is refused: The plan
|
|
138
|
+
* already has the largest total, or reshardLimit moves happened within reshardWindowMs. The history keeps only moves
|
|
139
|
+
* inside the window
|
|
140
|
+
*/
|
|
141
|
+
export function admitReshard(history, now, totalShards) {
|
|
142
|
+
if (totalShards >= maximumShardCount)
|
|
143
|
+
return `the plan already has the largest total of ${maximumShardCount.toLocaleString("en-US")} shards`;
|
|
144
|
+
const recent = history.filter((at) => now - at < reshardWindowMs);
|
|
145
|
+
history.splice(0, history.length, ...recent);
|
|
146
|
+
if (history.length >= reshardLimit)
|
|
147
|
+
return `it already moved to a larger plan ${reshardLimit} times within an hour`;
|
|
148
|
+
history.push(now);
|
|
149
|
+
return undefined;
|
|
150
|
+
}
|
|
151
|
+
/** A plan of totalShards shards, all owned by this client */
|
|
152
|
+
function fullShardPlan(totalShards) {
|
|
153
|
+
return immutablePlan(totalShards, Array.from({ length: totalShards }, (_, shardId) => shardId));
|
|
154
|
+
}
|
|
155
|
+
/** Route a guild snowflake to its planned shard. Callers provide a validated plan total */
|
|
156
|
+
export function guildShardId(guildId, totalShards) {
|
|
157
|
+
return Number((BigInt(guildId) >> 22n) % BigInt(totalShards));
|
|
158
|
+
}
|
|
159
|
+
function immutablePlan(totalShards, shardIds) {
|
|
160
|
+
return Object.freeze({
|
|
161
|
+
totalShards,
|
|
162
|
+
shardIds: Object.freeze([...shardIds]),
|
|
163
|
+
identifyShards: totalShards > 1,
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
/** Allowed clock difference between the process that saved a snapshot and the one loading it */
|
|
167
|
+
const snapshotClockSkewMs = 5_000;
|
|
168
|
+
/** Check a loaded snapshot: The frozen copy to resume, or why it cannot be resumed */
|
|
169
|
+
export function checkSnapshot(value, gatewayUrl, totalShards, nowMs) {
|
|
170
|
+
if (!record(value) ||
|
|
171
|
+
typeof value.sessionId !== "string" ||
|
|
172
|
+
value.sessionId.length === 0 ||
|
|
173
|
+
value.sessionId.length > 256 ||
|
|
174
|
+
typeof value.sequence !== "number" ||
|
|
175
|
+
!Number.isSafeInteger(value.sequence) ||
|
|
176
|
+
value.sequence < 0 ||
|
|
177
|
+
typeof value.resumeUrl !== "string" ||
|
|
178
|
+
typeof value.savedAt !== "number" ||
|
|
179
|
+
!Number.isSafeInteger(value.savedAt) ||
|
|
180
|
+
typeof value.totalShards !== "number" ||
|
|
181
|
+
!Number.isSafeInteger(value.totalShards) ||
|
|
182
|
+
value.totalShards < 1)
|
|
183
|
+
return { problem: "the snapshot is malformed" };
|
|
184
|
+
const age = nowMs - value.savedAt;
|
|
185
|
+
if (age >= sessionRetentionMs)
|
|
186
|
+
return { problem: "the snapshot is older than Fluxer's 60-second resume window" };
|
|
187
|
+
if (age < -snapshotClockSkewMs)
|
|
188
|
+
return { problem: "the snapshot was saved in the future" };
|
|
189
|
+
// Resume sends the token, so it only goes to the gateway this client discovered itself
|
|
190
|
+
if (value.resumeUrl !== gatewayUrl)
|
|
191
|
+
return { problem: "the snapshot belongs to a different gateway endpoint" };
|
|
192
|
+
// Fluxer binds a session to the shard tuple it identified with, so resuming it under another plan routes guilds to the wrong shard
|
|
193
|
+
if (value.totalShards !== totalShards)
|
|
194
|
+
return { problem: "the snapshot belongs to a different shard plan" };
|
|
195
|
+
return {
|
|
196
|
+
snapshot: Object.freeze({
|
|
197
|
+
sessionId: value.sessionId,
|
|
198
|
+
sequence: value.sequence,
|
|
199
|
+
resumeUrl: value.resumeUrl,
|
|
200
|
+
savedAt: value.savedAt,
|
|
201
|
+
totalShards: value.totalShards,
|
|
202
|
+
}),
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=sharding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sharding.js","sourceRoot":"","sources":["../../src/internal/sharding.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Writes a ready-to-run starter bot project for `fluxerly init`, in JavaScript, TypeScript or TypeScript with the
|
|
3
|
+
* native Effect API.
|
|
4
|
+
* Invariant: Existing files are never replaced. A conflict writes nothing, and a failed write removes only the files
|
|
5
|
+
* this run created. Two files are no conflict. An existing .env is kept, because it holds the bot's own token, and an
|
|
6
|
+
* existing .gitignore is kept with only its missing starter lines appended, last, after every other file is written.
|
|
7
|
+
* Each bot's handlers match its shipped starter in examples/starter
|
|
8
|
+
*/
|
|
9
|
+
/** The starters init writes, in the order the prompt offers them */
|
|
10
|
+
export declare const starterTemplates: readonly ["js", "ts", "effect"];
|
|
11
|
+
export type StarterTemplate = (typeof starterTemplates)[number];
|
|
12
|
+
/** Thrown when a file that init writes already exists. Nothing was written */
|
|
13
|
+
export declare class StarterConflictError extends Error {
|
|
14
|
+
readonly conflicts: readonly string[];
|
|
15
|
+
readonly name = "StarterConflictError";
|
|
16
|
+
constructor(conflicts: readonly string[]);
|
|
17
|
+
}
|
|
18
|
+
/** What one run of writeStarterProject changed */
|
|
19
|
+
export interface StarterResult {
|
|
20
|
+
/** The files this run created, in the order it wrote them */
|
|
21
|
+
readonly written: readonly string[];
|
|
22
|
+
/** The lines this run appended to an existing .gitignore. None when it had them all or did not exist */
|
|
23
|
+
readonly ignored: readonly string[];
|
|
24
|
+
}
|
|
25
|
+
/** Write a starter project into `project` and report what changed, or throw StarterConflictError */
|
|
26
|
+
export declare function writeStarterProject(project: string, packageRoot: string, template?: StarterTemplate): StarterResult;
|
|
27
|
+
//# sourceMappingURL=starter-project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starter-project.d.ts","sourceRoot":"","sources":["../../src/internal/starter-project.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,oEAAoE;AACpE,eAAO,MAAM,gBAAgB,YAAI,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAU,CAAA;AAC/D,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAK/D,8EAA8E;AAC9E,qBAAa,oBAAqB,SAAQ,KAAK;IAE/B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE;IADjD,SAAkB,IAAI,0BAAyB;IAC/C,YAAqB,SAAS,EAAE,SAAS,MAAM,EAAE,EAEhD;CACJ;AA+JD,kDAAkD;AAClD,MAAM,WAAW,aAAa;IAC1B,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,wGAAwG;IACxG,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CACtC;AAeD,oGAAoG;AACpG,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,QAAQ,GAAE,eAAsB,GACjC,aAAa,CAuCf"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Writes a ready-to-run starter bot project for `fluxerly init`, in JavaScript, TypeScript or TypeScript with the
|
|
3
|
+
* native Effect API.
|
|
4
|
+
* Invariant: Existing files are never replaced. A conflict writes nothing, and a failed write removes only the files
|
|
5
|
+
* this run created. Two files are no conflict. An existing .env is kept, because it holds the bot's own token, and an
|
|
6
|
+
* existing .gitignore is kept with only its missing starter lines appended, last, after every other file is written.
|
|
7
|
+
* Each bot's handlers match its shipped starter in examples/starter
|
|
8
|
+
*/
|
|
9
|
+
import { appendFileSync, closeSync, existsSync, openSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
10
|
+
import { join } from "node:path";
|
|
11
|
+
import { newAgentsFile } from "./agents-section.js";
|
|
12
|
+
/** The starters init writes, in the order the prompt offers them */
|
|
13
|
+
export const starterTemplates = ["js", "ts", "effect"];
|
|
14
|
+
/** The lines the starter needs in .gitignore, so the token and the installed packages stay out of version control */
|
|
15
|
+
const ignoredLines = ["node_modules", ".env"];
|
|
16
|
+
/** Thrown when a file that init writes already exists. Nothing was written */
|
|
17
|
+
export class StarterConflictError extends Error {
|
|
18
|
+
conflicts;
|
|
19
|
+
name = "StarterConflictError";
|
|
20
|
+
constructor(conflicts) {
|
|
21
|
+
super(`These files already exist: ${conflicts.join(", ")}`);
|
|
22
|
+
this.conflicts = conflicts;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
const startComment = `// Running this file starts the bot, while importing it from a test does not.
|
|
26
|
+
// A failure that stops the bot, such as a rejected token, is logged and sets a failing exit code`;
|
|
27
|
+
// Each bot exports its options without the token, so its test can run them through createTestBot without a token or a
|
|
28
|
+
// network. The events blocks match the shipped starters
|
|
29
|
+
const javaScriptBot = `import { runBot } from "@neontechspace/fluxerly"
|
|
30
|
+
|
|
31
|
+
export const bot = {
|
|
32
|
+
events: {
|
|
33
|
+
messageCreate: ({ message, reply }) => {
|
|
34
|
+
if (message.content !== "!ping") return
|
|
35
|
+
// Returning the reply reports a failed send to the log
|
|
36
|
+
return reply("Pong!")
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
${startComment}
|
|
42
|
+
if (import.meta.main) await runBot({ token: process.env.FLUXER_BOT_TOKEN, ...bot })
|
|
43
|
+
`;
|
|
44
|
+
const typeScriptBot = `import { runBot, type BotOptions } from "@neontechspace/fluxerly"
|
|
45
|
+
|
|
46
|
+
export const bot: Omit<BotOptions, "token"> = {
|
|
47
|
+
events: {
|
|
48
|
+
messageCreate: ({ message, reply }) => {
|
|
49
|
+
if (message.content !== "!ping") return
|
|
50
|
+
// Returning the reply reports a failed send to the log
|
|
51
|
+
return reply("Pong!")
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
${startComment}
|
|
57
|
+
if (import.meta.main) await runBot({ token: process.env.FLUXER_BOT_TOKEN, ...bot })
|
|
58
|
+
`;
|
|
59
|
+
// satisfies keeps the handlers' own error and service types, which runBot and createTestBot read
|
|
60
|
+
const effectBot = `import { Effect } from "effect"
|
|
61
|
+
import { runBot, type BotOptions } from "@neontechspace/fluxerly/effect"
|
|
62
|
+
|
|
63
|
+
export const bot = {
|
|
64
|
+
events: {
|
|
65
|
+
messageCreate: ({ message, reply }) => {
|
|
66
|
+
if (message.content !== "!ping") return Effect.void
|
|
67
|
+
// A failed reply is reported to the log without stopping the bot
|
|
68
|
+
return reply("Pong!")
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
} satisfies Omit<BotOptions<unknown, unknown>, "token">
|
|
72
|
+
|
|
73
|
+
${startComment}
|
|
74
|
+
if (import.meta.main)
|
|
75
|
+
await Effect.runPromiseExit(runBot({ token: process.env.FLUXER_BOT_TOKEN, processSignals: true, ...bot }))
|
|
76
|
+
`;
|
|
77
|
+
const defaultTest = (botFile) => `import assert from "node:assert/strict"
|
|
78
|
+
import { test } from "node:test"
|
|
79
|
+
import { createTestBot } from "@neontechspace/fluxerly/testing"
|
|
80
|
+
import { bot } from "./${botFile}"
|
|
81
|
+
|
|
82
|
+
// createTestBot runs the bot against an in-memory Fluxer, so no token or network is needed
|
|
83
|
+
test("the bot answers !ping with Pong! and ignores other messages", async () => {
|
|
84
|
+
await using testBot = createTestBot(bot)
|
|
85
|
+
await testBot.ready()
|
|
86
|
+
|
|
87
|
+
// The say method sends a message as a user and returns the messages the bot sent in response
|
|
88
|
+
assert.deepEqual((await testBot.say("!ping")).map((message) => message.content), ["Pong!"])
|
|
89
|
+
assert.deepEqual(await testBot.say("hello"), [])
|
|
90
|
+
})
|
|
91
|
+
`;
|
|
92
|
+
const effectTest = `import assert from "node:assert/strict"
|
|
93
|
+
import { test } from "node:test"
|
|
94
|
+
import { Effect } from "effect"
|
|
95
|
+
import { createTestBot } from "@neontechspace/fluxerly/effect/testing"
|
|
96
|
+
import { bot } from "./bot.ts"
|
|
97
|
+
|
|
98
|
+
// createTestBot runs the bot against an in-memory Fluxer, so no token or network is needed
|
|
99
|
+
test("the bot answers !ping with Pong! and ignores other messages", async () => {
|
|
100
|
+
// Effect.scoped shuts the test bot down once the conversation ends
|
|
101
|
+
const { ping, hello } = await Effect.runPromise(
|
|
102
|
+
Effect.scoped(
|
|
103
|
+
Effect.gen(function* () {
|
|
104
|
+
const testBot = yield* createTestBot(bot)
|
|
105
|
+
yield* testBot.ready()
|
|
106
|
+
// The say method sends a message as a user and returns the messages the bot sent in response
|
|
107
|
+
return { ping: yield* testBot.say("!ping"), hello: yield* testBot.say("hello") }
|
|
108
|
+
}),
|
|
109
|
+
),
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
assert.deepEqual(ping.map((message) => message.content), ["Pong!"])
|
|
113
|
+
assert.deepEqual(hello, [])
|
|
114
|
+
})
|
|
115
|
+
`;
|
|
116
|
+
// Node.js runs .ts files directly by removing their types, so the scripts need no build step. Removing types checks
|
|
117
|
+
// nothing, so a TypeScript starter also gets a check script that runs the compiler
|
|
118
|
+
const packageJson = (botFile) => `${JSON.stringify({
|
|
119
|
+
private: true,
|
|
120
|
+
type: "module",
|
|
121
|
+
scripts: {
|
|
122
|
+
start: `node --env-file-if-exists=.env ${botFile}`,
|
|
123
|
+
test: "node --test",
|
|
124
|
+
...(botFile.endsWith(".ts") ? { check: "tsc" } : {}),
|
|
125
|
+
},
|
|
126
|
+
}, null, 2)}\n`;
|
|
127
|
+
// TypeScript only checks the code, for editors and the check script. The last three settings keep it in a form Node.js
|
|
128
|
+
// can run directly
|
|
129
|
+
const tsconfig = `${JSON.stringify({
|
|
130
|
+
compilerOptions: {
|
|
131
|
+
target: "ES2024",
|
|
132
|
+
module: "NodeNext",
|
|
133
|
+
types: ["node"],
|
|
134
|
+
strict: true,
|
|
135
|
+
noEmit: true,
|
|
136
|
+
allowImportingTsExtensions: true,
|
|
137
|
+
verbatimModuleSyntax: true,
|
|
138
|
+
erasableSyntaxOnly: true,
|
|
139
|
+
},
|
|
140
|
+
}, null, 4)}\n`;
|
|
141
|
+
/** The files init writes for a template, in the order it reports them */
|
|
142
|
+
function starterFiles(project, packageRoot, template) {
|
|
143
|
+
const shared = () => [
|
|
144
|
+
[".env.example", "FLUXER_BOT_TOKEN=\n"],
|
|
145
|
+
[".env", "FLUXER_BOT_TOKEN=\n"],
|
|
146
|
+
[".gitignore", `${ignoredLines.join("\n")}\n`],
|
|
147
|
+
["AGENTS.md", newAgentsFile(project, packageRoot)],
|
|
148
|
+
];
|
|
149
|
+
if (template === "js")
|
|
150
|
+
return new Map([
|
|
151
|
+
["package.json", packageJson("bot.js")],
|
|
152
|
+
["bot.js", javaScriptBot],
|
|
153
|
+
["bot.test.js", defaultTest("bot.js")],
|
|
154
|
+
...shared(),
|
|
155
|
+
]);
|
|
156
|
+
return new Map([
|
|
157
|
+
["package.json", packageJson("bot.ts")],
|
|
158
|
+
["tsconfig.json", tsconfig],
|
|
159
|
+
["bot.ts", template === "ts" ? typeScriptBot : effectBot],
|
|
160
|
+
["bot.test.ts", template === "ts" ? defaultTest("bot.ts") : effectTest],
|
|
161
|
+
...shared(),
|
|
162
|
+
]);
|
|
163
|
+
}
|
|
164
|
+
/** Append the starter's lines that `file` lacks, keeping its content and line endings, and return the lines added */
|
|
165
|
+
function addMissingIgnoredLines(file) {
|
|
166
|
+
const text = readFileSync(file, "utf8");
|
|
167
|
+
const present = new Set(text.split(/\r?\n/).map((line) => line.trim()));
|
|
168
|
+
const missing = ignoredLines.filter((line) => !present.has(line));
|
|
169
|
+
if (missing.length === 0)
|
|
170
|
+
return [];
|
|
171
|
+
const lineEnd = text.includes("\r\n") ? "\r\n" : "\n";
|
|
172
|
+
// A file that ends without a line break gets one first, so the added lines start on their own line
|
|
173
|
+
const lead = text === "" || text.endsWith("\n") ? "" : lineEnd;
|
|
174
|
+
appendFileSync(file, `${lead}${missing.map((line) => `${line}${lineEnd}`).join("")}`);
|
|
175
|
+
return missing;
|
|
176
|
+
}
|
|
177
|
+
/** Write a starter project into `project` and report what changed, or throw StarterConflictError */
|
|
178
|
+
export function writeStarterProject(project, packageRoot, template = "js") {
|
|
179
|
+
const files = starterFiles(project, packageRoot, template);
|
|
180
|
+
const conflicts = [...files.keys()].filter((name) => name !== ".env" && name !== ".gitignore" && existsSync(join(project, name)));
|
|
181
|
+
if (conflicts.length > 0)
|
|
182
|
+
throw new StarterConflictError(conflicts);
|
|
183
|
+
const written = [];
|
|
184
|
+
let ignored = [];
|
|
185
|
+
let current = "";
|
|
186
|
+
try {
|
|
187
|
+
// The wx flag refuses a file that appeared after the check, so a concurrent writer's file is never replaced.
|
|
188
|
+
// A file counts as created once opened, so a failed write removes its partial content
|
|
189
|
+
for (const [name, text] of files) {
|
|
190
|
+
current = name;
|
|
191
|
+
let descriptor;
|
|
192
|
+
try {
|
|
193
|
+
descriptor = openSync(join(project, name), "wx");
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
// An existing .env holds the bot's own token, so it is kept. An existing .gitignore is kept too, and
|
|
197
|
+
// gets its missing lines below
|
|
198
|
+
const keep = name === ".env" || name === ".gitignore";
|
|
199
|
+
if (keep && error.code === "EEXIST")
|
|
200
|
+
continue;
|
|
201
|
+
throw error;
|
|
202
|
+
}
|
|
203
|
+
written.push(name);
|
|
204
|
+
try {
|
|
205
|
+
writeFileSync(descriptor, text);
|
|
206
|
+
}
|
|
207
|
+
finally {
|
|
208
|
+
closeSync(descriptor);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
// Last, so a failure above leaves the user's .gitignore as it was
|
|
212
|
+
if (!written.includes(".gitignore"))
|
|
213
|
+
ignored = addMissingIgnoredLines(join(project, ".gitignore"));
|
|
214
|
+
}
|
|
215
|
+
catch (error) {
|
|
216
|
+
for (const name of written)
|
|
217
|
+
rmSync(join(project, name), { force: true });
|
|
218
|
+
if (error.code === "EEXIST")
|
|
219
|
+
throw new StarterConflictError([current]);
|
|
220
|
+
throw error;
|
|
221
|
+
}
|
|
222
|
+
return { written, ignored };
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=starter-project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starter-project.js","sourceRoot":"","sources":["../../src/internal/starter-project.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typo suggestions shared by command names, event names and option keys.
|
|
3
|
+
* Invariant: Suggestions only name known candidates and never echo rejected values beyond the misspelled name itself
|
|
4
|
+
*/
|
|
5
|
+
/** Edit distance with adjacent transpositions counted as one edit (optimal string alignment), so swapping two
|
|
6
|
+
* adjacent characters is one edit. Comparison is case-sensitive. Stops early and returns limit + 1 once every
|
|
7
|
+
* alignment exceeds limit
|
|
8
|
+
*/
|
|
9
|
+
export declare function editDistance(left: string, right: string, limit?: number): number;
|
|
10
|
+
/** A hint for an unsupported option key: The closest supported key when one is near, then the full supported list */
|
|
11
|
+
export declare function unsupportedKeyHint(key: string, supported: readonly string[], noun?: string): string;
|
|
12
|
+
//# sourceMappingURL=suggest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suggest.d.ts","sourceRoot":"","sources":["../../src/internal/suggest.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,SAA2B,GAAG,MAAM,CAoBlG;AAgBD,qHAAqH;AACrH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,SAAY,GAAG,MAAM,CAGtG"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typo suggestions shared by command names, event names and option keys.
|
|
3
|
+
* Invariant: Suggestions only name known candidates and never echo rejected values beyond the misspelled name itself
|
|
4
|
+
*/
|
|
5
|
+
/** Edit distance with adjacent transpositions counted as one edit (optimal string alignment), so swapping two
|
|
6
|
+
* adjacent characters is one edit. Comparison is case-sensitive. Stops early and returns limit + 1 once every
|
|
7
|
+
* alignment exceeds limit
|
|
8
|
+
*/
|
|
9
|
+
export function editDistance(left, right, limit = Number.POSITIVE_INFINITY) {
|
|
10
|
+
if (Math.abs(left.length - right.length) > limit)
|
|
11
|
+
return limit + 1;
|
|
12
|
+
let before = [];
|
|
13
|
+
let previous = Array.from({ length: right.length + 1 }, (_, index) => index);
|
|
14
|
+
for (let row = 1; row <= left.length; row += 1) {
|
|
15
|
+
const current = [row];
|
|
16
|
+
let smallest = row;
|
|
17
|
+
for (let column = 1; column <= right.length; column += 1) {
|
|
18
|
+
const cost = left[row - 1] === right[column - 1] ? 0 : 1;
|
|
19
|
+
let value = Math.min(previous[column] + 1, current[column - 1] + 1, previous[column - 1] + cost);
|
|
20
|
+
if (row > 1 && column > 1 && left[row - 1] === right[column - 2] && left[row - 2] === right[column - 1])
|
|
21
|
+
value = Math.min(value, before[column - 2] + 1);
|
|
22
|
+
current.push(value);
|
|
23
|
+
smallest = Math.min(smallest, value);
|
|
24
|
+
}
|
|
25
|
+
if (smallest > limit)
|
|
26
|
+
return limit + 1;
|
|
27
|
+
before = previous;
|
|
28
|
+
previous = current;
|
|
29
|
+
}
|
|
30
|
+
return previous[right.length];
|
|
31
|
+
}
|
|
32
|
+
/** The first candidate closest to value, ignoring case, within one edit for names up to four characters and two edits
|
|
33
|
+
* for longer names. Returns undefined when no candidate is that close
|
|
34
|
+
*/
|
|
35
|
+
function closestName(value, candidates) {
|
|
36
|
+
const wanted = value.toLowerCase();
|
|
37
|
+
const limit = wanted.length <= 4 ? 1 : 2;
|
|
38
|
+
let best;
|
|
39
|
+
for (const candidate of candidates) {
|
|
40
|
+
const distance = editDistance(wanted, candidate.toLowerCase(), limit);
|
|
41
|
+
if (distance <= limit && (best === undefined || distance < best.distance))
|
|
42
|
+
best = { name: candidate, distance };
|
|
43
|
+
}
|
|
44
|
+
return best?.name;
|
|
45
|
+
}
|
|
46
|
+
/** A hint for an unsupported option key: The closest supported key when one is near, then the full supported list */
|
|
47
|
+
export function unsupportedKeyHint(key, supported, noun = "options") {
|
|
48
|
+
const suggestion = key.length > 64 ? undefined : closestName(key, supported);
|
|
49
|
+
return `${suggestion === undefined ? "" : `Did you mean ${JSON.stringify(suggestion)}? `}Supported ${noun} are ${supported.join(", ")}`;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=suggest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suggest.js","sourceRoot":"","sources":["../../src/internal/suggest.ts"],"names":[],"mappings":"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"}
|