New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

lezer-html

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

lezer-html - npm Package Compare versions

Comparing version 0.5.1 to 0.5.2

6

CHANGELOG.md

@@ -0,1 +1,7 @@

## 0.5.2 (2020-01-15)
### Bug fixes
Allow whitespace between the `<` and `/` in a close tag.
## 0.5.1 (2019-10-22)

@@ -2,0 +8,0 @@

18

dist/index.js

@@ -81,7 +81,9 @@ 'use strict';

pos++;
let next = input.get(pos), close = false;
if (next == slash) { close = true; pos++; }
if (next == question || next == bang) return
let tokEnd = pos;
while (isSpace(input.get(pos))) pos++;
let close = false, tokEnd = pos;
for (let next; next = input.get(pos);) {
if (next == slash && !close) { close = true; pos++; tokEnd = pos; }
else if (next == question || next == bang) return
else if (isSpace(next)) pos++;
else break
}
let nameStart = pos;

@@ -96,3 +98,4 @@ while (nameChar(input.get(pos))) pos++;

if (close && name != contextName)
return implicitlyClosed[contextName] ? token.accept(missingCloseTag, token.start) : token.accept(MismatchedStartCloseTag, tokEnd)
return implicitlyClosed[contextName] ? token.accept(missingCloseTag, token.start)
: token.accept(MismatchedStartCloseTag, tokEnd)
if (!close && closeOnOpen[contextName] && closeOnOpen[contextName][name])

@@ -184,5 +187,2 @@ return token.accept(missingCloseTag, token.start)

nodeNames: "⚠ Document StartTag StartCloseTag StartCloseTag SelfCloserEndTag Text EntityReference CharacterReference Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue EndTag CloseTag MismatchedTagName SelfClosingTag SelfCloseEndTag Comment ProcessingInst DoctypeDecl RawText",
nodeProps: [
[lezer.NodeProp.top, 1,true]
],
repeatNodeCount: 5,

