parse5 6.0.1 → 7.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/common/doctype.d.ts +4 -0
  3. package/dist/cjs/common/doctype.js +118 -0
  4. package/dist/cjs/common/error-codes.d.ts +67 -0
  5. package/dist/cjs/common/error-codes.js +66 -0
  6. package/dist/cjs/common/foreign-content.d.ts +9 -0
  7. package/dist/cjs/common/foreign-content.js +237 -0
  8. package/dist/cjs/common/html.d.ts +289 -0
  9. package/dist/cjs/common/html.js +528 -0
  10. package/dist/cjs/common/token.d.ts +84 -0
  11. package/dist/cjs/common/token.js +24 -0
  12. package/dist/cjs/common/unicode.d.ts +42 -0
  13. package/dist/cjs/common/unicode.js +70 -0
  14. package/dist/cjs/index.d.ts +71 -0
  15. package/dist/cjs/index.js +54 -0
  16. package/dist/cjs/package.json +1 -0
  17. package/dist/cjs/parser/formatting-element-list.d.ts +36 -0
  18. package/dist/cjs/parser/formatting-element-list.js +114 -0
  19. package/dist/cjs/parser/index.d.ts +221 -0
  20. package/dist/cjs/parser/index.js +3240 -0
  21. package/dist/cjs/parser/open-element-stack.d.ts +53 -0
  22. package/dist/cjs/parser/open-element-stack.js +328 -0
  23. package/dist/cjs/serializer/index.d.ts +60 -0
  24. package/dist/cjs/serializer/index.js +172 -0
  25. package/dist/cjs/tokenizer/index.d.ts +247 -0
  26. package/dist/cjs/tokenizer/index.js +2714 -0
  27. package/dist/cjs/tokenizer/preprocessor.d.ts +36 -0
  28. package/dist/cjs/tokenizer/preprocessor.js +200 -0
  29. package/dist/cjs/tree-adapters/default.d.ts +84 -0
  30. package/dist/cjs/tree-adapters/default.js +176 -0
  31. package/dist/cjs/tree-adapters/interface.d.ts +255 -0
  32. package/dist/cjs/tree-adapters/interface.js +2 -0
  33. package/dist/common/doctype.d.ts +4 -0
  34. package/{lib → dist}/common/doctype.js +24 -72
  35. package/dist/common/error-codes.d.ts +67 -0
  36. package/dist/common/error-codes.js +63 -0
  37. package/dist/common/foreign-content.d.ts +9 -0
  38. package/dist/common/foreign-content.js +228 -0
  39. package/dist/common/html.d.ts +289 -0
  40. package/dist/common/html.js +523 -0
  41. package/dist/common/token.d.ts +84 -0
  42. package/dist/common/token.js +20 -0
  43. package/dist/common/unicode.d.ts +42 -0
  44. package/dist/common/unicode.js +62 -0
  45. package/dist/index.d.ts +71 -0
  46. package/dist/index.js +42 -0
  47. package/dist/parser/formatting-element-list.d.ts +36 -0
  48. package/dist/parser/formatting-element-list.js +110 -0
  49. package/dist/parser/index.d.ts +221 -0
  50. package/dist/parser/index.js +3245 -0
  51. package/dist/parser/open-element-stack.d.ts +53 -0
  52. package/dist/parser/open-element-stack.js +324 -0
  53. package/dist/serializer/index.d.ts +60 -0
  54. package/dist/serializer/index.js +168 -0
  55. package/dist/tokenizer/index.d.ts +247 -0
  56. package/dist/tokenizer/index.js +2710 -0
  57. package/dist/tokenizer/preprocessor.d.ts +36 -0
  58. package/dist/tokenizer/preprocessor.js +196 -0
  59. package/dist/tree-adapters/default.d.ts +84 -0
  60. package/dist/tree-adapters/default.js +173 -0
  61. package/dist/tree-adapters/interface.d.ts +255 -0
  62. package/dist/tree-adapters/interface.js +1 -0
  63. package/package.json +21 -6
  64. package/lib/common/error-codes.js +0 -65
  65. package/lib/common/foreign-content.js +0 -265
  66. package/lib/common/html.js +0 -272
  67. package/lib/common/unicode.js +0 -109
  68. package/lib/extensions/error-reporting/mixin-base.js +0 -43
  69. package/lib/extensions/error-reporting/parser-mixin.js +0 -52
  70. package/lib/extensions/error-reporting/preprocessor-mixin.js +0 -24
  71. package/lib/extensions/error-reporting/tokenizer-mixin.js +0 -17
  72. package/lib/extensions/location-info/open-element-stack-mixin.js +0 -35
  73. package/lib/extensions/location-info/parser-mixin.js +0 -223
  74. package/lib/extensions/location-info/tokenizer-mixin.js +0 -146
  75. package/lib/extensions/position-tracking/preprocessor-mixin.js +0 -64
  76. package/lib/index.js +0 -29
  77. package/lib/parser/formatting-element-list.js +0 -181
  78. package/lib/parser/index.js +0 -2956
  79. package/lib/parser/open-element-stack.js +0 -482
  80. package/lib/serializer/index.js +0 -176
  81. package/lib/tokenizer/index.js +0 -2196
  82. package/lib/tokenizer/named-entity-data.js +0 -5
  83. package/lib/tokenizer/preprocessor.js +0 -159
  84. package/lib/tree-adapters/default.js +0 -221
  85. package/lib/utils/merge-options.js +0 -13
  86. package/lib/utils/mixin.js +0 -39
