sweety-html-transcripts 0.2.7-dev-30666137197.0 → 0.2.7-dev-32718160566.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/dist/generator/index.js +1 -1
- package/dist/generator/index.js.map +1 -1
- package/dist/generator/renderers/components.js +3 -3
- package/dist/generator/renderers/components.js.map +1 -1
- package/dist/generator/renderers/content.js +17 -3
- package/dist/generator/renderers/content.js.map +1 -1
- package/dist/utils/list.d.ts +18 -0
- package/dist/utils/list.js +198 -0
- package/dist/utils/list.js.map +1 -0
- package/dist/utils/utils.d.ts +18 -0
- package/dist/utils/utils.js +20 -1
- package/dist/utils/utils.js.map +1 -1
- package/package.json +13 -12
package/dist/generator/index.js
CHANGED
|
@@ -44,7 +44,7 @@ async function render(context) {
|
|
|
44
44
|
} }),
|
|
45
45
|
!options.hydrate && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
46
46
|
react_1.default.createElement("script", { dangerouslySetInnerHTML: {
|
|
47
|
-
__html: `window.$discordMessage={profiles:${
|
|
47
|
+
__html: `window.$discordMessage={profiles:${(0, utils_1.stringifyForScript)(profiles)}}`,
|
|
48
48
|
} }),
|
|
49
49
|
react_1.default.createElement("script", { type: "module", src: `https://cdn.jsdelivr.net/npm/@penwin/discord-components-core@${discordComponentsVersion}/dist/bundle/index.mjs` }))),
|
|
50
50
|
react_1.default.createElement("link", { rel: "stylesheet", href: `https://cdn.jsdelivr.net/npm/@penwin/discord-components-core@${discordComponentsVersion}/dist/bundle/styles/base.css` })),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.tsx"],"names":[],"mappings":";;;;;;AAAA,wEAA4E;AAE5E,kDAA0B;AAC1B,6CAAyD;AACzD,qDAAqD;AAGrD,6CAAkE;AAClE,gDAAkD;AAElD,8CAAgD;AAChD,0CAA4C;AAC5C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -118,7 +118,7 @@ async function Component({ component, id, context, }) {
|
|
|
118
118
|
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
119
119
|
!context.hydrate &&
|
|
120
120
|
scripts.push(react_1.default.createElement("script", { key: 'users-script', dangerouslySetInnerHTML: {
|
|
121
|
-
__html: `${selectMenuScriptHeader}.users = ${
|
|
121
|
+
__html: `${selectMenuScriptHeader}.users = ${(0, utils_1.stringifyForScript)(context.adapter.renderContext.selectMenu.users.data)}`,
|
|
122
122
|
} }));
|
|
123
123
|
}
|
|
124
124
|
if (containsRoles && !context.adapter.renderContext.selectMenu.roles && context.guild?.id) {
|
|
@@ -143,7 +143,7 @@ async function Component({ component, id, context, }) {
|
|
|
143
143
|
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
144
144
|
!context.hydrate &&
|
|
145
145
|
scripts.push(react_1.default.createElement("script", { key: 'roles-script', dangerouslySetInnerHTML: {
|
|
146
|
-
__html: `${selectMenuScriptHeader}.roles = ${
|
|
146
|
+
__html: `${selectMenuScriptHeader}.roles = ${(0, utils_1.stringifyForScript)(context.adapter.renderContext.selectMenu.roles.data)}`,
|
|
147
147
|
} }));
|
|
148
148
|
}
|
|
149
149
|
if (containsChannels && !context.adapter.renderContext.selectMenu.channels && context.guild?.id) {
|
|
@@ -167,7 +167,7 @@ async function Component({ component, id, context, }) {
|
|
|
167
167
|
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
168
168
|
!context.hydrate &&
|
|
169
169
|
scripts.push(react_1.default.createElement("script", { key: 'channels-script', dangerouslySetInnerHTML: {
|
|
170
|
-
__html: `${selectMenuScriptHeader}.channels = ${
|
|
170
|
+
__html: `${selectMenuScriptHeader}.channels = ${(0, utils_1.stringifyForScript)(context.adapter.renderContext.selectMenu.channels.data)}`,
|
|
171
171
|
} }));
|
|
172
172
|
}
|
|
173
173
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.js","sourceRoot":"","sources":["../../../src/generator/renderers/components.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6FAgBiD;AAEjD,kDAA0B;AAE1B,+CAAmE;AACnE,
|
|
1
|
+
{"version":3,"file":"components.js","sourceRoot":"","sources":["../../../src/generator/renderers/components.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,9 +8,9 @@ exports.default = MessageContent;
|
|
|
8
8
|
exports.MessageSingleASTNode = MessageSingleASTNode;
|
|
9
9
|
exports.getChannelType = getChannelType;
|
|
10
10
|
const discord_components_react_render_1 = require("@penwin/discord-components-react-render");
|
|
11
|
-
const discord_markdown_parser_1 = __importDefault(require("discord-markdown-parser"));
|
|
12
11
|
const react_1 = __importDefault(require("react"));
|
|
13
12
|
const channel_1 = require("../../utils/channel");
|
|
13
|
+
const list_1 = require("../../utils/list");
|
|
14
14
|
const utils_1 = require("../../utils/utils");
|
|
15
15
|
const v10_1 = require("discord-api-types/v10");
|
|
16
16
|
const user_1 = require("../../utils/user");
|
|
@@ -31,10 +31,9 @@ async function MessageContent({ content, context }) {
|
|
|
31
31
|
if (context.type === RenderType.REPLY && content.length > 180)
|
|
32
32
|
content = content.slice(0, 180) + '...';
|
|
33
33
|
// parse the markdown
|
|
34
|
-
const parsed = (0, discord_markdown_parser_1.default)(content,
|
|
35
34
|
//? apparently now users can use extended parsing
|
|
36
35
|
// context.type === RenderType.EMBED || context.type === RenderType.WEBHOOK ? 'extended' : 'normal'
|
|
37
|
-
|
|
36
|
+
const parsed = (0, list_1.parseWithLists)(content);
|
|
38
37
|
// check if the parsed content is only emojis
|
|
39
38
|
const isOnlyEmojis = parsed.every((node) => ['emoji', 'twemoji'].includes(node.type) || (node.type === 'text' && node.content.trim().length === 0));
|
|
40
39
|
if (isOnlyEmojis) {
|
|
@@ -140,6 +139,21 @@ async function MessageSingleASTNode({ node, context }) {
|
|
|
140
139
|
react_1.default.createElement(MessageASTNodes, { nodes: node.content, context: context })));
|
|
141
140
|
case 'timestamp':
|
|
142
141
|
return react_1.default.createElement(discord_components_react_render_1.DiscordTime, { timestamp: parseInt(node.timestamp), format: node.format });
|
|
142
|
+
case 'list': {
|
|
143
|
+
// A reply preview is a single line. blockQuote and br unwrap themselves for the same reason.
|
|
144
|
+
// The trailing space matters: the block match consumed the newline that ended the list, so
|
|
145
|
+
// there is no br left for the case above to turn into a space.
|
|
146
|
+
if (context.type === RenderType.REPLY) {
|
|
147
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
148
|
+
node.items.map((item, index) => (react_1.default.createElement(react_1.default.Fragment, { key: index },
|
|
149
|
+
index > 0 ? ' ' : null,
|
|
150
|
+
react_1.default.createElement(MessageASTNodes, { nodes: item, context: context })))),
|
|
151
|
+
' '));
|
|
152
|
+
}
|
|
153
|
+
const items = node.items.map((item, index) => (react_1.default.createElement(discord_components_react_render_1.DiscordListItem, { key: index },
|
|
154
|
+
react_1.default.createElement(MessageASTNodes, { nodes: item, context: context }))));
|
|
155
|
+
return node.ordered ? (react_1.default.createElement(discord_components_react_render_1.DiscordOrderedList, { start: node.start ?? 1 }, items)) : (react_1.default.createElement(discord_components_react_render_1.DiscordUnorderedList, { nested: Boolean(node.nested) }, items));
|
|
156
|
+
}
|
|
143
157
|
default: {
|
|
144
158
|
console.log(`Unknown node type: ${type}`, node);
|
|
145
159
|
return typeof node.content === 'string' ? (node.content) : (react_1.default.createElement(MessageASTNodes, { nodes: node.content, context: context }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/generator/renderers/content.tsx"],"names":[],"mappings":";;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/generator/renderers/content.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ParserRule, SingleASTNode } from 'simple-markdown';
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* A list rule that follows Discord's rules rather than CommonMark's.
|
|
5
|
+
* SimpleMarkdown ships a list rule, but it refuses to match in inline scope and it treats a blank
|
|
6
|
+
* line as a continuation, so it both never fires here and eats the paragraph after a list when it
|
|
7
|
+
* does.
|
|
8
|
+
*/
|
|
9
|
+
export declare const list: ParserRule;
|
|
10
|
+
/**
|
|
11
|
+
*
|
|
12
|
+
* Parse message content with list support added to the extended rules.
|
|
13
|
+
* `parse` from discord-markdown-parser cannot be used directly because its rule set has no list
|
|
14
|
+
* rule at all, so bullets arrive as plain text.
|
|
15
|
+
* @param content - The message content
|
|
16
|
+
* @returns The parsed nodes
|
|
17
|
+
*/
|
|
18
|
+
export declare const parseWithLists: (content: string) => SingleASTNode[];
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseWithLists = exports.list = void 0;
|
|
4
|
+
const discord_markdown_parser_1 = require("discord-markdown-parser");
|
|
5
|
+
// Discord takes - and * for a bullet and `N.` for a number. It does not take `N)`, and unlike
|
|
6
|
+
// CommonMark it does not take `+`, which stays literal text so that `+ 1 for pizza` and pasted
|
|
7
|
+
// diffs keep rendering the way they do now.
|
|
8
|
+
const BULLET = '[-*]';
|
|
9
|
+
const NUMBER = '\\d{1,9}';
|
|
10
|
+
// One list line: indent, marker, at least one space, then the text. Both patterns are built from
|
|
11
|
+
// the same two constants, because a line BLOCK accepts and LINE rejects is dropped from the output
|
|
12
|
+
// while BLOCK has already taken it out of the source. The text is matched with [^\n] rather than
|
|
13
|
+
// . for the same reason: . also excludes U+2028 and U+2029.
|
|
14
|
+
const LINE = new RegExp('^( *)(?:(' + BULLET + ')|(' + NUMBER + ')\\.) +([^\\n]*)$');
|
|
15
|
+
// A run of consecutive list lines, stopping at a blank line. That is the whole reason this rule
|
|
16
|
+
// exists rather than SimpleMarkdown.defaultRules.list: that one follows CommonMark loose lists,
|
|
17
|
+
// where a blank line does NOT end the list, so it swallows the next paragraph and any heading in
|
|
18
|
+
// it. Discord ends a list at a blank line.
|
|
19
|
+
//
|
|
20
|
+
// The line terminator is a capture group on purpose. dmp's heading and subtext rules take their
|
|
21
|
+
// line-start lookbehind from `state.prevCapture.slice(-1)[0] === '\n'`, the last capture group of
|
|
22
|
+
// whatever matched before them. With no group at all that expression is the entire matched block,
|
|
23
|
+
// so neither rule could ever fire on the line after a list.
|
|
24
|
+
const BLOCK = new RegExp('^(?:(?: *(?:' + BULLET + '|' + NUMBER + '\\.) +[^\\n]*)(\\n|$))+');
|
|
25
|
+
// Discord will not open an ordered list outside this range. It keeps counting past 50 once open,
|
|
26
|
+
// so this is about where a list starts rather than about every line in it.
|
|
27
|
+
const MIN_START = 1;
|
|
28
|
+
const MAX_START = 50;
|
|
29
|
+
// Two spaces per level is what Discord uses. Tabs never reach us: SimpleMarkdown's preprocess runs
|
|
30
|
+
// before any rule and replaces each tab with four spaces, so a tab arrives as two levels.
|
|
31
|
+
const INDENT_WIDTH = 2;
|
|
32
|
+
function readLines(block) {
|
|
33
|
+
const lines = [];
|
|
34
|
+
for (const raw of block.split('\n')) {
|
|
35
|
+
const match = LINE.exec(raw);
|
|
36
|
+
if (!match)
|
|
37
|
+
continue;
|
|
38
|
+
const [, indent, bullet, digits, text] = match;
|
|
39
|
+
lines.push({
|
|
40
|
+
depth: Math.floor((indent ?? '').length / INDENT_WIDTH),
|
|
41
|
+
ordered: bullet === undefined,
|
|
42
|
+
start: digits ? parseInt(digits, 10) : 1,
|
|
43
|
+
text: text ?? '',
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
return lines;
|
|
47
|
+
}
|
|
48
|
+
/** Whether this line opens a list rather than continuing the one above it. */
|
|
49
|
+
const opensList = (line, previous) => previous === undefined || line.ordered !== previous.ordered || line.depth > previous.depth;
|
|
50
|
+
/**
|
|
51
|
+
*
|
|
52
|
+
* Turn indents into levels, so that equally indented lines land at the same level and no level is
|
|
53
|
+
* skipped. A stack is needed rather than a running comparison: clamping each line against the
|
|
54
|
+
* previous line's already-clamped depth reads two different coordinate systems against each other,
|
|
55
|
+
* which turns equal indents into a staircase and inverts decreasing ones.
|
|
56
|
+
* @param lines - The lines to adjust, in place
|
|
57
|
+
*/
|
|
58
|
+
function levelIndents(lines) {
|
|
59
|
+
let base = lines[0].depth;
|
|
60
|
+
for (const line of lines)
|
|
61
|
+
if (line.depth < base)
|
|
62
|
+
base = line.depth;
|
|
63
|
+
const open = [base];
|
|
64
|
+
for (const line of lines) {
|
|
65
|
+
while (open.length > 1 && line.depth < open[open.length - 1])
|
|
66
|
+
open.pop();
|
|
67
|
+
if (line.depth > open[open.length - 1])
|
|
68
|
+
open.push(line.depth);
|
|
69
|
+
line.depth = open.length - 1;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
*
|
|
74
|
+
* Turn a run of list lines into one list node, recursing for each deeper level.
|
|
75
|
+
* Stops at the first line that is shallower than this level or that switches between bullets and
|
|
76
|
+
* numbers, because Discord starts a new list at both.
|
|
77
|
+
* @param lines - Every line in the block
|
|
78
|
+
* @param depth - The depth being collected
|
|
79
|
+
* @param from - Index to start at
|
|
80
|
+
* @param parse - SimpleMarkdown's recursive parser, for the text of each item
|
|
81
|
+
* @param state - Parser state to hand to the item parse
|
|
82
|
+
* @param nested - Whether this list sits inside another one
|
|
83
|
+
* @returns The node for this level, and the index the caller should continue from
|
|
84
|
+
*/
|
|
85
|
+
function build(lines, depth, from, parse, state, nested) {
|
|
86
|
+
const items = [];
|
|
87
|
+
const first = lines[from];
|
|
88
|
+
let i = from;
|
|
89
|
+
while (i < lines.length && lines[i].depth >= depth) {
|
|
90
|
+
const line = lines[i];
|
|
91
|
+
// Deeper than this level, so it belongs to the item above it.
|
|
92
|
+
if (line.depth > depth) {
|
|
93
|
+
const child = build(lines, line.depth, i, parse, state, true);
|
|
94
|
+
items[items.length - 1].push(child.node);
|
|
95
|
+
i = child.next;
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
if (line.ordered !== first.ordered)
|
|
99
|
+
break;
|
|
100
|
+
// prevCapture is reset because it still holds whatever preceded the whole block, and the rules
|
|
101
|
+
// that use it as lookbehind would otherwise render the same item differently depending on what
|
|
102
|
+
// came before the list. inList stops the item text from re-entering this rule: item text is not
|
|
103
|
+
// the start of a line, and letting it match again left nesting depth unbounded.
|
|
104
|
+
items.push(parse(line.text, { ...state, inline: true, prevCapture: null, inList: true }));
|
|
105
|
+
i++;
|
|
106
|
+
}
|
|
107
|
+
return {
|
|
108
|
+
node: {
|
|
109
|
+
// Set explicitly because SimpleMarkdown only stamps the rule name onto a single returned
|
|
110
|
+
// node, and this rule returns an array. Without it the renderer's default branch swallows
|
|
111
|
+
// the list.
|
|
112
|
+
type: 'list',
|
|
113
|
+
ordered: first.ordered,
|
|
114
|
+
start: first.ordered ? first.start : undefined,
|
|
115
|
+
// Discord fills the bullet at the top level and leaves it hollow below it. The component
|
|
116
|
+
// cannot work this out for itself: it only checks whether its parent element is a list, and
|
|
117
|
+
// every sub-list here sits inside a discord-list-item, so the check never fires.
|
|
118
|
+
nested,
|
|
119
|
+
items,
|
|
120
|
+
},
|
|
121
|
+
next: i,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
*
|
|
126
|
+
* A list rule that follows Discord's rules rather than CommonMark's.
|
|
127
|
+
* SimpleMarkdown ships a list rule, but it refuses to match in inline scope and it treats a blank
|
|
128
|
+
* line as a continuation, so it both never fires here and eats the paragraph after a list when it
|
|
129
|
+
* does.
|
|
130
|
+
*/
|
|
131
|
+
exports.list = {
|
|
132
|
+
// The slot SimpleMarkdown reserves for lists. Nothing in the extended rule set uses it, and it
|
|
133
|
+
// runs after codeBlock and blockQuote, so neither can have a list taken out from under it.
|
|
134
|
+
order: discord_markdown_parser_1.SimpleMarkdown.defaultRules.list.order,
|
|
135
|
+
match(source, state) {
|
|
136
|
+
// Item text is handed back to the parser, and it is not the start of a line.
|
|
137
|
+
if (state.inList)
|
|
138
|
+
return null;
|
|
139
|
+
// Checking the whole previous match rather than its last group is deliberate: blockQuote's
|
|
140
|
+
// last group is undefined, so the form dmp's heading rule uses would refuse to open a list on
|
|
141
|
+
// the line after a quote.
|
|
142
|
+
const previous = state.prevCapture;
|
|
143
|
+
if (previous !== null && previous !== undefined && !String(previous[0]).endsWith('\n'))
|
|
144
|
+
return null;
|
|
145
|
+
const captured = BLOCK.exec(source);
|
|
146
|
+
if (!captured)
|
|
147
|
+
return null;
|
|
148
|
+
// Trim the block at the first line that would open a list Discord refuses. Trimming rather
|
|
149
|
+
// than declining the whole match is what keeps that text on the page: the remainder falls
|
|
150
|
+
// through to the text rule and renders literally, which is what Discord does with it.
|
|
151
|
+
const lines = readLines(captured[0]);
|
|
152
|
+
let kept = 0;
|
|
153
|
+
let previousLine;
|
|
154
|
+
for (const line of lines) {
|
|
155
|
+
const refused = line.ordered && (line.start < MIN_START || line.start > MAX_START);
|
|
156
|
+
if (opensList(line, previousLine) && refused)
|
|
157
|
+
break;
|
|
158
|
+
kept++;
|
|
159
|
+
previousLine = line;
|
|
160
|
+
}
|
|
161
|
+
if (kept === 0)
|
|
162
|
+
return null;
|
|
163
|
+
if (kept < lines.length)
|
|
164
|
+
captured[0] = captured[0].split('\n').slice(0, kept).join('\n') + '\n';
|
|
165
|
+
return captured;
|
|
166
|
+
},
|
|
167
|
+
parse(capture, parse, state) {
|
|
168
|
+
const lines = readLines(capture[0]);
|
|
169
|
+
if (lines.length === 0)
|
|
170
|
+
return [];
|
|
171
|
+
levelIndents(lines);
|
|
172
|
+
// One node per run, because a block can hold several lists: switching between bullets and
|
|
173
|
+
// numbers starts a new one, and so does a line shallower than the one that opened this run.
|
|
174
|
+
// SimpleMarkdown flattens an array of nodes into its output.
|
|
175
|
+
const nodes = [];
|
|
176
|
+
let i = 0;
|
|
177
|
+
while (i < lines.length) {
|
|
178
|
+
const built = build(lines, lines[i].depth, i, parse, state, false);
|
|
179
|
+
nodes.push(built.node);
|
|
180
|
+
i = built.next;
|
|
181
|
+
}
|
|
182
|
+
return nodes;
|
|
183
|
+
},
|
|
184
|
+
};
|
|
185
|
+
// Built once. discord-markdown-parser builds its own parsers at module load for the same reason:
|
|
186
|
+
// parserFor filters and sorts every rule, and this runs for every message, embed field and reply.
|
|
187
|
+
const parser = discord_markdown_parser_1.SimpleMarkdown.parserFor({ ...discord_markdown_parser_1.rulesExtended, list: exports.list });
|
|
188
|
+
/**
|
|
189
|
+
*
|
|
190
|
+
* Parse message content with list support added to the extended rules.
|
|
191
|
+
* `parse` from discord-markdown-parser cannot be used directly because its rule set has no list
|
|
192
|
+
* rule at all, so bullets arrive as plain text.
|
|
193
|
+
* @param content - The message content
|
|
194
|
+
* @returns The parsed nodes
|
|
195
|
+
*/
|
|
196
|
+
const parseWithLists = (content) => parser(content, { inline: true });
|
|
197
|
+
exports.parseWithLists = parseWithLists;
|
|
198
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/utils/list.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/utils.d.ts
CHANGED
|
@@ -28,4 +28,22 @@ export declare const hasFlag: (options: FlagsOptions) => boolean;
|
|
|
28
28
|
* @returns
|
|
29
29
|
*/
|
|
30
30
|
export declare const convertToHEX: (color?: number) => string;
|
|
31
|
+
/**
|
|
32
|
+
*
|
|
33
|
+
* Serialize a value as JSON that is safe to inline into a `<script>` element.
|
|
34
|
+
* The HTML parser reads a script element as raw text, so the first `</script>` inside any string
|
|
35
|
+
* closes the element early and everything after it is parsed as markup. `<!--<script` reaches the
|
|
36
|
+
* same end by another route, through the script data double escaped state. Every exit from the
|
|
37
|
+
* script data state starts with a `<`, so escaping that one character is what closes both.
|
|
38
|
+
* `>` and `&` are escaped as well. Neither is special in raw text, so neither is needed for the
|
|
39
|
+
* tokenizer, but escaping them keeps the output safe if it is ever moved inside a comment or served
|
|
40
|
+
* as XHTML, where the script body is parsed as XML. This is the set Next.js escapes.
|
|
41
|
+
* U+2028 and U+2029 are escaped because they are legal in JSON but were line terminators in
|
|
42
|
+
* JavaScript before ES2019, and this output is read as a JavaScript expression.
|
|
43
|
+
* The parameter is a record or an array rather than `object`, which also admits functions and
|
|
44
|
+
* classes. JSON.stringify returns undefined for those, and the replace would throw on it.
|
|
45
|
+
* @param value - The value to serialize
|
|
46
|
+
* @returns The JSON representation of the value, safe to inline
|
|
47
|
+
*/
|
|
48
|
+
export declare const stringifyForScript: (value: Record<string, unknown> | readonly unknown[]) => string;
|
|
31
49
|
export {};
|
package/dist/utils/utils.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.convertToHEX = exports.hasFlag = void 0;
|
|
6
|
+
exports.stringifyForScript = exports.convertToHEX = exports.hasFlag = void 0;
|
|
7
7
|
exports.isDefined = isDefined;
|
|
8
8
|
exports.formatBytes = formatBytes;
|
|
9
9
|
exports.parseDiscordEmoji = parseDiscordEmoji;
|
|
@@ -58,4 +58,23 @@ exports.hasFlag = hasFlag;
|
|
|
58
58
|
*/
|
|
59
59
|
const convertToHEX = (color) => (color ? `#${color.toString(16).padStart(6, '0')}` : '#FFFFFF');
|
|
60
60
|
exports.convertToHEX = convertToHEX;
|
|
61
|
+
/**
|
|
62
|
+
*
|
|
63
|
+
* Serialize a value as JSON that is safe to inline into a `<script>` element.
|
|
64
|
+
* The HTML parser reads a script element as raw text, so the first `</script>` inside any string
|
|
65
|
+
* closes the element early and everything after it is parsed as markup. `<!--<script` reaches the
|
|
66
|
+
* same end by another route, through the script data double escaped state. Every exit from the
|
|
67
|
+
* script data state starts with a `<`, so escaping that one character is what closes both.
|
|
68
|
+
* `>` and `&` are escaped as well. Neither is special in raw text, so neither is needed for the
|
|
69
|
+
* tokenizer, but escaping them keeps the output safe if it is ever moved inside a comment or served
|
|
70
|
+
* as XHTML, where the script body is parsed as XML. This is the set Next.js escapes.
|
|
71
|
+
* U+2028 and U+2029 are escaped because they are legal in JSON but were line terminators in
|
|
72
|
+
* JavaScript before ES2019, and this output is read as a JavaScript expression.
|
|
73
|
+
* The parameter is a record or an array rather than `object`, which also admits functions and
|
|
74
|
+
* classes. JSON.stringify returns undefined for those, and the replace would throw on it.
|
|
75
|
+
* @param value - The value to serialize
|
|
76
|
+
* @returns The JSON representation of the value, safe to inline
|
|
77
|
+
*/
|
|
78
|
+
const stringifyForScript = (value) => JSON.stringify(value).replace(/[<>&\u2028\u2029]/g, (char) => `\\u${char.charCodeAt(0).toString(16).padStart(4, '0')}`);
|
|
79
|
+
exports.stringifyForScript = stringifyForScript;
|
|
61
80
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sweety-html-transcripts",
|
|
3
|
-
"version": "0.2.7-dev-
|
|
3
|
+
"version": "0.2.7-dev-32718160566.0",
|
|
4
4
|
"description": "A sweety formatted html transcript generator for discord bots.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"vite": "vite",
|
|
16
16
|
"test:seyfert": "tsx ./tests/seyfert-generate.ts",
|
|
17
17
|
"test:djs": "tsx ./tests/djs-generate.ts",
|
|
18
|
+
"test:escape": "tsx ./tests/stringify-for-script.ts",
|
|
18
19
|
"update-components": "pnpm update @penwin/*@latest"
|
|
19
20
|
},
|
|
20
21
|
"lint-staged": {
|
|
@@ -66,27 +67,27 @@
|
|
|
66
67
|
"@eslint/eslintrc": "^3.3.6",
|
|
67
68
|
"@eslint/js": "^10.0.1",
|
|
68
69
|
"@penwin/discord-components-core": "^4.3.8",
|
|
69
|
-
"@types/node": "^26.
|
|
70
|
-
"@types/react": "^19.2.
|
|
71
|
-
"@types/react-dom": "^19.2.
|
|
72
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
73
|
-
"@typescript-eslint/parser": "^8.
|
|
70
|
+
"@types/node": "^26.2.0",
|
|
71
|
+
"@types/react": "^19.2.18",
|
|
72
|
+
"@types/react-dom": "^19.2.4",
|
|
73
|
+
"@typescript-eslint/eslint-plugin": "^8.67.0",
|
|
74
|
+
"@typescript-eslint/parser": "^8.67.0",
|
|
74
75
|
"discord.js": "^14.27.0",
|
|
75
76
|
"dotenv": "^17.4.2",
|
|
76
|
-
"eslint": "^10.
|
|
77
|
-
"globals": "^17.
|
|
77
|
+
"eslint": "^10.9.0",
|
|
78
|
+
"globals": "^17.11.0",
|
|
78
79
|
"husky": "^9.1.7",
|
|
79
|
-
"lint-staged": "^17.
|
|
80
|
+
"lint-staged": "^17.3.0",
|
|
80
81
|
"prettier": "^3.9.6",
|
|
81
82
|
"seyfert": "5.0.1-dev-29307366727.0",
|
|
82
83
|
"sharp": "^0.35.3",
|
|
83
|
-
"tsx": "^4.23.
|
|
84
|
+
"tsx": "^4.23.12",
|
|
84
85
|
"typescript": "npm:@typescript/typescript6@^6.0.2"
|
|
85
86
|
},
|
|
86
87
|
"dependencies": {
|
|
87
88
|
"@derockdev/discord-components-core": "^3.6.1",
|
|
88
89
|
"@penwin/discord-components-react-render": "^4.3.8",
|
|
89
|
-
"discord-api-types": "^0.38.
|
|
90
|
+
"discord-api-types": "^0.38.53",
|
|
90
91
|
"discord-markdown-parser": "~1.3.1",
|
|
91
92
|
"react": "19.2.8",
|
|
92
93
|
"react-dom": "19.2.8",
|
|
@@ -100,5 +101,5 @@
|
|
|
100
101
|
"overrides": {
|
|
101
102
|
"react": "$react"
|
|
102
103
|
},
|
|
103
|
-
"packageManager": "pnpm@11.
|
|
104
|
+
"packageManager": "pnpm@11.22.0+sha512.1ff870c4c6133dfd88fb2afc46dd13d47f09c9794b438c6fdb47ca98caf3bc16381ee0be93a091b8e3824cf01f889f46d7d9e20910fb0be1ab0fb5baa80dd621"
|
|
104
105
|
}
|