@@ -189,0 +189,0 @@ tokenData: "Gh!aR!UOX$eXY'rYZ'rZ]$e]^'r^p$epq'rqr$ers(tsv$evw)Uwx%yx!P$e!P!Q0i!Q![$e![!]1u!]!^$e!^!_7`!_!`Dt!`!aEa!a!c$e!c!}1u!}#R$e#R#S1u#S#T$e#T#o1u#o$f$e$f$g%y$g%W$e%W%o1u%o%p$e%p&a1u&a&b$e&b1p1u1p4U$e4U4d1u4d4e$e4e$IS1u$IS$I`$e$I`$Ib1u$Ib$Kh$e$Kh%#t1u%#t&/x$e&/x&Et1u&Et&FV$e&FV;'S1u;'S;:jE|;:j?&r$e?&r?Ah1u?Ah?BY$e?BY?Mn1u?Mn~$e!R$ncUP``wpOX$eXZ%yZ]$e]^%y^p$epq%yqr$ers&dsv$evw'Qwx%yx!P$e!P!Q%y!Q!^$e!^!_&r!_!a%y!a$f$e$f$g%y$g~$eq&QUUPwpOr%yrs&dsv%yw!^%y!^!_&r!_~%yP&iRUPOv&dw!^&d!_~&dp&wRwpOr&rsv&rw~&r`'VX``OX'QZ]'Q^p'Qqr'Qsw'Qx!P'Q!Q!^'Q!a$f'Q$g~'Q!a'{]UPwpsnOX%yXY'rYZ'rZ]%y]^'r^p%ypq'rqr%yrs&dsv%yw!^%y!^!_&r!_~%y!T({Ru!SUPOv&dw!^&d!_~&d!R)Zb``OX*cXZ+pZ]*c]^+p^p*cqr*crs+pst,{tw*cwx+px!P*c!P!Q+p!Q!]*c!]!^'Q!^!a+p!a$f*c$f$g+p$g~*c!R*hb``OX*cXZ+pZ]*c]^+p^p*cqr*crs+pst'Qtw*cwx+px!P*c!P!Q+p!Q!]*c!]!^,X!^!a+p!a$f*c$f$g+p$g~*cq+sTOp+pqs+pt!]+p!]!^,S!^~+pq,XOVq!R,`XVq``OX'QZ]'Q^p'Qqr'Qsw'Qx!P'Q!Q!^'Q!a$f'Q$g~'Q!R-Qa``OX.VXZ/aZ].V]^/a^p.Vqr.Vrs/asw.Vwx/ax!P.V!P!Q/a!Q!].V!]!^'Q!^!a/a!a$f.V$f$g/a$g~.V!R.[a``OX.VXZ/aZ].V]^/a^p.Vqr.Vrs/asw.Vwx/ax!P.V!P!Q/a!Q!].V!]!^/u!^!a/a!a$f.V$f$g/a$g~.Vq/dSOp/aq!]/a!]!^/p!^~/aq/uOWq!R/|XWq``OX'QZ]'Q^p'Qqr'Qsw'Qx!P'Q!Q!^'Q!a$f'Q$g~'Qw0pWUPwpOr%yrs&dsv%yw!^%y!^!_&r!_!`%y!`!a1Y!a~%yw1cUeUUPwpOr%yrs&dsv%yw!^%y!^!_&r!_~%y!a2U!Y]ScWZQUP``wpOX$eXZ%yZ]$e]^%y^p$epq%yqr$ers&dsv$evw'Qwx%yx}$e}!O1u!O!P1u!P!Q%y!Q![1u![!]1u!]!^$e!^!_&r!_!a%y!a!c$e!c!}1u!}#R$e#R#S1u#S#T$e#T#o1u#o$f$e$f$g%y$g$}$e$}%O1u%O%W$e%W%o1u%o%p$e%p&a1u&a&b$e&b1p1u1p4U1u4U4d1u4d4e$e4e$IS1u$IS$I`$e$I`$Ib1u$Ib$Je$e$Je$Jg1u$Jg$Kh$e$Kh%#t1u%#t&/x$e&/x&Et1u&Et&FV$e&FV;'S1u;'S;:j5t;:j?&r$e?&r?Ah1u?Ah?BY$e?BY?Mn1u?Mn~$e!a5}eUP``wpOX$eXZ%yZ]$e]^%y^p$epq%yqr$ers&dsv$evw'Qwx%yx!P$e!P!Q%y!Q!^$e!^!_&r!_!a%y!a$f$e$f$g%y$g;=`$e;=`<%l1u<%l~$eq7eUwpOq&rqr7wsv&rw!a&r!a!bBo!b~&rq7|XwpOr&rsv&rw}&r}!O8i!O!f&r!f!g<W!g#W&r#W#X@R#X~&rq8nTwpOr&rsv&rw}&r}!O8}!O~&rq9SVwpOr8}rs9isv8}vw9iw}8}}!O:j!O~8}P9lRO}9i}!O9u!O~9iP9xRO}9i}!O:R!O~9iP:UTO}9i}!O:R!O!`9i!`!a:e!a~9iP:jOfPq:oVwpOr8}rs9isv8}vw9iw}8}}!O;U!O~8}q;ZXwpOr8}rs9isv8}vw9iw}8}}!O;U!O!`8}!`!a;v!a~8}q;}RwpfPOr&rsv&rw~&rq<]TwpOr&rsv&rw!q&r!q!r<l!r~&rq<qTwpOr&rsv&rw!e&r!e!f=Q!f~&rq=VTwpOr&rsv&rw!v&r!v!w=f!w~&rq=kTwpOr&rsv&rw!{&r!{!|=z!|~&rq>PTwpOr&rsv&rw!r&r!r!s>`!s~&rq>eTwpOr&rsv&rw!g&r!g!h>t!h~&rq>yVwpOr>trs?`sv>tvw?`w!`>t!`!a?q!a~>tP?cRO!`?`!`!a?l!a~?`P?qOhPq?xRwphPOr&rsv&rw~&rq@WTwpOr&rsv&rw#c&r#c#d@g#d~&rq@lTwpOr&rsv&rw#V&r#V#W@{#W~&rqAQTwpOr&rsv&rw#h&r#h#iAa#i~&rqAfTwpOr&rsv&rw#m&r#m#nAu#n~&rqAzTwpOr&rsv&rw#d&r#d#eBZ#e~&rqB`TwpOr&rsv&rw#X&r#X#Y>t#Y~&rqBtVwpOrBorsCZsvBovwCZw!aBo!a!bCx!b~BoPC^RO!aCZ!a!bCg!b~CZPCjRO!`CZ!`!aCs!a~CZPCxOgPqC}VwpOrBorsCZsvBovwCZw!`Bo!`!aDd!a~BoqDkRwpgPOr&rsv&rw~&ruD}U^SUPwpOr%yrs&dsv%yw!^%y!^!_&r!_~%ywEjUaUUPwpOr%yrs&dsv%yw!^%y!^!_&r!_~%y!aFVeUP``wpOX$eXZ%yZ]$e]^%y^p$epq%yqr$ers&dsv$evw'Qwx%yx!P$e!P!Q%y!Q!^$e!^!_&r!_!a%y!a$f$e$f$g%y$g;=`$e;=`<%l1u<%l~$e",

