UNPKG

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
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