UNPKG

@shopify/create-app

Version:

A CLI tool to create a new Shopify app.

1,140 lines (1,137 loc) • 180 kB
import { __esm, init_cjs_shims } from "./chunk-PKR7KJ6P.js"; // ../../node_modules/.pnpm/prettier@3.7.4/node_modules/prettier/plugins/glimmer.mjs function Yn(e5) { return this[e5 < 0 ? this.length + e5 : e5]; } function Wn(e5) { if (typeof e5 == "string") return Ot; if (Array.isArray(e5)) return It; if (!e5) return; let { type: t } = e5; if (ne.has(t)) return t; } function Qn(e5) { let t = e5 === null ? "null" : typeof e5; if (t !== "string" && t !== "object") return `Unexpected doc '${t}', Expected it to be 'string' or 'object'.`; if (se(e5)) throw new Error("doc is valid."); let r = Object.prototype.toString.call(e5); if (r !== "[object Object]") return `Unexpected doc '${r}'.`; let s = jn([...ne].map((n) => `'${n}'`)); return `Unexpected doc.type '${e5.type}'. Expected it to be ${s}.`; } function Jn(e5, t) { if (typeof e5 == "string") return t(e5); let r = /* @__PURE__ */ new Map(); return s(e5); function s(i) { if (r.has(i)) return r.get(i); let a = n(i); return r.set(i, a), a; } function n(i) { switch (se(i)) { case It: return t(i.map(s)); case wt: return t({ ...i, parts: i.parts.map(s) }); case Tt: return t({ ...i, breakContents: s(i.breakContents), flatContents: s(i.flatContents) }); case vt: { let { expandedStates: a, contents: o } = i; return a ? (a = a.map(s), o = a[0]) : o = s(o), t({ ...i, contents: o, expandedStates: a }); } case Et: case kt: case Zt: case re: case te: return t({ ...i, contents: s(i.contents) }); case Ot: case $t: case Xt: case ee: case Q: case xt: return t(i); default: throw new _r(i); } } } function ie(e5, t = Lr) { return Jn(e5, (r) => typeof r == "string" ? ct(t, r.split(` `)) : r); } function F(e5) { return M(e5), { type: kt, contents: e5 }; } function $n(e5, t) { return Or(e5), M(t), { type: Et, contents: t, n: e5 }; } function Be(e5) { return $n(-1, e5); } function qe(e5) { return Dr(e5), { type: wt, parts: e5 }; } function I(e5, t = {}) { return M(e5), ae(t.expandedStates, !0), { type: vt, id: t.id, contents: e5, break: !!t.shouldBreak, expandedStates: t.expandedStates }; } function Ve(e5, t = "", r = {}) { return M(e5), t !== "" && M(t), { type: Tt, breakContents: e5, flatContents: t, groupId: r.groupId }; } function ct(e5, t) { M(e5), ae(t); let r = []; for (let s = 0; s < t.length; s++) s !== 0 && r.push(e5), r.push(t[s]); return r; } function rs(e5, t) { let { preferred: r, alternate: s } = t === !0 || t === "'" ? ts : es, { length: n } = e5, i = 0, a = 0; for (let o = 0; o < n; o++) { let c = e5.charCodeAt(o); c === r.codePoint ? i++ : c === s.codePoint && a++; } return (i > a ? s : r).character; } function Fe(e5) { if (typeof e5 != "string") throw new TypeError("Expected a string"); return e5.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d"); } function is(e5) { return Array.isArray(e5) && e5.length > 0; } function Vr(e5, t, r) { if (e5.type === "TextNode") { let s = e5.chars.trim(); if (!s) return null; r.tag === "style" && r.children.length === 1 && r.children[0] === e5 ? t.chars = "" : t.chars = R.split(s).join(" "); } e5.type === "ElementNode" && (delete t.startTag, delete t.openTag, delete t.parts, delete t.endTag, delete t.closeTag, delete t.nameNode, delete t.body, delete t.blockParamNodes, delete t.params, delete t.path), e5.type === "Block" && (delete t.blockParamNodes, delete t.params), e5.type === "AttrNode" && e5.name.toLowerCase() === "class" && delete t.value, e5.type === "PathExpression" && (t.head = e5.head.original); } function as(e5) { let { node: t } = e5; if (t.type !== "TextNode") return; let { parent: r } = e5; if (!(r.type === "ElementNode" && r.tag === "style" && r.children.length === 1 && r.children[0] === t)) return; let s = r.attributes.find((n) => n.type === "AttrNode" && n.name === "lang"); if (!(s && !(s.value.type === "TextNode" && (s.value.chars === "" || s.value.chars === "css")))) return async (n) => { let i = t.chars; return i.trim() ? await n(i, { parser: "css" }) : ""; }; } function qt(e5) { if (Rt !== null && typeof Rt.property) { let t = Rt; return Rt = qt.prototype = null, t; } return Rt = qt.prototype = e5 ?? /* @__PURE__ */ Object.create(null), new qt(); } function Me(e5) { return qt(e5); } function ls(e5, t = "type") { Me(e5); function r(s) { let n = s[t], i = e5[n]; if (!Array.isArray(i)) throw Object.assign(new Error(`Missing visitor keys for '${n}'.`), { node: s }); return i; } return r; } function zr() { return cs; } function Yr(e5, t = "unexpected unreachable branch") { throw Mr.log("unreachable", e5), Mr.log(`${t} :: ${JSON.stringify(e5)} (${e5})`), new Error("code reached unreachable"); } function Ge(e5, t) { var r = t && t.loc, s, n, i, a; r && (s = r.start.line, n = r.end.line, i = r.start.column, a = r.end.column, e5 += " - " + s + ":" + i); for (var o = Error.prototype.constructor.call(this, e5), c = 0; c < Ye.length; c++) this[Ye[c]] = o[Ye[c]]; Error.captureStackTrace && Error.captureStackTrace(this, Ge); try { r && (this.lineNumber = s, this.endLineNumber = n, Object.defineProperty ? (Object.defineProperty(this, "column", { value: i, enumerable: !0 }), Object.defineProperty(this, "endColumn", { value: a, enumerable: !0 })) : (this.column = i, this.endColumn = a)); } catch { } } function le() { this.parents = []; } function ce(e5) { this.acceptRequired(e5, "path"), this.acceptArray(e5.params), this.acceptKey(e5, "hash"); } function Gr(e5) { ce.call(this, e5), this.acceptKey(e5, "program"), this.acceptKey(e5, "inverse"); } function Kr(e5) { this.acceptRequired(e5, "name"), this.acceptArray(e5.params), this.acceptKey(e5, "hash"); } function G(e5) { e5 === void 0 && (e5 = {}), this.options = e5; } function Ke(e5, t, r) { t === void 0 && (t = e5.length); var s = e5[t - 1], n = e5[t - 2]; if (!s) return r; if (s.type === "ContentStatement") return (n || !r ? /\r?\n\s*?$/ : /(^|\r?\n)\s*?$/).test(s.original); } function We(e5, t, r) { t === void 0 && (t = -1); var s = e5[t + 1], n = e5[t + 2]; if (!s) return r; if (s.type === "ContentStatement") return (n || !r ? /^\s*?\r?\n/ : /^\s*?(\r?\n|$)/).test(s.original); } function ht(e5, t, r) { var s = e5[t == null ? 0 : t + 1]; if (!(!s || s.type !== "ContentStatement" || !r && s.rightStripped)) { var n = s.value; s.value = s.value.replace(r ? /^\s+/ : /^[ \t]*\r?\n?/, ""), s.rightStripped = s.value !== n; } } function et(e5, t, r) { var s = e5[t == null ? e5.length - 1 : t - 1]; if (!(!s || s.type !== "ContentStatement" || !r && s.leftStripped)) { var n = s.value; return s.value = s.value.replace(r ? /\s+$/ : /[ \t]+$/, ""), s.leftStripped = s.value !== n, s.leftStripped; } } function je(e5, t) { if (t = t.path ? t.path.original : t, e5.path.original !== t) { var r = { loc: e5.path.loc }; throw new tt(e5.path.original + " doesn't match " + t, r); } } function Qe(e5, t) { this.source = e5, this.start = { line: t.first_line, column: t.first_column }, this.end = { line: t.last_line, column: t.last_column }; } function ps(e5) { return /^\[.*\]$/.test(e5) ? e5.substring(1, e5.length - 1) : e5; } function fs(e5, t) { return { open: e5.charAt(2) === "~", close: t.charAt(t.length - 3) === "~" }; } function ms(e5) { return e5.replace(/^\{\{~?!-?-?/, "").replace(/-?-?~?\}\}$/, ""); } function ds(e5, t, r, s) { s = this.locInfo(s); var n; e5 ? n = "@" : t ? n = t.original + "." : n = ""; for (var i = [], a = 0, o = 0, c = r.length; o < c; o++) { var h = r[o].part, f = r[o].original !== h, p = r[o].separator, g = p === ".#" ? "#" : ""; if (n += (p || "") + h, !f && (h === ".." || h === "." || h === "this")) { if (i.length > 0) throw new tt("Invalid path: " + n, { loc: s }); h === ".." && a++; } else i.push("".concat(g).concat(h)); } var E = t || i.shift(); return { type: "PathExpression", this: n.startsWith("this."), data: e5, depth: a, head: E, tail: i, parts: E ? hs([E], i, !0) : i, original: n, loc: s }; } function gs(e5, t, r, s, n, i) { var a = s.charAt(3) || s.charAt(2), o = a !== "{" && a !== "&", c = /\*/.test(s); return { type: c ? "Decorator" : "MustacheStatement", path: e5, params: t, hash: r, escaped: o, strip: n, loc: this.locInfo(i) }; } function bs(e5, t, r, s) { je(e5, r), s = this.locInfo(s); var n = { type: "Program", body: t, strip: {}, loc: s }; return { type: "BlockStatement", path: e5.path, params: e5.params, hash: e5.hash, program: n, openStrip: {}, inverseStrip: {}, closeStrip: {}, loc: s }; } function ys(e5, t, r, s, n, i) { s && s.path && je(e5, s); var a = /\*/.test(e5.open); t.blockParams = e5.blockParams; var o, c; if (r) { if (a) throw new tt("Unexpected inverse block on decorator", r); r.chain && (r.program.body[0].closeStrip = s.strip), c = r.strip, o = r.program; } return n && (n = o, o = t, t = n), { type: a ? "DecoratorBlock" : "BlockStatement", path: e5.path, params: e5.params, hash: e5.hash, program: t, inverse: o, openStrip: e5.strip, inverseStrip: c, closeStrip: s && s.strip, loc: this.locInfo(i) }; } function Ss(e5, t) { if (!t && e5.length) { var r = e5[0].loc, s = e5[e5.length - 1].loc; r && s && (t = { source: r.source, start: { line: r.start.line, column: r.start.column }, end: { line: s.end.line, column: s.end.column } }); } return { type: "Program", body: e5, strip: {}, loc: t }; } function ks(e5, t, r, s) { return je(e5, r), { type: "PartialBlockStatement", name: e5.path, params: e5.params, hash: e5.hash, program: t, openStrip: e5.strip, closeStrip: r && r.strip, loc: this.locInfo(s) }; } function he(e5, t) { var r, s, n; if (e5.type === "Program") return e5; Vt.yy = Qr, Vt.yy.locInfo = function(o) { return new Qe(t && t.srcName, o); }; var i; typeof ((r = t?.syntax) === null || r === void 0 ? void 0 : r.square) == "function" ? i = t.syntax.square : ((s = t?.syntax) === null || s === void 0 ? void 0 : s.square) === "node" ? i = Es : i = "string"; var a; return typeof ((n = t?.syntax) === null || n === void 0 ? void 0 : n.hash) == "function" ? a = t.syntax.hash : a = vs, Vt.yy.syntax = { square: i, hash: a }, Vt.parse(e5); } function Es(e5, t) { return { type: "ArrayLiteral", items: e5, loc: t }; } function vs(e5, t) { return { type: "HashLiteral", pairs: e5.pairs, loc: t }; } function Je(e5, t) { var r = he(e5, t), s = new jr(t); return s.accept(r); } function _(e5) { return Ns.test(e5); } function Jr(e5) { return As.test(e5); } function Cs(e5) { return e5.replace(Ps, ` `); } function Xr(e5) { return function(t) { return Array.isArray(t) && t[0] === e5; }; } function on() { return [...de]; } function Os(e5) { return de.has(e5.toLowerCase()) && e5[0]?.toLowerCase() === e5[0]; } function Yt(e5) { return !!e5 && e5.length > 0; } function fr(e5) { return e5.length === 0 ? void 0 : e5[e5.length - 1]; } function Is(e5) { return e5.length === 0 ? void 0 : e5[0]; } function ln(e5) { return e5(new ar()).validate(); } function k(e5, t) { let { module: r, loc: s } = t, { line: n, column: i } = s.start, a = t.asString(), o = a ? ` | | ${a.split(` `).join(` | `)} | ` : "", c = new Error(`${e5}: ${o}(error occurred in '${r}' @ line ${n} : column ${i})`); return c.name = "SyntaxError", c.location = t, c.code = a, c; } function Zr(e5, t, r) { return new mr("Cannot remove a node unless it is part of an array", e5, t, r); } function qs(e5, t, r) { return new mr("Cannot replace a node with multiple nodes unless it is part of an array", e5, t, r); } function tn(e5, t) { return new mr("Replacing and removing in key handlers is not yet supported.", e5, null, t); } function cn(e5) { return typeof e5 == "function" ? e5 : e5.enter; } function un(e5) { return typeof e5 == "function" ? void 0 : e5.exit; } function ye(e5, t) { let r, s, n, { node: i, parent: a, parentKey: o } = t, c = (function(h, f) { if (h.Program && (f === "Template" && !h.Template || f === "Block" && !h.Block)) return h.Program; let p = h[f]; return p !== void 0 ? p : h.All; })(e5, i.type); if (c !== void 0 && (r = cn(c), s = un(c)), r !== void 0 && (n = r(i, t)), n != null) { if (JSON.stringify(i) !== JSON.stringify(n)) return Array.isArray(n) ? (hn(e5, n, a, o), n) : ye(e5, new Ct(n, a, o)) || n; n = void 0; } if (n === void 0) { let h = be[i.type]; for (let f = 0; f < h.length; f++) Vs(e5, c, t, h[f]); s !== void 0 && (n = s(i, t)); } return n; } function en(e5, t, r) { e5[t] = r; } function Vs(e5, t, r, s) { let n, i, { node: a } = r, o = (function(c, h) { return c[h]; })(a, s); if (o) { if (t !== void 0) { let c = (function(h, f) { let p = typeof h != "function" ? h.keys : void 0; if (p === void 0) return; let g = p[f]; return g !== void 0 ? g : p.All; })(t, s); c !== void 0 && (n = cn(c), i = un(c)); } if (n !== void 0 && n(a, s) !== void 0) throw tn(a, s); if (Array.isArray(o)) hn(e5, o, r, s); else { let c = ye(e5, new Ct(o, r, s)); c !== void 0 && (function(h, f, p, g) { if (g === null) throw Zr(p, h, f); if (Array.isArray(g)) { if (g.length !== 1) throw g.length === 0 ? Zr(p, h, f) : qs(p, h, f); en(h, f, g[0]); } else en(h, f, g); })(a, s, o, c); } if (i !== void 0 && i(a, s) !== void 0) throw tn(a, s); } } function hn(e5, t, r, s) { for (let n = 0; n < t.length; n++) { let i = t[n], a = ye(e5, new Ct(i, r, s)); a !== void 0 && (n += Fs(t, n, a) - 1); } } function Fs(e5, t, r) { return r === null ? (e5.splice(t, 1), 0) : Array.isArray(r) ? (e5.splice(t, 1, ...r), r.length) : (e5.splice(t, 1, r), 1); } function Hs(e5, t) { ye(t, new Ct(e5)); } function At(e5, t) { (function(r) { switch (r.type) { case "Block": case "Template": return r.body; case "ElementNode": return r.children; } })(e5).push(t); } function pn(e5) { return e5.type === "StringLiteral" || e5.type === "BooleanLiteral" || e5.type === "NumberLiteral" || e5.type === "NullLiteral" || e5.type === "UndefinedLiteral"; } function tr() { return Ze || (Ze = new pt("", "(synthetic)")), Ze; } function rn(e5, t) { return d.var({ name: e5, loc: v(t || null) }); } function rt(e5, t) { let r = v(t || null); if (typeof e5 != "string") { if ("type" in e5) return e5; { e5.head.indexOf("."); let { head: i, tail: a } = e5; return d.path({ head: d.head({ original: i, loc: r.sliceStartChars({ chars: i.length }) }), tail: a, loc: v(t || null) }); } } let { head: s, tail: n } = (function(i, a) { let [o, ...c] = i.split("."), h = d.head({ original: o, loc: v(a || null) }); return d.path({ head: h, tail: c, loc: v(a || null) }); })(e5, r); return d.path({ head: s, tail: n, loc: r }); } function me(e5, t, r) { return d.literal({ type: e5, value: t, loc: v(r || null) }); } function Ht(e5 = [], t) { return d.hash({ pairs: e5, loc: v(t || null) }); } function fn(e5) { return e5.map(((t) => typeof t == "string" ? d.var({ name: t, loc: A.synthetic(t) }) : t)); } function nn(e5 = [], t = [], r = !1, s) { return d.blockItself({ body: e5, params: fn(t), chained: r, loc: v(s || null) }); } function sn(e5 = [], t = [], r) { return d.template({ body: e5, blockParams: t, loc: v(r || null) }); } function v(...e5) { if (e5.length === 1) { let t = e5[0]; return t && typeof t == "object" ? A.forHbsLoc(tr(), t) : A.forHbsLoc(tr(), Bs); } { let [t, r, s, n, i] = e5, a = i ? new pt("", i) : tr(); return A.forHbsLoc(a, { start: { line: t, column: r }, end: { line: s || t, column: n || r } }); } } function er(e5) { return function(t, r) { return me(e5, t, r); }; } function rr(e5, t) { let r; switch (t.path.type) { case "PathExpression": r = e5.PathExpression(t.path); break; case "SubExpression": r = e5.SubExpression(t.path); break; case "StringLiteral": case "UndefinedLiteral": case "NullLiteral": case "NumberLiteral": case "BooleanLiteral": { let i; throw i = t.path.type === "BooleanLiteral" ? t.path.original.toString() : t.path.type === "StringLiteral" ? `"${t.path.original}"` : t.path.type === "NullLiteral" ? "null" : t.path.type === "NumberLiteral" ? t.path.value.toString() : "undefined", k(`${t.path.type} "${t.path.type === "StringLiteral" ? t.path.original : i}" cannot be called as a sub-expression, replace (${i}) with ${i}`, e5.source.spanFor(t.path.loc)); } } let s = t.params.map(((i) => e5.acceptNode(i))), n = Yt(s) ? fr(s).loc : r.loc; return { path: r, params: s, hash: t.hash ? e5.Hash(t.hash) : d.hash({ pairs: [], loc: e5.source.spanFor(n).collapse("end") }) }; } function nr(e5, t) { let { path: r, params: s, hash: n, loc: i } = t; if (pn(r)) { let o = `{{${(function(c) { return c.type === "UndefinedLiteral" ? "undefined" : JSON.stringify(c.value); })(r)}}}`; throw k(`In <${e5.name} ... ${o} ..., ${o} is not a valid modifier`, t.loc); } let a = d.elementModifier({ path: r, params: s, hash: n, loc: i }); e5.modifiers.push(a); } function an(e5, t, r) { if (!t.program.loc) { let n = V(0, t.program.body, 0), i = V(0, t.program.body, -1); if (n && i) t.program.loc = { ...n.loc, end: i.loc.end }; else { let a = e5.spanFor(t.loc); t.program.loc = r.withEnd(a.getEnd()); } } let s = e5.spanFor(t.program.loc).getEnd(); return t.inverse && !t.inverse.loc && (t.inverse.loc = s.collapsed()), t; } function Nt(e5) { return /[\t\n\f ]/u.test(e5); } function mn(e5, t = {}) { let r, s, n, i = t.mode || "precompile"; typeof e5 == "string" ? (r = new pt(e5, t.meta?.moduleName), s = i === "codemod" ? he(e5, t.parseOptions) : Je(e5, t.parseOptions)) : e5 instanceof pt ? (r = e5, s = i === "codemod" ? he(e5.source, t.parseOptions) : Je(e5.source, t.parseOptions)) : (r = new pt("", t.meta?.moduleName), s = e5), i === "codemod" && (n = new pr()); let a = A.forCharPositions(r, 0, r.source.length); s.loc = { source: "(program)", start: a.startPosition, end: a.endPosition }; let o = new hr(r, n, i).parse(s, t.locals ?? []); if (t.plugins?.ast) for (let c of t.plugins.ast) Hs(o, c(ze({}, t, { syntax: Ms }, { plugins: void 0 })).visitor); return o; } function bn(e5) { return e5.toUpperCase() === e5; } function Ks(e5) { return e5.type === "ElementNode" && typeof e5.tag == "string" && !e5.tag.startsWith(":") && (bn(e5.tag[0]) || e5.tag.includes(".")); } function Ws(e5) { return Gs.has(e5.toLowerCase()) && !bn(e5[0]); } function dr(e5) { return e5.selfClosing === !0 || Ws(e5.tag) || Ks(e5) && e5.children.every((t) => Se(t)); } function Se(e5) { return e5.type === "TextNode" && !/\S/u.test(e5.chars); } function gn(e5) { return e5?.type === "MustacheCommentStatement" && typeof e5.value == "string" && e5.value.trim() === "prettier-ignore"; } function yn(e5) { return gn(e5.node) || e5.isInArray && (e5.key === "children" || e5.key === "body" || e5.key === "parts") && gn(e5.siblings[e5.index - 2]); } function js(e5, t, r) { let { node: s } = e5; switch (s.type) { case "Block": case "Program": case "Template": return I(e5.map(r, "body")); case "ElementNode": { let n = t.htmlWhitespaceSensitivity !== "ignore", i = [!n && e5.previous?.type === "ElementNode" ? H : "", I([Js(e5, r)])]; if (dr(s)) return [i]; let a = ["</", s.tag, ">"], o = s.tag === "style"; if (s.children.length === 0 || (!n || o) && s.children.every((h) => Se(h))) return [i, a]; let c = e5.map(r, "children"); return o || !n ? [i, F([H, ...c]), H, a] : [i, F(I(c)), a]; } case "BlockStatement": return Pn(e5) ? [ni(e5, r), En(e5, t, r), vn(e5, t, r)] : [ti(e5, r), I([En(e5, t, r), vn(e5, t, r), si(e5, t, r)])]; case "ElementModifierStatement": return I(["{{", Tn(e5, r), "}}"]); case "MustacheStatement": return I([ke(s), Tn(e5, r), Ee(s)]); case "SubExpression": return I(["(", ui(e5, r), H, ")"]); case "AttrNode": { let { name: n, value: i } = s, a = i.type === "TextNode"; if (a && i.chars === "" && mt(i) === Gt(i)) return n; let c = a ? oe(i.chars, t.singleQuote) : i.type === "ConcatStatement" ? oe(i.parts.map((f) => f.type === "TextNode" ? f.chars : "").join(""), t.singleQuote) : "", h = r("value"); return [n, "=", c, n === "class" && c ? I(F(h)) : h, c]; } case "ConcatStatement": return e5.map(r, "parts"); case "Hash": return ct(N, e5.map(r, "pairs")); case "HashPair": return [s.key, "=", r("value")]; case "TextNode": { let n = s.chars, { parent: i } = e5; if (i.type === "ElementNode") { if (i.tag === "pre") return ie(n); if (i.tag === "style") return n = St(0, n, /^\n+/gu, ""), n = R.trimEnd(n), n = R.dedentString(n), ie(n, ut); } n = St(0, n, "{{", "\\{{"); let a = ii(e5); if (a) { if (a === "class") { let D = n.trim().split(/\s+/u).join(" "), B = !1, O = !1; return e5.parent.type === "ConcatStatement" && (e5.previous?.type === "MustacheStatement" && /^\s/u.test(n) && (B = !0), e5.next?.type === "MustacheStatement" && /\s$/u.test(n) && D !== "" && (O = !0)), [B ? N : "", D, O ? N : ""]; } return ie(n); } let o = R.isWhitespaceOnly(n), { isFirst: c, isLast: h } = e5; if (t.htmlWhitespaceSensitivity !== "ignore") { let D = h && e5.parent.type === "Template", B = c && e5.parent.type === "Template"; if (o) { if (B || D) return ""; let C = [N], $ = _t(n); return $ && (C = Kt($)), h && (C = C.map((W) => Be(W))), C; } let O = R.getLeadingWhitespace(n), z = []; if (O) { z = [N]; let C = _t(O); C && (z = Kt(C)), n = n.slice(O.length); } let P = R.getTrailingWhitespace(n), U = []; if (P) { if (!D) { U = [N]; let C = _t(P); C && (U = Kt(C)), h && (U = U.map(($) => Be($))); } n = n.slice(0, -P.length); } return [...z, qe(wn(n)), ...U]; } let f = _t(n), p = ai(n), g = oi(n); if ((c || h) && o && (e5.parent.type === "Block" || e5.parent.type === "ElementNode" || e5.parent.type === "Template")) return ""; o && f ? (p = Math.min(f, xn), g = 0) : ((e5.next?.type === "BlockStatement" || e5.next?.type === "ElementNode") && (g = Math.max(g, 1)), (e5.previous?.type === "BlockStatement" || e5.previous?.type === "ElementNode") && (p = Math.max(p, 1))); let E = "", T = ""; return g === 0 && e5.next?.type === "MustacheStatement" && (T = " "), p === 0 && e5.previous?.type === "MustacheStatement" && (E = " "), c && (p = 0, E = ""), h && (g = 0, T = ""), R.hasLeadingWhitespace(n) && (n = E + R.trimStart(n)), R.hasTrailingWhitespace(n) && (n = R.trimEnd(n) + T), [...Kt(p), qe(wn(n)), ...Kt(g)]; } case "MustacheCommentStatement": { let n = mt(s), i = Gt(s), a = t.originalText.charAt(n + 2) === "~", o = t.originalText.charAt(i - 3) === "~", c = s.value.includes("}}") ? "--" : ""; return ["{{", a ? "~" : "", "!", c, s.value, c, o ? "~" : "", "}}"]; } case "PathExpression": return mi(s); case "BooleanLiteral": return String(s.value); case "CommentStatement": return ["<!--", s.value, "-->"]; case "StringLiteral": return li(e5, t); case "NumberLiteral": return String(s.value); case "UndefinedLiteral": return "undefined"; case "NullLiteral": return "null"; default: throw new qr(s, "Handlebars"); } } function Qs(e5, t) { return mt(e5) - mt(t); } function Js(e5, t) { let { node: r } = e5, s = ["attributes", "modifiers", "comments"].filter((i) => Bt(r[i])), n = s.flatMap((i) => r[i]).sort(Qs); for (let i of s) e5.each(({ node: a }) => { let o = n.indexOf(a); n.splice(o, 1, [N, t()]); }, i); return Bt(r.blockParams) && n.push(N, br(r)), ["<", r.tag, F(n), $s(r)]; } function $s(e5) { return dr(e5) ? Ve([H, "/>"], [" />", H]) : Ve([H, ">"], ">"); } function ke(e5) { let t = e5.trusting ? "{{{" : "{{", r = e5.strip?.open ? "~" : ""; return [t, r]; } function Ee(e5) { let t = e5.trusting ? "}}}" : "}}"; return [e5.strip?.close ? "~" : "", t]; } function Xs(e5) { let t = ke(e5), r = e5.openStrip.open ? "~" : ""; return [t, r, "#"]; } function Zs(e5) { let t = Ee(e5); return [e5.openStrip.close ? "~" : "", t]; } function Sn(e5) { let t = ke(e5), r = e5.closeStrip.open ? "~" : ""; return [t, r, "/"]; } function kn(e5) { let t = Ee(e5); return [e5.closeStrip.close ? "~" : "", t]; } function Nn(e5) { let t = ke(e5), r = e5.inverseStrip.open ? "~" : ""; return [t, r]; } function An(e5) { let t = Ee(e5); return [e5.inverseStrip.close ? "~" : "", t]; } function ti(e5, t) { let { node: r } = e5, s = [], n = ve(e5, t); return n && s.push(I(n)), Bt(r.program.blockParams) && s.push(br(r.program)), I([Xs(r), gr(e5, t), s.length > 0 ? F([N, ct(N, s)]) : "", H, Zs(r)]); } function ei(e5, t) { return [t.htmlWhitespaceSensitivity === "ignore" ? ut : "", Nn(e5), "else", An(e5)]; } function Pn(e5) { if (!e5.match((r) => r.type === "BlockStatement", (r, s) => s === "body" && r.type === "Block" && r.body.length === 1, (r, s) => s === "inverse" && r.type === "BlockStatement")) return !1; let { node: t } = e5; return t.path.type === "PathExpression" && t.path.head.type === "VarHead" && t.path.head.name === "if" || ri(t, e5.grandparent); } function ni(e5, t) { let { node: r, grandparent: s } = e5; return I([Nn(s), ["else", " ", s.inverse.body[0].path.head.name], F([N, I(ve(e5, t)), ...Bt(r.program.blockParams) ? [N, br(r.program)] : []]), H, An(s)]); } function si(e5, t, r) { let { node: s } = e5; return t.htmlWhitespaceSensitivity === "ignore" ? [Cn(s) ? H : ut, Sn(s), r("path"), kn(s)] : [Sn(s), r("path"), kn(s)]; } function Cn(e5) { return e5.type === "BlockStatement" && e5.program.body.every((t) => Se(t)); } function En(e5, t, r) { let { node: s } = e5; if (Cn(s)) return ""; let n = r("program"); return t.htmlWhitespaceSensitivity === "ignore" ? F([ut, n]) : F(n); } function vn(e5, t, r) { let { node: s } = e5; if (!s.inverse) return ""; let n = r("inverse"), i = t.htmlWhitespaceSensitivity === "ignore" ? [ut, n] : n; return e5.call(Pn, "inverse", "body", 0) ? i : [ei(s, t), F(i)]; } function wn(e5) { return ct(N, R.split(e5)); } function ii(e5) { for (let t = 0; t < 2; t++) { let r = e5.getParentNode(t); if (r?.type === "AttrNode") return r.name.toLowerCase(); } } function _t(e5) { return e5 = typeof e5 == "string" ? e5 : "", e5.split(` `).length - 1; } function ai(e5) { e5 = typeof e5 == "string" ? e5 : ""; let t = (e5.match(/^([^\S\n\r]*[\n\r])+/gu) || [])[0] || ""; return _t(t); } function oi(e5) { e5 = typeof e5 == "string" ? e5 : ""; let t = (e5.match(/([\n\r][^\S\n\r]*)+$/gu) || [])[0] || ""; return _t(t); } function Kt(e5 = 0) { return Array.from({ length: Math.min(e5, xn) }).fill(ut); } function li(e5, t) { let { node: { value: r } } = e5, s = oe(r, ci(e5) ? !t.singleQuote : t.singleQuote); return [s, St(0, r, s, `\\${s}`), s]; } function ci(e5) { let { ancestors: t } = e5, r = t.findIndex((s) => s.type !== "SubExpression"); return r !== -1 && t[r + 1].type === "ConcatStatement" && t[r + 2].type === "AttrNode"; } function ui(e5, t) { let r = gr(e5, t), s = ve(e5, t); return s ? F([r, N, I(s)]) : r; } function Tn(e5, t) { let r = gr(e5, t), s = ve(e5, t); return s ? [F([r, N, s]), H] : r; } function gr(e5, t) { return t("path"); } function ve(e5, t) { let { node: r } = e5, s = []; return r.params.length > 0 && s.push(...e5.map(t, "params")), r.hash?.pairs.length > 0 && s.push(t("hash")), s.length === 0 ? "" : ct(N, s); } function br(e5) { return ["as |", e5.blockParams.join(" "), "|"]; } function mi(e5) { return e5.tail.length === 0 && e5.original.includes("/") ? e5.original : [e5.head.original, ...e5.tail].map((r, s) => fi(r, s) ? `[${r}]` : r).join("."); } function gi(e5, t) { let r = new SyntaxError(e5 + " (" + t.loc.start.line + ":" + t.loc.start.column + ")"); return Object.assign(r, t); } function bi(e5) { let t = e5.slice(0, Wt); if (t !== "---" && t !== "+++") return; let r = e5.indexOf(` `, Wt); if (r === -1) return; let s = e5.slice(Wt, r).trim(), n = e5.indexOf(` ${t}`, r), i = s; if (i || (i = t === "+++" ? "toml" : "yaml"), n === -1 && t === "---" && i === "yaml" && (n = e5.indexOf(` ...`, r)), n === -1) return; let a = n + 1 + Wt, o = e5.charAt(a + 1); if (!/\s?/u.test(o)) return; let c = e5.slice(0, a), h; return { language: i, explicitLanguage: s || null, value: e5.slice(r + 1, n), startDelimiter: t, endDelimiter: c.slice(-Wt), raw: c, start: { line: 1, column: 0, index: 0 }, end: { index: c.length, get line() { return h ?? (h = c.split(` `)), h.length; }, get column() { return h ?? (h = c.split(` `)), V(0, h, -1).length; } }, [On]: !0 }; } function yi(e5) { let t = bi(e5); return t ? { frontMatter: t, get content() { let { raw: r } = t; return St(0, r, /[^\n]/gu, " ") + e5.slice(r.length); } } : { content: e5 }; } function Si(e5) { let t = e5.children ?? e5.body; if (t) for (let r = 0; r < t.length - 1; r++) t[r].type === "TextNode" && t[r + 1].type === "MustacheStatement" && (t[r].chars = t[r].chars.replace(/\\$/u, "\\\\")); } function wi(e5) { let { frontMatter: t, content: r } = In(e5), s; try { s = mn(r, vi); } catch (n) { let i = xi(n); if (i) { let a = Ti(n); throw Dn(a, { loc: i, cause: n }); } throw n; } if (t) { let n = { ...t, type: "FrontMatter", loc: { start: { ...t.start, offset: t.start.index }, end: { ...t.end, offset: t.end.index } } }; s.body.unshift(n); } return s; } function Ti(e5) { let { message: t } = e5, r = t.split(` `); return r.length >= 4 && /^Parse error on line \d+:$/u.test(r[0]) && /^-*\^$/u.test(V(0, r, -2)) ? V(0, r, -1) : r.length >= 4 && /:\s?$/u.test(r[0]) && /^\(error occurred in '.*?' @ line \d+ : column \d+\)$/u.test(V(0, r, -1)) && r[1] === "" && V(0, r, -2) === "" && r.slice(2, -2).every((s) => s.startsWith("|")) ? r[0].trim().slice(0, -1) : t; } function xi(e5) { let { location: t, hash: r } = e5; if (t) { let { start: s, end: n } = t; return typeof n.line != "number" ? { start: s } : t; } if (r) { let { loc: { last_line: s, last_column: n } } = r; return { start: { line: s, column: n + 1 } }; } } var Un, Oe, Bn, Jt, Mn, zn, St, Gn, V, Kn, Dt, Ot, It, $t, kt, Et, Xt, vt, wt, Tt, Zt, te, ee, Q, re, xt, ne, se, jn, Ie, _r, M, ae, Dr, Or, Re, N, H, Xn, ut, Zn, Lr, Ir, Br, ts, es, oe, He, Rr, ns, ss, R, Bt, Ue, qr, Fr, Hr, Rt, os, Ur, cs, $a, Xa, ze, Mr, us, Vt, Ye, tt, Wr, jr, Ft, hs, Qr, ue, $r, ws, Ts, xs, $e, Ns, As, Ps, Xe, uo, pe, po, fo, _s, Ls, vo, Ds, wo, de, st, Bs, sr, nt, ir, ge, ar, or, A, Ut, Mt, J, K, it, Pt, ft, at, zt, Rs, pt, be, mr, Ct, lr, Ze, Us, fe, d, cr, ur, hr, Ms, pr, zs, To, Ys, dn, mt, Gt, Gs, xn, ri, hi, pi, fi, di, _n, Ln, yr, Dn, On, Wt, In, ki, Ei, vi, Ni, Ai, init_glimmer = __esm({ "../../node_modules/.pnpm/prettier@3.7.4/node_modules/prettier/plugins/glimmer.mjs"() { init_cjs_shims(); Un = Object.defineProperty, Oe = (e5, t) => { for (var r in t) Un(e5, r, { get: t[r], enumerable: !0 }); }, Bn = {}; Oe(Bn, { languages: () => Ln, parsers: () => yr, printers: () => Ai }); Jt = (e5, t) => (r, s, ...n) => r | 1 && s == null ? void 0 : (t.call(s) ?? s[e5]).apply(s, n), Mn = String.prototype.replaceAll ?? function(e5, t) { return e5.global ? this.replace(e5, t) : this.split(e5).join(t); }, zn = Jt("replaceAll", function() { if (typeof this == "string") return Mn; }), St = zn; Gn = Jt("at", function() { if (Array.isArray(this) || typeof this == "string") return Yn; }), V = Gn, Kn = () => { }, Dt = Kn, Ot = "string", It = "array", $t = "cursor", kt = "indent", Et = "align", Xt = "trim", vt = "group", wt = "fill", Tt = "if-break", Zt = "indent-if-break", te = "line-suffix", ee = "line-suffix-boundary", Q = "line", re = "label", xt = "break-parent", ne = /* @__PURE__ */ new Set([$t, kt, Et, Xt, vt, wt, Tt, Zt, te, ee, Q, re, xt]); se = Wn, jn = (e5) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(e5); Ie = class extends Error { name = "InvalidDocError"; constructor(t) { super(Qn(t)), this.doc = t; } }, _r = Ie; M = Dt, ae = Dt, Dr = Dt, Or = Dt; Re = { type: xt }; N = { type: Q }, H = { type: Q, soft: !0 }, Xn = { type: Q, hard: !0 }, ut = [Xn, Re], Zn = { type: Q, hard: !0, literal: !0 }, Lr = [Zn, Re], Ir = Object.freeze({ character: "'", codePoint: 39 }), Br = Object.freeze({ character: '"', codePoint: 34 }), ts = Object.freeze({ preferred: Ir, alternate: Br }), es = Object.freeze({ preferred: Br, alternate: Ir }); oe = rs; He = class { #t; constructor(t) { this.#t = new Set(t); } getLeadingWhitespaceCount(t) { let r = this.#t, s = 0; for (let n = 0; n < t.length && r.has(t.charAt(n)); n++) s++; return s; } getTrailingWhitespaceCount(t) { let r = this.#t, s = 0; for (let n = t.length - 1; n >= 0 && r.has(t.charAt(n)); n--) s++; return s; } getLeadingWhitespace(t) { let r = this.getLeadingWhitespaceCount(t); return t.slice(0, r); } getTrailingWhitespace(t) { let r = this.getTrailingWhitespaceCount(t); return t.slice(t.length - r); } hasLeadingWhitespace(t) { return this.#t.has(t.charAt(0)); } hasTrailingWhitespace(t) { return this.#t.has(V(0, t, -1)); } trimStart(t) { let r = this.getLeadingWhitespaceCount(t); return t.slice(r); } trimEnd(t) { let r = this.getTrailingWhitespaceCount(t); return t.slice(0, t.length - r); } trim(t) { return this.trimEnd(this.trimStart(t)); } split(t, r = !1) { let s = `[${Fe([...this.#t].join(""))}]+`, n = new RegExp(r ? `(${s})` : s, "u"); return t.split(n); } hasWhitespaceCharacter(t) { let r = this.#t; return Array.prototype.some.call(t, (s) => r.has(s)); } hasNonWhitespaceCharacter(t) { let r = this.#t; return Array.prototype.some.call(t, (s) => !r.has(s)); } isWhitespaceOnly(t) { let r = this.#t; return Array.prototype.every.call(t, (s) => r.has(s)); } #e(t) { let r = Number.POSITIVE_INFINITY; for (let s of t.split(` `)) { if (s.length === 0) continue; let n = this.getLeadingWhitespaceCount(s); if (n === 0) return 0; s.length !== n && n < r && (r = n); } return r === Number.POSITIVE_INFINITY ? 0 : r; } dedentString(t) { let r = this.#e(t); return r === 0 ? t : t.split(` `).map((s) => s.slice(r)).join(` `); } }, Rr = He, ns = [" ", ` `, "\f", "\r", " "], ss = new Rr(ns), R = ss; Bt = is, Ue = class extends Error { name = "UnexpectedNodeError"; constructor(t, r, s = "type") { super(`Unexpected ${r} node ${s}: ${JSON.stringify(t[s])}.`), this.node = t; } }, qr = Ue; Vr.ignoredProperties = /* @__PURE__ */ new Set(["loc", "selfClosing"]); Fr = Vr; Hr = as, Rt = null; os = 10; for (let e5 = 0; e5 <= os; e5++) qt(); Ur = ls, cs = Object.freeze([]); $a = zr(), Xa = zr(), ze = Object.assign, Mr = console; us = (function() { var e5 = function(X, b, S, y) { for (S = S || {}, y = X.length; y--; S[X[y]] = b) ; return S; }, t = [2, 52], r = [1, 20], s = [5, 14, 15, 19, 29, 34, 39, 44, 47, 48, 53, 57, 61], n = [1, 44], i = [1, 40], a = [1, 43], o = [1, 33], c = [1, 34], h = [1, 35], f = [1, 36], p = [1, 37], g = [1, 42], E = [1, 46], T = [14, 15, 19, 29, 34, 39, 44, 47, 48, 53, 57, 61], D = [14, 15, 19, 29, 34, 44, 47, 48, 53, 57, 61], B = [15, 18], O = [14, 15, 19, 29, 34, 47, 48, 53, 57, 61], z = [33, 67, 73, 75, 84, 85, 86, 87, 88, 89], P = [23, 33, 56, 67, 68, 73, 75, 77, 79, 84, 85, 86, 87, 88, 89], U = [1, 62], C = [1, 63], $ = [23, 33, 56, 68, 73, 79], W = [23, 33, 56, 67, 68, 73, 75, 77, 79, 84, 85, 86, 87, 88, 89, 92, 93], Sr = [2, 51], kr = [1, 64], Er = [67, 73, 75, 77, 84, 85, 86, 87, 88, 89], vr = [56, 67, 73, 75, 84, 85, 86, 87, 88, 89], wr = [1, 75], we = [1, 76], Te = [1, 83], dt = [33, 67, 73, 75, 79, 84, 85, 86, 87, 88, 89], Tr = [23, 67, 73, 75, 84, 85, 86, 87, 88, 89], xr = [67, 68, 73, 75, 84, 85, 86, 87, 88, 89], gt = [33, 79], xe = [1, 134], Nr = [73, 81], Ne = { trace: function() { }, yy: {}, symbols_: { error: 2, root: 3, program: 4, EOF: 5, program_repetition0: 6, statement: 7, mustache: 8, block: 9, rawBlock: 10, partial: 11, partialBlock: 12, content: 13, COMMENT: 14, CONTENT: 15, openRawBlock: 16, rawBlock_repetition0: 17, END_RAW_BLOCK: 18, OPEN_RAW_BLOCK: 19, helperName: 20, openRawBlock_repetition0: 21, openRawBlock_option0: 22, CLOSE_RAW_BLOCK: 23, openBlock: 24, block_option0: 25, closeBlock: 26, openInverse: 27, block_option1: 28, OPEN_BLOCK: 29, openBlock_repetition0: 30, openBlock_option0: 31, openBlock_option1: 32, CLOSE: 33, OPEN_INVERSE: 34, openInverse_repetition0: 35, openInverse_option0: 36, openInverse_option1: 37, openInverseChain: 38, OPEN_INVERSE_CHAIN: 39, openInverseChain_repetition0: 40, openInverseChain_option0: 41, openInverseChain_option1: 42, inverseAndProgram: 43, INVERSE: 44, inverseChain: 45, inverseChain_option0: 46, OPEN_ENDBLOCK: 47, OPEN: 48, hash: 49, expr: 50, mustache_repetition0: 51, mustache_option0: 52, OPEN_UNESCAPED: 53, mustache_repetition1: 54, mustache_option1: 55, CLOSE_UNESCAPED: 56, OPEN_PARTIAL: 57, partial_repetition0: 58, partial_option0: 59, openPartialBlock: 60, OPEN_PARTIAL_BLOCK: 61, openPartialBlock_repetition0: 62, openPartialBlock_option0: 63, exprHead: 64, arrayLiteral: 65, sexpr: 66, OPEN_SEXPR: 67, CLOSE_SEXPR: 68, sexpr_repetition0: 69, sexpr_option0: 70, hash_repetition_plus0: 71, hashSegment: 72, ID: 73, EQUALS: 74, OPEN_ARRAY: 75, arrayLiteral_repetition0: 76, CLOSE_ARRAY: 77, blockParams: 78, OPEN_BLOCK_PARAMS: 79, blockParams_repetition_plus0: 80, CLOSE_BLOCK_PARAMS: 81, path: 82, dataName: 83, STRING: 84, NUMBER: 85, BOOLEAN: 86, UNDEFINED: 87, NULL: 88, DATA: 89, pathSegments: 90, sep: 91, SEP: 92, PRIVATE_SEP: 93, $accept: 0, $end: 1 }, terminals_: { 2: "error", 5: "EOF", 14: "COMMENT", 15: "CONTENT", 18: "END_RAW_BLOCK", 19: "OPEN_RAW_BLOCK", 23: "CLOSE_RAW_BLOCK", 29: "OPEN_BLOCK", 33: "CLOSE", 34: "OPEN_INVERSE", 39: "OPEN_INVERSE_CHAIN", 44: "INVERSE", 47: "OPEN_ENDBLOCK", 48: "OPEN", 53: "OPEN_UNESCAPED", 56: "CLOSE_UNESCAPED", 57: "OPEN_PARTIAL", 61: "OPEN_PARTIAL_BLOCK", 67: "OPEN_SEXPR", 68: "CLOSE_SEXPR", 73: "ID", 74: "EQUALS", 75: "OPEN_ARRAY", 77: "CLOSE_ARRAY", 79: "OPEN_BLOCK_PARAMS", 81: "CLOSE_BLOCK_PARAMS", 84: "STRING", 85: "NUMBER", 86: "BOOLEAN", 87: "UNDEFINED", 88: "NULL", 89: "DATA", 92: "SEP", 93: "PRIVATE_SEP" }, productions_: [0, [3, 2], [4, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [13, 1], [10, 3], [16, 5], [9, 4], [9, 4], [24, 6], [27, 6], [38, 6], [43, 2], [45, 3], [45, 1], [26, 3], [8, 3], [8, 5], [8, 5], [11, 5], [12, 3], [60, 5], [50, 1], [50, 1], [64, 1], [64, 1], [66, 3], [66, 5], [49, 1], [72, 3], [65, 3], [78, 3], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [83, 2], [91, 1], [91, 1], [82, 3], [82, 1], [90, 3], [90, 1], [6, 0], [6, 2], [17, 0], [17, 2], [21, 0], [21, 2], [22, 0], [22, 1], [25, 0], [25, 1], [28, 0], [28, 1], [30, 0], [30, 2], [31, 0], [31, 1], [32, 0], [32, 1], [35, 0], [35, 2], [36, 0], [36, 1], [37, 0], [37, 1], [40, 0], [40, 2], [41, 0], [41, 1], [42, 0], [42, 1], [46, 0], [46, 1], [51, 0], [51, 2], [52, 0], [52, 1], [54, 0], [54, 2], [55, 0], [55, 1], [58, 0], [58, 2], [59, 0], [59, 1], [62, 0], [62, 2], [63, 0], [63, 1], [69, 0], [69, 2], [70, 0], [70, 1], [71, 1], [71, 2], [76, 0], [76, 2], [80, 1], [80, 2]], performAction: function(b, S, y, m, w, l, bt) { var u = l.length - 1; switch (w) { case 1: return l[u - 1]; case 2: this.$ = m.prepareProgram(l[u]); break; case 3: case 4: case 5: case 6: case 7: case 8: case 20: case 28: case 29: case 30: case 31: case 38: case 39: case 46: case 47: this.$ = l[u]; break; case 9: this.$ = { type: "CommentStatement", value: m.stripComment(l[u]), strip: m.stripFlags(l[u], l[u]), loc: m.locInfo(this._$) }; break; case 10: this.$ = { type: "ContentStatement", original: l[u], value: l[u], loc: m.locInfo(this._$) }; break; case 11: this.$ = m.prepareRawBlock(l[u - 2], l[u - 1], l[u], this._$); break; case 12: this.$ = { path: l[u - 3], params: l[u - 2], hash: l[u - 1] }; break; case 13: this.$ = m.prepareBlock(l[u - 3], l[u - 2], l[u - 1], l[u], !1, this._$); break; case 14: this.$ = m.prepareBlock(l[u - 3], l[u - 2], l[u - 1], l[u], !0, this._$); break; case 15: this.$ = { open: l[u - 5], path: l[u - 4], params: l[u - 3], hash: l[u - 2], blockParams: l[u - 1], strip: m.stripFlags(l[u - 5], l[u]) }; break; case 16: case 17: this.$ = { path: l[u - 4], params: l[u - 3], hash: l[u - 2], blockParams: l[u - 1], strip: m.stripFlags(l[u - 5], l[u]) }; break; case 18: this.$ = { strip: m.stripFlags(l[u - 1], l[u - 1]), program: l[u] }; break; case 19: var Z = m.prepareBlock(l[u - 2], l[u - 1], l[u], l[u], !1, this._$), Lt = m.prepareProgram([Z], l[u - 1].loc); Lt.chained = !0, this.$ = { strip: l[u - 2].strip, program: Lt, chain: !0 }; break; case 21: this.$ = { path: l[u - 1], strip: m.stripFlags(l[u - 2], l[u]) }; break; case 22: this.$ = m.prepareMustache(m.syntax.hash(l[u - 1], m.locInfo(this._$), { yy: m, syntax: "expr" }), [], void 0, l[u - 2], m.stripFlags(l[u - 2], l[u]), this._$); break; case 23: case 24: this.$ = m.prepareMustache(l[u - 3], l[u - 2], l[u - 1], l[u - 4], m.stripFlags(l[u - 4], l[u]), this._$); break; case 25: this.$ = { type: "PartialStatement", name: l[u - 3], params: l[u - 2], hash: l[u - 1], indent: "", strip: m.stripFlags(l[u - 4], l[u]), loc: m.locInfo(this._$) }; break; case 26: this.$ = m.preparePartialBlock(l[u - 2], l[u - 1], l[u], this._$); break; case 27: this.$ = { path: l[u - 3], params: l[u - 2], hash: l[u - 1], strip: m.stripFlags(l[u - 4], l[u]) }; break; case 32: this.$ = m.syntax.hash(l[u - 1], m.locInfo(this._$), { yy: m, syntax: "expr" }); break; case 33: this.$ = { type: "SubExpression", path: l[u - 3], params: l[u - 2], hash: l[u - 1], loc: m.locInfo(this._$) }; break; case 34: this.$ = { type: "Hash", pairs: l[u], loc: m.locInfo(this._$) }; break; case 35: this.$ = { type: "HashPair", key: m.id(l[u - 2]), value: l[u], loc: m.locInfo(this._$) }; break; case 36: this.$ = m.syntax.square(l[u - 1], m.locInfo(this._$), { yy: m, syntax: "expr" }); break; case 37: this.$ = m.id(l[u - 1]); break; case 40: this.$ = { type: "StringLiteral", value: l[u], original: l[u], loc: m.locInfo(this._$) }; break; case 41: this.$ = { type: "NumberLiteral", value: Number(l[u]), original: Number(l[u]), loc: m.locInfo(this._$) }; break; case 42: this.$ = { type: "BooleanLiteral", value: l[u] === "true", original: l[u] === "true", loc: m.locInfo(this._$) }; break; case 43: this.$ = { type: "UndefinedLiteral", original: void 0, value: void 0, loc: m.locInfo(this._$) }; break; case 44: this.$ = { type: "NullLiteral", original: null, value: null, loc: m.locInfo(this._$) }; break; case 45: this.$ = m.preparePath(!0, !1, l[u], this._$); break; case 48: this.$ = m.preparePath(!1, l[u - 2], l[u], this._$); break; case 49: this.$ = m.preparePath(!1, !1, l[u], this._$); break; case 50: l[u - 2].push({ part: m.id(l[u]), original: l[u], separator: l[u - 1] }), this.$ = l[u - 2]; break; case 51: this.$ = [{ part: m.id(l[u]), original: l[u] }]; break; case 52: case 54: case 56: case 64: case 70: case 76: case 84: case 88: case 92: case 96: case 100: case 106: this.$ = []; break; case 53: case 55: case 57: case 65: case 71: case 77: case 85: case 89: case 93: case 97: case 101: case 105: case 107: case 109: l[u - 1].push(l[u]); break; case 104: case 108: this.$ = [l[u]]; break; } }, table: [e5([5, 14, 15, 19, 29, 34, 48, 53, 57, 61], t, { 3: 1, 4: 2, 6: 3 }), { 1: [3] }, { 5: [1, 4] }, e5([5, 39, 44, 47], [2, 2], { 7: 5, 8: 6, 9: 7, 10: 8, 11: 9, 12: 10, 13: 11, 24: 15, 27: 16, 16: 17, 60: 19, 14: [1, 12], 15: r, 19: [1, 23], 29: [1, 21], 34: [1, 22], 48: [1, 13], 53: [1, 14], 57: [1, 18], 61: [1, 24] }), { 1: [2, 1] }, e5(s, [2, 53]), e5(s, [2, 3]), e5(s, [2, 4]), e5(s, [2, 5]), e5(s, [2, 6]), e5(s, [2, 7]), e5(s, [2, 8]), e5(s, [2, 9]), { 20: 28, 49: 25, 50: 26, 64: 29, 65: 38, 66: 39, 67: n, 71: 27, 72: 30, 73: i, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, { 20: 28, 50: 45, 64: 29, 65: 38, 66: 39, 67: n, 73: E, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, e5(T, t, { 6: 3, 4: 47 }), e5(D, t, { 6: 3, 4: 48 }), e5(B, [2, 54], { 17: 49 }), { 20: 28, 50: 50, 64: 29, 65: 38, 66: 39, 67: n, 73: E, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, e5(O, t, { 6: 3, 4: 51 }), e5([5, 14, 15, 18, 19, 29, 34, 39, 44, 47, 48, 53, 57, 61], [2, 10]), { 20: 52, 64: 53, 65: 38, 66: 39, 67: n, 73: E, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, { 20: 54, 64: 53, 65: 38, 66: 39, 67: n, 73: E, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, { 20: 55, 64: 53, 65: 38, 66: 39, 67: n, 73: E, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, { 20: 28, 50: 56, 64: 29, 65: 38, 66: 39, 67: n, 73: E, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, { 33: [1, 57] }, e5(z, [2, 84], { 51: 58 }), e5([23, 33, 56, 68, 79], [2, 34], { 72: 59, 73: [1, 60] }), e5(P, [2, 28]), e5(P, [2, 29], { 91: 61, 92: U, 93: C }), e5($, [2, 104]), e5(P, [2, 38]), e5(P, [2, 39]), e5(P, [2, 40]), e5(P, [2, 41]), e5(P, [2, 42]), e5(P, [2, 43]), e5(P, [2, 44]), e5(W, [2, 30]), e5(W, [2, 31]), e5([23, 33, 56, 67, 68, 73, 75, 79, 84, 85, 86, 87, 88, 89, 92, 93], Sr, { 74: kr }), e5(P, [2, 49], { 91: 65, 92: U, 93: C }), { 73: E, 90: 66 }, e5(Er, [2, 106], { 76: 67 }), { 20: 28, 49: 68, 50: 69, 64: 29, 65: 38, 66: 39, 67: n, 71: 27, 72: 30, 73: i, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, e5(vr, [2, 88], { 54: 70 }), e5(W, Sr), { 25: 71, 38: 73, 39: wr, 43: 74, 44: we, 45: 72, 47: [2, 60] }, { 28: 77, 43: 78, 44: we, 47: [2, 62] }, { 13: 80, 15: r, 18: [1, 79] }, e5(z, [2, 92], { 58: 81 }), { 26: 82, 47: Te }, e5(dt, [2, 64], { 30: 84 }), { 91: 61, 92: U, 93: C }, e5(dt, [2, 70], { 35: 85 }), e5(Tr, [2, 56], { 21: 86 }), e5(z, [2, 96], { 62: 87 }), e5(s, [2, 22]), { 20: 28, 33: [2, 86], 49: 90, 50: 89, 52: 88, 64: 29, 65: 38, 66: 39, 67: n, 71: 27, 72: 30, 73: i, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, e5($, [2, 105]), { 74: kr }, { 73: E, 90: 91 }, { 73: [2, 46] }, { 73: [2, 47] }, { 20: 28, 50: 92, 64: 29, 65: 38, 66: 39, 67: n, 73: E, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, { 73: [1, 93] }, e5(P, [2, 45], { 91: 65, 92: U, 93: C }), { 20: 28, 50: 95, 64: 29, 65: 38, 66: 39, 67: n, 73: E, 75: a, 77: [1, 94], 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, { 68: [1, 96] }, e5(xr, [2, 100], { 69: 97 }), { 20: 28, 49: 100, 50: 99, 55: 98, 56: [2, 90], 64: 29, 65: 38, 66: 39, 67: n, 71: 27, 72: 30, 73: i, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, { 26: 101, 47: Te }, { 47: [2, 61] }, e5(T, t, { 6: 3, 4: 102 }), { 47: [2, 20] }, { 20: 103, 64: 5