UNPKG

sigma-ui

Version:
1,383 lines (1,380 loc) 167 kB
import "./chunk-PZ5AY32C.js"; // ../../node_modules/.pnpm/prettier@3.5.0/node_modules/prettier/plugins/yaml.mjs var Ti = Object.create; var tn = Object.defineProperty; var Ci = Object.getOwnPropertyDescriptor; var Mi = Object.getOwnPropertyNames; var ki = Object.getPrototypeOf; var vi = Object.prototype.hasOwnProperty; var te = (t, e) => () => (e || t((e = { exports: {} }).exports, e), e.exports); var rr = (t, e) => { for (var n in e) tn(t, n, { get: e[n], enumerable: true }); }; var Ii = (t, e, n, r) => { if (e && typeof e == "object" || typeof e == "function") for (let s of Mi(e)) !vi.call(t, s) && s !== n && tn(t, s, { get: () => e[s], enumerable: !(r = Ci(e, s)) || r.enumerable }); return t; }; var sr = (t, e, n) => (n = t != null ? Ti(ki(t)) : {}, Ii(e || !t || !t.__esModule ? tn(n, "default", { value: t, enumerable: true }) : n, t)); var le = te((U) => { "use strict"; var re = { ANCHOR: "&", COMMENT: "#", TAG: "!", DIRECTIVES_END: "-", DOCUMENT_END: "." }, lt = { ALIAS: "ALIAS", BLANK_LINE: "BLANK_LINE", BLOCK_FOLDED: "BLOCK_FOLDED", BLOCK_LITERAL: "BLOCK_LITERAL", COMMENT: "COMMENT", DIRECTIVE: "DIRECTIVE", DOCUMENT: "DOCUMENT", FLOW_MAP: "FLOW_MAP", FLOW_SEQ: "FLOW_SEQ", MAP: "MAP", MAP_KEY: "MAP_KEY", MAP_VALUE: "MAP_VALUE", PLAIN: "PLAIN", QUOTE_DOUBLE: "QUOTE_DOUBLE", QUOTE_SINGLE: "QUOTE_SINGLE", SEQ: "SEQ", SEQ_ITEM: "SEQ_ITEM" }, Ao = "tag:yaml.org,2002:", To = { MAP: "tag:yaml.org,2002:map", SEQ: "tag:yaml.org,2002:seq", STR: "tag:yaml.org,2002:str" }; function Ps(t) { let e = [0], n = t.indexOf(` `); for (; n !== -1; ) n += 1, e.push(n), n = t.indexOf(` `, n); return e; } function _s(t) { let e, n; return typeof t == "string" ? (e = Ps(t), n = t) : (Array.isArray(t) && (t = t[0]), t && t.context && (t.lineStarts || (t.lineStarts = Ps(t.context.src)), e = t.lineStarts, n = t.context.src)), { lineStarts: e, src: n }; } function Tn(t, e) { if (typeof t != "number" || t < 0) return null; let { lineStarts: n, src: r } = _s(e); if (!n || !r || t > r.length) return null; for (let i = 0; i < n.length; ++i) { let o = n[i]; if (t < o) return { line: i, col: t - n[i - 1] + 1 }; if (t === o) return { line: i + 1, col: 1 }; } let s = n.length; return { line: s, col: t - n[s - 1] + 1 }; } function Co(t, e) { let { lineStarts: n, src: r } = _s(e); if (!n || !(t >= 1) || t > n.length) return null; let s = n[t - 1], i = n[t]; for (; i && i > s && r[i - 1] === ` `; ) --i; return r.slice(s, i); } function Mo({ start: t, end: e }, n, r = 80) { let s = Co(t.line, n); if (!s) return null; let { col: i } = t; if (s.length > r) if (i <= r - 10) s = s.substr(0, r - 1) + "\u2026"; else { let f = Math.round(r / 2); s.length > i + f && (s = s.substr(0, i + f - 1) + "\u2026"), i -= s.length - r, s = "\u2026" + s.substr(1 - r); } let o = 1, a = ""; e && (e.line === t.line && i + (e.col - t.col) <= r + 1 ? o = e.col - t.col : (o = Math.min(s.length + 1, r) - i, a = "\u2026")); let c = i > 1 ? " ".repeat(i - 1) : "", l = "^".repeat(o); return `${s} ${c}${l}${a}`; } var Be = class t { static copy(e) { return new t(e.start, e.end); } constructor(e, n) { this.start = e, this.end = n || e; } isEmpty() { return typeof this.start != "number" || !this.end || this.end <= this.start; } setOrigRange(e, n) { let { start: r, end: s } = this; if (e.length === 0 || s <= e[0]) return this.origStart = r, this.origEnd = s, n; let i = n; for (; i < e.length && !(e[i] > r); ) ++i; this.origStart = r + i; let o = i; for (; i < e.length && !(e[i] >= s); ) ++i; return this.origEnd = s + i, o; } }, se = class t { static addStringTerminator(e, n, r) { if (r[r.length - 1] === ` `) return r; let s = t.endOfWhiteSpace(e, n); return s >= e.length || e[s] === ` ` ? r + ` ` : r; } static atDocumentBoundary(e, n, r) { let s = e[n]; if (!s) return true; let i = e[n - 1]; if (i && i !== ` `) return false; if (r) { if (s !== r) return false; } else if (s !== re.DIRECTIVES_END && s !== re.DOCUMENT_END) return false; let o = e[n + 1], a = e[n + 2]; if (o !== s || a !== s) return false; let c = e[n + 3]; return !c || c === ` ` || c === " " || c === " "; } static endOfIdentifier(e, n) { let r = e[n], s = r === "<", i = s ? [` `, " ", " ", ">"] : [` `, " ", " ", "[", "]", "{", "}", ","]; for (; r && i.indexOf(r) === -1; ) r = e[n += 1]; return s && r === ">" && (n += 1), n; } static endOfIndent(e, n) { let r = e[n]; for (; r === " "; ) r = e[n += 1]; return n; } static endOfLine(e, n) { let r = e[n]; for (; r && r !== ` `; ) r = e[n += 1]; return n; } static endOfWhiteSpace(e, n) { let r = e[n]; for (; r === " " || r === " "; ) r = e[n += 1]; return n; } static startOfLine(e, n) { let r = e[n - 1]; if (r === ` `) return n; for (; r && r !== ` `; ) r = e[n -= 1]; return n + 1; } static endOfBlockIndent(e, n, r) { let s = t.endOfIndent(e, r); if (s > r + n) return s; { let i = t.endOfWhiteSpace(e, s), o = e[i]; if (!o || o === ` `) return i; } return null; } static atBlank(e, n, r) { let s = e[n]; return s === ` ` || s === " " || s === " " || r && !s; } static nextNodeIsIndented(e, n, r) { return !e || n < 0 ? false : n > 0 ? true : r && e === "-"; } static normalizeOffset(e, n) { let r = e[n]; return r ? r !== ` ` && e[n - 1] === ` ` ? n - 1 : t.endOfWhiteSpace(e, n) : n; } static foldNewline(e, n, r) { let s = 0, i = false, o = "", a = e[n + 1]; for (; a === " " || a === " " || a === ` `; ) { switch (a) { case ` `: s = 0, n += 1, o += ` `; break; case " ": s <= r && (i = true), n = t.endOfWhiteSpace(e, n + 2) - 1; break; case " ": s += 1, n += 1; break; } a = e[n + 1]; } return o || (o = " "), a && s <= r && (i = true), { fold: o, offset: n, error: i }; } constructor(e, n, r) { Object.defineProperty(this, "context", { value: r || null, writable: true }), this.error = null, this.range = null, this.valueRange = null, this.props = n || [], this.type = e, this.value = null; } getPropValue(e, n, r) { if (!this.context) return null; let { src: s } = this.context, i = this.props[e]; return i && s[i.start] === n ? s.slice(i.start + (r ? 1 : 0), i.end) : null; } get anchor() { for (let e = 0; e < this.props.length; ++e) { let n = this.getPropValue(e, re.ANCHOR, true); if (n != null) return n; } return null; } get comment() { let e = []; for (let n = 0; n < this.props.length; ++n) { let r = this.getPropValue(n, re.COMMENT, true); r != null && e.push(r); } return e.length > 0 ? e.join(` `) : null; } commentHasRequiredWhitespace(e) { let { src: n } = this.context; if (this.header && e === this.header.end || !this.valueRange) return false; let { end: r } = this.valueRange; return e !== r || t.atBlank(n, r - 1); } get hasComment() { if (this.context) { let { src: e } = this.context; for (let n = 0; n < this.props.length; ++n) if (e[this.props[n].start] === re.COMMENT) return true; } return false; } get hasProps() { if (this.context) { let { src: e } = this.context; for (let n = 0; n < this.props.length; ++n) if (e[this.props[n].start] !== re.COMMENT) return true; } return false; } get includesTrailingLines() { return false; } get jsonLike() { return [lt.FLOW_MAP, lt.FLOW_SEQ, lt.QUOTE_DOUBLE, lt.QUOTE_SINGLE].indexOf(this.type) !== -1; } get rangeAsLinePos() { if (!this.range || !this.context) return; let e = Tn(this.range.start, this.context.root); if (!e) return; let n = Tn(this.range.end, this.context.root); return { start: e, end: n }; } get rawValue() { if (!this.valueRange || !this.context) return null; let { start: e, end: n } = this.valueRange; return this.context.src.slice(e, n); } get tag() { for (let e = 0; e < this.props.length; ++e) { let n = this.getPropValue(e, re.TAG, false); if (n != null) { if (n[1] === "<") return { verbatim: n.slice(2, -1) }; { let [r, s, i] = n.match(/^(.*!)([^!]*)$/); return { handle: s, suffix: i }; } } } return null; } get valueRangeContainsNewline() { if (!this.valueRange || !this.context) return false; let { start: e, end: n } = this.valueRange, { src: r } = this.context; for (let s = e; s < n; ++s) if (r[s] === ` `) return true; return false; } parseComment(e) { let { src: n } = this.context; if (n[e] === re.COMMENT) { let r = t.endOfLine(n, e + 1), s = new Be(e, r); return this.props.push(s), r; } return e; } setOrigRanges(e, n) { return this.range && (n = this.range.setOrigRange(e, n)), this.valueRange && this.valueRange.setOrigRange(e, n), this.props.forEach((r) => r.setOrigRange(e, n)), n; } toString() { let { context: { src: e }, range: n, value: r } = this; if (r != null) return r; let s = e.slice(n.start, n.end); return t.addStringTerminator(e, n.end, s); } }, ye = class extends Error { constructor(e, n, r) { if (!r || !(n instanceof se)) throw new Error(`Invalid arguments for new ${e}`); super(), this.name = e, this.message = r, this.source = n; } makePretty() { if (!this.source) return; this.nodeType = this.source.type; let e = this.source.context && this.source.context.root; if (typeof this.offset == "number") { this.range = new Be(this.offset, this.offset + 1); let n = e && Tn(this.offset, e); if (n) { let r = { line: n.line, col: n.col + 1 }; this.linePos = { start: n, end: r }; } delete this.offset; } else this.range = this.source.range, this.linePos = this.source.rangeAsLinePos; if (this.linePos) { let { line: n, col: r } = this.linePos.start; this.message += ` at line ${n}, column ${r}`; let s = e && Mo(this.linePos, e); s && (this.message += `: ${s} `); } delete this.source; } }, Cn = class extends ye { constructor(e, n) { super("YAMLReferenceError", e, n); } }, ft = class extends ye { constructor(e, n) { super("YAMLSemanticError", e, n); } }, Mn = class extends ye { constructor(e, n) { super("YAMLSyntaxError", e, n); } }, kn = class extends ye { constructor(e, n) { super("YAMLWarning", e, n); } }; function ko(t, e, n) { return e in t ? Object.defineProperty(t, e, { value: n, enumerable: true, configurable: true, writable: true }) : t[e] = n, t; } var vn = class t extends se { static endOfLine(e, n, r) { let s = e[n], i = n; for (; s && s !== ` ` && !(r && (s === "[" || s === "]" || s === "{" || s === "}" || s === ",")); ) { let o = e[i + 1]; if (s === ":" && (!o || o === ` ` || o === " " || o === " " || r && o === ",") || (s === " " || s === " ") && o === "#") break; i += 1, s = o; } return i; } get strValue() { if (!this.valueRange || !this.context) return null; let { start: e, end: n } = this.valueRange, { src: r } = this.context, s = r[n - 1]; for (; e < n && (s === ` ` || s === " " || s === " "); ) s = r[--n - 1]; let i = ""; for (let a = e; a < n; ++a) { let c = r[a]; if (c === ` `) { let { fold: l, offset: f } = se.foldNewline(r, a, -1); i += l, a = f; } else if (c === " " || c === " ") { let l = a, f = r[a + 1]; for (; a < n && (f === " " || f === " "); ) a += 1, f = r[a + 1]; f !== ` ` && (i += a > l ? r.slice(l, a + 1) : c); } else i += c; } let o = r[e]; switch (o) { case " ": { let a = "Plain value cannot start with a tab character"; return { errors: [new ft(this, a)], str: i }; } case "@": case "`": { let a = `Plain value cannot start with reserved character ${o}`; return { errors: [new ft(this, a)], str: i }; } default: return i; } } parseBlockValue(e) { let { indent: n, inFlow: r, src: s } = this.context, i = e, o = e; for (let a = s[i]; a === ` ` && !se.atDocumentBoundary(s, i + 1); a = s[i]) { let c = se.endOfBlockIndent(s, n, i + 1); if (c === null || s[c] === "#") break; s[c] === ` ` ? i = c : (o = t.endOfLine(s, c, r), i = o); } return this.valueRange.isEmpty() && (this.valueRange.start = e), this.valueRange.end = o, o; } parse(e, n) { this.context = e; let { inFlow: r, src: s } = e, i = n, o = s[i]; return o && o !== "#" && o !== ` ` && (i = t.endOfLine(s, n, r)), this.valueRange = new Be(n, i), i = se.endOfWhiteSpace(s, i), i = this.parseComment(i), (!this.hasComment || this.valueRange.isEmpty()) && (i = this.parseBlockValue(i)), i; } }; U.Char = re; U.Node = se; U.PlainValue = vn; U.Range = Be; U.Type = lt; U.YAMLError = ye; U.YAMLReferenceError = Cn; U.YAMLSemanticError = ft; U.YAMLSyntaxError = Mn; U.YAMLWarning = kn; U._defineProperty = ko; U.defaultTagPrefix = Ao; U.defaultTags = To; }); var Rs = te((xs) => { "use strict"; var u = le(), Se = class extends u.Node { constructor() { super(u.Type.BLANK_LINE); } get includesTrailingLines() { return true; } parse(e, n) { return this.context = e, this.range = new u.Range(n, n + 1), n + 1; } }, ut = class extends u.Node { constructor(e, n) { super(e, n), this.node = null; } get includesTrailingLines() { return !!this.node && this.node.includesTrailingLines; } parse(e, n) { this.context = e; let { parseNode: r, src: s } = e, { atLineStart: i, lineStart: o } = e; !i && this.type === u.Type.SEQ_ITEM && (this.error = new u.YAMLSemanticError(this, "Sequence items must not have preceding content on the same line")); let a = i ? n - o : e.indent, c = u.Node.endOfWhiteSpace(s, n + 1), l = s[c], f = l === "#", m = [], d = null; for (; l === ` ` || l === "#"; ) { if (l === "#") { let h = u.Node.endOfLine(s, c + 1); m.push(new u.Range(c, h)), c = h; } else { i = true, o = c + 1; let h = u.Node.endOfWhiteSpace(s, o); s[h] === ` ` && m.length === 0 && (d = new Se(), o = d.parse({ src: s }, o)), c = u.Node.endOfIndent(s, o); } l = s[c]; } if (u.Node.nextNodeIsIndented(l, c - (o + a), this.type !== u.Type.SEQ_ITEM) ? this.node = r({ atLineStart: i, inCollection: false, indent: a, lineStart: o, parent: this }, c) : l && o > n + 1 && (c = o - 1), this.node) { if (d) { let h = e.parent.items || e.parent.contents; h && h.push(d); } m.length && Array.prototype.push.apply(this.props, m), c = this.node.range.end; } else if (f) { let h = m[0]; this.props.push(h), c = h.end; } else c = u.Node.endOfLine(s, n + 1); let y = this.node ? this.node.valueRange.end : c; return this.valueRange = new u.Range(n, y), c; } setOrigRanges(e, n) { return n = super.setOrigRanges(e, n), this.node ? this.node.setOrigRanges(e, n) : n; } toString() { let { context: { src: e }, node: n, range: r, value: s } = this; if (s != null) return s; let i = n ? e.slice(r.start, n.range.start) + String(n) : e.slice(r.start, r.end); return u.Node.addStringTerminator(e, r.end, i); } }, Ee = class extends u.Node { constructor() { super(u.Type.COMMENT); } parse(e, n) { this.context = e; let r = this.parseComment(n); return this.range = new u.Range(n, r), r; } }; function In(t) { let e = t; for (; e instanceof ut; ) e = e.node; if (!(e instanceof $t)) return null; let n = e.items.length, r = -1; for (let o = n - 1; o >= 0; --o) { let a = e.items[o]; if (a.type === u.Type.COMMENT) { let { indent: c, lineStart: l } = a.context; if (c > 0 && a.range.start >= l + c) break; r = o; } else if (a.type === u.Type.BLANK_LINE) r = o; else break; } if (r === -1) return null; let s = e.items.splice(r, n - r), i = s[0].range.start; for (; e.range.end = i, e.valueRange && e.valueRange.end > i && (e.valueRange.end = i), e !== t; ) e = e.context.parent; return s; } var $t = class t extends u.Node { static nextContentHasIndent(e, n, r) { let s = u.Node.endOfLine(e, n) + 1; n = u.Node.endOfWhiteSpace(e, s); let i = e[n]; return i ? n >= s + r ? true : i !== "#" && i !== ` ` ? false : t.nextContentHasIndent(e, n, r) : false; } constructor(e) { super(e.type === u.Type.SEQ_ITEM ? u.Type.SEQ : u.Type.MAP); for (let r = e.props.length - 1; r >= 0; --r) if (e.props[r].start < e.context.lineStart) { this.props = e.props.slice(0, r + 1), e.props = e.props.slice(r + 1); let s = e.props[0] || e.valueRange; e.range.start = s.start; break; } this.items = [e]; let n = In(e); n && Array.prototype.push.apply(this.items, n); } get includesTrailingLines() { return this.items.length > 0; } parse(e, n) { this.context = e; let { parseNode: r, src: s } = e, i = u.Node.startOfLine(s, n), o = this.items[0]; o.context.parent = this, this.valueRange = u.Range.copy(o.valueRange); let a = o.range.start - o.context.lineStart, c = n; c = u.Node.normalizeOffset(s, c); let l = s[c], f = u.Node.endOfWhiteSpace(s, i) === c, m = false; for (; l; ) { for (; l === ` ` || l === "#"; ) { if (f && l === ` ` && !m) { let h = new Se(); if (c = h.parse({ src: s }, c), this.valueRange.end = c, c >= s.length) { l = null; break; } this.items.push(h), c -= 1; } else if (l === "#") { if (c < i + a && !t.nextContentHasIndent(s, c, a)) return c; let h = new Ee(); if (c = h.parse({ indent: a, lineStart: i, src: s }, c), this.items.push(h), this.valueRange.end = c, c >= s.length) { l = null; break; } } if (i = c + 1, c = u.Node.endOfIndent(s, i), u.Node.atBlank(s, c)) { let h = u.Node.endOfWhiteSpace(s, c), g = s[h]; (!g || g === ` ` || g === "#") && (c = h); } l = s[c], f = true; } if (!l) break; if (c !== i + a && (f || l !== ":")) { if (c < i + a) { i > n && (c = i); break; } else if (!this.error) { let h = "All collection items must start at the same column"; this.error = new u.YAMLSyntaxError(this, h); } } if (o.type === u.Type.SEQ_ITEM) { if (l !== "-") { i > n && (c = i); break; } } else if (l === "-" && !this.error) { let h = s[c + 1]; if (!h || h === ` ` || h === " " || h === " ") { let g = "A collection cannot be both a mapping and a sequence"; this.error = new u.YAMLSyntaxError(this, g); } } let d = r({ atLineStart: f, inCollection: true, indent: a, lineStart: i, parent: this }, c); if (!d) return c; if (this.items.push(d), this.valueRange.end = d.valueRange.end, c = u.Node.normalizeOffset(s, d.range.end), l = s[c], f = false, m = d.includesTrailingLines, l) { let h = c - 1, g = s[h]; for (; g === " " || g === " "; ) g = s[--h]; g === ` ` && (i = h + 1, f = true); } let y = In(d); y && Array.prototype.push.apply(this.items, y); } return c; } setOrigRanges(e, n) { return n = super.setOrigRanges(e, n), this.items.forEach((r) => { n = r.setOrigRanges(e, n); }), n; } toString() { let { context: { src: e }, items: n, range: r, value: s } = this; if (s != null) return s; let i = e.slice(r.start, n[0].range.start) + String(n[0]); for (let o = 1; o < n.length; ++o) { let a = n[o], { atLineStart: c, indent: l } = a.context; if (c) for (let f = 0; f < l; ++f) i += " "; i += String(a); } return u.Node.addStringTerminator(e, r.end, i); } }, Pn = class extends u.Node { constructor() { super(u.Type.DIRECTIVE), this.name = null; } get parameters() { let e = this.rawValue; return e ? e.trim().split(/[ \t]+/) : []; } parseName(e) { let { src: n } = this.context, r = e, s = n[r]; for (; s && s !== ` ` && s !== " " && s !== " "; ) s = n[r += 1]; return this.name = n.slice(e, r), r; } parseParameters(e) { let { src: n } = this.context, r = e, s = n[r]; for (; s && s !== ` ` && s !== "#"; ) s = n[r += 1]; return this.valueRange = new u.Range(e, r), r; } parse(e, n) { this.context = e; let r = this.parseName(n + 1); return r = this.parseParameters(r), r = this.parseComment(r), this.range = new u.Range(n, r), r; } }, _n = class t extends u.Node { static startCommentOrEndBlankLine(e, n) { let r = u.Node.endOfWhiteSpace(e, n), s = e[r]; return s === "#" || s === ` ` ? r : n; } constructor() { super(u.Type.DOCUMENT), this.directives = null, this.contents = null, this.directivesEndMarker = null, this.documentEndMarker = null; } parseDirectives(e) { let { src: n } = this.context; this.directives = []; let r = true, s = false, i = e; for (; !u.Node.atDocumentBoundary(n, i, u.Char.DIRECTIVES_END); ) switch (i = t.startCommentOrEndBlankLine(n, i), n[i]) { case ` `: if (r) { let o = new Se(); i = o.parse({ src: n }, i), i < n.length && this.directives.push(o); } else i += 1, r = true; break; case "#": { let o = new Ee(); i = o.parse({ src: n }, i), this.directives.push(o), r = false; } break; case "%": { let o = new Pn(); i = o.parse({ parent: this, src: n }, i), this.directives.push(o), s = true, r = false; } break; default: return s ? this.error = new u.YAMLSemanticError(this, "Missing directives-end indicator line") : this.directives.length > 0 && (this.contents = this.directives, this.directives = []), i; } return n[i] ? (this.directivesEndMarker = new u.Range(i, i + 3), i + 3) : (s ? this.error = new u.YAMLSemanticError(this, "Missing directives-end indicator line") : this.directives.length > 0 && (this.contents = this.directives, this.directives = []), i); } parseContents(e) { let { parseNode: n, src: r } = this.context; this.contents || (this.contents = []); let s = e; for (; r[s - 1] === "-"; ) s -= 1; let i = u.Node.endOfWhiteSpace(r, e), o = s === e; for (this.valueRange = new u.Range(i); !u.Node.atDocumentBoundary(r, i, u.Char.DOCUMENT_END); ) { switch (r[i]) { case ` `: if (o) { let a = new Se(); i = a.parse({ src: r }, i), i < r.length && this.contents.push(a); } else i += 1, o = true; s = i; break; case "#": { let a = new Ee(); i = a.parse({ src: r }, i), this.contents.push(a), o = false; } break; default: { let a = u.Node.endOfIndent(r, i), l = n({ atLineStart: o, indent: -1, inFlow: false, inCollection: false, lineStart: s, parent: this }, a); if (!l) return this.valueRange.end = a; this.contents.push(l), i = l.range.end, o = false; let f = In(l); f && Array.prototype.push.apply(this.contents, f); } } i = t.startCommentOrEndBlankLine(r, i); } if (this.valueRange.end = i, r[i] && (this.documentEndMarker = new u.Range(i, i + 3), i += 3, r[i])) { if (i = u.Node.endOfWhiteSpace(r, i), r[i] === "#") { let a = new Ee(); i = a.parse({ src: r }, i), this.contents.push(a); } switch (r[i]) { case ` `: i += 1; break; case void 0: break; default: this.error = new u.YAMLSyntaxError(this, "Document end marker line cannot have a non-comment suffix"); } } return i; } parse(e, n) { e.root = this, this.context = e; let { src: r } = e, s = r.charCodeAt(n) === 65279 ? n + 1 : n; return s = this.parseDirectives(s), s = this.parseContents(s), s; } setOrigRanges(e, n) { return n = super.setOrigRanges(e, n), this.directives.forEach((r) => { n = r.setOrigRanges(e, n); }), this.directivesEndMarker && (n = this.directivesEndMarker.setOrigRange(e, n)), this.contents.forEach((r) => { n = r.setOrigRanges(e, n); }), this.documentEndMarker && (n = this.documentEndMarker.setOrigRange(e, n)), n; } toString() { let { contents: e, directives: n, value: r } = this; if (r != null) return r; let s = n.join(""); return e.length > 0 && ((n.length > 0 || e[0].type === u.Type.COMMENT) && (s += `--- `), s += e.join("")), s[s.length - 1] !== ` ` && (s += ` `), s; } }, xn = class extends u.Node { parse(e, n) { this.context = e; let { src: r } = e, s = u.Node.endOfIdentifier(r, n + 1); return this.valueRange = new u.Range(n + 1, s), s = u.Node.endOfWhiteSpace(r, s), s = this.parseComment(s), s; } }, fe = { CLIP: "CLIP", KEEP: "KEEP", STRIP: "STRIP" }, Rn = class extends u.Node { constructor(e, n) { super(e, n), this.blockIndent = null, this.chomping = fe.CLIP, this.header = null; } get includesTrailingLines() { return this.chomping === fe.KEEP; } get strValue() { if (!this.valueRange || !this.context) return null; let { start: e, end: n } = this.valueRange, { indent: r, src: s } = this.context; if (this.valueRange.isEmpty()) return ""; let i = null, o = s[n - 1]; for (; o === ` ` || o === " " || o === " "; ) { if (n -= 1, n <= e) { if (this.chomping === fe.KEEP) break; return ""; } o === ` ` && (i = n), o = s[n - 1]; } let a = n + 1; i && (this.chomping === fe.KEEP ? (a = i, n = this.valueRange.end) : n = i); let c = r + this.blockIndent, l = this.type === u.Type.BLOCK_FOLDED, f = true, m = "", d = "", y = false; for (let h = e; h < n; ++h) { for (let w = 0; w < c && s[h] === " "; ++w) h += 1; let g = s[h]; if (g === ` `) d === ` ` ? m += ` ` : d = ` `; else { let w = u.Node.endOfLine(s, h), C = s.slice(h, w); h = w, l && (g === " " || g === " ") && h < a ? (d === " " ? d = ` ` : !y && !f && d === ` ` && (d = ` `), m += d + C, d = w < n && s[w] || "", y = true) : (m += d + C, d = l && h < a ? " " : ` `, y = false), f && C !== "" && (f = false); } } return this.chomping === fe.STRIP ? m : m + ` `; } parseBlockHeader(e) { let { src: n } = this.context, r = e + 1, s = ""; for (; ; ) { let i = n[r]; switch (i) { case "-": this.chomping = fe.STRIP; break; case "+": this.chomping = fe.KEEP; break; case "0": case "1": case "2": case "3": case "4": case "5": case "6": case "7": case "8": case "9": s += i; break; default: return this.blockIndent = Number(s) || null, this.header = new u.Range(e, r), r; } r += 1; } } parseBlockValue(e) { let { indent: n, src: r } = this.context, s = !!this.blockIndent, i = e, o = e, a = 1; for (let c = r[i]; c === ` ` && (i += 1, !u.Node.atDocumentBoundary(r, i)); c = r[i]) { let l = u.Node.endOfBlockIndent(r, n, i); if (l === null) break; let f = r[l], m = l - (i + n); if (this.blockIndent) { if (f && f !== ` ` && m < this.blockIndent) { if (r[l] === "#") break; if (!this.error) { let y = `Block scalars must not be less indented than their ${s ? "explicit indentation indicator" : "first line"}`; this.error = new u.YAMLSemanticError(this, y); } } } else if (r[l] !== ` `) { if (m < a) { let d = "Block scalars with more-indented leading empty lines must use an explicit indentation indicator"; this.error = new u.YAMLSemanticError(this, d); } this.blockIndent = m; } else m > a && (a = m); r[l] === ` ` ? i = l : i = o = u.Node.endOfLine(r, l); } return this.chomping !== fe.KEEP && (i = r[o] ? o + 1 : o), this.valueRange = new u.Range(e + 1, i), i; } parse(e, n) { this.context = e; let { src: r } = e, s = this.parseBlockHeader(n); return s = u.Node.endOfWhiteSpace(r, s), s = this.parseComment(s), s = this.parseBlockValue(s), s; } setOrigRanges(e, n) { return n = super.setOrigRanges(e, n), this.header ? this.header.setOrigRange(e, n) : n; } }, Dn = class extends u.Node { constructor(e, n) { super(e, n), this.items = null; } prevNodeIsJsonLike(e = this.items.length) { let n = this.items[e - 1]; return !!n && (n.jsonLike || n.type === u.Type.COMMENT && this.prevNodeIsJsonLike(e - 1)); } parse(e, n) { this.context = e; let { parseNode: r, src: s } = e, { indent: i, lineStart: o } = e, a = s[n]; this.items = [{ char: a, offset: n }]; let c = u.Node.endOfWhiteSpace(s, n + 1); for (a = s[c]; a && a !== "]" && a !== "}"; ) { switch (a) { case ` `: { o = c + 1; let l = u.Node.endOfWhiteSpace(s, o); if (s[l] === ` `) { let f = new Se(); o = f.parse({ src: s }, o), this.items.push(f); } if (c = u.Node.endOfIndent(s, o), c <= o + i && (a = s[c], c < o + i || a !== "]" && a !== "}")) { let f = "Insufficient indentation in flow collection"; this.error = new u.YAMLSemanticError(this, f); } } break; case ",": this.items.push({ char: a, offset: c }), c += 1; break; case "#": { let l = new Ee(); c = l.parse({ src: s }, c), this.items.push(l); } break; case "?": case ":": { let l = s[c + 1]; if (l === ` ` || l === " " || l === " " || l === "," || a === ":" && this.prevNodeIsJsonLike()) { this.items.push({ char: a, offset: c }), c += 1; break; } } default: { let l = r({ atLineStart: false, inCollection: false, inFlow: true, indent: -1, lineStart: o, parent: this }, c); if (!l) return this.valueRange = new u.Range(n, c), c; this.items.push(l), c = u.Node.normalizeOffset(s, l.range.end); } } c = u.Node.endOfWhiteSpace(s, c), a = s[c]; } return this.valueRange = new u.Range(n, c + 1), a && (this.items.push({ char: a, offset: c }), c = u.Node.endOfWhiteSpace(s, c + 1), c = this.parseComment(c)), c; } setOrigRanges(e, n) { return n = super.setOrigRanges(e, n), this.items.forEach((r) => { if (r instanceof u.Node) n = r.setOrigRanges(e, n); else if (e.length === 0) r.origOffset = r.offset; else { let s = n; for (; s < e.length && !(e[s] > r.offset); ) ++s; r.origOffset = r.offset + s, n = s; } }), n; } toString() { let { context: { src: e }, items: n, range: r, value: s } = this; if (s != null) return s; let i = n.filter((c) => c instanceof u.Node), o = "", a = r.start; return i.forEach((c) => { let l = e.slice(a, c.range.start); a = c.range.end, o += l + String(c), o[o.length - 1] === ` ` && e[a - 1] !== ` ` && e[a] === ` ` && (a += 1); }), o += e.slice(a, r.end), u.Node.addStringTerminator(e, r.end, o); } }, Yn = class t extends u.Node { static endOfQuote(e, n) { let r = e[n]; for (; r && r !== '"'; ) n += r === "\\" ? 2 : 1, r = e[n]; return n + 1; } get strValue() { if (!this.valueRange || !this.context) return null; let e = [], { start: n, end: r } = this.valueRange, { indent: s, src: i } = this.context; i[r - 1] !== '"' && e.push(new u.YAMLSyntaxError(this, 'Missing closing "quote')); let o = ""; for (let a = n + 1; a < r - 1; ++a) { let c = i[a]; if (c === ` `) { u.Node.atDocumentBoundary(i, a + 1) && e.push(new u.YAMLSemanticError(this, "Document boundary indicators are not allowed within string values")); let { fold: l, offset: f, error: m } = u.Node.foldNewline(i, a, s); o += l, a = f, m && e.push(new u.YAMLSemanticError(this, "Multi-line double-quoted string needs to be sufficiently indented")); } else if (c === "\\") switch (a += 1, i[a]) { case "0": o += "\0"; break; case "a": o += "\x07"; break; case "b": o += "\b"; break; case "e": o += "\x1B"; break; case "f": o += "\f"; break; case "n": o += ` `; break; case "r": o += "\r"; break; case "t": o += " "; break; case "v": o += "\v"; break; case "N": o += "\x85"; break; case "_": o += "\xA0"; break; case "L": o += "\u2028"; break; case "P": o += "\u2029"; break; case " ": o += " "; break; case '"': o += '"'; break; case "/": o += "/"; break; case "\\": o += "\\"; break; case " ": o += " "; break; case "x": o += this.parseCharCode(a + 1, 2, e), a += 2; break; case "u": o += this.parseCharCode(a + 1, 4, e), a += 4; break; case "U": o += this.parseCharCode(a + 1, 8, e), a += 8; break; case ` `: for (; i[a + 1] === " " || i[a + 1] === " "; ) a += 1; break; default: e.push(new u.YAMLSyntaxError(this, `Invalid escape sequence ${i.substr(a - 1, 2)}`)), o += "\\" + i[a]; } else if (c === " " || c === " ") { let l = a, f = i[a + 1]; for (; f === " " || f === " "; ) a += 1, f = i[a + 1]; f !== ` ` && (o += a > l ? i.slice(l, a + 1) : c); } else o += c; } return e.length > 0 ? { errors: e, str: o } : o; } parseCharCode(e, n, r) { let { src: s } = this.context, i = s.substr(e, n), a = i.length === n && /^[0-9a-fA-F]+$/.test(i) ? parseInt(i, 16) : NaN; return isNaN(a) ? (r.push(new u.YAMLSyntaxError(this, `Invalid escape sequence ${s.substr(e - 2, n + 2)}`)), s.substr(e - 2, n + 2)) : String.fromCodePoint(a); } parse(e, n) { this.context = e; let { src: r } = e, s = t.endOfQuote(r, n + 1); return this.valueRange = new u.Range(n, s), s = u.Node.endOfWhiteSpace(r, s), s = this.parseComment(s), s; } }, $n = class t extends u.Node { static endOfQuote(e, n) { let r = e[n]; for (; r; ) if (r === "'") { if (e[n + 1] !== "'") break; r = e[n += 2]; } else r = e[n += 1]; return n + 1; } get strValue() { if (!this.valueRange || !this.context) return null; let e = [], { start: n, end: r } = this.valueRange, { indent: s, src: i } = this.context; i[r - 1] !== "'" && e.push(new u.YAMLSyntaxError(this, "Missing closing 'quote")); let o = ""; for (let a = n + 1; a < r - 1; ++a) { let c = i[a]; if (c === ` `) { u.Node.atDocumentBoundary(i, a + 1) && e.push(new u.YAMLSemanticError(this, "Document boundary indicators are not allowed within string values")); let { fold: l, offset: f, error: m } = u.Node.foldNewline(i, a, s); o += l, a = f, m && e.push(new u.YAMLSemanticError(this, "Multi-line single-quoted string needs to be sufficiently indented")); } else if (c === "'") o += c, a += 1, i[a] !== "'" && e.push(new u.YAMLSyntaxError(this, "Unescaped single quote? This should not happen.")); else if (c === " " || c === " ") { let l = a, f = i[a + 1]; for (; f === " " || f === " "; ) a += 1, f = i[a + 1]; f !== ` ` && (o += a > l ? i.slice(l, a + 1) : c); } else o += c; } return e.length > 0 ? { errors: e, str: o } : o; } parse(e, n) { this.context = e; let { src: r } = e, s = t.endOfQuote(r, n + 1); return this.valueRange = new u.Range(n, s), s = u.Node.endOfWhiteSpace(r, s), s = this.parseComment(s), s; } }; function vo(t, e) { switch (t) { case u.Type.ALIAS: return new xn(t, e); case u.Type.BLOCK_FOLDED: case u.Type.BLOCK_LITERAL: return new Rn(t, e); case u.Type.FLOW_MAP: case u.Type.FLOW_SEQ: return new Dn(t, e); case u.Type.MAP_KEY: case u.Type.MAP_VALUE: case u.Type.SEQ_ITEM: return new ut(t, e); case u.Type.COMMENT: case u.Type.PLAIN: return new u.PlainValue(t, e); case u.Type.QUOTE_DOUBLE: return new Yn(t, e); case u.Type.QUOTE_SINGLE: return new $n(t, e); default: return null; } } var Bn = class t { static parseType(e, n, r) { switch (e[n]) { case "*": return u.Type.ALIAS; case ">": return u.Type.BLOCK_FOLDED; case "|": return u.Type.BLOCK_LITERAL; case "{": return u.Type.FLOW_MAP; case "[": return u.Type.FLOW_SEQ; case "?": return !r && u.Node.atBlank(e, n + 1, true) ? u.Type.MAP_KEY : u.Type.PLAIN; case ":": return !r && u.Node.atBlank(e, n + 1, true) ? u.Type.MAP_VALUE : u.Type.PLAIN; case "-": return !r && u.Node.atBlank(e, n + 1, true) ? u.Type.SEQ_ITEM : u.Type.PLAIN; case '"': return u.Type.QUOTE_DOUBLE; case "'": return u.Type.QUOTE_SINGLE; default: return u.Type.PLAIN; } } constructor(e = {}, { atLineStart: n, inCollection: r, inFlow: s, indent: i, lineStart: o, parent: a } = {}) { u._defineProperty(this, "parseNode", (c, l) => { if (u.Node.atDocumentBoundary(this.src, l)) return null; let f = new t(this, c), { props: m, type: d, valueStart: y } = f.parseProps(l), h = vo(d, m), g = h.parse(f, y); if (h.range = new u.Range(l, g), g <= l && (h.error = new Error("Node#parse consumed no characters"), h.error.parseEnd = g, h.error.source = h, h.range.end = l + 1), f.nodeStartsCollection(h)) { !h.error && !f.atLineStart && f.parent.type === u.Type.DOCUMENT && (h.error = new u.YAMLSyntaxError(h, "Block collection must not have preceding content here (e.g. directives-end indicator)")); let w = new $t(h); return g = w.parse(new t(f), g), w.range = new u.Range(l, g), w; } return h; }), this.atLineStart = n ?? (e.atLineStart || false), this.inCollection = r ?? (e.inCollection || false), this.inFlow = s ?? (e.inFlow || false), this.indent = i ?? e.indent, this.lineStart = o ?? e.lineStart, this.parent = a ?? (e.parent || {}), this.root = e.root, this.src = e.src; } nodeStartsCollection(e) { let { inCollection: n, inFlow: r, src: s } = this; if (n || r) return false; if (e instanceof ut) return true; let i = e.range.end; return s[i] === ` ` || s[i - 1] === ` ` ? false : (i = u.Node.endOfWhiteSpace(s, i), s[i] === ":"); } parseProps(e) { let { inFlow: n, parent: r, src: s } = this, i = [], o = false; e = this.atLineStart ? u.Node.endOfIndent(s, e) : u.Node.endOfWhiteSpace(s, e); let a = s[e]; for (; a === u.Char.ANCHOR || a === u.Char.COMMENT || a === u.Char.TAG || a === ` `; ) { if (a === ` `) { let l = e, f; do f = l + 1, l = u.Node.endOfIndent(s, f); while (s[l] === ` `); let m = l - (f + this.indent), d = r.type === u.Type.SEQ_ITEM && r.context.atLineStart; if (s[l] !== "#" && !u.Node.nextNodeIsIndented(s[l], m, !d)) break; this.atLineStart = true, this.lineStart = f, o = false, e = l; } else if (a === u.Char.COMMENT) { let l = u.Node.endOfLine(s, e + 1); i.push(new u.Range(e, l)), e = l; } else { let l = u.Node.endOfIdentifier(s, e + 1); a === u.Char.TAG && s[l] === "," && /^[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+,\d\d\d\d(-\d\d){0,2}\/\S/.test(s.slice(e + 1, l + 13)) && (l = u.Node.endOfIdentifier(s, l + 5)), i.push(new u.Range(e, l)), o = true, e = u.Node.endOfWhiteSpace(s, l); } a = s[e]; } o && a === ":" && u.Node.atBlank(s, e + 1, true) && (e -= 1); let c = t.parseType(s, e, n); return { props: i, type: c, valueStart: e }; } }; function Io(t) { let e = []; t.indexOf("\r") !== -1 && (t = t.replace(/\r\n?/g, (s, i) => (s.length > 1 && e.push(i), ` `))); let n = [], r = 0; do { let s = new _n(), i = new Bn({ src: t }); r = s.parse(i, r), n.push(s); } while (r < t.length); return n.setOrigRanges = () => { if (e.length === 0) return false; for (let i = 1; i < e.length; ++i) e[i] -= i; let s = 0; for (let i = 0; i < n.length; ++i) s = n[i].setOrigRanges(e, s); return e.splice(0, e.length), true; }, n.toString = () => n.join(`... `), n; } xs.parse = Io; }); var qe = te((k) => { "use strict"; var p = le(); function Po(t, e, n) { return n ? `#${n.replace(/[\s\S]^/gm, `$&${e}#`)} ${e}${t}` : t; } function Fe(t, e, n) { return n ? n.indexOf(` `) === -1 ? `${t} #${n}` : `${t} ` + n.replace(/^/gm, `${e || ""}#`) : t; } var W = class { }; function ue(t, e, n) { if (Array.isArray(t)) return t.map((r, s) => ue(r, String(s), n)); if (t && typeof t.toJSON == "function") { let r = n && n.anchors && n.anchors.get(t); r && (n.onCreate = (i) => { r.res = i, delete n.onCreate; }); let s = t.toJSON(e, n); return r && n.onCreate && n.onCreate(s), s; } return (!n || !n.keep) && typeof t == "bigint" ? Number(t) : t; } var P = class extends W { constructor(e) { super(), this.value = e; } toJSON(e, n) { return n && n.keep ? this.value : ue(this.value, e, n); } toString() { return String(this.value); } }; function Ds(t, e, n) { let r = n; for (let s = e.length - 1; s >= 0; --s) { let i = e[s]; if (Number.isInteger(i) && i >= 0) { let o = []; o[i] = r, r = o; } else { let o = {}; Object.defineProperty(o, i, { value: r, writable: true, enumerable: true, configurable: true }), r = o; } } return t.createNode(r, false); } var Bs = (t) => t == null || typeof t == "object" && t[Symbol.iterator]().next().done, j = class t extends W { constructor(e) { super(), p._defineProperty(this, "items", []), this.schema = e; } addIn(e, n) { if (Bs(e)) this.add(n); else { let [r, ...s] = e, i = this.get(r, true); if (i instanceof t) i.addIn(s, n); else if (i === void 0 && this.schema) this.set(r, Ds(this.schema, s, n)); else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${s}`); } } deleteIn([e, ...n]) { if (n.length === 0) return this.delete(e); let r = this.get(e, true); if (r instanceof t) return r.deleteIn(n); throw new Error(`Expected YAML collection at ${e}. Remaining path: ${n}`); } getIn([e, ...n], r) { let s = this.get(e, true); return n.length === 0 ? !r && s instanceof P ? s.value : s : s instanceof t ? s.getIn(n, r) : void 0; } hasAllNullValues() { return this.items.every((e) => { if (!e || e.type !== "PAIR") return false; let n = e.value; return n == null || n instanceof P && n.value == null && !n.commentBefore && !n.comment && !n.tag; }); } hasIn([e, ...n]) { if (n.length === 0) return this.has(e); let r = this.get(e, true); return r instanceof t ? r.hasIn(n) : false; } setIn([e, ...n], r) { if (n.length === 0) this.set(e, r); else { let s = this.get(e, true); if (s instanceof t) s.setIn(n, r); else if (s === void 0 && this.schema) this.set(e, Ds(this.schema, n, r)); else throw new Error(`Expected YAML collection at ${e}. Remaining path: ${n}`); } } toJSON() { return null; } toString(e, { blockItem: n, flowChars: r, isMap: s, itemIndent: i }, o, a) { let { indent: c, indentStep: l, stringify: f } = e, m = this.type === p.Type.FLOW_MAP || this.type === p.Type.FLOW_SEQ || e.inFlow; m && (i += l); let d = s && this.hasAllNullValues(); e = Object.assign({}, e, { allNullValues: d, indent: i, inFlow: m, type: null }); let y = false, h = false, g = this.items.reduce((C, L, M) => { let A; L && (!y && L.spaceBefore && C.push({ type: "comment", str: "" }), L.commentBefore && L.commentBefore.match(/^.*$/gm).forEach((Ai) => { C.push({ type: "comment", str: `#${Ai}` }); }), L.comment && (A = L.comment), m && (!y && L.spaceBefore || L.commentBefore || L.comment || L.key && (L.key.commentBefore || L.key.comment) || L.value && (L.value.commentBefore || L.value.comment)) && (h = true)), y = false; let _ = f(L, e, () => A = null, () => y = true); return m && !h && _.includes(` `) && (h = true), m && M < this.items.length - 1 && (_ += ","), _ = Fe(_, i, A), y && (A || m) && (y = false), C.push({ type: "item", str: _ }), C; }, []), w; if (g.length === 0) w = r.start + r.end; else if (m) { let { start: C, end: L } = r, M = g.map((A) => A.str); if (h || M.reduce((A, _) => A + _.length + 2, 2) > t.maxFlowStringSingleLineLength) { w = C; for (let A of M) w += A ? ` ${l}${c}${A}` : ` `; w += ` ${c}${L}`; } else w = `${C} ${M.join(" ")} ${L}`; } else { let C = g.map(n); w = C.shift(); for (let L of C) w += L ? ` ${c}${L}` : ` `; } return this.comment ? (w += ` ` + this.comment.replace(/^/gm, `${c}#`), o && o()) : y && a && a(), w; } }; p._defineProperty(j, "maxFlowStringSingleLineLength", 60); function Bt(t) { let e = t instanceof P ? t.value : t; return e && typeof e == "string" && (e = Number(e)), Number.isInteger(e) && e >= 0 ? e : null; } var pe = class extends j { add(e) { this.items.push(e); } delete(e) { let n = Bt(e); return typeof n != "number" ? false : this.items.splice(n, 1).length > 0; } get(e, n) { let r = Bt(e); if (typeof r != "number") return; let s = this.items[r]; return !n && s instanceof P ? s.value : s; } has(e) { let n = Bt(e); return typeof n == "number" && n < this.items.length; } set(e, n) { let r = Bt(e); if (typeof r != "number") throw new Error(`Expected a valid index, not ${e}.`); this.items[r] = n; } toJSON(e, n) { let r = []; n && n.onCreate && n.onCreate(r); let s = 0; for (let i of this.items) r.push(ue(i, String(s++), n)); return r; } toString(e, n, r) { return e ? super.toString(e, { blockItem: (s) => s.type === "comment" ? s.str : `- ${s.str}`, flowChars: { start: "[", end: "]" }, isMap: false, itemIndent: (e.indent || "") + " " }, n, r) : JSON.stringify(this); } }, _o = (t, e, n) => e === null ? "" : typeof e != "object" ? String(e) : t instanceof W && n && n.doc ? t.toString({ anchors: /* @__PURE__ */ Object.create(null), doc: n.doc, indent: "", indentStep: n.indentStep, inFl