spectre-html-transcripts 3.3.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 (91) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +153 -0
  3. package/dist/downloader/images.d.ts +43 -0
  4. package/dist/downloader/images.js +125 -0
  5. package/dist/downloader/images.js.map +1 -0
  6. package/dist/generator/index.d.ts +20 -0
  7. package/dist/generator/index.js +79 -0
  8. package/dist/generator/index.js.map +1 -0
  9. package/dist/generator/renderers/attachment.d.ts +24 -0
  10. package/dist/generator/renderers/attachment.js +49 -0
  11. package/dist/generator/renderers/attachment.js.map +1 -0
  12. package/dist/generator/renderers/components/Button.d.ts +9 -0
  13. package/dist/generator/renderers/components/Button.js +19 -0
  14. package/dist/generator/renderers/components/Button.js.map +1 -0
  15. package/dist/generator/renderers/components/Container.d.ts +5 -0
  16. package/dist/generator/renderers/components/Container.js +22 -0
  17. package/dist/generator/renderers/components/Container.js.map +1 -0
  18. package/dist/generator/renderers/components/Media Gallery.d.ts +6 -0
  19. package/dist/generator/renderers/components/Media Gallery.js +39 -0
  20. package/dist/generator/renderers/components/Media Gallery.js.map +1 -0
  21. package/dist/generator/renderers/components/Select Menu.d.ts +5 -0
  22. package/dist/generator/renderers/components/Select Menu.js +41 -0
  23. package/dist/generator/renderers/components/Select Menu.js.map +1 -0
  24. package/dist/generator/renderers/components/Spacing.d.ts +6 -0
  25. package/dist/generator/renderers/components/Spacing.js +17 -0
  26. package/dist/generator/renderers/components/Spacing.js.map +1 -0
  27. package/dist/generator/renderers/components/Thumbnail.d.ts +5 -0
  28. package/dist/generator/renderers/components/Thumbnail.js +16 -0
  29. package/dist/generator/renderers/components/Thumbnail.js.map +1 -0
  30. package/dist/generator/renderers/components/section/Section.d.ts +10 -0
  31. package/dist/generator/renderers/components/section/Section.js +21 -0
  32. package/dist/generator/renderers/components/section/Section.js.map +1 -0
  33. package/dist/generator/renderers/components/section/SectionAccessory.d.ts +6 -0
  34. package/dist/generator/renderers/components/section/SectionAccessory.js +19 -0
  35. package/dist/generator/renderers/components/section/SectionAccessory.js.map +1 -0
  36. package/dist/generator/renderers/components/section/SectionContent.d.ts +6 -0
  37. package/dist/generator/renderers/components/section/SectionContent.js +15 -0
  38. package/dist/generator/renderers/components/section/SectionContent.js.map +1 -0
  39. package/dist/generator/renderers/components/styles.d.ts +29 -0
  40. package/dist/generator/renderers/components/styles.js +110 -0
  41. package/dist/generator/renderers/components/styles.js.map +1 -0
  42. package/dist/generator/renderers/components/utils.d.ts +36 -0
  43. package/dist/generator/renderers/components/utils.js +98 -0
  44. package/dist/generator/renderers/components/utils.js.map +1 -0
  45. package/dist/generator/renderers/components.d.ts +15 -0
  46. package/dist/generator/renderers/components.js +62 -0
  47. package/dist/generator/renderers/components.js.map +1 -0
  48. package/dist/generator/renderers/content.d.ts +31 -0
  49. package/dist/generator/renderers/content.js +137 -0
  50. package/dist/generator/renderers/content.js.map +1 -0
  51. package/dist/generator/renderers/embed.d.ts +12 -0
  52. package/dist/generator/renderers/embed.js +53 -0
  53. package/dist/generator/renderers/embed.js.map +1 -0
  54. package/dist/generator/renderers/message.d.ts +7 -0
  55. package/dist/generator/renderers/message.js +69 -0
  56. package/dist/generator/renderers/message.js.map +1 -0
  57. package/dist/generator/renderers/reply.d.ts +7 -0
  58. package/dist/generator/renderers/reply.js +59 -0
  59. package/dist/generator/renderers/reply.js.map +1 -0
  60. package/dist/generator/renderers/systemMessage.d.ts +13 -0
  61. package/dist/generator/renderers/systemMessage.js +133 -0
  62. package/dist/generator/renderers/systemMessage.js.map +1 -0
  63. package/dist/generator/transcript.d.ts +10 -0
  64. package/dist/generator/transcript.js +86 -0
  65. package/dist/generator/transcript.js.map +1 -0
  66. package/dist/index.d.ts +35 -0
  67. package/dist/index.js +148 -0
  68. package/dist/index.js.map +1 -0
  69. package/dist/static/client.d.ts +2 -0
  70. package/dist/static/client.js +30 -0
  71. package/dist/static/client.js.map +1 -0
  72. package/dist/test.js +65 -0
  73. package/dist/types.d.ts +75 -0
  74. package/dist/types.js +10 -0
  75. package/dist/types.js.map +1 -0
  76. package/dist/utils/buildProfiles.d.ts +11 -0
  77. package/dist/utils/buildProfiles.js +41 -0
  78. package/dist/utils/buildProfiles.js.map +1 -0
  79. package/dist/utils/djsAdapter.d.ts +9 -0
  80. package/dist/utils/djsAdapter.js +96 -0
  81. package/dist/utils/djsAdapter.js.map +1 -0
  82. package/dist/utils/embeds.d.ts +1 -0
  83. package/dist/utils/embeds.js +17 -0
  84. package/dist/utils/embeds.js.map +1 -0
  85. package/dist/utils/extend.d.ts +8 -0
  86. package/dist/utils/extend.js +8 -0
  87. package/dist/utils/extend.js.map +1 -0
  88. package/dist/utils/utils.d.ts +14 -0
  89. package/dist/utils/utils.js +44 -0
  90. package/dist/utils/utils.js.map +1 -0
  91. package/package.json +73 -0
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSelectTypeLabel = getSelectTypeLabel;
4
+ exports.getGalleryLayout = getGalleryLayout;
5
+ exports.getImageStyle = getImageStyle;
6
+ const v10_1 = require("discord-api-types/v10");
7
+ const styles_1 = require("./styles");
8
+ /**
9
+ * Gets the appropriate label for different select menu types
10
+ */
11
+ const SELECT_LABEL_MAP = {
12
+ [v10_1.ComponentType.UserSelect]: 'Select User',
13
+ [v10_1.ComponentType.RoleSelect]: 'Select Role',
14
+ [v10_1.ComponentType.MentionableSelect]: 'Select Mentionable',
15
+ [v10_1.ComponentType.ChannelSelect]: 'Select Channel',
16
+ [v10_1.ComponentType.StringSelect]: 'Make a Selection',
17
+ };
18
+ function getSelectTypeLabel(type) {
19
+ var _a;
20
+ return (_a = SELECT_LABEL_MAP[type]) !== null && _a !== void 0 ? _a : 'Select Option';
21
+ }
22
+ /**
23
+ * Gets the grid layout for media galleries based on count
24
+ */
25
+ function getGalleryLayout(count) {
26
+ switch (count) {
27
+ case 1:
28
+ return Object.assign(Object.assign({}, styles_1.containerStyle), { gridTemplateColumns: '1fr', gridTemplateRows: 'auto' });
29
+ case 2:
30
+ return Object.assign(Object.assign({}, styles_1.containerStyle), { gridTemplateColumns: '1fr 1fr', gridTemplateRows: 'auto' });
31
+ case 3:
32
+ case 4:
33
+ return Object.assign(Object.assign({}, styles_1.containerStyle), { gridTemplateColumns: '1fr 1fr', gridTemplateRows: '1fr 1fr' });
34
+ case 5:
35
+ return Object.assign(Object.assign({}, styles_1.containerStyle), { gridTemplateColumns: '1fr 1fr 1fr', gridTemplateRows: 'auto auto' });
36
+ default:
37
+ if (count >= 7) {
38
+ return Object.assign(Object.assign({}, styles_1.containerStyle), { gridTemplateColumns: '1fr 1fr 1fr', gridTemplateRows: 'auto auto auto auto' });
39
+ }
40
+ else {
41
+ return Object.assign(Object.assign({}, styles_1.containerStyle), { gridTemplateColumns: '1fr 1fr 1fr', gridTemplateRows: 'auto' });
42
+ }
43
+ }
44
+ }
45
+ /**
46
+ * Gets the style for an individual image based on its position and total count
47
+ */
48
+ function getImageStyle(idx, count) {
49
+ switch (count) {
50
+ case 3:
51
+ if (idx === 0) {
52
+ return Object.assign(Object.assign({}, styles_1.baseImageStyle), { gridRow: '1 / span 2', gridColumn: '1', aspectRatio: '1/2' });
53
+ }
54
+ break;
55
+ case 5:
56
+ if (idx < 2) {
57
+ return Object.assign(Object.assign({}, styles_1.baseImageStyle), { gridRow: '1', gridColumn: idx === 0 ? '1 / span 2' : '3' });
58
+ }
59
+ else {
60
+ return Object.assign(Object.assign({}, styles_1.baseImageStyle), { gridRow: '2', gridColumn: `${idx - 2 + 1}` });
61
+ }
62
+ case 7:
63
+ if (idx === 0) {
64
+ return Object.assign(Object.assign({}, styles_1.baseImageStyle), { gridRow: '1', gridColumn: '1 / span 3' });
65
+ }
66
+ else if (idx <= 3) {
67
+ return Object.assign(Object.assign({}, styles_1.baseImageStyle), { gridRow: '2', gridColumn: `${idx - 0}` });
68
+ }
69
+ else {
70
+ return Object.assign(Object.assign({}, styles_1.baseImageStyle), { gridRow: '3', gridColumn: `${idx - 3}` });
71
+ }
72
+ case 8:
73
+ if (idx < 2) {
74
+ return Object.assign(Object.assign({}, styles_1.baseImageStyle), { gridRow: '1', gridColumn: idx === 0 ? '1 / span 2' : '3' });
75
+ }
76
+ else if (idx < 5) {
77
+ return Object.assign(Object.assign({}, styles_1.baseImageStyle), { gridRow: '2', gridColumn: `${idx - 2 + 1}` });
78
+ }
79
+ else {
80
+ return Object.assign(Object.assign({}, styles_1.baseImageStyle), { gridRow: '3', gridColumn: `${idx - 5 + 1}` });
81
+ }
82
+ case 10:
83
+ if (idx === 0) {
84
+ return Object.assign(Object.assign({}, styles_1.baseImageStyle), { gridRow: '1', gridColumn: '1 / span 3' });
85
+ }
86
+ else if (idx <= 3) {
87
+ return Object.assign(Object.assign({}, styles_1.baseImageStyle), { gridRow: '2', gridColumn: `${idx - 0}` });
88
+ }
89
+ else if (idx <= 6) {
90
+ return Object.assign(Object.assign({}, styles_1.baseImageStyle), { gridRow: '3', gridColumn: `${idx - 3}` });
91
+ }
92
+ else {
93
+ return Object.assign(Object.assign({}, styles_1.baseImageStyle), { gridRow: '4', gridColumn: `${idx - 6}` });
94
+ }
95
+ }
96
+ return styles_1.baseImageStyle;
97
+ }
98
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/generator/renderers/components/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ type ThumbnailComponent = any;
2
+ type MessageActionRowComponent = any;
3
+ type TopLevelComponent = any;
4
+ import React from 'react';
5
+ import type { RenderMessageContext } from '..';
6
+ export default function ComponentRow({ component, id, context, }: {
7
+ component: TopLevelComponent;
8
+ id: number;
9
+ context: RenderMessageContext;
10
+ }): React.JSX.Element | null;
11
+ export declare function Component({ component, id, }: {
12
+ component: MessageActionRowComponent | ThumbnailComponent;
13
+ id: number;
14
+ }): React.JSX.Element | undefined;
15
+ export {};
@@ -0,0 +1,62 @@
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.default = ComponentRow;
7
+ exports.Component = Component;
8
+ const discord_components_react_1 = require("@derockdev/discord-components-react");
9
+ const v10_1 = require("discord-api-types/v10");
10
+ const react_1 = __importDefault(require("react"));
11
+ const utils_1 = require("../../utils/utils");
12
+ const Select_Menu_1 = __importDefault(require("./components/Select Menu"));
13
+ const Container_1 = __importDefault(require("./components/Container"));
14
+ const Section_1 = __importDefault(require("./components/section/Section"));
15
+ const Media_Gallery_1 = __importDefault(require("./components/Media Gallery"));
16
+ const Spacing_1 = __importDefault(require("./components/Spacing"));
17
+ const Button_1 = __importDefault(require("./components/Button"));
18
+ const Thumbnail_1 = __importDefault(require("./components/Thumbnail"));
19
+ const content_1 = __importDefault(require("./content"));
20
+ const content_2 = require("./content");
21
+ const styles_1 = require("./components/styles");
22
+ function ComponentRow({ component, id, context, }) {
23
+ switch (component.type) {
24
+ case v10_1.ComponentType.ActionRow:
25
+ return (react_1.default.createElement(discord_components_react_1.DiscordActionRow, { key: id },
26
+ react_1.default.createElement(react_1.default.Fragment, null, component.components.map((nestedComponent, id) => (react_1.default.createElement(Component, { component: nestedComponent, id: id, key: id }))))));
27
+ case v10_1.ComponentType.Container:
28
+ return (react_1.default.createElement(Container_1.default, { key: id },
29
+ react_1.default.createElement(react_1.default.Fragment, null, component.components.map((nestedComponent, id) => (react_1.default.createElement(ComponentRow, { component: nestedComponent, id: id, key: id, context: context }))))));
30
+ case v10_1.ComponentType.File:
31
+ return (react_1.default.createElement(react_1.default.Fragment, null, component.spoiler ? (react_1.default.createElement(discord_components_react_1.DiscordSpoiler, { key: component.id, slot: "attachment" },
32
+ react_1.default.createElement(discord_components_react_1.DiscordAttachment, { type: "file", key: component.id, slot: "attachment", url: component.file.url, alt: "Discord Attachment" }))) : (react_1.default.createElement(discord_components_react_1.DiscordAttachment, { type: "file", key: component.id, slot: "attachment", url: component.file.url, alt: "Discord Attachment" }))));
33
+ case v10_1.ComponentType.MediaGallery:
34
+ return react_1.default.createElement(Media_Gallery_1.default, { component: component, key: id });
35
+ case v10_1.ComponentType.Section:
36
+ return (react_1.default.createElement(Section_1.default, { key: id, accessory: component.accessory, id: id }, component.components.map((nestedComponent, id) => (react_1.default.createElement(ComponentRow, { component: nestedComponent, id: id, key: id, context: context })))));
37
+ case v10_1.ComponentType.Separator:
38
+ return react_1.default.createElement(Spacing_1.default, { key: id, spacing: component.spacing, divider: component.divider });
39
+ case v10_1.ComponentType.TextDisplay:
40
+ return react_1.default.createElement(content_1.default, { key: id, content: component.content, context: Object.assign(Object.assign({}, context), { type: content_2.RenderType.NORMAL }) });
41
+ default:
42
+ return null;
43
+ }
44
+ }
45
+ function Component({ component, id, }) {
46
+ var _a;
47
+ switch (component.type) {
48
+ case v10_1.ComponentType.Button:
49
+ return (react_1.default.createElement(Button_1.default, { key: id, type: styles_1.ButtonStyleMapping[component.style], url: (_a = component.url) !== null && _a !== void 0 ? _a : undefined, emoji: component.emoji ? (0, utils_1.parseDiscordEmoji)(component.emoji) : undefined }, component.label));
50
+ case v10_1.ComponentType.StringSelect:
51
+ case v10_1.ComponentType.UserSelect:
52
+ case v10_1.ComponentType.RoleSelect:
53
+ case v10_1.ComponentType.MentionableSelect:
54
+ case v10_1.ComponentType.ChannelSelect:
55
+ return react_1.default.createElement(Select_Menu_1.default, { key: id, component: component });
56
+ case v10_1.ComponentType.Thumbnail:
57
+ return react_1.default.createElement(Thumbnail_1.default, { key: id, url: component.media.url });
58
+ default:
59
+ return undefined;
60
+ }
61
+ }
62
+ //# sourceMappingURL=components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.js","sourceRoot":"","sources":["../../../src/generator/renderers/components.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+ import type { SingleASTNode } from 'simple-markdown';
3
+ import type { RenderMessageContext } from '../';
4
+ export declare enum RenderType {
5
+ EMBED = 0,
6
+ REPLY = 1,
7
+ NORMAL = 2,
8
+ WEBHOOK = 3
9
+ }
10
+ type RenderContentContext = RenderMessageContext & {
11
+ type: RenderType;
12
+ _internal?: {
13
+ largeEmojis?: boolean;
14
+ };
15
+ };
16
+ /**
17
+ * Renders discord markdown content
18
+ * @param content - The content to render
19
+ * @param context - The context to render the content in
20
+ * @returns
21
+ */
22
+ export default function MessageContent({ content, context }: {
23
+ content: string;
24
+ context: RenderContentContext;
25
+ }): Promise<React.JSX.Element>;
26
+ export declare function MessageSingleASTNode({ node, context }: {
27
+ node: SingleASTNode;
28
+ context: RenderContentContext;
29
+ }): Promise<any>;
30
+ export declare function getChannelType(channelType: any): 'channel' | 'voice' | 'thread' | 'forum';
31
+ export {};
@@ -0,0 +1,137 @@
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 djsAdapter_1 = require("../../utils/djsAdapter");
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
+ /**
23
+ * Renders discord markdown content
24
+ * @param content - The content to render
25
+ * @param context - The context to render the content in
26
+ * @returns
27
+ */
28
+ async function MessageContent({ content, context }) {
29
+ if (context.type === RenderType.REPLY && content.length > 180)
30
+ content = content.slice(0, 180) + '...';
31
+ // parse the markdown
32
+ const parsed = (0, discord_markdown_parser_1.default)(content, context.type === RenderType.EMBED || context.type === RenderType.WEBHOOK ? 'extended' : 'normal');
33
+ // check if the parsed content is only emojis
34
+ const isOnlyEmojis = parsed.every((node) => ['emoji', 'twemoji'].includes(node.type) || (node.type === 'text' && node.content.trim().length === 0));
35
+ if (isOnlyEmojis) {
36
+ // now check if there are less than or equal to 25 emojis
37
+ const emojis = parsed.filter((node) => ['emoji', 'twemoji'].includes(node.type));
38
+ if (emojis.length <= 25) {
39
+ context._internal = {
40
+ largeEmojis: true,
41
+ };
42
+ }
43
+ }
44
+ return react_1.default.createElement(MessageASTNodeList, { nodes: parsed, context: context });
45
+ }
46
+ // This function can probably be combined into the MessageSingleASTNode function
47
+ async function MessageASTNodeList({ nodes, context, }) {
48
+ if (Array.isArray(nodes)) {
49
+ 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 })))));
50
+ }
51
+ else {
52
+ return react_1.default.createElement(MessageSingleASTNode, { node: nodes, context: context });
53
+ }
54
+ }
55
+ async function MessageSingleASTNode({ node, context }) {
56
+ var _a, _b;
57
+ if (!node)
58
+ return null;
59
+ const type = node.type;
60
+ switch (type) {
61
+ case 'text':
62
+ return node.content;
63
+ case 'link':
64
+ return (react_1.default.createElement("a", { href: node.target },
65
+ react_1.default.createElement(MessageASTNodeList, { nodes: node.content, context: context })));
66
+ case 'url':
67
+ case 'autolink':
68
+ return (react_1.default.createElement("a", { href: node.target, target: "_blank", rel: "noreferrer" },
69
+ react_1.default.createElement(MessageASTNodeList, { nodes: node.content, context: context })));
70
+ case 'blockQuote':
71
+ if (context.type === RenderType.REPLY) {
72
+ return react_1.default.createElement(MessageASTNodeList, { nodes: node.content, context: context });
73
+ }
74
+ return (react_1.default.createElement(discord_components_react_1.DiscordQuote, null,
75
+ react_1.default.createElement(MessageASTNodeList, { nodes: node.content, context: context })));
76
+ case 'br':
77
+ case 'newline':
78
+ if (context.type === RenderType.REPLY)
79
+ return ' ';
80
+ return react_1.default.createElement("br", null);
81
+ case 'channel': {
82
+ const id = node.id;
83
+ const channel = await context.callbacks.resolveChannel(id);
84
+ return (react_1.default.createElement(discord_components_react_1.DiscordMention, { type: channel ? ((0, djsAdapter_1.isDMBasedChannel)(channel) ? 'channel' : (0, djsAdapter_1.getChannelTypeFrom)(channel.type)) : 'channel' }, channel ? ((0, djsAdapter_1.isDMBasedChannel)(channel) ? 'DM Channel' : channel.name) : `<#${id}>`));
85
+ }
86
+ case 'role': {
87
+ const id = node.id;
88
+ const role = await context.callbacks.resolveRole(id);
89
+ 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 : `<@&${id}>`));
90
+ }
91
+ case 'user': {
92
+ const id = node.id;
93
+ const user = await context.callbacks.resolveUser(id);
94
+ return react_1.default.createElement(discord_components_react_1.DiscordMention, { type: "user" }, user ? ((_a = user.displayName) !== null && _a !== void 0 ? _a : user.username) : `<@${id}>`);
95
+ }
96
+ case 'here':
97
+ case 'everyone':
98
+ return (react_1.default.createElement(discord_components_react_1.DiscordMention, { type: 'role', highlight: true }, `@${type}`));
99
+ case 'codeBlock':
100
+ if (context.type !== RenderType.REPLY) {
101
+ return react_1.default.createElement(discord_components_react_1.DiscordCodeBlock, { language: node.lang, code: node.content });
102
+ }
103
+ return react_1.default.createElement(discord_components_react_1.DiscordInlineCode, null, node.content);
104
+ case 'inlineCode':
105
+ return react_1.default.createElement(discord_components_react_1.DiscordInlineCode, null, node.content);
106
+ case 'em':
107
+ return (react_1.default.createElement(discord_components_react_1.DiscordItalic, null,
108
+ react_1.default.createElement(MessageASTNodeList, { nodes: node.content, context: context })));
109
+ case 'strong':
110
+ return (react_1.default.createElement(discord_components_react_1.DiscordBold, null,
111
+ react_1.default.createElement(MessageASTNodeList, { nodes: node.content, context: context })));
112
+ case 'underline':
113
+ return (react_1.default.createElement(discord_components_react_1.DiscordUnderlined, null,
114
+ react_1.default.createElement(MessageASTNodeList, { nodes: node.content, context: context })));
115
+ case 'strikethrough':
116
+ return (react_1.default.createElement("s", null,
117
+ react_1.default.createElement(MessageASTNodeList, { nodes: node.content, context: context })));
118
+ case 'emoticon':
119
+ return typeof node.content === 'string' ? (node.content) : (react_1.default.createElement(MessageASTNodeList, { nodes: node.content, context: context }));
120
+ case 'spoiler':
121
+ return (react_1.default.createElement(discord_components_react_1.DiscordSpoiler, null,
122
+ react_1.default.createElement(MessageASTNodeList, { nodes: node.content, context: context })));
123
+ case 'emoji':
124
+ case 'twemoji':
125
+ return (react_1.default.createElement(discord_components_react_1.DiscordCustomEmoji, { name: node.name, url: (0, utils_1.parseDiscordEmoji)(node), embedEmoji: context.type === RenderType.EMBED, largeEmoji: (_b = context._internal) === null || _b === void 0 ? void 0 : _b.largeEmojis }));
126
+ case 'timestamp':
127
+ return react_1.default.createElement(discord_components_react_1.DiscordTime, { timestamp: parseInt(node.timestamp) * 1000, format: node.format });
128
+ default: {
129
+ console.log(`Unknown node type: ${type}`, node);
130
+ return typeof node.content === 'string' ? (node.content) : (react_1.default.createElement(MessageASTNodeList, { nodes: node.content, context: context }));
131
+ }
132
+ }
133
+ }
134
+ function getChannelType(channelType) {
135
+ return (0, djsAdapter_1.getChannelTypeFrom)(channelType);
136
+ }
137
+ //# sourceMappingURL=content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/generator/renderers/content.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { Embed, Message } from 'discord.js-selfbot-v13';
2
+ import React from 'react';
3
+ import type { RenderMessageContext } from '..';
4
+ type RenderEmbedContext = RenderMessageContext & {
5
+ index: number;
6
+ message: Message;
7
+ };
8
+ export declare function DiscordEmbed({ embed, context }: {
9
+ embed: Embed;
10
+ context: RenderEmbedContext;
11
+ }): Promise<React.JSX.Element>;
12
+ export {};
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.DiscordEmbed = DiscordEmbed;
40
+ const discord_components_react_1 = require("@derockdev/discord-components-react");
41
+ const react_1 = __importDefault(require("react"));
42
+ const embeds_1 = require("../../utils/embeds");
43
+ const content_1 = __importStar(require("./content"));
44
+ async function DiscordEmbed({ embed, context }) {
45
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
46
+ return (react_1.default.createElement(discord_components_react_1.DiscordEmbed, { embedTitle: (_a = embed.title) !== null && _a !== void 0 ? _a : undefined, slot: "embeds", key: `${context.message.id}-e-${context.index}`, authorImage: (_c = (_b = embed.author) === null || _b === void 0 ? void 0 : _b.proxyIconURL) !== null && _c !== void 0 ? _c : (_d = embed.author) === null || _d === void 0 ? void 0 : _d.iconURL, authorName: (_e = embed.author) === null || _e === void 0 ? void 0 : _e.name, authorUrl: (_f = embed.author) === null || _f === void 0 ? void 0 : _f.url, color: (_g = embed.hexColor) !== null && _g !== void 0 ? _g : undefined, image: (_j = (_h = embed.image) === null || _h === void 0 ? void 0 : _h.proxyURL) !== null && _j !== void 0 ? _j : (_k = embed.image) === null || _k === void 0 ? void 0 : _k.url, thumbnail: (_m = (_l = embed.thumbnail) === null || _l === void 0 ? void 0 : _l.proxyURL) !== null && _m !== void 0 ? _m : (_o = embed.thumbnail) === null || _o === void 0 ? void 0 : _o.url, url: (_p = embed.url) !== null && _p !== void 0 ? _p : undefined },
47
+ embed.description && (react_1.default.createElement(discord_components_react_1.DiscordEmbedDescription, { slot: "description" },
48
+ react_1.default.createElement(content_1.default, { content: embed.description, context: Object.assign(Object.assign({}, context), { type: content_1.RenderType.EMBED }) }))),
49
+ embed.fields.length > 0 && (react_1.default.createElement(discord_components_react_1.DiscordEmbedFields, { slot: "fields" }, embed.fields.map(async (field, id) => (react_1.default.createElement(discord_components_react_1.DiscordEmbedField, { key: `${context.message.id}-e-${context.index}-f-${id}`, fieldTitle: field.name, inline: field.inline, inlineIndex: (0, embeds_1.calculateInlineIndex)(embed.fields, id) },
50
+ react_1.default.createElement(content_1.default, { content: field.value, context: Object.assign(Object.assign({}, context), { type: content_1.RenderType.EMBED }) })))))),
51
+ embed.footer && (react_1.default.createElement(discord_components_react_1.DiscordEmbedFooter, { slot: "footer", footerImage: (_q = embed.footer.proxyIconURL) !== null && _q !== void 0 ? _q : embed.footer.iconURL, timestamp: (_r = embed.timestamp) !== null && _r !== void 0 ? _r : undefined }, embed.footer.text))));
52
+ }
53
+ //# sourceMappingURL=embed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed.js","sourceRoot":"","sources":["../../../src/generator/renderers/embed.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,oCAiDC;AAnED,kFAM6C;AAE7C,kDAA0B;AAE1B,+CAA0D;AAC1D,qDAAuD;AAOhD,KAAK,UAAU,YAAY,CAAC,EAAE,KAAK,EAAE,OAAO,EAAiD;;IAClG,OAAO,CACL,8BAAC,uCAAqB,IACpB,UAAU,EAAE,MAAA,KAAK,CAAC,KAAK,mCAAI,SAAS,EACpC,IAAI,EAAC,QAAQ,EACb,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,KAAK,EAAE,EAC/C,WAAW,EAAE,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,YAAY,mCAAI,MAAA,KAAK,CAAC,MAAM,0CAAE,OAAO,EAChE,UAAU,EAAE,MAAA,KAAK,CAAC,MAAM,0CAAE,IAAI,EAC9B,SAAS,EAAE,MAAA,KAAK,CAAC,MAAM,0CAAE,GAAG,EAC5B,KAAK,EAAE,MAAA,KAAK,CAAC,QAAQ,mCAAI,SAAS,EAClC,KAAK,EAAE,MAAA,MAAA,KAAK,CAAC,KAAK,0CAAE,QAAQ,mCAAI,MAAA,KAAK,CAAC,KAAK,0CAAE,GAAG,EAChD,SAAS,EAAE,MAAA,MAAA,KAAK,CAAC,SAAS,0CAAE,QAAQ,mCAAI,MAAA,KAAK,CAAC,SAAS,0CAAE,GAAG,EAC5D,GAAG,EAAE,MAAA,KAAK,CAAC,GAAG,mCAAI,SAAS;QAG1B,KAAK,CAAC,WAAW,IAAI,CACpB,8BAAC,kDAAuB,IAAC,IAAI,EAAC,aAAa;YACzC,8BAAC,iBAAc,IAAC,OAAO,EAAE,KAAK,CAAC,WAAW,EAAE,OAAO,kCAAO,OAAO,KAAE,IAAI,EAAE,oBAAU,CAAC,KAAK,MAAM,CACvE,CAC3B;QAGA,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAC1B,8BAAC,6CAAkB,IAAC,IAAI,EAAC,QAAQ,IAC9B,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAU,EAAE,EAAU,EAAE,EAAE,CAAC,CAClD,8BAAC,4CAAiB,IAChB,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,KAAK,MAAM,EAAE,EAAE,EACvD,UAAU,EAAE,KAAK,CAAC,IAAI,EACtB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,WAAW,EAAE,IAAA,6BAAoB,EAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAEnD,8BAAC,iBAAc,IAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,kCAAO,OAAO,KAAE,IAAI,EAAE,oBAAU,CAAC,KAAK,MAAM,CACvE,CACrB,CAAC,CACiB,CACtB;QAGA,KAAK,CAAC,MAAM,IAAI,CACf,8BAAC,6CAAkB,IACjB,IAAI,EAAC,QAAQ,EACb,WAAW,EAAE,MAAA,KAAK,CAAC,MAAM,CAAC,YAAY,mCAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAC9D,SAAS,EAAE,MAAA,KAAK,CAAC,SAAS,mCAAI,SAAS,IAEtC,KAAK,CAAC,MAAM,CAAC,IAAI,CACC,CACtB,CACqB,CACzB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { type Message as MessageType } from 'discord.js-selfbot-v13';
2
+ import React from 'react';
3
+ import type { RenderMessageContext } from '..';
4
+ export default function DiscordMessage({ message, context, }: {
5
+ message: MessageType;
6
+ context: RenderMessageContext;
7
+ }): Promise<React.JSX.Element>;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.default = DiscordMessage;
40
+ const discord_components_react_1 = require("@derockdev/discord-components-react");
41
+ const react_1 = __importDefault(require("react"));
42
+ const utils_1 = require("../../utils/utils");
43
+ const attachment_1 = require("./attachment");
44
+ const components_1 = __importDefault(require("./components"));
45
+ const content_1 = __importStar(require("./content"));
46
+ const embed_1 = require("./embed");
47
+ const reply_1 = __importDefault(require("./reply"));
48
+ const systemMessage_1 = __importDefault(require("./systemMessage"));
49
+ async function DiscordMessage({ message, context, }) {
50
+ var _a;
51
+ if (message.system)
52
+ return react_1.default.createElement(systemMessage_1.default, { message: message });
53
+ const isCrosspost = message.reference && message.reference.guildId !== ((_a = message.guild) === null || _a === void 0 ? void 0 : _a.id);
54
+ return (react_1.default.createElement(discord_components_react_1.DiscordMessage, { id: `m-${message.id}`, timestamp: message.createdAt.toISOString(), key: message.id, edited: message.editedAt !== null, server: isCrosspost !== null && isCrosspost !== void 0 ? isCrosspost : undefined, highlight: message.mentions.everyone, profile: message.author.id },
55
+ react_1.default.createElement(reply_1.default, { message: message, context: context }),
56
+ message.interaction && (react_1.default.createElement(discord_components_react_1.DiscordCommand, { slot: "reply", profile: message.interaction.user.id, command: '/' + message.interaction.commandName })),
57
+ message.content && (react_1.default.createElement(content_1.default, { content: message.content, context: Object.assign(Object.assign({}, context), { type: message.webhookId ? content_1.RenderType.WEBHOOK : content_1.RenderType.NORMAL }) })),
58
+ react_1.default.createElement(attachment_1.Attachments, { message: message, context: context }),
59
+ message.embeds.map((embed, id) => (react_1.default.createElement(embed_1.DiscordEmbed, { embed: embed, context: Object.assign(Object.assign({}, context), { index: id, message }), key: id }))),
60
+ message.components.length > 0 && (react_1.default.createElement(discord_components_react_1.DiscordAttachments, { slot: "components" }, message.components.map((component, id) => (react_1.default.createElement(components_1.default, { key: id, id: id, component: component, context: context }))))),
61
+ message.reactions.cache.size > 0 && (react_1.default.createElement(discord_components_react_1.DiscordReactions, { slot: "reactions" }, message.reactions.cache.map((reaction, id) => (react_1.default.createElement(discord_components_react_1.DiscordReaction, { key: `${message.id}r${id}`, name: reaction.emoji.name, emoji: (0, utils_1.parseDiscordEmoji)(reaction.emoji), count: reaction.count }))))),
62
+ message.hasThread && message.thread && (react_1.default.createElement(discord_components_react_1.DiscordThread, { slot: "thread", name: message.thread.name, cta: message.thread.messageCount
63
+ ? `${message.thread.messageCount} Message${message.thread.messageCount > 1 ? 's' : ''}`
64
+ : 'View Thread' }, message.thread.lastMessage ? (react_1.default.createElement(discord_components_react_1.DiscordThreadMessage, { profile: message.thread.lastMessage.author.id },
65
+ react_1.default.createElement(content_1.default, { content: message.thread.lastMessage.content.length > 128
66
+ ? message.thread.lastMessage.content.substring(0, 125) + '...'
67
+ : message.thread.lastMessage.content, context: Object.assign(Object.assign({}, context), { type: content_1.RenderType.REPLY }) }))) : (`Thread messages not saved.`)))));
68
+ }
69
+ //# sourceMappingURL=message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/generator/renderers/message.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Message } from 'discord.js-selfbot-v13';
2
+ import type { RenderMessageContext } from '..';
3
+ import React from 'react';
4
+ export default function MessageReply({ message, context }: {
5
+ message: Message;
6
+ context: RenderMessageContext;
7
+ }): Promise<React.JSX.Element | null>;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.default = MessageReply;
40
+ const discord_components_react_1 = require("@derockdev/discord-components-react");
41
+ const react_1 = __importDefault(require("react"));
42
+ const content_1 = __importStar(require("./content"));
43
+ // Defensive check for user verified flag (discord.js-selfbot-v13 may not expose flags)
44
+ const isVerifiedUser = (user) => Boolean((user === null || user === void 0 ? void 0 : user.flags) && typeof user.flags.has === 'function' && user.flags.has(1 << 16));
45
+ async function MessageReply({ message, context }) {
46
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
47
+ if (!message.reference)
48
+ return null;
49
+ if (message.reference.guildId !== ((_a = message.guild) === null || _a === void 0 ? void 0 : _a.id))
50
+ return null;
51
+ const referencedMessage = context.messages.find((m) => m.id === message.reference.messageId);
52
+ if (!referencedMessage)
53
+ return react_1.default.createElement(discord_components_react_1.DiscordReply, { slot: "reply" }, "Message could not be loaded.");
54
+ const isCrossPost = referencedMessage.reference && referencedMessage.reference.guildId !== ((_b = message.guild) === null || _b === void 0 ? void 0 : _b.id);
55
+ const isCommand = referencedMessage.interaction !== null;
56
+ return (react_1.default.createElement(discord_components_react_1.DiscordReply, { slot: "reply", edited: !isCommand && referencedMessage.editedAt !== null, attachment: referencedMessage.attachments.size > 0, author: (_e = (_d = (_c = referencedMessage.member) === null || _c === void 0 ? void 0 : _c.nickname) !== null && _d !== void 0 ? _d : referencedMessage.author.displayName) !== null && _e !== void 0 ? _e : referencedMessage.author.username, avatar: (_f = referencedMessage.author.avatarURL({ size: 32 })) !== null && _f !== void 0 ? _f : undefined, roleColor: (_h = (_g = referencedMessage.member) === null || _g === void 0 ? void 0 : _g.displayHexColor) !== null && _h !== void 0 ? _h : undefined, bot: !isCrossPost && referencedMessage.author.bot, verified: isVerifiedUser(referencedMessage.author), op: ((_k = (_j = message === null || message === void 0 ? void 0 : message.channel) === null || _j === void 0 ? void 0 : _j.isThread) === null || _k === void 0 ? void 0 : _k.call(_j)) && referencedMessage.author.id === ((_l = message === null || message === void 0 ? void 0 : message.channel) === null || _l === void 0 ? void 0 : _l.ownerId), server: isCrossPost !== null && isCrossPost !== void 0 ? isCrossPost : undefined, command: isCommand }, referencedMessage.content ? (react_1.default.createElement("span", { "data-goto": referencedMessage.id },
57
+ react_1.default.createElement(content_1.default, { content: referencedMessage.content, context: Object.assign(Object.assign({}, context), { type: content_1.RenderType.REPLY }) }))) : isCommand ? (react_1.default.createElement("em", { "data-goto": referencedMessage.id }, "Click to see command.")) : (react_1.default.createElement("em", { "data-goto": referencedMessage.id }, "Click to see attachment."))));
58
+ }
59
+ //# sourceMappingURL=reply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reply.js","sourceRoot":"","sources":["../../../src/generator/renderers/reply.tsx"],"names":[],"mappings":"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"}