parse5 7.2.1 → 8.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 (40) hide show
  1. package/dist/parser/formatting-element-list.js +4 -4
  2. package/dist/parser/index.d.ts +1 -1
  3. package/dist/parser/index.js +13 -8
  4. package/dist/parser/open-element-stack.d.ts +2 -2
  5. package/dist/parser/open-element-stack.js +11 -7
  6. package/dist/serializer/index.js +1 -1
  7. package/dist/tokenizer/index.d.ts +1 -1
  8. package/dist/tokenizer/index.js +1 -1
  9. package/package.json +7 -9
  10. package/dist/cjs/common/doctype.d.ts +0 -4
  11. package/dist/cjs/common/doctype.js +0 -118
  12. package/dist/cjs/common/error-codes.d.ts +0 -67
  13. package/dist/cjs/common/error-codes.js +0 -66
  14. package/dist/cjs/common/foreign-content.d.ts +0 -9
  15. package/dist/cjs/common/foreign-content.js +0 -237
  16. package/dist/cjs/common/html.d.ts +0 -289
  17. package/dist/cjs/common/html.js +0 -528
  18. package/dist/cjs/common/token.d.ts +0 -84
  19. package/dist/cjs/common/token.js +0 -24
  20. package/dist/cjs/common/unicode.d.ts +0 -42
  21. package/dist/cjs/common/unicode.js +0 -70
  22. package/dist/cjs/index.d.ts +0 -71
  23. package/dist/cjs/index.js +0 -54
  24. package/dist/cjs/package.json +0 -1
  25. package/dist/cjs/parser/formatting-element-list.d.ts +0 -36
  26. package/dist/cjs/parser/formatting-element-list.js +0 -114
  27. package/dist/cjs/parser/index.d.ts +0 -221
  28. package/dist/cjs/parser/index.js +0 -3235
  29. package/dist/cjs/parser/open-element-stack.d.ts +0 -53
  30. package/dist/cjs/parser/open-element-stack.js +0 -324
  31. package/dist/cjs/serializer/index.d.ts +0 -60
  32. package/dist/cjs/serializer/index.js +0 -172
  33. package/dist/cjs/tokenizer/index.d.ts +0 -247
  34. package/dist/cjs/tokenizer/index.js +0 -2714
  35. package/dist/cjs/tokenizer/preprocessor.d.ts +0 -36
  36. package/dist/cjs/tokenizer/preprocessor.js +0 -200
  37. package/dist/cjs/tree-adapters/default.d.ts +0 -84
  38. package/dist/cjs/tree-adapters/default.js +0 -176
  39. package/dist/cjs/tree-adapters/interface.d.ts +0 -255
  40. package/dist/cjs/tree-adapters/interface.js +0 -2
