11564 lines
386 KiB
JavaScript
11564 lines
386 KiB
JavaScript
(() => {
|
|
'use strict';
|
|
var e = {};
|
|
e.g = (function () {
|
|
if ('object' == typeof globalThis) return globalThis;
|
|
try {
|
|
return this || new Function('return this')();
|
|
} catch (e) {
|
|
if ('object' == typeof window) return window;
|
|
}
|
|
})();
|
|
const t = new (class {
|
|
constructor() {
|
|
(this.listeners = []),
|
|
(this.unexpectedErrorHandler = function (e) {
|
|
setTimeout(() => {
|
|
if (e.stack) throw new Error(e.message + '\n\n' + e.stack);
|
|
throw e;
|
|
}, 0);
|
|
});
|
|
}
|
|
emit(e) {
|
|
this.listeners.forEach((t) => {
|
|
t(e);
|
|
});
|
|
}
|
|
onUnexpectedError(e) {
|
|
this.unexpectedErrorHandler(e), this.emit(e);
|
|
}
|
|
onUnexpectedExternalError(e) {
|
|
this.unexpectedErrorHandler(e);
|
|
}
|
|
})();
|
|
function n(e) {
|
|
var n;
|
|
((n = e) instanceof Error && n.name === i && n.message === i) ||
|
|
t.onUnexpectedError(e);
|
|
}
|
|
function r(e) {
|
|
if (e instanceof Error) {
|
|
let { name: t, message: n } = e;
|
|
return {
|
|
$isError: !0,
|
|
name: t,
|
|
message: n,
|
|
stack: e.stacktrace || e.stack,
|
|
};
|
|
}
|
|
return e;
|
|
}
|
|
const i = 'Canceled';
|
|
var o;
|
|
function s(e) {}
|
|
!(function (e) {
|
|
e.is = function (e) {
|
|
return (
|
|
e && 'object' == typeof e && 'function' == typeof e[Symbol.iterator]
|
|
);
|
|
};
|
|
const t = Object.freeze([]);
|
|
(e.empty = function () {
|
|
return t;
|
|
}),
|
|
(e.single = function* (e) {
|
|
yield e;
|
|
}),
|
|
(e.from = function (e) {
|
|
return e || t;
|
|
}),
|
|
(e.first = function (e) {
|
|
return e[Symbol.iterator]().next().value;
|
|
}),
|
|
(e.some = function (e, t) {
|
|
for (const n of e) if (t(n)) return !0;
|
|
return !1;
|
|
}),
|
|
(e.filter = function* (e, t) {
|
|
for (const n of e) t(n) && (yield n);
|
|
}),
|
|
(e.map = function* (e, t) {
|
|
for (const n of e) yield t(n);
|
|
}),
|
|
(e.concat = function* (...e) {
|
|
for (const t of e) for (const e of t) yield e;
|
|
}),
|
|
(e.consume = function (t, n = Number.POSITIVE_INFINITY) {
|
|
const r = [];
|
|
if (0 === n) return [r, t];
|
|
const i = t[Symbol.iterator]();
|
|
for (let t = 0; t < n; t++) {
|
|
const t = i.next();
|
|
if (t.done) return [r, e.empty()];
|
|
r.push(t.value);
|
|
}
|
|
return [r, { [Symbol.iterator]: () => i }];
|
|
});
|
|
})(o || (o = {}));
|
|
class a extends Error {
|
|
constructor(e) {
|
|
super(
|
|
`Encounter errors while disposing of store. Errors: [${e.join(', ')}]`
|
|
),
|
|
(this.errors = e);
|
|
}
|
|
}
|
|
function u(e) {
|
|
if (o.is(e)) {
|
|
let t = [];
|
|
for (const n of e)
|
|
if (n)
|
|
try {
|
|
n.dispose();
|
|
} catch (e) {
|
|
t.push(e);
|
|
}
|
|
if (1 === t.length) throw t[0];
|
|
if (t.length > 1) throw new a(t);
|
|
return Array.isArray(e) ? [] : e;
|
|
}
|
|
if (e) return e.dispose(), e;
|
|
}
|
|
class l {
|
|
constructor() {
|
|
(this._toDispose = new Set()), (this._isDisposed = !1);
|
|
}
|
|
dispose() {
|
|
this._isDisposed || ((this._isDisposed = !0), this.clear());
|
|
}
|
|
clear() {
|
|
try {
|
|
u(this._toDispose.values());
|
|
} finally {
|
|
this._toDispose.clear();
|
|
}
|
|
}
|
|
add(e) {
|
|
if (!e) return e;
|
|
if (e === this)
|
|
throw new Error('Cannot register a disposable on itself!');
|
|
return (
|
|
this._isDisposed
|
|
? l.DISABLE_DISPOSED_WARNING ||
|
|
console.warn(
|
|
new Error(
|
|
'Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!'
|
|
).stack
|
|
)
|
|
: this._toDispose.add(e),
|
|
e
|
|
);
|
|
}
|
|
}
|
|
l.DISABLE_DISPOSED_WARNING = !1;
|
|
class c {
|
|
constructor() {
|
|
this._store = new l();
|
|
}
|
|
dispose() {
|
|
this._store.dispose();
|
|
}
|
|
_register(e) {
|
|
if (e === this)
|
|
throw new Error('Cannot register a disposable on itself!');
|
|
return this._store.add(e);
|
|
}
|
|
}
|
|
c.None = Object.freeze({ dispose() {} });
|
|
const h = 'en';
|
|
let f,
|
|
d,
|
|
m,
|
|
g = !1,
|
|
p = !1,
|
|
v = !1,
|
|
y = !1,
|
|
b = !1,
|
|
C = !1,
|
|
_ = null;
|
|
const S =
|
|
'undefined' != typeof process &&
|
|
void 0 !== process.versions &&
|
|
void 0 !== process.versions.electron &&
|
|
'renderer' === process.type;
|
|
if ('object' != typeof navigator || S) {
|
|
if ('object' == typeof process) {
|
|
(g = 'win32' === process.platform),
|
|
(p = 'darwin' === process.platform),
|
|
(v = 'linux' === process.platform),
|
|
(f = h),
|
|
(_ = h);
|
|
const e = process.env.VSCODE_NLS_CONFIG;
|
|
if (e)
|
|
try {
|
|
const t = JSON.parse(e),
|
|
n = t.availableLanguages['*'];
|
|
(f = t.locale), (_ = n || h), (d = t._translationsConfigFile);
|
|
} catch (e) {}
|
|
y = !0;
|
|
}
|
|
} else
|
|
(m = navigator.userAgent),
|
|
(g = m.indexOf('Windows') >= 0),
|
|
(p = m.indexOf('Macintosh') >= 0),
|
|
(m.indexOf('Macintosh') >= 0 ||
|
|
m.indexOf('iPad') >= 0 ||
|
|
m.indexOf('iPhone') >= 0) &&
|
|
!!navigator.maxTouchPoints &&
|
|
navigator.maxTouchPoints > 0,
|
|
(v = m.indexOf('Linux') >= 0),
|
|
!0,
|
|
(f = navigator.language),
|
|
(_ = f);
|
|
let E = 0;
|
|
p ? (E = 1) : g ? (E = 3) : v && (E = 2);
|
|
const A = g,
|
|
x = p,
|
|
N = 'object' == typeof self ? self : 'object' == typeof e.g ? e.g : {},
|
|
L = (function () {
|
|
if (N.setImmediate) return N.setImmediate.bind(N);
|
|
if ('function' == typeof N.postMessage && !N.importScripts) {
|
|
let e = [];
|
|
N.addEventListener('message', (t) => {
|
|
if (t.data && t.data.vscodeSetImmediateId)
|
|
for (let n = 0, r = e.length; n < r; n++) {
|
|
const r = e[n];
|
|
if (r.id === t.data.vscodeSetImmediateId)
|
|
return e.splice(n, 1), void r.callback();
|
|
}
|
|
});
|
|
let t = 0;
|
|
return (n) => {
|
|
const r = ++t;
|
|
e.push({ id: r, callback: n }),
|
|
N.postMessage({ vscodeSetImmediateId: r }, '*');
|
|
};
|
|
}
|
|
if (
|
|
'undefined' != typeof process &&
|
|
'function' == typeof process.nextTick
|
|
)
|
|
return process.nextTick.bind(process);
|
|
const e = Promise.resolve();
|
|
return (t) => e.then(t);
|
|
})();
|
|
function w(e) {
|
|
const t = [];
|
|
for (const n of (function (e) {
|
|
let t = [],
|
|
n = Object.getPrototypeOf(e);
|
|
for (; Object.prototype !== n; )
|
|
(t = t.concat(Object.getOwnPropertyNames(n))),
|
|
(n = Object.getPrototypeOf(n));
|
|
return t;
|
|
})(e))
|
|
'function' == typeof e[n] && t.push(n);
|
|
return t;
|
|
}
|
|
function T(e, t) {
|
|
const n = (e) =>
|
|
function () {
|
|
const n = Array.prototype.slice.call(arguments, 0);
|
|
return t(e, n);
|
|
};
|
|
let r = {};
|
|
for (const t of e) r[t] = n(t);
|
|
return r;
|
|
}
|
|
class k {
|
|
constructor(e) {
|
|
(this._workerId = -1),
|
|
(this._handler = e),
|
|
(this._lastSentReq = 0),
|
|
(this._pendingReplies = Object.create(null));
|
|
}
|
|
setWorkerId(e) {
|
|
this._workerId = e;
|
|
}
|
|
sendMessage(e, t) {
|
|
let n = String(++this._lastSentReq);
|
|
return new Promise((r, i) => {
|
|
(this._pendingReplies[n] = { resolve: r, reject: i }),
|
|
this._send({ vsWorker: this._workerId, req: n, method: e, args: t });
|
|
});
|
|
}
|
|
handleMessage(e) {
|
|
e &&
|
|
e.vsWorker &&
|
|
((-1 !== this._workerId && e.vsWorker !== this._workerId) ||
|
|
this._handleMessage(e));
|
|
}
|
|
_handleMessage(e) {
|
|
if (e.seq) {
|
|
let t = e;
|
|
if (!this._pendingReplies[t.seq])
|
|
return void console.warn('Got reply to unknown seq');
|
|
let n = this._pendingReplies[t.seq];
|
|
if ((delete this._pendingReplies[t.seq], t.err)) {
|
|
let e = t.err;
|
|
return (
|
|
t.err.$isError &&
|
|
((e = new Error()),
|
|
(e.name = t.err.name),
|
|
(e.message = t.err.message),
|
|
(e.stack = t.err.stack)),
|
|
void n.reject(e)
|
|
);
|
|
}
|
|
return void n.resolve(t.res);
|
|
}
|
|
let t = e,
|
|
n = t.req;
|
|
this._handler.handleMessage(t.method, t.args).then(
|
|
(e) => {
|
|
this._send({ vsWorker: this._workerId, seq: n, res: e, err: void 0 });
|
|
},
|
|
(e) => {
|
|
e.detail instanceof Error && (e.detail = r(e.detail)),
|
|
this._send({
|
|
vsWorker: this._workerId,
|
|
seq: n,
|
|
res: void 0,
|
|
err: r(e),
|
|
});
|
|
}
|
|
);
|
|
}
|
|
_send(e) {
|
|
let t = [];
|
|
if (e.req) {
|
|
const n = e;
|
|
for (let e = 0; e < n.args.length; e++)
|
|
n.args[e] instanceof ArrayBuffer && t.push(n.args[e]);
|
|
} else {
|
|
const n = e;
|
|
n.res instanceof ArrayBuffer && t.push(n.res);
|
|
}
|
|
this._handler.sendMessage(e, t);
|
|
}
|
|
}
|
|
class O {
|
|
constructor(e, t) {
|
|
(this._requestHandlerFactory = t),
|
|
(this._requestHandler = null),
|
|
(this._protocol = new k({
|
|
sendMessage: (t, n) => {
|
|
e(t, n);
|
|
},
|
|
handleMessage: (e, t) => this._handleMessage(e, t),
|
|
}));
|
|
}
|
|
onmessage(e) {
|
|
this._protocol.handleMessage(e);
|
|
}
|
|
_handleMessage(e, t) {
|
|
if ('$initialize' === e) return this.initialize(t[0], t[1], t[2], t[3]);
|
|
if (!this._requestHandler || 'function' != typeof this._requestHandler[e])
|
|
return Promise.reject(
|
|
new Error('Missing requestHandler or method: ' + e)
|
|
);
|
|
try {
|
|
return Promise.resolve(
|
|
this._requestHandler[e].apply(this._requestHandler, t)
|
|
);
|
|
} catch (e) {
|
|
return Promise.reject(e);
|
|
}
|
|
}
|
|
initialize(e, t, n, r) {
|
|
this._protocol.setWorkerId(e);
|
|
const i = T(r, (e, t) => this._protocol.sendMessage(e, t));
|
|
return this._requestHandlerFactory
|
|
? ((this._requestHandler = this._requestHandlerFactory(i)),
|
|
Promise.resolve(w(this._requestHandler)))
|
|
: (t &&
|
|
(void 0 !== t.baseUrl && delete t.baseUrl,
|
|
void 0 !== t.paths && void 0 !== t.paths.vs && delete t.paths.vs,
|
|
(t.catchError = !0),
|
|
self.require.config(t)),
|
|
new Promise((e, t) => {
|
|
self.require(
|
|
[n],
|
|
(n) => {
|
|
(this._requestHandler = n.create(i)),
|
|
this._requestHandler
|
|
? e(w(this._requestHandler))
|
|
: t(new Error('No RequestHandler!'));
|
|
},
|
|
t
|
|
);
|
|
}));
|
|
}
|
|
}
|
|
function I(e, t) {
|
|
return M(e, t, 0, e.length - 1, []), e;
|
|
}
|
|
function M(e, t, n, r, i) {
|
|
if (r <= n) return;
|
|
const o = (n + (r - n) / 2) | 0;
|
|
M(e, t, n, o, i),
|
|
M(e, t, o + 1, r, i),
|
|
t(e[o], e[o + 1]) <= 0 ||
|
|
(function (e, t, n, r, i, o) {
|
|
let s = n,
|
|
a = r + 1;
|
|
for (let t = n; t <= i; t++) o[t] = e[t];
|
|
for (let u = n; u <= i; u++)
|
|
s > r
|
|
? (e[u] = o[a++])
|
|
: a > i
|
|
? (e[u] = o[s++])
|
|
: t(o[a], o[s]) < 0
|
|
? (e[u] = o[a++])
|
|
: (e[u] = o[s++]);
|
|
})(e, t, n, o, r, i);
|
|
}
|
|
class P {
|
|
constructor(e, t, n, r) {
|
|
(this.originalStart = e),
|
|
(this.originalLength = t),
|
|
(this.modifiedStart = n),
|
|
(this.modifiedLength = r);
|
|
}
|
|
getOriginalEnd() {
|
|
return this.originalStart + this.originalLength;
|
|
}
|
|
getModifiedEnd() {
|
|
return this.modifiedStart + this.modifiedLength;
|
|
}
|
|
}
|
|
function R(e) {
|
|
return 55296 <= e && e <= 56319;
|
|
}
|
|
function D(e) {
|
|
return 56320 <= e && e <= 57343;
|
|
}
|
|
String.fromCharCode(65279);
|
|
class F {
|
|
constructor() {
|
|
this._data = JSON.parse(
|
|
'[0,0,0,51592,51592,11,44424,44424,11,72251,72254,5,7150,7150,7,48008,48008,11,55176,55176,11,128420,128420,14,3276,3277,5,9979,9980,14,46216,46216,11,49800,49800,11,53384,53384,11,70726,70726,5,122915,122916,5,129320,129327,14,2558,2558,5,5906,5908,5,9762,9763,14,43360,43388,8,45320,45320,11,47112,47112,11,48904,48904,11,50696,50696,11,52488,52488,11,54280,54280,11,70082,70083,1,71350,71350,7,73111,73111,5,127892,127893,14,128726,128727,14,129473,129474,14,2027,2035,5,2901,2902,5,3784,3789,5,6754,6754,5,8418,8420,5,9877,9877,14,11088,11088,14,44008,44008,5,44872,44872,11,45768,45768,11,46664,46664,11,47560,47560,11,48456,48456,11,49352,49352,11,50248,50248,11,51144,51144,11,52040,52040,11,52936,52936,11,53832,53832,11,54728,54728,11,69811,69814,5,70459,70460,5,71096,71099,7,71998,71998,5,72874,72880,5,119149,119149,7,127374,127374,14,128335,128335,14,128482,128482,14,128765,128767,14,129399,129400,14,129680,129685,14,1476,1477,5,2377,2380,7,2759,2760,5,3137,3140,7,3458,3459,7,4153,4154,5,6432,6434,5,6978,6978,5,7675,7679,5,9723,9726,14,9823,9823,14,9919,9923,14,10035,10036,14,42736,42737,5,43596,43596,5,44200,44200,11,44648,44648,11,45096,45096,11,45544,45544,11,45992,45992,11,46440,46440,11,46888,46888,11,47336,47336,11,47784,47784,11,48232,48232,11,48680,48680,11,49128,49128,11,49576,49576,11,50024,50024,11,50472,50472,11,50920,50920,11,51368,51368,11,51816,51816,11,52264,52264,11,52712,52712,11,53160,53160,11,53608,53608,11,54056,54056,11,54504,54504,11,54952,54952,11,68108,68111,5,69933,69940,5,70197,70197,7,70498,70499,7,70845,70845,5,71229,71229,5,71727,71735,5,72154,72155,5,72344,72345,5,73023,73029,5,94095,94098,5,121403,121452,5,126981,127182,14,127538,127546,14,127990,127990,14,128391,128391,14,128445,128449,14,128500,128505,14,128752,128752,14,129160,129167,14,129356,129356,14,129432,129442,14,129648,129651,14,129751,131069,14,173,173,4,1757,1757,1,2274,2274,1,2494,2494,5,2641,2641,5,2876,2876,5,3014,3016,7,3262,3262,7,3393,3396,5,3570,3571,7,3968,3972,5,4228,4228,7,6086,6086,5,6679,6680,5,6912,6915,5,7080,7081,5,7380,7392,5,8252,8252,14,9096,9096,14,9748,9749,14,9784,9786,14,9833,9850,14,9890,9894,14,9938,9938,14,9999,9999,14,10085,10087,14,12349,12349,14,43136,43137,7,43454,43456,7,43755,43755,7,44088,44088,11,44312,44312,11,44536,44536,11,44760,44760,11,44984,44984,11,45208,45208,11,45432,45432,11,45656,45656,11,45880,45880,11,46104,46104,11,46328,46328,11,46552,46552,11,46776,46776,11,47000,47000,11,47224,47224,11,47448,47448,11,47672,47672,11,47896,47896,11,48120,48120,11,48344,48344,11,48568,48568,11,48792,48792,11,49016,49016,11,49240,49240,11,49464,49464,11,49688,49688,11,49912,49912,11,50136,50136,11,50360,50360,11,50584,50584,11,50808,50808,11,51032,51032,11,51256,51256,11,51480,51480,11,51704,51704,11,51928,51928,11,52152,52152,11,52376,52376,11,52600,52600,11,52824,52824,11,53048,53048,11,53272,53272,11,53496,53496,11,53720,53720,11,53944,53944,11,54168,54168,11,54392,54392,11,54616,54616,11,54840,54840,11,55064,55064,11,65438,65439,5,69633,69633,5,69837,69837,1,70018,70018,7,70188,70190,7,70368,70370,7,70465,70468,7,70712,70719,5,70835,70840,5,70850,70851,5,71132,71133,5,71340,71340,7,71458,71461,5,71985,71989,7,72002,72002,7,72193,72202,5,72281,72283,5,72766,72766,7,72885,72886,5,73104,73105,5,92912,92916,5,113824,113827,4,119173,119179,5,121505,121519,5,125136,125142,5,127279,127279,14,127489,127490,14,127570,127743,14,127900,127901,14,128254,128254,14,128369,128370,14,128400,128400,14,128425,128432,14,128468,128475,14,128489,128494,14,128715,128720,14,128745,128745,14,128759,128760,14,129004,129023,14,129296,129304,14,129340,129342,14,129388,129392,14,129404,129407,14,129454,129455,14,129485,129487,14,129659,129663,14,129719,129727,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2363,2363,7,2402,2403,5,2507,2508,7,2622,2624,7,2691,2691,7,2786,2787,5,2881,2884,5,3006,3006,5,3072,3072,5,3170,3171,5,3267,3268,7,3330,3331,7,3406,3406,1,3538,3540,5,3655,3662,5,3897,3897,5,4038,4038,5,4184,4185,5,4352,4447,8,6068,6069,5,6155,6157,5,6448,6449,7,6742,6742,5,6783,6783,5,6966,6970,5,7042,7042,7,7143,7143,7,7212,7219,5,7412,7412,5,8206,8207,4,8294,8303,4,8596,8601,14,9410,9410,14,9742,9742,14,9757,9757,14,9770,9770,14,9794,9794,14,9828,9828,14,9855,9855,14,9882,9882,14,9900,9903,14,9929,9933,14,9963,9967,14,9987,9988,14,10006,10006,14,10062,10062,14,10175,10175,14,11744,11775,5,42607,42607,5,43043,43044,7,43263,43263,5,43444,43445,7,43569,43570,5,43698,43700,5,43766,43766,5,44032,44032,11,44144,44144,11,44256,44256,11,44368,44368,11,44480,44480,11,44592,44592,11,44704,44704,11,44816,44816,11,44928,44928,11,45040,45040,11,45152,45152,11,45264,45264,11,45376,45376,11,45488,45488,11,45600,45600,11,45712,45712,11,45824,45824,11,45936,45936,11,46048,46048,11,46160,46160,11,46272,46272,11,46384,46384,11,46496,46496,11,46608,46608,11,46720,46720,11,46832,46832,11,46944,46944,11,47056,47056,11,47168,47168,11,47280,47280,11,47392,47392,11,47504,47504,11,47616,47616,11,47728,47728,11,47840,47840,11,47952,47952,11,48064,48064,11,48176,48176,11,48288,48288,11,48400,48400,11,48512,48512,11,48624,48624,11,48736,48736,11,48848,48848,11,48960,48960,11,49072,49072,11,49184,49184,11,49296,49296,11,49408,49408,11,49520,49520,11,49632,49632,11,49744,49744,11,49856,49856,11,49968,49968,11,50080,50080,11,50192,50192,11,50304,50304,11,50416,50416,11,50528,50528,11,50640,50640,11,50752,50752,11,50864,50864,11,50976,50976,11,51088,51088,11,51200,51200,11,51312,51312,11,51424,51424,11,51536,51536,11,51648,51648,11,51760,51760,11,51872,51872,11,51984,51984,11,52096,52096,11,52208,52208,11,52320,52320,11,52432,52432,11,52544,52544,11,52656,52656,11,52768,52768,11,52880,52880,11,52992,52992,11,53104,53104,11,53216,53216,11,53328,53328,11,53440,53440,11,53552,53552,11,53664,53664,11,53776,53776,11,53888,53888,11,54000,54000,11,54112,54112,11,54224,54224,11,54336,54336,11,54448,54448,11,54560,54560,11,54672,54672,11,54784,54784,11,54896,54896,11,55008,55008,11,55120,55120,11,64286,64286,5,66272,66272,5,68900,68903,5,69762,69762,7,69817,69818,5,69927,69931,5,70003,70003,5,70070,70078,5,70094,70094,7,70194,70195,7,70206,70206,5,70400,70401,5,70463,70463,7,70475,70477,7,70512,70516,5,70722,70724,5,70832,70832,5,70842,70842,5,70847,70848,5,71088,71089,7,71102,71102,7,71219,71226,5,71231,71232,5,71342,71343,7,71453,71455,5,71463,71467,5,71737,71738,5,71995,71996,5,72000,72000,7,72145,72147,7,72160,72160,5,72249,72249,7,72273,72278,5,72330,72342,5,72752,72758,5,72850,72871,5,72882,72883,5,73018,73018,5,73031,73031,5,73109,73109,5,73461,73462,7,94031,94031,5,94192,94193,7,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,126976,126979,14,127184,127231,14,127344,127345,14,127405,127461,14,127514,127514,14,127561,127567,14,127778,127779,14,127896,127896,14,127985,127986,14,127995,127999,5,128326,128328,14,128360,128366,14,128378,128378,14,128394,128397,14,128405,128406,14,128422,128423,14,128435,128443,14,128453,128464,14,128479,128480,14,128484,128487,14,128496,128498,14,128640,128709,14,128723,128724,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129096,129103,14,129292,129292,14,129311,129311,14,129329,129330,14,129344,129349,14,129360,129374,14,129394,129394,14,129402,129402,14,129413,129425,14,129445,129450,14,129466,129471,14,129483,129483,14,129511,129535,14,129653,129655,14,129667,129670,14,129705,129711,14,129731,129743,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2307,2307,7,2366,2368,7,2382,2383,7,2434,2435,7,2497,2500,5,2519,2519,5,2563,2563,7,2631,2632,5,2677,2677,5,2750,2752,7,2763,2764,7,2817,2817,5,2879,2879,5,2891,2892,7,2914,2915,5,3008,3008,5,3021,3021,5,3076,3076,5,3146,3149,5,3202,3203,7,3264,3265,7,3271,3272,7,3298,3299,5,3390,3390,5,3402,3404,7,3426,3427,5,3535,3535,5,3544,3550,7,3635,3635,7,3763,3763,7,3893,3893,5,3953,3966,5,3981,3991,5,4145,4145,7,4157,4158,5,4209,4212,5,4237,4237,5,4520,4607,10,5970,5971,5,6071,6077,5,6089,6099,5,6277,6278,5,6439,6440,5,6451,6456,7,6683,6683,5,6744,6750,5,6765,6770,7,6846,6846,5,6964,6964,5,6972,6972,5,7019,7027,5,7074,7077,5,7083,7085,5,7146,7148,7,7154,7155,7,7222,7223,5,7394,7400,5,7416,7417,5,8204,8204,5,8233,8233,4,8288,8292,4,8413,8416,5,8482,8482,14,8986,8987,14,9193,9203,14,9654,9654,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9775,14,9792,9792,14,9800,9811,14,9825,9826,14,9831,9831,14,9852,9853,14,9872,9873,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9936,9936,14,9941,9960,14,9974,9974,14,9982,9985,14,9992,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10145,10145,14,11013,11015,14,11503,11505,5,12334,12335,5,12951,12951,14,42612,42621,5,43014,43014,5,43047,43047,7,43204,43205,5,43335,43345,5,43395,43395,7,43450,43451,7,43561,43566,5,43573,43574,5,43644,43644,5,43710,43711,5,43758,43759,7,44005,44005,5,44012,44012,7,44060,44060,11,44116,44116,11,44172,44172,11,44228,44228,11,44284,44284,11,44340,44340,11,44396,44396,11,44452,44452,11,44508,44508,11,44564,44564,11,44620,44620,11,44676,44676,11,44732,44732,11,44788,44788,11,44844,44844,11,44900,44900,11,44956,44956,11,45012,45012,11,45068,45068,11,45124,45124,11,45180,45180,11,45236,45236,11,45292,45292,11,45348,45348,11,45404,45404,11,45460,45460,11,45516,45516,11,45572,45572,11,45628,45628,11,45684,45684,11,45740,45740,11,45796,45796,11,45852,45852,11,45908,45908,11,45964,45964,11,46020,46020,11,46076,46076,11,46132,46132,11,46188,46188,11,46244,46244,11,46300,46300,11,46356,46356,11,46412,46412,11,46468,46468,11,46524,46524,11,46580,46580,11,46636,46636,11,46692,46692,11,46748,46748,11,46804,46804,11,46860,46860,11,46916,46916,11,46972,46972,11,47028,47028,11,47084,47084,11,47140,47140,11,47196,47196,11,47252,47252,11,47308,47308,11,47364,47364,11,47420,47420,11,47476,47476,11,47532,47532,11,47588,47588,11,47644,47644,11,47700,47700,11,47756,47756,11,47812,47812,11,47868,47868,11,47924,47924,11,47980,47980,11,48036,48036,11,48092,48092,11,48148,48148,11,48204,48204,11,48260,48260,11,48316,48316,11,48372,48372,11,48428,48428,11,48484,48484,11,48540,48540,11,48596,48596,11,48652,48652,11,48708,48708,11,48764,48764,11,48820,48820,11,48876,48876,11,48932,48932,11,48988,48988,11,49044,49044,11,49100,49100,11,49156,49156,11,49212,49212,11,49268,49268,11,49324,49324,11,49380,49380,11,49436,49436,11,49492,49492,11,49548,49548,11,49604,49604,11,49660,49660,11,49716,49716,11,49772,49772,11,49828,49828,11,49884,49884,11,49940,49940,11,49996,49996,11,50052,50052,11,50108,50108,11,50164,50164,11,50220,50220,11,50276,50276,11,50332,50332,11,50388,50388,11,50444,50444,11,50500,50500,11,50556,50556,11,50612,50612,11,50668,50668,11,50724,50724,11,50780,50780,11,50836,50836,11,50892,50892,11,50948,50948,11,51004,51004,11,51060,51060,11,51116,51116,11,51172,51172,11,51228,51228,11,51284,51284,11,51340,51340,11,51396,51396,11,51452,51452,11,51508,51508,11,51564,51564,11,51620,51620,11,51676,51676,11,51732,51732,11,51788,51788,11,51844,51844,11,51900,51900,11,51956,51956,11,52012,52012,11,52068,52068,11,52124,52124,11,52180,52180,11,52236,52236,11,52292,52292,11,52348,52348,11,52404,52404,11,52460,52460,11,52516,52516,11,52572,52572,11,52628,52628,11,52684,52684,11,52740,52740,11,52796,52796,11,52852,52852,11,52908,52908,11,52964,52964,11,53020,53020,11,53076,53076,11,53132,53132,11,53188,53188,11,53244,53244,11,53300,53300,11,53356,53356,11,53412,53412,11,53468,53468,11,53524,53524,11,53580,53580,11,53636,53636,11,53692,53692,11,53748,53748,11,53804,53804,11,53860,53860,11,53916,53916,11,53972,53972,11,54028,54028,11,54084,54084,11,54140,54140,11,54196,54196,11,54252,54252,11,54308,54308,11,54364,54364,11,54420,54420,11,54476,54476,11,54532,54532,11,54588,54588,11,54644,54644,11,54700,54700,11,54756,54756,11,54812,54812,11,54868,54868,11,54924,54924,11,54980,54980,11,55036,55036,11,55092,55092,11,55148,55148,11,55216,55238,9,65056,65071,5,65529,65531,4,68097,68099,5,68159,68159,5,69446,69456,5,69688,69702,5,69808,69810,7,69815,69816,7,69821,69821,1,69888,69890,5,69932,69932,7,69957,69958,7,70016,70017,5,70067,70069,7,70079,70080,7,70089,70092,5,70095,70095,5,70191,70193,5,70196,70196,5,70198,70199,5,70367,70367,5,70371,70378,5,70402,70403,7,70462,70462,5,70464,70464,5,70471,70472,7,70487,70487,5,70502,70508,5,70709,70711,7,70720,70721,7,70725,70725,7,70750,70750,5,70833,70834,7,70841,70841,7,70843,70844,7,70846,70846,7,70849,70849,7,71087,71087,5,71090,71093,5,71100,71101,5,71103,71104,5,71216,71218,7,71227,71228,7,71230,71230,7,71339,71339,5,71341,71341,5,71344,71349,5,71351,71351,5,71456,71457,7,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123628,123631,5,125252,125258,5,126980,126980,14,127183,127183,14,127245,127247,14,127340,127343,14,127358,127359,14,127377,127386,14,127462,127487,6,127491,127503,14,127535,127535,14,127548,127551,14,127568,127569,14,127744,127777,14,127780,127891,14,127894,127895,14,127897,127899,14,127902,127984,14,127987,127989,14,127991,127994,14,128000,128253,14,128255,128317,14,128329,128334,14,128336,128359,14,128367,128368,14,128371,128377,14,128379,128390,14,128392,128393,14,128398,128399,14,128401,128404,14,128407,128419,14,128421,128421,14,128424,128424,14,128433,128434,14,128444,128444,14,128450,128452,14,128465,128467,14,128476,128478,14,128481,128481,14,128483,128483,14,128488,128488,14,128495,128495,14,128499,128499,14,128506,128591,14,128710,128714,14,128721,128722,14,128725,128725,14,128728,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129664,129666,14,129671,129679,14,129686,129704,14,129712,129718,14,129728,129730,14,129744,129750,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2259,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3134,3136,5,3142,3144,5,3157,3158,5,3201,3201,5,3260,3260,5,3263,3263,5,3266,3266,5,3270,3270,5,3274,3275,7,3285,3286,5,3328,3329,5,3387,3388,5,3391,3392,7,3398,3400,7,3405,3405,5,3415,3415,5,3457,3457,5,3530,3530,5,3536,3537,7,3542,3542,5,3551,3551,5,3633,3633,5,3636,3642,5,3761,3761,5,3764,3772,5,3864,3865,5,3895,3895,5,3902,3903,7,3967,3967,7,3974,3975,5,3993,4028,5,4141,4144,5,4146,4151,5,4155,4156,7,4182,4183,7,4190,4192,5,4226,4226,5,4229,4230,5,4253,4253,5,4448,4519,9,4957,4959,5,5938,5940,5,6002,6003,5,6070,6070,7,6078,6085,7,6087,6088,7,6109,6109,5,6158,6158,4,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6848,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7673,5,8203,8203,4,8205,8205,13,8232,8232,4,8234,8238,4,8265,8265,14,8293,8293,4,8400,8412,5,8417,8417,5,8421,8432,5,8505,8505,14,8617,8618,14,9000,9000,14,9167,9167,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9776,9783,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9935,14,9937,9937,14,9939,9940,14,9961,9962,14,9968,9973,14,9975,9978,14,9981,9981,14,9986,9986,14,9989,9989,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10084,14,10133,10135,14,10160,10160,14,10548,10549,14,11035,11036,14,11093,11093,14,11647,11647,5,12330,12333,5,12336,12336,14,12441,12442,5,12953,12953,14,42608,42610,5,42654,42655,5,43010,43010,5,43019,43019,5,43045,43046,5,43052,43052,5,43188,43203,7,43232,43249,5,43302,43309,5,43346,43347,7,43392,43394,5,43443,43443,5,43446,43449,5,43452,43453,5,43493,43493,5,43567,43568,7,43571,43572,7,43587,43587,5,43597,43597,7,43696,43696,5,43703,43704,5,43713,43713,5,43756,43757,5,43765,43765,7,44003,44004,7,44006,44007,7,44009,44010,7,44013,44013,5,44033,44059,12,44061,44087,12,44089,44115,12,44117,44143,12,44145,44171,12,44173,44199,12,44201,44227,12,44229,44255,12,44257,44283,12,44285,44311,12,44313,44339,12,44341,44367,12,44369,44395,12,44397,44423,12,44425,44451,12,44453,44479,12,44481,44507,12,44509,44535,12,44537,44563,12,44565,44591,12,44593,44619,12,44621,44647,12,44649,44675,12,44677,44703,12,44705,44731,12,44733,44759,12,44761,44787,12,44789,44815,12,44817,44843,12,44845,44871,12,44873,44899,12,44901,44927,12,44929,44955,12,44957,44983,12,44985,45011,12,45013,45039,12,45041,45067,12,45069,45095,12,45097,45123,12,45125,45151,12,45153,45179,12,45181,45207,12,45209,45235,12,45237,45263,12,45265,45291,12,45293,45319,12,45321,45347,12,45349,45375,12,45377,45403,12,45405,45431,12,45433,45459,12,45461,45487,12,45489,45515,12,45517,45543,12,45545,45571,12,45573,45599,12,45601,45627,12,45629,45655,12,45657,45683,12,45685,45711,12,45713,45739,12,45741,45767,12,45769,45795,12,45797,45823,12,45825,45851,12,45853,45879,12,45881,45907,12,45909,45935,12,45937,45963,12,45965,45991,12,45993,46019,12,46021,46047,12,46049,46075,12,46077,46103,12,46105,46131,12,46133,46159,12,46161,46187,12,46189,46215,12,46217,46243,12,46245,46271,12,46273,46299,12,46301,46327,12,46329,46355,12,46357,46383,12,46385,46411,12,46413,46439,12,46441,46467,12,46469,46495,12,46497,46523,12,46525,46551,12,46553,46579,12,46581,46607,12,46609,46635,12,46637,46663,12,46665,46691,12,46693,46719,12,46721,46747,12,46749,46775,12,46777,46803,12,46805,46831,12,46833,46859,12,46861,46887,12,46889,46915,12,46917,46943,12,46945,46971,12,46973,46999,12,47001,47027,12,47029,47055,12,47057,47083,12,47085,47111,12,47113,47139,12,47141,47167,12,47169,47195,12,47197,47223,12,47225,47251,12,47253,47279,12,47281,47307,12,47309,47335,12,47337,47363,12,47365,47391,12,47393,47419,12,47421,47447,12,47449,47475,12,47477,47503,12,47505,47531,12,47533,47559,12,47561,47587,12,47589,47615,12,47617,47643,12,47645,47671,12,47673,47699,12,47701,47727,12,47729,47755,12,47757,47783,12,47785,47811,12,47813,47839,12,47841,47867,12,47869,47895,12,47897,47923,12,47925,47951,12,47953,47979,12,47981,48007,12,48009,48035,12,48037,48063,12,48065,48091,12,48093,48119,12,48121,48147,12,48149,48175,12,48177,48203,12,48205,48231,12,48233,48259,12,48261,48287,12,48289,48315,12,48317,48343,12,48345,48371,12,48373,48399,12,48401,48427,12,48429,48455,12,48457,48483,12,48485,48511,12,48513,48539,12,48541,48567,12,48569,48595,12,48597,48623,12,48625,48651,12,48653,48679,12,48681,48707,12,48709,48735,12,48737,48763,12,48765,48791,12,48793,48819,12,48821,48847,12,48849,48875,12,48877,48903,12,48905,48931,12,48933,48959,12,48961,48987,12,48989,49015,12,49017,49043,12,49045,49071,12,49073,49099,12,49101,49127,12,49129,49155,12,49157,49183,12,49185,49211,12,49213,49239,12,49241,49267,12,49269,49295,12,49297,49323,12,49325,49351,12,49353,49379,12,49381,49407,12,49409,49435,12,49437,49463,12,49465,49491,12,49493,49519,12,49521,49547,12,49549,49575,12,49577,49603,12,49605,49631,12,49633,49659,12,49661,49687,12,49689,49715,12,49717,49743,12,49745,49771,12,49773,49799,12,49801,49827,12,49829,49855,12,49857,49883,12,49885,49911,12,49913,49939,12,49941,49967,12,49969,49995,12,49997,50023,12,50025,50051,12,50053,50079,12,50081,50107,12,50109,50135,12,50137,50163,12,50165,50191,12,50193,50219,12,50221,50247,12,50249,50275,12,50277,50303,12,50305,50331,12,50333,50359,12,50361,50387,12,50389,50415,12,50417,50443,12,50445,50471,12,50473,50499,12,50501,50527,12,50529,50555,12,50557,50583,12,50585,50611,12,50613,50639,12,50641,50667,12,50669,50695,12,50697,50723,12,50725,50751,12,50753,50779,12,50781,50807,12,50809,50835,12,50837,50863,12,50865,50891,12,50893,50919,12,50921,50947,12,50949,50975,12,50977,51003,12,51005,51031,12,51033,51059,12,51061,51087,12,51089,51115,12,51117,51143,12,51145,51171,12,51173,51199,12,51201,51227,12,51229,51255,12,51257,51283,12,51285,51311,12,51313,51339,12,51341,51367,12,51369,51395,12,51397,51423,12,51425,51451,12,51453,51479,12,51481,51507,12,51509,51535,12,51537,51563,12,51565,51591,12,51593,51619,12,51621,51647,12,51649,51675,12,51677,51703,12,51705,51731,12,51733,51759,12,51761,51787,12,51789,51815,12,51817,51843,12,51845,51871,12,51873,51899,12,51901,51927,12,51929,51955,12,51957,51983,12,51985,52011,12,52013,52039,12,52041,52067,12,52069,52095,12,52097,52123,12,52125,52151,12,52153,52179,12,52181,52207,12,52209,52235,12,52237,52263,12,52265,52291,12,52293,52319,12,52321,52347,12,52349,52375,12,52377,52403,12,52405,52431,12,52433,52459,12,52461,52487,12,52489,52515,12,52517,52543,12,52545,52571,12,52573,52599,12,52601,52627,12,52629,52655,12,52657,52683,12,52685,52711,12,52713,52739,12,52741,52767,12,52769,52795,12,52797,52823,12,52825,52851,12,52853,52879,12,52881,52907,12,52909,52935,12,52937,52963,12,52965,52991,12,52993,53019,12,53021,53047,12,53049,53075,12,53077,53103,12,53105,53131,12,53133,53159,12,53161,53187,12,53189,53215,12,53217,53243,12,53245,53271,12,53273,53299,12,53301,53327,12,53329,53355,12,53357,53383,12,53385,53411,12,53413,53439,12,53441,53467,12,53469,53495,12,53497,53523,12,53525,53551,12,53553,53579,12,53581,53607,12,53609,53635,12,53637,53663,12,53665,53691,12,53693,53719,12,53721,53747,12,53749,53775,12,53777,53803,12,53805,53831,12,53833,53859,12,53861,53887,12,53889,53915,12,53917,53943,12,53945,53971,12,53973,53999,12,54001,54027,12,54029,54055,12,54057,54083,12,54085,54111,12,54113,54139,12,54141,54167,12,54169,54195,12,54197,54223,12,54225,54251,12,54253,54279,12,54281,54307,12,54309,54335,12,54337,54363,12,54365,54391,12,54393,54419,12,54421,54447,12,54449,54475,12,54477,54503,12,54505,54531,12,54533,54559,12,54561,54587,12,54589,54615,12,54617,54643,12,54645,54671,12,54673,54699,12,54701,54727,12,54729,54755,12,54757,54783,12,54785,54811,12,54813,54839,12,54841,54867,12,54869,54895,12,54897,54923,12,54925,54951,12,54953,54979,12,54981,55007,12,55009,55035,12,55037,55063,12,55065,55091,12,55093,55119,12,55121,55147,12,55149,55175,12,55177,55203,12,55243,55291,10,65024,65039,5,65279,65279,4,65520,65528,4,66045,66045,5,66422,66426,5,68101,68102,5,68152,68154,5,68325,68326,5,69291,69292,5,69632,69632,7,69634,69634,7,69759,69761,5]'
|
|
);
|
|
}
|
|
static getInstance() {
|
|
return F._INSTANCE || (F._INSTANCE = new F()), F._INSTANCE;
|
|
}
|
|
getGraphemeBreakType(e) {
|
|
if (e < 32) return 10 === e ? 3 : 13 === e ? 2 : 4;
|
|
if (e < 127) return 0;
|
|
const t = this._data,
|
|
n = t.length / 3;
|
|
let r = 1;
|
|
for (; r <= n; )
|
|
if (e < t[3 * r]) r *= 2;
|
|
else {
|
|
if (!(e > t[3 * r + 1])) return t[3 * r + 2];
|
|
r = 2 * r + 1;
|
|
}
|
|
return 0;
|
|
}
|
|
}
|
|
function j(e, t) {
|
|
return ((t << 5) - t + e) | 0;
|
|
}
|
|
function U(e, t) {
|
|
t = j(149417, t);
|
|
for (let n = 0, r = e.length; n < r; n++) t = j(e.charCodeAt(n), t);
|
|
return t;
|
|
}
|
|
function V(e, t, n = 32) {
|
|
const r = n - t;
|
|
return ((e << t) | ((~((1 << r) - 1) & e) >>> r)) >>> 0;
|
|
}
|
|
function $(e, t = 0, n = e.byteLength, r = 0) {
|
|
for (let i = 0; i < n; i++) e[t + i] = r;
|
|
}
|
|
function W(e, t = 32) {
|
|
return (function (e, t, n = '0') {
|
|
for (; e.length < t; ) e = n + e;
|
|
return e;
|
|
})((e >>> 0).toString(16), t / 4);
|
|
}
|
|
F._INSTANCE = null;
|
|
class q {
|
|
constructor() {
|
|
(this._h0 = 1732584193),
|
|
(this._h1 = 4023233417),
|
|
(this._h2 = 2562383102),
|
|
(this._h3 = 271733878),
|
|
(this._h4 = 3285377520),
|
|
(this._buff = new Uint8Array(67)),
|
|
(this._buffDV = new DataView(this._buff.buffer)),
|
|
(this._buffLen = 0),
|
|
(this._totalLen = 0),
|
|
(this._leftoverHighSurrogate = 0),
|
|
(this._finished = !1);
|
|
}
|
|
update(e) {
|
|
const t = e.length;
|
|
if (0 === t) return;
|
|
const n = this._buff;
|
|
let r,
|
|
i,
|
|
o = this._buffLen,
|
|
s = this._leftoverHighSurrogate;
|
|
for (
|
|
0 !== s
|
|
? ((r = s), (i = -1), (s = 0))
|
|
: ((r = e.charCodeAt(0)), (i = 0));
|
|
;
|
|
|
|
) {
|
|
let a = r;
|
|
if (R(r)) {
|
|
if (!(i + 1 < t)) {
|
|
s = r;
|
|
break;
|
|
}
|
|
{
|
|
const t = e.charCodeAt(i + 1);
|
|
D(t)
|
|
? (i++, (a = t - 56320 + ((r - 55296) << 10) + 65536))
|
|
: (a = 65533);
|
|
}
|
|
} else D(r) && (a = 65533);
|
|
if (((o = this._push(n, o, a)), i++, !(i < t))) break;
|
|
r = e.charCodeAt(i);
|
|
}
|
|
(this._buffLen = o), (this._leftoverHighSurrogate = s);
|
|
}
|
|
_push(e, t, n) {
|
|
return (
|
|
n < 128
|
|
? (e[t++] = n)
|
|
: n < 2048
|
|
? ((e[t++] = 192 | ((1984 & n) >>> 6)),
|
|
(e[t++] = 128 | ((63 & n) >>> 0)))
|
|
: n < 65536
|
|
? ((e[t++] = 224 | ((61440 & n) >>> 12)),
|
|
(e[t++] = 128 | ((4032 & n) >>> 6)),
|
|
(e[t++] = 128 | ((63 & n) >>> 0)))
|
|
: ((e[t++] = 240 | ((1835008 & n) >>> 18)),
|
|
(e[t++] = 128 | ((258048 & n) >>> 12)),
|
|
(e[t++] = 128 | ((4032 & n) >>> 6)),
|
|
(e[t++] = 128 | ((63 & n) >>> 0))),
|
|
t >= 64 &&
|
|
(this._step(),
|
|
(t -= 64),
|
|
(this._totalLen += 64),
|
|
(e[0] = e[64]),
|
|
(e[1] = e[65]),
|
|
(e[2] = e[66])),
|
|
t
|
|
);
|
|
}
|
|
digest() {
|
|
return (
|
|
this._finished ||
|
|
((this._finished = !0),
|
|
this._leftoverHighSurrogate &&
|
|
((this._leftoverHighSurrogate = 0),
|
|
(this._buffLen = this._push(this._buff, this._buffLen, 65533))),
|
|
(this._totalLen += this._buffLen),
|
|
this._wrapUp()),
|
|
W(this._h0) + W(this._h1) + W(this._h2) + W(this._h3) + W(this._h4)
|
|
);
|
|
}
|
|
_wrapUp() {
|
|
(this._buff[this._buffLen++] = 128),
|
|
$(this._buff, this._buffLen),
|
|
this._buffLen > 56 && (this._step(), $(this._buff));
|
|
const e = 8 * this._totalLen;
|
|
this._buffDV.setUint32(56, Math.floor(e / 4294967296), !1),
|
|
this._buffDV.setUint32(60, e % 4294967296, !1),
|
|
this._step();
|
|
}
|
|
_step() {
|
|
const e = q._bigBlock32,
|
|
t = this._buffDV;
|
|
for (let n = 0; n < 64; n += 4) e.setUint32(n, t.getUint32(n, !1), !1);
|
|
for (let t = 64; t < 320; t += 4)
|
|
e.setUint32(
|
|
t,
|
|
V(
|
|
e.getUint32(t - 12, !1) ^
|
|
e.getUint32(t - 32, !1) ^
|
|
e.getUint32(t - 56, !1) ^
|
|
e.getUint32(t - 64, !1),
|
|
1
|
|
),
|
|
!1
|
|
);
|
|
let n,
|
|
r,
|
|
i,
|
|
o = this._h0,
|
|
s = this._h1,
|
|
a = this._h2,
|
|
u = this._h3,
|
|
l = this._h4;
|
|
for (let t = 0; t < 80; t++)
|
|
t < 20
|
|
? ((n = (s & a) | (~s & u)), (r = 1518500249))
|
|
: t < 40
|
|
? ((n = s ^ a ^ u), (r = 1859775393))
|
|
: t < 60
|
|
? ((n = (s & a) | (s & u) | (a & u)), (r = 2400959708))
|
|
: ((n = s ^ a ^ u), (r = 3395469782)),
|
|
(i = (V(o, 5) + n + l + r + e.getUint32(4 * t, !1)) & 4294967295),
|
|
(l = u),
|
|
(u = a),
|
|
(a = V(s, 30)),
|
|
(s = o),
|
|
(o = i);
|
|
(this._h0 = (this._h0 + o) & 4294967295),
|
|
(this._h1 = (this._h1 + s) & 4294967295),
|
|
(this._h2 = (this._h2 + a) & 4294967295),
|
|
(this._h3 = (this._h3 + u) & 4294967295),
|
|
(this._h4 = (this._h4 + l) & 4294967295);
|
|
}
|
|
}
|
|
q._bigBlock32 = new DataView(new ArrayBuffer(320));
|
|
class K {
|
|
constructor(e) {
|
|
this.source = e;
|
|
}
|
|
getElements() {
|
|
const e = this.source,
|
|
t = new Int32Array(e.length);
|
|
for (let n = 0, r = e.length; n < r; n++) t[n] = e.charCodeAt(n);
|
|
return t;
|
|
}
|
|
}
|
|
function B(e, t, n) {
|
|
return new z(new K(e), new K(t)).ComputeDiff(n).changes;
|
|
}
|
|
class H {
|
|
static Assert(e, t) {
|
|
if (!e) throw new Error(t);
|
|
}
|
|
}
|
|
class Y {
|
|
static Copy(e, t, n, r, i) {
|
|
for (let o = 0; o < i; o++) n[r + o] = e[t + o];
|
|
}
|
|
static Copy2(e, t, n, r, i) {
|
|
for (let o = 0; o < i; o++) n[r + o] = e[t + o];
|
|
}
|
|
}
|
|
class G {
|
|
constructor() {
|
|
(this.m_changes = []),
|
|
(this.m_originalStart = 1073741824),
|
|
(this.m_modifiedStart = 1073741824),
|
|
(this.m_originalCount = 0),
|
|
(this.m_modifiedCount = 0);
|
|
}
|
|
MarkNextChange() {
|
|
(this.m_originalCount > 0 || this.m_modifiedCount > 0) &&
|
|
this.m_changes.push(
|
|
new P(
|
|
this.m_originalStart,
|
|
this.m_originalCount,
|
|
this.m_modifiedStart,
|
|
this.m_modifiedCount
|
|
)
|
|
),
|
|
(this.m_originalCount = 0),
|
|
(this.m_modifiedCount = 0),
|
|
(this.m_originalStart = 1073741824),
|
|
(this.m_modifiedStart = 1073741824);
|
|
}
|
|
AddOriginalElement(e, t) {
|
|
(this.m_originalStart = Math.min(this.m_originalStart, e)),
|
|
(this.m_modifiedStart = Math.min(this.m_modifiedStart, t)),
|
|
this.m_originalCount++;
|
|
}
|
|
AddModifiedElement(e, t) {
|
|
(this.m_originalStart = Math.min(this.m_originalStart, e)),
|
|
(this.m_modifiedStart = Math.min(this.m_modifiedStart, t)),
|
|
this.m_modifiedCount++;
|
|
}
|
|
getChanges() {
|
|
return (
|
|
(this.m_originalCount > 0 || this.m_modifiedCount > 0) &&
|
|
this.MarkNextChange(),
|
|
this.m_changes
|
|
);
|
|
}
|
|
getReverseChanges() {
|
|
return (
|
|
(this.m_originalCount > 0 || this.m_modifiedCount > 0) &&
|
|
this.MarkNextChange(),
|
|
this.m_changes.reverse(),
|
|
this.m_changes
|
|
);
|
|
}
|
|
}
|
|
class z {
|
|
constructor(e, t, n = null) {
|
|
this.ContinueProcessingPredicate = n;
|
|
const [r, i, o] = z._getElements(e),
|
|
[s, a, u] = z._getElements(t);
|
|
(this._hasStrings = o && u),
|
|
(this._originalStringElements = r),
|
|
(this._originalElementsOrHash = i),
|
|
(this._modifiedStringElements = s),
|
|
(this._modifiedElementsOrHash = a),
|
|
(this.m_forwardHistory = []),
|
|
(this.m_reverseHistory = []);
|
|
}
|
|
static _isStringArray(e) {
|
|
return e.length > 0 && 'string' == typeof e[0];
|
|
}
|
|
static _getElements(e) {
|
|
const t = e.getElements();
|
|
if (z._isStringArray(t)) {
|
|
const e = new Int32Array(t.length);
|
|
for (let n = 0, r = t.length; n < r; n++) e[n] = U(t[n], 0);
|
|
return [t, e, !0];
|
|
}
|
|
return t instanceof Int32Array
|
|
? [[], t, !1]
|
|
: [[], new Int32Array(t), !1];
|
|
}
|
|
ElementsAreEqual(e, t) {
|
|
return (
|
|
this._originalElementsOrHash[e] === this._modifiedElementsOrHash[t] &&
|
|
(!this._hasStrings ||
|
|
this._originalStringElements[e] === this._modifiedStringElements[t])
|
|
);
|
|
}
|
|
OriginalElementsAreEqual(e, t) {
|
|
return (
|
|
this._originalElementsOrHash[e] === this._originalElementsOrHash[t] &&
|
|
(!this._hasStrings ||
|
|
this._originalStringElements[e] === this._originalStringElements[t])
|
|
);
|
|
}
|
|
ModifiedElementsAreEqual(e, t) {
|
|
return (
|
|
this._modifiedElementsOrHash[e] === this._modifiedElementsOrHash[t] &&
|
|
(!this._hasStrings ||
|
|
this._modifiedStringElements[e] === this._modifiedStringElements[t])
|
|
);
|
|
}
|
|
ComputeDiff(e) {
|
|
return this._ComputeDiff(
|
|
0,
|
|
this._originalElementsOrHash.length - 1,
|
|
0,
|
|
this._modifiedElementsOrHash.length - 1,
|
|
e
|
|
);
|
|
}
|
|
_ComputeDiff(e, t, n, r, i) {
|
|
const o = [!1];
|
|
let s = this.ComputeDiffRecursive(e, t, n, r, o);
|
|
return (
|
|
i && (s = this.PrettifyChanges(s)), { quitEarly: o[0], changes: s }
|
|
);
|
|
}
|
|
ComputeDiffRecursive(e, t, n, r, i) {
|
|
for (i[0] = !1; e <= t && n <= r && this.ElementsAreEqual(e, n); )
|
|
e++, n++;
|
|
for (; t >= e && r >= n && this.ElementsAreEqual(t, r); ) t--, r--;
|
|
if (e > t || n > r) {
|
|
let i;
|
|
return (
|
|
n <= r
|
|
? (H.Assert(
|
|
e === t + 1,
|
|
'originalStart should only be one more than originalEnd'
|
|
),
|
|
(i = [new P(e, 0, n, r - n + 1)]))
|
|
: e <= t
|
|
? (H.Assert(
|
|
n === r + 1,
|
|
'modifiedStart should only be one more than modifiedEnd'
|
|
),
|
|
(i = [new P(e, t - e + 1, n, 0)]))
|
|
: (H.Assert(
|
|
e === t + 1,
|
|
'originalStart should only be one more than originalEnd'
|
|
),
|
|
H.Assert(
|
|
n === r + 1,
|
|
'modifiedStart should only be one more than modifiedEnd'
|
|
),
|
|
(i = [])),
|
|
i
|
|
);
|
|
}
|
|
const o = [0],
|
|
s = [0],
|
|
a = this.ComputeRecursionPoint(e, t, n, r, o, s, i),
|
|
u = o[0],
|
|
l = s[0];
|
|
if (null !== a) return a;
|
|
if (!i[0]) {
|
|
const o = this.ComputeDiffRecursive(e, u, n, l, i);
|
|
let s = [];
|
|
return (
|
|
(s = i[0]
|
|
? [new P(u + 1, t - (u + 1) + 1, l + 1, r - (l + 1) + 1)]
|
|
: this.ComputeDiffRecursive(u + 1, t, l + 1, r, i)),
|
|
this.ConcatenateChanges(o, s)
|
|
);
|
|
}
|
|
return [new P(e, t - e + 1, n, r - n + 1)];
|
|
}
|
|
WALKTRACE(e, t, n, r, i, o, s, a, u, l, c, h, f, d, m, g, p, v) {
|
|
let y = null,
|
|
b = null,
|
|
C = new G(),
|
|
_ = t,
|
|
S = n,
|
|
E = f[0] - g[0] - r,
|
|
A = -1073741824,
|
|
x = this.m_forwardHistory.length - 1;
|
|
do {
|
|
const t = E + e;
|
|
t === _ || (t < S && u[t - 1] < u[t + 1])
|
|
? ((d = (c = u[t + 1]) - E - r),
|
|
c < A && C.MarkNextChange(),
|
|
(A = c),
|
|
C.AddModifiedElement(c + 1, d),
|
|
(E = t + 1 - e))
|
|
: ((d = (c = u[t - 1] + 1) - E - r),
|
|
c < A && C.MarkNextChange(),
|
|
(A = c - 1),
|
|
C.AddOriginalElement(c, d + 1),
|
|
(E = t - 1 - e)),
|
|
x >= 0 &&
|
|
((e = (u = this.m_forwardHistory[x])[0]),
|
|
(_ = 1),
|
|
(S = u.length - 1));
|
|
} while (--x >= -1);
|
|
if (((y = C.getReverseChanges()), v[0])) {
|
|
let e = f[0] + 1,
|
|
t = g[0] + 1;
|
|
if (null !== y && y.length > 0) {
|
|
const n = y[y.length - 1];
|
|
(e = Math.max(e, n.getOriginalEnd())),
|
|
(t = Math.max(t, n.getModifiedEnd()));
|
|
}
|
|
b = [new P(e, h - e + 1, t, m - t + 1)];
|
|
} else {
|
|
(C = new G()),
|
|
(_ = o),
|
|
(S = s),
|
|
(E = f[0] - g[0] - a),
|
|
(A = 1073741824),
|
|
(x = p
|
|
? this.m_reverseHistory.length - 1
|
|
: this.m_reverseHistory.length - 2);
|
|
do {
|
|
const e = E + i;
|
|
e === _ || (e < S && l[e - 1] >= l[e + 1])
|
|
? ((d = (c = l[e + 1] - 1) - E - a),
|
|
c > A && C.MarkNextChange(),
|
|
(A = c + 1),
|
|
C.AddOriginalElement(c + 1, d + 1),
|
|
(E = e + 1 - i))
|
|
: ((d = (c = l[e - 1]) - E - a),
|
|
c > A && C.MarkNextChange(),
|
|
(A = c),
|
|
C.AddModifiedElement(c + 1, d + 1),
|
|
(E = e - 1 - i)),
|
|
x >= 0 &&
|
|
((i = (l = this.m_reverseHistory[x])[0]),
|
|
(_ = 1),
|
|
(S = l.length - 1));
|
|
} while (--x >= -1);
|
|
b = C.getChanges();
|
|
}
|
|
return this.ConcatenateChanges(y, b);
|
|
}
|
|
ComputeRecursionPoint(e, t, n, r, i, o, s) {
|
|
let a = 0,
|
|
u = 0,
|
|
l = 0,
|
|
c = 0,
|
|
h = 0,
|
|
f = 0;
|
|
e--,
|
|
n--,
|
|
(i[0] = 0),
|
|
(o[0] = 0),
|
|
(this.m_forwardHistory = []),
|
|
(this.m_reverseHistory = []);
|
|
const d = t - e + (r - n),
|
|
m = d + 1,
|
|
g = new Int32Array(m),
|
|
p = new Int32Array(m),
|
|
v = r - n,
|
|
y = t - e,
|
|
b = e - n,
|
|
C = t - r,
|
|
_ = (y - v) % 2 == 0;
|
|
(g[v] = e), (p[y] = t), (s[0] = !1);
|
|
for (let S = 1; S <= d / 2 + 1; S++) {
|
|
let d = 0,
|
|
E = 0;
|
|
(l = this.ClipDiagonalBound(v - S, S, v, m)),
|
|
(c = this.ClipDiagonalBound(v + S, S, v, m));
|
|
for (let e = l; e <= c; e += 2) {
|
|
(a =
|
|
e === l || (e < c && g[e - 1] < g[e + 1])
|
|
? g[e + 1]
|
|
: g[e - 1] + 1),
|
|
(u = a - (e - v) - b);
|
|
const n = a;
|
|
for (; a < t && u < r && this.ElementsAreEqual(a + 1, u + 1); )
|
|
a++, u++;
|
|
if (
|
|
((g[e] = a),
|
|
a + u > d + E && ((d = a), (E = u)),
|
|
!_ && Math.abs(e - y) <= S - 1 && a >= p[e])
|
|
)
|
|
return (
|
|
(i[0] = a),
|
|
(o[0] = u),
|
|
n <= p[e] && S <= 1448
|
|
? this.WALKTRACE(
|
|
v,
|
|
l,
|
|
c,
|
|
b,
|
|
y,
|
|
h,
|
|
f,
|
|
C,
|
|
g,
|
|
p,
|
|
a,
|
|
t,
|
|
i,
|
|
u,
|
|
r,
|
|
o,
|
|
_,
|
|
s
|
|
)
|
|
: null
|
|
);
|
|
}
|
|
const A = (d - e + (E - n) - S) / 2;
|
|
if (
|
|
null !== this.ContinueProcessingPredicate &&
|
|
!this.ContinueProcessingPredicate(d, A)
|
|
)
|
|
return (
|
|
(s[0] = !0),
|
|
(i[0] = d),
|
|
(o[0] = E),
|
|
A > 0 && S <= 1448
|
|
? this.WALKTRACE(
|
|
v,
|
|
l,
|
|
c,
|
|
b,
|
|
y,
|
|
h,
|
|
f,
|
|
C,
|
|
g,
|
|
p,
|
|
a,
|
|
t,
|
|
i,
|
|
u,
|
|
r,
|
|
o,
|
|
_,
|
|
s
|
|
)
|
|
: (e++, n++, [new P(e, t - e + 1, n, r - n + 1)])
|
|
);
|
|
(h = this.ClipDiagonalBound(y - S, S, y, m)),
|
|
(f = this.ClipDiagonalBound(y + S, S, y, m));
|
|
for (let d = h; d <= f; d += 2) {
|
|
(a =
|
|
d === h || (d < f && p[d - 1] >= p[d + 1])
|
|
? p[d + 1] - 1
|
|
: p[d - 1]),
|
|
(u = a - (d - y) - C);
|
|
const m = a;
|
|
for (; a > e && u > n && this.ElementsAreEqual(a, u); ) a--, u--;
|
|
if (((p[d] = a), _ && Math.abs(d - v) <= S && a <= g[d]))
|
|
return (
|
|
(i[0] = a),
|
|
(o[0] = u),
|
|
m >= g[d] && S <= 1448
|
|
? this.WALKTRACE(
|
|
v,
|
|
l,
|
|
c,
|
|
b,
|
|
y,
|
|
h,
|
|
f,
|
|
C,
|
|
g,
|
|
p,
|
|
a,
|
|
t,
|
|
i,
|
|
u,
|
|
r,
|
|
o,
|
|
_,
|
|
s
|
|
)
|
|
: null
|
|
);
|
|
}
|
|
if (S <= 1447) {
|
|
let e = new Int32Array(c - l + 2);
|
|
(e[0] = v - l + 1),
|
|
Y.Copy2(g, l, e, 1, c - l + 1),
|
|
this.m_forwardHistory.push(e),
|
|
(e = new Int32Array(f - h + 2)),
|
|
(e[0] = y - h + 1),
|
|
Y.Copy2(p, h, e, 1, f - h + 1),
|
|
this.m_reverseHistory.push(e);
|
|
}
|
|
}
|
|
return this.WALKTRACE(
|
|
v,
|
|
l,
|
|
c,
|
|
b,
|
|
y,
|
|
h,
|
|
f,
|
|
C,
|
|
g,
|
|
p,
|
|
a,
|
|
t,
|
|
i,
|
|
u,
|
|
r,
|
|
o,
|
|
_,
|
|
s
|
|
);
|
|
}
|
|
PrettifyChanges(e) {
|
|
for (let t = 0; t < e.length; t++) {
|
|
const n = e[t],
|
|
r =
|
|
t < e.length - 1
|
|
? e[t + 1].originalStart
|
|
: this._originalElementsOrHash.length,
|
|
i =
|
|
t < e.length - 1
|
|
? e[t + 1].modifiedStart
|
|
: this._modifiedElementsOrHash.length,
|
|
o = n.originalLength > 0,
|
|
s = n.modifiedLength > 0;
|
|
for (
|
|
;
|
|
n.originalStart + n.originalLength < r &&
|
|
n.modifiedStart + n.modifiedLength < i &&
|
|
(!o ||
|
|
this.OriginalElementsAreEqual(
|
|
n.originalStart,
|
|
n.originalStart + n.originalLength
|
|
)) &&
|
|
(!s ||
|
|
this.ModifiedElementsAreEqual(
|
|
n.modifiedStart,
|
|
n.modifiedStart + n.modifiedLength
|
|
));
|
|
|
|
)
|
|
n.originalStart++, n.modifiedStart++;
|
|
let a = [null];
|
|
t < e.length - 1 &&
|
|
this.ChangesOverlap(e[t], e[t + 1], a) &&
|
|
((e[t] = a[0]), e.splice(t + 1, 1), t--);
|
|
}
|
|
for (let t = e.length - 1; t >= 0; t--) {
|
|
const n = e[t];
|
|
let r = 0,
|
|
i = 0;
|
|
if (t > 0) {
|
|
const n = e[t - 1];
|
|
n.originalLength > 0 && (r = n.originalStart + n.originalLength),
|
|
n.modifiedLength > 0 && (i = n.modifiedStart + n.modifiedLength);
|
|
}
|
|
const o = n.originalLength > 0,
|
|
s = n.modifiedLength > 0;
|
|
let a = 0,
|
|
u = this._boundaryScore(
|
|
n.originalStart,
|
|
n.originalLength,
|
|
n.modifiedStart,
|
|
n.modifiedLength
|
|
);
|
|
for (let e = 1; ; e++) {
|
|
const t = n.originalStart - e,
|
|
l = n.modifiedStart - e;
|
|
if (t < r || l < i) break;
|
|
if (o && !this.OriginalElementsAreEqual(t, t + n.originalLength))
|
|
break;
|
|
if (s && !this.ModifiedElementsAreEqual(l, l + n.modifiedLength))
|
|
break;
|
|
const c = this._boundaryScore(
|
|
t,
|
|
n.originalLength,
|
|
l,
|
|
n.modifiedLength
|
|
);
|
|
c > u && ((u = c), (a = e));
|
|
}
|
|
(n.originalStart -= a), (n.modifiedStart -= a);
|
|
}
|
|
return e;
|
|
}
|
|
_OriginalIsBoundary(e) {
|
|
return (
|
|
e <= 0 ||
|
|
e >= this._originalElementsOrHash.length - 1 ||
|
|
(this._hasStrings && /^\s*$/.test(this._originalStringElements[e]))
|
|
);
|
|
}
|
|
_OriginalRegionIsBoundary(e, t) {
|
|
if (this._OriginalIsBoundary(e) || this._OriginalIsBoundary(e - 1))
|
|
return !0;
|
|
if (t > 0) {
|
|
const n = e + t;
|
|
if (this._OriginalIsBoundary(n - 1) || this._OriginalIsBoundary(n))
|
|
return !0;
|
|
}
|
|
return !1;
|
|
}
|
|
_ModifiedIsBoundary(e) {
|
|
return (
|
|
e <= 0 ||
|
|
e >= this._modifiedElementsOrHash.length - 1 ||
|
|
(this._hasStrings && /^\s*$/.test(this._modifiedStringElements[e]))
|
|
);
|
|
}
|
|
_ModifiedRegionIsBoundary(e, t) {
|
|
if (this._ModifiedIsBoundary(e) || this._ModifiedIsBoundary(e - 1))
|
|
return !0;
|
|
if (t > 0) {
|
|
const n = e + t;
|
|
if (this._ModifiedIsBoundary(n - 1) || this._ModifiedIsBoundary(n))
|
|
return !0;
|
|
}
|
|
return !1;
|
|
}
|
|
_boundaryScore(e, t, n, r) {
|
|
return (
|
|
(this._OriginalRegionIsBoundary(e, t) ? 1 : 0) +
|
|
(this._ModifiedRegionIsBoundary(n, r) ? 1 : 0)
|
|
);
|
|
}
|
|
ConcatenateChanges(e, t) {
|
|
let n = [];
|
|
if (0 === e.length || 0 === t.length) return t.length > 0 ? t : e;
|
|
if (this.ChangesOverlap(e[e.length - 1], t[0], n)) {
|
|
const r = new Array(e.length + t.length - 1);
|
|
return (
|
|
Y.Copy(e, 0, r, 0, e.length - 1),
|
|
(r[e.length - 1] = n[0]),
|
|
Y.Copy(t, 1, r, e.length, t.length - 1),
|
|
r
|
|
);
|
|
}
|
|
{
|
|
const n = new Array(e.length + t.length);
|
|
return (
|
|
Y.Copy(e, 0, n, 0, e.length), Y.Copy(t, 0, n, e.length, t.length), n
|
|
);
|
|
}
|
|
}
|
|
ChangesOverlap(e, t, n) {
|
|
if (
|
|
(H.Assert(
|
|
e.originalStart <= t.originalStart,
|
|
'Left change is not less than or equal to right change'
|
|
),
|
|
H.Assert(
|
|
e.modifiedStart <= t.modifiedStart,
|
|
'Left change is not less than or equal to right change'
|
|
),
|
|
e.originalStart + e.originalLength >= t.originalStart ||
|
|
e.modifiedStart + e.modifiedLength >= t.modifiedStart)
|
|
) {
|
|
const r = e.originalStart;
|
|
let i = e.originalLength;
|
|
const o = e.modifiedStart;
|
|
let s = e.modifiedLength;
|
|
return (
|
|
e.originalStart + e.originalLength >= t.originalStart &&
|
|
(i = t.originalStart + t.originalLength - e.originalStart),
|
|
e.modifiedStart + e.modifiedLength >= t.modifiedStart &&
|
|
(s = t.modifiedStart + t.modifiedLength - e.modifiedStart),
|
|
(n[0] = new P(r, i, o, s)),
|
|
!0
|
|
);
|
|
}
|
|
return (n[0] = null), !1;
|
|
}
|
|
ClipDiagonalBound(e, t, n, r) {
|
|
if (e >= 0 && e < r) return e;
|
|
const i = t % 2 == 0;
|
|
return e < 0
|
|
? i === (n % 2 == 0)
|
|
? 0
|
|
: 1
|
|
: i === ((r - n - 1) % 2 == 0)
|
|
? r - 1
|
|
: r - 2;
|
|
}
|
|
}
|
|
const J =
|
|
'undefined' == typeof process
|
|
? {
|
|
cwd: () => '/',
|
|
env: Object.create(null),
|
|
get platform() {
|
|
return A ? 'win32' : x ? 'darwin' : 'linux';
|
|
},
|
|
nextTick: (e) => L(e),
|
|
}
|
|
: process,
|
|
Q = J.cwd,
|
|
Z = J.env,
|
|
X = J.platform,
|
|
ee = 46,
|
|
te = 47,
|
|
ne = 92,
|
|
re = 58;
|
|
class ie extends Error {
|
|
constructor(e, t, n) {
|
|
let r;
|
|
'string' == typeof t && 0 === t.indexOf('not ')
|
|
? ((r = 'must not be'), (t = t.replace(/^not /, '')))
|
|
: (r = 'must be');
|
|
const i = -1 !== e.indexOf('.') ? 'property' : 'argument';
|
|
let o = `The "${e}" ${i} ${r} of type ${t}`;
|
|
(o += '. Received type ' + typeof n),
|
|
super(o),
|
|
(this.code = 'ERR_INVALID_ARG_TYPE');
|
|
}
|
|
}
|
|
function oe(e, t) {
|
|
if ('string' != typeof e) throw new ie(t, 'string', e);
|
|
}
|
|
function se(e) {
|
|
return e === te || e === ne;
|
|
}
|
|
function ae(e) {
|
|
return e === te;
|
|
}
|
|
function ue(e) {
|
|
return (e >= 65 && e <= 90) || (e >= 97 && e <= 122);
|
|
}
|
|
function le(e, t, n, r) {
|
|
let i = '',
|
|
o = 0,
|
|
s = -1,
|
|
a = 0,
|
|
u = 0;
|
|
for (let l = 0; l <= e.length; ++l) {
|
|
if (l < e.length) u = e.charCodeAt(l);
|
|
else {
|
|
if (r(u)) break;
|
|
u = te;
|
|
}
|
|
if (r(u)) {
|
|
if (s === l - 1 || 1 === a);
|
|
else if (2 === a) {
|
|
if (
|
|
i.length < 2 ||
|
|
2 !== o ||
|
|
i.charCodeAt(i.length - 1) !== ee ||
|
|
i.charCodeAt(i.length - 2) !== ee
|
|
) {
|
|
if (i.length > 2) {
|
|
const e = i.lastIndexOf(n);
|
|
-1 === e
|
|
? ((i = ''), (o = 0))
|
|
: ((i = i.slice(0, e)), (o = i.length - 1 - i.lastIndexOf(n))),
|
|
(s = l),
|
|
(a = 0);
|
|
continue;
|
|
}
|
|
if (0 !== i.length) {
|
|
(i = ''), (o = 0), (s = l), (a = 0);
|
|
continue;
|
|
}
|
|
}
|
|
t && ((i += i.length > 0 ? `${n}..` : '..'), (o = 2));
|
|
} else
|
|
i.length > 0
|
|
? (i += `${n}${e.slice(s + 1, l)}`)
|
|
: (i = e.slice(s + 1, l)),
|
|
(o = l - s - 1);
|
|
(s = l), (a = 0);
|
|
} else u === ee && -1 !== a ? ++a : (a = -1);
|
|
}
|
|
return i;
|
|
}
|
|
function ce(e, t) {
|
|
if (null === t || 'object' != typeof t)
|
|
throw new ie('pathObject', 'Object', t);
|
|
const n = t.dir || t.root,
|
|
r = t.base || `${t.name || ''}${t.ext || ''}`;
|
|
return n ? (n === t.root ? `${n}${r}` : `${n}${e}${r}`) : r;
|
|
}
|
|
const he = {
|
|
resolve(...e) {
|
|
let t = '',
|
|
n = '',
|
|
r = !1;
|
|
for (let i = e.length - 1; i >= -1; i--) {
|
|
let o;
|
|
if (i >= 0) {
|
|
if (((o = e[i]), oe(o, 'path'), 0 === o.length)) continue;
|
|
} else
|
|
0 === t.length
|
|
? (o = Q())
|
|
: ((o = Z[`=${t}`] || Q()),
|
|
(void 0 === o ||
|
|
(o.slice(0, 2).toLowerCase() !== t.toLowerCase() &&
|
|
o.charCodeAt(2) === ne)) &&
|
|
(o = `${t}\\`));
|
|
const s = o.length;
|
|
let a = 0,
|
|
u = '',
|
|
l = !1;
|
|
const c = o.charCodeAt(0);
|
|
if (1 === s) se(c) && ((a = 1), (l = !0));
|
|
else if (se(c))
|
|
if (((l = !0), se(o.charCodeAt(1)))) {
|
|
let e = 2,
|
|
t = e;
|
|
for (; e < s && !se(o.charCodeAt(e)); ) e++;
|
|
if (e < s && e !== t) {
|
|
const n = o.slice(t, e);
|
|
for (t = e; e < s && se(o.charCodeAt(e)); ) e++;
|
|
if (e < s && e !== t) {
|
|
for (t = e; e < s && !se(o.charCodeAt(e)); ) e++;
|
|
(e !== s && e === t) ||
|
|
((u = `\\\\${n}\\${o.slice(t, e)}`), (a = e));
|
|
}
|
|
}
|
|
} else a = 1;
|
|
else
|
|
ue(c) &&
|
|
o.charCodeAt(1) === re &&
|
|
((u = o.slice(0, 2)),
|
|
(a = 2),
|
|
s > 2 && se(o.charCodeAt(2)) && ((l = !0), (a = 3)));
|
|
if (u.length > 0)
|
|
if (t.length > 0) {
|
|
if (u.toLowerCase() !== t.toLowerCase()) continue;
|
|
} else t = u;
|
|
if (r) {
|
|
if (t.length > 0) break;
|
|
} else if (((n = `${o.slice(a)}\\${n}`), (r = l), l && t.length > 0))
|
|
break;
|
|
}
|
|
return (n = le(n, !r, '\\', se)), r ? `${t}\\${n}` : `${t}${n}` || '.';
|
|
},
|
|
normalize(e) {
|
|
oe(e, 'path');
|
|
const t = e.length;
|
|
if (0 === t) return '.';
|
|
let n,
|
|
r = 0,
|
|
i = !1;
|
|
const o = e.charCodeAt(0);
|
|
if (1 === t) return ae(o) ? '\\' : e;
|
|
if (se(o))
|
|
if (((i = !0), se(e.charCodeAt(1)))) {
|
|
let i = 2,
|
|
o = i;
|
|
for (; i < t && !se(e.charCodeAt(i)); ) i++;
|
|
if (i < t && i !== o) {
|
|
const s = e.slice(o, i);
|
|
for (o = i; i < t && se(e.charCodeAt(i)); ) i++;
|
|
if (i < t && i !== o) {
|
|
for (o = i; i < t && !se(e.charCodeAt(i)); ) i++;
|
|
if (i === t) return `\\\\${s}\\${e.slice(o)}\\`;
|
|
i !== o && ((n = `\\\\${s}\\${e.slice(o, i)}`), (r = i));
|
|
}
|
|
}
|
|
} else r = 1;
|
|
else
|
|
ue(o) &&
|
|
e.charCodeAt(1) === re &&
|
|
((n = e.slice(0, 2)),
|
|
(r = 2),
|
|
t > 2 && se(e.charCodeAt(2)) && ((i = !0), (r = 3)));
|
|
let s = r < t ? le(e.slice(r), !i, '\\', se) : '';
|
|
return (
|
|
0 !== s.length || i || (s = '.'),
|
|
s.length > 0 && se(e.charCodeAt(t - 1)) && (s += '\\'),
|
|
void 0 === n ? (i ? `\\${s}` : s) : i ? `${n}\\${s}` : `${n}${s}`
|
|
);
|
|
},
|
|
isAbsolute(e) {
|
|
oe(e, 'path');
|
|
const t = e.length;
|
|
if (0 === t) return !1;
|
|
const n = e.charCodeAt(0);
|
|
return (
|
|
se(n) ||
|
|
(t > 2 && ue(n) && e.charCodeAt(1) === re && se(e.charCodeAt(2)))
|
|
);
|
|
},
|
|
join(...e) {
|
|
if (0 === e.length) return '.';
|
|
let t, n;
|
|
for (let r = 0; r < e.length; ++r) {
|
|
const i = e[r];
|
|
oe(i, 'path'),
|
|
i.length > 0 && (void 0 === t ? (t = n = i) : (t += `\\${i}`));
|
|
}
|
|
if (void 0 === t) return '.';
|
|
let r = !0,
|
|
i = 0;
|
|
if ('string' == typeof n && se(n.charCodeAt(0))) {
|
|
++i;
|
|
const e = n.length;
|
|
e > 1 &&
|
|
se(n.charCodeAt(1)) &&
|
|
(++i, e > 2 && (se(n.charCodeAt(2)) ? ++i : (r = !1)));
|
|
}
|
|
if (r) {
|
|
for (; i < t.length && se(t.charCodeAt(i)); ) i++;
|
|
i >= 2 && (t = `\\${t.slice(i)}`);
|
|
}
|
|
return he.normalize(t);
|
|
},
|
|
relative(e, t) {
|
|
if ((oe(e, 'from'), oe(t, 'to'), e === t)) return '';
|
|
const n = he.resolve(e),
|
|
r = he.resolve(t);
|
|
if (n === r) return '';
|
|
if ((e = n.toLowerCase()) === (t = r.toLowerCase())) return '';
|
|
let i = 0;
|
|
for (; i < e.length && e.charCodeAt(i) === ne; ) i++;
|
|
let o = e.length;
|
|
for (; o - 1 > i && e.charCodeAt(o - 1) === ne; ) o--;
|
|
const s = o - i;
|
|
let a = 0;
|
|
for (; a < t.length && t.charCodeAt(a) === ne; ) a++;
|
|
let u = t.length;
|
|
for (; u - 1 > a && t.charCodeAt(u - 1) === ne; ) u--;
|
|
const l = u - a,
|
|
c = s < l ? s : l;
|
|
let h = -1,
|
|
f = 0;
|
|
for (; f < c; f++) {
|
|
const n = e.charCodeAt(i + f);
|
|
if (n !== t.charCodeAt(a + f)) break;
|
|
n === ne && (h = f);
|
|
}
|
|
if (f !== c) {
|
|
if (-1 === h) return r;
|
|
} else {
|
|
if (l > c) {
|
|
if (t.charCodeAt(a + f) === ne) return r.slice(a + f + 1);
|
|
if (2 === f) return r.slice(a + f);
|
|
}
|
|
s > c && (e.charCodeAt(i + f) === ne ? (h = f) : 2 === f && (h = 3)),
|
|
-1 === h && (h = 0);
|
|
}
|
|
let d = '';
|
|
for (f = i + h + 1; f <= o; ++f)
|
|
(f !== o && e.charCodeAt(f) !== ne) ||
|
|
(d += 0 === d.length ? '..' : '\\..');
|
|
return (
|
|
(a += h),
|
|
d.length > 0
|
|
? `${d}${r.slice(a, u)}`
|
|
: (r.charCodeAt(a) === ne && ++a, r.slice(a, u))
|
|
);
|
|
},
|
|
toNamespacedPath(e) {
|
|
if ('string' != typeof e) return e;
|
|
if (0 === e.length) return '';
|
|
const t = he.resolve(e);
|
|
if (t.length <= 2) return e;
|
|
if (t.charCodeAt(0) === ne) {
|
|
if (t.charCodeAt(1) === ne) {
|
|
const e = t.charCodeAt(2);
|
|
if (63 !== e && e !== ee) return `\\\\?\\UNC\\${t.slice(2)}`;
|
|
}
|
|
} else if (
|
|
ue(t.charCodeAt(0)) &&
|
|
t.charCodeAt(1) === re &&
|
|
t.charCodeAt(2) === ne
|
|
)
|
|
return `\\\\?\\${t}`;
|
|
return e;
|
|
},
|
|
dirname(e) {
|
|
oe(e, 'path');
|
|
const t = e.length;
|
|
if (0 === t) return '.';
|
|
let n = -1,
|
|
r = 0;
|
|
const i = e.charCodeAt(0);
|
|
if (1 === t) return se(i) ? e : '.';
|
|
if (se(i)) {
|
|
if (((n = r = 1), se(e.charCodeAt(1)))) {
|
|
let i = 2,
|
|
o = i;
|
|
for (; i < t && !se(e.charCodeAt(i)); ) i++;
|
|
if (i < t && i !== o) {
|
|
for (o = i; i < t && se(e.charCodeAt(i)); ) i++;
|
|
if (i < t && i !== o) {
|
|
for (o = i; i < t && !se(e.charCodeAt(i)); ) i++;
|
|
if (i === t) return e;
|
|
i !== o && (n = r = i + 1);
|
|
}
|
|
}
|
|
}
|
|
} else
|
|
ue(i) &&
|
|
e.charCodeAt(1) === re &&
|
|
((n = t > 2 && se(e.charCodeAt(2)) ? 3 : 2), (r = n));
|
|
let o = -1,
|
|
s = !0;
|
|
for (let n = t - 1; n >= r; --n)
|
|
if (se(e.charCodeAt(n))) {
|
|
if (!s) {
|
|
o = n;
|
|
break;
|
|
}
|
|
} else s = !1;
|
|
if (-1 === o) {
|
|
if (-1 === n) return '.';
|
|
o = n;
|
|
}
|
|
return e.slice(0, o);
|
|
},
|
|
basename(e, t) {
|
|
void 0 !== t && oe(t, 'ext'), oe(e, 'path');
|
|
let n,
|
|
r = 0,
|
|
i = -1,
|
|
o = !0;
|
|
if (
|
|
(e.length >= 2 &&
|
|
ue(e.charCodeAt(0)) &&
|
|
e.charCodeAt(1) === re &&
|
|
(r = 2),
|
|
void 0 !== t && t.length > 0 && t.length <= e.length)
|
|
) {
|
|
if (t === e) return '';
|
|
let s = t.length - 1,
|
|
a = -1;
|
|
for (n = e.length - 1; n >= r; --n) {
|
|
const u = e.charCodeAt(n);
|
|
if (se(u)) {
|
|
if (!o) {
|
|
r = n + 1;
|
|
break;
|
|
}
|
|
} else
|
|
-1 === a && ((o = !1), (a = n + 1)),
|
|
s >= 0 &&
|
|
(u === t.charCodeAt(s)
|
|
? -1 == --s && (i = n)
|
|
: ((s = -1), (i = a)));
|
|
}
|
|
return r === i ? (i = a) : -1 === i && (i = e.length), e.slice(r, i);
|
|
}
|
|
for (n = e.length - 1; n >= r; --n)
|
|
if (se(e.charCodeAt(n))) {
|
|
if (!o) {
|
|
r = n + 1;
|
|
break;
|
|
}
|
|
} else -1 === i && ((o = !1), (i = n + 1));
|
|
return -1 === i ? '' : e.slice(r, i);
|
|
},
|
|
extname(e) {
|
|
oe(e, 'path');
|
|
let t = 0,
|
|
n = -1,
|
|
r = 0,
|
|
i = -1,
|
|
o = !0,
|
|
s = 0;
|
|
e.length >= 2 &&
|
|
e.charCodeAt(1) === re &&
|
|
ue(e.charCodeAt(0)) &&
|
|
(t = r = 2);
|
|
for (let a = e.length - 1; a >= t; --a) {
|
|
const t = e.charCodeAt(a);
|
|
if (se(t)) {
|
|
if (!o) {
|
|
r = a + 1;
|
|
break;
|
|
}
|
|
} else
|
|
-1 === i && ((o = !1), (i = a + 1)),
|
|
t === ee
|
|
? -1 === n
|
|
? (n = a)
|
|
: 1 !== s && (s = 1)
|
|
: -1 !== n && (s = -1);
|
|
}
|
|
return -1 === n ||
|
|
-1 === i ||
|
|
0 === s ||
|
|
(1 === s && n === i - 1 && n === r + 1)
|
|
? ''
|
|
: e.slice(n, i);
|
|
},
|
|
format: ce.bind(null, '\\'),
|
|
parse(e) {
|
|
oe(e, 'path');
|
|
const t = { root: '', dir: '', base: '', ext: '', name: '' };
|
|
if (0 === e.length) return t;
|
|
const n = e.length;
|
|
let r = 0,
|
|
i = e.charCodeAt(0);
|
|
if (1 === n)
|
|
return se(i) ? ((t.root = t.dir = e), t) : ((t.base = t.name = e), t);
|
|
if (se(i)) {
|
|
if (((r = 1), se(e.charCodeAt(1)))) {
|
|
let t = 2,
|
|
i = t;
|
|
for (; t < n && !se(e.charCodeAt(t)); ) t++;
|
|
if (t < n && t !== i) {
|
|
for (i = t; t < n && se(e.charCodeAt(t)); ) t++;
|
|
if (t < n && t !== i) {
|
|
for (i = t; t < n && !se(e.charCodeAt(t)); ) t++;
|
|
t === n ? (r = t) : t !== i && (r = t + 1);
|
|
}
|
|
}
|
|
}
|
|
} else if (ue(i) && e.charCodeAt(1) === re) {
|
|
if (n <= 2) return (t.root = t.dir = e), t;
|
|
if (((r = 2), se(e.charCodeAt(2)))) {
|
|
if (3 === n) return (t.root = t.dir = e), t;
|
|
r = 3;
|
|
}
|
|
}
|
|
r > 0 && (t.root = e.slice(0, r));
|
|
let o = -1,
|
|
s = r,
|
|
a = -1,
|
|
u = !0,
|
|
l = e.length - 1,
|
|
c = 0;
|
|
for (; l >= r; --l)
|
|
if (((i = e.charCodeAt(l)), se(i))) {
|
|
if (!u) {
|
|
s = l + 1;
|
|
break;
|
|
}
|
|
} else
|
|
-1 === a && ((u = !1), (a = l + 1)),
|
|
i === ee
|
|
? -1 === o
|
|
? (o = l)
|
|
: 1 !== c && (c = 1)
|
|
: -1 !== o && (c = -1);
|
|
return (
|
|
-1 !== a &&
|
|
(-1 === o || 0 === c || (1 === c && o === a - 1 && o === s + 1)
|
|
? (t.base = t.name = e.slice(s, a))
|
|
: ((t.name = e.slice(s, o)),
|
|
(t.base = e.slice(s, a)),
|
|
(t.ext = e.slice(o, a)))),
|
|
(t.dir = s > 0 && s !== r ? e.slice(0, s - 1) : t.root),
|
|
t
|
|
);
|
|
},
|
|
sep: '\\',
|
|
delimiter: ';',
|
|
win32: null,
|
|
posix: null,
|
|
},
|
|
fe = {
|
|
resolve(...e) {
|
|
let t = '',
|
|
n = !1;
|
|
for (let r = e.length - 1; r >= -1 && !n; r--) {
|
|
const i = r >= 0 ? e[r] : Q();
|
|
oe(i, 'path'),
|
|
0 !== i.length && ((t = `${i}/${t}`), (n = i.charCodeAt(0) === te));
|
|
}
|
|
return (t = le(t, !n, '/', ae)), n ? `/${t}` : t.length > 0 ? t : '.';
|
|
},
|
|
normalize(e) {
|
|
if ((oe(e, 'path'), 0 === e.length)) return '.';
|
|
const t = e.charCodeAt(0) === te,
|
|
n = e.charCodeAt(e.length - 1) === te;
|
|
return 0 === (e = le(e, !t, '/', ae)).length
|
|
? t
|
|
? '/'
|
|
: n
|
|
? './'
|
|
: '.'
|
|
: (n && (e += '/'), t ? `/${e}` : e);
|
|
},
|
|
isAbsolute: (e) => (
|
|
oe(e, 'path'), e.length > 0 && e.charCodeAt(0) === te
|
|
),
|
|
join(...e) {
|
|
if (0 === e.length) return '.';
|
|
let t;
|
|
for (let n = 0; n < e.length; ++n) {
|
|
const r = e[n];
|
|
oe(r, 'path'),
|
|
r.length > 0 && (void 0 === t ? (t = r) : (t += `/${r}`));
|
|
}
|
|
return void 0 === t ? '.' : fe.normalize(t);
|
|
},
|
|
relative(e, t) {
|
|
if ((oe(e, 'from'), oe(t, 'to'), e === t)) return '';
|
|
if ((e = fe.resolve(e)) === (t = fe.resolve(t))) return '';
|
|
const n = e.length,
|
|
r = n - 1,
|
|
i = t.length - 1,
|
|
o = r < i ? r : i;
|
|
let s = -1,
|
|
a = 0;
|
|
for (; a < o; a++) {
|
|
const n = e.charCodeAt(1 + a);
|
|
if (n !== t.charCodeAt(1 + a)) break;
|
|
n === te && (s = a);
|
|
}
|
|
if (a === o)
|
|
if (i > o) {
|
|
if (t.charCodeAt(1 + a) === te) return t.slice(1 + a + 1);
|
|
if (0 === a) return t.slice(1 + a);
|
|
} else
|
|
r > o &&
|
|
(e.charCodeAt(1 + a) === te ? (s = a) : 0 === a && (s = 0));
|
|
let u = '';
|
|
for (a = 1 + s + 1; a <= n; ++a)
|
|
(a !== n && e.charCodeAt(a) !== te) ||
|
|
(u += 0 === u.length ? '..' : '/..');
|
|
return `${u}${t.slice(1 + s)}`;
|
|
},
|
|
toNamespacedPath: (e) => e,
|
|
dirname(e) {
|
|
if ((oe(e, 'path'), 0 === e.length)) return '.';
|
|
const t = e.charCodeAt(0) === te;
|
|
let n = -1,
|
|
r = !0;
|
|
for (let t = e.length - 1; t >= 1; --t)
|
|
if (e.charCodeAt(t) === te) {
|
|
if (!r) {
|
|
n = t;
|
|
break;
|
|
}
|
|
} else r = !1;
|
|
return -1 === n ? (t ? '/' : '.') : t && 1 === n ? '//' : e.slice(0, n);
|
|
},
|
|
basename(e, t) {
|
|
void 0 !== t && oe(t, 'ext'), oe(e, 'path');
|
|
let n,
|
|
r = 0,
|
|
i = -1,
|
|
o = !0;
|
|
if (void 0 !== t && t.length > 0 && t.length <= e.length) {
|
|
if (t === e) return '';
|
|
let s = t.length - 1,
|
|
a = -1;
|
|
for (n = e.length - 1; n >= 0; --n) {
|
|
const u = e.charCodeAt(n);
|
|
if (u === te) {
|
|
if (!o) {
|
|
r = n + 1;
|
|
break;
|
|
}
|
|
} else
|
|
-1 === a && ((o = !1), (a = n + 1)),
|
|
s >= 0 &&
|
|
(u === t.charCodeAt(s)
|
|
? -1 == --s && (i = n)
|
|
: ((s = -1), (i = a)));
|
|
}
|
|
return r === i ? (i = a) : -1 === i && (i = e.length), e.slice(r, i);
|
|
}
|
|
for (n = e.length - 1; n >= 0; --n)
|
|
if (e.charCodeAt(n) === te) {
|
|
if (!o) {
|
|
r = n + 1;
|
|
break;
|
|
}
|
|
} else -1 === i && ((o = !1), (i = n + 1));
|
|
return -1 === i ? '' : e.slice(r, i);
|
|
},
|
|
extname(e) {
|
|
oe(e, 'path');
|
|
let t = -1,
|
|
n = 0,
|
|
r = -1,
|
|
i = !0,
|
|
o = 0;
|
|
for (let s = e.length - 1; s >= 0; --s) {
|
|
const a = e.charCodeAt(s);
|
|
if (a !== te)
|
|
-1 === r && ((i = !1), (r = s + 1)),
|
|
a === ee
|
|
? -1 === t
|
|
? (t = s)
|
|
: 1 !== o && (o = 1)
|
|
: -1 !== t && (o = -1);
|
|
else if (!i) {
|
|
n = s + 1;
|
|
break;
|
|
}
|
|
}
|
|
return -1 === t ||
|
|
-1 === r ||
|
|
0 === o ||
|
|
(1 === o && t === r - 1 && t === n + 1)
|
|
? ''
|
|
: e.slice(t, r);
|
|
},
|
|
format: ce.bind(null, '/'),
|
|
parse(e) {
|
|
oe(e, 'path');
|
|
const t = { root: '', dir: '', base: '', ext: '', name: '' };
|
|
if (0 === e.length) return t;
|
|
const n = e.charCodeAt(0) === te;
|
|
let r;
|
|
n ? ((t.root = '/'), (r = 1)) : (r = 0);
|
|
let i = -1,
|
|
o = 0,
|
|
s = -1,
|
|
a = !0,
|
|
u = e.length - 1,
|
|
l = 0;
|
|
for (; u >= r; --u) {
|
|
const t = e.charCodeAt(u);
|
|
if (t !== te)
|
|
-1 === s && ((a = !1), (s = u + 1)),
|
|
t === ee
|
|
? -1 === i
|
|
? (i = u)
|
|
: 1 !== l && (l = 1)
|
|
: -1 !== i && (l = -1);
|
|
else if (!a) {
|
|
o = u + 1;
|
|
break;
|
|
}
|
|
}
|
|
if (-1 !== s) {
|
|
const r = 0 === o && n ? 1 : o;
|
|
-1 === i || 0 === l || (1 === l && i === s - 1 && i === o + 1)
|
|
? (t.base = t.name = e.slice(r, s))
|
|
: ((t.name = e.slice(r, i)),
|
|
(t.base = e.slice(r, s)),
|
|
(t.ext = e.slice(i, s)));
|
|
}
|
|
return o > 0 ? (t.dir = e.slice(0, o - 1)) : n && (t.dir = '/'), t;
|
|
},
|
|
sep: '/',
|
|
delimiter: ':',
|
|
win32: null,
|
|
posix: null,
|
|
};
|
|
(fe.win32 = he.win32 = he),
|
|
(fe.posix = he.posix = fe),
|
|
'win32' === X ? he.normalize : fe.normalize,
|
|
'win32' === X ? he.resolve : fe.resolve,
|
|
'win32' === X ? he.relative : fe.relative,
|
|
'win32' === X ? he.dirname : fe.dirname,
|
|
'win32' === X ? he.basename : fe.basename,
|
|
'win32' === X ? he.extname : fe.extname,
|
|
'win32' === X ? he.sep : fe.sep;
|
|
const de = /^\w[\w\d+.-]*$/,
|
|
me = /^\//,
|
|
ge = /^\/\//,
|
|
pe = '',
|
|
ve = '/',
|
|
ye = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;
|
|
class be {
|
|
constructor(e, t, n, r, i, o = !1) {
|
|
'object' == typeof e
|
|
? ((this.scheme = e.scheme || pe),
|
|
(this.authority = e.authority || pe),
|
|
(this.path = e.path || pe),
|
|
(this.query = e.query || pe),
|
|
(this.fragment = e.fragment || pe))
|
|
: ((this.scheme = (function (e, t) {
|
|
return e || t ? e : 'file';
|
|
})(e, o)),
|
|
(this.authority = t || pe),
|
|
(this.path = (function (e, t) {
|
|
switch (e) {
|
|
case 'https':
|
|
case 'http':
|
|
case 'file':
|
|
t ? t[0] !== ve && (t = ve + t) : (t = ve);
|
|
}
|
|
return t;
|
|
})(this.scheme, n || pe)),
|
|
(this.query = r || pe),
|
|
(this.fragment = i || pe),
|
|
(function (e, t) {
|
|
if (!e.scheme && t)
|
|
throw new Error(
|
|
`[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`
|
|
);
|
|
if (e.scheme && !de.test(e.scheme))
|
|
throw new Error(
|
|
'[UriError]: Scheme contains illegal characters.'
|
|
);
|
|
if (e.path)
|
|
if (e.authority) {
|
|
if (!me.test(e.path))
|
|
throw new Error(
|
|
'[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character'
|
|
);
|
|
} else if (ge.test(e.path))
|
|
throw new Error(
|
|
'[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")'
|
|
);
|
|
})(this, o));
|
|
}
|
|
static isUri(e) {
|
|
return (
|
|
e instanceof be ||
|
|
(!!e &&
|
|
'string' == typeof e.authority &&
|
|
'string' == typeof e.fragment &&
|
|
'string' == typeof e.path &&
|
|
'string' == typeof e.query &&
|
|
'string' == typeof e.scheme &&
|
|
'function' == typeof e.fsPath &&
|
|
'function' == typeof e.with &&
|
|
'function' == typeof e.toString)
|
|
);
|
|
}
|
|
get fsPath() {
|
|
return xe(this, !1);
|
|
}
|
|
with(e) {
|
|
if (!e) return this;
|
|
let { scheme: t, authority: n, path: r, query: i, fragment: o } = e;
|
|
return (
|
|
void 0 === t ? (t = this.scheme) : null === t && (t = pe),
|
|
void 0 === n ? (n = this.authority) : null === n && (n = pe),
|
|
void 0 === r ? (r = this.path) : null === r && (r = pe),
|
|
void 0 === i ? (i = this.query) : null === i && (i = pe),
|
|
void 0 === o ? (o = this.fragment) : null === o && (o = pe),
|
|
t === this.scheme &&
|
|
n === this.authority &&
|
|
r === this.path &&
|
|
i === this.query &&
|
|
o === this.fragment
|
|
? this
|
|
: new _e(t, n, r, i, o)
|
|
);
|
|
}
|
|
static parse(e, t = !1) {
|
|
const n = ye.exec(e);
|
|
return n
|
|
? new _e(
|
|
n[2] || pe,
|
|
Te(n[4] || pe),
|
|
Te(n[5] || pe),
|
|
Te(n[7] || pe),
|
|
Te(n[9] || pe),
|
|
t
|
|
)
|
|
: new _e(pe, pe, pe, pe, pe);
|
|
}
|
|
static file(e) {
|
|
let t = pe;
|
|
if ((A && (e = e.replace(/\\/g, ve)), e[0] === ve && e[1] === ve)) {
|
|
const n = e.indexOf(ve, 2);
|
|
-1 === n
|
|
? ((t = e.substring(2)), (e = ve))
|
|
: ((t = e.substring(2, n)), (e = e.substring(n) || ve));
|
|
}
|
|
return new _e('file', t, e, pe, pe);
|
|
}
|
|
static from(e) {
|
|
return new _e(e.scheme, e.authority, e.path, e.query, e.fragment);
|
|
}
|
|
static joinPath(e, ...t) {
|
|
if (!e.path)
|
|
throw new Error(
|
|
'[UriError]: cannot call joinPaths on URI without path'
|
|
);
|
|
let n;
|
|
return (
|
|
(n =
|
|
A && 'file' === e.scheme
|
|
? be.file(he.join(xe(e, !0), ...t)).path
|
|
: fe.join(e.path, ...t)),
|
|
e.with({ path: n })
|
|
);
|
|
}
|
|
toString(e = !1) {
|
|
return Ne(this, e);
|
|
}
|
|
toJSON() {
|
|
return this;
|
|
}
|
|
static revive(e) {
|
|
if (e) {
|
|
if (e instanceof be) return e;
|
|
{
|
|
const t = new _e(e);
|
|
return (
|
|
(t._formatted = e.external),
|
|
(t._fsPath = e._sep === Ce ? e.fsPath : null),
|
|
t
|
|
);
|
|
}
|
|
}
|
|
return e;
|
|
}
|
|
}
|
|
const Ce = A ? 1 : void 0;
|
|
class _e extends be {
|
|
constructor() {
|
|
super(...arguments), (this._formatted = null), (this._fsPath = null);
|
|
}
|
|
get fsPath() {
|
|
return this._fsPath || (this._fsPath = xe(this, !1)), this._fsPath;
|
|
}
|
|
toString(e = !1) {
|
|
return e
|
|
? Ne(this, !0)
|
|
: (this._formatted || (this._formatted = Ne(this, !1)),
|
|
this._formatted);
|
|
}
|
|
toJSON() {
|
|
const e = { $mid: 1 };
|
|
return (
|
|
this._fsPath && ((e.fsPath = this._fsPath), (e._sep = Ce)),
|
|
this._formatted && (e.external = this._formatted),
|
|
this.path && (e.path = this.path),
|
|
this.scheme && (e.scheme = this.scheme),
|
|
this.authority && (e.authority = this.authority),
|
|
this.query && (e.query = this.query),
|
|
this.fragment && (e.fragment = this.fragment),
|
|
e
|
|
);
|
|
}
|
|
}
|
|
const Se = {
|
|
58: '%3A',
|
|
47: '%2F',
|
|
63: '%3F',
|
|
35: '%23',
|
|
91: '%5B',
|
|
93: '%5D',
|
|
64: '%40',
|
|
33: '%21',
|
|
36: '%24',
|
|
38: '%26',
|
|
39: '%27',
|
|
40: '%28',
|
|
41: '%29',
|
|
42: '%2A',
|
|
43: '%2B',
|
|
44: '%2C',
|
|
59: '%3B',
|
|
61: '%3D',
|
|
32: '%20',
|
|
};
|
|
function Ee(e, t) {
|
|
let n,
|
|
r = -1;
|
|
for (let i = 0; i < e.length; i++) {
|
|
const o = e.charCodeAt(i);
|
|
if (
|
|
(o >= 97 && o <= 122) ||
|
|
(o >= 65 && o <= 90) ||
|
|
(o >= 48 && o <= 57) ||
|
|
45 === o ||
|
|
46 === o ||
|
|
95 === o ||
|
|
126 === o ||
|
|
(t && 47 === o)
|
|
)
|
|
-1 !== r && ((n += encodeURIComponent(e.substring(r, i))), (r = -1)),
|
|
void 0 !== n && (n += e.charAt(i));
|
|
else {
|
|
void 0 === n && (n = e.substr(0, i));
|
|
const t = Se[o];
|
|
void 0 !== t
|
|
? (-1 !== r &&
|
|
((n += encodeURIComponent(e.substring(r, i))), (r = -1)),
|
|
(n += t))
|
|
: -1 === r && (r = i);
|
|
}
|
|
}
|
|
return (
|
|
-1 !== r && (n += encodeURIComponent(e.substring(r))),
|
|
void 0 !== n ? n : e
|
|
);
|
|
}
|
|
function Ae(e) {
|
|
let t;
|
|
for (let n = 0; n < e.length; n++) {
|
|
const r = e.charCodeAt(n);
|
|
35 === r || 63 === r
|
|
? (void 0 === t && (t = e.substr(0, n)), (t += Se[r]))
|
|
: void 0 !== t && (t += e[n]);
|
|
}
|
|
return void 0 !== t ? t : e;
|
|
}
|
|
function xe(e, t) {
|
|
let n;
|
|
return (
|
|
(n =
|
|
e.authority && e.path.length > 1 && 'file' === e.scheme
|
|
? `//${e.authority}${e.path}`
|
|
: 47 === e.path.charCodeAt(0) &&
|
|
((e.path.charCodeAt(1) >= 65 && e.path.charCodeAt(1) <= 90) ||
|
|
(e.path.charCodeAt(1) >= 97 && e.path.charCodeAt(1) <= 122)) &&
|
|
58 === e.path.charCodeAt(2)
|
|
? t
|
|
? e.path.substr(1)
|
|
: e.path[1].toLowerCase() + e.path.substr(2)
|
|
: e.path),
|
|
A && (n = n.replace(/\//g, '\\')),
|
|
n
|
|
);
|
|
}
|
|
function Ne(e, t) {
|
|
const n = t ? Ae : Ee;
|
|
let r = '',
|
|
{ scheme: i, authority: o, path: s, query: a, fragment: u } = e;
|
|
if (
|
|
(i && ((r += i), (r += ':')),
|
|
(o || 'file' === i) && ((r += ve), (r += ve)),
|
|
o)
|
|
) {
|
|
let e = o.indexOf('@');
|
|
if (-1 !== e) {
|
|
const t = o.substr(0, e);
|
|
(o = o.substr(e + 1)),
|
|
(e = t.indexOf(':')),
|
|
-1 === e
|
|
? (r += n(t, !1))
|
|
: ((r += n(t.substr(0, e), !1)),
|
|
(r += ':'),
|
|
(r += n(t.substr(e + 1), !1))),
|
|
(r += '@');
|
|
}
|
|
(o = o.toLowerCase()),
|
|
(e = o.indexOf(':')),
|
|
-1 === e
|
|
? (r += n(o, !1))
|
|
: ((r += n(o.substr(0, e), !1)), (r += o.substr(e)));
|
|
}
|
|
if (s) {
|
|
if (s.length >= 3 && 47 === s.charCodeAt(0) && 58 === s.charCodeAt(2)) {
|
|
const e = s.charCodeAt(1);
|
|
e >= 65 &&
|
|
e <= 90 &&
|
|
(s = `/${String.fromCharCode(e + 32)}:${s.substr(3)}`);
|
|
} else if (s.length >= 2 && 58 === s.charCodeAt(1)) {
|
|
const e = s.charCodeAt(0);
|
|
e >= 65 &&
|
|
e <= 90 &&
|
|
(s = `${String.fromCharCode(e + 32)}:${s.substr(2)}`);
|
|
}
|
|
r += n(s, !0);
|
|
}
|
|
return (
|
|
a && ((r += '?'), (r += n(a, !1))),
|
|
u && ((r += '#'), (r += t ? u : Ee(u, !1))),
|
|
r
|
|
);
|
|
}
|
|
function Le(e) {
|
|
try {
|
|
return decodeURIComponent(e);
|
|
} catch (t) {
|
|
return e.length > 3 ? e.substr(0, 3) + Le(e.substr(3)) : e;
|
|
}
|
|
}
|
|
const we = /(%[0-9A-Za-z][0-9A-Za-z])+/g;
|
|
function Te(e) {
|
|
return e.match(we) ? e.replace(we, (e) => Le(e)) : e;
|
|
}
|
|
class ke {
|
|
constructor(e, t) {
|
|
(this.lineNumber = e), (this.column = t);
|
|
}
|
|
with(e = this.lineNumber, t = this.column) {
|
|
return e === this.lineNumber && t === this.column ? this : new ke(e, t);
|
|
}
|
|
delta(e = 0, t = 0) {
|
|
return this.with(this.lineNumber + e, this.column + t);
|
|
}
|
|
equals(e) {
|
|
return ke.equals(this, e);
|
|
}
|
|
static equals(e, t) {
|
|
return (
|
|
(!e && !t) ||
|
|
(!!e && !!t && e.lineNumber === t.lineNumber && e.column === t.column)
|
|
);
|
|
}
|
|
isBefore(e) {
|
|
return ke.isBefore(this, e);
|
|
}
|
|
static isBefore(e, t) {
|
|
return (
|
|
e.lineNumber < t.lineNumber ||
|
|
(!(t.lineNumber < e.lineNumber) && e.column < t.column)
|
|
);
|
|
}
|
|
isBeforeOrEqual(e) {
|
|
return ke.isBeforeOrEqual(this, e);
|
|
}
|
|
static isBeforeOrEqual(e, t) {
|
|
return (
|
|
e.lineNumber < t.lineNumber ||
|
|
(!(t.lineNumber < e.lineNumber) && e.column <= t.column)
|
|
);
|
|
}
|
|
static compare(e, t) {
|
|
let n = 0 | e.lineNumber,
|
|
r = 0 | t.lineNumber;
|
|
return n === r ? (0 | e.column) - (0 | t.column) : n - r;
|
|
}
|
|
clone() {
|
|
return new ke(this.lineNumber, this.column);
|
|
}
|
|
toString() {
|
|
return '(' + this.lineNumber + ',' + this.column + ')';
|
|
}
|
|
static lift(e) {
|
|
return new ke(e.lineNumber, e.column);
|
|
}
|
|
static isIPosition(e) {
|
|
return (
|
|
e && 'number' == typeof e.lineNumber && 'number' == typeof e.column
|
|
);
|
|
}
|
|
}
|
|
class Oe {
|
|
constructor(e, t, n, r) {
|
|
e > n || (e === n && t > r)
|
|
? ((this.startLineNumber = n),
|
|
(this.startColumn = r),
|
|
(this.endLineNumber = e),
|
|
(this.endColumn = t))
|
|
: ((this.startLineNumber = e),
|
|
(this.startColumn = t),
|
|
(this.endLineNumber = n),
|
|
(this.endColumn = r));
|
|
}
|
|
isEmpty() {
|
|
return Oe.isEmpty(this);
|
|
}
|
|
static isEmpty(e) {
|
|
return (
|
|
e.startLineNumber === e.endLineNumber && e.startColumn === e.endColumn
|
|
);
|
|
}
|
|
containsPosition(e) {
|
|
return Oe.containsPosition(this, e);
|
|
}
|
|
static containsPosition(e, t) {
|
|
return !(
|
|
t.lineNumber < e.startLineNumber ||
|
|
t.lineNumber > e.endLineNumber ||
|
|
(t.lineNumber === e.startLineNumber && t.column < e.startColumn) ||
|
|
(t.lineNumber === e.endLineNumber && t.column > e.endColumn)
|
|
);
|
|
}
|
|
containsRange(e) {
|
|
return Oe.containsRange(this, e);
|
|
}
|
|
static containsRange(e, t) {
|
|
return !(
|
|
t.startLineNumber < e.startLineNumber ||
|
|
t.endLineNumber < e.startLineNumber ||
|
|
t.startLineNumber > e.endLineNumber ||
|
|
t.endLineNumber > e.endLineNumber ||
|
|
(t.startLineNumber === e.startLineNumber &&
|
|
t.startColumn < e.startColumn) ||
|
|
(t.endLineNumber === e.endLineNumber && t.endColumn > e.endColumn)
|
|
);
|
|
}
|
|
strictContainsRange(e) {
|
|
return Oe.strictContainsRange(this, e);
|
|
}
|
|
static strictContainsRange(e, t) {
|
|
return !(
|
|
t.startLineNumber < e.startLineNumber ||
|
|
t.endLineNumber < e.startLineNumber ||
|
|
t.startLineNumber > e.endLineNumber ||
|
|
t.endLineNumber > e.endLineNumber ||
|
|
(t.startLineNumber === e.startLineNumber &&
|
|
t.startColumn <= e.startColumn) ||
|
|
(t.endLineNumber === e.endLineNumber && t.endColumn >= e.endColumn)
|
|
);
|
|
}
|
|
plusRange(e) {
|
|
return Oe.plusRange(this, e);
|
|
}
|
|
static plusRange(e, t) {
|
|
let n, r, i, o;
|
|
return (
|
|
t.startLineNumber < e.startLineNumber
|
|
? ((n = t.startLineNumber), (r = t.startColumn))
|
|
: t.startLineNumber === e.startLineNumber
|
|
? ((n = t.startLineNumber),
|
|
(r = Math.min(t.startColumn, e.startColumn)))
|
|
: ((n = e.startLineNumber), (r = e.startColumn)),
|
|
t.endLineNumber > e.endLineNumber
|
|
? ((i = t.endLineNumber), (o = t.endColumn))
|
|
: t.endLineNumber === e.endLineNumber
|
|
? ((i = t.endLineNumber), (o = Math.max(t.endColumn, e.endColumn)))
|
|
: ((i = e.endLineNumber), (o = e.endColumn)),
|
|
new Oe(n, r, i, o)
|
|
);
|
|
}
|
|
intersectRanges(e) {
|
|
return Oe.intersectRanges(this, e);
|
|
}
|
|
static intersectRanges(e, t) {
|
|
let n = e.startLineNumber,
|
|
r = e.startColumn,
|
|
i = e.endLineNumber,
|
|
o = e.endColumn,
|
|
s = t.startLineNumber,
|
|
a = t.startColumn,
|
|
u = t.endLineNumber,
|
|
l = t.endColumn;
|
|
return (
|
|
n < s ? ((n = s), (r = a)) : n === s && (r = Math.max(r, a)),
|
|
i > u ? ((i = u), (o = l)) : i === u && (o = Math.min(o, l)),
|
|
n > i || (n === i && r > o) ? null : new Oe(n, r, i, o)
|
|
);
|
|
}
|
|
equalsRange(e) {
|
|
return Oe.equalsRange(this, e);
|
|
}
|
|
static equalsRange(e, t) {
|
|
return (
|
|
!!e &&
|
|
!!t &&
|
|
e.startLineNumber === t.startLineNumber &&
|
|
e.startColumn === t.startColumn &&
|
|
e.endLineNumber === t.endLineNumber &&
|
|
e.endColumn === t.endColumn
|
|
);
|
|
}
|
|
getEndPosition() {
|
|
return Oe.getEndPosition(this);
|
|
}
|
|
static getEndPosition(e) {
|
|
return new ke(e.endLineNumber, e.endColumn);
|
|
}
|
|
getStartPosition() {
|
|
return Oe.getStartPosition(this);
|
|
}
|
|
static getStartPosition(e) {
|
|
return new ke(e.startLineNumber, e.startColumn);
|
|
}
|
|
toString() {
|
|
return (
|
|
'[' +
|
|
this.startLineNumber +
|
|
',' +
|
|
this.startColumn +
|
|
' -> ' +
|
|
this.endLineNumber +
|
|
',' +
|
|
this.endColumn +
|
|
']'
|
|
);
|
|
}
|
|
setEndPosition(e, t) {
|
|
return new Oe(this.startLineNumber, this.startColumn, e, t);
|
|
}
|
|
setStartPosition(e, t) {
|
|
return new Oe(e, t, this.endLineNumber, this.endColumn);
|
|
}
|
|
collapseToStart() {
|
|
return Oe.collapseToStart(this);
|
|
}
|
|
static collapseToStart(e) {
|
|
return new Oe(
|
|
e.startLineNumber,
|
|
e.startColumn,
|
|
e.startLineNumber,
|
|
e.startColumn
|
|
);
|
|
}
|
|
static fromPositions(e, t = e) {
|
|
return new Oe(e.lineNumber, e.column, t.lineNumber, t.column);
|
|
}
|
|
static lift(e) {
|
|
return e
|
|
? new Oe(e.startLineNumber, e.startColumn, e.endLineNumber, e.endColumn)
|
|
: null;
|
|
}
|
|
static isIRange(e) {
|
|
return (
|
|
e &&
|
|
'number' == typeof e.startLineNumber &&
|
|
'number' == typeof e.startColumn &&
|
|
'number' == typeof e.endLineNumber &&
|
|
'number' == typeof e.endColumn
|
|
);
|
|
}
|
|
static areIntersectingOrTouching(e, t) {
|
|
return !(
|
|
e.endLineNumber < t.startLineNumber ||
|
|
(e.endLineNumber === t.startLineNumber &&
|
|
e.endColumn < t.startColumn) ||
|
|
t.endLineNumber < e.startLineNumber ||
|
|
(t.endLineNumber === e.startLineNumber && t.endColumn < e.startColumn)
|
|
);
|
|
}
|
|
static areIntersecting(e, t) {
|
|
return !(
|
|
e.endLineNumber < t.startLineNumber ||
|
|
(e.endLineNumber === t.startLineNumber &&
|
|
e.endColumn <= t.startColumn) ||
|
|
t.endLineNumber < e.startLineNumber ||
|
|
(t.endLineNumber === e.startLineNumber && t.endColumn <= e.startColumn)
|
|
);
|
|
}
|
|
static compareRangesUsingStarts(e, t) {
|
|
if (e && t) {
|
|
const n = 0 | e.startLineNumber,
|
|
r = 0 | t.startLineNumber;
|
|
if (n === r) {
|
|
const n = 0 | e.startColumn,
|
|
r = 0 | t.startColumn;
|
|
if (n === r) {
|
|
const n = 0 | e.endLineNumber,
|
|
r = 0 | t.endLineNumber;
|
|
return n === r ? (0 | e.endColumn) - (0 | t.endColumn) : n - r;
|
|
}
|
|
return n - r;
|
|
}
|
|
return n - r;
|
|
}
|
|
return (e ? 1 : 0) - (t ? 1 : 0);
|
|
}
|
|
static compareRangesUsingEnds(e, t) {
|
|
return e.endLineNumber === t.endLineNumber
|
|
? e.endColumn === t.endColumn
|
|
? e.startLineNumber === t.startLineNumber
|
|
? e.startColumn - t.startColumn
|
|
: e.startLineNumber - t.startLineNumber
|
|
: e.endColumn - t.endColumn
|
|
: e.endLineNumber - t.endLineNumber;
|
|
}
|
|
static spansMultipleLines(e) {
|
|
return e.endLineNumber > e.startLineNumber;
|
|
}
|
|
}
|
|
function Ie(e, t, n, r) {
|
|
return new z(e, t, n).ComputeDiff(r);
|
|
}
|
|
class Me {
|
|
constructor(e) {
|
|
const t = [],
|
|
n = [];
|
|
for (let r = 0, i = e.length; r < i; r++)
|
|
(t[r] = je(e[r], 1)), (n[r] = Ue(e[r], 1));
|
|
(this.lines = e), (this._startColumns = t), (this._endColumns = n);
|
|
}
|
|
getElements() {
|
|
const e = [];
|
|
for (let t = 0, n = this.lines.length; t < n; t++)
|
|
e[t] = this.lines[t].substring(
|
|
this._startColumns[t] - 1,
|
|
this._endColumns[t] - 1
|
|
);
|
|
return e;
|
|
}
|
|
getStartLineNumber(e) {
|
|
return e + 1;
|
|
}
|
|
getEndLineNumber(e) {
|
|
return e + 1;
|
|
}
|
|
createCharSequence(e, t, n) {
|
|
const r = [],
|
|
i = [],
|
|
o = [];
|
|
let s = 0;
|
|
for (let a = t; a <= n; a++) {
|
|
const t = this.lines[a],
|
|
n = e ? this._startColumns[a] : 1,
|
|
u = e ? this._endColumns[a] : t.length + 1;
|
|
for (let e = n; e < u; e++)
|
|
(r[s] = t.charCodeAt(e - 1)), (i[s] = a + 1), (o[s] = e), s++;
|
|
}
|
|
return new Pe(r, i, o);
|
|
}
|
|
}
|
|
class Pe {
|
|
constructor(e, t, n) {
|
|
(this._charCodes = e), (this._lineNumbers = t), (this._columns = n);
|
|
}
|
|
getElements() {
|
|
return this._charCodes;
|
|
}
|
|
getStartLineNumber(e) {
|
|
return this._lineNumbers[e];
|
|
}
|
|
getStartColumn(e) {
|
|
return this._columns[e];
|
|
}
|
|
getEndLineNumber(e) {
|
|
return this._lineNumbers[e];
|
|
}
|
|
getEndColumn(e) {
|
|
return this._columns[e] + 1;
|
|
}
|
|
}
|
|
class Re {
|
|
constructor(e, t, n, r, i, o, s, a) {
|
|
(this.originalStartLineNumber = e),
|
|
(this.originalStartColumn = t),
|
|
(this.originalEndLineNumber = n),
|
|
(this.originalEndColumn = r),
|
|
(this.modifiedStartLineNumber = i),
|
|
(this.modifiedStartColumn = o),
|
|
(this.modifiedEndLineNumber = s),
|
|
(this.modifiedEndColumn = a);
|
|
}
|
|
static createFromDiffChange(e, t, n) {
|
|
let r, i, o, s, a, u, l, c;
|
|
return (
|
|
0 === e.originalLength
|
|
? ((r = 0), (i = 0), (o = 0), (s = 0))
|
|
: ((r = t.getStartLineNumber(e.originalStart)),
|
|
(i = t.getStartColumn(e.originalStart)),
|
|
(o = t.getEndLineNumber(e.originalStart + e.originalLength - 1)),
|
|
(s = t.getEndColumn(e.originalStart + e.originalLength - 1))),
|
|
0 === e.modifiedLength
|
|
? ((a = 0), (u = 0), (l = 0), (c = 0))
|
|
: ((a = n.getStartLineNumber(e.modifiedStart)),
|
|
(u = n.getStartColumn(e.modifiedStart)),
|
|
(l = n.getEndLineNumber(e.modifiedStart + e.modifiedLength - 1)),
|
|
(c = n.getEndColumn(e.modifiedStart + e.modifiedLength - 1))),
|
|
new Re(r, i, o, s, a, u, l, c)
|
|
);
|
|
}
|
|
}
|
|
class De {
|
|
constructor(e, t, n, r, i) {
|
|
(this.originalStartLineNumber = e),
|
|
(this.originalEndLineNumber = t),
|
|
(this.modifiedStartLineNumber = n),
|
|
(this.modifiedEndLineNumber = r),
|
|
(this.charChanges = i);
|
|
}
|
|
static createFromDiffResult(e, t, n, r, i, o, s) {
|
|
let a, u, l, c, h;
|
|
if (
|
|
(0 === t.originalLength
|
|
? ((a = n.getStartLineNumber(t.originalStart) - 1), (u = 0))
|
|
: ((a = n.getStartLineNumber(t.originalStart)),
|
|
(u = n.getEndLineNumber(t.originalStart + t.originalLength - 1))),
|
|
0 === t.modifiedLength
|
|
? ((l = r.getStartLineNumber(t.modifiedStart) - 1), (c = 0))
|
|
: ((l = r.getStartLineNumber(t.modifiedStart)),
|
|
(c = r.getEndLineNumber(t.modifiedStart + t.modifiedLength - 1))),
|
|
o &&
|
|
t.originalLength > 0 &&
|
|
t.originalLength < 20 &&
|
|
t.modifiedLength > 0 &&
|
|
t.modifiedLength < 20 &&
|
|
i())
|
|
) {
|
|
const o = n.createCharSequence(
|
|
e,
|
|
t.originalStart,
|
|
t.originalStart + t.originalLength - 1
|
|
),
|
|
a = r.createCharSequence(
|
|
e,
|
|
t.modifiedStart,
|
|
t.modifiedStart + t.modifiedLength - 1
|
|
);
|
|
let u = Ie(o, a, i, !0).changes;
|
|
s &&
|
|
(u = (function (e) {
|
|
if (e.length <= 1) return e;
|
|
const t = [e[0]];
|
|
let n = t[0];
|
|
for (let r = 1, i = e.length; r < i; r++) {
|
|
const i = e[r],
|
|
o = i.originalStart - (n.originalStart + n.originalLength),
|
|
s = i.modifiedStart - (n.modifiedStart + n.modifiedLength);
|
|
Math.min(o, s) < 3
|
|
? ((n.originalLength =
|
|
i.originalStart + i.originalLength - n.originalStart),
|
|
(n.modifiedLength =
|
|
i.modifiedStart + i.modifiedLength - n.modifiedStart))
|
|
: (t.push(i), (n = i));
|
|
}
|
|
return t;
|
|
})(u)),
|
|
(h = []);
|
|
for (let e = 0, t = u.length; e < t; e++)
|
|
h.push(Re.createFromDiffChange(u[e], o, a));
|
|
}
|
|
return new De(a, u, l, c, h);
|
|
}
|
|
}
|
|
class Fe {
|
|
constructor(e, t, n) {
|
|
(this.shouldComputeCharChanges = n.shouldComputeCharChanges),
|
|
(this.shouldPostProcessCharChanges = n.shouldPostProcessCharChanges),
|
|
(this.shouldIgnoreTrimWhitespace = n.shouldIgnoreTrimWhitespace),
|
|
(this.shouldMakePrettyDiff = n.shouldMakePrettyDiff),
|
|
(this.originalLines = e),
|
|
(this.modifiedLines = t),
|
|
(this.original = new Me(e)),
|
|
(this.modified = new Me(t)),
|
|
(this.continueLineDiff = Ve(n.maxComputationTime)),
|
|
(this.continueCharDiff = Ve(
|
|
0 === n.maxComputationTime ? 0 : Math.min(n.maxComputationTime, 5e3)
|
|
));
|
|
}
|
|
computeDiff() {
|
|
if (
|
|
1 === this.original.lines.length &&
|
|
0 === this.original.lines[0].length
|
|
)
|
|
return {
|
|
quitEarly: !1,
|
|
changes: [
|
|
{
|
|
originalStartLineNumber: 1,
|
|
originalEndLineNumber: 1,
|
|
modifiedStartLineNumber: 1,
|
|
modifiedEndLineNumber: this.modified.lines.length,
|
|
charChanges: [
|
|
{
|
|
modifiedEndColumn: 0,
|
|
modifiedEndLineNumber: 0,
|
|
modifiedStartColumn: 0,
|
|
modifiedStartLineNumber: 0,
|
|
originalEndColumn: 0,
|
|
originalEndLineNumber: 0,
|
|
originalStartColumn: 0,
|
|
originalStartLineNumber: 0,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
};
|
|
if (
|
|
1 === this.modified.lines.length &&
|
|
0 === this.modified.lines[0].length
|
|
)
|
|
return {
|
|
quitEarly: !1,
|
|
changes: [
|
|
{
|
|
originalStartLineNumber: 1,
|
|
originalEndLineNumber: this.original.lines.length,
|
|
modifiedStartLineNumber: 1,
|
|
modifiedEndLineNumber: 1,
|
|
charChanges: [
|
|
{
|
|
modifiedEndColumn: 0,
|
|
modifiedEndLineNumber: 0,
|
|
modifiedStartColumn: 0,
|
|
modifiedStartLineNumber: 0,
|
|
originalEndColumn: 0,
|
|
originalEndLineNumber: 0,
|
|
originalStartColumn: 0,
|
|
originalStartLineNumber: 0,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
};
|
|
const e = Ie(
|
|
this.original,
|
|
this.modified,
|
|
this.continueLineDiff,
|
|
this.shouldMakePrettyDiff
|
|
),
|
|
t = e.changes,
|
|
n = e.quitEarly;
|
|
if (this.shouldIgnoreTrimWhitespace) {
|
|
const e = [];
|
|
for (let n = 0, r = t.length; n < r; n++)
|
|
e.push(
|
|
De.createFromDiffResult(
|
|
this.shouldIgnoreTrimWhitespace,
|
|
t[n],
|
|
this.original,
|
|
this.modified,
|
|
this.continueCharDiff,
|
|
this.shouldComputeCharChanges,
|
|
this.shouldPostProcessCharChanges
|
|
)
|
|
);
|
|
return { quitEarly: n, changes: e };
|
|
}
|
|
const r = [];
|
|
let i = 0,
|
|
o = 0;
|
|
for (let e = -1, n = t.length; e < n; e++) {
|
|
const s = e + 1 < n ? t[e + 1] : null,
|
|
a = s ? s.originalStart : this.originalLines.length,
|
|
u = s ? s.modifiedStart : this.modifiedLines.length;
|
|
for (; i < a && o < u; ) {
|
|
const e = this.originalLines[i],
|
|
t = this.modifiedLines[o];
|
|
if (e !== t) {
|
|
{
|
|
let n = je(e, 1),
|
|
s = je(t, 1);
|
|
for (
|
|
;
|
|
n > 1 && s > 1 && e.charCodeAt(n - 2) === t.charCodeAt(s - 2);
|
|
|
|
)
|
|
n--, s--;
|
|
(n > 1 || s > 1) &&
|
|
this._pushTrimWhitespaceCharChange(r, i + 1, 1, n, o + 1, 1, s);
|
|
}
|
|
{
|
|
let n = Ue(e, 1),
|
|
s = Ue(t, 1);
|
|
const a = e.length + 1,
|
|
u = t.length + 1;
|
|
for (
|
|
;
|
|
n < a && s < u && e.charCodeAt(n - 1) === e.charCodeAt(s - 1);
|
|
|
|
)
|
|
n++, s++;
|
|
(n < a || s < u) &&
|
|
this._pushTrimWhitespaceCharChange(r, i + 1, n, a, o + 1, s, u);
|
|
}
|
|
}
|
|
i++, o++;
|
|
}
|
|
s &&
|
|
(r.push(
|
|
De.createFromDiffResult(
|
|
this.shouldIgnoreTrimWhitespace,
|
|
s,
|
|
this.original,
|
|
this.modified,
|
|
this.continueCharDiff,
|
|
this.shouldComputeCharChanges,
|
|
this.shouldPostProcessCharChanges
|
|
)
|
|
),
|
|
(i += s.originalLength),
|
|
(o += s.modifiedLength));
|
|
}
|
|
return { quitEarly: n, changes: r };
|
|
}
|
|
_pushTrimWhitespaceCharChange(e, t, n, r, i, o, s) {
|
|
if (this._mergeTrimWhitespaceCharChange(e, t, n, r, i, o, s)) return;
|
|
let a;
|
|
this.shouldComputeCharChanges && (a = [new Re(t, n, t, r, i, o, i, s)]),
|
|
e.push(new De(t, t, i, i, a));
|
|
}
|
|
_mergeTrimWhitespaceCharChange(e, t, n, r, i, o, s) {
|
|
const a = e.length;
|
|
if (0 === a) return !1;
|
|
const u = e[a - 1];
|
|
return (
|
|
0 !== u.originalEndLineNumber &&
|
|
0 !== u.modifiedEndLineNumber &&
|
|
u.originalEndLineNumber + 1 === t &&
|
|
u.modifiedEndLineNumber + 1 === i &&
|
|
((u.originalEndLineNumber = t),
|
|
(u.modifiedEndLineNumber = i),
|
|
this.shouldComputeCharChanges &&
|
|
u.charChanges &&
|
|
u.charChanges.push(new Re(t, n, t, r, i, o, i, s)),
|
|
!0)
|
|
);
|
|
}
|
|
}
|
|
function je(e, t) {
|
|
const n = (function (e) {
|
|
for (let t = 0, n = e.length; t < n; t++) {
|
|
const n = e.charCodeAt(t);
|
|
if (32 !== n && 9 !== n) return t;
|
|
}
|
|
return -1;
|
|
})(e);
|
|
return -1 === n ? t : n + 1;
|
|
}
|
|
function Ue(e, t) {
|
|
const n = (function (e, t = e.length - 1) {
|
|
for (let n = t; n >= 0; n--) {
|
|
const t = e.charCodeAt(n);
|
|
if (32 !== t && 9 !== t) return n;
|
|
}
|
|
return -1;
|
|
})(e);
|
|
return -1 === n ? t : n + 2;
|
|
}
|
|
function Ve(e) {
|
|
if (0 === e) return () => !0;
|
|
const t = Date.now();
|
|
return () => Date.now() - t < e;
|
|
}
|
|
function $e(e) {
|
|
return e < 0 ? 0 : e > 255 ? 255 : 0 | e;
|
|
}
|
|
function We(e) {
|
|
return e < 0 ? 0 : e > 4294967295 ? 4294967295 : 0 | e;
|
|
}
|
|
class qe {
|
|
constructor(e, t) {
|
|
(this.index = e), (this.remainder = t);
|
|
}
|
|
}
|
|
class Ke {
|
|
constructor(e) {
|
|
(this.values = e),
|
|
(this.prefixSum = new Uint32Array(e.length)),
|
|
(this.prefixSumValidIndex = new Int32Array(1)),
|
|
(this.prefixSumValidIndex[0] = -1);
|
|
}
|
|
insertValues(e, t) {
|
|
e = We(e);
|
|
const n = this.values,
|
|
r = this.prefixSum,
|
|
i = t.length;
|
|
return (
|
|
0 !== i &&
|
|
((this.values = new Uint32Array(n.length + i)),
|
|
this.values.set(n.subarray(0, e), 0),
|
|
this.values.set(n.subarray(e), e + i),
|
|
this.values.set(t, e),
|
|
e - 1 < this.prefixSumValidIndex[0] &&
|
|
(this.prefixSumValidIndex[0] = e - 1),
|
|
(this.prefixSum = new Uint32Array(this.values.length)),
|
|
this.prefixSumValidIndex[0] >= 0 &&
|
|
this.prefixSum.set(r.subarray(0, this.prefixSumValidIndex[0] + 1)),
|
|
!0)
|
|
);
|
|
}
|
|
changeValue(e, t) {
|
|
return (
|
|
(e = We(e)),
|
|
(t = We(t)),
|
|
this.values[e] !== t &&
|
|
((this.values[e] = t),
|
|
e - 1 < this.prefixSumValidIndex[0] &&
|
|
(this.prefixSumValidIndex[0] = e - 1),
|
|
!0)
|
|
);
|
|
}
|
|
removeValues(e, t) {
|
|
(e = We(e)), (t = We(t));
|
|
const n = this.values,
|
|
r = this.prefixSum;
|
|
if (e >= n.length) return !1;
|
|
let i = n.length - e;
|
|
return (
|
|
t >= i && (t = i),
|
|
0 !== t &&
|
|
((this.values = new Uint32Array(n.length - t)),
|
|
this.values.set(n.subarray(0, e), 0),
|
|
this.values.set(n.subarray(e + t), e),
|
|
(this.prefixSum = new Uint32Array(this.values.length)),
|
|
e - 1 < this.prefixSumValidIndex[0] &&
|
|
(this.prefixSumValidIndex[0] = e - 1),
|
|
this.prefixSumValidIndex[0] >= 0 &&
|
|
this.prefixSum.set(r.subarray(0, this.prefixSumValidIndex[0] + 1)),
|
|
!0)
|
|
);
|
|
}
|
|
getTotalValue() {
|
|
return 0 === this.values.length
|
|
? 0
|
|
: this._getAccumulatedValue(this.values.length - 1);
|
|
}
|
|
getAccumulatedValue(e) {
|
|
return e < 0 ? 0 : ((e = We(e)), this._getAccumulatedValue(e));
|
|
}
|
|
_getAccumulatedValue(e) {
|
|
if (e <= this.prefixSumValidIndex[0]) return this.prefixSum[e];
|
|
let t = this.prefixSumValidIndex[0] + 1;
|
|
0 === t && ((this.prefixSum[0] = this.values[0]), t++),
|
|
e >= this.values.length && (e = this.values.length - 1);
|
|
for (let n = t; n <= e; n++)
|
|
this.prefixSum[n] = this.prefixSum[n - 1] + this.values[n];
|
|
return (
|
|
(this.prefixSumValidIndex[0] = Math.max(
|
|
this.prefixSumValidIndex[0],
|
|
e
|
|
)),
|
|
this.prefixSum[e]
|
|
);
|
|
}
|
|
getIndexOf(e) {
|
|
(e = Math.floor(e)), this.getTotalValue();
|
|
let t = 0,
|
|
n = this.values.length - 1,
|
|
r = 0,
|
|
i = 0,
|
|
o = 0;
|
|
for (; t <= n; )
|
|
if (
|
|
((r = (t + (n - t) / 2) | 0),
|
|
(i = this.prefixSum[r]),
|
|
(o = i - this.values[r]),
|
|
e < o)
|
|
)
|
|
n = r - 1;
|
|
else {
|
|
if (!(e >= i)) break;
|
|
t = r + 1;
|
|
}
|
|
return new qe(r, e - o);
|
|
}
|
|
}
|
|
const Be = (function (e = '') {
|
|
let t = '(-?\\d*\\.\\d\\w*)|([^';
|
|
for (const n of '`~!@#$%^&*()-=+[{]}\\|;:\'",.<>/?')
|
|
e.indexOf(n) >= 0 || (t += '\\' + n);
|
|
return (t += '\\s]+)'), new RegExp(t, 'g');
|
|
})(),
|
|
He = { maxLen: 1e3, windowSize: 15, timeBudget: 150 };
|
|
function Ye(e, t, n, r, i = He) {
|
|
if (n.length > i.maxLen) {
|
|
let o = e - i.maxLen / 2;
|
|
return (
|
|
o < 0 ? ((r += e), (o = 0)) : (r += o),
|
|
Ye(e, t, (n = n.substring(o, e + i.maxLen / 2)), r, i)
|
|
);
|
|
}
|
|
Date.now();
|
|
const o = e - 1 - r;
|
|
let s = -1,
|
|
a = null;
|
|
for (let e = 1; ; e++) {
|
|
Date.now(), i.timeBudget;
|
|
const r = o - i.windowSize * e;
|
|
t.lastIndex = Math.max(0, r);
|
|
const u = Ge(t, n, o, s);
|
|
if (!u && a) break;
|
|
if (((a = u), r <= 0)) break;
|
|
s = r;
|
|
}
|
|
if (a) {
|
|
let e = {
|
|
word: a[0],
|
|
startColumn: r + 1 + a.index,
|
|
endColumn: r + 1 + a.index + a[0].length,
|
|
};
|
|
return (t.lastIndex = 0), e;
|
|
}
|
|
return null;
|
|
}
|
|
function Ge(e, t, n, r) {
|
|
let i;
|
|
for (; (i = e.exec(t)); ) {
|
|
const t = i.index || 0;
|
|
if (t <= n && e.lastIndex >= n) return i;
|
|
if (r > 0 && t > r) return null;
|
|
}
|
|
return null;
|
|
}
|
|
class ze {
|
|
constructor(e) {
|
|
let t = $e(e);
|
|
(this._defaultValue = t),
|
|
(this._asciiMap = ze._createAsciiMap(t)),
|
|
(this._map = new Map());
|
|
}
|
|
static _createAsciiMap(e) {
|
|
let t = new Uint8Array(256);
|
|
for (let n = 0; n < 256; n++) t[n] = e;
|
|
return t;
|
|
}
|
|
set(e, t) {
|
|
let n = $e(t);
|
|
e >= 0 && e < 256 ? (this._asciiMap[e] = n) : this._map.set(e, n);
|
|
}
|
|
get(e) {
|
|
return e >= 0 && e < 256
|
|
? this._asciiMap[e]
|
|
: this._map.get(e) || this._defaultValue;
|
|
}
|
|
}
|
|
class Je {
|
|
constructor(e, t, n) {
|
|
const r = new Uint8Array(e * t);
|
|
for (let i = 0, o = e * t; i < o; i++) r[i] = n;
|
|
(this._data = r), (this.rows = e), (this.cols = t);
|
|
}
|
|
get(e, t) {
|
|
return this._data[e * this.cols + t];
|
|
}
|
|
set(e, t, n) {
|
|
this._data[e * this.cols + t] = n;
|
|
}
|
|
}
|
|
class Qe {
|
|
constructor(e) {
|
|
let t = 0,
|
|
n = 0;
|
|
for (let r = 0, i = e.length; r < i; r++) {
|
|
let [i, o, s] = e[r];
|
|
o > t && (t = o), i > n && (n = i), s > n && (n = s);
|
|
}
|
|
t++, n++;
|
|
let r = new Je(n, t, 0);
|
|
for (let t = 0, n = e.length; t < n; t++) {
|
|
let [n, i, o] = e[t];
|
|
r.set(n, i, o);
|
|
}
|
|
(this._states = r), (this._maxCharCode = t);
|
|
}
|
|
nextState(e, t) {
|
|
return t < 0 || t >= this._maxCharCode ? 0 : this._states.get(e, t);
|
|
}
|
|
}
|
|
let Ze = null,
|
|
Xe = null;
|
|
class et {
|
|
static _createLink(e, t, n, r, i) {
|
|
let o = i - 1;
|
|
do {
|
|
const n = t.charCodeAt(o);
|
|
if (2 !== e.get(n)) break;
|
|
o--;
|
|
} while (o > r);
|
|
if (r > 0) {
|
|
const e = t.charCodeAt(r - 1),
|
|
n = t.charCodeAt(o);
|
|
((40 === e && 41 === n) ||
|
|
(91 === e && 93 === n) ||
|
|
(123 === e && 125 === n)) &&
|
|
o--;
|
|
}
|
|
return {
|
|
range: {
|
|
startLineNumber: n,
|
|
startColumn: r + 1,
|
|
endLineNumber: n,
|
|
endColumn: o + 2,
|
|
},
|
|
url: t.substring(r, o + 1),
|
|
};
|
|
}
|
|
static computeLinks(
|
|
e,
|
|
t = (function () {
|
|
return (
|
|
null === Ze &&
|
|
(Ze = new Qe([
|
|
[1, 104, 2],
|
|
[1, 72, 2],
|
|
[1, 102, 6],
|
|
[1, 70, 6],
|
|
[2, 116, 3],
|
|
[2, 84, 3],
|
|
[3, 116, 4],
|
|
[3, 84, 4],
|
|
[4, 112, 5],
|
|
[4, 80, 5],
|
|
[5, 115, 9],
|
|
[5, 83, 9],
|
|
[5, 58, 10],
|
|
[6, 105, 7],
|
|
[6, 73, 7],
|
|
[7, 108, 8],
|
|
[7, 76, 8],
|
|
[8, 101, 9],
|
|
[8, 69, 9],
|
|
[9, 58, 10],
|
|
[10, 47, 11],
|
|
[11, 47, 12],
|
|
])),
|
|
Ze
|
|
);
|
|
})()
|
|
) {
|
|
const n = (function () {
|
|
if (null === Xe) {
|
|
Xe = new ze(0);
|
|
const e =
|
|
' \t<>\'"、。。、,.:;‘“〈《「『【〔([{「」}])〕】』」》〉”’`~…';
|
|
for (let t = 0; t < e.length; t++) Xe.set(e.charCodeAt(t), 1);
|
|
const t = '.,;';
|
|
for (let e = 0; e < t.length; e++) Xe.set(t.charCodeAt(e), 2);
|
|
}
|
|
return Xe;
|
|
})();
|
|
let r = [];
|
|
for (let i = 1, o = e.getLineCount(); i <= o; i++) {
|
|
const o = e.getLineContent(i),
|
|
s = o.length;
|
|
let a = 0,
|
|
u = 0,
|
|
l = 0,
|
|
c = 1,
|
|
h = !1,
|
|
f = !1,
|
|
d = !1,
|
|
m = !1;
|
|
for (; a < s; ) {
|
|
let e = !1;
|
|
const s = o.charCodeAt(a);
|
|
if (13 === c) {
|
|
let t;
|
|
switch (s) {
|
|
case 40:
|
|
(h = !0), (t = 0);
|
|
break;
|
|
case 41:
|
|
t = h ? 0 : 1;
|
|
break;
|
|
case 91:
|
|
(d = !0), (f = !0), (t = 0);
|
|
break;
|
|
case 93:
|
|
(d = !1), (t = f ? 0 : 1);
|
|
break;
|
|
case 123:
|
|
(m = !0), (t = 0);
|
|
break;
|
|
case 125:
|
|
t = m ? 0 : 1;
|
|
break;
|
|
case 39:
|
|
t = 34 === l || 96 === l ? 0 : 1;
|
|
break;
|
|
case 34:
|
|
t = 39 === l || 96 === l ? 0 : 1;
|
|
break;
|
|
case 96:
|
|
t = 39 === l || 34 === l ? 0 : 1;
|
|
break;
|
|
case 42:
|
|
t = 42 === l ? 1 : 0;
|
|
break;
|
|
case 124:
|
|
t = 124 === l ? 1 : 0;
|
|
break;
|
|
case 32:
|
|
t = d ? 0 : 1;
|
|
break;
|
|
default:
|
|
t = n.get(s);
|
|
}
|
|
1 === t && (r.push(et._createLink(n, o, i, u, a)), (e = !0));
|
|
} else if (12 === c) {
|
|
let t;
|
|
91 === s ? ((f = !0), (t = 0)) : (t = n.get(s)),
|
|
1 === t ? (e = !0) : (c = 13);
|
|
} else (c = t.nextState(c, s)), 0 === c && (e = !0);
|
|
e && ((c = 1), (h = !1), (f = !1), (m = !1), (u = a + 1), (l = s)),
|
|
a++;
|
|
}
|
|
13 === c && r.push(et._createLink(n, o, i, u, s));
|
|
}
|
|
return r;
|
|
}
|
|
}
|
|
class tt {
|
|
constructor() {
|
|
this._defaultValueSet = [
|
|
['true', 'false'],
|
|
['True', 'False'],
|
|
[
|
|
'Private',
|
|
'Public',
|
|
'Friend',
|
|
'ReadOnly',
|
|
'Partial',
|
|
'Protected',
|
|
'WriteOnly',
|
|
],
|
|
['public', 'protected', 'private'],
|
|
];
|
|
}
|
|
navigateValueSet(e, t, n, r, i) {
|
|
if (e && t) {
|
|
let n = this.doNavigateValueSet(t, i);
|
|
if (n) return { range: e, value: n };
|
|
}
|
|
if (n && r) {
|
|
let e = this.doNavigateValueSet(r, i);
|
|
if (e) return { range: n, value: e };
|
|
}
|
|
return null;
|
|
}
|
|
doNavigateValueSet(e, t) {
|
|
let n = this.numberReplace(e, t);
|
|
return null !== n ? n : this.textReplace(e, t);
|
|
}
|
|
numberReplace(e, t) {
|
|
let n = Math.pow(10, e.length - (e.lastIndexOf('.') + 1)),
|
|
r = Number(e),
|
|
i = parseFloat(e);
|
|
return isNaN(r) || isNaN(i) || r !== i
|
|
? null
|
|
: 0 !== r || t
|
|
? ((r = Math.floor(r * n)), (r += t ? n : -n), String(r / n))
|
|
: null;
|
|
}
|
|
textReplace(e, t) {
|
|
return this.valueSetsReplace(this._defaultValueSet, e, t);
|
|
}
|
|
valueSetsReplace(e, t, n) {
|
|
let r = null;
|
|
for (let i = 0, o = e.length; null === r && i < o; i++)
|
|
r = this.valueSetReplace(e[i], t, n);
|
|
return r;
|
|
}
|
|
valueSetReplace(e, t, n) {
|
|
let r = e.indexOf(t);
|
|
return r >= 0
|
|
? ((r += n ? 1 : -1),
|
|
r < 0 ? (r = e.length - 1) : (r %= e.length),
|
|
e[r])
|
|
: null;
|
|
}
|
|
}
|
|
tt.INSTANCE = new tt();
|
|
class nt {
|
|
constructor(e) {
|
|
(this.element = e),
|
|
(this.next = nt.Undefined),
|
|
(this.prev = nt.Undefined);
|
|
}
|
|
}
|
|
nt.Undefined = new nt(void 0);
|
|
class rt {
|
|
constructor() {
|
|
(this._first = nt.Undefined),
|
|
(this._last = nt.Undefined),
|
|
(this._size = 0);
|
|
}
|
|
get size() {
|
|
return this._size;
|
|
}
|
|
isEmpty() {
|
|
return this._first === nt.Undefined;
|
|
}
|
|
clear() {
|
|
(this._first = nt.Undefined),
|
|
(this._last = nt.Undefined),
|
|
(this._size = 0);
|
|
}
|
|
unshift(e) {
|
|
return this._insert(e, !1);
|
|
}
|
|
push(e) {
|
|
return this._insert(e, !0);
|
|
}
|
|
_insert(e, t) {
|
|
const n = new nt(e);
|
|
if (this._first === nt.Undefined) (this._first = n), (this._last = n);
|
|
else if (t) {
|
|
const e = this._last;
|
|
(this._last = n), (n.prev = e), (e.next = n);
|
|
} else {
|
|
const e = this._first;
|
|
(this._first = n), (n.next = e), (e.prev = n);
|
|
}
|
|
this._size += 1;
|
|
let r = !1;
|
|
return () => {
|
|
r || ((r = !0), this._remove(n));
|
|
};
|
|
}
|
|
shift() {
|
|
if (this._first !== nt.Undefined) {
|
|
const e = this._first.element;
|
|
return this._remove(this._first), e;
|
|
}
|
|
}
|
|
pop() {
|
|
if (this._last !== nt.Undefined) {
|
|
const e = this._last.element;
|
|
return this._remove(this._last), e;
|
|
}
|
|
}
|
|
_remove(e) {
|
|
if (e.prev !== nt.Undefined && e.next !== nt.Undefined) {
|
|
const t = e.prev;
|
|
(t.next = e.next), (e.next.prev = t);
|
|
} else
|
|
e.prev === nt.Undefined && e.next === nt.Undefined
|
|
? ((this._first = nt.Undefined), (this._last = nt.Undefined))
|
|
: e.next === nt.Undefined
|
|
? ((this._last = this._last.prev), (this._last.next = nt.Undefined))
|
|
: e.prev === nt.Undefined &&
|
|
((this._first = this._first.next),
|
|
(this._first.prev = nt.Undefined));
|
|
this._size -= 1;
|
|
}
|
|
*[Symbol.iterator]() {
|
|
let e = this._first;
|
|
for (; e !== nt.Undefined; ) yield e.element, (e = e.next);
|
|
}
|
|
toArray() {
|
|
const e = [];
|
|
for (let t = this._first; t !== nt.Undefined; t = t.next)
|
|
e.push(t.element);
|
|
return e;
|
|
}
|
|
}
|
|
var it;
|
|
!(function (e) {
|
|
function t(e) {
|
|
return (t, n = null, r) => {
|
|
let i,
|
|
o = !1;
|
|
return (
|
|
(i = e(
|
|
(e) => {
|
|
if (!o) return i ? i.dispose() : (o = !0), t.call(n, e);
|
|
},
|
|
null,
|
|
r
|
|
)),
|
|
o && i.dispose(),
|
|
i
|
|
);
|
|
};
|
|
}
|
|
function n(e, t) {
|
|
return a((n, r = null, i) => e((e) => n.call(r, t(e)), null, i));
|
|
}
|
|
function r(e, t) {
|
|
return a((n, r = null, i) =>
|
|
e(
|
|
(e) => {
|
|
t(e), n.call(r, e);
|
|
},
|
|
null,
|
|
i
|
|
)
|
|
);
|
|
}
|
|
function i(e, t) {
|
|
return a((n, r = null, i) => e((e) => t(e) && n.call(r, e), null, i));
|
|
}
|
|
function o(e, t, r) {
|
|
let i = r;
|
|
return n(e, (e) => ((i = t(i, e)), i));
|
|
}
|
|
function a(e) {
|
|
let t;
|
|
const n = new ot({
|
|
onFirstListenerAdd() {
|
|
t = e(n.fire, n);
|
|
},
|
|
onLastListenerRemove() {
|
|
t.dispose();
|
|
},
|
|
});
|
|
return n.event;
|
|
}
|
|
function l(e, t, n = 100, r = !1, i) {
|
|
let o,
|
|
s,
|
|
a,
|
|
u = 0;
|
|
const l = new ot({
|
|
leakWarningThreshold: i,
|
|
onFirstListenerAdd() {
|
|
o = e((e) => {
|
|
u++,
|
|
(s = t(s, e)),
|
|
r && !a && (l.fire(s), (s = void 0)),
|
|
clearTimeout(a),
|
|
(a = setTimeout(() => {
|
|
const e = s;
|
|
(s = void 0), (a = void 0), (!r || u > 1) && l.fire(e), (u = 0);
|
|
}, n));
|
|
});
|
|
},
|
|
onLastListenerRemove() {
|
|
o.dispose();
|
|
},
|
|
});
|
|
return l.event;
|
|
}
|
|
function h(e) {
|
|
let t,
|
|
n = !0;
|
|
return i(e, (e) => {
|
|
const r = n || e !== t;
|
|
return (n = !1), (t = e), r;
|
|
});
|
|
}
|
|
(e.None = () => c.None),
|
|
(e.once = t),
|
|
(e.map = n),
|
|
(e.forEach = r),
|
|
(e.filter = i),
|
|
(e.signal = function (e) {
|
|
return e;
|
|
}),
|
|
(e.any = function (...e) {
|
|
return (t, n = null, r) =>
|
|
(function (...e) {
|
|
return e.forEach(s), { dispose: () => u(e) };
|
|
})(...e.map((e) => e((e) => t.call(n, e), null, r)));
|
|
}),
|
|
(e.reduce = o),
|
|
(e.snapshot = a),
|
|
(e.debounce = l),
|
|
(e.stopwatch = function (e) {
|
|
const r = new Date().getTime();
|
|
return n(t(e), (e) => new Date().getTime() - r);
|
|
}),
|
|
(e.latch = h),
|
|
(e.buffer = function (e, t = !1, n = []) {
|
|
let r = n.slice(),
|
|
i = e((e) => {
|
|
r ? r.push(e) : s.fire(e);
|
|
});
|
|
const o = () => {
|
|
r && r.forEach((e) => s.fire(e)), (r = null);
|
|
},
|
|
s = new ot({
|
|
onFirstListenerAdd() {
|
|
i || (i = e((e) => s.fire(e)));
|
|
},
|
|
onFirstListenerDidAdd() {
|
|
r && (t ? setTimeout(o) : o());
|
|
},
|
|
onLastListenerRemove() {
|
|
i && i.dispose(), (i = null);
|
|
},
|
|
});
|
|
return s.event;
|
|
});
|
|
class f {
|
|
constructor(e) {
|
|
this.event = e;
|
|
}
|
|
map(e) {
|
|
return new f(n(this.event, e));
|
|
}
|
|
forEach(e) {
|
|
return new f(r(this.event, e));
|
|
}
|
|
filter(e) {
|
|
return new f(i(this.event, e));
|
|
}
|
|
reduce(e, t) {
|
|
return new f(o(this.event, e, t));
|
|
}
|
|
latch() {
|
|
return new f(h(this.event));
|
|
}
|
|
debounce(e, t = 100, n = !1, r) {
|
|
return new f(l(this.event, e, t, n, r));
|
|
}
|
|
on(e, t, n) {
|
|
return this.event(e, t, n);
|
|
}
|
|
once(e, n, r) {
|
|
return t(this.event)(e, n, r);
|
|
}
|
|
}
|
|
(e.chain = function (e) {
|
|
return new f(e);
|
|
}),
|
|
(e.fromNodeEventEmitter = function (e, t, n = (e) => e) {
|
|
const r = (...e) => i.fire(n(...e)),
|
|
i = new ot({
|
|
onFirstListenerAdd: () => e.on(t, r),
|
|
onLastListenerRemove: () => e.removeListener(t, r),
|
|
});
|
|
return i.event;
|
|
}),
|
|
(e.fromDOMEventEmitter = function (e, t, n = (e) => e) {
|
|
const r = (...e) => i.fire(n(...e)),
|
|
i = new ot({
|
|
onFirstListenerAdd: () => e.addEventListener(t, r),
|
|
onLastListenerRemove: () => e.removeEventListener(t, r),
|
|
});
|
|
return i.event;
|
|
}),
|
|
(e.fromPromise = function (e) {
|
|
const t = new ot();
|
|
let n = !1;
|
|
return (
|
|
e
|
|
.then(void 0, () => null)
|
|
.then(() => {
|
|
n ? t.fire(void 0) : setTimeout(() => t.fire(void 0), 0);
|
|
}),
|
|
(n = !0),
|
|
t.event
|
|
);
|
|
}),
|
|
(e.toPromise = function (e) {
|
|
return new Promise((n) => t(e)(n));
|
|
});
|
|
})(it || (it = {}));
|
|
class ot {
|
|
constructor(e) {
|
|
(this._disposed = !1), (this._options = e), (this._leakageMon = void 0);
|
|
}
|
|
get event() {
|
|
return (
|
|
this._event ||
|
|
(this._event = (e, t, n) => {
|
|
this._listeners || (this._listeners = new rt());
|
|
const r = this._listeners.isEmpty();
|
|
r &&
|
|
this._options &&
|
|
this._options.onFirstListenerAdd &&
|
|
this._options.onFirstListenerAdd(this);
|
|
const i = this._listeners.push(t ? [e, t] : e);
|
|
let o, s;
|
|
return (
|
|
r &&
|
|
this._options &&
|
|
this._options.onFirstListenerDidAdd &&
|
|
this._options.onFirstListenerDidAdd(this),
|
|
this._options &&
|
|
this._options.onListenerDidAdd &&
|
|
this._options.onListenerDidAdd(this, e, t),
|
|
this._leakageMon &&
|
|
(o = this._leakageMon.check(this._listeners.size)),
|
|
(s = {
|
|
dispose: () => {
|
|
o && o(),
|
|
(s.dispose = ot._noop),
|
|
!this._disposed &&
|
|
(i(),
|
|
this._options && this._options.onLastListenerRemove) &&
|
|
((this._listeners && !this._listeners.isEmpty()) ||
|
|
this._options.onLastListenerRemove(this));
|
|
},
|
|
}),
|
|
n instanceof l ? n.add(s) : Array.isArray(n) && n.push(s),
|
|
s
|
|
);
|
|
}),
|
|
this._event
|
|
);
|
|
}
|
|
fire(e) {
|
|
if (this._listeners) {
|
|
this._deliveryQueue || (this._deliveryQueue = new rt());
|
|
for (let t of this._listeners) this._deliveryQueue.push([t, e]);
|
|
for (; this._deliveryQueue.size > 0; ) {
|
|
const [e, t] = this._deliveryQueue.shift();
|
|
try {
|
|
'function' == typeof e ? e.call(void 0, t) : e[0].call(e[1], t);
|
|
} catch (e) {
|
|
n(e);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
dispose() {
|
|
this._listeners && this._listeners.clear(),
|
|
this._deliveryQueue && this._deliveryQueue.clear(),
|
|
this._leakageMon && this._leakageMon.dispose(),
|
|
(this._disposed = !0);
|
|
}
|
|
}
|
|
ot._noop = function () {};
|
|
const st = Object.freeze(function (e, t) {
|
|
const n = setTimeout(e.bind(t), 0);
|
|
return {
|
|
dispose() {
|
|
clearTimeout(n);
|
|
},
|
|
};
|
|
});
|
|
var at;
|
|
!(function (e) {
|
|
(e.isCancellationToken = function (t) {
|
|
return (
|
|
t === e.None ||
|
|
t === e.Cancelled ||
|
|
t instanceof ut ||
|
|
(!(!t || 'object' != typeof t) &&
|
|
'boolean' == typeof t.isCancellationRequested &&
|
|
'function' == typeof t.onCancellationRequested)
|
|
);
|
|
}),
|
|
(e.None = Object.freeze({
|
|
isCancellationRequested: !1,
|
|
onCancellationRequested: it.None,
|
|
})),
|
|
(e.Cancelled = Object.freeze({
|
|
isCancellationRequested: !0,
|
|
onCancellationRequested: st,
|
|
}));
|
|
})(at || (at = {}));
|
|
class ut {
|
|
constructor() {
|
|
(this._isCancelled = !1), (this._emitter = null);
|
|
}
|
|
cancel() {
|
|
this._isCancelled ||
|
|
((this._isCancelled = !0),
|
|
this._emitter && (this._emitter.fire(void 0), this.dispose()));
|
|
}
|
|
get isCancellationRequested() {
|
|
return this._isCancelled;
|
|
}
|
|
get onCancellationRequested() {
|
|
return this._isCancelled
|
|
? st
|
|
: (this._emitter || (this._emitter = new ot()), this._emitter.event);
|
|
}
|
|
dispose() {
|
|
this._emitter && (this._emitter.dispose(), (this._emitter = null));
|
|
}
|
|
}
|
|
class lt {
|
|
constructor() {
|
|
(this._keyCodeToStr = []), (this._strToKeyCode = Object.create(null));
|
|
}
|
|
define(e, t) {
|
|
(this._keyCodeToStr[e] = t), (this._strToKeyCode[t.toLowerCase()] = e);
|
|
}
|
|
keyCodeToStr(e) {
|
|
return this._keyCodeToStr[e];
|
|
}
|
|
strToKeyCode(e) {
|
|
return this._strToKeyCode[e.toLowerCase()] || 0;
|
|
}
|
|
}
|
|
const ct = new lt(),
|
|
ht = new lt(),
|
|
ft = new lt();
|
|
var dt,
|
|
mt,
|
|
gt,
|
|
pt,
|
|
vt,
|
|
yt,
|
|
bt,
|
|
Ct,
|
|
_t,
|
|
St,
|
|
Et,
|
|
At,
|
|
xt,
|
|
Nt,
|
|
Lt,
|
|
wt,
|
|
Tt,
|
|
kt,
|
|
Ot,
|
|
It,
|
|
Mt,
|
|
Pt,
|
|
Rt,
|
|
Dt,
|
|
Ft,
|
|
jt,
|
|
Ut,
|
|
Vt,
|
|
$t,
|
|
Wt,
|
|
qt,
|
|
Kt,
|
|
Bt,
|
|
Ht;
|
|
!(function () {
|
|
function e(e, t, n = t, r = n) {
|
|
ct.define(e, t), ht.define(e, n), ft.define(e, r);
|
|
}
|
|
e(0, 'unknown'),
|
|
e(1, 'Backspace'),
|
|
e(2, 'Tab'),
|
|
e(3, 'Enter'),
|
|
e(4, 'Shift'),
|
|
e(5, 'Ctrl'),
|
|
e(6, 'Alt'),
|
|
e(7, 'PauseBreak'),
|
|
e(8, 'CapsLock'),
|
|
e(9, 'Escape'),
|
|
e(10, 'Space'),
|
|
e(11, 'PageUp'),
|
|
e(12, 'PageDown'),
|
|
e(13, 'End'),
|
|
e(14, 'Home'),
|
|
e(15, 'LeftArrow', 'Left'),
|
|
e(16, 'UpArrow', 'Up'),
|
|
e(17, 'RightArrow', 'Right'),
|
|
e(18, 'DownArrow', 'Down'),
|
|
e(19, 'Insert'),
|
|
e(20, 'Delete'),
|
|
e(21, '0'),
|
|
e(22, '1'),
|
|
e(23, '2'),
|
|
e(24, '3'),
|
|
e(25, '4'),
|
|
e(26, '5'),
|
|
e(27, '6'),
|
|
e(28, '7'),
|
|
e(29, '8'),
|
|
e(30, '9'),
|
|
e(31, 'A'),
|
|
e(32, 'B'),
|
|
e(33, 'C'),
|
|
e(34, 'D'),
|
|
e(35, 'E'),
|
|
e(36, 'F'),
|
|
e(37, 'G'),
|
|
e(38, 'H'),
|
|
e(39, 'I'),
|
|
e(40, 'J'),
|
|
e(41, 'K'),
|
|
e(42, 'L'),
|
|
e(43, 'M'),
|
|
e(44, 'N'),
|
|
e(45, 'O'),
|
|
e(46, 'P'),
|
|
e(47, 'Q'),
|
|
e(48, 'R'),
|
|
e(49, 'S'),
|
|
e(50, 'T'),
|
|
e(51, 'U'),
|
|
e(52, 'V'),
|
|
e(53, 'W'),
|
|
e(54, 'X'),
|
|
e(55, 'Y'),
|
|
e(56, 'Z'),
|
|
e(57, 'Meta'),
|
|
e(58, 'ContextMenu'),
|
|
e(59, 'F1'),
|
|
e(60, 'F2'),
|
|
e(61, 'F3'),
|
|
e(62, 'F4'),
|
|
e(63, 'F5'),
|
|
e(64, 'F6'),
|
|
e(65, 'F7'),
|
|
e(66, 'F8'),
|
|
e(67, 'F9'),
|
|
e(68, 'F10'),
|
|
e(69, 'F11'),
|
|
e(70, 'F12'),
|
|
e(71, 'F13'),
|
|
e(72, 'F14'),
|
|
e(73, 'F15'),
|
|
e(74, 'F16'),
|
|
e(75, 'F17'),
|
|
e(76, 'F18'),
|
|
e(77, 'F19'),
|
|
e(78, 'NumLock'),
|
|
e(79, 'ScrollLock'),
|
|
e(80, ';', ';', 'OEM_1'),
|
|
e(81, '=', '=', 'OEM_PLUS'),
|
|
e(82, ',', ',', 'OEM_COMMA'),
|
|
e(83, '-', '-', 'OEM_MINUS'),
|
|
e(84, '.', '.', 'OEM_PERIOD'),
|
|
e(85, '/', '/', 'OEM_2'),
|
|
e(86, '`', '`', 'OEM_3'),
|
|
e(110, 'ABNT_C1'),
|
|
e(111, 'ABNT_C2'),
|
|
e(87, '[', '[', 'OEM_4'),
|
|
e(88, '\\', '\\', 'OEM_5'),
|
|
e(89, ']', ']', 'OEM_6'),
|
|
e(90, "'", "'", 'OEM_7'),
|
|
e(91, 'OEM_8'),
|
|
e(92, 'OEM_102'),
|
|
e(93, 'NumPad0'),
|
|
e(94, 'NumPad1'),
|
|
e(95, 'NumPad2'),
|
|
e(96, 'NumPad3'),
|
|
e(97, 'NumPad4'),
|
|
e(98, 'NumPad5'),
|
|
e(99, 'NumPad6'),
|
|
e(100, 'NumPad7'),
|
|
e(101, 'NumPad8'),
|
|
e(102, 'NumPad9'),
|
|
e(103, 'NumPad_Multiply'),
|
|
e(104, 'NumPad_Add'),
|
|
e(105, 'NumPad_Separator'),
|
|
e(106, 'NumPad_Subtract'),
|
|
e(107, 'NumPad_Decimal'),
|
|
e(108, 'NumPad_Divide');
|
|
})(),
|
|
(function (e) {
|
|
(e.toString = function (e) {
|
|
return ct.keyCodeToStr(e);
|
|
}),
|
|
(e.fromString = function (e) {
|
|
return ct.strToKeyCode(e);
|
|
}),
|
|
(e.toUserSettingsUS = function (e) {
|
|
return ht.keyCodeToStr(e);
|
|
}),
|
|
(e.toUserSettingsGeneral = function (e) {
|
|
return ft.keyCodeToStr(e);
|
|
}),
|
|
(e.fromUserSettings = function (e) {
|
|
return ht.strToKeyCode(e) || ft.strToKeyCode(e);
|
|
});
|
|
})(dt || (dt = {}));
|
|
class Yt extends Oe {
|
|
constructor(e, t, n, r) {
|
|
super(e, t, n, r),
|
|
(this.selectionStartLineNumber = e),
|
|
(this.selectionStartColumn = t),
|
|
(this.positionLineNumber = n),
|
|
(this.positionColumn = r);
|
|
}
|
|
toString() {
|
|
return (
|
|
'[' +
|
|
this.selectionStartLineNumber +
|
|
',' +
|
|
this.selectionStartColumn +
|
|
' -> ' +
|
|
this.positionLineNumber +
|
|
',' +
|
|
this.positionColumn +
|
|
']'
|
|
);
|
|
}
|
|
equalsSelection(e) {
|
|
return Yt.selectionsEqual(this, e);
|
|
}
|
|
static selectionsEqual(e, t) {
|
|
return (
|
|
e.selectionStartLineNumber === t.selectionStartLineNumber &&
|
|
e.selectionStartColumn === t.selectionStartColumn &&
|
|
e.positionLineNumber === t.positionLineNumber &&
|
|
e.positionColumn === t.positionColumn
|
|
);
|
|
}
|
|
getDirection() {
|
|
return this.selectionStartLineNumber === this.startLineNumber &&
|
|
this.selectionStartColumn === this.startColumn
|
|
? 0
|
|
: 1;
|
|
}
|
|
setEndPosition(e, t) {
|
|
return 0 === this.getDirection()
|
|
? new Yt(this.startLineNumber, this.startColumn, e, t)
|
|
: new Yt(e, t, this.startLineNumber, this.startColumn);
|
|
}
|
|
getPosition() {
|
|
return new ke(this.positionLineNumber, this.positionColumn);
|
|
}
|
|
setStartPosition(e, t) {
|
|
return 0 === this.getDirection()
|
|
? new Yt(e, t, this.endLineNumber, this.endColumn)
|
|
: new Yt(this.endLineNumber, this.endColumn, e, t);
|
|
}
|
|
static fromPositions(e, t = e) {
|
|
return new Yt(e.lineNumber, e.column, t.lineNumber, t.column);
|
|
}
|
|
static liftSelection(e) {
|
|
return new Yt(
|
|
e.selectionStartLineNumber,
|
|
e.selectionStartColumn,
|
|
e.positionLineNumber,
|
|
e.positionColumn
|
|
);
|
|
}
|
|
static selectionsArrEqual(e, t) {
|
|
if ((e && !t) || (!e && t)) return !1;
|
|
if (!e && !t) return !0;
|
|
if (e.length !== t.length) return !1;
|
|
for (let n = 0, r = e.length; n < r; n++)
|
|
if (!this.selectionsEqual(e[n], t[n])) return !1;
|
|
return !0;
|
|
}
|
|
static isISelection(e) {
|
|
return (
|
|
e &&
|
|
'number' == typeof e.selectionStartLineNumber &&
|
|
'number' == typeof e.selectionStartColumn &&
|
|
'number' == typeof e.positionLineNumber &&
|
|
'number' == typeof e.positionColumn
|
|
);
|
|
}
|
|
static createWithDirection(e, t, n, r, i) {
|
|
return 0 === i ? new Yt(e, t, n, r) : new Yt(n, r, e, t);
|
|
}
|
|
}
|
|
!(function (e) {
|
|
(e[(e.Unknown = 0)] = 'Unknown'),
|
|
(e[(e.Disabled = 1)] = 'Disabled'),
|
|
(e[(e.Enabled = 2)] = 'Enabled');
|
|
})(mt || (mt = {})),
|
|
(function (e) {
|
|
(e[(e.KeepWhitespace = 1)] = 'KeepWhitespace'),
|
|
(e[(e.InsertAsSnippet = 4)] = 'InsertAsSnippet');
|
|
})(gt || (gt = {})),
|
|
(function (e) {
|
|
(e[(e.Method = 0)] = 'Method'),
|
|
(e[(e.Function = 1)] = 'Function'),
|
|
(e[(e.Constructor = 2)] = 'Constructor'),
|
|
(e[(e.Field = 3)] = 'Field'),
|
|
(e[(e.Variable = 4)] = 'Variable'),
|
|
(e[(e.Class = 5)] = 'Class'),
|
|
(e[(e.Struct = 6)] = 'Struct'),
|
|
(e[(e.Interface = 7)] = 'Interface'),
|
|
(e[(e.Module = 8)] = 'Module'),
|
|
(e[(e.Property = 9)] = 'Property'),
|
|
(e[(e.Event = 10)] = 'Event'),
|
|
(e[(e.Operator = 11)] = 'Operator'),
|
|
(e[(e.Unit = 12)] = 'Unit'),
|
|
(e[(e.Value = 13)] = 'Value'),
|
|
(e[(e.Constant = 14)] = 'Constant'),
|
|
(e[(e.Enum = 15)] = 'Enum'),
|
|
(e[(e.EnumMember = 16)] = 'EnumMember'),
|
|
(e[(e.Keyword = 17)] = 'Keyword'),
|
|
(e[(e.Text = 18)] = 'Text'),
|
|
(e[(e.Color = 19)] = 'Color'),
|
|
(e[(e.File = 20)] = 'File'),
|
|
(e[(e.Reference = 21)] = 'Reference'),
|
|
(e[(e.Customcolor = 22)] = 'Customcolor'),
|
|
(e[(e.Folder = 23)] = 'Folder'),
|
|
(e[(e.TypeParameter = 24)] = 'TypeParameter'),
|
|
(e[(e.User = 25)] = 'User'),
|
|
(e[(e.Issue = 26)] = 'Issue'),
|
|
(e[(e.Snippet = 27)] = 'Snippet');
|
|
})(pt || (pt = {})),
|
|
(function (e) {
|
|
e[(e.Deprecated = 1)] = 'Deprecated';
|
|
})(vt || (vt = {})),
|
|
(function (e) {
|
|
(e[(e.Invoke = 0)] = 'Invoke'),
|
|
(e[(e.TriggerCharacter = 1)] = 'TriggerCharacter'),
|
|
(e[(e.TriggerForIncompleteCompletions = 2)] =
|
|
'TriggerForIncompleteCompletions');
|
|
})(yt || (yt = {})),
|
|
(function (e) {
|
|
(e[(e.EXACT = 0)] = 'EXACT'),
|
|
(e[(e.ABOVE = 1)] = 'ABOVE'),
|
|
(e[(e.BELOW = 2)] = 'BELOW');
|
|
})(bt || (bt = {})),
|
|
(function (e) {
|
|
(e[(e.NotSet = 0)] = 'NotSet'),
|
|
(e[(e.ContentFlush = 1)] = 'ContentFlush'),
|
|
(e[(e.RecoverFromMarkers = 2)] = 'RecoverFromMarkers'),
|
|
(e[(e.Explicit = 3)] = 'Explicit'),
|
|
(e[(e.Paste = 4)] = 'Paste'),
|
|
(e[(e.Undo = 5)] = 'Undo'),
|
|
(e[(e.Redo = 6)] = 'Redo');
|
|
})(Ct || (Ct = {})),
|
|
(function (e) {
|
|
(e[(e.LF = 1)] = 'LF'), (e[(e.CRLF = 2)] = 'CRLF');
|
|
})(_t || (_t = {})),
|
|
(function (e) {
|
|
(e[(e.Text = 0)] = 'Text'),
|
|
(e[(e.Read = 1)] = 'Read'),
|
|
(e[(e.Write = 2)] = 'Write');
|
|
})(St || (St = {})),
|
|
(function (e) {
|
|
(e[(e.None = 0)] = 'None'),
|
|
(e[(e.Keep = 1)] = 'Keep'),
|
|
(e[(e.Brackets = 2)] = 'Brackets'),
|
|
(e[(e.Advanced = 3)] = 'Advanced'),
|
|
(e[(e.Full = 4)] = 'Full');
|
|
})(Et || (Et = {})),
|
|
(function (e) {
|
|
(e[(e.acceptSuggestionOnCommitCharacter = 0)] =
|
|
'acceptSuggestionOnCommitCharacter'),
|
|
(e[(e.acceptSuggestionOnEnter = 1)] = 'acceptSuggestionOnEnter'),
|
|
(e[(e.accessibilitySupport = 2)] = 'accessibilitySupport'),
|
|
(e[(e.accessibilityPageSize = 3)] = 'accessibilityPageSize'),
|
|
(e[(e.ariaLabel = 4)] = 'ariaLabel'),
|
|
(e[(e.autoClosingBrackets = 5)] = 'autoClosingBrackets'),
|
|
(e[(e.autoClosingOvertype = 6)] = 'autoClosingOvertype'),
|
|
(e[(e.autoClosingQuotes = 7)] = 'autoClosingQuotes'),
|
|
(e[(e.autoIndent = 8)] = 'autoIndent'),
|
|
(e[(e.automaticLayout = 9)] = 'automaticLayout'),
|
|
(e[(e.autoSurround = 10)] = 'autoSurround'),
|
|
(e[(e.codeLens = 11)] = 'codeLens'),
|
|
(e[(e.colorDecorators = 12)] = 'colorDecorators'),
|
|
(e[(e.columnSelection = 13)] = 'columnSelection'),
|
|
(e[(e.comments = 14)] = 'comments'),
|
|
(e[(e.contextmenu = 15)] = 'contextmenu'),
|
|
(e[(e.copyWithSyntaxHighlighting = 16)] = 'copyWithSyntaxHighlighting'),
|
|
(e[(e.cursorBlinking = 17)] = 'cursorBlinking'),
|
|
(e[(e.cursorSmoothCaretAnimation = 18)] = 'cursorSmoothCaretAnimation'),
|
|
(e[(e.cursorStyle = 19)] = 'cursorStyle'),
|
|
(e[(e.cursorSurroundingLines = 20)] = 'cursorSurroundingLines'),
|
|
(e[(e.cursorSurroundingLinesStyle = 21)] =
|
|
'cursorSurroundingLinesStyle'),
|
|
(e[(e.cursorWidth = 22)] = 'cursorWidth'),
|
|
(e[(e.disableLayerHinting = 23)] = 'disableLayerHinting'),
|
|
(e[(e.disableMonospaceOptimizations = 24)] =
|
|
'disableMonospaceOptimizations'),
|
|
(e[(e.dragAndDrop = 25)] = 'dragAndDrop'),
|
|
(e[(e.emptySelectionClipboard = 26)] = 'emptySelectionClipboard'),
|
|
(e[(e.extraEditorClassName = 27)] = 'extraEditorClassName'),
|
|
(e[(e.fastScrollSensitivity = 28)] = 'fastScrollSensitivity'),
|
|
(e[(e.find = 29)] = 'find'),
|
|
(e[(e.fixedOverflowWidgets = 30)] = 'fixedOverflowWidgets'),
|
|
(e[(e.folding = 31)] = 'folding'),
|
|
(e[(e.foldingStrategy = 32)] = 'foldingStrategy'),
|
|
(e[(e.foldingHighlight = 33)] = 'foldingHighlight'),
|
|
(e[(e.unfoldOnClickAfterEndOfLine = 34)] =
|
|
'unfoldOnClickAfterEndOfLine'),
|
|
(e[(e.fontFamily = 35)] = 'fontFamily'),
|
|
(e[(e.fontInfo = 36)] = 'fontInfo'),
|
|
(e[(e.fontLigatures = 37)] = 'fontLigatures'),
|
|
(e[(e.fontSize = 38)] = 'fontSize'),
|
|
(e[(e.fontWeight = 39)] = 'fontWeight'),
|
|
(e[(e.formatOnPaste = 40)] = 'formatOnPaste'),
|
|
(e[(e.formatOnType = 41)] = 'formatOnType'),
|
|
(e[(e.glyphMargin = 42)] = 'glyphMargin'),
|
|
(e[(e.gotoLocation = 43)] = 'gotoLocation'),
|
|
(e[(e.hideCursorInOverviewRuler = 44)] = 'hideCursorInOverviewRuler'),
|
|
(e[(e.highlightActiveIndentGuide = 45)] = 'highlightActiveIndentGuide'),
|
|
(e[(e.hover = 46)] = 'hover'),
|
|
(e[(e.inDiffEditor = 47)] = 'inDiffEditor'),
|
|
(e[(e.letterSpacing = 48)] = 'letterSpacing'),
|
|
(e[(e.lightbulb = 49)] = 'lightbulb'),
|
|
(e[(e.lineDecorationsWidth = 50)] = 'lineDecorationsWidth'),
|
|
(e[(e.lineHeight = 51)] = 'lineHeight'),
|
|
(e[(e.lineNumbers = 52)] = 'lineNumbers'),
|
|
(e[(e.lineNumbersMinChars = 53)] = 'lineNumbersMinChars'),
|
|
(e[(e.links = 54)] = 'links'),
|
|
(e[(e.matchBrackets = 55)] = 'matchBrackets'),
|
|
(e[(e.minimap = 56)] = 'minimap'),
|
|
(e[(e.mouseStyle = 57)] = 'mouseStyle'),
|
|
(e[(e.mouseWheelScrollSensitivity = 58)] =
|
|
'mouseWheelScrollSensitivity'),
|
|
(e[(e.mouseWheelZoom = 59)] = 'mouseWheelZoom'),
|
|
(e[(e.multiCursorMergeOverlapping = 60)] =
|
|
'multiCursorMergeOverlapping'),
|
|
(e[(e.multiCursorModifier = 61)] = 'multiCursorModifier'),
|
|
(e[(e.multiCursorPaste = 62)] = 'multiCursorPaste'),
|
|
(e[(e.occurrencesHighlight = 63)] = 'occurrencesHighlight'),
|
|
(e[(e.overviewRulerBorder = 64)] = 'overviewRulerBorder'),
|
|
(e[(e.overviewRulerLanes = 65)] = 'overviewRulerLanes'),
|
|
(e[(e.padding = 66)] = 'padding'),
|
|
(e[(e.parameterHints = 67)] = 'parameterHints'),
|
|
(e[(e.peekWidgetDefaultFocus = 68)] = 'peekWidgetDefaultFocus'),
|
|
(e[(e.definitionLinkOpensInPeek = 69)] = 'definitionLinkOpensInPeek'),
|
|
(e[(e.quickSuggestions = 70)] = 'quickSuggestions'),
|
|
(e[(e.quickSuggestionsDelay = 71)] = 'quickSuggestionsDelay'),
|
|
(e[(e.readOnly = 72)] = 'readOnly'),
|
|
(e[(e.renameOnType = 73)] = 'renameOnType'),
|
|
(e[(e.renderControlCharacters = 74)] = 'renderControlCharacters'),
|
|
(e[(e.renderIndentGuides = 75)] = 'renderIndentGuides'),
|
|
(e[(e.renderFinalNewline = 76)] = 'renderFinalNewline'),
|
|
(e[(e.renderLineHighlight = 77)] = 'renderLineHighlight'),
|
|
(e[(e.renderLineHighlightOnlyWhenFocus = 78)] =
|
|
'renderLineHighlightOnlyWhenFocus'),
|
|
(e[(e.renderValidationDecorations = 79)] =
|
|
'renderValidationDecorations'),
|
|
(e[(e.renderWhitespace = 80)] = 'renderWhitespace'),
|
|
(e[(e.revealHorizontalRightPadding = 81)] =
|
|
'revealHorizontalRightPadding'),
|
|
(e[(e.roundedSelection = 82)] = 'roundedSelection'),
|
|
(e[(e.rulers = 83)] = 'rulers'),
|
|
(e[(e.scrollbar = 84)] = 'scrollbar'),
|
|
(e[(e.scrollBeyondLastColumn = 85)] = 'scrollBeyondLastColumn'),
|
|
(e[(e.scrollBeyondLastLine = 86)] = 'scrollBeyondLastLine'),
|
|
(e[(e.scrollPredominantAxis = 87)] = 'scrollPredominantAxis'),
|
|
(e[(e.selectionClipboard = 88)] = 'selectionClipboard'),
|
|
(e[(e.selectionHighlight = 89)] = 'selectionHighlight'),
|
|
(e[(e.selectOnLineNumbers = 90)] = 'selectOnLineNumbers'),
|
|
(e[(e.showFoldingControls = 91)] = 'showFoldingControls'),
|
|
(e[(e.showUnused = 92)] = 'showUnused'),
|
|
(e[(e.snippetSuggestions = 93)] = 'snippetSuggestions'),
|
|
(e[(e.smoothScrolling = 94)] = 'smoothScrolling'),
|
|
(e[(e.stopRenderingLineAfter = 95)] = 'stopRenderingLineAfter'),
|
|
(e[(e.suggest = 96)] = 'suggest'),
|
|
(e[(e.suggestFontSize = 97)] = 'suggestFontSize'),
|
|
(e[(e.suggestLineHeight = 98)] = 'suggestLineHeight'),
|
|
(e[(e.suggestOnTriggerCharacters = 99)] = 'suggestOnTriggerCharacters'),
|
|
(e[(e.suggestSelection = 100)] = 'suggestSelection'),
|
|
(e[(e.tabCompletion = 101)] = 'tabCompletion'),
|
|
(e[(e.tabIndex = 102)] = 'tabIndex'),
|
|
(e[(e.unusualLineTerminators = 103)] = 'unusualLineTerminators'),
|
|
(e[(e.useTabStops = 104)] = 'useTabStops'),
|
|
(e[(e.wordSeparators = 105)] = 'wordSeparators'),
|
|
(e[(e.wordWrap = 106)] = 'wordWrap'),
|
|
(e[(e.wordWrapBreakAfterCharacters = 107)] =
|
|
'wordWrapBreakAfterCharacters'),
|
|
(e[(e.wordWrapBreakBeforeCharacters = 108)] =
|
|
'wordWrapBreakBeforeCharacters'),
|
|
(e[(e.wordWrapColumn = 109)] = 'wordWrapColumn'),
|
|
(e[(e.wordWrapMinified = 110)] = 'wordWrapMinified'),
|
|
(e[(e.wrappingIndent = 111)] = 'wrappingIndent'),
|
|
(e[(e.wrappingStrategy = 112)] = 'wrappingStrategy'),
|
|
(e[(e.showDeprecated = 113)] = 'showDeprecated'),
|
|
(e[(e.editorClassName = 114)] = 'editorClassName'),
|
|
(e[(e.pixelRatio = 115)] = 'pixelRatio'),
|
|
(e[(e.tabFocusMode = 116)] = 'tabFocusMode'),
|
|
(e[(e.layoutInfo = 117)] = 'layoutInfo'),
|
|
(e[(e.wrappingInfo = 118)] = 'wrappingInfo');
|
|
})(At || (At = {})),
|
|
(function (e) {
|
|
(e[(e.TextDefined = 0)] = 'TextDefined'),
|
|
(e[(e.LF = 1)] = 'LF'),
|
|
(e[(e.CRLF = 2)] = 'CRLF');
|
|
})(xt || (xt = {})),
|
|
(function (e) {
|
|
(e[(e.LF = 0)] = 'LF'), (e[(e.CRLF = 1)] = 'CRLF');
|
|
})(Nt || (Nt = {})),
|
|
(function (e) {
|
|
(e[(e.None = 0)] = 'None'),
|
|
(e[(e.Indent = 1)] = 'Indent'),
|
|
(e[(e.IndentOutdent = 2)] = 'IndentOutdent'),
|
|
(e[(e.Outdent = 3)] = 'Outdent');
|
|
})(Lt || (Lt = {})),
|
|
(function (e) {
|
|
(e[(e.Unknown = 0)] = 'Unknown'),
|
|
(e[(e.Backspace = 1)] = 'Backspace'),
|
|
(e[(e.Tab = 2)] = 'Tab'),
|
|
(e[(e.Enter = 3)] = 'Enter'),
|
|
(e[(e.Shift = 4)] = 'Shift'),
|
|
(e[(e.Ctrl = 5)] = 'Ctrl'),
|
|
(e[(e.Alt = 6)] = 'Alt'),
|
|
(e[(e.PauseBreak = 7)] = 'PauseBreak'),
|
|
(e[(e.CapsLock = 8)] = 'CapsLock'),
|
|
(e[(e.Escape = 9)] = 'Escape'),
|
|
(e[(e.Space = 10)] = 'Space'),
|
|
(e[(e.PageUp = 11)] = 'PageUp'),
|
|
(e[(e.PageDown = 12)] = 'PageDown'),
|
|
(e[(e.End = 13)] = 'End'),
|
|
(e[(e.Home = 14)] = 'Home'),
|
|
(e[(e.LeftArrow = 15)] = 'LeftArrow'),
|
|
(e[(e.UpArrow = 16)] = 'UpArrow'),
|
|
(e[(e.RightArrow = 17)] = 'RightArrow'),
|
|
(e[(e.DownArrow = 18)] = 'DownArrow'),
|
|
(e[(e.Insert = 19)] = 'Insert'),
|
|
(e[(e.Delete = 20)] = 'Delete'),
|
|
(e[(e.KEY_0 = 21)] = 'KEY_0'),
|
|
(e[(e.KEY_1 = 22)] = 'KEY_1'),
|
|
(e[(e.KEY_2 = 23)] = 'KEY_2'),
|
|
(e[(e.KEY_3 = 24)] = 'KEY_3'),
|
|
(e[(e.KEY_4 = 25)] = 'KEY_4'),
|
|
(e[(e.KEY_5 = 26)] = 'KEY_5'),
|
|
(e[(e.KEY_6 = 27)] = 'KEY_6'),
|
|
(e[(e.KEY_7 = 28)] = 'KEY_7'),
|
|
(e[(e.KEY_8 = 29)] = 'KEY_8'),
|
|
(e[(e.KEY_9 = 30)] = 'KEY_9'),
|
|
(e[(e.KEY_A = 31)] = 'KEY_A'),
|
|
(e[(e.KEY_B = 32)] = 'KEY_B'),
|
|
(e[(e.KEY_C = 33)] = 'KEY_C'),
|
|
(e[(e.KEY_D = 34)] = 'KEY_D'),
|
|
(e[(e.KEY_E = 35)] = 'KEY_E'),
|
|
(e[(e.KEY_F = 36)] = 'KEY_F'),
|
|
(e[(e.KEY_G = 37)] = 'KEY_G'),
|
|
(e[(e.KEY_H = 38)] = 'KEY_H'),
|
|
(e[(e.KEY_I = 39)] = 'KEY_I'),
|
|
(e[(e.KEY_J = 40)] = 'KEY_J'),
|
|
(e[(e.KEY_K = 41)] = 'KEY_K'),
|
|
(e[(e.KEY_L = 42)] = 'KEY_L'),
|
|
(e[(e.KEY_M = 43)] = 'KEY_M'),
|
|
(e[(e.KEY_N = 44)] = 'KEY_N'),
|
|
(e[(e.KEY_O = 45)] = 'KEY_O'),
|
|
(e[(e.KEY_P = 46)] = 'KEY_P'),
|
|
(e[(e.KEY_Q = 47)] = 'KEY_Q'),
|
|
(e[(e.KEY_R = 48)] = 'KEY_R'),
|
|
(e[(e.KEY_S = 49)] = 'KEY_S'),
|
|
(e[(e.KEY_T = 50)] = 'KEY_T'),
|
|
(e[(e.KEY_U = 51)] = 'KEY_U'),
|
|
(e[(e.KEY_V = 52)] = 'KEY_V'),
|
|
(e[(e.KEY_W = 53)] = 'KEY_W'),
|
|
(e[(e.KEY_X = 54)] = 'KEY_X'),
|
|
(e[(e.KEY_Y = 55)] = 'KEY_Y'),
|
|
(e[(e.KEY_Z = 56)] = 'KEY_Z'),
|
|
(e[(e.Meta = 57)] = 'Meta'),
|
|
(e[(e.ContextMenu = 58)] = 'ContextMenu'),
|
|
(e[(e.F1 = 59)] = 'F1'),
|
|
(e[(e.F2 = 60)] = 'F2'),
|
|
(e[(e.F3 = 61)] = 'F3'),
|
|
(e[(e.F4 = 62)] = 'F4'),
|
|
(e[(e.F5 = 63)] = 'F5'),
|
|
(e[(e.F6 = 64)] = 'F6'),
|
|
(e[(e.F7 = 65)] = 'F7'),
|
|
(e[(e.F8 = 66)] = 'F8'),
|
|
(e[(e.F9 = 67)] = 'F9'),
|
|
(e[(e.F10 = 68)] = 'F10'),
|
|
(e[(e.F11 = 69)] = 'F11'),
|
|
(e[(e.F12 = 70)] = 'F12'),
|
|
(e[(e.F13 = 71)] = 'F13'),
|
|
(e[(e.F14 = 72)] = 'F14'),
|
|
(e[(e.F15 = 73)] = 'F15'),
|
|
(e[(e.F16 = 74)] = 'F16'),
|
|
(e[(e.F17 = 75)] = 'F17'),
|
|
(e[(e.F18 = 76)] = 'F18'),
|
|
(e[(e.F19 = 77)] = 'F19'),
|
|
(e[(e.NumLock = 78)] = 'NumLock'),
|
|
(e[(e.ScrollLock = 79)] = 'ScrollLock'),
|
|
(e[(e.US_SEMICOLON = 80)] = 'US_SEMICOLON'),
|
|
(e[(e.US_EQUAL = 81)] = 'US_EQUAL'),
|
|
(e[(e.US_COMMA = 82)] = 'US_COMMA'),
|
|
(e[(e.US_MINUS = 83)] = 'US_MINUS'),
|
|
(e[(e.US_DOT = 84)] = 'US_DOT'),
|
|
(e[(e.US_SLASH = 85)] = 'US_SLASH'),
|
|
(e[(e.US_BACKTICK = 86)] = 'US_BACKTICK'),
|
|
(e[(e.US_OPEN_SQUARE_BRACKET = 87)] = 'US_OPEN_SQUARE_BRACKET'),
|
|
(e[(e.US_BACKSLASH = 88)] = 'US_BACKSLASH'),
|
|
(e[(e.US_CLOSE_SQUARE_BRACKET = 89)] = 'US_CLOSE_SQUARE_BRACKET'),
|
|
(e[(e.US_QUOTE = 90)] = 'US_QUOTE'),
|
|
(e[(e.OEM_8 = 91)] = 'OEM_8'),
|
|
(e[(e.OEM_102 = 92)] = 'OEM_102'),
|
|
(e[(e.NUMPAD_0 = 93)] = 'NUMPAD_0'),
|
|
(e[(e.NUMPAD_1 = 94)] = 'NUMPAD_1'),
|
|
(e[(e.NUMPAD_2 = 95)] = 'NUMPAD_2'),
|
|
(e[(e.NUMPAD_3 = 96)] = 'NUMPAD_3'),
|
|
(e[(e.NUMPAD_4 = 97)] = 'NUMPAD_4'),
|
|
(e[(e.NUMPAD_5 = 98)] = 'NUMPAD_5'),
|
|
(e[(e.NUMPAD_6 = 99)] = 'NUMPAD_6'),
|
|
(e[(e.NUMPAD_7 = 100)] = 'NUMPAD_7'),
|
|
(e[(e.NUMPAD_8 = 101)] = 'NUMPAD_8'),
|
|
(e[(e.NUMPAD_9 = 102)] = 'NUMPAD_9'),
|
|
(e[(e.NUMPAD_MULTIPLY = 103)] = 'NUMPAD_MULTIPLY'),
|
|
(e[(e.NUMPAD_ADD = 104)] = 'NUMPAD_ADD'),
|
|
(e[(e.NUMPAD_SEPARATOR = 105)] = 'NUMPAD_SEPARATOR'),
|
|
(e[(e.NUMPAD_SUBTRACT = 106)] = 'NUMPAD_SUBTRACT'),
|
|
(e[(e.NUMPAD_DECIMAL = 107)] = 'NUMPAD_DECIMAL'),
|
|
(e[(e.NUMPAD_DIVIDE = 108)] = 'NUMPAD_DIVIDE'),
|
|
(e[(e.KEY_IN_COMPOSITION = 109)] = 'KEY_IN_COMPOSITION'),
|
|
(e[(e.ABNT_C1 = 110)] = 'ABNT_C1'),
|
|
(e[(e.ABNT_C2 = 111)] = 'ABNT_C2'),
|
|
(e[(e.MAX_VALUE = 112)] = 'MAX_VALUE');
|
|
})(wt || (wt = {})),
|
|
(function (e) {
|
|
(e[(e.Hint = 1)] = 'Hint'),
|
|
(e[(e.Info = 2)] = 'Info'),
|
|
(e[(e.Warning = 4)] = 'Warning'),
|
|
(e[(e.Error = 8)] = 'Error');
|
|
})(Tt || (Tt = {})),
|
|
(function (e) {
|
|
(e[(e.Unnecessary = 1)] = 'Unnecessary'),
|
|
(e[(e.Deprecated = 2)] = 'Deprecated');
|
|
})(kt || (kt = {})),
|
|
(function (e) {
|
|
(e[(e.Inline = 1)] = 'Inline'), (e[(e.Gutter = 2)] = 'Gutter');
|
|
})(Ot || (Ot = {})),
|
|
(function (e) {
|
|
(e[(e.UNKNOWN = 0)] = 'UNKNOWN'),
|
|
(e[(e.TEXTAREA = 1)] = 'TEXTAREA'),
|
|
(e[(e.GUTTER_GLYPH_MARGIN = 2)] = 'GUTTER_GLYPH_MARGIN'),
|
|
(e[(e.GUTTER_LINE_NUMBERS = 3)] = 'GUTTER_LINE_NUMBERS'),
|
|
(e[(e.GUTTER_LINE_DECORATIONS = 4)] = 'GUTTER_LINE_DECORATIONS'),
|
|
(e[(e.GUTTER_VIEW_ZONE = 5)] = 'GUTTER_VIEW_ZONE'),
|
|
(e[(e.CONTENT_TEXT = 6)] = 'CONTENT_TEXT'),
|
|
(e[(e.CONTENT_EMPTY = 7)] = 'CONTENT_EMPTY'),
|
|
(e[(e.CONTENT_VIEW_ZONE = 8)] = 'CONTENT_VIEW_ZONE'),
|
|
(e[(e.CONTENT_WIDGET = 9)] = 'CONTENT_WIDGET'),
|
|
(e[(e.OVERVIEW_RULER = 10)] = 'OVERVIEW_RULER'),
|
|
(e[(e.SCROLLBAR = 11)] = 'SCROLLBAR'),
|
|
(e[(e.OVERLAY_WIDGET = 12)] = 'OVERLAY_WIDGET'),
|
|
(e[(e.OUTSIDE_EDITOR = 13)] = 'OUTSIDE_EDITOR');
|
|
})(It || (It = {})),
|
|
(function (e) {
|
|
(e[(e.TOP_RIGHT_CORNER = 0)] = 'TOP_RIGHT_CORNER'),
|
|
(e[(e.BOTTOM_RIGHT_CORNER = 1)] = 'BOTTOM_RIGHT_CORNER'),
|
|
(e[(e.TOP_CENTER = 2)] = 'TOP_CENTER');
|
|
})(Mt || (Mt = {})),
|
|
(function (e) {
|
|
(e[(e.Left = 1)] = 'Left'),
|
|
(e[(e.Center = 2)] = 'Center'),
|
|
(e[(e.Right = 4)] = 'Right'),
|
|
(e[(e.Full = 7)] = 'Full');
|
|
})(Pt || (Pt = {})),
|
|
(function (e) {
|
|
(e[(e.Off = 0)] = 'Off'),
|
|
(e[(e.On = 1)] = 'On'),
|
|
(e[(e.Relative = 2)] = 'Relative'),
|
|
(e[(e.Interval = 3)] = 'Interval'),
|
|
(e[(e.Custom = 4)] = 'Custom');
|
|
})(Rt || (Rt = {})),
|
|
(function (e) {
|
|
(e[(e.None = 0)] = 'None'),
|
|
(e[(e.Text = 1)] = 'Text'),
|
|
(e[(e.Blocks = 2)] = 'Blocks');
|
|
})(Dt || (Dt = {})),
|
|
(function (e) {
|
|
(e[(e.Smooth = 0)] = 'Smooth'), (e[(e.Immediate = 1)] = 'Immediate');
|
|
})(Ft || (Ft = {})),
|
|
(function (e) {
|
|
(e[(e.Auto = 1)] = 'Auto'),
|
|
(e[(e.Hidden = 2)] = 'Hidden'),
|
|
(e[(e.Visible = 3)] = 'Visible');
|
|
})(jt || (jt = {})),
|
|
(function (e) {
|
|
(e[(e.LTR = 0)] = 'LTR'), (e[(e.RTL = 1)] = 'RTL');
|
|
})(Ut || (Ut = {})),
|
|
(function (e) {
|
|
(e[(e.Invoke = 1)] = 'Invoke'),
|
|
(e[(e.TriggerCharacter = 2)] = 'TriggerCharacter'),
|
|
(e[(e.ContentChange = 3)] = 'ContentChange');
|
|
})(Vt || (Vt = {})),
|
|
(function (e) {
|
|
(e[(e.File = 0)] = 'File'),
|
|
(e[(e.Module = 1)] = 'Module'),
|
|
(e[(e.Namespace = 2)] = 'Namespace'),
|
|
(e[(e.Package = 3)] = 'Package'),
|
|
(e[(e.Class = 4)] = 'Class'),
|
|
(e[(e.Method = 5)] = 'Method'),
|
|
(e[(e.Property = 6)] = 'Property'),
|
|
(e[(e.Field = 7)] = 'Field'),
|
|
(e[(e.Constructor = 8)] = 'Constructor'),
|
|
(e[(e.Enum = 9)] = 'Enum'),
|
|
(e[(e.Interface = 10)] = 'Interface'),
|
|
(e[(e.Function = 11)] = 'Function'),
|
|
(e[(e.Variable = 12)] = 'Variable'),
|
|
(e[(e.Constant = 13)] = 'Constant'),
|
|
(e[(e.String = 14)] = 'String'),
|
|
(e[(e.Number = 15)] = 'Number'),
|
|
(e[(e.Boolean = 16)] = 'Boolean'),
|
|
(e[(e.Array = 17)] = 'Array'),
|
|
(e[(e.Object = 18)] = 'Object'),
|
|
(e[(e.Key = 19)] = 'Key'),
|
|
(e[(e.Null = 20)] = 'Null'),
|
|
(e[(e.EnumMember = 21)] = 'EnumMember'),
|
|
(e[(e.Struct = 22)] = 'Struct'),
|
|
(e[(e.Event = 23)] = 'Event'),
|
|
(e[(e.Operator = 24)] = 'Operator'),
|
|
(e[(e.TypeParameter = 25)] = 'TypeParameter');
|
|
})($t || ($t = {})),
|
|
(function (e) {
|
|
e[(e.Deprecated = 1)] = 'Deprecated';
|
|
})(Wt || (Wt = {})),
|
|
(function (e) {
|
|
(e[(e.Hidden = 0)] = 'Hidden'),
|
|
(e[(e.Blink = 1)] = 'Blink'),
|
|
(e[(e.Smooth = 2)] = 'Smooth'),
|
|
(e[(e.Phase = 3)] = 'Phase'),
|
|
(e[(e.Expand = 4)] = 'Expand'),
|
|
(e[(e.Solid = 5)] = 'Solid');
|
|
})(qt || (qt = {})),
|
|
(function (e) {
|
|
(e[(e.Line = 1)] = 'Line'),
|
|
(e[(e.Block = 2)] = 'Block'),
|
|
(e[(e.Underline = 3)] = 'Underline'),
|
|
(e[(e.LineThin = 4)] = 'LineThin'),
|
|
(e[(e.BlockOutline = 5)] = 'BlockOutline'),
|
|
(e[(e.UnderlineThin = 6)] = 'UnderlineThin');
|
|
})(Kt || (Kt = {})),
|
|
(function (e) {
|
|
(e[(e.AlwaysGrowsWhenTypingAtEdges = 0)] =
|
|
'AlwaysGrowsWhenTypingAtEdges'),
|
|
(e[(e.NeverGrowsWhenTypingAtEdges = 1)] =
|
|
'NeverGrowsWhenTypingAtEdges'),
|
|
(e[(e.GrowsOnlyWhenTypingBefore = 2)] = 'GrowsOnlyWhenTypingBefore'),
|
|
(e[(e.GrowsOnlyWhenTypingAfter = 3)] = 'GrowsOnlyWhenTypingAfter');
|
|
})(Bt || (Bt = {})),
|
|
(function (e) {
|
|
(e[(e.None = 0)] = 'None'),
|
|
(e[(e.Same = 1)] = 'Same'),
|
|
(e[(e.Indent = 2)] = 'Indent'),
|
|
(e[(e.DeepIndent = 3)] = 'DeepIndent');
|
|
})(Ht || (Ht = {}));
|
|
class Gt {
|
|
static chord(e, t) {
|
|
return (function (e, t) {
|
|
return (e | (((65535 & t) << 16) >>> 0)) >>> 0;
|
|
})(e, t);
|
|
}
|
|
}
|
|
(Gt.CtrlCmd = 2048), (Gt.Shift = 1024), (Gt.Alt = 512), (Gt.WinCtrl = 256);
|
|
var zt = function (e, t, n, r) {
|
|
return new (n || (n = Promise))(function (i, o) {
|
|
function s(e) {
|
|
try {
|
|
u(r.next(e));
|
|
} catch (e) {
|
|
o(e);
|
|
}
|
|
}
|
|
function a(e) {
|
|
try {
|
|
u(r.throw(e));
|
|
} catch (e) {
|
|
o(e);
|
|
}
|
|
}
|
|
function u(e) {
|
|
var t;
|
|
e.done
|
|
? i(e.value)
|
|
: ((t = e.value),
|
|
t instanceof n
|
|
? t
|
|
: new n(function (e) {
|
|
e(t);
|
|
})).then(s, a);
|
|
}
|
|
u((r = r.apply(e, t || [])).next());
|
|
});
|
|
};
|
|
class Jt extends class {
|
|
constructor(e, t, n, r) {
|
|
(this._uri = e),
|
|
(this._lines = t),
|
|
(this._eol = n),
|
|
(this._versionId = r),
|
|
(this._lineStarts = null),
|
|
(this._cachedTextValue = null);
|
|
}
|
|
dispose() {
|
|
this._lines.length = 0;
|
|
}
|
|
getText() {
|
|
return (
|
|
null === this._cachedTextValue &&
|
|
(this._cachedTextValue = this._lines.join(this._eol)),
|
|
this._cachedTextValue
|
|
);
|
|
}
|
|
onEvents(e) {
|
|
e.eol &&
|
|
e.eol !== this._eol &&
|
|
((this._eol = e.eol), (this._lineStarts = null));
|
|
const t = e.changes;
|
|
for (const e of t)
|
|
this._acceptDeleteRange(e.range),
|
|
this._acceptInsertText(
|
|
new ke(e.range.startLineNumber, e.range.startColumn),
|
|
e.text
|
|
);
|
|
(this._versionId = e.versionId), (this._cachedTextValue = null);
|
|
}
|
|
_ensureLineStarts() {
|
|
if (!this._lineStarts) {
|
|
const e = this._eol.length,
|
|
t = this._lines.length,
|
|
n = new Uint32Array(t);
|
|
for (let r = 0; r < t; r++) n[r] = this._lines[r].length + e;
|
|
this._lineStarts = new Ke(n);
|
|
}
|
|
}
|
|
_setLineText(e, t) {
|
|
(this._lines[e] = t),
|
|
this._lineStarts &&
|
|
this._lineStarts.changeValue(
|
|
e,
|
|
this._lines[e].length + this._eol.length
|
|
);
|
|
}
|
|
_acceptDeleteRange(e) {
|
|
if (e.startLineNumber !== e.endLineNumber)
|
|
this._setLineText(
|
|
e.startLineNumber - 1,
|
|
this._lines[e.startLineNumber - 1].substring(0, e.startColumn - 1) +
|
|
this._lines[e.endLineNumber - 1].substring(e.endColumn - 1)
|
|
),
|
|
this._lines.splice(
|
|
e.startLineNumber,
|
|
e.endLineNumber - e.startLineNumber
|
|
),
|
|
this._lineStarts &&
|
|
this._lineStarts.removeValues(
|
|
e.startLineNumber,
|
|
e.endLineNumber - e.startLineNumber
|
|
);
|
|
else {
|
|
if (e.startColumn === e.endColumn) return;
|
|
this._setLineText(
|
|
e.startLineNumber - 1,
|
|
this._lines[e.startLineNumber - 1].substring(0, e.startColumn - 1) +
|
|
this._lines[e.startLineNumber - 1].substring(e.endColumn - 1)
|
|
);
|
|
}
|
|
}
|
|
_acceptInsertText(e, t) {
|
|
if (0 === t.length) return;
|
|
let n = t.split(/\r\n|\r|\n/);
|
|
if (1 === n.length)
|
|
return void this._setLineText(
|
|
e.lineNumber - 1,
|
|
this._lines[e.lineNumber - 1].substring(0, e.column - 1) +
|
|
n[0] +
|
|
this._lines[e.lineNumber - 1].substring(e.column - 1)
|
|
);
|
|
(n[n.length - 1] += this._lines[e.lineNumber - 1].substring(
|
|
e.column - 1
|
|
)),
|
|
this._setLineText(
|
|
e.lineNumber - 1,
|
|
this._lines[e.lineNumber - 1].substring(0, e.column - 1) + n[0]
|
|
);
|
|
let r = new Uint32Array(n.length - 1);
|
|
for (let t = 1; t < n.length; t++)
|
|
this._lines.splice(e.lineNumber + t - 1, 0, n[t]),
|
|
(r[t - 1] = n[t].length + this._eol.length);
|
|
this._lineStarts && this._lineStarts.insertValues(e.lineNumber, r);
|
|
}
|
|
} {
|
|
get uri() {
|
|
return this._uri;
|
|
}
|
|
get version() {
|
|
return this._versionId;
|
|
}
|
|
get eol() {
|
|
return this._eol;
|
|
}
|
|
getValue() {
|
|
return this.getText();
|
|
}
|
|
getLinesContent() {
|
|
return this._lines.slice(0);
|
|
}
|
|
getLineCount() {
|
|
return this._lines.length;
|
|
}
|
|
getLineContent(e) {
|
|
return this._lines[e - 1];
|
|
}
|
|
getWordAtPosition(e, t) {
|
|
let n = Ye(
|
|
e.column,
|
|
(function (e) {
|
|
let t = Be;
|
|
if (e && e instanceof RegExp)
|
|
if (e.global) t = e;
|
|
else {
|
|
let n = 'g';
|
|
e.ignoreCase && (n += 'i'),
|
|
e.multiline && (n += 'm'),
|
|
e.unicode && (n += 'u'),
|
|
(t = new RegExp(e.source, n));
|
|
}
|
|
return (t.lastIndex = 0), t;
|
|
})(t),
|
|
this._lines[e.lineNumber - 1],
|
|
0
|
|
);
|
|
return n
|
|
? new Oe(e.lineNumber, n.startColumn, e.lineNumber, n.endColumn)
|
|
: null;
|
|
}
|
|
words(e) {
|
|
const t = this._lines,
|
|
n = this._wordenize.bind(this);
|
|
let r = 0,
|
|
i = '',
|
|
o = 0,
|
|
s = [];
|
|
return {
|
|
*[Symbol.iterator]() {
|
|
for (;;)
|
|
if (o < s.length) {
|
|
const e = i.substring(s[o].start, s[o].end);
|
|
(o += 1), yield e;
|
|
} else {
|
|
if (!(r < t.length)) break;
|
|
(i = t[r]), (s = n(i, e)), (o = 0), (r += 1);
|
|
}
|
|
},
|
|
};
|
|
}
|
|
getLineWords(e, t) {
|
|
let n = this._lines[e - 1],
|
|
r = this._wordenize(n, t),
|
|
i = [];
|
|
for (const e of r)
|
|
i.push({
|
|
word: n.substring(e.start, e.end),
|
|
startColumn: e.start + 1,
|
|
endColumn: e.end + 1,
|
|
});
|
|
return i;
|
|
}
|
|
_wordenize(e, t) {
|
|
const n = [];
|
|
let r;
|
|
for (t.lastIndex = 0; (r = t.exec(e)) && 0 !== r[0].length; )
|
|
n.push({ start: r.index, end: r.index + r[0].length });
|
|
return n;
|
|
}
|
|
getValueInRange(e) {
|
|
if ((e = this._validateRange(e)).startLineNumber === e.endLineNumber)
|
|
return this._lines[e.startLineNumber - 1].substring(
|
|
e.startColumn - 1,
|
|
e.endColumn - 1
|
|
);
|
|
let t = this._eol,
|
|
n = e.startLineNumber - 1,
|
|
r = e.endLineNumber - 1,
|
|
i = [];
|
|
i.push(this._lines[n].substring(e.startColumn - 1));
|
|
for (let e = n + 1; e < r; e++) i.push(this._lines[e]);
|
|
return i.push(this._lines[r].substring(0, e.endColumn - 1)), i.join(t);
|
|
}
|
|
offsetAt(e) {
|
|
return (
|
|
(e = this._validatePosition(e)),
|
|
this._ensureLineStarts(),
|
|
this._lineStarts.getAccumulatedValue(e.lineNumber - 2) + (e.column - 1)
|
|
);
|
|
}
|
|
positionAt(e) {
|
|
(e = Math.floor(e)), (e = Math.max(0, e)), this._ensureLineStarts();
|
|
let t = this._lineStarts.getIndexOf(e),
|
|
n = this._lines[t.index].length;
|
|
return { lineNumber: 1 + t.index, column: 1 + Math.min(t.remainder, n) };
|
|
}
|
|
_validateRange(e) {
|
|
const t = this._validatePosition({
|
|
lineNumber: e.startLineNumber,
|
|
column: e.startColumn,
|
|
}),
|
|
n = this._validatePosition({
|
|
lineNumber: e.endLineNumber,
|
|
column: e.endColumn,
|
|
});
|
|
return t.lineNumber !== e.startLineNumber ||
|
|
t.column !== e.startColumn ||
|
|
n.lineNumber !== e.endLineNumber ||
|
|
n.column !== e.endColumn
|
|
? {
|
|
startLineNumber: t.lineNumber,
|
|
startColumn: t.column,
|
|
endLineNumber: n.lineNumber,
|
|
endColumn: n.column,
|
|
}
|
|
: e;
|
|
}
|
|
_validatePosition(e) {
|
|
if (!ke.isIPosition(e)) throw new Error('bad position');
|
|
let { lineNumber: t, column: n } = e,
|
|
r = !1;
|
|
if (t < 1) (t = 1), (n = 1), (r = !0);
|
|
else if (t > this._lines.length)
|
|
(t = this._lines.length), (n = this._lines[t - 1].length + 1), (r = !0);
|
|
else {
|
|
let e = this._lines[t - 1].length + 1;
|
|
n < 1 ? ((n = 1), (r = !0)) : n > e && ((n = e), (r = !0));
|
|
}
|
|
return r ? { lineNumber: t, column: n } : e;
|
|
}
|
|
}
|
|
class Qt {
|
|
constructor(e, t) {
|
|
(this._host = e),
|
|
(this._models = Object.create(null)),
|
|
(this._foreignModuleFactory = t),
|
|
(this._foreignModule = null);
|
|
}
|
|
dispose() {
|
|
this._models = Object.create(null);
|
|
}
|
|
_getModel(e) {
|
|
return this._models[e];
|
|
}
|
|
_getModels() {
|
|
let e = [];
|
|
return (
|
|
Object.keys(this._models).forEach((t) => e.push(this._models[t])), e
|
|
);
|
|
}
|
|
acceptNewModel(e) {
|
|
this._models[e.url] = new Jt(
|
|
be.parse(e.url),
|
|
e.lines,
|
|
e.EOL,
|
|
e.versionId
|
|
);
|
|
}
|
|
acceptModelChanged(e, t) {
|
|
this._models[e] && this._models[e].onEvents(t);
|
|
}
|
|
acceptRemovedModel(e) {
|
|
this._models[e] && delete this._models[e];
|
|
}
|
|
computeDiff(e, t, n, r) {
|
|
return zt(this, void 0, void 0, function* () {
|
|
const i = this._getModel(e),
|
|
o = this._getModel(t);
|
|
if (!i || !o) return null;
|
|
const s = i.getLinesContent(),
|
|
a = o.getLinesContent(),
|
|
u = new Fe(s, a, {
|
|
shouldComputeCharChanges: !0,
|
|
shouldPostProcessCharChanges: !0,
|
|
shouldIgnoreTrimWhitespace: n,
|
|
shouldMakePrettyDiff: !0,
|
|
maxComputationTime: r,
|
|
}).computeDiff(),
|
|
l = !(u.changes.length > 0) && this._modelsAreIdentical(i, o);
|
|
return { quitEarly: u.quitEarly, identical: l, changes: u.changes };
|
|
});
|
|
}
|
|
_modelsAreIdentical(e, t) {
|
|
const n = e.getLineCount();
|
|
if (n !== t.getLineCount()) return !1;
|
|
for (let r = 1; r <= n; r++)
|
|
if (e.getLineContent(r) !== t.getLineContent(r)) return !1;
|
|
return !0;
|
|
}
|
|
computeMoreMinimalEdits(e, t) {
|
|
return zt(this, void 0, void 0, function* () {
|
|
const n = this._getModel(e);
|
|
if (!n) return t;
|
|
const r = [];
|
|
let i;
|
|
t = I(t, (e, t) =>
|
|
e.range && t.range
|
|
? Oe.compareRangesUsingStarts(e.range, t.range)
|
|
: (e.range ? 0 : 1) - (t.range ? 0 : 1)
|
|
);
|
|
for (let { range: e, text: o, eol: s } of t) {
|
|
if (('number' == typeof s && (i = s), Oe.isEmpty(e) && !o)) continue;
|
|
const t = n.getValueInRange(e);
|
|
if (((o = o.replace(/\r\n|\n|\r/g, n.eol)), t === o)) continue;
|
|
if (Math.max(o.length, t.length) > Qt._diffLimit) {
|
|
r.push({ range: e, text: o });
|
|
continue;
|
|
}
|
|
const a = B(t, o, !1),
|
|
u = n.offsetAt(Oe.lift(e).getStartPosition());
|
|
for (const e of a) {
|
|
const t = n.positionAt(u + e.originalStart),
|
|
i = n.positionAt(u + e.originalStart + e.originalLength),
|
|
s = {
|
|
text: o.substr(e.modifiedStart, e.modifiedLength),
|
|
range: {
|
|
startLineNumber: t.lineNumber,
|
|
startColumn: t.column,
|
|
endLineNumber: i.lineNumber,
|
|
endColumn: i.column,
|
|
},
|
|
};
|
|
n.getValueInRange(s.range) !== s.text && r.push(s);
|
|
}
|
|
}
|
|
return (
|
|
'number' == typeof i &&
|
|
r.push({
|
|
eol: i,
|
|
text: '',
|
|
range: {
|
|
startLineNumber: 0,
|
|
startColumn: 0,
|
|
endLineNumber: 0,
|
|
endColumn: 0,
|
|
},
|
|
}),
|
|
r
|
|
);
|
|
});
|
|
}
|
|
computeLinks(e) {
|
|
return zt(this, void 0, void 0, function* () {
|
|
let t = this._getModel(e);
|
|
return t
|
|
? (function (e) {
|
|
return e &&
|
|
'function' == typeof e.getLineCount &&
|
|
'function' == typeof e.getLineContent
|
|
? et.computeLinks(e)
|
|
: [];
|
|
})(t)
|
|
: null;
|
|
});
|
|
}
|
|
textualSuggest(e, t, n, r) {
|
|
return zt(this, void 0, void 0, function* () {
|
|
const i = this._getModel(e);
|
|
if (!i) return null;
|
|
const o = [],
|
|
s = new Set(),
|
|
a = new RegExp(n, r),
|
|
u = i.getWordAtPosition(t, a);
|
|
u && s.add(i.getValueInRange(u));
|
|
for (let e of i.words(a))
|
|
if (
|
|
!s.has(e) &&
|
|
(s.add(e),
|
|
isNaN(Number(e)) && (o.push(e), s.size > Qt._suggestionsLimit))
|
|
)
|
|
break;
|
|
return o;
|
|
});
|
|
}
|
|
computeWordRanges(e, t, n, r) {
|
|
return zt(this, void 0, void 0, function* () {
|
|
let i = this._getModel(e);
|
|
if (!i) return Object.create(null);
|
|
const o = new RegExp(n, r),
|
|
s = Object.create(null);
|
|
for (let e = t.startLineNumber; e < t.endLineNumber; e++) {
|
|
let t = i.getLineWords(e, o);
|
|
for (const n of t) {
|
|
if (!isNaN(Number(n.word))) continue;
|
|
let t = s[n.word];
|
|
t || ((t = []), (s[n.word] = t)),
|
|
t.push({
|
|
startLineNumber: e,
|
|
startColumn: n.startColumn,
|
|
endLineNumber: e,
|
|
endColumn: n.endColumn,
|
|
});
|
|
}
|
|
}
|
|
return s;
|
|
});
|
|
}
|
|
navigateValueSet(e, t, n, r, i) {
|
|
return zt(this, void 0, void 0, function* () {
|
|
let o = this._getModel(e);
|
|
if (!o) return null;
|
|
let s = new RegExp(r, i);
|
|
t.startColumn === t.endColumn &&
|
|
(t = {
|
|
startLineNumber: t.startLineNumber,
|
|
startColumn: t.startColumn,
|
|
endLineNumber: t.endLineNumber,
|
|
endColumn: t.endColumn + 1,
|
|
});
|
|
let a = o.getValueInRange(t),
|
|
u = o.getWordAtPosition(
|
|
{ lineNumber: t.startLineNumber, column: t.startColumn },
|
|
s
|
|
);
|
|
if (!u) return null;
|
|
let l = o.getValueInRange(u);
|
|
return tt.INSTANCE.navigateValueSet(t, a, u, l, n);
|
|
});
|
|
}
|
|
loadForeignModule(e, t, n) {
|
|
let r = {
|
|
host: T(n, (e, t) => this._host.fhr(e, t)),
|
|
getMirrorModels: () => this._getModels(),
|
|
};
|
|
return this._foreignModuleFactory
|
|
? ((this._foreignModule = this._foreignModuleFactory(r, t)),
|
|
Promise.resolve(w(this._foreignModule)))
|
|
: Promise.reject(new Error('Unexpected usage'));
|
|
}
|
|
fmr(e, t) {
|
|
if (!this._foreignModule || 'function' != typeof this._foreignModule[e])
|
|
return Promise.reject(
|
|
new Error('Missing requestHandler or method: ' + e)
|
|
);
|
|
try {
|
|
return Promise.resolve(
|
|
this._foreignModule[e].apply(this._foreignModule, t)
|
|
);
|
|
} catch (e) {
|
|
return Promise.reject(e);
|
|
}
|
|
}
|
|
}
|
|
(Qt._diffLimit = 1e5),
|
|
(Qt._suggestionsLimit = 1e4),
|
|
'function' == typeof importScripts &&
|
|
(N.monaco = {
|
|
editor: void 0,
|
|
languages: void 0,
|
|
CancellationTokenSource: class {
|
|
constructor(e) {
|
|
(this._token = void 0),
|
|
(this._parentListener = void 0),
|
|
(this._parentListener =
|
|
e && e.onCancellationRequested(this.cancel, this));
|
|
}
|
|
get token() {
|
|
return this._token || (this._token = new ut()), this._token;
|
|
}
|
|
cancel() {
|
|
this._token
|
|
? this._token instanceof ut && this._token.cancel()
|
|
: (this._token = at.Cancelled);
|
|
}
|
|
dispose(e = !1) {
|
|
e && this.cancel(),
|
|
this._parentListener && this._parentListener.dispose(),
|
|
this._token
|
|
? this._token instanceof ut && this._token.dispose()
|
|
: (this._token = at.None);
|
|
}
|
|
},
|
|
Emitter: ot,
|
|
KeyCode: wt,
|
|
KeyMod: Gt,
|
|
Position: ke,
|
|
Range: Oe,
|
|
Selection: Yt,
|
|
SelectionDirection: Ut,
|
|
MarkerSeverity: Tt,
|
|
MarkerTag: kt,
|
|
Uri: be,
|
|
Token: class {
|
|
constructor(e, t, n) {
|
|
(this.offset = 0 | e), (this.type = t), (this.language = n);
|
|
}
|
|
toString() {
|
|
return '(' + this.offset + ', ' + this.type + ')';
|
|
}
|
|
},
|
|
});
|
|
let Zt = !1;
|
|
function Xt(e) {
|
|
if (Zt) return;
|
|
Zt = !0;
|
|
const t = new O(
|
|
(e) => {
|
|
self.postMessage(e);
|
|
},
|
|
(t) => new Qt(t, e)
|
|
);
|
|
self.onmessage = (e) => {
|
|
t.onmessage(e.data);
|
|
};
|
|
}
|
|
function en(e, t) {
|
|
void 0 === t && (t = !1);
|
|
var n = e.length,
|
|
r = 0,
|
|
i = '',
|
|
o = 0,
|
|
s = 16,
|
|
a = 0,
|
|
u = 0,
|
|
l = 0,
|
|
c = 0,
|
|
h = 0;
|
|
function f(t, n) {
|
|
for (var i = 0, o = 0; i < t || !n; ) {
|
|
var s = e.charCodeAt(r);
|
|
if (s >= 48 && s <= 57) o = 16 * o + s - 48;
|
|
else if (s >= 65 && s <= 70) o = 16 * o + s - 65 + 10;
|
|
else {
|
|
if (!(s >= 97 && s <= 102)) break;
|
|
o = 16 * o + s - 97 + 10;
|
|
}
|
|
r++, i++;
|
|
}
|
|
return i < t && (o = -1), o;
|
|
}
|
|
function d() {
|
|
if (((i = ''), (h = 0), (o = r), (u = a), (c = l), r >= n))
|
|
return (o = n), (s = 17);
|
|
var t = e.charCodeAt(r);
|
|
if (tn(t)) {
|
|
do {
|
|
r++, (i += String.fromCharCode(t)), (t = e.charCodeAt(r));
|
|
} while (tn(t));
|
|
return (s = 15);
|
|
}
|
|
if (nn(t))
|
|
return (
|
|
r++,
|
|
(i += String.fromCharCode(t)),
|
|
13 === t && 10 === e.charCodeAt(r) && (r++, (i += '\n')),
|
|
a++,
|
|
(l = r),
|
|
(s = 14)
|
|
);
|
|
switch (t) {
|
|
case 123:
|
|
return r++, (s = 1);
|
|
case 125:
|
|
return r++, (s = 2);
|
|
case 91:
|
|
return r++, (s = 3);
|
|
case 93:
|
|
return r++, (s = 4);
|
|
case 58:
|
|
return r++, (s = 6);
|
|
case 44:
|
|
return r++, (s = 5);
|
|
case 34:
|
|
return (
|
|
r++,
|
|
(i = (function () {
|
|
for (var t = '', i = r; ; ) {
|
|
if (r >= n) {
|
|
(t += e.substring(i, r)), (h = 2);
|
|
break;
|
|
}
|
|
var o = e.charCodeAt(r);
|
|
if (34 === o) {
|
|
(t += e.substring(i, r)), r++;
|
|
break;
|
|
}
|
|
if (92 !== o) {
|
|
if (o >= 0 && o <= 31) {
|
|
if (nn(o)) {
|
|
(t += e.substring(i, r)), (h = 2);
|
|
break;
|
|
}
|
|
h = 6;
|
|
}
|
|
r++;
|
|
} else {
|
|
if (((t += e.substring(i, r)), ++r >= n)) {
|
|
h = 2;
|
|
break;
|
|
}
|
|
switch (e.charCodeAt(r++)) {
|
|
case 34:
|
|
t += '"';
|
|
break;
|
|
case 92:
|
|
t += '\\';
|
|
break;
|
|
case 47:
|
|
t += '/';
|
|
break;
|
|
case 98:
|
|
t += '\b';
|
|
break;
|
|
case 102:
|
|
t += '\f';
|
|
break;
|
|
case 110:
|
|
t += '\n';
|
|
break;
|
|
case 114:
|
|
t += '\r';
|
|
break;
|
|
case 116:
|
|
t += '\t';
|
|
break;
|
|
case 117:
|
|
var s = f(4, !0);
|
|
s >= 0 ? (t += String.fromCharCode(s)) : (h = 4);
|
|
break;
|
|
default:
|
|
h = 5;
|
|
}
|
|
i = r;
|
|
}
|
|
}
|
|
return t;
|
|
})()),
|
|
(s = 10)
|
|
);
|
|
case 47:
|
|
var d = r - 1;
|
|
if (47 === e.charCodeAt(r + 1)) {
|
|
for (r += 2; r < n && !nn(e.charCodeAt(r)); ) r++;
|
|
return (i = e.substring(d, r)), (s = 12);
|
|
}
|
|
if (42 === e.charCodeAt(r + 1)) {
|
|
r += 2;
|
|
for (var g = n - 1, p = !1; r < g; ) {
|
|
var v = e.charCodeAt(r);
|
|
if (42 === v && 47 === e.charCodeAt(r + 1)) {
|
|
(r += 2), (p = !0);
|
|
break;
|
|
}
|
|
r++,
|
|
nn(v) &&
|
|
(13 === v && 10 === e.charCodeAt(r) && r++, a++, (l = r));
|
|
}
|
|
return p || (r++, (h = 1)), (i = e.substring(d, r)), (s = 13);
|
|
}
|
|
return (i += String.fromCharCode(t)), r++, (s = 16);
|
|
case 45:
|
|
if (
|
|
((i += String.fromCharCode(t)), ++r === n || !rn(e.charCodeAt(r)))
|
|
)
|
|
return (s = 16);
|
|
case 48:
|
|
case 49:
|
|
case 50:
|
|
case 51:
|
|
case 52:
|
|
case 53:
|
|
case 54:
|
|
case 55:
|
|
case 56:
|
|
case 57:
|
|
return (
|
|
(i += (function () {
|
|
var t = r;
|
|
if (48 === e.charCodeAt(r)) r++;
|
|
else for (r++; r < e.length && rn(e.charCodeAt(r)); ) r++;
|
|
if (r < e.length && 46 === e.charCodeAt(r)) {
|
|
if (!(++r < e.length && rn(e.charCodeAt(r))))
|
|
return (h = 3), e.substring(t, r);
|
|
for (r++; r < e.length && rn(e.charCodeAt(r)); ) r++;
|
|
}
|
|
var n = r;
|
|
if (
|
|
r < e.length &&
|
|
(69 === e.charCodeAt(r) || 101 === e.charCodeAt(r))
|
|
)
|
|
if (
|
|
(((++r < e.length && 43 === e.charCodeAt(r)) ||
|
|
45 === e.charCodeAt(r)) &&
|
|
r++,
|
|
r < e.length && rn(e.charCodeAt(r)))
|
|
) {
|
|
for (r++; r < e.length && rn(e.charCodeAt(r)); ) r++;
|
|
n = r;
|
|
} else h = 3;
|
|
return e.substring(t, n);
|
|
})()),
|
|
(s = 11)
|
|
);
|
|
default:
|
|
for (; r < n && m(t); ) r++, (t = e.charCodeAt(r));
|
|
if (o !== r) {
|
|
switch ((i = e.substring(o, r))) {
|
|
case 'true':
|
|
return (s = 8);
|
|
case 'false':
|
|
return (s = 9);
|
|
case 'null':
|
|
return (s = 7);
|
|
}
|
|
return (s = 16);
|
|
}
|
|
return (i += String.fromCharCode(t)), r++, (s = 16);
|
|
}
|
|
}
|
|
function m(e) {
|
|
if (tn(e) || nn(e)) return !1;
|
|
switch (e) {
|
|
case 125:
|
|
case 93:
|
|
case 123:
|
|
case 91:
|
|
case 34:
|
|
case 58:
|
|
case 44:
|
|
case 47:
|
|
return !1;
|
|
}
|
|
return !0;
|
|
}
|
|
return {
|
|
setPosition: function (e) {
|
|
(r = e), (i = ''), (o = 0), (s = 16), (h = 0);
|
|
},
|
|
getPosition: function () {
|
|
return r;
|
|
},
|
|
scan: t
|
|
? function () {
|
|
var e;
|
|
do {
|
|
e = d();
|
|
} while (e >= 12 && e <= 15);
|
|
return e;
|
|
}
|
|
: d,
|
|
getToken: function () {
|
|
return s;
|
|
},
|
|
getTokenValue: function () {
|
|
return i;
|
|
},
|
|
getTokenOffset: function () {
|
|
return o;
|
|
},
|
|
getTokenLength: function () {
|
|
return r - o;
|
|
},
|
|
getTokenStartLine: function () {
|
|
return u;
|
|
},
|
|
getTokenStartCharacter: function () {
|
|
return o - c;
|
|
},
|
|
getTokenError: function () {
|
|
return h;
|
|
},
|
|
};
|
|
}
|
|
function tn(e) {
|
|
return (
|
|
32 === e ||
|
|
9 === e ||
|
|
11 === e ||
|
|
12 === e ||
|
|
160 === e ||
|
|
5760 === e ||
|
|
(e >= 8192 && e <= 8203) ||
|
|
8239 === e ||
|
|
8287 === e ||
|
|
12288 === e ||
|
|
65279 === e
|
|
);
|
|
}
|
|
function nn(e) {
|
|
return 10 === e || 13 === e || 8232 === e || 8233 === e;
|
|
}
|
|
function rn(e) {
|
|
return e >= 48 && e <= 57;
|
|
}
|
|
function on(e, t) {
|
|
for (var n = '', r = 0; r < t; r++) n += e;
|
|
return n;
|
|
}
|
|
function sn(e, t) {
|
|
return -1 !== '\r\n'.indexOf(e.charAt(t));
|
|
}
|
|
var an;
|
|
(self.onmessage = (e) => {
|
|
Zt || Xt(null);
|
|
}),
|
|
(function (e) {
|
|
e.DEFAULT = { allowTrailingComma: !1 };
|
|
})(an || (an = {}));
|
|
var un,
|
|
ln,
|
|
cn,
|
|
hn,
|
|
fn,
|
|
dn,
|
|
mn,
|
|
gn,
|
|
pn,
|
|
vn,
|
|
yn,
|
|
bn,
|
|
Cn,
|
|
_n,
|
|
Sn,
|
|
En,
|
|
An,
|
|
xn,
|
|
Nn,
|
|
Ln,
|
|
wn = en,
|
|
Tn = function (e, t, n) {
|
|
void 0 === t && (t = []), void 0 === n && (n = an.DEFAULT);
|
|
var r = null,
|
|
i = [],
|
|
o = [];
|
|
function s(e) {
|
|
Array.isArray(i) ? i.push(e) : null !== r && (i[r] = e);
|
|
}
|
|
return (
|
|
(function (e, t, n) {
|
|
void 0 === n && (n = an.DEFAULT);
|
|
var r = en(e, !1);
|
|
function i(e) {
|
|
return e
|
|
? function () {
|
|
return e(
|
|
r.getTokenOffset(),
|
|
r.getTokenLength(),
|
|
r.getTokenStartLine(),
|
|
r.getTokenStartCharacter()
|
|
);
|
|
}
|
|
: function () {
|
|
return !0;
|
|
};
|
|
}
|
|
function o(e) {
|
|
return e
|
|
? function (t) {
|
|
return e(
|
|
t,
|
|
r.getTokenOffset(),
|
|
r.getTokenLength(),
|
|
r.getTokenStartLine(),
|
|
r.getTokenStartCharacter()
|
|
);
|
|
}
|
|
: function () {
|
|
return !0;
|
|
};
|
|
}
|
|
var s = i(t.onObjectBegin),
|
|
a = o(t.onObjectProperty),
|
|
u = i(t.onObjectEnd),
|
|
l = i(t.onArrayBegin),
|
|
c = i(t.onArrayEnd),
|
|
h = o(t.onLiteralValue),
|
|
f = o(t.onSeparator),
|
|
d = i(t.onComment),
|
|
m = o(t.onError),
|
|
g = n && n.disallowComments,
|
|
p = n && n.allowTrailingComma;
|
|
function v() {
|
|
for (;;) {
|
|
var e = r.scan();
|
|
switch (r.getTokenError()) {
|
|
case 4:
|
|
y(14);
|
|
break;
|
|
case 5:
|
|
y(15);
|
|
break;
|
|
case 3:
|
|
y(13);
|
|
break;
|
|
case 1:
|
|
g || y(11);
|
|
break;
|
|
case 2:
|
|
y(12);
|
|
break;
|
|
case 6:
|
|
y(16);
|
|
}
|
|
switch (e) {
|
|
case 12:
|
|
case 13:
|
|
g ? y(10) : d();
|
|
break;
|
|
case 16:
|
|
y(1);
|
|
break;
|
|
case 15:
|
|
case 14:
|
|
break;
|
|
default:
|
|
return e;
|
|
}
|
|
}
|
|
}
|
|
function y(e, t, n) {
|
|
if (
|
|
(void 0 === t && (t = []),
|
|
void 0 === n && (n = []),
|
|
m(e),
|
|
t.length + n.length > 0)
|
|
)
|
|
for (var i = r.getToken(); 17 !== i; ) {
|
|
if (-1 !== t.indexOf(i)) {
|
|
v();
|
|
break;
|
|
}
|
|
if (-1 !== n.indexOf(i)) break;
|
|
i = v();
|
|
}
|
|
}
|
|
function b(e) {
|
|
var t = r.getTokenValue();
|
|
return e ? h(t) : a(t), v(), !0;
|
|
}
|
|
v(),
|
|
17 === r.getToken()
|
|
? !!n.allowEmptyContent || y(4, [], [])
|
|
: (function e() {
|
|
switch (r.getToken()) {
|
|
case 3:
|
|
return (function () {
|
|
l(), v();
|
|
for (
|
|
var t = !1;
|
|
4 !== r.getToken() && 17 !== r.getToken();
|
|
|
|
) {
|
|
if (5 === r.getToken()) {
|
|
if (
|
|
(t || y(4, [], []),
|
|
f(','),
|
|
v(),
|
|
4 === r.getToken() && p)
|
|
)
|
|
break;
|
|
} else t && y(6, [], []);
|
|
e() || y(4, [], [4, 5]), (t = !0);
|
|
}
|
|
return (
|
|
c(), 4 !== r.getToken() ? y(8, [4], []) : v(), !0
|
|
);
|
|
})();
|
|
case 1:
|
|
return (function () {
|
|
s(), v();
|
|
for (
|
|
var t = !1;
|
|
2 !== r.getToken() && 17 !== r.getToken();
|
|
|
|
) {
|
|
if (5 === r.getToken()) {
|
|
if (
|
|
(t || y(4, [], []),
|
|
f(','),
|
|
v(),
|
|
2 === r.getToken() && p)
|
|
)
|
|
break;
|
|
} else t && y(6, [], []);
|
|
(10 !== r.getToken()
|
|
? (y(3, [], [2, 5]), 0)
|
|
: (b(!1),
|
|
6 === r.getToken()
|
|
? (f(':'), v(), e() || y(4, [], [2, 5]))
|
|
: y(5, [], [2, 5]),
|
|
1)) || y(4, [], [2, 5]),
|
|
(t = !0);
|
|
}
|
|
return (
|
|
u(), 2 !== r.getToken() ? y(7, [2], []) : v(), !0
|
|
);
|
|
})();
|
|
case 10:
|
|
return b(!0);
|
|
default:
|
|
return (function () {
|
|
switch (r.getToken()) {
|
|
case 11:
|
|
var e = 0;
|
|
try {
|
|
'number' !=
|
|
typeof (e = JSON.parse(r.getTokenValue())) &&
|
|
(y(2), (e = 0));
|
|
} catch (e) {
|
|
y(2);
|
|
}
|
|
h(e);
|
|
break;
|
|
case 7:
|
|
h(null);
|
|
break;
|
|
case 8:
|
|
h(!0);
|
|
break;
|
|
case 9:
|
|
h(!1);
|
|
break;
|
|
default:
|
|
return !1;
|
|
}
|
|
return v(), !0;
|
|
})();
|
|
}
|
|
})()
|
|
? 17 !== r.getToken() && y(9, [], [])
|
|
: y(4, [], []);
|
|
})(
|
|
e,
|
|
{
|
|
onObjectBegin: function () {
|
|
var e = {};
|
|
s(e), o.push(i), (i = e), (r = null);
|
|
},
|
|
onObjectProperty: function (e) {
|
|
r = e;
|
|
},
|
|
onObjectEnd: function () {
|
|
i = o.pop();
|
|
},
|
|
onArrayBegin: function () {
|
|
var e = [];
|
|
s(e), o.push(i), (i = e), (r = null);
|
|
},
|
|
onArrayEnd: function () {
|
|
i = o.pop();
|
|
},
|
|
onLiteralValue: s,
|
|
onError: function (e, n, r) {
|
|
t.push({ error: e, offset: n, length: r });
|
|
},
|
|
},
|
|
n
|
|
),
|
|
i[0]
|
|
);
|
|
},
|
|
kn = function e(t, n, r) {
|
|
if (
|
|
(void 0 === r && (r = !1),
|
|
(function (e, t, n) {
|
|
return (
|
|
void 0 === n && (n = !1),
|
|
(t >= e.offset && t < e.offset + e.length) ||
|
|
(n && t === e.offset + e.length)
|
|
);
|
|
})(t, n, r))
|
|
) {
|
|
var i = t.children;
|
|
if (Array.isArray(i))
|
|
for (var o = 0; o < i.length && i[o].offset <= n; o++) {
|
|
var s = e(i[o], n, r);
|
|
if (s) return s;
|
|
}
|
|
return t;
|
|
}
|
|
},
|
|
On = function e(t) {
|
|
if (!t.parent || !t.parent.children) return [];
|
|
var n = e(t.parent);
|
|
if ('property' === t.parent.type) {
|
|
var r = t.parent.children[0].value;
|
|
n.push(r);
|
|
} else if ('array' === t.parent.type) {
|
|
var i = t.parent.children.indexOf(t);
|
|
-1 !== i && n.push(i);
|
|
}
|
|
return n;
|
|
},
|
|
In = function e(t) {
|
|
switch (t.type) {
|
|
case 'array':
|
|
return t.children.map(e);
|
|
case 'object':
|
|
for (
|
|
var n = Object.create(null), r = 0, i = t.children;
|
|
r < i.length;
|
|
r++
|
|
) {
|
|
var o = i[r],
|
|
s = o.children[1];
|
|
s && (n[o.children[0].value] = e(s));
|
|
}
|
|
return n;
|
|
case 'null':
|
|
case 'string':
|
|
case 'number':
|
|
case 'boolean':
|
|
return t.value;
|
|
default:
|
|
return;
|
|
}
|
|
};
|
|
function Mn(e, t) {
|
|
if (e === t) return !0;
|
|
if (null == e || null == t) return !1;
|
|
if (typeof e != typeof t) return !1;
|
|
if ('object' != typeof e) return !1;
|
|
if (Array.isArray(e) !== Array.isArray(t)) return !1;
|
|
var n, r;
|
|
if (Array.isArray(e)) {
|
|
if (e.length !== t.length) return !1;
|
|
for (n = 0; n < e.length; n++) if (!Mn(e[n], t[n])) return !1;
|
|
} else {
|
|
var i = [];
|
|
for (r in e) i.push(r);
|
|
i.sort();
|
|
var o = [];
|
|
for (r in t) o.push(r);
|
|
if ((o.sort(), !Mn(i, o))) return !1;
|
|
for (n = 0; n < i.length; n++) if (!Mn(e[i[n]], t[i[n]])) return !1;
|
|
}
|
|
return !0;
|
|
}
|
|
function Pn(e) {
|
|
return 'number' == typeof e;
|
|
}
|
|
function Rn(e) {
|
|
return void 0 !== e;
|
|
}
|
|
function Dn(e) {
|
|
return 'boolean' == typeof e;
|
|
}
|
|
!(function (e) {
|
|
(e.create = function (e, t) {
|
|
return { line: e, character: t };
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return (
|
|
fr.objectLiteral(t) && fr.number(t.line) && fr.number(t.character)
|
|
);
|
|
});
|
|
})(un || (un = {})),
|
|
(function (e) {
|
|
(e.create = function (e, t, n, r) {
|
|
if (fr.number(e) && fr.number(t) && fr.number(n) && fr.number(r))
|
|
return { start: un.create(e, t), end: un.create(n, r) };
|
|
if (un.is(e) && un.is(t)) return { start: e, end: t };
|
|
throw new Error(
|
|
'Range#create called with invalid arguments[' +
|
|
e +
|
|
', ' +
|
|
t +
|
|
', ' +
|
|
n +
|
|
', ' +
|
|
r +
|
|
']'
|
|
);
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return fr.objectLiteral(t) && un.is(t.start) && un.is(t.end);
|
|
});
|
|
})(ln || (ln = {})),
|
|
(function (e) {
|
|
(e.create = function (e, t) {
|
|
return { uri: e, range: t };
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return (
|
|
fr.defined(t) &&
|
|
ln.is(t.range) &&
|
|
(fr.string(t.uri) || fr.undefined(t.uri))
|
|
);
|
|
});
|
|
})(cn || (cn = {})),
|
|
(function (e) {
|
|
(e.create = function (e, t, n, r) {
|
|
return {
|
|
targetUri: e,
|
|
targetRange: t,
|
|
targetSelectionRange: n,
|
|
originSelectionRange: r,
|
|
};
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return (
|
|
fr.defined(t) &&
|
|
ln.is(t.targetRange) &&
|
|
fr.string(t.targetUri) &&
|
|
(ln.is(t.targetSelectionRange) ||
|
|
fr.undefined(t.targetSelectionRange)) &&
|
|
(ln.is(t.originSelectionRange) ||
|
|
fr.undefined(t.originSelectionRange))
|
|
);
|
|
});
|
|
})(hn || (hn = {})),
|
|
(function (e) {
|
|
(e.create = function (e, t, n, r) {
|
|
return { red: e, green: t, blue: n, alpha: r };
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return (
|
|
fr.number(t.red) &&
|
|
fr.number(t.green) &&
|
|
fr.number(t.blue) &&
|
|
fr.number(t.alpha)
|
|
);
|
|
});
|
|
})(fn || (fn = {})),
|
|
(function (e) {
|
|
(e.create = function (e, t) {
|
|
return { range: e, color: t };
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return ln.is(t.range) && fn.is(t.color);
|
|
});
|
|
})(dn || (dn = {})),
|
|
(function (e) {
|
|
(e.create = function (e, t, n) {
|
|
return { label: e, textEdit: t, additionalTextEdits: n };
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return (
|
|
fr.string(t.label) &&
|
|
(fr.undefined(t.textEdit) || Sn.is(t)) &&
|
|
(fr.undefined(t.additionalTextEdits) ||
|
|
fr.typedArray(t.additionalTextEdits, Sn.is))
|
|
);
|
|
});
|
|
})(mn || (mn = {})),
|
|
(function (e) {
|
|
(e.Comment = 'comment'), (e.Imports = 'imports'), (e.Region = 'region');
|
|
})(gn || (gn = {})),
|
|
(function (e) {
|
|
(e.create = function (e, t, n, r, i) {
|
|
var o = { startLine: e, endLine: t };
|
|
return (
|
|
fr.defined(n) && (o.startCharacter = n),
|
|
fr.defined(r) && (o.endCharacter = r),
|
|
fr.defined(i) && (o.kind = i),
|
|
o
|
|
);
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return (
|
|
fr.number(t.startLine) &&
|
|
fr.number(t.startLine) &&
|
|
(fr.undefined(t.startCharacter) || fr.number(t.startCharacter)) &&
|
|
(fr.undefined(t.endCharacter) || fr.number(t.endCharacter)) &&
|
|
(fr.undefined(t.kind) || fr.string(t.kind))
|
|
);
|
|
});
|
|
})(pn || (pn = {})),
|
|
(function (e) {
|
|
(e.create = function (e, t) {
|
|
return { location: e, message: t };
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return fr.defined(t) && cn.is(t.location) && fr.string(t.message);
|
|
});
|
|
})(vn || (vn = {})),
|
|
(function (e) {
|
|
(e.Error = 1), (e.Warning = 2), (e.Information = 3), (e.Hint = 4);
|
|
})(yn || (yn = {})),
|
|
(function (e) {
|
|
(e.Unnecessary = 1), (e.Deprecated = 2);
|
|
})(bn || (bn = {})),
|
|
(function (e) {
|
|
(e.create = function (e, t, n, r, i, o) {
|
|
var s = { range: e, message: t };
|
|
return (
|
|
fr.defined(n) && (s.severity = n),
|
|
fr.defined(r) && (s.code = r),
|
|
fr.defined(i) && (s.source = i),
|
|
fr.defined(o) && (s.relatedInformation = o),
|
|
s
|
|
);
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return (
|
|
fr.defined(t) &&
|
|
ln.is(t.range) &&
|
|
fr.string(t.message) &&
|
|
(fr.number(t.severity) || fr.undefined(t.severity)) &&
|
|
(fr.number(t.code) || fr.string(t.code) || fr.undefined(t.code)) &&
|
|
(fr.string(t.source) || fr.undefined(t.source)) &&
|
|
(fr.undefined(t.relatedInformation) ||
|
|
fr.typedArray(t.relatedInformation, vn.is))
|
|
);
|
|
});
|
|
})(Cn || (Cn = {})),
|
|
(function (e) {
|
|
(e.create = function (e, t) {
|
|
for (var n = [], r = 2; r < arguments.length; r++)
|
|
n[r - 2] = arguments[r];
|
|
var i = { title: e, command: t };
|
|
return fr.defined(n) && n.length > 0 && (i.arguments = n), i;
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return fr.defined(t) && fr.string(t.title) && fr.string(t.command);
|
|
});
|
|
})(_n || (_n = {})),
|
|
(function (e) {
|
|
(e.replace = function (e, t) {
|
|
return { range: e, newText: t };
|
|
}),
|
|
(e.insert = function (e, t) {
|
|
return { range: { start: e, end: e }, newText: t };
|
|
}),
|
|
(e.del = function (e) {
|
|
return { range: e, newText: '' };
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return fr.objectLiteral(t) && fr.string(t.newText) && ln.is(t.range);
|
|
});
|
|
})(Sn || (Sn = {})),
|
|
(function (e) {
|
|
(e.create = function (e, t) {
|
|
return { textDocument: e, edits: t };
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return (
|
|
fr.defined(t) && jn.is(t.textDocument) && Array.isArray(t.edits)
|
|
);
|
|
});
|
|
})(En || (En = {})),
|
|
(function (e) {
|
|
(e.create = function (e, t) {
|
|
var n = { kind: 'create', uri: e };
|
|
return (
|
|
void 0 === t ||
|
|
(void 0 === t.overwrite && void 0 === t.ignoreIfExists) ||
|
|
(n.options = t),
|
|
n
|
|
);
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return (
|
|
t &&
|
|
'create' === t.kind &&
|
|
fr.string(t.uri) &&
|
|
(void 0 === t.options ||
|
|
((void 0 === t.options.overwrite ||
|
|
fr.boolean(t.options.overwrite)) &&
|
|
(void 0 === t.options.ignoreIfExists ||
|
|
fr.boolean(t.options.ignoreIfExists))))
|
|
);
|
|
});
|
|
})(An || (An = {})),
|
|
(function (e) {
|
|
(e.create = function (e, t, n) {
|
|
var r = { kind: 'rename', oldUri: e, newUri: t };
|
|
return (
|
|
void 0 === n ||
|
|
(void 0 === n.overwrite && void 0 === n.ignoreIfExists) ||
|
|
(r.options = n),
|
|
r
|
|
);
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return (
|
|
t &&
|
|
'rename' === t.kind &&
|
|
fr.string(t.oldUri) &&
|
|
fr.string(t.newUri) &&
|
|
(void 0 === t.options ||
|
|
((void 0 === t.options.overwrite ||
|
|
fr.boolean(t.options.overwrite)) &&
|
|
(void 0 === t.options.ignoreIfExists ||
|
|
fr.boolean(t.options.ignoreIfExists))))
|
|
);
|
|
});
|
|
})(xn || (xn = {})),
|
|
(function (e) {
|
|
(e.create = function (e, t) {
|
|
var n = { kind: 'delete', uri: e };
|
|
return (
|
|
void 0 === t ||
|
|
(void 0 === t.recursive && void 0 === t.ignoreIfNotExists) ||
|
|
(n.options = t),
|
|
n
|
|
);
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return (
|
|
t &&
|
|
'delete' === t.kind &&
|
|
fr.string(t.uri) &&
|
|
(void 0 === t.options ||
|
|
((void 0 === t.options.recursive ||
|
|
fr.boolean(t.options.recursive)) &&
|
|
(void 0 === t.options.ignoreIfNotExists ||
|
|
fr.boolean(t.options.ignoreIfNotExists))))
|
|
);
|
|
});
|
|
})(Nn || (Nn = {})),
|
|
(function (e) {
|
|
e.is = function (e) {
|
|
var t = e;
|
|
return (
|
|
t &&
|
|
(void 0 !== t.changes || void 0 !== t.documentChanges) &&
|
|
(void 0 === t.documentChanges ||
|
|
t.documentChanges.every(function (e) {
|
|
return fr.string(e.kind)
|
|
? An.is(e) || xn.is(e) || Nn.is(e)
|
|
: En.is(e);
|
|
}))
|
|
);
|
|
};
|
|
})(Ln || (Ln = {}));
|
|
var Fn,
|
|
jn,
|
|
Un,
|
|
Vn,
|
|
$n,
|
|
Wn,
|
|
qn,
|
|
Kn,
|
|
Bn,
|
|
Hn,
|
|
Yn,
|
|
Gn,
|
|
zn,
|
|
Jn,
|
|
Qn,
|
|
Zn,
|
|
Xn,
|
|
er,
|
|
tr,
|
|
nr,
|
|
rr,
|
|
ir,
|
|
or,
|
|
sr,
|
|
ar,
|
|
ur,
|
|
lr,
|
|
cr,
|
|
hr = (function () {
|
|
function e(e) {
|
|
this.edits = e;
|
|
}
|
|
return (
|
|
(e.prototype.insert = function (e, t) {
|
|
this.edits.push(Sn.insert(e, t));
|
|
}),
|
|
(e.prototype.replace = function (e, t) {
|
|
this.edits.push(Sn.replace(e, t));
|
|
}),
|
|
(e.prototype.delete = function (e) {
|
|
this.edits.push(Sn.del(e));
|
|
}),
|
|
(e.prototype.add = function (e) {
|
|
this.edits.push(e);
|
|
}),
|
|
(e.prototype.all = function () {
|
|
return this.edits;
|
|
}),
|
|
(e.prototype.clear = function () {
|
|
this.edits.splice(0, this.edits.length);
|
|
}),
|
|
e
|
|
);
|
|
})();
|
|
!(function () {
|
|
function e(e) {
|
|
var t = this;
|
|
(this._textEditChanges = Object.create(null)),
|
|
e &&
|
|
((this._workspaceEdit = e),
|
|
e.documentChanges
|
|
? e.documentChanges.forEach(function (e) {
|
|
if (En.is(e)) {
|
|
var n = new hr(e.edits);
|
|
t._textEditChanges[e.textDocument.uri] = n;
|
|
}
|
|
})
|
|
: e.changes &&
|
|
Object.keys(e.changes).forEach(function (n) {
|
|
var r = new hr(e.changes[n]);
|
|
t._textEditChanges[n] = r;
|
|
}));
|
|
}
|
|
Object.defineProperty(e.prototype, 'edit', {
|
|
get: function () {
|
|
return this._workspaceEdit;
|
|
},
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
}),
|
|
(e.prototype.getTextEditChange = function (e) {
|
|
if (jn.is(e)) {
|
|
if (
|
|
(this._workspaceEdit ||
|
|
(this._workspaceEdit = { documentChanges: [] }),
|
|
!this._workspaceEdit.documentChanges)
|
|
)
|
|
throw new Error(
|
|
'Workspace edit is not configured for document changes.'
|
|
);
|
|
var t = e;
|
|
if (!(r = this._textEditChanges[t.uri])) {
|
|
var n = { textDocument: t, edits: (i = []) };
|
|
this._workspaceEdit.documentChanges.push(n),
|
|
(r = new hr(i)),
|
|
(this._textEditChanges[t.uri] = r);
|
|
}
|
|
return r;
|
|
}
|
|
if (
|
|
(this._workspaceEdit ||
|
|
(this._workspaceEdit = { changes: Object.create(null) }),
|
|
!this._workspaceEdit.changes)
|
|
)
|
|
throw new Error(
|
|
'Workspace edit is not configured for normal text edit changes.'
|
|
);
|
|
var r;
|
|
if (!(r = this._textEditChanges[e])) {
|
|
var i = [];
|
|
(this._workspaceEdit.changes[e] = i),
|
|
(r = new hr(i)),
|
|
(this._textEditChanges[e] = r);
|
|
}
|
|
return r;
|
|
}),
|
|
(e.prototype.createFile = function (e, t) {
|
|
this.checkDocumentChanges(),
|
|
this._workspaceEdit.documentChanges.push(An.create(e, t));
|
|
}),
|
|
(e.prototype.renameFile = function (e, t, n) {
|
|
this.checkDocumentChanges(),
|
|
this._workspaceEdit.documentChanges.push(xn.create(e, t, n));
|
|
}),
|
|
(e.prototype.deleteFile = function (e, t) {
|
|
this.checkDocumentChanges(),
|
|
this._workspaceEdit.documentChanges.push(Nn.create(e, t));
|
|
}),
|
|
(e.prototype.checkDocumentChanges = function () {
|
|
if (!this._workspaceEdit || !this._workspaceEdit.documentChanges)
|
|
throw new Error(
|
|
'Workspace edit is not configured for document changes.'
|
|
);
|
|
});
|
|
})(),
|
|
(function (e) {
|
|
(e.create = function (e) {
|
|
return { uri: e };
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return fr.defined(t) && fr.string(t.uri);
|
|
});
|
|
})(Fn || (Fn = {})),
|
|
(function (e) {
|
|
(e.create = function (e, t) {
|
|
return { uri: e, version: t };
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return (
|
|
fr.defined(t) &&
|
|
fr.string(t.uri) &&
|
|
(null === t.version || fr.number(t.version))
|
|
);
|
|
});
|
|
})(jn || (jn = {})),
|
|
(function (e) {
|
|
(e.create = function (e, t, n, r) {
|
|
return { uri: e, languageId: t, version: n, text: r };
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return (
|
|
fr.defined(t) &&
|
|
fr.string(t.uri) &&
|
|
fr.string(t.languageId) &&
|
|
fr.number(t.version) &&
|
|
fr.string(t.text)
|
|
);
|
|
});
|
|
})(Un || (Un = {})),
|
|
(function (e) {
|
|
(e.PlainText = 'plaintext'), (e.Markdown = 'markdown');
|
|
})(Vn || (Vn = {})),
|
|
(function (e) {
|
|
e.is = function (t) {
|
|
var n = t;
|
|
return n === e.PlainText || n === e.Markdown;
|
|
};
|
|
})(Vn || (Vn = {})),
|
|
(function (e) {
|
|
e.is = function (e) {
|
|
var t = e;
|
|
return fr.objectLiteral(e) && Vn.is(t.kind) && fr.string(t.value);
|
|
};
|
|
})($n || ($n = {})),
|
|
(function (e) {
|
|
(e.Text = 1),
|
|
(e.Method = 2),
|
|
(e.Function = 3),
|
|
(e.Constructor = 4),
|
|
(e.Field = 5),
|
|
(e.Variable = 6),
|
|
(e.Class = 7),
|
|
(e.Interface = 8),
|
|
(e.Module = 9),
|
|
(e.Property = 10),
|
|
(e.Unit = 11),
|
|
(e.Value = 12),
|
|
(e.Enum = 13),
|
|
(e.Keyword = 14),
|
|
(e.Snippet = 15),
|
|
(e.Color = 16),
|
|
(e.File = 17),
|
|
(e.Reference = 18),
|
|
(e.Folder = 19),
|
|
(e.EnumMember = 20),
|
|
(e.Constant = 21),
|
|
(e.Struct = 22),
|
|
(e.Event = 23),
|
|
(e.Operator = 24),
|
|
(e.TypeParameter = 25);
|
|
})(Wn || (Wn = {})),
|
|
(function (e) {
|
|
(e.PlainText = 1), (e.Snippet = 2);
|
|
})(qn || (qn = {})),
|
|
(function (e) {
|
|
e.Deprecated = 1;
|
|
})(Kn || (Kn = {})),
|
|
(function (e) {
|
|
e.create = function (e) {
|
|
return { label: e };
|
|
};
|
|
})(Bn || (Bn = {})),
|
|
(function (e) {
|
|
e.create = function (e, t) {
|
|
return { items: e || [], isIncomplete: !!t };
|
|
};
|
|
})(Hn || (Hn = {})),
|
|
(function (e) {
|
|
(e.fromPlainText = function (e) {
|
|
return e.replace(/[\\`*_{}[\]()#+\-.!]/g, '\\$&');
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return (
|
|
fr.string(t) ||
|
|
(fr.objectLiteral(t) && fr.string(t.language) && fr.string(t.value))
|
|
);
|
|
});
|
|
})(Yn || (Yn = {})),
|
|
(function (e) {
|
|
e.is = function (e) {
|
|
var t = e;
|
|
return (
|
|
!!t &&
|
|
fr.objectLiteral(t) &&
|
|
($n.is(t.contents) ||
|
|
Yn.is(t.contents) ||
|
|
fr.typedArray(t.contents, Yn.is)) &&
|
|
(void 0 === e.range || ln.is(e.range))
|
|
);
|
|
};
|
|
})(Gn || (Gn = {})),
|
|
(function (e) {
|
|
e.create = function (e, t) {
|
|
return t ? { label: e, documentation: t } : { label: e };
|
|
};
|
|
})(zn || (zn = {})),
|
|
(function (e) {
|
|
e.create = function (e, t) {
|
|
for (var n = [], r = 2; r < arguments.length; r++)
|
|
n[r - 2] = arguments[r];
|
|
var i = { label: e };
|
|
return (
|
|
fr.defined(t) && (i.documentation = t),
|
|
fr.defined(n) ? (i.parameters = n) : (i.parameters = []),
|
|
i
|
|
);
|
|
};
|
|
})(Jn || (Jn = {})),
|
|
(function (e) {
|
|
(e.Text = 1), (e.Read = 2), (e.Write = 3);
|
|
})(Qn || (Qn = {})),
|
|
(function (e) {
|
|
e.create = function (e, t) {
|
|
var n = { range: e };
|
|
return fr.number(t) && (n.kind = t), n;
|
|
};
|
|
})(Zn || (Zn = {})),
|
|
(function (e) {
|
|
(e.File = 1),
|
|
(e.Module = 2),
|
|
(e.Namespace = 3),
|
|
(e.Package = 4),
|
|
(e.Class = 5),
|
|
(e.Method = 6),
|
|
(e.Property = 7),
|
|
(e.Field = 8),
|
|
(e.Constructor = 9),
|
|
(e.Enum = 10),
|
|
(e.Interface = 11),
|
|
(e.Function = 12),
|
|
(e.Variable = 13),
|
|
(e.Constant = 14),
|
|
(e.String = 15),
|
|
(e.Number = 16),
|
|
(e.Boolean = 17),
|
|
(e.Array = 18),
|
|
(e.Object = 19),
|
|
(e.Key = 20),
|
|
(e.Null = 21),
|
|
(e.EnumMember = 22),
|
|
(e.Struct = 23),
|
|
(e.Event = 24),
|
|
(e.Operator = 25),
|
|
(e.TypeParameter = 26);
|
|
})(Xn || (Xn = {})),
|
|
(function (e) {
|
|
e.Deprecated = 1;
|
|
})(er || (er = {})),
|
|
(function (e) {
|
|
e.create = function (e, t, n, r, i) {
|
|
var o = { name: e, kind: t, location: { uri: r, range: n } };
|
|
return i && (o.containerName = i), o;
|
|
};
|
|
})(tr || (tr = {})),
|
|
(function (e) {
|
|
(e.create = function (e, t, n, r, i, o) {
|
|
var s = { name: e, detail: t, kind: n, range: r, selectionRange: i };
|
|
return void 0 !== o && (s.children = o), s;
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return (
|
|
t &&
|
|
fr.string(t.name) &&
|
|
fr.number(t.kind) &&
|
|
ln.is(t.range) &&
|
|
ln.is(t.selectionRange) &&
|
|
(void 0 === t.detail || fr.string(t.detail)) &&
|
|
(void 0 === t.deprecated || fr.boolean(t.deprecated)) &&
|
|
(void 0 === t.children || Array.isArray(t.children))
|
|
);
|
|
});
|
|
})(nr || (nr = {})),
|
|
(function (e) {
|
|
(e.Empty = ''),
|
|
(e.QuickFix = 'quickfix'),
|
|
(e.Refactor = 'refactor'),
|
|
(e.RefactorExtract = 'refactor.extract'),
|
|
(e.RefactorInline = 'refactor.inline'),
|
|
(e.RefactorRewrite = 'refactor.rewrite'),
|
|
(e.Source = 'source'),
|
|
(e.SourceOrganizeImports = 'source.organizeImports'),
|
|
(e.SourceFixAll = 'source.fixAll');
|
|
})(rr || (rr = {})),
|
|
(function (e) {
|
|
(e.create = function (e, t) {
|
|
var n = { diagnostics: e };
|
|
return null != t && (n.only = t), n;
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return (
|
|
fr.defined(t) &&
|
|
fr.typedArray(t.diagnostics, Cn.is) &&
|
|
(void 0 === t.only || fr.typedArray(t.only, fr.string))
|
|
);
|
|
});
|
|
})(ir || (ir = {})),
|
|
(function (e) {
|
|
(e.create = function (e, t, n) {
|
|
var r = { title: e };
|
|
return (
|
|
_n.is(t) ? (r.command = t) : (r.edit = t),
|
|
void 0 !== n && (r.kind = n),
|
|
r
|
|
);
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return (
|
|
t &&
|
|
fr.string(t.title) &&
|
|
(void 0 === t.diagnostics || fr.typedArray(t.diagnostics, Cn.is)) &&
|
|
(void 0 === t.kind || fr.string(t.kind)) &&
|
|
(void 0 !== t.edit || void 0 !== t.command) &&
|
|
(void 0 === t.command || _n.is(t.command)) &&
|
|
(void 0 === t.isPreferred || fr.boolean(t.isPreferred)) &&
|
|
(void 0 === t.edit || Ln.is(t.edit))
|
|
);
|
|
});
|
|
})(or || (or = {})),
|
|
(function (e) {
|
|
(e.create = function (e, t) {
|
|
var n = { range: e };
|
|
return fr.defined(t) && (n.data = t), n;
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return (
|
|
fr.defined(t) &&
|
|
ln.is(t.range) &&
|
|
(fr.undefined(t.command) || _n.is(t.command))
|
|
);
|
|
});
|
|
})(sr || (sr = {})),
|
|
(function (e) {
|
|
(e.create = function (e, t) {
|
|
return { tabSize: e, insertSpaces: t };
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return (
|
|
fr.defined(t) && fr.number(t.tabSize) && fr.boolean(t.insertSpaces)
|
|
);
|
|
});
|
|
})(ar || (ar = {})),
|
|
(function (e) {
|
|
(e.create = function (e, t, n) {
|
|
return { range: e, target: t, data: n };
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return (
|
|
fr.defined(t) &&
|
|
ln.is(t.range) &&
|
|
(fr.undefined(t.target) || fr.string(t.target))
|
|
);
|
|
});
|
|
})(ur || (ur = {})),
|
|
(function (e) {
|
|
(e.create = function (e, t) {
|
|
return { range: e, parent: t };
|
|
}),
|
|
(e.is = function (t) {
|
|
var n = t;
|
|
return (
|
|
void 0 !== n &&
|
|
ln.is(n.range) &&
|
|
(void 0 === n.parent || e.is(n.parent))
|
|
);
|
|
});
|
|
})(lr || (lr = {})),
|
|
(function (e) {
|
|
function t(e, n) {
|
|
if (e.length <= 1) return e;
|
|
var r = (e.length / 2) | 0,
|
|
i = e.slice(0, r),
|
|
o = e.slice(r);
|
|
t(i, n), t(o, n);
|
|
for (var s = 0, a = 0, u = 0; s < i.length && a < o.length; ) {
|
|
var l = n(i[s], o[a]);
|
|
e[u++] = l <= 0 ? i[s++] : o[a++];
|
|
}
|
|
for (; s < i.length; ) e[u++] = i[s++];
|
|
for (; a < o.length; ) e[u++] = o[a++];
|
|
return e;
|
|
}
|
|
(e.create = function (e, t, n, r) {
|
|
return new dr(e, t, n, r);
|
|
}),
|
|
(e.is = function (e) {
|
|
var t = e;
|
|
return !!(
|
|
fr.defined(t) &&
|
|
fr.string(t.uri) &&
|
|
(fr.undefined(t.languageId) || fr.string(t.languageId)) &&
|
|
fr.number(t.lineCount) &&
|
|
fr.func(t.getText) &&
|
|
fr.func(t.positionAt) &&
|
|
fr.func(t.offsetAt)
|
|
);
|
|
}),
|
|
(e.applyEdits = function (e, n) {
|
|
for (
|
|
var r = e.getText(),
|
|
i = t(n, function (e, t) {
|
|
var n = e.range.start.line - t.range.start.line;
|
|
return 0 === n
|
|
? e.range.start.character - t.range.start.character
|
|
: n;
|
|
}),
|
|
o = r.length,
|
|
s = i.length - 1;
|
|
s >= 0;
|
|
s--
|
|
) {
|
|
var a = i[s],
|
|
u = e.offsetAt(a.range.start),
|
|
l = e.offsetAt(a.range.end);
|
|
if (!(l <= o)) throw new Error('Overlapping edit');
|
|
(r = r.substring(0, u) + a.newText + r.substring(l, r.length)),
|
|
(o = u);
|
|
}
|
|
return r;
|
|
});
|
|
})(cr || (cr = {}));
|
|
var fr,
|
|
dr = (function () {
|
|
function e(e, t, n, r) {
|
|
(this._uri = e),
|
|
(this._languageId = t),
|
|
(this._version = n),
|
|
(this._content = r),
|
|
(this._lineOffsets = void 0);
|
|
}
|
|
return (
|
|
Object.defineProperty(e.prototype, 'uri', {
|
|
get: function () {
|
|
return this._uri;
|
|
},
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
}),
|
|
Object.defineProperty(e.prototype, 'languageId', {
|
|
get: function () {
|
|
return this._languageId;
|
|
},
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
}),
|
|
Object.defineProperty(e.prototype, 'version', {
|
|
get: function () {
|
|
return this._version;
|
|
},
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
}),
|
|
(e.prototype.getText = function (e) {
|
|
if (e) {
|
|
var t = this.offsetAt(e.start),
|
|
n = this.offsetAt(e.end);
|
|
return this._content.substring(t, n);
|
|
}
|
|
return this._content;
|
|
}),
|
|
(e.prototype.update = function (e, t) {
|
|
(this._content = e.text),
|
|
(this._version = t),
|
|
(this._lineOffsets = void 0);
|
|
}),
|
|
(e.prototype.getLineOffsets = function () {
|
|
if (void 0 === this._lineOffsets) {
|
|
for (
|
|
var e = [], t = this._content, n = !0, r = 0;
|
|
r < t.length;
|
|
r++
|
|
) {
|
|
n && (e.push(r), (n = !1));
|
|
var i = t.charAt(r);
|
|
(n = '\r' === i || '\n' === i),
|
|
'\r' === i &&
|
|
r + 1 < t.length &&
|
|
'\n' === t.charAt(r + 1) &&
|
|
r++;
|
|
}
|
|
n && t.length > 0 && e.push(t.length), (this._lineOffsets = e);
|
|
}
|
|
return this._lineOffsets;
|
|
}),
|
|
(e.prototype.positionAt = function (e) {
|
|
e = Math.max(Math.min(e, this._content.length), 0);
|
|
var t = this.getLineOffsets(),
|
|
n = 0,
|
|
r = t.length;
|
|
if (0 === r) return un.create(0, e);
|
|
for (; n < r; ) {
|
|
var i = Math.floor((n + r) / 2);
|
|
t[i] > e ? (r = i) : (n = i + 1);
|
|
}
|
|
var o = n - 1;
|
|
return un.create(o, e - t[o]);
|
|
}),
|
|
(e.prototype.offsetAt = function (e) {
|
|
var t = this.getLineOffsets();
|
|
if (e.line >= t.length) return this._content.length;
|
|
if (e.line < 0) return 0;
|
|
var n = t[e.line],
|
|
r = e.line + 1 < t.length ? t[e.line + 1] : this._content.length;
|
|
return Math.max(Math.min(n + e.character, r), n);
|
|
}),
|
|
Object.defineProperty(e.prototype, 'lineCount', {
|
|
get: function () {
|
|
return this.getLineOffsets().length;
|
|
},
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
}),
|
|
e
|
|
);
|
|
})();
|
|
!(function (e) {
|
|
var t = Object.prototype.toString;
|
|
(e.defined = function (e) {
|
|
return void 0 !== e;
|
|
}),
|
|
(e.undefined = function (e) {
|
|
return void 0 === e;
|
|
}),
|
|
(e.boolean = function (e) {
|
|
return !0 === e || !1 === e;
|
|
}),
|
|
(e.string = function (e) {
|
|
return '[object String]' === t.call(e);
|
|
}),
|
|
(e.number = function (e) {
|
|
return '[object Number]' === t.call(e);
|
|
}),
|
|
(e.func = function (e) {
|
|
return '[object Function]' === t.call(e);
|
|
}),
|
|
(e.objectLiteral = function (e) {
|
|
return null !== e && 'object' == typeof e;
|
|
}),
|
|
(e.typedArray = function (e, t) {
|
|
return Array.isArray(e) && e.every(t);
|
|
});
|
|
})(fr || (fr = {}));
|
|
var mr,
|
|
gr,
|
|
pr,
|
|
vr = (function () {
|
|
function e(e, t, n, r) {
|
|
(this._uri = e),
|
|
(this._languageId = t),
|
|
(this._version = n),
|
|
(this._content = r),
|
|
(this._lineOffsets = void 0);
|
|
}
|
|
return (
|
|
Object.defineProperty(e.prototype, 'uri', {
|
|
get: function () {
|
|
return this._uri;
|
|
},
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
}),
|
|
Object.defineProperty(e.prototype, 'languageId', {
|
|
get: function () {
|
|
return this._languageId;
|
|
},
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
}),
|
|
Object.defineProperty(e.prototype, 'version', {
|
|
get: function () {
|
|
return this._version;
|
|
},
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
}),
|
|
(e.prototype.getText = function (e) {
|
|
if (e) {
|
|
var t = this.offsetAt(e.start),
|
|
n = this.offsetAt(e.end);
|
|
return this._content.substring(t, n);
|
|
}
|
|
return this._content;
|
|
}),
|
|
(e.prototype.update = function (t, n) {
|
|
for (var r = 0, i = t; r < i.length; r++) {
|
|
var o = i[r];
|
|
if (e.isIncremental(o)) {
|
|
var s = Cr(o.range),
|
|
a = this.offsetAt(s.start),
|
|
u = this.offsetAt(s.end);
|
|
this._content =
|
|
this._content.substring(0, a) +
|
|
o.text +
|
|
this._content.substring(u, this._content.length);
|
|
var l = Math.max(s.start.line, 0),
|
|
c = Math.max(s.end.line, 0),
|
|
h = this._lineOffsets,
|
|
f = br(o.text, !1, a);
|
|
if (c - l === f.length)
|
|
for (var d = 0, m = f.length; d < m; d++) h[d + l + 1] = f[d];
|
|
else
|
|
f.length < 1e4
|
|
? h.splice.apply(h, [l + 1, c - l].concat(f))
|
|
: (this._lineOffsets = h = h
|
|
.slice(0, l + 1)
|
|
.concat(f, h.slice(c + 1)));
|
|
var g = o.text.length - (u - a);
|
|
if (0 !== g)
|
|
for (d = l + 1 + f.length, m = h.length; d < m; d++)
|
|
h[d] = h[d] + g;
|
|
} else {
|
|
if (!e.isFull(o))
|
|
throw new Error('Unknown change event received');
|
|
(this._content = o.text), (this._lineOffsets = void 0);
|
|
}
|
|
}
|
|
this._version = n;
|
|
}),
|
|
(e.prototype.getLineOffsets = function () {
|
|
return (
|
|
void 0 === this._lineOffsets &&
|
|
(this._lineOffsets = br(this._content, !0)),
|
|
this._lineOffsets
|
|
);
|
|
}),
|
|
(e.prototype.positionAt = function (e) {
|
|
e = Math.max(Math.min(e, this._content.length), 0);
|
|
var t = this.getLineOffsets(),
|
|
n = 0,
|
|
r = t.length;
|
|
if (0 === r) return { line: 0, character: e };
|
|
for (; n < r; ) {
|
|
var i = Math.floor((n + r) / 2);
|
|
t[i] > e ? (r = i) : (n = i + 1);
|
|
}
|
|
var o = n - 1;
|
|
return { line: o, character: e - t[o] };
|
|
}),
|
|
(e.prototype.offsetAt = function (e) {
|
|
var t = this.getLineOffsets();
|
|
if (e.line >= t.length) return this._content.length;
|
|
if (e.line < 0) return 0;
|
|
var n = t[e.line],
|
|
r = e.line + 1 < t.length ? t[e.line + 1] : this._content.length;
|
|
return Math.max(Math.min(n + e.character, r), n);
|
|
}),
|
|
Object.defineProperty(e.prototype, 'lineCount', {
|
|
get: function () {
|
|
return this.getLineOffsets().length;
|
|
},
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
}),
|
|
(e.isIncremental = function (e) {
|
|
var t = e;
|
|
return (
|
|
null != t &&
|
|
'string' == typeof t.text &&
|
|
void 0 !== t.range &&
|
|
(void 0 === t.rangeLength || 'number' == typeof t.rangeLength)
|
|
);
|
|
}),
|
|
(e.isFull = function (e) {
|
|
var t = e;
|
|
return (
|
|
null != t &&
|
|
'string' == typeof t.text &&
|
|
void 0 === t.range &&
|
|
void 0 === t.rangeLength
|
|
);
|
|
}),
|
|
e
|
|
);
|
|
})();
|
|
function yr(e, t) {
|
|
if (e.length <= 1) return e;
|
|
var n = (e.length / 2) | 0,
|
|
r = e.slice(0, n),
|
|
i = e.slice(n);
|
|
yr(r, t), yr(i, t);
|
|
for (var o = 0, s = 0, a = 0; o < r.length && s < i.length; ) {
|
|
var u = t(r[o], i[s]);
|
|
e[a++] = u <= 0 ? r[o++] : i[s++];
|
|
}
|
|
for (; o < r.length; ) e[a++] = r[o++];
|
|
for (; s < i.length; ) e[a++] = i[s++];
|
|
return e;
|
|
}
|
|
function br(e, t, n) {
|
|
void 0 === n && (n = 0);
|
|
for (var r = t ? [n] : [], i = 0; i < e.length; i++) {
|
|
var o = e.charCodeAt(i);
|
|
(13 !== o && 10 !== o) ||
|
|
(13 === o && i + 1 < e.length && 10 === e.charCodeAt(i + 1) && i++,
|
|
r.push(n + i + 1));
|
|
}
|
|
return r;
|
|
}
|
|
function Cr(e) {
|
|
var t = e.start,
|
|
n = e.end;
|
|
return t.line > n.line || (t.line === n.line && t.character > n.character)
|
|
? { start: n, end: t }
|
|
: e;
|
|
}
|
|
function _r(e) {
|
|
var t = Cr(e.range);
|
|
return t !== e.range ? { newText: e.newText, range: t } : e;
|
|
}
|
|
function Sr(e, t) {
|
|
return 0 === t.length
|
|
? e
|
|
: e.replace(/\{(\d+)\}/g, function (e, n) {
|
|
var r = n[0];
|
|
return void 0 !== t[r] ? t[r] : e;
|
|
});
|
|
}
|
|
function Er(e, t) {
|
|
for (var n = [], r = 2; r < arguments.length; r++) n[r - 2] = arguments[r];
|
|
return Sr(t, n);
|
|
}
|
|
function Ar(e) {
|
|
return Er;
|
|
}
|
|
!(function (e) {
|
|
(e.create = function (e, t, n, r) {
|
|
return new vr(e, t, n, r);
|
|
}),
|
|
(e.update = function (e, t, n) {
|
|
if (e instanceof vr) return e.update(t, n), e;
|
|
throw new Error(
|
|
'TextDocument.update: document must be created by TextDocument.create'
|
|
);
|
|
}),
|
|
(e.applyEdits = function (e, t) {
|
|
for (
|
|
var n = e.getText(),
|
|
r = 0,
|
|
i = [],
|
|
o = 0,
|
|
s = yr(t.map(_r), function (e, t) {
|
|
var n = e.range.start.line - t.range.start.line;
|
|
return 0 === n
|
|
? e.range.start.character - t.range.start.character
|
|
: n;
|
|
});
|
|
o < s.length;
|
|
o++
|
|
) {
|
|
var a = s[o],
|
|
u = e.offsetAt(a.range.start);
|
|
if (u < r) throw new Error('Overlapping edit');
|
|
u > r && i.push(n.substring(r, u)),
|
|
a.newText.length && i.push(a.newText),
|
|
(r = e.offsetAt(a.range.end));
|
|
}
|
|
return i.push(n.substr(r)), i.join('');
|
|
});
|
|
})(mr || (mr = {})),
|
|
(function (e) {
|
|
(e[(e.Undefined = 0)] = 'Undefined'),
|
|
(e[(e.EnumValueMismatch = 1)] = 'EnumValueMismatch'),
|
|
(e[(e.UnexpectedEndOfComment = 257)] = 'UnexpectedEndOfComment'),
|
|
(e[(e.UnexpectedEndOfString = 258)] = 'UnexpectedEndOfString'),
|
|
(e[(e.UnexpectedEndOfNumber = 259)] = 'UnexpectedEndOfNumber'),
|
|
(e[(e.InvalidUnicode = 260)] = 'InvalidUnicode'),
|
|
(e[(e.InvalidEscapeCharacter = 261)] = 'InvalidEscapeCharacter'),
|
|
(e[(e.InvalidCharacter = 262)] = 'InvalidCharacter'),
|
|
(e[(e.PropertyExpected = 513)] = 'PropertyExpected'),
|
|
(e[(e.CommaExpected = 514)] = 'CommaExpected'),
|
|
(e[(e.ColonExpected = 515)] = 'ColonExpected'),
|
|
(e[(e.ValueExpected = 516)] = 'ValueExpected'),
|
|
(e[(e.CommaOrCloseBacketExpected = 517)] =
|
|
'CommaOrCloseBacketExpected'),
|
|
(e[(e.CommaOrCloseBraceExpected = 518)] = 'CommaOrCloseBraceExpected'),
|
|
(e[(e.TrailingComma = 519)] = 'TrailingComma'),
|
|
(e[(e.DuplicateKey = 520)] = 'DuplicateKey'),
|
|
(e[(e.CommentNotPermitted = 521)] = 'CommentNotPermitted'),
|
|
(e[(e.SchemaResolveError = 768)] = 'SchemaResolveError');
|
|
})(gr || (gr = {})),
|
|
(function (e) {
|
|
e.LATEST = {
|
|
textDocument: {
|
|
completion: {
|
|
completionItem: {
|
|
documentationFormat: [Vn.Markdown, Vn.PlainText],
|
|
commitCharactersSupport: !0,
|
|
},
|
|
},
|
|
},
|
|
};
|
|
})(pr || (pr = {}));
|
|
var xr,
|
|
Nr,
|
|
Lr =
|
|
((xr = function (e, t) {
|
|
return (xr =
|
|
Object.setPrototypeOf ||
|
|
({ __proto__: [] } instanceof Array &&
|
|
function (e, t) {
|
|
e.__proto__ = t;
|
|
}) ||
|
|
function (e, t) {
|
|
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]);
|
|
})(e, t);
|
|
}),
|
|
function (e, t) {
|
|
function n() {
|
|
this.constructor = e;
|
|
}
|
|
xr(e, t),
|
|
(e.prototype =
|
|
null === t
|
|
? Object.create(t)
|
|
: ((n.prototype = t.prototype), new n()));
|
|
}),
|
|
wr = Ar(),
|
|
Tr = {
|
|
'color-hex': {
|
|
errorMessage: wr(
|
|
'colorHexFormatWarning',
|
|
'Invalid color format. Use #RGB, #RGBA, #RRGGBB or #RRGGBBAA.'
|
|
),
|
|
pattern: /^#([0-9A-Fa-f]{3,4}|([0-9A-Fa-f]{2}){3,4})$/,
|
|
},
|
|
'date-time': {
|
|
errorMessage: wr(
|
|
'dateTimeFormatWarning',
|
|
'String is not a RFC3339 date-time.'
|
|
),
|
|
pattern: /^(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+)?(Z|(\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i,
|
|
},
|
|
date: {
|
|
errorMessage: wr('dateFormatWarning', 'String is not a RFC3339 date.'),
|
|
pattern: /^(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/i,
|
|
},
|
|
time: {
|
|
errorMessage: wr('timeFormatWarning', 'String is not a RFC3339 time.'),
|
|
pattern: /^([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+)?(Z|(\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i,
|
|
},
|
|
email: {
|
|
errorMessage: wr(
|
|
'emailFormatWarning',
|
|
'String is not an e-mail address.'
|
|
),
|
|
pattern: /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,
|
|
},
|
|
},
|
|
kr = (function () {
|
|
function e(e, t, n) {
|
|
void 0 === n && (n = 0),
|
|
(this.offset = t),
|
|
(this.length = n),
|
|
(this.parent = e);
|
|
}
|
|
return (
|
|
Object.defineProperty(e.prototype, 'children', {
|
|
get: function () {
|
|
return [];
|
|
},
|
|
enumerable: !1,
|
|
configurable: !0,
|
|
}),
|
|
(e.prototype.toString = function () {
|
|
return (
|
|
'type: ' +
|
|
this.type +
|
|
' (' +
|
|
this.offset +
|
|
'/' +
|
|
this.length +
|
|
')' +
|
|
(this.parent ? ' parent: {' + this.parent.toString() + '}' : '')
|
|
);
|
|
}),
|
|
e
|
|
);
|
|
})(),
|
|
Or = (function (e) {
|
|
function t(t, n) {
|
|
var r = e.call(this, t, n) || this;
|
|
return (r.type = 'null'), (r.value = null), r;
|
|
}
|
|
return Lr(t, e), t;
|
|
})(kr),
|
|
Ir = (function (e) {
|
|
function t(t, n, r) {
|
|
var i = e.call(this, t, r) || this;
|
|
return (i.type = 'boolean'), (i.value = n), i;
|
|
}
|
|
return Lr(t, e), t;
|
|
})(kr),
|
|
Mr = (function (e) {
|
|
function t(t, n) {
|
|
var r = e.call(this, t, n) || this;
|
|
return (r.type = 'array'), (r.items = []), r;
|
|
}
|
|
return (
|
|
Lr(t, e),
|
|
Object.defineProperty(t.prototype, 'children', {
|
|
get: function () {
|
|
return this.items;
|
|
},
|
|
enumerable: !1,
|
|
configurable: !0,
|
|
}),
|
|
t
|
|
);
|
|
})(kr),
|
|
Pr = (function (e) {
|
|
function t(t, n) {
|
|
var r = e.call(this, t, n) || this;
|
|
return (
|
|
(r.type = 'number'), (r.isInteger = !0), (r.value = Number.NaN), r
|
|
);
|
|
}
|
|
return Lr(t, e), t;
|
|
})(kr),
|
|
Rr = (function (e) {
|
|
function t(t, n, r) {
|
|
var i = e.call(this, t, n, r) || this;
|
|
return (i.type = 'string'), (i.value = ''), i;
|
|
}
|
|
return Lr(t, e), t;
|
|
})(kr),
|
|
Dr = (function (e) {
|
|
function t(t, n, r) {
|
|
var i = e.call(this, t, n) || this;
|
|
return (i.type = 'property'), (i.colonOffset = -1), (i.keyNode = r), i;
|
|
}
|
|
return (
|
|
Lr(t, e),
|
|
Object.defineProperty(t.prototype, 'children', {
|
|
get: function () {
|
|
return this.valueNode
|
|
? [this.keyNode, this.valueNode]
|
|
: [this.keyNode];
|
|
},
|
|
enumerable: !1,
|
|
configurable: !0,
|
|
}),
|
|
t
|
|
);
|
|
})(kr),
|
|
Fr = (function (e) {
|
|
function t(t, n) {
|
|
var r = e.call(this, t, n) || this;
|
|
return (r.type = 'object'), (r.properties = []), r;
|
|
}
|
|
return (
|
|
Lr(t, e),
|
|
Object.defineProperty(t.prototype, 'children', {
|
|
get: function () {
|
|
return this.properties;
|
|
},
|
|
enumerable: !1,
|
|
configurable: !0,
|
|
}),
|
|
t
|
|
);
|
|
})(kr);
|
|
function jr(e) {
|
|
return Dn(e) ? (e ? {} : { not: {} }) : e;
|
|
}
|
|
!(function (e) {
|
|
(e[(e.Key = 0)] = 'Key'), (e[(e.Enum = 1)] = 'Enum');
|
|
})(Nr || (Nr = {}));
|
|
var Ur = (function () {
|
|
function e(e, t) {
|
|
void 0 === e && (e = -1),
|
|
(this.focusOffset = e),
|
|
(this.exclude = t),
|
|
(this.schemas = []);
|
|
}
|
|
return (
|
|
(e.prototype.add = function (e) {
|
|
this.schemas.push(e);
|
|
}),
|
|
(e.prototype.merge = function (e) {
|
|
Array.prototype.push.apply(this.schemas, e.schemas);
|
|
}),
|
|
(e.prototype.include = function (e) {
|
|
return (
|
|
(-1 === this.focusOffset || Kr(e, this.focusOffset)) &&
|
|
e !== this.exclude
|
|
);
|
|
}),
|
|
(e.prototype.newSub = function () {
|
|
return new e(-1, this.exclude);
|
|
}),
|
|
e
|
|
);
|
|
})(),
|
|
Vr = (function () {
|
|
function e() {}
|
|
return (
|
|
Object.defineProperty(e.prototype, 'schemas', {
|
|
get: function () {
|
|
return [];
|
|
},
|
|
enumerable: !1,
|
|
configurable: !0,
|
|
}),
|
|
(e.prototype.add = function (e) {}),
|
|
(e.prototype.merge = function (e) {}),
|
|
(e.prototype.include = function (e) {
|
|
return !0;
|
|
}),
|
|
(e.prototype.newSub = function () {
|
|
return this;
|
|
}),
|
|
(e.instance = new e()),
|
|
e
|
|
);
|
|
})(),
|
|
$r = (function () {
|
|
function e() {
|
|
(this.problems = []),
|
|
(this.propertiesMatches = 0),
|
|
(this.propertiesValueMatches = 0),
|
|
(this.primaryValueMatches = 0),
|
|
(this.enumValueMatch = !1),
|
|
(this.enumValues = void 0);
|
|
}
|
|
return (
|
|
(e.prototype.hasProblems = function () {
|
|
return !!this.problems.length;
|
|
}),
|
|
(e.prototype.mergeAll = function (e) {
|
|
for (var t = 0, n = e; t < n.length; t++) {
|
|
var r = n[t];
|
|
this.merge(r);
|
|
}
|
|
}),
|
|
(e.prototype.merge = function (e) {
|
|
this.problems = this.problems.concat(e.problems);
|
|
}),
|
|
(e.prototype.mergeEnumValues = function (e) {
|
|
if (
|
|
!this.enumValueMatch &&
|
|
!e.enumValueMatch &&
|
|
this.enumValues &&
|
|
e.enumValues
|
|
) {
|
|
this.enumValues = this.enumValues.concat(e.enumValues);
|
|
for (var t = 0, n = this.problems; t < n.length; t++) {
|
|
var r = n[t];
|
|
r.code === gr.EnumValueMismatch &&
|
|
(r.message = wr(
|
|
'enumWarning',
|
|
'Value is not accepted. Valid values: {0}.',
|
|
this.enumValues
|
|
.map(function (e) {
|
|
return JSON.stringify(e);
|
|
})
|
|
.join(', ')
|
|
));
|
|
}
|
|
}
|
|
}),
|
|
(e.prototype.mergePropertyMatch = function (e) {
|
|
this.merge(e),
|
|
this.propertiesMatches++,
|
|
(e.enumValueMatch || (!e.hasProblems() && e.propertiesMatches)) &&
|
|
this.propertiesValueMatches++,
|
|
e.enumValueMatch &&
|
|
e.enumValues &&
|
|
1 === e.enumValues.length &&
|
|
this.primaryValueMatches++;
|
|
}),
|
|
(e.prototype.compare = function (e) {
|
|
var t = this.hasProblems();
|
|
return t !== e.hasProblems()
|
|
? t
|
|
? -1
|
|
: 1
|
|
: this.enumValueMatch !== e.enumValueMatch
|
|
? e.enumValueMatch
|
|
? -1
|
|
: 1
|
|
: this.primaryValueMatches !== e.primaryValueMatches
|
|
? this.primaryValueMatches - e.primaryValueMatches
|
|
: this.propertiesValueMatches !== e.propertiesValueMatches
|
|
? this.propertiesValueMatches - e.propertiesValueMatches
|
|
: this.propertiesMatches - e.propertiesMatches;
|
|
}),
|
|
e
|
|
);
|
|
})();
|
|
function Wr(e) {
|
|
return In(e);
|
|
}
|
|
function qr(e) {
|
|
return On(e);
|
|
}
|
|
function Kr(e, t, n) {
|
|
return (
|
|
void 0 === n && (n = !1),
|
|
(t >= e.offset && t < e.offset + e.length) ||
|
|
(n && t === e.offset + e.length)
|
|
);
|
|
}
|
|
var Br = (function () {
|
|
function e(e, t, n) {
|
|
void 0 === t && (t = []),
|
|
void 0 === n && (n = []),
|
|
(this.root = e),
|
|
(this.syntaxErrors = t),
|
|
(this.comments = n);
|
|
}
|
|
return (
|
|
(e.prototype.getNodeFromOffset = function (e, t) {
|
|
if ((void 0 === t && (t = !1), this.root)) return kn(this.root, e, t);
|
|
}),
|
|
(e.prototype.visit = function (e) {
|
|
if (this.root) {
|
|
var t = function (n) {
|
|
var r = e(n),
|
|
i = n.children;
|
|
if (Array.isArray(i))
|
|
for (var o = 0; o < i.length && r; o++) r = t(i[o]);
|
|
return r;
|
|
};
|
|
t(this.root);
|
|
}
|
|
}),
|
|
(e.prototype.validate = function (e, t) {
|
|
if (this.root && t) {
|
|
var n = new $r();
|
|
return (
|
|
Hr(this.root, t, n, Vr.instance),
|
|
n.problems.map(function (t) {
|
|
var n = ln.create(
|
|
e.positionAt(t.location.offset),
|
|
e.positionAt(t.location.offset + t.location.length)
|
|
);
|
|
return Cn.create(n, t.message, t.severity, t.code);
|
|
})
|
|
);
|
|
}
|
|
}),
|
|
(e.prototype.getMatchingSchemas = function (e, t, n) {
|
|
void 0 === t && (t = -1);
|
|
var r = new Ur(t, n);
|
|
return this.root && e && Hr(this.root, e, new $r(), r), r.schemas;
|
|
}),
|
|
e
|
|
);
|
|
})();
|
|
function Hr(e, t, n, r) {
|
|
if (e && r.include(e)) {
|
|
var i = e;
|
|
switch (i.type) {
|
|
case 'object':
|
|
!(function (e, t, n, r) {
|
|
for (
|
|
var i = Object.create(null), o = [], s = 0, a = e.properties;
|
|
s < a.length;
|
|
s++
|
|
)
|
|
(i[(U = (p = a[s]).keyNode.value)] = p.valueNode), o.push(U);
|
|
if (Array.isArray(t.required))
|
|
for (var u = 0, l = t.required; u < l.length; u++)
|
|
if (!i[(E = l[u])]) {
|
|
var c =
|
|
e.parent &&
|
|
'property' === e.parent.type &&
|
|
e.parent.keyNode,
|
|
h = c
|
|
? { offset: c.offset, length: c.length }
|
|
: { offset: e.offset, length: 1 };
|
|
n.problems.push({
|
|
location: h,
|
|
severity: yn.Warning,
|
|
message: wr(
|
|
'MissingRequiredPropWarning',
|
|
'Missing property "{0}".',
|
|
E
|
|
),
|
|
});
|
|
}
|
|
var f = function (e) {
|
|
for (var t = o.indexOf(e); t >= 0; )
|
|
o.splice(t, 1), (t = o.indexOf(e));
|
|
};
|
|
if (t.properties)
|
|
for (
|
|
var d = 0, m = Object.keys(t.properties);
|
|
d < m.length;
|
|
d++
|
|
) {
|
|
f((E = m[d]));
|
|
var g = t.properties[E];
|
|
if ((T = i[E]))
|
|
if (Dn(g))
|
|
if (g) n.propertiesMatches++, n.propertiesValueMatches++;
|
|
else {
|
|
var p = T.parent;
|
|
n.problems.push({
|
|
location: {
|
|
offset: p.keyNode.offset,
|
|
length: p.keyNode.length,
|
|
},
|
|
severity: yn.Warning,
|
|
message:
|
|
t.errorMessage ||
|
|
wr(
|
|
'DisallowedExtraPropWarning',
|
|
'Property {0} is not allowed.',
|
|
E
|
|
),
|
|
});
|
|
}
|
|
else Hr(T, g, (N = new $r()), r), n.mergePropertyMatch(N);
|
|
}
|
|
if (t.patternProperties)
|
|
for (
|
|
var v = 0, y = Object.keys(t.patternProperties);
|
|
v < y.length;
|
|
v++
|
|
)
|
|
for (
|
|
var b = y[v], C = new RegExp(b), _ = 0, S = o.slice(0);
|
|
_ < S.length;
|
|
_++
|
|
) {
|
|
var E = S[_];
|
|
C.test(E) &&
|
|
(f(E),
|
|
(T = i[E]) &&
|
|
(Dn((g = t.patternProperties[b]))
|
|
? g
|
|
? (n.propertiesMatches++, n.propertiesValueMatches++)
|
|
: ((p = T.parent),
|
|
n.problems.push({
|
|
location: {
|
|
offset: p.keyNode.offset,
|
|
length: p.keyNode.length,
|
|
},
|
|
severity: yn.Warning,
|
|
message:
|
|
t.errorMessage ||
|
|
wr(
|
|
'DisallowedExtraPropWarning',
|
|
'Property {0} is not allowed.',
|
|
E
|
|
),
|
|
}))
|
|
: (Hr(T, g, (N = new $r()), r),
|
|
n.mergePropertyMatch(N))));
|
|
}
|
|
if ('object' == typeof t.additionalProperties) {
|
|
for (var A = 0, x = o; A < x.length; A++)
|
|
if ((T = i[(E = x[A])])) {
|
|
var N = new $r();
|
|
Hr(T, t.additionalProperties, N, r), n.mergePropertyMatch(N);
|
|
}
|
|
} else if (!1 === t.additionalProperties && o.length > 0)
|
|
for (var L = 0, w = o; L < w.length; L++) {
|
|
var T;
|
|
(T = i[(E = w[L])]) &&
|
|
((p = T.parent),
|
|
n.problems.push({
|
|
location: {
|
|
offset: p.keyNode.offset,
|
|
length: p.keyNode.length,
|
|
},
|
|
severity: yn.Warning,
|
|
message:
|
|
t.errorMessage ||
|
|
wr(
|
|
'DisallowedExtraPropWarning',
|
|
'Property {0} is not allowed.',
|
|
E
|
|
),
|
|
}));
|
|
}
|
|
if (
|
|
(Pn(t.maxProperties) &&
|
|
e.properties.length > t.maxProperties &&
|
|
n.problems.push({
|
|
location: { offset: e.offset, length: e.length },
|
|
severity: yn.Warning,
|
|
message: wr(
|
|
'MaxPropWarning',
|
|
'Object has more properties than limit of {0}.',
|
|
t.maxProperties
|
|
),
|
|
}),
|
|
Pn(t.minProperties) &&
|
|
e.properties.length < t.minProperties &&
|
|
n.problems.push({
|
|
location: { offset: e.offset, length: e.length },
|
|
severity: yn.Warning,
|
|
message: wr(
|
|
'MinPropWarning',
|
|
'Object has fewer properties than the required number of {0}',
|
|
t.minProperties
|
|
),
|
|
}),
|
|
t.dependencies)
|
|
)
|
|
for (
|
|
var k = 0, O = Object.keys(t.dependencies);
|
|
k < O.length;
|
|
k++
|
|
)
|
|
if (i[(U = O[k])]) {
|
|
var I = t.dependencies[U];
|
|
if (Array.isArray(I))
|
|
for (var M = 0, P = I; M < P.length; M++) {
|
|
var R = P[M];
|
|
i[R]
|
|
? n.propertiesValueMatches++
|
|
: n.problems.push({
|
|
location: { offset: e.offset, length: e.length },
|
|
severity: yn.Warning,
|
|
message: wr(
|
|
'RequiredDependentPropWarning',
|
|
'Object is missing property {0} required by property {1}.',
|
|
R,
|
|
U
|
|
),
|
|
});
|
|
}
|
|
else
|
|
(g = jr(I)) &&
|
|
(Hr(e, g, (N = new $r()), r), n.mergePropertyMatch(N));
|
|
}
|
|
var D = jr(t.propertyNames);
|
|
if (D)
|
|
for (var F = 0, j = e.properties; F < j.length; F++) {
|
|
var U;
|
|
(U = j[F].keyNode) && Hr(U, D, n, Vr.instance);
|
|
}
|
|
})(i, t, n, r);
|
|
break;
|
|
case 'array':
|
|
!(function (e, t, n, r) {
|
|
if (Array.isArray(t.items)) {
|
|
for (var i = t.items, o = 0; o < i.length; o++) {
|
|
var s = jr(i[o]),
|
|
a = new $r();
|
|
(f = e.items[o])
|
|
? (Hr(f, s, a, r), n.mergePropertyMatch(a))
|
|
: e.items.length >= i.length && n.propertiesValueMatches++;
|
|
}
|
|
if (e.items.length > i.length)
|
|
if ('object' == typeof t.additionalItems)
|
|
for (var u = i.length; u < e.items.length; u++)
|
|
(a = new $r()),
|
|
Hr(e.items[u], t.additionalItems, a, r),
|
|
n.mergePropertyMatch(a);
|
|
else
|
|
!1 === t.additionalItems &&
|
|
n.problems.push({
|
|
location: { offset: e.offset, length: e.length },
|
|
severity: yn.Warning,
|
|
message: wr(
|
|
'additionalItemsWarning',
|
|
'Array has too many items according to schema. Expected {0} or fewer.',
|
|
i.length
|
|
),
|
|
});
|
|
} else {
|
|
var l = jr(t.items);
|
|
if (l)
|
|
for (var c = 0, h = e.items; c < h.length; c++) {
|
|
var f;
|
|
Hr((f = h[c]), l, (a = new $r()), r), n.mergePropertyMatch(a);
|
|
}
|
|
}
|
|
var d = jr(t.contains);
|
|
if (
|
|
(d &&
|
|
(e.items.some(function (e) {
|
|
var t = new $r();
|
|
return Hr(e, d, t, Vr.instance), !t.hasProblems();
|
|
}) ||
|
|
n.problems.push({
|
|
location: { offset: e.offset, length: e.length },
|
|
severity: yn.Warning,
|
|
message:
|
|
t.errorMessage ||
|
|
wr(
|
|
'requiredItemMissingWarning',
|
|
'Array does not contain required item.'
|
|
),
|
|
})),
|
|
Pn(t.minItems) &&
|
|
e.items.length < t.minItems &&
|
|
n.problems.push({
|
|
location: { offset: e.offset, length: e.length },
|
|
severity: yn.Warning,
|
|
message: wr(
|
|
'minItemsWarning',
|
|
'Array has too few items. Expected {0} or more.',
|
|
t.minItems
|
|
),
|
|
}),
|
|
Pn(t.maxItems) &&
|
|
e.items.length > t.maxItems &&
|
|
n.problems.push({
|
|
location: { offset: e.offset, length: e.length },
|
|
severity: yn.Warning,
|
|
message: wr(
|
|
'maxItemsWarning',
|
|
'Array has too many items. Expected {0} or fewer.',
|
|
t.maxItems
|
|
),
|
|
}),
|
|
!0 === t.uniqueItems)
|
|
) {
|
|
var m = Wr(e);
|
|
m.some(function (e, t) {
|
|
return t !== m.lastIndexOf(e);
|
|
}) &&
|
|
n.problems.push({
|
|
location: { offset: e.offset, length: e.length },
|
|
severity: yn.Warning,
|
|
message: wr(
|
|
'uniqueItemsWarning',
|
|
'Array has duplicate items.'
|
|
),
|
|
});
|
|
}
|
|
})(i, t, n, r);
|
|
break;
|
|
case 'string':
|
|
!(function (e, t, n, r) {
|
|
if (
|
|
(Pn(t.minLength) &&
|
|
e.value.length < t.minLength &&
|
|
n.problems.push({
|
|
location: { offset: e.offset, length: e.length },
|
|
severity: yn.Warning,
|
|
message: wr(
|
|
'minLengthWarning',
|
|
'String is shorter than the minimum length of {0}.',
|
|
t.minLength
|
|
),
|
|
}),
|
|
Pn(t.maxLength) &&
|
|
e.value.length > t.maxLength &&
|
|
n.problems.push({
|
|
location: { offset: e.offset, length: e.length },
|
|
severity: yn.Warning,
|
|
message: wr(
|
|
'maxLengthWarning',
|
|
'String is longer than the maximum length of {0}.',
|
|
t.maxLength
|
|
),
|
|
}),
|
|
'string' == typeof t.pattern &&
|
|
(new RegExp(t.pattern).test(e.value) ||
|
|
n.problems.push({
|
|
location: { offset: e.offset, length: e.length },
|
|
severity: yn.Warning,
|
|
message:
|
|
t.patternErrorMessage ||
|
|
t.errorMessage ||
|
|
wr(
|
|
'patternWarning',
|
|
'String does not match the pattern of "{0}".',
|
|
t.pattern
|
|
),
|
|
})),
|
|
t.format)
|
|
)
|
|
switch (t.format) {
|
|
case 'uri':
|
|
case 'uri-reference':
|
|
var i = void 0;
|
|
if (e.value) {
|
|
var o = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/.exec(
|
|
e.value
|
|
);
|
|
o
|
|
? o[2] ||
|
|
'uri' !== t.format ||
|
|
(i = wr(
|
|
'uriSchemeMissing',
|
|
'URI with a scheme is expected.'
|
|
))
|
|
: (i = wr('uriMissing', 'URI is expected.'));
|
|
} else i = wr('uriEmpty', 'URI expected.');
|
|
i &&
|
|
n.problems.push({
|
|
location: { offset: e.offset, length: e.length },
|
|
severity: yn.Warning,
|
|
message:
|
|
t.patternErrorMessage ||
|
|
t.errorMessage ||
|
|
wr('uriFormatWarning', 'String is not a URI: {0}', i),
|
|
});
|
|
break;
|
|
case 'color-hex':
|
|
case 'date-time':
|
|
case 'date':
|
|
case 'time':
|
|
case 'email':
|
|
var s = Tr[t.format];
|
|
(e.value && s.pattern.exec(e.value)) ||
|
|
n.problems.push({
|
|
location: { offset: e.offset, length: e.length },
|
|
severity: yn.Warning,
|
|
message:
|
|
t.patternErrorMessage ||
|
|
t.errorMessage ||
|
|
s.errorMessage,
|
|
});
|
|
}
|
|
})(i, t, n);
|
|
break;
|
|
case 'number':
|
|
!(function (e, t, n, r) {
|
|
var i = e.value;
|
|
function o(e) {
|
|
var t,
|
|
n = /^(-?\d+)(?:\.(\d+))?(?:e([-+]\d+))?$/.exec(e.toString());
|
|
return (
|
|
n && {
|
|
value: Number(n[1] + (n[2] || '')),
|
|
multiplier:
|
|
((null === (t = n[2]) || void 0 === t
|
|
? void 0
|
|
: t.length) || 0) - (parseInt(n[3]) || 0),
|
|
}
|
|
);
|
|
}
|
|
if (Pn(t.multipleOf)) {
|
|
var s = -1;
|
|
if (Number.isInteger(t.multipleOf)) s = i % t.multipleOf;
|
|
else {
|
|
var a = o(t.multipleOf),
|
|
u = o(i);
|
|
if (a && u) {
|
|
var l = Math.pow(10, Math.abs(u.multiplier - a.multiplier));
|
|
u.multiplier < a.multiplier ? (u.value *= l) : (a.value *= l),
|
|
(s = u.value % a.value);
|
|
}
|
|
}
|
|
0 !== s &&
|
|
n.problems.push({
|
|
location: { offset: e.offset, length: e.length },
|
|
severity: yn.Warning,
|
|
message: wr(
|
|
'multipleOfWarning',
|
|
'Value is not divisible by {0}.',
|
|
t.multipleOf
|
|
),
|
|
});
|
|
}
|
|
function c(e, t) {
|
|
return Pn(t) ? t : Dn(t) && t ? e : void 0;
|
|
}
|
|
function h(e, t) {
|
|
if (!Dn(t) || !t) return e;
|
|
}
|
|
var f = c(t.minimum, t.exclusiveMinimum);
|
|
Pn(f) &&
|
|
i <= f &&
|
|
n.problems.push({
|
|
location: { offset: e.offset, length: e.length },
|
|
severity: yn.Warning,
|
|
message: wr(
|
|
'exclusiveMinimumWarning',
|
|
'Value is below the exclusive minimum of {0}.',
|
|
f
|
|
),
|
|
});
|
|
var d = c(t.maximum, t.exclusiveMaximum);
|
|
Pn(d) &&
|
|
i >= d &&
|
|
n.problems.push({
|
|
location: { offset: e.offset, length: e.length },
|
|
severity: yn.Warning,
|
|
message: wr(
|
|
'exclusiveMaximumWarning',
|
|
'Value is above the exclusive maximum of {0}.',
|
|
d
|
|
),
|
|
});
|
|
var m = h(t.minimum, t.exclusiveMinimum);
|
|
Pn(m) &&
|
|
i < m &&
|
|
n.problems.push({
|
|
location: { offset: e.offset, length: e.length },
|
|
severity: yn.Warning,
|
|
message: wr(
|
|
'minimumWarning',
|
|
'Value is below the minimum of {0}.',
|
|
m
|
|
),
|
|
});
|
|
var g = h(t.maximum, t.exclusiveMaximum);
|
|
Pn(g) &&
|
|
i > g &&
|
|
n.problems.push({
|
|
location: { offset: e.offset, length: e.length },
|
|
severity: yn.Warning,
|
|
message: wr(
|
|
'maximumWarning',
|
|
'Value is above the maximum of {0}.',
|
|
g
|
|
),
|
|
});
|
|
})(i, t, n);
|
|
break;
|
|
case 'property':
|
|
return Hr(i.valueNode, t, n, r);
|
|
}
|
|
!(function () {
|
|
function e(e) {
|
|
return (
|
|
i.type === e ||
|
|
('integer' === e && 'number' === i.type && i.isInteger)
|
|
);
|
|
}
|
|
if (
|
|
(Array.isArray(t.type)
|
|
? t.type.some(e) ||
|
|
n.problems.push({
|
|
location: { offset: i.offset, length: i.length },
|
|
severity: yn.Warning,
|
|
message:
|
|
t.errorMessage ||
|
|
wr(
|
|
'typeArrayMismatchWarning',
|
|
'Incorrect type. Expected one of {0}.',
|
|
t.type.join(', ')
|
|
),
|
|
})
|
|
: t.type &&
|
|
(e(t.type) ||
|
|
n.problems.push({
|
|
location: { offset: i.offset, length: i.length },
|
|
severity: yn.Warning,
|
|
message:
|
|
t.errorMessage ||
|
|
wr(
|
|
'typeMismatchWarning',
|
|
'Incorrect type. Expected "{0}".',
|
|
t.type
|
|
),
|
|
})),
|
|
Array.isArray(t.allOf))
|
|
)
|
|
for (var o = 0, s = t.allOf; o < s.length; o++) {
|
|
var a = s[o];
|
|
Hr(i, jr(a), n, r);
|
|
}
|
|
var u = jr(t.not);
|
|
if (u) {
|
|
var l = new $r(),
|
|
c = r.newSub();
|
|
Hr(i, u, l, c),
|
|
l.hasProblems() ||
|
|
n.problems.push({
|
|
location: { offset: i.offset, length: i.length },
|
|
severity: yn.Warning,
|
|
message: wr(
|
|
'notSchemaWarning',
|
|
'Matches a schema that is not allowed.'
|
|
),
|
|
});
|
|
for (var h = 0, f = c.schemas; h < f.length; h++) {
|
|
var d = f[h];
|
|
(d.inverted = !d.inverted), r.add(d);
|
|
}
|
|
}
|
|
var m = function (e, t) {
|
|
for (var o = [], s = void 0, a = 0, u = e; a < u.length; a++) {
|
|
var l = jr(u[a]),
|
|
c = new $r(),
|
|
h = r.newSub();
|
|
if ((Hr(i, l, c, h), c.hasProblems() || o.push(l), s))
|
|
if (t || c.hasProblems() || s.validationResult.hasProblems()) {
|
|
var f = c.compare(s.validationResult);
|
|
f > 0
|
|
? (s = { schema: l, validationResult: c, matchingSchemas: h })
|
|
: 0 === f &&
|
|
(s.matchingSchemas.merge(h),
|
|
s.validationResult.mergeEnumValues(c));
|
|
} else
|
|
s.matchingSchemas.merge(h),
|
|
(s.validationResult.propertiesMatches += c.propertiesMatches),
|
|
(s.validationResult.propertiesValueMatches +=
|
|
c.propertiesValueMatches);
|
|
else s = { schema: l, validationResult: c, matchingSchemas: h };
|
|
}
|
|
return (
|
|
o.length > 1 &&
|
|
t &&
|
|
n.problems.push({
|
|
location: { offset: i.offset, length: 1 },
|
|
severity: yn.Warning,
|
|
message: wr(
|
|
'oneOfWarning',
|
|
'Matches multiple schemas when only one must validate.'
|
|
),
|
|
}),
|
|
s &&
|
|
(n.merge(s.validationResult),
|
|
(n.propertiesMatches += s.validationResult.propertiesMatches),
|
|
(n.propertiesValueMatches +=
|
|
s.validationResult.propertiesValueMatches),
|
|
r.merge(s.matchingSchemas)),
|
|
o.length
|
|
);
|
|
};
|
|
Array.isArray(t.anyOf) && m(t.anyOf, !1),
|
|
Array.isArray(t.oneOf) && m(t.oneOf, !0);
|
|
var g = function (e) {
|
|
var t = new $r(),
|
|
o = r.newSub();
|
|
Hr(i, jr(e), t, o),
|
|
n.merge(t),
|
|
(n.propertiesMatches += t.propertiesMatches),
|
|
(n.propertiesValueMatches += t.propertiesValueMatches),
|
|
r.merge(o);
|
|
},
|
|
p = jr(t.if);
|
|
if (
|
|
(p &&
|
|
(function (e, t, n) {
|
|
var o = jr(e),
|
|
s = new $r(),
|
|
a = r.newSub();
|
|
Hr(i, o, s, a),
|
|
r.merge(a),
|
|
s.hasProblems() ? n && g(n) : t && g(t);
|
|
})(p, jr(t.then), jr(t.else)),
|
|
Array.isArray(t.enum))
|
|
) {
|
|
for (var v = Wr(i), y = !1, b = 0, C = t.enum; b < C.length; b++) {
|
|
if (Mn(v, C[b])) {
|
|
y = !0;
|
|
break;
|
|
}
|
|
}
|
|
(n.enumValues = t.enum),
|
|
(n.enumValueMatch = y),
|
|
y ||
|
|
n.problems.push({
|
|
location: { offset: i.offset, length: i.length },
|
|
severity: yn.Warning,
|
|
code: gr.EnumValueMismatch,
|
|
message:
|
|
t.errorMessage ||
|
|
wr(
|
|
'enumWarning',
|
|
'Value is not accepted. Valid values: {0}.',
|
|
t.enum
|
|
.map(function (e) {
|
|
return JSON.stringify(e);
|
|
})
|
|
.join(', ')
|
|
),
|
|
});
|
|
}
|
|
Rn(t.const) &&
|
|
(Mn((v = Wr(i)), t.const)
|
|
? (n.enumValueMatch = !0)
|
|
: (n.problems.push({
|
|
location: { offset: i.offset, length: i.length },
|
|
severity: yn.Warning,
|
|
code: gr.EnumValueMismatch,
|
|
message:
|
|
t.errorMessage ||
|
|
wr(
|
|
'constWarning',
|
|
'Value must be {0}.',
|
|
JSON.stringify(t.const)
|
|
),
|
|
}),
|
|
(n.enumValueMatch = !1)),
|
|
(n.enumValues = [t.const])),
|
|
t.deprecationMessage &&
|
|
i.parent &&
|
|
n.problems.push({
|
|
location: { offset: i.parent.offset, length: i.parent.length },
|
|
severity: yn.Warning,
|
|
message: t.deprecationMessage,
|
|
});
|
|
})(),
|
|
r.add({ node: i, schema: t });
|
|
}
|
|
}
|
|
function Yr(e, t, n) {
|
|
if (null !== e && 'object' == typeof e) {
|
|
var r = t + '\t';
|
|
if (Array.isArray(e)) {
|
|
if (0 === e.length) return '[]';
|
|
for (var i = '[\n', o = 0; o < e.length; o++)
|
|
(i += r + Yr(e[o], r, n)),
|
|
o < e.length - 1 && (i += ','),
|
|
(i += '\n');
|
|
return i + (t + ']');
|
|
}
|
|
var s = Object.keys(e);
|
|
if (0 === s.length) return '{}';
|
|
for (i = '{\n', o = 0; o < s.length; o++) {
|
|
var a = s[o];
|
|
(i += r + JSON.stringify(a) + ': ' + Yr(e[a], r, n)),
|
|
o < s.length - 1 && (i += ','),
|
|
(i += '\n');
|
|
}
|
|
return i + (t + '}');
|
|
}
|
|
return n(e);
|
|
}
|
|
function Gr(e, t) {
|
|
var n = e.length - t.length;
|
|
return n > 0 ? e.lastIndexOf(t) === n : 0 === n && e === t;
|
|
}
|
|
function zr(e) {
|
|
return e
|
|
.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g, '\\$&')
|
|
.replace(/[\*]/g, '.*');
|
|
}
|
|
var Jr = Ar(),
|
|
Qr = (function () {
|
|
function e(e, t, n, r) {
|
|
void 0 === t && (t = []),
|
|
void 0 === n && (n = Promise),
|
|
void 0 === r && (r = {}),
|
|
(this.schemaService = e),
|
|
(this.contributions = t),
|
|
(this.promiseConstructor = n),
|
|
(this.clientCapabilities = r);
|
|
}
|
|
return (
|
|
(e.prototype.doResolve = function (e) {
|
|
for (var t = this.contributions.length - 1; t >= 0; t--) {
|
|
var n = this.contributions[t].resolveCompletion;
|
|
if (n) {
|
|
var r = n(e);
|
|
if (r) return r;
|
|
}
|
|
}
|
|
return this.promiseConstructor.resolve(e);
|
|
}),
|
|
(e.prototype.doComplete = function (e, t, n) {
|
|
var r = this,
|
|
i = { items: [], isIncomplete: !1 },
|
|
o = e.getText(),
|
|
s = e.offsetAt(t),
|
|
a = n.getNodeFromOffset(s, !0);
|
|
if (this.isInComment(e, a ? a.offset : 0, s))
|
|
return Promise.resolve(i);
|
|
if (a && s === a.offset + a.length && s > 0) {
|
|
var u = o[s - 1];
|
|
(('object' === a.type && '}' === u) ||
|
|
('array' === a.type && ']' === u)) &&
|
|
(a = a.parent);
|
|
}
|
|
var l,
|
|
c = this.getCurrentWord(e, s);
|
|
if (
|
|
!a ||
|
|
('string' !== a.type &&
|
|
'number' !== a.type &&
|
|
'boolean' !== a.type &&
|
|
'null' !== a.type)
|
|
) {
|
|
var h = s - c.length;
|
|
h > 0 && '"' === o[h - 1] && h--,
|
|
(l = ln.create(e.positionAt(h), t));
|
|
} else
|
|
l = ln.create(
|
|
e.positionAt(a.offset),
|
|
e.positionAt(a.offset + a.length)
|
|
);
|
|
var f = {},
|
|
d = {
|
|
add: function (e) {
|
|
var t = e.label,
|
|
n = f[t];
|
|
if (n) n.documentation || (n.documentation = e.documentation);
|
|
else {
|
|
if ((t = t.replace(/[\n]/g, '↵')).length > 60) {
|
|
var r = t.substr(0, 57).trim() + '...';
|
|
f[r] || (t = r);
|
|
}
|
|
l &&
|
|
void 0 !== e.insertText &&
|
|
(e.textEdit = Sn.replace(l, e.insertText)),
|
|
(e.label = t),
|
|
(f[t] = e),
|
|
i.items.push(e);
|
|
}
|
|
},
|
|
setAsIncomplete: function () {
|
|
i.isIncomplete = !0;
|
|
},
|
|
error: function (e) {
|
|
console.error(e);
|
|
},
|
|
log: function (e) {
|
|
console.log(e);
|
|
},
|
|
getNumberOfProposals: function () {
|
|
return i.items.length;
|
|
},
|
|
};
|
|
return this.schemaService
|
|
.getSchemaForResource(e.uri, n)
|
|
.then(function (t) {
|
|
var u = [],
|
|
h = !0,
|
|
m = '',
|
|
g = void 0;
|
|
if (a && 'string' === a.type) {
|
|
var p = a.parent;
|
|
p &&
|
|
'property' === p.type &&
|
|
p.keyNode === a &&
|
|
((h = !p.valueNode),
|
|
(g = p),
|
|
(m = o.substr(a.offset + 1, a.length - 2)),
|
|
p && (a = p.parent));
|
|
}
|
|
if (a && 'object' === a.type) {
|
|
if (a.offset === s) return i;
|
|
a.properties.forEach(function (e) {
|
|
(g && g === e) || (f[e.keyNode.value] = Bn.create('__'));
|
|
});
|
|
var v = '';
|
|
h && (v = r.evaluateSeparatorAfter(e, e.offsetAt(l.end))),
|
|
t
|
|
? r.getPropertyCompletions(t, n, a, h, v, d)
|
|
: r.getSchemaLessPropertyCompletions(n, a, m, d);
|
|
var y = qr(a);
|
|
r.contributions.forEach(function (t) {
|
|
var n = t.collectPropertyCompletions(
|
|
e.uri,
|
|
y,
|
|
c,
|
|
h,
|
|
'' === v,
|
|
d
|
|
);
|
|
n && u.push(n);
|
|
}),
|
|
!t &&
|
|
c.length > 0 &&
|
|
'"' !== o.charAt(s - c.length - 1) &&
|
|
(d.add({
|
|
kind: Wn.Property,
|
|
label: r.getLabelForValue(c),
|
|
insertText: r.getInsertTextForProperty(c, void 0, !1, v),
|
|
insertTextFormat: qn.Snippet,
|
|
documentation: '',
|
|
}),
|
|
d.setAsIncomplete());
|
|
}
|
|
var b = {};
|
|
return (
|
|
t
|
|
? r.getValueCompletions(t, n, a, s, e, d, b)
|
|
: r.getSchemaLessValueCompletions(n, a, s, e, d),
|
|
r.contributions.length > 0 &&
|
|
r.getContributedValueCompletions(n, a, s, e, d, u),
|
|
r.promiseConstructor.all(u).then(function () {
|
|
if (0 === d.getNumberOfProposals()) {
|
|
var t = s;
|
|
!a ||
|
|
('string' !== a.type &&
|
|
'number' !== a.type &&
|
|
'boolean' !== a.type &&
|
|
'null' !== a.type) ||
|
|
(t = a.offset + a.length);
|
|
var n = r.evaluateSeparatorAfter(e, t);
|
|
r.addFillerValueCompletions(b, n, d);
|
|
}
|
|
return i;
|
|
})
|
|
);
|
|
});
|
|
}),
|
|
(e.prototype.getPropertyCompletions = function (e, t, n, r, i, o) {
|
|
var s = this;
|
|
t.getMatchingSchemas(e.schema, n.offset).forEach(function (e) {
|
|
if (e.node === n && !e.inverted) {
|
|
var t = e.schema.properties;
|
|
t &&
|
|
Object.keys(t).forEach(function (e) {
|
|
var n = t[e];
|
|
if (
|
|
'object' == typeof n &&
|
|
!n.deprecationMessage &&
|
|
!n.doNotSuggest
|
|
) {
|
|
var a = {
|
|
kind: Wn.Property,
|
|
label: e,
|
|
insertText: s.getInsertTextForProperty(e, n, r, i),
|
|
insertTextFormat: qn.Snippet,
|
|
filterText: s.getFilterTextForValue(e),
|
|
documentation:
|
|
s.fromMarkup(n.markdownDescription) ||
|
|
n.description ||
|
|
'',
|
|
};
|
|
void 0 !== n.suggestSortText &&
|
|
(a.sortText = n.suggestSortText),
|
|
a.insertText &&
|
|
Gr(a.insertText, '$1' + i) &&
|
|
(a.command = {
|
|
title: 'Suggest',
|
|
command: 'editor.action.triggerSuggest',
|
|
}),
|
|
o.add(a);
|
|
}
|
|
});
|
|
var a = e.schema.propertyNames;
|
|
if (
|
|
'object' == typeof a &&
|
|
!a.deprecationMessage &&
|
|
!a.doNotSuggest
|
|
) {
|
|
var u = function (e, t) {
|
|
void 0 === t && (t = void 0);
|
|
var n = {
|
|
kind: Wn.Property,
|
|
label: e,
|
|
insertText: s.getInsertTextForProperty(e, void 0, r, i),
|
|
insertTextFormat: qn.Snippet,
|
|
filterText: s.getFilterTextForValue(e),
|
|
documentation:
|
|
t ||
|
|
s.fromMarkup(a.markdownDescription) ||
|
|
a.description ||
|
|
'',
|
|
};
|
|
void 0 !== a.suggestSortText &&
|
|
(n.sortText = a.suggestSortText),
|
|
n.insertText &&
|
|
Gr(n.insertText, '$1' + i) &&
|
|
(n.command = {
|
|
title: 'Suggest',
|
|
command: 'editor.action.triggerSuggest',
|
|
}),
|
|
o.add(n);
|
|
};
|
|
if (a.enum)
|
|
for (var l = 0; l < a.enum.length; l++) {
|
|
var c = void 0;
|
|
a.markdownEnumDescriptions &&
|
|
l < a.markdownEnumDescriptions.length
|
|
? (c = s.fromMarkup(a.markdownEnumDescriptions[l]))
|
|
: a.enumDescriptions &&
|
|
l < a.enumDescriptions.length &&
|
|
(c = a.enumDescriptions[l]),
|
|
u(a.enum[l], c);
|
|
}
|
|
a.const && u(a.const);
|
|
}
|
|
}
|
|
});
|
|
}),
|
|
(e.prototype.getSchemaLessPropertyCompletions = function (e, t, n, r) {
|
|
var i = this,
|
|
o = function (e) {
|
|
e.properties.forEach(function (e) {
|
|
var t = e.keyNode.value;
|
|
r.add({
|
|
kind: Wn.Property,
|
|
label: t,
|
|
insertText: i.getInsertTextForValue(t, ''),
|
|
insertTextFormat: qn.Snippet,
|
|
filterText: i.getFilterTextForValue(t),
|
|
documentation: '',
|
|
});
|
|
});
|
|
};
|
|
if (t.parent)
|
|
if ('property' === t.parent.type) {
|
|
var s = t.parent.keyNode.value;
|
|
e.visit(function (e) {
|
|
return (
|
|
'property' === e.type &&
|
|
e !== t.parent &&
|
|
e.keyNode.value === s &&
|
|
e.valueNode &&
|
|
'object' === e.valueNode.type &&
|
|
o(e.valueNode),
|
|
!0
|
|
);
|
|
});
|
|
} else
|
|
'array' === t.parent.type &&
|
|
t.parent.items.forEach(function (e) {
|
|
'object' === e.type && e !== t && o(e);
|
|
});
|
|
else
|
|
'object' === t.type &&
|
|
r.add({
|
|
kind: Wn.Property,
|
|
label: '$schema',
|
|
insertText: this.getInsertTextForProperty(
|
|
'$schema',
|
|
void 0,
|
|
!0,
|
|
''
|
|
),
|
|
insertTextFormat: qn.Snippet,
|
|
documentation: '',
|
|
filterText: this.getFilterTextForValue('$schema'),
|
|
});
|
|
}),
|
|
(e.prototype.getSchemaLessValueCompletions = function (e, t, n, r, i) {
|
|
var o = this,
|
|
s = n;
|
|
if (
|
|
(!t ||
|
|
('string' !== t.type &&
|
|
'number' !== t.type &&
|
|
'boolean' !== t.type &&
|
|
'null' !== t.type) ||
|
|
((s = t.offset + t.length), (t = t.parent)),
|
|
!t)
|
|
)
|
|
return (
|
|
i.add({
|
|
kind: this.getSuggestionKind('object'),
|
|
label: 'Empty object',
|
|
insertText: this.getInsertTextForValue({}, ''),
|
|
insertTextFormat: qn.Snippet,
|
|
documentation: '',
|
|
}),
|
|
void i.add({
|
|
kind: this.getSuggestionKind('array'),
|
|
label: 'Empty array',
|
|
insertText: this.getInsertTextForValue([], ''),
|
|
insertTextFormat: qn.Snippet,
|
|
documentation: '',
|
|
})
|
|
);
|
|
var a = this.evaluateSeparatorAfter(r, s),
|
|
u = function (e) {
|
|
e.parent &&
|
|
!Kr(e.parent, n, !0) &&
|
|
i.add({
|
|
kind: o.getSuggestionKind(e.type),
|
|
label: o.getLabelTextForMatchingNode(e, r),
|
|
insertText: o.getInsertTextForMatchingNode(e, r, a),
|
|
insertTextFormat: qn.Snippet,
|
|
documentation: '',
|
|
}),
|
|
'boolean' === e.type &&
|
|
o.addBooleanValueCompletion(!e.value, a, i);
|
|
};
|
|
if ('property' === t.type && n > (t.colonOffset || 0)) {
|
|
var l = t.valueNode;
|
|
if (
|
|
l &&
|
|
(n > l.offset + l.length ||
|
|
'object' === l.type ||
|
|
'array' === l.type)
|
|
)
|
|
return;
|
|
var c = t.keyNode.value;
|
|
e.visit(function (e) {
|
|
return (
|
|
'property' === e.type &&
|
|
e.keyNode.value === c &&
|
|
e.valueNode &&
|
|
u(e.valueNode),
|
|
!0
|
|
);
|
|
}),
|
|
'$schema' === c &&
|
|
t.parent &&
|
|
!t.parent.parent &&
|
|
this.addDollarSchemaCompletions(a, i);
|
|
}
|
|
if ('array' === t.type)
|
|
if (t.parent && 'property' === t.parent.type) {
|
|
var h = t.parent.keyNode.value;
|
|
e.visit(function (e) {
|
|
return (
|
|
'property' === e.type &&
|
|
e.keyNode.value === h &&
|
|
e.valueNode &&
|
|
'array' === e.valueNode.type &&
|
|
e.valueNode.items.forEach(u),
|
|
!0
|
|
);
|
|
});
|
|
} else t.items.forEach(u);
|
|
}),
|
|
(e.prototype.getValueCompletions = function (e, t, n, r, i, o, s) {
|
|
var a = r,
|
|
u = void 0,
|
|
l = void 0;
|
|
if (
|
|
(!n ||
|
|
('string' !== n.type &&
|
|
'number' !== n.type &&
|
|
'boolean' !== n.type &&
|
|
'null' !== n.type) ||
|
|
((a = n.offset + n.length), (l = n), (n = n.parent)),
|
|
n)
|
|
) {
|
|
if ('property' === n.type && r > (n.colonOffset || 0)) {
|
|
var c = n.valueNode;
|
|
if (c && r > c.offset + c.length) return;
|
|
(u = n.keyNode.value), (n = n.parent);
|
|
}
|
|
if (n && (void 0 !== u || 'array' === n.type)) {
|
|
for (
|
|
var h = this.evaluateSeparatorAfter(i, a),
|
|
f = 0,
|
|
d = t.getMatchingSchemas(e.schema, n.offset, l);
|
|
f < d.length;
|
|
f++
|
|
) {
|
|
var m = d[f];
|
|
if (m.node === n && !m.inverted && m.schema) {
|
|
if ('array' === n.type && m.schema.items)
|
|
if (Array.isArray(m.schema.items)) {
|
|
var g = this.findItemAtOffset(n, i, r);
|
|
g < m.schema.items.length &&
|
|
this.addSchemaValueCompletions(
|
|
m.schema.items[g],
|
|
h,
|
|
o,
|
|
s
|
|
);
|
|
} else
|
|
this.addSchemaValueCompletions(m.schema.items, h, o, s);
|
|
if (void 0 !== u) {
|
|
var p = !1;
|
|
if (
|
|
(m.schema.properties &&
|
|
(C = m.schema.properties[u]) &&
|
|
((p = !0), this.addSchemaValueCompletions(C, h, o, s)),
|
|
m.schema.patternProperties && !p)
|
|
)
|
|
for (
|
|
var v = 0, y = Object.keys(m.schema.patternProperties);
|
|
v < y.length;
|
|
v++
|
|
) {
|
|
var b = y[v];
|
|
if (new RegExp(b).test(u)) {
|
|
p = !0;
|
|
var C = m.schema.patternProperties[b];
|
|
this.addSchemaValueCompletions(C, h, o, s);
|
|
}
|
|
}
|
|
m.schema.additionalProperties &&
|
|
!p &&
|
|
((C = m.schema.additionalProperties),
|
|
this.addSchemaValueCompletions(C, h, o, s));
|
|
}
|
|
}
|
|
}
|
|
'$schema' !== u ||
|
|
n.parent ||
|
|
this.addDollarSchemaCompletions(h, o),
|
|
s.boolean &&
|
|
(this.addBooleanValueCompletion(!0, h, o),
|
|
this.addBooleanValueCompletion(!1, h, o)),
|
|
s.null && this.addNullValueCompletion(h, o);
|
|
}
|
|
} else this.addSchemaValueCompletions(e.schema, '', o, s);
|
|
}),
|
|
(e.prototype.getContributedValueCompletions = function (
|
|
e,
|
|
t,
|
|
n,
|
|
r,
|
|
i,
|
|
o
|
|
) {
|
|
if (t) {
|
|
if (
|
|
(('string' !== t.type &&
|
|
'number' !== t.type &&
|
|
'boolean' !== t.type &&
|
|
'null' !== t.type) ||
|
|
(t = t.parent),
|
|
t && 'property' === t.type && n > (t.colonOffset || 0))
|
|
) {
|
|
var s = t.keyNode.value,
|
|
a = t.valueNode;
|
|
if ((!a || n <= a.offset + a.length) && t.parent) {
|
|
var u = qr(t.parent);
|
|
this.contributions.forEach(function (e) {
|
|
var t = e.collectValueCompletions(r.uri, u, s, i);
|
|
t && o.push(t);
|
|
});
|
|
}
|
|
}
|
|
} else
|
|
this.contributions.forEach(function (e) {
|
|
var t = e.collectDefaultCompletions(r.uri, i);
|
|
t && o.push(t);
|
|
});
|
|
}),
|
|
(e.prototype.addSchemaValueCompletions = function (e, t, n, r) {
|
|
var i = this;
|
|
'object' == typeof e &&
|
|
(this.addEnumValueCompletions(e, t, n),
|
|
this.addDefaultValueCompletions(e, t, n),
|
|
this.collectTypes(e, r),
|
|
Array.isArray(e.allOf) &&
|
|
e.allOf.forEach(function (e) {
|
|
return i.addSchemaValueCompletions(e, t, n, r);
|
|
}),
|
|
Array.isArray(e.anyOf) &&
|
|
e.anyOf.forEach(function (e) {
|
|
return i.addSchemaValueCompletions(e, t, n, r);
|
|
}),
|
|
Array.isArray(e.oneOf) &&
|
|
e.oneOf.forEach(function (e) {
|
|
return i.addSchemaValueCompletions(e, t, n, r);
|
|
}));
|
|
}),
|
|
(e.prototype.addDefaultValueCompletions = function (e, t, n, r) {
|
|
var i = this;
|
|
void 0 === r && (r = 0);
|
|
var o = !1;
|
|
if (Rn(e.default)) {
|
|
for (var s = e.type, a = e.default, u = r; u > 0; u--)
|
|
(a = [a]), (s = 'array');
|
|
n.add({
|
|
kind: this.getSuggestionKind(s),
|
|
label: this.getLabelForValue(a),
|
|
insertText: this.getInsertTextForValue(a, t),
|
|
insertTextFormat: qn.Snippet,
|
|
detail: Jr('json.suggest.default', 'Default value'),
|
|
}),
|
|
(o = !0);
|
|
}
|
|
Array.isArray(e.examples) &&
|
|
e.examples.forEach(function (s) {
|
|
for (var a = e.type, u = s, l = r; l > 0; l--)
|
|
(u = [u]), (a = 'array');
|
|
n.add({
|
|
kind: i.getSuggestionKind(a),
|
|
label: i.getLabelForValue(u),
|
|
insertText: i.getInsertTextForValue(u, t),
|
|
insertTextFormat: qn.Snippet,
|
|
}),
|
|
(o = !0);
|
|
}),
|
|
Array.isArray(e.defaultSnippets) &&
|
|
e.defaultSnippets.forEach(function (s) {
|
|
var a,
|
|
u,
|
|
l = e.type,
|
|
c = s.body,
|
|
h = s.label;
|
|
if (Rn(c)) {
|
|
e.type;
|
|
for (var f = r; f > 0; f--) c = [c];
|
|
(a = i.getInsertTextForSnippetValue(c, t)),
|
|
(u = i.getFilterTextForSnippetValue(c)),
|
|
(h = h || i.getLabelForSnippetValue(c));
|
|
} else {
|
|
if ('string' != typeof s.bodyText) return;
|
|
var d = '',
|
|
m = '',
|
|
g = '';
|
|
for (f = r; f > 0; f--)
|
|
(d = d + g + '[\n'),
|
|
(m = m + '\n' + g + ']'),
|
|
(g += '\t'),
|
|
(l = 'array');
|
|
(a = d + g + s.bodyText.split('\n').join('\n' + g) + m + t),
|
|
(h = h || a),
|
|
(u = a.replace(/[\n]/g, ''));
|
|
}
|
|
n.add({
|
|
kind: i.getSuggestionKind(l),
|
|
label: h,
|
|
documentation:
|
|
i.fromMarkup(s.markdownDescription) || s.description,
|
|
insertText: a,
|
|
insertTextFormat: qn.Snippet,
|
|
filterText: u,
|
|
}),
|
|
(o = !0);
|
|
}),
|
|
!o &&
|
|
'object' == typeof e.items &&
|
|
!Array.isArray(e.items) &&
|
|
r < 5 &&
|
|
this.addDefaultValueCompletions(e.items, t, n, r + 1);
|
|
}),
|
|
(e.prototype.addEnumValueCompletions = function (e, t, n) {
|
|
if (
|
|
(Rn(e.const) &&
|
|
n.add({
|
|
kind: this.getSuggestionKind(e.type),
|
|
label: this.getLabelForValue(e.const),
|
|
insertText: this.getInsertTextForValue(e.const, t),
|
|
insertTextFormat: qn.Snippet,
|
|
documentation:
|
|
this.fromMarkup(e.markdownDescription) || e.description,
|
|
}),
|
|
Array.isArray(e.enum))
|
|
)
|
|
for (var r = 0, i = e.enum.length; r < i; r++) {
|
|
var o = e.enum[r],
|
|
s = this.fromMarkup(e.markdownDescription) || e.description;
|
|
e.markdownEnumDescriptions &&
|
|
r < e.markdownEnumDescriptions.length &&
|
|
this.doesSupportMarkdown()
|
|
? (s = this.fromMarkup(e.markdownEnumDescriptions[r]))
|
|
: e.enumDescriptions &&
|
|
r < e.enumDescriptions.length &&
|
|
(s = e.enumDescriptions[r]),
|
|
n.add({
|
|
kind: this.getSuggestionKind(e.type),
|
|
label: this.getLabelForValue(o),
|
|
insertText: this.getInsertTextForValue(o, t),
|
|
insertTextFormat: qn.Snippet,
|
|
documentation: s,
|
|
});
|
|
}
|
|
}),
|
|
(e.prototype.collectTypes = function (e, t) {
|
|
if (!Array.isArray(e.enum) && !Rn(e.const)) {
|
|
var n = e.type;
|
|
Array.isArray(n)
|
|
? n.forEach(function (e) {
|
|
return (t[e] = !0);
|
|
})
|
|
: n && (t[n] = !0);
|
|
}
|
|
}),
|
|
(e.prototype.addFillerValueCompletions = function (e, t, n) {
|
|
e.object &&
|
|
n.add({
|
|
kind: this.getSuggestionKind('object'),
|
|
label: '{}',
|
|
insertText: this.getInsertTextForGuessedValue({}, t),
|
|
insertTextFormat: qn.Snippet,
|
|
detail: Jr('defaults.object', 'New object'),
|
|
documentation: '',
|
|
}),
|
|
e.array &&
|
|
n.add({
|
|
kind: this.getSuggestionKind('array'),
|
|
label: '[]',
|
|
insertText: this.getInsertTextForGuessedValue([], t),
|
|
insertTextFormat: qn.Snippet,
|
|
detail: Jr('defaults.array', 'New array'),
|
|
documentation: '',
|
|
});
|
|
}),
|
|
(e.prototype.addBooleanValueCompletion = function (e, t, n) {
|
|
n.add({
|
|
kind: this.getSuggestionKind('boolean'),
|
|
label: e ? 'true' : 'false',
|
|
insertText: this.getInsertTextForValue(e, t),
|
|
insertTextFormat: qn.Snippet,
|
|
documentation: '',
|
|
});
|
|
}),
|
|
(e.prototype.addNullValueCompletion = function (e, t) {
|
|
t.add({
|
|
kind: this.getSuggestionKind('null'),
|
|
label: 'null',
|
|
insertText: 'null' + e,
|
|
insertTextFormat: qn.Snippet,
|
|
documentation: '',
|
|
});
|
|
}),
|
|
(e.prototype.addDollarSchemaCompletions = function (e, t) {
|
|
var n = this;
|
|
this.schemaService
|
|
.getRegisteredSchemaIds(function (e) {
|
|
return 'http' === e || 'https' === e;
|
|
})
|
|
.forEach(function (r) {
|
|
return t.add({
|
|
kind: Wn.Module,
|
|
label: n.getLabelForValue(r),
|
|
filterText: n.getFilterTextForValue(r),
|
|
insertText: n.getInsertTextForValue(r, e),
|
|
insertTextFormat: qn.Snippet,
|
|
documentation: '',
|
|
});
|
|
});
|
|
}),
|
|
(e.prototype.getLabelForValue = function (e) {
|
|
return JSON.stringify(e);
|
|
}),
|
|
(e.prototype.getFilterTextForValue = function (e) {
|
|
return JSON.stringify(e);
|
|
}),
|
|
(e.prototype.getFilterTextForSnippetValue = function (e) {
|
|
return JSON.stringify(e).replace(/\$\{\d+:([^}]+)\}|\$\d+/g, '$1');
|
|
}),
|
|
(e.prototype.getLabelForSnippetValue = function (e) {
|
|
return JSON.stringify(e).replace(/\$\{\d+:([^}]+)\}|\$\d+/g, '$1');
|
|
}),
|
|
(e.prototype.getInsertTextForPlainText = function (e) {
|
|
return e.replace(/[\\\$\}]/g, '\\$&');
|
|
}),
|
|
(e.prototype.getInsertTextForValue = function (e, t) {
|
|
var n = JSON.stringify(e, null, '\t');
|
|
return '{}' === n
|
|
? '{$1}' + t
|
|
: '[]' === n
|
|
? '[$1]' + t
|
|
: this.getInsertTextForPlainText(n + t);
|
|
}),
|
|
(e.prototype.getInsertTextForSnippetValue = function (e, t) {
|
|
return (
|
|
Yr(e, '', function (e) {
|
|
return 'string' == typeof e && '^' === e[0]
|
|
? e.substr(1)
|
|
: JSON.stringify(e);
|
|
}) + t
|
|
);
|
|
}),
|
|
(e.prototype.getInsertTextForGuessedValue = function (e, t) {
|
|
switch (typeof e) {
|
|
case 'object':
|
|
return null === e
|
|
? '${1:null}' + t
|
|
: this.getInsertTextForValue(e, t);
|
|
case 'string':
|
|
var n = JSON.stringify(e);
|
|
return (
|
|
(n = n.substr(1, n.length - 2)),
|
|
'"${1:' + (n = this.getInsertTextForPlainText(n)) + '}"' + t
|
|
);
|
|
case 'number':
|
|
case 'boolean':
|
|
return '${1:' + JSON.stringify(e) + '}' + t;
|
|
}
|
|
return this.getInsertTextForValue(e, t);
|
|
}),
|
|
(e.prototype.getSuggestionKind = function (e) {
|
|
if (Array.isArray(e)) {
|
|
var t = e;
|
|
e = t.length > 0 ? t[0] : void 0;
|
|
}
|
|
if (!e) return Wn.Value;
|
|
switch (e) {
|
|
case 'string':
|
|
return Wn.Value;
|
|
case 'object':
|
|
return Wn.Module;
|
|
case 'property':
|
|
return Wn.Property;
|
|
default:
|
|
return Wn.Value;
|
|
}
|
|
}),
|
|
(e.prototype.getLabelTextForMatchingNode = function (e, t) {
|
|
switch (e.type) {
|
|
case 'array':
|
|
return '[]';
|
|
case 'object':
|
|
return '{}';
|
|
default:
|
|
return t.getText().substr(e.offset, e.length);
|
|
}
|
|
}),
|
|
(e.prototype.getInsertTextForMatchingNode = function (e, t, n) {
|
|
switch (e.type) {
|
|
case 'array':
|
|
return this.getInsertTextForValue([], n);
|
|
case 'object':
|
|
return this.getInsertTextForValue({}, n);
|
|
default:
|
|
var r = t.getText().substr(e.offset, e.length) + n;
|
|
return this.getInsertTextForPlainText(r);
|
|
}
|
|
}),
|
|
(e.prototype.getInsertTextForProperty = function (e, t, n, r) {
|
|
var i = this.getInsertTextForValue(e, '');
|
|
if (!n) return i;
|
|
var o,
|
|
s = i + ': ',
|
|
a = 0;
|
|
if (t) {
|
|
if (Array.isArray(t.defaultSnippets)) {
|
|
if (1 === t.defaultSnippets.length) {
|
|
var u = t.defaultSnippets[0].body;
|
|
Rn(u) && (o = this.getInsertTextForSnippetValue(u, ''));
|
|
}
|
|
a += t.defaultSnippets.length;
|
|
}
|
|
if (
|
|
(t.enum &&
|
|
(o ||
|
|
1 !== t.enum.length ||
|
|
(o = this.getInsertTextForGuessedValue(t.enum[0], '')),
|
|
(a += t.enum.length)),
|
|
Rn(t.default) &&
|
|
(o || (o = this.getInsertTextForGuessedValue(t.default, '')),
|
|
a++),
|
|
Array.isArray(t.examples) &&
|
|
t.examples.length &&
|
|
(o ||
|
|
(o = this.getInsertTextForGuessedValue(t.examples[0], '')),
|
|
(a += t.examples.length)),
|
|
0 === a)
|
|
) {
|
|
var l = Array.isArray(t.type) ? t.type[0] : t.type;
|
|
switch (
|
|
(l ||
|
|
(t.properties ? (l = 'object') : t.items && (l = 'array')),
|
|
l)
|
|
) {
|
|
case 'boolean':
|
|
o = '$1';
|
|
break;
|
|
case 'string':
|
|
o = '"$1"';
|
|
break;
|
|
case 'object':
|
|
o = '{$1}';
|
|
break;
|
|
case 'array':
|
|
o = '[$1]';
|
|
break;
|
|
case 'number':
|
|
case 'integer':
|
|
o = '${1:0}';
|
|
break;
|
|
case 'null':
|
|
o = '${1:null}';
|
|
break;
|
|
default:
|
|
return i;
|
|
}
|
|
}
|
|
}
|
|
return (!o || a > 1) && (o = '$1'), s + o + r;
|
|
}),
|
|
(e.prototype.getCurrentWord = function (e, t) {
|
|
for (
|
|
var n = t - 1, r = e.getText();
|
|
n >= 0 && -1 === ' \t\n\r\v":{[,]}'.indexOf(r.charAt(n));
|
|
|
|
)
|
|
n--;
|
|
return r.substring(n + 1, t);
|
|
}),
|
|
(e.prototype.evaluateSeparatorAfter = function (e, t) {
|
|
var n = wn(e.getText(), !0);
|
|
switch ((n.setPosition(t), n.scan())) {
|
|
case 5:
|
|
case 2:
|
|
case 4:
|
|
case 17:
|
|
return '';
|
|
default:
|
|
return ',';
|
|
}
|
|
}),
|
|
(e.prototype.findItemAtOffset = function (e, t, n) {
|
|
for (
|
|
var r = wn(t.getText(), !0), i = e.items, o = i.length - 1;
|
|
o >= 0;
|
|
o--
|
|
) {
|
|
var s = i[o];
|
|
if (n > s.offset + s.length)
|
|
return (
|
|
r.setPosition(s.offset + s.length),
|
|
5 === r.scan() && n >= r.getTokenOffset() + r.getTokenLength()
|
|
? o + 1
|
|
: o
|
|
);
|
|
if (n >= s.offset) return o;
|
|
}
|
|
return 0;
|
|
}),
|
|
(e.prototype.isInComment = function (e, t, n) {
|
|
var r = wn(e.getText(), !1);
|
|
r.setPosition(t);
|
|
for (
|
|
var i = r.scan();
|
|
17 !== i && r.getTokenOffset() + r.getTokenLength() < n;
|
|
|
|
)
|
|
i = r.scan();
|
|
return (12 === i || 13 === i) && r.getTokenOffset() <= n;
|
|
}),
|
|
(e.prototype.fromMarkup = function (e) {
|
|
if (e && this.doesSupportMarkdown())
|
|
return { kind: Vn.Markdown, value: e };
|
|
}),
|
|
(e.prototype.doesSupportMarkdown = function () {
|
|
if (!Rn(this.supportsMarkdown)) {
|
|
var e =
|
|
this.clientCapabilities.textDocument &&
|
|
this.clientCapabilities.textDocument.completion;
|
|
this.supportsMarkdown =
|
|
e &&
|
|
e.completionItem &&
|
|
Array.isArray(e.completionItem.documentationFormat) &&
|
|
-1 !== e.completionItem.documentationFormat.indexOf(Vn.Markdown);
|
|
}
|
|
return this.supportsMarkdown;
|
|
}),
|
|
(e.prototype.doesSupportsCommitCharacters = function () {
|
|
if (!Rn(this.supportsCommitCharacters)) {
|
|
var e =
|
|
this.clientCapabilities.textDocument &&
|
|
this.clientCapabilities.textDocument.completion;
|
|
this.supportsCommitCharacters =
|
|
e &&
|
|
e.completionItem &&
|
|
!!e.completionItem.commitCharactersSupport;
|
|
}
|
|
return this.supportsCommitCharacters;
|
|
}),
|
|
e
|
|
);
|
|
})(),
|
|
Zr = (function () {
|
|
function e(e, t, n) {
|
|
void 0 === t && (t = []),
|
|
(this.schemaService = e),
|
|
(this.contributions = t),
|
|
(this.promise = n || Promise);
|
|
}
|
|
return (
|
|
(e.prototype.doHover = function (e, t, n) {
|
|
var r = e.offsetAt(t),
|
|
i = n.getNodeFromOffset(r);
|
|
if (
|
|
!i ||
|
|
(('object' === i.type || 'array' === i.type) &&
|
|
r > i.offset + 1 &&
|
|
r < i.offset + i.length - 1)
|
|
)
|
|
return this.promise.resolve(null);
|
|
var o = i;
|
|
if ('string' === i.type) {
|
|
var s = i.parent;
|
|
if (
|
|
s &&
|
|
'property' === s.type &&
|
|
s.keyNode === i &&
|
|
!(i = s.valueNode)
|
|
)
|
|
return this.promise.resolve(null);
|
|
}
|
|
for (
|
|
var a = ln.create(
|
|
e.positionAt(o.offset),
|
|
e.positionAt(o.offset + o.length)
|
|
),
|
|
u = function (e) {
|
|
return { contents: e, range: a };
|
|
},
|
|
l = qr(i),
|
|
c = this.contributions.length - 1;
|
|
c >= 0;
|
|
c--
|
|
) {
|
|
var h = this.contributions[c].getInfoContribution(e.uri, l);
|
|
if (h)
|
|
return h.then(function (e) {
|
|
return u(e);
|
|
});
|
|
}
|
|
return this.schemaService
|
|
.getSchemaForResource(e.uri, n)
|
|
.then(function (e) {
|
|
if (e && i) {
|
|
var t = n.getMatchingSchemas(e.schema, i.offset),
|
|
r = void 0,
|
|
o = void 0,
|
|
s = void 0,
|
|
a = void 0;
|
|
t.every(function (e) {
|
|
if (
|
|
e.node === i &&
|
|
!e.inverted &&
|
|
e.schema &&
|
|
((r = r || e.schema.title),
|
|
(o =
|
|
o ||
|
|
e.schema.markdownDescription ||
|
|
Xr(e.schema.description)),
|
|
e.schema.enum)
|
|
) {
|
|
var t = e.schema.enum.indexOf(Wr(i));
|
|
e.schema.markdownEnumDescriptions
|
|
? (s = e.schema.markdownEnumDescriptions[t])
|
|
: e.schema.enumDescriptions &&
|
|
(s = Xr(e.schema.enumDescriptions[t])),
|
|
s &&
|
|
'string' != typeof (a = e.schema.enum[t]) &&
|
|
(a = JSON.stringify(a));
|
|
}
|
|
return !0;
|
|
});
|
|
var l = '';
|
|
return (
|
|
r && (l = Xr(r)),
|
|
o && (l.length > 0 && (l += '\n\n'), (l += o)),
|
|
s &&
|
|
(l.length > 0 && (l += '\n\n'),
|
|
(l +=
|
|
'`' +
|
|
((-1 !== (c = a).indexOf('`') ? '`` ' + c + ' ``' : c) +
|
|
'`: ') +
|
|
s)),
|
|
u([l])
|
|
);
|
|
}
|
|
var c;
|
|
return null;
|
|
});
|
|
}),
|
|
e
|
|
);
|
|
})();
|
|
function Xr(e) {
|
|
if (e)
|
|
return e
|
|
.replace(/([^\n\r])(\r?\n)([^\n\r])/gm, '$1\n\n$3')
|
|
.replace(/[\\`*_{}[\]()#+\-.!]/g, '\\$&');
|
|
}
|
|
var ei,
|
|
ti,
|
|
ni = (function () {
|
|
var e = function (t, n) {
|
|
return (e =
|
|
Object.setPrototypeOf ||
|
|
({ __proto__: [] } instanceof Array &&
|
|
function (e, t) {
|
|
e.__proto__ = t;
|
|
}) ||
|
|
function (e, t) {
|
|
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]);
|
|
})(t, n);
|
|
};
|
|
return function (t, n) {
|
|
function r() {
|
|
this.constructor = t;
|
|
}
|
|
e(t, n),
|
|
(t.prototype =
|
|
null === n
|
|
? Object.create(n)
|
|
: ((r.prototype = n.prototype), new r()));
|
|
};
|
|
})();
|
|
if ('object' == typeof process) ti = 'win32' === process.platform;
|
|
else if ('object' == typeof navigator) {
|
|
var ri = navigator.userAgent;
|
|
ti = ri.indexOf('Windows') >= 0;
|
|
}
|
|
var ii = /^\w[\w\d+.-]*$/,
|
|
oi = /^\//,
|
|
si = /^\/\//,
|
|
ai = '',
|
|
ui = '/',
|
|
li = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,
|
|
ci = (function () {
|
|
function e(e, t, n, r, i, o) {
|
|
void 0 === o && (o = !1),
|
|
'object' == typeof e
|
|
? ((this.scheme = e.scheme || ai),
|
|
(this.authority = e.authority || ai),
|
|
(this.path = e.path || ai),
|
|
(this.query = e.query || ai),
|
|
(this.fragment = e.fragment || ai))
|
|
: ((this.scheme = (function (e, t) {
|
|
return e || t ? e : 'file';
|
|
})(e, o)),
|
|
(this.authority = t || ai),
|
|
(this.path = (function (e, t) {
|
|
switch (e) {
|
|
case 'https':
|
|
case 'http':
|
|
case 'file':
|
|
t ? t[0] !== ui && (t = ui + t) : (t = ui);
|
|
}
|
|
return t;
|
|
})(this.scheme, n || ai)),
|
|
(this.query = r || ai),
|
|
(this.fragment = i || ai),
|
|
(function (e, t) {
|
|
if (!e.scheme && t)
|
|
throw new Error(
|
|
'[UriError]: Scheme is missing: {scheme: "", authority: "' +
|
|
e.authority +
|
|
'", path: "' +
|
|
e.path +
|
|
'", query: "' +
|
|
e.query +
|
|
'", fragment: "' +
|
|
e.fragment +
|
|
'"}'
|
|
);
|
|
if (e.scheme && !ii.test(e.scheme))
|
|
throw new Error(
|
|
'[UriError]: Scheme contains illegal characters.'
|
|
);
|
|
if (e.path)
|
|
if (e.authority) {
|
|
if (!oi.test(e.path))
|
|
throw new Error(
|
|
'[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character'
|
|
);
|
|
} else if (si.test(e.path))
|
|
throw new Error(
|
|
'[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")'
|
|
);
|
|
})(this, o));
|
|
}
|
|
return (
|
|
(e.isUri = function (t) {
|
|
return (
|
|
t instanceof e ||
|
|
(!!t &&
|
|
'string' == typeof t.authority &&
|
|
'string' == typeof t.fragment &&
|
|
'string' == typeof t.path &&
|
|
'string' == typeof t.query &&
|
|
'string' == typeof t.scheme &&
|
|
'function' == typeof t.fsPath &&
|
|
'function' == typeof t.with &&
|
|
'function' == typeof t.toString)
|
|
);
|
|
}),
|
|
Object.defineProperty(e.prototype, 'fsPath', {
|
|
get: function () {
|
|
return pi(this, !1);
|
|
},
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
}),
|
|
(e.prototype.with = function (e) {
|
|
if (!e) return this;
|
|
var t = e.scheme,
|
|
n = e.authority,
|
|
r = e.path,
|
|
i = e.query,
|
|
o = e.fragment;
|
|
return (
|
|
void 0 === t ? (t = this.scheme) : null === t && (t = ai),
|
|
void 0 === n ? (n = this.authority) : null === n && (n = ai),
|
|
void 0 === r ? (r = this.path) : null === r && (r = ai),
|
|
void 0 === i ? (i = this.query) : null === i && (i = ai),
|
|
void 0 === o ? (o = this.fragment) : null === o && (o = ai),
|
|
t === this.scheme &&
|
|
n === this.authority &&
|
|
r === this.path &&
|
|
i === this.query &&
|
|
o === this.fragment
|
|
? this
|
|
: new fi(t, n, r, i, o)
|
|
);
|
|
}),
|
|
(e.parse = function (e, t) {
|
|
void 0 === t && (t = !1);
|
|
var n = li.exec(e);
|
|
return n
|
|
? new fi(
|
|
n[2] || ai,
|
|
Ci(n[4] || ai),
|
|
Ci(n[5] || ai),
|
|
Ci(n[7] || ai),
|
|
Ci(n[9] || ai),
|
|
t
|
|
)
|
|
: new fi(ai, ai, ai, ai, ai);
|
|
}),
|
|
(e.file = function (e) {
|
|
var t = ai;
|
|
if ((ti && (e = e.replace(/\\/g, ui)), e[0] === ui && e[1] === ui)) {
|
|
var n = e.indexOf(ui, 2);
|
|
-1 === n
|
|
? ((t = e.substring(2)), (e = ui))
|
|
: ((t = e.substring(2, n)), (e = e.substring(n) || ui));
|
|
}
|
|
return new fi('file', t, e, ai, ai);
|
|
}),
|
|
(e.from = function (e) {
|
|
return new fi(e.scheme, e.authority, e.path, e.query, e.fragment);
|
|
}),
|
|
(e.prototype.toString = function (e) {
|
|
return void 0 === e && (e = !1), vi(this, e);
|
|
}),
|
|
(e.prototype.toJSON = function () {
|
|
return this;
|
|
}),
|
|
(e.revive = function (t) {
|
|
if (t) {
|
|
if (t instanceof e) return t;
|
|
var n = new fi(t);
|
|
return (
|
|
(n._formatted = t.external),
|
|
(n._fsPath = t._sep === hi ? t.fsPath : null),
|
|
n
|
|
);
|
|
}
|
|
return t;
|
|
}),
|
|
e
|
|
);
|
|
})(),
|
|
hi = ti ? 1 : void 0,
|
|
fi = (function (e) {
|
|
function t() {
|
|
var t = (null !== e && e.apply(this, arguments)) || this;
|
|
return (t._formatted = null), (t._fsPath = null), t;
|
|
}
|
|
return (
|
|
ni(t, e),
|
|
Object.defineProperty(t.prototype, 'fsPath', {
|
|
get: function () {
|
|
return this._fsPath || (this._fsPath = pi(this, !1)), this._fsPath;
|
|
},
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
}),
|
|
(t.prototype.toString = function (e) {
|
|
return (
|
|
void 0 === e && (e = !1),
|
|
e
|
|
? vi(this, !0)
|
|
: (this._formatted || (this._formatted = vi(this, !1)),
|
|
this._formatted)
|
|
);
|
|
}),
|
|
(t.prototype.toJSON = function () {
|
|
var e = { $mid: 1 };
|
|
return (
|
|
this._fsPath && ((e.fsPath = this._fsPath), (e._sep = hi)),
|
|
this._formatted && (e.external = this._formatted),
|
|
this.path && (e.path = this.path),
|
|
this.scheme && (e.scheme = this.scheme),
|
|
this.authority && (e.authority = this.authority),
|
|
this.query && (e.query = this.query),
|
|
this.fragment && (e.fragment = this.fragment),
|
|
e
|
|
);
|
|
}),
|
|
t
|
|
);
|
|
})(ci),
|
|
di =
|
|
(((ei = {})[58] = '%3A'),
|
|
(ei[47] = '%2F'),
|
|
(ei[63] = '%3F'),
|
|
(ei[35] = '%23'),
|
|
(ei[91] = '%5B'),
|
|
(ei[93] = '%5D'),
|
|
(ei[64] = '%40'),
|
|
(ei[33] = '%21'),
|
|
(ei[36] = '%24'),
|
|
(ei[38] = '%26'),
|
|
(ei[39] = '%27'),
|
|
(ei[40] = '%28'),
|
|
(ei[41] = '%29'),
|
|
(ei[42] = '%2A'),
|
|
(ei[43] = '%2B'),
|
|
(ei[44] = '%2C'),
|
|
(ei[59] = '%3B'),
|
|
(ei[61] = '%3D'),
|
|
(ei[32] = '%20'),
|
|
ei);
|
|
function mi(e, t) {
|
|
for (var n = void 0, r = -1, i = 0; i < e.length; i++) {
|
|
var o = e.charCodeAt(i);
|
|
if (
|
|
(o >= 97 && o <= 122) ||
|
|
(o >= 65 && o <= 90) ||
|
|
(o >= 48 && o <= 57) ||
|
|
45 === o ||
|
|
46 === o ||
|
|
95 === o ||
|
|
126 === o ||
|
|
(t && 47 === o)
|
|
)
|
|
-1 !== r && ((n += encodeURIComponent(e.substring(r, i))), (r = -1)),
|
|
void 0 !== n && (n += e.charAt(i));
|
|
else {
|
|
void 0 === n && (n = e.substr(0, i));
|
|
var s = di[o];
|
|
void 0 !== s
|
|
? (-1 !== r &&
|
|
((n += encodeURIComponent(e.substring(r, i))), (r = -1)),
|
|
(n += s))
|
|
: -1 === r && (r = i);
|
|
}
|
|
}
|
|
return (
|
|
-1 !== r && (n += encodeURIComponent(e.substring(r))),
|
|
void 0 !== n ? n : e
|
|
);
|
|
}
|
|
function gi(e) {
|
|
for (var t = void 0, n = 0; n < e.length; n++) {
|
|
var r = e.charCodeAt(n);
|
|
35 === r || 63 === r
|
|
? (void 0 === t && (t = e.substr(0, n)), (t += di[r]))
|
|
: void 0 !== t && (t += e[n]);
|
|
}
|
|
return void 0 !== t ? t : e;
|
|
}
|
|
function pi(e, t) {
|
|
var n;
|
|
return (
|
|
(n =
|
|
e.authority && e.path.length > 1 && 'file' === e.scheme
|
|
? '//' + e.authority + e.path
|
|
: 47 === e.path.charCodeAt(0) &&
|
|
((e.path.charCodeAt(1) >= 65 && e.path.charCodeAt(1) <= 90) ||
|
|
(e.path.charCodeAt(1) >= 97 && e.path.charCodeAt(1) <= 122)) &&
|
|
58 === e.path.charCodeAt(2)
|
|
? t
|
|
? e.path.substr(1)
|
|
: e.path[1].toLowerCase() + e.path.substr(2)
|
|
: e.path),
|
|
ti && (n = n.replace(/\//g, '\\')),
|
|
n
|
|
);
|
|
}
|
|
function vi(e, t) {
|
|
var n = t ? gi : mi,
|
|
r = '',
|
|
i = e.scheme,
|
|
o = e.authority,
|
|
s = e.path,
|
|
a = e.query,
|
|
u = e.fragment;
|
|
if (
|
|
(i && ((r += i), (r += ':')),
|
|
(o || 'file' === i) && ((r += ui), (r += ui)),
|
|
o)
|
|
) {
|
|
var l = o.indexOf('@');
|
|
if (-1 !== l) {
|
|
var c = o.substr(0, l);
|
|
(o = o.substr(l + 1)),
|
|
-1 === (l = c.indexOf(':'))
|
|
? (r += n(c, !1))
|
|
: ((r += n(c.substr(0, l), !1)),
|
|
(r += ':'),
|
|
(r += n(c.substr(l + 1), !1))),
|
|
(r += '@');
|
|
}
|
|
-1 === (l = (o = o.toLowerCase()).indexOf(':'))
|
|
? (r += n(o, !1))
|
|
: ((r += n(o.substr(0, l), !1)), (r += o.substr(l)));
|
|
}
|
|
if (s) {
|
|
if (s.length >= 3 && 47 === s.charCodeAt(0) && 58 === s.charCodeAt(2))
|
|
(h = s.charCodeAt(1)) >= 65 &&
|
|
h <= 90 &&
|
|
(s = '/' + String.fromCharCode(h + 32) + ':' + s.substr(3));
|
|
else if (s.length >= 2 && 58 === s.charCodeAt(1)) {
|
|
var h;
|
|
(h = s.charCodeAt(0)) >= 65 &&
|
|
h <= 90 &&
|
|
(s = String.fromCharCode(h + 32) + ':' + s.substr(2));
|
|
}
|
|
r += n(s, !0);
|
|
}
|
|
return (
|
|
a && ((r += '?'), (r += n(a, !1))),
|
|
u && ((r += '#'), (r += t ? u : mi(u, !1))),
|
|
r
|
|
);
|
|
}
|
|
function yi(e) {
|
|
try {
|
|
return decodeURIComponent(e);
|
|
} catch (t) {
|
|
return e.length > 3 ? e.substr(0, 3) + yi(e.substr(3)) : e;
|
|
}
|
|
}
|
|
var bi = /(%[0-9A-Za-z][0-9A-Za-z])+/g;
|
|
function Ci(e) {
|
|
return e.match(bi)
|
|
? e.replace(bi, function (e) {
|
|
return yi(e);
|
|
})
|
|
: e;
|
|
}
|
|
var _i = Ar(),
|
|
Si = (function () {
|
|
function e(e, t) {
|
|
(this.patternRegExps = []), (this.isInclude = []);
|
|
try {
|
|
for (var n = 0, r = e; n < r.length; n++) {
|
|
var i = r[n],
|
|
o = '!' !== i[0];
|
|
o || (i = i.substring(1)),
|
|
this.patternRegExps.push(new RegExp(zr(i) + '$')),
|
|
this.isInclude.push(o);
|
|
}
|
|
this.uris = t;
|
|
} catch (e) {
|
|
(this.patternRegExps.length = 0),
|
|
(this.isInclude.length = 0),
|
|
(this.uris = []);
|
|
}
|
|
}
|
|
return (
|
|
(e.prototype.matchesPattern = function (e) {
|
|
for (var t = !1, n = 0; n < this.patternRegExps.length; n++)
|
|
this.patternRegExps[n].test(e) && (t = this.isInclude[n]);
|
|
return t;
|
|
}),
|
|
(e.prototype.getURIs = function () {
|
|
return this.uris;
|
|
}),
|
|
e
|
|
);
|
|
})(),
|
|
Ei = (function () {
|
|
function e(e, t, n) {
|
|
(this.service = e),
|
|
(this.url = t),
|
|
(this.dependencies = {}),
|
|
n &&
|
|
(this.unresolvedSchema = this.service.promise.resolve(new Ai(n)));
|
|
}
|
|
return (
|
|
(e.prototype.getUnresolvedSchema = function () {
|
|
return (
|
|
this.unresolvedSchema ||
|
|
(this.unresolvedSchema = this.service.loadSchema(this.url)),
|
|
this.unresolvedSchema
|
|
);
|
|
}),
|
|
(e.prototype.getResolvedSchema = function () {
|
|
var e = this;
|
|
return (
|
|
this.resolvedSchema ||
|
|
(this.resolvedSchema = this.getUnresolvedSchema().then(function (
|
|
t
|
|
) {
|
|
return e.service.resolveSchemaContent(t, e.url, e.dependencies);
|
|
})),
|
|
this.resolvedSchema
|
|
);
|
|
}),
|
|
(e.prototype.clearSchema = function () {
|
|
(this.resolvedSchema = void 0),
|
|
(this.unresolvedSchema = void 0),
|
|
(this.dependencies = {});
|
|
}),
|
|
e
|
|
);
|
|
})(),
|
|
Ai = function (e, t) {
|
|
void 0 === t && (t = []), (this.schema = e), (this.errors = t);
|
|
},
|
|
xi = (function () {
|
|
function e(e, t) {
|
|
void 0 === t && (t = []), (this.schema = e), (this.errors = t);
|
|
}
|
|
return (
|
|
(e.prototype.getSection = function (e) {
|
|
var t = this.getSectionRecursive(e, this.schema);
|
|
if (t) return jr(t);
|
|
}),
|
|
(e.prototype.getSectionRecursive = function (e, t) {
|
|
if (!t || 'boolean' == typeof t || 0 === e.length) return t;
|
|
var n = e.shift();
|
|
if (t.properties && (t.properties[n], 1))
|
|
return this.getSectionRecursive(e, t.properties[n]);
|
|
if (t.patternProperties)
|
|
for (
|
|
var r = 0, i = Object.keys(t.patternProperties);
|
|
r < i.length;
|
|
r++
|
|
) {
|
|
var o = i[r];
|
|
if (new RegExp(o).test(n))
|
|
return this.getSectionRecursive(e, t.patternProperties[o]);
|
|
}
|
|
else {
|
|
if ('object' == typeof t.additionalProperties)
|
|
return this.getSectionRecursive(e, t.additionalProperties);
|
|
if (n.match('[0-9]+'))
|
|
if (Array.isArray(t.items)) {
|
|
var s = parseInt(n, 10);
|
|
if (!isNaN(s) && t.items[s])
|
|
return this.getSectionRecursive(e, t.items[s]);
|
|
} else if (t.items) return this.getSectionRecursive(e, t.items);
|
|
}
|
|
}),
|
|
e
|
|
);
|
|
})(),
|
|
Ni = (function () {
|
|
function e(e, t, n) {
|
|
(this.contextService = t),
|
|
(this.requestService = e),
|
|
(this.promiseConstructor = n || Promise),
|
|
(this.callOnDispose = []),
|
|
(this.contributionSchemas = {}),
|
|
(this.contributionAssociations = []),
|
|
(this.schemasById = {}),
|
|
(this.filePatternAssociations = []),
|
|
(this.registeredSchemasIds = {});
|
|
}
|
|
return (
|
|
(e.prototype.getRegisteredSchemaIds = function (e) {
|
|
return Object.keys(this.registeredSchemasIds).filter(function (t) {
|
|
var n = ci.parse(t).scheme;
|
|
return 'schemaservice' !== n && (!e || e(n));
|
|
});
|
|
}),
|
|
Object.defineProperty(e.prototype, 'promise', {
|
|
get: function () {
|
|
return this.promiseConstructor;
|
|
},
|
|
enumerable: !1,
|
|
configurable: !0,
|
|
}),
|
|
(e.prototype.dispose = function () {
|
|
for (; this.callOnDispose.length > 0; ) this.callOnDispose.pop()();
|
|
}),
|
|
(e.prototype.onResourceChange = function (e) {
|
|
for (
|
|
var t = this,
|
|
n = !1,
|
|
r = [(e = wi(e))],
|
|
i = Object.keys(this.schemasById).map(function (e) {
|
|
return t.schemasById[e];
|
|
});
|
|
r.length;
|
|
|
|
)
|
|
for (var o = r.pop(), s = 0; s < i.length; s++) {
|
|
var a = i[s];
|
|
a &&
|
|
(a.url === o || a.dependencies[o]) &&
|
|
(a.url !== o && r.push(a.url),
|
|
a.clearSchema(),
|
|
(i[s] = void 0),
|
|
(n = !0));
|
|
}
|
|
return n;
|
|
}),
|
|
(e.prototype.setSchemaContributions = function (e) {
|
|
if (e.schemas) {
|
|
var t = e.schemas;
|
|
for (var n in t) {
|
|
var r = wi(n);
|
|
this.contributionSchemas[r] = this.addSchemaHandle(r, t[n]);
|
|
}
|
|
}
|
|
if (Array.isArray(e.schemaAssociations))
|
|
for (var i = 0, o = e.schemaAssociations; i < o.length; i++) {
|
|
var s = o[i],
|
|
a = s.uris.map(wi),
|
|
u = this.addFilePatternAssociation(s.pattern, a);
|
|
this.contributionAssociations.push(u);
|
|
}
|
|
}),
|
|
(e.prototype.addSchemaHandle = function (e, t) {
|
|
var n = new Ei(this, e, t);
|
|
return (this.schemasById[e] = n), n;
|
|
}),
|
|
(e.prototype.getOrAddSchemaHandle = function (e, t) {
|
|
return this.schemasById[e] || this.addSchemaHandle(e, t);
|
|
}),
|
|
(e.prototype.addFilePatternAssociation = function (e, t) {
|
|
var n = new Si(e, t);
|
|
return this.filePatternAssociations.push(n), n;
|
|
}),
|
|
(e.prototype.registerExternalSchema = function (e, t, n) {
|
|
var r = wi(e);
|
|
return (
|
|
(this.registeredSchemasIds[r] = !0),
|
|
(this.cachedSchemaForResource = void 0),
|
|
t && this.addFilePatternAssociation(t, [e]),
|
|
n ? this.addSchemaHandle(r, n) : this.getOrAddSchemaHandle(r)
|
|
);
|
|
}),
|
|
(e.prototype.clearExternalSchemas = function () {
|
|
for (var e in ((this.schemasById = {}),
|
|
(this.filePatternAssociations = []),
|
|
(this.registeredSchemasIds = {}),
|
|
(this.cachedSchemaForResource = void 0),
|
|
this.contributionSchemas))
|
|
(this.schemasById[e] = this.contributionSchemas[e]),
|
|
(this.registeredSchemasIds[e] = !0);
|
|
for (
|
|
var t = 0, n = this.contributionAssociations;
|
|
t < n.length;
|
|
t++
|
|
) {
|
|
var r = n[t];
|
|
this.filePatternAssociations.push(r);
|
|
}
|
|
}),
|
|
(e.prototype.getResolvedSchema = function (e) {
|
|
var t = wi(e),
|
|
n = this.schemasById[t];
|
|
return n ? n.getResolvedSchema() : this.promise.resolve(void 0);
|
|
}),
|
|
(e.prototype.loadSchema = function (e) {
|
|
if (!this.requestService) {
|
|
var t = _i(
|
|
'json.schema.norequestservice',
|
|
"Unable to load schema from '{0}'. No schema request service available",
|
|
Ti(e)
|
|
);
|
|
return this.promise.resolve(new Ai({}, [t]));
|
|
}
|
|
return this.requestService(e).then(
|
|
function (t) {
|
|
if (!t) {
|
|
var n = _i(
|
|
'json.schema.nocontent',
|
|
"Unable to load schema from '{0}': No content.",
|
|
Ti(e)
|
|
);
|
|
return new Ai({}, [n]);
|
|
}
|
|
var r,
|
|
i = [];
|
|
r = Tn(t, i);
|
|
var o = i.length
|
|
? [
|
|
_i(
|
|
'json.schema.invalidFormat',
|
|
"Unable to parse content from '{0}': Parse error at offset {1}.",
|
|
Ti(e),
|
|
i[0].offset
|
|
),
|
|
]
|
|
: [];
|
|
return new Ai(r, o);
|
|
},
|
|
function (t) {
|
|
var n = t.toString(),
|
|
r = t.toString().split('Error: ');
|
|
return (
|
|
r.length > 1 && (n = r[1]),
|
|
Gr(n, '.') && (n = n.substr(0, n.length - 1)),
|
|
new Ai({}, [
|
|
_i(
|
|
'json.schema.nocontent',
|
|
"Unable to load schema from '{0}': {1}.",
|
|
Ti(e),
|
|
n
|
|
),
|
|
])
|
|
);
|
|
}
|
|
);
|
|
}),
|
|
(e.prototype.resolveSchemaContent = function (e, t, n) {
|
|
var r = this,
|
|
i = e.errors.slice(0),
|
|
o = e.schema;
|
|
if (o.$schema) {
|
|
var s = wi(o.$schema);
|
|
if ('http://json-schema.org/draft-03/schema' === s)
|
|
return this.promise.resolve(
|
|
new xi({}, [
|
|
_i(
|
|
'json.schema.draft03.notsupported',
|
|
'Draft-03 schemas are not supported.'
|
|
),
|
|
])
|
|
);
|
|
'https://json-schema.org/draft/2019-09/schema' === s &&
|
|
i.push(
|
|
_i(
|
|
'json.schema.draft201909.notsupported',
|
|
'Draft 2019-09 schemas are not yet fully supported.'
|
|
)
|
|
);
|
|
}
|
|
var a = this.contextService,
|
|
u = function (e, t, n, r) {
|
|
var o = r ? decodeURIComponent(r) : void 0,
|
|
s = (function (e, t) {
|
|
if (!t) return e;
|
|
var n = e;
|
|
return (
|
|
'/' === t[0] && (t = t.substr(1)),
|
|
t.split('/').some(function (e) {
|
|
return !(n = n[e]);
|
|
}),
|
|
n
|
|
);
|
|
})(t, o);
|
|
if (s)
|
|
for (var a in s)
|
|
s.hasOwnProperty(a) && !e.hasOwnProperty(a) && (e[a] = s[a]);
|
|
else
|
|
i.push(
|
|
_i(
|
|
'json.schema.invalidref',
|
|
"$ref '{0}' in '{1}' can not be resolved.",
|
|
o,
|
|
n
|
|
)
|
|
);
|
|
},
|
|
l = function (e, t, n, o, s) {
|
|
a && !/^\w+:\/\/.*/.test(t) && (t = a.resolveRelativePath(t, o)),
|
|
(t = wi(t));
|
|
var l = r.getOrAddSchemaHandle(t);
|
|
return l.getUnresolvedSchema().then(function (r) {
|
|
if (((s[t] = !0), r.errors.length)) {
|
|
var o = n ? t + '#' + n : t;
|
|
i.push(
|
|
_i(
|
|
'json.schema.problemloadingref',
|
|
"Problems loading reference '{0}': {1}",
|
|
o,
|
|
r.errors[0]
|
|
)
|
|
);
|
|
}
|
|
return u(e, r.schema, t, n), c(e, r.schema, t, l.dependencies);
|
|
});
|
|
},
|
|
c = function (e, t, n, i) {
|
|
if (!e || 'object' != typeof e) return Promise.resolve(null);
|
|
for (
|
|
var o = [e],
|
|
s = [],
|
|
a = [],
|
|
c = function (e) {
|
|
for (var r = []; e.$ref; ) {
|
|
var s = e.$ref,
|
|
c = s.split('#', 2);
|
|
if ((delete e.$ref, c[0].length > 0))
|
|
return void a.push(l(e, c[0], c[1], n, i));
|
|
-1 === r.indexOf(s) && (u(e, t, n, c[1]), r.push(s));
|
|
}
|
|
!(function () {
|
|
for (var e = [], t = 0; t < arguments.length; t++)
|
|
e[t] = arguments[t];
|
|
for (var n = 0, r = e; n < r.length; n++) {
|
|
var i = r[n];
|
|
'object' == typeof i && o.push(i);
|
|
}
|
|
})(
|
|
e.items,
|
|
e.additionalItems,
|
|
e.additionalProperties,
|
|
e.not,
|
|
e.contains,
|
|
e.propertyNames,
|
|
e.if,
|
|
e.then,
|
|
e.else
|
|
),
|
|
(function () {
|
|
for (var e = [], t = 0; t < arguments.length; t++)
|
|
e[t] = arguments[t];
|
|
for (var n = 0, r = e; n < r.length; n++) {
|
|
var i = r[n];
|
|
if ('object' == typeof i)
|
|
for (var s in i) {
|
|
var a = i[s];
|
|
'object' == typeof a && o.push(a);
|
|
}
|
|
}
|
|
})(
|
|
e.definitions,
|
|
e.properties,
|
|
e.patternProperties,
|
|
e.dependencies
|
|
),
|
|
(function () {
|
|
for (var e = [], t = 0; t < arguments.length; t++)
|
|
e[t] = arguments[t];
|
|
for (var n = 0, r = e; n < r.length; n++) {
|
|
var i = r[n];
|
|
if (Array.isArray(i))
|
|
for (var s = 0, a = i; s < a.length; s++) {
|
|
var u = a[s];
|
|
'object' == typeof u && o.push(u);
|
|
}
|
|
}
|
|
})(e.anyOf, e.allOf, e.oneOf, e.items);
|
|
};
|
|
o.length;
|
|
|
|
) {
|
|
var h = o.pop();
|
|
s.indexOf(h) >= 0 || (s.push(h), c(h));
|
|
}
|
|
return r.promise.all(a);
|
|
};
|
|
return c(o, o, t, n).then(function (e) {
|
|
return new xi(o, i);
|
|
});
|
|
}),
|
|
(e.prototype.getSchemaForResource = function (e, t) {
|
|
if (t && t.root && 'object' === t.root.type) {
|
|
var n = t.root.properties.filter(function (e) {
|
|
return (
|
|
'$schema' === e.keyNode.value &&
|
|
e.valueNode &&
|
|
'string' === e.valueNode.type
|
|
);
|
|
});
|
|
if (n.length > 0) {
|
|
var r = n[0].valueNode;
|
|
if (r && 'string' === r.type) {
|
|
var i = Wr(r);
|
|
if (
|
|
(i &&
|
|
(function (e, t) {
|
|
if (e.length < '.'.length) return !1;
|
|
for (var n = 0; n < '.'.length; n++)
|
|
if (e[n] !== '.'[n]) return !1;
|
|
return !0;
|
|
})(i) &&
|
|
this.contextService &&
|
|
(i = this.contextService.resolveRelativePath(i, e)),
|
|
i)
|
|
) {
|
|
var o = wi(i);
|
|
return this.getOrAddSchemaHandle(o).getResolvedSchema();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (
|
|
this.cachedSchemaForResource &&
|
|
this.cachedSchemaForResource.resource === e
|
|
)
|
|
return this.cachedSchemaForResource.resolvedSchema;
|
|
for (
|
|
var s = Object.create(null),
|
|
a = [],
|
|
u = 0,
|
|
l = this.filePatternAssociations;
|
|
u < l.length;
|
|
u++
|
|
) {
|
|
var c = l[u];
|
|
if (c.matchesPattern(e))
|
|
for (var h = 0, f = c.getURIs(); h < f.length; h++) {
|
|
var d = f[h];
|
|
s[d] || (a.push(d), (s[d] = !0));
|
|
}
|
|
}
|
|
var m =
|
|
a.length > 0
|
|
? this.createCombinedSchema(e, a).getResolvedSchema()
|
|
: this.promise.resolve(void 0);
|
|
return (
|
|
(this.cachedSchemaForResource = { resource: e, resolvedSchema: m }),
|
|
m
|
|
);
|
|
}),
|
|
(e.prototype.createCombinedSchema = function (e, t) {
|
|
if (1 === t.length) return this.getOrAddSchemaHandle(t[0]);
|
|
var n = 'schemaservice://combinedSchema/' + encodeURIComponent(e),
|
|
r = {
|
|
allOf: t.map(function (e) {
|
|
return { $ref: e };
|
|
}),
|
|
};
|
|
return this.addSchemaHandle(n, r);
|
|
}),
|
|
(e.prototype.getMatchingSchemas = function (e, t, n) {
|
|
if (n) {
|
|
var r = n.id || 'schemaservice://untitled/matchingSchemas/' + Li++;
|
|
return this.resolveSchemaContent(new Ai(n), r, {}).then(function (
|
|
e
|
|
) {
|
|
return t.getMatchingSchemas(e.schema).filter(function (e) {
|
|
return !e.inverted;
|
|
});
|
|
});
|
|
}
|
|
return this.getSchemaForResource(e.uri, t).then(function (e) {
|
|
return e
|
|
? t.getMatchingSchemas(e.schema).filter(function (e) {
|
|
return !e.inverted;
|
|
})
|
|
: [];
|
|
});
|
|
}),
|
|
e
|
|
);
|
|
})(),
|
|
Li = 0;
|
|
function wi(e) {
|
|
try {
|
|
return ci.parse(e).toString();
|
|
} catch (t) {
|
|
return e;
|
|
}
|
|
}
|
|
function Ti(e) {
|
|
try {
|
|
var t = ci.parse(e);
|
|
if ('file' === t.scheme) return t.fsPath;
|
|
} catch (e) {}
|
|
return e;
|
|
}
|
|
var ki = Ar(),
|
|
Oi = (function () {
|
|
function e(e, t) {
|
|
(this.jsonSchemaService = e),
|
|
(this.promise = t),
|
|
(this.validationEnabled = !0);
|
|
}
|
|
return (
|
|
(e.prototype.configure = function (e) {
|
|
e &&
|
|
((this.validationEnabled = e.validate),
|
|
(this.commentSeverity = e.allowComments ? void 0 : yn.Error));
|
|
}),
|
|
(e.prototype.doValidation = function (e, t, n, r) {
|
|
var i = this;
|
|
if (!this.validationEnabled) return this.promise.resolve([]);
|
|
var o = [],
|
|
s = {},
|
|
a = function (e) {
|
|
var t =
|
|
e.range.start.line +
|
|
' ' +
|
|
e.range.start.character +
|
|
' ' +
|
|
e.message;
|
|
s[t] || ((s[t] = !0), o.push(e));
|
|
},
|
|
u = function (r) {
|
|
var s = n ? Ri(n.trailingCommas) : yn.Error,
|
|
u = n ? Ri(n.comments) : i.commentSeverity;
|
|
if (r) {
|
|
if (r.errors.length && t.root) {
|
|
var l = t.root,
|
|
c = 'object' === l.type ? l.properties[0] : void 0;
|
|
if (c && '$schema' === c.keyNode.value) {
|
|
var h = c.valueNode || c,
|
|
f = ln.create(
|
|
e.positionAt(h.offset),
|
|
e.positionAt(h.offset + h.length)
|
|
);
|
|
a(
|
|
Cn.create(
|
|
f,
|
|
r.errors[0],
|
|
yn.Warning,
|
|
gr.SchemaResolveError
|
|
)
|
|
);
|
|
} else
|
|
(f = ln.create(
|
|
e.positionAt(l.offset),
|
|
e.positionAt(l.offset + 1)
|
|
)),
|
|
a(
|
|
Cn.create(
|
|
f,
|
|
r.errors[0],
|
|
yn.Warning,
|
|
gr.SchemaResolveError
|
|
)
|
|
);
|
|
} else {
|
|
var d = t.validate(e, r.schema);
|
|
d && d.forEach(a);
|
|
}
|
|
Mi(r.schema) && (u = void 0), Pi(r.schema) && (s = void 0);
|
|
}
|
|
for (var m = 0, g = t.syntaxErrors; m < g.length; m++) {
|
|
var p = g[m];
|
|
if (p.code === gr.TrailingComma) {
|
|
if ('number' != typeof s) continue;
|
|
p.severity = s;
|
|
}
|
|
a(p);
|
|
}
|
|
if ('number' == typeof u) {
|
|
var v = ki(
|
|
'InvalidCommentToken',
|
|
'Comments are not permitted in JSON.'
|
|
);
|
|
t.comments.forEach(function (e) {
|
|
a(Cn.create(e, v, u, gr.CommentNotPermitted));
|
|
});
|
|
}
|
|
return o;
|
|
};
|
|
if (r) {
|
|
var l = r.id || 'schemaservice://untitled/' + Ii++;
|
|
return this.jsonSchemaService
|
|
.resolveSchemaContent(new Ai(r), l, {})
|
|
.then(function (e) {
|
|
return u(e);
|
|
});
|
|
}
|
|
return this.jsonSchemaService
|
|
.getSchemaForResource(e.uri, t)
|
|
.then(function (e) {
|
|
return u(e);
|
|
});
|
|
}),
|
|
e
|
|
);
|
|
})(),
|
|
Ii = 0;
|
|
function Mi(e) {
|
|
if (e && 'object' == typeof e) {
|
|
if (Dn(e.allowComments)) return e.allowComments;
|
|
if (e.allOf)
|
|
for (var t = 0, n = e.allOf; t < n.length; t++) {
|
|
var r = Mi(n[t]);
|
|
if (Dn(r)) return r;
|
|
}
|
|
}
|
|
}
|
|
function Pi(e) {
|
|
if (e && 'object' == typeof e) {
|
|
if (Dn(e.allowTrailingCommas)) return e.allowTrailingCommas;
|
|
var t = e;
|
|
if (Dn(t.allowsTrailingCommas)) return t.allowsTrailingCommas;
|
|
if (e.allOf)
|
|
for (var n = 0, r = e.allOf; n < r.length; n++) {
|
|
var i = Pi(r[n]);
|
|
if (Dn(i)) return i;
|
|
}
|
|
}
|
|
}
|
|
function Ri(e) {
|
|
switch (e) {
|
|
case 'error':
|
|
return yn.Error;
|
|
case 'warning':
|
|
return yn.Warning;
|
|
case 'ignore':
|
|
return;
|
|
}
|
|
}
|
|
function Di(e) {
|
|
return e < 48
|
|
? 0
|
|
: e <= 57
|
|
? e - 48
|
|
: (e < 97 && (e += 32), e >= 97 && e <= 102 ? e - 97 + 10 : 0);
|
|
}
|
|
function Fi(e) {
|
|
if ('#' === e[0])
|
|
switch (e.length) {
|
|
case 4:
|
|
return {
|
|
red: (17 * Di(e.charCodeAt(1))) / 255,
|
|
green: (17 * Di(e.charCodeAt(2))) / 255,
|
|
blue: (17 * Di(e.charCodeAt(3))) / 255,
|
|
alpha: 1,
|
|
};
|
|
case 5:
|
|
return {
|
|
red: (17 * Di(e.charCodeAt(1))) / 255,
|
|
green: (17 * Di(e.charCodeAt(2))) / 255,
|
|
blue: (17 * Di(e.charCodeAt(3))) / 255,
|
|
alpha: (17 * Di(e.charCodeAt(4))) / 255,
|
|
};
|
|
case 7:
|
|
return {
|
|
red: (16 * Di(e.charCodeAt(1)) + Di(e.charCodeAt(2))) / 255,
|
|
green: (16 * Di(e.charCodeAt(3)) + Di(e.charCodeAt(4))) / 255,
|
|
blue: (16 * Di(e.charCodeAt(5)) + Di(e.charCodeAt(6))) / 255,
|
|
alpha: 1,
|
|
};
|
|
case 9:
|
|
return {
|
|
red: (16 * Di(e.charCodeAt(1)) + Di(e.charCodeAt(2))) / 255,
|
|
green: (16 * Di(e.charCodeAt(3)) + Di(e.charCodeAt(4))) / 255,
|
|
blue: (16 * Di(e.charCodeAt(5)) + Di(e.charCodeAt(6))) / 255,
|
|
alpha: (16 * Di(e.charCodeAt(7)) + Di(e.charCodeAt(8))) / 255,
|
|
};
|
|
}
|
|
}
|
|
var ji = (function () {
|
|
function e(e) {
|
|
this.schemaService = e;
|
|
}
|
|
return (
|
|
(e.prototype.findDocumentSymbols = function (e, t, n) {
|
|
var r = this;
|
|
void 0 === n && (n = { resultLimit: Number.MAX_VALUE });
|
|
var i = t.root;
|
|
if (!i) return [];
|
|
var o = n.resultLimit || Number.MAX_VALUE,
|
|
s = e.uri;
|
|
if (
|
|
('vscode://defaultsettings/keybindings.json' === s ||
|
|
Gr(s.toLowerCase(), '/user/keybindings.json')) &&
|
|
'array' === i.type
|
|
) {
|
|
for (var a = [], u = 0, l = i.items; u < l.length; u++) {
|
|
var c = l[u];
|
|
if ('object' === c.type)
|
|
for (var h = 0, f = c.properties; h < f.length; h++) {
|
|
var d = f[h];
|
|
if ('key' === d.keyNode.value && d.valueNode) {
|
|
var m = cn.create(e.uri, Ui(e, c));
|
|
if (
|
|
(a.push({
|
|
name: Wr(d.valueNode),
|
|
kind: Xn.Function,
|
|
location: m,
|
|
}),
|
|
--o <= 0)
|
|
)
|
|
return (
|
|
n &&
|
|
n.onResultLimitExceeded &&
|
|
n.onResultLimitExceeded(s),
|
|
a
|
|
);
|
|
}
|
|
}
|
|
}
|
|
return a;
|
|
}
|
|
for (
|
|
var g = [{ node: i, containerName: '' }],
|
|
p = 0,
|
|
v = !1,
|
|
y = [],
|
|
b = function (t, n) {
|
|
'array' === t.type
|
|
? t.items.forEach(function (e) {
|
|
e && g.push({ node: e, containerName: n });
|
|
})
|
|
: 'object' === t.type &&
|
|
t.properties.forEach(function (t) {
|
|
var i = t.valueNode;
|
|
if (i)
|
|
if (o > 0) {
|
|
o--;
|
|
var s = cn.create(e.uri, Ui(e, t)),
|
|
a = n ? n + '.' + t.keyNode.value : t.keyNode.value;
|
|
y.push({
|
|
name: r.getKeyLabel(t),
|
|
kind: r.getSymbolKind(i.type),
|
|
location: s,
|
|
containerName: n,
|
|
}),
|
|
g.push({ node: i, containerName: a });
|
|
} else v = !0;
|
|
});
|
|
};
|
|
p < g.length;
|
|
|
|
) {
|
|
var C = g[p++];
|
|
b(C.node, C.containerName);
|
|
}
|
|
return (
|
|
v && n && n.onResultLimitExceeded && n.onResultLimitExceeded(s), y
|
|
);
|
|
}),
|
|
(e.prototype.findDocumentSymbols2 = function (e, t, n) {
|
|
var r = this;
|
|
void 0 === n && (n = { resultLimit: Number.MAX_VALUE });
|
|
var i = t.root;
|
|
if (!i) return [];
|
|
var o = n.resultLimit || Number.MAX_VALUE,
|
|
s = e.uri;
|
|
if (
|
|
('vscode://defaultsettings/keybindings.json' === s ||
|
|
Gr(s.toLowerCase(), '/user/keybindings.json')) &&
|
|
'array' === i.type
|
|
) {
|
|
for (var a = [], u = 0, l = i.items; u < l.length; u++) {
|
|
var c = l[u];
|
|
if ('object' === c.type)
|
|
for (var h = 0, f = c.properties; h < f.length; h++) {
|
|
var d = f[h];
|
|
if ('key' === d.keyNode.value && d.valueNode) {
|
|
var m = Ui(e, c),
|
|
g = Ui(e, d.keyNode);
|
|
if (
|
|
(a.push({
|
|
name: Wr(d.valueNode),
|
|
kind: Xn.Function,
|
|
range: m,
|
|
selectionRange: g,
|
|
}),
|
|
--o <= 0)
|
|
)
|
|
return (
|
|
n &&
|
|
n.onResultLimitExceeded &&
|
|
n.onResultLimitExceeded(s),
|
|
a
|
|
);
|
|
}
|
|
}
|
|
}
|
|
return a;
|
|
}
|
|
for (
|
|
var p = [],
|
|
v = [{ node: i, result: p }],
|
|
y = 0,
|
|
b = !1,
|
|
C = function (t, n) {
|
|
'array' === t.type
|
|
? t.items.forEach(function (t, i) {
|
|
if (t)
|
|
if (o > 0) {
|
|
o--;
|
|
var s = Ui(e, t),
|
|
a = s,
|
|
u = {
|
|
name: String(i),
|
|
kind: r.getSymbolKind(t.type),
|
|
range: s,
|
|
selectionRange: a,
|
|
children: [],
|
|
};
|
|
n.push(u), v.push({ result: u.children, node: t });
|
|
} else b = !0;
|
|
})
|
|
: 'object' === t.type &&
|
|
t.properties.forEach(function (t) {
|
|
var i = t.valueNode;
|
|
if (i)
|
|
if (o > 0) {
|
|
o--;
|
|
var s = Ui(e, t),
|
|
a = Ui(e, t.keyNode),
|
|
u = {
|
|
name: r.getKeyLabel(t),
|
|
kind: r.getSymbolKind(i.type),
|
|
range: s,
|
|
selectionRange: a,
|
|
children: [],
|
|
};
|
|
n.push(u), v.push({ result: u.children, node: i });
|
|
} else b = !0;
|
|
});
|
|
};
|
|
y < v.length;
|
|
|
|
) {
|
|
var _ = v[y++];
|
|
C(_.node, _.result);
|
|
}
|
|
return (
|
|
b && n && n.onResultLimitExceeded && n.onResultLimitExceeded(s), p
|
|
);
|
|
}),
|
|
(e.prototype.getSymbolKind = function (e) {
|
|
switch (e) {
|
|
case 'object':
|
|
return Xn.Module;
|
|
case 'string':
|
|
return Xn.String;
|
|
case 'number':
|
|
return Xn.Number;
|
|
case 'array':
|
|
return Xn.Array;
|
|
case 'boolean':
|
|
return Xn.Boolean;
|
|
default:
|
|
return Xn.Variable;
|
|
}
|
|
}),
|
|
(e.prototype.getKeyLabel = function (e) {
|
|
var t = e.keyNode.value;
|
|
return (
|
|
t && (t = t.replace(/[\n]/g, '↵')), t && t.trim() ? t : '"' + t + '"'
|
|
);
|
|
}),
|
|
(e.prototype.findDocumentColors = function (e, t, n) {
|
|
return this.schemaService
|
|
.getSchemaForResource(e.uri, t)
|
|
.then(function (r) {
|
|
var i = [];
|
|
if (r)
|
|
for (
|
|
var o =
|
|
n && 'number' == typeof n.resultLimit
|
|
? n.resultLimit
|
|
: Number.MAX_VALUE,
|
|
s = {},
|
|
a = 0,
|
|
u = t.getMatchingSchemas(r.schema);
|
|
a < u.length;
|
|
a++
|
|
) {
|
|
var l = u[a];
|
|
if (
|
|
!l.inverted &&
|
|
l.schema &&
|
|
('color' === l.schema.format ||
|
|
'color-hex' === l.schema.format) &&
|
|
l.node &&
|
|
'string' === l.node.type
|
|
) {
|
|
var c = String(l.node.offset);
|
|
if (!s[c]) {
|
|
var h = Fi(Wr(l.node));
|
|
if (h) {
|
|
var f = Ui(e, l.node);
|
|
i.push({ color: h, range: f });
|
|
}
|
|
if (((s[c] = !0), --o <= 0))
|
|
return (
|
|
n &&
|
|
n.onResultLimitExceeded &&
|
|
n.onResultLimitExceeded(e.uri),
|
|
i
|
|
);
|
|
}
|
|
}
|
|
}
|
|
return i;
|
|
});
|
|
}),
|
|
(e.prototype.getColorPresentations = function (e, t, n, r) {
|
|
var i,
|
|
o = [],
|
|
s = Math.round(255 * n.red),
|
|
a = Math.round(255 * n.green),
|
|
u = Math.round(255 * n.blue);
|
|
function l(e) {
|
|
var t = e.toString(16);
|
|
return 2 !== t.length ? '0' + t : t;
|
|
}
|
|
return (
|
|
(i =
|
|
1 === n.alpha
|
|
? '#' + l(s) + l(a) + l(u)
|
|
: '#' + l(s) + l(a) + l(u) + l(Math.round(255 * n.alpha))),
|
|
o.push({ label: i, textEdit: Sn.replace(r, JSON.stringify(i)) }),
|
|
o
|
|
);
|
|
}),
|
|
e
|
|
);
|
|
})();
|
|
function Ui(e, t) {
|
|
return ln.create(e.positionAt(t.offset), e.positionAt(t.offset + t.length));
|
|
}
|
|
var Vi = Ar(),
|
|
$i = {
|
|
schemaAssociations: [],
|
|
schemas: {
|
|
'http://json-schema.org/schema#': {
|
|
$ref: 'http://json-schema.org/draft-07/schema#',
|
|
},
|
|
'http://json-schema.org/draft-04/schema#': {
|
|
title: Vi(
|
|
'schema.json',
|
|
'Describes a JSON file using a schema. See json-schema.org for more info.'
|
|
),
|
|
$schema: 'http://json-schema.org/draft-04/schema#',
|
|
definitions: {
|
|
schemaArray: { type: 'array', minItems: 1, items: { $ref: '#' } },
|
|
positiveInteger: { type: 'integer', minimum: 0 },
|
|
positiveIntegerDefault0: {
|
|
allOf: [
|
|
{ $ref: '#/definitions/positiveInteger' },
|
|
{ default: 0 },
|
|
],
|
|
},
|
|
simpleTypes: {
|
|
type: 'string',
|
|
enum: [
|
|
'array',
|
|
'boolean',
|
|
'integer',
|
|
'null',
|
|
'number',
|
|
'object',
|
|
'string',
|
|
],
|
|
},
|
|
stringArray: {
|
|
type: 'array',
|
|
items: { type: 'string' },
|
|
minItems: 1,
|
|
uniqueItems: !0,
|
|
},
|
|
},
|
|
type: 'object',
|
|
properties: {
|
|
id: { type: 'string', format: 'uri' },
|
|
$schema: { type: 'string', format: 'uri' },
|
|
title: { type: 'string' },
|
|
description: { type: 'string' },
|
|
default: {},
|
|
multipleOf: { type: 'number', minimum: 0, exclusiveMinimum: !0 },
|
|
maximum: { type: 'number' },
|
|
exclusiveMaximum: { type: 'boolean', default: !1 },
|
|
minimum: { type: 'number' },
|
|
exclusiveMinimum: { type: 'boolean', default: !1 },
|
|
maxLength: { allOf: [{ $ref: '#/definitions/positiveInteger' }] },
|
|
minLength: {
|
|
allOf: [{ $ref: '#/definitions/positiveIntegerDefault0' }],
|
|
},
|
|
pattern: { type: 'string', format: 'regex' },
|
|
additionalItems: {
|
|
anyOf: [{ type: 'boolean' }, { $ref: '#' }],
|
|
default: {},
|
|
},
|
|
items: {
|
|
anyOf: [{ $ref: '#' }, { $ref: '#/definitions/schemaArray' }],
|
|
default: {},
|
|
},
|
|
maxItems: { allOf: [{ $ref: '#/definitions/positiveInteger' }] },
|
|
minItems: {
|
|
allOf: [{ $ref: '#/definitions/positiveIntegerDefault0' }],
|
|
},
|
|
uniqueItems: { type: 'boolean', default: !1 },
|
|
maxProperties: {
|
|
allOf: [{ $ref: '#/definitions/positiveInteger' }],
|
|
},
|
|
minProperties: {
|
|
allOf: [{ $ref: '#/definitions/positiveIntegerDefault0' }],
|
|
},
|
|
required: { allOf: [{ $ref: '#/definitions/stringArray' }] },
|
|
additionalProperties: {
|
|
anyOf: [{ type: 'boolean' }, { $ref: '#' }],
|
|
default: {},
|
|
},
|
|
definitions: {
|
|
type: 'object',
|
|
additionalProperties: { $ref: '#' },
|
|
default: {},
|
|
},
|
|
properties: {
|
|
type: 'object',
|
|
additionalProperties: { $ref: '#' },
|
|
default: {},
|
|
},
|
|
patternProperties: {
|
|
type: 'object',
|
|
additionalProperties: { $ref: '#' },
|
|
default: {},
|
|
},
|
|
dependencies: {
|
|
type: 'object',
|
|
additionalProperties: {
|
|
anyOf: [{ $ref: '#' }, { $ref: '#/definitions/stringArray' }],
|
|
},
|
|
},
|
|
enum: { type: 'array', minItems: 1, uniqueItems: !0 },
|
|
type: {
|
|
anyOf: [
|
|
{ $ref: '#/definitions/simpleTypes' },
|
|
{
|
|
type: 'array',
|
|
items: { $ref: '#/definitions/simpleTypes' },
|
|
minItems: 1,
|
|
uniqueItems: !0,
|
|
},
|
|
],
|
|
},
|
|
format: {
|
|
anyOf: [
|
|
{
|
|
type: 'string',
|
|
enum: [
|
|
'date-time',
|
|
'uri',
|
|
'email',
|
|
'hostname',
|
|
'ipv4',
|
|
'ipv6',
|
|
'regex',
|
|
],
|
|
},
|
|
{ type: 'string' },
|
|
],
|
|
},
|
|
allOf: { allOf: [{ $ref: '#/definitions/schemaArray' }] },
|
|
anyOf: { allOf: [{ $ref: '#/definitions/schemaArray' }] },
|
|
oneOf: { allOf: [{ $ref: '#/definitions/schemaArray' }] },
|
|
not: { allOf: [{ $ref: '#' }] },
|
|
},
|
|
dependencies: {
|
|
exclusiveMaximum: ['maximum'],
|
|
exclusiveMinimum: ['minimum'],
|
|
},
|
|
default: {},
|
|
},
|
|
'http://json-schema.org/draft-07/schema#': {
|
|
title: Vi(
|
|
'schema.json',
|
|
'Describes a JSON file using a schema. See json-schema.org for more info.'
|
|
),
|
|
definitions: {
|
|
schemaArray: { type: 'array', minItems: 1, items: { $ref: '#' } },
|
|
nonNegativeInteger: { type: 'integer', minimum: 0 },
|
|
nonNegativeIntegerDefault0: {
|
|
allOf: [
|
|
{ $ref: '#/definitions/nonNegativeInteger' },
|
|
{ default: 0 },
|
|
],
|
|
},
|
|
simpleTypes: {
|
|
enum: [
|
|
'array',
|
|
'boolean',
|
|
'integer',
|
|
'null',
|
|
'number',
|
|
'object',
|
|
'string',
|
|
],
|
|
},
|
|
stringArray: {
|
|
type: 'array',
|
|
items: { type: 'string' },
|
|
uniqueItems: !0,
|
|
default: [],
|
|
},
|
|
},
|
|
type: ['object', 'boolean'],
|
|
properties: {
|
|
$id: { type: 'string', format: 'uri-reference' },
|
|
$schema: { type: 'string', format: 'uri' },
|
|
$ref: { type: 'string', format: 'uri-reference' },
|
|
$comment: { type: 'string' },
|
|
title: { type: 'string' },
|
|
description: { type: 'string' },
|
|
default: !0,
|
|
readOnly: { type: 'boolean', default: !1 },
|
|
examples: { type: 'array', items: !0 },
|
|
multipleOf: { type: 'number', exclusiveMinimum: 0 },
|
|
maximum: { type: 'number' },
|
|
exclusiveMaximum: { type: 'number' },
|
|
minimum: { type: 'number' },
|
|
exclusiveMinimum: { type: 'number' },
|
|
maxLength: { $ref: '#/definitions/nonNegativeInteger' },
|
|
minLength: { $ref: '#/definitions/nonNegativeIntegerDefault0' },
|
|
pattern: { type: 'string', format: 'regex' },
|
|
additionalItems: { $ref: '#' },
|
|
items: {
|
|
anyOf: [{ $ref: '#' }, { $ref: '#/definitions/schemaArray' }],
|
|
default: !0,
|
|
},
|
|
maxItems: { $ref: '#/definitions/nonNegativeInteger' },
|
|
minItems: { $ref: '#/definitions/nonNegativeIntegerDefault0' },
|
|
uniqueItems: { type: 'boolean', default: !1 },
|
|
contains: { $ref: '#' },
|
|
maxProperties: { $ref: '#/definitions/nonNegativeInteger' },
|
|
minProperties: { $ref: '#/definitions/nonNegativeIntegerDefault0' },
|
|
required: { $ref: '#/definitions/stringArray' },
|
|
additionalProperties: { $ref: '#' },
|
|
definitions: {
|
|
type: 'object',
|
|
additionalProperties: { $ref: '#' },
|
|
default: {},
|
|
},
|
|
properties: {
|
|
type: 'object',
|
|
additionalProperties: { $ref: '#' },
|
|
default: {},
|
|
},
|
|
patternProperties: {
|
|
type: 'object',
|
|
additionalProperties: { $ref: '#' },
|
|
propertyNames: { format: 'regex' },
|
|
default: {},
|
|
},
|
|
dependencies: {
|
|
type: 'object',
|
|
additionalProperties: {
|
|
anyOf: [{ $ref: '#' }, { $ref: '#/definitions/stringArray' }],
|
|
},
|
|
},
|
|
propertyNames: { $ref: '#' },
|
|
const: !0,
|
|
enum: { type: 'array', items: !0, minItems: 1, uniqueItems: !0 },
|
|
type: {
|
|
anyOf: [
|
|
{ $ref: '#/definitions/simpleTypes' },
|
|
{
|
|
type: 'array',
|
|
items: { $ref: '#/definitions/simpleTypes' },
|
|
minItems: 1,
|
|
uniqueItems: !0,
|
|
},
|
|
],
|
|
},
|
|
format: { type: 'string' },
|
|
contentMediaType: { type: 'string' },
|
|
contentEncoding: { type: 'string' },
|
|
if: { $ref: '#' },
|
|
then: { $ref: '#' },
|
|
else: { $ref: '#' },
|
|
allOf: { $ref: '#/definitions/schemaArray' },
|
|
anyOf: { $ref: '#/definitions/schemaArray' },
|
|
oneOf: { $ref: '#/definitions/schemaArray' },
|
|
not: { $ref: '#' },
|
|
},
|
|
default: !0,
|
|
},
|
|
},
|
|
},
|
|
Wi = {
|
|
id: Vi('schema.json.id', 'A unique identifier for the schema.'),
|
|
$schema: Vi(
|
|
'schema.json.$schema',
|
|
'The schema to verify this document against.'
|
|
),
|
|
title: Vi('schema.json.title', 'A descriptive title of the element.'),
|
|
description: Vi(
|
|
'schema.json.description',
|
|
'A long description of the element. Used in hover menus and suggestions.'
|
|
),
|
|
default: Vi(
|
|
'schema.json.default',
|
|
'A default value. Used by suggestions.'
|
|
),
|
|
multipleOf: Vi(
|
|
'schema.json.multipleOf',
|
|
'A number that should cleanly divide the current value (i.e. have no remainder).'
|
|
),
|
|
maximum: Vi(
|
|
'schema.json.maximum',
|
|
'The maximum numerical value, inclusive by default.'
|
|
),
|
|
exclusiveMaximum: Vi(
|
|
'schema.json.exclusiveMaximum',
|
|
'Makes the maximum property exclusive.'
|
|
),
|
|
minimum: Vi(
|
|
'schema.json.minimum',
|
|
'The minimum numerical value, inclusive by default.'
|
|
),
|
|
exclusiveMinimum: Vi(
|
|
'schema.json.exclusiveMininum',
|
|
'Makes the minimum property exclusive.'
|
|
),
|
|
maxLength: Vi('schema.json.maxLength', 'The maximum length of a string.'),
|
|
minLength: Vi('schema.json.minLength', 'The minimum length of a string.'),
|
|
pattern: Vi(
|
|
'schema.json.pattern',
|
|
'A regular expression to match the string against. It is not implicitly anchored.'
|
|
),
|
|
additionalItems: Vi(
|
|
'schema.json.additionalItems',
|
|
'For arrays, only when items is set as an array. If it is a schema, then this schema validates items after the ones specified by the items array. If it is false, then additional items will cause validation to fail.'
|
|
),
|
|
items: Vi(
|
|
'schema.json.items',
|
|
'For arrays. Can either be a schema to validate every element against or an array of schemas to validate each item against in order (the first schema will validate the first element, the second schema will validate the second element, and so on.'
|
|
),
|
|
maxItems: Vi(
|
|
'schema.json.maxItems',
|
|
'The maximum number of items that can be inside an array. Inclusive.'
|
|
),
|
|
minItems: Vi(
|
|
'schema.json.minItems',
|
|
'The minimum number of items that can be inside an array. Inclusive.'
|
|
),
|
|
uniqueItems: Vi(
|
|
'schema.json.uniqueItems',
|
|
'If all of the items in the array must be unique. Defaults to false.'
|
|
),
|
|
maxProperties: Vi(
|
|
'schema.json.maxProperties',
|
|
'The maximum number of properties an object can have. Inclusive.'
|
|
),
|
|
minProperties: Vi(
|
|
'schema.json.minProperties',
|
|
'The minimum number of properties an object can have. Inclusive.'
|
|
),
|
|
required: Vi(
|
|
'schema.json.required',
|
|
'An array of strings that lists the names of all properties required on this object.'
|
|
),
|
|
additionalProperties: Vi(
|
|
'schema.json.additionalProperties',
|
|
"Either a schema or a boolean. If a schema, then used to validate all properties not matched by 'properties' or 'patternProperties'. If false, then any properties not matched by either will cause this schema to fail."
|
|
),
|
|
definitions: Vi(
|
|
'schema.json.definitions',
|
|
'Not used for validation. Place subschemas here that you wish to reference inline with $ref.'
|
|
),
|
|
properties: Vi(
|
|
'schema.json.properties',
|
|
'A map of property names to schemas for each property.'
|
|
),
|
|
patternProperties: Vi(
|
|
'schema.json.patternProperties',
|
|
'A map of regular expressions on property names to schemas for matching properties.'
|
|
),
|
|
dependencies: Vi(
|
|
'schema.json.dependencies',
|
|
'A map of property names to either an array of property names or a schema. An array of property names means the property named in the key depends on the properties in the array being present in the object in order to be valid. If the value is a schema, then the schema is only applied to the object if the property in the key exists on the object.'
|
|
),
|
|
enum: Vi('schema.json.enum', 'The set of literal values that are valid.'),
|
|
type: Vi(
|
|
'schema.json.type',
|
|
'Either a string of one of the basic schema types (number, integer, null, array, object, boolean, string) or an array of strings specifying a subset of those types.'
|
|
),
|
|
format: Vi(
|
|
'schema.json.format',
|
|
'Describes the format expected for the value.'
|
|
),
|
|
allOf: Vi(
|
|
'schema.json.allOf',
|
|
'An array of schemas, all of which must match.'
|
|
),
|
|
anyOf: Vi(
|
|
'schema.json.anyOf',
|
|
'An array of schemas, where at least one must match.'
|
|
),
|
|
oneOf: Vi(
|
|
'schema.json.oneOf',
|
|
'An array of schemas, exactly one of which must match.'
|
|
),
|
|
not: Vi('schema.json.not', 'A schema which must not match.'),
|
|
$id: Vi('schema.json.$id', 'A unique identifier for the schema.'),
|
|
$ref: Vi(
|
|
'schema.json.$ref',
|
|
'Reference a definition hosted on any location.'
|
|
),
|
|
$comment: Vi(
|
|
'schema.json.$comment',
|
|
'Comments from schema authors to readers or maintainers of the schema.'
|
|
),
|
|
readOnly: Vi(
|
|
'schema.json.readOnly',
|
|
'Indicates that the value of the instance is managed exclusively by the owning authority.'
|
|
),
|
|
examples: Vi(
|
|
'schema.json.examples',
|
|
'Sample JSON values associated with a particular schema, for the purpose of illustrating usage.'
|
|
),
|
|
contains: Vi(
|
|
'schema.json.contains',
|
|
'An array instance is valid against "contains" if at least one of its elements is valid against the given schema.'
|
|
),
|
|
propertyNames: Vi(
|
|
'schema.json.propertyNames',
|
|
'If the instance is an object, this keyword validates if every property name in the instance validates against the provided schema.'
|
|
),
|
|
const: Vi(
|
|
'schema.json.const',
|
|
'An instance validates successfully against this keyword if its value is equal to the value of the keyword.'
|
|
),
|
|
contentMediaType: Vi(
|
|
'schema.json.contentMediaType',
|
|
'Describes the media type of a string property.'
|
|
),
|
|
contentEncoding: Vi(
|
|
'schema.json.contentEncoding',
|
|
'Describes the content encoding of a string property.'
|
|
),
|
|
if: Vi(
|
|
'schema.json.if',
|
|
'The validation outcome of the "if" subschema controls which of the "then" or "else" keywords are evaluated.'
|
|
),
|
|
then: Vi(
|
|
'schema.json.then',
|
|
'The "if" subschema is used for validation when the "if" subschema succeeds.'
|
|
),
|
|
else: Vi(
|
|
'schema.json.else',
|
|
'The "else" subschema is used for validation when the "if" subschema fails.'
|
|
),
|
|
};
|
|
for (var qi in $i.schemas) {
|
|
var Ki = $i.schemas[qi];
|
|
for (var Bi in Ki.properties) {
|
|
var Hi = Ki.properties[Bi];
|
|
'boolean' == typeof Hi && (Hi = Ki.properties[Bi] = {});
|
|
var Yi = Wi[Bi];
|
|
Yi
|
|
? (Hi.description = Yi)
|
|
: console.log(Bi + ": localize('schema.json." + Bi + '\', "")');
|
|
}
|
|
}
|
|
function Gi(e, t) {
|
|
var n = [],
|
|
r = [],
|
|
i = [],
|
|
o = -1,
|
|
s = wn(e.getText(), !1),
|
|
a = s.scan();
|
|
function u(e) {
|
|
n.push(e), r.push(i.length);
|
|
}
|
|
for (; 17 !== a; ) {
|
|
switch (a) {
|
|
case 1:
|
|
case 3:
|
|
var l = {
|
|
startLine: (f = e.positionAt(s.getTokenOffset()).line),
|
|
endLine: f,
|
|
kind: 1 === a ? 'object' : 'array',
|
|
};
|
|
i.push(l);
|
|
break;
|
|
case 2:
|
|
case 4:
|
|
var c = 2 === a ? 'object' : 'array';
|
|
if (i.length > 0 && i[i.length - 1].kind === c) {
|
|
l = i.pop();
|
|
var h = e.positionAt(s.getTokenOffset()).line;
|
|
l &&
|
|
h > l.startLine + 1 &&
|
|
o !== l.startLine &&
|
|
((l.endLine = h - 1), u(l), (o = l.startLine));
|
|
}
|
|
break;
|
|
case 13:
|
|
var f = e.positionAt(s.getTokenOffset()).line,
|
|
d = e.positionAt(s.getTokenOffset() + s.getTokenLength()).line;
|
|
1 === s.getTokenError() && f + 1 < e.lineCount
|
|
? s.setPosition(e.offsetAt(un.create(f + 1, 0)))
|
|
: f < d &&
|
|
(u({ startLine: f, endLine: d, kind: gn.Comment }), (o = f));
|
|
break;
|
|
case 12:
|
|
var m = e
|
|
.getText()
|
|
.substr(s.getTokenOffset(), s.getTokenLength())
|
|
.match(/^\/\/\s*#(region\b)|(endregion\b)/);
|
|
if (m)
|
|
if (((h = e.positionAt(s.getTokenOffset()).line), m[1]))
|
|
(l = { startLine: h, endLine: h, kind: gn.Region }), i.push(l);
|
|
else {
|
|
for (var g = i.length - 1; g >= 0 && i[g].kind !== gn.Region; )
|
|
g--;
|
|
g >= 0 &&
|
|
((l = i[g]),
|
|
(i.length = g),
|
|
h > l.startLine &&
|
|
o !== l.startLine &&
|
|
((l.endLine = h), u(l), (o = l.startLine)));
|
|
}
|
|
}
|
|
a = s.scan();
|
|
}
|
|
var p = t && t.rangeLimit;
|
|
if ('number' != typeof p || n.length <= p) return n;
|
|
t && t.onRangeLimitExceeded && t.onRangeLimitExceeded(e.uri);
|
|
for (var v = [], y = 0, b = r; y < b.length; y++)
|
|
(A = b[y]) < 30 && (v[A] = (v[A] || 0) + 1);
|
|
var C = 0,
|
|
_ = 0;
|
|
for (g = 0; g < v.length; g++) {
|
|
var S = v[g];
|
|
if (S) {
|
|
if (S + C > p) {
|
|
_ = g;
|
|
break;
|
|
}
|
|
C += S;
|
|
}
|
|
}
|
|
var E = [];
|
|
for (g = 0; g < n.length; g++) {
|
|
var A;
|
|
'number' == typeof (A = r[g]) &&
|
|
(A < _ || (A === _ && C++ < p)) &&
|
|
E.push(n[g]);
|
|
}
|
|
return E;
|
|
}
|
|
function zi(e, t, n) {
|
|
function r(t, n) {
|
|
return ln.create(e.positionAt(t), e.positionAt(n));
|
|
}
|
|
var i = wn(e.getText(), !0);
|
|
function o(e, t) {
|
|
return (
|
|
i.setPosition(e),
|
|
i.scan() === t ? i.getTokenOffset() + i.getTokenLength() : -1
|
|
);
|
|
}
|
|
return t.map(function (t) {
|
|
for (var i = e.offsetAt(t), s = n.getNodeFromOffset(i, !0), a = []; s; ) {
|
|
switch (s.type) {
|
|
case 'string':
|
|
case 'object':
|
|
case 'array':
|
|
var u = s.offset + 1,
|
|
l = s.offset + s.length - 1;
|
|
u < l && i >= u && i <= l && a.push(r(u, l)),
|
|
a.push(r(s.offset, s.offset + s.length));
|
|
break;
|
|
case 'number':
|
|
case 'boolean':
|
|
case 'null':
|
|
case 'property':
|
|
a.push(r(s.offset, s.offset + s.length));
|
|
}
|
|
if ('property' === s.type || (s.parent && 'array' === s.parent.type)) {
|
|
var c = o(s.offset + s.length, 5);
|
|
-1 !== c && a.push(r(s.offset, c));
|
|
}
|
|
s = s.parent;
|
|
}
|
|
for (var h = void 0, f = a.length - 1; f >= 0; f--)
|
|
h = lr.create(a[f], h);
|
|
return h || (h = lr.create(ln.create(t, t))), h;
|
|
});
|
|
}
|
|
function Ji(e, t, n) {
|
|
var r = e.offsetAt(t),
|
|
i = n.getNodeFromOffset(r, !0);
|
|
if (
|
|
!i ||
|
|
!(function (e) {
|
|
return (
|
|
('string' === e.type &&
|
|
e.parent &&
|
|
'property' === e.parent.type &&
|
|
e.parent.valueNode === e &&
|
|
'$ref' === e.parent.keyNode.value) ||
|
|
!1
|
|
);
|
|
})(i)
|
|
)
|
|
return Promise.resolve([]);
|
|
var o = i.parent.valueNode,
|
|
s = (function (e, t) {
|
|
var n = (function (e) {
|
|
return '#' === e
|
|
? []
|
|
: '#' !== e[0] || '/' !== e[1]
|
|
? null
|
|
: e.substring(2).split(/\//).map(Xi);
|
|
})(t);
|
|
return n ? Zi(n, e.root) : null;
|
|
})(n, o.value);
|
|
if (!s) return Promise.resolve([]);
|
|
var a = {
|
|
targetUri: e.uri,
|
|
originSelectionRange: Qi(e, o),
|
|
targetRange: Qi(e, s),
|
|
targetSelectionRange: Qi(e, s),
|
|
};
|
|
return Promise.resolve([a]);
|
|
}
|
|
function Qi(e, t) {
|
|
return ln.create(e.positionAt(t.offset), e.positionAt(t.offset + t.length));
|
|
}
|
|
function Zi(e, t) {
|
|
if (!t) return null;
|
|
if (0 === e.length) return t;
|
|
var n = e.shift();
|
|
if (t && 'object' === t.type) {
|
|
var r = t.properties.find(function (e) {
|
|
return e.keyNode.value === n;
|
|
});
|
|
return r ? Zi(e, r.valueNode) : null;
|
|
}
|
|
if (t && 'array' === t.type && n.match(/^(0|[1-9][0-9]*)$/)) {
|
|
var i = Number.parseInt(n),
|
|
o = t.items[i];
|
|
return o ? Zi(e, o) : null;
|
|
}
|
|
return null;
|
|
}
|
|
function Xi(e) {
|
|
return e.replace(/~1/g, '/').replace(/~0/g, '~');
|
|
}
|
|
function eo(e) {
|
|
var t = e.promiseConstructor || Promise,
|
|
n = new Ni(e.schemaRequestService, e.workspaceContext, t);
|
|
n.setSchemaContributions($i);
|
|
var r = new Qr(n, e.contributions, t, e.clientCapabilities),
|
|
i = new Zr(n, e.contributions, t),
|
|
o = new ji(n),
|
|
s = new Oi(n, t);
|
|
return {
|
|
configure: function (e) {
|
|
n.clearExternalSchemas(),
|
|
e.schemas &&
|
|
e.schemas.forEach(function (e) {
|
|
n.registerExternalSchema(e.uri, e.fileMatch, e.schema);
|
|
}),
|
|
s.configure(e);
|
|
},
|
|
resetSchema: function (e) {
|
|
return n.onResourceChange(e);
|
|
},
|
|
doValidation: s.doValidation.bind(s),
|
|
parseJSONDocument: function (e) {
|
|
return (function (e, t) {
|
|
var n = [],
|
|
r = -1,
|
|
i = e.getText(),
|
|
o = wn(i, !1),
|
|
s = t && t.collectComments ? [] : void 0;
|
|
function a() {
|
|
for (;;) {
|
|
var t = o.scan();
|
|
switch ((c(), t)) {
|
|
case 12:
|
|
case 13:
|
|
Array.isArray(s) &&
|
|
s.push(
|
|
ln.create(
|
|
e.positionAt(o.getTokenOffset()),
|
|
e.positionAt(o.getTokenOffset() + o.getTokenLength())
|
|
)
|
|
);
|
|
break;
|
|
case 15:
|
|
case 14:
|
|
break;
|
|
default:
|
|
return t;
|
|
}
|
|
}
|
|
}
|
|
function u(t, i, o, s, a) {
|
|
if ((void 0 === a && (a = yn.Error), 0 === n.length || o !== r)) {
|
|
var u = ln.create(e.positionAt(o), e.positionAt(s));
|
|
n.push(Cn.create(u, t, a, i, e.languageId)), (r = o);
|
|
}
|
|
}
|
|
function l(e, t, n, r, s) {
|
|
void 0 === n && (n = void 0),
|
|
void 0 === r && (r = []),
|
|
void 0 === s && (s = []);
|
|
var l = o.getTokenOffset(),
|
|
c = o.getTokenOffset() + o.getTokenLength();
|
|
if (l === c && l > 0) {
|
|
for (l--; l > 0 && /\s/.test(i.charAt(l)); ) l--;
|
|
c = l + 1;
|
|
}
|
|
if ((u(e, t, l, c), n && h(n, !1), r.length + s.length > 0))
|
|
for (var f = o.getToken(); 17 !== f; ) {
|
|
if (-1 !== r.indexOf(f)) {
|
|
a();
|
|
break;
|
|
}
|
|
if (-1 !== s.indexOf(f)) break;
|
|
f = a();
|
|
}
|
|
return n;
|
|
}
|
|
function c() {
|
|
switch (o.getTokenError()) {
|
|
case 4:
|
|
return (
|
|
l(
|
|
wr('InvalidUnicode', 'Invalid unicode sequence in string.'),
|
|
gr.InvalidUnicode
|
|
),
|
|
!0
|
|
);
|
|
case 5:
|
|
return (
|
|
l(
|
|
wr(
|
|
'InvalidEscapeCharacter',
|
|
'Invalid escape character in string.'
|
|
),
|
|
gr.InvalidEscapeCharacter
|
|
),
|
|
!0
|
|
);
|
|
case 3:
|
|
return (
|
|
l(
|
|
wr('UnexpectedEndOfNumber', 'Unexpected end of number.'),
|
|
gr.UnexpectedEndOfNumber
|
|
),
|
|
!0
|
|
);
|
|
case 1:
|
|
return (
|
|
l(
|
|
wr('UnexpectedEndOfComment', 'Unexpected end of comment.'),
|
|
gr.UnexpectedEndOfComment
|
|
),
|
|
!0
|
|
);
|
|
case 2:
|
|
return (
|
|
l(
|
|
wr('UnexpectedEndOfString', 'Unexpected end of string.'),
|
|
gr.UnexpectedEndOfString
|
|
),
|
|
!0
|
|
);
|
|
case 6:
|
|
return (
|
|
l(
|
|
wr(
|
|
'InvalidCharacter',
|
|
'Invalid characters in string. Control characters must be escaped.'
|
|
),
|
|
gr.InvalidCharacter
|
|
),
|
|
!0
|
|
);
|
|
}
|
|
return !1;
|
|
}
|
|
function h(e, t) {
|
|
return (
|
|
(e.length = o.getTokenOffset() + o.getTokenLength() - e.offset),
|
|
t && a(),
|
|
e
|
|
);
|
|
}
|
|
var f = new Rr(void 0, 0, 0);
|
|
function d(t, n) {
|
|
var r = new Dr(t, o.getTokenOffset(), f),
|
|
i = m(r);
|
|
if (!i) {
|
|
if (16 !== o.getToken()) return;
|
|
l(
|
|
wr(
|
|
'DoubleQuotesExpected',
|
|
'Property keys must be doublequoted'
|
|
),
|
|
gr.Undefined
|
|
);
|
|
var s = new Rr(r, o.getTokenOffset(), o.getTokenLength());
|
|
(s.value = o.getTokenValue()), (i = s), a();
|
|
}
|
|
r.keyNode = i;
|
|
var c = n[i.value];
|
|
if (
|
|
(c
|
|
? (u(
|
|
wr('DuplicateKeyWarning', 'Duplicate object key'),
|
|
gr.DuplicateKey,
|
|
r.keyNode.offset,
|
|
r.keyNode.offset + r.keyNode.length,
|
|
yn.Warning
|
|
),
|
|
'object' == typeof c &&
|
|
u(
|
|
wr('DuplicateKeyWarning', 'Duplicate object key'),
|
|
gr.DuplicateKey,
|
|
c.keyNode.offset,
|
|
c.keyNode.offset + c.keyNode.length,
|
|
yn.Warning
|
|
),
|
|
(n[i.value] = !0))
|
|
: (n[i.value] = r),
|
|
6 === o.getToken())
|
|
)
|
|
(r.colonOffset = o.getTokenOffset()), a();
|
|
else if (
|
|
(l(wr('ColonExpected', 'Colon expected'), gr.ColonExpected),
|
|
10 === o.getToken() &&
|
|
e.positionAt(i.offset + i.length).line <
|
|
e.positionAt(o.getTokenOffset()).line)
|
|
)
|
|
return (r.length = i.length), r;
|
|
var h = g(r);
|
|
return h
|
|
? ((r.valueNode = h),
|
|
(r.length = h.offset + h.length - r.offset),
|
|
r)
|
|
: l(
|
|
wr('ValueExpected', 'Value expected'),
|
|
gr.ValueExpected,
|
|
r,
|
|
[],
|
|
[2, 5]
|
|
);
|
|
}
|
|
function m(e) {
|
|
if (10 === o.getToken()) {
|
|
var t = new Rr(e, o.getTokenOffset());
|
|
return (t.value = o.getTokenValue()), h(t, !0);
|
|
}
|
|
}
|
|
function g(e) {
|
|
return (
|
|
(function (e) {
|
|
if (3 === o.getToken()) {
|
|
var t = new Mr(e, o.getTokenOffset());
|
|
a();
|
|
for (
|
|
var n = !1;
|
|
4 !== o.getToken() && 17 !== o.getToken();
|
|
|
|
) {
|
|
if (5 === o.getToken()) {
|
|
n ||
|
|
l(
|
|
wr('ValueExpected', 'Value expected'),
|
|
gr.ValueExpected
|
|
);
|
|
var r = o.getTokenOffset();
|
|
if ((a(), 4 === o.getToken())) {
|
|
n &&
|
|
u(
|
|
wr('TrailingComma', 'Trailing comma'),
|
|
gr.TrailingComma,
|
|
r,
|
|
r + 1
|
|
);
|
|
continue;
|
|
}
|
|
} else
|
|
n &&
|
|
l(
|
|
wr('ExpectedComma', 'Expected comma'),
|
|
gr.CommaExpected
|
|
);
|
|
var i = g(t);
|
|
i
|
|
? t.items.push(i)
|
|
: l(
|
|
wr('PropertyExpected', 'Value expected'),
|
|
gr.ValueExpected,
|
|
void 0,
|
|
[],
|
|
[4, 5]
|
|
),
|
|
(n = !0);
|
|
}
|
|
return 4 !== o.getToken()
|
|
? l(
|
|
wr(
|
|
'ExpectedCloseBracket',
|
|
'Expected comma or closing bracket'
|
|
),
|
|
gr.CommaOrCloseBacketExpected,
|
|
t
|
|
)
|
|
: h(t, !0);
|
|
}
|
|
})(e) ||
|
|
(function (e) {
|
|
if (1 === o.getToken()) {
|
|
var t = new Fr(e, o.getTokenOffset()),
|
|
n = Object.create(null);
|
|
a();
|
|
for (
|
|
var r = !1;
|
|
2 !== o.getToken() && 17 !== o.getToken();
|
|
|
|
) {
|
|
if (5 === o.getToken()) {
|
|
r ||
|
|
l(
|
|
wr('PropertyExpected', 'Property expected'),
|
|
gr.PropertyExpected
|
|
);
|
|
var i = o.getTokenOffset();
|
|
if ((a(), 2 === o.getToken())) {
|
|
r &&
|
|
u(
|
|
wr('TrailingComma', 'Trailing comma'),
|
|
gr.TrailingComma,
|
|
i,
|
|
i + 1
|
|
);
|
|
continue;
|
|
}
|
|
} else
|
|
r &&
|
|
l(
|
|
wr('ExpectedComma', 'Expected comma'),
|
|
gr.CommaExpected
|
|
);
|
|
var s = d(t, n);
|
|
s
|
|
? t.properties.push(s)
|
|
: l(
|
|
wr('PropertyExpected', 'Property expected'),
|
|
gr.PropertyExpected,
|
|
void 0,
|
|
[],
|
|
[2, 5]
|
|
),
|
|
(r = !0);
|
|
}
|
|
return 2 !== o.getToken()
|
|
? l(
|
|
wr(
|
|
'ExpectedCloseBrace',
|
|
'Expected comma or closing brace'
|
|
),
|
|
gr.CommaOrCloseBraceExpected,
|
|
t
|
|
)
|
|
: h(t, !0);
|
|
}
|
|
})(e) ||
|
|
m(e) ||
|
|
(function (e) {
|
|
if (11 === o.getToken()) {
|
|
var t = new Pr(e, o.getTokenOffset());
|
|
if (0 === o.getTokenError()) {
|
|
var n = o.getTokenValue();
|
|
try {
|
|
var r = JSON.parse(n);
|
|
if (!Pn(r))
|
|
return l(
|
|
wr('InvalidNumberFormat', 'Invalid number format.'),
|
|
gr.Undefined,
|
|
t
|
|
);
|
|
t.value = r;
|
|
} catch (e) {
|
|
return l(
|
|
wr('InvalidNumberFormat', 'Invalid number format.'),
|
|
gr.Undefined,
|
|
t
|
|
);
|
|
}
|
|
t.isInteger = -1 === n.indexOf('.');
|
|
}
|
|
return h(t, !0);
|
|
}
|
|
})(e) ||
|
|
(function (e) {
|
|
switch (o.getToken()) {
|
|
case 7:
|
|
return h(new Or(e, o.getTokenOffset()), !0);
|
|
case 8:
|
|
return h(new Ir(e, !0, o.getTokenOffset()), !0);
|
|
case 9:
|
|
return h(new Ir(e, !1, o.getTokenOffset()), !0);
|
|
default:
|
|
return;
|
|
}
|
|
})(e)
|
|
);
|
|
}
|
|
var p = void 0;
|
|
return (
|
|
17 !== a() &&
|
|
((p = g(p))
|
|
? 17 !== o.getToken() &&
|
|
l(
|
|
wr('End of file expected', 'End of file expected.'),
|
|
gr.Undefined
|
|
)
|
|
: l(
|
|
wr(
|
|
'Invalid symbol',
|
|
'Expected a JSON object, array or literal.'
|
|
),
|
|
gr.Undefined
|
|
)),
|
|
new Br(p, n, s)
|
|
);
|
|
})(e, { collectComments: !0 });
|
|
},
|
|
newJSONDocument: function (e, t) {
|
|
return (function (e, t) {
|
|
return void 0 === t && (t = []), new Br(e, t, []);
|
|
})(e, t);
|
|
},
|
|
getMatchingSchemas: n.getMatchingSchemas.bind(n),
|
|
doResolve: r.doResolve.bind(r),
|
|
doComplete: r.doComplete.bind(r),
|
|
findDocumentSymbols: o.findDocumentSymbols.bind(o),
|
|
findDocumentSymbols2: o.findDocumentSymbols2.bind(o),
|
|
findColorSymbols: function (e, t) {
|
|
return o.findDocumentColors(e, t).then(function (e) {
|
|
return e.map(function (e) {
|
|
return e.range;
|
|
});
|
|
});
|
|
},
|
|
findDocumentColors: o.findDocumentColors.bind(o),
|
|
getColorPresentations: o.getColorPresentations.bind(o),
|
|
doHover: i.doHover.bind(i),
|
|
getFoldingRanges: Gi,
|
|
getSelectionRanges: zi,
|
|
findDefinition: Ji,
|
|
format: function (e, t, n) {
|
|
var r = void 0;
|
|
if (t) {
|
|
var i = e.offsetAt(t.start);
|
|
r = { offset: i, length: e.offsetAt(t.end) - i };
|
|
}
|
|
var o = {
|
|
tabSize: n ? n.tabSize : 4,
|
|
insertSpaces: !n || n.insertSpaces,
|
|
eol: '\n',
|
|
};
|
|
return (function (e, t, n) {
|
|
return (function (e, t, n) {
|
|
var r, i, o, s, a;
|
|
if (t) {
|
|
for (
|
|
s = t.offset, a = s + t.length, o = s;
|
|
o > 0 && !sn(e, o - 1);
|
|
|
|
)
|
|
o--;
|
|
for (var u = a; u < e.length && !sn(e, u); ) u++;
|
|
(i = e.substring(o, u)),
|
|
(r = (function (e, t) {
|
|
for (var n = 0, r = 0, i = t.tabSize || 4; n < e.length; ) {
|
|
var o = e.charAt(n);
|
|
if (' ' === o) r++;
|
|
else {
|
|
if ('\t' !== o) break;
|
|
r += i;
|
|
}
|
|
n++;
|
|
}
|
|
return Math.floor(r / i);
|
|
})(i, n));
|
|
} else (i = e), (r = 0), (o = 0), (s = 0), (a = e.length);
|
|
var l,
|
|
c = (function (e, t) {
|
|
for (var n = 0; n < t.length; n++) {
|
|
var r = t.charAt(n);
|
|
if ('\r' === r)
|
|
return n + 1 < t.length && '\n' === t.charAt(n + 1)
|
|
? '\r\n'
|
|
: '\r';
|
|
if ('\n' === r) return '\n';
|
|
}
|
|
return (e && e.eol) || '\n';
|
|
})(n, e),
|
|
h = !1,
|
|
f = 0;
|
|
l = n.insertSpaces ? on(' ', n.tabSize || 4) : '\t';
|
|
var d = en(i, !1),
|
|
m = !1;
|
|
function g() {
|
|
return c + on(l, r + f);
|
|
}
|
|
function p() {
|
|
var e = d.scan();
|
|
for (h = !1; 15 === e || 14 === e; )
|
|
(h = h || 14 === e), (e = d.scan());
|
|
return (m = 16 === e || 0 !== d.getTokenError()), e;
|
|
}
|
|
var v = [];
|
|
function y(t, n, r) {
|
|
!m &&
|
|
n < a &&
|
|
r > s &&
|
|
e.substring(n, r) !== t &&
|
|
v.push({ offset: n, length: r - n, content: t });
|
|
}
|
|
var b = p();
|
|
if (17 !== b) {
|
|
var C = d.getTokenOffset() + o;
|
|
y(on(l, r), o, C);
|
|
}
|
|
for (; 17 !== b; ) {
|
|
for (
|
|
var _ = d.getTokenOffset() + d.getTokenLength() + o,
|
|
S = p(),
|
|
E = '';
|
|
!h && (12 === S || 13 === S);
|
|
|
|
)
|
|
y(' ', _, d.getTokenOffset() + o),
|
|
(_ = d.getTokenOffset() + d.getTokenLength() + o),
|
|
(E = 12 === S ? g() : ''),
|
|
(S = p());
|
|
if (2 === S) 1 !== b && (f--, (E = g()));
|
|
else if (4 === S) 3 !== b && (f--, (E = g()));
|
|
else {
|
|
switch (b) {
|
|
case 3:
|
|
case 1:
|
|
f++, (E = g());
|
|
break;
|
|
case 5:
|
|
case 12:
|
|
E = g();
|
|
break;
|
|
case 13:
|
|
E = h ? g() : ' ';
|
|
break;
|
|
case 6:
|
|
E = ' ';
|
|
break;
|
|
case 10:
|
|
if (6 === S) {
|
|
E = '';
|
|
break;
|
|
}
|
|
case 7:
|
|
case 8:
|
|
case 9:
|
|
case 11:
|
|
case 2:
|
|
case 4:
|
|
12 === S || 13 === S
|
|
? (E = ' ')
|
|
: 5 !== S && 17 !== S && (m = !0);
|
|
break;
|
|
case 16:
|
|
m = !0;
|
|
}
|
|
!h || (12 !== S && 13 !== S) || (E = g());
|
|
}
|
|
y(E, _, d.getTokenOffset() + o), (b = S);
|
|
}
|
|
return v;
|
|
})(e, t, n);
|
|
})(e.getText(), r, o).map(function (t) {
|
|
return Sn.replace(
|
|
ln.create(
|
|
e.positionAt(t.offset),
|
|
e.positionAt(t.offset + t.length)
|
|
),
|
|
t.content
|
|
);
|
|
});
|
|
},
|
|
};
|
|
}
|
|
var to,
|
|
no = function (e, t, n, r) {
|
|
return new (n || (n = Promise))(function (i, o) {
|
|
function s(e) {
|
|
try {
|
|
u(r.next(e));
|
|
} catch (e) {
|
|
o(e);
|
|
}
|
|
}
|
|
function a(e) {
|
|
try {
|
|
u(r.throw(e));
|
|
} catch (e) {
|
|
o(e);
|
|
}
|
|
}
|
|
function u(e) {
|
|
var t;
|
|
e.done
|
|
? i(e.value)
|
|
: ((t = e.value),
|
|
t instanceof n
|
|
? t
|
|
: new n(function (e) {
|
|
e(t);
|
|
})).then(s, a);
|
|
}
|
|
u((r = r.apply(e, t || [])).next());
|
|
});
|
|
},
|
|
ro = function (e, t) {
|
|
var n,
|
|
r,
|
|
i,
|
|
o,
|
|
s = {
|
|
label: 0,
|
|
sent: function () {
|
|
if (1 & i[0]) throw i[1];
|
|
return i[1];
|
|
},
|
|
trys: [],
|
|
ops: [],
|
|
};
|
|
return (
|
|
(o = { next: a(0), throw: a(1), return: a(2) }),
|
|
'function' == typeof Symbol &&
|
|
(o[Symbol.iterator] = function () {
|
|
return this;
|
|
}),
|
|
o
|
|
);
|
|
function a(o) {
|
|
return function (a) {
|
|
return (function (o) {
|
|
if (n) throw new TypeError('Generator is already executing.');
|
|
for (; s; )
|
|
try {
|
|
if (
|
|
((n = 1),
|
|
r &&
|
|
(i =
|
|
2 & o[0]
|
|
? r.return
|
|
: o[0]
|
|
? r.throw || ((i = r.return) && i.call(r), 0)
|
|
: r.next) &&
|
|
!(i = i.call(r, o[1])).done)
|
|
)
|
|
return i;
|
|
switch (((r = 0), i && (o = [2 & o[0], i.value]), o[0])) {
|
|
case 0:
|
|
case 1:
|
|
i = o;
|
|
break;
|
|
case 4:
|
|
return s.label++, { value: o[1], done: !1 };
|
|
case 5:
|
|
s.label++, (r = o[1]), (o = [0]);
|
|
continue;
|
|
case 7:
|
|
(o = s.ops.pop()), s.trys.pop();
|
|
continue;
|
|
default:
|
|
if (
|
|
!(
|
|
(i = (i = s.trys).length > 0 && i[i.length - 1]) ||
|
|
(6 !== o[0] && 2 !== o[0])
|
|
)
|
|
) {
|
|
s = 0;
|
|
continue;
|
|
}
|
|
if (3 === o[0] && (!i || (o[1] > i[0] && o[1] < i[3]))) {
|
|
s.label = o[1];
|
|
break;
|
|
}
|
|
if (6 === o[0] && s.label < i[1]) {
|
|
(s.label = i[1]), (i = o);
|
|
break;
|
|
}
|
|
if (i && s.label < i[2]) {
|
|
(s.label = i[2]), s.ops.push(o);
|
|
break;
|
|
}
|
|
i[2] && s.ops.pop(), s.trys.pop();
|
|
continue;
|
|
}
|
|
o = t.call(e, s);
|
|
} catch (e) {
|
|
(o = [6, e]), (r = 0);
|
|
} finally {
|
|
n = i = 0;
|
|
}
|
|
if (5 & o[0]) throw o[1];
|
|
return { value: o[0] ? o[1] : void 0, done: !0 };
|
|
})([o, a]);
|
|
};
|
|
}
|
|
};
|
|
'undefined' != typeof fetch &&
|
|
(to = function (e) {
|
|
return fetch(e).then(function (e) {
|
|
return e.text();
|
|
});
|
|
});
|
|
var io = (function () {
|
|
function e(e, t) {
|
|
(this._ctx = e),
|
|
(this._languageSettings = t.languageSettings),
|
|
(this._languageId = t.languageId),
|
|
(this._languageService = eo({
|
|
workspaceContext: {
|
|
resolveRelativePath: function (e, t) {
|
|
return (function (e, t) {
|
|
if (
|
|
(function (e) {
|
|
return e.charCodeAt(0) === oo;
|
|
})(t)
|
|
) {
|
|
var n = ci.parse(e),
|
|
r = t.split('/');
|
|
return n.with({ path: ao(r) }).toString();
|
|
}
|
|
return (function (e) {
|
|
for (var t = [], n = 1; n < arguments.length; n++)
|
|
t[n - 1] = arguments[n];
|
|
for (
|
|
var r = ci.parse(e), i = r.path.split('/'), o = 0, s = t;
|
|
o < s.length;
|
|
o++
|
|
) {
|
|
var a = s[o];
|
|
i.push.apply(i, a.split('/'));
|
|
}
|
|
return r.with({ path: ao(i) }).toString();
|
|
})(e, t);
|
|
})(t.substr(0, t.lastIndexOf('/') + 1), e);
|
|
},
|
|
},
|
|
schemaRequestService: t.enableSchemaRequest && to,
|
|
})),
|
|
this._languageService.configure(this._languageSettings);
|
|
}
|
|
return (
|
|
(e.prototype.doValidation = function (e) {
|
|
return no(this, void 0, void 0, function () {
|
|
var t, n;
|
|
return ro(this, function (r) {
|
|
return (t = this._getTextDocument(e))
|
|
? ((n = this._languageService.parseJSONDocument(t)),
|
|
[2, this._languageService.doValidation(t, n)])
|
|
: [2, Promise.resolve([])];
|
|
});
|
|
});
|
|
}),
|
|
(e.prototype.doComplete = function (e, t) {
|
|
return no(this, void 0, void 0, function () {
|
|
var n, r;
|
|
return ro(this, function (i) {
|
|
return (
|
|
(n = this._getTextDocument(e)),
|
|
(r = this._languageService.parseJSONDocument(n)),
|
|
[2, this._languageService.doComplete(n, t, r)]
|
|
);
|
|
});
|
|
});
|
|
}),
|
|
(e.prototype.doResolve = function (e) {
|
|
return no(this, void 0, void 0, function () {
|
|
return ro(this, function (t) {
|
|
return [2, this._languageService.doResolve(e)];
|
|
});
|
|
});
|
|
}),
|
|
(e.prototype.doHover = function (e, t) {
|
|
return no(this, void 0, void 0, function () {
|
|
var n, r;
|
|
return ro(this, function (i) {
|
|
return (
|
|
(n = this._getTextDocument(e)),
|
|
(r = this._languageService.parseJSONDocument(n)),
|
|
[2, this._languageService.doHover(n, t, r)]
|
|
);
|
|
});
|
|
});
|
|
}),
|
|
(e.prototype.format = function (e, t, n) {
|
|
return no(this, void 0, void 0, function () {
|
|
var r, i;
|
|
return ro(this, function (o) {
|
|
return (
|
|
(r = this._getTextDocument(e)),
|
|
(i = this._languageService.format(r, t, n)),
|
|
[2, Promise.resolve(i)]
|
|
);
|
|
});
|
|
});
|
|
}),
|
|
(e.prototype.resetSchema = function (e) {
|
|
return no(this, void 0, void 0, function () {
|
|
return ro(this, function (t) {
|
|
return [2, Promise.resolve(this._languageService.resetSchema(e))];
|
|
});
|
|
});
|
|
}),
|
|
(e.prototype.findDocumentSymbols = function (e) {
|
|
return no(this, void 0, void 0, function () {
|
|
var t, n, r;
|
|
return ro(this, function (i) {
|
|
return (
|
|
(t = this._getTextDocument(e)),
|
|
(n = this._languageService.parseJSONDocument(t)),
|
|
(r = this._languageService.findDocumentSymbols(t, n)),
|
|
[2, Promise.resolve(r)]
|
|
);
|
|
});
|
|
});
|
|
}),
|
|
(e.prototype.findDocumentColors = function (e) {
|
|
return no(this, void 0, void 0, function () {
|
|
var t, n, r;
|
|
return ro(this, function (i) {
|
|
return (
|
|
(t = this._getTextDocument(e)),
|
|
(n = this._languageService.parseJSONDocument(t)),
|
|
(r = this._languageService.findDocumentColors(t, n)),
|
|
[2, Promise.resolve(r)]
|
|
);
|
|
});
|
|
});
|
|
}),
|
|
(e.prototype.getColorPresentations = function (e, t, n) {
|
|
return no(this, void 0, void 0, function () {
|
|
var r, i, o;
|
|
return ro(this, function (s) {
|
|
return (
|
|
(r = this._getTextDocument(e)),
|
|
(i = this._languageService.parseJSONDocument(r)),
|
|
(o = this._languageService.getColorPresentations(r, i, t, n)),
|
|
[2, Promise.resolve(o)]
|
|
);
|
|
});
|
|
});
|
|
}),
|
|
(e.prototype.getFoldingRanges = function (e, t) {
|
|
return no(this, void 0, void 0, function () {
|
|
var n, r;
|
|
return ro(this, function (i) {
|
|
return (
|
|
(n = this._getTextDocument(e)),
|
|
(r = this._languageService.getFoldingRanges(n, t)),
|
|
[2, Promise.resolve(r)]
|
|
);
|
|
});
|
|
});
|
|
}),
|
|
(e.prototype.getSelectionRanges = function (e, t) {
|
|
return no(this, void 0, void 0, function () {
|
|
var n, r, i;
|
|
return ro(this, function (o) {
|
|
return (
|
|
(n = this._getTextDocument(e)),
|
|
(r = this._languageService.parseJSONDocument(n)),
|
|
(i = this._languageService.getSelectionRanges(n, t, r)),
|
|
[2, Promise.resolve(i)]
|
|
);
|
|
});
|
|
});
|
|
}),
|
|
(e.prototype._getTextDocument = function (e) {
|
|
for (var t = 0, n = this._ctx.getMirrorModels(); t < n.length; t++) {
|
|
var r = n[t];
|
|
if (r.uri.toString() === e)
|
|
return mr.create(e, this._languageId, r.version, r.getValue());
|
|
}
|
|
return null;
|
|
}),
|
|
e
|
|
);
|
|
})(),
|
|
oo = '/'.charCodeAt(0),
|
|
so = '.'.charCodeAt(0);
|
|
function ao(e) {
|
|
for (var t = [], n = 0, r = e; n < r.length; n++) {
|
|
var i = r[n];
|
|
0 === i.length ||
|
|
(1 === i.length && i.charCodeAt(0) === so) ||
|
|
(2 === i.length && i.charCodeAt(0) === so && i.charCodeAt(1) === so
|
|
? t.pop()
|
|
: t.push(i));
|
|
}
|
|
e.length > 1 && 0 === e[e.length - 1].length && t.push('');
|
|
var o = t.join('/');
|
|
return 0 === e[0].length && (o = '/' + o), o;
|
|
}
|
|
self.onmessage = function () {
|
|
Xt(function (e, t) {
|
|
return new io(e, t);
|
|
});
|
|
};
|
|
})();
|