sweety-html-transcripts 0.2.0

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.
Files changed (81) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +127 -0
  3. package/dist/adapters/core.d.ts +41 -0
  4. package/dist/adapters/core.js +30 -0
  5. package/dist/adapters/core.js.map +1 -0
  6. package/dist/adapters/discordjs.d.ts +26 -0
  7. package/dist/adapters/discordjs.js +102 -0
  8. package/dist/adapters/discordjs.js.map +1 -0
  9. package/dist/adapters/seyfert.d.ts +26 -0
  10. package/dist/adapters/seyfert.js +67 -0
  11. package/dist/adapters/seyfert.js.map +1 -0
  12. package/dist/downloader/images.d.ts +37 -0
  13. package/dist/downloader/images.js +119 -0
  14. package/dist/downloader/images.js.map +1 -0
  15. package/dist/generator/index.d.ts +34 -0
  16. package/dist/generator/index.js +81 -0
  17. package/dist/generator/index.js.map +1 -0
  18. package/dist/generator/renderers/attachment.d.ts +24 -0
  19. package/dist/generator/renderers/attachment.js +133 -0
  20. package/dist/generator/renderers/attachment.js.map +1 -0
  21. package/dist/generator/renderers/components.d.ts +8 -0
  22. package/dist/generator/renderers/components.js +179 -0
  23. package/dist/generator/renderers/components.js.map +1 -0
  24. package/dist/generator/renderers/content.d.ts +32 -0
  25. package/dist/generator/renderers/content.js +168 -0
  26. package/dist/generator/renderers/content.js.map +1 -0
  27. package/dist/generator/renderers/embed.d.ts +15 -0
  28. package/dist/generator/renderers/embed.js +77 -0
  29. package/dist/generator/renderers/embed.js.map +1 -0
  30. package/dist/generator/renderers/message.d.ts +15 -0
  31. package/dist/generator/renderers/message.js +95 -0
  32. package/dist/generator/renderers/message.js.map +1 -0
  33. package/dist/generator/renderers/reply.d.ts +7 -0
  34. package/dist/generator/renderers/reply.js +76 -0
  35. package/dist/generator/renderers/reply.js.map +1 -0
  36. package/dist/generator/renderers/systemMessage.d.ts +19 -0
  37. package/dist/generator/renderers/systemMessage.js +109 -0
  38. package/dist/generator/renderers/systemMessage.js.map +1 -0
  39. package/dist/generator/transcript.d.ts +12 -0
  40. package/dist/generator/transcript.js +85 -0
  41. package/dist/generator/transcript.js.map +1 -0
  42. package/dist/index.d.ts +26 -0
  43. package/dist/index.js +143 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/static/client.d.ts +2 -0
  46. package/dist/static/client.js +30 -0
  47. package/dist/static/client.js.map +1 -0
  48. package/dist/types.d.ts +69 -0
  49. package/dist/types.js +10 -0
  50. package/dist/types.js.map +1 -0
  51. package/dist/utils/api.d.ts +19 -0
  52. package/dist/utils/api.js +364 -0
  53. package/dist/utils/api.js.map +1 -0
  54. package/dist/utils/cdn.d.ts +28 -0
  55. package/dist/utils/cdn.js +61 -0
  56. package/dist/utils/cdn.js.map +1 -0
  57. package/dist/utils/channel.d.ts +34 -0
  58. package/dist/utils/channel.js +51 -0
  59. package/dist/utils/channel.js.map +1 -0
  60. package/dist/utils/embeds.d.ts +2 -0
  61. package/dist/utils/embeds.js +17 -0
  62. package/dist/utils/embeds.js.map +1 -0
  63. package/dist/utils/guild.d.ts +9 -0
  64. package/dist/utils/guild.js +19 -0
  65. package/dist/utils/guild.js.map +1 -0
  66. package/dist/utils/message.d.ts +6 -0
  67. package/dist/utils/message.js +11 -0
  68. package/dist/utils/message.js.map +1 -0
  69. package/dist/utils/profiles.d.ts +18 -0
  70. package/dist/utils/profiles.js +67 -0
  71. package/dist/utils/profiles.js.map +1 -0
  72. package/dist/utils/replacer.d.ts +28 -0
  73. package/dist/utils/replacer.js +67 -0
  74. package/dist/utils/replacer.js.map +1 -0
  75. package/dist/utils/user.d.ts +18 -0
  76. package/dist/utils/user.js +38 -0
  77. package/dist/utils/user.js.map +1 -0
  78. package/dist/utils/utils.d.ts +32 -0
  79. package/dist/utils/utils.js +61 -0
  80. package/dist/utils/utils.js.map +1 -0
  81. package/package.json +90 -0