@@ -1,237 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SVG_TAG_NAMES_ADJUSTMENT_MAP = void 0;
4
- exports.causesExit = causesExit;
5
- exports.adjustTokenMathMLAttrs = adjustTokenMathMLAttrs;
6
- exports.adjustTokenSVGAttrs = adjustTokenSVGAttrs;
7
- exports.adjustTokenXMLAttrs = adjustTokenXMLAttrs;
8
- exports.adjustTokenSVGTagName = adjustTokenSVGTagName;
9
- exports.isIntegrationPoint = isIntegrationPoint;
10
- const html_js_1 = require("./html.js");
11
- //MIME types
12
- const MIME_TYPES = {
13
- TEXT_HTML: 'text/html',
14
- APPLICATION_XML: 'application/xhtml+xml',
15
- };
16
- //Attributes
17
- const DEFINITION_URL_ATTR = 'definitionurl';
18
- const ADJUSTED_DEFINITION_URL_ATTR = 'definitionURL';
19
- const SVG_ATTRS_ADJUSTMENT_MAP = new Map([
20
- 'attributeName',
21
- 'attributeType',
22
- 'baseFrequency',
23
- 'baseProfile',
24
- 'calcMode',
25
- 'clipPathUnits',
26
- 'diffuseConstant',
27
- 'edgeMode',
28
- 'filterUnits',
29
- 'glyphRef',
30
- 'gradientTransform',
31
- 'gradientUnits',
32
- 'kernelMatrix',
33
- 'kernelUnitLength',
34
- 'keyPoints',
35
- 'keySplines',
36
- 'keyTimes',
37
- 'lengthAdjust',
38
- 'limitingConeAngle',
39
- 'markerHeight',
40
- 'markerUnits',
41
- 'markerWidth',
42
- 'maskContentUnits',
43
- 'maskUnits',
44
- 'numOctaves',
45
- 'pathLength',
46
- 'patternContentUnits',
47
- 'patternTransform',
48
- 'patternUnits',
49
- 'pointsAtX',
50
- 'pointsAtY',
51
- 'pointsAtZ',
52
- 'preserveAlpha',
53
- 'preserveAspectRatio',
54
- 'primitiveUnits',
55
- 'refX',
56
- 'refY',
57
- 'repeatCount',
58
- 'repeatDur',
59
- 'requiredExtensions',
60
- 'requiredFeatures',
61
- 'specularConstant',
62
- 'specularExponent',
63
- 'spreadMethod',
64
- 'startOffset',
65
- 'stdDeviation',
66
- 'stitchTiles',
67
- 'surfaceScale',
68
- 'systemLanguage',
69
- 'tableValues',
70
- 'targetX',
71
- 'targetY',
72
- 'textLength',
73
- 'viewBox',
74
- 'viewTarget',
75
- 'xChannelSelector',
76
- 'yChannelSelector',
77
- 'zoomAndPan',
78
- ].map((attr) => [attr.toLowerCase(), attr]));
79
- const XML_ATTRS_ADJUSTMENT_MAP = new Map([
80
- ['xlink:actuate', { prefix: 'xlink', name: 'actuate', namespace: html_js_1.NS.XLINK }],
81
- ['xlink:arcrole', { prefix: 'xlink', name: 'arcrole', namespace: html_js_1.NS.XLINK }],
82
- ['xlink:href', { prefix: 'xlink', name: 'href', namespace: html_js_1.NS.XLINK }],
83
- ['xlink:role', { prefix: 'xlink', name: 'role', namespace: html_js_1.NS.XLINK }],
84
- ['xlink:show', { prefix: 'xlink', name: 'show', namespace: html_js_1.NS.XLINK }],
85
- ['xlink:title', { prefix: 'xlink', name: 'title', namespace: html_js_1.NS.XLINK }],
86
- ['xlink:type', { prefix: 'xlink', name: 'type', namespace: html_js_1.NS.XLINK }],
87
- ['xml:lang', { prefix: 'xml', name: 'lang', namespace: html_js_1.NS.XML }],
88
- ['xml:space', { prefix: 'xml', name: 'space', namespace: html_js_1.NS.XML }],
89
- ['xmlns', { prefix: '', name: 'xmlns', namespace: html_js_1.NS.XMLNS }],
90
- ['xmlns:xlink', { prefix: 'xmlns', name: 'xlink', namespace: html_js_1.NS.XMLNS }],
91
- ]);
92
- //SVG tag names adjustment map
93
- exports.SVG_TAG_NAMES_ADJUSTMENT_MAP = new Map([
94
- 'altGlyph',
95
- 'altGlyphDef',
96
- 'altGlyphItem',
97
- 'animateColor',
98
- 'animateMotion',
99
- 'animateTransform',
100
- 'clipPath',
101
- 'feBlend',
102
- 'feColorMatrix',
103
- 'feComponentTransfer',
104
- 'feComposite',
105
- 'feConvolveMatrix',
106
- 'feDiffuseLighting',
107
- 'feDisplacementMap',
108
- 'feDistantLight',
109
- 'feFlood',
110
- 'feFuncA',
111
- 'feFuncB',
112
- 'feFuncG',
113
- 'feFuncR',
114
- 'feGaussianBlur',
115
- 'feImage',
116
- 'feMerge',
117
- 'feMergeNode',
118
- 'feMorphology',
119
- 'feOffset',
120
- 'fePointLight',
121
- 'feSpecularLighting',
122
- 'feSpotLight',
123
- 'feTile',
124
- 'feTurbulence',
125
- 'foreignObject',
126
- 'glyphRef',
127
- 'linearGradient',
128
- 'radialGradient',
129
- 'textPath',
130
- ].map((tn) => [tn.toLowerCase(), tn]));
131
- //Tags that causes exit from foreign content
132
- const EXITS_FOREIGN_CONTENT = new Set([
133
- html_js_1.TAG_ID.B,
134
- html_js_1.TAG_ID.BIG,
135
- html_js_1.TAG_ID.BLOCKQUOTE,
136
- html_js_1.TAG_ID.BODY,
137
- html_js_1.TAG_ID.BR,
138
- html_js_1.TAG_ID.CENTER,
139
- html_js_1.TAG_ID.CODE,
140
- html_js_1.TAG_ID.DD,
141
- html_js_1.TAG_ID.DIV,
142
- html_js_1.TAG_ID.DL,
143
- html_js_1.TAG_ID.DT,
144
- html_js_1.TAG_ID.EM,
145
- html_js_1.TAG_ID.EMBED,
146
- html_js_1.TAG_ID.H1,
147
- html_js_1.TAG_ID.H2,
148
- html_js_1.TAG_ID.H3,
149
- html_js_1.TAG_ID.H4,
150
- html_js_1.TAG_ID.H5,
151
- html_js_1.TAG_ID.H6,
152
- html_js_1.TAG_ID.HEAD,
153
- html_js_1.TAG_ID.HR,
154
- html_js_1.TAG_ID.I,
155
- html_js_1.TAG_ID.IMG,
156
- html_js_1.TAG_ID.LI,
157
- html_js_1.TAG_ID.LISTING,
158
- html_js_1.TAG_ID.MENU,
159
- html_js_1.TAG_ID.META,
160
- html_js_1.TAG_ID.NOBR,
161
- html_js_1.TAG_ID.OL,
162
- html_js_1.TAG_ID.P,
163
- html_js_1.TAG_ID.PRE,
164
- html_js_1.TAG_ID.RUBY,
165
- html_js_1.TAG_ID.S,
166
- html_js_1.TAG_ID.SMALL,
167
- html_js_1.TAG_ID.SPAN,
168
- html_js_1.TAG_ID.STRONG,
169
- html_js_1.TAG_ID.STRIKE,
170
- html_js_1.TAG_ID.SUB,
171
- html_js_1.TAG_ID.SUP,
172
- html_js_1.TAG_ID.TABLE,
173
- html_js_1.TAG_ID.TT,
174
- html_js_1.TAG_ID.U,
175
- html_js_1.TAG_ID.UL,
176
- html_js_1.TAG_ID.VAR,
177
- ]);
178
- //Check exit from foreign content
179
- function causesExit(startTagToken) {
180
- const tn = startTagToken.tagID;
181
- const isFontWithAttrs = tn === html_js_1.TAG_ID.FONT &&
182
- startTagToken.attrs.some(({ name }) => name === html_js_1.ATTRS.COLOR || name === html_js_1.ATTRS.SIZE || name === html_js_1.ATTRS.FACE);
183
- return isFontWithAttrs || EXITS_FOREIGN_CONTENT.has(tn);
184
- }
185
- //Token adjustments
186
- function adjustTokenMathMLAttrs(token) {
187
- for (let i = 0; i < token.attrs.length; i++) {
188
- if (token.attrs[i].name === DEFINITION_URL_ATTR) {
189
- token.attrs[i].name = ADJUSTED_DEFINITION_URL_ATTR;
190
- break;
191
- }
192
- }
193
- }
194
- function adjustTokenSVGAttrs(token) {
195
- for (let i = 0; i < token.attrs.length; i++) {
196
- const adjustedAttrName = SVG_ATTRS_ADJUSTMENT_MAP.get(token.attrs[i].name);
197
- if (adjustedAttrName != null) {
198
- token.attrs[i].name = adjustedAttrName;
199
- }
200
- }
201
- }
202
- function adjustTokenXMLAttrs(token) {
203
- for (let i = 0; i < token.attrs.length; i++) {
204
- const adjustedAttrEntry = XML_ATTRS_ADJUSTMENT_MAP.get(token.attrs[i].name);
205
- if (adjustedAttrEntry) {
206
- token.attrs[i].prefix = adjustedAttrEntry.prefix;
207
- token.attrs[i].name = adjustedAttrEntry.name;
208
- token.attrs[i].namespace = adjustedAttrEntry.namespace;
209
- }
210
- }
211
- }
212
- function adjustTokenSVGTagName(token) {
213
- const adjustedTagName = exports.SVG_TAG_NAMES_ADJUSTMENT_MAP.get(token.tagName);
214
- if (adjustedTagName != null) {
215
- token.tagName = adjustedTagName;
216
- token.tagID = (0, html_js_1.getTagID)(token.tagName);
217
- }
218
- }
219
- //Integration points
220
- function isMathMLTextIntegrationPoint(tn, ns) {
221
- return ns === html_js_1.NS.MATHML && (tn === html_js_1.TAG_ID.MI || tn === html_js_1.TAG_ID.MO || tn === html_js_1.TAG_ID.MN || tn === html_js_1.TAG_ID.MS || tn === html_js_1.TAG_ID.MTEXT);
222
- }
223
- function isHtmlIntegrationPoint(tn, ns, attrs) {
224
- if (ns === html_js_1.NS.MATHML && tn === html_js_1.TAG_ID.ANNOTATION_XML) {
225
- for (let i = 0; i < attrs.length; i++) {
226
- if (attrs[i].name === html_js_1.ATTRS.ENCODING) {
227
- const value = attrs[i].value.toLowerCase();
228
- return value === MIME_TYPES.TEXT_HTML || value === MIME_TYPES.APPLICATION_XML;
229
- }
230
- }
231
- }
232
- return ns === html_js_1.NS.SVG && (tn === html_js_1.TAG_ID.FOREIGN_OBJECT || tn === html_js_1.TAG_ID.DESC || tn === html_js_1.TAG_ID.TITLE);
233
- }
234
- function isIntegrationPoint(tn, ns, attrs, foreignNS) {
235
- return (((!foreignNS || foreignNS === html_js_1.NS.HTML) && isHtmlIntegrationPoint(tn, ns, attrs)) ||
236
- ((!foreignNS || foreignNS === html_js_1.NS.MATHML) && isMathMLTextIntegrationPoint(tn, ns)));
237
- }
@@ -1,289 +0,0 @@
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;