oceanic-transcripts 1.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.
Files changed (51) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +114 -0
  3. package/dist/generator/index.d.ts +16 -0
  4. package/dist/generator/index.js +82 -0
  5. package/dist/generator/index.js.map +1 -0
  6. package/dist/generator/renderers/attachment.d.ts +21 -0
  7. package/dist/generator/renderers/attachment.js +49 -0
  8. package/dist/generator/renderers/attachment.js.map +1 -0
  9. package/dist/generator/renderers/components.d.ts +11 -0
  10. package/dist/generator/renderers/components.js +28 -0
  11. package/dist/generator/renderers/components.js.map +1 -0
  12. package/dist/generator/renderers/content.d.ts +32 -0
  13. package/dist/generator/renderers/content.js +153 -0
  14. package/dist/generator/renderers/content.js.map +1 -0
  15. package/dist/generator/renderers/embed.d.ts +12 -0
  16. package/dist/generator/renderers/embed.js +43 -0
  17. package/dist/generator/renderers/embed.js.map +1 -0
  18. package/dist/generator/renderers/message.d.ts +7 -0
  19. package/dist/generator/renderers/message.js +65 -0
  20. package/dist/generator/renderers/message.js.map +1 -0
  21. package/dist/generator/renderers/reply.d.ts +7 -0
  22. package/dist/generator/renderers/reply.js +54 -0
  23. package/dist/generator/renderers/reply.js.map +1 -0
  24. package/dist/generator/renderers/systemMessage.d.ts +14 -0
  25. package/dist/generator/renderers/systemMessage.js +103 -0
  26. package/dist/generator/renderers/systemMessage.js.map +1 -0
  27. package/dist/generator/transcript.d.ts +10 -0
  28. package/dist/generator/transcript.js +75 -0
  29. package/dist/generator/transcript.js.map +1 -0
  30. package/dist/index.d.ts +25 -0
  31. package/dist/index.js +120 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/static/client.d.ts +2 -0
  34. package/dist/static/client.js +30 -0
  35. package/dist/static/client.js.map +1 -0
  36. package/dist/types.d.ts +63 -0
  37. package/dist/types.js +10 -0
  38. package/dist/types.js.map +1 -0
  39. package/dist/utils/buildProfiles.d.ts +11 -0
  40. package/dist/utils/buildProfiles.js +47 -0
  41. package/dist/utils/buildProfiles.js.map +1 -0
  42. package/dist/utils/embeds.d.ts +2 -0
  43. package/dist/utils/embeds.js +17 -0
  44. package/dist/utils/embeds.js.map +1 -0
  45. package/dist/utils/extend.d.ts +8 -0
  46. package/dist/utils/extend.js +8 -0
  47. package/dist/utils/extend.js.map +1 -0
  48. package/dist/utils/utils.d.ts +10 -0
  49. package/dist/utils/utils.js +63 -0
  50. package/dist/utils/utils.js.map +1 -0
  51. package/package.json +77 -0