@@ -0,0 +1,364 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.apiUtils = void 0;
4
+ const discord_js_1 = require("discord.js");
5
+ const replacer_1 = require("./replacer");
6
+ class APIUtils {
7
+ async message(message) {
8
+ const messageReference = await message.fetchReference().catch(() => null);
9
+ return {
10
+ content: message.content,
11
+ id: message.id,
12
+ type: message.type,
13
+ pinned: message.pinned,
14
+ tts: message.tts,
15
+ message_snapshots: message.messageSnapshots?.map((snapshot) => this.snapshot(snapshot)) ?? [],
16
+ attachments: message.attachments.map((attachment) => this.attachment(attachment)),
17
+ author: this.user(message.author),
18
+ channel_id: message.channelId,
19
+ timestamp: message.createdAt.toISOString(),
20
+ edited_timestamp: message.editedAt ? message.editedAt.toISOString() : null,
21
+ mention_everyone: message.mentions.everyone,
22
+ mention_roles: message.mentions.roles.map((role) => role.id),
23
+ embeds: message.embeds.map((embed) => embed.toJSON()),
24
+ reactions: message.reactions.cache.map((reaction) => this.reaction(reaction)),
25
+ nonce: message.nonce ?? undefined,
26
+ activity: message.activity ? (0, replacer_1.toSnakeCase)(message.activity) : undefined,
27
+ flags: message.flags.bitfield,
28
+ sticker_items: message.stickers.map((sticker) => this.sticker(sticker)),
29
+ components: message.components.map((component) => component.toJSON()),
30
+ thread: message.hasThread ? this.channel(message.thread) : undefined,
31
+ position: message.position ?? undefined,
32
+ mentions: message.mentions.users.map((user) => this.user(user)),
33
+ referenced_message: messageReference ? await this.message(messageReference) : null,
34
+ interaction_metadata: message.interactionMetadata
35
+ ? {
36
+ id: message.interactionMetadata.id,
37
+ type: message.interactionMetadata.type,
38
+ user: this.user(message.interactionMetadata.user),
39
+ authorizing_integration_owners: message.interactionMetadata.authorizingIntegrationOwners,
40
+ interacted_message_id: message.interactionMetadata.interactedMessageId,
41
+ original_response_message_id: message.interactionMetadata.originalResponseMessageId,
42
+ triggering_interaction_metadata: message.interactionMetadata.triggeringInteractionMetadata
43
+ ? {
44
+ type: message.interactionMetadata.triggeringInteractionMetadata.type,
45
+ id: message.interactionMetadata.triggeringInteractionMetadata.id,
46
+ user: this.user(message.interactionMetadata.triggeringInteractionMetadata.user),
47
+ authorizing_integration_owners: message.interactionMetadata.triggeringInteractionMetadata.authorizingIntegrationOwners,
48
+ interacted_message_id: message.interactionMetadata.triggeringInteractionMetadata.interactedMessageId,
49
+ original_response_message_id: message.interactionMetadata.triggeringInteractionMetadata.originalResponseMessageId,
50
+ }
51
+ : {},
52
+ }
53
+ : undefined,
54
+ mention_channels: message.mentions.channels.map((channel) => ({
55
+ id: channel.id,
56
+ type: channel.type,
57
+ name: 'name' in channel && channel.name ? channel.name : '',
58
+ guild_id: 'guildId' in channel ? channel.guildId : '',
59
+ })),
60
+ poll: message.poll
61
+ ? {
62
+ allow_multiselect: message.poll.allowMultiselect,
63
+ expiry: message.poll.expiresAt.toISOString(),
64
+ layout_type: message.poll.layoutType,
65
+ question: message.poll.question,
66
+ answers: message.poll.answers.map((answer) => ({
67
+ answer_id: answer.id,
68
+ poll_media: {
69
+ emoji: answer.emoji ? this.emoji(answer.emoji) : undefined,
70
+ text: answer.text ?? undefined,
71
+ },
72
+ })),
73
+ }
74
+ : undefined,
75
+ interaction: message.interaction
76
+ ? {
77
+ id: message.interaction.id,
78
+ type: message.interaction.type,
79
+ name: message.interaction.commandName,
80
+ user: this.user(message.interaction.user),
81
+ }
82
+ : undefined,
83
+ message_reference: message.reference
84
+ ? {
85
+ channel_id: message.reference.channelId,
86
+ guild_id: message.reference.guildId,
87
+ message_id: message.reference.messageId,
88
+ type: message.reference.type,
89
+ }
90
+ : undefined,
91
+ call: message.call
92
+ ? {
93
+ ended_timestamp: message.call.endedAt ? message.call.endedAt.toISOString() : undefined,
94
+ participants: message.call.participants,
95
+ }
96
+ : undefined,
97
+ };
98
+ }
99
+ user(user) {
100
+ return {
101
+ id: user.id,
102
+ username: user.username,
103
+ discriminator: user.discriminator,
104
+ avatar: user.avatar ?? null,
105
+ bot: user.bot ? user.bot : undefined,
106
+ system: user.system ? user.system : undefined,
107
+ global_name: user.globalName,
108
+ flags: user.flags?.bitfield ?? 0,
109
+ accent_color: user.accentColor ?? undefined,
110
+ banner: user.banner ?? undefined,
111
+ avatar_decoration_data: user.avatarDecorationData ? (0, replacer_1.toSnakeCase)(user.avatarDecorationData) : undefined,
112
+ collectibles: {
113
+ nameplate: user.collectibles?.nameplate ? (0, replacer_1.toSnakeCase)(user.collectibles.nameplate) : undefined,
114
+ },
115
+ };
116
+ }
117
+ attachment(attachment) {
118
+ return {
119
+ id: attachment.id,
120
+ size: attachment.size,
121
+ url: attachment.url,
122
+ proxy_url: attachment.proxyURL,
123
+ filename: attachment.name,
124
+ flags: attachment.flags.bitfield,
125
+ duration_secs: attachment.duration ?? undefined,
126
+ ephemeral: attachment.ephemeral ?? undefined,
127
+ height: attachment.height ?? undefined,
128
+ width: attachment.width ?? undefined,
129
+ content_type: attachment.contentType ?? undefined,
130
+ title: attachment.title ?? undefined,
131
+ description: attachment.description ?? undefined,
132
+ waveform: attachment.waveform ?? undefined,
133
+ };
134
+ }
135
+ reaction(reaction) {
136
+ return {
137
+ count: reaction.count,
138
+ me: reaction.me,
139
+ burst_colors: reaction.burstColors ?? [],
140
+ count_details: reaction.countDetails,
141
+ emoji: this.emoji(reaction.emoji),
142
+ me_burst: reaction.meBurst,
143
+ };
144
+ }
145
+ emoji(emoji) {
146
+ return {
147
+ id: emoji.id,
148
+ name: emoji.name ?? null,
149
+ roles: 'roles' in emoji ? emoji.roles.cache.map((role) => role.id) : undefined,
150
+ user: 'author' in emoji && emoji.author ? this.user(emoji.author) : undefined,
151
+ available: 'available' in emoji && emoji.available ? emoji.available : undefined,
152
+ animated: 'animated' in emoji && emoji.animated ? emoji.animated : undefined,
153
+ managed: 'managed' in emoji && emoji.managed ? emoji.managed : undefined,
154
+ };
155
+ }
156
+ sticker(sticker) {
157
+ return {
158
+ description: sticker.description ?? null,
159
+ id: sticker.id,
160
+ name: sticker.name,
161
+ guild_id: sticker.guildId ?? undefined,
162
+ sort_value: sticker.sortValue ?? undefined,
163
+ pack_id: sticker.packId ?? undefined,
164
+ format_type: sticker.format,
165
+ type: sticker.type,
166
+ tags: sticker.tags,
167
+ available: sticker.available ?? undefined,
168
+ user: sticker.user ? this.user(sticker.user) : undefined,
169
+ };
170
+ }
171
+ member(member) {
172
+ return {
173
+ avatar: member.avatar ?? null,
174
+ nick: member.nickname ?? null,
175
+ premium_since: member.premiumSince ? member.premiumSince.toISOString() : null,
176
+ pending: member.pending ?? undefined,
177
+ avatar_decoration_data: member.avatarDecorationData ? (0, replacer_1.toSnakeCase)(member.avatarDecorationData) : undefined,
178
+ banner: member.banner ?? null,
179
+ user: this.user(member.user),
180
+ deaf: member.voice.deaf ?? false,
181
+ mute: member.voice.mute ?? false,
182
+ roles: member.roles.cache.map((role) => role.id),
183
+ joined_at: member.joinedAt ? member.joinedAt.toISOString() : null,
184
+ flags: member.user.flags?.bitfield ?? 0,
185
+ communication_disabled_until: member.communicationDisabledUntil
186
+ ? member.communicationDisabledUntil.toISOString()
187
+ : null,
188
+ };
189
+ }
190
+ channel(channel) {
191
+ return {
192
+ id: channel.id,
193
+ position: 'position' in channel ? channel.position : 0,
194
+ flags: channel.flags?.bitfield ?? 0,
195
+ applied_tags: 'appliedTags' in channel ? channel.appliedTags : [],
196
+ name: 'name' in channel && channel.name ? channel.name : '',
197
+ type: channel.type,
198
+ topic: 'topic' in channel ? channel.topic : null,
199
+ nsfw: 'nsfw' in channel ? channel.nsfw : false,
200
+ default_forum_layout: 'defaultForumLayout' in channel ? channel.defaultForumLayout : undefined,
201
+ default_sort_order: 'defaultSortOrder' in channel ? channel.defaultSortOrder : undefined,
202
+ bitrate: 'bitrate' in channel && channel.bitrate ? channel.bitrate : undefined,
203
+ default_auto_archive_duration: 'defaultAutoArchiveDuration' in channel && channel.defaultAutoArchiveDuration
204
+ ? channel.defaultAutoArchiveDuration
205
+ : undefined,
206
+ last_message_id: 'lastMessageId' in channel && channel.lastMessageId ? channel.lastMessageId : null,
207
+ parent_id: 'parentId' in channel && channel.parentId ? channel.parentId : null,
208
+ default_thread_rate_limit_per_user: 'defaultThreadRateLimitPerUser' in channel && channel.defaultThreadRateLimitPerUser
209
+ ? channel.defaultThreadRateLimitPerUser
210
+ : undefined,
211
+ guild_id: 'guildId' in channel && channel.guildId ? channel.guildId : undefined,
212
+ icon: 'icon' in channel && channel.icon ? channel.icon : null,
213
+ rate_limit_per_user: 'rateLimitPerUser' in channel && channel.rateLimitPerUser ? channel.rateLimitPerUser : 0,
214
+ last_pin_timestamp: 'lastPinTimestamp' in channel && channel.lastPinTimestamp ? `${channel.lastPinTimestamp}` : null,
215
+ rtc_region: 'rtcRegion' in channel ? (channel.rtcRegion ?? null) : null,
216
+ user_limit: 'userLimit' in channel && channel.userLimit ? channel.userLimit : 0,
217
+ managed: 'manageable' in channel ? channel.manageable : undefined,
218
+ member_count: 'memberCount' in channel && channel.memberCount ? channel.memberCount : undefined,
219
+ message_count: 'messageCount' in channel && channel.messageCount ? channel.messageCount : undefined,
220
+ owner_id: 'ownerId' in channel && channel.ownerId ? channel.ownerId : undefined,
221
+ total_message_sent: 'totalMessageSent' in channel && channel.totalMessageSent ? channel.totalMessageSent : undefined,
222
+ video_quality_mode: 'videoQualityMode' in channel && channel.videoQualityMode ? channel.videoQualityMode : undefined,
223
+ permission_overwrites: 'permissionOverwrites' in channel
224
+ ? channel.permissionOverwrites.cache.map((perm) => ({
225
+ id: perm.id,
226
+ allow: perm.allow.bitfield.toString(),
227
+ deny: perm.deny.bitfield.toString(),
228
+ type: perm.type,
229
+ }))
230
+ : [],
231
+ default_reaction_emoji: 'defaultReactionEmoji' in channel && channel.defaultReactionEmoji
232
+ ? {
233
+ emoji_id: channel.defaultReactionEmoji.id,
234
+ emoji_name: channel.defaultReactionEmoji.name ?? null,
235
+ }
236
+ : undefined,
237
+ available_tags: 'availableTags' in channel
238
+ ? channel.availableTags.map((tag) => ({
239
+ emoji_id: tag.emoji.id,
240
+ emoji_name: tag.emoji.name ?? null,
241
+ id: tag.id,
242
+ moderated: tag.moderated,
243
+ name: tag.name,
244
+ }))
245
+ : [],
246
+ thread_metadata: {
247
+ archive_timestamp: 'createdAt' in channel ? channel.createdAt.toDateString() : '',
248
+ archived: 'archived' in channel && channel.archived ? channel.archived : false,
249
+ auto_archive_duration: 'autoArchiveDuration' in channel && channel.autoArchiveDuration
250
+ ? channel.autoArchiveDuration
251
+ : discord_js_1.ThreadAutoArchiveDuration.OneDay,
252
+ locked: 'locked' in channel && channel.locked ? channel.locked : false,
253
+ invitable: 'invitable' in channel && channel.invitable ? channel.invitable : undefined,
254
+ create_timestamp: 'createdAt' in channel && channel.createdAt ? channel.createdAt.toISOString() : undefined,
255
+ },
256
+ member: {
257
+ flags: 'flags' in channel ? (channel.flags?.bitfield ?? 0) : 0,
258
+ id: 'id' in channel ? channel.id : undefined,
259
+ join_timestamp: 'members' in channel && !(channel.members instanceof discord_js_1.Collection)
260
+ ? (channel.members.me?.joinedAt?.toISOString() ?? '')
261
+ : '',
262
+ member: 'members' in channel && !(channel.members instanceof discord_js_1.Collection) && channel.members.me?.guildMember
263
+ ? this.member(channel.members.me.guildMember)
264
+ : undefined,
265
+ user_id: 'members' in channel && !(channel.members instanceof discord_js_1.Collection) && channel.members.me?.user
266
+ ? channel.members.me.user.id
267
+ : undefined,
268
+ },
269
+ };
270
+ }
271
+ snapshot(snapshot) {
272
+ return {
273
+ message: {
274
+ attachments: snapshot.attachments.map((attachment) => this.attachment(attachment)),
275
+ content: snapshot.content,
276
+ components: snapshot.components.map((component) => component.toJSON()),
277
+ edited_timestamp: snapshot.createdAt ? snapshot.createdAt.toISOString() : null,
278
+ embeds: snapshot.embeds.map((embed) => embed.toJSON()),
279
+ mention_roles: snapshot.mentions.roles.map((role) => role.id),
280
+ timestamp: snapshot.createdAt.toISOString(),
281
+ type: snapshot.type,
282
+ sticker_items: snapshot.stickers.map((sticker) => this.sticker(sticker)),
283
+ flags: snapshot.flags.bitfield,
284
+ mentions: snapshot.mentions.users.map((user) => this.user(user)),
285
+ },
286
+ };
287
+ }
288
+ role(role) {
289
+ return {
290
+ color: role.color,
291
+ colors: (0, replacer_1.toSnakeCase)(role.colors),
292
+ id: role.id,
293
+ name: role.name,
294
+ permissions: role.permissions.bitfield.toString(),
295
+ position: role.position,
296
+ hoist: role.hoist,
297
+ flags: role.flags.bitfield,
298
+ managed: role.managed,
299
+ mentionable: role.mentionable,
300
+ icon: role.icon ?? undefined,
301
+ unicode_emoji: role.unicodeEmoji ?? undefined,
302
+ };
303
+ }
304
+ guild(guild) {
305
+ return {
306
+ id: guild.id,
307
+ name: guild.name,
308
+ icon: guild.icon ?? null,
309
+ // yeah, this is deprecated but the type requires it
310
+ // so ¯\_(ツ)_/¯
311
+ region: 'deprecated',
312
+ afk_channel_id: guild.afkChannelId ?? null,
313
+ afk_timeout: guild.afkTimeout,
314
+ banner: guild.banner ?? null,
315
+ application_id: guild.applicationId ?? null,
316
+ approximate_member_count: guild.approximateMemberCount ?? undefined,
317
+ approximate_presence_count: guild.approximatePresenceCount ?? undefined,
318
+ default_message_notifications: guild.defaultMessageNotifications,
319
+ description: guild.description ?? null,
320
+ discovery_splash: guild.discoverySplash ?? null,
321
+ emojis: guild.emojis.cache.map((emoji) => this.emoji(emoji)),
322
+ explicit_content_filter: guild.explicitContentFilter,
323
+ hub_type: null,
324
+ mfa_level: guild.mfaLevel,
325
+ nsfw_level: guild.nsfwLevel,
326
+ owner_id: guild.ownerId ?? null,
327
+ preferred_locale: guild.preferredLocale,
328
+ premium_subscription_count: guild.premiumSubscriptionCount ?? undefined,
329
+ premium_tier: guild.premiumTier,
330
+ premium_progress_bar_enabled: guild.premiumProgressBarEnabled,
331
+ public_updates_channel_id: guild.publicUpdatesChannelId ?? null,
332
+ roles: guild.roles.cache.map((role) => this.role(role)),
333
+ rules_channel_id: guild.rulesChannelId ?? null,
334
+ splash: guild.splash ?? null,
335
+ system_channel_id: guild.systemChannelId ?? null,
336
+ system_channel_flags: guild.systemChannelFlags.bitfield,
337
+ verification_level: guild.verificationLevel,
338
+ widget_enabled: guild.widgetEnabled ?? undefined,
339
+ widget_channel_id: guild.widgetChannelId ?? null,
340
+ safety_alerts_channel_id: guild.safetyAlertsChannelId ?? null,
341
+ stickers: guild.stickers.cache.map((sticker) => this.sticker(sticker)),
342
+ vanity_url_code: guild.vanityURLCode ?? null,
343
+ features: guild.features,
344
+ incidents_data: guild.incidentsData
345
+ ? {
346
+ dms_disabled_until: guild.incidentsData.dmsDisabledUntil
347
+ ? guild.incidentsData.dmsDisabledUntil.toISOString()
348
+ : null,
349
+ invites_disabled_until: guild.incidentsData.invitesDisabledUntil
350
+ ? guild.incidentsData.invitesDisabledUntil.toISOString()
351
+ : null,
352
+ dm_spam_detected_at: guild.incidentsData.dmSpamDetectedAt
353
+ ? guild.incidentsData.dmSpamDetectedAt.toISOString()
354
+ : null,
355
+ raid_detected_at: guild.incidentsData.raidDetectedAt
356
+ ? guild.incidentsData.raidDetectedAt.toISOString()
357
+ : null,
358
+ }
359
+ : null,
360
+ };
361
+ }
362
+ }
363
+ exports.apiUtils = new APIUtils();
364
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { ImageSize } from 'discord-api-types/v10';
2
+ import { ImageFormat } from 'discord-api-types/v10';
3
+ export declare const CDN_URL = "https://cdn.discordapp.com";
4
+ export declare enum StickerExtension {
5
+ PNG = "png",
6
+ JSON = "json",
7
+ GIF = "gif"
8
+ }
9
+ export interface CDNUrlOptions {
10
+ extension?: ImageFormat | (string & {});
11
+ size?: ImageSize;
12
+ forceStatic?: boolean;
13
+ }
14
+ export declare class BaseCDN {
15
+ readonly baseURL: string;
16
+ constructor(baseURL: string);
17
+ makeURL(route: string[], options?: CDNUrlOptions): string;
18
+ userAvatar(userId: string, avatar: string, options?: CDNUrlOptions): string;
19
+ defaultUserAvatar(index: number): string;
20
+ memberAvatar(guildId: string, userId: string, avatar: string, options?: CDNUrlOptions): string;
21
+ guildIcon(guildId: string, icon: string, options?: CDNUrlOptions): string;
22
+ avatarDecoration(avatarDecorationDataAsset: string): string;
23
+ sticket(stickerId: string, extension: StickerExtension): string;
24
+ roleIcon(roleId: string, icon: string, options?: CDNUrlOptions): string;
25
+ emoji(emojiId: string, options?: CDNUrlOptions): string;
26
+ guildTagBadge(guildId: string, guildTagBadge: string, options?: CDNUrlOptions): string;
27
+ }
28
+ export declare const cdn: BaseCDN;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cdn = exports.BaseCDN = exports.StickerExtension = exports.CDN_URL = void 0;
4
+ const v10_1 = require("discord-api-types/v10");
5
+ exports.CDN_URL = 'https://cdn.discordapp.com';
6
+ var StickerExtension;
7
+ (function (StickerExtension) {
8
+ StickerExtension["PNG"] = "png";
9
+ StickerExtension["JSON"] = "json";
10
+ StickerExtension["GIF"] = "gif";
11
+ })(StickerExtension || (exports.StickerExtension = StickerExtension = {}));
12
+ class BaseCDN {
13
+ constructor(baseURL) {
14
+ this.baseURL = baseURL;
15
+ }
16
+ makeURL(route, options = {}) {
17
+ const lastRoute = route.at(-1);
18
+ const isAnimated = lastRoute.includes('a_');
19
+ if (isAnimated) {
20
+ if (options.forceStatic)
21
+ options.extension = v10_1.ImageFormat.PNG;
22
+ else if (!options.extension)
23
+ options.extension = v10_1.ImageFormat.GIF;
24
+ }
25
+ options.extension ?? (options.extension = v10_1.ImageFormat.PNG);
26
+ const url = new URL(`${this.baseURL}/${route.join('/')}.${options.extension}`);
27
+ if (options.size)
28
+ url.searchParams.set('size', `${options.size}`);
29
+ return url.toString();
30
+ }
31
+ userAvatar(userId, avatar, options) {
32
+ return this.makeURL(['avatars', userId, avatar], options);
33
+ }
34
+ defaultUserAvatar(index) {
35
+ return this.makeURL(['embed', 'avatars', index.toString()], { extension: v10_1.ImageFormat.PNG });
36
+ }
37
+ memberAvatar(guildId, userId, avatar, options) {
38
+ return this.makeURL(['guilds', guildId, 'users', userId, 'avatars', avatar], options);
39
+ }
40
+ guildIcon(guildId, icon, options) {
41
+ return this.makeURL(['icons', guildId, icon], options);
42
+ }
43
+ avatarDecoration(avatarDecorationDataAsset) {
44
+ return this.makeURL(['avatar-decoration-presets', avatarDecorationDataAsset], { extension: v10_1.ImageFormat.PNG });
45
+ }
46
+ sticket(stickerId, extension) {
47
+ return this.makeURL(['stickers', stickerId], { extension });
48
+ }
49
+ roleIcon(roleId, icon, options) {
50
+ return this.makeURL(['role-icons', roleId, icon], options);
51
+ }
52
+ emoji(emojiId, options) {
53
+ return this.makeURL(['emojis', emojiId], options);
54
+ }
55
+ guildTagBadge(guildId, guildTagBadge, options) {
56
+ return this.makeURL(['guild-tag-badges', guildId, guildTagBadge], options);
57
+ }
58
+ }
59
+ exports.BaseCDN = BaseCDN;
60
+ exports.cdn = new BaseCDN(exports.CDN_URL);
61
+ //# sourceMappingURL=cdn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cdn.js","sourceRoot":"","sources":["../../src/utils/cdn.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { APIBasePartialChannel, APIChannel, APIDMChannel, APIGuildCategoryChannel, APIGuildForumChannel, APIGuildMediaChannel, APIGuildMember, APIGuildStageVoiceChannel, APIGuildVoiceChannel, APIInteractionDataResolvedGuildMember, APIMessage, APINewsChannel, APITextChannel, APIThreadChannel, GatewayGuildMemberAddDispatchData, GatewayGuildMemberUpdateDispatchData, GatewayMessageCreateDispatchData } from 'discord-api-types/v10';
2
+ import { ChannelType } from 'discord-api-types/v10';
3
+ export type APIAllGuildTextableChannels = APITextChannel | APIGuildVoiceChannel | APINewsChannel | APIThreadChannel;
4
+ export type APIAllTextableChannels = APITextChannel | APIGuildVoiceChannel | APIDMChannel | APINewsChannel | APIThreadChannel;
5
+ export type APIDirectoryChannel = APIBasePartialChannel & {
6
+ type: ChannelType.GuildDirectory;
7
+ };
8
+ export type AllAPIChannel = APIChannel | APIDirectoryChannel;
9
+ export type AllAPIGuildChannels = APIAllGuildTextableChannels | APIGuildStageVoiceChannel | APIGuildMediaChannel | APIGuildForumChannel | APIThreadChannel | APIGuildCategoryChannel | APINewsChannel | APIDirectoryChannel;
10
+ export type APIMessageData = (APIMessage & {
11
+ guild_id?: string;
12
+ member?: APIGuildMember;
13
+ system?: boolean;
14
+ user_id?: string;
15
+ }) | GatewayMessageCreateDispatchData;
16
+ export type GuildMemberData = APIGuildMember | Omit<APIGuildMember, 'user'> | GatewayGuildMemberUpdateDispatchData | GatewayGuildMemberAddDispatchData | APIInteractionDataResolvedGuildMember;
17
+ type AllChannelTypePicked = AllAPIChannel;
18
+ declare class BaseChannelUtils {
19
+ isStage(channel: AllChannelTypePicked): channel is APIGuildStageVoiceChannel;
20
+ isMedia(channel: AllChannelTypePicked): channel is APIGuildMediaChannel;
21
+ isDM(channel: AllChannelTypePicked): channel is APIDMChannel;
22
+ isForum(channel: AllChannelTypePicked): channel is APIGuildForumChannel;
23
+ isThread(channel: AllChannelTypePicked): channel is APIThreadChannel;
24
+ isDirectory(channel: AllChannelTypePicked): channel is APIDirectoryChannel;
25
+ isVoice(channel: AllChannelTypePicked): channel is APIGuildVoiceChannel;
26
+ isTextGuild(channel: AllChannelTypePicked): channel is APITextChannel;
27
+ isCategory(channel: AllChannelTypePicked): channel is APIGuildCategoryChannel;
28
+ isNews(channel: AllChannelTypePicked): channel is APINewsChannel;
29
+ isTextable(channel: AllChannelTypePicked): channel is APIAllTextableChannels;
30
+ isGuildTextable(channel: AllChannelTypePicked): channel is APIAllGuildTextableChannels;
31
+ isThreadOnly(channel: AllChannelTypePicked): channel is APIGuildForumChannel | APIGuildMediaChannel;
32
+ }
33
+ export declare const channelUtils: BaseChannelUtils;
34
+ export {};
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.channelUtils = void 0;
4
+ const v10_1 = require("discord-api-types/v10");
5
+ class BaseChannelUtils {
6
+ isStage(channel) {
7
+ return channel.type === v10_1.ChannelType.GuildStageVoice;
8
+ }
9
+ isMedia(channel) {
10
+ return channel.type === v10_1.ChannelType.GuildMedia;
11
+ }
12
+ isDM(channel) {
13
+ return [v10_1.ChannelType.DM, v10_1.ChannelType.GroupDM].includes(channel.type);
14
+ }
15
+ isForum(channel) {
16
+ return channel.type === v10_1.ChannelType.GuildForum;
17
+ }
18
+ isThread(channel) {
19
+ return [v10_1.ChannelType.PublicThread, v10_1.ChannelType.PrivateThread, v10_1.ChannelType.AnnouncementThread].includes(channel.type);
20
+ }
21
+ isDirectory(channel) {
22
+ return channel.type === v10_1.ChannelType.GuildDirectory;
23
+ }
24
+ isVoice(channel) {
25
+ return channel.type === v10_1.ChannelType.GuildVoice;
26
+ }
27
+ isTextGuild(channel) {
28
+ return channel.type === v10_1.ChannelType.GuildText;
29
+ }
30
+ isCategory(channel) {
31
+ return channel.type === v10_1.ChannelType.GuildCategory;
32
+ }
33
+ isNews(channel) {
34
+ return channel.type === v10_1.ChannelType.GuildAnnouncement;
35
+ }
36
+ isTextable(channel) {
37
+ return (this.isDM(channel) ||
38
+ this.isVoice(channel) ||
39
+ this.isNews(channel) ||
40
+ this.isTextGuild(channel) ||
41
+ this.isThread(channel));
42
+ }
43
+ isGuildTextable(channel) {
44
+ return !this.isDM(channel) && this.isTextable(channel);
45
+ }
46
+ isThreadOnly(channel) {
47
+ return this.isForum(channel) || this.isMedia(channel);
48
+ }
49
+ }
50
+ exports.channelUtils = new BaseChannelUtils();
51
+ //# sourceMappingURL=channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/utils/channel.ts"],"names":[],"mappings":";;;AAmBA,+CAAoD;AAkCpD,MAAM,gBAAgB;IACpB,OAAO,CAAC,OAA6B;QACnC,OAAO,OAAO,CAAC,IAAI,KAAK,iBAAW,CAAC,eAAe,CAAC;IACtD,CAAC;IAED,OAAO,CAAC,OAA6B;QACnC,OAAO,OAAO,CAAC,IAAI,KAAK,iBAAW,CAAC,UAAU,CAAC;IACjD,CAAC;IAED,IAAI,CAAC,OAA6B;QAChC,OAAO,CAAC,iBAAW,CAAC,EAAE,EAAE,iBAAW,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,CAAC,OAA6B;QACnC,OAAO,OAAO,CAAC,IAAI,KAAK,iBAAW,CAAC,UAAU,CAAC;IACjD,CAAC;IAED,QAAQ,CAAC,OAA6B;QACpC,OAAO,CAAC,iBAAW,CAAC,YAAY,EAAE,iBAAW,CAAC,aAAa,EAAE,iBAAW,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtH,CAAC;IAED,WAAW,CAAC,OAA6B;QACvC,OAAO,OAAO,CAAC,IAAI,KAAK,iBAAW,CAAC,cAAc,CAAC;IACrD,CAAC;IAED,OAAO,CAAC,OAA6B;QACnC,OAAO,OAAO,CAAC,IAAI,KAAK,iBAAW,CAAC,UAAU,CAAC;IACjD,CAAC;IAED,WAAW,CAAC,OAA6B;QACvC,OAAO,OAAO,CAAC,IAAI,KAAK,iBAAW,CAAC,SAAS,CAAC;IAChD,CAAC;IAED,UAAU,CAAC,OAA6B;QACtC,OAAO,OAAO,CAAC,IAAI,KAAK,iBAAW,CAAC,aAAa,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,OAA6B;QAClC,OAAO,OAAO,CAAC,IAAI,KAAK,iBAAW,CAAC,iBAAiB,CAAC;IACxD,CAAC;IAED,UAAU,CAAC,OAA6B;QACtC,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACpB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CACvB,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,OAA6B;QAC3C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,YAAY,CAAC,OAA6B;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;CACF;AAEY,QAAA,YAAY,GAAG,IAAI,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { APIEmbedField } from 'discord-api-types/v10';
2
+ export declare function calculateInlineIndex(fields: APIEmbedField[], currentFieldIndex: number): number;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calculateInlineIndex = calculateInlineIndex;
4
+ function calculateInlineIndex(fields, currentFieldIndex) {
5
+ const startIndex = currentFieldIndex - 1;
6
+ for (let i = startIndex; i >= 0; i--) {
7
+ const field = fields[i];
8
+ if (!field)
9
+ continue;
10
+ if (field.inline === false) {
11
+ const amount = startIndex - i;
12
+ return (amount % 3) + 1;
13
+ }
14
+ }
15
+ return (currentFieldIndex % 3) + 1;
16
+ }
17
+ //# sourceMappingURL=embeds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeds.js","sourceRoot":"","sources":["../../src/utils/embeds.ts"],"names":[],"mappings":";;AAEA,oDAcC;AAdD,SAAgB,oBAAoB,CAAC,MAAuB,EAAE,iBAAyB;IACrF,MAAM,UAAU,GAAG,iBAAiB,GAAG,CAAC,CAAC;IAEzC,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK;YAAE,SAAS;QAErB,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,UAAU,GAAG,CAAC,CAAC;YAC9B,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,CAAC,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { APIGuild } from 'discord-api-types/v10';
2
+ import type { CDNUrlOptions } from './cdn';
3
+ declare class GuildUtils {
4
+ iconURL(guild: Pick<APIGuild, 'id' | 'icon'>, options?: CDNUrlOptions): string | undefined;
5
+ guildTagBadge(guildId: string, guildTagBadge: string, options?: CDNUrlOptions): string;
6
+ roleIcon(roleId: string, icon: string, options?: CDNUrlOptions): string;
7
+ }
8
+ export declare const guildUtils: GuildUtils;
9
+ export {};
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.guildUtils = void 0;
4
+ const cdn_1 = require("./cdn");
5
+ class GuildUtils {
6
+ iconURL(guild, options) {
7
+ if (!guild.icon)
8
+ return;
9
+ return cdn_1.cdn.guildIcon(guild.id, guild.icon, options);
10
+ }
11
+ guildTagBadge(guildId, guildTagBadge, options) {
12
+ return cdn_1.cdn.guildTagBadge(guildId, guildTagBadge, options);
13
+ }
14
+ roleIcon(roleId, icon, options) {
15
+ return cdn_1.cdn.roleIcon(roleId, icon, options);
16
+ }
17
+ }
18
+ exports.guildUtils = new GuildUtils();
19
+ //# sourceMappingURL=guild.js.map