discord-message-transcript 1.3.1 → 1.3.2-dev.0.49
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/core/{imageToBase64.js → assetResolver/base64/imageToBase64.js} +3 -2
- package/dist/core/assetResolver/cdn/cdnCustomError.d.ts +16 -0
- package/dist/core/assetResolver/cdn/cdnCustomError.js +28 -0
- package/dist/core/assetResolver/cdn/cdnResolver.d.ts +3 -0
- package/dist/core/assetResolver/cdn/cdnResolver.js +90 -0
- package/dist/core/assetResolver/cdn/cloudinaryCdnResolver.d.ts +1 -0
- package/dist/core/assetResolver/cdn/cloudinaryCdnResolver.js +120 -0
- package/dist/core/assetResolver/cdn/sanitizeFileName.d.ts +1 -0
- package/dist/core/assetResolver/cdn/sanitizeFileName.js +17 -0
- package/dist/core/assetResolver/cdn/uploadCareCdnResolver.d.ts +1 -0
- package/dist/core/assetResolver/cdn/uploadCareCdnResolver.js +137 -0
- package/dist/core/assetResolver/cdn/validateCdnUrl.d.ts +1 -0
- package/dist/core/assetResolver/cdn/validateCdnUrl.js +8 -0
- package/dist/core/assetResolver/contants.d.ts +1 -0
- package/dist/core/assetResolver/contants.js +1 -0
- package/dist/core/assetResolver/index.d.ts +7 -0
- package/dist/core/assetResolver/index.js +22 -0
- package/dist/core/assetResolver/url/authorUrlResolver.d.ts +3 -0
- package/dist/core/assetResolver/url/authorUrlResolver.js +10 -0
- package/dist/core/assetResolver/url/imageUrlResolver.d.ts +4 -0
- package/dist/core/{resolveImageUrl.js → assetResolver/url/imageUrlResolver.js} +1 -1
- package/dist/core/assetResolver/url/messageUrlResolver.d.ts +3 -0
- package/dist/core/{urlResolver.js → assetResolver/url/messageUrlResolver.js} +11 -42
- package/dist/core/assetResolver/url/urlResolver.d.ts +3 -0
- package/dist/core/assetResolver/url/urlResolver.js +24 -0
- package/dist/core/{componentToJson.d.ts → discordParser/componentToJson.d.ts} +1 -1
- package/dist/core/discordParser/componentToJson.js +159 -0
- package/dist/core/discordParser/fetchMessages.d.ts +7 -0
- package/dist/core/discordParser/index.d.ts +4 -0
- package/dist/core/discordParser/index.js +33 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +9 -52
- package/dist/renderers/json/json.js +3 -4
- package/dist/types/types.d.ts +24 -2
- package/dist/utils/sleep.d.ts +1 -0
- package/dist/utils/sleep.js +3 -0
- package/package.json +2 -2
- package/dist/core/cdnResolver.d.ts +0 -5
- package/dist/core/cdnResolver.js +0 -213
- package/dist/core/componentToJson.js +0 -145
- package/dist/core/fetchMessages.d.ts +0 -19
- package/dist/core/resolveImageUrl.d.ts +0 -4
- package/dist/core/urlResolver.d.ts +0 -5
- /package/dist/core/{imageToBase64.d.ts → assetResolver/base64/imageToBase64.d.ts} +0 -0
- /package/dist/core/{limiter.d.ts → assetResolver/limiter.d.ts} +0 -0
- /package/dist/core/{limiter.js → assetResolver/limiter.js} +0 -0
- /package/dist/core/{fetchMessages.js → discordParser/fetchMessages.js} +0 -0
- /package/dist/core/{getMentions.d.ts → discordParser/getMentions.d.ts} +0 -0
- /package/dist/core/{getMentions.js → discordParser/getMentions.js} +0 -0
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { ComponentType } from "discord.js";
|
|
2
|
-
import { mapButtonStyle, mapSelectorType, mapSeparatorSpacing } from "./mappers.js";
|
|
3
|
-
import { JsonComponentType } from "discord-message-transcript-base";
|
|
4
|
-
import { isValidHexColor } from "discord-message-transcript-base";
|
|
5
|
-
export async function componentsToJson(components, options) {
|
|
6
|
-
const processedComponents = await Promise.all(components.filter(component => !(!options.includeV2Components && component.type != ComponentType.ActionRow))
|
|
7
|
-
.map(async (component) => {
|
|
8
|
-
switch (component.type) {
|
|
9
|
-
case ComponentType.ActionRow: {
|
|
10
|
-
const actionRowComponents = await Promise.all(component.components.filter(c => {
|
|
11
|
-
if (c.type == ComponentType.Button && !options.includeButtons)
|
|
12
|
-
return false;
|
|
13
|
-
if (c.type != ComponentType.Button && !options.includeComponents)
|
|
14
|
-
return false;
|
|
15
|
-
return true;
|
|
16
|
-
}).map(async (c) => {
|
|
17
|
-
if (c.type === ComponentType.Button) {
|
|
18
|
-
return {
|
|
19
|
-
type: JsonComponentType.Button,
|
|
20
|
-
style: mapButtonStyle(c.style),
|
|
21
|
-
label: c.label,
|
|
22
|
-
emoji: c.emoji?.name ? c.emoji.name : null,
|
|
23
|
-
url: c.url,
|
|
24
|
-
disabled: c.disabled,
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
else if (c.type === ComponentType.StringSelect) {
|
|
28
|
-
return {
|
|
29
|
-
type: JsonComponentType.StringSelect,
|
|
30
|
-
placeholder: c.placeholder,
|
|
31
|
-
disabled: c.disabled,
|
|
32
|
-
options: c.options.map(option => ({
|
|
33
|
-
label: option.label,
|
|
34
|
-
description: option.description ?? null,
|
|
35
|
-
emoji: option.emoji ? {
|
|
36
|
-
id: option.emoji.id ?? null,
|
|
37
|
-
name: option.emoji.name ?? null,
|
|
38
|
-
animated: option.emoji.animated ?? false,
|
|
39
|
-
} : null,
|
|
40
|
-
}))
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
return {
|
|
45
|
-
type: mapSelectorType(c.type),
|
|
46
|
-
placeholder: c.placeholder,
|
|
47
|
-
disabled: c.disabled,
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
}));
|
|
51
|
-
if (actionRowComponents.length > 0)
|
|
52
|
-
return { type: JsonComponentType.ActionRow, components: actionRowComponents };
|
|
53
|
-
return null;
|
|
54
|
-
}
|
|
55
|
-
case ComponentType.Container: {
|
|
56
|
-
const newOptions = { ...options, includeComponents: true, includeButtons: true };
|
|
57
|
-
const componentsJson = await componentsToJson(component.components, newOptions);
|
|
58
|
-
return {
|
|
59
|
-
type: JsonComponentType.Container,
|
|
60
|
-
components: componentsJson.filter(isJsonComponentInContainer), // Input components that are container-safe must always produce container-safe output.
|
|
61
|
-
hexAccentColor: isValidHexColor(component.hexAccentColor, false),
|
|
62
|
-
spoiler: component.spoiler,
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
case ComponentType.File: {
|
|
66
|
-
return {
|
|
67
|
-
type: JsonComponentType.File,
|
|
68
|
-
fileName: component.data.name ?? null,
|
|
69
|
-
size: component.data.size ?? 0,
|
|
70
|
-
url: component.file.url,
|
|
71
|
-
spoiler: component.spoiler,
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
case ComponentType.MediaGallery: {
|
|
75
|
-
const mediaItems = component.items.map(item => {
|
|
76
|
-
return {
|
|
77
|
-
media: { url: item.media.url },
|
|
78
|
-
spoiler: item.spoiler,
|
|
79
|
-
};
|
|
80
|
-
});
|
|
81
|
-
return {
|
|
82
|
-
type: JsonComponentType.MediaGallery,
|
|
83
|
-
items: mediaItems,
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
case ComponentType.Section: {
|
|
87
|
-
let accessoryJson;
|
|
88
|
-
if (component.accessory.type === ComponentType.Button) {
|
|
89
|
-
accessoryJson = {
|
|
90
|
-
type: JsonComponentType.Button,
|
|
91
|
-
style: mapButtonStyle(component.accessory.style),
|
|
92
|
-
label: component.accessory.label,
|
|
93
|
-
emoji: component.accessory.emoji?.name ? component.accessory.emoji.name : null,
|
|
94
|
-
url: component.accessory.url,
|
|
95
|
-
disabled: component.accessory.disabled,
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
else if (component.accessory.type === ComponentType.Thumbnail) {
|
|
99
|
-
accessoryJson = {
|
|
100
|
-
type: JsonComponentType.Thumbnail,
|
|
101
|
-
media: {
|
|
102
|
-
url: component.accessory.media.url,
|
|
103
|
-
},
|
|
104
|
-
spoiler: component.accessory.spoiler,
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
else
|
|
108
|
-
return null;
|
|
109
|
-
const sectionComponents = component.components.map(c => ({
|
|
110
|
-
type: JsonComponentType.TextDisplay,
|
|
111
|
-
content: c.content,
|
|
112
|
-
}));
|
|
113
|
-
return {
|
|
114
|
-
type: JsonComponentType.Section,
|
|
115
|
-
accessory: accessoryJson,
|
|
116
|
-
components: sectionComponents,
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
case ComponentType.Separator: {
|
|
120
|
-
return {
|
|
121
|
-
type: JsonComponentType.Separator,
|
|
122
|
-
spacing: mapSeparatorSpacing(component.spacing),
|
|
123
|
-
divider: component.divider,
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
case ComponentType.TextDisplay: {
|
|
127
|
-
return {
|
|
128
|
-
type: JsonComponentType.TextDisplay,
|
|
129
|
-
content: component.content,
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
default:
|
|
133
|
-
return null;
|
|
134
|
-
}
|
|
135
|
-
}));
|
|
136
|
-
return processedComponents.filter(c => c != null);
|
|
137
|
-
}
|
|
138
|
-
export function isJsonComponentInContainer(component) {
|
|
139
|
-
return (component.type == JsonComponentType.ActionRow ||
|
|
140
|
-
component.type == JsonComponentType.File ||
|
|
141
|
-
component.type == JsonComponentType.MediaGallery ||
|
|
142
|
-
component.type == JsonComponentType.Section ||
|
|
143
|
-
component.type == JsonComponentType.Separator ||
|
|
144
|
-
component.type == JsonComponentType.TextDisplay);
|
|
145
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { TextBasedChannel } from "discord.js";
|
|
2
|
-
import { JsonAuthor, JsonMessage, TranscriptOptionsBase } from "discord-message-transcript-base";
|
|
3
|
-
import { MapMentions } from "@/types";
|
|
4
|
-
export declare function fetchMessages(ctx: FetchMessagesContext): Promise<{
|
|
5
|
-
messages: JsonMessage[];
|
|
6
|
-
end: boolean;
|
|
7
|
-
newLastMessageId: string | undefined;
|
|
8
|
-
}>;
|
|
9
|
-
export type FetchMessagesContext = {
|
|
10
|
-
channel: TextBasedChannel;
|
|
11
|
-
options: TranscriptOptionsBase;
|
|
12
|
-
transcriptState: TranscriptState;
|
|
13
|
-
lastMessageId: string | undefined;
|
|
14
|
-
};
|
|
15
|
-
type TranscriptState = {
|
|
16
|
-
authors: Map<string, JsonAuthor>;
|
|
17
|
-
mentions: MapMentions;
|
|
18
|
-
};
|
|
19
|
-
export {};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { JsonAttachment, TranscriptOptionsBase } from "discord-message-transcript-base";
|
|
2
|
-
import { safeUrlReturn } from "@/types";
|
|
3
|
-
export declare function resolveImageURL(url: string, options: TranscriptOptionsBase, canReturnNull: false, attachments?: JsonAttachment[]): Promise<safeUrlReturn>;
|
|
4
|
-
export declare function resolveImageURL(url: string | null, options: TranscriptOptionsBase, canReturnNull: true, attachments?: JsonAttachment[]): Promise<safeUrlReturn | null>;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { JsonAuthor, JsonMessage, TranscriptOptionsBase } from "discord-message-transcript-base";
|
|
2
|
-
import { CDNOptions, safeUrlReturn } from "@/types";
|
|
3
|
-
export declare function urlResolver(safeUrlObject: safeUrlReturn, options: TranscriptOptionsBase, cdnOptions: CDNOptions | null, urlCache: Map<string, Promise<string>>): Promise<string>;
|
|
4
|
-
export declare function messagesUrlResolver(messages: JsonMessage[], options: TranscriptOptionsBase, cdnOptions: CDNOptions | null, urlCache: Map<string, Promise<string>>): Promise<JsonMessage[]>;
|
|
5
|
-
export declare function authorUrlResolver(authors: Map<string, JsonAuthor>, options: TranscriptOptionsBase, cdnOptions: CDNOptions | null, urlCache: Map<string, Promise<string>>): Promise<JsonAuthor[]>;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|