@discordeno/bot 19.0.0-next.0b02607 → 19.0.0-next.0b8cb1e
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/dist/bot.d.ts +2 -1
- package/dist/bot.d.ts.map +1 -1
- package/dist/bot.js +2 -2
- package/dist/bot.js.map +1 -1
- package/dist/transformers/application.d.ts +35 -4
- package/dist/transformers/application.d.ts.map +1 -1
- package/dist/transformers/automodRule.d.ts +3 -2
- package/dist/transformers/automodRule.d.ts.map +1 -1
- package/dist/transformers/automodRule.js +1 -0
- package/dist/transformers/automodRule.js.map +1 -1
- package/dist/transformers/channel.d.ts +98 -35
- package/dist/transformers/channel.d.ts.map +1 -1
- package/dist/transformers/channel.js +72 -36
- package/dist/transformers/channel.js.map +1 -1
- package/dist/transformers/emoji.d.ts +34 -3
- package/dist/transformers/emoji.d.ts.map +1 -1
- package/dist/transformers/guild.d.ts +2 -2
- package/dist/transformers/integration.d.ts +68 -6
- package/dist/transformers/integration.d.ts.map +1 -1
- package/dist/transformers/interaction.d.ts +65 -377
- package/dist/transformers/interaction.d.ts.map +1 -1
- package/dist/transformers/interaction.js +20 -25
- package/dist/transformers/interaction.js.map +1 -1
- package/dist/transformers/invite.d.ts +103 -10
- package/dist/transformers/invite.d.ts.map +1 -1
- package/dist/transformers/member.d.ts +31 -37
- package/dist/transformers/member.d.ts.map +1 -1
- package/dist/transformers/member.js +27 -31
- package/dist/transformers/member.js.map +1 -1
- package/dist/transformers/message.d.ts +2 -1
- package/dist/transformers/message.d.ts.map +1 -1
- package/dist/transformers/message.js.map +1 -1
- package/dist/transformers/presence.d.ts +2 -14
- package/dist/transformers/presence.d.ts.map +1 -1
- package/dist/transformers/presence.js +1 -14
- package/dist/transformers/presence.js.map +1 -1
- package/dist/transformers/reverse/member.d.ts +2 -1
- package/dist/transformers/reverse/member.d.ts.map +1 -1
- package/dist/transformers/reverse/member.js +9 -9
- package/dist/transformers/reverse/member.js.map +1 -1
- package/dist/transformers/role.d.ts +65 -11
- package/dist/transformers/role.d.ts.map +1 -1
- package/dist/transformers/role.js +50 -14
- package/dist/transformers/role.js.map +1 -1
- package/dist/transformers/scheduledEvent.d.ts +34 -3
- package/dist/transformers/scheduledEvent.d.ts.map +1 -1
- package/dist/transformers/sticker.d.ts +34 -3
- package/dist/transformers/sticker.d.ts.map +1 -1
- package/dist/transformers/team.d.ts +1 -1
- package/dist/transformers/template.d.ts +26 -37
- package/dist/transformers/template.d.ts.map +1 -1
- package/dist/transformers/toggles/Permissions.d.ts +9 -0
- package/dist/transformers/toggles/Permissions.d.ts.map +1 -0
- package/dist/transformers/toggles/Permissions.js +18 -0
- package/dist/transformers/toggles/Permissions.js.map +1 -0
- package/dist/transformers/toggles/ToggleBitfield.d.ts +1 -0
- package/dist/transformers/toggles/ToggleBitfield.d.ts.map +1 -1
- package/dist/transformers/toggles/ToggleBitfield.js +3 -0
- package/dist/transformers/toggles/ToggleBitfield.js.map +1 -1
- package/dist/transformers/toggles/channel.d.ts +33 -0
- package/dist/transformers/toggles/channel.d.ts.map +1 -0
- package/dist/transformers/toggles/channel.js +50 -0
- package/dist/transformers/toggles/channel.js.map +1 -0
- package/dist/transformers/toggles/guild.d.ts +0 -4
- package/dist/transformers/toggles/guild.d.ts.map +1 -1
- package/dist/transformers/toggles/guild.js +0 -6
- package/dist/transformers/toggles/guild.js.map +1 -1
- package/dist/transformers/toggles/role.d.ts +4 -0
- package/dist/transformers/toggles/role.d.ts.map +1 -1
- package/dist/transformers/toggles/role.js +6 -0
- package/dist/transformers/toggles/role.js.map +1 -1
- package/dist/transformers/user.d.ts +42 -0
- package/dist/transformers/user.d.ts.map +1 -0
- package/dist/transformers/user.js +41 -0
- package/dist/transformers/user.js.map +1 -0
- package/dist/transformers/voiceState.d.ts +1 -1
- package/dist/transformers/webhook.d.ts +34 -3
- package/dist/transformers/webhook.d.ts.map +1 -1
- package/dist/transformers.d.ts +43 -1
- package/dist/transformers.d.ts.map +1 -1
- package/dist/transformers.js +47 -3
- package/dist/transformers.js.map +1 -1
- package/package.json +5 -5
package/dist/bot.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ import type { Guild } from './transformers/guild.js';
|
|
|
14
14
|
import type { Integration } from './transformers/integration.js';
|
|
15
15
|
import type { Interaction } from './transformers/interaction.js';
|
|
16
16
|
import type { Invite } from './transformers/invite.js';
|
|
17
|
-
import type { Member
|
|
17
|
+
import type { Member } from './transformers/member.js';
|
|
18
18
|
import type { Message } from './transformers/message.js';
|
|
19
19
|
import type { PresenceUpdate } from './transformers/presence.js';
|
|
20
20
|
import type { Role } from './transformers/role.js';
|
|
@@ -22,6 +22,7 @@ import type { ScheduledEvent } from './transformers/scheduledEvent.js';
|
|
|
22
22
|
import type { Sticker } from './transformers/sticker.js';
|
|
23
23
|
import type { ThreadMember } from './transformers/threadMember.js';
|
|
24
24
|
import type { VoiceState } from './transformers/voiceState.js';
|
|
25
|
+
import type { User } from './transformers/user.js';
|
|
25
26
|
/**
|
|
26
27
|
* Create a bot object that will maintain the rest and gateway connection.
|
|
27
28
|
*
|
package/dist/bot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEtF,OAAO,KAAK,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAC1G,OAAO,EAAE,YAAY,EAAqB,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAA;AAClG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAA;AAC7F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"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"}
|
package/dist/bot.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ShardSocketCloseCodes, createGatewayManager } from '@discordeno/gateway';
|
|
2
2
|
import { createRestManager } from '@discordeno/rest';
|
|
3
3
|
import { createLogger, getBotIdFromToken } from '@discordeno/utils';
|
|
4
4
|
import { createBotGatewayHandlers } from './handlers.js';
|
|
@@ -24,7 +24,7 @@ import { createTransformers } from './transformers.js';
|
|
|
24
24
|
if (!data.t) return;
|
|
25
25
|
// RUN DISPATCH CHECK
|
|
26
26
|
await bot.events.dispatchRequirements?.(data, shard.id);
|
|
27
|
-
bot.handlers[data.t]?.(bot, data
|
|
27
|
+
bot.handlers[data.t]?.(bot, data, shard.id);
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
30
|
options.rest.token = options.token;
|
package/dist/bot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/bot.ts"],"sourcesContent":["import type { CreateGatewayManagerOptions, GatewayManager } from '@discordeno/gateway'\nimport { createGatewayManager, ShardSocketCloseCodes } from '@discordeno/gateway'\nimport type { CreateRestManagerOptions, RestManager } from '@discordeno/rest'\nimport { createRestManager } from '@discordeno/rest'\nimport type { DiscordEmoji, DiscordGatewayPayload, DiscordReady, GatewayIntents } from '@discordeno/types'\nimport { createLogger, getBotIdFromToken, type Collection } from '@discordeno/utils'\nimport { createBotGatewayHandlers } from './handlers.js'\nimport { createTransformers, type Transformers } from './transformers.js'\nimport type { ApplicationCommandPermission } from './transformers/applicationCommandPermission.js'\nimport type { AuditLogEntry } from './transformers/auditLogEntry.js'\nimport type { AutoModerationActionExecution } from './transformers/automodActionExecution.js'\nimport type { AutoModerationRule } from './transformers/automodRule.js'\nimport type { Channel } from './transformers/channel.js'\nimport type { Emoji } from './transformers/emoji.js'\nimport type { Guild } from './transformers/guild.js'\nimport type { Integration } from './transformers/integration.js'\nimport type { Interaction } from './transformers/interaction.js'\nimport type { Invite } from './transformers/invite.js'\nimport type { Member, User } from './transformers/member.js'\nimport type { Message } from './transformers/message.js'\nimport type { PresenceUpdate } from './transformers/presence.js'\nimport type { Role } from './transformers/role.js'\nimport type { ScheduledEvent } from './transformers/scheduledEvent.js'\nimport type { Sticker } from './transformers/sticker.js'\nimport type { ThreadMember } from './transformers/threadMember.js'\nimport type { VoiceState } from './transformers/voiceState.js'\n\n/**\n * Create a bot object that will maintain the rest and gateway connection.\n *\n * @param options Configurations options used to manage this bot.\n * @returns Bot\n */\nexport function createBot(options: CreateBotOptions): Bot {\n if (!options.rest) options.rest = { token: options.token, applicationId: options.applicationId }\n if (!options.gateway) options.gateway = { token: options.token, events: {} }\n if (!options.gateway.events.message) {\n options.gateway.events.message = async (shard, data) => {\n // TRIGGER RAW EVENT\n bot.events.raw?.(data, shard.id)\n\n if (!data.t) return\n\n // RUN DISPATCH CHECK\n await bot.events.dispatchRequirements?.(data, shard.id)\n bot.handlers[\n data.t as keyof ReturnType<typeof createBotGatewayHandlers>\n // @ts-expect-error as any gets removed by linter\n ]?.(bot, data.d, shard.id)\n }\n }\n\n options.rest.token = options.token\n options.gateway.intents = options.intents\n\n const id = getBotIdFromToken(options.token)\n\n const bot: Bot = {\n id,\n applicationId: id,\n transformers: createTransformers({}),\n handlers: createBotGatewayHandlers({}),\n rest: createRestManager(options.rest),\n gateway: createGatewayManager(options.gateway),\n events: options.events ?? {},\n logger: createLogger({ name: 'BOT' }),\n\n async start() {\n if (!options.gateway?.connection) {\n bot.gateway.connection = await bot.rest.getSessionInfo()\n }\n return await bot.gateway.spawnShards()\n },\n\n async shutdown() {\n return await bot.gateway.shutdown(ShardSocketCloseCodes.Shutdown, 'User requested bot stop')\n },\n }\n\n return bot\n}\n\nexport interface CreateBotOptions {\n /** The bot's token. */\n token: string\n /** Application Id of the bot incase it is an old bot token. */\n applicationId?: bigint\n /** The bot's intents that will be used to make a connection with discords gateway. */\n intents?: GatewayIntents\n /** Any options you wish to provide to the rest manager. */\n rest?: CreateRestManagerOptions\n /** Any options you wish to provide to the gateway manager. */\n gateway?: CreateGatewayManagerOptions\n /** The event handlers. */\n events: Partial<EventHandlers>\n}\n\nexport interface Bot {\n /** The id of the bot. */\n id: bigint\n /** The application id of the bot. This is usually the same as id but in the case of old bots can be different. */\n applicationId: bigint\n /** The rest manager. */\n rest: RestManager\n /** The gateway manager. */\n gateway: GatewayManager\n /** The event handlers. */\n events: Partial<EventHandlers>\n /** A logger utility to make it easy to log nice and useful things in the bot code. */\n logger: ReturnType<typeof createLogger>\n /** The functions that should transform discord objects to discordeno shaped objects. */\n transformers: Transformers\n /** The handler functions that should handle incoming discord payloads from gateway and call an event. */\n handlers: ReturnType<typeof createBotGatewayHandlers>\n /** Start the bot connection to the gateway. */\n start: () => Promise<void>\n /** Shuts down all the bot connections to the gateway. */\n shutdown: () => Promise<void>\n}\n\nexport interface EventHandlers {\n debug: (text: string, ...args: any[]) => unknown\n applicationCommandPermissionsUpdate: (command: ApplicationCommandPermission) => unknown\n guildAuditLogEntryCreate: (log: AuditLogEntry, guildId: bigint) => unknown\n automodRuleCreate: (rule: AutoModerationRule) => unknown\n automodRuleUpdate: (rule: AutoModerationRule) => unknown\n automodRuleDelete: (rule: AutoModerationRule) => unknown\n automodActionExecution: (payload: AutoModerationActionExecution) => unknown\n threadCreate: (thread: Channel) => unknown\n threadDelete: (thread: Channel) => unknown\n threadMemberUpdate: (payload: { id: bigint; guildId: bigint; joinedAt: number; flags: number }) => unknown\n threadMembersUpdate: (payload: { id: bigint; guildId: bigint; addedMembers?: ThreadMember[]; removedMemberIds?: bigint[] }) => unknown\n threadUpdate: (thread: Channel) => unknown\n scheduledEventCreate: (event: ScheduledEvent) => unknown\n scheduledEventUpdate: (event: ScheduledEvent) => unknown\n scheduledEventDelete: (event: ScheduledEvent) => unknown\n /** Sent when a user has subscribed to a guild scheduled event. EXPERIMENTAL! */\n scheduledEventUserAdd: (payload: { guildScheduledEventId: bigint; guildId: bigint; userId: bigint }) => unknown\n /** Sent when a user has unsubscribed to a guild scheduled event. EXPERIMENTAL! */\n scheduledEventUserRemove: (payload: { guildScheduledEventId: bigint; guildId: bigint; userId: bigint }) => unknown\n ready: (\n payload: {\n shardId: number\n v: number\n user: User\n guilds: bigint[]\n sessionId: string\n shard?: number[]\n applicationId: bigint\n },\n rawPayload: DiscordReady,\n ) => unknown\n interactionCreate: (interaction: Interaction) => unknown\n integrationCreate: (integration: Integration) => unknown\n integrationDelete: (payload: { id: bigint; guildId: bigint; applicationId?: bigint }) => unknown\n integrationUpdate: (payload: { guildId: bigint }) => unknown\n inviteCreate: (invite: Invite) => unknown\n inviteDelete: (payload: { channelId: bigint; guildId?: bigint; code: string }) => unknown\n guildMemberAdd: (member: Member, user: User) => unknown\n guildMemberRemove: (user: User, guildId: bigint) => unknown\n guildMemberUpdate: (member: Member, user: User) => unknown\n guildStickersUpdate: (stickers: Sticker[]) => unknown\n messageCreate: (message: Message) => unknown\n messageDelete: (payload: { id: bigint; channelId: bigint; guildId?: bigint }, message?: Message) => unknown\n messageDeleteBulk: (payload: { ids: bigint[]; channelId: bigint; guildId?: bigint }) => unknown\n messageUpdate: (message: Message, oldMessage?: Message) => unknown\n reactionAdd: (payload: {\n userId: bigint\n channelId: bigint\n messageId: bigint\n guildId?: bigint\n member?: Member\n user?: User\n emoji: Emoji\n }) => unknown\n reactionRemove: (payload: { userId: bigint; channelId: bigint; messageId: bigint; guildId?: bigint; emoji: Emoji }) => unknown\n reactionRemoveEmoji: (payload: { channelId: bigint; messageId: bigint; guildId?: bigint; emoji: Emoji }) => unknown\n reactionRemoveAll: (payload: { channelId: bigint; messageId: bigint; guildId?: bigint }) => unknown\n presenceUpdate: (presence: PresenceUpdate, oldPresence?: PresenceUpdate) => unknown\n voiceServerUpdate: (payload: { token: string; endpoint?: string; guildId: bigint }) => unknown\n voiceStateUpdate: (voiceState: VoiceState) => unknown\n channelCreate: (channel: Channel) => unknown\n dispatchRequirements: (data: DiscordGatewayPayload, shardId: number) => unknown\n channelDelete: (channel: Channel) => unknown\n channelPinsUpdate: (data: { guildId?: bigint; channelId: bigint; lastPinTimestamp?: number }) => unknown\n channelUpdate: (channel: Channel) => unknown\n stageInstanceCreate: (data: { id: bigint; guildId: bigint; channelId: bigint; topic: string }) => unknown\n stageInstanceDelete: (data: { id: bigint; guildId: bigint; channelId: bigint; topic: string }) => unknown\n stageInstanceUpdate: (data: { id: bigint; guildId: bigint; channelId: bigint; topic: string }) => unknown\n guildEmojisUpdate: (payload: { guildId: bigint; emojis: Collection<bigint, DiscordEmoji> }) => unknown\n guildBanAdd: (user: User, guildId: bigint) => unknown\n guildBanRemove: (user: User, guildId: bigint) => unknown\n guildCreate: (guild: Guild) => unknown\n guildDelete: (id: bigint, shardId: number) => unknown\n guildUpdate: (guild: Guild) => unknown\n raw: (data: DiscordGatewayPayload, shardId: number) => unknown\n roleCreate: (role: Role) => unknown\n roleDelete: (payload: { guildId: bigint; roleId: bigint }) => unknown\n roleUpdate: (role: Role) => unknown\n webhooksUpdate: (payload: { channelId: bigint; guildId: bigint }) => unknown\n botUpdate: (user: User) => unknown\n typingStart: (payload: { guildId: bigint | undefined; channelId: bigint; userId: bigint; timestamp: number; member: Member | undefined }) => unknown\n}\n"],"names":["createGatewayManager","ShardSocketCloseCodes","createRestManager","createLogger","getBotIdFromToken","createBotGatewayHandlers","createTransformers","createBot","options","rest","token","applicationId","gateway","events","message","shard","data","bot","raw","id","t","dispatchRequirements","handlers","d","intents","transformers","logger","name","start","connection","getSessionInfo","spawnShards","shutdown","Shutdown"],"mappings":"AACA,SAASA,oBAAoB,EAAEC,qBAAqB,QAAQ,sBAAqB;AAEjF,SAASC,iBAAiB,QAAQ,mBAAkB;AAEpD,SAASC,YAAY,EAAEC,iBAAiB,QAAyB,oBAAmB;AACpF,SAASC,wBAAwB,QAAQ,gBAAe;AACxD,SAASC,kBAAkB,QAA2B,oBAAmB;AAoBzE;;;;;CAKC,GACD,OAAO,SAASC,UAAUC,OAAyB,EAAO;IACxD,IAAI,CAACA,QAAQC,IAAI,EAAED,QAAQC,IAAI,GAAG;QAAEC,OAAOF,QAAQE,KAAK;QAAEC,eAAeH,QAAQG,aAAa;IAAC;IAC/F,IAAI,CAACH,QAAQI,OAAO,EAAEJ,QAAQI,OAAO,GAAG;QAAEF,OAAOF,QAAQE,KAAK;QAAEG,QAAQ,CAAC;IAAE;IAC3E,IAAI,CAACL,QAAQI,OAAO,CAACC,MAAM,CAACC,OAAO,EAAE;QACnCN,QAAQI,OAAO,CAACC,MAAM,CAACC,OAAO,GAAG,OAAOC,OAAOC,OAAS;YACtD,oBAAoB;YACpBC,IAAIJ,MAAM,CAACK,GAAG,GAAGF,MAAMD,MAAMI,EAAE;YAE/B,IAAI,CAACH,KAAKI,CAAC,EAAE;YAEb,qBAAqB;YACrB,MAAMH,IAAIJ,MAAM,CAACQ,oBAAoB,GAAGL,MAAMD,MAAMI,EAAE;YACtDF,IAAIK,QAAQ,CACVN,KAAKI,CAAC,CAEP,GAAGH,KAAKD,KAAKO,CAAC,EAAER,MAAMI,EAAE;QAC3B;IACF,CAAC;IAEDX,QAAQC,IAAI,CAACC,KAAK,GAAGF,QAAQE,KAAK;IAClCF,QAAQI,OAAO,CAACY,OAAO,GAAGhB,QAAQgB,OAAO;IAEzC,MAAML,KAAKf,kBAAkBI,QAAQE,KAAK;IAE1C,MAAMO,MAAW;QACfE;QACAR,eAAeQ;QACfM,cAAcnB,mBAAmB,CAAC;QAClCgB,UAAUjB,yBAAyB,CAAC;QACpCI,MAAMP,kBAAkBM,QAAQC,IAAI;QACpCG,SAASZ,qBAAqBQ,QAAQI,OAAO;QAC7CC,QAAQL,QAAQK,MAAM,IAAI,CAAC;QAC3Ba,QAAQvB,aAAa;YAAEwB,MAAM;QAAM;QAEnC,MAAMC,SAAQ;YACZ,IAAI,CAACpB,QAAQI,OAAO,EAAEiB,YAAY;gBAChCZ,IAAIL,OAAO,CAACiB,UAAU,GAAG,MAAMZ,IAAIR,IAAI,CAACqB,cAAc;YACxD,CAAC;YACD,OAAO,MAAMb,IAAIL,OAAO,CAACmB,WAAW;QACtC;QAEA,MAAMC,YAAW;YACf,OAAO,MAAMf,IAAIL,OAAO,CAACoB,QAAQ,CAAC/B,sBAAsBgC,QAAQ,EAAE;QACpE;IACF;IAEA,OAAOhB;AACT,CAAC"}
|
|
1
|
+
{"version":3,"sources":["../src/bot.ts"],"sourcesContent":["import type { CreateGatewayManagerOptions, GatewayManager } from '@discordeno/gateway'\nimport { ShardSocketCloseCodes, createGatewayManager } from '@discordeno/gateway'\nimport type { CreateRestManagerOptions, RestManager } from '@discordeno/rest'\nimport { createRestManager } from '@discordeno/rest'\nimport type { DiscordEmoji, DiscordGatewayPayload, DiscordReady, GatewayIntents } from '@discordeno/types'\nimport { createLogger, getBotIdFromToken, type Collection } from '@discordeno/utils'\nimport { createBotGatewayHandlers } from './handlers.js'\nimport { createTransformers, type Transformers } from './transformers.js'\nimport type { ApplicationCommandPermission } from './transformers/applicationCommandPermission.js'\nimport type { AuditLogEntry } from './transformers/auditLogEntry.js'\nimport type { AutoModerationActionExecution } from './transformers/automodActionExecution.js'\nimport type { AutoModerationRule } from './transformers/automodRule.js'\nimport type { Channel } from './transformers/channel.js'\nimport type { Emoji } from './transformers/emoji.js'\nimport type { Guild } from './transformers/guild.js'\nimport type { Integration } from './transformers/integration.js'\nimport type { Interaction } from './transformers/interaction.js'\nimport type { Invite } from './transformers/invite.js'\nimport type { Member } from './transformers/member.js'\nimport type { Message } from './transformers/message.js'\nimport type { PresenceUpdate } from './transformers/presence.js'\nimport type { Role } from './transformers/role.js'\nimport type { ScheduledEvent } from './transformers/scheduledEvent.js'\nimport type { Sticker } from './transformers/sticker.js'\nimport type { ThreadMember } from './transformers/threadMember.js'\nimport type { VoiceState } from './transformers/voiceState.js'\nimport type { User } from './transformers/user.js'\n\n/**\n * Create a bot object that will maintain the rest and gateway connection.\n *\n * @param options Configurations options used to manage this bot.\n * @returns Bot\n */\nexport function createBot(options: CreateBotOptions): Bot {\n if (!options.rest) options.rest = { token: options.token, applicationId: options.applicationId }\n if (!options.gateway) options.gateway = { token: options.token, events: {} }\n if (!options.gateway.events.message) {\n options.gateway.events.message = async (shard, data) => {\n // TRIGGER RAW EVENT\n bot.events.raw?.(data, shard.id)\n\n if (!data.t) return\n\n // RUN DISPATCH CHECK\n await bot.events.dispatchRequirements?.(data, shard.id)\n bot.handlers[data.t as keyof ReturnType<typeof createBotGatewayHandlers>]?.(bot, data, shard.id)\n }\n }\n\n options.rest.token = options.token\n options.gateway.intents = options.intents\n\n const id = getBotIdFromToken(options.token)\n\n const bot: Bot = {\n id,\n applicationId: id,\n transformers: createTransformers({}),\n handlers: createBotGatewayHandlers({}),\n rest: createRestManager(options.rest),\n gateway: createGatewayManager(options.gateway),\n events: options.events ?? {},\n logger: createLogger({ name: 'BOT' }),\n\n async start() {\n if (!options.gateway?.connection) {\n bot.gateway.connection = await bot.rest.getSessionInfo()\n }\n return await bot.gateway.spawnShards()\n },\n\n async shutdown() {\n return await bot.gateway.shutdown(ShardSocketCloseCodes.Shutdown, 'User requested bot stop')\n },\n }\n\n return bot\n}\n\nexport interface CreateBotOptions {\n /** The bot's token. */\n token: string\n /** Application Id of the bot incase it is an old bot token. */\n applicationId?: bigint\n /** The bot's intents that will be used to make a connection with discords gateway. */\n intents?: GatewayIntents\n /** Any options you wish to provide to the rest manager. */\n rest?: CreateRestManagerOptions\n /** Any options you wish to provide to the gateway manager. */\n gateway?: CreateGatewayManagerOptions\n /** The event handlers. */\n events: Partial<EventHandlers>\n}\n\nexport interface Bot {\n /** The id of the bot. */\n id: bigint\n /** The application id of the bot. This is usually the same as id but in the case of old bots can be different. */\n applicationId: bigint\n /** The rest manager. */\n rest: RestManager\n /** The gateway manager. */\n gateway: GatewayManager\n /** The event handlers. */\n events: Partial<EventHandlers>\n /** A logger utility to make it easy to log nice and useful things in the bot code. */\n logger: ReturnType<typeof createLogger>\n /** The functions that should transform discord objects to discordeno shaped objects. */\n transformers: Transformers\n /** The handler functions that should handle incoming discord payloads from gateway and call an event. */\n handlers: ReturnType<typeof createBotGatewayHandlers>\n /** Start the bot connection to the gateway. */\n start: () => Promise<void>\n /** Shuts down all the bot connections to the gateway. */\n shutdown: () => Promise<void>\n}\n\nexport interface EventHandlers {\n debug: (text: string, ...args: any[]) => unknown\n applicationCommandPermissionsUpdate: (command: ApplicationCommandPermission) => unknown\n guildAuditLogEntryCreate: (log: AuditLogEntry, guildId: bigint) => unknown\n automodRuleCreate: (rule: AutoModerationRule) => unknown\n automodRuleUpdate: (rule: AutoModerationRule) => unknown\n automodRuleDelete: (rule: AutoModerationRule) => unknown\n automodActionExecution: (payload: AutoModerationActionExecution) => unknown\n threadCreate: (thread: Channel) => unknown\n threadDelete: (thread: Channel) => unknown\n threadMemberUpdate: (payload: { id: bigint; guildId: bigint; joinedAt: number; flags: number }) => unknown\n threadMembersUpdate: (payload: { id: bigint; guildId: bigint; addedMembers?: ThreadMember[]; removedMemberIds?: bigint[] }) => unknown\n threadUpdate: (thread: Channel) => unknown\n scheduledEventCreate: (event: ScheduledEvent) => unknown\n scheduledEventUpdate: (event: ScheduledEvent) => unknown\n scheduledEventDelete: (event: ScheduledEvent) => unknown\n /** Sent when a user has subscribed to a guild scheduled event. EXPERIMENTAL! */\n scheduledEventUserAdd: (payload: { guildScheduledEventId: bigint; guildId: bigint; userId: bigint }) => unknown\n /** Sent when a user has unsubscribed to a guild scheduled event. EXPERIMENTAL! */\n scheduledEventUserRemove: (payload: { guildScheduledEventId: bigint; guildId: bigint; userId: bigint }) => unknown\n ready: (\n payload: {\n shardId: number\n v: number\n user: User\n guilds: bigint[]\n sessionId: string\n shard?: number[]\n applicationId: bigint\n },\n rawPayload: DiscordReady,\n ) => unknown\n interactionCreate: (interaction: Interaction) => unknown\n integrationCreate: (integration: Integration) => unknown\n integrationDelete: (payload: { id: bigint; guildId: bigint; applicationId?: bigint }) => unknown\n integrationUpdate: (payload: { guildId: bigint }) => unknown\n inviteCreate: (invite: Invite) => unknown\n inviteDelete: (payload: { channelId: bigint; guildId?: bigint; code: string }) => unknown\n guildMemberAdd: (member: Member, user: User) => unknown\n guildMemberRemove: (user: User, guildId: bigint) => unknown\n guildMemberUpdate: (member: Member, user: User) => unknown\n guildStickersUpdate: (stickers: Sticker[]) => unknown\n messageCreate: (message: Message) => unknown\n messageDelete: (payload: { id: bigint; channelId: bigint; guildId?: bigint }, message?: Message) => unknown\n messageDeleteBulk: (payload: { ids: bigint[]; channelId: bigint; guildId?: bigint }) => unknown\n messageUpdate: (message: Message, oldMessage?: Message) => unknown\n reactionAdd: (payload: {\n userId: bigint\n channelId: bigint\n messageId: bigint\n guildId?: bigint\n member?: Member\n user?: User\n emoji: Emoji\n }) => unknown\n reactionRemove: (payload: { userId: bigint; channelId: bigint; messageId: bigint; guildId?: bigint; emoji: Emoji }) => unknown\n reactionRemoveEmoji: (payload: { channelId: bigint; messageId: bigint; guildId?: bigint; emoji: Emoji }) => unknown\n reactionRemoveAll: (payload: { channelId: bigint; messageId: bigint; guildId?: bigint }) => unknown\n presenceUpdate: (presence: PresenceUpdate, oldPresence?: PresenceUpdate) => unknown\n voiceServerUpdate: (payload: { token: string; endpoint?: string; guildId: bigint }) => unknown\n voiceStateUpdate: (voiceState: VoiceState) => unknown\n channelCreate: (channel: Channel) => unknown\n dispatchRequirements: (data: DiscordGatewayPayload, shardId: number) => unknown\n channelDelete: (channel: Channel) => unknown\n channelPinsUpdate: (data: { guildId?: bigint; channelId: bigint; lastPinTimestamp?: number }) => unknown\n channelUpdate: (channel: Channel) => unknown\n stageInstanceCreate: (data: { id: bigint; guildId: bigint; channelId: bigint; topic: string }) => unknown\n stageInstanceDelete: (data: { id: bigint; guildId: bigint; channelId: bigint; topic: string }) => unknown\n stageInstanceUpdate: (data: { id: bigint; guildId: bigint; channelId: bigint; topic: string }) => unknown\n guildEmojisUpdate: (payload: { guildId: bigint; emojis: Collection<bigint, DiscordEmoji> }) => unknown\n guildBanAdd: (user: User, guildId: bigint) => unknown\n guildBanRemove: (user: User, guildId: bigint) => unknown\n guildCreate: (guild: Guild) => unknown\n guildDelete: (id: bigint, shardId: number) => unknown\n guildUpdate: (guild: Guild) => unknown\n raw: (data: DiscordGatewayPayload, shardId: number) => unknown\n roleCreate: (role: Role) => unknown\n roleDelete: (payload: { guildId: bigint; roleId: bigint }) => unknown\n roleUpdate: (role: Role) => unknown\n webhooksUpdate: (payload: { channelId: bigint; guildId: bigint }) => unknown\n botUpdate: (user: User) => unknown\n typingStart: (payload: { guildId: bigint | undefined; channelId: bigint; userId: bigint; timestamp: number; member: Member | undefined }) => unknown\n}\n"],"names":["ShardSocketCloseCodes","createGatewayManager","createRestManager","createLogger","getBotIdFromToken","createBotGatewayHandlers","createTransformers","createBot","options","rest","token","applicationId","gateway","events","message","shard","data","bot","raw","id","t","dispatchRequirements","handlers","intents","transformers","logger","name","start","connection","getSessionInfo","spawnShards","shutdown","Shutdown"],"mappings":"AACA,SAASA,qBAAqB,EAAEC,oBAAoB,QAAQ,sBAAqB;AAEjF,SAASC,iBAAiB,QAAQ,mBAAkB;AAEpD,SAASC,YAAY,EAAEC,iBAAiB,QAAyB,oBAAmB;AACpF,SAASC,wBAAwB,QAAQ,gBAAe;AACxD,SAASC,kBAAkB,QAA2B,oBAAmB;AAqBzE;;;;;CAKC,GACD,OAAO,SAASC,UAAUC,OAAyB,EAAO;IACxD,IAAI,CAACA,QAAQC,IAAI,EAAED,QAAQC,IAAI,GAAG;QAAEC,OAAOF,QAAQE,KAAK;QAAEC,eAAeH,QAAQG,aAAa;IAAC;IAC/F,IAAI,CAACH,QAAQI,OAAO,EAAEJ,QAAQI,OAAO,GAAG;QAAEF,OAAOF,QAAQE,KAAK;QAAEG,QAAQ,CAAC;IAAE;IAC3E,IAAI,CAACL,QAAQI,OAAO,CAACC,MAAM,CAACC,OAAO,EAAE;QACnCN,QAAQI,OAAO,CAACC,MAAM,CAACC,OAAO,GAAG,OAAOC,OAAOC,OAAS;YACtD,oBAAoB;YACpBC,IAAIJ,MAAM,CAACK,GAAG,GAAGF,MAAMD,MAAMI,EAAE;YAE/B,IAAI,CAACH,KAAKI,CAAC,EAAE;YAEb,qBAAqB;YACrB,MAAMH,IAAIJ,MAAM,CAACQ,oBAAoB,GAAGL,MAAMD,MAAMI,EAAE;YACtDF,IAAIK,QAAQ,CAACN,KAAKI,CAAC,CAAsD,GAAGH,KAAKD,MAAMD,MAAMI,EAAE;QACjG;IACF,CAAC;IAEDX,QAAQC,IAAI,CAACC,KAAK,GAAGF,QAAQE,KAAK;IAClCF,QAAQI,OAAO,CAACW,OAAO,GAAGf,QAAQe,OAAO;IAEzC,MAAMJ,KAAKf,kBAAkBI,QAAQE,KAAK;IAE1C,MAAMO,MAAW;QACfE;QACAR,eAAeQ;QACfK,cAAclB,mBAAmB,CAAC;QAClCgB,UAAUjB,yBAAyB,CAAC;QACpCI,MAAMP,kBAAkBM,QAAQC,IAAI;QACpCG,SAASX,qBAAqBO,QAAQI,OAAO;QAC7CC,QAAQL,QAAQK,MAAM,IAAI,CAAC;QAC3BY,QAAQtB,aAAa;YAAEuB,MAAM;QAAM;QAEnC,MAAMC,SAAQ;YACZ,IAAI,CAACnB,QAAQI,OAAO,EAAEgB,YAAY;gBAChCX,IAAIL,OAAO,CAACgB,UAAU,GAAG,MAAMX,IAAIR,IAAI,CAACoB,cAAc;YACxD,CAAC;YACD,OAAO,MAAMZ,IAAIL,OAAO,CAACkB,WAAW;QACtC;QAEA,MAAMC,YAAW;YACf,OAAO,MAAMd,IAAIL,OAAO,CAACmB,QAAQ,CAAC/B,sBAAsBgC,QAAQ,EAAE;QACpE;IACF;IAEA,OAAOf;AACT,CAAC"}
|
|
@@ -9,16 +9,47 @@ export declare function transformApplication(bot: Bot, payload: DiscordApplicati
|
|
|
9
9
|
slug?: string | undefined;
|
|
10
10
|
coverImage?: bigint | undefined;
|
|
11
11
|
owner?: {
|
|
12
|
-
flags?:
|
|
12
|
+
flags?: {
|
|
13
|
+
bitfield: number;
|
|
14
|
+
contains: (bits: number) => boolean;
|
|
15
|
+
add: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
|
|
16
|
+
remove: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
|
|
17
|
+
toJSON: () => number;
|
|
18
|
+
} | undefined;
|
|
13
19
|
locale?: string | undefined;
|
|
14
20
|
avatar?: bigint | undefined;
|
|
15
21
|
email?: string | undefined;
|
|
22
|
+
banner?: bigint | undefined;
|
|
23
|
+
toggles?: {
|
|
24
|
+
bot: boolean;
|
|
25
|
+
system: boolean;
|
|
26
|
+
verified: boolean;
|
|
27
|
+
mfaEnabled: boolean;
|
|
28
|
+
bitfield: number;
|
|
29
|
+
has: (permissions: "bot" | "system" | "verified" | "mfaEnabled" | ("bot" | "system" | "verified" | "mfaEnabled")[]) => boolean;
|
|
30
|
+
list: () => Record<"bot" | "system" | "verified" | "mfaEnabled", boolean>;
|
|
31
|
+
contains: (bits: number) => boolean;
|
|
32
|
+
add: (bits: number) => import("./toggles/user.js").UserToggles;
|
|
33
|
+
remove: (bits: number) => import("./toggles/user.js").UserToggles;
|
|
34
|
+
toJSON: () => number;
|
|
35
|
+
} | undefined;
|
|
16
36
|
premiumType?: import("@discordeno/types/dist/shared.js").PremiumTypes | undefined;
|
|
17
|
-
publicFlags?:
|
|
37
|
+
publicFlags?: {
|
|
38
|
+
bitfield: number;
|
|
39
|
+
contains: (bits: number) => boolean;
|
|
40
|
+
add: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
|
|
41
|
+
remove: (bits: number) => import("./toggles/ToggleBitfield.js").ToggleBitfield;
|
|
42
|
+
toJSON: () => number;
|
|
43
|
+
} | undefined;
|
|
44
|
+
accentColor?: number | undefined;
|
|
18
45
|
id: bigint;
|
|
19
46
|
username: string;
|
|
20
47
|
discriminator: string;
|
|
21
|
-
|
|
48
|
+
bot: boolean;
|
|
49
|
+
system: boolean;
|
|
50
|
+
verified: boolean;
|
|
51
|
+
tag: string;
|
|
52
|
+
mfaEnabled: boolean;
|
|
22
53
|
} | undefined;
|
|
23
54
|
team?: {
|
|
24
55
|
icon?: bigint | undefined;
|
|
@@ -29,7 +60,7 @@ export declare function transformApplication(bot: Bot, payload: DiscordApplicati
|
|
|
29
60
|
membershipState: import("@discordeno/types/dist/shared.js").TeamMembershipStates;
|
|
30
61
|
permissions: "*"[];
|
|
31
62
|
teamId: bigint;
|
|
32
|
-
user: import("./
|
|
63
|
+
user: import("./user.js").User;
|
|
33
64
|
}[];
|
|
34
65
|
} | undefined;
|
|
35
66
|
guildId?: bigint | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/transformers/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,GAAG,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAIjF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,kBAAkB
|
|
1
|
+
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/transformers/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,GAAG,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAIjF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BzE;AAED,MAAM,WAAW,WAAY,SAAQ,UAAU,CAAC,OAAO,oBAAoB,CAAC;CAAG"}
|
|
@@ -4,8 +4,9 @@ export declare function transformAutoModerationRule(bot: Bot, payload: DiscordAu
|
|
|
4
4
|
triggerMetadata?: {
|
|
5
5
|
keywordFilter?: string[] | undefined;
|
|
6
6
|
presets?: import("@discordeno/types").DiscordAutoModerationRuleTriggerMetadataPresets[] | undefined;
|
|
7
|
-
allowList
|
|
8
|
-
mentionTotalLimit
|
|
7
|
+
allowList?: string[] | undefined;
|
|
8
|
+
mentionTotalLimit?: number | undefined;
|
|
9
|
+
regexPatterns: string[];
|
|
9
10
|
} | undefined;
|
|
10
11
|
id: bigint;
|
|
11
12
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automodRule.d.ts","sourceRoot":"","sources":["../../src/transformers/automodRule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAItC,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,yBAAyB
|
|
1
|
+
{"version":3,"file":"automodRule.d.ts","sourceRoot":"","sources":["../../src/transformers/automodRule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAItC,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;EAiCvF;AAED,MAAM,WAAW,kBAAmB,SAAQ,UAAU,CAAC,OAAO,2BAA2B,CAAC;CAAG"}
|
|
@@ -12,6 +12,7 @@ export function transformAutoModerationRule(bot, payload) {
|
|
|
12
12
|
exemptChannels: payload.exempt_channels.map((id)=>bot.transformers.snowflake(id)),
|
|
13
13
|
triggerMetadata: payload.trigger_metadata ? {
|
|
14
14
|
keywordFilter: payload.trigger_metadata.keyword_filter,
|
|
15
|
+
regexPatterns: payload.trigger_metadata.regex_patterns,
|
|
15
16
|
presets: payload.trigger_metadata.presets,
|
|
16
17
|
allowList: payload.trigger_metadata.allow_list,
|
|
17
18
|
mentionTotalLimit: payload.trigger_metadata.mention_total_limit
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/transformers/automodRule.ts"],"sourcesContent":["import type { DiscordAutoModerationRule } from '@discordeno/types'\nimport type { Bot } from '../index.js'\nimport type { Optionalize } from '../optionalize.js'\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function transformAutoModerationRule(bot: Bot, payload: DiscordAutoModerationRule) {\n const rule = {\n name: payload.name,\n eventType: payload.event_type,\n triggerType: payload.trigger_type,\n enabled: payload.enabled,\n id: bot.transformers.snowflake(payload.id),\n guildId: bot.transformers.snowflake(payload.guild_id),\n creatorId: bot.transformers.snowflake(payload.creator_id),\n exemptRoles: payload.exempt_roles.map((id) => bot.transformers.snowflake(id)),\n exemptChannels: payload.exempt_channels.map((id) => bot.transformers.snowflake(id)),\n triggerMetadata: payload.trigger_metadata\n ? {\n keywordFilter: payload.trigger_metadata.keyword_filter,\n presets: payload.trigger_metadata.presets,\n allowList: payload.trigger_metadata.allow_list,\n mentionTotalLimit: payload.trigger_metadata.mention_total_limit,\n }\n : undefined,\n actions: payload.actions.map((action) => ({\n type: action.type,\n metadata: action.metadata\n ? {\n channelId: action.metadata.channel_id ? bot.transformers.snowflake(action.metadata.channel_id) : undefined,\n customMessage: action.metadata.custom_message,\n durationSeconds: action.metadata.duration_seconds,\n }\n : undefined,\n })),\n }\n\n return rule as Optionalize<typeof rule>\n}\n\nexport interface AutoModerationRule extends ReturnType<typeof transformAutoModerationRule> {}\n"],"names":["transformAutoModerationRule","bot","payload","rule","name","eventType","event_type","triggerType","trigger_type","enabled","id","transformers","snowflake","guildId","guild_id","creatorId","creator_id","exemptRoles","exempt_roles","map","exemptChannels","exempt_channels","triggerMetadata","trigger_metadata","keywordFilter","keyword_filter","presets","allowList","allow_list","mentionTotalLimit","mention_total_limit","undefined","actions","action","type","metadata","channelId","channel_id","customMessage","custom_message","durationSeconds","duration_seconds"],"mappings":"AAIA,4EAA4E;AAC5E,OAAO,SAASA,4BAA4BC,GAAQ,EAAEC,OAAkC,EAAE;IACxF,MAAMC,OAAO;QACXC,MAAMF,QAAQE,IAAI;QAClBC,WAAWH,QAAQI,UAAU;QAC7BC,aAAaL,QAAQM,YAAY;QACjCC,SAASP,QAAQO,OAAO;QACxBC,IAAIT,IAAIU,YAAY,CAACC,SAAS,CAACV,QAAQQ,EAAE;QACzCG,SAASZ,IAAIU,YAAY,CAACC,SAAS,CAACV,QAAQY,QAAQ;QACpDC,WAAWd,IAAIU,YAAY,CAACC,SAAS,CAACV,QAAQc,UAAU;QACxDC,aAAaf,QAAQgB,YAAY,CAACC,GAAG,CAAC,CAACT,KAAOT,IAAIU,YAAY,CAACC,SAAS,CAACF;QACzEU,gBAAgBlB,QAAQmB,eAAe,CAACF,GAAG,CAAC,CAACT,KAAOT,IAAIU,YAAY,CAACC,SAAS,CAACF;QAC/EY,iBAAiBpB,QAAQqB,gBAAgB,GACrC;YACEC,eAAetB,QAAQqB,gBAAgB,CAACE,cAAc;YACtDC,
|
|
1
|
+
{"version":3,"sources":["../../src/transformers/automodRule.ts"],"sourcesContent":["import type { DiscordAutoModerationRule } from '@discordeno/types'\nimport type { Bot } from '../index.js'\nimport type { Optionalize } from '../optionalize.js'\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function transformAutoModerationRule(bot: Bot, payload: DiscordAutoModerationRule) {\n const rule = {\n name: payload.name,\n eventType: payload.event_type,\n triggerType: payload.trigger_type,\n enabled: payload.enabled,\n id: bot.transformers.snowflake(payload.id),\n guildId: bot.transformers.snowflake(payload.guild_id),\n creatorId: bot.transformers.snowflake(payload.creator_id),\n exemptRoles: payload.exempt_roles.map((id) => bot.transformers.snowflake(id)),\n exemptChannels: payload.exempt_channels.map((id) => bot.transformers.snowflake(id)),\n triggerMetadata: payload.trigger_metadata\n ? {\n keywordFilter: payload.trigger_metadata.keyword_filter,\n regexPatterns: payload.trigger_metadata.regex_patterns,\n presets: payload.trigger_metadata.presets,\n allowList: payload.trigger_metadata.allow_list,\n mentionTotalLimit: payload.trigger_metadata.mention_total_limit,\n }\n : undefined,\n actions: payload.actions.map((action) => ({\n type: action.type,\n metadata: action.metadata\n ? {\n channelId: action.metadata.channel_id ? bot.transformers.snowflake(action.metadata.channel_id) : undefined,\n customMessage: action.metadata.custom_message,\n durationSeconds: action.metadata.duration_seconds,\n }\n : undefined,\n })),\n }\n\n return rule as Optionalize<typeof rule>\n}\n\nexport interface AutoModerationRule extends ReturnType<typeof transformAutoModerationRule> {}\n"],"names":["transformAutoModerationRule","bot","payload","rule","name","eventType","event_type","triggerType","trigger_type","enabled","id","transformers","snowflake","guildId","guild_id","creatorId","creator_id","exemptRoles","exempt_roles","map","exemptChannels","exempt_channels","triggerMetadata","trigger_metadata","keywordFilter","keyword_filter","regexPatterns","regex_patterns","presets","allowList","allow_list","mentionTotalLimit","mention_total_limit","undefined","actions","action","type","metadata","channelId","channel_id","customMessage","custom_message","durationSeconds","duration_seconds"],"mappings":"AAIA,4EAA4E;AAC5E,OAAO,SAASA,4BAA4BC,GAAQ,EAAEC,OAAkC,EAAE;IACxF,MAAMC,OAAO;QACXC,MAAMF,QAAQE,IAAI;QAClBC,WAAWH,QAAQI,UAAU;QAC7BC,aAAaL,QAAQM,YAAY;QACjCC,SAASP,QAAQO,OAAO;QACxBC,IAAIT,IAAIU,YAAY,CAACC,SAAS,CAACV,QAAQQ,EAAE;QACzCG,SAASZ,IAAIU,YAAY,CAACC,SAAS,CAACV,QAAQY,QAAQ;QACpDC,WAAWd,IAAIU,YAAY,CAACC,SAAS,CAACV,QAAQc,UAAU;QACxDC,aAAaf,QAAQgB,YAAY,CAACC,GAAG,CAAC,CAACT,KAAOT,IAAIU,YAAY,CAACC,SAAS,CAACF;QACzEU,gBAAgBlB,QAAQmB,eAAe,CAACF,GAAG,CAAC,CAACT,KAAOT,IAAIU,YAAY,CAACC,SAAS,CAACF;QAC/EY,iBAAiBpB,QAAQqB,gBAAgB,GACrC;YACEC,eAAetB,QAAQqB,gBAAgB,CAACE,cAAc;YACtDC,eAAexB,QAAQqB,gBAAgB,CAACI,cAAc;YACtDC,SAAS1B,QAAQqB,gBAAgB,CAACK,OAAO;YACzCC,WAAW3B,QAAQqB,gBAAgB,CAACO,UAAU;YAC9CC,mBAAmB7B,QAAQqB,gBAAgB,CAACS,mBAAmB;QACjE,IACAC,SAAS;QACbC,SAAShC,QAAQgC,OAAO,CAACf,GAAG,CAAC,CAACgB,SAAY,CAAA;gBACxCC,MAAMD,OAAOC,IAAI;gBACjBC,UAAUF,OAAOE,QAAQ,GACrB;oBACEC,WAAWH,OAAOE,QAAQ,CAACE,UAAU,GAAGtC,IAAIU,YAAY,CAACC,SAAS,CAACuB,OAAOE,QAAQ,CAACE,UAAU,IAAIN,SAAS;oBAC1GO,eAAeL,OAAOE,QAAQ,CAACI,cAAc;oBAC7CC,iBAAiBP,OAAOE,QAAQ,CAACM,gBAAgB;gBACnD,IACAV,SAAS;YACf,CAAA;IACF;IAEA,OAAO9B;AACT,CAAC"}
|
|
@@ -1,44 +1,107 @@
|
|
|
1
|
-
import type { DiscordChannel } from '@discordeno/types';
|
|
2
|
-
import type
|
|
1
|
+
import type { ChannelTypes, DiscordChannel, DiscordThreadMember, OverwriteReadable, VideoQualityModes } from '@discordeno/types';
|
|
2
|
+
import { type Bot } from '../index.js';
|
|
3
|
+
import { Permissions } from './toggles/Permissions.js';
|
|
4
|
+
import { ChannelToggles } from './toggles/channel.js';
|
|
3
5
|
export declare function packOverwrites(allow: string, deny: string, id: string, type: number): bigint;
|
|
4
6
|
export declare function separateOverwrites(v: bigint): [number, bigint, bigint, bigint];
|
|
7
|
+
export declare const baseChannel: Partial<Channel> & BaseChannel;
|
|
5
8
|
export declare function transformChannel(bot: Bot, payload: {
|
|
6
9
|
channel: DiscordChannel;
|
|
7
10
|
} & {
|
|
8
11
|
guildId?: bigint;
|
|
9
|
-
}):
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
12
|
+
}): Channel;
|
|
13
|
+
export interface BaseChannel {
|
|
14
|
+
/** Whether the channel is nsfw */
|
|
15
|
+
nsfw: boolean;
|
|
16
|
+
/** Thread-specific fields not needed by other channels */
|
|
17
|
+
threadMetadata?: {
|
|
18
|
+
/** Timestamp when the thread's archive status was last changed, used for calculating recent activity */
|
|
19
|
+
archiveTimestamp?: number;
|
|
20
|
+
/** Timestamp when the thread was created; only populated for threads created after 2022-01-09 */
|
|
21
|
+
createTimestamp?: number;
|
|
22
|
+
/** Duration in minutes to automatically archive the thread after recent activity */
|
|
23
|
+
autoArchiveDuration?: 60 | 1440 | 4320 | 10080;
|
|
24
|
+
/** When a thread is locked, only users with `MANAGE_THREADS` can unarchive it */
|
|
25
|
+
locked: boolean;
|
|
26
|
+
/** whether non-moderators can add other non-moderators to a thread; only available on private threads */
|
|
27
|
+
invitable: boolean;
|
|
28
|
+
/** Whether the thread is archived */
|
|
29
|
+
archived: boolean;
|
|
30
|
+
};
|
|
31
|
+
/** When a thread is created this will be true on that channel payload for the thread. */
|
|
32
|
+
newlyCreated: boolean;
|
|
33
|
+
/** When a thread is locked, only users with `MANAGE_THREADS` can unarchive it */
|
|
34
|
+
locked: boolean;
|
|
35
|
+
/** whether non-moderators can add other non-moderators to a thread; only available on private threads */
|
|
36
|
+
invitable: boolean;
|
|
37
|
+
/** Whether the thread is archived */
|
|
38
|
+
archived: boolean;
|
|
39
|
+
/** Explicit permission overwrites for members and roles. */
|
|
40
|
+
permissionOverwrites: OverwriteReadable[];
|
|
41
|
+
}
|
|
42
|
+
export interface Channel extends BaseChannel {
|
|
43
|
+
/** The id of the channel */
|
|
36
44
|
id: bigint;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
45
|
+
/** The compressed form of all the boolean values on this channel. */
|
|
46
|
+
toggles: ChannelToggles;
|
|
47
|
+
/** The type of channel */
|
|
48
|
+
type: ChannelTypes;
|
|
49
|
+
/** The id of the guild */
|
|
50
|
+
guildId?: bigint;
|
|
51
|
+
/** Sorting position of the channel */
|
|
52
|
+
position?: number;
|
|
53
|
+
/** The name of the channel (1-100 characters) */
|
|
54
|
+
name?: string;
|
|
55
|
+
/** The channel topic (0-4096 characters for GUILD_FORUM channels, 0-1024 characters for all others) */
|
|
56
|
+
topic?: string;
|
|
57
|
+
/** The id of the last message sent in this channel (may not point to an existing or valid message) */
|
|
58
|
+
lastMessageId?: bigint;
|
|
59
|
+
/** The bitrate (in bits) of the voice or stage channel */
|
|
60
|
+
bitrate?: number;
|
|
61
|
+
/** The user limit of the voice or stage channel */
|
|
62
|
+
userLimit?: number;
|
|
63
|
+
/** Amount of seconds a user has to wait before sending another message (0-21600); bots, as well as users with the permission `manage_messages` or `manage_channel`, are unaffected */
|
|
64
|
+
rateLimitPerUser?: number;
|
|
65
|
+
/** Id of the creator of the thread */
|
|
66
|
+
ownerId?: bigint;
|
|
67
|
+
/** For guild channels: Id of the parent category for a channel (each parent category can contain up to 50 channels), for threads: id of the text channel this thread was created */
|
|
68
|
+
parentId?: string;
|
|
69
|
+
/** When the last pinned message was pinned. This may be null in events such as GUILD_CREATE when a message is not pinned. */
|
|
70
|
+
lastPinTimestamp?: string;
|
|
71
|
+
/** Voice region id for the voice or stage channel, automatic when set to null */
|
|
72
|
+
rtcRegion?: string;
|
|
73
|
+
/** The camera video quality mode of the voice channel, 1 when not present */
|
|
74
|
+
videoQualityMode?: VideoQualityModes;
|
|
75
|
+
/** An approximate count of messages in a thread, stops counting at 50 */
|
|
76
|
+
messageCount?: number;
|
|
77
|
+
/** An approximate count of users in a thread, stops counting at 50 */
|
|
78
|
+
memberCount?: number;
|
|
79
|
+
/**
|
|
80
|
+
* Thread-specific fields not needed by other channels.
|
|
81
|
+
* @deprecated Use channel.threadMetadata
|
|
82
|
+
* @private This field is an internal field, subject to breaking changes.
|
|
83
|
+
*/
|
|
84
|
+
internalThreadMetadata?: {
|
|
85
|
+
/** Timestamp when the thread's archive status was last changed, used for calculating recent activity */
|
|
86
|
+
archiveTimestamp: number;
|
|
87
|
+
/** Timestamp when the thread was created; only populated for threads created after 2022-01-09 */
|
|
88
|
+
createTimestamp?: number;
|
|
89
|
+
/** Duration in minutes to automatically archive the thread after recent activity */
|
|
90
|
+
autoArchiveDuration: 60 | 1440 | 4320 | 10080;
|
|
91
|
+
};
|
|
92
|
+
/** Thread member object for the current user, if they have joined the thread, only included on certain API endpoints */
|
|
93
|
+
member?: DiscordThreadMember;
|
|
94
|
+
/** Default duration for newly created threads, in minutes, to automatically archive the thread after recent activity, can be set to: 60, 1440, 4320, 10080 */
|
|
95
|
+
default_auto_archive_duration?: number;
|
|
96
|
+
/** computed permissions for the invoking user in the channel, including overwrites, only included when part of the resolved data received on a application command interaction */
|
|
97
|
+
permissions?: Permissions;
|
|
98
|
+
/** The flags of the channel */
|
|
99
|
+
flags?: number;
|
|
100
|
+
/**
|
|
101
|
+
* Explicit permission overwrites for members and roles
|
|
102
|
+
* @deprecated Use channel.permissionOverwrites
|
|
103
|
+
* @private This is for internal use only, and prone to breaking changes.
|
|
104
|
+
*/
|
|
105
|
+
internalOverwrites?: bigint[];
|
|
43
106
|
}
|
|
44
107
|
//# sourceMappingURL=channel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/transformers/channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/transformers/channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { calculatePermissions } from '../index.js';
|
|
2
|
+
import { Permissions } from './toggles/Permissions.js';
|
|
3
|
+
import { ChannelToggles } from './toggles/channel.js';
|
|
1
4
|
const Mask = (1n << 64n) - 1n;
|
|
2
5
|
export function packOverwrites(allow, deny, id, type) {
|
|
3
6
|
return pack64(allow, 0) | pack64(deny, 1) | pack64(id, 2) | pack64(type, 3);
|
|
@@ -18,43 +21,76 @@ export function separateOverwrites(v) {
|
|
|
18
21
|
unpack64(v, 1)
|
|
19
22
|
];
|
|
20
23
|
}
|
|
21
|
-
|
|
24
|
+
export const baseChannel = {
|
|
25
|
+
get archived () {
|
|
26
|
+
return !!this.toggles?.archived;
|
|
27
|
+
},
|
|
28
|
+
get invitable () {
|
|
29
|
+
return !!this.toggles?.invitable;
|
|
30
|
+
},
|
|
31
|
+
get locked () {
|
|
32
|
+
return !!this.toggles?.locked;
|
|
33
|
+
},
|
|
34
|
+
get nsfw () {
|
|
35
|
+
return !!this.toggles?.nsfw;
|
|
36
|
+
},
|
|
37
|
+
get newlyCreated () {
|
|
38
|
+
return !!this.toggles?.newlyCreated;
|
|
39
|
+
},
|
|
40
|
+
get permissionOverwrites () {
|
|
41
|
+
return this.internalOverwrites?.map((overwrite)=>{
|
|
42
|
+
const [type, id, allow, deny] = separateOverwrites(overwrite);
|
|
43
|
+
return {
|
|
44
|
+
type,
|
|
45
|
+
id,
|
|
46
|
+
allow: calculatePermissions(allow),
|
|
47
|
+
deny: calculatePermissions(deny)
|
|
48
|
+
};
|
|
49
|
+
}) ?? [];
|
|
50
|
+
},
|
|
51
|
+
get threadMetadata () {
|
|
52
|
+
return {
|
|
53
|
+
archiveTimestamp: this.internalThreadMetadata?.archiveTimestamp,
|
|
54
|
+
createTimestamp: this.internalThreadMetadata?.createTimestamp,
|
|
55
|
+
autoArchiveDuration: this.internalThreadMetadata?.autoArchiveDuration,
|
|
56
|
+
locked: this.locked,
|
|
57
|
+
invitable: this.invitable,
|
|
58
|
+
archived: this.archived
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
};
|
|
22
62
|
export function transformChannel(bot, payload) {
|
|
23
|
-
const channel =
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
createTimestamp: payload.channel.thread_metadata?.create_timestamp ? Date.parse(payload.channel.thread_metadata.create_timestamp) : undefined,
|
|
55
|
-
newlyCreated: payload.channel.newly_created,
|
|
56
|
-
flags: payload.channel.flags
|
|
57
|
-
};
|
|
63
|
+
const channel = Object.create(baseChannel);
|
|
64
|
+
const props = bot.transformers.desiredProperties.channel;
|
|
65
|
+
channel.toggles = new ChannelToggles(payload.channel);
|
|
66
|
+
if (payload.channel.id && props.id) channel.id = bot.transformers.snowflake(payload.channel.id);
|
|
67
|
+
if (payload.guildId && props.guildId) channel.guildId = payload.guildId;
|
|
68
|
+
if (props.type) channel.type = payload.channel.type;
|
|
69
|
+
if (props.position) channel.position = payload.channel.position;
|
|
70
|
+
if (payload.channel.name && props.name) channel.name = payload.channel.name;
|
|
71
|
+
if (payload.channel.topic && props.topic) channel.topic = payload.channel.topic;
|
|
72
|
+
if (payload.channel.last_message_id && props.lastMessageId) channel.lastMessageId = bot.transformers.snowflake(payload.channel.last_message_id);
|
|
73
|
+
if (payload.channel.bitrate && props.bitrate) channel.bitrate = props.bitrate;
|
|
74
|
+
if (props.userLimit) channel.userLimit = payload.channel.user_limit;
|
|
75
|
+
if (props.rateLimitPerUser) channel.rateLimitPerUser = payload.channel.rate_limit_per_user;
|
|
76
|
+
if (payload.channel.owner_id && props.ownerId) channel.ownerId = bot.transformers.snowflake(payload.channel.owner_id);
|
|
77
|
+
if (payload.channel.last_pin_timestamp && props.lastPinTimestamp) channel.lastPinTimestamp = Date.parse(payload.channel.last_pin_timestamp);
|
|
78
|
+
if (payload.channel.rtc_region && props.rtcRegion) channel.rtcRegion = payload.channel.rtc_region;
|
|
79
|
+
if (payload.channel.video_quality_mode && props.videoQualityMode) channel.videoQualityMode = payload.channel.video_quality_mode;
|
|
80
|
+
if (payload.channel.message_count && props.messageCount) channel.messageCount = payload.channel.message_count;
|
|
81
|
+
if (payload.channel.member_count && props.memberCount) channel.memberCount = payload.channel.member_count;
|
|
82
|
+
if (props.archiveTimestamp || props.createTimestamp || props.autoArchiveDuration) {
|
|
83
|
+
channel.internalThreadMetadata = {};
|
|
84
|
+
if (payload.channel.thread_metadata?.archive_timestamp && props.archiveTimestamp) channel.internalThreadMetadata.archiveTimestamp = Date.parse(payload.channel.thread_metadata.archive_timestamp);
|
|
85
|
+
if (payload.channel.thread_metadata?.create_timestamp && props.createTimestamp) channel.internalThreadMetadata.createTimestamp = Date.parse(payload.channel.thread_metadata.create_timestamp);
|
|
86
|
+
if (payload.channel.thread_metadata?.auto_archive_duration && props.autoArchiveDuration) channel.internalThreadMetadata.autoArchiveDuration = payload.channel.thread_metadata.auto_archive_duration;
|
|
87
|
+
}
|
|
88
|
+
if (payload.channel.default_auto_archive_duration && props.autoArchiveDuration) channel.autoArchiveDuration = payload.channel.default_auto_archive_duration;
|
|
89
|
+
if (payload.channel.permissions && props.permissions) channel.permissions = new Permissions(payload.channel.permissions);
|
|
90
|
+
if (payload.channel.flags && props.flags) channel.flags = payload.channel.flags;
|
|
91
|
+
if (payload.channel.permission_overwrites && props.permissionOverwrites) {
|
|
92
|
+
channel.internalOverwrites = payload.channel.permission_overwrites.map((o)=>packOverwrites(o.allow ?? '0', o.deny ?? '0', o.id, o.type));
|
|
93
|
+
}
|
|
58
94
|
return channel;
|
|
59
95
|
}
|
|
60
96
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/transformers/channel.ts"],"sourcesContent":["import type { DiscordChannel } from '@discordeno/types'\nimport type { Bot } from '../index.js'\nimport type { Optionalize } from '../optionalize.js'\n\nconst Mask = (1n << 64n) - 1n\n\nexport function packOverwrites(allow: string, deny: string, id: string, type: number): bigint {\n return pack64(allow, 0) | pack64(deny, 1) | pack64(id, 2) | pack64(type, 3)\n}\nfunction unpack64(v: bigint, shift: number): bigint {\n return (v >> BigInt(shift * 64)) & Mask\n}\nfunction pack64(v: string | number, shift: number): bigint {\n const b = BigInt(v)\n if (b < 0 || b > Mask) throw new Error('should have been a 64 bit unsigned integer: ' + v.toString())\n return b << BigInt(shift * 64)\n}\nexport function separateOverwrites(v: bigint): [number, bigint, bigint, bigint] {\n return [Number(unpack64(v, 3)), unpack64(v, 2), unpack64(v, 0), unpack64(v, 1)] as [number, bigint, bigint, bigint]\n}\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function transformChannel(bot: Bot, payload: { channel: DiscordChannel } & { guildId?: bigint }) {\n const channel = {\n // UNTRANSFORMED STUFF HERE\n type: payload.channel.type,\n position: payload.channel.position,\n name: payload.channel.name,\n topic: payload.channel.topic ?? undefined,\n nsfw: payload.channel.nsfw,\n bitrate: payload.channel.bitrate,\n userLimit: payload.channel.user_limit,\n rateLimitPerUser: payload.channel.rate_limit_per_user,\n // recipients: payload.channel.recipients?.map((r) => bot.transformers.user(bot, r)),\n rtcRegion: payload.channel.rtc_region ?? undefined,\n videoQualityMode: payload.channel.video_quality_mode,\n guildId: payload.guildId ?? (payload.channel.guild_id ? bot.transformers.snowflake(payload.channel.guild_id) : 0n),\n lastPinTimestamp: payload.channel.last_pin_timestamp ? Date.parse(payload.channel.last_pin_timestamp) : undefined,\n permissionOverwrites: payload.channel.permission_overwrites\n ? payload.channel.permission_overwrites.map((o) => packOverwrites(o.allow ?? '0', o.deny ?? '0', o.id, o.type))\n : [],\n\n id: bot.transformers.snowflake(payload.channel.id),\n permissions: payload.channel.permissions ? bot.transformers.snowflake(payload.channel.permissions) : undefined,\n lastMessageId: payload.channel.last_message_id ? bot.transformers.snowflake(payload.channel.last_message_id) : undefined,\n ownerId: payload.channel.owner_id ? bot.transformers.snowflake(payload.channel.owner_id) : undefined,\n applicationId: payload.channel.application_id ? bot.transformers.snowflake(payload.channel.application_id) : undefined,\n managed: payload.channel.managed,\n parentId: payload.channel.parent_id ? bot.transformers.snowflake(payload.channel.parent_id) : undefined,\n memberCount: payload.channel.member_count,\n messageCount: payload.channel.message_count,\n archiveTimestamp: payload.channel.thread_metadata?.archive_timestamp ? Date.parse(payload.channel.thread_metadata.archive_timestamp) : undefined,\n autoArchiveDuration: payload.channel.thread_metadata?.auto_archive_duration,\n botIsMember: Boolean(payload.channel.member),\n archived: payload.channel.thread_metadata?.archived,\n locked: payload.channel.thread_metadata?.locked,\n invitable: payload.channel.thread_metadata?.invitable,\n createTimestamp: payload.channel.thread_metadata?.create_timestamp ? Date.parse(payload.channel.thread_metadata.create_timestamp) : undefined,\n newlyCreated: payload.channel.newly_created,\n flags: payload.channel.flags,\n }\n\n return channel as Optionalize<typeof channel>\n}\n\nexport interface Channel extends ReturnType<typeof transformChannel> {}\n"],"names":["Mask","packOverwrites","allow","deny","id","type","pack64","unpack64","v","shift","BigInt","b","Error","toString","separateOverwrites","Number","transformChannel","bot","payload","channel","position","name","topic","undefined","nsfw","bitrate","userLimit","user_limit","rateLimitPerUser","rate_limit_per_user","rtcRegion","rtc_region","videoQualityMode","video_quality_mode","guildId","guild_id","transformers","snowflake","lastPinTimestamp","last_pin_timestamp","Date","parse","permissionOverwrites","permission_overwrites","map","o","permissions","lastMessageId","last_message_id","ownerId","owner_id","applicationId","application_id","managed","parentId","parent_id","memberCount","member_count","messageCount","message_count","archiveTimestamp","thread_metadata","archive_timestamp","autoArchiveDuration","auto_archive_duration","botIsMember","Boolean","member","archived","locked","invitable","createTimestamp","create_timestamp","newlyCreated","newly_created","flags"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/transformers/channel.ts"],"sourcesContent":["import type { ChannelTypes, DiscordChannel, DiscordThreadMember, OverwriteReadable, VideoQualityModes } from '@discordeno/types'\nimport { calculatePermissions, type Bot } from '../index.js'\nimport { Permissions } from './toggles/Permissions.js'\nimport { ChannelToggles } from './toggles/channel.js'\n\nconst Mask = (1n << 64n) - 1n\n\nexport function packOverwrites(allow: string, deny: string, id: string, type: number): bigint {\n return pack64(allow, 0) | pack64(deny, 1) | pack64(id, 2) | pack64(type, 3)\n}\nfunction unpack64(v: bigint, shift: number): bigint {\n return (v >> BigInt(shift * 64)) & Mask\n}\nfunction pack64(v: string | number, shift: number): bigint {\n const b = BigInt(v)\n if (b < 0 || b > Mask) throw new Error('should have been a 64 bit unsigned integer: ' + v.toString())\n return b << BigInt(shift * 64)\n}\nexport function separateOverwrites(v: bigint): [number, bigint, bigint, bigint] {\n return [Number(unpack64(v, 3)), unpack64(v, 2), unpack64(v, 0), unpack64(v, 1)] as [number, bigint, bigint, bigint]\n}\n\nexport const baseChannel: Partial<Channel> & BaseChannel = {\n get archived() {\n return !!this.toggles?.archived\n },\n get invitable() {\n return !!this.toggles?.invitable\n },\n get locked() {\n return !!this.toggles?.locked\n },\n get nsfw() {\n return !!this.toggles?.nsfw\n },\n get newlyCreated() {\n return !!this.toggles?.newlyCreated\n },\n get permissionOverwrites() {\n return (\n this.internalOverwrites?.map((overwrite) => {\n const [type, id, allow, deny] = separateOverwrites(overwrite)\n return {\n type,\n id,\n allow: calculatePermissions(allow),\n deny: calculatePermissions(deny),\n }\n }) ?? []\n )\n },\n get threadMetadata() {\n return {\n archiveTimestamp: this.internalThreadMetadata?.archiveTimestamp,\n createTimestamp: this.internalThreadMetadata?.createTimestamp,\n autoArchiveDuration: this.internalThreadMetadata?.autoArchiveDuration,\n locked: this.locked,\n invitable: this.invitable,\n archived: this.archived,\n }\n },\n}\n\nexport function transformChannel(bot: Bot, payload: { channel: DiscordChannel } & { guildId?: bigint }): Channel {\n const channel = Object.create(baseChannel)\n const props = bot.transformers.desiredProperties.channel\n channel.toggles = new ChannelToggles(payload.channel)\n\n if (payload.channel.id && props.id) channel.id = bot.transformers.snowflake(payload.channel.id)\n if (payload.guildId && props.guildId) channel.guildId = payload.guildId\n if (props.type) channel.type = payload.channel.type\n if (props.position) channel.position = payload.channel.position\n if (payload.channel.name && props.name) channel.name = payload.channel.name\n if (payload.channel.topic && props.topic) channel.topic = payload.channel.topic\n if (payload.channel.last_message_id && props.lastMessageId) channel.lastMessageId = bot.transformers.snowflake(payload.channel.last_message_id)\n if (payload.channel.bitrate && props.bitrate) channel.bitrate = props.bitrate\n if (props.userLimit) channel.userLimit = payload.channel.user_limit\n if (props.rateLimitPerUser) channel.rateLimitPerUser = payload.channel.rate_limit_per_user\n if (payload.channel.owner_id && props.ownerId) channel.ownerId = bot.transformers.snowflake(payload.channel.owner_id)\n if (payload.channel.last_pin_timestamp && props.lastPinTimestamp) channel.lastPinTimestamp = Date.parse(payload.channel.last_pin_timestamp)\n if (payload.channel.rtc_region && props.rtcRegion) channel.rtcRegion = payload.channel.rtc_region\n if (payload.channel.video_quality_mode && props.videoQualityMode) channel.videoQualityMode = payload.channel.video_quality_mode\n if (payload.channel.message_count && props.messageCount) channel.messageCount = payload.channel.message_count\n if (payload.channel.member_count && props.memberCount) channel.memberCount = payload.channel.member_count\n if (props.archiveTimestamp || props.createTimestamp || props.autoArchiveDuration) {\n channel.internalThreadMetadata = {}\n if (payload.channel.thread_metadata?.archive_timestamp && props.archiveTimestamp)\n channel.internalThreadMetadata.archiveTimestamp = Date.parse(payload.channel.thread_metadata.archive_timestamp)\n if (payload.channel.thread_metadata?.create_timestamp && props.createTimestamp)\n channel.internalThreadMetadata.createTimestamp = Date.parse(payload.channel.thread_metadata.create_timestamp)\n if (payload.channel.thread_metadata?.auto_archive_duration && props.autoArchiveDuration)\n channel.internalThreadMetadata.autoArchiveDuration = payload.channel.thread_metadata.auto_archive_duration\n }\n if (payload.channel.default_auto_archive_duration && props.autoArchiveDuration)\n channel.autoArchiveDuration = payload.channel.default_auto_archive_duration\n if (payload.channel.permissions && props.permissions) channel.permissions = new Permissions(payload.channel.permissions)\n if (payload.channel.flags && props.flags) channel.flags = payload.channel.flags\n if (payload.channel.permission_overwrites && props.permissionOverwrites) {\n channel.internalOverwrites = payload.channel.permission_overwrites.map((o) => packOverwrites(o.allow ?? '0', o.deny ?? '0', o.id, o.type))\n }\n\n return channel\n}\n\nexport interface BaseChannel {\n /** Whether the channel is nsfw */\n nsfw: boolean\n /** Thread-specific fields not needed by other channels */\n threadMetadata?: {\n /** Timestamp when the thread's archive status was last changed, used for calculating recent activity */\n archiveTimestamp?: number\n /** Timestamp when the thread was created; only populated for threads created after 2022-01-09 */\n createTimestamp?: number\n /** Duration in minutes to automatically archive the thread after recent activity */\n autoArchiveDuration?: 60 | 1440 | 4320 | 10080\n /** When a thread is locked, only users with `MANAGE_THREADS` can unarchive it */\n locked: boolean\n /** whether non-moderators can add other non-moderators to a thread; only available on private threads */\n invitable: boolean\n /** Whether the thread is archived */\n archived: boolean\n }\n /** When a thread is created this will be true on that channel payload for the thread. */\n newlyCreated: boolean\n /** When a thread is locked, only users with `MANAGE_THREADS` can unarchive it */\n locked: boolean\n /** whether non-moderators can add other non-moderators to a thread; only available on private threads */\n invitable: boolean\n /** Whether the thread is archived */\n archived: boolean\n /** Explicit permission overwrites for members and roles. */\n permissionOverwrites: OverwriteReadable[]\n}\n\nexport interface Channel extends BaseChannel {\n /** The id of the channel */\n id: bigint\n /** The compressed form of all the boolean values on this channel. */\n toggles: ChannelToggles\n /** The type of channel */\n type: ChannelTypes\n /** The id of the guild */\n guildId?: bigint\n /** Sorting position of the channel */\n position?: number\n /** The name of the channel (1-100 characters) */\n name?: string\n /** The channel topic (0-4096 characters for GUILD_FORUM channels, 0-1024 characters for all others) */\n topic?: string\n /** The id of the last message sent in this channel (may not point to an existing or valid message) */\n lastMessageId?: bigint\n /** The bitrate (in bits) of the voice or stage channel */\n bitrate?: number\n /** The user limit of the voice or stage channel */\n userLimit?: number\n /** Amount of seconds a user has to wait before sending another message (0-21600); bots, as well as users with the permission `manage_messages` or `manage_channel`, are unaffected */\n rateLimitPerUser?: number\n /** Id of the creator of the thread */\n ownerId?: bigint\n /** For guild channels: Id of the parent category for a channel (each parent category can contain up to 50 channels), for threads: id of the text channel this thread was created */\n parentId?: string\n /** When the last pinned message was pinned. This may be null in events such as GUILD_CREATE when a message is not pinned. */\n lastPinTimestamp?: string\n /** Voice region id for the voice or stage channel, automatic when set to null */\n rtcRegion?: string\n /** The camera video quality mode of the voice channel, 1 when not present */\n videoQualityMode?: VideoQualityModes\n /** An approximate count of messages in a thread, stops counting at 50 */\n messageCount?: number\n /** An approximate count of users in a thread, stops counting at 50 */\n memberCount?: number\n /**\n * Thread-specific fields not needed by other channels.\n * @deprecated Use channel.threadMetadata\n * @private This field is an internal field, subject to breaking changes.\n */\n internalThreadMetadata?: {\n /** Timestamp when the thread's archive status was last changed, used for calculating recent activity */\n archiveTimestamp: number\n /** Timestamp when the thread was created; only populated for threads created after 2022-01-09 */\n createTimestamp?: number\n /** Duration in minutes to automatically archive the thread after recent activity */\n autoArchiveDuration: 60 | 1440 | 4320 | 10080\n }\n /** Thread member object for the current user, if they have joined the thread, only included on certain API endpoints */\n member?: DiscordThreadMember\n /** Default duration for newly created threads, in minutes, to automatically archive the thread after recent activity, can be set to: 60, 1440, 4320, 10080 */\n default_auto_archive_duration?: number\n /** computed permissions for the invoking user in the channel, including overwrites, only included when part of the resolved data received on a application command interaction */\n permissions?: Permissions\n /** The flags of the channel */\n flags?: number\n /**\n * Explicit permission overwrites for members and roles\n * @deprecated Use channel.permissionOverwrites\n * @private This is for internal use only, and prone to breaking changes.\n */\n internalOverwrites?: bigint[]\n}\n"],"names":["calculatePermissions","Permissions","ChannelToggles","Mask","packOverwrites","allow","deny","id","type","pack64","unpack64","v","shift","BigInt","b","Error","toString","separateOverwrites","Number","baseChannel","archived","toggles","invitable","locked","nsfw","newlyCreated","permissionOverwrites","internalOverwrites","map","overwrite","threadMetadata","archiveTimestamp","internalThreadMetadata","createTimestamp","autoArchiveDuration","transformChannel","bot","payload","channel","Object","create","props","transformers","desiredProperties","snowflake","guildId","position","name","topic","last_message_id","lastMessageId","bitrate","userLimit","user_limit","rateLimitPerUser","rate_limit_per_user","owner_id","ownerId","last_pin_timestamp","lastPinTimestamp","Date","parse","rtc_region","rtcRegion","video_quality_mode","videoQualityMode","message_count","messageCount","member_count","memberCount","thread_metadata","archive_timestamp","create_timestamp","auto_archive_duration","default_auto_archive_duration","permissions","flags","permission_overwrites","o"],"mappings":"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"}
|