parse5 0.6.1 → 1.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 (80) hide show
  1. package/.npmignore +3 -1
  2. package/LICENSE +1 -1
  3. package/README.md +166 -77
  4. package/index.js +7 -0
  5. package/lib/{html.js → const/html.js} +0 -0
  6. package/lib/{unicode.js → const/unicode.js} +0 -0
  7. package/lib/{named_entity_trie.js → tokenization_stage/named_entity_trie.js} +1 -1
  8. package/lib/tokenization_stage/parser_simulator.js +2 -0
  9. package/lib/{preprocessor.js → tokenization_stage/preprocessor.js} +5 -5
  10. package/lib/{tokenizer.js → tokenization_stage/tokenizer.js} +37 -37
  11. package/lib/{default_tree_adapter.js → tree_adapters/default.js} +47 -0
  12. package/lib/tree_adapters/htmlparser2.js +267 -0
  13. package/lib/{formatting_element_list.js → tree_construction_stage/formatting_element_list.js} +1 -1
  14. package/lib/{open_element_stack.js → tree_construction_stage/open_element_stack.js} +2 -2
  15. package/lib/{parser.js → tree_construction_stage/parser.js} +8 -8
  16. package/lib/tree_construction_stage/tree_serializer.js +165 -0
  17. package/package.json +33 -26
  18. package/test/data/tokenizer/contentModelFlags.test +0 -75
  19. package/test/data/tokenizer/domjs.test +0 -90
  20. package/test/data/tokenizer/entities.test +0 -283
  21. package/test/data/tokenizer/escapeFlag.test +0 -33
  22. package/test/data/tokenizer/namedEntities.test +0 -44189
  23. package/test/data/tokenizer/numericEntities.test +0 -1313
  24. package/test/data/tokenizer/pendingSpecChanges.test +0 -7
  25. package/test/data/tokenizer/test1.test +0 -196
  26. package/test/data/tokenizer/test2.test +0 -179
  27. package/test/data/tokenizer/test3.test +0 -6047
  28. package/test/data/tokenizer/test4.test +0 -344
  29. package/test/data/tokenizer/unicodeChars.test +0 -1295
  30. package/test/data/tokenizer/unicodeCharsProblematic.test +0 -27
  31. package/test/data/tree-construction/adoption01.dat +0 -275
  32. package/test/data/tree-construction/adoption02.dat +0 -31
  33. package/test/data/tree-construction/comments01.dat +0 -146
  34. package/test/data/tree-construction/doctype01.dat +0 -370
  35. package/test/data/tree-construction/domjs-unsafe.dat +0 -0
  36. package/test/data/tree-construction/entities01.dat +0 -603
  37. package/test/data/tree-construction/entities02.dat +0 -249
  38. package/test/data/tree-construction/html5test-com.dat +0 -246
  39. package/test/data/tree-construction/inbody01.dat +0 -43
  40. package/test/data/tree-construction/isindex.dat +0 -40
  41. package/test/data/tree-construction/main-element.dat +0 -29
  42. package/test/data/tree-construction/pending-spec-changes-plain-text-unsafe.dat +0 -0
  43. package/test/data/tree-construction/pending-spec-changes.dat +0 -52
  44. package/test/data/tree-construction/plain-text-unsafe.dat +0 -0
  45. package/test/data/tree-construction/scriptdata01.dat +0 -308
  46. package/test/data/tree-construction/tables01.dat +0 -212
  47. package/test/data/tree-construction/tests1.dat +0 -1952
  48. package/test/data/tree-construction/tests10.dat +0 -799
  49. package/test/data/tree-construction/tests11.dat +0 -482
  50. package/test/data/tree-construction/tests12.dat +0 -62
  51. package/test/data/tree-construction/tests14.dat +0 -74
  52. package/test/data/tree-construction/tests15.dat +0 -208
  53. package/test/data/tree-construction/tests16.dat +0 -2299
  54. package/test/data/tree-construction/tests17.dat +0 -153
  55. package/test/data/tree-construction/tests18.dat +0 -269
  56. package/test/data/tree-construction/tests19.dat +0 -1249
  57. package/test/data/tree-construction/tests2.dat +0 -763
  58. package/test/data/tree-construction/tests20.dat +0 -455
  59. package/test/data/tree-construction/tests21.dat +0 -257
  60. package/test/data/tree-construction/tests22.dat +0 -157
  61. package/test/data/tree-construction/tests23.dat +0 -155
  62. package/test/data/tree-construction/tests24.dat +0 -79
  63. package/test/data/tree-construction/tests25.dat +0 -219
  64. package/test/data/tree-construction/tests26.dat +0 -313
  65. package/test/data/tree-construction/tests3.dat +0 -305
  66. package/test/data/tree-construction/tests4.dat +0 -59
  67. package/test/data/tree-construction/tests5.dat +0 -191
  68. package/test/data/tree-construction/tests6.dat +0 -663
  69. package/test/data/tree-construction/tests7.dat +0 -390
  70. package/test/data/tree-construction/tests8.dat +0 -148
  71. package/test/data/tree-construction/tests9.dat +0 -457
  72. package/test/data/tree-construction/tests_innerHTML_1.dat +0 -741
  73. package/test/data/tree-construction/tricky01.dat +0 -261
  74. package/test/data/tree-construction/webkit01.dat +0 -594
  75. package/test/data/tree-construction/webkit02.dat +0 -94
  76. package/test/fixtures/formatting_element_list_test.js +0 -267
  77. package/test/fixtures/open_element_stack_test.js +0 -495
  78. package/test/fixtures/parser_test.js +0 -160
  79. package/test/fixtures/tokenizer_test.js +0 -178
  80. package/test/run_tests.js +0 -10