@@ -0,0 +1,153 @@
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 oceanic_js_1 = require("oceanic.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
+ /**
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(MessageASTNodes, { nodes: parsed, context: context });
45
+ }
46
+ // This function can probably be combined into the MessageSingleASTNode function
47
+ async function MessageASTNodes({ 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(MessageASTNodes, { 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(MessageASTNodes, { nodes: node.content, context: context })));
70
+ case 'blockQuote':
71
+ if (context.type === RenderType.REPLY) {
72
+ return react_1.default.createElement(MessageASTNodes, { nodes: node.content, context: context });
73
+ }
74
+ return (react_1.default.createElement(discord_components_react_1.DiscordQuote, null,
75
+ react_1.default.createElement(MessageASTNodes, { 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 ? (channel.type === oceanic_js_1.ChannelTypes.DM ? 'channel' : getChannelType(channel.type)) : 'channel' }, channel ? (channel.type == oceanic_js_1.ChannelTypes.DM ? '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.color.toString(16).padStart(6, '0')) }, 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.globalName) !== 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(MessageASTNodes, { 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(MessageASTNodes, { 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(MessageASTNodes, { nodes: node.content, context: context })));
115
+ case 'strikethrough':
116
+ return (react_1.default.createElement("s", null,
117
+ react_1.default.createElement(MessageASTNodes, { nodes: node.content, context: context })));
118
+ case 'emoticon':
119
+ return typeof node.content === 'string' ? (node.content) : (react_1.default.createElement(MessageASTNodes, { 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(MessageASTNodes, { 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(MessageASTNodes, { nodes: node.content, context: context }));
131
+ }
132
+ }
133
+ }
134
+ function getChannelType(channelType) {
135
+ switch (channelType) {
136
+ case oceanic_js_1.ChannelTypes.GUILD_CATEGORY:
137
+ case oceanic_js_1.ChannelTypes.GUILD_ANNOUNCEMENT:
138
+ case oceanic_js_1.ChannelTypes.GUILD_TEXT:
139
+ return 'channel';
140
+ case oceanic_js_1.ChannelTypes.GUILD_VOICE:
141
+ case oceanic_js_1.ChannelTypes.GUILD_STAGE_VOICE:
142
+ return 'voice';
143
+ case oceanic_js_1.ChannelTypes.PUBLIC_THREAD:
144
+ case oceanic_js_1.ChannelTypes.PRIVATE_THREAD:
145
+ case oceanic_js_1.ChannelTypes.ANNOUNCEMENT_THREAD:
146
+ return 'thread';
147
+ case oceanic_js_1.ChannelTypes.GUILD_FORUM:
148
+ return 'forum';
149
+ default:
150
+ return 'channel';
151
+ }
152
+ }
153
+ //# 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 'oceanic.js';
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,43 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.DiscordEmbed = DiscordEmbed;
30
+ const discord_components_react_1 = require("@derockdev/discord-components-react");
31
+ const react_1 = __importDefault(require("react"));
32
+ const embeds_1 = require("../../utils/embeds");
33
+ const content_1 = __importStar(require("./content"));
34
+ async function DiscordEmbed({ embed, context }) {
35
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
36
+ 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: (_h = '#' + ((_g = embed.color) === null || _g === void 0 ? void 0 : _g.toString(16).padStart(6, '0'))) !== null && _h !== void 0 ? _h : undefined, image: (_k = (_j = embed.image) === null || _j === void 0 ? void 0 : _j.proxyURL) !== null && _k !== void 0 ? _k : (_l = embed.image) === null || _l === void 0 ? void 0 : _l.url, thumbnail: (_o = (_m = embed.thumbnail) === null || _m === void 0 ? void 0 : _m.proxyURL) !== null && _o !== void 0 ? _o : (_p = embed.thumbnail) === null || _p === void 0 ? void 0 : _p.url, url: (_q = embed.url) !== null && _q !== void 0 ? _q : undefined },
37
+ embed.description && (react_1.default.createElement(discord_components_react_1.DiscordEmbedDescription, { slot: "description" },
38
+ react_1.default.createElement(content_1.default, { content: embed.description, context: Object.assign(Object.assign({}, context), { type: content_1.RenderType.EMBED }) }))),
39
+ embed.fields && 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) },
40
+ react_1.default.createElement(content_1.default, { content: field.value, context: Object.assign(Object.assign({}, context), { type: content_1.RenderType.EMBED }) })))))),
41
+ embed.footer && (react_1.default.createElement(discord_components_react_1.DiscordEmbedFooter, { slot: "footer", footerImage: (_r = embed.footer.proxyIconURL) !== null && _r !== void 0 ? _r : embed.footer.iconURL, timestamp: (_s = embed.timestamp) !== null && _s !== void 0 ? _s : undefined }, embed.footer.text))));
42
+ }
43
+ //# 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,GAAG,IAAG,MAAA,KAAK,CAAC,KAAK,0CAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,mCAAI,SAAS,EACpE,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,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAC1C,8BAAC,6CAAkB,IAAC,IAAI,EAAC,QAAQ,IAC9B,KAAK,CAAC,MAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CACtC,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,MAAO,EAAE,EAAE,CAAC;YAEpD,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 'oceanic.js';
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,65 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.default = DiscordMessage;
30
+ const discord_components_react_1 = require("@derockdev/discord-components-react");
31
+ const oceanic_js_1 = require("oceanic.js");
32
+ const react_1 = __importDefault(require("react"));
33
+ const utils_1 = require("../../utils/utils");
34
+ const attachment_1 = require("./attachment");
35
+ const components_1 = __importDefault(require("./components"));
36
+ const content_1 = __importStar(require("./content"));
37
+ const embed_1 = require("./embed");
38
+ const reply_1 = __importDefault(require("./reply"));
39
+ const systemMessage_1 = __importDefault(require("./systemMessage"));
40
+ async function DiscordMessage({ message, context, }) {
41
+ var _a;
42
+ if (![
43
+ oceanic_js_1.MessageTypes.DEFAULT,
44
+ oceanic_js_1.MessageTypes.REPLY,
45
+ oceanic_js_1.MessageTypes.CHAT_INPUT_COMMAND,
46
+ oceanic_js_1.MessageTypes.CONTEXT_MENU_COMMAND,
47
+ ].includes(message.type))
48
+ return react_1.default.createElement(systemMessage_1.default, { message: message });
49
+ const isCrosspost = message.referencedMessage && message.referencedMessage.guildID !== ((_a = message.guild) === null || _a === void 0 ? void 0 : _a.id);
50
+ return (react_1.default.createElement(discord_components_react_1.DiscordMessage, { id: `m-${message.id}`, timestamp: message.createdAt.toISOString(), key: message.id, edited: message.editedTimestamp !== null, server: isCrosspost !== null && isCrosspost !== void 0 ? isCrosspost : undefined, highlight: message.mentions.everyone, profile: message.author.id },
51
+ react_1.default.createElement(reply_1.default, { message: message, context: context }),
52
+ message.interactionMetadata && (react_1.default.createElement(discord_components_react_1.DiscordCommand, { slot: "reply", profile: message.interactionMetadata.user.id, command: '/' + message.interactionMetadata.name })),
53
+ 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 }) })),
54
+ react_1.default.createElement(attachment_1.Attachments, { message: message, context: context }),
55
+ 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 }))),
56
+ 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, row: component }))))),
57
+ message.reactions.length > 0 && (react_1.default.createElement(discord_components_react_1.DiscordReactions, { slot: "reactions" }, message.reactions.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 }))))),
58
+ message.thread && (react_1.default.createElement(discord_components_react_1.DiscordThread, { slot: "thread", name: message.thread.name, cta: message.thread.messageCount
59
+ ? `${message.thread.messageCount} Message${message.thread.messageCount > 1 ? 's' : ''}`
60
+ : 'View Thread' }, message.thread.lastMessage ? (react_1.default.createElement(discord_components_react_1.DiscordThreadMessage, { profile: message.thread.lastMessage.author.id },
61
+ react_1.default.createElement(content_1.default, { content: message.thread.lastMessage.content.length > 128
62
+ ? message.thread.lastMessage.content.substring(0, 125) + '...'
63
+ : message.thread.lastMessage.content, context: Object.assign(Object.assign({}, context), { type: content_1.RenderType.REPLY }) }))) : (`Thread messages not saved.`)))));
64
+ }
65
+ //# 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 'oceanic.js';
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,54 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.default = MessageReply;
30
+ const discord_components_react_1 = require("@derockdev/discord-components-react");
31
+ const oceanic_js_1 = require("oceanic.js");
32
+ const react_1 = __importDefault(require("react"));
33
+ const content_1 = __importStar(require("./content"));
34
+ async function MessageReply({ message, context }) {
35
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
36
+ if (!message.referencedMessage)
37
+ return null;
38
+ if (message.referencedMessage.guildID !== ((_a = message.guild) === null || _a === void 0 ? void 0 : _a.id))
39
+ return null;
40
+ const referencedMessage = context.messages.find((m) => m.id === message.referencedMessage.id);
41
+ if (!referencedMessage)
42
+ return react_1.default.createElement(discord_components_react_1.DiscordReply, { slot: "reply" }, "Message could not be loaded.");
43
+ const isCrosspost = referencedMessage.referencedMessage && referencedMessage.referencedMessage.guildID !== ((_b = message.guild) === null || _b === void 0 ? void 0 : _b.id);
44
+ const isCommand = referencedMessage.interactionMetadata !== null;
45
+ const roles = await message.guild.getRoles();
46
+ const highestRoleColor = roles
47
+ .sort((a, b) => b.position - a.position)
48
+ .find((role) => { var _a; return ((_a = message.member) === null || _a === void 0 ? void 0 : _a.roles.includes(role.id)) && role.color; });
49
+ return (react_1.default.createElement(discord_components_react_1.DiscordReply, { slot: "reply", edited: !isCommand && referencedMessage.editedTimestamp !== null, attachment: referencedMessage.attachments.size > 0, author: (_e = (_d = (_c = referencedMessage.member) === null || _c === void 0 ? void 0 : _c.nick) !== null && _d !== void 0 ? _d : referencedMessage.author.globalName) !== null && _e !== void 0 ? _e : referencedMessage.author.username, avatar: (_f = referencedMessage.author.avatarURL('png', 32)) !== null && _f !== void 0 ? _f : undefined, roleColor: (_g = '#' + (highestRoleColor === null || highestRoleColor === void 0 ? void 0 : highestRoleColor.color.toString(16).padStart(6, '0'))) !== null && _g !== void 0 ? _g : undefined, bot: !isCrosspost && referencedMessage.author.bot, verified: (referencedMessage.author.publicFlags & oceanic_js_1.UserFlags.VERIFIED_BOT) !== 0, op: ((_h = message === null || message === void 0 ? void 0 : message.channel) === null || _h === void 0 ? void 0 : _h.type) === oceanic_js_1.ChannelTypes.PRIVATE_THREAD ||
50
+ (((_j = message === null || message === void 0 ? void 0 : message.channel) === null || _j === void 0 ? void 0 : _j.type) === oceanic_js_1.ChannelTypes.PUBLIC_THREAD &&
51
+ referencedMessage.author.id === ((_k = message === null || message === void 0 ? void 0 : message.channel) === null || _k === void 0 ? void 0 : _k.ownerID)), server: isCrosspost !== null && isCrosspost !== void 0 ? isCrosspost : undefined, command: isCommand }, referencedMessage.content ? (react_1.default.createElement("span", { "data-goto": referencedMessage.id },
52
+ 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."))));
53
+ }
54
+ //# 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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"}
@@ -0,0 +1,14 @@
1
+ import { type Member, type Message, type User } from 'oceanic.js';
2
+ import React from 'react';
3
+ export default function SystemMessage({ message }: {
4
+ message: Message;
5
+ }): Promise<React.JSX.Element | undefined>;
6
+ export declare function Highlight({ children, color }: {
7
+ children: React.ReactNode;
8
+ color?: string;
9
+ }): React.JSX.Element;
10
+ export declare function JoinMessage({ member, color, fallbackUser, }: {
11
+ member: Member | null | undefined;
12
+ color: string;
13
+ fallbackUser: User;
14
+ }): (string | React.JSX.Element)[];
@@ -0,0 +1,103 @@
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 = SystemMessage;
7
+ exports.Highlight = Highlight;
8
+ exports.JoinMessage = JoinMessage;
9
+ const discord_components_react_1 = require("@derockdev/discord-components-react");
10
+ const oceanic_js_1 = require("oceanic.js");
11
+ const react_1 = __importDefault(require("react"));
12
+ const utils_1 = require("../../utils/utils");
13
+ async function SystemMessage({ message }) {
14
+ var _a, _b, _c, _d, _e, _f;
15
+ const roles = await ((_a = message.guild) === null || _a === void 0 ? void 0 : _a.getRoles());
16
+ const highestRoleColor = roles === null || roles === void 0 ? void 0 : roles.sort((a, b) => b.position - a.position).find((role) => { var _a; return ((_a = message.member) === null || _a === void 0 ? void 0 : _a.roles.includes(role.id)) && role.color; });
17
+ switch (message.type) {
18
+ case oceanic_js_1.MessageTypes.RECIPIENT_ADD:
19
+ case oceanic_js_1.MessageTypes.USER_JOIN:
20
+ return (react_1.default.createElement(discord_components_react_1.DiscordSystemMessage, { id: `m-${message.id}`, key: message.id, type: "join" },
21
+ react_1.default.createElement(JoinMessage, { member: message.member, color: '#' + (highestRoleColor === null || highestRoleColor === void 0 ? void 0 : highestRoleColor.color.toString(16).padStart(6, '0')), fallbackUser: message.author })));
22
+ case oceanic_js_1.MessageTypes.CHANNEL_PINNED_MESSAGE:
23
+ return (react_1.default.createElement(discord_components_react_1.DiscordSystemMessage, { id: `m-${message.id}`, key: message.id, type: "pin" },
24
+ react_1.default.createElement(Highlight, { color: '#' + (highestRoleColor === null || highestRoleColor === void 0 ? void 0 : highestRoleColor.color.toString(16).padStart(6, '0')) }, (_b = message.author.globalName) !== null && _b !== void 0 ? _b : message.author.username),
25
+ ' ',
26
+ "pinned ",
27
+ react_1.default.createElement("i", { "data-goto": (_c = message.referencedMessage) === null || _c === void 0 ? void 0 : _c.id }, "a message"),
28
+ " to this channel.",
29
+ message.reactions.length > 0 && (react_1.default.createElement(discord_components_react_1.DiscordReactions, { slot: "reactions" }, message.reactions.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 })))))));
30
+ case oceanic_js_1.MessageTypes.GUILD_BOOST:
31
+ case oceanic_js_1.MessageTypes.GUILD_BOOST_TIER_1:
32
+ case oceanic_js_1.MessageTypes.GUILD_BOOST_TIER_2:
33
+ case oceanic_js_1.MessageTypes.GUILD_BOOST_TIER_3:
34
+ return (react_1.default.createElement(discord_components_react_1.DiscordSystemMessage, { id: `m-${message.id}`, key: message.id, type: "boost" },
35
+ react_1.default.createElement(Highlight, { color: '#' + (highestRoleColor === null || highestRoleColor === void 0 ? void 0 : highestRoleColor.color.toString(16).padStart(6, '0')) }, (_d = message.author.globalName) !== null && _d !== void 0 ? _d : message.author.username),
36
+ ' ',
37
+ "boosted the server!"));
38
+ case oceanic_js_1.MessageTypes.THREAD_STARTER_MESSAGE:
39
+ return (react_1.default.createElement(discord_components_react_1.DiscordSystemMessage, { id: `ms-${message.id}`, key: message.id, type: "thread" },
40
+ react_1.default.createElement(Highlight, { color: '#' + (highestRoleColor === null || highestRoleColor === void 0 ? void 0 : highestRoleColor.color.toString(16).padStart(6, '0')) }, (_e = message.author.globalName) !== null && _e !== void 0 ? _e : message.author.username),
41
+ ' ',
42
+ "started a thread: ",
43
+ react_1.default.createElement("i", { "data-goto": (_f = message.referencedMessage) === null || _f === void 0 ? void 0 : _f.id }, message.content)));
44
+ default:
45
+ return undefined;
46
+ }
47
+ }
48
+ function Highlight({ children, color }) {
49
+ return react_1.default.createElement("i", { style: { color: color !== null && color !== void 0 ? color : 'white' } }, children);
50
+ }
51
+ const allJoinMessages = [
52
+ '{user} just joined the server - glhf!',
53
+ '{user} just joined. Everyone, look busy!',
54
+ '{user} just joined. Can I get a heal?',
55
+ '{user} joined your party.',
56
+ '{user} joined. You must construct additional pylons.',
57
+ 'Ermagherd. {user} is here.',
58
+ 'Welcome, {user}. Stay awhile and listen.',
59
+ 'Welcome, {user}. We were expecting you ( ͡° ͜ʖ ͡°)',
60
+ 'Welcome, {user}. We hope you brought pizza.',
61
+ 'Welcome {user}. Leave your weapons by the door.',
62
+ 'A wild {user} appeared.',
63
+ 'Swoooosh. {user} just landed.',
64
+ 'Brace yourselves {user} just joined the server.',
65
+ '{user} just joined. Hide your bananas.',
66
+ '{user} just arrived. Seems OP - please nerf.',
67
+ '{user} just slid into the server.',
68
+ 'A {user} has spawned in the server.',
69
+ 'Big {user} showed up!',
70
+ "Where's {user}? In the server!",
71
+ '{user} hopped into the server. Kangaroo!!',
72
+ '{user} just showed up. Hold my beer.',
73
+ 'Challenger approaching - {user} has appeared!',
74
+ "It's a bird! It's a plane! Nevermind, it's just {user}.",
75
+ "It's {user}! Praise the sun! \\\\[T]/",
76
+ 'Never gonna give {user} up. Never gonna let {user} down.',
77
+ 'Ha! {user} has joined! You activated my trap card!',
78
+ 'Cheers, love! {user} is here!',
79
+ 'Hey! Listen! {user} has joined!',
80
+ "We've been expecting you {user}",
81
+ "It's dangerous to go alone, take {user}!",
82
+ "{user} has joined the server! It's super effective!",
83
+ 'Cheers, love! {user} is here!',
84
+ '{user} is here, as the prophecy foretold.',
85
+ "{user} has arrived. Party's over.",
86
+ 'Ready player {user}',
87
+ '{user} is here to kick butt and chew bubblegum. And {user} is all out of gum.',
88
+ "Hello. Is it {user} you're looking for?",
89
+ ];
90
+ function JoinMessage({ member, color, fallbackUser, }) {
91
+ const randomMessage = allJoinMessages[Math.floor(Math.random() * allJoinMessages.length)];
92
+ return randomMessage
93
+ .split('{user}')
94
+ .flatMap((item, i) => {
95
+ var _a, _b;
96
+ return [
97
+ item,
98
+ react_1.default.createElement(Highlight, { color: color, key: i }, (_b = (_a = member === null || member === void 0 ? void 0 : member.nick) !== null && _a !== void 0 ? _a : fallbackUser.globalName) !== null && _b !== void 0 ? _b : fallbackUser.username),
99
+ ];
100
+ })
101
+ .slice(0, -1);
102
+ }
103
+ //# sourceMappingURL=systemMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"systemMessage.js","sourceRoot":"","sources":["../../../src/generator/renderers/systemMessage.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import type { RenderMessageContext } from '.';
3
+ /**
4
+ * The core transcript component.
5
+ * Expects window.$discordMessage.profiles to be set for profile information.
6
+ *
7
+ * @param props Messages, channel details, callbacks, etc.
8
+ * @returns
9
+ */
10
+ export default function DiscordMessages({ messages, channel, callbacks, ...options }: RenderMessageContext): Promise<React.JSX.Element>;
@@ -0,0 +1,75 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __rest = (this && this.__rest) || function (s, e) {
26
+ var t = {};
27
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
+ t[p] = s[p];
29
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
+ t[p[i]] = s[p[i]];
33
+ }
34
+ return t;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.default = DiscordMessages;
41
+ const discord_components_react_1 = require("@derockdev/discord-components-react");
42
+ const oceanic_js_1 = require("oceanic.js");
43
+ const react_1 = __importStar(require("react"));
44
+ const content_1 = __importStar(require("./renderers/content"));
45
+ const message_1 = __importDefault(require("./renderers/message"));
46
+ /**
47
+ * The core transcript component.
48
+ * Expects window.$discordMessage.profiles to be set for profile information.
49
+ *
50
+ * @param props Messages, channel details, callbacks, etc.
51
+ * @returns
52
+ */
53
+ async function DiscordMessages(_a) {
54
+ var _b, _c, _d, _e, _f;
55
+ var { messages, channel, callbacks } = _a, options = __rest(_a, ["messages", "channel", "callbacks"]);
56
+ return (react_1.default.createElement(discord_components_react_1.DiscordMessages, { style: { minHeight: '100vh' } },
57
+ react_1.default.createElement(discord_components_react_1.DiscordHeader, { guild: channel.type === oceanic_js_1.ChannelTypes.DM ? 'Direct Messages' : channel.guild.name, channel: channel.type === oceanic_js_1.ChannelTypes.DM ? (_c = (_b = channel.recipient) === null || _b === void 0 ? void 0 : _b.tag) !== null && _c !== void 0 ? _c : 'Unknown Recipient' : channel.name, icon: channel.type === oceanic_js_1.ChannelTypes.DM ? undefined : (_d = channel.guild.iconURL('png', 128)) !== null && _d !== void 0 ? _d : undefined }, channel.type === oceanic_js_1.ChannelTypes.PUBLIC_THREAD || channel.type === oceanic_js_1.ChannelTypes.PRIVATE_THREAD ? (`Thread channel in ${(_f = (_e = channel.parent) === null || _e === void 0 ? void 0 : _e.name) !== null && _f !== void 0 ? _f : 'Unknown Channel'}`) : channel.type === oceanic_js_1.ChannelTypes.DM ? (`Direct Messages`) : channel.type === oceanic_js_1.ChannelTypes.GUILD_VOICE ? (`Voice Text Channel for ${channel.name}`) : // channel.type === ChannelType.GuildCategory ? (
58
+ // `Category Channel`
59
+ // ) :
60
+ 'topic' in channel && channel.topic ? (react_1.default.createElement(content_1.default, { content: channel.topic, context: Object.assign({ messages, channel, callbacks, type: content_1.RenderType.REPLY }, options) })) : (`This is the start of #${channel.name} channel.`)),
61
+ react_1.default.createElement(react_1.Suspense, null, messages.map((message) => (react_1.default.createElement(message_1.default, { message: message, context: Object.assign({ messages, channel, callbacks }, options), key: message.id })))),
62
+ react_1.default.createElement("div", { style: { textAlign: 'center', width: '100%' } },
63
+ options.footerText
64
+ ? options.footerText
65
+ .replaceAll('{number}', messages.length.toString())
66
+ .replace('{s}', messages.length > 1 ? 's' : '')
67
+ : `Exported ${messages.length} message${messages.length > 1 ? 's' : ''}.`,
68
+ ' ',
69
+ options.poweredBy ? (react_1.default.createElement("span", { style: { textAlign: 'center' } },
70
+ "Powered by",
71
+ ' ',
72
+ react_1.default.createElement("a", { href: "https://github.com/ItzDerock/discord-html-transcripts", style: { color: 'lightblue' } }, "discord-html-transcripts"),
73
+ ".")) : null)));
74
+ }
75
+ //# sourceMappingURL=transcript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcript.js","sourceRoot":"","sources":["../../src/generator/transcript.tsx"],"names":[],"mappings":"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"}