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,594 +0,0 @@
1
- #data
2
- Test
3
- #errors
4
- Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE.
5
- #document
6
- | <html>
7
- | <head>
8
- | <body>
9
- | "Test"
10
-
11
- #data
12
- <div></div>
13
- #errors
14
- #document
15
- | <html>
16
- | <head>
17
- | <body>
18
- | <div>
19
-
20
- #data
21
- <div>Test</div>
22
- #errors
23
- #document
24
- | <html>
25
- | <head>
26
- | <body>
27
- | <div>
28
- | "Test"
29
-
30
- #data
31
- <di
32
- #errors
33
- #document
34
- | <html>
35
- | <head>
36
- | <body>
37
-
38
- #data
39
- <div>Hello</div>
40
- <script>
41
- console.log("PASS");
42
- </script>
43
- <div>Bye</div>
44
- #errors
45
- #document
46
- | <html>
47
- | <head>
48
- | <body>
49
- | <div>
50
- | "Hello"
51
- | "
52
- "
53
- | <script>
54
- | "
55
- console.log("PASS");
56
- "
57
- | "
58
- "
59
- | <div>
60
- | "Bye"
61
-
62
- #data
63
- <div foo="bar">Hello</div>
64
- #errors
65
- #document
66
- | <html>
67
- | <head>
68
- | <body>
69
- | <div>
70
- | foo="bar"
71
- | "Hello"
72
-
73
- #data
74
- <div>Hello</div>
75
- <script>
76
- console.log("FOO<span>BAR</span>BAZ");
77
- </script>
78
- <div>Bye</div>
79
- #errors
80
- #document
81
- | <html>
82
- | <head>
83
- | <body>
84
- | <div>
85
- | "Hello"
86
- | "
87
- "
88
- | <script>
89
- | "
90
- console.log("FOO<span>BAR</span>BAZ");
91
- "
92
- | "
93
- "
94
- | <div>
95
- | "Bye"
96
-
97
- #data
98
- <foo bar="baz"></foo><potato quack="duck"></potato>
99
- #errors
100
- #document
101
- | <html>
102
- | <head>
103
- | <body>
104
- | <foo>
105
- | bar="baz"
106
- | <potato>
107
- | quack="duck"
108
-
109
- #data
110
- <foo bar="baz"><potato quack="duck"></potato></foo>
111
- #errors
112
- #document
113
- | <html>
114
- | <head>
115
- | <body>
116
- | <foo>
117
- | bar="baz"
118
- | <potato>
119
- | quack="duck"
120
-
121
- #data
122
- <foo></foo bar="baz"><potato></potato quack="duck">
123
- #errors
124
- #document
125
- | <html>
126
- | <head>
127
- | <body>
128
- | <foo>
129
- | <potato>
130
-
131
- #data
132
- </ tttt>
133
- #errors
134
- #document
135
- | <!-- tttt -->
136
- | <html>
137
- | <head>
138
- | <body>
139
-
140
- #data
141
- <div FOO ><img><img></div>
142
- #errors
143
- #document
144
- | <html>
145
- | <head>
146
- | <body>
147
- | <div>
148
- | foo=""
149
- | <img>
150
- | <img>
151
-
152
- #data
153
- <p>Test</p<p>Test2</p>
154
- #errors
155
- #document
156
- | <html>
157
- | <head>
158
- | <body>
159
- | <p>
160
- | "TestTest2"
161
-
162
- #data
163
- <rdar://problem/6869687>
164
- #errors
165
- #document
166
- | <html>
167
- | <head>
168
- | <body>
169
- | <rdar:>
170
- | 6869687=""
171
- | problem=""
172
-
173
- #data
174
- <A>test< /A>
175
- #errors
176
- #document
177
- | <html>
178
- | <head>
179
- | <body>
180
- | <a>
181
- | "test< /A>"
182
-
183
- #data
184
- &lt;
185
- #errors
186
- #document
187
- | <html>
188
- | <head>
189
- | <body>
190
- | "<"
191
-
192
- #data
193
- <body foo='bar'><body foo='baz' yo='mama'>
194
- #errors
195
- #document
196
- | <html>
197
- | <head>
198
- | <body>
199
- | foo="bar"
200
- | yo="mama"
201
-
202
- #data
203
- <body></br foo="bar"></body>
204
- #errors
205
- #document
206
- | <html>
207
- | <head>
208
- | <body>
209
- | <br>
210
-
211
- #data
212
- <bdy><br foo="bar"></body>
213
- #errors
214
- #document
215
- | <html>
216
- | <head>
217
- | <body>
218
- | <bdy>
219
- | <br>
220
- | foo="bar"
221
-
222
- #data
223
- <body></body></br foo="bar">
224
- #errors
225
- #document
226
- | <html>
227
- | <head>
228
- | <body>
229
- | <br>
230
-
231
- #data
232
- <bdy></body><br foo="bar">
233
- #errors
234
- #document
235
- | <html>
236
- | <head>
237
- | <body>
238
- | <bdy>
239
- | <br>
240
- | foo="bar"
241
-
242
- #data
243
- <html><body></body></html><!-- Hi there -->
244
- #errors
245
- #document
246
- | <html>
247
- | <head>
248
- | <body>
249
- | <!-- Hi there -->
250
-
251
- #data
252
- <html><body></body></html>x<!-- Hi there -->
253
- #errors
254
- #document
255
- | <html>
256
- | <head>
257
- | <body>
258
- | "x"
259
- | <!-- Hi there -->
260
-
261
- #data
262
- <html><body></body></html>x<!-- Hi there --></html><!-- Again -->
263
- #errors
264
- #document
265
- | <html>
266
- | <head>
267
- | <body>
268
- | "x"
269
- | <!-- Hi there -->
270
- | <!-- Again -->
271
-
272
- #data
273
- <html><body></body></html>x<!-- Hi there --></body></html><!-- Again -->
274
- #errors
275
- #document
276
- | <html>
277
- | <head>
278
- | <body>
279
- | "x"
280
- | <!-- Hi there -->
281
- | <!-- Again -->
282
-
283
- #data
284
- <html><body><ruby><div><rp>xx</rp></div></ruby></body></html>
285
- #errors
286
- #document
287
- | <html>
288
- | <head>
289
- | <body>
290
- | <ruby>
291
- | <div>
292
- | <rp>
293
- | "xx"
294
-
295
- #data
296
- <html><body><ruby><div><rt>xx</rt></div></ruby></body></html>
297
- #errors
298
- #document
299
- | <html>
300
- | <head>
301
- | <body>
302
- | <ruby>
303
- | <div>
304
- | <rt>
305
- | "xx"
306
-
307
- #data
308
- <html><frameset><!--1--><noframes>A</noframes><!--2--></frameset><!--3--><noframes>B</noframes><!--4--></html><!--5--><noframes>C</noframes><!--6-->
309
- #errors
310
- #document
311
- | <html>
312
- | <head>
313
- | <frameset>
314
- | <!-- 1 -->
315
- | <noframes>
316
- | "A"
317
- | <!-- 2 -->
318
- | <!-- 3 -->
319
- | <noframes>
320
- | "B"
321
- | <!-- 4 -->
322
- | <noframes>
323
- | "C"
324
- | <!-- 5 -->
325
- | <!-- 6 -->
326
-
327
- #data
328
- <select><option>A<select><option>B<select><option>C<select><option>D<select><option>E<select><option>F<select><option>G<select>
329
- #errors
330
- #document
331
- | <html>
332
- | <head>
333
- | <body>
334
- | <select>
335
- | <option>
336
- | "A"
337
- | <option>
338
- | "B"
339
- | <select>
340
- | <option>
341
- | "C"
342
- | <option>
343
- | "D"
344
- | <select>
345
- | <option>
346
- | "E"
347
- | <option>
348
- | "F"
349
- | <select>
350
- | <option>
351
- | "G"
352
-
353
- #data
354
- <dd><dd><dt><dt><dd><li><li>
355
- #errors
356
- #document
357
- | <html>
358
- | <head>
359
- | <body>
360
- | <dd>
361
- | <dd>
362
- | <dt>
363
- | <dt>
364
- | <dd>
365
- | <li>
366
- | <li>
367
-
368
- #data
369
- <div><b></div><div><nobr>a<nobr>
370
- #errors
371
- #document
372
- | <html>
373
- | <head>
374
- | <body>
375
- | <div>
376
- | <b>
377
- | <div>
378
- | <b>
379
- | <nobr>
380
- | "a"
381
- | <nobr>
382
-
383
- #data
384
- <head></head>
385
- <body></body>
386
- #errors
387
- #document
388
- | <html>
389
- | <head>
390
- | "
391
- "
392
- | <body>
393
-
394
- #data
395
- <head></head> <style></style>ddd
396
- #errors
397
- #document
398
- | <html>
399
- | <head>
400
- | <style>
401
- | " "
402
- | <body>
403
- | "ddd"
404
-
405
- #data
406
- <kbd><table></kbd><col><select><tr>
407
- #errors
408
- #document
409
- | <html>
410
- | <head>
411
- | <body>
412
- | <kbd>
413
- | <select>
414
- | <table>
415
- | <colgroup>
416
- | <col>
417
- | <tbody>
418
- | <tr>
419
-
420
- #data
421
- <kbd><table></kbd><col><select><tr></table><div>
422
- #errors
423
- #document
424
- | <html>
425
- | <head>
426
- | <body>
427
- | <kbd>
428
- | <select>
429
- | <table>
430
- | <colgroup>
431
- | <col>
432
- | <tbody>
433
- | <tr>
434
- | <div>
435
-
436
- #data
437
- <a><li><style></style><title></title></a>
438
- #errors
439
- #document
440
- | <html>
441
- | <head>
442
- | <body>
443
- | <a>
444
- | <li>
445
- | <a>
446
- | <style>
447
- | <title>
448
-
449
- #data
450
- <font></p><p><meta><title></title></font>
451
- #errors
452
- #document
453
- | <html>
454
- | <head>
455
- | <body>
456
- | <font>
457
- | <p>
458
- | <p>
459
- | <font>
460
- | <meta>
461
- | <title>
462
-
463
- #data
464
- <a><center><title></title><a>
465
- #errors
466
- #document
467
- | <html>
468
- | <head>
469
- | <body>
470
- | <a>
471
- | <center>
472
- | <a>
473
- | <title>
474
- | <a>
475
-
476
- #data
477
- <svg><title><div>
478
- #errors
479
- #document
480
- | <html>
481
- | <head>
482
- | <body>
483
- | <svg svg>
484
- | <svg title>
485
- | <div>
486
-
487
- #data
488
- <svg><title><rect><div>
489
- #errors
490
- #document
491
- | <html>
492
- | <head>
493
- | <body>
494
- | <svg svg>
495
- | <svg title>
496
- | <rect>
497
- | <div>
498
-
499
- #data
500
- <svg><title><svg><div>
501
- #errors
502
- #document
503
- | <html>
504
- | <head>
505
- | <body>
506
- | <svg svg>
507
- | <svg title>
508
- | <svg svg>
509
- | <div>
510
-
511
- #data
512
- <img <="" FAIL>
513
- #errors
514
- #document
515
- | <html>
516
- | <head>
517
- | <body>
518
- | <img>
519
- | <=""
520
- | fail=""
521
-
522
- #data
523
- <ul><li><div id='foo'/>A</li><li>B<div>C</div></li></ul>
524
- #errors
525
- #document
526
- | <html>
527
- | <head>
528
- | <body>
529
- | <ul>
530
- | <li>
531
- | <div>
532
- | id="foo"
533
- | "A"
534
- | <li>
535
- | "B"
536
- | <div>
537
- | "C"
538
-
539
- #data
540
- <svg><em><desc></em>
541
- #errors
542
- #document
543
- | <html>
544
- | <head>
545
- | <body>
546
- | <svg svg>
547
- | <em>
548
- | <desc>
549
-
550
- #data
551
- <svg><tfoot></mi><td>
552
- #errors
553
- #document
554
- | <html>
555
- | <head>
556
- | <body>
557
- | <svg svg>
558
- | <svg tfoot>
559
- | <svg td>
560
-
561
- #data
562
- <math><mrow><mrow><mn>1</mn></mrow><mi>a</mi></mrow></math>
563
- #errors
564
- #document
565
- | <html>
566
- | <head>
567
- | <body>
568
- | <math math>
569
- | <math mrow>
570
- | <math mrow>
571
- | <math mn>
572
- | "1"
573
- | <math mi>
574
- | "a"
575
-
576
- #data
577
- <!doctype html><input type="hidden"><frameset>
578
- #errors
579
- #document
580
- | <!DOCTYPE html>
581
- | <html>
582
- | <head>
583
- | <frameset>
584
-
585
- #data
586
- <!doctype html><input type="button"><frameset>
587
- #errors
588
- #document
589
- | <!DOCTYPE html>
590
- | <html>
591
- | <head>
592
- | <body>
593
- | <input>
594
- | type="button"
@@ -1,94 +0,0 @@
1
- #data
2
- <foo bar=qux/>
3
- #errors
4
- #document
5
- | <html>
6
- | <head>
7
- | <body>
8
- | <foo>
9
- | bar="qux/"
10
-
11
- #data
12
- <p id="status"><noscript><strong>A</strong></noscript><span>B</span></p>
13
- #errors
14
- #document
15
- | <html>
16
- | <head>
17
- | <body>
18
- | <p>
19
- | id="status"
20
- | <noscript>
21
- | "<strong>A</strong>"
22
- | <span>
23
- | "B"
24
-
25
- #data
26
- <div><sarcasm><div></div></sarcasm></div>
27
- #errors
28
- #document
29
- | <html>
30
- | <head>
31
- | <body>
32
- | <div>
33
- | <sarcasm>
34
- | <div>
35
-
36
- #data
37
- <html><body><img src="" border="0" alt="><div>A</div></body></html>
38
- #errors
39
- #document
40
- | <html>
41
- | <head>
42
- | <body>
43
-
44
- #data
45
- <table><td></tbody>A
46
- #errors
47
- #document
48
- | <html>
49
- | <head>
50
- | <body>
51
- | "A"
52
- | <table>
53
- | <tbody>
54
- | <tr>
55
- | <td>
56
-
57
- #data
58
- <table><td></thead>A
59
- #errors
60
- #document
61
- | <html>
62
- | <head>
63
- | <body>
64
- | <table>
65
- | <tbody>
66
- | <tr>
67
- | <td>
68
- | "A"
69
-
70
- #data
71
- <table><td></tfoot>A
72
- #errors
73
- #document
74
- | <html>
75
- | <head>
76
- | <body>
77
- | <table>
78
- | <tbody>
79
- | <tr>
80
- | <td>
81
- | "A"
82
-
83
- #data
84
- <table><thead><td></tbody>A
85
- #errors
86
- #document
87
- | <html>
88
- | <head>
89
- | <body>
90
- | <table>
91
- | <thead>
92
- | <tr>
93
- | <td>
94
- | "A"