@@ -1,157 +0,0 @@
1
- #data
2
- <a><b><big><em><strong><div>X</a>
3
- #errors
4
- #document
5
- | <html>
6
- | <head>
7
- | <body>
8
- | <a>
9
- | <b>
10
- | <big>
11
- | <em>
12
- | <strong>
13
- | <big>
14
- | <em>
15
- | <strong>
16
- | <div>
17
- | <a>
18
- | "X"
19
-
20
- #data
21
- <a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8>A</a>
22
- #errors
23
- #document
24
- | <html>
25
- | <head>
26
- | <body>
27
- | <a>
28
- | <b>
29
- | <b>
30
- | <div>
31
- | id="1"
32
- | <a>
33
- | <div>
34
- | id="2"
35
- | <a>
36
- | <div>
37
- | id="3"
38
- | <a>
39
- | <div>
40
- | id="4"
41
- | <a>
42
- | <div>
43
- | id="5"
44
- | <a>
45
- | <div>
46
- | id="6"
47
- | <a>
48
- | <div>
49
- | id="7"
50
- | <a>
51
- | <div>
52
- | id="8"
53
- | <a>
54
- | "A"
55
-
56
- #data
57
- <a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9>A</a>
58
- #errors
59
- #document
60
- | <html>
61
- | <head>
62
- | <body>
63
- | <a>
64
- | <b>
65
- | <b>
66
- | <div>
67
- | id="1"
68
- | <a>
69
- | <div>
70
- | id="2"
71
- | <a>
72
- | <div>
73
- | id="3"
74
- | <a>
75
- | <div>
76
- | id="4"
77
- | <a>
78
- | <div>
79
- | id="5"
80
- | <a>
81
- | <div>
82
- | id="6"
83
- | <a>
84
- | <div>
85
- | id="7"
86
- | <a>
87
- | <div>
88
- | id="8"
89
- | <a>
90
- | <div>
91
- | id="9"
92
- | "A"
93
-
94
- #data
95
- <a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9><div id=10>A</a>
96
- #errors
97
- #document
98
- | <html>
99
- | <head>
100
- | <body>
101
- | <a>
102
- | <b>
103
- | <b>
104
- | <div>
105
- | id="1"
106
- | <a>
107
- | <div>
108
- | id="2"
109
- | <a>
110
- | <div>
111
- | id="3"
112
- | <a>
113
- | <div>
114
- | id="4"
115
- | <a>
116
- | <div>
117
- | id="5"
118
- | <a>
119
- | <div>
120
- | id="6"
121
- | <a>
122
- | <div>
123
- | id="7"
124
- | <a>
125
- | <div>
126
- | id="8"
127
- | <a>
128
- | <div>
129
- | id="9"
130
- | <div>
131
- | id="10"
132
- | "A"
133
-
134
- #data
135
- <cite><b><cite><i><cite><i><cite><i><div>X</b>TEST
136
- #errors
137
- Line: 1 Col: 6 Unexpected start tag (cite). Expected DOCTYPE.
138
- Line: 1 Col: 46 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
139
- Line: 1 Col: 50 Expected closing tag. Unexpected end of file.
140
- #document
141
- | <html>
142
- | <head>
143
- | <body>
144
- | <cite>
145
- | <b>
146
- | <cite>
147
- | <i>
148
- | <cite>
149
- | <i>
150
- | <cite>
151
- | <i>
152
- | <i>
153
- | <i>
154
- | <div>
155
- | <b>
156
- | "X"
157
- | "TEST"
@@ -1,155 +0,0 @@
1
- #data
2
- <p><font size=4><font color=red><font size=4><font size=4><font size=4><font size=4><font size=4><font color=red><p>X
3
- #errors
4
- 3: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”.
5
- 116: Unclosed elements.
6
- 117: End of file seen and there were open elements.
7
- #document
8
- | <html>
9
- | <head>
10
- | <body>
11
- | <p>
12
- | <font>
13
- | size="4"
14
- | <font>
15
- | color="red"
16
- | <font>
17
- | size="4"
18
- | <font>
19
- | size="4"
20
- | <font>
21
- | size="4"
22
- | <font>
23
- | size="4"
24
- | <font>
25
- | size="4"
26
- | <font>
27
- | color="red"
28
- | <p>
29
- | <font>
30
- | color="red"
31
- | <font>
32
- | size="4"
33
- | <font>
34
- | size="4"
35
- | <font>
36
- | size="4"
37
- | <font>
38
- | color="red"
39
- | "X"
40
-
41
- #data
42
- <p><font size=4><font size=4><font size=4><font size=4><p>X
43
- #errors
44
- #document
45
- | <html>
46
- | <head>
47
- | <body>
48
- | <p>
49
- | <font>
50
- | size="4"
51
- | <font>
52
- | size="4"
53
- | <font>
54
- | size="4"
55
- | <font>
56
- | size="4"
57
- | <p>
58
- | <font>
59
- | size="4"
60
- | <font>
61
- | size="4"
62
- | <font>
63
- | size="4"
64
- | "X"
65
-
66
- #data
67
- <p><font size=4><font size=4><font size=4><font size="5"><font size=4><p>X
68
- #errors
69
- #document
70
- | <html>
71
- | <head>
72
- | <body>
73
- | <p>
74
- | <font>
75
- | size="4"
76
- | <font>
77
- | size="4"
78
- | <font>
79
- | size="4"
80
- | <font>
81
- | size="5"
82
- | <font>
83
- | size="4"
84
- | <p>
85
- | <font>
86
- | size="4"
87
- | <font>
88
- | size="4"
89
- | <font>
90
- | size="5"
91
- | <font>
92
- | size="4"
93
- | "X"
94
-
95
- #data
96
- <p><font size=4 id=a><font size=4 id=b><font size=4><font size=4><p>X
97
- #errors
98
- #document
99
- | <html>
100
- | <head>
101
- | <body>
102
- | <p>
103
- | <font>
104
- | id="a"
105
- | size="4"
106
- | <font>
107
- | id="b"
108
- | size="4"
109
- | <font>
110
- | size="4"
111
- | <font>
112
- | size="4"
113
- | <p>
114
- | <font>
115
- | id="a"
116
- | size="4"
117
- | <font>
118
- | id="b"
119
- | size="4"
120
- | <font>
121
- | size="4"
122
- | <font>
123
- | size="4"
124
- | "X"
125
-
126
- #data
127
- <p><b id=a><b id=a><b id=a><b><object><b id=a><b id=a>X</object><p>Y
128
- #errors
129
- #document
130
- | <html>
131
- | <head>
132
- | <body>
133
- | <p>
134
- | <b>
135
- | id="a"
136
- | <b>
137
- | id="a"
138
- | <b>
139
- | id="a"
140
- | <b>
141
- | <object>
142
- | <b>
143
- | id="a"
144
- | <b>
145
- | id="a"
146
- | "X"
147
- | <p>
148
- | <b>
149
- | id="a"
150
- | <b>
151
- | id="a"
152
- | <b>
153
- | id="a"
154
- | <b>
155
- | "Y"
@@ -1,79 +0,0 @@
1
- #data
2
- <!DOCTYPE html>&NotEqualTilde;
3
- #errors
4
- #document
5
- | <!DOCTYPE html>
6
- | <html>
7
- | <head>
8
- | <body>
9
- | "≂̸"
10
-
11
- #data
12
- <!DOCTYPE html>&NotEqualTilde;A
13
- #errors
14
- #document
15
- | <!DOCTYPE html>
16
- | <html>
17
- | <head>
18
- | <body>
19
- | "≂̸A"
20
-
21
- #data
22
- <!DOCTYPE html>&ThickSpace;
23
- #errors
24
- #document
25
- | <!DOCTYPE html>
26
- | <html>
27
- | <head>
28
- | <body>
29
- | "  "
30
-
31
- #data
32
- <!DOCTYPE html>&ThickSpace;A
33
- #errors
34
- #document
35
- | <!DOCTYPE html>
36
- | <html>
37
- | <head>
38
- | <body>
39
- | "  A"
40
-
41
- #data
42
- <!DOCTYPE html>&NotSubset;
43
- #errors
44
- #document
45
- | <!DOCTYPE html>
46
- | <html>
47
- | <head>
48
- | <body>
49
- | "⊂⃒"
50
-
51
- #data
52
- <!DOCTYPE html>&NotSubset;A
53
- #errors
54
- #document
55
- | <!DOCTYPE html>
56
- | <html>
57
- | <head>
58
- | <body>
59
- | "⊂⃒A"
60
-
61
- #data
62
- <!DOCTYPE html>&Gopf;
63
- #errors
64
- #document
65
- | <!DOCTYPE html>
66
- | <html>
67
- | <head>
68
- | <body>
69
- | "𝔾"
70
-
71
- #data
72
- <!DOCTYPE html>&Gopf;A
73
- #errors
74
- #document
75
- | <!DOCTYPE html>
76
- | <html>
77
- | <head>
78
- | <body>
79
- | "𝔾A"
@@ -1,219 +0,0 @@
1
- #data
2
- <!DOCTYPE html><body><foo>A
3
- #errors
4
- #document
5
- | <!DOCTYPE html>
6
- | <html>
7
- | <head>
8
- | <body>
9
- | <foo>
10
- | "A"
11
-
12
- #data
13
- <!DOCTYPE html><body><area>A
14
- #errors
15
- #document
16
- | <!DOCTYPE html>
17
- | <html>
18
- | <head>
19
- | <body>
20
- | <area>
21
- | "A"
22
-
23
- #data
24
- <!DOCTYPE html><body><base>A
25
- #errors
26
- #document
27
- | <!DOCTYPE html>
28
- | <html>
29
- | <head>
30
- | <body>
31
- | <base>
32
- | "A"
33
-
34
- #data
35
- <!DOCTYPE html><body><basefont>A
36
- #errors
37
- #document
38
- | <!DOCTYPE html>
39
- | <html>
40
- | <head>
41
- | <body>
42
- | <basefont>
43
- | "A"
44
-
45
- #data
46
- <!DOCTYPE html><body><bgsound>A
47
- #errors
48
- #document
49
- | <!DOCTYPE html>
50
- | <html>
51
- | <head>
52
- | <body>
53
- | <bgsound>
54
- | "A"
55
-
56
- #data
57
- <!DOCTYPE html><body><br>A
58
- #errors
59
- #document
60
- | <!DOCTYPE html>
61
- | <html>
62
- | <head>
63
- | <body>
64
- | <br>
65
- | "A"
66
-
67
- #data
68
- <!DOCTYPE html><body><col>A
69
- #errors
70
- 26: Stray start tag “col”.
71
- #document
72
- | <!DOCTYPE html>
73
- | <html>
74
- | <head>
75
- | <body>
76
- | "A"
77
-
78
- #data
79
- <!DOCTYPE html><body><command>A
80
- #errors
81
- #document
82
- | <!DOCTYPE html>
83
- | <html>
84
- | <head>
85
- | <body>
86
- | <command>
87
- | "A"
88
-
89
- #data
90
- <!DOCTYPE html><body><embed>A
91
- #errors
92
- #document
93
- | <!DOCTYPE html>
94
- | <html>
95
- | <head>
96
- | <body>
97
- | <embed>
98
- | "A"
99
-
100
- #data
101
- <!DOCTYPE html><body><frame>A
102
- #errors
103
- 26: Stray start tag “frame”.
104
- #document
105
- | <!DOCTYPE html>
106
- | <html>
107
- | <head>
108
- | <body>
109
- | "A"
110
-
111
- #data
112
- <!DOCTYPE html><body><hr>A
113
- #errors
114
- #document
115
- | <!DOCTYPE html>
116
- | <html>
117
- | <head>
118
- | <body>
119
- | <hr>
120
- | "A"
121
-
122
- #data
123
- <!DOCTYPE html><body><img>A
124
- #errors
125
- #document
126
- | <!DOCTYPE html>
127
- | <html>
128
- | <head>
129
- | <body>
130
- | <img>
131
- | "A"
132
-
133
- #data
134
- <!DOCTYPE html><body><input>A
135
- #errors
136
- #document
137
- | <!DOCTYPE html>
138
- | <html>
139
- | <head>
140
- | <body>
141
- | <input>
142
- | "A"
143
-
144
- #data
145
- <!DOCTYPE html><body><keygen>A
146
- #errors
147
- #document
148
- | <!DOCTYPE html>
149
- | <html>
150
- | <head>
151
- | <body>
152
- | <keygen>
153
- | "A"
154
-
155
- #data
156
- <!DOCTYPE html><body><link>A
157
- #errors
158
- #document
159
- | <!DOCTYPE html>
160
- | <html>
161
- | <head>
162
- | <body>
163
- | <link>
164
- | "A"
165
-
166
- #data
167
- <!DOCTYPE html><body><meta>A
168
- #errors
169
- #document
170
- | <!DOCTYPE html>
171
- | <html>
172
- | <head>
173
- | <body>
174
- | <meta>
175
- | "A"
176
-
177
- #data
178
- <!DOCTYPE html><body><param>A
179
- #errors
180
- #document
181
- | <!DOCTYPE html>
182
- | <html>
183
- | <head>
184
- | <body>
185
- | <param>
186
- | "A"
187
-
188
- #data
189
- <!DOCTYPE html><body><source>A
190
- #errors
191
- #document
192
- | <!DOCTYPE html>
193
- | <html>
194
- | <head>
195
- | <body>
196
- | <source>
197
- | "A"
198
-
199
- #data
200
- <!DOCTYPE html><body><track>A
201
- #errors
202
- #document
203
- | <!DOCTYPE html>
204
- | <html>
205
- | <head>
206
- | <body>
207
- | <track>
208
- | "A"
209
-
210
- #data
211
- <!DOCTYPE html><body><wbr>A
212
- #errors
213
- #document
214
- | <!DOCTYPE html>
215
- | <html>
216
- | <head>
217
- | <body>
218
- | <wbr>
219
- | "A"