@shopify/create-app
Version:
A CLI tool to create a new Shopify app.
1,140 lines (1,137 loc) • 180 kB
JavaScript
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