ecore-ts
Version:
Ecore (EMOF) TypeScript Implementation
922 lines (921 loc) • 33.2 kB
JavaScript
function ft(E) {
return E && E.__esModule && Object.prototype.hasOwnProperty.call(E, "default") ? E.default : E;
}
function st(E) {
if (E.__esModule) return E;
var u = E.default;
if (typeof u == "function") {
var d = function m() {
return this instanceof m ? Reflect.construct(u, arguments, this.constructor) : u.apply(this, arguments);
};
d.prototype = u.prototype;
} else d = {};
return Object.defineProperty(d, "__esModule", { value: !0 }), Object.keys(E).forEach(function(m) {
var F = Object.getOwnPropertyDescriptor(E, m);
Object.defineProperty(d, m, F.get ? F : {
enumerable: !0,
get: function() {
return E[m];
}
});
}), d;
}
var M = {};
const lt = {}, rt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
default: lt
}, Symbol.toStringTag, { value: "Module" })), Q = /* @__PURE__ */ st(rt);
var H;
function Tt() {
return H || (H = 1, function(E) {
(function(u) {
u.parser = function(e, t) {
return new m(e, t);
}, u.SAXParser = m, u.SAXStream = g, u.createStream = K, u.MAX_BUFFER_LENGTH = 64 * 1024;
var d = [
"comment",
"sgmlDecl",
"textNode",
"tagName",
"doctype",
"procInstName",
"procInstBody",
"entity",
"attribName",
"attribValue",
"cdata",
"script"
];
u.EVENTS = [
"text",
"processinginstruction",
"sgmldeclaration",
"doctype",
"comment",
"opentagstart",
"attribute",
"opentag",
"closetag",
"opencdata",
"cdata",
"closecdata",
"error",
"end",
"ready",
"script",
"opennamespace",
"closenamespace"
];
function m(e, t) {
if (!(this instanceof m))
return new m(e, t);
var a = this;
k(a), a.q = a.c = "", a.bufferCheckPosition = u.MAX_BUFFER_LENGTH, a.opt = t || {}, a.opt.lowercase = a.opt.lowercase || a.opt.lowercasetags, a.looseCase = a.opt.lowercase ? "toLowerCase" : "toUpperCase", a.tags = [], a.closed = a.closedRoot = a.sawRoot = !1, a.tag = a.error = null, a.strict = !!e, a.noscript = !!(e || a.opt.noscript), a.state = n.BEGIN, a.strictEntities = a.opt.strictEntities, a.ENTITIES = a.strictEntities ? Object.create(u.XML_ENTITIES) : Object.create(u.ENTITIES), a.attribList = [], a.opt.xmlns && (a.ns = Object.create(J)), a.opt.unquotedAttributeValues === void 0 && (a.opt.unquotedAttributeValues = !e), a.trackPosition = a.opt.position !== !1, a.trackPosition && (a.position = a.line = a.column = 0), O(a, "onready");
}
Object.create || (Object.create = function(e) {
function t() {
}
t.prototype = e;
var a = new t();
return a;
}), Object.keys || (Object.keys = function(e) {
var t = [];
for (var a in e) e.hasOwnProperty(a) && t.push(a);
return t;
});
function F(e) {
for (var t = Math.max(u.MAX_BUFFER_LENGTH, 10), a = 0, i = 0, o = d.length; i < o; i++) {
var l = e[d[i]].length;
if (l > t)
switch (d[i]) {
case "textNode":
v(e);
break;
case "cdata":
s(e, "oncdata", e.cdata), e.cdata = "";
break;
case "script":
s(e, "onscript", e.script), e.script = "";
break;
default:
S(e, "Max buffer length exceeded: " + d[i]);
}
a = Math.max(a, l);
}
var r = u.MAX_BUFFER_LENGTH - a;
e.bufferCheckPosition = r + e.position;
}
function k(e) {
for (var t = 0, a = d.length; t < a; t++)
e[d[t]] = "";
}
function z(e) {
v(e), e.cdata !== "" && (s(e, "oncdata", e.cdata), e.cdata = ""), e.script !== "" && (s(e, "onscript", e.script), e.script = "");
}
m.prototype = {
end: function() {
Y(this);
},
write: ut,
resume: function() {
return this.error = null, this;
},
close: function() {
return this.write(null);
},
flush: function() {
z(this);
}
};
var D;
try {
D = Q.Stream;
} catch {
D = function() {
};
}
D || (D = function() {
});
var G = u.EVENTS.filter(function(e) {
return e !== "error" && e !== "end";
});
function K(e, t) {
return new g(e, t);
}
function g(e, t) {
if (!(this instanceof g))
return new g(e, t);
D.apply(this), this._parser = new m(e, t), this.writable = !0, this.readable = !0;
var a = this;
this._parser.onend = function() {
a.emit("end");
}, this._parser.onerror = function(i) {
a.emit("error", i), a._parser.error = null;
}, this._decoder = null, G.forEach(function(i) {
Object.defineProperty(a, "on" + i, {
get: function() {
return a._parser["on" + i];
},
set: function(o) {
if (!o)
return a.removeAllListeners(i), a._parser["on" + i] = o, o;
a.on(i, o);
},
enumerable: !0,
configurable: !1
});
});
}
g.prototype = Object.create(D.prototype, {
constructor: {
value: g
}
}), g.prototype.write = function(e) {
if (typeof Buffer == "function" && typeof Buffer.isBuffer == "function" && Buffer.isBuffer(e)) {
if (!this._decoder) {
var t = Q.StringDecoder;
this._decoder = new t("utf8");
}
e = this._decoder.write(e);
}
return this._parser.write(e.toString()), this.emit("data", e), !0;
}, g.prototype.end = function(e) {
return e && e.length && this.write(e), this._parser.end(), !0;
}, g.prototype.on = function(e, t) {
var a = this;
return !a._parser["on" + e] && G.indexOf(e) !== -1 && (a._parser["on" + e] = function() {
var i = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments);
i.splice(0, 0, e), a.emit.apply(a, i);
}), D.prototype.on.call(a, e, t);
};
var Z = "[CDATA[", $ = "DOCTYPE", p = "http://www.w3.org/XML/1998/namespace", P = "http://www.w3.org/2000/xmlns/", J = { xml: p, xmlns: P }, h = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/, R = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/, tt = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/, et = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;
function T(e) {
return e === " " || e === `
` || e === "\r" || e === " ";
}
function y(e) {
return e === '"' || e === "'";
}
function it(e) {
return e === ">" || T(e);
}
function A(e, t) {
return e.test(t);
}
function nt(e, t) {
return !A(e, t);
}
var n = 0;
u.STATE = {
BEGIN: n++,
// leading byte order mark or whitespace
BEGIN_WHITESPACE: n++,
// leading whitespace
TEXT: n++,
// general stuff
TEXT_ENTITY: n++,
// & and such.
OPEN_WAKA: n++,
// <
SGML_DECL: n++,
// <!BLARG
SGML_DECL_QUOTED: n++,
// <!BLARG foo "bar
DOCTYPE: n++,
// <!DOCTYPE
DOCTYPE_QUOTED: n++,
// <!DOCTYPE "//blah
DOCTYPE_DTD: n++,
// <!DOCTYPE "//blah" [ ...
DOCTYPE_DTD_QUOTED: n++,
// <!DOCTYPE "//blah" [ "foo
COMMENT_STARTING: n++,
// <!-
COMMENT: n++,
// <!--
COMMENT_ENDING: n++,
// <!-- blah -
COMMENT_ENDED: n++,
// <!-- blah --
CDATA: n++,
// <![CDATA[ something
CDATA_ENDING: n++,
// ]
CDATA_ENDING_2: n++,
// ]]
PROC_INST: n++,
// <?hi
PROC_INST_BODY: n++,
// <?hi there
PROC_INST_ENDING: n++,
// <?hi "there" ?
OPEN_TAG: n++,
// <strong
OPEN_TAG_SLASH: n++,
// <strong /
ATTRIB: n++,
// <a
ATTRIB_NAME: n++,
// <a foo
ATTRIB_NAME_SAW_WHITE: n++,
// <a foo _
ATTRIB_VALUE: n++,
// <a foo=
ATTRIB_VALUE_QUOTED: n++,
// <a foo="bar
ATTRIB_VALUE_CLOSED: n++,
// <a foo="bar"
ATTRIB_VALUE_UNQUOTED: n++,
// <a foo=bar
ATTRIB_VALUE_ENTITY_Q: n++,
// <foo bar="""
ATTRIB_VALUE_ENTITY_U: n++,
// <foo bar="
CLOSE_TAG: n++,
// </a
CLOSE_TAG_SAW_WHITE: n++,
// </a >
SCRIPT: n++,
// <script> ...
SCRIPT_ENDING: n++
// <script> ... <
}, u.XML_ENTITIES = {
amp: "&",
gt: ">",
lt: "<",
quot: '"',
apos: "'"
}, u.ENTITIES = {
amp: "&",
gt: ">",
lt: "<",
quot: '"',
apos: "'",
AElig: 198,
Aacute: 193,
Acirc: 194,
Agrave: 192,
Aring: 197,
Atilde: 195,
Auml: 196,
Ccedil: 199,
ETH: 208,
Eacute: 201,
Ecirc: 202,
Egrave: 200,
Euml: 203,
Iacute: 205,
Icirc: 206,
Igrave: 204,
Iuml: 207,
Ntilde: 209,
Oacute: 211,
Ocirc: 212,
Ograve: 210,
Oslash: 216,
Otilde: 213,
Ouml: 214,
THORN: 222,
Uacute: 218,
Ucirc: 219,
Ugrave: 217,
Uuml: 220,
Yacute: 221,
aacute: 225,
acirc: 226,
aelig: 230,
agrave: 224,
aring: 229,
atilde: 227,
auml: 228,
ccedil: 231,
eacute: 233,
ecirc: 234,
egrave: 232,
eth: 240,
euml: 235,
iacute: 237,
icirc: 238,
igrave: 236,
iuml: 239,
ntilde: 241,
oacute: 243,
ocirc: 244,
ograve: 242,
oslash: 248,
otilde: 245,
ouml: 246,
szlig: 223,
thorn: 254,
uacute: 250,
ucirc: 251,
ugrave: 249,
uuml: 252,
yacute: 253,
yuml: 255,
copy: 169,
reg: 174,
nbsp: 160,
iexcl: 161,
cent: 162,
pound: 163,
curren: 164,
yen: 165,
brvbar: 166,
sect: 167,
uml: 168,
ordf: 170,
laquo: 171,
not: 172,
shy: 173,
macr: 175,
deg: 176,
plusmn: 177,
sup1: 185,
sup2: 178,
sup3: 179,
acute: 180,
micro: 181,
para: 182,
middot: 183,
cedil: 184,
ordm: 186,
raquo: 187,
frac14: 188,
frac12: 189,
frac34: 190,
iquest: 191,
times: 215,
divide: 247,
OElig: 338,
oelig: 339,
Scaron: 352,
scaron: 353,
Yuml: 376,
fnof: 402,
circ: 710,
tilde: 732,
Alpha: 913,
Beta: 914,
Gamma: 915,
Delta: 916,
Epsilon: 917,
Zeta: 918,
Eta: 919,
Theta: 920,
Iota: 921,
Kappa: 922,
Lambda: 923,
Mu: 924,
Nu: 925,
Xi: 926,
Omicron: 927,
Pi: 928,
Rho: 929,
Sigma: 931,
Tau: 932,
Upsilon: 933,
Phi: 934,
Chi: 935,
Psi: 936,
Omega: 937,
alpha: 945,
beta: 946,
gamma: 947,
delta: 948,
epsilon: 949,
zeta: 950,
eta: 951,
theta: 952,
iota: 953,
kappa: 954,
lambda: 955,
mu: 956,
nu: 957,
xi: 958,
omicron: 959,
pi: 960,
rho: 961,
sigmaf: 962,
sigma: 963,
tau: 964,
upsilon: 965,
phi: 966,
chi: 967,
psi: 968,
omega: 969,
thetasym: 977,
upsih: 978,
piv: 982,
ensp: 8194,
emsp: 8195,
thinsp: 8201,
zwnj: 8204,
zwj: 8205,
lrm: 8206,
rlm: 8207,
ndash: 8211,
mdash: 8212,
lsquo: 8216,
rsquo: 8217,
sbquo: 8218,
ldquo: 8220,
rdquo: 8221,
bdquo: 8222,
dagger: 8224,
Dagger: 8225,
bull: 8226,
hellip: 8230,
permil: 8240,
prime: 8242,
Prime: 8243,
lsaquo: 8249,
rsaquo: 8250,
oline: 8254,
frasl: 8260,
euro: 8364,
image: 8465,
weierp: 8472,
real: 8476,
trade: 8482,
alefsym: 8501,
larr: 8592,
uarr: 8593,
rarr: 8594,
darr: 8595,
harr: 8596,
crarr: 8629,
lArr: 8656,
uArr: 8657,
rArr: 8658,
dArr: 8659,
hArr: 8660,
forall: 8704,
part: 8706,
exist: 8707,
empty: 8709,
nabla: 8711,
isin: 8712,
notin: 8713,
ni: 8715,
prod: 8719,
sum: 8721,
minus: 8722,
lowast: 8727,
radic: 8730,
prop: 8733,
infin: 8734,
ang: 8736,
and: 8743,
or: 8744,
cap: 8745,
cup: 8746,
int: 8747,
there4: 8756,
sim: 8764,
cong: 8773,
asymp: 8776,
ne: 8800,
equiv: 8801,
le: 8804,
ge: 8805,
sub: 8834,
sup: 8835,
nsub: 8836,
sube: 8838,
supe: 8839,
oplus: 8853,
otimes: 8855,
perp: 8869,
sdot: 8901,
lceil: 8968,
rceil: 8969,
lfloor: 8970,
rfloor: 8971,
lang: 9001,
rang: 9002,
loz: 9674,
spades: 9824,
clubs: 9827,
hearts: 9829,
diams: 9830
}, Object.keys(u.ENTITIES).forEach(function(e) {
var t = u.ENTITIES[e], a = typeof t == "number" ? String.fromCharCode(t) : t;
u.ENTITIES[e] = a;
});
for (var V in u.STATE)
u.STATE[u.STATE[V]] = V;
n = u.STATE;
function O(e, t, a) {
e[t] && e[t](a);
}
function s(e, t, a) {
e.textNode && v(e), O(e, t, a);
}
function v(e) {
e.textNode = x(e.opt, e.textNode), e.textNode && O(e, "ontext", e.textNode), e.textNode = "";
}
function x(e, t) {
return e.trim && (t = t.trim()), e.normalize && (t = t.replace(/\s+/g, " ")), t;
}
function S(e, t) {
return v(e), e.trackPosition && (t += `
Line: ` + e.line + `
Column: ` + e.column + `
Char: ` + e.c), t = new Error(t), e.error = t, O(e, "onerror", t), e;
}
function Y(e) {
return e.sawRoot && !e.closedRoot && c(e, "Unclosed root tag"), e.state !== n.BEGIN && e.state !== n.BEGIN_WHITESPACE && e.state !== n.TEXT && S(e, "Unexpected end"), v(e), e.c = "", e.closed = !0, O(e, "onend"), m.call(e, e.strict, e.opt), e;
}
function c(e, t) {
if (typeof e != "object" || !(e instanceof m))
throw new Error("bad call to strictFail");
e.strict && S(e, t);
}
function at(e) {
e.strict || (e.tagName = e.tagName[e.looseCase]());
var t = e.tags[e.tags.length - 1] || e, a = e.tag = { name: e.tagName, attributes: {} };
e.opt.xmlns && (a.ns = t.ns), e.attribList.length = 0, s(e, "onopentagstart", a);
}
function L(e, t) {
var a = e.indexOf(":"), i = a < 0 ? ["", e] : e.split(":"), o = i[0], l = i[1];
return t && e === "xmlns" && (o = "xmlns", l = ""), { prefix: o, local: l };
}
function w(e) {
if (e.strict || (e.attribName = e.attribName[e.looseCase]()), e.attribList.indexOf(e.attribName) !== -1 || e.tag.attributes.hasOwnProperty(e.attribName)) {
e.attribName = e.attribValue = "";
return;
}
if (e.opt.xmlns) {
var t = L(e.attribName, !0), a = t.prefix, i = t.local;
if (a === "xmlns")
if (i === "xml" && e.attribValue !== p)
c(
e,
"xml: prefix must be bound to " + p + `
Actual: ` + e.attribValue
);
else if (i === "xmlns" && e.attribValue !== P)
c(
e,
"xmlns: prefix must be bound to " + P + `
Actual: ` + e.attribValue
);
else {
var o = e.tag, l = e.tags[e.tags.length - 1] || e;
o.ns === l.ns && (o.ns = Object.create(l.ns)), o.ns[i] = e.attribValue;
}
e.attribList.push([e.attribName, e.attribValue]);
} else
e.tag.attributes[e.attribName] = e.attribValue, s(e, "onattribute", {
name: e.attribName,
value: e.attribValue
});
e.attribName = e.attribValue = "";
}
function b(e, t) {
if (e.opt.xmlns) {
var a = e.tag, i = L(e.tagName);
a.prefix = i.prefix, a.local = i.local, a.uri = a.ns[i.prefix] || "", a.prefix && !a.uri && (c(e, "Unbound namespace prefix: " + JSON.stringify(e.tagName)), a.uri = i.prefix);
var o = e.tags[e.tags.length - 1] || e;
a.ns && o.ns !== a.ns && Object.keys(a.ns).forEach(function(W) {
s(e, "onopennamespace", {
prefix: W,
uri: a.ns[W]
});
});
for (var l = 0, r = e.attribList.length; l < r; l++) {
var _ = e.attribList[l], N = _[0], C = _[1], f = L(N, !0), I = f.prefix, ct = f.local, j = I === "" ? "" : a.ns[I] || "", U = {
name: N,
value: C,
prefix: I,
local: ct,
uri: j
};
I && I !== "xmlns" && !j && (c(e, "Unbound namespace prefix: " + JSON.stringify(I)), U.uri = I), e.tag.attributes[N] = U, s(e, "onattribute", U);
}
e.attribList.length = 0;
}
e.tag.isSelfClosing = !!t, e.sawRoot = !0, e.tags.push(e.tag), s(e, "onopentag", e.tag), t || (!e.noscript && e.tagName.toLowerCase() === "script" ? e.state = n.SCRIPT : e.state = n.TEXT, e.tag = null, e.tagName = ""), e.attribName = e.attribValue = "", e.attribList.length = 0;
}
function B(e) {
if (!e.tagName) {
c(e, "Weird empty close tag."), e.textNode += "</>", e.state = n.TEXT;
return;
}
if (e.script) {
if (e.tagName !== "script") {
e.script += "</" + e.tagName + ">", e.tagName = "", e.state = n.SCRIPT;
return;
}
s(e, "onscript", e.script), e.script = "";
}
var t = e.tags.length, a = e.tagName;
e.strict || (a = a[e.looseCase]());
for (var i = a; t--; ) {
var o = e.tags[t];
if (o.name !== i)
c(e, "Unexpected close tag");
else
break;
}
if (t < 0) {
c(e, "Unmatched closing tag: " + e.tagName), e.textNode += "</" + e.tagName + ">", e.state = n.TEXT;
return;
}
e.tagName = a;
for (var l = e.tags.length; l-- > t; ) {
var r = e.tag = e.tags.pop();
e.tagName = e.tag.name, s(e, "onclosetag", e.tagName);
var _ = {};
for (var N in r.ns)
_[N] = r.ns[N];
var C = e.tags[e.tags.length - 1] || e;
e.opt.xmlns && r.ns !== C.ns && Object.keys(r.ns).forEach(function(f) {
var I = r.ns[f];
s(e, "onclosenamespace", { prefix: f, uri: I });
});
}
t === 0 && (e.closedRoot = !0), e.tagName = e.attribValue = e.attribName = "", e.attribList.length = 0, e.state = n.TEXT;
}
function ot(e) {
var t = e.entity, a = t.toLowerCase(), i, o = "";
return e.ENTITIES[t] ? e.ENTITIES[t] : e.ENTITIES[a] ? e.ENTITIES[a] : (t = a, t.charAt(0) === "#" && (t.charAt(1) === "x" ? (t = t.slice(2), i = parseInt(t, 16), o = i.toString(16)) : (t = t.slice(1), i = parseInt(t, 10), o = i.toString(10))), t = t.replace(/^0+/, ""), isNaN(i) || o.toLowerCase() !== t ? (c(e, "Invalid character entity"), "&" + e.entity + ";") : String.fromCodePoint(i));
}
function X(e, t) {
t === "<" ? (e.state = n.OPEN_WAKA, e.startTagPosition = e.position) : T(t) || (c(e, "Non-whitespace before first tag."), e.textNode = t, e.state = n.TEXT);
}
function q(e, t) {
var a = "";
return t < e.length && (a = e.charAt(t)), a;
}
function ut(e) {
var t = this;
if (this.error)
throw this.error;
if (t.closed)
return S(
t,
"Cannot write after close. Assign an onready handler."
);
if (e === null)
return Y(t);
typeof e == "object" && (e = e.toString());
for (var a = 0, i = ""; i = q(e, a++), t.c = i, !!i; )
switch (t.trackPosition && (t.position++, i === `
` ? (t.line++, t.column = 0) : t.column++), t.state) {
case n.BEGIN:
if (t.state = n.BEGIN_WHITESPACE, i === "\uFEFF")
continue;
X(t, i);
continue;
case n.BEGIN_WHITESPACE:
X(t, i);
continue;
case n.TEXT:
if (t.sawRoot && !t.closedRoot) {
for (var o = a - 1; i && i !== "<" && i !== "&"; )
i = q(e, a++), i && t.trackPosition && (t.position++, i === `
` ? (t.line++, t.column = 0) : t.column++);
t.textNode += e.substring(o, a - 1);
}
i === "<" && !(t.sawRoot && t.closedRoot && !t.strict) ? (t.state = n.OPEN_WAKA, t.startTagPosition = t.position) : (!T(i) && (!t.sawRoot || t.closedRoot) && c(t, "Text data outside of root node."), i === "&" ? t.state = n.TEXT_ENTITY : t.textNode += i);
continue;
case n.SCRIPT:
i === "<" ? t.state = n.SCRIPT_ENDING : t.script += i;
continue;
case n.SCRIPT_ENDING:
i === "/" ? t.state = n.CLOSE_TAG : (t.script += "<" + i, t.state = n.SCRIPT);
continue;
case n.OPEN_WAKA:
if (i === "!")
t.state = n.SGML_DECL, t.sgmlDecl = "";
else if (!T(i)) if (A(h, i))
t.state = n.OPEN_TAG, t.tagName = i;
else if (i === "/")
t.state = n.CLOSE_TAG, t.tagName = "";
else if (i === "?")
t.state = n.PROC_INST, t.procInstName = t.procInstBody = "";
else {
if (c(t, "Unencoded <"), t.startTagPosition + 1 < t.position) {
var l = t.position - t.startTagPosition;
i = new Array(l).join(" ") + i;
}
t.textNode += "<" + i, t.state = n.TEXT;
}
continue;
case n.SGML_DECL:
if (t.sgmlDecl + i === "--") {
t.state = n.COMMENT, t.comment = "", t.sgmlDecl = "";
continue;
}
t.doctype && t.doctype !== !0 && t.sgmlDecl ? (t.state = n.DOCTYPE_DTD, t.doctype += "<!" + t.sgmlDecl + i, t.sgmlDecl = "") : (t.sgmlDecl + i).toUpperCase() === Z ? (s(t, "onopencdata"), t.state = n.CDATA, t.sgmlDecl = "", t.cdata = "") : (t.sgmlDecl + i).toUpperCase() === $ ? (t.state = n.DOCTYPE, (t.doctype || t.sawRoot) && c(
t,
"Inappropriately located doctype declaration"
), t.doctype = "", t.sgmlDecl = "") : i === ">" ? (s(t, "onsgmldeclaration", t.sgmlDecl), t.sgmlDecl = "", t.state = n.TEXT) : (y(i) && (t.state = n.SGML_DECL_QUOTED), t.sgmlDecl += i);
continue;
case n.SGML_DECL_QUOTED:
i === t.q && (t.state = n.SGML_DECL, t.q = ""), t.sgmlDecl += i;
continue;
case n.DOCTYPE:
i === ">" ? (t.state = n.TEXT, s(t, "ondoctype", t.doctype), t.doctype = !0) : (t.doctype += i, i === "[" ? t.state = n.DOCTYPE_DTD : y(i) && (t.state = n.DOCTYPE_QUOTED, t.q = i));
continue;
case n.DOCTYPE_QUOTED:
t.doctype += i, i === t.q && (t.q = "", t.state = n.DOCTYPE);
continue;
case n.DOCTYPE_DTD:
i === "]" ? (t.doctype += i, t.state = n.DOCTYPE) : i === "<" ? (t.state = n.OPEN_WAKA, t.startTagPosition = t.position) : y(i) ? (t.doctype += i, t.state = n.DOCTYPE_DTD_QUOTED, t.q = i) : t.doctype += i;
continue;
case n.DOCTYPE_DTD_QUOTED:
t.doctype += i, i === t.q && (t.state = n.DOCTYPE_DTD, t.q = "");
continue;
case n.COMMENT:
i === "-" ? t.state = n.COMMENT_ENDING : t.comment += i;
continue;
case n.COMMENT_ENDING:
i === "-" ? (t.state = n.COMMENT_ENDED, t.comment = x(t.opt, t.comment), t.comment && s(t, "oncomment", t.comment), t.comment = "") : (t.comment += "-" + i, t.state = n.COMMENT);
continue;
case n.COMMENT_ENDED:
i !== ">" ? (c(t, "Malformed comment"), t.comment += "--" + i, t.state = n.COMMENT) : t.doctype && t.doctype !== !0 ? t.state = n.DOCTYPE_DTD : t.state = n.TEXT;
continue;
case n.CDATA:
i === "]" ? t.state = n.CDATA_ENDING : t.cdata += i;
continue;
case n.CDATA_ENDING:
i === "]" ? t.state = n.CDATA_ENDING_2 : (t.cdata += "]" + i, t.state = n.CDATA);
continue;
case n.CDATA_ENDING_2:
i === ">" ? (t.cdata && s(t, "oncdata", t.cdata), s(t, "onclosecdata"), t.cdata = "", t.state = n.TEXT) : i === "]" ? t.cdata += "]" : (t.cdata += "]]" + i, t.state = n.CDATA);
continue;
case n.PROC_INST:
i === "?" ? t.state = n.PROC_INST_ENDING : T(i) ? t.state = n.PROC_INST_BODY : t.procInstName += i;
continue;
case n.PROC_INST_BODY:
if (!t.procInstBody && T(i))
continue;
i === "?" ? t.state = n.PROC_INST_ENDING : t.procInstBody += i;
continue;
case n.PROC_INST_ENDING:
i === ">" ? (s(t, "onprocessinginstruction", {
name: t.procInstName,
body: t.procInstBody
}), t.procInstName = t.procInstBody = "", t.state = n.TEXT) : (t.procInstBody += "?" + i, t.state = n.PROC_INST_BODY);
continue;
case n.OPEN_TAG:
A(R, i) ? t.tagName += i : (at(t), i === ">" ? b(t) : i === "/" ? t.state = n.OPEN_TAG_SLASH : (T(i) || c(t, "Invalid character in tag name"), t.state = n.ATTRIB));
continue;
case n.OPEN_TAG_SLASH:
i === ">" ? (b(t, !0), B(t)) : (c(t, "Forward-slash in opening tag not followed by >"), t.state = n.ATTRIB);
continue;
case n.ATTRIB:
if (T(i))
continue;
i === ">" ? b(t) : i === "/" ? t.state = n.OPEN_TAG_SLASH : A(h, i) ? (t.attribName = i, t.attribValue = "", t.state = n.ATTRIB_NAME) : c(t, "Invalid attribute name");
continue;
case n.ATTRIB_NAME:
i === "=" ? t.state = n.ATTRIB_VALUE : i === ">" ? (c(t, "Attribute without value"), t.attribValue = t.attribName, w(t), b(t)) : T(i) ? t.state = n.ATTRIB_NAME_SAW_WHITE : A(R, i) ? t.attribName += i : c(t, "Invalid attribute name");
continue;
case n.ATTRIB_NAME_SAW_WHITE:
if (i === "=")
t.state = n.ATTRIB_VALUE;
else {
if (T(i))
continue;
c(t, "Attribute without value"), t.tag.attributes[t.attribName] = "", t.attribValue = "", s(t, "onattribute", {
name: t.attribName,
value: ""
}), t.attribName = "", i === ">" ? b(t) : A(h, i) ? (t.attribName = i, t.state = n.ATTRIB_NAME) : (c(t, "Invalid attribute name"), t.state = n.ATTRIB);
}
continue;
case n.ATTRIB_VALUE:
if (T(i))
continue;
y(i) ? (t.q = i, t.state = n.ATTRIB_VALUE_QUOTED) : (t.opt.unquotedAttributeValues || S(t, "Unquoted attribute value"), t.state = n.ATTRIB_VALUE_UNQUOTED, t.attribValue = i);
continue;
case n.ATTRIB_VALUE_QUOTED:
if (i !== t.q) {
i === "&" ? t.state = n.ATTRIB_VALUE_ENTITY_Q : t.attribValue += i;
continue;
}
w(t), t.q = "", t.state = n.ATTRIB_VALUE_CLOSED;
continue;
case n.ATTRIB_VALUE_CLOSED:
T(i) ? t.state = n.ATTRIB : i === ">" ? b(t) : i === "/" ? t.state = n.OPEN_TAG_SLASH : A(h, i) ? (c(t, "No whitespace between attributes"), t.attribName = i, t.attribValue = "", t.state = n.ATTRIB_NAME) : c(t, "Invalid attribute name");
continue;
case n.ATTRIB_VALUE_UNQUOTED:
if (!it(i)) {
i === "&" ? t.state = n.ATTRIB_VALUE_ENTITY_U : t.attribValue += i;
continue;
}
w(t), i === ">" ? b(t) : t.state = n.ATTRIB;
continue;
case n.CLOSE_TAG:
if (t.tagName)
i === ">" ? B(t) : A(R, i) ? t.tagName += i : t.script ? (t.script += "</" + t.tagName, t.tagName = "", t.state = n.SCRIPT) : (T(i) || c(t, "Invalid tagname in closing tag"), t.state = n.CLOSE_TAG_SAW_WHITE);
else {
if (T(i))
continue;
nt(h, i) ? t.script ? (t.script += "</" + i, t.state = n.SCRIPT) : c(t, "Invalid tagname in closing tag.") : t.tagName = i;
}
continue;
case n.CLOSE_TAG_SAW_WHITE:
if (T(i))
continue;
i === ">" ? B(t) : c(t, "Invalid characters in closing tag");
continue;
case n.TEXT_ENTITY:
case n.ATTRIB_VALUE_ENTITY_Q:
case n.ATTRIB_VALUE_ENTITY_U:
var r, _;
switch (t.state) {
case n.TEXT_ENTITY:
r = n.TEXT, _ = "textNode";
break;
case n.ATTRIB_VALUE_ENTITY_Q:
r = n.ATTRIB_VALUE_QUOTED, _ = "attribValue";
break;
case n.ATTRIB_VALUE_ENTITY_U:
r = n.ATTRIB_VALUE_UNQUOTED, _ = "attribValue";
break;
}
if (i === ";") {
var N = ot(t);
t.opt.unparsedEntities && !Object.values(u.XML_ENTITIES).includes(N) ? (t.entity = "", t.state = r, t.write(N)) : (t[_] += N, t.entity = "", t.state = r);
} else A(t.entity.length ? et : tt, i) ? t.entity += i : (c(t, "Invalid character in entity name"), t[_] += "&" + t.entity + i, t.entity = "", t.state = r);
continue;
default:
throw new Error(t, "Unknown state: " + t.state);
}
return t.position >= t.bufferCheckPosition && F(t), t;
}
/*! http://mths.be/fromcodepoint v0.1.0 by @mathias */
String.fromCodePoint || function() {
var e = String.fromCharCode, t = Math.floor, a = function() {
var i = 16384, o = [], l, r, _ = -1, N = arguments.length;
if (!N)
return "";
for (var C = ""; ++_ < N; ) {
var f = Number(arguments[_]);
if (!isFinite(f) || // `NaN`, `+Infinity`, or `-Infinity`
f < 0 || // not a valid Unicode code point
f > 1114111 || // not a valid Unicode code point
t(f) !== f)
throw RangeError("Invalid code point: " + f);
f <= 65535 ? o.push(f) : (f -= 65536, l = (f >> 10) + 55296, r = f % 1024 + 56320, o.push(l, r)), (_ + 1 === N || o.length > i) && (C += e.apply(null, o), o.length = 0);
}
return C;
};
Object.defineProperty ? Object.defineProperty(String, "fromCodePoint", {
value: a,
configurable: !0,
writable: !0
}) : String.fromCodePoint = a;
}();
})(E);
}(M)), M;
}
export {
ft as g,
Tt as r
};
//# sourceMappingURL=sax-Ch9R1oO6.js.map