@@ -0,0 +1,228 @@
1
+ import { TAG_ID as $, NS, ATTRS, getTagID } from './html.js';
2
+ //MIME types
3
+ const MIME_TYPES = {
4
+ TEXT_HTML: 'text/html',
5
+ APPLICATION_XML: 'application/xhtml+xml',
6
+ };
7
+ //Attributes
8
+ const DEFINITION_URL_ATTR = 'definitionurl';
9
+ const ADJUSTED_DEFINITION_URL_ATTR = 'definitionURL';
10
+ const SVG_ATTRS_ADJUSTMENT_MAP = new Map([
11
+ 'attributeName',
12
+ 'attributeType',
13
+ 'baseFrequency',
14
+ 'baseProfile',
15
+ 'calcMode',
16
+ 'clipPathUnits',
17
+ 'diffuseConstant',
18
+ 'edgeMode',
19
+ 'filterUnits',
20
+ 'glyphRef',
21
+ 'gradientTransform',
22
+ 'gradientUnits',
23
+ 'kernelMatrix',
24
+ 'kernelUnitLength',
25
+ 'keyPoints',
26
+ 'keySplines',
27
+ 'keyTimes',
28
+ 'lengthAdjust',
29
+ 'limitingConeAngle',
30
+ 'markerHeight',
31
+ 'markerUnits',
32
+ 'markerWidth',
33
+ 'maskContentUnits',
34
+ 'maskUnits',
35
+ 'numOctaves',
36
+ 'pathLength',
37
+ 'patternContentUnits',
38
+ 'patternTransform',
39
+ 'patternUnits',
40
+ 'pointsAtX',
41
+ 'pointsAtY',
42
+ 'pointsAtZ',
43
+ 'preserveAlpha',
44
+ 'preserveAspectRatio',
45
+ 'primitiveUnits',
46
+ 'refX',
47
+ 'refY',
48
+ 'repeatCount',
49
+ 'repeatDur',
50
+ 'requiredExtensions',
51
+ 'requiredFeatures',
52
+ 'specularConstant',
53
+ 'specularExponent',
54
+ 'spreadMethod',
55
+ 'startOffset',
56
+ 'stdDeviation',
57
+ 'stitchTiles',
58
+ 'surfaceScale',
59
+ 'systemLanguage',
60
+ 'tableValues',
61
+ 'targetX',
62
+ 'targetY',
63
+ 'textLength',
64
+ 'viewBox',
65
+ 'viewTarget',
66
+ 'xChannelSelector',
67
+ 'yChannelSelector',
68
+ 'zoomAndPan',
69
+ ].map((attr) => [attr.toLowerCase(), attr]));
70
+ const XML_ATTRS_ADJUSTMENT_MAP = new Map([
71
+ ['xlink:actuate', { prefix: 'xlink', name: 'actuate', namespace: NS.XLINK }],
72
+ ['xlink:arcrole', { prefix: 'xlink', name: 'arcrole', namespace: NS.XLINK }],
73
+ ['xlink:href', { prefix: 'xlink', name: 'href', namespace: NS.XLINK }],
74
+ ['xlink:role', { prefix: 'xlink', name: 'role', namespace: NS.XLINK }],
75
+ ['xlink:show', { prefix: 'xlink', name: 'show', namespace: NS.XLINK }],
76
+ ['xlink:title', { prefix: 'xlink', name: 'title', namespace: NS.XLINK }],
77
+ ['xlink:type', { prefix: 'xlink', name: 'type', namespace: NS.XLINK }],
78
+ ['xml:lang', { prefix: 'xml', name: 'lang', namespace: NS.XML }],
79
+ ['xml:space', { prefix: 'xml', name: 'space', namespace: NS.XML }],
80
+ ['xmlns', { prefix: '', name: 'xmlns', namespace: NS.XMLNS }],
81
+ ['xmlns:xlink', { prefix: 'xmlns', name: 'xlink', namespace: NS.XMLNS }],
82
+ ]);
83
+ //SVG tag names adjustment map
84
+ export const SVG_TAG_NAMES_ADJUSTMENT_MAP = new Map([
85
+ 'altGlyph',
86
+ 'altGlyphDef',
87
+ 'altGlyphItem',
88
+ 'animateColor',
89
+ 'animateMotion',
90
+ 'animateTransform',
91
+ 'clipPath',
92
+ 'feBlend',
93
+ 'feColorMatrix',
94
+ 'feComponentTransfer',
95
+ 'feComposite',
96
+ 'feConvolveMatrix',
97
+ 'feDiffuseLighting',
98
+ 'feDisplacementMap',
99
+ 'feDistantLight',
100
+ 'feFlood',
101
+ 'feFuncA',
102
+ 'feFuncB',
103
+ 'feFuncG',
104
+ 'feFuncR',
105
+ 'feGaussianBlur',
106
+ 'feImage',
107
+ 'feMerge',
108
+ 'feMergeNode',
109
+ 'feMorphology',
110
+ 'feOffset',
111
+ 'fePointLight',
112
+ 'feSpecularLighting',
113
+ 'feSpotLight',
114
+ 'feTile',
115
+ 'feTurbulence',
116
+ 'foreignObject',
117
+ 'glyphRef',
118
+ 'linearGradient',
119
+ 'radialGradient',
120
+ 'textPath',
121
+ ].map((tn) => [tn.toLowerCase(), tn]));
122
+ //Tags that causes exit from foreign content
123
+ const EXITS_FOREIGN_CONTENT = new Set([
124
+ $.B,
125
+ $.BIG,
126
+ $.BLOCKQUOTE,
127
+ $.BODY,
128
+ $.BR,
129
+ $.CENTER,
130
+ $.CODE,
131
+ $.DD,
132
+ $.DIV,
133
+ $.DL,
134
+ $.DT,
135
+ $.EM,
136
+ $.EMBED,
137
+ $.H1,
138
+ $.H2,
139
+ $.H3,
140
+ $.H4,
141
+ $.H5,
142
+ $.H6,
143
+ $.HEAD,
144
+ $.HR,
145
+ $.I,
146
+ $.IMG,
147
+ $.LI,
148
+ $.LISTING,
149
+ $.MENU,
150
+ $.META,
151
+ $.NOBR,
152
+ $.OL,
153
+ $.P,
154
+ $.PRE,
155
+ $.RUBY,
156
+ $.S,
157
+ $.SMALL,
158
+ $.SPAN,
159
+ $.STRONG,
160
+ $.STRIKE,
161
+ $.SUB,
162
+ $.SUP,
163
+ $.TABLE,
164
+ $.TT,
165
+ $.U,
166
+ $.UL,
167
+ $.VAR,
168
+ ]);
169
+ //Check exit from foreign content
170
+ export function causesExit(startTagToken) {
171
+ const tn = startTagToken.tagID;
172
+ const isFontWithAttrs = tn === $.FONT &&
173
+ startTagToken.attrs.some(({ name }) => name === ATTRS.COLOR || name === ATTRS.SIZE || name === ATTRS.FACE);
174
+ return isFontWithAttrs || EXITS_FOREIGN_CONTENT.has(tn);
175
+ }
176
+ //Token adjustments
177
+ export function adjustTokenMathMLAttrs(token) {
178
+ for (let i = 0; i < token.attrs.length; i++) {
179
+ if (token.attrs[i].name === DEFINITION_URL_ATTR) {
180
+ token.attrs[i].name = ADJUSTED_DEFINITION_URL_ATTR;
181
+ break;
182
+ }
183
+ }
184
+ }
185
+ export function adjustTokenSVGAttrs(token) {
186
+ for (let i = 0; i < token.attrs.length; i++) {
187
+ const adjustedAttrName = SVG_ATTRS_ADJUSTMENT_MAP.get(token.attrs[i].name);
188
+ if (adjustedAttrName != null) {
189
+ token.attrs[i].name = adjustedAttrName;
190
+ }
191
+ }
192
+ }
193
+ export function adjustTokenXMLAttrs(token) {
194
+ for (let i = 0; i < token.attrs.length; i++) {
195
+ const adjustedAttrEntry = XML_ATTRS_ADJUSTMENT_MAP.get(token.attrs[i].name);
196
+ if (adjustedAttrEntry) {
197
+ token.attrs[i].prefix = adjustedAttrEntry.prefix;
198
+ token.attrs[i].name = adjustedAttrEntry.name;
199
+ token.attrs[i].namespace = adjustedAttrEntry.namespace;
200
+ }
201
+ }
202
+ }
203
+ export function adjustTokenSVGTagName(token) {
204
+ const adjustedTagName = SVG_TAG_NAMES_ADJUSTMENT_MAP.get(token.tagName);
205
+ if (adjustedTagName != null) {
206
+ token.tagName = adjustedTagName;
207
+ token.tagID = getTagID(token.tagName);
208
+ }
209
+ }
210
+ //Integration points
211
+ function isMathMLTextIntegrationPoint(tn, ns) {
212
+ return ns === NS.MATHML && (tn === $.MI || tn === $.MO || tn === $.MN || tn === $.MS || tn === $.MTEXT);
213
+ }
214
+ function isHtmlIntegrationPoint(tn, ns, attrs) {
215
+ if (ns === NS.MATHML && tn === $.ANNOTATION_XML) {
216
+ for (let i = 0; i < attrs.length; i++) {
217
+ if (attrs[i].name === ATTRS.ENCODING) {
218
+ const value = attrs[i].value.toLowerCase();
219
+ return value === MIME_TYPES.TEXT_HTML || value === MIME_TYPES.APPLICATION_XML;
220
+ }
221
+ }
222
+ }
223
+ return ns === NS.SVG && (tn === $.FOREIGN_OBJECT || tn === $.DESC || tn === $.TITLE);
224
+ }
225
+ export function isIntegrationPoint(tn, ns, attrs, foreignNS) {
226
+ return (((!foreignNS || foreignNS === NS.HTML) && isHtmlIntegrationPoint(tn, ns, attrs)) ||
227
+ ((!foreignNS || foreignNS === NS.MATHML) && isMathMLTextIntegrationPoint(tn, ns)));
228
+ }
@@ -0,0 +1,289 @@
1
+ /** All valid namespaces in HTML. */
2
+ export declare enum NS {
3
+ HTML = "http://www.w3.org/1999/xhtml",
4
+ MATHML = "http://www.w3.org/1998/Math/MathML",
5
+ SVG = "http://www.w3.org/2000/svg",
6
+ XLINK = "http://www.w3.org/1999/xlink",
7
+ XML = "http://www.w3.org/XML/1998/namespace",
8
+ XMLNS = "http://www.w3.org/2000/xmlns/"
9
+ }
10
+ export declare enum ATTRS {
11
+ TYPE = "type",
12
+ ACTION = "action",
13
+ ENCODING = "encoding",
14
+ PROMPT = "prompt",
15
+ NAME = "name",
16
+ COLOR = "color",
17
+ FACE = "face",
18
+ SIZE = "size"
19
+ }
20
+ /**
21
+ * The mode of the document.
22
+ *
23
+ * @see {@link https://dom.spec.whatwg.org/#concept-document-limited-quirks}
24
+ */
25
+ export declare enum DOCUMENT_MODE {
26
+ NO_QUIRKS = "no-quirks",
27
+ QUIRKS = "quirks",
28
+ LIMITED_QUIRKS = "limited-quirks"
29
+ }
30
+ export declare enum TAG_NAMES {
31
+ A = "a",
32
+ ADDRESS = "address",
33
+ ANNOTATION_XML = "annotation-xml",
34
+ APPLET = "applet",
35
+ AREA = "area",
36
+ ARTICLE = "article",
37
+ ASIDE = "aside",
38
+ B = "b",
39
+ BASE = "base",
40
+ BASEFONT = "basefont",
41
+ BGSOUND = "bgsound",
42
+ BIG = "big",
43
+ BLOCKQUOTE = "blockquote",
44
+ BODY = "body",
45
+ BR = "br",
46
+ BUTTON = "button",
47
+ CAPTION = "caption",
48
+ CENTER = "center",
49
+ CODE = "code",
50
+ COL = "col",
51
+ COLGROUP = "colgroup",
52
+ DD = "dd",
53
+ DESC = "desc",
54
+ DETAILS = "details",
55
+ DIALOG = "dialog",
56
+ DIR = "dir",
57
+ DIV = "div",
58
+ DL = "dl",
59
+ DT = "dt",
60
+ EM = "em",
61
+ EMBED = "embed",
62
+ FIELDSET = "fieldset",
63
+ FIGCAPTION = "figcaption",
64
+ FIGURE = "figure",
65
+ FONT = "font",
66
+ FOOTER = "footer",
67
+ FOREIGN_OBJECT = "foreignObject",
68
+ FORM = "form",
69
+ FRAME = "frame",
70
+ FRAMESET = "frameset",
71
+ H1 = "h1",
72
+ H2 = "h2",
73
+ H3 = "h3",
74
+ H4 = "h4",
75
+ H5 = "h5",
76
+ H6 = "h6",
77
+ HEAD = "head",
78
+ HEADER = "header",
79
+ HGROUP = "hgroup",
80
+ HR = "hr",
81
+ HTML = "html",
82
+ I = "i",
83
+ IMG = "img",
84
+ IMAGE = "image",
85
+ INPUT = "input",
86
+ IFRAME = "iframe",
87
+ KEYGEN = "keygen",
88
+ LABEL = "label",
89
+ LI = "li",
90
+ LINK = "link",
91
+ LISTING = "listing",
92
+ MAIN = "main",
93
+ MALIGNMARK = "malignmark",
94
+ MARQUEE = "marquee",
95
+ MATH = "math",
96
+ MENU = "menu",
97
+ META = "meta",
98
+ MGLYPH = "mglyph",
99
+ MI = "mi",
100
+ MO = "mo",
101
+ MN = "mn",
102
+ MS = "ms",
103
+ MTEXT = "mtext",
104
+ NAV = "nav",
105
+ NOBR = "nobr",
106
+ NOFRAMES = "noframes",
107
+ NOEMBED = "noembed",
108
+ NOSCRIPT = "noscript",
109
+ OBJECT = "object",
110
+ OL = "ol",
111
+ OPTGROUP = "optgroup",
112
+ OPTION = "option",
113
+ P = "p",
114
+ PARAM = "param",
115
+ PLAINTEXT = "plaintext",
116
+ PRE = "pre",
117
+ RB = "rb",
118
+ RP = "rp",
119
+ RT = "rt",
120
+ RTC = "rtc",
121
+ RUBY = "ruby",
122
+ S = "s",
123
+ SCRIPT = "script",
124
+ SEARCH = "search",
125
+ SECTION = "section",
126
+ SELECT = "select",
127
+ SOURCE = "source",
128
+ SMALL = "small",
129
+ SPAN = "span",
130
+ STRIKE = "strike",
131
+ STRONG = "strong",
132
+ STYLE = "style",
133
+ SUB = "sub",
134
+ SUMMARY = "summary",
135
+ SUP = "sup",
136
+ TABLE = "table",
137
+ TBODY = "tbody",
138
+ TEMPLATE = "template",
139
+ TEXTAREA = "textarea",
140
+ TFOOT = "tfoot",
141
+ TD = "td",
142
+ TH = "th",
143
+ THEAD = "thead",
144
+ TITLE = "title",
145
+ TR = "tr",
146
+ TRACK = "track",
147
+ TT = "tt",
148
+ U = "u",
149
+ UL = "ul",
150
+ SVG = "svg",
151
+ VAR = "var",
152
+ WBR = "wbr",
153
+ XMP = "xmp"
154
+ }
155
+ /**
156
+ * Tag IDs are numeric IDs for known tag names.
157
+ *
158
+ * We use tag IDs to improve the performance of tag name comparisons.
159
+ */
160
+ export declare enum TAG_ID {
161
+ UNKNOWN = 0,
162
+ A = 1,
163
+ ADDRESS = 2,
164
+ ANNOTATION_XML = 3,
165
+ APPLET = 4,
166
+ AREA = 5,
167
+ ARTICLE = 6,
168
+ ASIDE = 7,
169
+ B = 8,
170
+ BASE = 9,
171
+ BASEFONT = 10,
172
+ BGSOUND = 11,
173
+ BIG = 12,
174
+ BLOCKQUOTE = 13,
175
+ BODY = 14,
176
+ BR = 15,
177
+ BUTTON = 16,
178
+ CAPTION = 17,
179
+ CENTER = 18,
180
+ CODE = 19,
181
+ COL = 20,
182
+ COLGROUP = 21,
183
+ DD = 22,
184
+ DESC = 23,
185
+ DETAILS = 24,
186
+ DIALOG = 25,
187
+ DIR = 26,
188
+ DIV = 27,
189
+ DL = 28,
190
+ DT = 29,
191
+ EM = 30,
192
+ EMBED = 31,
193
+ FIELDSET = 32,
194
+ FIGCAPTION = 33,
195
+ FIGURE = 34,
196
+ FONT = 35,
197
+ FOOTER = 36,
198
+ FOREIGN_OBJECT = 37,
199
+ FORM = 38,
200
+ FRAME = 39,
201
+ FRAMESET = 40,
202
+ H1 = 41,
203
+ H2 = 42,
204
+ H3 = 43,
205
+ H4 = 44,
206
+ H5 = 45,
207
+ H6 = 46,
208
+ HEAD = 47,
209
+ HEADER = 48,
210
+ HGROUP = 49,
211
+ HR = 50,
212
+ HTML = 51,
213
+ I = 52,
214
+ IMG = 53,
215
+ IMAGE = 54,
216
+ INPUT = 55,
217
+ IFRAME = 56,
218
+ KEYGEN = 57,
219
+ LABEL = 58,
220
+ LI = 59,
221
+ LINK = 60,
222
+ LISTING = 61,
223
+ MAIN = 62,
224
+ MALIGNMARK = 63,
225
+ MARQUEE = 64,
226
+ MATH = 65,
227
+ MENU = 66,
228
+ META = 67,
229
+ MGLYPH = 68,
230
+ MI = 69,
231
+ MO = 70,
232
+ MN = 71,
233
+ MS = 72,
234
+ MTEXT = 73,
235
+ NAV = 74,
236
+ NOBR = 75,
237
+ NOFRAMES = 76,
238
+ NOEMBED = 77,
239
+ NOSCRIPT = 78,
240
+ OBJECT = 79,
241
+ OL = 80,
242
+ OPTGROUP = 81,
243
+ OPTION = 82,
244
+ P = 83,
245
+ PARAM = 84,
246
+ PLAINTEXT = 85,
247
+ PRE = 86,
248
+ RB = 87,
249
+ RP = 88,
250
+ RT = 89,
251
+ RTC = 90,
252
+ RUBY = 91,
253
+ S = 92,
254
+ SCRIPT = 93,
255
+ SEARCH = 94,
256
+ SECTION = 95,
257
+ SELECT = 96,
258
+ SOURCE = 97,
259
+ SMALL = 98,
260
+ SPAN = 99,
261
+ STRIKE = 100,
262
+ STRONG = 101,
263
+ STYLE = 102,
264
+ SUB = 103,
265
+ SUMMARY = 104,
266
+ SUP = 105,
267
+ TABLE = 106,
268
+ TBODY = 107,
269
+ TEMPLATE = 108,
270
+ TEXTAREA = 109,
271
+ TFOOT = 110,
272
+ TD = 111,
273
+ TH = 112,
274
+ THEAD = 113,
275
+ TITLE = 114,
276
+ TR = 115,
277
+ TRACK = 116,
278
+ TT = 117,
279
+ U = 118,
280
+ UL = 119,
281
+ SVG = 120,
282
+ VAR = 121,
283
+ WBR = 122,
284
+ XMP = 123
285
+ }
286
+ export declare function getTagID(tagName: string): TAG_ID;
287
+ export declare const SPECIAL_ELEMENTS: Record<NS, Set<TAG_ID>>;
288
+ export declare const NUMBERED_HEADERS: Set<TAG_ID>;
289
+ export declare function hasUnescapedText(tn: string, scriptingEnabled: boolean): boolean;