xml-tokenizer 0.0.31 → 0.0.32

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 (111) hide show
  1. package/dist/cjs/config.js +43 -1
  2. package/dist/cjs/config.js.map +1 -0
  3. package/dist/cjs/get-q-name.js +8 -1
  4. package/dist/cjs/get-q-name.js.map +1 -0
  5. package/dist/cjs/index.js +80 -1
  6. package/dist/cjs/index.js.map +1 -0
  7. package/dist/cjs/selector/TokenSelectState.js +107 -1
  8. package/dist/cjs/selector/TokenSelectState.js.map +1 -0
  9. package/dist/cjs/selector/TokenSelectStateMachine.js +151 -1
  10. package/dist/cjs/selector/TokenSelectStateMachine.js.map +1 -0
  11. package/dist/cjs/selector/TokenSelector.js +140 -1
  12. package/dist/cjs/selector/TokenSelector.js.map +1 -0
  13. package/dist/cjs/selector/match-string.js +22 -1
  14. package/dist/cjs/selector/match-string.js.map +1 -0
  15. package/dist/cjs/selector/select.js +20 -1
  16. package/dist/cjs/selector/select.js.map +1 -0
  17. package/dist/cjs/token-to-xml.js +45 -1
  18. package/dist/cjs/token-to-xml.js.map +1 -0
  19. package/dist/cjs/tokenizer/XmlError.js +97 -1
  20. package/dist/cjs/tokenizer/XmlError.js.map +1 -0
  21. package/dist/cjs/tokenizer/XmlStream.js +479 -1
  22. package/dist/cjs/tokenizer/XmlStream.js.map +1 -0
  23. package/dist/cjs/tokenizer/ascii-constants.js +70 -1
  24. package/dist/cjs/tokenizer/ascii-constants.js.map +1 -0
  25. package/dist/cjs/tokenizer/tokenize.js +420 -1
  26. package/dist/cjs/tokenizer/tokenize.js.map +1 -0
  27. package/dist/cjs/tokenizer/utils.js +48 -1
  28. package/dist/cjs/tokenizer/utils.js.map +1 -0
  29. package/dist/cjs/tokens-to-xml.js +14 -1
  30. package/dist/cjs/tokens-to-xml.js.map +1 -0
  31. package/dist/cjs/xml-to-object.js +70 -1
  32. package/dist/cjs/xml-to-object.js.map +1 -0
  33. package/dist/cjs/xml-to-simplified-object.js +87 -1
  34. package/dist/cjs/xml-to-simplified-object.js.map +1 -0
  35. package/dist/esm/config.js +39 -1
  36. package/dist/esm/config.js.map +1 -0
  37. package/dist/esm/get-q-name.js +6 -1
  38. package/dist/esm/get-q-name.js.map +1 -0
  39. package/dist/esm/index.js +16 -1
  40. package/dist/esm/index.js.map +1 -0
  41. package/dist/esm/selector/TokenSelectState.js +103 -1
  42. package/dist/esm/selector/TokenSelectState.js.map +1 -0
  43. package/dist/esm/selector/TokenSelectStateMachine.js +149 -1
  44. package/dist/esm/selector/TokenSelectStateMachine.js.map +1 -0
  45. package/dist/esm/selector/TokenSelector.js +138 -1
  46. package/dist/esm/selector/TokenSelector.js.map +1 -0
  47. package/dist/esm/selector/match-string.js +20 -1
  48. package/dist/esm/selector/match-string.js.map +1 -0
  49. package/dist/esm/selector/select.js +18 -1
  50. package/dist/esm/selector/select.js.map +1 -0
  51. package/dist/esm/token-to-xml.js +43 -1
  52. package/dist/esm/token-to-xml.js.map +1 -0
  53. package/dist/esm/tokenizer/XmlError.js +95 -1
  54. package/dist/esm/tokenizer/XmlError.js.map +1 -0
  55. package/dist/esm/tokenizer/XmlStream.js +477 -1
  56. package/dist/esm/tokenizer/XmlStream.js.map +1 -0
  57. package/dist/esm/tokenizer/ascii-constants.js +36 -1
  58. package/dist/esm/tokenizer/ascii-constants.js.map +1 -0
  59. package/dist/esm/tokenizer/tokenize.js +417 -1
  60. package/dist/esm/tokenizer/tokenize.js.map +1 -0
  61. package/dist/esm/tokenizer/utils.js +41 -1
  62. package/dist/esm/tokenizer/utils.js.map +1 -0
  63. package/dist/esm/tokens-to-xml.js +12 -1
  64. package/dist/esm/tokens-to-xml.js.map +1 -0
  65. package/dist/esm/xml-to-object.js +67 -1
  66. package/dist/esm/xml-to-object.js.map +1 -0
  67. package/dist/esm/xml-to-simplified-object.js +84 -1
  68. package/dist/esm/xml-to-simplified-object.js.map +1 -0
  69. package/dist/types/config.d.ts +1 -0
  70. package/dist/types/config.d.ts.map +1 -0
  71. package/dist/types/get-q-name.d.ts +1 -0
  72. package/dist/types/get-q-name.d.ts.map +1 -0
  73. package/dist/types/index.d.ts +1 -0
  74. package/dist/types/index.d.ts.map +1 -0
  75. package/dist/types/selector/TokenSelectState.d.ts +1 -0
  76. package/dist/types/selector/TokenSelectState.d.ts.map +1 -0
  77. package/dist/types/selector/TokenSelectStateMachine.d.ts +1 -0
  78. package/dist/types/selector/TokenSelectStateMachine.d.ts.map +1 -0
  79. package/dist/types/selector/TokenSelector.d.ts +1 -0
  80. package/dist/types/selector/TokenSelector.d.ts.map +1 -0
  81. package/dist/types/selector/index.d.ts +1 -0
  82. package/dist/types/selector/index.d.ts.map +1 -0
  83. package/dist/types/selector/match-string.d.ts +1 -0
  84. package/dist/types/selector/match-string.d.ts.map +1 -0
  85. package/dist/types/selector/select.d.ts +1 -0
  86. package/dist/types/selector/select.d.ts.map +1 -0
  87. package/dist/types/selector/types.d.ts +1 -0
  88. package/dist/types/selector/types.d.ts.map +1 -0
  89. package/dist/types/token-to-xml.d.ts +1 -0
  90. package/dist/types/token-to-xml.d.ts.map +1 -0
  91. package/dist/types/tokenizer/XmlError.d.ts +1 -0
  92. package/dist/types/tokenizer/XmlError.d.ts.map +1 -0
  93. package/dist/types/tokenizer/XmlStream.d.ts +1 -0
  94. package/dist/types/tokenizer/XmlStream.d.ts.map +1 -0
  95. package/dist/types/tokenizer/ascii-constants.d.ts +1 -0
  96. package/dist/types/tokenizer/ascii-constants.d.ts.map +1 -0
  97. package/dist/types/tokenizer/index.d.ts +1 -0
  98. package/dist/types/tokenizer/index.d.ts.map +1 -0
  99. package/dist/types/tokenizer/tokenize.d.ts +1 -0
  100. package/dist/types/tokenizer/tokenize.d.ts.map +1 -0
  101. package/dist/types/tokenizer/types.d.ts +1 -0
  102. package/dist/types/tokenizer/types.d.ts.map +1 -0
  103. package/dist/types/tokenizer/utils.d.ts +1 -0
  104. package/dist/types/tokenizer/utils.d.ts.map +1 -0
  105. package/dist/types/tokens-to-xml.d.ts +1 -0
  106. package/dist/types/tokens-to-xml.d.ts.map +1 -0
  107. package/dist/types/xml-to-object.d.ts +1 -0
  108. package/dist/types/xml-to-object.d.ts.map +1 -0
  109. package/dist/types/xml-to-simplified-object.d.ts +1 -0
  110. package/dist/types/xml-to-simplified-object.d.ts.map +1 -0
  111. package/package.json +6 -5
