@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,258 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test Fluxer bots built with the default API without a network, a token or a Fluxer account.
|
|
3
|
+
* Import from @neontechspace/fluxerly/testing in application tests
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* import assert from "node:assert/strict"
|
|
8
|
+
* import { createTestClient } from "@neontechspace/fluxerly/testing"
|
|
9
|
+
*
|
|
10
|
+
* await using test = createTestClient()
|
|
11
|
+
* const replies = test.rest.respond("POST /channels/:id/messages", { body: test.fixtures.message({ content: "Pong!" }) })
|
|
12
|
+
* test.client.on("messageCreate", (message) =>
|
|
13
|
+
* message.content === "!ping" ? test.client.messages.reply(message, { content: "Pong!" }) : undefined,
|
|
14
|
+
* )
|
|
15
|
+
* await test.ready()
|
|
16
|
+
* test.emit("MESSAGE_CREATE", test.fixtures.message({ content: "!ping" }))
|
|
17
|
+
* // Handlers run after emit returns, so wait for the reply before asserting on it
|
|
18
|
+
* const request = await replies.next()
|
|
19
|
+
* assert.equal((request.body as { content?: unknown }).content, "Pong!")
|
|
20
|
+
*
|
|
21
|
+
* // A message the bot ignores sends nothing, which idle confirms without a fixed sleep
|
|
22
|
+
* test.emit("MESSAGE_CREATE", test.fixtures.message({ content: "hello" }))
|
|
23
|
+
* await test.idle()
|
|
24
|
+
* assert.equal(replies.requests().length, 1)
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @remarks
|
|
28
|
+
* A test client is a real client from createClient whose HTTP and WebSocket traffic goes to an in-memory transport
|
|
29
|
+
* through the transport option. Events therefore pass through the SDK's own decoders, caches, handlers and logging.
|
|
30
|
+
* The fake gateway speaks protocol v1: It sends HELLO, answers Identify with READY and Resume with RESUMED, acknowledges
|
|
31
|
+
* heartbeats and delivers emitted dispatches with increasing sequence numbers. The fake HTTP side serves hosted Fluxer's
|
|
32
|
+
* discovery document, with presigned uploads off so attachments arrive as one multipart request, answers requests from
|
|
33
|
+
* registered responses and records every request without its Authorization header.
|
|
34
|
+
* Message sends and edits without a registered response receive an echoed bot message, and other unmatched requests
|
|
35
|
+
* receive a Fluxer-shaped 404 and a testing.unmatchedRequest Warn record.
|
|
36
|
+
* Waits such as idle and TestRoute.next have no deadline unless timeoutMs is passed, so the test runner's timeout
|
|
37
|
+
* bounds a test that hangs.
|
|
38
|
+
* Log records go to logs() and to any sinks in the logging option instead of the console.
|
|
39
|
+
* Shutdown stops the client and closes the transport, leaving no sockets, timers or listeners behind, and rejects when
|
|
40
|
+
* a handler or command failed without an onError hook and the test did not read that failure from failures()
|
|
41
|
+
*
|
|
42
|
+
* @packageDocumentation
|
|
43
|
+
*/
|
|
44
|
+
import "./internal/node-version.js";
|
|
45
|
+
import type { ClientCounters, LogRecord } from "./logging.js";
|
|
46
|
+
import type { ClientOptions, OperationOptions } from "./client.js";
|
|
47
|
+
import type { Message, MessageCore, MessageFields, SelectedMessage } from "./messages.js";
|
|
48
|
+
import { type Client } from "./api/default/client.js";
|
|
49
|
+
import { type BotOptions } from "./api/default/bot.js";
|
|
50
|
+
import type { CommandArgumentSchema } from "./command-arguments.js";
|
|
51
|
+
import type { TestDisconnectOptions, TestEmitOptions, TestGatewayCommand, TestRequest, TestRest, TestSayOptions, TestSettings, TestWaitOptions } from "./internal/testing/types.js";
|
|
52
|
+
import type { Fixtures, WireMessage } from "./internal/testing/fixtures.js";
|
|
53
|
+
export { createFixtures, fixtures, fixtureToken, type Fixtures, type WireChannel, type WireForumChannel, type WireGuild, type WireGuildCreate, type WireGuildCreateOverrides, type WireMember, type WireMessage, type WireOverrides, type WireRole, type WireThread, type WireUser, } from "./internal/testing/fixtures.js";
|
|
54
|
+
export type { TestRequest, TestRequestFile, TestRequestMatcher, TestResponder, TestResponse, TestRest, TestRoute, } from "./internal/testing/types.js";
|
|
55
|
+
export type { TestDisconnectOptions, TestEmitOptions, TestGatewayCommand, TestSayOptions, TestSettings, TestWaitOptions, } from "./internal/testing/types.js";
|
|
56
|
+
export { TestTimeoutError, UnhandledTestFailuresError } from "./internal/testing/errors.js";
|
|
57
|
+
/**
|
|
58
|
+
* Options for createTestClient: Every createClient option except token, transport and instance, plus test settings.
|
|
59
|
+
* The token defaults to the fixture token, the transport is always the in-memory test transport and the instance is
|
|
60
|
+
* always hosted Fluxer served from memory
|
|
61
|
+
*
|
|
62
|
+
* @category Testing
|
|
63
|
+
*/
|
|
64
|
+
export type TestClientOptions<F extends MessageFields | undefined = undefined> = Omit<ClientOptions<F>, "token" | "transport" | "instance"> & TestSettings;
|
|
65
|
+
/**
|
|
66
|
+
* A real default-API client connected to an in-memory Fluxer, with controls for driving and inspecting it.
|
|
67
|
+
* Controls throw ConfigurationError for misuse, such as emitting before ready, and ClientClosedError after shutdown
|
|
68
|
+
*
|
|
69
|
+
* @category Testing
|
|
70
|
+
*/
|
|
71
|
+
export interface TestClient<M extends MessageCore = Message> extends AsyncDisposable {
|
|
72
|
+
/** The client under test, created with createClient. Use it exactly as in the application */
|
|
73
|
+
readonly client: Client<M>;
|
|
74
|
+
/** A fixture set of its own, whose IDs do not depend on other tests. READY reports its botUser() by default */
|
|
75
|
+
readonly fixtures: Fixtures;
|
|
76
|
+
/** Register the HTTP responses the fake Fluxer API returns */
|
|
77
|
+
readonly rest: TestRest;
|
|
78
|
+
/**
|
|
79
|
+
* Connect the client to the test gateway and resolve once every shard it owns is READY, like client.connect.
|
|
80
|
+
* Calling it again while connected resolves without opening another socket. With gateway.ignoredEvents set to "auto",
|
|
81
|
+
* register handlers before this call, because Identify chooses the session's filtering from those registrations.
|
|
82
|
+
* The promise rejects with the connect failure, such as ConnectionError when a handler closed the connection,
|
|
83
|
+
* so a failed start fails the test
|
|
84
|
+
*/
|
|
85
|
+
ready(options?: OperationOptions): Promise<void>;
|
|
86
|
+
/**
|
|
87
|
+
* Deliver one gateway dispatch to a connected shard synchronously, with the next sequence number.
|
|
88
|
+
* The type is the Fluxer wire dispatch name, such as MESSAGE_CREATE or GUILD_MEMBER_ADD, and the payload is the wire
|
|
89
|
+
* body in snake_case, so it passes through the SDK's real decoders, cache updates and handlers.
|
|
90
|
+
* Handlers run afterwards on their own schedule. Register client.waitFor before emitting to await delivery.
|
|
91
|
+
* Unknown types are delivered too unless explicitly suppressed, and malformed payloads follow the client's
|
|
92
|
+
* gateway.onMalformedDispatch policy.
|
|
93
|
+
* Throws ConfigurationError without consuming a sequence when the session's Identify filtering would suppress the
|
|
94
|
+
* dispatch. Suppressed MESSAGE_CREATE still arrives for a direct bot mention, @here or @everyone. Role-only mentions,
|
|
95
|
+
* direct-message delivery and bot authorship alone do not exempt it. Generated MESSAGE_REACTION_ADD_MANY is gated by
|
|
96
|
+
* MESSAGE_REACTION_ADD, not its generated name. Register handlers before ready when gateway.ignoredEvents is "auto",
|
|
97
|
+
* or remove the source type from the explicit list (use [] to disable suppression). Resume keeps the current list.
|
|
98
|
+
* READY and RESUMED are reserved for the handshake. Throws ConfigurationError before ready or for a shard this
|
|
99
|
+
* client does not own
|
|
100
|
+
*/
|
|
101
|
+
emit(type: string, payload: unknown, options?: TestEmitOptions): void;
|
|
102
|
+
/**
|
|
103
|
+
* Close one shard's connection from the gateway side with a close code. The SDK then recovers as it would
|
|
104
|
+
* against Fluxer, resuming with RESUMED for a resumable code, or ends the connection lifetime for a fatal one.
|
|
105
|
+
* Throws ConfigurationError when that shard is not connected
|
|
106
|
+
*/
|
|
107
|
+
disconnect(options?: TestDisconnectOptions): void;
|
|
108
|
+
/** HTTP requests the client sent so far, in order, excluding the discovery bootstrap and without credentials */
|
|
109
|
+
requests(): readonly TestRequest[];
|
|
110
|
+
/** Gateway commands the client sent so far, in order, with tokens redacted */
|
|
111
|
+
commands(): readonly TestGatewayCommand[];
|
|
112
|
+
/**
|
|
113
|
+
* Log records the client produced so far, in order, at the logging option's level and categories, default Info.
|
|
114
|
+
* The records also reach any sinks in the logging option. Nothing is printed to the console
|
|
115
|
+
*/
|
|
116
|
+
logs(): readonly LogRecord[];
|
|
117
|
+
/** The client's running totals, the same as client.diagnostics().counters */
|
|
118
|
+
counters(): ClientCounters;
|
|
119
|
+
/**
|
|
120
|
+
* Error records of failures no application code handled so far, in order, such as an event handler, command or
|
|
121
|
+
* client.schedule task run that threw or returned a failed Result while no onError hook was registered, whether the
|
|
122
|
+
* error came from the application or from a Fluxer rejection. Assert expected failures here, because
|
|
123
|
+
* shutdown rejects for unhandled failures that failures() has not returned.
|
|
124
|
+
* Failures are captured whatever the logging level, categories and deduplication, so each one appears here and
|
|
125
|
+
* counts for shutdown even when logs() leaves it out
|
|
126
|
+
*/
|
|
127
|
+
failures(): readonly LogRecord[];
|
|
128
|
+
/**
|
|
129
|
+
* Resolve once the client has settled: No event handler or command is running or has a received event waiting for
|
|
130
|
+
* it, no client.schedule task run is running, no REST request is queued or waiting for its test response, and no new
|
|
131
|
+
* log record, request or gateway command appeared for a few event loop turns. Use it after emit to assert that the
|
|
132
|
+
* bot did nothing, or before inspecting results.
|
|
133
|
+
* Open waits and collectors do not count as work, and onError hooks are not awaited. A scheduled task waiting for its
|
|
134
|
+
* time does not count either, so advance the clock that drives the client's timers to run it.
|
|
135
|
+
* Without timeoutMs the wait has no SDK deadline, so the test runner's own timeout ends a test whose client never
|
|
136
|
+
* settles. With timeoutMs the promise rejects with TestTimeoutError when the client is still busy after it.
|
|
137
|
+
* It rejects with ClientClosedError after shutdown. Invalid options throw ConfigurationError.
|
|
138
|
+
* The wait's own timers, including timeoutMs, stay real when a test fakes timers.
|
|
139
|
+
* The SDK runs on setImmediate, so fake timers must leave it real, otherwise idle rejects with ConfigurationError
|
|
140
|
+
* instead of settling while no handler can run
|
|
141
|
+
*/
|
|
142
|
+
idle(options?: TestWaitOptions): Promise<void>;
|
|
143
|
+
/**
|
|
144
|
+
* Shut the client down, then close the test transport. Resolves after both finish and can be called again.
|
|
145
|
+
* Rejects with SdkDefect when client cleanup fails, and otherwise with UnhandledTestFailuresError when application
|
|
146
|
+
* code failed without a handler and failures() did not return that failure, so a broken handler fails the test.
|
|
147
|
+
* Each failure is reported once, so a later call resolves.
|
|
148
|
+
* Disposal with `await using` calls it
|
|
149
|
+
*/
|
|
150
|
+
shutdown(): Promise<void>;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Create a real default-API client wired to an in-memory Fluxer for application tests.
|
|
154
|
+
* Creation opens no connection and starts no timers. Call ready to connect, and shutdown or `await using` to clean up.
|
|
155
|
+
* The gateway enforces gateway.ignoredEvents, so register handlers before ready when automatic filtering is enabled
|
|
156
|
+
*
|
|
157
|
+
* @remarks
|
|
158
|
+
* Invalid options throw ConfigurationError as createClient does, and supplying transport or instance also throws
|
|
159
|
+
* ConfigurationError because the test transport owns both. The hint for a misspelled key suggests the closest key a
|
|
160
|
+
* test client accepts
|
|
161
|
+
*
|
|
162
|
+
* @example
|
|
163
|
+
* ```ts
|
|
164
|
+
* import { createTestClient } from "@neontechspace/fluxerly/testing"
|
|
165
|
+
*
|
|
166
|
+
* export async function greetingTest() {
|
|
167
|
+
* await using test = createTestClient({ cache: { members: true } })
|
|
168
|
+
* const joined = test.client.waitFor("guildMemberAdd")
|
|
169
|
+
* await test.ready()
|
|
170
|
+
* test.emit("GUILD_MEMBER_ADD", test.fixtures.member())
|
|
171
|
+
* const member = await joined
|
|
172
|
+
* return member.isOk() && test.client.members.get(member.value) !== undefined
|
|
173
|
+
* }
|
|
174
|
+
* ```
|
|
175
|
+
*
|
|
176
|
+
* @category Testing
|
|
177
|
+
*/
|
|
178
|
+
export declare function createTestClient<const F extends MessageFields | undefined = undefined>(options?: TestClientOptions<F>): TestClient<SelectedMessage<F>>;
|
|
179
|
+
/**
|
|
180
|
+
* Options for createTestBot: The runBot options object of the bot under test, plus test settings.
|
|
181
|
+
* The signal, processSignals, reportFailure and drainMs settings are accepted and ignored, so the bot's own options object can be
|
|
182
|
+
* passed unchanged. An undefined token, such as an unset environment variable, uses the fixture token. Transport and
|
|
183
|
+
* instance belong to the test client
|
|
184
|
+
*
|
|
185
|
+
* @category Testing
|
|
186
|
+
*/
|
|
187
|
+
export type TestBotOptions<F extends MessageFields | undefined = undefined, S extends Readonly<Record<string, unknown>> = Readonly<Record<string, CommandArgumentSchema | undefined>>> = Omit<BotOptions<F, S>, "token" | "transport" | "instance"> & Omit<TestSettings, "token"> & {
|
|
188
|
+
/** Token passed to the client, never sent anywhere. Omit it or pass undefined to use the fixture token */
|
|
189
|
+
readonly token?: string | undefined;
|
|
190
|
+
};
|
|
191
|
+
/**
|
|
192
|
+
* A test client running a bot written for runBot, with say to talk to the bot as a user would
|
|
193
|
+
*
|
|
194
|
+
* @category Testing
|
|
195
|
+
*/
|
|
196
|
+
export interface TestBot<M extends MessageCore = Message> extends TestClient<M> {
|
|
197
|
+
/**
|
|
198
|
+
* Deliver a message with this content from a human user, wait until the bot has settled as idle does, and resolve
|
|
199
|
+
* with the messages the bot sent meanwhile, in send order, or an empty list when it sent nothing. Call ready first.
|
|
200
|
+
* Each entry is a message send (POST /channels/:id/messages) in wire shape, built from the request body with the
|
|
201
|
+
* fields the automatic reply echoes, so it shows what the bot sent even when a rest.respond handler answered.
|
|
202
|
+
* Edits, reactions and other requests are not included, and remain visible through requests().
|
|
203
|
+
* The message comes from the fixture set's default human author in its default channel and community, and
|
|
204
|
+
* options.message replaces any of those wire fields. Like idle, say has no deadline unless options.timeoutMs is
|
|
205
|
+
* set, then rejects with TestTimeoutError when the bot is still busy after it, and rejects with ClientClosedError
|
|
206
|
+
* after shutdown. It throws ConfigurationError for content that is not a string, invalid options, before ready and
|
|
207
|
+
* when gateway filtering would suppress the message, as emit does
|
|
208
|
+
*
|
|
209
|
+
* @example
|
|
210
|
+
* ```ts
|
|
211
|
+
* import assert from "node:assert/strict"
|
|
212
|
+
* import { createTestBot } from "@neontechspace/fluxerly/testing"
|
|
213
|
+
*
|
|
214
|
+
* await using test = createTestBot({
|
|
215
|
+
* commands: { prefix: "!", commands: { ping: { execute: ({ reply }) => reply("Pong!") } } },
|
|
216
|
+
* })
|
|
217
|
+
* await test.ready()
|
|
218
|
+
* const [reply] = await test.say("!ping")
|
|
219
|
+
* assert.equal(reply?.content, "Pong!")
|
|
220
|
+
* assert.deepEqual(await test.say("hello"), [])
|
|
221
|
+
* ```
|
|
222
|
+
*/
|
|
223
|
+
say(content: string, options?: TestSayOptions): Promise<readonly WireMessage[]>;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Create a test client that runs a bot written for runBot: Its events, ignoreBots setting, commands and setup callback,
|
|
227
|
+
* with the same handler contexts, delivery defaults and command router as runBot. Handlers and commands are registered at once,
|
|
228
|
+
* and ready runs setup before connecting, as runBot does, so a test drives the bot exactly as Fluxer would.
|
|
229
|
+
* The setup signal aborts when shutdown starts.
|
|
230
|
+
* It returns the controls of createTestClient plus say, and shutdown or `await using` cleans it up. Automatic gateway
|
|
231
|
+
* filtering sees the bot's handlers, commands and setup registrations, and emit rejects dispatches that list suppresses
|
|
232
|
+
*
|
|
233
|
+
* @remarks
|
|
234
|
+
* Invalid options throw ConfigurationError, as runBot does, and a commands register callback that throws throws its
|
|
235
|
+
* ApplicationError. A failed setup rejects ready with ApplicationError whose source is "runBot setup", and setup runs
|
|
236
|
+
* at most once however often ready is called. The runBot supervision of a stopped subscription does not apply in tests
|
|
237
|
+
*
|
|
238
|
+
* @example
|
|
239
|
+
* ```ts
|
|
240
|
+
* import assert from "node:assert/strict"
|
|
241
|
+
* import { createTestBot } from "@neontechspace/fluxerly/testing"
|
|
242
|
+
*
|
|
243
|
+
* await using test = createTestBot({
|
|
244
|
+
* commands: { prefix: "!", commands: { ping: { execute: ({ reply }) => reply("Pong!") } } },
|
|
245
|
+
* })
|
|
246
|
+
* await test.ready()
|
|
247
|
+
* // The test transport answers the reply with an echoed message, so no rest.respond fixture is needed
|
|
248
|
+
* const replies = await test.say("!ping")
|
|
249
|
+
* assert.deepEqual(
|
|
250
|
+
* replies.map((message) => message.content),
|
|
251
|
+
* ["Pong!"],
|
|
252
|
+
* )
|
|
253
|
+
* ```
|
|
254
|
+
*
|
|
255
|
+
* @category Testing
|
|
256
|
+
*/
|
|
257
|
+
export declare function createTestBot<const F extends MessageFields | undefined = undefined, const S extends Readonly<Record<string, unknown>> = Readonly<Record<string, CommandArgumentSchema | undefined>>>(options: TestBotOptions<F, S>): TestBot<SelectedMessage<F>>;
|
|
258
|
+
//# sourceMappingURL=testing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACzF,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACnE,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAInE,OAAO,KAAK,EACR,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,eAAe,EAClB,MAAM,6BAA6B,CAAA;AACpC,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAE3E,OAAO,EACH,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,QAAQ,GAChB,MAAM,gCAAgC,CAAA;AACvC,YAAY,EACR,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,SAAS,GACZ,MAAM,6BAA6B,CAAA;AACpC,YAAY,EACR,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,eAAe,GAClB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AAE3F;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,aAAa,GAAG,SAAS,GAAG,SAAS,IAAI,IAAI,CACjF,aAAa,CAAC,CAAC,CAAC,EAChB,OAAO,GAAG,WAAW,GAAG,UAAU,CACrC,GACG,YAAY,CAAA;AAEhB;;;;;GAKG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,WAAW,GAAG,OAAO,CAAE,SAAQ,eAAe;IAChF,6FAA6F;IAC7F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IAC1B,+GAA+G;IAC/G,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChD;;;;;;;;;;;;;;OAcG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IACrE;;;;OAIG;IACH,UAAU,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACjD,gHAAgH;IAChH,QAAQ,IAAI,SAAS,WAAW,EAAE,CAAA;IAClC,8EAA8E;IAC9E,QAAQ,IAAI,SAAS,kBAAkB,EAAE,CAAA;IACzC;;;OAGG;IACH,IAAI,IAAI,SAAS,SAAS,EAAE,CAAA;IAC5B,6EAA6E;IAC7E,QAAQ,IAAI,cAAc,CAAA;IAC1B;;;;;;;OAOG;IACH,QAAQ,IAAI,SAAS,SAAS,EAAE,CAAA;IAChC;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9C;;;;;;OAMG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,aAAa,GAAG,SAAS,GAAG,SAAS,EAClF,OAAO,GAAE,iBAAiB,CAAC,CAAC,CAA8B,GAC3D,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAEhC;AAyDD;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,CACtB,CAAC,SAAS,aAAa,GAAG,SAAS,GAAG,SAAS,EAC/C,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,GAAG,SAAS,CAAC,CAAC,IACzG,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,UAAU,CAAC,GAC1D,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG;IAC1B,0GAA0G;IAC1G,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACtC,CAAA;AAEL;;;;GAIG;AACH,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,WAAW,GAAG,OAAO,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IAC3E;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAAA;CAClF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,aAAa,CACzB,KAAK,CAAC,CAAC,SAAS,aAAa,GAAG,SAAS,GAAG,SAAS,EACrD,KAAK,CAAC,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,GAAG,SAAS,CAAC,CAAC,EACjH,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CA6C5D"}
|
package/dist/testing.js
ADDED
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test Fluxer bots built with the default API without a network, a token or a Fluxer account.
|
|
3
|
+
* Import from @neontechspace/fluxerly/testing in application tests
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* import assert from "node:assert/strict"
|
|
8
|
+
* import { createTestClient } from "@neontechspace/fluxerly/testing"
|
|
9
|
+
*
|
|
10
|
+
* await using test = createTestClient()
|
|
11
|
+
* const replies = test.rest.respond("POST /channels/:id/messages", { body: test.fixtures.message({ content: "Pong!" }) })
|
|
12
|
+
* test.client.on("messageCreate", (message) =>
|
|
13
|
+
* message.content === "!ping" ? test.client.messages.reply(message, { content: "Pong!" }) : undefined,
|
|
14
|
+
* )
|
|
15
|
+
* await test.ready()
|
|
16
|
+
* test.emit("MESSAGE_CREATE", test.fixtures.message({ content: "!ping" }))
|
|
17
|
+
* // Handlers run after emit returns, so wait for the reply before asserting on it
|
|
18
|
+
* const request = await replies.next()
|
|
19
|
+
* assert.equal((request.body as { content?: unknown }).content, "Pong!")
|
|
20
|
+
*
|
|
21
|
+
* // A message the bot ignores sends nothing, which idle confirms without a fixed sleep
|
|
22
|
+
* test.emit("MESSAGE_CREATE", test.fixtures.message({ content: "hello" }))
|
|
23
|
+
* await test.idle()
|
|
24
|
+
* assert.equal(replies.requests().length, 1)
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @remarks
|
|
28
|
+
* A test client is a real client from createClient whose HTTP and WebSocket traffic goes to an in-memory transport
|
|
29
|
+
* through the transport option. Events therefore pass through the SDK's own decoders, caches, handlers and logging.
|
|
30
|
+
* The fake gateway speaks protocol v1: It sends HELLO, answers Identify with READY and Resume with RESUMED, acknowledges
|
|
31
|
+
* heartbeats and delivers emitted dispatches with increasing sequence numbers. The fake HTTP side serves hosted Fluxer's
|
|
32
|
+
* discovery document, with presigned uploads off so attachments arrive as one multipart request, answers requests from
|
|
33
|
+
* registered responses and records every request without its Authorization header.
|
|
34
|
+
* Message sends and edits without a registered response receive an echoed bot message, and other unmatched requests
|
|
35
|
+
* receive a Fluxer-shaped 404 and a testing.unmatchedRequest Warn record.
|
|
36
|
+
* Waits such as idle and TestRoute.next have no deadline unless timeoutMs is passed, so the test runner's timeout
|
|
37
|
+
* bounds a test that hangs.
|
|
38
|
+
* Log records go to logs() and to any sinks in the logging option instead of the console.
|
|
39
|
+
* Shutdown stops the client and closes the transport, leaving no sockets, timers or listeners behind, and rejects when
|
|
40
|
+
* a handler or command failed without an onError hook and the test did not read that failure from failures()
|
|
41
|
+
*
|
|
42
|
+
* @packageDocumentation
|
|
43
|
+
*/
|
|
44
|
+
// Checked first, so an unsupported Node.js version fails with a clear message before any other SDK code runs
|
|
45
|
+
import "./internal/node-version.js";
|
|
46
|
+
import { createClient } from "./api/default/client.js";
|
|
47
|
+
import { installTestBot } from "./api/default/bot.js";
|
|
48
|
+
import { clientServices } from "./internal/client-registry.js";
|
|
49
|
+
import { ConfigurationError } from "./errors.js";
|
|
50
|
+
import { checkTestOptionKeys, TestHarness } from "./internal/testing/harness.js";
|
|
51
|
+
import { botOptionKeys } from "./internal/bot-runner.js";
|
|
52
|
+
export { createFixtures, fixtures, fixtureToken, } from "./internal/testing/fixtures.js";
|
|
53
|
+
export { TestTimeoutError, UnhandledTestFailuresError } from "./internal/testing/errors.js";
|
|
54
|
+
/**
|
|
55
|
+
* Create a real default-API client wired to an in-memory Fluxer for application tests.
|
|
56
|
+
* Creation opens no connection and starts no timers. Call ready to connect, and shutdown or `await using` to clean up.
|
|
57
|
+
* The gateway enforces gateway.ignoredEvents, so register handlers before ready when automatic filtering is enabled
|
|
58
|
+
*
|
|
59
|
+
* @remarks
|
|
60
|
+
* Invalid options throw ConfigurationError as createClient does, and supplying transport or instance also throws
|
|
61
|
+
* ConfigurationError because the test transport owns both. The hint for a misspelled key suggests the closest key a
|
|
62
|
+
* test client accepts
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```ts
|
|
66
|
+
* import { createTestClient } from "@neontechspace/fluxerly/testing"
|
|
67
|
+
*
|
|
68
|
+
* export async function greetingTest() {
|
|
69
|
+
* await using test = createTestClient({ cache: { members: true } })
|
|
70
|
+
* const joined = test.client.waitFor("guildMemberAdd")
|
|
71
|
+
* await test.ready()
|
|
72
|
+
* test.emit("GUILD_MEMBER_ADD", test.fixtures.member())
|
|
73
|
+
* const member = await joined
|
|
74
|
+
* return member.isOk() && test.client.members.get(member.value) !== undefined
|
|
75
|
+
* }
|
|
76
|
+
* ```
|
|
77
|
+
*
|
|
78
|
+
* @category Testing
|
|
79
|
+
*/
|
|
80
|
+
export function createTestClient(options = {}) {
|
|
81
|
+
return openTestClient(options).test;
|
|
82
|
+
}
|
|
83
|
+
/** The client's work in progress that idle and say wait for, including scheduled task runs and queued handler events */
|
|
84
|
+
function clientWork(client) {
|
|
85
|
+
return () => {
|
|
86
|
+
const services = clientServices(client);
|
|
87
|
+
const handlers = services?.events.drainState();
|
|
88
|
+
return {
|
|
89
|
+
diagnostics: client.diagnostics(),
|
|
90
|
+
runningTasks: services?.tasks.running ?? 0,
|
|
91
|
+
pendingHandlers: handlers === undefined ? 0 : handlers.running + handlers.waiting,
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/** Create a test client together with the harness that createTestBot also drives */
|
|
96
|
+
function openTestClient(options) {
|
|
97
|
+
const harness = new TestHarness(options);
|
|
98
|
+
const client = createClient(harness.clientOptions(options));
|
|
99
|
+
clientServices(client).logging.errorTap = harness.captureError;
|
|
100
|
+
let closing;
|
|
101
|
+
const shutdown = async () => {
|
|
102
|
+
closing ??= (async () => {
|
|
103
|
+
try {
|
|
104
|
+
await client.shutdown();
|
|
105
|
+
}
|
|
106
|
+
finally {
|
|
107
|
+
harness.close();
|
|
108
|
+
}
|
|
109
|
+
})();
|
|
110
|
+
await closing;
|
|
111
|
+
harness.checkFailures();
|
|
112
|
+
};
|
|
113
|
+
const test = Object.freeze({
|
|
114
|
+
client,
|
|
115
|
+
fixtures: harness.fixtures,
|
|
116
|
+
rest: Object.freeze({ respond: harness.http.respond.bind(harness.http) }),
|
|
117
|
+
ready: async (options) => {
|
|
118
|
+
const connected = await client.connect(options);
|
|
119
|
+
if (connected.isErr())
|
|
120
|
+
throw connected.error;
|
|
121
|
+
},
|
|
122
|
+
emit: (type, payload, options) => harness.gateway.emit(type, payload, options),
|
|
123
|
+
disconnect: (options) => harness.gateway.disconnect(options),
|
|
124
|
+
requests: () => harness.http.requests(),
|
|
125
|
+
commands: () => harness.gateway.commands(),
|
|
126
|
+
logs: () => harness.logs(),
|
|
127
|
+
failures: () => harness.failures(),
|
|
128
|
+
idle: (options) => harness.idle(clientWork(client), options),
|
|
129
|
+
counters: () => client.diagnostics().counters,
|
|
130
|
+
shutdown,
|
|
131
|
+
[Symbol.asyncDispose]: shutdown,
|
|
132
|
+
});
|
|
133
|
+
return { test, harness };
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Create a test client that runs a bot written for runBot: Its events, ignoreBots setting, commands and setup callback,
|
|
137
|
+
* with the same handler contexts, delivery defaults and command router as runBot. Handlers and commands are registered at once,
|
|
138
|
+
* and ready runs setup before connecting, as runBot does, so a test drives the bot exactly as Fluxer would.
|
|
139
|
+
* The setup signal aborts when shutdown starts.
|
|
140
|
+
* It returns the controls of createTestClient plus say, and shutdown or `await using` cleans it up. Automatic gateway
|
|
141
|
+
* filtering sees the bot's handlers, commands and setup registrations, and emit rejects dispatches that list suppresses
|
|
142
|
+
*
|
|
143
|
+
* @remarks
|
|
144
|
+
* Invalid options throw ConfigurationError, as runBot does, and a commands register callback that throws throws its
|
|
145
|
+
* ApplicationError. A failed setup rejects ready with ApplicationError whose source is "runBot setup", and setup runs
|
|
146
|
+
* at most once however often ready is called. The runBot supervision of a stopped subscription does not apply in tests
|
|
147
|
+
*
|
|
148
|
+
* @example
|
|
149
|
+
* ```ts
|
|
150
|
+
* import assert from "node:assert/strict"
|
|
151
|
+
* import { createTestBot } from "@neontechspace/fluxerly/testing"
|
|
152
|
+
*
|
|
153
|
+
* await using test = createTestBot({
|
|
154
|
+
* commands: { prefix: "!", commands: { ping: { execute: ({ reply }) => reply("Pong!") } } },
|
|
155
|
+
* })
|
|
156
|
+
* await test.ready()
|
|
157
|
+
* // The test transport answers the reply with an echoed message, so no rest.respond fixture is needed
|
|
158
|
+
* const replies = await test.say("!ping")
|
|
159
|
+
* assert.deepEqual(
|
|
160
|
+
* replies.map((message) => message.content),
|
|
161
|
+
* ["Pong!"],
|
|
162
|
+
* )
|
|
163
|
+
* ```
|
|
164
|
+
*
|
|
165
|
+
* @category Testing
|
|
166
|
+
*/
|
|
167
|
+
export function createTestBot(options) {
|
|
168
|
+
if (typeof options !== "object" || options === null || Array.isArray(options))
|
|
169
|
+
throw new ConfigurationError("configuration", "Bot options must be an object");
|
|
170
|
+
checkTestOptionKeys(options, botOptionKeys);
|
|
171
|
+
const { events, ignoreBots, commands, setup, token, signal: _signal, processSignals: _processSignals, reportFailure: _reportFailure, drainMs: _drainMs, ...clientOptions } = options;
|
|
172
|
+
const { test, harness } = openTestClient({
|
|
173
|
+
...clientOptions,
|
|
174
|
+
...(token === undefined ? {} : { token }),
|
|
175
|
+
});
|
|
176
|
+
let runSetup;
|
|
177
|
+
try {
|
|
178
|
+
runSetup = installTestBot(test.client, { events, ignoreBots, commands, setup });
|
|
179
|
+
}
|
|
180
|
+
catch (error) {
|
|
181
|
+
// The client owns no socket yet, and its cleanup failure is logged by the client, as runBot does
|
|
182
|
+
void test
|
|
183
|
+
.shutdown()
|
|
184
|
+
.then(undefined, (defect) => clientServices(test.client)?.logging.outputFailure(defect));
|
|
185
|
+
throw error;
|
|
186
|
+
}
|
|
187
|
+
// Shutdown aborts the setup signal before stopping the client, as runBot does when the bot begins stopping
|
|
188
|
+
const stopping = new AbortController();
|
|
189
|
+
let setupDone;
|
|
190
|
+
const ready = async (readyOptions) => {
|
|
191
|
+
setupDone ??= runSetup(stopping.signal);
|
|
192
|
+
await setupDone;
|
|
193
|
+
await test.ready(readyOptions);
|
|
194
|
+
};
|
|
195
|
+
const shutdown = () => {
|
|
196
|
+
stopping.abort();
|
|
197
|
+
return test.shutdown();
|
|
198
|
+
};
|
|
199
|
+
const say = (content, sayOptions) => harness.say(clientWork(test.client), content, sayOptions);
|
|
200
|
+
return Object.freeze({ ...test, ready, say, shutdown, [Symbol.asyncDispose]: shutdown });
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=testing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
|
package/dist/text.d.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type Result } from "neverthrow";
|
|
2
|
+
import { HelperError } from "./helpers.js";
|
|
3
|
+
/**
|
|
4
|
+
* Choose the largest piece `text.split` may return. Supply a limit explicitly. This helper does not discover a server's message limit
|
|
5
|
+
*
|
|
6
|
+
* @category Builders and formatting
|
|
7
|
+
*/
|
|
8
|
+
export interface TextSplitOptions {
|
|
9
|
+
/** Maximum `string.length` of each piece, a positive safe integer with no default. Most emoji count as two or more units */
|
|
10
|
+
readonly maxLength: number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Methods of the text helper, which splits long strings into bounded pieces
|
|
14
|
+
*
|
|
15
|
+
* @category Builders and formatting
|
|
16
|
+
*/
|
|
17
|
+
export type TextHelpers = Readonly<{
|
|
18
|
+
/**
|
|
19
|
+
* Split text into a frozen array of pieces, each with `string.length` at most `options.maxLength` UTF-16 units.
|
|
20
|
+
* Prefer the last newline within a full piece, then the last whitespace, otherwise split a long word.
|
|
21
|
+
* Whitespace stays in the preceding piece, so joining with an empty separator reconstructs the exact input.
|
|
22
|
+
* Empty text gives []
|
|
23
|
+
*
|
|
24
|
+
* No trimming, prefix or suffix insertion, Markdown repair, message-length lookup or remote request occurs.
|
|
25
|
+
* The two UTF-16 units of a single Unicode code point stay together.
|
|
26
|
+
* A visible character made of multiple code points, such as a base character with combining marks or a joined emoji, may still be split.
|
|
27
|
+
* Throws HelperError for invalid text or options, lone surrogates, or a ceiling too small for a surrogate pair.
|
|
28
|
+
* Input and returned pieces are application-owned, and result size is proportional to the supplied text
|
|
29
|
+
*/
|
|
30
|
+
split(content: string, options: TextSplitOptions): readonly string[];
|
|
31
|
+
}>;
|
|
32
|
+
/** Break long text into smaller strings for later sending or display. No message is sent.
|
|
33
|
+
* The split method returns the pieces directly and throws HelperError for invalid text or options
|
|
34
|
+
*/
|
|
35
|
+
export declare const text: TextHelpers;
|
|
36
|
+
/** Split text with the public split rules, returning invalid input as an Err for SDK callers that map it to their own error */
|
|
37
|
+
export declare function splitText(content: string, options: TextSplitOptions): Result<readonly string[], HelperError>;
|
|
38
|
+
//# sourceMappingURL=text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,WAAW,EAAgB,MAAM,cAAc,CAAA;AAExD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC7B,4HAA4H;IAC5H,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC7B;AAED;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;IAC/B;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,SAAS,MAAM,EAAE,CAAA;CACvE,CAAC,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,WAEjB,CAAA;AAEF,+HAA+H;AAC/H,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAAC,SAAS,MAAM,EAAE,EAAE,WAAW,CAAC,CAiC5G"}
|
package/dist/text.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { err, ok } from "neverthrow";
|
|
2
|
+
import { HelperError, valueOrThrow } from "./helpers.js";
|
|
3
|
+
/** Break long text into smaller strings for later sending or display. No message is sent.
|
|
4
|
+
* The split method returns the pieces directly and throws HelperError for invalid text or options
|
|
5
|
+
*/
|
|
6
|
+
export const text = Object.freeze({
|
|
7
|
+
split: (content, options) => valueOrThrow(splitText(content, options)),
|
|
8
|
+
});
|
|
9
|
+
/** Split text with the public split rules, returning invalid input as an Err for SDK callers that map it to their own error */
|
|
10
|
+
export function splitText(content, options) {
|
|
11
|
+
if (typeof options !== "object" ||
|
|
12
|
+
options === null ||
|
|
13
|
+
Array.isArray(options) ||
|
|
14
|
+
Object.keys(options).some((key) => key !== "maxLength") ||
|
|
15
|
+
!Number.isSafeInteger(options.maxLength) ||
|
|
16
|
+
options.maxLength <= 0)
|
|
17
|
+
return err(new HelperError("text.split", "limit"));
|
|
18
|
+
if (typeof content !== "string" || !content.isWellFormed())
|
|
19
|
+
return err(new HelperError("text.split", "text"));
|
|
20
|
+
const chunks = [];
|
|
21
|
+
for (let start = 0; start < content.length;) {
|
|
22
|
+
let end = Math.min(start + options.maxLength, content.length);
|
|
23
|
+
const previous = content.charCodeAt(end - 1);
|
|
24
|
+
if (end < content.length && previous >= 0xd800 && previous <= 0xdbff)
|
|
25
|
+
end -= 1;
|
|
26
|
+
if (end === start)
|
|
27
|
+
return err(new HelperError("text.split", "limit"));
|
|
28
|
+
if (end < content.length) {
|
|
29
|
+
let wordEnd = 0;
|
|
30
|
+
let lineEnd = 0;
|
|
31
|
+
for (let index = end - 1; index >= start; index -= 1) {
|
|
32
|
+
if (content[index] === "\n") {
|
|
33
|
+
lineEnd = index + 1;
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
if (wordEnd === 0 && /\s/u.test(content[index]))
|
|
37
|
+
wordEnd = index + 1;
|
|
38
|
+
}
|
|
39
|
+
end = lineEnd || wordEnd || end;
|
|
40
|
+
}
|
|
41
|
+
chunks.push(content.slice(start, end));
|
|
42
|
+
start = end;
|
|
43
|
+
}
|
|
44
|
+
return ok(Object.freeze(chunks));
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=text.js.map
|
package/dist/text.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAiCxD;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAgB,MAAM,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,CAAC,OAAe,EAAE,OAAyB,EAAqB,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CACtH,CAAC,CAAA;AAEF,+HAA+H;AAC/H,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,OAAyB;IAChE,IACI,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,WAAW,CAAC;QACvD,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC;QACxC,OAAO,CAAC,SAAS,IAAI,CAAC;QAEtB,OAAO,GAAG,CAAC,IAAI,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAA;IACtD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;QAAE,OAAO,GAAG,CAAC,IAAI,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;IAC7G,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;QAC1C,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;QAC5C,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,IAAI,MAAM,IAAI,QAAQ,IAAI,MAAM;YAAE,GAAG,IAAI,CAAC,CAAA;QAC9E,IAAI,GAAG,KAAK,KAAK;YAAE,OAAO,GAAG,CAAC,IAAI,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAA;QACrE,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YACvB,IAAI,OAAO,GAAG,CAAC,CAAA;YACf,IAAI,OAAO,GAAG,CAAC,CAAA;YACf,KAAK,IAAI,KAAK,GAAG,GAAG,GAAG,CAAC,EAAE,KAAK,IAAI,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBACnD,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;oBAC1B,OAAO,GAAG,KAAK,GAAG,CAAC,CAAA;oBACnB,MAAK;gBACT,CAAC;gBACD,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAE,CAAC;oBAAE,OAAO,GAAG,KAAK,GAAG,CAAC,CAAA;YACzE,CAAC;YACD,GAAG,GAAG,OAAO,IAAI,OAAO,IAAI,GAAG,CAAA;QACnC,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;QACtC,KAAK,GAAG,GAAG,CAAA;IACf,CAAC;IACD,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;AACpC,CAAC"}
|