UNPKG

@shopify/create-app

Version:

A CLI tool to create a new Shopify app.

1,234 lines (1,233 loc) • 254 kB
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" && /["']|&quot;|&apos;/u.test(e.value.value) && (t.value.value = W(0, e.value.value, /["']|&quot;|&apos;/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