parse5 6.0.1 → 7.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.
- package/README.md +2 -2
- package/dist/cjs/common/doctype.d.ts +5 -0
- package/dist/cjs/common/doctype.js +120 -0
- package/dist/cjs/common/error-codes.d.ts +68 -0
- package/dist/cjs/common/error-codes.js +67 -0
- package/dist/cjs/common/foreign-content.d.ts +10 -0
- package/dist/cjs/common/foreign-content.js +239 -0
- package/dist/cjs/common/html.d.ts +288 -0
- package/dist/cjs/common/html.js +529 -0
- package/dist/cjs/common/token.d.ts +85 -0
- package/dist/cjs/common/token.js +25 -0
- package/dist/cjs/common/unicode.d.ts +49 -0
- package/dist/cjs/common/unicode.js +77 -0
- package/dist/cjs/index.d.ts +60 -0
- package/dist/cjs/index.js +55 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/parser/formatting-element-list.d.ts +32 -0
- package/dist/cjs/parser/formatting-element-list.js +110 -0
- package/dist/cjs/parser/index.d.ts +157 -0
- package/dist/cjs/parser/index.js +3049 -0
- package/dist/cjs/parser/open-element-stack.d.ts +53 -0
- package/dist/cjs/parser/open-element-stack.js +316 -0
- package/dist/cjs/serializer/index.d.ts +61 -0
- package/dist/cjs/serializer/index.js +173 -0
- package/dist/cjs/tokenizer/index.d.ts +250 -0
- package/dist/cjs/tokenizer/index.js +2921 -0
- package/dist/cjs/tokenizer/preprocessor.d.ts +37 -0
- package/dist/cjs/tokenizer/preprocessor.js +198 -0
- package/dist/cjs/tree-adapters/default.d.ts +92 -0
- package/dist/cjs/tree-adapters/default.js +185 -0
- package/dist/cjs/tree-adapters/interface.d.ts +250 -0
- package/dist/cjs/tree-adapters/interface.js +3 -0
- package/dist/common/doctype.d.ts +5 -0
- package/{lib → dist}/common/doctype.js +25 -72
- package/dist/common/error-codes.d.ts +68 -0
- package/dist/common/error-codes.js +64 -0
- package/dist/common/foreign-content.d.ts +10 -0
- package/dist/common/foreign-content.js +230 -0
- package/dist/common/html.d.ts +288 -0
- package/dist/common/html.js +523 -0
- package/dist/common/token.d.ts +85 -0
- package/dist/common/token.js +21 -0
- package/dist/common/unicode.d.ts +49 -0
- package/dist/common/unicode.js +69 -0
- package/dist/index.d.ts +60 -0
- package/dist/index.js +44 -0
- package/dist/parser/formatting-element-list.d.ts +32 -0
- package/dist/parser/formatting-element-list.js +106 -0
- package/dist/parser/index.d.ts +157 -0
- package/dist/parser/index.js +3054 -0
- package/dist/parser/open-element-stack.d.ts +53 -0
- package/dist/parser/open-element-stack.js +312 -0
- package/dist/serializer/index.d.ts +61 -0
- package/dist/serializer/index.js +168 -0
- package/dist/tokenizer/index.d.ts +250 -0
- package/dist/tokenizer/index.js +2917 -0
- package/dist/tokenizer/preprocessor.d.ts +37 -0
- package/dist/tokenizer/preprocessor.js +194 -0
- package/dist/tree-adapters/default.d.ts +92 -0
- package/dist/tree-adapters/default.js +182 -0
- package/dist/tree-adapters/interface.d.ts +250 -0
- package/dist/tree-adapters/interface.js +2 -0
- package/package.json +19 -5
- package/lib/common/error-codes.js +0 -65
- package/lib/common/foreign-content.js +0 -265
- package/lib/common/html.js +0 -272
- package/lib/common/unicode.js +0 -109
- package/lib/extensions/error-reporting/mixin-base.js +0 -43
- package/lib/extensions/error-reporting/parser-mixin.js +0 -52
- package/lib/extensions/error-reporting/preprocessor-mixin.js +0 -24
- package/lib/extensions/error-reporting/tokenizer-mixin.js +0 -17
- package/lib/extensions/location-info/open-element-stack-mixin.js +0 -35
- package/lib/extensions/location-info/parser-mixin.js +0 -223
- package/lib/extensions/location-info/tokenizer-mixin.js +0 -146
- package/lib/extensions/position-tracking/preprocessor-mixin.js +0 -64
- package/lib/index.js +0 -29
- package/lib/parser/formatting-element-list.js +0 -181
- package/lib/parser/index.js +0 -2956
- package/lib/parser/open-element-stack.js +0 -482
- package/lib/serializer/index.js +0 -176
- package/lib/tokenizer/index.js +0 -2196
- package/lib/tokenizer/named-entity-data.js +0 -5
- package/lib/tokenizer/preprocessor.js +0 -159
- package/lib/tree-adapters/default.js +0 -221
- package/lib/utils/merge-options.js +0 -13
- package/lib/utils/mixin.js +0 -39
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import { Preprocessor } from './preprocessor.js';
|
|
2
|
+
import { type CharacterToken, type DoctypeToken, type TagToken, type EOFToken, type CommentToken } from '../common/token.js';
|
|
3
|
+
import { type ParserErrorHandler } from '../common/error-codes.js';
|
|
4
|
+
declare const enum State {
|
|
5
|
+
DATA = 0,
|
|
6
|
+
RCDATA = 1,
|
|
7
|
+
RAWTEXT = 2,
|
|
8
|
+
SCRIPT_DATA = 3,
|
|
9
|
+
PLAINTEXT = 4,
|
|
10
|
+
TAG_OPEN = 5,
|
|
11
|
+
END_TAG_OPEN = 6,
|
|
12
|
+
TAG_NAME = 7,
|
|
13
|
+
RCDATA_LESS_THAN_SIGN = 8,
|
|
14
|
+
RCDATA_END_TAG_OPEN = 9,
|
|
15
|
+
RCDATA_END_TAG_NAME = 10,
|
|
16
|
+
RAWTEXT_LESS_THAN_SIGN = 11,
|
|
17
|
+
RAWTEXT_END_TAG_OPEN = 12,
|
|
18
|
+
RAWTEXT_END_TAG_NAME = 13,
|
|
19
|
+
SCRIPT_DATA_LESS_THAN_SIGN = 14,
|
|
20
|
+
SCRIPT_DATA_END_TAG_OPEN = 15,
|
|
21
|
+
SCRIPT_DATA_END_TAG_NAME = 16,
|
|
22
|
+
SCRIPT_DATA_ESCAPE_START = 17,
|
|
23
|
+
SCRIPT_DATA_ESCAPE_START_DASH = 18,
|
|
24
|
+
SCRIPT_DATA_ESCAPED = 19,
|
|
25
|
+
SCRIPT_DATA_ESCAPED_DASH = 20,
|
|
26
|
+
SCRIPT_DATA_ESCAPED_DASH_DASH = 21,
|
|
27
|
+
SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN = 22,
|
|
28
|
+
SCRIPT_DATA_ESCAPED_END_TAG_OPEN = 23,
|
|
29
|
+
SCRIPT_DATA_ESCAPED_END_TAG_NAME = 24,
|
|
30
|
+
SCRIPT_DATA_DOUBLE_ESCAPE_START = 25,
|
|
31
|
+
SCRIPT_DATA_DOUBLE_ESCAPED = 26,
|
|
32
|
+
SCRIPT_DATA_DOUBLE_ESCAPED_DASH = 27,
|
|
33
|
+
SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH = 28,
|
|
34
|
+
SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN = 29,
|
|
35
|
+
SCRIPT_DATA_DOUBLE_ESCAPE_END = 30,
|
|
36
|
+
BEFORE_ATTRIBUTE_NAME = 31,
|
|
37
|
+
ATTRIBUTE_NAME = 32,
|
|
38
|
+
AFTER_ATTRIBUTE_NAME = 33,
|
|
39
|
+
BEFORE_ATTRIBUTE_VALUE = 34,
|
|
40
|
+
ATTRIBUTE_VALUE_DOUBLE_QUOTED = 35,
|
|
41
|
+
ATTRIBUTE_VALUE_SINGLE_QUOTED = 36,
|
|
42
|
+
ATTRIBUTE_VALUE_UNQUOTED = 37,
|
|
43
|
+
AFTER_ATTRIBUTE_VALUE_QUOTED = 38,
|
|
44
|
+
SELF_CLOSING_START_TAG = 39,
|
|
45
|
+
BOGUS_COMMENT = 40,
|
|
46
|
+
MARKUP_DECLARATION_OPEN = 41,
|
|
47
|
+
COMMENT_START = 42,
|
|
48
|
+
COMMENT_START_DASH = 43,
|
|
49
|
+
COMMENT = 44,
|
|
50
|
+
COMMENT_LESS_THAN_SIGN = 45,
|
|
51
|
+
COMMENT_LESS_THAN_SIGN_BANG = 46,
|
|
52
|
+
COMMENT_LESS_THAN_SIGN_BANG_DASH = 47,
|
|
53
|
+
COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH = 48,
|
|
54
|
+
COMMENT_END_DASH = 49,
|
|
55
|
+
COMMENT_END = 50,
|
|
56
|
+
COMMENT_END_BANG = 51,
|
|
57
|
+
DOCTYPE = 52,
|
|
58
|
+
BEFORE_DOCTYPE_NAME = 53,
|
|
59
|
+
DOCTYPE_NAME = 54,
|
|
60
|
+
AFTER_DOCTYPE_NAME = 55,
|
|
61
|
+
AFTER_DOCTYPE_PUBLIC_KEYWORD = 56,
|
|
62
|
+
BEFORE_DOCTYPE_PUBLIC_IDENTIFIER = 57,
|
|
63
|
+
DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED = 58,
|
|
64
|
+
DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED = 59,
|
|
65
|
+
AFTER_DOCTYPE_PUBLIC_IDENTIFIER = 60,
|
|
66
|
+
BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS = 61,
|
|
67
|
+
AFTER_DOCTYPE_SYSTEM_KEYWORD = 62,
|
|
68
|
+
BEFORE_DOCTYPE_SYSTEM_IDENTIFIER = 63,
|
|
69
|
+
DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED = 64,
|
|
70
|
+
DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED = 65,
|
|
71
|
+
AFTER_DOCTYPE_SYSTEM_IDENTIFIER = 66,
|
|
72
|
+
BOGUS_DOCTYPE = 67,
|
|
73
|
+
CDATA_SECTION = 68,
|
|
74
|
+
CDATA_SECTION_BRACKET = 69,
|
|
75
|
+
CDATA_SECTION_END = 70,
|
|
76
|
+
CHARACTER_REFERENCE = 71,
|
|
77
|
+
NAMED_CHARACTER_REFERENCE = 72,
|
|
78
|
+
AMBIGUOUS_AMPERSAND = 73,
|
|
79
|
+
NUMERIC_CHARACTER_REFERENCE = 74,
|
|
80
|
+
HEXADEMICAL_CHARACTER_REFERENCE_START = 75,
|
|
81
|
+
DECIMAL_CHARACTER_REFERENCE_START = 76,
|
|
82
|
+
HEXADEMICAL_CHARACTER_REFERENCE = 77,
|
|
83
|
+
DECIMAL_CHARACTER_REFERENCE = 78,
|
|
84
|
+
NUMERIC_CHARACTER_REFERENCE_END = 79
|
|
85
|
+
}
|
|
86
|
+
export declare const TokenizerMode: {
|
|
87
|
+
readonly DATA: State.DATA;
|
|
88
|
+
readonly RCDATA: State.RCDATA;
|
|
89
|
+
readonly RAWTEXT: State.RAWTEXT;
|
|
90
|
+
readonly SCRIPT_DATA: State.SCRIPT_DATA;
|
|
91
|
+
readonly PLAINTEXT: State.PLAINTEXT;
|
|
92
|
+
readonly CDATA_SECTION: State.CDATA_SECTION;
|
|
93
|
+
};
|
|
94
|
+
export interface TokenizerOptions {
|
|
95
|
+
sourceCodeLocationInfo?: boolean;
|
|
96
|
+
}
|
|
97
|
+
export interface TokenHandler {
|
|
98
|
+
onComment(token: CommentToken): void;
|
|
99
|
+
onDoctype(token: DoctypeToken): void;
|
|
100
|
+
onStartTag(token: TagToken): void;
|
|
101
|
+
onEndTag(token: TagToken): void;
|
|
102
|
+
onEof(token: EOFToken): void;
|
|
103
|
+
onCharacter(token: CharacterToken): void;
|
|
104
|
+
onNullCharacter(token: CharacterToken): void;
|
|
105
|
+
onWhitespaceCharacter(token: CharacterToken): void;
|
|
106
|
+
onParseError?: ParserErrorHandler | null;
|
|
107
|
+
}
|
|
108
|
+
export declare class Tokenizer {
|
|
109
|
+
private options;
|
|
110
|
+
private handler;
|
|
111
|
+
preprocessor: Preprocessor;
|
|
112
|
+
private paused;
|
|
113
|
+
/** Ensures that the parsing loop isn't run multiple times at once. */
|
|
114
|
+
private inLoop;
|
|
115
|
+
/**
|
|
116
|
+
* Indicates that the current adjusted node exists, is not an element in the HTML namespace,
|
|
117
|
+
* and that it is not an integration point for either MathML or HTML.
|
|
118
|
+
*
|
|
119
|
+
* @see {@link https://html.spec.whatwg.org/multipage/parsing.html#tree-construction}
|
|
120
|
+
*/
|
|
121
|
+
inForeignNode: boolean;
|
|
122
|
+
lastStartTagName: string;
|
|
123
|
+
active: boolean;
|
|
124
|
+
state: State;
|
|
125
|
+
private returnState;
|
|
126
|
+
private charRefCode;
|
|
127
|
+
private consumedAfterSnapshot;
|
|
128
|
+
private currentLocation;
|
|
129
|
+
private currentCharacterToken;
|
|
130
|
+
private currentToken;
|
|
131
|
+
private currentAttr;
|
|
132
|
+
constructor(options: TokenizerOptions, handler: TokenHandler);
|
|
133
|
+
private _err;
|
|
134
|
+
private getCurrentLocation;
|
|
135
|
+
private _runParsingLoop;
|
|
136
|
+
pause(): void;
|
|
137
|
+
resume(writeCallback?: () => void): void;
|
|
138
|
+
write(chunk: string, isLastChunk: boolean, writeCallback?: () => void): void;
|
|
139
|
+
insertHtmlAtCurrentPos(chunk: string): void;
|
|
140
|
+
private _ensureHibernation;
|
|
141
|
+
private _consume;
|
|
142
|
+
private _unconsume;
|
|
143
|
+
private _reconsumeInState;
|
|
144
|
+
private _advanceBy;
|
|
145
|
+
private _consumeSequenceIfMatch;
|
|
146
|
+
private _createStartTagToken;
|
|
147
|
+
private _createEndTagToken;
|
|
148
|
+
private _createCommentToken;
|
|
149
|
+
private _createDoctypeToken;
|
|
150
|
+
private _createCharacterToken;
|
|
151
|
+
private _createAttr;
|
|
152
|
+
private _leaveAttrName;
|
|
153
|
+
private _leaveAttrValue;
|
|
154
|
+
private prepareToken;
|
|
155
|
+
private emitCurrentTagToken;
|
|
156
|
+
private emitCurrentComment;
|
|
157
|
+
private emitCurrentDoctype;
|
|
158
|
+
private _emitCurrentCharacterToken;
|
|
159
|
+
private _emitEOFToken;
|
|
160
|
+
private _appendCharToCurrentCharacterToken;
|
|
161
|
+
private _emitCodePoint;
|
|
162
|
+
private _emitChars;
|
|
163
|
+
private _matchNamedCharacterReference;
|
|
164
|
+
private _isCharacterReferenceInAttribute;
|
|
165
|
+
private _flushCodePointConsumedAsCharacterReference;
|
|
166
|
+
private _callState;
|
|
167
|
+
private _stateData;
|
|
168
|
+
private _stateRcdata;
|
|
169
|
+
private _stateRawtext;
|
|
170
|
+
private _stateScriptData;
|
|
171
|
+
private _statePlaintext;
|
|
172
|
+
private _stateTagOpen;
|
|
173
|
+
private _stateEndTagOpen;
|
|
174
|
+
private _stateTagName;
|
|
175
|
+
private _stateRcdataLessThanSign;
|
|
176
|
+
private _stateRcdataEndTagOpen;
|
|
177
|
+
private handleSpecialEndTag;
|
|
178
|
+
private _stateRcdataEndTagName;
|
|
179
|
+
private _stateRawtextLessThanSign;
|
|
180
|
+
private _stateRawtextEndTagOpen;
|
|
181
|
+
private _stateRawtextEndTagName;
|
|
182
|
+
private _stateScriptDataLessThanSign;
|
|
183
|
+
private _stateScriptDataEndTagOpen;
|
|
184
|
+
private _stateScriptDataEndTagName;
|
|
185
|
+
private _stateScriptDataEscapeStart;
|
|
186
|
+
private _stateScriptDataEscapeStartDash;
|
|
187
|
+
private _stateScriptDataEscaped;
|
|
188
|
+
private _stateScriptDataEscapedDash;
|
|
189
|
+
private _stateScriptDataEscapedDashDash;
|
|
190
|
+
private _stateScriptDataEscapedLessThanSign;
|
|
191
|
+
private _stateScriptDataEscapedEndTagOpen;
|
|
192
|
+
private _stateScriptDataEscapedEndTagName;
|
|
193
|
+
private _stateScriptDataDoubleEscapeStart;
|
|
194
|
+
private _stateScriptDataDoubleEscaped;
|
|
195
|
+
private _stateScriptDataDoubleEscapedDash;
|
|
196
|
+
private _stateScriptDataDoubleEscapedDashDash;
|
|
197
|
+
private _stateScriptDataDoubleEscapedLessThanSign;
|
|
198
|
+
private _stateScriptDataDoubleEscapeEnd;
|
|
199
|
+
private _stateBeforeAttributeName;
|
|
200
|
+
private _stateAttributeName;
|
|
201
|
+
private _stateAfterAttributeName;
|
|
202
|
+
private _stateBeforeAttributeValue;
|
|
203
|
+
private _stateAttributeValueDoubleQuoted;
|
|
204
|
+
private _stateAttributeValueSingleQuoted;
|
|
205
|
+
private _stateAttributeValueUnquoted;
|
|
206
|
+
private _stateAfterAttributeValueQuoted;
|
|
207
|
+
private _stateSelfClosingStartTag;
|
|
208
|
+
private _stateBogusComment;
|
|
209
|
+
private _stateMarkupDeclarationOpen;
|
|
210
|
+
private _stateCommentStart;
|
|
211
|
+
private _stateCommentStartDash;
|
|
212
|
+
private _stateComment;
|
|
213
|
+
private _stateCommentLessThanSign;
|
|
214
|
+
private _stateCommentLessThanSignBang;
|
|
215
|
+
private _stateCommentLessThanSignBangDash;
|
|
216
|
+
private _stateCommentLessThanSignBangDashDash;
|
|
217
|
+
private _stateCommentEndDash;
|
|
218
|
+
private _stateCommentEnd;
|
|
219
|
+
private _stateCommentEndBang;
|
|
220
|
+
private _stateDoctype;
|
|
221
|
+
private _stateBeforeDoctypeName;
|
|
222
|
+
private _stateDoctypeName;
|
|
223
|
+
private _stateAfterDoctypeName;
|
|
224
|
+
private _stateAfterDoctypePublicKeyword;
|
|
225
|
+
private _stateBeforeDoctypePublicIdentifier;
|
|
226
|
+
private _stateDoctypePublicIdentifierDoubleQuoted;
|
|
227
|
+
private _stateDoctypePublicIdentifierSingleQuoted;
|
|
228
|
+
private _stateAfterDoctypePublicIdentifier;
|
|
229
|
+
private _stateBetweenDoctypePublicAndSystemIdentifiers;
|
|
230
|
+
private _stateAfterDoctypeSystemKeyword;
|
|
231
|
+
private _stateBeforeDoctypeSystemIdentifier;
|
|
232
|
+
private _stateDoctypeSystemIdentifierDoubleQuoted;
|
|
233
|
+
private _stateDoctypeSystemIdentifierSingleQuoted;
|
|
234
|
+
private _stateAfterDoctypeSystemIdentifier;
|
|
235
|
+
private _stateBogusDoctype;
|
|
236
|
+
private _stateCdataSection;
|
|
237
|
+
private _stateCdataSectionBracket;
|
|
238
|
+
private _stateCdataSectionEnd;
|
|
239
|
+
private _stateCharacterReference;
|
|
240
|
+
private _stateNamedCharacterReference;
|
|
241
|
+
private _stateAmbiguousAmpersand;
|
|
242
|
+
private _stateNumericCharacterReference;
|
|
243
|
+
private _stateHexademicalCharacterReferenceStart;
|
|
244
|
+
private _stateDecimalCharacterReferenceStart;
|
|
245
|
+
private _stateHexademicalCharacterReference;
|
|
246
|
+
private _stateDecimalCharacterReference;
|
|
247
|
+
private _stateNumericCharacterReferenceEnd;
|
|
248
|
+
}
|
|
249
|
+
export {};
|
|
250
|
+
//# sourceMappingURL=index.d.ts.map
|