react-monaco-json-merge
Version:
A powerful React component for 3-way JSON merging with semantic comparison, built on Monaco Editor. Features schema-aware conflict detection, interactive resolution, and real-time validation.
1,572 lines (1,570 loc) • 114 kB
JavaScript
import { jsx as st, Fragment as On } from "react/jsx-runtime";
import { useState as _e, useRef as le, useCallback as Ee, useEffect as Se } from "react";
function Wt(e, t) {
(t == null || t > e.length) && (t = e.length);
for (var r = 0, n = Array(t); r < t; r++) n[r] = e[r];
return n;
}
function wn(e) {
if (Array.isArray(e)) return e;
}
function An(e, t, r) {
return (t = kn(t)) in e ? Object.defineProperty(e, t, {
value: r,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = r, e;
}
function Nn(e, t) {
var r = e == null ? null : typeof Symbol < "u" && e[Symbol.iterator] || e["@@iterator"];
if (r != null) {
var n, o, i, s, c = [], a = !0, u = !1;
try {
if (i = (r = r.call(e)).next, t !== 0) for (; !(a = (n = i.call(r)).done) && (c.push(n.value), c.length !== t); a = !0) ;
} catch (l) {
u = !0, o = l;
} finally {
try {
if (!a && r.return != null && (s = r.return(), Object(s) !== s)) return;
} finally {
if (u) throw o;
}
}
return c;
}
}
function En() {
throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
}
function qt(e, t) {
var r = Object.keys(e);
if (Object.getOwnPropertySymbols) {
var n = Object.getOwnPropertySymbols(e);
t && (n = n.filter(function(o) {
return Object.getOwnPropertyDescriptor(e, o).enumerable;
})), r.push.apply(r, n);
}
return r;
}
function Yt(e) {
for (var t = 1; t < arguments.length; t++) {
var r = arguments[t] != null ? arguments[t] : {};
t % 2 ? qt(Object(r), !0).forEach(function(n) {
An(e, n, r[n]);
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : qt(Object(r)).forEach(function(n) {
Object.defineProperty(e, n, Object.getOwnPropertyDescriptor(r, n));
});
}
return e;
}
function Tn(e, t) {
if (e == null) return {};
var r, n, o = In(e, t);
if (Object.getOwnPropertySymbols) {
var i = Object.getOwnPropertySymbols(e);
for (n = 0; n < i.length; n++) r = i[n], t.indexOf(r) === -1 && {}.propertyIsEnumerable.call(e, r) && (o[r] = e[r]);
}
return o;
}
function In(e, t) {
if (e == null) return {};
var r = {};
for (var n in e) if ({}.hasOwnProperty.call(e, n)) {
if (t.indexOf(n) !== -1) continue;
r[n] = e[n];
}
return r;
}
function Ln(e, t) {
return wn(e) || Nn(e, t) || _n(e, t) || En();
}
function Sn(e, t) {
if (typeof e != "object" || !e) return e;
var r = e[Symbol.toPrimitive];
if (r !== void 0) {
var n = r.call(e, t);
if (typeof n != "object") return n;
throw new TypeError("@@toPrimitive must return a primitive value.");
}
return (t === "string" ? String : Number)(e);
}
function kn(e) {
var t = Sn(e, "string");
return typeof t == "symbol" ? t : t + "";
}
function _n(e, t) {
if (e) {
if (typeof e == "string") return Wt(e, t);
var r = {}.toString.call(e).slice(8, -1);
return r === "Object" && e.constructor && (r = e.constructor.name), r === "Map" || r === "Set" ? Array.from(e) : r === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? Wt(e, t) : void 0;
}
}
function Pn(e, t, r) {
return t in e ? Object.defineProperty(e, t, {
value: r,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = r, e;
}
function zt(e, t) {
var r = Object.keys(e);
if (Object.getOwnPropertySymbols) {
var n = Object.getOwnPropertySymbols(e);
t && (n = n.filter(function(o) {
return Object.getOwnPropertyDescriptor(e, o).enumerable;
})), r.push.apply(r, n);
}
return r;
}
function Xt(e) {
for (var t = 1; t < arguments.length; t++) {
var r = arguments[t] != null ? arguments[t] : {};
t % 2 ? zt(Object(r), !0).forEach(function(n) {
Pn(e, n, r[n]);
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : zt(Object(r)).forEach(function(n) {
Object.defineProperty(e, n, Object.getOwnPropertyDescriptor(r, n));
});
}
return e;
}
function jn() {
for (var e = arguments.length, t = new Array(e), r = 0; r < e; r++)
t[r] = arguments[r];
return function(n) {
return t.reduceRight(function(o, i) {
return i(o);
}, n);
};
}
function Ke(e) {
return function t() {
for (var r = this, n = arguments.length, o = new Array(n), i = 0; i < n; i++)
o[i] = arguments[i];
return o.length >= e.length ? e.apply(this, o) : function() {
for (var s = arguments.length, c = new Array(s), a = 0; a < s; a++)
c[a] = arguments[a];
return t.apply(r, [].concat(o, c));
};
};
}
function lt(e) {
return {}.toString.call(e).includes("Object");
}
function Rn(e) {
return !Object.keys(e).length;
}
function Ce(e) {
return typeof e == "function";
}
function Dn(e, t) {
return Object.prototype.hasOwnProperty.call(e, t);
}
function Mn(e, t) {
return lt(t) || je("changeType"), Object.keys(t).some(function(r) {
return !Dn(e, r);
}) && je("changeField"), t;
}
function xn(e) {
Ce(e) || je("selectorType");
}
function $n(e) {
Ce(e) || lt(e) || je("handlerType"), lt(e) && Object.values(e).some(function(t) {
return !Ce(t);
}) && je("handlersType");
}
function Bn(e) {
e || je("initialIsRequired"), lt(e) || je("initialType"), Rn(e) && je("initialContent");
}
function Fn(e, t) {
throw new Error(e[t] || e.default);
}
var Un = {
initialIsRequired: "initial state is required",
initialType: "initial state should be an object",
initialContent: "initial state shouldn't be an empty object",
handlerType: "handler should be an object or a function",
handlersType: "all handlers should be a functions",
selectorType: "selector should be a function",
changeType: "provided value of changes should be an object",
changeField: 'it seams you want to change a field in the state which is not specified in the "initial" state',
default: "an unknown error accured in `state-local` package"
}, je = Ke(Fn)(Un), it = {
changes: Mn,
selector: xn,
handler: $n,
initial: Bn
};
function Vn(e) {
var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
it.initial(e), it.handler(t);
var r = {
current: e
}, n = Ke(Gn)(r, t), o = Ke(Hn)(r), i = Ke(it.changes)(e), s = Ke(Jn)(r);
function c() {
var u = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : function(l) {
return l;
};
return it.selector(u), u(r.current);
}
function a(u) {
jn(n, o, i, s)(u);
}
return [c, a];
}
function Jn(e, t) {
return Ce(t) ? t(e.current) : t;
}
function Hn(e, t) {
return e.current = Xt(Xt({}, e.current), t), t;
}
function Gn(e, t, r) {
return Ce(t) ? t(e.current) : Object.keys(r).forEach(function(n) {
var o;
return (o = t[n]) === null || o === void 0 ? void 0 : o.call(t, e.current[n]);
}), r;
}
var Wn = {
create: Vn
}, qn = {
paths: {
vs: "https://cdn.jsdelivr.net/npm/monaco-editor@0.54.0/min/vs"
}
};
function Yn(e) {
return function t() {
for (var r = this, n = arguments.length, o = new Array(n), i = 0; i < n; i++)
o[i] = arguments[i];
return o.length >= e.length ? e.apply(this, o) : function() {
for (var s = arguments.length, c = new Array(s), a = 0; a < s; a++)
c[a] = arguments[a];
return t.apply(r, [].concat(o, c));
};
};
}
function zn(e) {
return {}.toString.call(e).includes("Object");
}
function Xn(e) {
return e || Qt("configIsRequired"), zn(e) || Qt("configType"), e.urls ? (Qn(), {
paths: {
vs: e.urls.monacoBase
}
}) : e;
}
function Qn() {
console.warn(on.deprecation);
}
function Zn(e, t) {
throw new Error(e[t] || e.default);
}
var on = {
configIsRequired: "the configuration object is required",
configType: "the configuration object should be an object",
default: "an unknown error accured in `@monaco-editor/loader` package",
deprecation: `Deprecation warning!
You are using deprecated way of configuration.
Instead of using
monaco.config({ urls: { monacoBase: '...' } })
use
monaco.config({ paths: { vs: '...' } })
For more please check the link https://github.com/suren-atoyan/monaco-loader#config
`
}, Qt = Yn(Zn)(on), Kn = {
config: Xn
}, Cn = function() {
for (var t = arguments.length, r = new Array(t), n = 0; n < t; n++)
r[n] = arguments[n];
return function(o) {
return r.reduceRight(function(i, s) {
return s(i);
}, o);
};
};
function sn(e, t) {
return Object.keys(t).forEach(function(r) {
t[r] instanceof Object && e[r] && Object.assign(t[r], sn(e[r], t[r]));
}), Yt(Yt({}, e), t);
}
var er = {
type: "cancelation",
msg: "operation is manually canceled"
};
function vt(e) {
var t = !1, r = new Promise(function(n, o) {
e.then(function(i) {
return t ? o(er) : n(i);
}), e.catch(o);
});
return r.cancel = function() {
return t = !0;
}, r;
}
var tr = ["monaco"], nr = Wn.create({
config: qn,
isInitialized: !1,
resolve: null,
reject: null,
monaco: null
}), cn = Ln(nr, 2), tt = cn[0], dt = cn[1];
function rr(e) {
var t = Kn.config(e), r = t.monaco, n = Tn(t, tr);
dt(function(o) {
return {
config: sn(o.config, n),
monaco: r
};
});
}
function or() {
var e = tt(function(t) {
var r = t.monaco, n = t.isInitialized, o = t.resolve;
return {
monaco: r,
isInitialized: n,
resolve: o
};
});
if (!e.isInitialized) {
if (dt({
isInitialized: !0
}), e.monaco)
return e.resolve(e.monaco), vt(bt);
if (window.monaco && window.monaco.editor)
return an(window.monaco), e.resolve(window.monaco), vt(bt);
Cn(ir, cr)(ar);
}
return vt(bt);
}
function ir(e) {
return document.body.appendChild(e);
}
function sr(e) {
var t = document.createElement("script");
return e && (t.src = e), t;
}
function cr(e) {
var t = tt(function(n) {
var o = n.config, i = n.reject;
return {
config: o,
reject: i
};
}), r = sr("".concat(t.config.paths.vs, "/loader.js"));
return r.onload = function() {
return e();
}, r.onerror = t.reject, r;
}
function ar() {
var e = tt(function(r) {
var n = r.config, o = r.resolve, i = r.reject;
return {
config: n,
resolve: o,
reject: i
};
}), t = window.require;
t.config(e.config), t(["vs/editor/editor.main"], function(r) {
var n = r.m;
an(n), e.resolve(n);
}, function(r) {
e.reject(r);
});
}
function an(e) {
tt().monaco || dt({
monaco: e
});
}
function lr() {
return tt(function(e) {
var t = e.monaco;
return t;
});
}
var bt = new Promise(function(e, t) {
return dt({
resolve: e,
reject: t
});
}), ur = {
config: rr,
init: or,
__getMonacoInstance: lr
}, te = /* @__PURE__ */ ((e) => (e[e.excluded = 0] = "excluded", e[e.first = 1] = "first", e[e.second = 2] = "second", e))(te || {}), M = /* @__PURE__ */ ((e) => (e.SAME_CHANGE = "same_change", e.INPUT1_ONLY = "input1_only", e.INPUT2_ONLY = "input2_only", e.TRUE_CONFLICT = "true_conflict", e))(M || {});
function fr(e, t = !1) {
const r = e.length;
let n = 0, o = "", i = 0, s = 16, c = 0, a = 0, u = 0, l = 0, y = 0;
function p(f, T) {
let k = 0, g = 0;
for (; k < f; ) {
let b = e.charCodeAt(n);
if (b >= 48 && b <= 57)
g = g * 16 + b - 48;
else if (b >= 65 && b <= 70)
g = g * 16 + b - 65 + 10;
else if (b >= 97 && b <= 102)
g = g * 16 + b - 97 + 10;
else
break;
n++, k++;
}
return k < f && (g = -1), g;
}
function d(f) {
n = f, o = "", i = 0, s = 16, y = 0;
}
function L() {
let f = n;
if (e.charCodeAt(n) === 48)
n++;
else
for (n++; n < e.length && Je(e.charCodeAt(n)); )
n++;
if (n < e.length && e.charCodeAt(n) === 46)
if (n++, n < e.length && Je(e.charCodeAt(n)))
for (n++; n < e.length && Je(e.charCodeAt(n)); )
n++;
else
return y = 3, e.substring(f, n);
let T = n;
if (n < e.length && (e.charCodeAt(n) === 69 || e.charCodeAt(n) === 101))
if (n++, (n < e.length && e.charCodeAt(n) === 43 || e.charCodeAt(n) === 45) && n++, n < e.length && Je(e.charCodeAt(n))) {
for (n++; n < e.length && Je(e.charCodeAt(n)); )
n++;
T = n;
} else
y = 3;
return e.substring(f, T);
}
function E() {
let f = "", T = n;
for (; ; ) {
if (n >= r) {
f += e.substring(T, n), y = 2;
break;
}
const k = e.charCodeAt(n);
if (k === 34) {
f += e.substring(T, n), n++;
break;
}
if (k === 92) {
if (f += e.substring(T, n), n++, n >= r) {
y = 2;
break;
}
switch (e.charCodeAt(n++)) {
case 34:
f += '"';
break;
case 92:
f += "\\";
break;
case 47:
f += "/";
break;
case 98:
f += "\b";
break;
case 102:
f += "\f";
break;
case 110:
f += `
`;
break;
case 114:
f += "\r";
break;
case 116:
f += " ";
break;
case 117:
const b = p(4);
b >= 0 ? f += String.fromCharCode(b) : y = 4;
break;
default:
y = 5;
}
T = n;
continue;
}
if (k >= 0 && k <= 31)
if (Qe(k)) {
f += e.substring(T, n), y = 2;
break;
} else
y = 6;
n++;
}
return f;
}
function v() {
if (o = "", y = 0, i = n, a = c, l = u, n >= r)
return i = r, s = 17;
let f = e.charCodeAt(n);
if (Ot(f)) {
do
n++, o += String.fromCharCode(f), f = e.charCodeAt(n);
while (Ot(f));
return s = 15;
}
if (Qe(f))
return n++, o += String.fromCharCode(f), f === 13 && e.charCodeAt(n) === 10 && (n++, o += `
`), c++, u = n, s = 14;
switch (f) {
// tokens: []{}:,
case 123:
return n++, s = 1;
case 125:
return n++, s = 2;
case 91:
return n++, s = 3;
case 93:
return n++, s = 4;
case 58:
return n++, s = 6;
case 44:
return n++, s = 5;
// strings
case 34:
return n++, o = E(), s = 10;
// comments
case 47:
const T = n - 1;
if (e.charCodeAt(n + 1) === 47) {
for (n += 2; n < r && !Qe(e.charCodeAt(n)); )
n++;
return o = e.substring(T, n), s = 12;
}
if (e.charCodeAt(n + 1) === 42) {
n += 2;
const k = r - 1;
let g = !1;
for (; n < k; ) {
const b = e.charCodeAt(n);
if (b === 42 && e.charCodeAt(n + 1) === 47) {
n += 2, g = !0;
break;
}
n++, Qe(b) && (b === 13 && e.charCodeAt(n) === 10 && n++, c++, u = n);
}
return g || (n++, y = 1), o = e.substring(T, n), s = 13;
}
return o += String.fromCharCode(f), n++, s = 16;
// numbers
case 45:
if (o += String.fromCharCode(f), n++, n === r || !Je(e.charCodeAt(n)))
return s = 16;
// found a minus, followed by a number so
// we fall through to proceed with scanning
// numbers
case 48:
case 49:
case 50:
case 51:
case 52:
case 53:
case 54:
case 55:
case 56:
case 57:
return o += L(), s = 11;
// literals and unknown symbols
default:
for (; n < r && h(f); )
n++, f = e.charCodeAt(n);
if (i !== n) {
switch (o = e.substring(i, n), o) {
case "true":
return s = 8;
case "false":
return s = 9;
case "null":
return s = 7;
}
return s = 16;
}
return o += String.fromCharCode(f), n++, s = 16;
}
}
function h(f) {
if (Ot(f) || Qe(f))
return !1;
switch (f) {
case 125:
case 93:
case 123:
case 91:
case 34:
case 58:
case 44:
case 47:
return !1;
}
return !0;
}
function m() {
let f;
do
f = v();
while (f >= 12 && f <= 15);
return f;
}
return {
setPosition: d,
getPosition: () => n,
scan: t ? m : v,
getToken: () => s,
getTokenValue: () => o,
getTokenOffset: () => i,
getTokenLength: () => n - i,
getTokenStartLine: () => a,
getTokenStartCharacter: () => i - l,
getTokenError: () => y
};
}
function Ot(e) {
return e === 32 || e === 9;
}
function Qe(e) {
return e === 10 || e === 13;
}
function Je(e) {
return e >= 48 && e <= 57;
}
var Zt;
(function(e) {
e[e.lineFeed = 10] = "lineFeed", e[e.carriageReturn = 13] = "carriageReturn", e[e.space = 32] = "space", e[e._0 = 48] = "_0", e[e._1 = 49] = "_1", e[e._2 = 50] = "_2", e[e._3 = 51] = "_3", e[e._4 = 52] = "_4", e[e._5 = 53] = "_5", e[e._6 = 54] = "_6", e[e._7 = 55] = "_7", e[e._8 = 56] = "_8", e[e._9 = 57] = "_9", e[e.a = 97] = "a", e[e.b = 98] = "b", e[e.c = 99] = "c", e[e.d = 100] = "d", e[e.e = 101] = "e", e[e.f = 102] = "f", e[e.g = 103] = "g", e[e.h = 104] = "h", e[e.i = 105] = "i", e[e.j = 106] = "j", e[e.k = 107] = "k", e[e.l = 108] = "l", e[e.m = 109] = "m", e[e.n = 110] = "n", e[e.o = 111] = "o", e[e.p = 112] = "p", e[e.q = 113] = "q", e[e.r = 114] = "r", e[e.s = 115] = "s", e[e.t = 116] = "t", e[e.u = 117] = "u", e[e.v = 118] = "v", e[e.w = 119] = "w", e[e.x = 120] = "x", e[e.y = 121] = "y", e[e.z = 122] = "z", e[e.A = 65] = "A", e[e.B = 66] = "B", e[e.C = 67] = "C", e[e.D = 68] = "D", e[e.E = 69] = "E", e[e.F = 70] = "F", e[e.G = 71] = "G", e[e.H = 72] = "H", e[e.I = 73] = "I", e[e.J = 74] = "J", e[e.K = 75] = "K", e[e.L = 76] = "L", e[e.M = 77] = "M", e[e.N = 78] = "N", e[e.O = 79] = "O", e[e.P = 80] = "P", e[e.Q = 81] = "Q", e[e.R = 82] = "R", e[e.S = 83] = "S", e[e.T = 84] = "T", e[e.U = 85] = "U", e[e.V = 86] = "V", e[e.W = 87] = "W", e[e.X = 88] = "X", e[e.Y = 89] = "Y", e[e.Z = 90] = "Z", e[e.asterisk = 42] = "asterisk", e[e.backslash = 92] = "backslash", e[e.closeBrace = 125] = "closeBrace", e[e.closeBracket = 93] = "closeBracket", e[e.colon = 58] = "colon", e[e.comma = 44] = "comma", e[e.dot = 46] = "dot", e[e.doubleQuote = 34] = "doubleQuote", e[e.minus = 45] = "minus", e[e.openBrace = 123] = "openBrace", e[e.openBracket = 91] = "openBracket", e[e.plus = 43] = "plus", e[e.slash = 47] = "slash", e[e.formFeed = 12] = "formFeed", e[e.tab = 9] = "tab";
})(Zt || (Zt = {}));
new Array(20).fill(0).map((e, t) => " ".repeat(t));
const He = 200;
new Array(He).fill(0).map((e, t) => `
` + " ".repeat(t)), new Array(He).fill(0).map((e, t) => "\r" + " ".repeat(t)), new Array(He).fill(0).map((e, t) => `\r
` + " ".repeat(t)), new Array(He).fill(0).map((e, t) => `
` + " ".repeat(t)), new Array(He).fill(0).map((e, t) => "\r" + " ".repeat(t)), new Array(He).fill(0).map((e, t) => `\r
` + " ".repeat(t));
var ut;
(function(e) {
e.DEFAULT = {
allowTrailingComma: !1
};
})(ut || (ut = {}));
function pr(e, t = [], r = ut.DEFAULT) {
let n = { type: "array", offset: -1, length: -1, children: [], parent: void 0 };
function o(a) {
n.type === "property" && (n.length = a - n.offset, n = n.parent);
}
function i(a) {
return n.children.push(a), a;
}
hr(e, {
onObjectBegin: (a) => {
n = i({ type: "object", offset: a, length: -1, parent: n, children: [] });
},
onObjectProperty: (a, u, l) => {
n = i({ type: "property", offset: u, length: -1, parent: n, children: [] }), n.children.push({ type: "string", value: a, offset: u, length: l, parent: n });
},
onObjectEnd: (a, u) => {
o(a + u), n.length = a + u - n.offset, n = n.parent, o(a + u);
},
onArrayBegin: (a, u) => {
n = i({ type: "array", offset: a, length: -1, parent: n, children: [] });
},
onArrayEnd: (a, u) => {
n.length = a + u - n.offset, n = n.parent, o(a + u);
},
onLiteralValue: (a, u, l) => {
i({ type: gr(a), offset: u, length: l, parent: n, value: a }), o(u + l);
},
onSeparator: (a, u, l) => {
n.type === "property" && (a === ":" ? n.colonOffset = u : a === "," && o(u));
},
onError: (a, u, l) => {
t.push({ error: a, offset: u, length: l });
}
}, r);
const c = n.children[0];
return c && delete c.parent, c;
}
function dr(e, t) {
if (!e)
return;
let r = e;
for (let n of t)
if (typeof n == "string") {
if (r.type !== "object" || !Array.isArray(r.children))
return;
let o = !1;
for (const i of r.children)
if (Array.isArray(i.children) && i.children[0].value === n && i.children.length === 2) {
r = i.children[1], o = !0;
break;
}
if (!o)
return;
} else {
const o = n;
if (r.type !== "array" || o < 0 || !Array.isArray(r.children) || o >= r.children.length)
return;
r = r.children[o];
}
return r;
}
function hr(e, t, r = ut.DEFAULT) {
const n = fr(e, !1), o = [];
let i = 0;
function s(A) {
return A ? () => i === 0 && A(n.getTokenOffset(), n.getTokenLength(), n.getTokenStartLine(), n.getTokenStartCharacter()) : () => !0;
}
function c(A) {
return A ? (w) => i === 0 && A(w, n.getTokenOffset(), n.getTokenLength(), n.getTokenStartLine(), n.getTokenStartCharacter()) : () => !0;
}
function a(A) {
return A ? (w) => i === 0 && A(w, n.getTokenOffset(), n.getTokenLength(), n.getTokenStartLine(), n.getTokenStartCharacter(), () => o.slice()) : () => !0;
}
function u(A) {
return A ? () => {
i > 0 ? i++ : A(n.getTokenOffset(), n.getTokenLength(), n.getTokenStartLine(), n.getTokenStartCharacter(), () => o.slice()) === !1 && (i = 1);
} : () => !0;
}
function l(A) {
return A ? () => {
i > 0 && i--, i === 0 && A(n.getTokenOffset(), n.getTokenLength(), n.getTokenStartLine(), n.getTokenStartCharacter());
} : () => !0;
}
const y = u(t.onObjectBegin), p = a(t.onObjectProperty), d = l(t.onObjectEnd), L = u(t.onArrayBegin), E = l(t.onArrayEnd), v = a(t.onLiteralValue), h = c(t.onSeparator), m = s(t.onComment), f = c(t.onError), T = r && r.disallowComments, k = r && r.allowTrailingComma;
function g() {
for (; ; ) {
const A = n.scan();
switch (n.getTokenError()) {
case 4:
b(
14
/* ParseErrorCode.InvalidUnicode */
);
break;
case 5:
b(
15
/* ParseErrorCode.InvalidEscapeCharacter */
);
break;
case 3:
b(
13
/* ParseErrorCode.UnexpectedEndOfNumber */
);
break;
case 1:
T || b(
11
/* ParseErrorCode.UnexpectedEndOfComment */
);
break;
case 2:
b(
12
/* ParseErrorCode.UnexpectedEndOfString */
);
break;
case 6:
b(
16
/* ParseErrorCode.InvalidCharacter */
);
break;
}
switch (A) {
case 12:
case 13:
T ? b(
10
/* ParseErrorCode.InvalidCommentToken */
) : m();
break;
case 16:
b(
1
/* ParseErrorCode.InvalidSymbol */
);
break;
case 15:
case 14:
break;
default:
return A;
}
}
}
function b(A, w = [], j = []) {
if (f(A), w.length + j.length > 0) {
let X = n.getToken();
for (; X !== 17; ) {
if (w.indexOf(X) !== -1) {
g();
break;
} else if (j.indexOf(X) !== -1)
break;
X = g();
}
}
}
function R(A) {
const w = n.getTokenValue();
return A ? v(w) : (p(w), o.push(w)), g(), !0;
}
function N() {
switch (n.getToken()) {
case 11:
const A = n.getTokenValue();
let w = Number(A);
isNaN(w) && (b(
2
/* ParseErrorCode.InvalidNumberFormat */
), w = 0), v(w);
break;
case 7:
v(null);
break;
case 8:
v(!0);
break;
case 9:
v(!1);
break;
default:
return !1;
}
return g(), !0;
}
function B() {
return n.getToken() !== 10 ? (b(3, [], [
2,
5
/* SyntaxKind.CommaToken */
]), !1) : (R(!1), n.getToken() === 6 ? (h(":"), g(), V() || b(4, [], [
2,
5
/* SyntaxKind.CommaToken */
])) : b(5, [], [
2,
5
/* SyntaxKind.CommaToken */
]), o.pop(), !0);
}
function D() {
y(), g();
let A = !1;
for (; n.getToken() !== 2 && n.getToken() !== 17; ) {
if (n.getToken() === 5) {
if (A || b(4, [], []), h(","), g(), n.getToken() === 2 && k)
break;
} else A && b(6, [], []);
B() || b(4, [], [
2,
5
/* SyntaxKind.CommaToken */
]), A = !0;
}
return d(), n.getToken() !== 2 ? b(7, [
2
/* SyntaxKind.CloseBraceToken */
], []) : g(), !0;
}
function x() {
L(), g();
let A = !0, w = !1;
for (; n.getToken() !== 4 && n.getToken() !== 17; ) {
if (n.getToken() === 5) {
if (w || b(4, [], []), h(","), g(), n.getToken() === 4 && k)
break;
} else w && b(6, [], []);
A ? (o.push(0), A = !1) : o[o.length - 1]++, V() || b(4, [], [
4,
5
/* SyntaxKind.CommaToken */
]), w = !0;
}
return E(), A || o.pop(), n.getToken() !== 4 ? b(8, [
4
/* SyntaxKind.CloseBracketToken */
], []) : g(), !0;
}
function V() {
switch (n.getToken()) {
case 3:
return x();
case 1:
return D();
case 10:
return R(!0);
default:
return N();
}
}
return g(), n.getToken() === 17 ? r.allowEmptyContent ? !0 : (b(4, [], []), !1) : V() ? (n.getToken() !== 17 && b(9, [], []), !0) : (b(4, [], []), !1);
}
function gr(e) {
switch (typeof e) {
case "boolean":
return "boolean";
case "number":
return "number";
case "string":
return "string";
case "object": {
if (e) {
if (Array.isArray(e))
return "array";
} else return "null";
return "object";
}
default:
return "null";
}
}
var Kt;
(function(e) {
e[e.None = 0] = "None", e[e.UnexpectedEndOfComment = 1] = "UnexpectedEndOfComment", e[e.UnexpectedEndOfString = 2] = "UnexpectedEndOfString", e[e.UnexpectedEndOfNumber = 3] = "UnexpectedEndOfNumber", e[e.InvalidUnicode = 4] = "InvalidUnicode", e[e.InvalidEscapeCharacter = 5] = "InvalidEscapeCharacter", e[e.InvalidCharacter = 6] = "InvalidCharacter";
})(Kt || (Kt = {}));
var Ct;
(function(e) {
e[e.OpenBraceToken = 1] = "OpenBraceToken", e[e.CloseBraceToken = 2] = "CloseBraceToken", e[e.OpenBracketToken = 3] = "OpenBracketToken", e[e.CloseBracketToken = 4] = "CloseBracketToken", e[e.CommaToken = 5] = "CommaToken", e[e.ColonToken = 6] = "ColonToken", e[e.NullKeyword = 7] = "NullKeyword", e[e.TrueKeyword = 8] = "TrueKeyword", e[e.FalseKeyword = 9] = "FalseKeyword", e[e.StringLiteral = 10] = "StringLiteral", e[e.NumericLiteral = 11] = "NumericLiteral", e[e.LineCommentTrivia = 12] = "LineCommentTrivia", e[e.BlockCommentTrivia = 13] = "BlockCommentTrivia", e[e.LineBreakTrivia = 14] = "LineBreakTrivia", e[e.Trivia = 15] = "Trivia", e[e.Unknown = 16] = "Unknown", e[e.EOF = 17] = "EOF";
})(Ct || (Ct = {}));
const ln = pr, un = dr;
var en;
(function(e) {
e[e.InvalidSymbol = 1] = "InvalidSymbol", e[e.InvalidNumberFormat = 2] = "InvalidNumberFormat", e[e.PropertyNameExpected = 3] = "PropertyNameExpected", e[e.ValueExpected = 4] = "ValueExpected", e[e.ColonExpected = 5] = "ColonExpected", e[e.CommaExpected = 6] = "CommaExpected", e[e.CloseBraceExpected = 7] = "CloseBraceExpected", e[e.CloseBracketExpected = 8] = "CloseBracketExpected", e[e.EndOfFileExpected = 9] = "EndOfFileExpected", e[e.InvalidCommentToken = 10] = "InvalidCommentToken", e[e.UnexpectedEndOfComment = 11] = "UnexpectedEndOfComment", e[e.UnexpectedEndOfString = 12] = "UnexpectedEndOfString", e[e.UnexpectedEndOfNumber = 13] = "UnexpectedEndOfNumber", e[e.InvalidUnicode = 14] = "InvalidUnicode", e[e.InvalidEscapeCharacter = 15] = "InvalidEscapeCharacter", e[e.InvalidCharacter = 16] = "InvalidCharacter";
})(en || (en = {}));
function mr(e) {
return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
}
var wt, tn;
function yr() {
return tn || (tn = 1, wt = function e(t, r) {
if (t === r) return !0;
if (t && r && typeof t == "object" && typeof r == "object") {
if (t.constructor !== r.constructor) return !1;
var n, o, i;
if (Array.isArray(t)) {
if (n = t.length, n != r.length) return !1;
for (o = n; o-- !== 0; )
if (!e(t[o], r[o])) return !1;
return !0;
}
if (t.constructor === RegExp) return t.source === r.source && t.flags === r.flags;
if (t.valueOf !== Object.prototype.valueOf) return t.valueOf() === r.valueOf();
if (t.toString !== Object.prototype.toString) return t.toString() === r.toString();
if (i = Object.keys(t), n = i.length, n !== Object.keys(r).length) return !1;
for (o = n; o-- !== 0; )
if (!Object.prototype.hasOwnProperty.call(r, i[o])) return !1;
for (o = n; o-- !== 0; ) {
var s = i[o];
if (!e(t[s], r[s])) return !1;
}
return !0;
}
return t !== t && r !== r;
}), wt;
}
var vr = yr();
const ye = /* @__PURE__ */ mr(vr), W = (e, t) => {
if (!e) return;
const r = t.replace(/^\//, "").replace(/\[/g, ".").replace(/\]/g, "").split(/[./#]/).filter(Boolean);
let n = e;
for (const o of r) {
if (!n || typeof n != "object")
return;
if (Array.isArray(n)) {
const i = Number.parseInt(o, 10);
if (Number.isNaN(i) || i < 0 || i >= n.length)
return;
n = n[i];
} else if (o in n)
n = n[o];
else
return;
}
return n;
};
/*!
* https://github.com/Starcounter-Jack/JSON-Patch
* (c) 2017-2022 Joachim Wester
* MIT licensed
*/
var br = /* @__PURE__ */ (function() {
var e = function(t, r) {
return e = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(n, o) {
n.__proto__ = o;
} || function(n, o) {
for (var i in o) o.hasOwnProperty(i) && (n[i] = o[i]);
}, e(t, r);
};
return function(t, r) {
e(t, r);
function n() {
this.constructor = t;
}
t.prototype = r === null ? Object.create(r) : (n.prototype = r.prototype, new n());
};
})(), Or = Object.prototype.hasOwnProperty;
function Et(e, t) {
return Or.call(e, t);
}
function Tt(e) {
if (Array.isArray(e)) {
for (var t = new Array(e.length), r = 0; r < t.length; r++)
t[r] = "" + r;
return t;
}
if (Object.keys)
return Object.keys(e);
var n = [];
for (var o in e)
Et(e, o) && n.push(o);
return n;
}
function we(e) {
switch (typeof e) {
case "object":
return JSON.parse(JSON.stringify(e));
//Faster than ES5 clone - http://jsperf.com/deep-cloning-of-objects/5
case "undefined":
return null;
//this is how JSON.stringify behaves for array items
default:
return e;
}
}
function It(e) {
for (var t = 0, r = e.length, n; t < r; ) {
if (n = e.charCodeAt(t), n >= 48 && n <= 57) {
t++;
continue;
}
return !1;
}
return !0;
}
function Me(e) {
return e.indexOf("/") === -1 && e.indexOf("~") === -1 ? e : e.replace(/~/g, "~0").replace(/\//g, "~1");
}
function fn(e) {
return e.replace(/~1/g, "/").replace(/~0/g, "~");
}
function Lt(e) {
if (e === void 0)
return !0;
if (e) {
if (Array.isArray(e)) {
for (var t = 0, r = e.length; t < r; t++)
if (Lt(e[t]))
return !0;
} else if (typeof e == "object") {
for (var n = Tt(e), o = n.length, i = 0; i < o; i++)
if (Lt(e[n[i]]))
return !0;
}
}
return !1;
}
function nn(e, t) {
var r = [e];
for (var n in t) {
var o = typeof t[n] == "object" ? JSON.stringify(t[n], null, 2) : t[n];
typeof o < "u" && r.push(n + ": " + o);
}
return r.join(`
`);
}
var pn = (
/** @class */
(function(e) {
br(t, e);
function t(r, n, o, i, s) {
var c = this.constructor, a = e.call(this, nn(r, { name: n, index: o, operation: i, tree: s })) || this;
return a.name = n, a.index = o, a.operation = i, a.tree = s, Object.setPrototypeOf(a, c.prototype), a.message = nn(r, { name: n, index: o, operation: i, tree: s }), a;
}
return t;
})(Error)
), ce = pn, wr = we, Ge = {
add: function(e, t, r) {
return e[t] = this.value, { newDocument: r };
},
remove: function(e, t, r) {
var n = e[t];
return delete e[t], { newDocument: r, removed: n };
},
replace: function(e, t, r) {
var n = e[t];
return e[t] = this.value, { newDocument: r, removed: n };
},
move: function(e, t, r) {
var n = ft(r, this.path);
n && (n = we(n));
var o = xe(r, { op: "remove", path: this.from }).removed;
return xe(r, { op: "add", path: this.path, value: o }), { newDocument: r, removed: n };
},
copy: function(e, t, r) {
var n = ft(r, this.from);
return xe(r, { op: "add", path: this.path, value: we(n) }), { newDocument: r };
},
test: function(e, t, r) {
return { newDocument: r, test: et(e[t], this.value) };
},
_get: function(e, t, r) {
return this.value = e[t], { newDocument: r };
}
}, Ar = {
add: function(e, t, r) {
return It(t) ? e.splice(t, 0, this.value) : e[t] = this.value, { newDocument: r, index: t };
},
remove: function(e, t, r) {
var n = e.splice(t, 1);
return { newDocument: r, removed: n[0] };
},
replace: function(e, t, r) {
var n = e[t];
return e[t] = this.value, { newDocument: r, removed: n };
},
move: Ge.move,
copy: Ge.copy,
test: Ge.test,
_get: Ge._get
};
function ft(e, t) {
if (t == "")
return e;
var r = { op: "_get", path: t };
return xe(e, r), r.value;
}
function xe(e, t, r, n, o, i) {
if (r === void 0 && (r = !1), n === void 0 && (n = !0), o === void 0 && (o = !0), i === void 0 && (i = 0), r && (typeof r == "function" ? r(t, 0, e, t.path) : pt(t, 0)), t.path === "") {
var s = { newDocument: e };
if (t.op === "add")
return s.newDocument = t.value, s;
if (t.op === "replace")
return s.newDocument = t.value, s.removed = e, s;
if (t.op === "move" || t.op === "copy")
return s.newDocument = ft(e, t.from), t.op === "move" && (s.removed = e), s;
if (t.op === "test") {
if (s.test = et(e, t.value), s.test === !1)
throw new ce("Test operation failed", "TEST_OPERATION_FAILED", i, t, e);
return s.newDocument = e, s;
} else {
if (t.op === "remove")
return s.removed = e, s.newDocument = null, s;
if (t.op === "_get")
return t.value = e, s;
if (r)
throw new ce("Operation `op` property is not one of operations defined in RFC-6902", "OPERATION_OP_INVALID", i, t, e);
return s;
}
} else {
n || (e = we(e));
var c = t.path || "", a = c.split("/"), u = e, l = 1, y = a.length, p = void 0, d = void 0, L = void 0;
for (typeof r == "function" ? L = r : L = pt; ; ) {
if (d = a[l], d && d.indexOf("~") != -1 && (d = fn(d)), o && (d == "__proto__" || d == "prototype" && l > 0 && a[l - 1] == "constructor"))
throw new TypeError("JSON-Patch: modifying `__proto__` or `constructor/prototype` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README");
if (r && p === void 0 && (u[d] === void 0 ? p = a.slice(0, l).join("/") : l == y - 1 && (p = t.path), p !== void 0 && L(t, 0, e, p)), l++, Array.isArray(u)) {
if (d === "-")
d = u.length;
else {
if (r && !It(d))
throw new ce("Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index", "OPERATION_PATH_ILLEGAL_ARRAY_INDEX", i, t, e);
It(d) && (d = ~~d);
}
if (l >= y) {
if (r && t.op === "add" && d > u.length)
throw new ce("The specified index MUST NOT be greater than the number of elements in the array", "OPERATION_VALUE_OUT_OF_BOUNDS", i, t, e);
var s = Ar[t.op].call(t, u, d, e);
if (s.test === !1)
throw new ce("Test operation failed", "TEST_OPERATION_FAILED", i, t, e);
return s;
}
} else if (l >= y) {
var s = Ge[t.op].call(t, u, d, e);
if (s.test === !1)
throw new ce("Test operation failed", "TEST_OPERATION_FAILED", i, t, e);
return s;
}
if (u = u[d], r && l < y && (!u || typeof u != "object"))
throw new ce("Cannot perform operation at the desired path", "OPERATION_PATH_UNRESOLVABLE", i, t, e);
}
}
}
function _t(e, t, r, n, o) {
if (n === void 0 && (n = !0), o === void 0 && (o = !0), r && !Array.isArray(t))
throw new ce("Patch sequence must be an array", "SEQUENCE_NOT_AN_ARRAY");
n || (e = we(e));
for (var i = new Array(t.length), s = 0, c = t.length; s < c; s++)
i[s] = xe(e, t[s], r, !0, o, s), e = i[s].newDocument;
return i.newDocument = e, i;
}
function Nr(e, t, r) {
var n = xe(e, t);
if (n.test === !1)
throw new ce("Test operation failed", "TEST_OPERATION_FAILED", r, t, e);
return n.newDocument;
}
function pt(e, t, r, n) {
if (typeof e != "object" || e === null || Array.isArray(e))
throw new ce("Operation is not an object", "OPERATION_NOT_AN_OBJECT", t, e, r);
if (Ge[e.op]) {
if (typeof e.path != "string")
throw new ce("Operation `path` property is not a string", "OPERATION_PATH_INVALID", t, e, r);
if (e.path.indexOf("/") !== 0 && e.path.length > 0)
throw new ce('Operation `path` property must start with "/"', "OPERATION_PATH_INVALID", t, e, r);
if ((e.op === "move" || e.op === "copy") && typeof e.from != "string")
throw new ce("Operation `from` property is not present (applicable in `move` and `copy` operations)", "OPERATION_FROM_REQUIRED", t, e, r);
if ((e.op === "add" || e.op === "replace" || e.op === "test") && e.value === void 0)
throw new ce("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)", "OPERATION_VALUE_REQUIRED", t, e, r);
if ((e.op === "add" || e.op === "replace" || e.op === "test") && Lt(e.value))
throw new ce("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)", "OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED", t, e, r);
if (r) {
if (e.op == "add") {
var o = e.path.split("/").length, i = n.split("/").length;
if (o !== i + 1 && o !== i)
throw new ce("Cannot perform an `add` operation at the desired path", "OPERATION_PATH_CANNOT_ADD", t, e, r);
} else if (e.op === "replace" || e.op === "remove" || e.op === "_get") {
if (e.path !== n)
throw new ce("Cannot perform the operation at a path that does not exist", "OPERATION_PATH_UNRESOLVABLE", t, e, r);
} else if (e.op === "move" || e.op === "copy") {
var s = { op: "_get", path: e.from, value: void 0 }, c = dn([s], r);
if (c && c.name === "OPERATION_PATH_UNRESOLVABLE")
throw new ce("Cannot perform the operation from a path that does not exist", "OPERATION_FROM_UNRESOLVABLE", t, e, r);
}
}
} else throw new ce("Operation `op` property is not one of operations defined in RFC-6902", "OPERATION_OP_INVALID", t, e, r);
}
function dn(e, t, r) {
try {
if (!Array.isArray(e))
throw new ce("Patch sequence must be an array", "SEQUENCE_NOT_AN_ARRAY");
if (t)
_t(we(t), we(e), r || !0);
else {
r = r || pt;
for (var n = 0; n < e.length; n++)
r(e[n], n, t, void 0);
}
} catch (o) {
if (o instanceof ce)
return o;
throw o;
}
}
function et(e, t) {
if (e === t)
return !0;
if (e && t && typeof e == "object" && typeof t == "object") {
var r = Array.isArray(e), n = Array.isArray(t), o, i, s;
if (r && n) {
if (i = e.length, i != t.length)
return !1;
for (o = i; o-- !== 0; )
if (!et(e[o], t[o]))
return !1;
return !0;
}
if (r != n)
return !1;
var c = Object.keys(e);
if (i = c.length, i !== Object.keys(t).length)
return !1;
for (o = i; o-- !== 0; )
if (!t.hasOwnProperty(c[o]))
return !1;
for (o = i; o-- !== 0; )
if (s = c[o], !et(e[s], t[s]))
return !1;
return !0;
}
return e !== e && t !== t;
}
const Er = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
JsonPatchError: ce,
_areEquals: et,
applyOperation: xe,
applyPatch: _t,
applyReducer: Nr,
deepClone: wr,
getValueByPointer: ft,
validate: dn,
validator: pt
}, Symbol.toStringTag, { value: "Module" }));
/*!
* https://github.com/Starcounter-Jack/JSON-Patch
* (c) 2017-2021 Joachim Wester
* MIT license
*/
var Pt = /* @__PURE__ */ new WeakMap(), Tr = (
/** @class */
/* @__PURE__ */ (function() {
function e(t) {
this.observers = /* @__PURE__ */ new Map(), this.obj = t;
}
return e;
})()
), Ir = (
/** @class */
/* @__PURE__ */ (function() {
function e(t, r) {
this.callback = t, this.observer = r;
}
return e;
})()
);
function Lr(e) {
return Pt.get(e);
}
function Sr(e, t) {
return e.observers.get(t);
}
function kr(e, t) {
e.observers.delete(t.callback);
}
function _r(e, t) {
t.unobserve();
}
function Pr(e, t) {
var r = [], n, o = Lr(e);
if (!o)
o = new Tr(e), Pt.set(e, o);
else {
var i = Sr(o, t);
n = i && i.observer;
}
if (n)
return n;
if (n = {}, o.value = we(e), t) {
n.callback = t, n.next = null;
var s = function() {
St(n);
}, c = function() {
clearTimeout(n.next), n.next = setTimeout(s);
};
typeof window < "u" && (window.addEventListener("mouseup", c), window.addEventListener("keyup", c), window.addEventListener("mousedown", c), window.addEventListener("keydown", c), window.addEventListener("change", c));
}
return n.patches = r, n.object = e, n.unobserve = function() {
St(n), clearTimeout(n.next), kr(o, n), typeof window < "u" && (window.removeEventListener("mouseup", c), window.removeEventListener("keyup", c), window.removeEventListener("mousedown", c), window.removeEventListener("keydown", c), window.removeEventListener("change", c));
}, o.observers.set(t, new Ir(t, n)), n;
}
function St(e, t) {
t === void 0 && (t = !1);
var r = Pt.get(e.object);
jt(r.value, e.object, e.patches, "", t), e.patches.length && _t(r.value, e.patches);
var n = e.patches;
return n.length > 0 && (e.patches = [], e.callback && e.callback(n)), n;
}
function jt(e, t, r, n, o) {
if (t !== e) {
typeof t.toJSON == "function" && (t = t.toJSON());
for (var i = Tt(t), s = Tt(e), c = !1, a = s.length - 1; a >= 0; a--) {
var u = s[a], l = e[u];
if (Et(t, u) && !(t[u] === void 0 && l !== void 0 && Array.isArray(t) === !1)) {
var y = t[u];
typeof l == "object" && l != null && typeof y == "object" && y != null && Array.isArray(l) === Array.isArray(y) ? jt(l, y, r, n + "/" + Me(u), o) : l !== y && (o && r.push({ op: "test", path: n + "/" + Me(u), value: we(l) }), r.push({ op: "replace", path: n + "/" + Me(u), value: we(y) }));
} else Array.isArray(e) === Array.isArray(t) ? (o && r.push({ op: "test", path: n + "/" + Me(u), value: we(l) }), r.push({ op: "remove", path: n + "/" + Me(u) }), c = !0) : (o && r.push({ op: "test", path: n, value: e }), r.push({ op: "replace", path: n, value: t }));
}
if (!(!c && i.length == s.length))
for (var a = 0; a < i.length; a++) {
var u = i[a];
!Et(e, u) && t[u] !== void 0 && r.push({ op: "add", path: n + "/" + Me(u), value: we(t[u]) });
}
}
}
function We(e, t, r) {
r === void 0 && (r = !1);
var n = [];
return jt(e, t, n, "", r), n;
}
const jr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
compare: We,
generate: St,
observe: Pr,
unobserve: _r
}, Symbol.toStringTag, { value: "Module" }));
Object.assign({}, Er, jr, {
JsonPatchError: pn,
deepClone: we,
escapePathComponent: Me,
unescapePathComponent: fn
});
const ht = "oneOf", Rt = "anyOf", Dt = "allOf";
function Mt(e) {
return !!(e[ht] || e[Rt] || e[Dt]);
}
function hn(e) {
const t = e[ht] || e[Rt] || e[Dt];
return Array.isArray(t) ? t : void 0;
}
function ct(e) {
return e.oneOf ? ht : e.anyOf ? Rt : e.allOf ? Dt : "";
}
function Rr(e, t) {
if (typeof t != "object" || t === null || Array.isArray(t))
return null;
const r = t, n = /* @__PURE__ */ new Set();
for (const o of e) {
const i = o.properties;
if (i)
for (const [s, c] of Object.entries(i))
c && typeof c == "object" && "const" in c && n.add(s);
}
for (const o of n)
if (o in r)
return { field: o, value: r[o] };
return null;
}
function at(e, t, r = ht) {
var n;
if (t.length === 0)
throw new Error("No variants provided to chooseSubschemaSync");
if (e === null)
for (let o = 0; o < t.length; o++) {
const i = t[o];
if (i.const === null)
return { selectedIndex: o, schema: i };
}
if (typeof e == "object" && e !== null && !Array.isArray(e)) {
const o = e, i = Rr(t, e);
if (i)
for (let s = 0; s < t.length; s++) {
const c = t[s], a = (n = c.properties) == null ? void 0 : n[i.field];
if (a && typeof a == "object" && "const" in a && a.const === i.value)
return { selectedIndex: s, schema: c };
}
for (let s = 0; s < t.length; s++) {
const c = t[s];
if (c.type === "object" && c.properties) {
const a = c.required || [];
if (a.every((l) => l in o) && a.length > 0) {
let l = !0;
for (const [y, p] of Object.entries(c.properties))
if (p && typeof p == "object" && "const" in p) {
const d = p.const;
if (o[y] !== d) {
l = !1;
break;
}
}
if (l)
return { selectedIndex: s, schema: c };
}
}
}
}
for (let o = 0; o < t.length; o++) {
const i = t[o];
if (i.const !== void 0 && i.const === e)
return { selectedIndex: o, schema: i };
}
for (let o = 0; o < t.length; o++) {
const i = t[o];
if (i.type) {
const s = Array.isArray(e) ? "array" : typeof e;
if ((Array.isArray(i.type) ? i.type[0] : i.type) === s)
return { selectedIndex: o, schema: i };
}
}
return { selectedIndex: 0, schema: t[0] };
}
function kt(e, t, r) {
const n = !ye(e, t), o = !ye(e, r);
return n && o ? ye(t, r) ? M.SAME_CHANGE : M.TRUE_CONFLICT : n ? M.INPUT1_ONLY : o ? M.INPUT2_ONLY : M.SAME_CHANGE;
}
function Pe(e, t) {
try {
const r = ln(e);
if (!r)
return { start: 1, end: 1 };
const n = t.split("/").filter(Boolean).map((s) => {
const c = Number.parseInt(s, 10);
return !Number.isNaN(c) && String(c) === s ? c : s;
}), o = n.length === 0 ? r : un(r, n);
return o ? {
start: rn(e, o.offset),
end: rn(e, o.offset + o.length)
} : { start: 1, end: 1 };
} catch {
return { start: 1, end: 1 };
}
}
function rn(e, t) {
return e.substring(0, t).split(`
`).length;
}
function Dr(e, t) {
const r = /* @__PURE__ */ new Map(), n = (o) => {
const i = o.split("/").filter(Boolean);
return i.length > 0 ? `/${i[0]}` : "/";
};
for (const o of e) {
const i = n(o.path);
r.has(i) || r.set(i, { patches1: [], patches2: [] });
const s = r.get(i);
s && s.patches1.push(o);
}
for (const o of t) {
const i = n(o.path);
r.has(i) || r.set(i, { patches1: [], patches2: [] });
const s = r.get(i);
s && s.patches2.push(o);
}
return r;
}
function Mr(e, t, r, n, o, i) {
const s = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map(), u = [], l = [];
for (const v of e) {
const h = v.path.match(/^(\/[^/]+(?:\/[^/]+)*)\/(\d+)(?:\/|$)/);
if (h) {
const m = h[1];
c.has(m) || c.set(m, []);
const f = c.get(m);
f && f.push(v);
} else
u.push(v);
}
for (const v of t) {
const h = v.path.match(/^(\/[^/]+(?:\/[^/]+)*)\/(\d+)(?:\/|$)/);
if (h) {
const m = h[1];
a.has(m) || a.set(m, []);
const f = a.get(m);
f && f.push(v);
} else
l.push(v);
}
const y = /* @__PURE__ */ new Set([...c.keys(), ...a.keys()]);
for (const v of y) {
const h = W(r, v), m = W(n, v), f = W(o, v);
if (!Array.isArray(h) || !Array.isArray(m) || !Array.isArray(f)) {
const N = c.get(v) || [], B = a.get(v) || [];
for (const D of N) {
const x = D.path.match(/^(\/[^/]+(?:\/[^/]+)*\/\d+)(?:\/|$)/);
if (x) {
const V = x[1];
s.has(V) || s.set(V, { patches1: [], patches2: [] });
const A = s.get(V);
A && A.patches1.push(D);
}
}
for (const D of B) {
const x = D.path.match(/^(\/[^/]+(?:\/[^/]+)*\/\d+)(?:\/|$)/);
if (x) {
const V = x[1];
s.has(V) || s.set(V, { patches1: [], patches2: [] });
const A = s.get(V);
A && A.patches2.push(D);
}
}
continue;
}
const T