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,313 +0,0 @@
1
- #data
2
- <!DOCTYPE html><body><a href='#1'><nobr>1<nobr></a><br><a href='#2'><nobr>2<nobr></a><br><a href='#3'><nobr>3<nobr></a>
3
- #errors
4
- #document
5
- | <!DOCTYPE html>
6
- | <html>
7
- | <head>
8
- | <body>
9
- | <a>
10
- | href="#1"
11
- | <nobr>
12
- | "1"
13
- | <nobr>
14
- | <nobr>
15
- | <br>
16
- | <a>
17
- | href="#2"
18
- | <a>
19
- | href="#2"
20
- | <nobr>
21
- | "2"
22
- | <nobr>
23
- | <nobr>
24
- | <br>
25
- | <a>
26
- | href="#3"
27
- | <a>
28
- | href="#3"
29
- | <nobr>
30
- | "3"
31
- | <nobr>
32
-
33
- #data
34
- <!DOCTYPE html><body><b><nobr>1<nobr></b><i><nobr>2<nobr></i>3
35
- #errors
36
- #document
37
- | <!DOCTYPE html>
38
- | <html>
39
- | <head>
40
- | <body>
41
- | <b>
42
- | <nobr>
43
- | "1"
44
- | <nobr>
45
- | <nobr>
46
- | <i>
47
- | <i>
48
- | <nobr>
49
- | "2"
50
- | <nobr>
51
- | <nobr>
52
- | "3"
53
-
54
- #data
55
- <!DOCTYPE html><body><b><nobr>1<table><nobr></b><i><nobr>2<nobr></i>3
56
- #errors
57
- #document
58
- | <!DOCTYPE html>
59
- | <html>
60
- | <head>
61
- | <body>
62
- | <b>
63
- | <nobr>
64
- | "1"
65
- | <nobr>
66
- | <i>
67
- | <i>
68
- | <nobr>
69
- | "2"
70
- | <nobr>
71
- | <nobr>
72
- | "3"
73
- | <table>
74
-
75
- #data
76
- <!DOCTYPE html><body><b><nobr>1<table><tr><td><nobr></b><i><nobr>2<nobr></i>3
77
- #errors
78
- #document
79
- | <!DOCTYPE html>
80
- | <html>
81
- | <head>
82
- | <body>
83
- | <b>
84
- | <nobr>
85
- | "1"
86
- | <table>
87
- | <tbody>
88
- | <tr>
89
- | <td>
90
- | <nobr>
91
- | <i>
92
- | <i>
93
- | <nobr>
94
- | "2"
95
- | <nobr>
96
- | <nobr>
97
- | "3"
98
-
99
- #data
100
- <!DOCTYPE html><body><b><nobr>1<div><nobr></b><i><nobr>2<nobr></i>3
101
- #errors
102
- #document
103
- | <!DOCTYPE html>
104
- | <html>
105
- | <head>
106
- | <body>
107
- | <b>
108
- | <nobr>
109
- | "1"
110
- | <div>
111
- | <b>
112
- | <nobr>
113
- | <nobr>
114
- | <nobr>
115
- | <i>
116
- | <i>
117
- | <nobr>
118
- | "2"
119
- | <nobr>
120
- | <nobr>
121
- | "3"
122
-
123
- #data
124
- <!DOCTYPE html><body><b><nobr>1<nobr></b><div><i><nobr>2<nobr></i>3
125
- #errors
126
- #document
127
- | <!DOCTYPE html>
128
- | <html>
129
- | <head>
130
- | <body>
131
- | <b>
132
- | <nobr>
133
- | "1"
134
- | <nobr>
135
- | <div>
136
- | <nobr>
137
- | <i>
138
- | <i>
139
- | <nobr>
140
- | "2"
141
- | <nobr>
142
- | <nobr>
143
- | "3"
144
-
145
- #data
146
- <!DOCTYPE html><body><b><nobr>1<nobr><ins></b><i><nobr>
147
- #errors
148
- #document
149
- | <!DOCTYPE html>
150
- | <html>
151
- | <head>
152
- | <body>
153
- | <b>
154
- | <nobr>
155
- | "1"
156
- | <nobr>
157
- | <ins>
158
- | <nobr>
159
- | <i>
160
- | <i>
161
- | <nobr>
162
-
163
- #data
164
- <!DOCTYPE html><body><b><nobr>1<ins><nobr></b><i>2
165
- #errors
166
- #document
167
- | <!DOCTYPE html>
168
- | <html>
169
- | <head>
170
- | <body>
171
- | <b>
172
- | <nobr>
173
- | "1"
174
- | <ins>
175
- | <nobr>
176
- | <nobr>
177
- | <i>
178
- | "2"
179
-
180
- #data
181
- <!DOCTYPE html><body><b>1<nobr></b><i><nobr>2</i>
182
- #errors
183
- #document
184
- | <!DOCTYPE html>
185
- | <html>
186
- | <head>
187
- | <body>
188
- | <b>
189
- | "1"
190
- | <nobr>
191
- | <nobr>
192
- | <i>
193
- | <i>
194
- | <nobr>
195
- | "2"
196
-
197
- #data
198
- <p><code x</code></p>
199
-
200
- #errors
201
- #document
202
- | <html>
203
- | <head>
204
- | <body>
205
- | <p>
206
- | <code>
207
- | code=""
208
- | x<=""
209
- | <code>
210
- | code=""
211
- | x<=""
212
- | "
213
- "
214
-
215
- #data
216
- <!DOCTYPE html><svg><foreignObject><p><i></p>a
217
- #errors
218
- 45: End tag “p” seen, but there were open elements.
219
- 41: Unclosed element “i”.
220
- 46: End of file seen and there were open elements.
221
- 35: Unclosed element “foreignObject”.
222
- 20: Unclosed element “svg”.
223
- #document
224
- | <!DOCTYPE html>
225
- | <html>
226
- | <head>
227
- | <body>
228
- | <svg svg>
229
- | <svg foreignObject>
230
- | <p>
231
- | <i>
232
- | <i>
233
- | "a"
234
-
235
- #data
236
- <!DOCTYPE html><table><tr><td><svg><foreignObject><p><i></p>a
237
- #errors
238
- 56: End tag “p” seen, but there were open elements.
239
- 52: Unclosed element “i”.
240
- 57: End of file seen and there were open elements.
241
- 46: Unclosed element “foreignObject”.
242
- 31: Unclosed element “svg”.
243
- 22: Unclosed element “table”.
244
- #document
245
- | <!DOCTYPE html>
246
- | <html>
247
- | <head>
248
- | <body>
249
- | <table>
250
- | <tbody>
251
- | <tr>
252
- | <td>
253
- | <svg svg>
254
- | <svg foreignObject>
255
- | <p>
256
- | <i>
257
- | <i>
258
- | "a"
259
-
260
- #data
261
- <!DOCTYPE html><math><mtext><p><i></p>a
262
- #errors
263
- 38: End tag “p” seen, but there were open elements.
264
- 34: Unclosed element “i”.
265
- 39: End of file in a foreign namespace context.
266
- #document
267
- | <!DOCTYPE html>
268
- | <html>
269
- | <head>
270
- | <body>
271
- | <math math>
272
- | <math mtext>
273
- | <p>
274
- | <i>
275
- | <i>
276
- | "a"
277
-
278
- #data
279
- <!DOCTYPE html><table><tr><td><math><mtext><p><i></p>a
280
- #errors
281
- 53: End tag “p” seen, but there were open elements.
282
- 49: Unclosed element “i”.
283
- 54: End of file in a foreign namespace context.
284
- #document
285
- | <!DOCTYPE html>
286
- | <html>
287
- | <head>
288
- | <body>
289
- | <table>
290
- | <tbody>
291
- | <tr>
292
- | <td>
293
- | <math math>
294
- | <math mtext>
295
- | <p>
296
- | <i>
297
- | <i>
298
- | "a"
299
-
300
- #data
301
- <!DOCTYPE html><body><div><!/div>a
302
- #errors
303
- 29: Bogus comment.
304
- 34: End of file seen and there were open elements.
305
- 26: Unclosed element “div”.
306
- #document
307
- | <!DOCTYPE html>
308
- | <html>
309
- | <head>
310
- | <body>
311
- | <div>
312
- | <!-- /div -->
313
- | "a"
@@ -1,305 +0,0 @@
1
- #data
2
- <head></head><style></style>
3
- #errors
4
- Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
5
- Line: 1 Col: 20 Unexpected start tag (style) that can be in head. Moved.
6
- #document
7
- | <html>
8
- | <head>
9
- | <style>
10
- | <body>
11
-
12
- #data
13
- <head></head><script></script>
14
- #errors
15
- Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
16
- Line: 1 Col: 21 Unexpected start tag (script) that can be in head. Moved.
17
- #document
18
- | <html>
19
- | <head>
20
- | <script>
21
- | <body>
22
-
23
- #data
24
- <head></head><!-- --><style></style><!-- --><script></script>
25
- #errors
26
- Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
27
- Line: 1 Col: 28 Unexpected start tag (style) that can be in head. Moved.
28
- #document
29
- | <html>
30
- | <head>
31
- | <style>
32
- | <script>
33
- | <!-- -->
34
- | <!-- -->
35
- | <body>
36
-
37
- #data
38
- <head></head><!-- -->x<style></style><!-- --><script></script>
39
- #errors
40
- Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
41
- #document
42
- | <html>
43
- | <head>
44
- | <!-- -->
45
- | <body>
46
- | "x"
47
- | <style>
48
- | <!-- -->
49
- | <script>
50
-
51
- #data
52
- <!DOCTYPE html><html><head></head><body><pre>
53
- </pre></body></html>
54
- #errors
55
- #document
56
- | <!DOCTYPE html>
57
- | <html>
58
- | <head>
59
- | <body>
60
- | <pre>
61
-
62
- #data
63
- <!DOCTYPE html><html><head></head><body><pre>
64
- foo</pre></body></html>
65
- #errors
66
- #document
67
- | <!DOCTYPE html>
68
- | <html>
69
- | <head>
70
- | <body>
71
- | <pre>
72
- | "foo"
73
-
74
- #data
75
- <!DOCTYPE html><html><head></head><body><pre>
76
-
77
- foo</pre></body></html>
78
- #errors
79
- #document
80
- | <!DOCTYPE html>
81
- | <html>
82
- | <head>
83
- | <body>
84
- | <pre>
85
- | "
86
- foo"
87
-
88
- #data
89
- <!DOCTYPE html><html><head></head><body><pre>
90
- foo
91
- </pre></body></html>
92
- #errors
93
- #document
94
- | <!DOCTYPE html>
95
- | <html>
96
- | <head>
97
- | <body>
98
- | <pre>
99
- | "foo
100
- "
101
-
102
- #data
103
- <!DOCTYPE html><html><head></head><body><pre>x</pre><span>
104
- </span></body></html>
105
- #errors
106
- #document
107
- | <!DOCTYPE html>
108
- | <html>
109
- | <head>
110
- | <body>
111
- | <pre>
112
- | "x"
113
- | <span>
114
- | "
115
- "
116
-
117
- #data
118
- <!DOCTYPE html><html><head></head><body><pre>x
119
- y</pre></body></html>
120
- #errors
121
- #document
122
- | <!DOCTYPE html>
123
- | <html>
124
- | <head>
125
- | <body>
126
- | <pre>
127
- | "x
128
- y"
129
-
130
- #data
131
- <!DOCTYPE html><html><head></head><body><pre>x<div>
132
- y</pre></body></html>
133
- #errors
134
- Line: 2 Col: 7 End tag (pre) seen too early. Expected other end tag.
135
- #document
136
- | <!DOCTYPE html>
137
- | <html>
138
- | <head>
139
- | <body>
140
- | <pre>
141
- | "x"
142
- | <div>
143
- | "
144
- y"
145
-
146
- #data
147
- <!DOCTYPE html><pre>&#x0a;&#x0a;A</pre>
148
- #errors
149
- #document
150
- | <!DOCTYPE html>
151
- | <html>
152
- | <head>
153
- | <body>
154
- | <pre>
155
- | "
156
- A"
157
-
158
- #data
159
- <!DOCTYPE html><HTML><META><HEAD></HEAD></HTML>
160
- #errors
161
- Line: 1 Col: 33 Unexpected start tag head in existing head. Ignored.
162
- #document
163
- | <!DOCTYPE html>
164
- | <html>
165
- | <head>
166
- | <meta>
167
- | <body>
168
-
169
- #data
170
- <!DOCTYPE html><HTML><HEAD><head></HEAD></HTML>
171
- #errors
172
- Line: 1 Col: 33 Unexpected start tag head in existing head. Ignored.
173
- #document
174
- | <!DOCTYPE html>
175
- | <html>
176
- | <head>
177
- | <body>
178
-
179
- #data
180
- <textarea>foo<span>bar</span><i>baz
181
- #errors
182
- Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE.
183
- Line: 1 Col: 35 Expected closing tag. Unexpected end of file.
184
- #document
185
- | <html>
186
- | <head>
187
- | <body>
188
- | <textarea>
189
- | "foo<span>bar</span><i>baz"
190
-
191
- #data
192
- <title>foo<span>bar</em><i>baz
193
- #errors
194
- Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
195
- Line: 1 Col: 30 Unexpected end of file. Expected end tag (title).
196
- #document
197
- | <html>
198
- | <head>
199
- | <title>
200
- | "foo<span>bar</em><i>baz"
201
- | <body>
202
-
203
- #data
204
- <!DOCTYPE html><textarea>
205
- </textarea>
206
- #errors
207
- #document
208
- | <!DOCTYPE html>
209
- | <html>
210
- | <head>
211
- | <body>
212
- | <textarea>
213
-
214
- #data
215
- <!DOCTYPE html><textarea>
216
- foo</textarea>
217
- #errors
218
- #document
219
- | <!DOCTYPE html>
220
- | <html>
221
- | <head>
222
- | <body>
223
- | <textarea>
224
- | "foo"
225
-
226
- #data
227
- <!DOCTYPE html><textarea>
228
-
229
- foo</textarea>
230
- #errors
231
- #document
232
- | <!DOCTYPE html>
233
- | <html>
234
- | <head>
235
- | <body>
236
- | <textarea>
237
- | "
238
- foo"
239
-
240
- #data
241
- <!DOCTYPE html><html><head></head><body><ul><li><div><p><li></ul></body></html>
242
- #errors
243
- Line: 1 Col: 60 Missing end tag (div, li).
244
- #document
245
- | <!DOCTYPE html>
246
- | <html>
247
- | <head>
248
- | <body>
249
- | <ul>
250
- | <li>
251
- | <div>
252
- | <p>
253
- | <li>
254
-
255
- #data
256
- <!doctype html><nobr><nobr><nobr>
257
- #errors
258
- Line: 1 Col: 27 Unexpected start tag (nobr) implies end tag (nobr).
259
- Line: 1 Col: 33 Unexpected start tag (nobr) implies end tag (nobr).
260
- Line: 1 Col: 33 Expected closing tag. Unexpected end of file.
261
- #document
262
- | <!DOCTYPE html>
263
- | <html>
264
- | <head>
265
- | <body>
266
- | <nobr>
267
- | <nobr>
268
- | <nobr>
269
-
270
- #data
271
- <!doctype html><nobr><nobr></nobr><nobr>
272
- #errors
273
- Line: 1 Col: 27 Unexpected start tag (nobr) implies end tag (nobr).
274
- Line: 1 Col: 40 Expected closing tag. Unexpected end of file.
275
- #document
276
- | <!DOCTYPE html>
277
- | <html>
278
- | <head>
279
- | <body>
280
- | <nobr>
281
- | <nobr>
282
- | <nobr>
283
-
284
- #data
285
- <!doctype html><html><body><p><table></table></body></html>
286
- #errors
287
- Not known
288
- #document
289
- | <!DOCTYPE html>
290
- | <html>
291
- | <head>
292
- | <body>
293
- | <p>
294
- | <table>
295
-
296
- #data
297
- <p><table></table>
298
- #errors
299
- Not known
300
- #document
301
- | <html>
302
- | <head>
303
- | <body>
304
- | <p>
305
- | <table>
@@ -1,59 +0,0 @@
1
- #data
2
- direct div content
3
- #errors
4
- #document-fragment
5
- div
6
- #document
7
- | "direct div content"
8
-
9
- #data
10
- direct textarea content
11
- #errors
12
- #document-fragment
13
- textarea
14
- #document
15
- | "direct textarea content"
16
-
17
- #data
18
- textarea content with <em>pseudo</em> <foo>markup
19
- #errors
20
- #document-fragment
21
- textarea
22
- #document
23
- | "textarea content with <em>pseudo</em> <foo>markup"
24
-
25
- #data
26
- this is &#x0043;DATA inside a <style> element
27
- #errors
28
- #document-fragment
29
- style
30
- #document
31
- | "this is &#x0043;DATA inside a <style> element"
32
-
33
- #data
34
- </plaintext>
35
- #errors
36
- #document-fragment
37
- plaintext
38
- #document
39
- | "</plaintext>"
40
-
41
- #data
42
- setting html's innerHTML
43
- #errors
44
- Line: 1 Col: 24 Unexpected EOF in inner html mode.
45
- #document-fragment
46
- html
47
- #document
48
- | <head>
49
- | <body>
50
- | "setting html's innerHTML"
51
-
52
- #data
53
- <title>setting head's innerHTML</title>
54
- #errors
55
- #document-fragment
56
- head
57
- #document
58
- | <title>
59
- | "setting head's innerHTML"