@shopify/create-app
Version:
A CLI tool to create a new Shopify app.
1,234 lines (1,233 loc) • 254 kB
JavaScript
import {
__esm,
init_cjs_shims
} from "./chunk-PKR7KJ6P.js";
// ../../node_modules/.pnpm/prettier@3.7.4/node_modules/prettier/plugins/estree.mjs
function ka(e) {
return this[e < 0 ? this.length + e : e];
}
function La(e) {
return e !== null && typeof e == "object";
}
function* Oa(e, t) {
let { getVisitorKeys: r, filter: n = () => !0 } = t, s = (i) => Lr(i) && n(i);
for (let i of r(e)) {
let o = e[i];
if (Array.isArray(o)) for (let u of o) s(u) && (yield u);
else s(o) && (yield o);
}
}
function* wa(e, t) {
let r = [e];
for (let n = 0; n < r.length; n++) {
let s = r[n];
for (let i of Oa(s, t)) yield i, r.push(i);
}
}
function zs(e, { getVisitorKeys: t, predicate: r }) {
for (let n of wa(e, { getVisitorKeys: t })) if (r(n)) return !0;
return !1;
}
function vn(e) {
return e === 12288 || e >= 65281 && e <= 65376 || e >= 65504 && e <= 65510;
}
function Rn(e) {
return e >= 4352 && e <= 4447 || e === 8986 || e === 8987 || e === 9001 || e === 9002 || e >= 9193 && e <= 9196 || e === 9200 || e === 9203 || e === 9725 || e === 9726 || e === 9748 || e === 9749 || e >= 9776 && e <= 9783 || e >= 9800 && e <= 9811 || e === 9855 || e >= 9866 && e <= 9871 || e === 9875 || e === 9889 || e === 9898 || e === 9899 || e === 9917 || e === 9918 || e === 9924 || e === 9925 || e === 9934 || e === 9940 || e === 9962 || e === 9970 || e === 9971 || e === 9973 || e === 9978 || e === 9981 || e === 9989 || e === 9994 || e === 9995 || e === 10024 || e === 10060 || e === 10062 || e >= 10067 && e <= 10069 || e === 10071 || e >= 10133 && e <= 10135 || e === 10160 || e === 10175 || e === 11035 || e === 11036 || e === 11088 || e === 11093 || e >= 11904 && e <= 11929 || e >= 11931 && e <= 12019 || e >= 12032 && e <= 12245 || e >= 12272 && e <= 12287 || e >= 12289 && e <= 12350 || e >= 12353 && e <= 12438 || e >= 12441 && e <= 12543 || e >= 12549 && e <= 12591 || e >= 12593 && e <= 12686 || e >= 12688 && e <= 12773 || e >= 12783 && e <= 12830 || e >= 12832 && e <= 12871 || e >= 12880 && e <= 42124 || e >= 42128 && e <= 42182 || e >= 43360 && e <= 43388 || e >= 44032 && e <= 55203 || e >= 63744 && e <= 64255 || e >= 65040 && e <= 65049 || e >= 65072 && e <= 65106 || e >= 65108 && e <= 65126 || e >= 65128 && e <= 65131 || e >= 94176 && e <= 94180 || e >= 94192 && e <= 94198 || e >= 94208 && e <= 101589 || e >= 101631 && e <= 101662 || e >= 101760 && e <= 101874 || e >= 110576 && e <= 110579 || e >= 110581 && e <= 110587 || e === 110589 || e === 110590 || e >= 110592 && e <= 110882 || e === 110898 || e >= 110928 && e <= 110930 || e === 110933 || e >= 110948 && e <= 110951 || e >= 110960 && e <= 111355 || e >= 119552 && e <= 119638 || e >= 119648 && e <= 119670 || e === 126980 || e === 127183 || e === 127374 || e >= 127377 && e <= 127386 || e >= 127488 && e <= 127490 || e >= 127504 && e <= 127547 || e >= 127552 && e <= 127560 || e === 127568 || e === 127569 || e >= 127584 && e <= 127589 || e >= 127744 && e <= 127776 || e >= 127789 && e <= 127797 || e >= 127799 && e <= 127868 || e >= 127870 && e <= 127891 || e >= 127904 && e <= 127946 || e >= 127951 && e <= 127955 || e >= 127968 && e <= 127984 || e === 127988 || e >= 127992 && e <= 128062 || e === 128064 || e >= 128066 && e <= 128252 || e >= 128255 && e <= 128317 || e >= 128331 && e <= 128334 || e >= 128336 && e <= 128359 || e === 128378 || e === 128405 || e === 128406 || e === 128420 || e >= 128507 && e <= 128591 || e >= 128640 && e <= 128709 || e === 128716 || e >= 128720 && e <= 128722 || e >= 128725 && e <= 128728 || e >= 128732 && e <= 128735 || e === 128747 || e === 128748 || e >= 128756 && e <= 128764 || e >= 128992 && e <= 129003 || e === 129008 || e >= 129292 && e <= 129338 || e >= 129340 && e <= 129349 || e >= 129351 && e <= 129535 || e >= 129648 && e <= 129660 || e >= 129664 && e <= 129674 || e >= 129678 && e <= 129734 || e === 129736 || e >= 129741 && e <= 129756 || e >= 129759 && e <= 129770 || e >= 129775 && e <= 129784 || e >= 131072 && e <= 196605 || e >= 196608 && e <= 262141;
}
function Na(e) {
if (!e) return 0;
if (!_a.test(e)) return e.length;
e = e.replace(Zs(), (r) => Ma.has(r) ? " " : " ");
let t = 0;
for (let r of e) {
let n = r.codePointAt(0);
n <= 31 || n >= 127 && n <= 159 || n >= 768 && n <= 879 || n >= 65024 && n <= 65039 || (t += vn(n) || Rn(n) ? 2 : 1);
}
return t;
}
function Or(e) {
return (t, r, n) => {
let s = !!n?.backwards;
if (r === !1) return !1;
let { length: i } = t, o = r;
for (; o >= 0 && o < i; ) {
let u = t.charAt(o);
if (e instanceof RegExp) {
if (!e.test(u)) return o;
} else if (!e.includes(u)) return o;
s ? o-- : o++;
}
return o === -1 || o === i ? o : !1;
};
}
function ja(e, t, r) {
let n = !!r?.backwards;
if (t === !1) return !1;
let s = e.charAt(t);
if (n) {
if (e.charAt(t - 1) === "\r" && s === `
`) return t - 2;
if (ni(s)) return t - 1;
} else {
if (s === "\r" && e.charAt(t + 1) === `
`) return t + 2;
if (ni(s)) return t + 1;
}
return t;
}
function va(e, t, r = {}) {
let n = ze(e, r.backwards ? t - 1 : t, r), s = Ze(e, n, r);
return n !== s;
}
function Ra(e, t) {
if (t === !1) return !1;
if (e.charAt(t) === "/" && e.charAt(t + 1) === "*") {
for (let r = t + 2; r < e.length; ++r) if (e.charAt(r) === "*" && e.charAt(r + 1) === "/") return r + 2;
}
return t;
}
function Ja(e, t) {
return t === !1 ? !1 : e.charAt(t) === "/" && e.charAt(t + 1) === "/" ? ri(e, t) : t;
}
function Ga(e, t) {
let r = null, n = t;
for (; n !== r; ) r = n, n = ti(e, n), n = qt(e, n), n = ze(e, n);
return n = Ut(e, n), n = Ze(e, n), n !== !1 && Z(e, n);
}
function Wa(e) {
return Array.isArray(e) && e.length > 0;
}
function Ha(e, t) {
let { preferred: r, alternate: n } = t === !0 || t === "'" ? Ua : Ya, { length: s } = e, i = 0, o = 0;
for (let u = 0; u < s; u++) {
let p = e.charCodeAt(u);
p === r.codePoint ? i++ : p === n.codePoint && o++;
}
return (i > o ? n : r).character;
}
function Va(e, t) {
let r = t === '"' ? "'" : '"', n = W(0, e, Xa, (s, i, o) => i ? i === r ? r : s : o === t ? "\\" + o : o);
return t + n + t;
}
function $a(e, t) {
Le(/^(?<quote>["']).*\k<quote>$/su.test(e));
let r = e.slice(1, -1), n = t.parser === "json" || t.parser === "jsonc" || t.parser === "json5" && t.quoteProps === "preserve" && !t.singleQuote ? '"' : t.__isInHtmlAttribute ? "'" : wr(r, t.singleQuote);
return e.charAt(0) === n ? e : oi(r, n);
}
function w(e) {
let t = e.range?.[0] ?? e.start, r = (e.declaration?.decorators ?? e.decorators)?.[0];
return r ? Math.min(w(r), t) : t;
}
function I(e) {
return e.range?.[1] ?? e.end;
}
function bt(e, t) {
let r = w(e);
return ui(r) && r === w(t);
}
function Ka(e, t) {
let r = I(e);
return ui(r) && r === I(t);
}
function ai(e, t) {
return bt(e, t) && Ka(e, t);
}
function fr(e) {
if (Dr !== null && typeof Dr.property) {
let t = Dr;
return Dr = fr.prototype = null, t;
}
return Dr = fr.prototype = e ?? /* @__PURE__ */ Object.create(null), new fr();
}
function Gn(e) {
return fr(e);
}
function za(e, t = "type") {
Gn(e);
function r(n) {
let s = n[t], i = e[s];
if (!Array.isArray(i)) throw Object.assign(new Error(`Missing visitor keys for '${s}'.`), { node: n });
return i;
}
return r;
}
function ep(e) {
let t = new Set(e);
return (r) => t.has(r?.type);
}
function tp(e) {
return e.extra?.raw ?? e.raw;
}
function ip(e, t) {
let r = t.split(".");
for (let n = r.length - 1; n >= 0; n--) {
let s = r[n];
if (n === 0) return e.type === "Identifier" && e.name === s;
if (n === 1 && e.type === "MetaProperty" && e.property.type === "Identifier" && e.property.name === s) {
e = e.meta;
continue;
}
if (e.type === "MemberExpression" && !e.optional && !e.computed && e.property.type === "Identifier" && e.property.name === s) {
e = e.object;
continue;
}
return !1;
}
}
function op(e, t) {
return t.some((r) => ip(e, r));
}
function up({ type: e }) {
return e.startsWith("TS") && e.endsWith("Keyword");
}
function ap({ node: e, parent: t }) {
return e?.type !== "EmptyStatement" ? !1 : t.type === "IfStatement" ? t.consequent === e || t.alternate === e : t.type === "DoWhileStatement" || t.type === "ForInStatement" || t.type === "ForOfStatement" || t.type === "ForStatement" || t.type === "LabeledStatement" || t.type === "WithStatement" || t.type === "WhileStatement" ? t.body === e : !1;
}
function Er(e, t) {
return t(e) || zs(e, { getVisitorKeys: Mr, predicate: t });
}
function Xt(e) {
return e.type === "AssignmentExpression" || e.type === "BinaryExpression" || e.type === "LogicalExpression" || e.type === "NGPipeExpression" || e.type === "ConditionalExpression" || M(e) || J(e) || e.type === "SequenceExpression" || e.type === "TaggedTemplateExpression" || e.type === "BindExpression" || e.type === "UpdateExpression" && !e.prefix || Ae(e) || e.type === "TSNonNullExpression" || e.type === "ChainExpression";
}
function mi(e) {
return e.expressions ? e.expressions[0] : e.left ?? e.test ?? e.callee ?? e.object ?? e.tag ?? e.argument ?? e.expression;
}
function Rr(e) {
if (e.expressions) return ["expressions", 0];
if (e.left) return ["left"];
if (e.test) return ["test"];
if (e.object) return ["object"];
if (e.callee) return ["callee"];
if (e.tag) return ["tag"];
if (e.argument) return ["argument"];
if (e.expression) return ["expression"];
throw new Error("Unexpected node has no left side.");
}
function fi(e) {
return e.type === "LogicalExpression" && e.operator === "??";
}
function Ce(e) {
return e.type === "NumericLiteral" || e.type === "Literal" && typeof e.value == "number";
}
function yi(e) {
return e.type === "BooleanLiteral" || e.type === "Literal" && typeof e.value == "boolean";
}
function Hn(e) {
return e.type === "UnaryExpression" && (e.operator === "+" || e.operator === "-") && Ce(e.argument);
}
function V(e) {
return !!(e && (e.type === "StringLiteral" || e.type === "Literal" && typeof e.value == "string"));
}
function Xn(e) {
return e.type === "RegExpLiteral" || e.type === "Literal" && !!e.regex;
}
function cp(e) {
return e.type === "FunctionExpression" || e.type === "ArrowFunctionExpression" && e.body.type === "BlockStatement";
}
function Wn(e) {
return M(e) && e.callee.type === "Identifier" && ["async", "inject", "fakeAsync", "waitForAsync"].includes(e.callee.name);
}
function mt(e) {
return e.method && e.kind === "init" || e.kind === "get" || e.kind === "set";
}
function Gr(e) {
return (e.type === "ObjectTypeProperty" || e.type === "ObjectTypeInternalSlot") && !e.static && !e.method && e.kind !== "get" && e.kind !== "set" && e.value.type === "FunctionTypeAnnotation";
}
function Ei(e) {
return (e.type === "TypeAnnotation" || e.type === "TSTypeAnnotation") && e.typeAnnotation.type === "FunctionTypeAnnotation" && !e.static && !bt(e, e.typeAnnotation);
}
function Tt(e) {
return J(e) || e.type === "BindExpression" && !!e.object;
}
function Vt(e) {
return jr(e) || Nr(e) || lp(e) || e.type === "GenericTypeAnnotation" && !e.typeParameters || e.type === "TSTypeReference" && !e.typeArguments;
}
function mp(e) {
return e.type === "Identifier" && (e.name === "beforeEach" || e.name === "beforeAll" || e.name === "afterEach" || e.name === "afterAll");
}
function fp(e) {
return Pt(e, Dp);
}
function It(e, t) {
if (e?.type !== "CallExpression" || e.optional) return !1;
let r = le(e);
if (r.length === 1) {
if (Wn(e) && It(t)) return Ht(r[0]);
if (mp(e.callee)) return Wn(r[0]);
} else if ((r.length === 2 || r.length === 3) && (r[0].type === "TemplateLiteral" || V(r[0])) && fp(e.callee)) return r[2] && !Ce(r[2]) ? !1 : (r.length === 2 ? Ht(r[1]) : cp(r[1]) && K(r[1]).length <= 1) || Wn(r[1]);
return !1;
}
function Vn(e, t = 5) {
return di(e, t) <= t;
}
function di(e, t) {
let r = 0;
for (let n in e) {
let s = e[n];
if (Lr(s) && typeof s.type == "string" && (r++, r += di(s, t - r)), r > t) return r;
}
return r;
}
function Fr(e, t) {
let { printWidth: r } = t;
if (T(e)) return !1;
let n = r * yp;
if (e.type === "ThisExpression" || e.type === "Identifier" && e.name.length <= n || Hn(e) && !T(e.argument)) return !0;
let s = e.type === "Literal" && "regex" in e && e.regex.pattern || e.type === "RegExpLiteral" && e.pattern;
return s ? s.length <= n : V(e) ? ut(pe(e), t).length <= n : e.type === "TemplateLiteral" ? e.expressions.length === 0 && e.quasis[0].value.raw.length <= n && !e.quasis[0].value.raw.includes(`
`) : e.type === "UnaryExpression" ? Fr(e.argument, { printWidth: r }) : e.type === "CallExpression" && e.arguments.length === 0 && e.callee.type === "Identifier" ? e.callee.name.length <= n - 2 : Jr(e);
}
function Ee(e, t) {
return H(t) ? Ot(t) : T(t, x.Leading, (r) => Z(e, I(r)));
}
function ci(e) {
return e.quasis.some((t) => t.value.raw.includes(`
`));
}
function Wr(e, t) {
return (e.type === "TemplateLiteral" && ci(e) || e.type === "TaggedTemplateExpression" && ci(e.quasi)) && !Z(t, w(e), { backwards: !0 });
}
function qr(e) {
if (!T(e)) return !1;
let t = N(0, et(e, x.Dangling), -1);
return t && !ce(t);
}
function Ci(e) {
if (e.length <= 1) return !1;
let t = 0;
for (let r of e) if (Ht(r)) {
if (t += 1, t > 1) return !0;
} else if (M(r)) {
for (let n of le(r)) if (Ht(n)) return !0;
}
return !1;
}
function Ur(e) {
let { node: t, parent: r, key: n } = e;
return n === "callee" && M(t) && M(r) && r.arguments.length > 0 && t.arguments.length > r.arguments.length;
}
function Re(e, t = 2) {
if (t <= 0) return !1;
if (e.type === "ChainExpression" || e.type === "TSNonNullExpression") return Re(e.expression, t);
let r = (n) => Re(n, t - 1);
if (Xn(e)) return ot(e.pattern ?? e.regex.pattern) <= 5;
if (Jr(e) || pp(e) || e.type === "ArgumentPlaceholder") return !0;
if (e.type === "TemplateLiteral") return e.quasis.every((n) => !n.value.raw.includes(`
`)) && e.expressions.every(r);
if (se(e)) return e.properties.every((n) => !n.computed && (n.shorthand || n.value && r(n.value)));
if (q(e)) return e.elements.every((n) => n === null || r(n));
if (Dt(e)) {
if (e.type === "ImportExpression" || Re(e.callee, t)) {
let n = le(e);
return n.length <= t && n.every(r);
}
return !1;
}
return J(e) ? Re(e.object, t) && Re(e.property, t) : e.type === "UnaryExpression" && Ep.has(e.operator) || e.type === "UpdateExpression" ? Re(e.argument, t) : !1;
}
function ie(e, t = "es5") {
return e.trailingComma === "es5" && t === "es5" || e.trailingComma === "all" && (t === "all" || t === "es5");
}
function ye(e, t) {
switch (e.type) {
case "BinaryExpression":
case "LogicalExpression":
case "AssignmentExpression":
case "NGPipeExpression":
return ye(e.left, t);
case "MemberExpression":
case "OptionalMemberExpression":
return ye(e.object, t);
case "TaggedTemplateExpression":
return e.tag.type === "FunctionExpression" ? !1 : ye(e.tag, t);
case "CallExpression":
case "OptionalCallExpression":
return e.callee.type === "FunctionExpression" ? !1 : ye(e.callee, t);
case "ConditionalExpression":
return ye(e.test, t);
case "UpdateExpression":
return !e.prefix && ye(e.argument, t);
case "BindExpression":
return e.object && ye(e.object, t);
case "SequenceExpression":
return ye(e.expressions[0], t);
case "ChainExpression":
case "TSSatisfiesExpression":
case "TSAsExpression":
case "TSNonNullExpression":
case "AsExpression":
case "AsConstExpression":
case "SatisfiesExpression":
return ye(e.expression, t);
default:
return t(e);
}
}
function dr(e, t) {
return !(yr(t) !== yr(e) || e === "**" || li[e] && li[t] || t === "%" && vr[e] || e === "%" && vr[t] || t !== e && vr[t] && vr[e] || Yn[e] && Yn[t]);
}
function yr(e) {
return Fp.get(e);
}
function Ai(e) {
return !!Yn[e] || e === "|" || e === "^" || e === "&";
}
function Ti(e) {
if (e.rest) return !0;
let t = K(e);
return N(0, t, -1)?.type === "RestElement";
}
function K(e) {
if (qn.has(e)) return qn.get(e);
let t = [];
return e.this && t.push(e.this), t.push(...e.params), e.rest && t.push(e.rest), qn.set(e, t), t;
}
function xi(e, t) {
let { node: r } = e, n = 0, s = () => t(e, n++);
r.this && e.call(s, "this"), e.each(s, "params"), r.rest && e.call(s, "rest");
}
function le(e) {
if (Un.has(e)) return Un.get(e);
if (e.type === "ChainExpression") return le(e.expression);
let t;
return e.type === "ImportExpression" || e.type === "TSImportType" ? (t = [e.source], e.options && t.push(e.options)) : e.type === "TSExternalModuleReference" ? t = [e.expression] : t = e.arguments, Un.set(e, t), t;
}
function $t(e, t) {
let { node: r } = e;
if (r.type === "ChainExpression") return e.call(() => $t(e, t), "expression");
r.type === "ImportExpression" || r.type === "TSImportType" ? (e.call(() => t(e, 0), "source"), r.options && e.call(() => t(e, 1), "options")) : r.type === "TSExternalModuleReference" ? e.call(() => t(e, 0), "expression") : e.each(t, "arguments");
}
function $n(e, t) {
let r = [];
if (e.type === "ChainExpression" && (e = e.expression, r.push("expression")), e.type === "ImportExpression" || e.type === "TSImportType") {
if (t === 0 || t === (e.options ? -2 : -1)) return [...r, "source"];
if (e.options && (t === 1 || t === -1)) return [...r, "options"];
throw new RangeError("Invalid argument index");
} else if (e.type === "TSExternalModuleReference") {
if (t === 0 || t === -1) return [...r, "expression"];
} else if (t < 0 && (t = e.arguments.length + t), t >= 0 && t < e.arguments.length) return [...r, "arguments", t];
throw new RangeError("Invalid argument index");
}
function Lt(e) {
return e.value.trim() === "prettier-ignore" && !e.unignore;
}
function Ot(e) {
return e?.prettierIgnore || T(e, x.PrettierIgnore);
}
function T(e, t, r) {
if (!R(e?.comments)) return !1;
let n = gi(t, r);
return n ? e.comments.some(n) : !0;
}
function et(e, t, r) {
if (!Array.isArray(e?.comments)) return [];
let n = gi(t, r);
return n ? e.comments.filter(n) : e.comments;
}
function Dt(e) {
return M(e) || e.type === "NewExpression" || e.type === "ImportExpression";
}
function Oe(e) {
return e && (e.type === "ObjectProperty" || e.type === "Property" && !mt(e));
}
function Yr({ key: e, parent: t }) {
return !(e === "types" && Se(t) || e === "types" && xt(t));
}
function Si(e, t, r) {
if (e.type === "Program" && delete t.sourceType, (e.type === "BigIntLiteral" || e.type === "Literal") && e.bigint && (t.bigint = e.bigint.toLowerCase()), e.type === "EmptyStatement" && !kt({ node: e, parent: r }) || e.type === "JSXText" || e.type === "JSXExpressionContainer" && (e.expression.type === "Literal" || e.expression.type === "StringLiteral") && e.expression.value === " ") return null;
if ((e.type === "Property" || e.type === "ObjectProperty" || e.type === "MethodDefinition" || e.type === "ClassProperty" || e.type === "ClassMethod" || e.type === "PropertyDefinition" || e.type === "TSDeclareMethod" || e.type === "TSPropertySignature" || e.type === "ObjectTypeProperty" || e.type === "ImportAttribute") && e.key && !e.computed) {
let { key: s } = e;
V(s) || Ce(s) ? t.key = String(s.value) : s.type === "Identifier" && (t.key = s.name);
}
if (e.type === "JSXElement" && e.openingElement.name.name === "style" && e.openingElement.attributes.some((s) => s.type === "JSXAttribute" && s.name.name === "jsx")) for (let { type: s, expression: i } of t.children) s === "JSXExpressionContainer" && i.type === "TemplateLiteral" && Kt(i);
e.type === "JSXAttribute" && e.name.name === "css" && e.value.type === "JSXExpressionContainer" && e.value.expression.type === "TemplateLiteral" && Kt(t.value.expression), e.type === "JSXAttribute" && e.value?.type === "Literal" && /["']|"|'/u.test(e.value.value) && (t.value.value = W(0, e.value.value, /["']|"|'/gu, '"'));
let n = e.expression || e.callee;
if (e.type === "Decorator" && n.type === "CallExpression" && n.callee.name === "Component" && n.arguments.length === 1) {
let s = e.expression.arguments[0].properties;
for (let [i, o] of t.expression.arguments[0].properties.entries()) switch (s[i].key.name) {
case "styles":
q(o.value) && Kt(o.value.elements[0]);
break;
case "template":
o.value.type === "TemplateLiteral" && Kt(o.value);
break;
}
}
e.type === "TaggedTemplateExpression" && (e.tag.type === "MemberExpression" || e.tag.type === "Identifier" && (e.tag.name === "gql" || e.tag.name === "graphql" || e.tag.name === "css" || e.tag.name === "md" || e.tag.name === "markdown" || e.tag.name === "html") || e.tag.type === "CallExpression") && Kt(t.quasi), e.type === "TemplateLiteral" && Kt(t), e.type === "ChainExpression" && e.expression.type === "TSNonNullExpression" && (t.type = "TSNonNullExpression", t.expression.type = "ChainExpression");
}
function gp(e, t) {
return Cp(e) || Ap(e, t) || Tp(e, t) ? !1 : e.type === "EmptyStatement" ? kt({ node: e, parent: t[0] }) : !(xp(e, t) || e.type === "TSTypeAnnotation" && t[0].type === "TSPropertySignature");
}
function hp(e) {
let t = e.type || e.kind || "(unknown type)", r = String(e.name || e.id && (typeof e.id == "object" ? e.id.name : e.id) || e.key && (typeof e.key == "object" ? e.key.name : e.key) || e.value && (typeof e.value == "object" ? "" : String(e.value)) || e.operator || "");
return r.length > 20 && (r = r.slice(0, 19) + "\u2026"), t + (r ? " " + r : "");
}
function Kn(e, t) {
(e.comments ?? (e.comments = [])).push(t), t.printed = !1, t.nodeDescription = hp(e);
}
function te(e, t) {
t.leading = !0, t.trailing = !1, Kn(e, t);
}
function we(e, t, r) {
t.leading = !1, t.trailing = !1, r && (t.marker = r), Kn(e, t);
}
function $(e, t) {
t.leading = !1, t.trailing = !0, Kn(e, t);
}
function Sp(e, t) {
let r = null, n = t;
for (; n !== r; ) r = n, n = ze(e, n), n = qt(e, n), n = Ut(e, n), n = Ze(e, n);
return n;
}
function Bp(e, t) {
let r = at(e, t);
return r === !1 ? "" : e.charAt(r);
}
function bp(e, t, r) {
for (let n = t; n < r; ++n) if (e.charAt(n) === `
`) return !0;
return !1;
}
function Pp(e) {
return Qn.has(e) || Qn.set(e, ce(e) && e.value[0] === "*" && /@(?:type|satisfies)\b/u.test(e.value)), Qn.get(e);
}
function kp(e) {
return [ji, Ii, _i, Jp, wp, es, ts, ki, Li, Yp, Wp, qp, ns, Ni, Hp, Oi, Mi, rs, _p, Zp, vi, ss].some((t) => t(e));
}
function Ip(e) {
return [Op, _i, Ii, Ni, es, ts, ki, Li, Mi, Gp, Up, ns, $p, rs, Qp, zp, ec, vi, rc, tc, ss].some((t) => t(e));
}
function Lp(e) {
return [ji, es, ts, Rp, Oi, ns, vp, jp, rs, Kp, ss].some((t) => t(e));
}
function wt(e, t) {
let r = (e.body || e.properties).find(({ type: n }) => n !== "EmptyStatement");
r ? te(r, t) : we(e, t);
}
function zn(e, t) {
e.type === "BlockStatement" ? wt(e, t) : te(e, t);
}
function Op({ comment: e, followingNode: t }) {
return t && Hr(e) ? (te(t, e), !0) : !1;
}
function es({ comment: e, precedingNode: t, enclosingNode: r, followingNode: n, text: s }) {
if (r?.type !== "IfStatement" || !n) return !1;
if (_e(s, I(e)) === ")") return $(t, e), !0;
if (n.type === "BlockStatement" && n === r.consequent && w(e) >= I(t) && I(e) <= w(n)) return te(n, e), !0;
if (t === r.consequent && n === r.alternate) {
let o = at(s, I(r.consequent));
if (n.type === "BlockStatement" && w(e) >= o && I(e) <= w(n)) return te(n, e), !0;
if (w(e) < o || r.alternate.type === "BlockStatement") return t.type === "BlockStatement" || Zn(e, s) && !ue(s, w(t), w(e)) ? ($(t, e), !0) : (we(r, e), !0);
}
return n.type === "BlockStatement" ? (wt(n, e), !0) : n.type === "IfStatement" ? (zn(n.consequent, e), !0) : r.consequent === n ? (te(n, e), !0) : !1;
}
function ts({ comment: e, precedingNode: t, enclosingNode: r, followingNode: n, text: s }) {
return r?.type !== "WhileStatement" || !n ? !1 : _e(s, I(e)) === ")" ? ($(t, e), !0) : n.type === "BlockStatement" ? (wt(n, e), !0) : r.body === n ? (te(n, e), !0) : !1;
}
function ki({ comment: e, precedingNode: t, enclosingNode: r, followingNode: n }) {
return r?.type !== "TryStatement" && r?.type !== "CatchClause" || !n ? !1 : r.type === "CatchClause" && t ? ($(t, e), !0) : n.type === "BlockStatement" ? (wt(n, e), !0) : n.type === "TryStatement" ? (zn(n.finalizer, e), !0) : n.type === "CatchClause" ? (zn(n.body, e), !0) : !1;
}
function wp({ comment: e, enclosingNode: t, followingNode: r }) {
return J(t) && r?.type === "Identifier" ? (te(t, e), !0) : !1;
}
function _p({ comment: e, enclosingNode: t, followingNode: r, options: n }) {
return !n.experimentalTernaries || !(t?.type === "ConditionalExpression" || Ue(t)) ? !1 : r?.type === "ConditionalExpression" || Ue(r) ? (we(t, e), !0) : !1;
}
function Ii({ comment: e, precedingNode: t, enclosingNode: r, followingNode: n, text: s, options: i }) {
let o = t && !ue(s, I(t), w(e));
return (!t || !o) && (r?.type === "ConditionalExpression" || Ue(r)) && n ? i.experimentalTernaries && r.alternate === n && !(ce(e) && !ue(i.originalText, w(e), I(e))) ? (we(r, e), !0) : (te(n, e), !0) : !1;
}
function Li({ comment: e, precedingNode: t, enclosingNode: r, followingNode: n }) {
if (Mp(r)) {
if (R(r.decorators) && n?.type !== "Decorator") return $(N(0, r.decorators, -1), e), !0;
if (r.body && n === r.body) return wt(r.body, e), !0;
if (n) {
if (r.superClass && n === r.superClass && t && (t === r.id || t === r.typeParameters)) return $(t, e), !0;
for (let s of ["implements", "extends", "mixins"]) if (r[s] && n === r[s][0]) return t && (t === r.id || t === r.typeParameters || t === r.superClass) ? $(t, e) : we(r, e, s), !0;
}
}
return !1;
}
function Oi({ comment: e, precedingNode: t, enclosingNode: r, text: n }) {
return r && t && _e(n, I(e)) === "(" && (r.type === "Property" || r.type === "TSDeclareMethod" || r.type === "TSAbstractMethodDefinition") && t.type === "Identifier" && r.key === t && _e(n, I(t)) !== ":" || t?.type === "Decorator" && Np(r) && (At(e) || e.placement === "ownLine") ? ($(t, e), !0) : !1;
}
function jp({ comment: e, precedingNode: t, enclosingNode: r, text: n }) {
return _e(n, I(e)) !== "(" ? !1 : t && wi(r) ? ($(t, e), !0) : !1;
}
function vp({ comment: e, enclosingNode: t, text: r }) {
if (t?.type !== "ArrowFunctionExpression") return !1;
let n = at(r, I(e));
return n !== !1 && r.slice(n, n + 2) === "=>" ? (we(t, e), !0) : !1;
}
function Rp({ comment: e, enclosingNode: t, text: r }) {
return _e(r, I(e)) !== ")" ? !1 : t && (Ri(t) && K(t).length === 0 || Dt(t) && le(t).length === 0) ? (we(t, e), !0) : (t?.type === "MethodDefinition" || t?.type === "TSAbstractMethodDefinition") && K(t.value).length === 0 ? (we(t.value, e), !0) : !1;
}
function Jp({ comment: e, precedingNode: t, enclosingNode: r, followingNode: n, text: s }) {
return t?.type === "ComponentTypeParameter" && (r?.type === "DeclareComponent" || r?.type === "ComponentTypeAnnotation") && n?.type !== "ComponentTypeParameter" || (t?.type === "ComponentParameter" || t?.type === "RestElement") && r?.type === "ComponentDeclaration" && _e(s, I(e)) === ")" ? ($(t, e), !0) : !1;
}
function _i({ comment: e, precedingNode: t, enclosingNode: r, followingNode: n, text: s }) {
return t?.type === "FunctionTypeParam" && r?.type === "FunctionTypeAnnotation" && n?.type !== "FunctionTypeParam" || (t?.type === "Identifier" || t?.type === "AssignmentPattern" || t?.type === "ObjectPattern" || t?.type === "ArrayPattern" || t?.type === "RestElement" || t?.type === "TSParameterProperty") && Ri(r) && _e(s, I(e)) === ")" ? ($(t, e), !0) : !ce(e) && n?.type === "BlockStatement" && wi(r) && (r.type === "MethodDefinition" ? r.value.body : r.body) === n && at(s, I(e)) === w(n) ? (wt(n, e), !0) : !1;
}
function Mi({ comment: e, enclosingNode: t }) {
return t?.type === "LabeledStatement" ? (te(t, e), !0) : !1;
}
function rs({ comment: e, enclosingNode: t }) {
return (t?.type === "ContinueStatement" || t?.type === "BreakStatement") && !t.label ? ($(t, e), !0) : !1;
}
function Gp({ comment: e, precedingNode: t, enclosingNode: r }) {
return M(r) && t && r.callee === t && r.arguments.length > 0 ? (te(r.arguments[0], e), !0) : !1;
}
function Wp({ comment: e, precedingNode: t, enclosingNode: r, followingNode: n }) {
return Se(r) ? (Lt(e) && (n.prettierIgnore = !0, e.unignore = !0), t ? ($(t, e), !0) : !1) : (Se(n) && Lt(e) && (n.types[0].prettierIgnore = !0, e.unignore = !0), !1);
}
function qp({ comment: e, precedingNode: t, enclosingNode: r, followingNode: n }) {
return r && r.type === "MatchOrPattern" ? (Lt(e) && (n.prettierIgnore = !0, e.unignore = !0), t ? ($(t, e), !0) : !1) : (n && n.type === "MatchOrPattern" && Lt(e) && (n.types[0].prettierIgnore = !0, e.unignore = !0), !1);
}
function Up({ comment: e, enclosingNode: t }) {
return Oe(t) ? (te(t, e), !0) : !1;
}
function ns({ comment: e, enclosingNode: t, ast: r, isLastComment: n }) {
return r?.body?.length === 0 ? (n ? we(r, e) : te(r, e), !0) : t?.type === "Program" && t.body.length === 0 && !R(t.directives) ? (n ? we(t, e) : te(t, e), !0) : !1;
}
function Yp({ comment: e, enclosingNode: t, followingNode: r }) {
return (t?.type === "ForInStatement" || t?.type === "ForOfStatement") && r !== t.body ? (te(t, e), !0) : !1;
}
function Ni({ comment: e, precedingNode: t, enclosingNode: r, text: n }) {
if (r?.type === "ImportSpecifier" || r?.type === "ExportSpecifier") return te(r, e), !0;
let s = t?.type === "ImportSpecifier" && r?.type === "ImportDeclaration", i = t?.type === "ExportSpecifier" && r?.type === "ExportNamedDeclaration";
return (s || i) && Z(n, I(e)) ? ($(t, e), !0) : !1;
}
function Hp({ comment: e, enclosingNode: t }) {
return t?.type === "AssignmentPattern" ? (te(t, e), !0) : !1;
}
function $p({ comment: e, enclosingNode: t, followingNode: r }) {
return Xp(t) && r && (Vp(r) || ce(e)) ? (te(r, e), !0) : !1;
}
function Kp({ comment: e, enclosingNode: t, precedingNode: r, followingNode: n, text: s }) {
return !n && (t?.type === "TSMethodSignature" || t?.type === "TSDeclareFunction" || t?.type === "TSAbstractMethodDefinition") && (!r || r !== t.returnType) && _e(s, I(e)) === ";" ? ($(t, e), !0) : !1;
}
function ji({ comment: e, enclosingNode: t, followingNode: r }) {
if (Lt(e) && t?.type === "TSMappedType" && r === t.key) return t.prettierIgnore = !0, e.unignore = !0, !0;
}
function vi({ comment: e, precedingNode: t, enclosingNode: r }) {
if (r?.type === "TSMappedType" && !t) return we(r, e), !0;
}
function Qp({ comment: e, enclosingNode: t, followingNode: r }) {
return !t || t.type !== "SwitchCase" || t.test || !r || r !== t.consequent[0] ? !1 : (r.type === "BlockStatement" && At(e) ? wt(r, e) : we(t, e), !0);
}
function zp({ comment: e, precedingNode: t, enclosingNode: r, followingNode: n }) {
return Se(t) && ((r.type === "TSArrayType" || r.type === "ArrayTypeAnnotation") && !n || xt(r)) ? ($(N(0, t.types, -1), e), !0) : !1;
}
function Zp({ comment: e, enclosingNode: t, precedingNode: r, followingNode: n }) {
if ((t?.type === "ObjectPattern" || t?.type === "ArrayPattern") && n?.type === "TSTypeAnnotation") return r ? $(r, e) : we(t, e), !0;
}
function ec({ comment: e, precedingNode: t, enclosingNode: r, followingNode: n, text: s }) {
return !n && r?.type === "UnaryExpression" && (t?.type === "LogicalExpression" || t?.type === "BinaryExpression") && ue(s, w(r.argument), w(t.right)) && Zn(e, s) && !ue(s, w(t.right), w(e)) ? ($(t.right, e), !0) : !1;
}
function tc({ enclosingNode: e, followingNode: t, comment: r }) {
if (e && (e.type === "TSPropertySignature" || e.type === "ObjectTypeProperty") && (Se(t) || xt(t))) return te(t, r), !0;
}
function ss({ enclosingNode: e, precedingNode: t, followingNode: r, comment: n, text: s }) {
if (Ae(e) && t === e.expression && !Zn(n, s)) return r ? te(r, n) : $(e, n), !0;
}
function rc({ comment: e, enclosingNode: t, followingNode: r, precedingNode: n }) {
return t && r && n && t.type === "ArrowFunctionExpression" && t.returnType === n && (n.type === "TSTypeAnnotation" || n.type === "TypeAnnotation") ? (te(r, e), !0) : !1;
}
function sc(e, { parser: t }) {
if (t === "flow" || t === "hermes" || t === "babel-flow") return e = W(0, e, /[\s(]/gu, ""), e === "" || e === "/*" || e === "/*::";
}
function oc(e) {
let { key: t, parent: r } = e;
if (t === "types" && Se(r) || t === "argument" && r.type === "JSXSpreadAttribute" || t === "expression" && r.type === "JSXSpreadChild" || t === "superClass" && (r.type === "ClassDeclaration" || r.type === "ClassExpression") || (t === "id" || t === "typeParameters") && ic(r) || t === "patterns" && r.type === "MatchOrPattern") return !0;
let { node: n } = e;
return Ot(n) ? !1 : Se(n) ? Yr(e) : !!H(n);
}
function uc(e) {
if (typeof e == "string") return Ye;
if (Array.isArray(e)) return Be;
if (!e) return;
let { type: t } = e;
if (Xr.has(t)) return t;
}
function pc(e) {
let t = e === null ? "null" : typeof e;
if (t !== "string" && t !== "object") return `Unexpected doc '${t}',
Expected it to be 'string' or 'object'.`;
if (We(e)) throw new Error("doc is valid.");
let r = Object.prototype.toString.call(e);
if (r !== "[object Object]") return `Unexpected doc '${r}'.`;
let n = ac([...Xr].map((s) => `'${s}'`));
return `Unexpected doc.type '${e.type}'.
Expected it to be ${n}.`;
}
function cc(e, t, r, n) {
let s = [e];
for (; s.length > 0; ) {
let i = s.pop();
if (i === qi) {
r(s.pop());
continue;
}
r && s.push(i, qi);
let o = We(i);
if (!o) throw new gt(i);
if (t?.(i) !== !1) switch (o) {
case Be:
case Me: {
let u = o === Be ? i : i.parts;
for (let p = u.length, c = p - 1; c >= 0; --c) s.push(u[c]);
break;
}
case be:
s.push(i.flatContents, i.breakContents);
break;
case Fe:
if (n && i.expandedStates) for (let u = i.expandedStates.length, p = u - 1; p >= 0; --p) s.push(i.expandedStates[p]);
else s.push(i.contents);
break;
case Xe:
case He:
case Ve:
case Pe:
case $e:
s.push(i.contents);
break;
case Ye:
case tt:
case rt:
case Ge:
case me:
case Ne:
break;
default:
throw new gt(i);
}
}
}
function ft(e, t) {
if (typeof e == "string") return t(e);
let r = /* @__PURE__ */ new Map();
return n(e);
function n(i) {
if (r.has(i)) return r.get(i);
let o = s(i);
return r.set(i, o), o;
}
function s(i) {
switch (We(i)) {
case Be:
return t(i.map(n));
case Me:
return t({ ...i, parts: i.parts.map(n) });
case be:
return t({ ...i, breakContents: n(i.breakContents), flatContents: n(i.flatContents) });
case Fe: {
let { expandedStates: o, contents: u } = i;
return o ? (o = o.map(n), u = o[0]) : u = n(u), t({ ...i, contents: u, expandedStates: o });
}
case Xe:
case He:
case Ve:
case Pe:
case $e:
return t({ ...i, contents: n(i.contents) });
case Ye:
case tt:
case rt:
case Ge:
case me:
case Ne:
return t(i);
default:
throw new gt(i);
}
}
}
function Yi(e, t, r) {
let n = r, s = !1;
function i(o) {
if (s) return !1;
let u = t(o);
u !== void 0 && (s = !0, n = u);
}
return Vr(e, i), n;
}
function lc(e) {
if (e.type === Fe && e.break || e.type === me && e.hard || e.type === Ne) return !0;
}
function ne(e) {
return Yi(e, lc, !1);
}
function Ui(e) {
if (e.length > 0) {
let t = N(0, e, -1);
!t.expandedStates && !t.break && (t.break = "propagated");
}
return null;
}
function Hi(e) {
let t = /* @__PURE__ */ new Set(), r = [];
function n(i) {
if (i.type === Ne && Ui(r), i.type === Fe) {
if (r.push(i), t.has(i)) return !1;
t.add(i);
}
}
function s(i) {
i.type === Fe && r.pop().break && Ui(r);
}
Vr(e, n, s, !0);
}
function mc(e) {
return e.type === me && !e.hard ? e.soft ? "" : " " : e.type === be ? e.flatContents : e;
}
function _t(e) {
return ft(e, mc);
}
function Dc(e) {
switch (We(e)) {
case Me:
if (e.parts.every((t) => t === "")) return "";
break;
case Fe:
if (!e.contents && !e.id && !e.break && !e.expandedStates) return "";
if (e.contents.type === Fe && e.contents.id === e.id && e.contents.break === e.break && e.contents.expandedStates === e.expandedStates) return e.contents;
break;
case Xe:
case He:
case Ve:
case $e:
if (!e.contents) return "";
break;
case be:
if (!e.flatContents && !e.breakContents) return "";
break;
case Be: {
let t = [];
for (let r of e) {
if (!r) continue;
let [n, ...s] = Array.isArray(r) ? r : [r];
typeof n == "string" && typeof N(0, t, -1) == "string" ? t[t.length - 1] += n : t.push(n), t.push(...s);
}
return t.length === 0 ? "" : t.length === 1 ? t[0] : t;
}
case Ye:
case tt:
case rt:
case Ge:
case me:
case Pe:
case Ne:
break;
default:
throw new gt(e);
}
return e;
}
function Qt(e) {
return ft(e, (t) => Dc(t));
}
function qe(e, t = $r) {
return ft(e, (r) => typeof r == "string" ? L(t, r.split(`
`)) : r);
}
function fc(e) {
if (e.type === me) return !0;
}
function Xi(e) {
return Yi(e, fc, !1);
}
function Ar(e, t) {
return e.type === Pe ? { ...e, contents: t(e.contents) } : t(e);
}
function Vi(e) {
let t = !0;
return Vr(e, (r) => {
switch (We(r)) {
case Ye:
if (r === "") break;
case rt:
case Ge:
case me:
case Ne:
return t = !1, !1;
}
}), t;
}
function m(e) {
return de(e), { type: He, contents: e };
}
function xe(e, t) {
return Ki(e), de(t), { type: Xe, contents: t, n: e };
}
function Qi(e) {
return xe(Number.NEGATIVE_INFINITY, e);
}
function Qr(e) {
return xe(-1, e);
}
function zi(e, t, r) {
de(e);
let n = e;
if (t > 0) {
for (let s = 0; s < Math.floor(t / r); ++s) n = m(n);
n = xe(t % r, n), n = xe(Number.NEGATIVE_INFINITY, n);
}
return n;
}
function zr(e) {
return $i(e), { type: Me, parts: e };
}
function l(e, t = {}) {
return de(e), Kr(t.expandedStates, !0), { type: Fe, id: t.id, contents: e, break: !!t.shouldBreak, expandedStates: t.expandedStates };
}
function nt(e, t) {
return l(e[0], { ...t, expandedStates: e });
}
function P(e, t = "", r = {}) {
return de(e), t !== "" && de(t), { type: be, breakContents: e, flatContents: t, groupId: r.groupId };
}
function yt(e, t) {
return de(e), { type: Ve, contents: e, groupId: t.groupId, negate: t.negate };
}
function L(e, t) {
de(e), Kr(t);
let r = [];
for (let n = 0; n < t.length; n++) n !== 0 && r.push(e), r.push(t[n]);
return r;
}
function pt(e, t) {
return de(t), e ? { type: Pe, label: e, contents: t } : t;
}
function us(e) {
return de(e), { type: $e, contents: e };
}
function Zi(e) {
return e === Ec ? dc : e === Fc ? Cc : Tc;
}
function eo(e, t, r) {
let n = t.type === 1 ? e.queue.slice(0, -1) : [...e.queue, t], s = "", i = 0, o = 0, u = 0;
for (let d of n) switch (d.type) {
case 0:
y(), r.useTabs ? p(1) : c(r.tabWidth);
break;
case 3: {
let { string: b } = d;
y(), s += b, i += b.length;
break;
}
case 2: {
let { width: b } = d;
o += 1, u += b;
break;
}
default:
throw new Error(`Unexpected indent comment '${d.type}'.`);
}
return F(), { ...e, value: s, length: i, queue: n };
function p(d) {
s += " ".repeat(d), i += r.tabWidth * d;
}
function c(d) {
s += " ".repeat(d), i += d;
}
function y() {
r.useTabs ? D() : F();
}
function D() {
o > 0 && p(o), C();
}
function F() {
u > 0 && c(u), C();
}
function C() {
o = 0, u = 0;
}
}
function to(e, t, r) {
if (!t) return e;
if (t.type === "root") return { ...e, root: e };
if (t === Number.NEGATIVE_INFINITY) return e.root;
let n;
return typeof t == "number" ? t < 0 ? n = gc : n = { type: 2, width: t } : n = { type: 3, string: t }, eo(e, n, r);
}
function ro(e, t) {
return eo(e, xc, t);
}
function hc(e) {
let t = 0;
for (let r = e.length - 1; r >= 0; r--) {
let n = e[r];
if (n === " " || n === " ") t++;
else break;
}
return t;
}
function ps(e) {
let t = hc(e);
return { text: t === 0 ? e : e.slice(0, e.length - t), count: t };
}
function Zr(e, t, r, n, s, i) {
if (r === Number.POSITIVE_INFINITY) return !0;
let o = t.length, u = !1, p = [e], c = "";
for (; r >= 0; ) {
if (p.length === 0) {
if (o === 0) return !0;
p.push(t[--o]);
continue;
}
let { mode: y, doc: D } = p.pop(), F = We(D);
switch (F) {
case Ye:
D && (u && (c += " ", r -= 1, u = !1), c += D, r -= ot(D));
break;
case Be:
case Me: {
let C = F === Be ? D : D.parts, d = D[cs] ?? 0;
for (let b = C.length - 1; b >= d; b--) p.push({ mode: y, doc: C[b] });
break;
}
case He:
case Xe:
case Ve:
case Pe:
p.push({ mode: y, doc: D.contents });
break;
case rt: {
let { text: C, count: d } = ps(c);
c = C, r += d;
break;
}
case Fe: {
if (i && D.break) return !1;
let C = D.break ? ve : y, d = D.expandedStates && C === ve ? N(0, D.expandedStates, -1) : D.contents;
p.push({ mode: C, doc: d });
break;
}
case be: {
let d = (D.groupId ? s[D.groupId] || ct : y) === ve ? D.breakContents : D.flatContents;
d && p.push({ mode: y, doc: d });
break;
}
case me:
if (y === ve || D.hard) return !0;
D.soft || (u = !0);
break;
case $e:
n = !0;
break;
case Ge:
if (n) return !1;
break;
}
}
return !1;
}
function ls(e, t) {
let r = /* @__PURE__ */ Object.create(null), n = t.printWidth, s = Zi(t.endOfLine), i = 0, o = [{ indent: as, mode: ve, doc: e }], u = "", p = !1, c = [], y = [], D = [], F = [], C = 0;
for (Hi(e); o.length > 0; ) {
let { indent: h, mode: g, doc: S } = o.pop();
switch (We(S)) {
case Ye: {
let j = s !== `
` ? W(0, S, `
`, s) : S;
j && (u += j, o.length > 0 && (i += ot(j)));
break;
}
case Be:
for (let j = S.length - 1; j >= 0; j--) o.push({ indent: h, mode: g, doc: S[j] });
break;
case tt:
if (y.length >= 2) throw new Error("There are too many 'cursor' in doc.");
y.push(C + u.length);
break;
case He:
o.push({ indent: ro(h, t), mode: g, doc: S.contents });
break;
case Xe:
o.push({ indent: to(h, S.n, t), mode: g, doc: S.contents });
break;
case rt:
O();
break;
case Fe:
switch (g) {
case ct:
if (!p) {
o.push({ indent: h, mode: S.break ? ve : ct, doc: S.contents });
break;
}
case ve: {
p = !1;
let j = { indent: h, mode: ct, doc: S.contents }, U = n - i, fe = c.length > 0;
if (!S.break && Zr(j, o, U, fe, r)) o.push(j);
else if (S.expandedStates) {
let Y = N(0, S.expandedStates, -1);
if (S.break) {
o.push({ indent: h, mode: ve, doc: Y });
break;
} else for (let z = 1; z < S.expandedStates.length + 1; z++) if (z >= S.expandedStates.length) {
o.push({ indent: h, mode: ve, doc: Y });
break;
} else {
let ee = S.expandedStates[z], Ie = { indent: h, mode: ct, doc: ee };
if (Zr(Ie, o, U, fe, r)) {
o.push(Ie);
break;
}
}
} else o.push({ indent: h, mode: ve, doc: S.contents });
break;
}
}
S.id && (r[S.id] = N(0, o, -1).mode);
break;
case Me: {
let j = n - i, U = S[cs] ?? 0, { parts: fe } = S, Y = fe.length - U;
if (Y === 0) break;
let z = fe[U + 0], ee = fe[U + 1], Ie = { indent: h, mode: ct, doc: z }, st = { indent: h, mode: ve, doc: z }, _ = Zr(Ie, [], j, c.length > 0, r, !0);
if (Y === 1) {
_ ? o.push(Ie) : o.push(st);
break;
}
let re = { indent: h, mode: ct, doc: ee }, ae = { indent: h, mode: ve, doc: ee };
if (Y === 2) {
_ ? o.push(re, Ie) : o.push(ae, st);
break;
}
let it = fe[U + 2], Bt = { indent: h, mode: g, doc: { ...S, [cs]: U + 2 } }, Pr = Zr({ indent: h, mode: ct, doc: [z, ee, it] }, [], j, c.length > 0, r, !0);
o.push(Bt), Pr ? o.push(re, Ie) : _ ? o.push(ae, Ie) : o.push(ae, st);
break;
}
case be:
case Ve: {
let j = S.groupId ? r[S.groupId] : g;
if (j === ve) {
let U = S.type === be ? S.breakContents : S.negate ? S.contents : m(S.contents);
U && o.push({ indent: h, mode: g, doc: U });
}
if (j === ct) {
let U = S.type === be ? S.flatContents : S.negate ? m(S.contents) : S.contents;
U && o.push({ indent: h, mode: g, doc: U });
}
break;
}
case $e:
c.push({ indent: h, mode: g, doc: S.contents });
break;
case Ge:
c.length > 0 && o.push({ indent: h, mode: g, doc: os });
break;
case me:
switch (g) {
case ct:
if (S.hard) p = !0;
else {
S.soft || (u += " ", i += 1);
break;
}
case ve:
if (c.length > 0) {
o.push({ indent: h, mode: g, doc: S }, ...c.reverse()), c.length = 0;
break;
}
S.literal ? (u += s, i = 0, h.root && (h.root.value && (u += h.root.value), i = h.root.length)) : (O(), u += s + h.value, i = h.length);
break;
}
break;
case Pe:
o.push({ indent: h, mode: g, doc: S.contents });
break;
case Ne:
break;
default:
throw new gt(S);
}
o.length === 0 && c.length > 0 && (o.push(...c.reverse()), c.length = 0);
}
let d = D.join("") + u, b = [...F, ...y];
if (b.length !== 2) return { formatted: d };
let B = b[0];
return { formatted: d, cursorNodeStart: B, cursorNodeText: d.slice(B, N(0, b, -1)) };
function O() {
let { text: h, count: g } = ps(u);
h && (D.push(h), C += h.length), u = "", i -= g, y.length > 0 && (F.push(...y.map((S) => Math.min(S, C))), y.length = 0);
}
}
function Sc(e, t, r = 0) {
let n = 0;
for (let s = r; s < e.length; ++s) e[s] === " " ? n = n + t - n % t : n++;
return n;
}
function Bc(e, t) {
let r = e.lastIndexOf(`
`);
return r === -1 ? 0 : no(e.slice(r + 1).match(/^[\t ]*/u)[0], t);
}
function en(e, t, r) {
let { node: n } = e;
if (n.type === "TemplateLiteral" && kc(e)) {
let c = bc(e, t, r);
if (c) return c;
}
let i = "expressions";
n.type === "TSTemplateLiteralType" && (i = "types");
let o = [], u = e.map(r, i);
o.push(je, "`");
let p = 0;
return e.each(({ index: c, node: y }) => {
if (o.push(r()), y.tail) return;
let { tabWidth: D } = t, F = y.value.raw, C = F.includes(`
`) ? so(F, D) : p;
p = C;
let d = u[c], b = n[i][c], B = ue(t.originalText, I(y), w(n.quasis[c + 1]));
if (!B) {
let h = ls(d, { ...t, printWidth: Number.POSITIVE_INFINITY }).formatted;
h.includes(`
`) ? B = !0 : d = h;
}
B && (T(b) || b.type === "Identifier" || J(b) || b.type === "ConditionalExpression" || b.type === "SequenceExpression" || Ae(b) || Te(b)) && (d = [m([f, d]), f]);
let O = C === 0 && F.endsWith(`
`) ? xe(Number.NEGATIVE_INFINITY, d) : zi(d, C, D);
o.push(l(["${", O, je, "}"]));
}, "quasis"), o.push("`"), o;
}
function io(e, t, r) {
let n = r("quasi"), { node: s } = e, i = "", o = et(s.quasi, x.Leading)[0];
return o && (ue(t.originalText, I(s.typeArguments ?? s.tag), w(o)) ? i = f : i = " "), pt(n.label && { tagged: !0, ...n.label }, [r("tag"), r("typeArguments"), i, je, n]);
}
function bc(e, t, r) {
let { node: n } = e, s = n.quasis[0].value.raw.trim().split(/\s*\|\s*/u);
if (s.length > 1 || s.some((i) => i.length > 0)) {
t.__inJestEach = !0;
let i = e.map(r, "expressions");
t.__inJestEach = !1;
let o = i.map((D) => "${" + ls(D, { ...t, printWidth: Number.POSITIVE_INFINITY, endOfLine: "lf" }).formatted + "}"), u = [{ hasLineBreak: !1, cells: [] }];
for (let D = 1; D < n.quasis.length; D++) {
let F = N(0, u, -1), C = o[D - 1];
F.cells.push(C), C.includes(`
`) && (F.hasLineBreak = !0), n.quasis[D].value.raw.includes(`
`) && u.push({ hasLineBreak: !1, cells: [] });
}
let p = Math.max(s.length, ...u.map((D) => D.cells.length)), c = Array.from({ length: p }).fill(0), y = [{ cells: s }, ...u.filter((D) => D.cells.length > 0)];
for (let { cells: D } of y.filter((F) => !F.hasLineBreak)) for (let [F, C] of D.entries()) c[F] = Math.max(c[F], ot(C));
return [je, "`", m([E, L(E, y.map((D) => L(" | ", D.cells.map((F, C) => D.hasLineBreak ? F : F + " ".repeat(c[C] - ot(F))))))]), E, "`"];
}
}
function Pc(e, t) {
let { node: r } = e, n = t();
return T(r) && (n = l([m([f, n]), f])), ["${", n, je, "}"];
}
function zt(e, t) {
return e.map(() => Pc(e, t), "expressions");
}
function tn(e, t) {
return ft(e, (r) => typeof r == "string" ? t ? W(0, r, /(\\*)`/gu, "$1$1\\`") : ms(r) : r);
}
function ms(e) {
return W(0, e, /([\\`]|\$\{)/gu, "\\$1");
}
function kc({ node: e, parent: t }) {
let r = /^[fx]?(?:describe|it|test)$/u;
return t.type === "TaggedTemplateExpression" && t.quasi === e