@rgrove/parse-xml 4.1.0 → 4.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"XmlDocumentType.js","sourceRoot":"","sources":["../../src/lib/XmlDocumentType.ts"],"names":[],"mappings":";;;AAAA,6CAAuC;AAEvC;;;;;;;;;;GAUG;AACH,MAAa,eAAgB,SAAQ,oBAAO;IAwB1C,YACE,IAAY,EACZ,QAAiB,EACjB,QAAiB,EACjB,cAAuB;QAEvB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,IAAI,CAAC;IAC/C,CAAC;IAED,IAAa,IAAI;QACf,OAAO,oBAAO,CAAC,kBAAkB,CAAC;IACpC,CAAC;IAEQ,MAAM;QACb,IAAI,IAAI,GAAG,oBAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEtB,KAAK,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,CAAU,EAAE;YACnE,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;gBACtB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;aACvB;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AArDD,0CAqDC"}
1
+ {"version":3,"file":"XmlDocumentType.js","sourceRoot":"","sources":["../../src/lib/XmlDocumentType.ts"],"names":[],"mappings":";;;AAAA,6CAAuC;AAEvC;;;;;;;;;;GAUG;AACH,MAAa,eAAgB,SAAQ,oBAAO;IAwB1C,YACE,IAAY,EACZ,QAAiB,EACjB,QAAiB,EACjB,cAAuB;QAEvB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,IAAI,CAAC;IAC/C,CAAC;IAED,IAAa,IAAI;QACf,OAAO,oBAAO,CAAC,kBAAkB,CAAC;IACpC,CAAC;IAEQ,MAAM;QACb,IAAI,IAAI,GAAG,oBAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEtB,KAAK,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,CAAU,EAAE,CAAC;YACpE,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;gBACvB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AArDD,0CAqDC"}
@@ -1 +1 @@
1
- {"version":3,"file":"XmlElement.js","sourceRoot":"","sources":["../../src/lib/XmlElement.ts"],"names":[],"mappings":";;;AAAA,6CAAuC;AAQvC;;GAEG;AACH,MAAa,UAAW,SAAQ,oBAAO;IAgBrC,YACE,IAAY,EACZ,aAA2C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAC9D,WAA2F,EAAE;QAE7F,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,IAAa,kBAAkB;QAC7B,IAAI,IAAI,GAAmB,IAAI,CAAC,CAAC,uDAAuD;QAExF,OAAO,IAAI,YAAY,UAAU,EAAE;YACjC,IAAI,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE;gBAClC,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,UAAU,CAAC;aACpD;YAED,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;SACpB;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ;aACjB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/C,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IAED,IAAa,IAAI;QACf,OAAO,oBAAO,CAAC,YAAY,CAAC;IAC9B,CAAC;IAEQ,MAAM;QACb,OAAO,MAAM,CAAC,MAAM,CAAC,oBAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACxD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;SACrD,CAAC,CAAC;IACL,CAAC;CACF;AArED,gCAqEC"}
1
+ {"version":3,"file":"XmlElement.js","sourceRoot":"","sources":["../../src/lib/XmlElement.ts"],"names":[],"mappings":";;;AAAA,6CAAuC;AAQvC;;GAEG;AACH,MAAa,UAAW,SAAQ,oBAAO;IAgBrC,YACE,IAAY,EACZ,aAA2C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAC9D,WAA2F,EAAE;QAE7F,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,IAAa,kBAAkB;QAC7B,IAAI,IAAI,GAAmB,IAAI,CAAC,CAAC,uDAAuD;QAExF,OAAO,IAAI,YAAY,UAAU,EAAE,CAAC;YAClC,IAAI,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,UAAU,CAAC;YACrD,CAAC;YAED,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ;aACjB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/C,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IAED,IAAa,IAAI;QACf,OAAO,oBAAO,CAAC,YAAY,CAAC;IAC9B,CAAC;IAEQ,MAAM;QACb,OAAO,MAAM,CAAC,MAAM,CAAC,oBAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACxD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;SACrD,CAAC,CAAC;IACL,CAAC;CACF;AArED,gCAqEC"}
@@ -1 +1 @@
1
- {"version":3,"file":"XmlError.js","sourceRoot":"","sources":["../../src/lib/XmlError.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,QAAS,SAAQ,KAAK;IAsBjC,YACE,OAAe,EACf,SAAiB,EACjB,GAAW;QAEX,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,IAAI,GAAG,CAAC,CAAC;QAEb,qDAAqD;QACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,EAAE,CAAC,EAAE;YAClC,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAElB,IAAI,IAAI,KAAK,IAAI,EAAE;gBACjB,MAAM,GAAG,CAAC,CAAC;gBACX,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,IAAI,CAAC,CAAC;aACX;iBAAM;gBACL,MAAM,IAAI,CAAC,CAAC;gBACZ,OAAO,IAAI,IAAI,CAAC;aACjB;SACF;QAED,IAAI,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAEvC,OAAO,IAAI,GAAG,KAAK,CAAC,CAAC;YACnB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;YACtB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAE9B,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,yEAAyE;QACzE,QAAQ;QACR,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE;YACvB,IAAI,MAAM,GAAG,EAAE,EAAE;gBACf,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;aAChC;iBAAM;gBACL,YAAY,GAAG,MAAM,GAAG,EAAE,CAAC;gBAC3B,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC;aACpD;SACF;QAED,KAAK,CACH,GAAG,OAAO,UAAU,IAAI,YAAY,MAAM,KAAK;cAC3C,KAAK,OAAO,IAAI;cAChB,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY,GAAG,CAAC,CAAC,GAAG,KAAK,CAClD,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;IACvB,CAAC;CACF;AA5ED,4BA4EC"}
1
+ {"version":3,"file":"XmlError.js","sourceRoot":"","sources":["../../src/lib/XmlError.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,QAAS,SAAQ,KAAK;IAsBjC,YACE,OAAe,EACf,SAAiB,EACjB,GAAW;QAEX,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,IAAI,GAAG,CAAC,CAAC;QAEb,qDAAqD;QACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC;YACnC,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAElB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,MAAM,GAAG,CAAC,CAAC;gBACX,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,IAAI,CAAC,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,CAAC;gBACZ,OAAO,IAAI,IAAI,CAAC;YAClB,CAAC;QACH,CAAC;QAED,IAAI,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAEvC,OAAO,IAAI,GAAG,KAAK,CAAC,CAAC;YACnB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;YACtB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAE9B,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,yEAAyE;QACzE,QAAQ;QACR,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACxB,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC;gBAChB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,YAAY,GAAG,MAAM,GAAG,EAAE,CAAC;gBAC3B,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,KAAK,CACH,GAAG,OAAO,UAAU,IAAI,YAAY,MAAM,KAAK;cAC3C,KAAK,OAAO,IAAI;cAChB,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY,GAAG,CAAC,CAAC,GAAG,KAAK,CAClD,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;IACvB,CAAC;CACF;AA5ED,4BA4EC"}
@@ -1 +1 @@
1
- {"version":3,"file":"XmlNode.js","sourceRoot":"","sources":["../../src/lib/XmlNode.ts"],"names":[],"mappings":";;;AAIA;;GAEG;AACH,MAAa,OAAO;IAApB;QAyCE;;WAEG;QACH,WAAM,GAAoC,IAAI,CAAC;QAE/C;;;WAGG;QACH,UAAK,GAAG,CAAC,CAAC,CAAC;QAEX;;;WAGG;QACH,QAAG,GAAG,CAAC,CAAC,CAAC;IAyEX,CAAC;IAvEC;;;OAGG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,IAAI,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI;eACtB,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ;eAC7B,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,YAAY,CAAC;IAC1C,CAAC;IAED;;;;;;;;;;OAUG;IACH,IAAI,kBAAkB;QACpB,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAC3C,CAAC;IAED;;;;;;;;;OASG;IACH,IAAI,IAAI;QACN,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,IAAI,IAAI,GAAe;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;QAEF,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SACxB;QAED,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAChC;QAED,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE;YACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;SACrB;QAED,OAAO,IAAI,CAAC;IACd,CAAC;;AAhIH,0BAiIC;AAhIC;;GAEG;AACa,kBAAU,GAAG,OAAO,CAAC;AAErC;;GAEG;AACa,oBAAY,GAAG,SAAS,CAAC;AAEzC;;GAEG;AACa,qBAAa,GAAG,UAAU,CAAC;AAE3C;;GAEG;AACa,0BAAkB,GAAG,SAAS,CAAC;AAE/C;;GAEG;AACa,oBAAY,GAAG,SAAS,CAAC;AAEzC;;GAEG;AACa,mCAA2B,GAAG,IAAI,CAAC;AAEnD;;GAEG;AACa,iBAAS,GAAG,MAAM,CAAC;AAEnC;;GAEG;AACa,4BAAoB,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"XmlNode.js","sourceRoot":"","sources":["../../src/lib/XmlNode.ts"],"names":[],"mappings":";;;AAIA;;GAEG;AACH,MAAa,OAAO;IAApB;QAyCE;;WAEG;QACH,WAAM,GAAoC,IAAI,CAAC;QAE/C;;;WAGG;QACH,UAAK,GAAG,CAAC,CAAC,CAAC;QAEX;;;WAGG;QACH,QAAG,GAAG,CAAC,CAAC,CAAC;IAyEX,CAAC;IAvEC;;;OAGG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,IAAI,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI;eACtB,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ;eAC7B,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,YAAY,CAAC;IAC1C,CAAC;IAED;;;;;;;;;;OAUG;IACH,IAAI,kBAAkB;QACpB,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAC3C,CAAC;IAED;;;;;;;;;OASG;IACH,IAAI,IAAI;QACN,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,IAAI,IAAI,GAAe;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;QAEF,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACjC,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACtB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;;AAhIH,0BAiIC;AAhIC;;GAEG;AACa,kBAAU,GAAG,OAAO,AAAV,CAAW;AAErC;;GAEG;AACa,oBAAY,GAAG,SAAS,AAAZ,CAAa;AAEzC;;GAEG;AACa,qBAAa,GAAG,UAAU,AAAb,CAAc;AAE3C;;GAEG;AACa,0BAAkB,GAAG,SAAS,AAAZ,CAAa;AAE/C;;GAEG;AACa,oBAAY,GAAG,SAAS,AAAZ,CAAa;AAEzC;;GAEG;AACa,mCAA2B,GAAG,IAAI,AAAP,CAAQ;AAEnD;;GAEG;AACa,iBAAS,GAAG,MAAM,AAAT,CAAU;AAEnC;;GAEG;AACa,4BAAoB,GAAG,SAAS,AAAZ,CAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"syntax.d.ts","sourceRoot":"","sources":["../../src/lib/syntax.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QAAa,CAAC;AAElD;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QAAa,CAAC;AAElD;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,QAAmB,CAAC;AAE7D;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAAY,CAAC;AAErC;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC;IAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAAC,CAMhE,CAAC;AAEJ;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAchD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,SAAqB,GAAG,OAAO,CAiB9E;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOlD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAOlD"}
1
+ {"version":3,"file":"syntax.d.ts","sourceRoot":"","sources":["../../src/lib/syntax.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QAAU,CAAC;AAE/C;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QAAU,CAAC;AAE/C;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,QAAmB,CAAC;AAE7D;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAAY,CAAC;AAErC;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC;IAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAAC,CAMhE,CAAC;AAEJ;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAehD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAA0B,MAAM,GAAG,OAAO,CAkBzF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOlD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAOlD"}
@@ -1,20 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isXmlCodePoint = exports.isWhitespace = exports.isReferenceChar = exports.isNameStartChar = exports.isNameChar = exports.predefinedEntities = exports.endCharData = exports.attValueNormalizedWhitespace = exports.attValueCharSingleQuote = exports.attValueCharDoubleQuote = void 0;
3
+ exports.predefinedEntities = exports.endCharData = exports.attValueNormalizedWhitespace = exports.attValueCharSingleQuote = exports.attValueCharDoubleQuote = void 0;
4
+ exports.isNameChar = isNameChar;
5
+ exports.isNameStartChar = isNameStartChar;
6
+ exports.isReferenceChar = isReferenceChar;
7
+ exports.isWhitespace = isWhitespace;
8
+ exports.isXmlCodePoint = isXmlCodePoint;
4
9
  /**
5
10
  * Regular expression that matches one or more `AttValue` characters in a
6
11
  * double-quoted attribute value.
7
12
  *
8
13
  * @see https://www.w3.org/TR/2008/REC-xml-20081126/#NT-AttValue
9
14
  */
10
- exports.attValueCharDoubleQuote = /[^"&<]+/y;
15
+ exports.attValueCharDoubleQuote = /["&<]/;
11
16
  /**
12
17
  * Regular expression that matches one or more `AttValue` characters in a
13
18
  * single-quoted attribute value.
14
19
  *
15
20
  * @see https://www.w3.org/TR/2008/REC-xml-20081126/#NT-AttValue
16
21
  */
17
- exports.attValueCharSingleQuote = /[^'&<]+/y;
22
+ exports.attValueCharSingleQuote = /['&<]/;
18
23
  /**
19
24
  * Regular expression that matches a whitespace character that should be
20
25
  * normalized to a space character in an attribute value.
@@ -47,7 +52,7 @@ exports.predefinedEntities = Object.freeze(Object.assign(Object.create(null), {
47
52
  * @see https://www.w3.org/TR/2008/REC-xml-20081126/#NT-NameChar
48
53
  */
49
54
  function isNameChar(char) {
50
- let cp = getCodePoint(char);
55
+ let cp = char.codePointAt(0);
51
56
  // Including the most common NameStartChars here improves performance
52
57
  // slightly.
53
58
  return (cp >= 0x61 && cp <= 0x7A) // a-z
@@ -57,16 +62,16 @@ function isNameChar(char) {
57
62
  || cp === 0x2E // .
58
63
  || cp === 0xB7
59
64
  || (cp >= 0x300 && cp <= 0x36F)
60
- || (cp >= 0x203F && cp <= 0x2040)
65
+ || cp === 0x203F
66
+ || cp === 0x2040
61
67
  || isNameStartChar(char, cp);
62
68
  }
63
- exports.isNameChar = isNameChar;
64
69
  /**
65
70
  * Returns `true` if _char_ is an XML `NameStartChar`, `false` if it isn't.
66
71
  *
67
72
  * @see https://www.w3.org/TR/2008/REC-xml-20081126/#NT-NameStartChar
68
73
  */
69
- function isNameStartChar(char, cp = getCodePoint(char)) {
74
+ function isNameStartChar(char, cp = char.codePointAt(0)) {
70
75
  return (cp >= 0x61 && cp <= 0x7A) // a-z
71
76
  || (cp >= 0x41 && cp <= 0x5A) // A-Z
72
77
  || cp === 0x3A // :
@@ -76,7 +81,8 @@ function isNameStartChar(char, cp = getCodePoint(char)) {
76
81
  || (cp >= 0xF8 && cp <= 0x2FF)
77
82
  || (cp >= 0x370 && cp <= 0x37D)
78
83
  || (cp >= 0x37F && cp <= 0x1FFF)
79
- || (cp >= 0x200C && cp <= 0x200D)
84
+ || cp === 0x200C
85
+ || cp === 0x200D
80
86
  || (cp >= 0x2070 && cp <= 0x218F)
81
87
  || (cp >= 0x2C00 && cp <= 0x2FEF)
82
88
  || (cp >= 0x3001 && cp <= 0xD7FF)
@@ -84,7 +90,6 @@ function isNameStartChar(char, cp = getCodePoint(char)) {
84
90
  || (cp >= 0xFDF0 && cp <= 0xFFFD)
85
91
  || (cp >= 0x10000 && cp <= 0xEFFFF);
86
92
  }
87
- exports.isNameStartChar = isNameStartChar;
88
93
  /**
89
94
  * Returns `true` if _char_ is a valid reference character (which may appear
90
95
  * between `&` and `;` in a reference), `false` otherwise.
@@ -94,20 +99,18 @@ exports.isNameStartChar = isNameStartChar;
94
99
  function isReferenceChar(char) {
95
100
  return char === '#' || isNameChar(char);
96
101
  }
97
- exports.isReferenceChar = isReferenceChar;
98
102
  /**
99
103
  * Returns `true` if _char_ is an XML whitespace character, `false` otherwise.
100
104
  *
101
105
  * @see https://www.w3.org/TR/2008/REC-xml-20081126/#white
102
106
  */
103
107
  function isWhitespace(char) {
104
- let cp = getCodePoint(char);
108
+ let cp = char.codePointAt(0);
105
109
  return cp === 0x20
106
110
  || cp === 0x9
107
111
  || cp === 0xA
108
112
  || cp === 0xD;
109
113
  }
110
- exports.isWhitespace = isWhitespace;
111
114
  /**
112
115
  * Returns `true` if _codepoint_ is a valid XML `Char` code point, `false`
113
116
  * otherwise.
@@ -115,19 +118,11 @@ exports.isWhitespace = isWhitespace;
115
118
  * @see https://www.w3.org/TR/2008/REC-xml-20081126/#NT-Char
116
119
  */
117
120
  function isXmlCodePoint(cp) {
118
- return cp === 0x9
121
+ return (cp >= 0x20 && cp <= 0xD7FF)
119
122
  || cp === 0xA
123
+ || cp === 0x9
120
124
  || cp === 0xD
121
- || (cp >= 0x20 && cp <= 0xD7FF)
122
125
  || (cp >= 0xE000 && cp <= 0xFFFD)
123
126
  || (cp >= 0x10000 && cp <= 0x10FFFF);
124
127
  }
125
- exports.isXmlCodePoint = isXmlCodePoint;
126
- /**
127
- * Returns the Unicode code point value of the given character, or `-1` if
128
- * _char_ is empty.
129
- */
130
- function getCodePoint(char) {
131
- return char.codePointAt(0) || -1;
132
- }
133
128
  //# sourceMappingURL=syntax.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"syntax.js","sourceRoot":"","sources":["../../src/lib/syntax.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACU,QAAA,uBAAuB,GAAG,UAAU,CAAC;AAElD;;;;;GAKG;AACU,QAAA,uBAAuB,GAAG,UAAU,CAAC;AAElD;;;;;GAKG;AACU,QAAA,4BAA4B,GAAG,gBAAgB,CAAC;AAE7D;;;;;GAKG;AACU,QAAA,WAAW,GAAG,SAAS,CAAC;AAErC;;;;GAIG;AACU,QAAA,kBAAkB,GAAwC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;IACtH,GAAG,EAAE,GAAG;IACR,IAAI,EAAE,GAAG;IACT,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,IAAI,EAAE,GAAG;CACV,CAAC,CAAC,CAAC;AAEJ;;;;GAIG;AACH,SAAgB,UAAU,CAAC,IAAY;IACrC,IAAI,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAE5B,qEAAqE;IACrE,YAAY;IACZ,OAAO,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM;WACnC,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM;WACjC,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM;WACjC,EAAE,KAAK,IAAI,CAAC,IAAI;WAChB,EAAE,KAAK,IAAI,CAAC,IAAI;WAChB,EAAE,KAAK,IAAI;WACX,CAAC,EAAE,IAAI,KAAK,IAAI,EAAE,IAAI,KAAK,CAAC;WAC5B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;WAC9B,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC;AAdD,gCAcC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,IAAY,EAAE,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC;IACnE,OAAO,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM;WACnC,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM;WACjC,EAAE,KAAK,IAAI,CAAC,IAAI;WAChB,EAAE,KAAK,IAAI,CAAC,IAAI;WAChB,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC;WAC1B,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC;WAC1B,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC;WAC3B,CAAC,EAAE,IAAI,KAAK,IAAI,EAAE,IAAI,KAAK,CAAC;WAC5B,CAAC,EAAE,IAAI,KAAK,IAAI,EAAE,IAAI,MAAM,CAAC;WAC7B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;WAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;WAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;WAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;WAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;WAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;WAC9B,CAAC,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AACxC,CAAC;AAjBD,0CAiBC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAI,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAFD,0CAEC;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAAC,IAAY;IACvC,IAAI,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAE5B,OAAO,EAAE,KAAK,IAAI;WACb,EAAE,KAAK,GAAG;WACV,EAAE,KAAK,GAAG;WACV,EAAE,KAAK,GAAG,CAAC;AAClB,CAAC;AAPD,oCAOC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,EAAU;IACvC,OAAO,EAAE,KAAK,GAAG;WACZ,EAAE,KAAK,GAAG;WACV,EAAE,KAAK,GAAG;WACV,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,MAAM,CAAC;WAC5B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;WAC9B,CAAC,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,QAAQ,CAAC,CAAC;AACzC,CAAC;AAPD,wCAOC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"syntax.js","sourceRoot":"","sources":["../../src/lib/syntax.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rgrove/parse-xml",
3
- "version": "4.1.0",
3
+ "version": "4.2.0",
4
4
  "description": "A fast, safe, compliant XML parser for Node.js and browsers.",
5
5
  "keywords": [
6
6
  "xml",
@@ -21,7 +21,6 @@
21
21
  "engines": {
22
22
  "node": ">=14.0.0"
23
23
  },
24
- "packageManager": "pnpm@7.26.1",
25
24
  "files": [
26
25
  "dist",
27
26
  "!dist/tsconfig.tsbuildinfo",
@@ -32,35 +31,31 @@
32
31
  "main": "./dist/index.js",
33
32
  "browser": "./dist/browser.js",
34
33
  "devDependencies": {
35
- "@rgrove/eslint-config": "^5.0.0",
36
- "@types/node": "^18.11.18",
37
- "assert": "^2.0.0",
38
- "async": "^3.2.4",
39
- "concurrently": "^7.6.0",
40
- "esbuild": "^0.17.3",
41
- "eslint": "^8.32.0",
42
- "expect-type": "^0.15.0",
43
- "mocha": "^10.2.0",
44
- "nyc": "^15.1.0",
34
+ "@rgrove/eslint-config": "^5.1.0",
35
+ "@types/node": "^22.7.9",
36
+ "assert": "^2.1.0",
37
+ "concurrently": "^9.0.1",
38
+ "esbuild": "^0.24.0",
39
+ "eslint": "^8.57.1",
40
+ "expect-type": "^1.1.0",
41
+ "mocha": "^10.7.3",
42
+ "nyc": "^17.1.0",
45
43
  "path-browserify": "^1.0.1",
46
44
  "process": "^0.11.10",
47
- "typedoc": "^0.23.24",
48
- "typescript": "4.9.4",
49
- "webpack": "^5.75.0",
50
- "webpack-cli": "^4.10.0",
51
- "webpack-dev-server": "^4.11.1"
45
+ "typedoc": "^0.26.10",
46
+ "typescript": "5.6.3"
52
47
  },
53
48
  "scripts": {
54
49
  "build": "pnpm run build:js && pnpm run build:bundle && pnpm run build:docs",
55
50
  "build:bundle": "./scripts/esbuild.js",
56
51
  "build:docs": "typedoc src/index.ts",
57
52
  "build:js": "tsc",
58
- "clean": "rm -rf .nyc_output coverage dist",
53
+ "clean": "rm -rf .nyc_output coverage dist docs tests/.build",
59
54
  "coverage": "nyc --reporter html --report-dir coverage pnpm test && open coverage/index.html",
60
55
  "lint": "pnpm run build:js && pnpm run lint:js",
61
56
  "lint:js": "eslint .",
62
57
  "test": "pnpm run build:js && nyc --check-coverage --branches 100 --functions 100 --lines 100 --statements 100 mocha && pnpm run test:types",
63
- "test:browser": "pnpm run build:js && pnpm run build:bundle && concurrently --kill-others-on-fail --names build:bundle,build:js,webpack 'pnpm run build:bundle --watch' 'pnpm run build:js --watch' 'webpack serve --config tests/webpack.config.js'",
58
+ "test:browser": "pnpm run build:js && pnpm run build:bundle && scripts/test/browser.js",
64
59
  "test:types": "pnpm run build:js && tsc --noEmit tests/types.expect.ts",
65
60
  "test:watch": "pnpm run build:js && concurrently --kill-others-on-fail --names build,mocha 'pnpm run build:js --watch' 'mocha --watch'"
66
61
  }
package/src/lib/Parser.ts CHANGED
@@ -31,28 +31,17 @@ export class Parser {
31
31
  */
32
32
  constructor(xml: string, options: ParserOptions = {}) {
33
33
  let doc = this.document = new XmlDocument();
34
- let scanner = this.scanner = new StringScanner(xml);
35
34
 
36
35
  this.currentNode = doc;
37
36
  this.options = options;
37
+ this.scanner = new StringScanner(xml);
38
38
 
39
39
  if (this.options.includeOffsets) {
40
40
  doc.start = 0;
41
41
  doc.end = xml.length;
42
42
  }
43
43
 
44
- scanner.consumeStringFast('\uFEFF'); // byte order mark
45
- this.consumeProlog();
46
-
47
- if (!this.consumeElement()) {
48
- throw this.error('Root element is missing or invalid');
49
- }
50
-
51
- while (this.consumeMisc()) {} // eslint-disable-line no-empty
52
-
53
- if (!scanner.isEnd) {
54
- throw this.error('Extra content at the end of the document');
55
- }
44
+ this.parse();
56
45
  }
57
46
 
58
47
  /**
@@ -182,7 +171,7 @@ export class Parser {
182
171
  : syntax.attValueCharSingleQuote;
183
172
 
184
173
  matchLoop: while (!scanner.isEnd) {
185
- chars = scanner.consumeMatch(regex);
174
+ chars = scanner.consumeUntilMatch(regex);
186
175
 
187
176
  if (chars) {
188
177
  this.validateChars(chars);
@@ -201,7 +190,7 @@ export class Parser {
201
190
  case '<':
202
191
  throw this.error('Unescaped `<` is not allowed in an attribute value');
203
192
 
204
- case emptyString:
193
+ default:
205
194
  break matchLoop;
206
195
  }
207
196
  }
@@ -224,14 +213,14 @@ export class Parser {
224
213
  let { scanner } = this;
225
214
  let startIndex = scanner.charIndex;
226
215
 
227
- if (!scanner.consumeStringFast('<![CDATA[')) {
216
+ if (!scanner.consumeString('<![CDATA[')) {
228
217
  return false;
229
218
  }
230
219
 
231
220
  let text = scanner.consumeUntilString(']]>');
232
221
  this.validateChars(text);
233
222
 
234
- if (!scanner.consumeStringFast(']]>')) {
223
+ if (!scanner.consumeString(']]>')) {
235
224
  throw this.error('Unclosed CDATA section');
236
225
  }
237
226
 
@@ -274,14 +263,14 @@ export class Parser {
274
263
  let { scanner } = this;
275
264
  let startIndex = scanner.charIndex;
276
265
 
277
- if (!scanner.consumeStringFast('<!--')) {
266
+ if (!scanner.consumeString('<!--')) {
278
267
  return false;
279
268
  }
280
269
 
281
270
  let content = scanner.consumeUntilString('--');
282
271
  this.validateChars(content);
283
272
 
284
- if (!scanner.consumeStringFast('-->')) {
273
+ if (!scanner.consumeString('-->')) {
285
274
  if (scanner.peek(2) === '--') {
286
275
  throw this.error("The string `--` isn't allowed inside a comment");
287
276
  }
@@ -325,7 +314,7 @@ export class Parser {
325
314
  let { scanner } = this;
326
315
  let startIndex = scanner.charIndex;
327
316
 
328
- if (!scanner.consumeStringFast('<!DOCTYPE')) {
317
+ if (!scanner.consumeString('<!DOCTYPE')) {
329
318
  return false;
330
319
  }
331
320
 
@@ -340,7 +329,7 @@ export class Parser {
340
329
  let systemId;
341
330
 
342
331
  if (this.consumeWhitespace()) {
343
- if (scanner.consumeStringFast('PUBLIC')) {
332
+ if (scanner.consumeString('PUBLIC')) {
344
333
  publicId = this.consumeWhitespace()
345
334
  && this.consumePubidLiteral();
346
335
 
@@ -351,7 +340,7 @@ export class Parser {
351
340
  this.consumeWhitespace();
352
341
  }
353
342
 
354
- if (publicId !== undefined || scanner.consumeStringFast('SYSTEM')) {
343
+ if (publicId !== undefined || scanner.consumeString('SYSTEM')) {
355
344
  this.consumeWhitespace();
356
345
  systemId = this.consumeSystemLiteral();
357
346
 
@@ -365,19 +354,19 @@ export class Parser {
365
354
 
366
355
  let internalSubset;
367
356
 
368
- if (scanner.consumeStringFast('[')) {
357
+ if (scanner.consumeString('[')) {
369
358
  // The internal subset may contain comments that contain `]` characters,
370
359
  // so we can't use `consumeUntilString()` here.
371
360
  internalSubset = scanner.consumeUntilMatch(/\][\x20\t\r\n]*>/);
372
361
 
373
- if (!scanner.consumeStringFast(']')) {
362
+ if (!scanner.consumeString(']')) {
374
363
  throw this.error('Unclosed internal subset');
375
364
  }
376
365
 
377
366
  this.consumeWhitespace();
378
367
  }
379
368
 
380
- if (!scanner.consumeStringFast('>')) {
369
+ if (!scanner.consumeString('>')) {
381
370
  throw this.error('Unclosed doctype declaration');
382
371
  }
383
372
 
@@ -396,7 +385,7 @@ export class Parser {
396
385
  let { scanner } = this;
397
386
  let startIndex = scanner.charIndex;
398
387
 
399
- if (!scanner.consumeStringFast('<')) {
388
+ if (!scanner.consumeString('<')) {
400
389
  return false;
401
390
  }
402
391
 
@@ -408,13 +397,13 @@ export class Parser {
408
397
  }
409
398
 
410
399
  let attributes = this.consumeAttributes();
411
- let isEmpty = !!scanner.consumeStringFast('/>');
400
+ let isEmpty = !!scanner.consumeString('/>');
412
401
  let element = new XmlElement(name, attributes);
413
402
 
414
403
  element.parent = this.currentNode;
415
404
 
416
405
  if (!isEmpty) {
417
- if (!scanner.consumeStringFast('>')) {
406
+ if (!scanner.consumeString('>')) {
418
407
  throw this.error(`Unclosed start tag for element \`${name}\``);
419
408
  }
420
409
 
@@ -433,7 +422,7 @@ export class Parser {
433
422
  let endTagMark = scanner.charIndex;
434
423
  let endTagName;
435
424
 
436
- if (!scanner.consumeStringFast('</')
425
+ if (!scanner.consumeString('</')
437
426
  || !(endTagName = this.consumeName())
438
427
  || endTagName !== name) {
439
428
 
@@ -443,7 +432,7 @@ export class Parser {
443
432
 
444
433
  this.consumeWhitespace();
445
434
 
446
- if (!scanner.consumeStringFast('>')) {
435
+ if (!scanner.consumeString('>')) {
447
436
  throw this.error(`Unclosed end tag for element ${name}`);
448
437
  }
449
438
 
@@ -462,7 +451,7 @@ export class Parser {
462
451
  consumeEqual(): boolean {
463
452
  this.consumeWhitespace();
464
453
 
465
- if (this.scanner.consumeStringFast('=')) {
454
+ if (this.scanner.consumeString('=')) {
466
455
  this.consumeWhitespace();
467
456
  return true;
468
457
  }
@@ -504,7 +493,7 @@ export class Parser {
504
493
  let { scanner } = this;
505
494
  let startIndex = scanner.charIndex;
506
495
 
507
- if (!scanner.consumeStringFast('<?')) {
496
+ if (!scanner.consumeString('<?')) {
508
497
  return false;
509
498
  }
510
499
 
@@ -520,7 +509,7 @@ export class Parser {
520
509
  }
521
510
 
522
511
  if (!this.consumeWhitespace()) {
523
- if (scanner.consumeStringFast('?>')) {
512
+ if (scanner.consumeString('?>')) {
524
513
  return this.addNode(new XmlProcessingInstruction(name), startIndex);
525
514
  }
526
515
 
@@ -530,7 +519,7 @@ export class Parser {
530
519
  let content = scanner.consumeUntilString('?>');
531
520
  this.validateChars(content);
532
521
 
533
- if (!scanner.consumeStringFast('?>')) {
522
+ if (!scanner.consumeString('?>')) {
534
523
  throw this.error('Unterminated processing instruction');
535
524
  }
536
525
 
@@ -595,7 +584,7 @@ export class Parser {
595
584
  consumeReference(): string | false {
596
585
  let { scanner } = this;
597
586
 
598
- if (!scanner.consumeStringFast('&')) {
587
+ if (!scanner.consumeString('&')) {
599
588
  return false;
600
589
  }
601
590
 
@@ -675,7 +664,7 @@ export class Parser {
675
664
  */
676
665
  consumeSystemLiteral(): string | false {
677
666
  let { scanner } = this;
678
- let quote = scanner.consumeStringFast('"') || scanner.consumeStringFast("'");
667
+ let quote = scanner.consumeString('"') || scanner.consumeString("'");
679
668
 
680
669
  if (!quote) {
681
670
  return false;
@@ -684,7 +673,7 @@ export class Parser {
684
673
  let value = scanner.consumeUntilString(quote);
685
674
  this.validateChars(value);
686
675
 
687
- if (!scanner.consumeStringFast(quote)) {
676
+ if (!scanner.consumeString(quote)) {
688
677
  throw this.error('Missing end quote');
689
678
  }
690
679
 
@@ -711,7 +700,7 @@ export class Parser {
711
700
  let { scanner } = this;
712
701
  let startIndex = scanner.charIndex;
713
702
 
714
- if (!scanner.consumeStringFast('<?xml')) {
703
+ if (!scanner.consumeString('<?xml')) {
715
704
  return false;
716
705
  }
717
706
 
@@ -719,7 +708,7 @@ export class Parser {
719
708
  throw this.error('Invalid XML declaration');
720
709
  }
721
710
 
722
- let version = !!scanner.consumeStringFast('version')
711
+ let version = !!scanner.consumeString('version')
723
712
  && this.consumeEqual()
724
713
  && this.consumeSystemLiteral();
725
714
 
@@ -733,15 +722,18 @@ export class Parser {
733
722
  let standalone;
734
723
 
735
724
  if (this.consumeWhitespace()) {
736
- encoding = !!scanner.consumeStringFast('encoding')
725
+ encoding = !!scanner.consumeString('encoding')
737
726
  && this.consumeEqual()
738
727
  && this.consumeSystemLiteral();
739
728
 
740
729
  if (encoding) {
730
+ if (!/^[A-Za-z][\w.-]*$/.test(encoding)) {
731
+ throw this.error('Invalid character in encoding name');
732
+ }
741
733
  this.consumeWhitespace();
742
734
  }
743
735
 
744
- standalone = !!scanner.consumeStringFast('standalone')
736
+ standalone = !!scanner.consumeString('standalone')
745
737
  && this.consumeEqual()
746
738
  && this.consumeSystemLiteral();
747
739
 
@@ -754,7 +746,7 @@ export class Parser {
754
746
  }
755
747
  }
756
748
 
757
- if (!scanner.consumeStringFast('?>')) {
749
+ if (!scanner.consumeString('?>')) {
758
750
  throw this.error('Invalid or unclosed XML declaration');
759
751
  }
760
752
 
@@ -775,6 +767,24 @@ export class Parser {
775
767
  return new XmlError(message, scanner.charIndex, scanner.string);
776
768
  }
777
769
 
770
+ /**
771
+ * Parses the XML input.
772
+ */
773
+ parse() {
774
+ this.scanner.consumeString('\uFEFF'); // byte order mark
775
+ this.consumeProlog();
776
+
777
+ if (!this.consumeElement()) {
778
+ throw this.error('Root element is missing or invalid');
779
+ }
780
+
781
+ while (this.consumeMisc()) {} // eslint-disable-line no-empty
782
+
783
+ if (!this.scanner.isEnd) {
784
+ throw this.error('Extra content at the end of the document');
785
+ }
786
+ }
787
+
778
788
  /**
779
789
  * Throws an invalid character error if any character in the given _string_
780
790
  * isn't a valid XML character.