UNPKG

ecore-ts

Version:
1,730 lines 57.3 kB
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 = { "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#039;" }; 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