discord.js-html-transcript 4.0.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.
- package/LICENSE +201 -0
- package/README.md +470 -0
- package/dist/downloader/assets.d.ts +18 -0
- package/dist/downloader/assets.js +53 -0
- package/dist/downloader/assets.js.map +1 -0
- package/dist/downloader/images.d.ts +28 -0
- package/dist/downloader/images.js +119 -0
- package/dist/downloader/images.js.map +1 -0
- package/dist/generator/index.d.ts +24 -0
- package/dist/generator/index.js +112 -0
- package/dist/generator/index.js.map +1 -0
- package/dist/generator/renderers/attachment.d.ts +23 -0
- package/dist/generator/renderers/attachment.js +154 -0
- package/dist/generator/renderers/attachment.js.map +1 -0
- package/dist/generator/renderers/components/Attachment Gallery.d.ts +9 -0
- package/dist/generator/renderers/components/Attachment Gallery.js +26 -0
- package/dist/generator/renderers/components/Attachment Gallery.js.map +1 -0
- package/dist/generator/renderers/components/Button.d.ts +9 -0
- package/dist/generator/renderers/components/Button.js +23 -0
- package/dist/generator/renderers/components/Button.js.map +1 -0
- package/dist/generator/renderers/components/Container.d.ts +6 -0
- package/dist/generator/renderers/components/Container.js +26 -0
- package/dist/generator/renderers/components/Container.js.map +1 -0
- package/dist/generator/renderers/components/Media Gallery.d.ts +8 -0
- package/dist/generator/renderers/components/Media Gallery.js +45 -0
- package/dist/generator/renderers/components/Media Gallery.js.map +1 -0
- package/dist/generator/renderers/components/Select Menu.d.ts +10 -0
- package/dist/generator/renderers/components/Select Menu.js +34 -0
- package/dist/generator/renderers/components/Select Menu.js.map +1 -0
- package/dist/generator/renderers/components/Spacing.d.ts +7 -0
- package/dist/generator/renderers/components/Spacing.js +17 -0
- package/dist/generator/renderers/components/Spacing.js.map +1 -0
- package/dist/generator/renderers/components/Thumbnail.d.ts +7 -0
- package/dist/generator/renderers/components/Thumbnail.js +21 -0
- package/dist/generator/renderers/components/Thumbnail.js.map +1 -0
- package/dist/generator/renderers/components/poll.d.ts +7 -0
- package/dist/generator/renderers/components/poll.js +78 -0
- package/dist/generator/renderers/components/poll.js.map +1 -0
- package/dist/generator/renderers/components/section/Section.d.ts +11 -0
- package/dist/generator/renderers/components/section/Section.js +21 -0
- package/dist/generator/renderers/components/section/Section.js.map +1 -0
- package/dist/generator/renderers/components/section/SectionAccessory.d.ts +6 -0
- package/dist/generator/renderers/components/section/SectionAccessory.js +20 -0
- package/dist/generator/renderers/components/section/SectionAccessory.js.map +1 -0
- package/dist/generator/renderers/components/section/SectionContent.d.ts +6 -0
- package/dist/generator/renderers/components/section/SectionContent.js +21 -0
- package/dist/generator/renderers/components/section/SectionContent.js.map +1 -0
- package/dist/generator/renderers/components/styles.d.ts +21 -0
- package/dist/generator/renderers/components/styles.js +1639 -0
- package/dist/generator/renderers/components/styles.js.map +1 -0
- package/dist/generator/renderers/components/utils.d.ts +36 -0
- package/dist/generator/renderers/components/utils.js +98 -0
- package/dist/generator/renderers/components/utils.js.map +1 -0
- package/dist/generator/renderers/components/voice.d.ts +5 -0
- package/dist/generator/renderers/components/voice.js +50 -0
- package/dist/generator/renderers/components/voice.js.map +1 -0
- package/dist/generator/renderers/components.d.ts +13 -0
- package/dist/generator/renderers/components.js +78 -0
- package/dist/generator/renderers/components.js.map +1 -0
- package/dist/generator/renderers/content.d.ts +26 -0
- package/dist/generator/renderers/content.js +396 -0
- package/dist/generator/renderers/content.js.map +1 -0
- package/dist/generator/renderers/embed.d.ts +59 -0
- package/dist/generator/renderers/embed.js +216 -0
- package/dist/generator/renderers/embed.js.map +1 -0
- package/dist/generator/renderers/message.d.ts +7 -0
- package/dist/generator/renderers/message.js +106 -0
- package/dist/generator/renderers/message.js.map +1 -0
- package/dist/generator/renderers/reply.d.ts +7 -0
- package/dist/generator/renderers/reply.js +74 -0
- package/dist/generator/renderers/reply.js.map +1 -0
- package/dist/generator/renderers/systemMessage.d.ts +15 -0
- package/dist/generator/renderers/systemMessage.js +168 -0
- package/dist/generator/renderers/systemMessage.js.map +1 -0
- package/dist/generator/transcript.d.ts +3 -0
- package/dist/generator/transcript.js +148 -0
- package/dist/generator/transcript.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.js +159 -0
- package/dist/index.js.map +1 -0
- package/dist/options.d.ts +37 -0
- package/dist/options.js +89 -0
- package/dist/options.js.map +1 -0
- package/dist/static/client.d.ts +6 -0
- package/dist/static/client.js +626 -0
- package/dist/static/client.js.map +1 -0
- package/dist/types.d.ts +193 -0
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/buildProfiles.d.ts +14 -0
- package/dist/utils/buildProfiles.js +136 -0
- package/dist/utils/buildProfiles.js.map +1 -0
- package/dist/utils/embeds.d.ts +2 -0
- package/dist/utils/embeds.js +17 -0
- package/dist/utils/embeds.js.map +1 -0
- package/dist/utils/extend.d.ts +8 -0
- package/dist/utils/extend.js +8 -0
- package/dist/utils/extend.js.map +1 -0
- package/dist/utils/utils.d.ts +9 -0
- package/dist/utils/utils.js +44 -0
- package/dist/utils/utils.js.map +1 -0
- package/package.json +100 -0
|
@@ -0,0 +1,396 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.RenderType = void 0;
|
|
7
|
+
exports.default = MessageContent;
|
|
8
|
+
exports.MessageSingleASTNode = MessageSingleASTNode;
|
|
9
|
+
exports.getChannelType = getChannelType;
|
|
10
|
+
const discord_components_react_1 = require("@derockdev/discord-components-react");
|
|
11
|
+
const discord_markdown_parser_1 = __importDefault(require("discord-markdown-parser"));
|
|
12
|
+
const discord_js_1 = require("discord.js");
|
|
13
|
+
const react_1 = __importDefault(require("react"));
|
|
14
|
+
const utils_1 = require("../../utils/utils");
|
|
15
|
+
var RenderType;
|
|
16
|
+
(function (RenderType) {
|
|
17
|
+
RenderType[RenderType["EMBED"] = 0] = "EMBED";
|
|
18
|
+
RenderType[RenderType["REPLY"] = 1] = "REPLY";
|
|
19
|
+
RenderType[RenderType["NORMAL"] = 2] = "NORMAL";
|
|
20
|
+
RenderType[RenderType["WEBHOOK"] = 3] = "WEBHOOK";
|
|
21
|
+
})(RenderType || (exports.RenderType = RenderType = {}));
|
|
22
|
+
const TIMESTAMP_LOCALE = 'en-GB';
|
|
23
|
+
const DISCORD_ANSI_FOREGROUND = {
|
|
24
|
+
30: '#4e5058',
|
|
25
|
+
31: '#dc322f',
|
|
26
|
+
32: '#859900',
|
|
27
|
+
33: '#b58900',
|
|
28
|
+
34: '#268bd2',
|
|
29
|
+
35: '#d33682',
|
|
30
|
+
36: '#2aa198',
|
|
31
|
+
37: '#ffffff',
|
|
32
|
+
90: '#4e5058',
|
|
33
|
+
91: '#dc322f',
|
|
34
|
+
92: '#859900',
|
|
35
|
+
93: '#b58900',
|
|
36
|
+
94: '#268bd2',
|
|
37
|
+
95: '#d33682',
|
|
38
|
+
96: '#2aa198',
|
|
39
|
+
97: '#ffffff',
|
|
40
|
+
};
|
|
41
|
+
const DISCORD_ANSI_BACKGROUND = {
|
|
42
|
+
40: '#002b36',
|
|
43
|
+
41: '#cb4b16',
|
|
44
|
+
42: '#586e75',
|
|
45
|
+
43: '#657b83',
|
|
46
|
+
44: '#839496',
|
|
47
|
+
45: '#6c71c4',
|
|
48
|
+
46: '#93a1a1',
|
|
49
|
+
47: '#fdf6e3',
|
|
50
|
+
100: '#002b36',
|
|
51
|
+
101: '#cb4b16',
|
|
52
|
+
102: '#586e75',
|
|
53
|
+
103: '#657b83',
|
|
54
|
+
104: '#839496',
|
|
55
|
+
105: '#6c71c4',
|
|
56
|
+
106: '#93a1a1',
|
|
57
|
+
107: '#fdf6e3',
|
|
58
|
+
};
|
|
59
|
+
const ANSI_ESCAPE_SEQUENCE = /\u001b\[([0-9;]*)m/g;
|
|
60
|
+
function getDefaultAnsiState() {
|
|
61
|
+
return {
|
|
62
|
+
backgroundColor: undefined,
|
|
63
|
+
bold: false,
|
|
64
|
+
color: undefined,
|
|
65
|
+
underline: false,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function parseAnsiCodes(sequence) {
|
|
69
|
+
if (!sequence) {
|
|
70
|
+
return [0];
|
|
71
|
+
}
|
|
72
|
+
return sequence
|
|
73
|
+
.split(';')
|
|
74
|
+
.map((part) => Number.parseInt(part, 10))
|
|
75
|
+
.filter((part) => Number.isFinite(part));
|
|
76
|
+
}
|
|
77
|
+
function applyAnsiCodes(state, codes) {
|
|
78
|
+
const nextState = Object.assign({}, state);
|
|
79
|
+
for (const code of codes.length > 0 ? codes : [0]) {
|
|
80
|
+
switch (code) {
|
|
81
|
+
case 0:
|
|
82
|
+
Object.assign(nextState, getDefaultAnsiState());
|
|
83
|
+
break;
|
|
84
|
+
case 1:
|
|
85
|
+
nextState.bold = true;
|
|
86
|
+
break;
|
|
87
|
+
case 4:
|
|
88
|
+
nextState.underline = true;
|
|
89
|
+
break;
|
|
90
|
+
case 22:
|
|
91
|
+
nextState.bold = false;
|
|
92
|
+
break;
|
|
93
|
+
case 24:
|
|
94
|
+
nextState.underline = false;
|
|
95
|
+
break;
|
|
96
|
+
case 39:
|
|
97
|
+
nextState.color = undefined;
|
|
98
|
+
break;
|
|
99
|
+
case 49:
|
|
100
|
+
nextState.backgroundColor = undefined;
|
|
101
|
+
break;
|
|
102
|
+
default:
|
|
103
|
+
if (DISCORD_ANSI_FOREGROUND[code]) {
|
|
104
|
+
nextState.color = DISCORD_ANSI_FOREGROUND[code];
|
|
105
|
+
}
|
|
106
|
+
else if (DISCORD_ANSI_BACKGROUND[code]) {
|
|
107
|
+
nextState.backgroundColor = DISCORD_ANSI_BACKGROUND[code];
|
|
108
|
+
}
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return nextState;
|
|
113
|
+
}
|
|
114
|
+
function getAnsiSegments(content) {
|
|
115
|
+
var _a;
|
|
116
|
+
const segments = [];
|
|
117
|
+
let state = getDefaultAnsiState();
|
|
118
|
+
let lastIndex = 0;
|
|
119
|
+
ANSI_ESCAPE_SEQUENCE.lastIndex = 0;
|
|
120
|
+
for (let match = ANSI_ESCAPE_SEQUENCE.exec(content); match !== null; match = ANSI_ESCAPE_SEQUENCE.exec(content)) {
|
|
121
|
+
if (match.index > lastIndex) {
|
|
122
|
+
segments.push({
|
|
123
|
+
state: Object.assign({}, state),
|
|
124
|
+
text: content.slice(lastIndex, match.index),
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
state = applyAnsiCodes(state, parseAnsiCodes((_a = match[1]) !== null && _a !== void 0 ? _a : ''));
|
|
128
|
+
lastIndex = match.index + match[0].length;
|
|
129
|
+
}
|
|
130
|
+
if (lastIndex < content.length) {
|
|
131
|
+
segments.push({
|
|
132
|
+
state: Object.assign({}, state),
|
|
133
|
+
text: content.slice(lastIndex),
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
return segments;
|
|
137
|
+
}
|
|
138
|
+
function getAnsiStyle(state) {
|
|
139
|
+
return Object.assign(Object.assign(Object.assign(Object.assign({}, (state.backgroundColor ? { backgroundColor: state.backgroundColor } : {})), (state.bold ? { fontWeight: 700 } : {})), (state.color ? { color: state.color } : {})), (state.underline ? { textDecoration: 'underline' } : {}));
|
|
140
|
+
}
|
|
141
|
+
function DiscordAnsiCodeBlock({ content }) {
|
|
142
|
+
const segments = getAnsiSegments(content);
|
|
143
|
+
return (react_1.default.createElement("pre", { className: "discord-code-block-pre discord-code-block-pre--multiline discord-ansi-code-block" },
|
|
144
|
+
react_1.default.createElement("code", { className: "discord-ansi-code" }, segments.map((segment, index) => segment.text.length > 0 ? (react_1.default.createElement("span", { key: index, style: getAnsiStyle(segment.state) }, segment.text)) : null))));
|
|
145
|
+
}
|
|
146
|
+
function formatTwoDigitDate(date) {
|
|
147
|
+
return new Intl.DateTimeFormat(TIMESTAMP_LOCALE, {
|
|
148
|
+
day: '2-digit',
|
|
149
|
+
month: '2-digit',
|
|
150
|
+
year: 'numeric',
|
|
151
|
+
}).format(date);
|
|
152
|
+
}
|
|
153
|
+
function formatTime(date, includeSeconds = false) {
|
|
154
|
+
return new Intl.DateTimeFormat(TIMESTAMP_LOCALE, Object.assign(Object.assign({ hour: '2-digit', minute: '2-digit' }, (includeSeconds ? { second: '2-digit' } : {})), { hour12: false })).format(date);
|
|
155
|
+
}
|
|
156
|
+
function formatLongDate(date, withWeekday = false) {
|
|
157
|
+
return new Intl.DateTimeFormat(TIMESTAMP_LOCALE, Object.assign(Object.assign({}, (withWeekday ? { weekday: 'long' } : {})), { day: 'numeric', month: 'long', year: 'numeric' })).format(date);
|
|
158
|
+
}
|
|
159
|
+
function formatRelativeTime(target) {
|
|
160
|
+
const differenceMs = target.getTime() - Date.now();
|
|
161
|
+
const isFuture = differenceMs > 0;
|
|
162
|
+
const absoluteMs = Math.abs(differenceMs);
|
|
163
|
+
const minute = 60 * 1000;
|
|
164
|
+
const hour = 60 * minute;
|
|
165
|
+
const day = 24 * hour;
|
|
166
|
+
const month = 30 * day;
|
|
167
|
+
const year = 365 * day;
|
|
168
|
+
const toLabel = (value, unit) => {
|
|
169
|
+
const label = `${value} ${unit}${value === 1 ? '' : 's'}`;
|
|
170
|
+
return isFuture ? `in ${label}` : `${label} ago`;
|
|
171
|
+
};
|
|
172
|
+
if (absoluteMs < minute) {
|
|
173
|
+
const seconds = Math.max(1, Math.floor(absoluteMs / 1000));
|
|
174
|
+
return toLabel(seconds, 'second');
|
|
175
|
+
}
|
|
176
|
+
if (absoluteMs < hour) {
|
|
177
|
+
return toLabel(Math.floor(absoluteMs / minute), 'minute');
|
|
178
|
+
}
|
|
179
|
+
if (absoluteMs < day) {
|
|
180
|
+
return toLabel(Math.floor(absoluteMs / hour), 'hour');
|
|
181
|
+
}
|
|
182
|
+
if (absoluteMs < month) {
|
|
183
|
+
return toLabel(Math.max(1, Math.round(absoluteMs / day)), 'day');
|
|
184
|
+
}
|
|
185
|
+
if (absoluteMs < year) {
|
|
186
|
+
return toLabel(Math.max(1, Math.round(absoluteMs / month)), 'month');
|
|
187
|
+
}
|
|
188
|
+
return toLabel(Math.max(1, Math.round(absoluteMs / year)), 'year');
|
|
189
|
+
}
|
|
190
|
+
function formatDiscordTimestamp(timestamp, format) {
|
|
191
|
+
const date = new Date(timestamp);
|
|
192
|
+
switch (format) {
|
|
193
|
+
case 't':
|
|
194
|
+
return formatTime(date);
|
|
195
|
+
case 'T':
|
|
196
|
+
return formatTime(date, true);
|
|
197
|
+
case 'd':
|
|
198
|
+
return formatTwoDigitDate(date);
|
|
199
|
+
case 'D':
|
|
200
|
+
return formatLongDate(date);
|
|
201
|
+
case 'f':
|
|
202
|
+
return `${formatLongDate(date)} ${formatTime(date)}`;
|
|
203
|
+
case 'F':
|
|
204
|
+
return `${formatLongDate(date, true)} ${formatTime(date)}`;
|
|
205
|
+
case 'R':
|
|
206
|
+
return formatRelativeTime(date);
|
|
207
|
+
default:
|
|
208
|
+
return `${formatLongDate(date, true)} ${formatTime(date)}`;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
async function MessageContent({ content, context }) {
|
|
212
|
+
if (context.type === RenderType.REPLY && content.length > 180)
|
|
213
|
+
content = content.slice(0, 180) + '...';
|
|
214
|
+
const processedContent = content
|
|
215
|
+
.replace(/^(\s{1,})- /gm, (_match, p1) => p1.replace(/ /g, '\u00A0') + '\u25E6 ')
|
|
216
|
+
.replace(/^- /gm, '\u2022 ')
|
|
217
|
+
.replace(/(?<!\/)(?:^|\s)(discord\.gg\/\S+)/gi, (match, invite) => match.replace(invite, `https://${invite}`));
|
|
218
|
+
const parsed = (0, discord_markdown_parser_1.default)(processedContent, 'extended');
|
|
219
|
+
const isOnlyEmojis = parsed.every((node) => ['emoji', 'twemoji'].includes(node.type) || (node.type === 'text' && node.content.trim().length === 0));
|
|
220
|
+
if (isOnlyEmojis) {
|
|
221
|
+
const emojis = parsed.filter((node) => ['emoji', 'twemoji'].includes(node.type));
|
|
222
|
+
if (emojis.length <= 25) {
|
|
223
|
+
context._internal = {
|
|
224
|
+
largeEmojis: true,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
return react_1.default.createElement(MessageASTNodes, { nodes: parsed, context: context });
|
|
229
|
+
}
|
|
230
|
+
async function MessageASTNodes({ nodes, context, }) {
|
|
231
|
+
if (Array.isArray(nodes)) {
|
|
232
|
+
return (react_1.default.createElement(react_1.default.Fragment, null, nodes.map((node, i) => (react_1.default.createElement(MessageSingleASTNode, { node: node, context: context, key: i })))));
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
return react_1.default.createElement(MessageSingleASTNode, { node: nodes, context: context });
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
async function MessageSingleASTNode({ node, context }) {
|
|
239
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
240
|
+
if (!node)
|
|
241
|
+
return null;
|
|
242
|
+
const type = node.type;
|
|
243
|
+
switch (type) {
|
|
244
|
+
case 'text':
|
|
245
|
+
return node.content;
|
|
246
|
+
case 'link':
|
|
247
|
+
return (react_1.default.createElement("a", { href: node.target },
|
|
248
|
+
react_1.default.createElement(MessageASTNodes, { nodes: node.content, context: context })));
|
|
249
|
+
case 'url':
|
|
250
|
+
case 'autolink': {
|
|
251
|
+
const url = (_a = node.target) !== null && _a !== void 0 ? _a : (_c = (_b = node.content) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.content;
|
|
252
|
+
const text = node.target ? node.content : url;
|
|
253
|
+
if (typeof url === 'string' && (url.includes('discord.gg/') || url.includes('discord.com/invite/'))) {
|
|
254
|
+
const code = url.split('/').pop();
|
|
255
|
+
if (code && context.callbacks.resolveInvite) {
|
|
256
|
+
const invite = await context.callbacks.resolveInvite(code);
|
|
257
|
+
if (invite) {
|
|
258
|
+
const inviteIcon = invite.icon &&
|
|
259
|
+
((_d = (await context.callbacks.resolveTranscriptAssetUrl({
|
|
260
|
+
kind: 'invite-icon',
|
|
261
|
+
url: invite.icon,
|
|
262
|
+
}))) !== null && _d !== void 0 ? _d : invite.icon);
|
|
263
|
+
return (react_1.default.createElement("div", { style: { marginTop: '4px' } },
|
|
264
|
+
react_1.default.createElement("a", { href: url, target: "_blank", rel: "noreferrer", style: { color: '#00a8fc', textDecoration: 'none' } }, typeof text === 'string' ? text : react_1.default.createElement(MessageASTNodes, { nodes: text, context: context })),
|
|
265
|
+
react_1.default.createElement(discord_components_react_1.DiscordInvite, { url: invite.url, name: invite.name, icon: inviteIcon !== null && inviteIcon !== void 0 ? inviteIcon : undefined, online: invite.online, members: invite.members, joinBtn: "Go to Server", inviteTitle: "YOU'VE BEEN INVITED TO JOIN A SERVER" })));
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
return (react_1.default.createElement("div", { style: { marginTop: '4px' } },
|
|
269
|
+
react_1.default.createElement("a", { href: url, target: "_blank", rel: "noreferrer", style: { color: '#00a8fc', textDecoration: 'none' } }, typeof text === 'string' ? text : react_1.default.createElement(MessageASTNodes, { nodes: text, context: context })),
|
|
270
|
+
react_1.default.createElement("div", { className: "discord-invite", style: { marginTop: '4px' } },
|
|
271
|
+
react_1.default.createElement("div", { className: "discord-invite-header" }, "You sent an invite, but..."),
|
|
272
|
+
react_1.default.createElement("div", { style: { display: 'flex', alignItems: 'center', gap: '12px', padding: '4px 0' } },
|
|
273
|
+
react_1.default.createElement("span", { style: { fontSize: '24px' } }, "\u2709\uFE0F"),
|
|
274
|
+
react_1.default.createElement("div", null,
|
|
275
|
+
react_1.default.createElement("div", { style: { color: '#f23f42', fontWeight: 700, fontSize: '16px' } }, "Invalid Invite"),
|
|
276
|
+
react_1.default.createElement("div", { style: { color: '#b5bac1', fontSize: '14px' } }, "Try sending a new invite!"))))));
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
return (react_1.default.createElement("a", { href: url, target: "_blank", rel: "noreferrer", style: { color: '#00a8fc', textDecoration: 'none' } }, typeof text === 'string' ? text : react_1.default.createElement(MessageASTNodes, { nodes: text, context: context })));
|
|
281
|
+
}
|
|
282
|
+
case 'blockQuote':
|
|
283
|
+
if (context.type === RenderType.REPLY) {
|
|
284
|
+
return react_1.default.createElement(MessageASTNodes, { nodes: node.content, context: context });
|
|
285
|
+
}
|
|
286
|
+
return (react_1.default.createElement(discord_components_react_1.DiscordQuote, null,
|
|
287
|
+
react_1.default.createElement(MessageASTNodes, { nodes: node.content, context: context })));
|
|
288
|
+
case 'br':
|
|
289
|
+
case 'newline':
|
|
290
|
+
if (context.type === RenderType.REPLY)
|
|
291
|
+
return ' ';
|
|
292
|
+
return react_1.default.createElement("br", null);
|
|
293
|
+
case 'channel': {
|
|
294
|
+
const id = node.id;
|
|
295
|
+
const channel = await context.callbacks.resolveChannel(id);
|
|
296
|
+
return (react_1.default.createElement(discord_components_react_1.DiscordMention, { type: channel ? (channel.isDMBased() ? 'channel' : getChannelType(channel.type)) : 'channel' }, channel ? (channel.isDMBased() ? 'DM Channel' : channel.name) : `<#${id}>`));
|
|
297
|
+
}
|
|
298
|
+
case 'role': {
|
|
299
|
+
const id = node.id;
|
|
300
|
+
const role = await context.callbacks.resolveRole(id);
|
|
301
|
+
return (react_1.default.createElement(discord_components_react_1.DiscordMention, { type: "role", color: context.type === RenderType.REPLY ? undefined : role === null || role === void 0 ? void 0 : role.hexColor }, role ? role.name : `deleted-role`));
|
|
302
|
+
}
|
|
303
|
+
case 'user': {
|
|
304
|
+
const id = node.id;
|
|
305
|
+
const user = await context.callbacks.resolveUser(id);
|
|
306
|
+
return react_1.default.createElement(discord_components_react_1.DiscordMention, { type: "user" }, user ? ((_e = user.displayName) !== null && _e !== void 0 ? _e : user.username) : `Unknown User`);
|
|
307
|
+
}
|
|
308
|
+
case 'here':
|
|
309
|
+
case 'everyone':
|
|
310
|
+
return (react_1.default.createElement(discord_components_react_1.DiscordMention, { type: 'role', highlight: true }, type));
|
|
311
|
+
case 'codeBlock':
|
|
312
|
+
if (context.type !== RenderType.REPLY) {
|
|
313
|
+
if (((_f = node.lang) === null || _f === void 0 ? void 0 : _f.toLowerCase()) === 'ansi') {
|
|
314
|
+
return react_1.default.createElement(DiscordAnsiCodeBlock, { content: node.content });
|
|
315
|
+
}
|
|
316
|
+
return react_1.default.createElement(discord_components_react_1.DiscordCodeBlock, { language: node.lang, code: node.content });
|
|
317
|
+
}
|
|
318
|
+
return react_1.default.createElement(discord_components_react_1.DiscordInlineCode, null, node.content);
|
|
319
|
+
case 'inlineCode':
|
|
320
|
+
return react_1.default.createElement(discord_components_react_1.DiscordInlineCode, null, node.content);
|
|
321
|
+
case 'em':
|
|
322
|
+
return (react_1.default.createElement(discord_components_react_1.DiscordItalic, null,
|
|
323
|
+
react_1.default.createElement(MessageASTNodes, { nodes: node.content, context: context })));
|
|
324
|
+
case 'strong':
|
|
325
|
+
return (react_1.default.createElement(discord_components_react_1.DiscordBold, null,
|
|
326
|
+
react_1.default.createElement(MessageASTNodes, { nodes: node.content, context: context })));
|
|
327
|
+
case 'underline':
|
|
328
|
+
return (react_1.default.createElement(discord_components_react_1.DiscordUnderlined, null,
|
|
329
|
+
react_1.default.createElement(MessageASTNodes, { nodes: node.content, context: context })));
|
|
330
|
+
case 'strikethrough':
|
|
331
|
+
return (react_1.default.createElement("s", null,
|
|
332
|
+
react_1.default.createElement(MessageASTNodes, { nodes: node.content, context: context })));
|
|
333
|
+
case 'emoticon':
|
|
334
|
+
return typeof node.content === 'string' ? (node.content) : (react_1.default.createElement(MessageASTNodes, { nodes: node.content, context: context }));
|
|
335
|
+
case 'spoiler':
|
|
336
|
+
return (react_1.default.createElement(discord_components_react_1.DiscordSpoiler, null,
|
|
337
|
+
react_1.default.createElement(MessageASTNodes, { nodes: node.content, context: context })));
|
|
338
|
+
case 'emoji':
|
|
339
|
+
case 'twemoji': {
|
|
340
|
+
const baseEmojiUrl = (0, utils_1.parseDiscordEmoji)(node);
|
|
341
|
+
const emojiUrl = (_g = (await context.callbacks.resolveTranscriptAssetUrl({
|
|
342
|
+
kind: 'emoji',
|
|
343
|
+
url: baseEmojiUrl,
|
|
344
|
+
}))) !== null && _g !== void 0 ? _g : baseEmojiUrl;
|
|
345
|
+
return (react_1.default.createElement(discord_components_react_1.DiscordCustomEmoji, { name: node.name, url: emojiUrl, embedEmoji: context.type === RenderType.EMBED, largeEmoji: (_h = context._internal) === null || _h === void 0 ? void 0 : _h.largeEmojis }));
|
|
346
|
+
}
|
|
347
|
+
case 'timestamp':
|
|
348
|
+
return (react_1.default.createElement("span", { className: "discord-time" }, formatDiscordTimestamp(parseInt(node.timestamp) * 1000, node.format)));
|
|
349
|
+
case 'subtext':
|
|
350
|
+
return (react_1.default.createElement("span", { style: { fontSize: '11px', color: '#B5BAC1', display: 'block', marginTop: '4px', lineHeight: 'normal' } },
|
|
351
|
+
react_1.default.createElement(MessageASTNodes, { nodes: node.content, context: context })));
|
|
352
|
+
case 'heading': {
|
|
353
|
+
const level = node.level;
|
|
354
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
355
|
+
const HeadingTag = `h${level}`;
|
|
356
|
+
return (react_1.default.createElement(HeadingTag, { style: { margin: '8px 0', padding: 0, fontWeight: 'bold' } },
|
|
357
|
+
react_1.default.createElement(MessageASTNodes, { nodes: node.content, context: context })));
|
|
358
|
+
}
|
|
359
|
+
case 'list': {
|
|
360
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
361
|
+
const items = node.items;
|
|
362
|
+
return (react_1.default.createElement(react_1.default.Fragment, null, items.map((item, i) => (react_1.default.createElement(react_1.default.Fragment, { key: i },
|
|
363
|
+
react_1.default.createElement("span", null, node.ordered ? `${node.start + i}. ` : '• '),
|
|
364
|
+
react_1.default.createElement(MessageASTNodes, { nodes: item, context: context }),
|
|
365
|
+
i < items.length - 1 ? react_1.default.createElement("br", null) : null)))));
|
|
366
|
+
}
|
|
367
|
+
default: {
|
|
368
|
+
console.log(`Unknown node type: ${type}`, node);
|
|
369
|
+
return typeof node.content === 'string' ? (node.content) : (react_1.default.createElement(MessageASTNodes, { nodes: node.content, context: context }));
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
function getChannelType(channelType) {
|
|
374
|
+
switch (channelType) {
|
|
375
|
+
case discord_js_1.ChannelType.GuildCategory:
|
|
376
|
+
case discord_js_1.ChannelType.GuildAnnouncement:
|
|
377
|
+
case discord_js_1.ChannelType.GuildText:
|
|
378
|
+
case discord_js_1.ChannelType.DM:
|
|
379
|
+
case discord_js_1.ChannelType.GroupDM:
|
|
380
|
+
case discord_js_1.ChannelType.GuildDirectory:
|
|
381
|
+
case discord_js_1.ChannelType.GuildMedia:
|
|
382
|
+
return 'channel';
|
|
383
|
+
case discord_js_1.ChannelType.GuildVoice:
|
|
384
|
+
case discord_js_1.ChannelType.GuildStageVoice:
|
|
385
|
+
return 'voice';
|
|
386
|
+
case discord_js_1.ChannelType.PublicThread:
|
|
387
|
+
case discord_js_1.ChannelType.PrivateThread:
|
|
388
|
+
case discord_js_1.ChannelType.AnnouncementThread:
|
|
389
|
+
return 'thread';
|
|
390
|
+
case discord_js_1.ChannelType.GuildForum:
|
|
391
|
+
return 'forum';
|
|
392
|
+
default:
|
|
393
|
+
return 'channel';
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
//# sourceMappingURL=content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/generator/renderers/content.tsx"],"names":[],"mappings":";;;;;;AA6RA,iCAuBC;AAsBD,oDAgQC;AAED,wCAsBC;AAlmBD,kFAW6C;AAC7C,sFAAwE;AACxE,2CAAwE;AACxE,kDAA0B;AAK1B,6CAAsD;AAEtD,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,6CAAK,CAAA;IACL,6CAAK,CAAA;IACL,+CAAM,CAAA;IACN,iDAAO,CAAA;AACT,CAAC,EALW,UAAU,0BAAV,UAAU,QAKrB;AAUD,MAAM,gBAAgB,GAAG,OAAO,CAAC;AACjC,MAAM,uBAAuB,GAA2B;IACtD,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;CACd,CAAC;AACF,MAAM,uBAAuB,GAA2B;IACtD,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;CACf,CAAC;AACF,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AASnD,SAAS,mBAAmB;IAC1B,OAAO;QACL,eAAe,EAAE,SAAS;QAC1B,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,KAAK;KACjB,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,CAAC,CAAC,CAAC;IACb,CAAC;IAED,OAAO,QAAQ;SACZ,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;SACxC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,cAAc,CAAC,KAAuB,EAAE,KAAe;IAC9D,MAAM,SAAS,qBAAQ,KAAK,CAAE,CAAC;IAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,CAAC;gBACJ,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC;gBAChD,MAAM;YACR,KAAK,CAAC;gBACJ,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;gBACtB,MAAM;YACR,KAAK,CAAC;gBACJ,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;gBAC3B,MAAM;YACR,KAAK,EAAE;gBACL,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC;gBACvB,MAAM;YACR,KAAK,EAAE;gBACL,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC5B,MAAM;YACR,KAAK,EAAE;gBACL,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC;gBAC5B,MAAM;YACR,KAAK,EAAE;gBACL,SAAS,CAAC,eAAe,GAAG,SAAS,CAAC;gBACtC,MAAM;YACR;gBACE,IAAI,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClC,SAAS,CAAC,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;gBAClD,CAAC;qBAAM,IAAI,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;oBACzC,SAAS,CAAC,eAAe,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;gBAC5D,CAAC;gBACD,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;;IACtC,MAAM,QAAQ,GAAqD,EAAE,CAAC;IACtE,IAAI,KAAK,GAAG,mBAAmB,EAAE,CAAC;IAClC,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,oBAAoB,CAAC,SAAS,GAAG,CAAC,CAAC;IAEnC,KAAK,IAAI,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAChH,IAAI,KAAK,CAAC,KAAK,GAAG,SAAS,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,oBAAO,KAAK,CAAE;gBACnB,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC;aAC5C,CAAC,CAAC;QACL,CAAC;QAED,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,MAAA,KAAK,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC,CAAC,CAAC;QAC9D,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5C,CAAC;IAED,IAAI,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,oBAAO,KAAK,CAAE;YACnB,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,KAAuB;IAC3C,mEACK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACzE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACvC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAC3C,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAC3D;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,EAAE,OAAO,EAAuB;IAC5D,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAE1C,OAAO,CACL,uCAAK,SAAS,EAAC,kFAAkF;QAC/F,wCAAM,SAAS,EAAC,mBAAmB,IAChC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAC/B,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACxB,wCAAM,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,IACjD,OAAO,CAAC,IAAI,CACR,CACR,CAAC,CAAC,CAAC,IAAI,CACT,CACI,CACH,CACP,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAU;IACpC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE;QAC/C,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,UAAU,CAAC,IAAU,EAAE,cAAc,GAAG,KAAK;IACpD,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,gCAC7C,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,SAAS,IACd,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAChD,MAAM,EAAE,KAAK,IACb,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,cAAc,CAAC,IAAU,EAAE,WAAW,GAAG,KAAK;IACrD,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,kCAC1C,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAC3C,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,IACf,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAY;IACtC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnD,MAAM,QAAQ,GAAG,YAAY,GAAG,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC;IACzB,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC;IACtB,MAAM,KAAK,GAAG,EAAE,GAAG,GAAG,CAAC;IACvB,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC;IAEvB,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE;QAC9C,MAAM,KAAK,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAC1D,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC;IACnD,CAAC,CAAC;IAEF,IAAI,UAAU,GAAG,MAAM,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC;QAC3D,OAAO,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,UAAU,GAAG,IAAI,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;QACrB,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,UAAU,GAAG,KAAK,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,UAAU,GAAG,IAAI,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,sBAAsB,CAAC,SAAiB,EAAE,MAAc;IAC/D,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IAEjC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,GAAG;YACN,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,KAAK,GAAG;YACN,OAAO,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChC,KAAK,GAAG;YACN,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAClC,KAAK,GAAG;YACN,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9B,KAAK,GAAG;YACN,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,KAAK,GAAG;YACN,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,KAAK,GAAG;YACN,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAClC;YACE,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;IAC/D,CAAC;AACH,CAAC;AAEc,KAAK,UAAU,cAAc,CAAC,EAAE,OAAO,EAAE,OAAO,EAAsD;IACnH,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG;QAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;IAEvG,MAAM,gBAAgB,GAAG,OAAO;SAC7B,OAAO,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAC;SAChF,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC;SAC3B,OAAO,CAAC,qCAAqC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,MAAM,EAAE,CAAC,CAAC,CAAC;IAEjH,MAAM,MAAM,GAAG,IAAA,iCAAK,EAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAEnD,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAC/B,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CACjH,CAAC;IACF,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACjF,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACxB,OAAO,CAAC,SAAS,GAAG;gBAClB,WAAW,EAAE,IAAI;aAClB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,8BAAC,eAAe,IAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC;AAC9D,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,EAC7B,KAAK,EACL,OAAO,GAIR;IACC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CACL,8DACG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,8BAAC,oBAAoB,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,GAAI,CAC/D,CAAC,CACD,CACJ,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,8BAAC,oBAAoB,IAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC;IACjE,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,oBAAoB,CAAC,EAAE,IAAI,EAAE,OAAO,EAA0D;;IAClH,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAyB,CAAC;IAE5C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,OAAO,CAAC;QAEtB,KAAK,MAAM;YACT,OAAO,CACL,qCAAG,IAAI,EAAE,IAAI,CAAC,MAAM;gBAClB,8BAAC,eAAe,IAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAI,CACxD,CACL,CAAC;QAEJ,KAAK,KAAK,CAAC;QACX,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,GAAG,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAI,MAAA,MAAA,IAAI,CAAC,OAAO,0CAAG,CAAC,CAAC,0CAAE,OAAO,CAAC;YACtD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;YAG9C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC;gBACpG,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAClC,IAAI,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;oBAC5C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBAC3D,IAAI,MAAM,EAAE,CAAC;wBACX,MAAM,UAAU,GACd,MAAM,CAAC,IAAI;4BACX,CAAC,MAAA,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,yBAAyB,CAAC;gCAClD,IAAI,EAAE,aAAa;gCACnB,GAAG,EAAE,MAAM,CAAC,IAAI;6BACjB,CAAC,CAAC,mCACD,MAAM,CAAC,IAAI,CAAC,CAAC;wBAEjB,OAAO,CACL,uCAAK,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;4BAC9B,qCAAG,IAAI,EAAE,GAAG,EAAE,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,YAAY,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,IAC/F,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,8BAAC,eAAe,IAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,GAAI,CACnF;4BACJ,8BAAC,wCAAa,IACZ,GAAG,EAAE,MAAM,CAAC,GAAG,EACf,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,IAAI,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,SAAS,EAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,OAAO,EAAC,cAAc,EACtB,WAAW,EAAC,sCAAsC,GAClD,CACE,CACP,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBAEN,OAAO,CACL,uCAAK,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;4BAC9B,qCAAG,IAAI,EAAE,GAAG,EAAE,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,YAAY,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,IAC/F,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,8BAAC,eAAe,IAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,GAAI,CACnF;4BACJ,uCAAK,SAAS,EAAC,gBAAgB,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;gCACzD,uCAAK,SAAS,EAAC,uBAAuB,iCAAiC;gCACvE,uCAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;oCAClF,wCAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,mBAAW;oCAC5C;wCACE,uCAAK,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,qBAAsB;wCACzF,uCAAK,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,gCAAiC,CAC/E,CACF,CACF,CACF,CACP,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,CACL,qCAAG,IAAI,EAAE,GAAG,EAAE,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,YAAY,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,IAC/F,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,8BAAC,eAAe,IAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,GAAI,CACnF,CACL,CAAC;QACJ,CAAC;QAED,KAAK,YAAY;YACf,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC;gBACtC,OAAO,8BAAC,eAAe,IAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC;YACpE,CAAC;YAED,OAAO,CACL,8BAAC,uCAAY;gBACX,8BAAC,eAAe,IAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAI,CAC7C,CAChB,CAAC;QAEJ,KAAK,IAAI,CAAC;QACV,KAAK,SAAS;YACZ,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK;gBAAE,OAAO,GAAG,CAAC;YAClD,OAAO,yCAAM,CAAC;QAEhB,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,EAAE,GAAG,IAAI,CAAC,EAAY,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAE3D,OAAO,CACL,8BAAC,yCAAc,IAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IACzG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAC5D,CAClB,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,EAAE,GAAG,IAAI,CAAC,EAAY,CAAC;YAC7B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAErD,OAAO,CACL,8BAAC,yCAAc,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,IAC9F,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CACnB,CAClB,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,EAAE,GAAG,IAAI,CAAC,EAAY,CAAC;YAC7B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAErD,OAAO,8BAAC,yCAAc,IAAC,IAAI,EAAC,MAAM,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,WAAW,mCAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAkB,CAAC;QACpH,CAAC;QAED,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU;YACb,OAAO,CACL,8BAAC,yCAAc,IAAC,IAAI,EAAE,MAAM,EAAE,SAAS,UACpC,IAAI,CACU,CAClB,CAAC;QAEJ,KAAK,WAAW;YACd,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC;gBACtC,IAAI,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,WAAW,EAAE,MAAK,MAAM,EAAE,CAAC;oBACxC,OAAO,8BAAC,oBAAoB,IAAC,OAAO,EAAE,IAAI,CAAC,OAAO,GAAI,CAAC;gBACzD,CAAC;gBAED,OAAO,8BAAC,2CAAgB,IAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,GAAI,CAAC;YACvE,CAAC;YACD,OAAO,8BAAC,4CAAiB,QAAE,IAAI,CAAC,OAAO,CAAqB,CAAC;QAE/D,KAAK,YAAY;YACf,OAAO,8BAAC,4CAAiB,QAAE,IAAI,CAAC,OAAO,CAAqB,CAAC;QAE/D,KAAK,IAAI;YACP,OAAO,CACL,8BAAC,wCAAa;gBACZ,8BAAC,eAAe,IAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAI,CAC5C,CACjB,CAAC;QAEJ,KAAK,QAAQ;YACX,OAAO,CACL,8BAAC,sCAAW;gBACV,8BAAC,eAAe,IAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAI,CAC9C,CACf,CAAC;QAEJ,KAAK,WAAW;YACd,OAAO,CACL,8BAAC,4CAAiB;gBAChB,8BAAC,eAAe,IAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAI,CACxC,CACrB,CAAC;QAEJ,KAAK,eAAe;YAClB,OAAO,CACL;gBACE,8BAAC,eAAe,IAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAI,CACxD,CACL,CAAC;QAEJ,KAAK,UAAU;YACb,OAAO,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CACxC,IAAI,CAAC,OAAO,CACb,CAAC,CAAC,CAAC,CACF,8BAAC,eAAe,IAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAI,CAC3D,CAAC;QAEJ,KAAK,SAAS;YACZ,OAAO,CACL,8BAAC,yCAAc;gBACb,8BAAC,eAAe,IAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAI,CAC3C,CAClB,CAAC;QAEJ,KAAK,OAAO,CAAC;QACb,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,YAAY,GAAG,IAAA,yBAAiB,EAAC,IAAgC,CAAC,CAAC;YACzE,MAAM,QAAQ,GACZ,MAAA,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,yBAAyB,CAAC;gBACjD,IAAI,EAAE,OAAO;gBACb,GAAG,EAAE,YAAY;aAClB,CAAC,CAAC,mCAAI,YAAY,CAAC;YAEtB,OAAO,CACL,8BAAC,6CAAkB,IACjB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,GAAG,EAAE,QAAQ,EACb,UAAU,EAAE,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,EAC7C,UAAU,EAAE,MAAA,OAAO,CAAC,SAAS,0CAAE,WAAW,GAC1C,CACH,CAAC;QACJ,CAAC;QAED,KAAK,WAAW;YACd,OAAO,CACL,wCAAM,SAAS,EAAC,cAAc,IAAE,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAQ,CAC7G,CAAC;QAEJ,KAAK,SAAS;YACZ,OAAO,CACL,wCAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE;gBAC3G,8BAAC,eAAe,IAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAI,CACrD,CACR,CAAC;QAEJ,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,KAAK,GAAG,IAAI,CAAC,KAAe,CAAC;YACnC,8DAA8D;YAC9D,MAAM,UAAU,GAAG,IAAI,KAAK,EAAS,CAAC;YACtC,OAAO,CACL,8BAAC,UAAU,IAAC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;gBACpE,8BAAC,eAAe,IAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAI,CAC/C,CACd,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,8DAA8D;YAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAc,CAAC;YAClC,OAAO,CACL,8DACG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,8BAAC,eAAK,CAAC,QAAQ,IAAC,GAAG,EAAE,CAAC;gBACpB,4CAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAQ;gBAC1D,8BAAC,eAAe,IAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,GAAI;gBACjD,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,yCAAM,CAAC,CAAC,CAAC,IAAI,CACtB,CAClB,CAAC,CACD,CACJ,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;YAChD,OAAO,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CACxC,IAAI,CAAC,OAAO,CACb,CAAC,CAAC,CAAC,CACF,8BAAC,eAAe,IAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAI,CAC3D,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,cAAc,CAAC,WAAwB;IACrD,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,wBAAW,CAAC,aAAa,CAAC;QAC/B,KAAK,wBAAW,CAAC,iBAAiB,CAAC;QACnC,KAAK,wBAAW,CAAC,SAAS,CAAC;QAC3B,KAAK,wBAAW,CAAC,EAAE,CAAC;QACpB,KAAK,wBAAW,CAAC,OAAO,CAAC;QACzB,KAAK,wBAAW,CAAC,cAAc,CAAC;QAChC,KAAK,wBAAW,CAAC,UAAU;YACzB,OAAO,SAAS,CAAC;QACnB,KAAK,wBAAW,CAAC,UAAU,CAAC;QAC5B,KAAK,wBAAW,CAAC,eAAe;YAC9B,OAAO,OAAO,CAAC;QACjB,KAAK,wBAAW,CAAC,YAAY,CAAC;QAC9B,KAAK,wBAAW,CAAC,aAAa,CAAC;QAC/B,KAAK,wBAAW,CAAC,kBAAkB;YACjC,OAAO,QAAQ,CAAC;QAClB,KAAK,wBAAW,CAAC,UAAU;YACzB,OAAO,OAAO,CAAC;QACjB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { Message } from 'discord.js';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import type { RenderMessageContext } from '..';
|
|
4
|
+
type RenderEmbedContext = RenderMessageContext & {
|
|
5
|
+
index: number;
|
|
6
|
+
message: Message;
|
|
7
|
+
};
|
|
8
|
+
type EmbedLike = {
|
|
9
|
+
title?: string | null;
|
|
10
|
+
description?: string | null;
|
|
11
|
+
url?: string | null;
|
|
12
|
+
fields?: Array<{
|
|
13
|
+
name: string;
|
|
14
|
+
value: string;
|
|
15
|
+
inline?: boolean;
|
|
16
|
+
}>;
|
|
17
|
+
hexColor?: string | null;
|
|
18
|
+
color?: number | null;
|
|
19
|
+
provider?: {
|
|
20
|
+
name?: string | null;
|
|
21
|
+
} | null;
|
|
22
|
+
author?: {
|
|
23
|
+
name?: string | null;
|
|
24
|
+
url?: string | null;
|
|
25
|
+
iconURL?: string | null;
|
|
26
|
+
proxyIconURL?: string | null;
|
|
27
|
+
icon_url?: string | null;
|
|
28
|
+
proxy_icon_url?: string | null;
|
|
29
|
+
} | null;
|
|
30
|
+
footer?: {
|
|
31
|
+
text?: string | null;
|
|
32
|
+
iconURL?: string | null;
|
|
33
|
+
proxyIconURL?: string | null;
|
|
34
|
+
icon_url?: string | null;
|
|
35
|
+
proxy_icon_url?: string | null;
|
|
36
|
+
} | null;
|
|
37
|
+
image?: {
|
|
38
|
+
url?: string | null;
|
|
39
|
+
proxyURL?: string | null;
|
|
40
|
+
proxy_url?: string | null;
|
|
41
|
+
} | null;
|
|
42
|
+
thumbnail?: {
|
|
43
|
+
url?: string | null;
|
|
44
|
+
proxyURL?: string | null;
|
|
45
|
+
proxy_url?: string | null;
|
|
46
|
+
} | null;
|
|
47
|
+
video?: {
|
|
48
|
+
url?: string | null;
|
|
49
|
+
proxyURL?: string | null;
|
|
50
|
+
proxy_url?: string | null;
|
|
51
|
+
} | null;
|
|
52
|
+
timestamp?: string | number | Date | null;
|
|
53
|
+
};
|
|
54
|
+
export declare function DiscordEmbed({ embed, context, forceStatic, }: {
|
|
55
|
+
embed: EmbedLike;
|
|
56
|
+
context: RenderEmbedContext;
|
|
57
|
+
forceStatic?: boolean;
|
|
58
|
+
}): Promise<React.JSX.Element>;
|
|
59
|
+
export {};
|