{
"name": "lezer-html",
"version": "0.5.1",
"version": "0.5.2",
"description": "lezer-based HTML grammar",

@@ -9,4 +9,4 @@ "main": "dist/index.js",

"devDependencies": {
"lezer-javascript": "^0.5.0",
"lezer-generator": "^0.5.0",
"lezer-javascript": "^0.5.2",
"lezer-generator": "^0.5.2",
"mocha": "^6.1.3",

@@ -13,0 +13,0 @@ "rollup": "^1.10.0",

@@ -5,3 +5,2 @@ // This file was generated by lezer-generator. You probably shouldn't edit it.

import {elementContent} from "./content.js"
import {NodeProp} from "lezer"
export const parser = Parser.deserialize({

@@ -12,5 +11,2 @@ states: "'[OPOTOOOgOWO'#CfSnOTO'#CeOOOS'#Ce'#CeOOOS'#C}'#C}OOOS(3AY(3AYQPOTOOO![OWO'#DOOOOW(3AZ(3AZO!fOWO,59QO!jOTO'#DVOOOS(3A^(3A^OOOO'#DU'#DUO#WOPO,59POOOS,59b,59bOOOW,59c,59cO#bObO1G.lOOOS,59f,59fOgOWO'#CnO#rOpO'#CnOOOS1G.k1G.kO#yObO'#DOO$^ObO7+$WO$kOWO,59YO$oOpO'#DOO$vOpO,59YO$zObO'#DQO%XObO'#ChOOO`(3A[(3A[O%lOYO<<GrO%vOWO1G.tOOO`,59d,59dO%}ObO,59SOOOSAN=^AN=^OOOSAN=hAN=hO&_OWO7+$`O&cO!bO1G.nOOOS<<Gz<<GzO&mO!bO'#DOO&wO!bO7+$YO'OO#tO'#CkO#bObO<<GtO']O#tO'#DSOOO#t(3A](3A]O'jOWO,59VOOO`AN=`AN=`OOO#t,59e,59eOOO`1G.q1G.q",

nodeNames: "⚠ Document StartTag StartCloseTag StartCloseTag SelfCloserEndTag Text EntityReference CharacterReference Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue EndTag CloseTag MismatchedTagName SelfClosingTag SelfCloseEndTag Comment ProcessingInst DoctypeDecl RawText",
nodeProps: [
[NodeProp.top, 1,true]
],
repeatNodeCount: 5,

@@ -17,0 +13,0 @@ tokenData: "Gh!aR!UOX$eXY'rYZ'rZ]$e]^'r^p$epq'rqr$ers(tsv$evw)Uwx%yx!P$e!P!Q0i!Q![$e![!]1u!]!^$e!^!_7`!_!`Dt!`!aEa!a!c$e!c!}1u!}#R$e#R#S1u#S#T$e#T#o1u#o$f$e$f$g%y$g%W$e%W%o1u%o%p$e%p&a1u&a&b$e&b1p1u1p4U$e4U4d1u4d4e$e4e$IS1u$IS$I`$e$I`$Ib1u$Ib$Kh$e$Kh%#t1u%#t&/x$e&/x&Et1u&Et&FV$e&FV;'S1u;'S;:jE|;:j?&r$e?&r?Ah1u?Ah?BY$e?BY?Mn1u?Mn~$e!R$ncUP``wpOX$eXZ%yZ]$e]^%y^p$epq%yqr$ers&dsv$evw'Qwx%yx!P$e!P!Q%y!Q!^$e!^!_&r!_!a%y!a$f$e$f$g%y$g~$eq&QUUPwpOr%yrs&dsv%yw!^%y!^!_&r!_~%yP&iRUPOv&dw!^&d!_~&dp&wRwpOr&rsv&rw~&r`'VX``OX'QZ]'Q^p'Qqr'Qsw'Qx!P'Q!Q!^'Q!a$f'Q$g~'Q!a'{]UPwpsnOX%yXY'rYZ'rZ]%y]^'r^p%ypq'rqr%yrs&dsv%yw!^%y!^!_&r!_~%y!T({Ru!SUPOv&dw!^&d!_~&d!R)Zb``OX*cXZ+pZ]*c]^+p^p*cqr*crs+pst,{tw*cwx+px!P*c!P!Q+p!Q!]*c!]!^'Q!^!a+p!a$f*c$f$g+p$g~*c!R*hb``OX*cXZ+pZ]*c]^+p^p*cqr*crs+pst'Qtw*cwx+px!P*c!P!Q+p!Q!]*c!]!^,X!^!a+p!a$f*c$f$g+p$g~*cq+sTOp+pqs+pt!]+p!]!^,S!^~+pq,XOVq!R,`XVq``OX'QZ]'Q^p'Qqr'Qsw'Qx!P'Q!Q!^'Q!a$f'Q$g~'Q!R-Qa``OX.VXZ/aZ].V]^/a^p.Vqr.Vrs/asw.Vwx/ax!P.V!P!Q/a!Q!].V!]!^'Q!^!a/a!a$f.V$f$g/a$g~.V!R.[a``OX.VXZ/aZ].V]^/a^p.Vqr.Vrs/asw.Vwx/ax!P.V!P!Q/a!Q!].V!]!^/u!^!a/a!a$f.V$f$g/a$g~.Vq/dSOp/aq!]/a!]!^/p!^~/aq/uOWq!R/|XWq``OX'QZ]'Q^p'Qqr'Qsw'Qx!P'Q!Q!^'Q!a$f'Q$g~'Qw0pWUPwpOr%yrs&dsv%yw!^%y!^!_&r!_!`%y!`!a1Y!a~%yw1cUeUUPwpOr%yrs&dsv%yw!^%y!^!_&r!_~%y!a2U!Y]ScWZQUP``wpOX$eXZ%yZ]$e]^%y^p$epq%yqr$ers&dsv$evw'Qwx%yx}$e}!O1u!O!P1u!P!Q%y!Q![1u![!]1u!]!^$e!^!_&r!_!a%y!a!c$e!c!}1u!}#R$e#R#S1u#S#T$e#T#o1u#o$f$e$f$g%y$g$}$e$}%O1u%O%W$e%W%o1u%o%p$e%p&a1u&a&b$e&b1p1u1p4U1u4U4d1u4d4e$e4e$IS1u$IS$I`$e$I`$Ib1u$Ib$Je$e$Je$Jg1u$Jg$Kh$e$Kh%#t1u%#t&/x$e&/x&Et1u&Et&FV$e&FV;'S1u;'S;:j5t;:j?&r$e?&r?Ah1u?Ah?BY$e?BY?Mn1u?Mn~$e!a5}eUP``wpOX$eXZ%yZ]$e]^%y^p$epq%yqr$ers&dsv$evw'Qwx%yx!P$e!P!Q%y!Q!^$e!^!_&r!_!a%y!a$f$e$f$g%y$g;=`$e;=`<%l1u<%l~$eq7eUwpOq&rqr7wsv&rw!a&r!a!bBo!b~&rq7|XwpOr&rsv&rw}&r}!O8i!O!f&r!f!g<W!g#W&r#W#X@R#X~&rq8nTwpOr&rsv&rw}&r}!O8}!O~&rq9SVwpOr8}rs9isv8}vw9iw}8}}!O:j!O~8}P9lRO}9i}!O9u!O~9iP9xRO}9i}!O:R!O~9iP:UTO}9i}!O:R!O!`9i!`!a:e!a~9iP:jOfPq:oVwpOr8}rs9isv8}vw9iw}8}}!O;U!O~8}q;ZXwpOr8}rs9isv8}vw9iw}8}}!O;U!O!`8}!`!a;v!a~8}q;}RwpfPOr&rsv&rw~&rq<]TwpOr&rsv&rw!q&r!q!r<l!r~&rq<qTwpOr&rsv&rw!e&r!e!f=Q!f~&rq=VTwpOr&rsv&rw!v&r!v!w=f!w~&rq=kTwpOr&rsv&rw!{&r!{!|=z!|~&rq>PTwpOr&rsv&rw!r&r!r!s>`!s~&rq>eTwpOr&rsv&rw!g&r!g!h>t!h~&rq>yVwpOr>trs?`sv>tvw?`w!`>t!`!a?q!a~>tP?cRO!`?`!`!a?l!a~?`P?qOhPq?xRwphPOr&rsv&rw~&rq@WTwpOr&rsv&rw#c&r#c#d@g#d~&rq@lTwpOr&rsv&rw#V&r#V#W@{#W~&rqAQTwpOr&rsv&rw#h&r#h#iAa#i~&rqAfTwpOr&rsv&rw#m&r#m#nAu#n~&rqAzTwpOr&rsv&rw#d&r#d#eBZ#e~&rqB`TwpOr&rsv&rw#X&r#X#Y>t#Y~&rqBtVwpOrBorsCZsvBovwCZw!aBo!a!bCx!b~BoPC^RO!aCZ!a!bCg!b~CZPCjRO!`CZ!`!aCs!a~CZPCxOgPqC}VwpOrBorsCZsvBovwCZw!`Bo!`!aDd!a~BoqDkRwpgPOr&rsv&rw~&ruD}U^SUPwpOr%yrs&dsv%yw!^%y!^!_&r!_~%ywEjUaUUPwpOr%yrs&dsv%yw!^%y!^!_&r!_~%y!aFVeUP``wpOX$eXZ%yZ]$e]^%y^p$epq%yqr$ers&dsv$evw'Qwx%yx!P$e!P!Q%y!Q!^$e!^!_&r!_!a%y!a$f$e$f$g%y$g;=`$e;=`<%l1u<%l~$e",

@@ -68,7 +68,9 @@ /* Hand-written tokenizers for HTML. */

pos++
let next = input.get(pos), close = false
if (next == slash) { close = true; pos++ }
if (next == question || next == bang) return
let tokEnd = pos
while (isSpace(input.get(pos))) pos++
let close = false, tokEnd = pos
for (let next; next = input.get(pos);) {
if (next == slash && !close) { close = true; pos++; tokEnd = pos }
else if (next == question || next == bang) return
else if (isSpace(next)) pos++
else break
}
let nameStart = pos

@@ -83,3 +85,4 @@ while (nameChar(input.get(pos))) pos++

if (close && name != contextName)
return implicitlyClosed[contextName] ? token.accept(missingCloseTag, token.start) : token.accept(MismatchedStartCloseTag, tokEnd)
return implicitlyClosed[contextName] ? token.accept(missingCloseTag, token.start)
: token.accept(MismatchedStartCloseTag, tokEnd)
if (!close && closeOnOpen[contextName] && closeOnOpen[contextName][name])

@@ -86,0 +89,0 @@ return token.accept(missingCloseTag, token.start)

@@ -227,1 +227,17 @@ # Self-closing tag

Document(Element(OpenTag(StartTag,TagName,EndTag),RawText,CloseTag(StartCloseTag,TagName,EndTag)))
# Allows whitespace in tags
<
body
foo=bar
>hi<
/body
>
==>
Document(Element(
OpenTag(StartTag,TagName,Attribute(AttributeName,Is,UnquotedAttributeValue),EndTag),
Text,
CloseTag(StartCloseTag,TagName,EndTag)))
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc