@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
package/src/assets.ts
ADDED
|
@@ -0,0 +1,731 @@
|
|
|
1
|
+
import { operationErrorMessage } from "./api-errors.js"
|
|
2
|
+
import { FluxerlyError, operationDetails } from "./errors.js"
|
|
3
|
+
import { err, ok, type Result } from "neverthrow"
|
|
4
|
+
import { GuildMemberProfileFlags } from "./guilds.js"
|
|
5
|
+
import type { Guild, GuildMember } from "./guilds.js"
|
|
6
|
+
import { snowflakes, valueOrThrow } from "./helpers.js"
|
|
7
|
+
import type { GuildEmoji, GuildSticker } from "./expressions.js"
|
|
8
|
+
import type { User, UserProfileFields } from "./users.js"
|
|
9
|
+
|
|
10
|
+
const mediaOrigin = "https://fluxerusercontent.com"
|
|
11
|
+
const staticOrigin = "https://fluxerstatic.com"
|
|
12
|
+
const largestSize = 4_294_967_295
|
|
13
|
+
const hashPattern = /^[A-Za-z0-9_]+$/u
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Choose the image format for an asset URL. WebP is the default. Sticker URLs do not accept this choice
|
|
17
|
+
*
|
|
18
|
+
* @category Builders and formatting
|
|
19
|
+
*/
|
|
20
|
+
export const AssetFormats: Readonly<{
|
|
21
|
+
/** Static PNG image, use animated false for an animated source */
|
|
22
|
+
Png: "png"
|
|
23
|
+
/** Static JPEG image, use animated false for an animated source */
|
|
24
|
+
Jpeg: "jpeg"
|
|
25
|
+
/** WebP image, supports static images and animation */
|
|
26
|
+
Webp: "webp"
|
|
27
|
+
/** GIF image, can preserve animation */
|
|
28
|
+
Gif: "gif"
|
|
29
|
+
/** Animated PNG image, can preserve animation */
|
|
30
|
+
Apng: "apng"
|
|
31
|
+
}> = Object.freeze({
|
|
32
|
+
Png: "png",
|
|
33
|
+
Jpeg: "jpeg",
|
|
34
|
+
Webp: "webp",
|
|
35
|
+
Gif: "gif",
|
|
36
|
+
Apng: "apng",
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* One image encoding the hosted Fluxer media proxy can produce
|
|
41
|
+
*
|
|
42
|
+
* @category Builders and formatting
|
|
43
|
+
*/
|
|
44
|
+
export type AssetFormat = (typeof AssetFormats)[keyof typeof AssetFormats]
|
|
45
|
+
|
|
46
|
+
/** Choose the format, size and animation to request in an asset URL.
|
|
47
|
+
* Unknown keys or invalid values throw AssetUrlError, even when the target has no image
|
|
48
|
+
*
|
|
49
|
+
* @category Builders and formatting
|
|
50
|
+
*/
|
|
51
|
+
export interface AssetUrlOptions {
|
|
52
|
+
/** Requested image size in pixels, an integer from 0 through 4_294_967_295.
|
|
53
|
+
* Omit it to leave size selection to Fluxer. The helper sends it unchanged, Fluxer selects a supported size for that asset
|
|
54
|
+
*/
|
|
55
|
+
readonly size?: number
|
|
56
|
+
/** Output encoding. `Webp` is used when omitted */
|
|
57
|
+
readonly format?: AssetFormat
|
|
58
|
+
/** Request animation or a still image. When omitted, animated asset hashes or emoji metadata select animation.
|
|
59
|
+
* Requesting animation with Png or Jpeg throws AssetUrlError, choose animated false to request a still image instead
|
|
60
|
+
*/
|
|
61
|
+
readonly animated?: boolean
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/** Choose sticker size and animation. There is no format option because Fluxer chooses the sticker encoding.
|
|
65
|
+
* Unknown keys or invalid values throw AssetUrlError
|
|
66
|
+
*
|
|
67
|
+
* @category Builders and formatting
|
|
68
|
+
*/
|
|
69
|
+
export interface StickerAssetUrlOptions {
|
|
70
|
+
/** Requested size in pixels, an integer from 0 through 4_294_967_295. Omit to leave size selection to Fluxer, the helper does not resize it locally */
|
|
71
|
+
readonly size?: number
|
|
72
|
+
/** Override the sticker's animated metadata. Animated stickers return their GIF source, other stickers return WebP */
|
|
73
|
+
readonly animated?: boolean
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/** The SDK could not make an asset URL from the supplied input.
|
|
77
|
+
* The operation identifies the helper. The reason identifies which part was invalid.
|
|
78
|
+
* Asset helpers throw this for invalid input in both the default and native APIs, because passing it is a programming mistake.
|
|
79
|
+
* Inside Effect code, such a throw becomes a defect rather than a typed failure. It does not store the rejected value
|
|
80
|
+
*
|
|
81
|
+
* @category Errors
|
|
82
|
+
*/
|
|
83
|
+
export class AssetUrlError extends FluxerlyError {
|
|
84
|
+
/** Stable expected-failure discriminator */
|
|
85
|
+
readonly _tag = "AssetUrlError"
|
|
86
|
+
|
|
87
|
+
constructor(
|
|
88
|
+
/** Asset helper that rejected the input */
|
|
89
|
+
readonly operation:
|
|
90
|
+
| "assets.avatar"
|
|
91
|
+
| "assets.userBanner"
|
|
92
|
+
| "assets.defaultAvatar"
|
|
93
|
+
| "assets.displayAvatar"
|
|
94
|
+
| "assets.memberAvatar"
|
|
95
|
+
| "assets.memberBanner"
|
|
96
|
+
| "assets.displayMemberAvatar"
|
|
97
|
+
| "assets.guildIcon"
|
|
98
|
+
| "assets.guildBanner"
|
|
99
|
+
| "assets.guildSplash"
|
|
100
|
+
| "assets.guildEmbedSplash"
|
|
101
|
+
| "assets.emoji"
|
|
102
|
+
| "assets.sticker",
|
|
103
|
+
/** Whether the structural target, decimal ID, asset hash, or transform options were invalid */
|
|
104
|
+
readonly reason: "target" | "id" | "hash" | "options",
|
|
105
|
+
/** Optional underlying failure retained as the error's cause */
|
|
106
|
+
options?: { readonly cause?: unknown },
|
|
107
|
+
) {
|
|
108
|
+
super(assetErrorMessage(operation, reason), {
|
|
109
|
+
code: `asset.${reason}`,
|
|
110
|
+
cause: options?.cause,
|
|
111
|
+
details: operationDetails({ operation, reason }),
|
|
112
|
+
})
|
|
113
|
+
this.name = this._tag
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
type AssetOperation = AssetUrlError["operation"]
|
|
118
|
+
|
|
119
|
+
/** Describe what the asset helper accepts, without the rejected value */
|
|
120
|
+
function assetErrorMessage(operation: AssetOperation, reason: AssetUrlError["reason"]): string {
|
|
121
|
+
const explanation =
|
|
122
|
+
reason === "id"
|
|
123
|
+
? "IDs must be decimal strings"
|
|
124
|
+
: reason === "hash"
|
|
125
|
+
? "Asset hashes must be strings of letters, digits, or underscores, or null when there is no custom image"
|
|
126
|
+
: reason === "options"
|
|
127
|
+
? operation === "assets.sticker"
|
|
128
|
+
? "Sticker URL options may contain only size, an integer from 0 through 4,294,967,295, and a boolean animated"
|
|
129
|
+
: "Asset URL options may contain only size, an integer from 0 through 4,294,967,295, a format from AssetFormats, and a boolean animated. Animated images cannot use png or jpeg"
|
|
130
|
+
: operation === "assets.emoji" || operation === "assets.sticker"
|
|
131
|
+
? "The target must be an object with a decimal id and a boolean animated"
|
|
132
|
+
: operation === "assets.displayMemberAvatar"
|
|
133
|
+
? "The target must be an object, and the member must belong to the given user"
|
|
134
|
+
: "The target must be an object with the fields this helper documents"
|
|
135
|
+
return operationErrorMessage({
|
|
136
|
+
subject: "Asset helper",
|
|
137
|
+
operation,
|
|
138
|
+
reason: "input",
|
|
139
|
+
outcome: "notDispatched",
|
|
140
|
+
inputExplanation: explanation,
|
|
141
|
+
})
|
|
142
|
+
}
|
|
143
|
+
type AssetHash = string | null | undefined
|
|
144
|
+
type AssetOptions = Readonly<{
|
|
145
|
+
size?: number
|
|
146
|
+
format: AssetFormat
|
|
147
|
+
animated?: boolean
|
|
148
|
+
}>
|
|
149
|
+
|
|
150
|
+
function assetError(operation: AssetOperation, reason: AssetUrlError["reason"]): AssetUrlError {
|
|
151
|
+
return new AssetUrlError(operation, reason)
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
function target(value: unknown, operation: AssetOperation): Result<Record<string, unknown>, AssetUrlError> {
|
|
155
|
+
return typeof value === "object" && value !== null && !Array.isArray(value)
|
|
156
|
+
? ok(value as Record<string, unknown>)
|
|
157
|
+
: err(assetError(operation, "target"))
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
function id(value: unknown, operation: AssetOperation): Result<string, AssetUrlError> {
|
|
161
|
+
return snowflakes.isValid(value) ? ok(value) : err(assetError(operation, "id"))
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
function hash(value: unknown, operation: AssetOperation): Result<string, AssetUrlError> {
|
|
165
|
+
return typeof value === "string" && value !== "a_" && hashPattern.test(value)
|
|
166
|
+
? ok(value)
|
|
167
|
+
: err(assetError(operation, "hash"))
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
function optionalHash(value: unknown, operation: AssetOperation): Result<AssetHash, AssetUrlError> {
|
|
171
|
+
if (value === undefined || value === null) return ok(value)
|
|
172
|
+
return hash(value, operation)
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
function userTarget(
|
|
176
|
+
value: unknown,
|
|
177
|
+
operation: AssetOperation,
|
|
178
|
+
): Result<Readonly<{ id: string; avatar: string | null }>, AssetUrlError> {
|
|
179
|
+
const resolved = target(value, operation)
|
|
180
|
+
if (resolved.isErr()) return err(resolved.error)
|
|
181
|
+
const userId = id(resolved.value.id, operation)
|
|
182
|
+
if (userId.isErr()) return err(userId.error)
|
|
183
|
+
if (resolved.value.avatar === null) return ok({ id: userId.value, avatar: null })
|
|
184
|
+
return hash(resolved.value.avatar, operation).map((avatar) => ({ id: userId.value, avatar }))
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
function memberTarget(
|
|
188
|
+
value: unknown,
|
|
189
|
+
property: "avatar" | "banner",
|
|
190
|
+
operation: AssetOperation,
|
|
191
|
+
): Result<Readonly<{ guildId: string; userId: string; asset: AssetHash; profileFlags?: unknown }>, AssetUrlError> {
|
|
192
|
+
const resolved = target(value, operation)
|
|
193
|
+
if (resolved.isErr()) return err(resolved.error)
|
|
194
|
+
const guildId = id(resolved.value.guildId, operation)
|
|
195
|
+
if (guildId.isErr()) return err(guildId.error)
|
|
196
|
+
const userId = id(resolved.value.userId, operation)
|
|
197
|
+
if (userId.isErr()) return err(userId.error)
|
|
198
|
+
const asset = optionalHash(resolved.value[property], operation)
|
|
199
|
+
if (asset.isErr()) return err(asset.error)
|
|
200
|
+
return ok({
|
|
201
|
+
guildId: guildId.value,
|
|
202
|
+
userId: userId.value,
|
|
203
|
+
asset: asset.value,
|
|
204
|
+
...(operation === "assets.displayMemberAvatar" ? { profileFlags: resolved.value.profileFlags } : {}),
|
|
205
|
+
})
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
function guildTarget(
|
|
209
|
+
value: unknown,
|
|
210
|
+
property: "icon" | "banner" | "splash" | "embedSplash",
|
|
211
|
+
operation: AssetOperation,
|
|
212
|
+
): Result<Readonly<{ id: string; asset: AssetHash }>, AssetUrlError> {
|
|
213
|
+
const resolved = target(value, operation)
|
|
214
|
+
if (resolved.isErr()) return err(resolved.error)
|
|
215
|
+
const guildId = id(resolved.value.id, operation)
|
|
216
|
+
if (guildId.isErr()) return err(guildId.error)
|
|
217
|
+
return optionalHash(resolved.value[property], operation).map((asset) => ({ id: guildId.value, asset }))
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
function expressionTarget(
|
|
221
|
+
value: unknown,
|
|
222
|
+
operation: "assets.emoji" | "assets.sticker",
|
|
223
|
+
): Result<Readonly<{ id: string; animated: boolean }>, AssetUrlError> {
|
|
224
|
+
const resolved = target(value, operation)
|
|
225
|
+
if (resolved.isErr()) return err(resolved.error)
|
|
226
|
+
const expressionId = id(resolved.value.id, operation)
|
|
227
|
+
if (expressionId.isErr()) return err(expressionId.error)
|
|
228
|
+
return typeof resolved.value.animated === "boolean"
|
|
229
|
+
? ok({ id: expressionId.value, animated: resolved.value.animated })
|
|
230
|
+
: err(assetError(operation, "target"))
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
function imageOptions(
|
|
234
|
+
value: unknown,
|
|
235
|
+
operation: AssetOperation,
|
|
236
|
+
defaultAnimated: boolean | undefined,
|
|
237
|
+
includeDefaultAnimated: boolean,
|
|
238
|
+
): Result<AssetOptions, AssetUrlError> {
|
|
239
|
+
if (value === undefined)
|
|
240
|
+
return ok({
|
|
241
|
+
format: AssetFormats.Webp,
|
|
242
|
+
...(includeDefaultAnimated && defaultAnimated ? { animated: true } : {}),
|
|
243
|
+
})
|
|
244
|
+
const resolved = target(value, operation)
|
|
245
|
+
if (resolved.isErr()) return err(assetError(operation, "options"))
|
|
246
|
+
if (!Object.keys(resolved.value).every((key) => key === "size" || key === "format" || key === "animated"))
|
|
247
|
+
return err(assetError(operation, "options"))
|
|
248
|
+
|
|
249
|
+
const inputSize = resolved.value.size
|
|
250
|
+
if (
|
|
251
|
+
inputSize !== undefined &&
|
|
252
|
+
(typeof inputSize !== "number" || !Number.isInteger(inputSize) || inputSize < 0 || inputSize > largestSize)
|
|
253
|
+
)
|
|
254
|
+
return err(assetError(operation, "options"))
|
|
255
|
+
const size = typeof inputSize === "number" ? inputSize : undefined
|
|
256
|
+
const inputFormat = resolved.value.format
|
|
257
|
+
if (
|
|
258
|
+
inputFormat !== undefined &&
|
|
259
|
+
(typeof inputFormat !== "string" || !Object.values(AssetFormats).includes(inputFormat as AssetFormat))
|
|
260
|
+
)
|
|
261
|
+
return err(assetError(operation, "options"))
|
|
262
|
+
const format: AssetFormat = typeof inputFormat === "string" ? (inputFormat as AssetFormat) : AssetFormats.Webp
|
|
263
|
+
const inputAnimated = resolved.value.animated
|
|
264
|
+
if (inputAnimated !== undefined && typeof inputAnimated !== "boolean") return err(assetError(operation, "options"))
|
|
265
|
+
const animated = typeof inputAnimated === "boolean" ? inputAnimated : undefined
|
|
266
|
+
|
|
267
|
+
const effectiveAnimated = animated ?? defaultAnimated
|
|
268
|
+
if (effectiveAnimated === true && (format === AssetFormats.Png || format === AssetFormats.Jpeg))
|
|
269
|
+
return err(assetError(operation, "options"))
|
|
270
|
+
return ok({
|
|
271
|
+
...(size === undefined ? {} : { size }),
|
|
272
|
+
format,
|
|
273
|
+
...(animated === undefined
|
|
274
|
+
? includeDefaultAnimated && defaultAnimated === true
|
|
275
|
+
? { animated: true }
|
|
276
|
+
: {}
|
|
277
|
+
: { animated }),
|
|
278
|
+
})
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
function stickerOptions(
|
|
282
|
+
value: unknown,
|
|
283
|
+
operation: "assets.sticker",
|
|
284
|
+
defaultAnimated: boolean,
|
|
285
|
+
): Result<Omit<AssetOptions, "format">, AssetUrlError> {
|
|
286
|
+
if (value === undefined) return ok(defaultAnimated ? { animated: true } : {})
|
|
287
|
+
const resolved = target(value, operation)
|
|
288
|
+
if (resolved.isErr()) return err(assetError(operation, "options"))
|
|
289
|
+
if (!Object.keys(resolved.value).every((key) => key === "size" || key === "animated"))
|
|
290
|
+
return err(assetError(operation, "options"))
|
|
291
|
+
|
|
292
|
+
const inputSize = resolved.value.size
|
|
293
|
+
if (
|
|
294
|
+
inputSize !== undefined &&
|
|
295
|
+
(typeof inputSize !== "number" || !Number.isInteger(inputSize) || inputSize < 0 || inputSize > largestSize)
|
|
296
|
+
)
|
|
297
|
+
return err(assetError(operation, "options"))
|
|
298
|
+
const size = typeof inputSize === "number" ? inputSize : undefined
|
|
299
|
+
const inputAnimated = resolved.value.animated
|
|
300
|
+
if (inputAnimated !== undefined && typeof inputAnimated !== "boolean") return err(assetError(operation, "options"))
|
|
301
|
+
const animated = typeof inputAnimated === "boolean" ? inputAnimated : undefined
|
|
302
|
+
return ok({
|
|
303
|
+
...(size === undefined ? {} : { size }),
|
|
304
|
+
...(animated === undefined ? (defaultAnimated ? { animated: true } : {}) : { animated }),
|
|
305
|
+
})
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
function mediaUrl(path: string, options: Omit<AssetOptions, "format">): string {
|
|
309
|
+
const query = new URLSearchParams()
|
|
310
|
+
if (options.size !== undefined) query.set("size", String(options.size))
|
|
311
|
+
if (options.animated !== undefined) query.set("animated", String(options.animated))
|
|
312
|
+
const suffix = query.size === 0 ? "" : `?${query}`
|
|
313
|
+
return `${mediaOrigin}${path}${suffix}`
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
function ownerAsset(
|
|
317
|
+
ownerId: string,
|
|
318
|
+
assetHash: string,
|
|
319
|
+
path: (id: string, hash: string, format: AssetFormat) => string,
|
|
320
|
+
options: AssetUrlOptions | undefined,
|
|
321
|
+
operation: AssetOperation,
|
|
322
|
+
): Result<string, AssetUrlError> {
|
|
323
|
+
return imageOptions(options, operation, assetHash.startsWith("a_"), false).map((resolved) =>
|
|
324
|
+
mediaUrl(path(ownerId, assetHash, resolved.format), resolved),
|
|
325
|
+
)
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
function staticDefaultAvatar(userId: string): string {
|
|
329
|
+
return `${staticOrigin}/avatars/${BigInt(userId) % 6n}.png`
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
function validateImageOptions(
|
|
333
|
+
options: AssetUrlOptions | undefined,
|
|
334
|
+
operation: AssetOperation,
|
|
335
|
+
): Result<void, AssetUrlError> {
|
|
336
|
+
return imageOptions(options, operation, undefined, false).map(() => undefined)
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
function displayUserAvatar(
|
|
340
|
+
user: Readonly<{ id: string; avatar: string | null }>,
|
|
341
|
+
options: AssetUrlOptions | undefined,
|
|
342
|
+
operation: "assets.displayAvatar" | "assets.displayMemberAvatar",
|
|
343
|
+
): Result<string, AssetUrlError> {
|
|
344
|
+
return user.avatar === null
|
|
345
|
+
? validateImageOptions(options, operation).map(() => staticDefaultAvatar(user.id))
|
|
346
|
+
: ownerAsset(user.id, user.avatar, (id, hash, format) => `/avatars/${id}/${hash}.${format}`, options, operation)
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
function absentOrOwnerAsset(
|
|
350
|
+
ownerId: string,
|
|
351
|
+
assetHash: AssetHash,
|
|
352
|
+
path: (id: string, hash: string, format: AssetFormat) => string,
|
|
353
|
+
options: AssetUrlOptions | undefined,
|
|
354
|
+
operation: AssetOperation,
|
|
355
|
+
): Result<string | null | undefined, AssetUrlError> {
|
|
356
|
+
return assetHash === undefined
|
|
357
|
+
? validateImageOptions(options, operation).map(() => undefined)
|
|
358
|
+
: assetHash === null
|
|
359
|
+
? validateImageOptions(options, operation).map(() => null)
|
|
360
|
+
: ownerAsset(ownerId, assetHash, path, options, operation)
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
function memberProfileFlags(
|
|
364
|
+
value: unknown,
|
|
365
|
+
operation: "assets.displayMemberAvatar",
|
|
366
|
+
): Result<number | null | undefined, AssetUrlError> {
|
|
367
|
+
if (value === undefined || value === null) return ok(value)
|
|
368
|
+
return typeof value === "number" && Number.isInteger(value) && value >= 0 && value <= 2_147_483_647
|
|
369
|
+
? ok(value)
|
|
370
|
+
: err(assetError(operation, "target"))
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
/**
|
|
374
|
+
* Methods of the assets helper, which builds image URLs for avatars, banners, community images, emoji and stickers.
|
|
375
|
+
* Each method returns its URL, null or undefined directly and throws AssetUrlError for an invalid target, ID, hash or option
|
|
376
|
+
*
|
|
377
|
+
* @category Builders and formatting
|
|
378
|
+
*/
|
|
379
|
+
export type AssetHelpers = Readonly<{
|
|
380
|
+
/**
|
|
381
|
+
* Build an account-banner URL from a users.fetchProfile result, using only user.id and profile.banner.
|
|
382
|
+
* A null banner stays null, even when a limited profile withheld the banner, so null does not prove that the account has no banner.
|
|
383
|
+
* Uses AssetUrlOptions' WebP default and transform validation, without fetching, selecting a community banner or verifying existence or access
|
|
384
|
+
*/
|
|
385
|
+
userBanner(
|
|
386
|
+
profile: Readonly<{
|
|
387
|
+
/** Account identity from users.fetchProfile, used to select the banner's owner */
|
|
388
|
+
user: Pick<User, "id">
|
|
389
|
+
/** Observed banner hash, or null when this profile response does not provide one */
|
|
390
|
+
profile: Pick<UserProfileFields, "banner">
|
|
391
|
+
}>,
|
|
392
|
+
options?: AssetUrlOptions,
|
|
393
|
+
): string | null
|
|
394
|
+
/**
|
|
395
|
+
* Build the user's custom-avatar URL, or null when the avatar field is null.
|
|
396
|
+
* Uses only the supplied id and avatar fields, and no profile is fetched.
|
|
397
|
+
* An omitted avatar is invalid and throws AssetUrlError
|
|
398
|
+
*/
|
|
399
|
+
avatar(user: Pick<User, "id" | "avatar">, options?: AssetUrlOptions): string | null
|
|
400
|
+
/**
|
|
401
|
+
* Build Fluxer's static default-avatar URL from a canonical user ID.
|
|
402
|
+
* Static defaults have no media transform query and do not depend on user-profile availability
|
|
403
|
+
*/
|
|
404
|
+
defaultAvatar(userId: string): string
|
|
405
|
+
/**
|
|
406
|
+
* Build a URL suitable for displaying a user avatar, using the custom avatar or a static default when avatar is null.
|
|
407
|
+
* Requires known user id and avatar fields.
|
|
408
|
+
* It never produces null, and invalid targets or options throw AssetUrlError
|
|
409
|
+
*/
|
|
410
|
+
displayAvatar(user: Pick<User, "id" | "avatar">, options?: AssetUrlOptions): string
|
|
411
|
+
/**
|
|
412
|
+
* Build the member's community avatar URL using only guildId, userId and avatar.
|
|
413
|
+
* Produces undefined for an omitted avatar hash, or null for an explicitly absent avatar.
|
|
414
|
+
* It does not choose a fallback, which displayMemberAvatar provides
|
|
415
|
+
*/
|
|
416
|
+
memberAvatar(
|
|
417
|
+
member: Pick<GuildMember, "guildId" | "userId" | "avatar">,
|
|
418
|
+
options?: AssetUrlOptions,
|
|
419
|
+
): string | null | undefined
|
|
420
|
+
/**
|
|
421
|
+
* Build the member's community banner URL using only guildId, userId and banner.
|
|
422
|
+
* Produces undefined for an omitted banner hash, or null for an explicitly absent banner.
|
|
423
|
+
* It does not substitute the account banner
|
|
424
|
+
*/
|
|
425
|
+
memberBanner(
|
|
426
|
+
member: Pick<GuildMember, "guildId" | "userId" | "banner">,
|
|
427
|
+
options?: AssetUrlOptions,
|
|
428
|
+
): string | null | undefined
|
|
429
|
+
/**
|
|
430
|
+
* Choose an avatar to display for a user in a community.
|
|
431
|
+
* The user ID must match member.userId.
|
|
432
|
+
* Normally chooses the member avatar, then the account avatar, then a static default, while AvatarUnset selects the static default directly.
|
|
433
|
+
* Produces undefined if profileFlags is omitted or avatar is omitted without AvatarUnset.
|
|
434
|
+
* Reads guildId, userId, avatar and profileFlags from the member, not banner.
|
|
435
|
+
* Invalid targets or options throw AssetUrlError
|
|
436
|
+
*/
|
|
437
|
+
displayMemberAvatar(
|
|
438
|
+
user: Pick<User, "id" | "avatar">,
|
|
439
|
+
member: Pick<GuildMember, "guildId" | "userId" | "avatar" | "profileFlags">,
|
|
440
|
+
options?: AssetUrlOptions,
|
|
441
|
+
): string | undefined
|
|
442
|
+
/**
|
|
443
|
+
* Build a community icon URL from the community's id and icon.
|
|
444
|
+
* An omitted icon hash produces undefined, and an explicitly absent icon produces null
|
|
445
|
+
*/
|
|
446
|
+
guildIcon(guild: Pick<Guild, "id" | "icon">, options?: AssetUrlOptions): string | null | undefined
|
|
447
|
+
/**
|
|
448
|
+
* Build a community banner URL from the community's id and banner.
|
|
449
|
+
* An omitted banner hash produces undefined, and an explicitly absent banner produces null
|
|
450
|
+
*/
|
|
451
|
+
guildBanner(guild: Pick<Guild, "id" | "banner">, options?: AssetUrlOptions): string | null | undefined
|
|
452
|
+
/**
|
|
453
|
+
* Build the community's invite-background image URL from id and splash.
|
|
454
|
+
* An omitted splash hash produces undefined, and an explicitly absent splash produces null
|
|
455
|
+
*/
|
|
456
|
+
guildSplash(guild: Pick<Guild, "id" | "splash">, options?: AssetUrlOptions): string | null | undefined
|
|
457
|
+
/**
|
|
458
|
+
* Build the background image URL for an embedded community invite, using id and embedSplash.
|
|
459
|
+
* An omitted embedSplash hash produces undefined, and an explicitly absent one produces null
|
|
460
|
+
*/
|
|
461
|
+
guildEmbedSplash(guild: Pick<Guild, "id" | "embedSplash">, options?: AssetUrlOptions): string | null | undefined
|
|
462
|
+
/**
|
|
463
|
+
* Build a custom-emoji image URL from only its ID and animated metadata, without looking up the emoji.
|
|
464
|
+
* Animated emoji request animation by default.
|
|
465
|
+
* Choose Webp, Gif or Apng to preserve it, or animated false for a still image
|
|
466
|
+
*/
|
|
467
|
+
emoji(emoji: Pick<GuildEmoji, "id" | "animated">, options?: AssetUrlOptions): string
|
|
468
|
+
/**
|
|
469
|
+
* Build a custom-sticker URL from only its ID and `animated` metadata.
|
|
470
|
+
* Sticker format is intentionally absent, because Fluxer returns WebP except an animated sticker's GIF source
|
|
471
|
+
*/
|
|
472
|
+
sticker(sticker: Pick<GuildSticker, "id" | "animated">, options?: StickerAssetUrlOptions): string
|
|
473
|
+
}>
|
|
474
|
+
|
|
475
|
+
/** Result-returning URL builders behind the public asset helpers, which throw their AssetUrlError */
|
|
476
|
+
const assetUrls = Object.freeze({
|
|
477
|
+
userBanner(
|
|
478
|
+
profile: Readonly<{
|
|
479
|
+
user: Pick<User, "id">
|
|
480
|
+
profile: Pick<UserProfileFields, "banner">
|
|
481
|
+
}>,
|
|
482
|
+
options?: AssetUrlOptions,
|
|
483
|
+
): Result<string | null, AssetUrlError> {
|
|
484
|
+
const operation = "assets.userBanner"
|
|
485
|
+
const resolved = target(profile, operation)
|
|
486
|
+
if (resolved.isErr()) return err(resolved.error)
|
|
487
|
+
const user = target(resolved.value.user, operation)
|
|
488
|
+
if (user.isErr()) return err(user.error)
|
|
489
|
+
const userId = id(user.value.id, operation)
|
|
490
|
+
if (userId.isErr()) return err(userId.error)
|
|
491
|
+
const fields = target(resolved.value.profile, operation)
|
|
492
|
+
if (fields.isErr()) return err(fields.error)
|
|
493
|
+
if (fields.value.banner === null) return validateImageOptions(options, operation).map(() => null)
|
|
494
|
+
return hash(fields.value.banner, operation).andThen((banner) =>
|
|
495
|
+
ownerAsset(
|
|
496
|
+
userId.value,
|
|
497
|
+
banner,
|
|
498
|
+
(id, hash, format) => `/banners/${id}/${hash}.${format}`,
|
|
499
|
+
options,
|
|
500
|
+
operation,
|
|
501
|
+
),
|
|
502
|
+
)
|
|
503
|
+
},
|
|
504
|
+
avatar(user: Pick<User, "id" | "avatar">, options?: AssetUrlOptions): Result<string | null, AssetUrlError> {
|
|
505
|
+
const resolved = userTarget(user, "assets.avatar")
|
|
506
|
+
if (resolved.isErr()) return err(resolved.error)
|
|
507
|
+
return resolved.value.avatar === null
|
|
508
|
+
? validateImageOptions(options, "assets.avatar").map(() => null)
|
|
509
|
+
: ownerAsset(
|
|
510
|
+
resolved.value.id,
|
|
511
|
+
resolved.value.avatar,
|
|
512
|
+
(id, hash, format) => `/avatars/${id}/${hash}.${format}`,
|
|
513
|
+
options,
|
|
514
|
+
"assets.avatar",
|
|
515
|
+
)
|
|
516
|
+
},
|
|
517
|
+
defaultAvatar(userId: string): Result<string, AssetUrlError> {
|
|
518
|
+
return id(userId, "assets.defaultAvatar").map(staticDefaultAvatar)
|
|
519
|
+
},
|
|
520
|
+
displayAvatar(user: Pick<User, "id" | "avatar">, options?: AssetUrlOptions): Result<string, AssetUrlError> {
|
|
521
|
+
const resolved = userTarget(user, "assets.displayAvatar")
|
|
522
|
+
if (resolved.isErr()) return err(resolved.error)
|
|
523
|
+
return displayUserAvatar(resolved.value, options, "assets.displayAvatar")
|
|
524
|
+
},
|
|
525
|
+
memberAvatar(
|
|
526
|
+
member: Pick<GuildMember, "guildId" | "userId" | "avatar">,
|
|
527
|
+
options?: AssetUrlOptions,
|
|
528
|
+
): Result<string | null | undefined, AssetUrlError> {
|
|
529
|
+
const resolved = memberTarget(member, "avatar", "assets.memberAvatar")
|
|
530
|
+
if (resolved.isErr()) return err(resolved.error)
|
|
531
|
+
return absentOrOwnerAsset(
|
|
532
|
+
resolved.value.userId,
|
|
533
|
+
resolved.value.asset,
|
|
534
|
+
(id, hash, format) => `/guilds/${resolved.value.guildId}/users/${id}/avatars/${hash}.${format}`,
|
|
535
|
+
options,
|
|
536
|
+
"assets.memberAvatar",
|
|
537
|
+
)
|
|
538
|
+
},
|
|
539
|
+
memberBanner(
|
|
540
|
+
member: Pick<GuildMember, "guildId" | "userId" | "banner">,
|
|
541
|
+
options?: AssetUrlOptions,
|
|
542
|
+
): Result<string | null | undefined, AssetUrlError> {
|
|
543
|
+
const resolved = memberTarget(member, "banner", "assets.memberBanner")
|
|
544
|
+
if (resolved.isErr()) return err(resolved.error)
|
|
545
|
+
return absentOrOwnerAsset(
|
|
546
|
+
resolved.value.userId,
|
|
547
|
+
resolved.value.asset,
|
|
548
|
+
(id, hash, format) => `/guilds/${resolved.value.guildId}/users/${id}/banners/${hash}.${format}`,
|
|
549
|
+
options,
|
|
550
|
+
"assets.memberBanner",
|
|
551
|
+
)
|
|
552
|
+
},
|
|
553
|
+
displayMemberAvatar(
|
|
554
|
+
user: Pick<User, "id" | "avatar">,
|
|
555
|
+
member: Pick<GuildMember, "guildId" | "userId" | "avatar" | "profileFlags">,
|
|
556
|
+
options?: AssetUrlOptions,
|
|
557
|
+
): Result<string | undefined, AssetUrlError> {
|
|
558
|
+
const resolvedUser = userTarget(user, "assets.displayMemberAvatar")
|
|
559
|
+
if (resolvedUser.isErr()) return err(resolvedUser.error)
|
|
560
|
+
const resolvedMember = memberTarget(member, "avatar", "assets.displayMemberAvatar")
|
|
561
|
+
if (resolvedMember.isErr()) return err(resolvedMember.error)
|
|
562
|
+
if (resolvedUser.value.id !== resolvedMember.value.userId)
|
|
563
|
+
return err(assetError("assets.displayMemberAvatar", "target"))
|
|
564
|
+
const profileFlags = memberProfileFlags(resolvedMember.value.profileFlags, "assets.displayMemberAvatar")
|
|
565
|
+
if (profileFlags.isErr()) return err(profileFlags.error)
|
|
566
|
+
if (profileFlags.value === undefined)
|
|
567
|
+
return validateImageOptions(options, "assets.displayMemberAvatar").map(() => undefined)
|
|
568
|
+
if (profileFlags.value !== null && (profileFlags.value & GuildMemberProfileFlags.AvatarUnset) !== 0)
|
|
569
|
+
return validateImageOptions(options, "assets.displayMemberAvatar").map(() =>
|
|
570
|
+
staticDefaultAvatar(resolvedUser.value.id),
|
|
571
|
+
)
|
|
572
|
+
if (resolvedMember.value.asset === undefined)
|
|
573
|
+
return validateImageOptions(options, "assets.displayMemberAvatar").map(() => undefined)
|
|
574
|
+
return resolvedMember.value.asset === null
|
|
575
|
+
? displayUserAvatar(resolvedUser.value, options, "assets.displayMemberAvatar")
|
|
576
|
+
: ownerAsset(
|
|
577
|
+
resolvedMember.value.userId,
|
|
578
|
+
resolvedMember.value.asset,
|
|
579
|
+
(id, hash, format) => `/guilds/${resolvedMember.value.guildId}/users/${id}/avatars/${hash}.${format}`,
|
|
580
|
+
options,
|
|
581
|
+
"assets.displayMemberAvatar",
|
|
582
|
+
)
|
|
583
|
+
},
|
|
584
|
+
guildIcon(
|
|
585
|
+
guild: Pick<Guild, "id" | "icon">,
|
|
586
|
+
options?: AssetUrlOptions,
|
|
587
|
+
): Result<string | null | undefined, AssetUrlError> {
|
|
588
|
+
const resolved = guildTarget(guild, "icon", "assets.guildIcon")
|
|
589
|
+
if (resolved.isErr()) return err(resolved.error)
|
|
590
|
+
return absentOrOwnerAsset(
|
|
591
|
+
resolved.value.id,
|
|
592
|
+
resolved.value.asset,
|
|
593
|
+
(id, hash, format) => `/icons/${id}/${hash}.${format}`,
|
|
594
|
+
options,
|
|
595
|
+
"assets.guildIcon",
|
|
596
|
+
)
|
|
597
|
+
},
|
|
598
|
+
guildBanner(
|
|
599
|
+
guild: Pick<Guild, "id" | "banner">,
|
|
600
|
+
options?: AssetUrlOptions,
|
|
601
|
+
): Result<string | null | undefined, AssetUrlError> {
|
|
602
|
+
const resolved = guildTarget(guild, "banner", "assets.guildBanner")
|
|
603
|
+
if (resolved.isErr()) return err(resolved.error)
|
|
604
|
+
return absentOrOwnerAsset(
|
|
605
|
+
resolved.value.id,
|
|
606
|
+
resolved.value.asset,
|
|
607
|
+
(id, hash, format) => `/banners/${id}/${hash}.${format}`,
|
|
608
|
+
options,
|
|
609
|
+
"assets.guildBanner",
|
|
610
|
+
)
|
|
611
|
+
},
|
|
612
|
+
guildSplash(
|
|
613
|
+
guild: Pick<Guild, "id" | "splash">,
|
|
614
|
+
options?: AssetUrlOptions,
|
|
615
|
+
): Result<string | null | undefined, AssetUrlError> {
|
|
616
|
+
const resolved = guildTarget(guild, "splash", "assets.guildSplash")
|
|
617
|
+
if (resolved.isErr()) return err(resolved.error)
|
|
618
|
+
return absentOrOwnerAsset(
|
|
619
|
+
resolved.value.id,
|
|
620
|
+
resolved.value.asset,
|
|
621
|
+
(id, hash, format) => `/splashes/${id}/${hash}.${format}`,
|
|
622
|
+
options,
|
|
623
|
+
"assets.guildSplash",
|
|
624
|
+
)
|
|
625
|
+
},
|
|
626
|
+
guildEmbedSplash(
|
|
627
|
+
guild: Pick<Guild, "id" | "embedSplash">,
|
|
628
|
+
options?: AssetUrlOptions,
|
|
629
|
+
): Result<string | null | undefined, AssetUrlError> {
|
|
630
|
+
const resolved = guildTarget(guild, "embedSplash", "assets.guildEmbedSplash")
|
|
631
|
+
if (resolved.isErr()) return err(resolved.error)
|
|
632
|
+
return absentOrOwnerAsset(
|
|
633
|
+
resolved.value.id,
|
|
634
|
+
resolved.value.asset,
|
|
635
|
+
(id, hash, format) => `/embed-splashes/${id}/${hash}.${format}`,
|
|
636
|
+
options,
|
|
637
|
+
"assets.guildEmbedSplash",
|
|
638
|
+
)
|
|
639
|
+
},
|
|
640
|
+
emoji(emoji: Pick<GuildEmoji, "id" | "animated">, options?: AssetUrlOptions): Result<string, AssetUrlError> {
|
|
641
|
+
const resolved = expressionTarget(emoji, "assets.emoji")
|
|
642
|
+
if (resolved.isErr()) return err(resolved.error)
|
|
643
|
+
return imageOptions(options, "assets.emoji", resolved.value.animated, true).map((assetOptions) =>
|
|
644
|
+
mediaUrl(`/emojis/${resolved.value.id}.${assetOptions.format}`, assetOptions),
|
|
645
|
+
)
|
|
646
|
+
},
|
|
647
|
+
sticker(
|
|
648
|
+
sticker: Pick<GuildSticker, "id" | "animated">,
|
|
649
|
+
options?: StickerAssetUrlOptions,
|
|
650
|
+
): Result<string, AssetUrlError> {
|
|
651
|
+
const resolved = expressionTarget(sticker, "assets.sticker")
|
|
652
|
+
if (resolved.isErr()) return err(resolved.error)
|
|
653
|
+
return stickerOptions(options, "assets.sticker", resolved.value.animated).map((assetOptions) =>
|
|
654
|
+
mediaUrl(`/stickers/${resolved.value.id}.webp`, assetOptions),
|
|
655
|
+
)
|
|
656
|
+
},
|
|
657
|
+
})
|
|
658
|
+
|
|
659
|
+
/**
|
|
660
|
+
* Make image URLs from user, member, community, emoji or sticker information already available to the caller.
|
|
661
|
+
* Each method returns a URL, null or undefined directly, and throws AssetUrlError for invalid input, which indicates a programming mistake.
|
|
662
|
+
* URLs use Fluxer's media and static CDN addresses. Making a URL does not fetch a profile, download an image or check that it exists.
|
|
663
|
+
* If an optional image hash is undefined, the result is undefined because the field was not observed. If it is null, the result is null because no image was supplied.
|
|
664
|
+
* These helpers do not transform attachment or embed URLs, refresh expired URLs or change caches
|
|
665
|
+
*
|
|
666
|
+
* @example
|
|
667
|
+
* ```ts
|
|
668
|
+
* import { assets, AssetFormats, type Guild, type GuildEmoji, type GuildMember, type User, type UserProfile } from "@neontechspace/fluxerly"
|
|
669
|
+
*
|
|
670
|
+
* export function assetsExample(user: Pick<User, "id" | "avatar">, member: Pick<GuildMember, "guildId" | "userId" | "avatar" | "profileFlags">, guild: Pick<Guild, "id" | "icon">, emoji: Pick<GuildEmoji, "id" | "animated">, profile: UserProfile) {
|
|
671
|
+
* const avatar = assets.displayAvatar(user, { size: 256, format: AssetFormats.Webp })
|
|
672
|
+
* const memberAvatar = assets.displayMemberAvatar(user, member, { size: 256 })
|
|
673
|
+
* const icon = assets.guildIcon(guild, { format: AssetFormats.Png })
|
|
674
|
+
* const emojiUrl = assets.emoji(emoji, { animated: emoji.animated })
|
|
675
|
+
* const banner = assets.userBanner(profile)
|
|
676
|
+
* return { avatar, memberAvatar, icon, emojiUrl, banner }
|
|
677
|
+
* }
|
|
678
|
+
* ```
|
|
679
|
+
*/
|
|
680
|
+
export const assets: AssetHelpers = Object.freeze({
|
|
681
|
+
userBanner: (...input: Parameters<typeof assetUrls.userBanner>) => valueOrThrow(assetUrls.userBanner(...input)),
|
|
682
|
+
avatar: (...input: Parameters<typeof assetUrls.avatar>) => valueOrThrow(assetUrls.avatar(...input)),
|
|
683
|
+
defaultAvatar: (userId: string) => valueOrThrow(assetUrls.defaultAvatar(userId)),
|
|
684
|
+
displayAvatar: (...input: Parameters<typeof assetUrls.displayAvatar>) =>
|
|
685
|
+
valueOrThrow(assetUrls.displayAvatar(...input)),
|
|
686
|
+
memberAvatar: (...input: Parameters<typeof assetUrls.memberAvatar>) =>
|
|
687
|
+
valueOrThrow(assetUrls.memberAvatar(...input)),
|
|
688
|
+
memberBanner: (...input: Parameters<typeof assetUrls.memberBanner>) =>
|
|
689
|
+
valueOrThrow(assetUrls.memberBanner(...input)),
|
|
690
|
+
displayMemberAvatar: (...input: Parameters<typeof assetUrls.displayMemberAvatar>) =>
|
|
691
|
+
valueOrThrow(assetUrls.displayMemberAvatar(...input)),
|
|
692
|
+
guildIcon: (...input: Parameters<typeof assetUrls.guildIcon>) => valueOrThrow(assetUrls.guildIcon(...input)),
|
|
693
|
+
guildBanner: (...input: Parameters<typeof assetUrls.guildBanner>) => valueOrThrow(assetUrls.guildBanner(...input)),
|
|
694
|
+
guildSplash: (...input: Parameters<typeof assetUrls.guildSplash>) => valueOrThrow(assetUrls.guildSplash(...input)),
|
|
695
|
+
guildEmbedSplash: (...input: Parameters<typeof assetUrls.guildEmbedSplash>) =>
|
|
696
|
+
valueOrThrow(assetUrls.guildEmbedSplash(...input)),
|
|
697
|
+
emoji: (...input: Parameters<typeof assetUrls.emoji>) => valueOrThrow(assetUrls.emoji(...input)),
|
|
698
|
+
sticker: (...input: Parameters<typeof assetUrls.sticker>) => valueOrThrow(assetUrls.sticker(...input)),
|
|
699
|
+
})
|
|
700
|
+
|
|
701
|
+
/**
|
|
702
|
+
* Bind the pure asset helpers to validated instance media and static-CDN bases
|
|
703
|
+
*
|
|
704
|
+
* This keeps the hosted `assets` export stable while preserving its local input
|
|
705
|
+
* validation, including thrown AssetUrlError, for a selected instance
|
|
706
|
+
*/
|
|
707
|
+
export function createInstanceAssets(media: string, staticCdn: string): AssetHelpers {
|
|
708
|
+
const project = <A extends string | null | undefined>(url: A): A => {
|
|
709
|
+
if (typeof url !== "string") return url
|
|
710
|
+
if (url.startsWith(mediaOrigin)) return `${media}${url.slice(mediaOrigin.length)}` as A
|
|
711
|
+
if (url.startsWith(staticOrigin)) return `${staticCdn}${url.slice(staticOrigin.length)}` as A
|
|
712
|
+
return url
|
|
713
|
+
}
|
|
714
|
+
return Object.freeze({
|
|
715
|
+
userBanner: (...input: Parameters<typeof assets.userBanner>) => project(assets.userBanner(...input)),
|
|
716
|
+
avatar: (...input: Parameters<typeof assets.avatar>) => project(assets.avatar(...input)),
|
|
717
|
+
defaultAvatar: (...input: Parameters<typeof assets.defaultAvatar>) => project(assets.defaultAvatar(...input)),
|
|
718
|
+
displayAvatar: (...input: Parameters<typeof assets.displayAvatar>) => project(assets.displayAvatar(...input)),
|
|
719
|
+
memberAvatar: (...input: Parameters<typeof assets.memberAvatar>) => project(assets.memberAvatar(...input)),
|
|
720
|
+
memberBanner: (...input: Parameters<typeof assets.memberBanner>) => project(assets.memberBanner(...input)),
|
|
721
|
+
displayMemberAvatar: (...input: Parameters<typeof assets.displayMemberAvatar>) =>
|
|
722
|
+
project(assets.displayMemberAvatar(...input)),
|
|
723
|
+
guildIcon: (...input: Parameters<typeof assets.guildIcon>) => project(assets.guildIcon(...input)),
|
|
724
|
+
guildBanner: (...input: Parameters<typeof assets.guildBanner>) => project(assets.guildBanner(...input)),
|
|
725
|
+
guildSplash: (...input: Parameters<typeof assets.guildSplash>) => project(assets.guildSplash(...input)),
|
|
726
|
+
guildEmbedSplash: (...input: Parameters<typeof assets.guildEmbedSplash>) =>
|
|
727
|
+
project(assets.guildEmbedSplash(...input)),
|
|
728
|
+
emoji: (...input: Parameters<typeof assets.emoji>) => project(assets.emoji(...input)),
|
|
729
|
+
sticker: (...input: Parameters<typeof assets.sticker>) => project(assets.sticker(...input)),
|
|
730
|
+
})
|
|
731
|
+
}
|