ecore-ts
Version:
Ecore (EMOF) TypeScript Implementation
1,730 lines • 57.3 kB
JavaScript
var Ut = Object.defineProperty;
var Nt = (e, t, n) => t in e ? Ut(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
var x = (e, t, n) => Nt(e, typeof t != "symbol" ? t + "" : t, n);
import { r as zt, g as Lt } from "./sax-Ch9R1oO6.js";
var Ct = typeof global == "object" && global && global.Object === Object && global, Vt = typeof self == "object" && self && self.Object === Object && self, me = Ct || Vt || Function("return this")(), L = me.Symbol, St = Object.prototype, Gt = St.hasOwnProperty, Ht = St.toString, ne = L ? L.toStringTag : void 0;
function Kt(e) {
var t = Gt.call(e, ne), n = e[ne];
try {
e[ne] = void 0;
var r = !0;
} catch {
}
var s = Ht.call(e);
return r && (t ? e[ne] = n : delete e[ne]), s;
}
var Xt = Object.prototype, qt = Xt.toString;
function kt(e) {
return qt.call(e);
}
var Jt = "[object Null]", Zt = "[object Undefined]", ot = L ? L.toStringTag : void 0;
function ue(e) {
return e == null ? e === void 0 ? Zt : Jt : ot && ot in Object(e) ? Kt(e) : kt(e);
}
function Y(e) {
return e != null && typeof e == "object";
}
var Wt = "[object Symbol]";
function De(e) {
return typeof e == "symbol" || Y(e) && ue(e) == Wt;
}
function vt(e, t) {
for (var n = -1, r = e == null ? 0 : e.length, s = Array(r); ++n < r; )
s[n] = t(e[n], n, e);
return s;
}
var k = Array.isArray, lt = L ? L.prototype : void 0, ct = lt ? lt.toString : void 0;
function wt(e) {
if (typeof e == "string")
return e;
if (k(e))
return vt(e, wt) + "";
if (De(e))
return ct ? ct.call(e) : "";
var t = e + "";
return t == "0" && 1 / e == -1 / 0 ? "-0" : t;
}
function ae(e) {
var t = typeof e;
return e != null && (t == "object" || t == "function");
}
function bt(e) {
return e;
}
var Yt = "[object AsyncFunction]", Qt = "[object Function]", en = "[object GeneratorFunction]", tn = "[object Proxy]";
function At(e) {
if (!ae(e))
return !1;
var t = ue(e);
return t == Qt || t == en || t == Yt || t == tn;
}
var je = me["__core-js_shared__"], ft = function() {
var e = /[^.]+$/.exec(je && je.keys && je.keys.IE_PROTO || "");
return e ? "Symbol(src)_1." + e : "";
}();
function nn(e) {
return !!ft && ft in e;
}
var rn = Function.prototype, sn = rn.toString;
function an(e) {
if (e != null) {
try {
return sn.call(e);
} catch {
}
try {
return e + "";
} catch {
}
}
return "";
}
var un = /[\\^$.*+?()[\]{}|]/g, on = /^\[object .+?Constructor\]$/, ln = Function.prototype, cn = Object.prototype, fn = ln.toString, pn = cn.hasOwnProperty, dn = RegExp(
"^" + fn.call(pn).replace(un, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
);
function hn(e) {
if (!ae(e) || nn(e))
return !1;
var t = At(e) ? dn : on;
return t.test(an(e));
}
function gn(e, t) {
return e == null ? void 0 : e[t];
}
function Ue(e, t) {
var n = gn(e, t);
return hn(n) ? n : void 0;
}
function mn(e, t, n) {
switch (n.length) {
case 0:
return e.call(t);
case 1:
return e.call(t, n[0]);
case 2:
return e.call(t, n[0], n[1]);
case 3:
return e.call(t, n[0], n[1], n[2]);
}
return e.apply(t, n);
}
var yn = 800, _n = 16, En = Date.now;
function Tn(e) {
var t = 0, n = 0;
return function() {
var r = En(), s = _n - (r - n);
if (n = r, s > 0) {
if (++t >= yn)
return arguments[0];
} else
t = 0;
return e.apply(void 0, arguments);
};
}
function Cn(e) {
return function() {
return e;
};
}
var pt = function() {
try {
var e = Ue(Object, "defineProperty");
return e({}, "", {}), e;
} catch {
}
}(), Sn = pt ? function(e, t) {
return pt(e, "toString", {
configurable: !0,
enumerable: !1,
value: Cn(t),
writable: !0
});
} : bt, vn = Tn(Sn);
function wn(e, t, n, r) {
for (var s = e.length, a = n + -1; ++a < s; )
if (t(e[a], a, e))
return a;
return -1;
}
function bn(e) {
return e !== e;
}
function An(e, t, n) {
for (var r = n - 1, s = e.length; ++r < s; )
if (e[r] === t)
return r;
return -1;
}
function On(e, t, n) {
return t === t ? An(e, t, n) : wn(e, bn, n);
}
function Fn(e, t) {
var n = e == null ? 0 : e.length;
return !!n && On(e, t, 0) > -1;
}
var Bn = 9007199254740991, xn = /^(?:0|[1-9]\d*)$/;
function Ot(e, t) {
var n = typeof e;
return t = t ?? Bn, !!t && (n == "number" || n != "symbol" && xn.test(e)) && e > -1 && e % 1 == 0 && e < t;
}
function Rn(e, t) {
return e === t || e !== e && t !== t;
}
var dt = Math.max;
function Pn(e, t, n) {
return t = dt(t === void 0 ? e.length - 1 : t, 0), function() {
for (var r = arguments, s = -1, a = dt(r.length - t, 0), i = Array(a); ++s < a; )
i[s] = r[t + s];
s = -1;
for (var o = Array(t + 1); ++s < t; )
o[s] = r[s];
return o[t] = n(i), mn(e, this, o);
};
}
function Ft(e, t) {
return vn(Pn(e, t, bt), e + "");
}
var In = 9007199254740991;
function Ne(e) {
return typeof e == "number" && e > -1 && e % 1 == 0 && e <= In;
}
function Bt(e) {
return e != null && Ne(e.length) && !At(e);
}
var jn = Object.prototype;
function $n(e) {
var t = e && e.constructor, n = typeof t == "function" && t.prototype || jn;
return e === n;
}
function Mn(e, t) {
for (var n = -1, r = Array(e); ++n < e; )
r[n] = t(n);
return r;
}
var Dn = "[object Arguments]";
function ht(e) {
return Y(e) && ue(e) == Dn;
}
var xt = Object.prototype, Un = xt.hasOwnProperty, Nn = xt.propertyIsEnumerable, ze = ht(/* @__PURE__ */ function() {
return arguments;
}()) ? ht : function(e) {
return Y(e) && Un.call(e, "callee") && !Nn.call(e, "callee");
};
function zn() {
return !1;
}
var Rt = typeof exports == "object" && exports && !exports.nodeType && exports, gt = Rt && typeof module == "object" && module && !module.nodeType && module, Ln = gt && gt.exports === Rt, mt = Ln ? me.Buffer : void 0, Vn = mt ? mt.isBuffer : void 0, Gn = Vn || zn, Hn = "[object Arguments]", Kn = "[object Array]", Xn = "[object Boolean]", qn = "[object Date]", kn = "[object Error]", Jn = "[object Function]", Zn = "[object Map]", Wn = "[object Number]", Yn = "[object Object]", Qn = "[object RegExp]", er = "[object Set]", tr = "[object String]", nr = "[object WeakMap]", rr = "[object ArrayBuffer]", sr = "[object DataView]", ar = "[object Float32Array]", ir = "[object Float64Array]", ur = "[object Int8Array]", or = "[object Int16Array]", lr = "[object Int32Array]", cr = "[object Uint8Array]", fr = "[object Uint8ClampedArray]", pr = "[object Uint16Array]", dr = "[object Uint32Array]", S = {};
S[ar] = S[ir] = S[ur] = S[or] = S[lr] = S[cr] = S[fr] = S[pr] = S[dr] = !0;
S[Hn] = S[Kn] = S[rr] = S[Xn] = S[sr] = S[qn] = S[kn] = S[Jn] = S[Zn] = S[Wn] = S[Yn] = S[Qn] = S[er] = S[tr] = S[nr] = !1;
function hr(e) {
return Y(e) && Ne(e.length) && !!S[ue(e)];
}
function gr(e) {
return function(t) {
return e(t);
};
}
var Pt = typeof exports == "object" && exports && !exports.nodeType && exports, se = Pt && typeof module == "object" && module && !module.nodeType && module, mr = se && se.exports === Pt, $e = mr && Ct.process, yt = function() {
try {
var e = se && se.require && se.require("util").types;
return e || $e && $e.binding && $e.binding("util");
} catch {
}
}(), _t = yt && yt.isTypedArray, yr = _t ? gr(_t) : hr, _r = Object.prototype, Er = _r.hasOwnProperty;
function Tr(e, t) {
var n = k(e), r = !n && ze(e), s = !n && !r && Gn(e), a = !n && !r && !s && yr(e), i = n || r || s || a, o = i ? Mn(e.length, String) : [], f = o.length;
for (var u in e)
Er.call(e, u) && !(i && // Safari 9 has enumerable `arguments.length` in strict mode.
(u == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
s && (u == "offset" || u == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
a && (u == "buffer" || u == "byteLength" || u == "byteOffset") || // Skip index properties.
Ot(u, f))) && o.push(u);
return o;
}
function Cr(e, t) {
return function(n) {
return e(t(n));
};
}
var Sr = Cr(Object.keys, Object), vr = Object.prototype, wr = vr.hasOwnProperty;
function br(e) {
if (!$n(e))
return Sr(e);
var t = [];
for (var n in Object(e))
wr.call(e, n) && n != "constructor" && t.push(n);
return t;
}
function Ar(e) {
return Bt(e) ? Tr(e) : br(e);
}
var Or = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, Fr = /^\w*$/;
function Br(e, t) {
if (k(e))
return !1;
var n = typeof e;
return n == "number" || n == "symbol" || n == "boolean" || e == null || De(e) ? !0 : Fr.test(e) || !Or.test(e) || t != null && e in Object(t);
}
var ie = Ue(Object, "create");
function xr() {
this.__data__ = ie ? ie(null) : {}, this.size = 0;
}
function Rr(e) {
var t = this.has(e) && delete this.__data__[e];
return this.size -= t ? 1 : 0, t;
}
var Pr = "__lodash_hash_undefined__", Ir = Object.prototype, jr = Ir.hasOwnProperty;
function $r(e) {
var t = this.__data__;
if (ie) {
var n = t[e];
return n === Pr ? void 0 : n;
}
return jr.call(t, e) ? t[e] : void 0;
}
var Mr = Object.prototype, Dr = Mr.hasOwnProperty;
function Ur(e) {
var t = this.__data__;
return ie ? t[e] !== void 0 : Dr.call(t, e);
}
var Nr = "__lodash_hash_undefined__";
function zr(e, t) {
var n = this.__data__;
return this.size += this.has(e) ? 0 : 1, n[e] = ie && t === void 0 ? Nr : t, this;
}
function K(e) {
var t = -1, n = e == null ? 0 : e.length;
for (this.clear(); ++t < n; ) {
var r = e[t];
this.set(r[0], r[1]);
}
}
K.prototype.clear = xr;
K.prototype.delete = Rr;
K.prototype.get = $r;
K.prototype.has = Ur;
K.prototype.set = zr;
function Lr() {
this.__data__ = [], this.size = 0;
}
function ye(e, t) {
for (var n = e.length; n--; )
if (Rn(e[n][0], t))
return n;
return -1;
}
var Vr = Array.prototype, Gr = Vr.splice;
function Hr(e) {
var t = this.__data__, n = ye(t, e);
if (n < 0)
return !1;
var r = t.length - 1;
return n == r ? t.pop() : Gr.call(t, n, 1), --this.size, !0;
}
function Kr(e) {
var t = this.__data__, n = ye(t, e);
return n < 0 ? void 0 : t[n][1];
}
function Xr(e) {
return ye(this.__data__, e) > -1;
}
function qr(e, t) {
var n = this.__data__, r = ye(n, e);
return r < 0 ? (++this.size, n.push([e, t])) : n[r][1] = t, this;
}
function Q(e) {
var t = -1, n = e == null ? 0 : e.length;
for (this.clear(); ++t < n; ) {
var r = e[t];
this.set(r[0], r[1]);
}
}
Q.prototype.clear = Lr;
Q.prototype.delete = Hr;
Q.prototype.get = Kr;
Q.prototype.has = Xr;
Q.prototype.set = qr;
var kr = Ue(me, "Map");
function Jr() {
this.size = 0, this.__data__ = {
hash: new K(),
map: new (kr || Q)(),
string: new K()
};
}
function Zr(e) {
var t = typeof e;
return t == "string" || t == "number" || t == "symbol" || t == "boolean" ? e !== "__proto__" : e === null;
}
function _e(e, t) {
var n = e.__data__;
return Zr(t) ? n[typeof t == "string" ? "string" : "hash"] : n.map;
}
function Wr(e) {
var t = _e(this, e).delete(e);
return this.size -= t ? 1 : 0, t;
}
function Yr(e) {
return _e(this, e).get(e);
}
function Qr(e) {
return _e(this, e).has(e);
}
function es(e, t) {
var n = _e(this, e), r = n.size;
return n.set(e, t), this.size += n.size == r ? 0 : 1, this;
}
function V(e) {
var t = -1, n = e == null ? 0 : e.length;
for (this.clear(); ++t < n; ) {
var r = e[t];
this.set(r[0], r[1]);
}
}
V.prototype.clear = Jr;
V.prototype.delete = Wr;
V.prototype.get = Yr;
V.prototype.has = Qr;
V.prototype.set = es;
var ts = "Expected a function";
function Le(e, t) {
if (typeof e != "function" || t != null && typeof t != "function")
throw new TypeError(ts);
var n = function() {
var r = arguments, s = t ? t.apply(this, r) : r[0], a = n.cache;
if (a.has(s))
return a.get(s);
var i = e.apply(this, r);
return n.cache = a.set(s, i) || a, i;
};
return n.cache = new (Le.Cache || V)(), n;
}
Le.Cache = V;
var ns = 500;
function rs(e) {
var t = Le(e, function(r) {
return n.size === ns && n.clear(), r;
}), n = t.cache;
return t;
}
var ss = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, as = /\\(\\)?/g, is = rs(function(e) {
var t = [];
return e.charCodeAt(0) === 46 && t.push(""), e.replace(ss, function(n, r, s, a) {
t.push(s ? a.replace(as, "$1") : r || n);
}), t;
});
function us(e) {
return e == null ? "" : wt(e);
}
function os(e, t) {
return k(e) ? e : Br(e, t) ? [e] : is(us(e));
}
function ls(e) {
if (typeof e == "string" || De(e))
return e;
var t = e + "";
return t == "0" && 1 / e == -1 / 0 ? "-0" : t;
}
function cs(e, t) {
for (var n = -1, r = t.length, s = e.length; ++n < r; )
e[s + n] = t[n];
return e;
}
var Et = L ? L.isConcatSpreadable : void 0;
function fs(e) {
return k(e) || ze(e) || !!(Et && e && e[Et]);
}
function It(e, t, n, r, s) {
var a = -1, i = e.length;
for (n || (n = fs), s || (s = []); ++a < i; ) {
var o = e[a];
n(o) ? cs(s, o) : r || (s[s.length] = o);
}
return s;
}
function ps(e) {
var t = e == null ? 0 : e.length;
return t ? It(e) : [];
}
var ds = "__lodash_hash_undefined__";
function hs(e) {
return this.__data__.set(e, ds), this;
}
function gs(e) {
return this.__data__.has(e);
}
function ge(e) {
var t = -1, n = e == null ? 0 : e.length;
for (this.__data__ = new V(); ++t < n; )
this.add(e[t]);
}
ge.prototype.add = ge.prototype.push = hs;
ge.prototype.has = gs;
function ms(e, t) {
return e.has(t);
}
function ys(e, t, n) {
t = os(t, e);
for (var r = -1, s = t.length, a = !1; ++r < s; ) {
var i = ls(t[r]);
if (!(a = e != null && n(e, i)))
break;
e = e[i];
}
return a || ++r != s ? a : (s = e == null ? 0 : e.length, !!s && Ne(s) && Ot(i, s) && (k(e) || ze(e)));
}
function Me(e) {
return Y(e) && Bt(e);
}
var _s = 200;
function jt(e, t, n, r) {
var s = -1, a = Fn, i = !0, o = e.length, f = [], u = t.length;
if (!o)
return f;
t.length >= _s && (a = ms, i = !1, t = new ge(t));
e:
for (; ++s < o; ) {
var l = e[s], d = l;
if (l = l !== 0 ? l : 0, i && d === d) {
for (var p = u; p--; )
if (t[p] === d)
continue e;
f.push(l);
} else a(t, d, r) || f.push(l);
}
return f;
}
var Es = Ft(function(e, t) {
return Me(e) ? jt(e, It(t, 1, Me, !0)) : [];
}), Ts = Object.prototype, Cs = Ts.hasOwnProperty;
function Ss(e, t) {
return e != null && Cs.call(e, t);
}
function vs(e, t) {
return e != null && ys(e, t, Ss);
}
var ws = "[object String]";
function bs(e) {
return typeof e == "string" || !k(e) && Y(e) && ue(e) == ws;
}
function As(e, t) {
return vt(t, function(n) {
return e[n];
});
}
function Os(e) {
return e == null ? [] : As(e, Ar(e));
}
function Fs(e) {
return e === void 0;
}
var Bs = Ft(function(e, t) {
return Me(e) ? jt(e, t) : [];
});
function Ee(e, t) {
let n, r;
if (t ? (n = t, n.eClass = t.eClass || e) : e instanceof m ? (n = {}, n.eClass = e) : n = e, !n.eClass || n.eClass.get("abstract"))
throw new Error("Cannot create EObject from undefined or abstract EClass");
return r = new m(n), r;
}
class m {
constructor(t = {}) {
// @ts-ignore
x(this, "_");
x(this, "eClass");
x(this, "values");
x(this, "_callbacks");
x(this, "eContainingFeature");
x(this, "eContainer");
x(this, "__updateContents");
x(this, "__eContents");
x(this, "_id");
// @ts-ignore
x(this, "Registry");
this.eClass = t.eClass, this.values = {}, t._ && (this._ = t._), xs(this), Rs(this, t), this.initOperations(this);
}
// @ts-ignore
getEStructuralFeature(t) {
}
on(t, n, r) {
let s, a, i;
if (!n) return this;
let o = t.split(/\s+/);
for (s = this._callbacks || (this._callbacks = {}); a = o.shift(); )
i = s[a] || (s[a] = []), i.push(n, r);
return this;
}
off(t, n, r) {
let s, a, i, o;
if (!(a = this._callbacks)) return this;
if (!(t || n || r))
return delete this._callbacks, this;
let f = t ? t.split(/\s+/) : Object.keys(a);
for (; s = f.shift(); ) {
if (!(i = a[s]) || !(n || r)) {
delete a[s];
continue;
}
for (o = i.length - 2; o >= 0; o -= 2)
n && i[o] !== n || r && i[o + 1] !== r || i.splice(o, 2);
}
return this;
}
trigger(t, ...n) {
let r, s, a, i, o, f, u;
if (!(s = this._callbacks)) return this;
let l = t.split(/\s+/);
for (i = 1, o = arguments.length; i < o; i++)
n[i - 1] = arguments[i];
for (; r = l.shift(); ) {
if ((u = s.all) && (u = u.slice()), (a = s[r]) && (a = a.slice()), a)
for (i = 0, o = a.length; i < o; i += 2)
a[i].apply(a[i + 1] || this, n);
if (u)
for (f = [r].concat(n), i = 0, o = u.length; i < o; i += 2)
u[i].apply(u[i + 1] || this, f);
}
return this;
}
initOperations(t) {
if (!t || !t.eClass) return;
function n(s) {
const a = s.get("eOperations").array(), i = s.get("eAllSuperTypes");
return Array.from(
new Set(
[
a || [],
(i || []).map((o) => n(o)).flat()
].flat()
)
);
}
const r = n(this.eClass);
r && r.forEach((s) => {
this[s.get("name")] = s._;
});
}
create(t) {
if (this.eClass.get("name") === "EClass")
return Ee(this, t);
}
has(t) {
var n;
return ((n = this.values) == null ? void 0 : n.hasOwnProperty(t)) || re(this.eClass, t);
}
isSet(t) {
if (!this.has(t) || !this.eClass) return !1;
const r = this.get(t);
return r instanceof z ? r.size() > 0 : r !== null && typeof r < "u";
}
set(t, n) {
let r, s, a, i;
if (t === null) return this;
t.eClass && (t = t.get("name")), ae(t) || (s = t, (t = {})[s] = n);
const o = this.eResource();
for (r in t)
if (a = t[r], typeof a < "u" && this.has(r)) {
this.isSet(r) && this.unset(r);
const f = re(this.eClass, r), u = f.get("containment");
r === "containment" && typeof a == "string" && this.eClass.values.name === "EReference" && (a = a.toLowerCase() === "true"), this.values[r] = a, u && (a.eContainingFeature = f, a.eContainer = this), i = "change:" + r, this.trigger("change " + i, r), o && o.trigger("change", this);
}
return this;
}
unset(t, n) {
let r, s, a;
if (t === null) return this;
t.eClass && (t = t.get("name")), ae(t) || (s = t, (t = {})[s] = void 0);
const i = this.eResource();
for (r in t)
if (this.has(r) && this.isSet(r)) {
const o = re(this.eClass, r), f = !!o.get("containment"), u = this.values[r];
f && (u.eContainingFeature = void 0, u.eContainer = void 0), this.values[r] = void 0, a = "unset:" + r, this.trigger("unset " + a, r), i && i.trigger("change", this);
}
return this;
}
get(t) {
if (!t) return null;
const n = t.eClass ? t.get("name") : t;
!vs(this.values, n) && this.has(n) && $t(this, re(this.eClass, n));
const r = this.values[n];
return typeof r == "function" ? r.apply(this) : r;
}
isTypeOf(t) {
if (!t || !this.eClass) return !1;
const n = t.eClass ? t.get("name") : t;
return this.eClass.get("name") === n;
}
isKindOf(t) {
if (!t || !this.eClass) return !1;
if (this.isTypeOf(t)) return !0;
const n = t.eClass ? t.get("name") : t;
return this.eClass.get("eAllSuperTypes").some((s) => s.get("name") === n);
}
eResource() {
return this.isKindOf("Resource") ? this : this.eContainer ? this.eContainer.isKindOf("Resource") ? this.eContainer : this.eContainer.eResource() : null;
}
eContents() {
if (!this.eClass) return [];
if (this.__updateContents === void 0) {
this.__updateContents = !0;
const t = this.eResource();
t && t.on("add remove", () => {
this.__updateContents = !0;
});
}
if (this.__updateContents) {
const n = this.eClass.get("eAllStructuralFeatures").filter((s) => s.isTypeOf("EReference") && s.get("containment") && this.isSet(s.get("name")), this);
let r = null;
this.__eContents = n.map((s) => (r = this.get(s.get("name")), r ? r.array ? r.array() : r : [])).flat(), this.__updateContents = !1;
}
return this.__eContents;
}
eURI() {
const t = this.eResource();
return (t ? t.get("uri") : "") + "#" + this.fragment();
}
fragment() {
let t = this.eContainer, n = this.eClass, r = n.get("eIDAttribute"), s, a, i = null;
return t ? r ? this.get(r.get("name")) : this._id ? this._id : this.isKindOf("EModelElement") ? t ? t.isKindOf("Resource") ? (a = t.get("contents"), a.size() > 1 ? "/" + a.indexOf(this) : "/") : t.fragment() + "/" + this.get("name") : "/" : (t.isKindOf("Resource") ? (a = t.get("contents"), i = a.size() > 1 ? "/" + a.indexOf(this) : "/") : (s = this.eContainingFeature, s && (i = t.fragment() + "/@" + s.get("name"), s.get("upperBound") !== 1 && (i += "." + t.get(s.get("name")).indexOf(this)))), i) : null;
}
}
function xs(e) {
const t = e.eClass;
if (!t) return;
t.get("eAllStructuralFeatures").forEach((r) => {
$t(e, r);
});
}
function $t(e, t) {
if (!e || !t) return;
const n = t.get("name"), r = t.values.defaultValue, s = t.get("upperBound"), a = t.values.derived === !0, i = e.values[n], o = () => {
let f;
return r == null ? f = null : r === 0 ? f = 0 : r === !1 ? f = !1 : f = r, f;
};
i == null && (a ? e.values[n] = t.values._ : s === 1 || !s ? e.values[n] = o() : i instanceof z ? i._setFeature(t) : t.isTypeOf("EAttribute") ? e.values[n] = [] : e.values[n] = new z(e, t));
}
function re(e, t) {
return e.get("eAllStructuralFeatures").find((n) => n.values.name === t);
}
function Rs(e, t) {
if (!e.eClass) return;
const n = (a, i) => typeof i == "function" || i instanceof m ? i : Ee(a, i), r = (a, i, o, f) => {
o ? e.set(a, n(f, i)) : e.set(a, i);
}, s = (a, i, o, f) => {
(Array.isArray(i) ? i : [i]).forEach((l) => {
o ? e.get(a).add(n(f, l)) : e.get(a).push(l);
});
};
Object.entries(t).forEach(([a, i]) => {
const o = re(e.eClass, a);
o && i !== void 0 && (o.get("upperBound") === 1 ? r(
a,
i,
o.eClass === g,
o.get("eType")
) : s(
a,
i,
o.eClass === g,
o.get("eType")
));
});
}
class z {
constructor(t, n) {
x(this, "_internal", []);
x(this, "_owner");
x(this, "_size", 0);
x(this, "_feature");
x(this, "_isContainment", !1);
this._internal = [], this._owner = t, this._size = 0, this._setFeature(n);
}
get length() {
return this._size;
}
_setFeature(t) {
t && (this._feature = t, this._isContainment = this._feature.get("containment"), this._internal.forEach((n) => {
this._isContainment && (n.eContainer = this._owner, n.eContainingFeature = this._feature);
}, this));
}
add(t) {
if (!t || !(t instanceof m)) return this;
this._isContainment && (t.eContainingFeature = this._feature, t.eContainer = this._owner), this._size++, this._internal.push(t);
let n = this._owner.eResource(), r = "add";
return this._feature && (r += ":" + this._feature.get("name")), this._owner.trigger(r, t), n && n.trigger("add", this), this;
}
push(t) {
this.add(t);
}
addAll() {
return Array.from(arguments || []).flat().forEach((t) => {
this.add(t);
}), this;
}
remove(t) {
let n = "remove", r = this._owner.eResource();
return this._internal = Bs(this._internal, t), this._size = this._size - 1, this._feature && (n += ":" + this._feature.get("name")), this._owner.trigger(n, t), r && r.trigger("remove", this), this;
}
clear() {
const t = this.array();
for (let n = 0; n < t.length; n++)
this.remove(t[n]);
return this;
}
size() {
return this._size;
}
at(t) {
if (this._size < t)
throw new Error("Index Out Of Range");
return this._internal[t];
}
array() {
return this._internal;
}
forEach(t) {
this._internal.forEach(t);
}
first() {
return this._internal[0];
}
last() {
return this._internal[this._internal.length - 1];
}
each(t) {
return this._internal.forEach(t);
}
filter(t) {
return this._internal.filter(t);
}
find(t) {
return this._internal.find(t);
}
map(t) {
return this._internal.map(t);
}
contains(t) {
return this._internal.includes(t);
}
includes(t) {
return this.contains(t);
}
indexOf(t) {
return this._internal.indexOf(t);
}
}
const h = new m(), P = new m(), ee = new m(), B = new m(), Ve = new m(), Ge = new m(), He = new m(), Ke = new m(), Xe = new m(), qe = new m(), ke = new m(), X = new m(), Je = new m(), Ze = new m(), oe = new m(), le = new m(), ce = new m();
h.eClass = h;
h.values = {
name: "EClass",
abstract: !1,
interface: !1,
eStructuralFeatures: new z(h),
eOperations: new z(h),
eSuperTypes: new z(h),
// Derived Features
eAllSuperTypes() {
if (!this._eAllSuperTypes) {
const e = (t) => {
const n = t.get("eSuperTypes").array(), r = n.map((s) => s.get("eAllSuperTypes")).flat();
return Array.from(new Set([r, n].flat()));
};
this.on("add:eSuperTypes remove:eSuperTypes", () => {
this._eAllSuperTypes = e(this);
}), this._eAllSuperTypes = e(this);
}
return this._eAllSuperTypes;
},
eAllSubTypes() {
let e, t, n;
return n = this.eResource().get("resourceSet"), n ? e = n.elements("EClass") : e = I.Registry.elements("EClass"), t = e.filter((r) => r.get("eAllSuperTypes").includes(this)), Array.isArray(t) ? t : [];
},
eReferences() {
let e, t;
return e = this.get("eStructuralFeatures"), t = e.filter((n) => n.isTypeOf("EReference")), t;
},
eAttributes() {
let e, t;
return e = this.get("eStructuralFeatures"), t = e.filter((n) => n.isTypeOf("EAttribute")), t;
},
eIDAttribute() {
let e, t;
return e = this.get("eAllAttributes"), t = e.filter((n) => n.get("iD") === !0), Array.isArray(t) ? t[0] : null;
},
eAllStructuralFeatures() {
return ((t) => {
let n, r, s;
return s = t.get("eAllSuperTypes"), r = t.values.eStructuralFeatures.array(), n = (s || []).map((a) => a.values.eStructuralFeatures.array()).flat(), Array.from(
new Set([n || [], r || []].flat())
);
})(this);
},
eAllAttributes() {
return (this.get("eAllStructuralFeatures") || []).filter(
(n) => n.eClass === E
);
},
eAllContainments() {
return this.get("eAllStructuralFeatures").filter(
(n) => n.eClass === g && n.get("containment")
);
},
eAllReferences() {
return this.get("eAllStructuralFeatures").filter(
(n) => n.eClass === g && !n.get("containment")
);
}
};
Je.values = {
name: "abstract",
lowerBound: 0,
upperBound: 1,
defaultValueLiteral: "false",
defaultValue: !1,
eType: B
};
Ze.values = {
name: "interface",
lowerBound: 0,
upperBound: 1,
defaultValueLiteral: "false",
defaultValue: !1,
eType: B
};
oe.values = {
name: "eStructuralFeatures",
lowerBound: 0,
upperBound: -1,
containment: !0
};
ce.values = {
name: "eSuperTypes",
lowerBound: 0,
upperBound: -1,
containment: !1
};
le.values = {
name: "eOperations",
lowerBound: 0,
upperBound: -1,
containment: !0
};
h.get("eStructuralFeatures").add(Je).add(Ze).add(ce).add(oe).add(le);
const Te = new m();
Te.values = {
name: "eAllStructuralFeatures",
lowerBound: 0,
upperBound: -1,
derived: !0,
containment: !1,
_: h.values.eAllStructuralFeatures
};
const Ce = new m();
Ce.values = {
name: "eAllSuperTypes",
lowerBound: 0,
upperBound: -1,
derived: !0,
containment: !1,
_: h.values.eAllSuperTypes
};
const Se = new m();
Se.values = {
name: "eAllSubTypes",
lowerBound: 0,
upperBound: -1,
derived: !0,
containment: !1,
_: h.values.eAllSubTypes
};
const ve = new m();
ve.values = {
name: "eAllAttributes",
lowerBound: 0,
upperBound: -1,
derived: !0,
containment: !1,
_: h.values.eAllAttributes
};
const we = new m();
we.values = {
name: "eAllContainments",
lowerBound: 0,
upperBound: -1,
derived: !0,
containment: !1,
_: h.values.eAllContainments
};
const be = new m();
be.values = {
name: "eAllReferences",
lowerBound: 0,
upperBound: -1,
derived: !0,
containment: !1,
_: h.values.eAllReferences
};
const Ae = new m();
Ae.values = {
name: "eReferences",
lowerBound: 0,
upperBound: -1,
derived: !0,
containment: !1,
_: h.values.eReferences
};
const Oe = new m();
Oe.values = {
name: "eAttributes",
lowerBound: 0,
upperBound: -1,
derived: !0,
containment: !1,
_: h.values.eAttributes
};
const Fe = new m();
Fe.values = {
name: "eIDAttribute",
lowerBound: 0,
upperBound: 1,
derived: !0,
containment: !1,
_: h.values.eIDAttribute
};
h.get("eStructuralFeatures").add(Te).add(Ce).add(Se).add(ve).add(be).add(we).add(Oe).add(Ae).add(Fe);
h.getEStructuralFeature = function(e) {
let t;
return t = e.eClass ? e.get("name") : e, this.get("eAllStructuralFeatures").find((n) => n.get("name") === t);
};
const fe = new m();
fe.values = {
name: "getEStructuralFeature",
lowerBound: 0,
upperBound: 1,
eParameters: new z(void 0)
};
fe._ = h.getEStructuralFeature;
h.get("eOperations").add(fe);
h.values.eStructuralFeatures._setFeature(oe);
h.values.eSuperTypes._setFeature(ce);
h.values.eOperations._setFeature(le);
const Be = h.create(), te = h.create(), q = h.create(), M = h.create(), I = h.create(), D = h.create(), F = h.create(), xe = h.create(), G = h.create(), U = h.create(), E = h.create(), g = h.create(), v = h.create(), Re = h.create(), pe = h.create(), j = h.create(), J = h.create();
Je.eClass = E;
Ze.eClass = E;
oe.eClass = g;
oe.values.eType = U;
ce.eClass = g;
ce.values.eType = h;
le.eClass = g;
le.values.eType = v;
Te.eClass = g;
Te.values.eType = U;
Ce.eClass = g;
Ce.values.eType = h;
Se.eClass = g;
Se.values.eType = h;
ve.eClass = g;
ve.values.eType = E;
be.eClass = g;
be.values.eType = g;
we.eClass = g;
we.values.eType = g;
Oe.eClass = g;
Oe.values.eType = E;
Ae.eClass = g;
Ae.values.eType = g;
Fe.eClass = g;
Fe.values.eType = E;
fe.eClass = v;
fe.values.eType = U;
te.get("eSuperTypes").add(Be);
q.get("eSuperTypes").add(te);
M.get("eSuperTypes").add(te);
I.get("eSuperTypes").add(M);
D.get("eSuperTypes").add(M);
h.get("eSuperTypes").add(D);
F.get("eSuperTypes").add(D);
xe.get("eSuperTypes").add(F);
pe.get("eSuperTypes").add(M);
G.get("eSuperTypes").add(M);
U.get("eSuperTypes").add(G);
E.get("eSuperTypes").add(U);
g.get("eSuperTypes").add(U);
v.get("eSuperTypes").add(G);
Re.get("eSuperTypes").add(G);
J.get("eSuperTypes").add(M);
j.get("eSuperTypes").add(Be);
const We = new m(), Ye = new m(), Qe = new m(), et = new m(), tt = new m(), nt = new m(), rt = new m();
We.eClass = g;
We.values = {
name: "eType",
lowerBound: 0,
upperBound: 1,
containment: !1,
eType: D
};
Ye.eClass = E;
Ye.values = {
name: "ordered",
lowerBound: 0,
upperBound: 1,
defaultValueLiteral: "true",
defaultValue: !0,
eType: B
};
Qe.eClass = E;
Qe.values = {
name: "unique",
lowerBound: 0,
upperBound: 1,
defaultValueLiteral: "true",
defaultValue: !0,
eType: B
};
et.eClass = E;
et.values = {
name: "lowerBound",
lowerBound: 0,
upperBound: 1,
defaultValueLiteral: "0",
defaultValue: 0,
eType: ee
};
tt.eClass = E;
tt.values = {
name: "upperBound",
lowerBound: 0,
upperBound: 1,
defaultValueLiteral: "1",
defaultValue: 1,
eType: ee
};
nt.eClass = E;
nt.values = {
name: "many",
lowerBound: 0,
upperBound: 1,
eType: B,
derived: !0,
_: function() {
return this.get("upperBound") !== 1;
}
};
rt.eClass = E;
rt.values = {
name: "required",
lowerBound: 0,
upperBound: 1,
eType: B,
derived: !0,
_: function() {
return this.get("lowerBound") === 1;
}
};
G.get("eStructuralFeatures").add(We).add(Ye).add(Qe).add(et).add(tt).add(nt).add(rt);
const st = new m();
st.eClass = g;
st.values = {
name: "eAnnotations",
eType: q,
lowerBound: 0,
upperBound: -1,
containment: !0
};
te.get("eStructuralFeatures").add(
st
);
const at = new m();
at.eClass = E;
at.values = {
name: "name",
lowerBound: 0,
upperBound: 1,
eType: P
};
M.get("eStructuralFeatures").add(at);
const Ps = E.create({
name: "changeable",
eType: B
}), Is = E.create({
name: "volatile",
eType: B
}), js = E.create({
name: "transient",
eType: B
}), $s = E.create({
name: "defaultValueLiteral",
eType: P
}), Mt = E.create({
name: "defaultValue",
eType: X,
derived: !0
}), Ms = E.create({
name: "unsettable",
eType: B
}), Ds = E.create({
name: "derived",
eType: B
});
U.get("eStructuralFeatures").add(Ps).add(Is).add(js).add($s).add(Mt).add(Ms).add(Ds);
Mt.set({ derived: !0 });
const Us = E.create({
name: "containment",
eType: B
}), Ns = E.create({
name: "container",
eType: B
}), zs = E.create({
name: "resolveProxies",
eType: B
}), Ls = g.create({
name: "eOpposite",
eType: g
});
g.get("eStructuralFeatures").add(Us).add(Ns).add(zs).add(Ls);
const Vs = E.create({ name: "iD", eType: B });
E.get("eStructuralFeatures").add(Vs);
Be.set({ name: "EObject" });
te.set({ name: "EModelElement", abstract: !0 });
q.set({ name: "EAnnotation" });
M.set({ name: "ENamedElement", abstract: !0 });
I.set({ name: "EPackage" });
D.set({ name: "EClassifier", abstract: !0 });
F.set({ name: "EDataType" });
xe.set({ name: "EEnum" });
G.set({ name: "ETypedElement", abstract: !0 });
U.set({ name: "EStructuralFeature", abstract: !0 });
E.set({ name: "EAttribute" });
g.set({ name: "EReference" });
v.set({ name: "EOperation" });
Re.set({ name: "EParameter" });
pe.set({ name: "EEnumLiteral" });
J.set({ name: "ETypeParameter" });
j.set({ name: "EGenericType" });
const Gs = g.create({
name: "eParameters",
eType: Re,
containment: !0,
lowerBound: 0,
upperBound: -1
});
v.get("eStructuralFeatures").add(Gs);
const Hs = g.create({
name: "eLiterals",
eType: pe,
containment: !0,
lowerBound: 0,
upperBound: -1
});
xe.get("eStructuralFeatures").add(Hs);
pe.get("eStructuralFeatures").add(E.create({ name: "literal", eType: P })).add(E.create({ name: "value", eType: ee }));
const Pe = h.create({
name: "EStringToStringMapEntry"
}), Ks = E.create({
name: "key",
lowerBound: 0,
upperBound: 1,
eType: P
}), Xs = E.create({
name: "value",
lowerBound: 0,
upperBound: 1,
eType: P
});
Pe.get("eStructuralFeatures").add(Ks).add(Xs);
const qs = E.create({
name: "source",
upperBound: 1,
lowerBound: 0,
eType: P
}), ks = g.create({
name: "details",
upperBound: -1,
lowerBound: 0,
containment: !0,
eType: Pe
});
q.get("eStructuralFeatures").add(qs).add(ks);
const Js = g.create({
name: "eTypeParameter",
eType: J,
containment: !1,
lowerBound: 0,
upperBound: 1
}), Zs = g.create({
name: "eUpperBound",
containment: !0,
eType: j
}), Ws = g.create({
name: "eLowerBound",
containment: !0,
eType: j
}), Ys = g.create({
name: "eTypeArguments",
containment: !0,
upperBound: -1,
eType: j
}), Qs = g.create({
name: "eClassifier",
eType: D
});
j.get("eStructuralFeatures").add(Js).add(Zs).add(Ws).add(Ys).add(Qs);
const ea = g.create({
name: "eGenericType",
upperBound: 1,
containment: !0,
eType: j
});
G.get("eStructuralFeatures").add(
ea
);
const ta = g.create({
name: "eGenericSuperTypes",
upperBound: -1,
containment: !0,
eType: j
});
h.get("eStructuralFeatures").add(ta);
const na = g.create({
name: "eGenericExceptions",
upperBound: -1,
containment: !0,
eType: j
});
v.get("eStructuralFeatures").add(
na
);
const ra = g.create({
name: "eBounds",
containment: !0,
upperBound: -1,
eType: j
}), sa = g.create({
name: "eGenericTypes",
containment: !1,
upperBound: -1,
eType: j
});
J.get("eStructuralFeatures").add(ra).add(sa);
const aa = g.create({
name: "eTypeParameters",
upperBound: -1,
containment: !0,
eType: J
});
D.get("eStructuralFeatures").add(aa);
const ia = g.create({
name: "eTypeParameters",
upperBound: -1,
containment: !0,
eType: J
});
v.get("eStructuralFeatures").add(ia);
P.eClass = F;
P.set({ name: "EString" });
ee.eClass = F;
ee.set({ name: "EInt" });
B.eClass = F;
B.set({ name: "EBoolean" });
Ge.eClass = F;
Ge.set({ name: "EDate" });
Ve.eClass = F;
Ve.set({ name: "EDouble" });
He.eClass = F;
He.set({ name: "EIntegerObject" });
Ke.eClass = F;
Ke.set({ name: "EFloatObject" });
Xe.eClass = F;
Xe.set({ name: "ELongObject" });
qe.eClass = F;
qe.set({ name: "EMap" });
ke.eClass = F;
ke.set({ name: "EDiagnosticChain" });
X.eClass = F;
X.set({ name: "JSObject" });
const ua = F.create({
name: "ELong"
}), oa = F.create({
name: "EFloat"
}), la = F.create({
name: "EShort"
}), ca = F.create({
name: "EDoubleObject"
}), fa = g.create({
name: "eClassifiers",
lowerBound: 0,
upperBound: -1,
containment: !0,
eType: D
}), pa = g.create({
name: "eSubPackages",
lowerBound: 0,
upperBound: -1,
containment: !0,
eType: I
});
I.get("eStructuralFeatures").add(E.create({ name: "nsURI", eType: P })).add(E.create({ name: "nsPrefix", eType: P })).add(fa).add(pa);
const Ie = I.create({
name: "ecore",
nsPrefix: "ecore",
nsURI: "http://www.eclipse.org/emf/2002/Ecore"
});
Ie.get("eClassifiers").add(Be).add(te).add(q).add(M).add(I).add(D).add(h).add(F).add(G).add(U).add(E).add(g).add(v).add(Re).add(xe).add(pe).add(J).add(j).add(Pe).add(P).add(B).add(ee).add(Ve).add(He).add(Ke).add(Xe).add(qe).add(ke).add(Ge).add(la).add(oa).add(ua).add(ca).add(X);
I.Registry = {
_ePackages: {},
getEPackage(e) {
return this._ePackages[e];
},
register(e) {
if (!e.isSet("nsURI"))
throw new Error("Cannot register EPackage without nsURI");
e.get("eSubPackages").each((t) => {
this.register(t);
}), this._ePackages[e.get("nsURI")] = e;
},
ePackages() {
return Object.values(this._ePackages);
},
elements(e) {
const t = (i) => e ? e.eClass ? i.eClass === e : i.eClass.get("name") === e : !0, n = this.ePackages(), r = (i) => i.eContents().map((o) => [o, r(o)]), s = (i) => r(i);
let a = [n, n.map(s)];
return a = a.flat(1 / 0), a = a.filter(t), a;
}
};
I.Registry.register(Ie);
var da = zt();
const Tt = /* @__PURE__ */ Lt(da), ha = {
dataType: "xml",
contentType: "application/xml",
parse(e, t) {
if (!Tt) throw new Error("Sax is missing.");
const n = Tt.parser(!0), r = e.get("resourceSet") || de.create(), s = [];
function a(c) {
c && Object.entries(c).forEach(([y, _]) => {
if (y.indexOf(":") !== -1) {
const C = y.split(":");
C[0] === "xmlns" && s.push({ prefix: C[1], uri: _ });
}
});
}
function i(c) {
const y = s.find((_) => _.prefix === c);
return y ? y.uri : null;
}
function o(c) {
return f(c.name);
}
function f(c) {
return c.indexOf(":") !== -1;
}
function u(c) {
const y = c.split(":"), _ = y[0], C = y[1];
return i(_) + "#//" + C;
}
function l(c) {
let y;
if (c.parent && c.parent.eObject) {
let _ = p.parent.eObject, C = c.name, O = _.eClass.getEStructuralFeature(C), R;
if (O && O.get) {
R = O.get("eType");
const w = c.attributes["xsi:type"];
w ? y = r.getEObject(u(w)) : y = R;
}
}
return y;
}
function d(c) {
return o(c) ? r.getEObject(u(c.name)) : l(c);
}
let p, T, b = [];
n.ontext = (c) => {
p && p.waitingForAttributeText && p.parent.eObject.set(p.name, c);
}, n.onopentag = (c) => {
let y, _, C, O;
if (a(c.attributes), c.children = [], c.parent = p, c.parent && c.parent.children.push(c), p = c, y = d(c), y) {
if (p.parent && p.parent.eObject && p.parent.eObject.eClass.getEStructuralFeature(c.name).isTypeOf("EAttribute"))
c.waitingForAttributeText = !0;
else if (_ = p.eObject = Ee(y), T || (T = _), Object.entries(c.attributes).forEach(([w, N]) => {
_.has(w) && (C = _.eClass.getEStructuralFeature(w), C.isTypeOf("EAttribute") ? _.set(w, N) : b.push({
parent: _,
feature: C,
value: N
})), w === "xmi:id" && (_._id = N);
}), c.parent)
if (O = c.parent.eObject, O && O.has(c.name))
if (C = O.eClass.getEStructuralFeature(c.name), C.get("containment"))
C.get("upperBound") === 1 ? O.set(c.name, _) : O.get(c.name).add(_);
else {
const w = c.attributes, N = w ? w.href : null;
N && b.push({
parent: O,
feature: C,
value: N
});
}
else
T && T !== _ && (e.add(T), T = _);
} else if (y === void 0)
throw new Error(c.name + " has undefined/invalid eClass.");
}, n.onclosetag = (c) => {
let y;
p && p.parent && (y = p.parent, delete p.parent, p = y);
};
function A() {
const c = e._index();
function y(C) {
return C.substring(0, 1) === "/";
}
function _(C, O, R) {
let w = R.split(/\s/), N = O.get("upperBound") !== 1, H;
w[0] === "ecore:EDataType" && w.shift(), w.forEach(($) => {
if ($[0] === "#" && ($ = $.substring(1, $.length)), y($) ? H = c[$] : (H = r.getEObject($), H === null && console.log("Warning: " + $ + " is an unresolved reference")), H)
N ? C.get(O.get("name")).add(H) : C.set(O.get("name"), H);
else if (H === void 0)
throw new Error("Undefined reference: " + $);
});
}
b.forEach((C) => {
const O = C.parent, R = C.feature, w = C.value;
_(O, R, w);
});
}
n.write(t).close(), e.add(T), A();
},
to: (e, t) => {
let n = "", r = e.get("contents").array(), s, a, i = W.getEStructuralFeature("contents");
function o(u) {
const l = {
"&": "&",
"<": "<",
">": ">",
'"': """,
"'": "'"
};
return u.replace(/[&<>"']/g, (d) => l[d]);
}
function f(u, l) {
n += "<";
let d;
u.eContainingFeature && u.eContainingFeature !== i ? d = u.eContainingFeature.get("name") : d = s + ":" + u.eClass.get("name"), n += d, u.eContainer.isKindOf("Resource") ? l && (n += ' xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"', n += ' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"', n += " xmlns:" + s + '="' + a + '"') : u.eContainingFeature.get("eType") !== u.eClass && (n += ' xsi:type="', n += s + ":" + u.eClass.get("name") + '"');
const p = u.eClass.get("eAllStructuralFeatures"), T = p.filter(
(c) => !c.get("derived") && c.isTypeOf("EAttribute") && u.isSet(c.get("name"))
), b = p.filter(
(c) => !c.get("derived") && c.isTypeOf("EReference") && !c.get("containment") && u.isSet(c.get("name"))
);
u._id && (n += ' xmi:id="' + u._id + '"'), T.forEach((c) => {
const y = c.get("name"), _ = u.get(y);
_ !== void 0 && _ !== "false" && (n += " " + y + '="', typeof _ == "string" ? n += o(_) : n += _, n += '"');
});
const A = [];
return b.forEach((c) => {
const y = u.get(c.get("name")), _ = y instanceof z ? y.array() : y ? [y] : [], C = _.filter(
(w) => w.eResource() !== u.eResource()
);
C.length && A.push({ feature: c, refs: C });
const R = Es(_, C).map((w) => w.fragment());
R.length && (n += " " + c.get("name") + '="' + R.join(" ") + '"');
}), u.eContents().length === 0 && A.length === 0 ? n += "/>" : (n += ">", A.forEach((y) => {
let _ = y.feature, C = y.refs, O = _.get("eType").get("abstract"), R;
C.forEach((w) => {
n += "<" + _.get("name"), O && (R = w.eClass.eContainer.get("nsPrefix"), n += ' xsi:type="' + (R ? R + ":" : "") + w.eClass.get("name") + '"'), n += ' href="' + w.eURI() + '" />';
});
}), p.filter(
(y) => y.isTypeOf("EReference") && y.get("containment") && u.isSet(y.get("name"))
).forEach((y) => {
const _ = u.get(y.get("name"));
y.get("upperBound") !== 1 ? _.each((C) => {
f(C);
}) : f(_);
}), n += "</" + d + ">"), n;
}
if (r.length === 1)
s = r[0].eClass.eContainer.get("nsPrefix"), a = r[0].eClass.eContainer.get("nsURI"), f(r[0], !0);
else {
const u = {};
for (const d in r)
s = r[d].eClass.eContainer.get("nsPrefix"), a = r[d].eClass.eContainer.get("nsURI"), u[s] = a, f(r[d]);
let l = "";
for (const d in u)
l += " xmlns:" + d + '="' + u[d] + '"';
n = '<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' + l + ">" + n + "</xmi:XMI>";
}
return n = t ? ga(n) : n, n = `<?xml version="1.0" encoding="UTF-8"?>
` + n, n;
}
};
function ga(e) {
const t = /(>)(<)(\/*)/g, n = / *([^ ].*[^ ]) *\n/g, r = /(<.+>)(.+\n)/g;
e = e.replace(t, `$1
$2$3`).replace(n, `$1
`).replace(r, `$1
$2`);
let s = "", a = e.split(`
`), i = 0, o = "other";
const f = {
"single->single": 0,
"single->closing": -1,
"single->opening": 0,
"single->other": 0,
"closing->single": 0,
"closing->closing": -1,
"closing->opening": 0,
"closing->other": 0,
"opening->single": 1,
"opening->closing": 0,
"opening->opening": 1,
"opening->other": 1,
"other->single": 0,
"other->closing": -1,
"other->opening": 0,
"other->other": 0
};
for (let u = 0; u < a.length; u++) {
const l = a[u], d = !!l.match(/<.+\/>/), p = !!l.match(/<\/.+>/), T = !!l.match(/<[^!].*>/), b = d ? "single" : p ? "closing" : T ? "opening" : "other", A = o + "->" + b;
o = b;
let c = "";
i += f[A];
for (let y = 0; y < i; y++)
c += " ";
s += c + l + `
`;
}
return s;
}
let de;
const Z = {
dataType: "json",
contentType: "application/json",
parse(e, t) {
bs(t) && (t = JSON.parse(t));
const n = [], r = e.get("resourceSet") || de.create();
function s(f, u) {
return !f || !u ? () => {
} : (l) => {
if (!l || l.get("derived")) return;
const d = l.get("name"), p = f[d];
if (typeof p < "u")
if (l.isTypeOf("EAttribute"))
u.set(d, p);
else if (l.get("containment")) {
const T = l.get("eType");
l.get("upperBound") === 1 ? u.set(d, o(p, T)) : (p || []).forEach((b) => {
u.get(d).add(o(b, T));
});
} else
n.push({ parent: u, feature: l, value: p });
};
}
function a(f, u) {
if (f.source && u.set("source", f.source), f.details && !Array.isArray(f.details)) {
const l = u.get("details");
Object.entries(f.details).forEach(([d, p]) => {
l.add(Pe.create({ key: d, value: p }));
});
}
}
function i() {
const f = he(e);
function u(l, d, p, T) {
const b = p.$ref;
let A = f[b];
A || (A = r.getEObject(b)), A && (T ? l.get(d.get("name")).add(A) : l.set(d.get("name"), A));
}
n.forEach((l) => {
const d = l.parent, p = l.feature, T = l.value;
p.get("upperBound") === 1 ? u(d, p, T, !1) : (Array.isArray(T) ? T : [T]).forEach((b) => {
u(d, p, b, !0);
});
});
}
function o(f, u) {
let l;
if (f && (u || f.eClass)) {
f.eClass && (u = r.getEObject(f.eClass));
try {
l = Ee(u);
} catch {
throw new Error(
"Cannot parse or cannot find EClass for object" + JSON.stringify(f)
);
}
l && (f._id && (l._id = f._id), u === q ? a(f, l) : u.get("eAllStructuralFeatures").forEach(s(f, l)));
}
return l;
}
Array.isArray(t) ? t.forEach((f) => {
e.add(o(f));
}) : e.add(o(t)), i();
},
to: (e) => {
const t = e.get("contents").array(), n = {};
n[e.get("uri")] = he(e);
function r(u, l) {
const d = l.eResource(), p = u.eResource(), T = d !== p;
if (!d || !p) return;
n[d.get("uri")] || (n[d.get("uri")] = he(d));
const b = n[d.get("uri")];
for (const A in b)
if (b[A] === l)
return T ? d.get("uri") + "#" + A : A;
return null;
}
function s(u, l, d) {
return d === !0 ? o(l) : { $ref: r(u, l), eClass: l.eClass.eURI() };
}
function a(u, l) {
return !u || !l ? () => {
} : (d, p) => {
if (p[0] === "_") return;
const T = u.eClass.getEStructuralFeature(p), b = u.isSet(p);
if (!T || !b || T.get("derived")) return;
const A = d, c = T.get("name"), y = T.get("upperBound") !== 1, _ = T.get("containment");
T.isTypeOf("EAttribute") ? l[c] = A : y ? (l[c] = [], A.each((C) => {
l[c].push(s(u, C, _));
})) : l[c] = s(u, A, _);
};
}
function i(u, l) {
u.values.source && (l.source = u.values.source), u.values.details && u.values.details.size() > 0 && (l.details = {}, u.values.details.each((d) => {
const p = d.get("key"), T = d.get("value");
p && (l.details[p] = T);
}));
}
function o(u) {
const l = u.eClass, d = u.values, p = { eClass: l.eURI() };
return u._id && (p._id = u._id), l === q ? i(u, p) : Object.entries(d).forEach(([T, b]) => {
a(u, p)(b, T);
}), p;
}
let f;
if (t.length === 1) {
const u = t[0];
f = o(u);
} else {
f = [];
for (let u = 0; u < t.length; u++)
f.push(o(t[u]));
}
return f;
}
}, W = h.create({
name: "Resource",
eSuperTypes: [m],
eStructuralFeatures: [
{
eClass: E,
name: "uri",
lowerBound: 1,
upperBound: 1,
eType: P
},
{
eClass: g,
name: "contents",
upperBound: -1,
containment: !0,
eType: m
},
{
eClass: g,
name: "resourceS