@@ -1 +1,22 @@
1
- "use strict";function r(t,e){if(typeof e=="string")return t===e;switch(e.matchStrategy){case"ANY":return!0;case"EXACT":return t===e.value;case"CONTAINS":return t.includes(e.value);case"STARTS_WITH":return t.startsWith(e.value);case"ENDS_WITH":return t.endsWith(e.value)}}exports.matchString=r;
1
+ 'use strict';
2
+
3
+ function matchString(value, config) {
4
+ if (typeof config === "string") {
5
+ return value === config;
6
+ }
7
+ switch (config.matchStrategy) {
8
+ case "ANY":
9
+ return true;
10
+ case "EXACT":
11
+ return value === config.value;
12
+ case "CONTAINS":
13
+ return value.includes(config.value);
14
+ case "STARTS_WITH":
15
+ return value.startsWith(config.value);
16
+ case "ENDS_WITH":
17
+ return value.endsWith(config.value);
18
+ }
19
+ }
20
+
21
+ exports.matchString = matchString;
22
+ //# sourceMappingURL=match-string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match-string.js","sources":["../../../src/selector/match-string.ts"],"sourcesContent":["import { type TStringMatch } from './types';\n\nexport function matchString(value: string, config: TStringMatch): boolean {\n\t// Default case for simple string input; uses \"EXACT\" match strategy\n\tif (typeof config === 'string') {\n\t\treturn value === config;\n\t}\n\n\tswitch (config.matchStrategy) {\n\t\tcase 'ANY':\n\t\t\treturn true;\n\t\tcase 'EXACT':\n\t\t\treturn value === config.value;\n\t\tcase 'CONTAINS':\n\t\t\treturn value.includes(config.value);\n\t\tcase 'STARTS_WITH':\n\t\t\treturn value.startsWith(config.value);\n\t\tcase 'ENDS_WITH':\n\t\t\treturn value.endsWith(config.value);\n\t}\n}\n"],"names":[],"mappings":";;AACO,SAAS,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE;AAC3C,EAAE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAClC,IAAI,OAAO,KAAK,KAAK,MAAM;AAC3B;AACA,EAAE,QAAQ,MAAM,CAAC,aAAa;AAC9B,IAAI,KAAK,KAAK;AACd,MAAM,OAAO,IAAI;AACjB,IAAI,KAAK,OAAO;AAChB,MAAM,OAAO,KAAK,KAAK,MAAM,CAAC,KAAK;AACnC,IAAI,KAAK,UAAU;AACnB,MAAM,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;AACzC,IAAI,KAAK,aAAa;AACtB,MAAM,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;AAC3C,IAAI,KAAK,WAAW;AACpB,MAAM,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;AACzC;AACA;;;;"}
@@ -1 +1,20 @@
1
- "use strict";var l=require("../tokenizer/tokenize.js"),s=require("./TokenSelector.js");function u(e,t,n,o){const r=new s.TokenSelector(t);l.tokenize(e,(c,i)=>{r.pipeToken(c,k=>{n(k,i)})},o)}exports.select=u;
1
+ 'use strict';
2
+
3
+ var tokenize = require('../tokenizer/tokenize.js');
4
+ var TokenSelector = require('./TokenSelector.js');
5
+
6
+ function select(xml, tokenSelectPaths, callback, options) {
7
+ const selector = new TokenSelector.TokenSelector(tokenSelectPaths);
8
+ tokenize.tokenize(
9
+ xml,
10
+ (token, stream) => {
11
+ selector.pipeToken(token, (recordedToken) => {
12
+ callback(recordedToken, stream);
13
+ });
14
+ },
15
+ options
16
+ );
17
+ }
18
+
19
+ exports.select = select;
20
+ //# sourceMappingURL=select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.js","sources":["../../../src/selector/select.ts"],"sourcesContent":["import { tokenize, TXmlStreamOptions } from '../tokenizer';\nimport { TokenSelector } from './TokenSelector';\nimport { type TSelectedTokenCallback, type TTokenSelectPath } from './types';\n\nexport function select(\n\txml: string,\n\ttokenSelectPaths: TTokenSelectPath[],\n\tcallback: TSelectedTokenCallback,\n\toptions?: TXmlStreamOptions\n): void {\n\tconst selector = new TokenSelector(tokenSelectPaths);\n\ttokenize(\n\t\txml,\n\t\t(token, stream) => {\n\t\t\tselector.pipeToken(token, (recordedToken) => {\n\t\t\t\tcallback(recordedToken, stream);\n\t\t\t});\n\t\t},\n\t\toptions\n\t);\n}\n"],"names":["TokenSelector","tokenize"],"mappings":";;;;;AAGO,SAAS,MAAM,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE;AACjE,EAAE,MAAM,QAAQ,GAAG,IAAIA,2BAAa,CAAC,gBAAgB,CAAC;AACtD,EAAEC,iBAAQ;AACV,IAAI,GAAG;AACP,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK;AACvB,MAAM,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,aAAa,KAAK;AACnD,QAAQ,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;AACvC,OAAO,CAAC;AACR,KAAK;AACL,IAAI;AACJ,GAAG;AACH;;;;"}
@@ -1 +1,45 @@
1
- "use strict";function n(t){let e="";switch(t.type){case"ProcessingInstruction":e+=`<?${t.target}`,t.content&&(e+=` ${t.content}`),e+="?>";break;case"Comment":e+=`<!--${t.text}-->`;break;case"EntityDeclaration":e+=`<!ENTITY ${t.name} "${t.definition}">`;break;case"ElementStart":e+=`<${t.prefix.length>0?`${t.prefix}:`:""}${t.local}`;break;case"Attribute":e+=` ${t.prefix.length>0?`${t.prefix}:`:""}${t.local}="${t.value}"`;break;case"ElementEnd":t.end.type==="Open"?e+=">":t.end.type==="Close"?e+=`</${t.end.prefix.length>0?`${t.end.prefix}:`:""}${t.end.local}>`:e+="/>";break;case"Text":e+=t.text;break;case"Cdata":e+=`<![CDATA[${t.text}]]>`;break}return e}exports.tokenToXml=n;
1
+ 'use strict';
2
+
3
+ function tokenToXml(token) {
4
+ let xmlString = "";
5
+ switch (token.type) {
6
+ case "ProcessingInstruction":
7
+ xmlString += `<?${token.target}`;
8
+ if (token.content) {
9
+ xmlString += ` ${token.content}`;
10
+ }
11
+ xmlString += "?>";
12
+ break;
13
+ case "Comment":
14
+ xmlString += `<!--${token.text}-->`;
15
+ break;
16
+ case "EntityDeclaration":
17
+ xmlString += `<!ENTITY ${token.name} "${token.definition}">`;
18
+ break;
19
+ case "ElementStart":
20
+ xmlString += `<${token.prefix.length > 0 ? `${token.prefix}:` : ""}${token.local}`;
21
+ break;
22
+ case "Attribute":
23
+ xmlString += ` ${token.prefix.length > 0 ? `${token.prefix}:` : ""}${token.local}="${token.value}"`;
24
+ break;
25
+ case "ElementEnd":
26
+ if (token.end.type === "Open") {
27
+ xmlString += ">";
28
+ } else if (token.end.type === "Close") {
29
+ xmlString += `</${token.end.prefix.length > 0 ? `${token.end.prefix}:` : ""}${token.end.local}>`;
30
+ } else {
31
+ xmlString += "/>";
32
+ }
33
+ break;
34
+ case "Text":
35
+ xmlString += token.text;
36
+ break;
37
+ case "Cdata":
38
+ xmlString += `<![CDATA[${token.text}]]>`;
39
+ break;
40
+ }
41
+ return xmlString;
42
+ }
43
+
44
+ exports.tokenToXml = tokenToXml;
45
+ //# sourceMappingURL=token-to-xml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-to-xml.js","sources":["../../src/token-to-xml.ts"],"sourcesContent":["import { type TXmlToken } from './tokenizer';\n\nexport function tokenToXml(token: TXmlToken): string {\n\tlet xmlString = '';\n\n\tswitch (token.type) {\n\t\tcase 'ProcessingInstruction':\n\t\t\txmlString += `<?${token.target}`;\n\t\t\tif (token.content) {\n\t\t\t\txmlString += ` ${token.content}`;\n\t\t\t}\n\t\t\txmlString += '?>';\n\t\t\tbreak;\n\n\t\tcase 'Comment':\n\t\t\txmlString += `<!--${token.text}-->`;\n\t\t\tbreak;\n\n\t\tcase 'EntityDeclaration':\n\t\t\txmlString += `<!ENTITY ${token.name} \"${token.definition}\">`;\n\t\t\tbreak;\n\n\t\tcase 'ElementStart':\n\t\t\txmlString += `<${token.prefix.length > 0 ? `${token.prefix}:` : ''}${token.local}`;\n\t\t\tbreak;\n\n\t\tcase 'Attribute':\n\t\t\txmlString += ` ${token.prefix.length > 0 ? `${token.prefix}:` : ''}${token.local}=\"${token.value}\"`;\n\t\t\tbreak;\n\n\t\tcase 'ElementEnd':\n\t\t\tif (token.end.type === 'Open') {\n\t\t\t\txmlString += '>';\n\t\t\t} else if (token.end.type === 'Close') {\n\t\t\t\txmlString += `</${token.end.prefix.length > 0 ? `${token.end.prefix}:` : ''}${token.end.local}>`;\n\t\t\t} else {\n\t\t\t\txmlString += '/>';\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'Text':\n\t\t\txmlString += token.text;\n\t\t\tbreak;\n\n\t\tcase 'Cdata':\n\t\t\txmlString += `<![CDATA[${token.text}]]>`;\n\t\t\tbreak;\n\t}\n\n\treturn xmlString;\n}\n"],"names":[],"mappings":";;AACO,SAAS,UAAU,CAAC,KAAK,EAAE;AAClC,EAAE,IAAI,SAAS,GAAG,EAAE;AACpB,EAAE,QAAQ,KAAK,CAAC,IAAI;AACpB,IAAI,KAAK,uBAAuB;AAChC,MAAM,SAAS,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AACtC,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE;AACzB,QAAQ,SAAS,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AACxC;AACA,MAAM,SAAS,IAAI,IAAI;AACvB,MAAM;AACN,IAAI,KAAK,SAAS;AAClB,MAAM,SAAS,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;AACzC,MAAM;AACN,IAAI,KAAK,mBAAmB;AAC5B,MAAM,SAAS,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;AAClE,MAAM;AACN,IAAI,KAAK,cAAc;AACvB,MAAM,SAAS,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AACxF,MAAM;AACN,IAAI,KAAK,WAAW;AACpB,MAAM,SAAS,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACzG,MAAM;AACN,IAAI,KAAK,YAAY;AACrB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;AACrC,QAAQ,SAAS,IAAI,GAAG;AACxB,OAAO,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE;AAC7C,QAAQ,SAAS,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACxG,OAAO,MAAM;AACb,QAAQ,SAAS,IAAI,IAAI;AACzB;AACA,MAAM;AACN,IAAI,KAAK,MAAM;AACf,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI;AAC7B,MAAM;AACN,IAAI,KAAK,OAAO;AAChB,MAAM,SAAS,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9C,MAAM;AACN;AACA,EAAE,OAAO,SAAS;AAClB;;;;"}
@@ -1 +1,97 @@
1
- "use strict";var i=Object.defineProperty,d=(a,t,e)=>t in a?i(a,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[t]=e,s=(a,t,e)=>d(a,typeof t!="symbol"?t+"":t,e);class c extends Error{constructor(t,e={col:1,row:1},o){super(o!=null?o:c.toMessage(t,e)),s(this,"variant"),s(this,"pos"),this.variant=t,this.pos=e}static toMessage(t,e){switch(t.type){case"InvalidXmlPrefixUri":return`'xml' namespace prefix mapped to wrong URI at ${n(e)}`;case"UnexpectedXmlUri":return`the 'xml' namespace URI is used for not 'xml' prefix at ${n(e)}`;case"UnexpectedXmlnsUri":return`the 'xmlns' URI is used at ${n(e)}, but it must not be declared`;case"InvalidElementNamePrefix":return`the 'xmlns' prefix is used at ${n(e)}, but it must not be`;case"DuplicatedNamespace":return`namespace '${t.name}' at ${n(e)} is already defined`;case"UnknownNamespace":return`an unknown namespace prefix '${t.name}' at ${n(e)}`;case"UnexpectedCloseTag":return`expected '${t.expected}' tag, not '${t.actual}' at ${n(e)}`;case"UnexpectedEntityCloseTag":return`unexpected close tag at ${n(e)}`;case"MalformedEntityReference":return`malformed entity reference at ${n(e)}`;case"UnknownEntityReference":return`unknown entity reference '${t.name}' at ${n(e)}`;case"EntityReferenceLoop":return`a possible entity reference loop is detected at ${n(e)}`;case"InvalidAttributeValue":return`unescaped '<' found at ${n(e)}`;case"DuplicatedAttribute":return`attribute '${t.attribute}' at ${n(e)} is already defined`;case"NoRootNode":return"the document does not have a root node";case"UnclosedRootNode":return"the root node was opened but never closed";case"UnexpectedDeclaration":return`unexpected XML declaration at ${n(e)}`;case"DtdDetected":return"XML with DTD detected";case"NodesLimitReached":return"nodes limit reached";case"AttributesLimitReached":return"more than 2^32 attributes were parsed";case"NamespacesLimitReached":return"more than 2^16 unique namespaces were parsed";case"InvalidName":return`invalid name token at ${n(e)}`;case"NonXmlChar":return`a non-XML character '${r(t.char)}' found at ${n(e)}`;case"InvalidChar":return`expected ${typeof t.expected=="string"?t.expected:`'${r(t.expected)}'`} not '${r(t.actual)}' at ${n(e)}`;case"InvalidString":return`expected '${t.expected}' at ${n(e)}`;case"InvalidExternalID":return`invalid ExternalID at ${n(e)}`;case"InvalidComment":return`comment at ${n(e)} contains '--'`;case"InvalidCharacterData":return`']]>' at ${n(e)} is not allowed inside a character data`;case"UnknownToken":return`unknown token at ${n(e)}`;case"UnexpectedEndOfStream":return"unexpected end of stream";default:return"unknown error type"}}}function n(a){return`${a.row.toString()}:${a.col.toString()}${a.contextSlice!=null?` (${a.contextSlice})`:""}`}function r(a){const t=typeof a=="string"?a.charCodeAt(0):a;if(t<0||t>1114111)throw new Error("Code point out of range");let e=t.toString(16).toUpperCase();return t<=65535?e=e.padStart(4,"0"):e=e.padStart(6,"0"),`\\u{${e}}`}exports.XmlError=c;
1
+ 'use strict';
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
6
+ class XmlError extends Error {
7
+ constructor(variant, pos = { col: 1, row: 1 }, message) {
8
+ super(message != null ? message : XmlError.toMessage(variant, pos));
9
+ __publicField(this, "variant");
10
+ __publicField(this, "pos");
11
+ this.variant = variant;
12
+ this.pos = pos;
13
+ }
14
+ static toMessage(variant, pos) {
15
+ switch (variant.type) {
16
+ case "InvalidXmlPrefixUri":
17
+ return `'xml' namespace prefix mapped to wrong URI at ${formatPos(pos)}`;
18
+ case "UnexpectedXmlUri":
19
+ return `the 'xml' namespace URI is used for not 'xml' prefix at ${formatPos(pos)}`;
20
+ case "UnexpectedXmlnsUri":
21
+ return `the 'xmlns' URI is used at ${formatPos(pos)}, but it must not be declared`;
22
+ case "InvalidElementNamePrefix":
23
+ return `the 'xmlns' prefix is used at ${formatPos(pos)}, but it must not be`;
24
+ case "DuplicatedNamespace":
25
+ return `namespace '${variant.name}' at ${formatPos(pos)} is already defined`;
26
+ case "UnknownNamespace":
27
+ return `an unknown namespace prefix '${variant.name}' at ${formatPos(pos)}`;
28
+ case "UnexpectedCloseTag":
29
+ return `expected '${variant.expected}' tag, not '${variant.actual}' at ${formatPos(pos)}`;
30
+ case "UnexpectedEntityCloseTag":
31
+ return `unexpected close tag at ${formatPos(pos)}`;
32
+ case "MalformedEntityReference":
33
+ return `malformed entity reference at ${formatPos(pos)}`;
34
+ case "UnknownEntityReference":
35
+ return `unknown entity reference '${variant.name}' at ${formatPos(pos)}`;
36
+ case "EntityReferenceLoop":
37
+ return `a possible entity reference loop is detected at ${formatPos(pos)}`;
38
+ case "InvalidAttributeValue":
39
+ return `unescaped '<' found at ${formatPos(pos)}`;
40
+ case "DuplicatedAttribute":
41
+ return `attribute '${variant.attribute}' at ${formatPos(pos)} is already defined`;
42
+ case "NoRootNode":
43
+ return `the document does not have a root node`;
44
+ case "UnclosedRootNode":
45
+ return `the root node was opened but never closed`;
46
+ case "UnexpectedDeclaration":
47
+ return `unexpected XML declaration at ${formatPos(pos)}`;
48
+ case "DtdDetected":
49
+ return `XML with DTD detected`;
50
+ case "NodesLimitReached":
51
+ return `nodes limit reached`;
52
+ case "AttributesLimitReached":
53
+ return `more than 2^32 attributes were parsed`;
54
+ case "NamespacesLimitReached":
55
+ return `more than 2^16 unique namespaces were parsed`;
56
+ case "InvalidName":
57
+ return `invalid name token at ${formatPos(pos)}`;
58
+ case "NonXmlChar":
59
+ return `a non-XML character '${toUnicodeEscape(variant.char)}' found at ${formatPos(pos)}`;
60
+ case "InvalidChar":
61
+ return `expected ${typeof variant.expected === "string" ? variant.expected : `'${toUnicodeEscape(variant.expected)}'`} not '${toUnicodeEscape(variant.actual)}' at ${formatPos(pos)}`;
62
+ case "InvalidString":
63
+ return `expected '${variant.expected}' at ${formatPos(pos)}`;
64
+ case "InvalidExternalID":
65
+ return `invalid ExternalID at ${formatPos(pos)}`;
66
+ case "InvalidComment":
67
+ return `comment at ${formatPos(pos)} contains '--'`;
68
+ case "InvalidCharacterData":
69
+ return `']]>' at ${formatPos(pos)} is not allowed inside a character data`;
70
+ case "UnknownToken":
71
+ return `unknown token at ${formatPos(pos)}`;
72
+ case "UnexpectedEndOfStream":
73
+ return `unexpected end of stream`;
74
+ default:
75
+ return `unknown error type`;
76
+ }
77
+ }
78
+ }
79
+ function formatPos(pos) {
80
+ return `${pos.row.toString()}:${pos.col.toString()}${pos.contextSlice != null ? ` (${pos.contextSlice})` : ""}`;
81
+ }
82
+ function toUnicodeEscape(codePoint) {
83
+ const code = typeof codePoint === "string" ? codePoint.charCodeAt(0) : codePoint;
84
+ if (code < 0 || code > 1114111) {
85
+ throw new Error("Code point out of range");
86
+ }
87
+ let hexString = code.toString(16).toUpperCase();
88
+ if (code <= 65535) {
89
+ hexString = hexString.padStart(4, "0");
90
+ } else {
91
+ hexString = hexString.padStart(6, "0");
92
+ }
93
+ return `\\u{${hexString}}`;
94
+ }
95
+
96
+ exports.XmlError = XmlError;
97
+ //# sourceMappingURL=XmlError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XmlError.js","sources":["../../../src/tokenizer/XmlError.ts"],"sourcesContent":["import { type TTextPos } from './types';\n\nexport class XmlError extends Error {\n\tpublic readonly variant: TXMLErrorVariant;\n\tpublic readonly pos: TTextPos;\n\n\tconstructor(variant: TXMLErrorVariant, pos: TTextPos = { col: 1, row: 1 }, message?: string) {\n\t\tsuper(message ?? XmlError.toMessage(variant, pos));\n\t\tthis.variant = variant;\n\t\tthis.pos = pos;\n\t}\n\n\tstatic toMessage(variant: TXMLErrorVariant, pos: TTextPos): string {\n\t\tswitch (variant.type) {\n\t\t\tcase 'InvalidXmlPrefixUri':\n\t\t\t\treturn `'xml' namespace prefix mapped to wrong URI at ${formatPos(pos)}`;\n\t\t\tcase 'UnexpectedXmlUri':\n\t\t\t\treturn `the 'xml' namespace URI is used for not 'xml' prefix at ${formatPos(pos)}`;\n\t\t\tcase 'UnexpectedXmlnsUri':\n\t\t\t\treturn `the 'xmlns' URI is used at ${formatPos(pos)}, but it must not be declared`;\n\t\t\tcase 'InvalidElementNamePrefix':\n\t\t\t\treturn `the 'xmlns' prefix is used at ${formatPos(pos)}, but it must not be`;\n\t\t\tcase 'DuplicatedNamespace':\n\t\t\t\treturn `namespace '${variant.name}' at ${formatPos(pos)} is already defined`;\n\t\t\tcase 'UnknownNamespace':\n\t\t\t\treturn `an unknown namespace prefix '${variant.name}' at ${formatPos(pos)}`;\n\t\t\tcase 'UnexpectedCloseTag':\n\t\t\t\treturn `expected '${variant.expected}' tag, not '${variant.actual}' at ${formatPos(pos)}`;\n\t\t\tcase 'UnexpectedEntityCloseTag':\n\t\t\t\treturn `unexpected close tag at ${formatPos(pos)}`;\n\t\t\tcase 'MalformedEntityReference':\n\t\t\t\treturn `malformed entity reference at ${formatPos(pos)}`;\n\t\t\tcase 'UnknownEntityReference':\n\t\t\t\treturn `unknown entity reference '${variant.name}' at ${formatPos(pos)}`;\n\t\t\tcase 'EntityReferenceLoop':\n\t\t\t\treturn `a possible entity reference loop is detected at ${formatPos(pos)}`;\n\t\t\tcase 'InvalidAttributeValue':\n\t\t\t\treturn `unescaped '<' found at ${formatPos(pos)}`;\n\t\t\tcase 'DuplicatedAttribute':\n\t\t\t\treturn `attribute '${variant.attribute}' at ${formatPos(pos)} is already defined`;\n\t\t\tcase 'NoRootNode':\n\t\t\t\treturn `the document does not have a root node`;\n\t\t\tcase 'UnclosedRootNode':\n\t\t\t\treturn `the root node was opened but never closed`;\n\t\t\tcase 'UnexpectedDeclaration':\n\t\t\t\treturn `unexpected XML declaration at ${formatPos(pos)}`;\n\t\t\tcase 'DtdDetected':\n\t\t\t\treturn `XML with DTD detected`;\n\t\t\tcase 'NodesLimitReached':\n\t\t\t\treturn `nodes limit reached`;\n\t\t\tcase 'AttributesLimitReached':\n\t\t\t\treturn `more than 2^32 attributes were parsed`;\n\t\t\tcase 'NamespacesLimitReached':\n\t\t\t\treturn `more than 2^16 unique namespaces were parsed`;\n\t\t\tcase 'InvalidName':\n\t\t\t\treturn `invalid name token at ${formatPos(pos)}`;\n\t\t\tcase 'NonXmlChar':\n\t\t\t\treturn `a non-XML character '${toUnicodeEscape(variant.char)}' found at ${formatPos(pos)}`;\n\t\t\tcase 'InvalidChar':\n\t\t\t\treturn `expected ${typeof variant.expected === 'string' ? variant.expected : `'${toUnicodeEscape(variant.expected)}'`} not '${toUnicodeEscape(variant.actual)}' at ${formatPos(pos)}`;\n\t\t\tcase 'InvalidString':\n\t\t\t\treturn `expected '${variant.expected}' at ${formatPos(pos)}`;\n\t\t\tcase 'InvalidExternalID':\n\t\t\t\treturn `invalid ExternalID at ${formatPos(pos)}`;\n\t\t\tcase 'InvalidComment':\n\t\t\t\treturn `comment at ${formatPos(pos)} contains '--'`;\n\t\t\tcase 'InvalidCharacterData':\n\t\t\t\treturn `']]>' at ${formatPos(pos)} is not allowed inside a character data`;\n\t\t\tcase 'UnknownToken':\n\t\t\t\treturn `unknown token at ${formatPos(pos)}`;\n\t\t\tcase 'UnexpectedEndOfStream':\n\t\t\t\treturn `unexpected end of stream`;\n\t\t\tdefault:\n\t\t\t\treturn `unknown error type`;\n\t\t}\n\t}\n}\n\nfunction formatPos(pos: TTextPos): string {\n\treturn `${pos.row.toString()}:${pos.col.toString()}${pos.contextSlice != null ? ` (${pos.contextSlice})` : ''}`;\n}\n\nfunction toUnicodeEscape(codePoint: number | string): string {\n\tconst code = typeof codePoint === 'string' ? codePoint.charCodeAt(0) : codePoint;\n\tif (code < 0 || code > 0x10ffff) {\n\t\tthrow new Error('Code point out of range');\n\t}\n\n\t// Convert to hexadecimal string with leading zeros\n\tlet hexString = code.toString(16).toUpperCase();\n\tif (code <= 0xffff) {\n\t\thexString = hexString.padStart(4, '0');\n\t} else {\n\t\thexString = hexString.padStart(6, '0');\n\t}\n\n\t// Format with Unicode escape sequence\n\treturn `\\\\u{${hexString}}`;\n}\n\ntype TXMLErrorVariant =\n\t| TInvalidXmlPrefixUri\n\t| TUnexpectedXmlUri\n\t| TUnexpectedXmlnsUri\n\t| TInvalidElementNamePrefix\n\t| TDuplicatedNamespace\n\t| TUnknownNamespace\n\t| TUnexpectedCloseTag\n\t| TUnexpectedEntityCloseTag\n\t| TUnknownEntityReference\n\t| TMalformedEntityReference\n\t| TEntityReferenceLoop\n\t| TInvalidAttributeValue\n\t| TDuplicatedAttribute\n\t| TNoRootNode\n\t| TUnclosedRootNode\n\t| TUnexpectedDeclaration\n\t| TDtdDetected\n\t| TNodesLimitReached\n\t| TAttributesLimitReached\n\t| TNamespacesLimitReached\n\t| TInvalidName\n\t| TNonXmlChar\n\t| TInvalidChar\n\t| TInvalidString\n\t| TInvalidExternalID\n\t| TInvalidComment\n\t| TInvalidCharacterData\n\t| TUnknownToken\n\t| TUnexpectedEndOfStream;\n\n/**\n * The `xmlns:xml` attribute must have an \\<http://www.w3.org/XML/1998/namespace\\> URI.\n */\ninterface TInvalidXmlPrefixUri {\n\ttype: 'InvalidXmlPrefixUri';\n}\n\n/**\n * Only the `xmlns:xml` attribute can have the \\<http://www.w3.org/XML/1998/namespace\\> URI.\n */\ninterface TUnexpectedXmlUri {\n\ttype: 'UnexpectedXmlUri';\n}\n\n/**\n * The \\<http://www.w3.org/2000/xmlns/\\> URI must not be declared.\n */\ninterface TUnexpectedXmlnsUri {\n\ttype: 'UnexpectedXmlnsUri';\n}\n\n/**\n * `xmlns` can't be used as an element prefix.\n */\ninterface TInvalidElementNamePrefix {\n\ttype: 'InvalidElementNamePrefix';\n}\n\n/**\n * A namespace was already defined on this element.\n */\ninterface TDuplicatedNamespace {\n\ttype: 'DuplicatedNamespace';\n\tname: string;\n}\n\n/**\n * An unknown namespace.\n *\n * Indicates that an element or an attribute has an unknown qualified name prefix.\n *\n * The first value is a prefix.\n */\ninterface TUnknownNamespace {\n\ttype: 'UnknownNamespace';\n\tname: string;\n}\n\n/**\n * Incorrect tree structure.\n *\n * expected, actual, position\n */\ninterface TUnexpectedCloseTag {\n\ttype: 'UnexpectedCloseTag';\n\texpected: string;\n\tactual: string;\n}\n\n/**\n * Entity value starts with a close tag.\n *\n * Example:\n * ```xml\n * <!DOCTYPE test [ <!ENTITY p '</p>'> ]>\n * <root>&p;</root>\n * ```\n */\ninterface TUnexpectedEntityCloseTag {\n\ttype: 'UnexpectedEntityCloseTag';\n}\n\n/**\n * A reference to an entity that was not defined in the DTD.\n */\ninterface TUnknownEntityReference {\n\ttype: 'UnknownEntityReference';\n\tname: string;\n}\n\n/**\n * A malformed entity reference.\n *\n * A `&` character inside an attribute value or text indicates an entity reference.\n * Otherwise, the document is not well-formed.\n */\ninterface TMalformedEntityReference {\n\ttype: 'MalformedEntityReference';\n}\n\n/**\n * A possible entity reference loop.\n *\n * The current depth limit is 10. The max number of references per reference is 255.\n */\ninterface TEntityReferenceLoop {\n\ttype: 'EntityReferenceLoop';\n}\n\n/**\n * Attribute value cannot have a `<` character.\n */\ninterface TInvalidAttributeValue {\n\ttype: 'InvalidAttributeValue';\n}\n\n/**\n * An element has duplicated attributes.\n *\n * This also includes namespaces resolving.\n * So an element like this will lead to an error.\n * ```xml\n * <e xmlns:n1='http://www.w3.org' xmlns:n2='http://www.w3.org' n1:a='b1' n2:a='b2'/>\n * ```\n */\ninterface TDuplicatedAttribute {\n\ttype: 'DuplicatedAttribute';\n\tattribute: string;\n}\n\n/**\n * The XML document must have at least one element.\n */\ninterface TNoRootNode {\n\ttype: 'NoRootNode';\n}\n\n/**\n * The root node was opened but never closed.\n */\ninterface TUnclosedRootNode {\n\ttype: 'UnclosedRootNode';\n}\n\n/**\n * An XML document can have only one XML declaration\n * and it must be at the start of the document.\n */\ninterface TUnexpectedDeclaration {\n\ttype: 'UnexpectedDeclaration';\n}\n\n/**\n * An XML with DTD detected.\n *\n * This error will be emitted only when `ParsingOptions::allow_dtd` is set to `false`.\n */\ninterface TDtdDetected {\n\ttype: 'DtdDetected';\n}\n\n/**\n * Indicates that the `ParsingOptions::nodes_limit` was reached.\n */\ninterface TNodesLimitReached {\n\ttype: 'NodesLimitReached';\n}\n\n/**\n * Indicates that too many attributes were parsed.\n */\ninterface TAttributesLimitReached {\n\ttype: 'AttributesLimitReached';\n}\n\n/**\n * Indicates that too many namespaces were parsed.\n */\ninterface TNamespacesLimitReached {\n\ttype: 'NamespacesLimitReached';\n}\n\n/**\n * An invalid name.\n */\ninterface TInvalidName {\n\ttype: 'InvalidName';\n}\n\n/**\n * A non-XML character has occurred.\n *\n * Valid characters are: \\<https://www.w3.org/TR/xml/#char32\\>\n */\ninterface TNonXmlChar {\n\ttype: 'NonXmlChar';\n\tchar: string;\n}\n\n/**\n * An invalid/unexpected character.\n *\n * expected, actual, position\n */\ninterface TInvalidChar {\n\ttype: 'InvalidChar';\n\texpected: string | number;\n\tactual: number;\n}\n\n/**\n * An unexpected string.\n *\n * Contains what string was expected.\n */\ninterface TInvalidString {\n\ttype: 'InvalidString';\n\texpected: string;\n}\n\n/**\n * An invalid ExternalID in the DTD.\n */\ninterface TInvalidExternalID {\n\ttype: 'InvalidExternalID';\n}\n\n/**\n * A comment cannot contain `--` or end with `-`.\n */\ninterface TInvalidComment {\n\ttype: 'InvalidComment';\n}\n\n/**\n * A Character Data node contains invalid data.\n *\n * Currently, only `]]>` is not allowed.\n */\ninterface TInvalidCharacterData {\n\ttype: 'InvalidCharacterData';\n}\n\n/**\n * An unknown token.\n */\ninterface TUnknownToken {\n\ttype: 'UnknownToken';\n\tmessage?: string;\n}\n\n/**\n * The stream ended earlier than we expected.\n *\n * Should only appear on invalid input data.\n */\ninterface TUnexpectedEndOfStream {\n\ttype: 'UnexpectedEndOfStream';\n}\n"],"names":[],"mappings":"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"}