sigma-ui
Version:
CLI for SIGMA-UI components.
1,383 lines (1,380 loc) • 167 kB
JavaScript
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