@code.store/arcxp-sdk-ts 4.34.1 → 4.36.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/api/content/types.d.ts +1 -0
- package/dist/api/draft/index.d.ts +2 -1
- package/dist/api/draft/index.js +4 -0
- package/dist/api/draft/index.js.map +1 -1
- package/dist/api/draft/types.d.ts +5 -0
- package/dist/content-elements/content-elements.d.ts +212 -0
- package/dist/content-elements/content-elements.js +202 -0
- package/dist/content-elements/content-elements.js.map +1 -0
- package/dist/content-elements/html/html.constants.d.ts +1 -0
- package/dist/content-elements/html/html.constants.js +40 -0
- package/dist/content-elements/html/html.constants.js.map +1 -0
- package/dist/content-elements/html/html.processor.d.ts +106 -0
- package/dist/content-elements/html/html.processor.js +359 -0
- package/dist/content-elements/html/html.processor.js.map +1 -0
- package/dist/content-elements/html/html.utils.d.ts +15 -0
- package/dist/content-elements/html/html.utils.js +69 -0
- package/dist/content-elements/html/html.utils.js.map +1 -0
- package/dist/content-elements/html/index.d.ts +3 -0
- package/dist/content-elements/html/index.js +31 -0
- package/dist/content-elements/html/index.js.map +1 -0
- package/dist/content-elements/index.d.ts +2 -213
- package/dist/content-elements/index.js +29 -199
- package/dist/content-elements/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/mapper/doc.d.ts +2 -2
- package/dist/tests/content-elements/html.processor.test.d.ts +1 -0
- package/dist/tests/content-elements/html.processor.test.js +35 -0
- package/dist/tests/content-elements/html.processor.test.js.map +1 -0
- package/dist/types/content-elements.d.ts +4 -0
- package/dist/types/content-elements.js +3 -0
- package/dist/types/content-elements.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.js +2 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/arc/content.d.ts +2 -1
- package/dist/utils/arc/content.js +3 -1
- package/dist/utils/arc/content.js.map +1 -1
- package/package.json +10 -12
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HTMLProcessor = void 0;
|
|
4
|
+
const node_html_parser_1 = require("node-html-parser");
|
|
5
|
+
const content_elements_1 = require("../content-elements");
|
|
6
|
+
const html_constants_1 = require("./html.constants");
|
|
7
|
+
const html_utils_1 = require("./html.utils");
|
|
8
|
+
/**
|
|
9
|
+
* HTMLProcessor is responsible for parsing HTML content into structured content elements.
|
|
10
|
+
* It provides a flexible way to handle different HTML nodes and wrap text content.
|
|
11
|
+
*
|
|
12
|
+
* The processor can be extended with custom handlers for specific node types and
|
|
13
|
+
* wrappers for text content.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* // Create and initialize processor
|
|
18
|
+
* const processor = new HTMLProcessor();
|
|
19
|
+
* processor.init();
|
|
20
|
+
*
|
|
21
|
+
* // Parse HTML content
|
|
22
|
+
* const html = '<div><p>Some text</p><img src="image.jpg"></div>';
|
|
23
|
+
* const elements = await processor.parse(html);
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* The processor comes with built-in handlers for common HTML elements like links,
|
|
27
|
+
* text formatting (i, u, strong), and block elements. Custom handlers can be added
|
|
28
|
+
* using the `handle()` and `wrap()` methods.
|
|
29
|
+
*/
|
|
30
|
+
class HTMLProcessor {
|
|
31
|
+
constructor() {
|
|
32
|
+
this.handlers = {
|
|
33
|
+
node: new Map(),
|
|
34
|
+
wrap: new Map(),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
init() {
|
|
38
|
+
// wrappers are used to wrap the content of nested text nodes
|
|
39
|
+
// in a specific way
|
|
40
|
+
this.wrap('link', (node, text) => {
|
|
41
|
+
if ((0, html_utils_1.nodeTagIn)(node, ['a'])) {
|
|
42
|
+
const attributes = ['href', 'target', 'rel']
|
|
43
|
+
.map((attr) => [attr, (0, html_utils_1.getHTMLElementAttribute)(node, attr)])
|
|
44
|
+
.filter(([_, value]) => value)
|
|
45
|
+
.map(([key, value]) => `${key}="${value}"`)
|
|
46
|
+
.join(' ');
|
|
47
|
+
return {
|
|
48
|
+
...text,
|
|
49
|
+
content: `<a ${attributes}>${text.content}</a>`,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
this.wrap('i', (node, text) => {
|
|
54
|
+
if ((0, html_utils_1.nodeTagIn)(node, ['i'])) {
|
|
55
|
+
return {
|
|
56
|
+
...text,
|
|
57
|
+
content: `<i>${text.content}</i>`,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
this.wrap('u', (node, text) => {
|
|
62
|
+
if ((0, html_utils_1.nodeTagIn)(node, ['u'])) {
|
|
63
|
+
return {
|
|
64
|
+
...text,
|
|
65
|
+
content: `<u>${text.content}</u>`,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
this.wrap('sup/sub', (node, text) => {
|
|
70
|
+
if ((0, html_utils_1.nodeTagIn)(node, ['sup', 'sub'])) {
|
|
71
|
+
return {
|
|
72
|
+
...text,
|
|
73
|
+
content: `<mark class="${node.tagName.toLowerCase()}">${text.content}</mark>`,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
this.wrap('strong', (node, text) => {
|
|
78
|
+
if ((0, html_utils_1.nodeTagIn)(node, ['strong', 'b'])) {
|
|
79
|
+
return {
|
|
80
|
+
...text,
|
|
81
|
+
content: `<b>${text.content}</b>`,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
this.wrap('center', (node, text) => {
|
|
86
|
+
if ((0, html_utils_1.nodeTagIn)(node, ['center'])) {
|
|
87
|
+
return {
|
|
88
|
+
...text,
|
|
89
|
+
alignment: 'center',
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
this.wrap('aligned-paragraph', (node, text) => {
|
|
94
|
+
if ((0, html_utils_1.nodeTagIn)(node, ['p'])) {
|
|
95
|
+
const styleAttribute = (0, html_utils_1.getHTMLElementAttribute)(node, 'style') || '';
|
|
96
|
+
if (!styleAttribute)
|
|
97
|
+
return text;
|
|
98
|
+
if (styleAttribute.includes('text-align: right;')) {
|
|
99
|
+
return {
|
|
100
|
+
...text,
|
|
101
|
+
alignment: 'right',
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
if (styleAttribute.includes('text-align: left;')) {
|
|
105
|
+
return {
|
|
106
|
+
...text,
|
|
107
|
+
alignment: 'left',
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
if (styleAttribute.includes('text-align: center;')) {
|
|
111
|
+
return {
|
|
112
|
+
...text,
|
|
113
|
+
alignment: 'center',
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
return text;
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
// handlers are used to handle specific nodes
|
|
120
|
+
// and return a list of content elements
|
|
121
|
+
this.handle('default', (node) => {
|
|
122
|
+
const noTag = (0, html_utils_1.isHTMLElement)(node) && !node.tagName;
|
|
123
|
+
if (noTag ||
|
|
124
|
+
(0, html_utils_1.nodeTagIn)(node, [
|
|
125
|
+
'p',
|
|
126
|
+
'a',
|
|
127
|
+
'b',
|
|
128
|
+
'sup',
|
|
129
|
+
'sub',
|
|
130
|
+
'span',
|
|
131
|
+
'strong',
|
|
132
|
+
'em',
|
|
133
|
+
'i',
|
|
134
|
+
'u',
|
|
135
|
+
'section',
|
|
136
|
+
'main',
|
|
137
|
+
'div',
|
|
138
|
+
'li',
|
|
139
|
+
'center',
|
|
140
|
+
])) {
|
|
141
|
+
return this.handleNested(node);
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
this.handle('headers', (node) => {
|
|
145
|
+
if ((0, html_utils_1.nodeTagIn)(node, ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'])) {
|
|
146
|
+
return this.createHeader(node);
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
this.handle('text', (node) => {
|
|
150
|
+
if ((0, html_utils_1.isTextNode)(node)) {
|
|
151
|
+
return this.createText(node);
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
this.handle('comment', (node) => {
|
|
155
|
+
if ((0, html_utils_1.isCommentNode)(node)) {
|
|
156
|
+
return this.handleComment(node);
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
this.handle('list', async (node) => {
|
|
160
|
+
if ((0, html_utils_1.nodeTagIn)(node, ['ul', 'ol'])) {
|
|
161
|
+
const listType = node.tagName === 'UL' ? 'unordered' : 'ordered';
|
|
162
|
+
return this.createList(node, listType);
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
this.handle('table', (node) => {
|
|
166
|
+
if ((0, html_utils_1.nodeTagIs)(node, 'table')) {
|
|
167
|
+
return this.handleTable(node);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
this.handle('iframe', (node) => {
|
|
171
|
+
if ((0, html_utils_1.nodeTagIs)(node, 'iframe')) {
|
|
172
|
+
return this.handleIframe(node);
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
this.handle('img', (node) => {
|
|
176
|
+
if ((0, html_utils_1.nodeTagIs)(node, 'img')) {
|
|
177
|
+
return this.handleImage(node);
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
this.handle('br', (node) => {
|
|
181
|
+
if ((0, html_utils_1.nodeTagIs)(node, 'br')) {
|
|
182
|
+
return this.handleBreak(node);
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
handle(name, handler) {
|
|
187
|
+
if (this.handlers.node.has(name)) {
|
|
188
|
+
return this.warn({ name }, `${name} node handler already set`);
|
|
189
|
+
}
|
|
190
|
+
this.handlers.node.set(name, handler);
|
|
191
|
+
}
|
|
192
|
+
wrap(name, handler) {
|
|
193
|
+
if (this.handlers.wrap.has(name)) {
|
|
194
|
+
throw new Error(`${name} wrap handler already set`);
|
|
195
|
+
}
|
|
196
|
+
this.handlers.wrap.set(name, handler);
|
|
197
|
+
}
|
|
198
|
+
async parse(html) {
|
|
199
|
+
const doc = (0, node_html_parser_1.parse)(html, { comment: true });
|
|
200
|
+
doc.removeWhitespace();
|
|
201
|
+
const elements = await this.process(doc);
|
|
202
|
+
const filtered = elements?.filter((e) => e.type !== 'divider');
|
|
203
|
+
return filtered || [];
|
|
204
|
+
}
|
|
205
|
+
addTextAdditionalProperties(c, parent) {
|
|
206
|
+
const additionalProperties = c.additional_properties || {};
|
|
207
|
+
const parentNodeIsBlockElement = this.isBlockElement(parent);
|
|
208
|
+
c.additional_properties = {
|
|
209
|
+
...c.additional_properties,
|
|
210
|
+
isBlockElement: additionalProperties.isBlockElement || parentNodeIsBlockElement,
|
|
211
|
+
};
|
|
212
|
+
return c;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Wraps text content elements with additional properties and handlers.
|
|
216
|
+
* This method iterates through an array of content elements and applies
|
|
217
|
+
* wrappers to text elements.
|
|
218
|
+
*
|
|
219
|
+
* @param node - The HTML node containing the text elements
|
|
220
|
+
**/
|
|
221
|
+
wrapChildrenTextNodes(node, elements) {
|
|
222
|
+
const wrapped = [];
|
|
223
|
+
const wrappers = [...this.handlers.wrap.values()];
|
|
224
|
+
for (const c of elements) {
|
|
225
|
+
if (!(0, html_utils_1.isTextCE)(c)) {
|
|
226
|
+
wrapped.push(c);
|
|
227
|
+
continue;
|
|
228
|
+
}
|
|
229
|
+
this.addTextAdditionalProperties(c, node);
|
|
230
|
+
const handled = wrappers.map((wrapper) => wrapper(node, c)).find(Boolean);
|
|
231
|
+
wrapped.push(handled || c);
|
|
232
|
+
}
|
|
233
|
+
return wrapped;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Handles nested nodes by processing their children and merging text elements.
|
|
237
|
+
* This method recursively processes the children of a given HTML node and
|
|
238
|
+
* returns a list of content elements.
|
|
239
|
+
*
|
|
240
|
+
* @param node - The HTML node to process
|
|
241
|
+
**/
|
|
242
|
+
async handleNested(node) {
|
|
243
|
+
const children = await Promise.all(node.childNodes.map((child) => this.process(child)));
|
|
244
|
+
const filtered = children.filter(Boolean).flat();
|
|
245
|
+
const merged = this.mergeParagraphs(filtered);
|
|
246
|
+
const wrapped = this.wrapChildrenTextNodes(node, merged);
|
|
247
|
+
return wrapped;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Processes a single HTML node and converts it into content elements.
|
|
251
|
+
* This method iterates through registered node handlers and attempts to process the node.
|
|
252
|
+
* If a handler successfully processes the node, it returns an array of content elements.
|
|
253
|
+
*
|
|
254
|
+
* @param node - The HTML node to process
|
|
255
|
+
* @returns Promise resolving to an array of content elements, or undefined if node cannot be processed
|
|
256
|
+
*/
|
|
257
|
+
async process(node) {
|
|
258
|
+
let isKnownNode = false;
|
|
259
|
+
const elements = [];
|
|
260
|
+
for (const [name, handler] of this.handlers.node.entries()) {
|
|
261
|
+
try {
|
|
262
|
+
const result = await handler(node);
|
|
263
|
+
if (result) {
|
|
264
|
+
// if handler returns an array of elements, it means that the node was handled properly, even if there is no elements inside
|
|
265
|
+
isKnownNode = true;
|
|
266
|
+
elements.push(...result);
|
|
267
|
+
break;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
catch (error) {
|
|
271
|
+
this.warn({ node: node.toString(), error: error.toString(), name }, 'HandlerError');
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
if (isKnownNode)
|
|
275
|
+
return elements;
|
|
276
|
+
this.warn({ node: node.toString() }, 'UnknownNodeError');
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Merges adjacent text content elements into a single paragraph.
|
|
280
|
+
* This method iterates through an array of content elements and combines
|
|
281
|
+
* adjacent text elements into a single paragraph.
|
|
282
|
+
*
|
|
283
|
+
* @param items - The array of content elements to merge
|
|
284
|
+
**/
|
|
285
|
+
mergeParagraphs(items) {
|
|
286
|
+
const merged = [];
|
|
287
|
+
let toMerge = [];
|
|
288
|
+
const merge = () => {
|
|
289
|
+
if (!toMerge.length)
|
|
290
|
+
return;
|
|
291
|
+
const paragraph = toMerge.reduce((acc, p) => {
|
|
292
|
+
return {
|
|
293
|
+
...p,
|
|
294
|
+
content: acc.content + p.content,
|
|
295
|
+
};
|
|
296
|
+
}, { type: 'text', content: '' });
|
|
297
|
+
merged.push(paragraph);
|
|
298
|
+
toMerge = [];
|
|
299
|
+
};
|
|
300
|
+
for (let i = 0; i < items.length; i++) {
|
|
301
|
+
const item = items[i];
|
|
302
|
+
const isBlockElement = item.additional_properties?.isBlockElement;
|
|
303
|
+
if ((0, html_utils_1.isTextCE)(item) && !isBlockElement) {
|
|
304
|
+
toMerge.push(item);
|
|
305
|
+
}
|
|
306
|
+
else {
|
|
307
|
+
merge();
|
|
308
|
+
merged.push(item);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
merge();
|
|
312
|
+
return merged;
|
|
313
|
+
}
|
|
314
|
+
handleComment(_) {
|
|
315
|
+
return [];
|
|
316
|
+
}
|
|
317
|
+
async handleTable(node) {
|
|
318
|
+
return [content_elements_1.ContentElement.raw_html(node.toString())];
|
|
319
|
+
}
|
|
320
|
+
async handleIframe(node) {
|
|
321
|
+
return [content_elements_1.ContentElement.raw_html(node.toString())];
|
|
322
|
+
}
|
|
323
|
+
async handleImage(node) {
|
|
324
|
+
return [content_elements_1.ContentElement.raw_html(node.toString())];
|
|
325
|
+
}
|
|
326
|
+
async handleBreak(_) {
|
|
327
|
+
return [content_elements_1.ContentElement.divider()];
|
|
328
|
+
}
|
|
329
|
+
async createQuote(node) {
|
|
330
|
+
const items = await this.handleNested(node);
|
|
331
|
+
return [content_elements_1.ContentElement.quote(items)];
|
|
332
|
+
}
|
|
333
|
+
async createText(node) {
|
|
334
|
+
const text = content_elements_1.ContentElement.text(node.text);
|
|
335
|
+
return [text];
|
|
336
|
+
}
|
|
337
|
+
filterListItems(items) {
|
|
338
|
+
return items.filter((i) => ['text', 'list'].includes(i.type));
|
|
339
|
+
}
|
|
340
|
+
async createList(node, type) {
|
|
341
|
+
const items = await this.handleNested(node);
|
|
342
|
+
return [content_elements_1.ContentElement.list(type, this.filterListItems(items))];
|
|
343
|
+
}
|
|
344
|
+
async createHeader(node) {
|
|
345
|
+
const level = +node.tagName.split('H')[1] || 3;
|
|
346
|
+
return [content_elements_1.ContentElement.header(node.innerText, level)];
|
|
347
|
+
}
|
|
348
|
+
isBlockElement(node) {
|
|
349
|
+
if (!(0, html_utils_1.isHTMLElement)(node))
|
|
350
|
+
return false;
|
|
351
|
+
const defaultBlockElements = new Set(html_constants_1.BLOCK_ELEMENT_TAGS);
|
|
352
|
+
return defaultBlockElements.has(node.tagName);
|
|
353
|
+
}
|
|
354
|
+
warn(metadata, message) {
|
|
355
|
+
console.warn(metadata, message);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
exports.HTMLProcessor = HTMLProcessor;
|
|
359
|
+
//# sourceMappingURL=html.processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html.processor.js","sourceRoot":"","sources":["../../../src/content-elements/html/html.processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { HTMLElement, CommentNode, type Options, TextNode, type Node } from 'node-html-parser';
|
|
2
|
+
import type { CElement } from '../../types/content-elements';
|
|
3
|
+
export declare const isTextNode: (node?: Node) => node is TextNode;
|
|
4
|
+
export declare const isHTMLElement: (node?: Node) => node is HTMLElement;
|
|
5
|
+
export declare const isCommentNode: (node?: Node) => node is CommentNode;
|
|
6
|
+
export declare const nodeTagIs: (node: Node, name: string) => node is HTMLElement;
|
|
7
|
+
export declare const nodeTagIn: (node: Node, names: string[]) => node is HTMLElement;
|
|
8
|
+
export declare const isTextCE: (ce?: CElement) => ce is {
|
|
9
|
+
type: "text";
|
|
10
|
+
content: string;
|
|
11
|
+
alignment: import("../../types/story").Alignment;
|
|
12
|
+
};
|
|
13
|
+
export declare const decodeHTMLEntities: (str: string) => string;
|
|
14
|
+
export declare const htmlToText: (html?: string | null, parseOptions?: Partial<Options>) => string;
|
|
15
|
+
export declare const getHTMLElementAttribute: (e: HTMLElement, key: string) => string | null;
|
|
@@ -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 (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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.getHTMLElementAttribute = exports.htmlToText = exports.decodeHTMLEntities = exports.isTextCE = exports.nodeTagIn = exports.nodeTagIs = exports.isCommentNode = exports.isHTMLElement = exports.isTextNode = void 0;
|
|
27
|
+
const html_entities_1 = require("html-entities");
|
|
28
|
+
const node_html_parser_1 = __importStar(require("node-html-parser"));
|
|
29
|
+
const isTextNode = (node) => {
|
|
30
|
+
return node instanceof node_html_parser_1.TextNode;
|
|
31
|
+
};
|
|
32
|
+
exports.isTextNode = isTextNode;
|
|
33
|
+
const isHTMLElement = (node) => {
|
|
34
|
+
return node instanceof node_html_parser_1.HTMLElement;
|
|
35
|
+
};
|
|
36
|
+
exports.isHTMLElement = isHTMLElement;
|
|
37
|
+
const isCommentNode = (node) => {
|
|
38
|
+
return node instanceof node_html_parser_1.CommentNode;
|
|
39
|
+
};
|
|
40
|
+
exports.isCommentNode = isCommentNode;
|
|
41
|
+
const nodeTagIs = (node, name) => {
|
|
42
|
+
return (0, exports.isHTMLElement)(node) && node.tagName?.toLowerCase() === name.toLowerCase();
|
|
43
|
+
};
|
|
44
|
+
exports.nodeTagIs = nodeTagIs;
|
|
45
|
+
const nodeTagIn = (node, names) => {
|
|
46
|
+
return (0, exports.isHTMLElement)(node) && names.includes(node.tagName?.toLowerCase());
|
|
47
|
+
};
|
|
48
|
+
exports.nodeTagIn = nodeTagIn;
|
|
49
|
+
const isTextCE = (ce) => {
|
|
50
|
+
return ce?.type === 'text';
|
|
51
|
+
};
|
|
52
|
+
exports.isTextCE = isTextCE;
|
|
53
|
+
const decodeHTMLEntities = (str) => (0, html_entities_1.decode)(str);
|
|
54
|
+
exports.decodeHTMLEntities = decodeHTMLEntities;
|
|
55
|
+
const htmlToText = (html, parseOptions) => {
|
|
56
|
+
if (!html)
|
|
57
|
+
return '';
|
|
58
|
+
const doc = (0, node_html_parser_1.default)(html, parseOptions);
|
|
59
|
+
return (0, exports.decodeHTMLEntities)(doc.innerText);
|
|
60
|
+
};
|
|
61
|
+
exports.htmlToText = htmlToText;
|
|
62
|
+
const getHTMLElementAttribute = (e, key) => {
|
|
63
|
+
const value = e.getAttribute(key);
|
|
64
|
+
if (value)
|
|
65
|
+
return value;
|
|
66
|
+
return new URLSearchParams(e.rawAttrs.replaceAll(' ', '&')).get(key);
|
|
67
|
+
};
|
|
68
|
+
exports.getHTMLElementAttribute = getHTMLElementAttribute;
|
|
69
|
+
//# sourceMappingURL=html.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html.utils.js","sourceRoot":"","sources":["../../../src/content-elements/html/html.utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAuC;AACvC,qEAAsG;AAG/F,MAAM,UAAU,GAAG,CAAC,IAAW,EAAoB,EAAE;IAC1D,OAAO,IAAI,YAAY,2BAAQ,CAAC;AAClC,CAAC,CAAC;AAFW,QAAA,UAAU,cAErB;AAEK,MAAM,aAAa,GAAG,CAAC,IAAW,EAAuB,EAAE;IAChE,OAAO,IAAI,YAAY,8BAAW,CAAC;AACrC,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB;AAEK,MAAM,aAAa,GAAG,CAAC,IAAW,EAAuB,EAAE;IAChE,OAAO,IAAI,YAAY,8BAAW,CAAC;AACrC,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB;AAEK,MAAM,SAAS,GAAG,CAAC,IAAU,EAAE,IAAY,EAAuB,EAAE;IACzE,OAAO,IAAA,qBAAa,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;AACnF,CAAC,CAAC;AAFW,QAAA,SAAS,aAEpB;AAEK,MAAM,SAAS,GAAG,CAAC,IAAU,EAAE,KAAe,EAAuB,EAAE;IAC5E,OAAO,IAAA,qBAAa,EAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;AAC5E,CAAC,CAAC;AAFW,QAAA,SAAS,aAEpB;AAEK,MAAM,QAAQ,GAAG,CAAC,EAAa,EAAoC,EAAE;IAC1E,OAAO,EAAE,EAAE,IAAI,KAAK,MAAM,CAAC;AAC7B,CAAC,CAAC;AAFW,QAAA,QAAQ,YAEnB;AAEK,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAA,sBAAM,EAAC,GAAG,CAAC,CAAC;AAAlD,QAAA,kBAAkB,sBAAgC;AAExD,MAAM,UAAU,GAAG,CAAC,IAAoB,EAAE,YAA+B,EAAE,EAAE;IAClF,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,GAAG,GAAG,IAAA,0BAAK,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,OAAO,IAAA,0BAAkB,EAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC3C,CAAC,CAAC;AAJW,QAAA,UAAU,cAIrB;AAEK,MAAM,uBAAuB,GAAG,CAAC,CAAc,EAAE,GAAW,EAAE,EAAE;IACrE,MAAM,KAAK,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IAExB,OAAO,IAAI,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACvE,CAAC,CAAC;AALW,QAAA,uBAAuB,2BAKlC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.Utils = exports.HTMLProcessor = exports.Constants = void 0;
|
|
27
|
+
exports.Constants = __importStar(require("./html.constants"));
|
|
28
|
+
var html_processor_1 = require("./html.processor");
|
|
29
|
+
Object.defineProperty(exports, "HTMLProcessor", { enumerable: true, get: function () { return html_processor_1.HTMLProcessor; } });
|
|
30
|
+
exports.Utils = __importStar(require("./html.utils"));
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/content-elements/html/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAA8C;AAC9C,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,sDAAsC"}
|