soonjs 0.0.21 → 0.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/deps/acorn-tklbyr11e.js +15 -0
  2. package/dist/deps/angular-m17t0gdsi.js +1 -0
  3. package/dist/deps/babel-48ei1aig4.js +15 -0
  4. package/dist/deps/estree-4o5bj9gvd.js +36 -0
  5. package/dist/deps/flow-xlruu7boa.js +19 -0
  6. package/dist/deps/glimmer-kyfivr6g7.js +30 -0
  7. package/dist/deps/graphql-xojtytb2p.js +29 -0
  8. package/dist/deps/html-jal5w2b1p.js +23 -0
  9. package/dist/deps/markdown-qhqqns7vp.js +62 -0
  10. package/dist/deps/meriyah-sl495y757.js +4 -0
  11. package/dist/deps/postcss-vq400h6ym.js +52 -0
  12. package/dist/deps/soon-id-gmzr57ufv.js +1 -0
  13. package/dist/deps/typescript-jihynpl9y.js +20 -0
  14. package/dist/deps/yaml-auqgv4vnk.js +161 -0
  15. package/dist/index.d.ts +2 -7
  16. package/dist/index.js +10 -54574
  17. package/dist/types.d.ts +1 -1
  18. package/dist/vite-plugin-soon-client.js +249 -0
  19. package/dist/vite-plugin-soon-server.js +272 -0
  20. package/package.json +2 -2
  21. package/dist/acorn-BeS7roP3.js +0 -2895
  22. package/dist/angular-B-EYu3Xp.js +0 -1448
  23. package/dist/babel-NsGQycRb.js +0 -6844
  24. package/dist/estree-cBJzAinS.js +0 -4265
  25. package/dist/flow-CH5Saqka.js +0 -26221
  26. package/dist/glimmer-D1ryh0Nj.js +0 -2756
  27. package/dist/graphql-DsBI6lrt.js +0 -1212
  28. package/dist/html-BCw0gm0V.js +0 -2623
  29. package/dist/markdown-k-AdjTGy.js +0 -3058
  30. package/dist/meriyah-CghVgtuf.js +0 -2320
  31. package/dist/one.d.ts +0 -20
  32. package/dist/postcss-BC57c3E8.js +0 -4664
  33. package/dist/testtt.d.ts +0 -1
  34. package/dist/typescript-DtWxbCCh.js +0 -12794
  35. package/dist/utils.d.ts +0 -6
  36. package/dist/yaml-CFlm97O-.js +0 -4088
@@ -1,2756 +0,0 @@
1
- var pn = Object.defineProperty;
2
- var dn = (t, e, r) => e in t ? pn(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
3
- var w = (t, e, r) => dn(t, typeof e != "symbol" ? e + "" : e, r);
4
- var mn = Object.defineProperty, Er = (t) => {
5
- throw TypeError(t);
6
- }, Pe = (t, e) => {
7
- for (var r in e) mn(t, r, { get: e[r], enumerable: !0 });
8
- }, vr = (t, e, r) => e.has(t) || Er("Cannot " + r), nt = (t, e, r) => (vr(t, e, "read from private field"), e.get(t)), fn = (t, e, r) => e.has(t) ? Er("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, r), gn = (t, e, r, n) => (vr(t, e, "write to private field"), e.set(t, r), r), Cr = {};
9
- Pe(Cr, { languages: () => Ca, parsers: () => jr, printers: () => iu });
10
- var bn = (t, e, r, n) => {
11
- if (!(t && e == null)) return e.replaceAll ? e.replaceAll(r, n) : r.global ? e.replace(r, n) : e.split(r).join(n);
12
- }, Sr = bn, wr = "string", Br = "array", kr = "cursor", Fe = "indent", Le = "align", xr = "trim", _e = "group", qe = "fill", Ie = "if-break", Tr = "indent-if-break", Nr = "line-suffix", Pr = "line-suffix-boundary", St = "line", Fr = "label", Oe = "break-parent", Lr = /* @__PURE__ */ new Set([kr, Fe, Le, xr, _e, qe, Ie, Tr, Nr, Pr, St, Fr, Oe]);
13
- function yn(t) {
14
- if (typeof t == "string") return wr;
15
- if (Array.isArray(t)) return Br;
16
- if (!t) return;
17
- let { type: e } = t;
18
- if (Lr.has(e)) return e;
19
- }
20
- var _r = yn, An = (t) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(t);
21
- function Dn(t) {
22
- let e = t === null ? "null" : typeof t;
23
- if (e !== "string" && e !== "object") return `Unexpected doc '${e}',
24
- Expected it to be 'string' or 'object'.`;
25
- if (_r(t)) throw new Error("doc is valid.");
26
- let r = Object.prototype.toString.call(t);
27
- if (r !== "[object Object]") return `Unexpected doc '${r}'.`;
28
- let n = An([...Lr].map((a) => `'${a}'`));
29
- return `Unexpected doc.type '${t.type}'.
30
- Expected it to be ${n}.`;
31
- }
32
- var En = class extends Error {
33
- constructor(e) {
34
- super(Dn(e));
35
- w(this, "name", "InvalidDocError");
36
- this.doc = e;
37
- }
38
- }, vn = En, Cn = () => {
39
- }, Sn = Cn;
40
- function O(t) {
41
- return { type: Fe, contents: t };
42
- }
43
- function wn(t, e) {
44
- return { type: Le, contents: e, n: t };
45
- }
46
- function R(t, e = {}) {
47
- return Sn(e.expandedStates), { type: _e, id: e.id, contents: t, break: !!e.shouldBreak, expandedStates: e.expandedStates };
48
- }
49
- function Xe(t) {
50
- return wn(-1, t);
51
- }
52
- function Ze(t) {
53
- return { type: qe, parts: t };
54
- }
55
- function tr(t, e = "", r = {}) {
56
- return { type: Ie, breakContents: t, flatContents: e, groupId: r.groupId };
57
- }
58
- var qr = { type: Oe }, Bn = { type: St, hard: !0 }, kn = { type: St, hard: !0, literal: !0 }, L = { type: St }, K = { type: St, soft: !0 }, wt = [Bn, qr], xn = [kn, qr];
59
- function Ot(t, e) {
60
- let r = [];
61
- for (let n = 0; n < e.length; n++) n !== 0 && r.push(t), r.push(e[n]);
62
- return r;
63
- }
64
- var Tn = (t, e, r) => {
65
- if (!(t && e == null)) return Array.isArray(e) || typeof e == "string" ? e[r < 0 ? e.length + r : r] : e.at(r);
66
- }, Tt = Tn;
67
- function Nn(t, e) {
68
- if (typeof t == "string") return e(t);
69
- let r = /* @__PURE__ */ new Map();
70
- return n(t);
71
- function n(s) {
72
- if (r.has(s)) return r.get(s);
73
- let u = a(s);
74
- return r.set(s, u), u;
75
- }
76
- function a(s) {
77
- switch (_r(s)) {
78
- case Br:
79
- return e(s.map(n));
80
- case qe:
81
- return e({ ...s, parts: s.parts.map(n) });
82
- case Ie:
83
- return e({ ...s, breakContents: n(s.breakContents), flatContents: n(s.flatContents) });
84
- case _e: {
85
- let { expandedStates: u, contents: i } = s;
86
- return u ? (u = u.map(n), i = u[0]) : i = n(i), e({ ...s, contents: i, expandedStates: u });
87
- }
88
- case Le:
89
- case Fe:
90
- case Tr:
91
- case Fr:
92
- case Nr:
93
- return e({ ...s, contents: n(s.contents) });
94
- case wr:
95
- case kr:
96
- case xr:
97
- case Pr:
98
- case St:
99
- case Oe:
100
- return e(s);
101
- default:
102
- throw new vn(s);
103
- }
104
- }
105
- }
106
- function Pn(t, e = xn) {
107
- return Nn(t, (r) => typeof r == "string" ? Ot(e, r.split(`
108
- `)) : r);
109
- }
110
- var zt = "'", er = '"';
111
- function Fn(t, e) {
112
- let r = e === !0 || e === zt ? zt : er, n = r === zt ? er : zt, a = 0, s = 0;
113
- for (let u of t) u === r ? a++ : u === n && s++;
114
- return a > s ? n : r;
115
- }
116
- var De = Fn;
117
- function Ln(t) {
118
- if (typeof t != "string") throw new TypeError("Expected a string");
119
- return t.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
120
- }
121
- var z, _n = class {
122
- constructor(t) {
123
- fn(this, z), gn(this, z, new Set(t));
124
- }
125
- getLeadingWhitespaceCount(t) {
126
- let e = nt(this, z), r = 0;
127
- for (let n = 0; n < t.length && e.has(t.charAt(n)); n++) r++;
128
- return r;
129
- }
130
- getTrailingWhitespaceCount(t) {
131
- let e = nt(this, z), r = 0;
132
- for (let n = t.length - 1; n >= 0 && e.has(t.charAt(n)); n--) r++;
133
- return r;
134
- }
135
- getLeadingWhitespace(t) {
136
- let e = this.getLeadingWhitespaceCount(t);
137
- return t.slice(0, e);
138
- }
139
- getTrailingWhitespace(t) {
140
- let e = this.getTrailingWhitespaceCount(t);
141
- return t.slice(t.length - e);
142
- }
143
- hasLeadingWhitespace(t) {
144
- return nt(this, z).has(t.charAt(0));
145
- }
146
- hasTrailingWhitespace(t) {
147
- return nt(this, z).has(Tt(!1, t, -1));
148
- }
149
- trimStart(t) {
150
- let e = this.getLeadingWhitespaceCount(t);
151
- return t.slice(e);
152
- }
153
- trimEnd(t) {
154
- let e = this.getTrailingWhitespaceCount(t);
155
- return t.slice(0, t.length - e);
156
- }
157
- trim(t) {
158
- return this.trimEnd(this.trimStart(t));
159
- }
160
- split(t, e = !1) {
161
- let r = `[${Ln([...nt(this, z)].join(""))}]+`, n = new RegExp(e ? `(${r})` : r, "u");
162
- return t.split(n);
163
- }
164
- hasWhitespaceCharacter(t) {
165
- let e = nt(this, z);
166
- return Array.prototype.some.call(t, (r) => e.has(r));
167
- }
168
- hasNonWhitespaceCharacter(t) {
169
- let e = nt(this, z);
170
- return Array.prototype.some.call(t, (r) => !e.has(r));
171
- }
172
- isWhitespaceOnly(t) {
173
- let e = nt(this, z);
174
- return Array.prototype.every.call(t, (r) => e.has(r));
175
- }
176
- };
177
- z = /* @__PURE__ */ new WeakMap();
178
- var qn = _n, In = [" ", `
179
- `, "\f", "\r", " "], On = new qn(In), Z = On;
180
- function $n(t) {
181
- return Array.isArray(t) && t.length > 0;
182
- }
183
- var Xt = $n, Vn = class extends Error {
184
- constructor(e, r, n = "type") {
185
- super(`Unexpected ${r} node ${n}: ${JSON.stringify(e[n])}.`);
186
- w(this, "name", "UnexpectedNodeError");
187
- this.node = e;
188
- }
189
- }, Rn = Vn;
190
- function Ir(t, e) {
191
- if (t.type === "TextNode") {
192
- let r = t.chars.trim();
193
- if (!r) return null;
194
- e.chars = Z.split(r).join(" ");
195
- }
196
- t.type === "ElementNode" && (delete e.startTag, delete e.openTag, delete e.parts, delete e.endTag, delete e.closeTag, delete e.nameNode, delete e.body, delete e.blockParamNodes, delete e.params, delete e.path), t.type === "Block" && (delete e.blockParamNodes, delete e.params), t.type === "AttrNode" && t.name.toLowerCase() === "class" && delete e.value, t.type === "PathExpression" && (e.head = t.head.original);
197
- }
198
- Ir.ignoredProperties = /* @__PURE__ */ new Set(["loc", "selfClosing"]);
199
- var Un = Ir, kt = null;
200
- function Nt(t) {
201
- if (kt !== null && typeof kt.property) {
202
- let e = kt;
203
- return kt = Nt.prototype = null, e;
204
- }
205
- return kt = Nt.prototype = t ?? /* @__PURE__ */ Object.create(null), new Nt();
206
- }
207
- var Hn = 10;
208
- for (let t = 0; t <= Hn; t++) Nt();
209
- function Mn(t) {
210
- return Nt(t);
211
- }
212
- function zn(t, e = "type") {
213
- Mn(t);
214
- function r(n) {
215
- let a = n[e], s = t[a];
216
- if (!Array.isArray(s)) throw Object.assign(new Error(`Missing visitor keys for '${a}'.`), { node: n });
217
- return s;
218
- }
219
- return r;
220
- }
221
- var jn = zn, Gn = { Template: ["body"], Block: ["body"], MustacheStatement: ["path", "params", "hash"], BlockStatement: ["path", "params", "hash", "program", "inverse"], ElementModifierStatement: ["path", "params", "hash"], CommentStatement: [], MustacheCommentStatement: [], ElementNode: ["attributes", "modifiers", "children", "comments"], AttrNode: ["value"], TextNode: [], ConcatStatement: ["parts"], SubExpression: ["path", "params", "hash"], PathExpression: [], StringLiteral: [], BooleanLiteral: [], NumberLiteral: [], NullLiteral: [], UndefinedLiteral: [], Hash: ["pairs"], HashPair: ["value"] }, Wn = jn(Gn), Kn = Wn;
222
- function Lt(t) {
223
- return t.loc.start.offset;
224
- }
225
- function Ee(t) {
226
- return t.loc.end.offset;
227
- }
228
- var Qn = /* @__PURE__ */ new Set(["area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr"]);
229
- function Or(t) {
230
- return t.toUpperCase() === t;
231
- }
232
- function Jn(t) {
233
- return t.type === "ElementNode" && typeof t.tag == "string" && !t.tag.startsWith(":") && (Or(t.tag[0]) || t.tag.includes("."));
234
- }
235
- function Yn(t) {
236
- return Qn.has(t.toLowerCase()) && !Or(t[0]);
237
- }
238
- function $r(t) {
239
- return t.selfClosing === !0 || Yn(t.tag) || Jn(t) && t.children.every((e) => $e(e));
240
- }
241
- function $e(t) {
242
- return t.type === "TextNode" && !/\S/u.test(t.chars);
243
- }
244
- function rr(t) {
245
- return (t == null ? void 0 : t.type) === "MustacheCommentStatement" && typeof t.value == "string" && t.value.trim() === "prettier-ignore";
246
- }
247
- function Xn(t) {
248
- return rr(t.node) || t.isInArray && (t.key === "children" || t.key === "body" || t.key === "parts") && rr(t.siblings[t.index - 2]);
249
- }
250
- var Vr = 2;
251
- function Zn(t, e, r) {
252
- var n, a, s, u, i, l, g, h, m;
253
- let { node: A } = t;
254
- switch (A.type) {
255
- case "Block":
256
- case "Program":
257
- case "Template":
258
- return R(t.map(r, "body"));
259
- case "ElementNode": {
260
- let y = R(ea(t, r)), C = e.htmlWhitespaceSensitivity === "ignore" && ((n = t.next) == null ? void 0 : n.type) === "ElementNode" ? K : "";
261
- if ($r(A)) return [y, C];
262
- let T = ["</", A.tag, ">"];
263
- return A.children.length === 0 ? [y, O(T), C] : e.htmlWhitespaceSensitivity === "ignore" ? [y, O(nr(t, e, r)), wt, O(T), C] : [y, O(R(nr(t, e, r))), O(T), C];
264
- }
265
- case "BlockStatement":
266
- return ia(t) ? [oa(t, r), ur(t, r, e), ir(t, r, e)] : [sa(t, r), R([ur(t, r, e), ir(t, r, e), la(t, r, e)])];
267
- case "ElementModifierStatement":
268
- return R(["{{", lr(t, r), "}}"]);
269
- case "MustacheStatement":
270
- return R([Zt(A), lr(t, r), te(A)]);
271
- case "SubExpression":
272
- return R(["(", ga(t, r), K, ")"]);
273
- case "AttrNode": {
274
- let { name: y, value: C } = A, T = C.type === "TextNode";
275
- if (T && C.chars === "" && Lt(C) === Ee(C)) return y;
276
- let x = T ? De(C.chars, e.singleQuote) : C.type === "ConcatStatement" ? De(C.parts.map((U) => U.type === "TextNode" ? U.chars : "").join(""), e.singleQuote) : "", B = r("value");
277
- return [y, "=", x, y === "class" && x ? R(O(B)) : B, x];
278
- }
279
- case "ConcatStatement":
280
- return t.map(r, "parts");
281
- case "Hash":
282
- return Ot(L, t.map(r, "pairs"));
283
- case "HashPair":
284
- return [A.key, "=", r("value")];
285
- case "TextNode": {
286
- let y = Sr(!1, A.chars, "{{", String.raw`\{{`), C = ha(t);
287
- if (C) {
288
- if (C === "class") {
289
- let Y = y.trim().split(/\s+/u).join(" "), tt = !1, $ = !1;
290
- return t.parent.type === "ConcatStatement" && (((a = t.previous) == null ? void 0 : a.type) === "MustacheStatement" && /^\s/u.test(y) && (tt = !0), ((s = t.next) == null ? void 0 : s.type) === "MustacheStatement" && /\s$/u.test(y) && Y !== "" && ($ = !0)), [tt ? L : "", Y, $ ? L : ""];
291
- }
292
- return Pn(y);
293
- }
294
- let T = Z.isWhitespaceOnly(y), { isFirst: x, isLast: B } = t;
295
- if (e.htmlWhitespaceSensitivity !== "ignore") {
296
- let Y = B && t.parent.type === "Template", tt = x && t.parent.type === "Template";
297
- if (T) {
298
- if (tt || Y) return "";
299
- let P = [L], rt = Dt(y);
300
- return rt && (P = xt(rt)), B && (P = P.map((Vt) => Xe(Vt))), P;
301
- }
302
- let $ = Z.getLeadingWhitespace(y), ft = [];
303
- if ($) {
304
- ft = [L];
305
- let P = Dt($);
306
- P && (ft = xt(P)), y = y.slice($.length);
307
- }
308
- let V = Z.getTrailingWhitespace(y), et = [];
309
- if (V) {
310
- if (!Y) {
311
- et = [L];
312
- let P = Dt(V);
313
- P && (et = xt(P)), B && (et = et.map((rt) => Xe(rt)));
314
- }
315
- y = y.slice(0, -V.length);
316
- }
317
- return [...ft, Ze(or(y)), ...et];
318
- }
319
- let U = Dt(y), j = pa(y), J = da(y);
320
- if ((x || B) && T && (t.parent.type === "Block" || t.parent.type === "ElementNode" || t.parent.type === "Template")) return "";
321
- T && U ? (j = Math.min(U, Vr), J = 0) : ((((u = t.next) == null ? void 0 : u.type) === "BlockStatement" || ((i = t.next) == null ? void 0 : i.type) === "ElementNode") && (J = Math.max(J, 1)), (((l = t.previous) == null ? void 0 : l.type) === "BlockStatement" || ((g = t.previous) == null ? void 0 : g.type) === "ElementNode") && (j = Math.max(j, 1)));
322
- let dt = "", mt = "";
323
- return J === 0 && ((h = t.next) == null ? void 0 : h.type) === "MustacheStatement" && (mt = " "), j === 0 && ((m = t.previous) == null ? void 0 : m.type) === "MustacheStatement" && (dt = " "), x && (j = 0, dt = ""), B && (J = 0, mt = ""), Z.hasLeadingWhitespace(y) && (y = dt + Z.trimStart(y)), Z.hasTrailingWhitespace(y) && (y = Z.trimEnd(y) + mt), [...xt(j), Ze(or(y)), ...xt(J)];
324
- }
325
- case "MustacheCommentStatement": {
326
- let y = Lt(A), C = Ee(A), T = e.originalText.charAt(y + 2) === "~", x = e.originalText.charAt(C - 3) === "~", B = A.value.includes("}}") ? "--" : "";
327
- return ["{{", T ? "~" : "", "!", B, A.value, B, x ? "~" : "", "}}"];
328
- }
329
- case "PathExpression":
330
- return Da(A);
331
- case "BooleanLiteral":
332
- return String(A.value);
333
- case "CommentStatement":
334
- return ["<!--", A.value, "-->"];
335
- case "StringLiteral":
336
- return ma(t, e);
337
- case "NumberLiteral":
338
- return String(A.value);
339
- case "UndefinedLiteral":
340
- return "undefined";
341
- case "NullLiteral":
342
- return "null";
343
- case "AtHead":
344
- case "VarHead":
345
- case "ThisHead":
346
- default:
347
- throw new Rn(A, "Handlebars");
348
- }
349
- }
350
- function ta(t, e) {
351
- return Lt(t) - Lt(e);
352
- }
353
- function ea(t, e) {
354
- let { node: r } = t, n = ["attributes", "modifiers", "comments"].filter((s) => Xt(r[s])), a = n.flatMap((s) => r[s]).sort(ta);
355
- for (let s of n) t.each(({ node: u }) => {
356
- let i = a.indexOf(u);
357
- a.splice(i, 1, [L, e()]);
358
- }, s);
359
- return Xt(r.blockParams) && a.push(L, Re(r)), ["<", r.tag, O(a), ra(r)];
360
- }
361
- function nr(t, e, r) {
362
- let { node: n } = t, a = n.children.every((s) => $e(s));
363
- return e.htmlWhitespaceSensitivity === "ignore" && a ? "" : t.map(({ isFirst: s }) => {
364
- let u = r();
365
- return s && e.htmlWhitespaceSensitivity === "ignore" ? [K, u] : u;
366
- }, "children");
367
- }
368
- function ra(t) {
369
- return $r(t) ? tr([K, "/>"], [" />", K]) : tr([K, ">"], ">");
370
- }
371
- function Zt(t) {
372
- var e;
373
- let r = t.trusting ? "{{{" : "{{", n = (e = t.strip) != null && e.open ? "~" : "";
374
- return [r, n];
375
- }
376
- function te(t) {
377
- var e;
378
- let r = t.trusting ? "}}}" : "}}";
379
- return [(e = t.strip) != null && e.close ? "~" : "", r];
380
- }
381
- function na(t) {
382
- let e = Zt(t), r = t.openStrip.open ? "~" : "";
383
- return [e, r, "#"];
384
- }
385
- function aa(t) {
386
- let e = te(t);
387
- return [t.openStrip.close ? "~" : "", e];
388
- }
389
- function ar(t) {
390
- let e = Zt(t), r = t.closeStrip.open ? "~" : "";
391
- return [e, r, "/"];
392
- }
393
- function sr(t) {
394
- let e = te(t);
395
- return [t.closeStrip.close ? "~" : "", e];
396
- }
397
- function Rr(t) {
398
- let e = Zt(t), r = t.inverseStrip.open ? "~" : "";
399
- return [e, r];
400
- }
401
- function Ur(t) {
402
- let e = te(t);
403
- return [t.inverseStrip.close ? "~" : "", e];
404
- }
405
- function sa(t, e) {
406
- let { node: r } = t, n = [], a = ee(t, e);
407
- return a && n.push(R(a)), Xt(r.program.blockParams) && n.push(Re(r.program)), R([na(r), Ve(t, e), n.length > 0 ? O([L, Ot(L, n)]) : "", K, aa(r)]);
408
- }
409
- function ua(t, e) {
410
- return [e.htmlWhitespaceSensitivity === "ignore" ? wt : "", Rr(t), "else", Ur(t)];
411
- }
412
- var Hr = (t, e) => t.head.type === "VarHead" && e.head.type === "VarHead" && t.head.name === e.head.name;
413
- function ia(t) {
414
- var e;
415
- let { grandparent: r, node: n } = t;
416
- return ((e = r == null ? void 0 : r.inverse) == null ? void 0 : e.body.length) === 1 && r.inverse.body[0] === n && Hr(r.inverse.body[0].path, r.path);
417
- }
418
- function oa(t, e) {
419
- let { node: r, grandparent: n } = t;
420
- return R([Rr(n), ["else", " ", n.inverse.body[0].path.head.name], O([L, R(ee(t, e)), ...Xt(r.program.blockParams) ? [L, Re(r.program)] : []]), K, Ur(n)]);
421
- }
422
- function la(t, e, r) {
423
- let { node: n } = t;
424
- return r.htmlWhitespaceSensitivity === "ignore" ? [Mr(n) ? K : wt, ar(n), e("path"), sr(n)] : [ar(n), e("path"), sr(n)];
425
- }
426
- function Mr(t) {
427
- return t.type === "BlockStatement" && t.program.body.every((e) => $e(e));
428
- }
429
- function ca(t) {
430
- return zr(t) && t.inverse.body.length === 1 && t.inverse.body[0].type === "BlockStatement" && Hr(t.inverse.body[0].path, t.path);
431
- }
432
- function zr(t) {
433
- return t.type === "BlockStatement" && t.inverse;
434
- }
435
- function ur(t, e, r) {
436
- let { node: n } = t;
437
- if (Mr(n)) return "";
438
- let a = e("program");
439
- return r.htmlWhitespaceSensitivity === "ignore" ? O([wt, a]) : O(a);
440
- }
441
- function ir(t, e, r) {
442
- let { node: n } = t, a = e("inverse"), s = r.htmlWhitespaceSensitivity === "ignore" ? [wt, a] : a;
443
- return ca(n) ? s : zr(n) ? [ua(n, r), O(s)] : "";
444
- }
445
- function or(t) {
446
- return Ot(L, Z.split(t));
447
- }
448
- function ha(t) {
449
- for (let e = 0; e < 2; e++) {
450
- let r = t.getParentNode(e);
451
- if ((r == null ? void 0 : r.type) === "AttrNode") return r.name.toLowerCase();
452
- }
453
- }
454
- function Dt(t) {
455
- return t = typeof t == "string" ? t : "", t.split(`
456
- `).length - 1;
457
- }
458
- function pa(t) {
459
- t = typeof t == "string" ? t : "";
460
- let e = (t.match(/^([^\S\n\r]*[\n\r])+/gu) || [])[0] || "";
461
- return Dt(e);
462
- }
463
- function da(t) {
464
- t = typeof t == "string" ? t : "";
465
- let e = (t.match(/([\n\r][^\S\n\r]*)+$/gu) || [])[0] || "";
466
- return Dt(e);
467
- }
468
- function xt(t = 0) {
469
- return Array.from({ length: Math.min(t, Vr) }).fill(wt);
470
- }
471
- function ma(t, e) {
472
- let { node: { value: r } } = t, n = De(r, fa(t) ? !e.singleQuote : e.singleQuote);
473
- return [n, Sr(!1, r, n, `\\${n}`), n];
474
- }
475
- function fa(t) {
476
- let { ancestors: e } = t, r = e.findIndex((n) => n.type !== "SubExpression");
477
- return r !== -1 && e[r + 1].type === "ConcatStatement" && e[r + 2].type === "AttrNode";
478
- }
479
- function ga(t, e) {
480
- let r = Ve(t, e), n = ee(t, e);
481
- return n ? O([r, L, R(n)]) : r;
482
- }
483
- function lr(t, e) {
484
- let r = Ve(t, e), n = ee(t, e);
485
- return n ? [O([r, L, n]), K] : r;
486
- }
487
- function Ve(t, e) {
488
- return e("path");
489
- }
490
- function ee(t, e) {
491
- var r;
492
- let { node: n } = t, a = [];
493
- return n.params.length > 0 && a.push(...t.map(e, "params")), ((r = n.hash) == null ? void 0 : r.pairs.length) > 0 && a.push(e("hash")), a.length === 0 ? "" : Ot(L, a);
494
- }
495
- function Re(t) {
496
- return ["as |", t.blockParams.join(" "), "|"];
497
- }
498
- var ba = new Set("!\"#%&'()*+,./;<=>@[\\]^`{|}~"), ya = /* @__PURE__ */ new Set(["true", "false", "null", "undefined"]), Aa = (t, e) => e === 0 && t.startsWith("@") ? !1 : e !== 0 && ya.has(t) || /\s/u.test(t) || /^\d/u.test(t) || Array.prototype.some.call(t, (r) => ba.has(r));
499
- function Da(t) {
500
- return t.tail.length === 0 && t.original.includes("/") ? t.original : [t.head.original, ...t.tail].map((e, r) => Aa(e, r) ? `[${e}]` : e).join(".");
501
- }
502
- var Ea = { print: Zn, massageAstNode: Un, hasPrettierIgnore: Xn, getVisitorKeys: Kn }, va = Ea, Ca = [{ linguistLanguageId: 155, name: "Handlebars", type: "markup", color: "#f7931e", aliases: ["hbs", "htmlbars"], extensions: [".handlebars", ".hbs"], tmScope: "text.html.handlebars", aceMode: "handlebars", parsers: ["glimmer"], vscodeLanguageIds: ["handlebars"] }], jr = {};
503
- Pe(jr, { glimmer: () => uu });
504
- function S(t, e) {
505
- if (!t) throw new Error(e || "assertion failure");
506
- }
507
- function M(t) {
508
- Fa.warn(`DEPRECATION: ${t}`);
509
- }
510
- function Ue(t) {
511
- if (t == null) throw new Error("Expected value to be present");
512
- return t;
513
- }
514
- function Sa(t, e) {
515
- if (t == null) throw new Error(e);
516
- return t;
517
- }
518
- function Bt(t) {
519
- return t.length > 0;
520
- }
521
- function ve(t, e = "unexpected empty list") {
522
- if (!Bt(t)) throw new Error(e);
523
- }
524
- function _t(t, e = "unexpected empty list") {
525
- return ve(t, e), t;
526
- }
527
- function He(t) {
528
- return t.length === 0 ? void 0 : t[t.length - 1];
529
- }
530
- function wa(t) {
531
- return t.length === 0 ? void 0 : t[0];
532
- }
533
- var Me = function(t) {
534
- return t[t.MAX_SMI = 1073741823] = "MAX_SMI", t[t.MIN_SMI = -1073741824] = "MIN_SMI", t[t.SIGN_BIT = -536870913] = "SIGN_BIT", t[t.MAX_INT = 536870911] = "MAX_INT", t[t.MIN_INT = -536870912] = "MIN_INT", t[t.FALSE_HANDLE = 0] = "FALSE_HANDLE", t[t.TRUE_HANDLE = 1] = "TRUE_HANDLE", t[t.NULL_HANDLE = 2] = "NULL_HANDLE", t[t.UNDEFINED_HANDLE = 3] = "UNDEFINED_HANDLE", t[t.ENCODED_FALSE_HANDLE = 0] = "ENCODED_FALSE_HANDLE", t[t.ENCODED_TRUE_HANDLE = 1] = "ENCODED_TRUE_HANDLE", t[t.ENCODED_NULL_HANDLE = 2] = "ENCODED_NULL_HANDLE", t[t.ENCODED_UNDEFINED_HANDLE = 3] = "ENCODED_UNDEFINED_HANDLE", t;
535
- }({});
536
- function Ba(t) {
537
- return t & Me.SIGN_BIT;
538
- }
539
- function ka(t) {
540
- return t | ~Me.SIGN_BIT;
541
- }
542
- function xa(t) {
543
- return ~t;
544
- }
545
- function Ta(t) {
546
- return ~t;
547
- }
548
- function Na(t) {
549
- return t |= 0, t < 0 ? Ba(t) : xa(t);
550
- }
551
- function Pa(t) {
552
- return t |= 0, t > Me.SIGN_BIT ? Ta(t) : ka(t);
553
- }
554
- [1, -1].forEach((t) => Pa(Na(t)));
555
- var Gr = Object.assign, Fa = console, cr = console;
556
- function La(t, e = "unexpected unreachable branch") {
557
- throw cr.log("unreachable", t), cr.log(`${e} :: ${JSON.stringify(t)} (${t})`), new Error("code reached unreachable");
558
- }
559
- var _a = function() {
560
- var t = function(G, p, b, d) {
561
- for (b = b || {}, d = G.length; d--; b[G[d]] = p) ;
562
- return b;
563
- }, e = [2, 44], r = [1, 20], n = [5, 14, 15, 19, 29, 34, 39, 44, 47, 48, 52, 56, 60], a = [1, 35], s = [1, 38], u = [1, 30], i = [1, 31], l = [1, 32], g = [1, 33], h = [1, 34], m = [1, 37], A = [14, 15, 19, 29, 34, 39, 44, 47, 48, 52, 56, 60], y = [14, 15, 19, 29, 34, 44, 47, 48, 52, 56, 60], C = [15, 18], T = [14, 15, 19, 29, 34, 47, 48, 52, 56, 60], x = [33, 64, 71, 79, 80, 81, 82, 83, 84], B = [23, 33, 55, 64, 67, 71, 74, 79, 80, 81, 82, 83, 84], U = [1, 51], j = [23, 33, 55, 64, 67, 71, 74, 79, 80, 81, 82, 83, 84, 86], J = [2, 43], dt = [55, 64, 71, 79, 80, 81, 82, 83, 84], mt = [1, 58], Y = [1, 59], tt = [1, 66], $ = [33, 64, 71, 74, 79, 80, 81, 82, 83, 84], ft = [23, 64, 71, 79, 80, 81, 82, 83, 84], V = [1, 76], et = [64, 67, 71, 79, 80, 81, 82, 83, 84], P = [33, 74], rt = [23, 33, 55, 67, 71, 74], Vt = [1, 106], se = [1, 118], Qe = [71, 76], ue = { trace: function() {
564
- }, 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, expr: 49, mustache_repetition0: 50, mustache_option0: 51, OPEN_UNESCAPED: 52, mustache_repetition1: 53, mustache_option1: 54, CLOSE_UNESCAPED: 55, OPEN_PARTIAL: 56, partial_repetition0: 57, partial_option0: 58, openPartialBlock: 59, OPEN_PARTIAL_BLOCK: 60, openPartialBlock_repetition0: 61, openPartialBlock_option0: 62, sexpr: 63, OPEN_SEXPR: 64, sexpr_repetition0: 65, sexpr_option0: 66, CLOSE_SEXPR: 67, hash: 68, hash_repetition_plus0: 69, hashSegment: 70, ID: 71, EQUALS: 72, blockParams: 73, OPEN_BLOCK_PARAMS: 74, blockParams_repetition_plus0: 75, CLOSE_BLOCK_PARAMS: 76, path: 77, dataName: 78, STRING: 79, NUMBER: 80, BOOLEAN: 81, UNDEFINED: 82, NULL: 83, DATA: 84, pathSegments: 85, SEP: 86, $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", 52: "OPEN_UNESCAPED", 55: "CLOSE_UNESCAPED", 56: "OPEN_PARTIAL", 60: "OPEN_PARTIAL_BLOCK", 64: "OPEN_SEXPR", 67: "CLOSE_SEXPR", 71: "ID", 72: "EQUALS", 74: "OPEN_BLOCK_PARAMS", 76: "CLOSE_BLOCK_PARAMS", 79: "STRING", 80: "NUMBER", 81: "BOOLEAN", 82: "UNDEFINED", 83: "NULL", 84: "DATA", 86: "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, 5], [8, 5], [11, 5], [12, 3], [59, 5], [49, 1], [49, 1], [63, 5], [68, 1], [70, 3], [73, 3], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [78, 2], [77, 1], [85, 3], [85, 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], [50, 0], [50, 2], [51, 0], [51, 1], [53, 0], [53, 2], [54, 0], [54, 1], [57, 0], [57, 2], [58, 0], [58, 1], [61, 0], [61, 2], [62, 0], [62, 1], [65, 0], [65, 2], [66, 0], [66, 1], [69, 1], [69, 2], [75, 1], [75, 2]], performAction: function(G, p, b, d, E, o, _) {
565
- var c = o.length - 1;
566
- switch (E) {
567
- case 1:
568
- return o[c - 1];
569
- case 2:
570
- this.$ = d.prepareProgram(o[c]);
571
- break;
572
- case 3:
573
- case 4:
574
- case 5:
575
- case 6:
576
- case 7:
577
- case 8:
578
- case 20:
579
- case 27:
580
- case 28:
581
- case 33:
582
- case 34:
583
- this.$ = o[c];
584
- break;
585
- case 9:
586
- this.$ = { type: "CommentStatement", value: d.stripComment(o[c]), strip: d.stripFlags(o[c], o[c]), loc: d.locInfo(this._$) };
587
- break;
588
- case 10:
589
- this.$ = { type: "ContentStatement", original: o[c], value: o[c], loc: d.locInfo(this._$) };
590
- break;
591
- case 11:
592
- this.$ = d.prepareRawBlock(o[c - 2], o[c - 1], o[c], this._$);
593
- break;
594
- case 12:
595
- this.$ = { path: o[c - 3], params: o[c - 2], hash: o[c - 1] };
596
- break;
597
- case 13:
598
- this.$ = d.prepareBlock(o[c - 3], o[c - 2], o[c - 1], o[c], !1, this._$);
599
- break;
600
- case 14:
601
- this.$ = d.prepareBlock(o[c - 3], o[c - 2], o[c - 1], o[c], !0, this._$);
602
- break;
603
- case 15:
604
- this.$ = { open: o[c - 5], path: o[c - 4], params: o[c - 3], hash: o[c - 2], blockParams: o[c - 1], strip: d.stripFlags(o[c - 5], o[c]) };
605
- break;
606
- case 16:
607
- case 17:
608
- this.$ = { path: o[c - 4], params: o[c - 3], hash: o[c - 2], blockParams: o[c - 1], strip: d.stripFlags(o[c - 5], o[c]) };
609
- break;
610
- case 18:
611
- this.$ = { strip: d.stripFlags(o[c - 1], o[c - 1]), program: o[c] };
612
- break;
613
- case 19:
614
- var Rt = d.prepareBlock(o[c - 2], o[c - 1], o[c], o[c], !1, this._$), Ut = d.prepareProgram([Rt], o[c - 1].loc);
615
- Ut.chained = !0, this.$ = { strip: o[c - 2].strip, program: Ut, chain: !0 };
616
- break;
617
- case 21:
618
- this.$ = { path: o[c - 1], strip: d.stripFlags(o[c - 2], o[c]) };
619
- break;
620
- case 22:
621
- case 23:
622
- this.$ = d.prepareMustache(o[c - 3], o[c - 2], o[c - 1], o[c - 4], d.stripFlags(o[c - 4], o[c]), this._$);
623
- break;
624
- case 24:
625
- this.$ = { type: "PartialStatement", name: o[c - 3], params: o[c - 2], hash: o[c - 1], indent: "", strip: d.stripFlags(o[c - 4], o[c]), loc: d.locInfo(this._$) };
626
- break;
627
- case 25:
628
- this.$ = d.preparePartialBlock(o[c - 2], o[c - 1], o[c], this._$);
629
- break;
630
- case 26:
631
- this.$ = { path: o[c - 3], params: o[c - 2], hash: o[c - 1], strip: d.stripFlags(o[c - 4], o[c]) };
632
- break;
633
- case 29:
634
- this.$ = { type: "SubExpression", path: o[c - 3], params: o[c - 2], hash: o[c - 1], loc: d.locInfo(this._$) };
635
- break;
636
- case 30:
637
- this.$ = { type: "Hash", pairs: o[c], loc: d.locInfo(this._$) };
638
- break;
639
- case 31:
640
- this.$ = { type: "HashPair", key: d.id(o[c - 2]), value: o[c], loc: d.locInfo(this._$) };
641
- break;
642
- case 32:
643
- this.$ = d.id(o[c - 1]);
644
- break;
645
- case 35:
646
- this.$ = { type: "StringLiteral", value: o[c], original: o[c], loc: d.locInfo(this._$) };
647
- break;
648
- case 36:
649
- this.$ = { type: "NumberLiteral", value: Number(o[c]), original: Number(o[c]), loc: d.locInfo(this._$) };
650
- break;
651
- case 37:
652
- this.$ = { type: "BooleanLiteral", value: o[c] === "true", original: o[c] === "true", loc: d.locInfo(this._$) };
653
- break;
654
- case 38:
655
- this.$ = { type: "UndefinedLiteral", original: void 0, value: void 0, loc: d.locInfo(this._$) };
656
- break;
657
- case 39:
658
- this.$ = { type: "NullLiteral", original: null, value: null, loc: d.locInfo(this._$) };
659
- break;
660
- case 40:
661
- this.$ = d.preparePath(!0, o[c], this._$);
662
- break;
663
- case 41:
664
- this.$ = d.preparePath(!1, o[c], this._$);
665
- break;
666
- case 42:
667
- o[c - 2].push({ part: d.id(o[c]), original: o[c], separator: o[c - 1] }), this.$ = o[c - 2];
668
- break;
669
- case 43:
670
- this.$ = [{ part: d.id(o[c]), original: o[c] }];
671
- break;
672
- case 44:
673
- case 46:
674
- case 48:
675
- case 56:
676
- case 62:
677
- case 68:
678
- case 76:
679
- case 80:
680
- case 84:
681
- case 88:
682
- case 92:
683
- this.$ = [];
684
- break;
685
- case 45:
686
- case 47:
687
- case 49:
688
- case 57:
689
- case 63:
690
- case 69:
691
- case 77:
692
- case 81:
693
- case 85:
694
- case 89:
695
- case 93:
696
- case 97:
697
- case 99:
698
- o[c - 1].push(o[c]);
699
- break;
700
- case 96:
701
- case 98:
702
- this.$ = [o[c]];
703
- break;
704
- }
705
- }, table: [t([5, 14, 15, 19, 29, 34, 48, 52, 56, 60], e, { 3: 1, 4: 2, 6: 3 }), { 1: [3] }, { 5: [1, 4] }, t([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, 59: 19, 14: [1, 12], 15: r, 19: [1, 23], 29: [1, 21], 34: [1, 22], 48: [1, 13], 52: [1, 14], 56: [1, 18], 60: [1, 24] }), { 1: [2, 1] }, t(n, [2, 45]), t(n, [2, 3]), t(n, [2, 4]), t(n, [2, 5]), t(n, [2, 6]), t(n, [2, 7]), t(n, [2, 8]), t(n, [2, 9]), { 20: 26, 49: 25, 63: 27, 64: a, 71: s, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, { 20: 26, 49: 39, 63: 27, 64: a, 71: s, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, t(A, e, { 6: 3, 4: 40 }), t(y, e, { 6: 3, 4: 41 }), t(C, [2, 46], { 17: 42 }), { 20: 26, 49: 43, 63: 27, 64: a, 71: s, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, t(T, e, { 6: 3, 4: 44 }), t([5, 14, 15, 18, 19, 29, 34, 39, 44, 47, 48, 52, 56, 60], [2, 10]), { 20: 45, 71: s, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, { 20: 46, 71: s, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, { 20: 47, 71: s, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, { 20: 26, 49: 48, 63: 27, 64: a, 71: s, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, t(x, [2, 76], { 50: 49 }), t(B, [2, 27]), t(B, [2, 28]), t(B, [2, 33]), t(B, [2, 34]), t(B, [2, 35]), t(B, [2, 36]), t(B, [2, 37]), t(B, [2, 38]), t(B, [2, 39]), { 20: 26, 49: 50, 63: 27, 64: a, 71: s, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, t(B, [2, 41], { 86: U }), { 71: s, 85: 52 }, t(j, J), t(dt, [2, 80], { 53: 53 }), { 25: 54, 38: 56, 39: mt, 43: 57, 44: Y, 45: 55, 47: [2, 52] }, { 28: 60, 43: 61, 44: Y, 47: [2, 54] }, { 13: 63, 15: r, 18: [1, 62] }, t(x, [2, 84], { 57: 64 }), { 26: 65, 47: tt }, t($, [2, 56], { 30: 67 }), t($, [2, 62], { 35: 68 }), t(ft, [2, 48], { 21: 69 }), t(x, [2, 88], { 61: 70 }), { 20: 26, 33: [2, 78], 49: 72, 51: 71, 63: 27, 64: a, 68: 73, 69: 74, 70: 75, 71: V, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, t(et, [2, 92], { 65: 77 }), { 71: [1, 78] }, t(B, [2, 40], { 86: U }), { 20: 26, 49: 80, 54: 79, 55: [2, 82], 63: 27, 64: a, 68: 81, 69: 74, 70: 75, 71: V, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, { 26: 82, 47: tt }, { 47: [2, 53] }, t(A, e, { 6: 3, 4: 83 }), { 47: [2, 20] }, { 20: 84, 71: s, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, t(T, e, { 6: 3, 4: 85 }), { 26: 86, 47: tt }, { 47: [2, 55] }, t(n, [2, 11]), t(C, [2, 47]), { 20: 26, 33: [2, 86], 49: 88, 58: 87, 63: 27, 64: a, 68: 89, 69: 74, 70: 75, 71: V, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, t(n, [2, 25]), { 20: 90, 71: s, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, t(P, [2, 58], { 20: 26, 63: 27, 77: 28, 78: 29, 85: 36, 69: 74, 70: 75, 31: 91, 49: 92, 68: 93, 64: a, 71: V, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m }), t(P, [2, 64], { 20: 26, 63: 27, 77: 28, 78: 29, 85: 36, 69: 74, 70: 75, 36: 94, 49: 95, 68: 96, 64: a, 71: V, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m }), { 20: 26, 22: 97, 23: [2, 50], 49: 98, 63: 27, 64: a, 68: 99, 69: 74, 70: 75, 71: V, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, { 20: 26, 33: [2, 90], 49: 101, 62: 100, 63: 27, 64: a, 68: 102, 69: 74, 70: 75, 71: V, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, { 33: [1, 103] }, t(x, [2, 77]), { 33: [2, 79] }, t([23, 33, 55, 67, 74], [2, 30], { 70: 104, 71: [1, 105] }), t(rt, [2, 96]), t(j, J, { 72: Vt }), { 20: 26, 49: 108, 63: 27, 64: a, 66: 107, 67: [2, 94], 68: 109, 69: 74, 70: 75, 71: V, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, t(j, [2, 42]), { 55: [1, 110] }, t(dt, [2, 81]), { 55: [2, 83] }, t(n, [2, 13]), { 38: 56, 39: mt, 43: 57, 44: Y, 45: 112, 46: 111, 47: [2, 74] }, t($, [2, 68], { 40: 113 }), { 47: [2, 18] }, t(n, [2, 14]), { 33: [1, 114] }, t(x, [2, 85]), { 33: [2, 87] }, { 33: [1, 115] }, { 32: 116, 33: [2, 60], 73: 117, 74: se }, t($, [2, 57]), t(P, [2, 59]), { 33: [2, 66], 37: 119, 73: 120, 74: se }, t($, [2, 63]), t(P, [2, 65]), { 23: [1, 121] }, t(ft, [2, 49]), { 23: [2, 51] }, { 33: [1, 122] }, t(x, [2, 89]), { 33: [2, 91] }, t(n, [2, 22]), t(rt, [2, 97]), { 72: Vt }, { 20: 26, 49: 123, 63: 27, 64: a, 71: s, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, { 67: [1, 124] }, t(et, [2, 93]), { 67: [2, 95] }, t(n, [2, 23]), { 47: [2, 19] }, { 47: [2, 75] }, t(P, [2, 70], { 20: 26, 63: 27, 77: 28, 78: 29, 85: 36, 69: 74, 70: 75, 41: 125, 49: 126, 68: 127, 64: a, 71: V, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m }), t(n, [2, 24]), t(n, [2, 21]), { 33: [1, 128] }, { 33: [2, 61] }, { 71: [1, 130], 75: 129 }, { 33: [1, 131] }, { 33: [2, 67] }, t(C, [2, 12]), t(T, [2, 26]), t(rt, [2, 31]), t(B, [2, 29]), { 33: [2, 72], 42: 132, 73: 133, 74: se }, t($, [2, 69]), t(P, [2, 71]), t(A, [2, 15]), { 71: [1, 135], 76: [1, 134] }, t(Qe, [2, 98]), t(y, [2, 16]), { 33: [1, 136] }, { 33: [2, 73] }, { 33: [2, 32] }, t(Qe, [2, 99]), t(A, [2, 17])], defaultActions: { 4: [2, 1], 55: [2, 53], 57: [2, 20], 61: [2, 55], 73: [2, 79], 81: [2, 83], 85: [2, 18], 89: [2, 87], 99: [2, 51], 102: [2, 91], 109: [2, 95], 111: [2, 19], 112: [2, 75], 117: [2, 61], 120: [2, 67], 133: [2, 73], 134: [2, 32] }, parseError: function(G, p) {
706
- if (p.recoverable) this.trace(G);
707
- else {
708
- var b = new Error(G);
709
- throw b.hash = p, b;
710
- }
711
- }, parse: function(G) {
712
- var p = this, b = [0], d = [null], E = [], o = this.table, _ = "", c = 0, Rt = 0, Ut = 0, on = 2, Je = 1, ln = E.slice.call(arguments, 1), N = Object.create(this.lexer), lt = { yy: {} };
713
- for (var oe in this.yy) Object.prototype.hasOwnProperty.call(this.yy, oe) && (lt.yy[oe] = this.yy[oe]);
714
- N.setInput(G, lt.yy), lt.yy.lexer = N, lt.yy.parser = this, typeof N.yylloc > "u" && (N.yylloc = {});
715
- var le = N.yylloc;
716
- E.push(le);
717
- var cn = N.options && N.options.ranges;
718
- typeof lt.yy.parseError == "function" ? this.parseError = lt.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
719
- for (var hn = function() {
720
- var bt;
721
- return bt = N.lex() || Je, typeof bt != "number" && (bt = p.symbols_[bt] || bt), bt;
722
- }, q, ce, ct, H, ou, he, gt = {}, Ht, X, Ye, Mt; ; ) {
723
- if (ct = b[b.length - 1], this.defaultActions[ct] ? H = this.defaultActions[ct] : ((q === null || typeof q > "u") && (q = hn()), H = o[ct] && o[ct][q]), typeof H > "u" || !H.length || !H[0]) {
724
- var pe = "";
725
- Mt = [];
726
- for (Ht in o[ct]) this.terminals_[Ht] && Ht > on && Mt.push("'" + this.terminals_[Ht] + "'");
727
- N.showPosition ? pe = "Parse error on line " + (c + 1) + `:
728
- ` + N.showPosition() + `
729
- Expecting ` + Mt.join(", ") + ", got '" + (this.terminals_[q] || q) + "'" : pe = "Parse error on line " + (c + 1) + ": Unexpected " + (q == Je ? "end of input" : "'" + (this.terminals_[q] || q) + "'"), this.parseError(pe, { text: N.match, token: this.terminals_[q] || q, line: N.yylineno, loc: le, expected: Mt });
730
- }
731
- if (H[0] instanceof Array && H.length > 1) throw new Error("Parse Error: multiple actions possible at state: " + ct + ", token: " + q);
732
- switch (H[0]) {
733
- case 1:
734
- b.push(q), d.push(N.yytext), E.push(N.yylloc), b.push(H[1]), q = null, ce ? (q = ce, ce = null) : (Rt = N.yyleng, _ = N.yytext, c = N.yylineno, le = N.yylloc, Ut > 0);
735
- break;
736
- case 2:
737
- if (X = this.productions_[H[1]][1], gt.$ = d[d.length - X], gt._$ = { first_line: E[E.length - (X || 1)].first_line, last_line: E[E.length - 1].last_line, first_column: E[E.length - (X || 1)].first_column, last_column: E[E.length - 1].last_column }, cn && (gt._$.range = [E[E.length - (X || 1)].range[0], E[E.length - 1].range[1]]), he = this.performAction.apply(gt, [_, Rt, c, lt.yy, H[1], d, E].concat(ln)), typeof he < "u") return he;
738
- X && (b = b.slice(0, -1 * X * 2), d = d.slice(0, -1 * X), E = E.slice(0, -1 * X)), b.push(this.productions_[H[1]][0]), d.push(gt.$), E.push(gt._$), Ye = o[b[b.length - 2]][b[b.length - 1]], b.push(Ye);
739
- break;
740
- case 3:
741
- return !0;
742
- }
743
- }
744
- return !0;
745
- } }, un = /* @__PURE__ */ function() {
746
- var G = { EOF: 1, parseError: function(p, b) {
747
- if (this.yy.parser) this.yy.parser.parseError(p, b);
748
- else throw new Error(p);
749
- }, setInput: function(p, b) {
750
- return this.yy = b || this.yy || {}, this._input = p, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this;
751
- }, input: function() {
752
- var p = this._input[0];
753
- this.yytext += p, this.yyleng++, this.offset++, this.match += p, this.matched += p;
754
- var b = p.match(/(?:\r\n?|\n).*/g);
755
- return b ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), p;
756
- }, unput: function(p) {
757
- var b = p.length, d = p.split(/(?:\r\n?|\n)/g);
758
- this._input = p + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - b), this.offset -= b;
759
- var E = this.match.split(/(?:\r\n?|\n)/g);
760
- this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), d.length - 1 && (this.yylineno -= d.length - 1);
761
- var o = this.yylloc.range;
762
- return this.yylloc = { first_line: this.yylloc.first_line, last_line: this.yylineno + 1, first_column: this.yylloc.first_column, last_column: d ? (d.length === E.length ? this.yylloc.first_column : 0) + E[E.length - d.length].length - d[0].length : this.yylloc.first_column - b }, this.options.ranges && (this.yylloc.range = [o[0], o[0] + this.yyleng - b]), this.yyleng = this.yytext.length, this;
763
- }, more: function() {
764
- return this._more = !0, this;
765
- }, reject: function() {
766
- if (this.options.backtrack_lexer) this._backtrack = !0;
767
- else return this.parseError("Lexical error on line " + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
768
- ` + this.showPosition(), { text: "", token: null, line: this.yylineno });
769
- return this;
770
- }, less: function(p) {
771
- this.unput(this.match.slice(p));
772
- }, pastInput: function() {
773
- var p = this.matched.substr(0, this.matched.length - this.match.length);
774
- return (p.length > 20 ? "..." : "") + p.substr(-20).replace(/\n/g, "");
775
- }, upcomingInput: function() {
776
- var p = this.match;
777
- return p.length < 20 && (p += this._input.substr(0, 20 - p.length)), (p.substr(0, 20) + (p.length > 20 ? "..." : "")).replace(/\n/g, "");
778
- }, showPosition: function() {
779
- var p = this.pastInput(), b = new Array(p.length + 1).join("-");
780
- return p + this.upcomingInput() + `
781
- ` + b + "^";
782
- }, test_match: function(p, b) {
783
- var d, E, o;
784
- if (this.options.backtrack_lexer && (o = { yylineno: this.yylineno, yylloc: { first_line: this.yylloc.first_line, last_line: this.last_line, first_column: this.yylloc.first_column, last_column: this.yylloc.last_column }, yytext: this.yytext, match: this.match, matches: this.matches, matched: this.matched, yyleng: this.yyleng, offset: this.offset, _more: this._more, _input: this._input, yy: this.yy, conditionStack: this.conditionStack.slice(0), done: this.done }, this.options.ranges && (o.yylloc.range = this.yylloc.range.slice(0))), E = p[0].match(/(?:\r\n?|\n).*/g), E && (this.yylineno += E.length), this.yylloc = { first_line: this.yylloc.last_line, last_line: this.yylineno + 1, first_column: this.yylloc.last_column, last_column: E ? E[E.length - 1].length - E[E.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + p[0].length }, this.yytext += p[0], this.match += p[0], this.matches = p, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(p[0].length), this.matched += p[0], d = this.performAction.call(this, this.yy, this, b, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), d) return d;
785
- if (this._backtrack) {
786
- for (var _ in o) this[_] = o[_];
787
- return !1;
788
- }
789
- return !1;
790
- }, next: function() {
791
- if (this.done) return this.EOF;
792
- this._input || (this.done = !0);
793
- var p, b, d, E;
794
- this._more || (this.yytext = "", this.match = "");
795
- for (var o = this._currentRules(), _ = 0; _ < o.length; _++) if (d = this._input.match(this.rules[o[_]]), d && (!b || d[0].length > b[0].length)) {
796
- if (b = d, E = _, this.options.backtrack_lexer) {
797
- if (p = this.test_match(d, o[_]), p !== !1) return p;
798
- if (this._backtrack) {
799
- b = !1;
800
- continue;
801
- } else return !1;
802
- } else if (!this.options.flex) break;
803
- }
804
- return b ? (p = this.test_match(b, o[E]), p !== !1 ? p : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text.
805
- ` + this.showPosition(), { text: "", token: null, line: this.yylineno });
806
- }, lex: function() {
807
- var p = this.next();
808
- return p || this.lex();
809
- }, begin: function(p) {
810
- this.conditionStack.push(p);
811
- }, popState: function() {
812
- var p = this.conditionStack.length - 1;
813
- return p > 0 ? this.conditionStack.pop() : this.conditionStack[0];
814
- }, _currentRules: function() {
815
- return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules;
816
- }, topState: function(p) {
817
- return p = this.conditionStack.length - 1 - Math.abs(p || 0), p >= 0 ? this.conditionStack[p] : "INITIAL";
818
- }, pushState: function(p) {
819
- this.begin(p);
820
- }, stateStackSize: function() {
821
- return this.conditionStack.length;
822
- }, options: {}, performAction: function(p, b, d, E) {
823
- function o(_, c) {
824
- return b.yytext = b.yytext.substring(_, b.yyleng - c + _);
825
- }
826
- switch (d) {
827
- case 0:
828
- if (b.yytext.slice(-2) === "\\\\" ? (o(0, 1), this.begin("mu")) : b.yytext.slice(-1) === "\\" ? (o(0, 1), this.begin("emu")) : this.begin("mu"), b.yytext) return 15;
829
- break;
830
- case 1:
831
- return 15;
832
- case 2:
833
- return this.popState(), 15;
834
- case 3:
835
- return this.begin("raw"), 15;
836
- case 4:
837
- return this.popState(), this.conditionStack[this.conditionStack.length - 1] === "raw" ? 15 : (o(5, 9), 18);
838
- case 5:
839
- return 15;
840
- case 6:
841
- return this.popState(), 14;
842
- case 7:
843
- return 64;
844
- case 8:
845
- return 67;
846
- case 9:
847
- return 19;
848
- case 10:
849
- return this.popState(), this.begin("raw"), 23;
850
- case 11:
851
- return 56;
852
- case 12:
853
- return 60;
854
- case 13:
855
- return 29;
856
- case 14:
857
- return 47;
858
- case 15:
859
- return this.popState(), 44;
860
- case 16:
861
- return this.popState(), 44;
862
- case 17:
863
- return 34;
864
- case 18:
865
- return 39;
866
- case 19:
867
- return 52;
868
- case 20:
869
- return 48;
870
- case 21:
871
- this.unput(b.yytext), this.popState(), this.begin("com");
872
- break;
873
- case 22:
874
- return this.popState(), 14;
875
- case 23:
876
- return 48;
877
- case 24:
878
- return 72;
879
- case 25:
880
- return 71;
881
- case 26:
882
- return 71;
883
- case 27:
884
- return 86;
885
- case 28:
886
- break;
887
- case 29:
888
- return this.popState(), 55;
889
- case 30:
890
- return this.popState(), 33;
891
- case 31:
892
- return b.yytext = o(1, 2).replace(/\\"/g, '"'), 79;
893
- case 32:
894
- return b.yytext = o(1, 2).replace(/\\'/g, "'"), 79;
895
- case 33:
896
- return 84;
897
- case 34:
898
- return 81;
899
- case 35:
900
- return 81;
901
- case 36:
902
- return 82;
903
- case 37:
904
- return 83;
905
- case 38:
906
- return 80;
907
- case 39:
908
- return 74;
909
- case 40:
910
- return 76;
911
- case 41:
912
- return 71;
913
- case 42:
914
- return b.yytext = b.yytext.replace(/\\([\\\]])/g, "$1"), 71;
915
- case 43:
916
- return "INVALID";
917
- case 44:
918
- return 5;
919
- }
920
- }, rules: [/^(?:[^\x00]*?(?=(\{\{)))/, /^(?:[^\x00]+)/, /^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/, /^(?:\{\{\{\{(?=[^/]))/, /^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/, /^(?:[^\x00]+?(?=(\{\{\{\{)))/, /^(?:[\s\S]*?--(~)?\}\})/, /^(?:\()/, /^(?:\))/, /^(?:\{\{\{\{)/, /^(?:\}\}\}\})/, /^(?:\{\{(~)?>)/, /^(?:\{\{(~)?#>)/, /^(?:\{\{(~)?#\*?)/, /^(?:\{\{(~)?\/)/, /^(?:\{\{(~)?\^\s*(~)?\}\})/, /^(?:\{\{(~)?\s*else\s*(~)?\}\})/, /^(?:\{\{(~)?\^)/, /^(?:\{\{(~)?\s*else\b)/, /^(?:\{\{(~)?\{)/, /^(?:\{\{(~)?&)/, /^(?:\{\{(~)?!--)/, /^(?:\{\{(~)?![\s\S]*?\}\})/, /^(?:\{\{(~)?\*?)/, /^(?:=)/, /^(?:\.\.)/, /^(?:\.(?=([=~}\s\/.)|])))/, /^(?:[\/.])/, /^(?:\s+)/, /^(?:\}(~)?\}\})/, /^(?:(~)?\}\})/, /^(?:"(\\["]|[^"])*")/, /^(?:'(\\[']|[^'])*')/, /^(?:@)/, /^(?:true(?=([~}\s)])))/, /^(?:false(?=([~}\s)])))/, /^(?:undefined(?=([~}\s)])))/, /^(?:null(?=([~}\s)])))/, /^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/, /^(?:as\s+\|)/, /^(?:\|)/, /^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/, /^(?:\[(\\\]|[^\]])*\])/, /^(?:.)/, /^(?:$)/], conditions: { mu: { rules: [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44], inclusive: !1 }, emu: { rules: [2], inclusive: !1 }, com: { rules: [6], inclusive: !1 }, raw: { rules: [3, 4, 5], inclusive: !1 }, INITIAL: { rules: [0, 1, 44], inclusive: !0 } } };
921
- return G;
922
- }();
923
- ue.lexer = un;
924
- function ie() {
925
- this.yy = {};
926
- }
927
- return ie.prototype = ue, ue.Parser = ie, new ie();
928
- }(), de = _a, me = ["description", "fileName", "lineNumber", "endLineNumber", "message", "name", "number", "stack"];
929
- function ze(t, e) {
930
- var r = e && e.loc, n, a, s, u;
931
- r && (n = r.start.line, a = r.end.line, s = r.start.column, u = r.end.column, t += " - " + n + ":" + s);
932
- for (var i = Error.prototype.constructor.call(this, t), l = 0; l < me.length; l++) this[me[l]] = i[me[l]];
933
- Error.captureStackTrace && Error.captureStackTrace(this, ze);
934
- try {
935
- r && (this.lineNumber = n, this.endLineNumber = a, Object.defineProperty ? (Object.defineProperty(this, "column", { value: s, enumerable: !0 }), Object.defineProperty(this, "endColumn", { value: u, enumerable: !0 })) : (this.column = s, this.endColumn = u));
936
- } catch {
937
- }
938
- }
939
- ze.prototype = new Error();
940
- var Et = ze;
941
- function Kt() {
942
- this.parents = [];
943
- }
944
- Kt.prototype = { constructor: Kt, mutating: !1, acceptKey: function(t, e) {
945
- var r = this.accept(t[e]);
946
- if (this.mutating) {
947
- if (r && !Kt.prototype[r.type]) throw new Et('Unexpected node type "' + r.type + '" found when accepting ' + e + " on " + t.type);
948
- t[e] = r;
949
- }
950
- }, acceptRequired: function(t, e) {
951
- if (this.acceptKey(t, e), !t[e]) throw new Et(t.type + " requires " + e);
952
- }, acceptArray: function(t) {
953
- for (var e = 0, r = t.length; e < r; e++) this.acceptKey(t, e), t[e] || (t.splice(e, 1), e--, r--);
954
- }, accept: function(t) {
955
- if (t) {
956
- if (!this[t.type]) throw new Et("Unknown type: " + t.type, t);
957
- this.current && this.parents.unshift(this.current), this.current = t;
958
- var e = this[t.type](t);
959
- if (this.current = this.parents.shift(), !this.mutating || e) return e;
960
- if (e !== !1) return t;
961
- }
962
- }, Program: function(t) {
963
- this.acceptArray(t.body);
964
- }, MustacheStatement: Qt, Decorator: Qt, BlockStatement: hr, DecoratorBlock: hr, PartialStatement: pr, PartialBlockStatement: function(t) {
965
- pr.call(this, t), this.acceptKey(t, "program");
966
- }, ContentStatement: function() {
967
- }, CommentStatement: function() {
968
- }, SubExpression: Qt, PathExpression: function() {
969
- }, StringLiteral: function() {
970
- }, NumberLiteral: function() {
971
- }, BooleanLiteral: function() {
972
- }, UndefinedLiteral: function() {
973
- }, NullLiteral: function() {
974
- }, Hash: function(t) {
975
- this.acceptArray(t.pairs);
976
- }, HashPair: function(t) {
977
- this.acceptRequired(t, "value");
978
- } };
979
- function Qt(t) {
980
- this.acceptRequired(t, "path"), this.acceptArray(t.params), this.acceptKey(t, "hash");
981
- }
982
- function hr(t) {
983
- Qt.call(this, t), this.acceptKey(t, "program"), this.acceptKey(t, "inverse");
984
- }
985
- function pr(t) {
986
- this.acceptRequired(t, "name"), this.acceptArray(t.params), this.acceptKey(t, "hash");
987
- }
988
- var qa = Kt;
989
- function Q(t) {
990
- t === void 0 && (t = {}), this.options = t;
991
- }
992
- Q.prototype = new qa();
993
- Q.prototype.Program = function(t) {
994
- var e = !this.options.ignoreStandalone, r = !this.isRootSeen;
995
- this.isRootSeen = !0;
996
- for (var n = t.body, a = 0, s = n.length; a < s; a++) {
997
- var u = n[a], i = this.accept(u);
998
- if (i) {
999
- var l = Ce(n, a, r), g = Se(n, a, r), h = i.openStandalone && l, m = i.closeStandalone && g, A = i.inlineStandalone && l && g;
1000
- i.close && ht(n, a, !0), i.open && at(n, a, !0), e && A && (ht(n, a), at(n, a) && u.type === "PartialStatement" && (u.indent = /([ \t]+$)/.exec(n[a - 1].original)[1])), e && h && (ht((u.program || u.inverse).body), at(n, a)), e && m && (ht(n, a), at((u.inverse || u.program).body));
1001
- }
1002
- }
1003
- return t;
1004
- };
1005
- Q.prototype.BlockStatement = Q.prototype.DecoratorBlock = Q.prototype.PartialBlockStatement = function(t) {
1006
- this.accept(t.program), this.accept(t.inverse);
1007
- var e = t.program || t.inverse, r = t.program && t.inverse, n = r, a = r;
1008
- if (r && r.chained) for (n = r.body[0].program; a.chained; ) a = a.body[a.body.length - 1].program;
1009
- var s = { open: t.openStrip.open, close: t.closeStrip.close, openStandalone: Se(e.body), closeStandalone: Ce((n || e).body) };
1010
- if (t.openStrip.close && ht(e.body, null, !0), r) {
1011
- var u = t.inverseStrip;
1012
- u.open && at(e.body, null, !0), u.close && ht(n.body, null, !0), t.closeStrip.open && at(a.body, null, !0), !this.options.ignoreStandalone && Ce(e.body) && Se(n.body) && (at(e.body), ht(n.body));
1013
- } else t.closeStrip.open && at(e.body, null, !0);
1014
- return s;
1015
- };
1016
- Q.prototype.Decorator = Q.prototype.MustacheStatement = function(t) {
1017
- return t.strip;
1018
- };
1019
- Q.prototype.PartialStatement = Q.prototype.CommentStatement = function(t) {
1020
- var e = t.strip || {};
1021
- return { inlineStandalone: !0, open: e.open, close: e.close };
1022
- };
1023
- function Ce(t, e, r) {
1024
- e === void 0 && (e = t.length);
1025
- var n = t[e - 1], a = t[e - 2];
1026
- if (!n) return r;
1027
- if (n.type === "ContentStatement") return (a || !r ? /\r?\n\s*?$/ : /(^|\r?\n)\s*?$/).test(n.original);
1028
- }
1029
- function Se(t, e, r) {
1030
- e === void 0 && (e = -1);
1031
- var n = t[e + 1], a = t[e + 2];
1032
- if (!n) return r;
1033
- if (n.type === "ContentStatement") return (a || !r ? /^\s*?\r?\n/ : /^\s*?(\r?\n|$)/).test(n.original);
1034
- }
1035
- function ht(t, e, r) {
1036
- var n = t[e == null ? 0 : e + 1];
1037
- if (!(!n || n.type !== "ContentStatement" || !r && n.rightStripped)) {
1038
- var a = n.value;
1039
- n.value = n.value.replace(r ? /^\s+/ : /^[ \t]*\r?\n?/, ""), n.rightStripped = n.value !== a;
1040
- }
1041
- }
1042
- function at(t, e, r) {
1043
- var n = t[e == null ? t.length - 1 : e - 1];
1044
- if (!(!n || n.type !== "ContentStatement" || !r && n.leftStripped)) {
1045
- var a = n.value;
1046
- return n.value = n.value.replace(r ? /\s+$/ : /[ \t]+$/, ""), n.leftStripped = n.value !== a, n.leftStripped;
1047
- }
1048
- }
1049
- var Ia = Q, Jt = {};
1050
- Pe(Jt, { SourceLocation: () => Wr, id: () => Oa, prepareBlock: () => Ma, prepareMustache: () => Ua, preparePartialBlock: () => ja, preparePath: () => Ra, prepareProgram: () => za, prepareRawBlock: () => Ha, stripComment: () => Va, stripFlags: () => $a });
1051
- function je(t, e) {
1052
- if (e = e.path ? e.path.original : e, t.path.original !== e) {
1053
- var r = { loc: t.path.loc };
1054
- throw new Et(t.path.original + " doesn't match " + e, r);
1055
- }
1056
- }
1057
- function Wr(t, e) {
1058
- this.source = t, this.start = { line: e.first_line, column: e.first_column }, this.end = { line: e.last_line, column: e.last_column };
1059
- }
1060
- function Oa(t) {
1061
- return /^\[.*\]$/.test(t) ? t.substring(1, t.length - 1) : t;
1062
- }
1063
- function $a(t, e) {
1064
- return { open: t.charAt(2) === "~", close: e.charAt(e.length - 3) === "~" };
1065
- }
1066
- function Va(t) {
1067
- return t.replace(/^\{\{~?!-?-?/, "").replace(/-?-?~?\}\}$/, "");
1068
- }
1069
- function Ra(t, e, r) {
1070
- r = this.locInfo(r);
1071
- for (var n = t ? "@" : "", a = [], s = 0, u = 0, i = e.length; u < i; u++) {
1072
- var l = e[u].part, g = e[u].original !== l;
1073
- if (n += (e[u].separator || "") + l, !g && (l === ".." || l === "." || l === "this")) {
1074
- if (a.length > 0) throw new Et("Invalid path: " + n, { loc: r });
1075
- l === ".." && s++;
1076
- } else a.push(l);
1077
- }
1078
- return { type: "PathExpression", data: t, depth: s, parts: a, original: n, loc: r };
1079
- }
1080
- function Ua(t, e, r, n, a, s) {
1081
- var u = n.charAt(3) || n.charAt(2), i = u !== "{" && u !== "&", l = /\*/.test(n);
1082
- return { type: l ? "Decorator" : "MustacheStatement", path: t, params: e, hash: r, escaped: i, strip: a, loc: this.locInfo(s) };
1083
- }
1084
- function Ha(t, e, r, n) {
1085
- je(t, r), n = this.locInfo(n);
1086
- var a = { type: "Program", body: e, strip: {}, loc: n };
1087
- return { type: "BlockStatement", path: t.path, params: t.params, hash: t.hash, program: a, openStrip: {}, inverseStrip: {}, closeStrip: {}, loc: n };
1088
- }
1089
- function Ma(t, e, r, n, a, s) {
1090
- n && n.path && je(t, n);
1091
- var u = /\*/.test(t.open);
1092
- e.blockParams = t.blockParams;
1093
- var i, l;
1094
- if (r) {
1095
- if (u) throw new Et("Unexpected inverse block on decorator", r);
1096
- r.chain && (r.program.body[0].closeStrip = n.strip), l = r.strip, i = r.program;
1097
- }
1098
- return a && (a = i, i = e, e = a), { type: u ? "DecoratorBlock" : "BlockStatement", path: t.path, params: t.params, hash: t.hash, program: e, inverse: i, openStrip: t.strip, inverseStrip: l, closeStrip: n && n.strip, loc: this.locInfo(s) };
1099
- }
1100
- function za(t, e) {
1101
- if (!e && t.length) {
1102
- var r = t[0].loc, n = t[t.length - 1].loc;
1103
- r && n && (e = { source: r.source, start: { line: r.start.line, column: r.start.column }, end: { line: n.end.line, column: n.end.column } });
1104
- }
1105
- return { type: "Program", body: t, strip: {}, loc: e };
1106
- }
1107
- function ja(t, e, r, n) {
1108
- return je(t, r), { type: "PartialBlockStatement", name: t.path, params: t.params, hash: t.hash, program: e, openStrip: t.strip, closeStrip: r && r.strip, loc: this.locInfo(n) };
1109
- }
1110
- var Kr = {};
1111
- for (jt in Jt) Object.prototype.hasOwnProperty.call(Jt, jt) && (Kr[jt] = Jt[jt]);
1112
- var jt;
1113
- function we(t, e) {
1114
- if (t.type === "Program") return t;
1115
- de.yy = Kr, de.yy.locInfo = function(n) {
1116
- return new Wr(e && e.srcName, n);
1117
- };
1118
- var r = de.parse(t);
1119
- return r;
1120
- }
1121
- function dr(t, e) {
1122
- var r = we(t, e), n = new Ia(e);
1123
- return n.accept(r);
1124
- }
1125
- var Ga = { Aacute: "Á", aacute: "á", Abreve: "Ă", abreve: "ă", ac: "∾", acd: "∿", acE: "∾̳", Acirc: "Â", acirc: "â", acute: "´", Acy: "А", acy: "а", AElig: "Æ", aelig: "æ", af: "⁡", Afr: "𝔄", afr: "𝔞", Agrave: "À", agrave: "à", alefsym: "ℵ", aleph: "ℵ", Alpha: "Α", alpha: "α", Amacr: "Ā", amacr: "ā", amalg: "⨿", amp: "&", AMP: "&", andand: "⩕", And: "⩓", and: "∧", andd: "⩜", andslope: "⩘", andv: "⩚", ang: "∠", ange: "⦤", angle: "∠", angmsdaa: "⦨", angmsdab: "⦩", angmsdac: "⦪", angmsdad: "⦫", angmsdae: "⦬", angmsdaf: "⦭", angmsdag: "⦮", angmsdah: "⦯", angmsd: "∡", angrt: "∟", angrtvb: "⊾", angrtvbd: "⦝", angsph: "∢", angst: "Å", angzarr: "⍼", Aogon: "Ą", aogon: "ą", Aopf: "𝔸", aopf: "𝕒", apacir: "⩯", ap: "≈", apE: "⩰", ape: "≊", apid: "≋", apos: "'", ApplyFunction: "⁡", approx: "≈", approxeq: "≊", Aring: "Å", aring: "å", Ascr: "𝒜", ascr: "𝒶", Assign: "≔", ast: "*", asymp: "≈", asympeq: "≍", Atilde: "Ã", atilde: "ã", Auml: "Ä", auml: "ä", awconint: "∳", awint: "⨑", backcong: "≌", backepsilon: "϶", backprime: "‵", backsim: "∽", backsimeq: "⋍", Backslash: "∖", Barv: "⫧", barvee: "⊽", barwed: "⌅", Barwed: "⌆", barwedge: "⌅", bbrk: "⎵", bbrktbrk: "⎶", bcong: "≌", Bcy: "Б", bcy: "б", bdquo: "„", becaus: "∵", because: "∵", Because: "∵", bemptyv: "⦰", bepsi: "϶", bernou: "ℬ", Bernoullis: "ℬ", Beta: "Β", beta: "β", beth: "ℶ", between: "≬", Bfr: "𝔅", bfr: "𝔟", bigcap: "⋂", bigcirc: "◯", bigcup: "⋃", bigodot: "⨀", bigoplus: "⨁", bigotimes: "⨂", bigsqcup: "⨆", bigstar: "★", bigtriangledown: "▽", bigtriangleup: "△", biguplus: "⨄", bigvee: "⋁", bigwedge: "⋀", bkarow: "⤍", blacklozenge: "⧫", blacksquare: "▪", blacktriangle: "▴", blacktriangledown: "▾", blacktriangleleft: "◂", blacktriangleright: "▸", blank: "␣", blk12: "▒", blk14: "░", blk34: "▓", block: "█", bne: "=⃥", bnequiv: "≡⃥", bNot: "⫭", bnot: "⌐", Bopf: "𝔹", bopf: "𝕓", bot: "⊥", bottom: "⊥", bowtie: "⋈", boxbox: "⧉", boxdl: "┐", boxdL: "╕", boxDl: "╖", boxDL: "╗", boxdr: "┌", boxdR: "╒", boxDr: "╓", boxDR: "╔", boxh: "─", boxH: "═", boxhd: "┬", boxHd: "╤", boxhD: "╥", boxHD: "╦", boxhu: "┴", boxHu: "╧", boxhU: "╨", boxHU: "╩", boxminus: "⊟", boxplus: "⊞", boxtimes: "⊠", boxul: "┘", boxuL: "╛", boxUl: "╜", boxUL: "╝", boxur: "└", boxuR: "╘", boxUr: "╙", boxUR: "╚", boxv: "│", boxV: "║", boxvh: "┼", boxvH: "╪", boxVh: "╫", boxVH: "╬", boxvl: "┤", boxvL: "╡", boxVl: "╢", boxVL: "╣", boxvr: "├", boxvR: "╞", boxVr: "╟", boxVR: "╠", bprime: "‵", breve: "˘", Breve: "˘", brvbar: "¦", bscr: "𝒷", Bscr: "ℬ", bsemi: "⁏", bsim: "∽", bsime: "⋍", bsolb: "⧅", bsol: "\\", bsolhsub: "⟈", bull: "•", bullet: "•", bump: "≎", bumpE: "⪮", bumpe: "≏", Bumpeq: "≎", bumpeq: "≏", Cacute: "Ć", cacute: "ć", capand: "⩄", capbrcup: "⩉", capcap: "⩋", cap: "∩", Cap: "⋒", capcup: "⩇", capdot: "⩀", CapitalDifferentialD: "ⅅ", caps: "∩︀", caret: "⁁", caron: "ˇ", Cayleys: "ℭ", ccaps: "⩍", Ccaron: "Č", ccaron: "č", Ccedil: "Ç", ccedil: "ç", Ccirc: "Ĉ", ccirc: "ĉ", Cconint: "∰", ccups: "⩌", ccupssm: "⩐", Cdot: "Ċ", cdot: "ċ", cedil: "¸", Cedilla: "¸", cemptyv: "⦲", cent: "¢", centerdot: "·", CenterDot: "·", cfr: "𝔠", Cfr: "ℭ", CHcy: "Ч", chcy: "ч", check: "✓", checkmark: "✓", Chi: "Χ", chi: "χ", circ: "ˆ", circeq: "≗", circlearrowleft: "↺", circlearrowright: "↻", circledast: "⊛", circledcirc: "⊚", circleddash: "⊝", CircleDot: "⊙", circledR: "®", circledS: "Ⓢ", CircleMinus: "⊖", CirclePlus: "⊕", CircleTimes: "⊗", cir: "○", cirE: "⧃", cire: "≗", cirfnint: "⨐", cirmid: "⫯", cirscir: "⧂", ClockwiseContourIntegral: "∲", CloseCurlyDoubleQuote: "”", CloseCurlyQuote: "’", clubs: "♣", clubsuit: "♣", colon: ":", Colon: "∷", Colone: "⩴", colone: "≔", coloneq: "≔", comma: ",", commat: "@", comp: "∁", compfn: "∘", complement: "∁", complexes: "ℂ", cong: "≅", congdot: "⩭", Congruent: "≡", conint: "∮", Conint: "∯", ContourIntegral: "∮", copf: "𝕔", Copf: "ℂ", coprod: "∐", Coproduct: "∐", copy: "©", COPY: "©", copysr: "℗", CounterClockwiseContourIntegral: "∳", crarr: "↵", cross: "✗", Cross: "⨯", Cscr: "𝒞", cscr: "𝒸", csub: "⫏", csube: "⫑", csup: "⫐", csupe: "⫒", ctdot: "⋯", cudarrl: "⤸", cudarrr: "⤵", cuepr: "⋞", cuesc: "⋟", cularr: "↶", cularrp: "⤽", cupbrcap: "⩈", cupcap: "⩆", CupCap: "≍", cup: "∪", Cup: "⋓", cupcup: "⩊", cupdot: "⊍", cupor: "⩅", cups: "∪︀", curarr: "↷", curarrm: "⤼", curlyeqprec: "⋞", curlyeqsucc: "⋟", curlyvee: "⋎", curlywedge: "⋏", curren: "¤", curvearrowleft: "↶", curvearrowright: "↷", cuvee: "⋎", cuwed: "⋏", cwconint: "∲", cwint: "∱", cylcty: "⌭", dagger: "†", Dagger: "‡", daleth: "ℸ", darr: "↓", Darr: "↡", dArr: "⇓", dash: "‐", Dashv: "⫤", dashv: "⊣", dbkarow: "⤏", dblac: "˝", Dcaron: "Ď", dcaron: "ď", Dcy: "Д", dcy: "д", ddagger: "‡", ddarr: "⇊", DD: "ⅅ", dd: "ⅆ", DDotrahd: "⤑", ddotseq: "⩷", deg: "°", Del: "∇", Delta: "Δ", delta: "δ", demptyv: "⦱", dfisht: "⥿", Dfr: "𝔇", dfr: "𝔡", dHar: "⥥", dharl: "⇃", dharr: "⇂", DiacriticalAcute: "´", DiacriticalDot: "˙", DiacriticalDoubleAcute: "˝", DiacriticalGrave: "`", DiacriticalTilde: "˜", diam: "⋄", diamond: "⋄", Diamond: "⋄", diamondsuit: "♦", diams: "♦", die: "¨", DifferentialD: "ⅆ", digamma: "ϝ", disin: "⋲", div: "÷", divide: "÷", divideontimes: "⋇", divonx: "⋇", DJcy: "Ђ", djcy: "ђ", dlcorn: "⌞", dlcrop: "⌍", dollar: "$", Dopf: "𝔻", dopf: "𝕕", Dot: "¨", dot: "˙", DotDot: "⃜", doteq: "≐", doteqdot: "≑", DotEqual: "≐", dotminus: "∸", dotplus: "∔", dotsquare: "⊡", doublebarwedge: "⌆", DoubleContourIntegral: "∯", DoubleDot: "¨", DoubleDownArrow: "⇓", DoubleLeftArrow: "⇐", DoubleLeftRightArrow: "⇔", DoubleLeftTee: "⫤", DoubleLongLeftArrow: "⟸", DoubleLongLeftRightArrow: "⟺", DoubleLongRightArrow: "⟹", DoubleRightArrow: "⇒", DoubleRightTee: "⊨", DoubleUpArrow: "⇑", DoubleUpDownArrow: "⇕", DoubleVerticalBar: "∥", DownArrowBar: "⤓", downarrow: "↓", DownArrow: "↓", Downarrow: "⇓", DownArrowUpArrow: "⇵", DownBreve: "̑", downdownarrows: "⇊", downharpoonleft: "⇃", downharpoonright: "⇂", DownLeftRightVector: "⥐", DownLeftTeeVector: "⥞", DownLeftVectorBar: "⥖", DownLeftVector: "↽", DownRightTeeVector: "⥟", DownRightVectorBar: "⥗", DownRightVector: "⇁", DownTeeArrow: "↧", DownTee: "⊤", drbkarow: "⤐", drcorn: "⌟", drcrop: "⌌", Dscr: "𝒟", dscr: "𝒹", DScy: "Ѕ", dscy: "ѕ", dsol: "⧶", Dstrok: "Đ", dstrok: "đ", dtdot: "⋱", dtri: "▿", dtrif: "▾", duarr: "⇵", duhar: "⥯", dwangle: "⦦", DZcy: "Џ", dzcy: "џ", dzigrarr: "⟿", Eacute: "É", eacute: "é", easter: "⩮", Ecaron: "Ě", ecaron: "ě", Ecirc: "Ê", ecirc: "ê", ecir: "≖", ecolon: "≕", Ecy: "Э", ecy: "э", eDDot: "⩷", Edot: "Ė", edot: "ė", eDot: "≑", ee: "ⅇ", efDot: "≒", Efr: "𝔈", efr: "𝔢", eg: "⪚", Egrave: "È", egrave: "è", egs: "⪖", egsdot: "⪘", el: "⪙", Element: "∈", elinters: "⏧", ell: "ℓ", els: "⪕", elsdot: "⪗", Emacr: "Ē", emacr: "ē", empty: "∅", emptyset: "∅", EmptySmallSquare: "◻", emptyv: "∅", EmptyVerySmallSquare: "▫", emsp13: " ", emsp14: " ", emsp: " ", ENG: "Ŋ", eng: "ŋ", ensp: " ", Eogon: "Ę", eogon: "ę", Eopf: "𝔼", eopf: "𝕖", epar: "⋕", eparsl: "⧣", eplus: "⩱", epsi: "ε", Epsilon: "Ε", epsilon: "ε", epsiv: "ϵ", eqcirc: "≖", eqcolon: "≕", eqsim: "≂", eqslantgtr: "⪖", eqslantless: "⪕", Equal: "⩵", equals: "=", EqualTilde: "≂", equest: "≟", Equilibrium: "⇌", equiv: "≡", equivDD: "⩸", eqvparsl: "⧥", erarr: "⥱", erDot: "≓", escr: "ℯ", Escr: "ℰ", esdot: "≐", Esim: "⩳", esim: "≂", Eta: "Η", eta: "η", ETH: "Ð", eth: "ð", Euml: "Ë", euml: "ë", euro: "€", excl: "!", exist: "∃", Exists: "∃", expectation: "ℰ", exponentiale: "ⅇ", ExponentialE: "ⅇ", fallingdotseq: "≒", Fcy: "Ф", fcy: "ф", female: "♀", ffilig: "ffi", fflig: "ff", ffllig: "ffl", Ffr: "𝔉", ffr: "𝔣", filig: "fi", FilledSmallSquare: "◼", FilledVerySmallSquare: "▪", fjlig: "fj", flat: "♭", fllig: "fl", fltns: "▱", fnof: "ƒ", Fopf: "𝔽", fopf: "𝕗", forall: "∀", ForAll: "∀", fork: "⋔", forkv: "⫙", Fouriertrf: "ℱ", fpartint: "⨍", frac12: "½", frac13: "⅓", frac14: "¼", frac15: "⅕", frac16: "⅙", frac18: "⅛", frac23: "⅔", frac25: "⅖", frac34: "¾", frac35: "⅗", frac38: "⅜", frac45: "⅘", frac56: "⅚", frac58: "⅝", frac78: "⅞", frasl: "⁄", frown: "⌢", fscr: "𝒻", Fscr: "ℱ", gacute: "ǵ", Gamma: "Γ", gamma: "γ", Gammad: "Ϝ", gammad: "ϝ", gap: "⪆", Gbreve: "Ğ", gbreve: "ğ", Gcedil: "Ģ", Gcirc: "Ĝ", gcirc: "ĝ", Gcy: "Г", gcy: "г", Gdot: "Ġ", gdot: "ġ", ge: "≥", gE: "≧", gEl: "⪌", gel: "⋛", geq: "≥", geqq: "≧", geqslant: "⩾", gescc: "⪩", ges: "⩾", gesdot: "⪀", gesdoto: "⪂", gesdotol: "⪄", gesl: "⋛︀", gesles: "⪔", Gfr: "𝔊", gfr: "𝔤", gg: "≫", Gg: "⋙", ggg: "⋙", gimel: "ℷ", GJcy: "Ѓ", gjcy: "ѓ", gla: "⪥", gl: "≷", glE: "⪒", glj: "⪤", gnap: "⪊", gnapprox: "⪊", gne: "⪈", gnE: "≩", gneq: "⪈", gneqq: "≩", gnsim: "⋧", Gopf: "𝔾", gopf: "𝕘", grave: "`", GreaterEqual: "≥", GreaterEqualLess: "⋛", GreaterFullEqual: "≧", GreaterGreater: "⪢", GreaterLess: "≷", GreaterSlantEqual: "⩾", GreaterTilde: "≳", Gscr: "𝒢", gscr: "ℊ", gsim: "≳", gsime: "⪎", gsiml: "⪐", gtcc: "⪧", gtcir: "⩺", gt: ">", GT: ">", Gt: "≫", gtdot: "⋗", gtlPar: "⦕", gtquest: "⩼", gtrapprox: "⪆", gtrarr: "⥸", gtrdot: "⋗", gtreqless: "⋛", gtreqqless: "⪌", gtrless: "≷", gtrsim: "≳", gvertneqq: "≩︀", gvnE: "≩︀", Hacek: "ˇ", hairsp: " ", half: "½", hamilt: "ℋ", HARDcy: "Ъ", hardcy: "ъ", harrcir: "⥈", harr: "↔", hArr: "⇔", harrw: "↭", Hat: "^", hbar: "ℏ", Hcirc: "Ĥ", hcirc: "ĥ", hearts: "♥", heartsuit: "♥", hellip: "…", hercon: "⊹", hfr: "𝔥", Hfr: "ℌ", HilbertSpace: "ℋ", hksearow: "⤥", hkswarow: "⤦", hoarr: "⇿", homtht: "∻", hookleftarrow: "↩", hookrightarrow: "↪", hopf: "𝕙", Hopf: "ℍ", horbar: "―", HorizontalLine: "─", hscr: "𝒽", Hscr: "ℋ", hslash: "ℏ", Hstrok: "Ħ", hstrok: "ħ", HumpDownHump: "≎", HumpEqual: "≏", hybull: "⁃", hyphen: "‐", Iacute: "Í", iacute: "í", ic: "⁣", Icirc: "Î", icirc: "î", Icy: "И", icy: "и", Idot: "İ", IEcy: "Е", iecy: "е", iexcl: "¡", iff: "⇔", ifr: "𝔦", Ifr: "ℑ", Igrave: "Ì", igrave: "ì", ii: "ⅈ", iiiint: "⨌", iiint: "∭", iinfin: "⧜", iiota: "℩", IJlig: "IJ", ijlig: "ij", Imacr: "Ī", imacr: "ī", image: "ℑ", ImaginaryI: "ⅈ", imagline: "ℐ", imagpart: "ℑ", imath: "ı", Im: "ℑ", imof: "⊷", imped: "Ƶ", Implies: "⇒", incare: "℅", in: "∈", infin: "∞", infintie: "⧝", inodot: "ı", intcal: "⊺", int: "∫", Int: "∬", integers: "ℤ", Integral: "∫", intercal: "⊺", Intersection: "⋂", intlarhk: "⨗", intprod: "⨼", InvisibleComma: "⁣", InvisibleTimes: "⁢", IOcy: "Ё", iocy: "ё", Iogon: "Į", iogon: "į", Iopf: "𝕀", iopf: "𝕚", Iota: "Ι", iota: "ι", iprod: "⨼", iquest: "¿", iscr: "𝒾", Iscr: "ℐ", isin: "∈", isindot: "⋵", isinE: "⋹", isins: "⋴", isinsv: "⋳", isinv: "∈", it: "⁢", Itilde: "Ĩ", itilde: "ĩ", Iukcy: "І", iukcy: "і", Iuml: "Ï", iuml: "ï", Jcirc: "Ĵ", jcirc: "ĵ", Jcy: "Й", jcy: "й", Jfr: "𝔍", jfr: "𝔧", jmath: "ȷ", Jopf: "𝕁", jopf: "𝕛", Jscr: "𝒥", jscr: "𝒿", Jsercy: "Ј", jsercy: "ј", Jukcy: "Є", jukcy: "є", Kappa: "Κ", kappa: "κ", kappav: "ϰ", Kcedil: "Ķ", kcedil: "ķ", Kcy: "К", kcy: "к", Kfr: "𝔎", kfr: "𝔨", kgreen: "ĸ", KHcy: "Х", khcy: "х", KJcy: "Ќ", kjcy: "ќ", Kopf: "𝕂", kopf: "𝕜", Kscr: "𝒦", kscr: "𝓀", lAarr: "⇚", Lacute: "Ĺ", lacute: "ĺ", laemptyv: "⦴", lagran: "ℒ", Lambda: "Λ", lambda: "λ", lang: "⟨", Lang: "⟪", langd: "⦑", langle: "⟨", lap: "⪅", Laplacetrf: "ℒ", laquo: "«", larrb: "⇤", larrbfs: "⤟", larr: "←", Larr: "↞", lArr: "⇐", larrfs: "⤝", larrhk: "↩", larrlp: "↫", larrpl: "⤹", larrsim: "⥳", larrtl: "↢", latail: "⤙", lAtail: "⤛", lat: "⪫", late: "⪭", lates: "⪭︀", lbarr: "⤌", lBarr: "⤎", lbbrk: "❲", lbrace: "{", lbrack: "[", lbrke: "⦋", lbrksld: "⦏", lbrkslu: "⦍", Lcaron: "Ľ", lcaron: "ľ", Lcedil: "Ļ", lcedil: "ļ", lceil: "⌈", lcub: "{", Lcy: "Л", lcy: "л", ldca: "⤶", ldquo: "“", ldquor: "„", ldrdhar: "⥧", ldrushar: "⥋", ldsh: "↲", le: "≤", lE: "≦", LeftAngleBracket: "⟨", LeftArrowBar: "⇤", leftarrow: "←", LeftArrow: "←", Leftarrow: "⇐", LeftArrowRightArrow: "⇆", leftarrowtail: "↢", LeftCeiling: "⌈", LeftDoubleBracket: "⟦", LeftDownTeeVector: "⥡", LeftDownVectorBar: "⥙", LeftDownVector: "⇃", LeftFloor: "⌊", leftharpoondown: "↽", leftharpoonup: "↼", leftleftarrows: "⇇", leftrightarrow: "↔", LeftRightArrow: "↔", Leftrightarrow: "⇔", leftrightarrows: "⇆", leftrightharpoons: "⇋", leftrightsquigarrow: "↭", LeftRightVector: "⥎", LeftTeeArrow: "↤", LeftTee: "⊣", LeftTeeVector: "⥚", leftthreetimes: "⋋", LeftTriangleBar: "⧏", LeftTriangle: "⊲", LeftTriangleEqual: "⊴", LeftUpDownVector: "⥑", LeftUpTeeVector: "⥠", LeftUpVectorBar: "⥘", LeftUpVector: "↿", LeftVectorBar: "⥒", LeftVector: "↼", lEg: "⪋", leg: "⋚", leq: "≤", leqq: "≦", leqslant: "⩽", lescc: "⪨", les: "⩽", lesdot: "⩿", lesdoto: "⪁", lesdotor: "⪃", lesg: "⋚︀", lesges: "⪓", lessapprox: "⪅", lessdot: "⋖", lesseqgtr: "⋚", lesseqqgtr: "⪋", LessEqualGreater: "⋚", LessFullEqual: "≦", LessGreater: "≶", lessgtr: "≶", LessLess: "⪡", lesssim: "≲", LessSlantEqual: "⩽", LessTilde: "≲", lfisht: "⥼", lfloor: "⌊", Lfr: "𝔏", lfr: "𝔩", lg: "≶", lgE: "⪑", lHar: "⥢", lhard: "↽", lharu: "↼", lharul: "⥪", lhblk: "▄", LJcy: "Љ", ljcy: "љ", llarr: "⇇", ll: "≪", Ll: "⋘", llcorner: "⌞", Lleftarrow: "⇚", llhard: "⥫", lltri: "◺", Lmidot: "Ŀ", lmidot: "ŀ", lmoustache: "⎰", lmoust: "⎰", lnap: "⪉", lnapprox: "⪉", lne: "⪇", lnE: "≨", lneq: "⪇", lneqq: "≨", lnsim: "⋦", loang: "⟬", loarr: "⇽", lobrk: "⟦", longleftarrow: "⟵", LongLeftArrow: "⟵", Longleftarrow: "⟸", longleftrightarrow: "⟷", LongLeftRightArrow: "⟷", Longleftrightarrow: "⟺", longmapsto: "⟼", longrightarrow: "⟶", LongRightArrow: "⟶", Longrightarrow: "⟹", looparrowleft: "↫", looparrowright: "↬", lopar: "⦅", Lopf: "𝕃", lopf: "𝕝", loplus: "⨭", lotimes: "⨴", lowast: "∗", lowbar: "_", LowerLeftArrow: "↙", LowerRightArrow: "↘", loz: "◊", lozenge: "◊", lozf: "⧫", lpar: "(", lparlt: "⦓", lrarr: "⇆", lrcorner: "⌟", lrhar: "⇋", lrhard: "⥭", lrm: "‎", lrtri: "⊿", lsaquo: "‹", lscr: "𝓁", Lscr: "ℒ", lsh: "↰", Lsh: "↰", lsim: "≲", lsime: "⪍", lsimg: "⪏", lsqb: "[", lsquo: "‘", lsquor: "‚", Lstrok: "Ł", lstrok: "ł", ltcc: "⪦", ltcir: "⩹", lt: "<", LT: "<", Lt: "≪", ltdot: "⋖", lthree: "⋋", ltimes: "⋉", ltlarr: "⥶", ltquest: "⩻", ltri: "◃", ltrie: "⊴", ltrif: "◂", ltrPar: "⦖", lurdshar: "⥊", luruhar: "⥦", lvertneqq: "≨︀", lvnE: "≨︀", macr: "¯", male: "♂", malt: "✠", maltese: "✠", Map: "⤅", map: "↦", mapsto: "↦", mapstodown: "↧", mapstoleft: "↤", mapstoup: "↥", marker: "▮", mcomma: "⨩", Mcy: "М", mcy: "м", mdash: "—", mDDot: "∺", measuredangle: "∡", MediumSpace: " ", Mellintrf: "ℳ", Mfr: "𝔐", mfr: "𝔪", mho: "℧", micro: "µ", midast: "*", midcir: "⫰", mid: "∣", middot: "·", minusb: "⊟", minus: "−", minusd: "∸", minusdu: "⨪", MinusPlus: "∓", mlcp: "⫛", mldr: "…", mnplus: "∓", models: "⊧", Mopf: "𝕄", mopf: "𝕞", mp: "∓", mscr: "𝓂", Mscr: "ℳ", mstpos: "∾", Mu: "Μ", mu: "μ", multimap: "⊸", mumap: "⊸", nabla: "∇", Nacute: "Ń", nacute: "ń", nang: "∠⃒", nap: "≉", napE: "⩰̸", napid: "≋̸", napos: "ʼn", napprox: "≉", natural: "♮", naturals: "ℕ", natur: "♮", nbsp: " ", nbump: "≎̸", nbumpe: "≏̸", ncap: "⩃", Ncaron: "Ň", ncaron: "ň", Ncedil: "Ņ", ncedil: "ņ", ncong: "≇", ncongdot: "⩭̸", ncup: "⩂", Ncy: "Н", ncy: "н", ndash: "–", nearhk: "⤤", nearr: "↗", neArr: "⇗", nearrow: "↗", ne: "≠", nedot: "≐̸", NegativeMediumSpace: "​", NegativeThickSpace: "​", NegativeThinSpace: "​", NegativeVeryThinSpace: "​", nequiv: "≢", nesear: "⤨", nesim: "≂̸", NestedGreaterGreater: "≫", NestedLessLess: "≪", NewLine: `
1126
- `, nexist: "∄", nexists: "∄", Nfr: "𝔑", nfr: "𝔫", ngE: "≧̸", nge: "≱", ngeq: "≱", ngeqq: "≧̸", ngeqslant: "⩾̸", nges: "⩾̸", nGg: "⋙̸", ngsim: "≵", nGt: "≫⃒", ngt: "≯", ngtr: "≯", nGtv: "≫̸", nharr: "↮", nhArr: "⇎", nhpar: "⫲", ni: "∋", nis: "⋼", nisd: "⋺", niv: "∋", NJcy: "Њ", njcy: "њ", nlarr: "↚", nlArr: "⇍", nldr: "‥", nlE: "≦̸", nle: "≰", nleftarrow: "↚", nLeftarrow: "⇍", nleftrightarrow: "↮", nLeftrightarrow: "⇎", nleq: "≰", nleqq: "≦̸", nleqslant: "⩽̸", nles: "⩽̸", nless: "≮", nLl: "⋘̸", nlsim: "≴", nLt: "≪⃒", nlt: "≮", nltri: "⋪", nltrie: "⋬", nLtv: "≪̸", nmid: "∤", NoBreak: "⁠", NonBreakingSpace: " ", nopf: "𝕟", Nopf: "ℕ", Not: "⫬", not: "¬", NotCongruent: "≢", NotCupCap: "≭", NotDoubleVerticalBar: "∦", NotElement: "∉", NotEqual: "≠", NotEqualTilde: "≂̸", NotExists: "∄", NotGreater: "≯", NotGreaterEqual: "≱", NotGreaterFullEqual: "≧̸", NotGreaterGreater: "≫̸", NotGreaterLess: "≹", NotGreaterSlantEqual: "⩾̸", NotGreaterTilde: "≵", NotHumpDownHump: "≎̸", NotHumpEqual: "≏̸", notin: "∉", notindot: "⋵̸", notinE: "⋹̸", notinva: "∉", notinvb: "⋷", notinvc: "⋶", NotLeftTriangleBar: "⧏̸", NotLeftTriangle: "⋪", NotLeftTriangleEqual: "⋬", NotLess: "≮", NotLessEqual: "≰", NotLessGreater: "≸", NotLessLess: "≪̸", NotLessSlantEqual: "⩽̸", NotLessTilde: "≴", NotNestedGreaterGreater: "⪢̸", NotNestedLessLess: "⪡̸", notni: "∌", notniva: "∌", notnivb: "⋾", notnivc: "⋽", NotPrecedes: "⊀", NotPrecedesEqual: "⪯̸", NotPrecedesSlantEqual: "⋠", NotReverseElement: "∌", NotRightTriangleBar: "⧐̸", NotRightTriangle: "⋫", NotRightTriangleEqual: "⋭", NotSquareSubset: "⊏̸", NotSquareSubsetEqual: "⋢", NotSquareSuperset: "⊐̸", NotSquareSupersetEqual: "⋣", NotSubset: "⊂⃒", NotSubsetEqual: "⊈", NotSucceeds: "⊁", NotSucceedsEqual: "⪰̸", NotSucceedsSlantEqual: "⋡", NotSucceedsTilde: "≿̸", NotSuperset: "⊃⃒", NotSupersetEqual: "⊉", NotTilde: "≁", NotTildeEqual: "≄", NotTildeFullEqual: "≇", NotTildeTilde: "≉", NotVerticalBar: "∤", nparallel: "∦", npar: "∦", nparsl: "⫽⃥", npart: "∂̸", npolint: "⨔", npr: "⊀", nprcue: "⋠", nprec: "⊀", npreceq: "⪯̸", npre: "⪯̸", nrarrc: "⤳̸", nrarr: "↛", nrArr: "⇏", nrarrw: "↝̸", nrightarrow: "↛", nRightarrow: "⇏", nrtri: "⋫", nrtrie: "⋭", nsc: "⊁", nsccue: "⋡", nsce: "⪰̸", Nscr: "𝒩", nscr: "𝓃", nshortmid: "∤", nshortparallel: "∦", nsim: "≁", nsime: "≄", nsimeq: "≄", nsmid: "∤", nspar: "∦", nsqsube: "⋢", nsqsupe: "⋣", nsub: "⊄", nsubE: "⫅̸", nsube: "⊈", nsubset: "⊂⃒", nsubseteq: "⊈", nsubseteqq: "⫅̸", nsucc: "⊁", nsucceq: "⪰̸", nsup: "⊅", nsupE: "⫆̸", nsupe: "⊉", nsupset: "⊃⃒", nsupseteq: "⊉", nsupseteqq: "⫆̸", ntgl: "≹", Ntilde: "Ñ", ntilde: "ñ", ntlg: "≸", ntriangleleft: "⋪", ntrianglelefteq: "⋬", ntriangleright: "⋫", ntrianglerighteq: "⋭", Nu: "Ν", nu: "ν", num: "#", numero: "№", numsp: " ", nvap: "≍⃒", nvdash: "⊬", nvDash: "⊭", nVdash: "⊮", nVDash: "⊯", nvge: "≥⃒", nvgt: ">⃒", nvHarr: "⤄", nvinfin: "⧞", nvlArr: "⤂", nvle: "≤⃒", nvlt: "<⃒", nvltrie: "⊴⃒", nvrArr: "⤃", nvrtrie: "⊵⃒", nvsim: "∼⃒", nwarhk: "⤣", nwarr: "↖", nwArr: "⇖", nwarrow: "↖", nwnear: "⤧", Oacute: "Ó", oacute: "ó", oast: "⊛", Ocirc: "Ô", ocirc: "ô", ocir: "⊚", Ocy: "О", ocy: "о", odash: "⊝", Odblac: "Ő", odblac: "ő", odiv: "⨸", odot: "⊙", odsold: "⦼", OElig: "Œ", oelig: "œ", ofcir: "⦿", Ofr: "𝔒", ofr: "𝔬", ogon: "˛", Ograve: "Ò", ograve: "ò", ogt: "⧁", ohbar: "⦵", ohm: "Ω", oint: "∮", olarr: "↺", olcir: "⦾", olcross: "⦻", oline: "‾", olt: "⧀", Omacr: "Ō", omacr: "ō", Omega: "Ω", omega: "ω", Omicron: "Ο", omicron: "ο", omid: "⦶", ominus: "⊖", Oopf: "𝕆", oopf: "𝕠", opar: "⦷", OpenCurlyDoubleQuote: "“", OpenCurlyQuote: "‘", operp: "⦹", oplus: "⊕", orarr: "↻", Or: "⩔", or: "∨", ord: "⩝", order: "ℴ", orderof: "ℴ", ordf: "ª", ordm: "º", origof: "⊶", oror: "⩖", orslope: "⩗", orv: "⩛", oS: "Ⓢ", Oscr: "𝒪", oscr: "ℴ", Oslash: "Ø", oslash: "ø", osol: "⊘", Otilde: "Õ", otilde: "õ", otimesas: "⨶", Otimes: "⨷", otimes: "⊗", Ouml: "Ö", ouml: "ö", ovbar: "⌽", OverBar: "‾", OverBrace: "⏞", OverBracket: "⎴", OverParenthesis: "⏜", para: "¶", parallel: "∥", par: "∥", parsim: "⫳", parsl: "⫽", part: "∂", PartialD: "∂", Pcy: "П", pcy: "п", percnt: "%", period: ".", permil: "‰", perp: "⊥", pertenk: "‱", Pfr: "𝔓", pfr: "𝔭", Phi: "Φ", phi: "φ", phiv: "ϕ", phmmat: "ℳ", phone: "☎", Pi: "Π", pi: "π", pitchfork: "⋔", piv: "ϖ", planck: "ℏ", planckh: "ℎ", plankv: "ℏ", plusacir: "⨣", plusb: "⊞", pluscir: "⨢", plus: "+", plusdo: "∔", plusdu: "⨥", pluse: "⩲", PlusMinus: "±", plusmn: "±", plussim: "⨦", plustwo: "⨧", pm: "±", Poincareplane: "ℌ", pointint: "⨕", popf: "𝕡", Popf: "ℙ", pound: "£", prap: "⪷", Pr: "⪻", pr: "≺", prcue: "≼", precapprox: "⪷", prec: "≺", preccurlyeq: "≼", Precedes: "≺", PrecedesEqual: "⪯", PrecedesSlantEqual: "≼", PrecedesTilde: "≾", preceq: "⪯", precnapprox: "⪹", precneqq: "⪵", precnsim: "⋨", pre: "⪯", prE: "⪳", precsim: "≾", prime: "′", Prime: "″", primes: "ℙ", prnap: "⪹", prnE: "⪵", prnsim: "⋨", prod: "∏", Product: "∏", profalar: "⌮", profline: "⌒", profsurf: "⌓", prop: "∝", Proportional: "∝", Proportion: "∷", propto: "∝", prsim: "≾", prurel: "⊰", Pscr: "𝒫", pscr: "𝓅", Psi: "Ψ", psi: "ψ", puncsp: " ", Qfr: "𝔔", qfr: "𝔮", qint: "⨌", qopf: "𝕢", Qopf: "ℚ", qprime: "⁗", Qscr: "𝒬", qscr: "𝓆", quaternions: "ℍ", quatint: "⨖", quest: "?", questeq: "≟", quot: '"', QUOT: '"', rAarr: "⇛", race: "∽̱", Racute: "Ŕ", racute: "ŕ", radic: "√", raemptyv: "⦳", rang: "⟩", Rang: "⟫", rangd: "⦒", range: "⦥", rangle: "⟩", raquo: "»", rarrap: "⥵", rarrb: "⇥", rarrbfs: "⤠", rarrc: "⤳", rarr: "→", Rarr: "↠", rArr: "⇒", rarrfs: "⤞", rarrhk: "↪", rarrlp: "↬", rarrpl: "⥅", rarrsim: "⥴", Rarrtl: "⤖", rarrtl: "↣", rarrw: "↝", ratail: "⤚", rAtail: "⤜", ratio: "∶", rationals: "ℚ", rbarr: "⤍", rBarr: "⤏", RBarr: "⤐", rbbrk: "❳", rbrace: "}", rbrack: "]", rbrke: "⦌", rbrksld: "⦎", rbrkslu: "⦐", Rcaron: "Ř", rcaron: "ř", Rcedil: "Ŗ", rcedil: "ŗ", rceil: "⌉", rcub: "}", Rcy: "Р", rcy: "р", rdca: "⤷", rdldhar: "⥩", rdquo: "”", rdquor: "”", rdsh: "↳", real: "ℜ", realine: "ℛ", realpart: "ℜ", reals: "ℝ", Re: "ℜ", rect: "▭", reg: "®", REG: "®", ReverseElement: "∋", ReverseEquilibrium: "⇋", ReverseUpEquilibrium: "⥯", rfisht: "⥽", rfloor: "⌋", rfr: "𝔯", Rfr: "ℜ", rHar: "⥤", rhard: "⇁", rharu: "⇀", rharul: "⥬", Rho: "Ρ", rho: "ρ", rhov: "ϱ", RightAngleBracket: "⟩", RightArrowBar: "⇥", rightarrow: "→", RightArrow: "→", Rightarrow: "⇒", RightArrowLeftArrow: "⇄", rightarrowtail: "↣", RightCeiling: "⌉", RightDoubleBracket: "⟧", RightDownTeeVector: "⥝", RightDownVectorBar: "⥕", RightDownVector: "⇂", RightFloor: "⌋", rightharpoondown: "⇁", rightharpoonup: "⇀", rightleftarrows: "⇄", rightleftharpoons: "⇌", rightrightarrows: "⇉", rightsquigarrow: "↝", RightTeeArrow: "↦", RightTee: "⊢", RightTeeVector: "⥛", rightthreetimes: "⋌", RightTriangleBar: "⧐", RightTriangle: "⊳", RightTriangleEqual: "⊵", RightUpDownVector: "⥏", RightUpTeeVector: "⥜", RightUpVectorBar: "⥔", RightUpVector: "↾", RightVectorBar: "⥓", RightVector: "⇀", ring: "˚", risingdotseq: "≓", rlarr: "⇄", rlhar: "⇌", rlm: "‏", rmoustache: "⎱", rmoust: "⎱", rnmid: "⫮", roang: "⟭", roarr: "⇾", robrk: "⟧", ropar: "⦆", ropf: "𝕣", Ropf: "ℝ", roplus: "⨮", rotimes: "⨵", RoundImplies: "⥰", rpar: ")", rpargt: "⦔", rppolint: "⨒", rrarr: "⇉", Rrightarrow: "⇛", rsaquo: "›", rscr: "𝓇", Rscr: "ℛ", rsh: "↱", Rsh: "↱", rsqb: "]", rsquo: "’", rsquor: "’", rthree: "⋌", rtimes: "⋊", rtri: "▹", rtrie: "⊵", rtrif: "▸", rtriltri: "⧎", RuleDelayed: "⧴", ruluhar: "⥨", rx: "℞", Sacute: "Ś", sacute: "ś", sbquo: "‚", scap: "⪸", Scaron: "Š", scaron: "š", Sc: "⪼", sc: "≻", sccue: "≽", sce: "⪰", scE: "⪴", Scedil: "Ş", scedil: "ş", Scirc: "Ŝ", scirc: "ŝ", scnap: "⪺", scnE: "⪶", scnsim: "⋩", scpolint: "⨓", scsim: "≿", Scy: "С", scy: "с", sdotb: "⊡", sdot: "⋅", sdote: "⩦", searhk: "⤥", searr: "↘", seArr: "⇘", searrow: "↘", sect: "§", semi: ";", seswar: "⤩", setminus: "∖", setmn: "∖", sext: "✶", Sfr: "𝔖", sfr: "𝔰", sfrown: "⌢", sharp: "♯", SHCHcy: "Щ", shchcy: "щ", SHcy: "Ш", shcy: "ш", ShortDownArrow: "↓", ShortLeftArrow: "←", shortmid: "∣", shortparallel: "∥", ShortRightArrow: "→", ShortUpArrow: "↑", shy: "­", Sigma: "Σ", sigma: "σ", sigmaf: "ς", sigmav: "ς", sim: "∼", simdot: "⩪", sime: "≃", simeq: "≃", simg: "⪞", simgE: "⪠", siml: "⪝", simlE: "⪟", simne: "≆", simplus: "⨤", simrarr: "⥲", slarr: "←", SmallCircle: "∘", smallsetminus: "∖", smashp: "⨳", smeparsl: "⧤", smid: "∣", smile: "⌣", smt: "⪪", smte: "⪬", smtes: "⪬︀", SOFTcy: "Ь", softcy: "ь", solbar: "⌿", solb: "⧄", sol: "/", Sopf: "𝕊", sopf: "𝕤", spades: "♠", spadesuit: "♠", spar: "∥", sqcap: "⊓", sqcaps: "⊓︀", sqcup: "⊔", sqcups: "⊔︀", Sqrt: "√", sqsub: "⊏", sqsube: "⊑", sqsubset: "⊏", sqsubseteq: "⊑", sqsup: "⊐", sqsupe: "⊒", sqsupset: "⊐", sqsupseteq: "⊒", square: "□", Square: "□", SquareIntersection: "⊓", SquareSubset: "⊏", SquareSubsetEqual: "⊑", SquareSuperset: "⊐", SquareSupersetEqual: "⊒", SquareUnion: "⊔", squarf: "▪", squ: "□", squf: "▪", srarr: "→", Sscr: "𝒮", sscr: "𝓈", ssetmn: "∖", ssmile: "⌣", sstarf: "⋆", Star: "⋆", star: "☆", starf: "★", straightepsilon: "ϵ", straightphi: "ϕ", strns: "¯", sub: "⊂", Sub: "⋐", subdot: "⪽", subE: "⫅", sube: "⊆", subedot: "⫃", submult: "⫁", subnE: "⫋", subne: "⊊", subplus: "⪿", subrarr: "⥹", subset: "⊂", Subset: "⋐", subseteq: "⊆", subseteqq: "⫅", SubsetEqual: "⊆", subsetneq: "⊊", subsetneqq: "⫋", subsim: "⫇", subsub: "⫕", subsup: "⫓", succapprox: "⪸", succ: "≻", succcurlyeq: "≽", Succeeds: "≻", SucceedsEqual: "⪰", SucceedsSlantEqual: "≽", SucceedsTilde: "≿", succeq: "⪰", succnapprox: "⪺", succneqq: "⪶", succnsim: "⋩", succsim: "≿", SuchThat: "∋", sum: "∑", Sum: "∑", sung: "♪", sup1: "¹", sup2: "²", sup3: "³", sup: "⊃", Sup: "⋑", supdot: "⪾", supdsub: "⫘", supE: "⫆", supe: "⊇", supedot: "⫄", Superset: "⊃", SupersetEqual: "⊇", suphsol: "⟉", suphsub: "⫗", suplarr: "⥻", supmult: "⫂", supnE: "⫌", supne: "⊋", supplus: "⫀", supset: "⊃", Supset: "⋑", supseteq: "⊇", supseteqq: "⫆", supsetneq: "⊋", supsetneqq: "⫌", supsim: "⫈", supsub: "⫔", supsup: "⫖", swarhk: "⤦", swarr: "↙", swArr: "⇙", swarrow: "↙", swnwar: "⤪", szlig: "ß", Tab: " ", target: "⌖", Tau: "Τ", tau: "τ", tbrk: "⎴", Tcaron: "Ť", tcaron: "ť", Tcedil: "Ţ", tcedil: "ţ", Tcy: "Т", tcy: "т", tdot: "⃛", telrec: "⌕", Tfr: "𝔗", tfr: "𝔱", there4: "∴", therefore: "∴", Therefore: "∴", Theta: "Θ", theta: "θ", thetasym: "ϑ", thetav: "ϑ", thickapprox: "≈", thicksim: "∼", ThickSpace: "  ", ThinSpace: " ", thinsp: " ", thkap: "≈", thksim: "∼", THORN: "Þ", thorn: "þ", tilde: "˜", Tilde: "∼", TildeEqual: "≃", TildeFullEqual: "≅", TildeTilde: "≈", timesbar: "⨱", timesb: "⊠", times: "×", timesd: "⨰", tint: "∭", toea: "⤨", topbot: "⌶", topcir: "⫱", top: "⊤", Topf: "𝕋", topf: "𝕥", topfork: "⫚", tosa: "⤩", tprime: "‴", trade: "™", TRADE: "™", triangle: "▵", triangledown: "▿", triangleleft: "◃", trianglelefteq: "⊴", triangleq: "≜", triangleright: "▹", trianglerighteq: "⊵", tridot: "◬", trie: "≜", triminus: "⨺", TripleDot: "⃛", triplus: "⨹", trisb: "⧍", tritime: "⨻", trpezium: "⏢", Tscr: "𝒯", tscr: "𝓉", TScy: "Ц", tscy: "ц", TSHcy: "Ћ", tshcy: "ћ", Tstrok: "Ŧ", tstrok: "ŧ", twixt: "≬", twoheadleftarrow: "↞", twoheadrightarrow: "↠", Uacute: "Ú", uacute: "ú", uarr: "↑", Uarr: "↟", uArr: "⇑", Uarrocir: "⥉", Ubrcy: "Ў", ubrcy: "ў", Ubreve: "Ŭ", ubreve: "ŭ", Ucirc: "Û", ucirc: "û", Ucy: "У", ucy: "у", udarr: "⇅", Udblac: "Ű", udblac: "ű", udhar: "⥮", ufisht: "⥾", Ufr: "𝔘", ufr: "𝔲", Ugrave: "Ù", ugrave: "ù", uHar: "⥣", uharl: "↿", uharr: "↾", uhblk: "▀", ulcorn: "⌜", ulcorner: "⌜", ulcrop: "⌏", ultri: "◸", Umacr: "Ū", umacr: "ū", uml: "¨", UnderBar: "_", UnderBrace: "⏟", UnderBracket: "⎵", UnderParenthesis: "⏝", Union: "⋃", UnionPlus: "⊎", Uogon: "Ų", uogon: "ų", Uopf: "𝕌", uopf: "𝕦", UpArrowBar: "⤒", uparrow: "↑", UpArrow: "↑", Uparrow: "⇑", UpArrowDownArrow: "⇅", updownarrow: "↕", UpDownArrow: "↕", Updownarrow: "⇕", UpEquilibrium: "⥮", upharpoonleft: "↿", upharpoonright: "↾", uplus: "⊎", UpperLeftArrow: "↖", UpperRightArrow: "↗", upsi: "υ", Upsi: "ϒ", upsih: "ϒ", Upsilon: "Υ", upsilon: "υ", UpTeeArrow: "↥", UpTee: "⊥", upuparrows: "⇈", urcorn: "⌝", urcorner: "⌝", urcrop: "⌎", Uring: "Ů", uring: "ů", urtri: "◹", Uscr: "𝒰", uscr: "𝓊", utdot: "⋰", Utilde: "Ũ", utilde: "ũ", utri: "▵", utrif: "▴", uuarr: "⇈", Uuml: "Ü", uuml: "ü", uwangle: "⦧", vangrt: "⦜", varepsilon: "ϵ", varkappa: "ϰ", varnothing: "∅", varphi: "ϕ", varpi: "ϖ", varpropto: "∝", varr: "↕", vArr: "⇕", varrho: "ϱ", varsigma: "ς", varsubsetneq: "⊊︀", varsubsetneqq: "⫋︀", varsupsetneq: "⊋︀", varsupsetneqq: "⫌︀", vartheta: "ϑ", vartriangleleft: "⊲", vartriangleright: "⊳", vBar: "⫨", Vbar: "⫫", vBarv: "⫩", Vcy: "В", vcy: "в", vdash: "⊢", vDash: "⊨", Vdash: "⊩", VDash: "⊫", Vdashl: "⫦", veebar: "⊻", vee: "∨", Vee: "⋁", veeeq: "≚", vellip: "⋮", verbar: "|", Verbar: "‖", vert: "|", Vert: "‖", VerticalBar: "∣", VerticalLine: "|", VerticalSeparator: "❘", VerticalTilde: "≀", VeryThinSpace: " ", Vfr: "𝔙", vfr: "𝔳", vltri: "⊲", vnsub: "⊂⃒", vnsup: "⊃⃒", Vopf: "𝕍", vopf: "𝕧", vprop: "∝", vrtri: "⊳", Vscr: "𝒱", vscr: "𝓋", vsubnE: "⫋︀", vsubne: "⊊︀", vsupnE: "⫌︀", vsupne: "⊋︀", Vvdash: "⊪", vzigzag: "⦚", Wcirc: "Ŵ", wcirc: "ŵ", wedbar: "⩟", wedge: "∧", Wedge: "⋀", wedgeq: "≙", weierp: "℘", Wfr: "𝔚", wfr: "𝔴", Wopf: "𝕎", wopf: "𝕨", wp: "℘", wr: "≀", wreath: "≀", Wscr: "𝒲", wscr: "𝓌", xcap: "⋂", xcirc: "◯", xcup: "⋃", xdtri: "▽", Xfr: "𝔛", xfr: "𝔵", xharr: "⟷", xhArr: "⟺", Xi: "Ξ", xi: "ξ", xlarr: "⟵", xlArr: "⟸", xmap: "⟼", xnis: "⋻", xodot: "⨀", Xopf: "𝕏", xopf: "𝕩", xoplus: "⨁", xotime: "⨂", xrarr: "⟶", xrArr: "⟹", Xscr: "𝒳", xscr: "𝓍", xsqcup: "⨆", xuplus: "⨄", xutri: "△", xvee: "⋁", xwedge: "⋀", Yacute: "Ý", yacute: "ý", YAcy: "Я", yacy: "я", Ycirc: "Ŷ", ycirc: "ŷ", Ycy: "Ы", ycy: "ы", yen: "¥", Yfr: "𝔜", yfr: "𝔶", YIcy: "Ї", yicy: "ї", Yopf: "𝕐", yopf: "𝕪", Yscr: "𝒴", yscr: "𝓎", YUcy: "Ю", yucy: "ю", yuml: "ÿ", Yuml: "Ÿ", Zacute: "Ź", zacute: "ź", Zcaron: "Ž", zcaron: "ž", Zcy: "З", zcy: "з", Zdot: "Ż", zdot: "ż", zeetrf: "ℨ", ZeroWidthSpace: "​", Zeta: "Ζ", zeta: "ζ", zfr: "𝔷", Zfr: "ℨ", ZHcy: "Ж", zhcy: "ж", zigrarr: "⇝", zopf: "𝕫", Zopf: "ℤ", Zscr: "𝒵", zscr: "𝓏", zwj: "‍", zwnj: "‌" }, Wa = /^#[xX]([A-Fa-f0-9]+)$/, Ka = /^#([0-9]+)$/, Qa = /^([A-Za-z0-9]+)$/, Qr = function() {
1127
- function t(e) {
1128
- this.named = e;
1129
- }
1130
- return t.prototype.parse = function(e) {
1131
- if (e) {
1132
- var r = e.match(Wa);
1133
- if (r) return String.fromCharCode(parseInt(r[1], 16));
1134
- if (r = e.match(Ka), r) return String.fromCharCode(parseInt(r[1], 10));
1135
- if (r = e.match(Qa), r) return this.named[r[1]];
1136
- }
1137
- }, t;
1138
- }(), Ja = /[\t\n\f ]/, Ya = /[A-Za-z]/, Xa = /\r\n?/g;
1139
- function F(t) {
1140
- return Ja.test(t);
1141
- }
1142
- function mr(t) {
1143
- return Ya.test(t);
1144
- }
1145
- function Za(t) {
1146
- return t.replace(Xa, `
1147
- `);
1148
- }
1149
- var ts = function() {
1150
- function t(e, r, n) {
1151
- n === void 0 && (n = "precompile"), this.delegate = e, this.entityParser = r, this.mode = n, this.state = "beforeData", this.line = -1, this.column = -1, this.input = "", this.index = -1, this.tagNameBuffer = "", this.states = { beforeData: function() {
1152
- var a = this.peek();
1153
- if (a === "<" && !this.isIgnoredEndTag()) this.transitionTo("tagOpen"), this.markTagStart(), this.consume();
1154
- else {
1155
- if (this.mode === "precompile" && a === `
1156
- `) {
1157
- var s = this.tagNameBuffer.toLowerCase();
1158
- (s === "pre" || s === "textarea") && this.consume();
1159
- }
1160
- this.transitionTo("data"), this.delegate.beginData();
1161
- }
1162
- }, data: function() {
1163
- var a = this.peek(), s = this.tagNameBuffer;
1164
- a === "<" && !this.isIgnoredEndTag() ? (this.delegate.finishData(), this.transitionTo("tagOpen"), this.markTagStart(), this.consume()) : a === "&" && s !== "script" && s !== "style" ? (this.consume(), this.delegate.appendToData(this.consumeCharRef() || "&")) : (this.consume(), this.delegate.appendToData(a));
1165
- }, tagOpen: function() {
1166
- var a = this.consume();
1167
- a === "!" ? this.transitionTo("markupDeclarationOpen") : a === "/" ? this.transitionTo("endTagOpen") : (a === "@" || a === ":" || mr(a)) && (this.transitionTo("tagName"), this.tagNameBuffer = "", this.delegate.beginStartTag(), this.appendToTagName(a));
1168
- }, markupDeclarationOpen: function() {
1169
- var a = this.consume();
1170
- if (a === "-" && this.peek() === "-") this.consume(), this.transitionTo("commentStart"), this.delegate.beginComment();
1171
- else {
1172
- var s = a.toUpperCase() + this.input.substring(this.index, this.index + 6).toUpperCase();
1173
- s === "DOCTYPE" && (this.consume(), this.consume(), this.consume(), this.consume(), this.consume(), this.consume(), this.transitionTo("doctype"), this.delegate.beginDoctype && this.delegate.beginDoctype());
1174
- }
1175
- }, doctype: function() {
1176
- var a = this.consume();
1177
- F(a) && this.transitionTo("beforeDoctypeName");
1178
- }, beforeDoctypeName: function() {
1179
- var a = this.consume();
1180
- F(a) || (this.transitionTo("doctypeName"), this.delegate.appendToDoctypeName && this.delegate.appendToDoctypeName(a.toLowerCase()));
1181
- }, doctypeName: function() {
1182
- var a = this.consume();
1183
- F(a) ? this.transitionTo("afterDoctypeName") : a === ">" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData")) : this.delegate.appendToDoctypeName && this.delegate.appendToDoctypeName(a.toLowerCase());
1184
- }, afterDoctypeName: function() {
1185
- var a = this.consume();
1186
- if (!F(a)) if (a === ">") this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData");
1187
- else {
1188
- var s = a.toUpperCase() + this.input.substring(this.index, this.index + 5).toUpperCase(), u = s.toUpperCase() === "PUBLIC", i = s.toUpperCase() === "SYSTEM";
1189
- (u || i) && (this.consume(), this.consume(), this.consume(), this.consume(), this.consume(), this.consume()), u ? this.transitionTo("afterDoctypePublicKeyword") : i && this.transitionTo("afterDoctypeSystemKeyword");
1190
- }
1191
- }, afterDoctypePublicKeyword: function() {
1192
- var a = this.peek();
1193
- F(a) ? (this.transitionTo("beforeDoctypePublicIdentifier"), this.consume()) : a === '"' ? (this.transitionTo("doctypePublicIdentifierDoubleQuoted"), this.consume()) : a === "'" ? (this.transitionTo("doctypePublicIdentifierSingleQuoted"), this.consume()) : a === ">" && (this.consume(), this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData"));
1194
- }, doctypePublicIdentifierDoubleQuoted: function() {
1195
- var a = this.consume();
1196
- a === '"' ? this.transitionTo("afterDoctypePublicIdentifier") : a === ">" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData")) : this.delegate.appendToDoctypePublicIdentifier && this.delegate.appendToDoctypePublicIdentifier(a);
1197
- }, doctypePublicIdentifierSingleQuoted: function() {
1198
- var a = this.consume();
1199
- a === "'" ? this.transitionTo("afterDoctypePublicIdentifier") : a === ">" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData")) : this.delegate.appendToDoctypePublicIdentifier && this.delegate.appendToDoctypePublicIdentifier(a);
1200
- }, afterDoctypePublicIdentifier: function() {
1201
- var a = this.consume();
1202
- F(a) ? this.transitionTo("betweenDoctypePublicAndSystemIdentifiers") : a === ">" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData")) : a === '"' ? this.transitionTo("doctypeSystemIdentifierDoubleQuoted") : a === "'" && this.transitionTo("doctypeSystemIdentifierSingleQuoted");
1203
- }, betweenDoctypePublicAndSystemIdentifiers: function() {
1204
- var a = this.consume();
1205
- F(a) || (a === ">" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData")) : a === '"' ? this.transitionTo("doctypeSystemIdentifierDoubleQuoted") : a === "'" && this.transitionTo("doctypeSystemIdentifierSingleQuoted"));
1206
- }, doctypeSystemIdentifierDoubleQuoted: function() {
1207
- var a = this.consume();
1208
- a === '"' ? this.transitionTo("afterDoctypeSystemIdentifier") : a === ">" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData")) : this.delegate.appendToDoctypeSystemIdentifier && this.delegate.appendToDoctypeSystemIdentifier(a);
1209
- }, doctypeSystemIdentifierSingleQuoted: function() {
1210
- var a = this.consume();
1211
- a === "'" ? this.transitionTo("afterDoctypeSystemIdentifier") : a === ">" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData")) : this.delegate.appendToDoctypeSystemIdentifier && this.delegate.appendToDoctypeSystemIdentifier(a);
1212
- }, afterDoctypeSystemIdentifier: function() {
1213
- var a = this.consume();
1214
- F(a) || a === ">" && (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData"));
1215
- }, commentStart: function() {
1216
- var a = this.consume();
1217
- a === "-" ? this.transitionTo("commentStartDash") : a === ">" ? (this.delegate.finishComment(), this.transitionTo("beforeData")) : (this.delegate.appendToCommentData(a), this.transitionTo("comment"));
1218
- }, commentStartDash: function() {
1219
- var a = this.consume();
1220
- a === "-" ? this.transitionTo("commentEnd") : a === ">" ? (this.delegate.finishComment(), this.transitionTo("beforeData")) : (this.delegate.appendToCommentData("-"), this.transitionTo("comment"));
1221
- }, comment: function() {
1222
- var a = this.consume();
1223
- a === "-" ? this.transitionTo("commentEndDash") : this.delegate.appendToCommentData(a);
1224
- }, commentEndDash: function() {
1225
- var a = this.consume();
1226
- a === "-" ? this.transitionTo("commentEnd") : (this.delegate.appendToCommentData("-" + a), this.transitionTo("comment"));
1227
- }, commentEnd: function() {
1228
- var a = this.consume();
1229
- a === ">" ? (this.delegate.finishComment(), this.transitionTo("beforeData")) : (this.delegate.appendToCommentData("--" + a), this.transitionTo("comment"));
1230
- }, tagName: function() {
1231
- var a = this.consume();
1232
- F(a) ? this.transitionTo("beforeAttributeName") : a === "/" ? this.transitionTo("selfClosingStartTag") : a === ">" ? (this.delegate.finishTag(), this.transitionTo("beforeData")) : this.appendToTagName(a);
1233
- }, endTagName: function() {
1234
- var a = this.consume();
1235
- F(a) ? (this.transitionTo("beforeAttributeName"), this.tagNameBuffer = "") : a === "/" ? (this.transitionTo("selfClosingStartTag"), this.tagNameBuffer = "") : a === ">" ? (this.delegate.finishTag(), this.transitionTo("beforeData"), this.tagNameBuffer = "") : this.appendToTagName(a);
1236
- }, beforeAttributeName: function() {
1237
- var a = this.peek();
1238
- if (F(a)) {
1239
- this.consume();
1240
- return;
1241
- } else a === "/" ? (this.transitionTo("selfClosingStartTag"), this.consume()) : a === ">" ? (this.consume(), this.delegate.finishTag(), this.transitionTo("beforeData")) : a === "=" ? (this.delegate.reportSyntaxError("attribute name cannot start with equals sign"), this.transitionTo("attributeName"), this.delegate.beginAttribute(), this.consume(), this.delegate.appendToAttributeName(a)) : (this.transitionTo("attributeName"), this.delegate.beginAttribute());
1242
- }, attributeName: function() {
1243
- var a = this.peek();
1244
- F(a) ? (this.transitionTo("afterAttributeName"), this.consume()) : a === "/" ? (this.delegate.beginAttributeValue(!1), this.delegate.finishAttributeValue(), this.consume(), this.transitionTo("selfClosingStartTag")) : a === "=" ? (this.transitionTo("beforeAttributeValue"), this.consume()) : a === ">" ? (this.delegate.beginAttributeValue(!1), this.delegate.finishAttributeValue(), this.consume(), this.delegate.finishTag(), this.transitionTo("beforeData")) : a === '"' || a === "'" || a === "<" ? (this.delegate.reportSyntaxError(a + " is not a valid character within attribute names"), this.consume(), this.delegate.appendToAttributeName(a)) : (this.consume(), this.delegate.appendToAttributeName(a));
1245
- }, afterAttributeName: function() {
1246
- var a = this.peek();
1247
- if (F(a)) {
1248
- this.consume();
1249
- return;
1250
- } else a === "/" ? (this.delegate.beginAttributeValue(!1), this.delegate.finishAttributeValue(), this.consume(), this.transitionTo("selfClosingStartTag")) : a === "=" ? (this.consume(), this.transitionTo("beforeAttributeValue")) : a === ">" ? (this.delegate.beginAttributeValue(!1), this.delegate.finishAttributeValue(), this.consume(), this.delegate.finishTag(), this.transitionTo("beforeData")) : (this.delegate.beginAttributeValue(!1), this.delegate.finishAttributeValue(), this.transitionTo("attributeName"), this.delegate.beginAttribute(), this.consume(), this.delegate.appendToAttributeName(a));
1251
- }, beforeAttributeValue: function() {
1252
- var a = this.peek();
1253
- F(a) ? this.consume() : a === '"' ? (this.transitionTo("attributeValueDoubleQuoted"), this.delegate.beginAttributeValue(!0), this.consume()) : a === "'" ? (this.transitionTo("attributeValueSingleQuoted"), this.delegate.beginAttributeValue(!0), this.consume()) : a === ">" ? (this.delegate.beginAttributeValue(!1), this.delegate.finishAttributeValue(), this.consume(), this.delegate.finishTag(), this.transitionTo("beforeData")) : (this.transitionTo("attributeValueUnquoted"), this.delegate.beginAttributeValue(!1), this.consume(), this.delegate.appendToAttributeValue(a));
1254
- }, attributeValueDoubleQuoted: function() {
1255
- var a = this.consume();
1256
- a === '"' ? (this.delegate.finishAttributeValue(), this.transitionTo("afterAttributeValueQuoted")) : a === "&" ? this.delegate.appendToAttributeValue(this.consumeCharRef() || "&") : this.delegate.appendToAttributeValue(a);
1257
- }, attributeValueSingleQuoted: function() {
1258
- var a = this.consume();
1259
- a === "'" ? (this.delegate.finishAttributeValue(), this.transitionTo("afterAttributeValueQuoted")) : a === "&" ? this.delegate.appendToAttributeValue(this.consumeCharRef() || "&") : this.delegate.appendToAttributeValue(a);
1260
- }, attributeValueUnquoted: function() {
1261
- var a = this.peek();
1262
- F(a) ? (this.delegate.finishAttributeValue(), this.consume(), this.transitionTo("beforeAttributeName")) : a === "/" ? (this.delegate.finishAttributeValue(), this.consume(), this.transitionTo("selfClosingStartTag")) : a === "&" ? (this.consume(), this.delegate.appendToAttributeValue(this.consumeCharRef() || "&")) : a === ">" ? (this.delegate.finishAttributeValue(), this.consume(), this.delegate.finishTag(), this.transitionTo("beforeData")) : (this.consume(), this.delegate.appendToAttributeValue(a));
1263
- }, afterAttributeValueQuoted: function() {
1264
- var a = this.peek();
1265
- F(a) ? (this.consume(), this.transitionTo("beforeAttributeName")) : a === "/" ? (this.consume(), this.transitionTo("selfClosingStartTag")) : a === ">" ? (this.consume(), this.delegate.finishTag(), this.transitionTo("beforeData")) : this.transitionTo("beforeAttributeName");
1266
- }, selfClosingStartTag: function() {
1267
- var a = this.peek();
1268
- a === ">" ? (this.consume(), this.delegate.markTagAsSelfClosing(), this.delegate.finishTag(), this.transitionTo("beforeData")) : this.transitionTo("beforeAttributeName");
1269
- }, endTagOpen: function() {
1270
- var a = this.consume();
1271
- (a === "@" || a === ":" || mr(a)) && (this.transitionTo("endTagName"), this.tagNameBuffer = "", this.delegate.beginEndTag(), this.appendToTagName(a));
1272
- } }, this.reset();
1273
- }
1274
- return t.prototype.reset = function() {
1275
- this.transitionTo("beforeData"), this.input = "", this.tagNameBuffer = "", this.index = 0, this.line = 1, this.column = 0, this.delegate.reset();
1276
- }, t.prototype.transitionTo = function(e) {
1277
- this.state = e;
1278
- }, t.prototype.tokenize = function(e) {
1279
- this.reset(), this.tokenizePart(e), this.tokenizeEOF();
1280
- }, t.prototype.tokenizePart = function(e) {
1281
- for (this.input += Za(e); this.index < this.input.length; ) {
1282
- var r = this.states[this.state];
1283
- if (r !== void 0) r.call(this);
1284
- else throw new Error("unhandled state " + this.state);
1285
- }
1286
- }, t.prototype.tokenizeEOF = function() {
1287
- this.flushData();
1288
- }, t.prototype.flushData = function() {
1289
- this.state === "data" && (this.delegate.finishData(), this.transitionTo("beforeData"));
1290
- }, t.prototype.peek = function() {
1291
- return this.input.charAt(this.index);
1292
- }, t.prototype.consume = function() {
1293
- var e = this.peek();
1294
- return this.index++, e === `
1295
- ` ? (this.line++, this.column = 0) : this.column++, e;
1296
- }, t.prototype.consumeCharRef = function() {
1297
- var e = this.input.indexOf(";", this.index);
1298
- if (e !== -1) {
1299
- var r = this.input.slice(this.index, e), n = this.entityParser.parse(r);
1300
- if (n) {
1301
- for (var a = r.length; a; ) this.consume(), a--;
1302
- return this.consume(), n;
1303
- }
1304
- }
1305
- }, t.prototype.markTagStart = function() {
1306
- this.delegate.tagOpen();
1307
- }, t.prototype.appendToTagName = function(e) {
1308
- this.tagNameBuffer += e, this.delegate.appendToTagName(e);
1309
- }, t.prototype.isIgnoredEndTag = function() {
1310
- var e = this.tagNameBuffer;
1311
- return e === "title" && this.input.substring(this.index, this.index + 8) !== "</title>" || e === "style" && this.input.substring(this.index, this.index + 8) !== "</style>" || e === "script" && this.input.substring(this.index, this.index + 9) !== "<\/script>";
1312
- }, t;
1313
- }(), Be = /* @__PURE__ */ new Set(["area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr"]);
1314
- function es(t) {
1315
- var e;
1316
- return Be.has(t.toLowerCase()) && ((e = t[0]) == null ? void 0 : e.toLowerCase()) === t[0];
1317
- }
1318
- var it = Object.freeze({ line: 1, column: 0 }), rs = Object.freeze({ source: "(synthetic)", start: it, end: it }), Pt = Object.freeze({ source: "(nonexistent)", start: it, end: it }), st = Object.freeze({ source: "(broken)", start: it, end: it }), v = function(t) {
1319
- return t.CharPosition = "CharPosition", t.HbsPosition = "HbsPosition", t.InternalsSynthetic = "InternalsSynthetic", t.NonExistent = "NonExistent", t.Broken = "Broken", t;
1320
- }({}), qt = "MATCH_ANY", ke = "IS_INVISIBLE", ns = class {
1321
- constructor(t) {
1322
- w(this, "_whens");
1323
- this._whens = t;
1324
- }
1325
- first(t) {
1326
- for (let e of this._whens) {
1327
- let r = e.match(t);
1328
- if (Bt(r)) return r[0];
1329
- }
1330
- return null;
1331
- }
1332
- }, fr = class {
1333
- constructor() {
1334
- w(this, "_map", /* @__PURE__ */ new Map());
1335
- }
1336
- get(t, e) {
1337
- let r = this._map.get(t);
1338
- return r || (r = e(), this._map.set(t, r), r);
1339
- }
1340
- add(t, e) {
1341
- this._map.set(t, e);
1342
- }
1343
- match(t) {
1344
- let e = ss(t), r = [], n = this._map.get(e), a = this._map.get(qt);
1345
- return n && r.push(n), a && r.push(a), r;
1346
- }
1347
- };
1348
- function Jr(t) {
1349
- return t(new as()).check();
1350
- }
1351
- var as = class {
1352
- constructor() {
1353
- w(this, "_whens", new fr());
1354
- }
1355
- check() {
1356
- return (t, e) => this.matchFor(t.kind, e.kind)(t, e);
1357
- }
1358
- matchFor(t, e) {
1359
- let r = this._whens.match(t);
1360
- S(Bt(r), `no match defined for (${t}, ${e}) and no AnyMatch defined either`);
1361
- let n = new ns(r).first(e);
1362
- return S(n !== null, `no match defined for (${t}, ${e}) and no AnyMatch defined either`), n;
1363
- }
1364
- when(t, e, r) {
1365
- return this._whens.get(t, () => new fr()).add(e, r), this;
1366
- }
1367
- };
1368
- function ss(t) {
1369
- switch (t) {
1370
- case v.Broken:
1371
- case v.InternalsSynthetic:
1372
- case v.NonExistent:
1373
- return ke;
1374
- default:
1375
- return t;
1376
- }
1377
- }
1378
- var us = class xe {
1379
- constructor(e) {
1380
- w(this, "chars");
1381
- w(this, "loc");
1382
- this.loc = e.loc, this.chars = e.chars;
1383
- }
1384
- static synthetic(e) {
1385
- let r = I.synthetic(e);
1386
- return new xe({ loc: r, chars: e });
1387
- }
1388
- static load(e, r) {
1389
- return new xe({ loc: I.load(e, r[1]), chars: r[0] });
1390
- }
1391
- getString() {
1392
- return this.chars;
1393
- }
1394
- serialize() {
1395
- return [this.chars, this.loc.serialize()];
1396
- }
1397
- }, I = class At {
1398
- constructor(e) {
1399
- w(this, "isInvisible");
1400
- this.data = e, this.isInvisible = e.kind !== v.CharPosition && e.kind !== v.HbsPosition;
1401
- }
1402
- static get NON_EXISTENT() {
1403
- return new pt(v.NonExistent, Pt).wrap();
1404
- }
1405
- static load(e, r) {
1406
- if (typeof r == "number") return At.forCharPositions(e, r, r);
1407
- if (typeof r == "string") return At.synthetic(r);
1408
- if (Array.isArray(r)) return At.forCharPositions(e, r[0], r[1]);
1409
- if (r === v.NonExistent) return At.NON_EXISTENT;
1410
- if (r === v.Broken) return At.broken(st);
1411
- La(r);
1412
- }
1413
- static forHbsLoc(e, r) {
1414
- let n = new Ct(e, r.start), a = new Ct(e, r.end);
1415
- return new We(e, { start: n, end: a }, r).wrap();
1416
- }
1417
- static forCharPositions(e, r, n) {
1418
- let a = new It(e, r), s = new It(e, n);
1419
- return new Ge(e, { start: a, end: s }).wrap();
1420
- }
1421
- static synthetic(e) {
1422
- return new pt(v.InternalsSynthetic, Pt, e).wrap();
1423
- }
1424
- static broken(e = st) {
1425
- return new pt(v.Broken, e).wrap();
1426
- }
1427
- getStart() {
1428
- return this.data.getStart().wrap();
1429
- }
1430
- getEnd() {
1431
- return this.data.getEnd().wrap();
1432
- }
1433
- get loc() {
1434
- let e = this.data.toHbsSpan();
1435
- return e === null ? st : e.toHbsLoc();
1436
- }
1437
- get module() {
1438
- return this.data.getModule();
1439
- }
1440
- get startPosition() {
1441
- return this.loc.start;
1442
- }
1443
- get endPosition() {
1444
- return this.loc.end;
1445
- }
1446
- toJSON() {
1447
- return this.loc;
1448
- }
1449
- withStart(e) {
1450
- return W(e.data, this.data.getEnd());
1451
- }
1452
- withEnd(e) {
1453
- return W(this.data.getStart(), e.data);
1454
- }
1455
- asString() {
1456
- return this.data.asString();
1457
- }
1458
- toSlice(e) {
1459
- let r = this.data.asString();
1460
- return new us({ loc: this, chars: e || r });
1461
- }
1462
- get start() {
1463
- return this.loc.start;
1464
- }
1465
- set start(e) {
1466
- this.data.locDidUpdate({ start: e });
1467
- }
1468
- get end() {
1469
- return this.loc.end;
1470
- }
1471
- set end(e) {
1472
- this.data.locDidUpdate({ end: e });
1473
- }
1474
- get source() {
1475
- return this.module;
1476
- }
1477
- collapse(e) {
1478
- switch (e) {
1479
- case "start":
1480
- return this.getStart().collapsed();
1481
- case "end":
1482
- return this.getEnd().collapsed();
1483
- }
1484
- }
1485
- extend(e) {
1486
- return W(this.data.getStart(), e.data.getEnd());
1487
- }
1488
- serialize() {
1489
- return this.data.serialize();
1490
- }
1491
- slice({ skipStart: e = 0, skipEnd: r = 0 }) {
1492
- return W(this.getStart().move(e).data, this.getEnd().move(-r).data);
1493
- }
1494
- sliceStartChars({ skipStart: e = 0, chars: r }) {
1495
- return W(this.getStart().move(e).data, this.getStart().move(e + r).data);
1496
- }
1497
- sliceEndChars({ skipEnd: e = 0, chars: r }) {
1498
- return W(this.getEnd().move(e - r).data, this.getStart().move(-e).data);
1499
- }
1500
- }, Ge = class {
1501
- constructor(t, e) {
1502
- w(this, "kind", v.CharPosition);
1503
- w(this, "_locPosSpan", null);
1504
- this.source = t, this.charPositions = e;
1505
- }
1506
- wrap() {
1507
- return new I(this);
1508
- }
1509
- asString() {
1510
- return this.source.slice(this.charPositions.start.charPos, this.charPositions.end.charPos);
1511
- }
1512
- getModule() {
1513
- return this.source.module;
1514
- }
1515
- getStart() {
1516
- return this.charPositions.start;
1517
- }
1518
- getEnd() {
1519
- return this.charPositions.end;
1520
- }
1521
- locDidUpdate() {
1522
- }
1523
- toHbsSpan() {
1524
- let t = this._locPosSpan;
1525
- if (t === null) {
1526
- let e = this.charPositions.start.toHbsPos(), r = this.charPositions.end.toHbsPos();
1527
- e === null || r === null ? t = this._locPosSpan = ot : t = this._locPosSpan = new We(this.source, { start: e, end: r });
1528
- }
1529
- return t === ot ? null : t;
1530
- }
1531
- serialize() {
1532
- let { start: { charPos: t }, end: { charPos: e } } = this.charPositions;
1533
- return t === e ? t : [t, e];
1534
- }
1535
- toCharPosSpan() {
1536
- return this;
1537
- }
1538
- }, We = class {
1539
- constructor(t, e, r = null) {
1540
- w(this, "kind", v.HbsPosition);
1541
- w(this, "_charPosSpan", null);
1542
- w(this, "_providedHbsLoc");
1543
- this.source = t, this.hbsPositions = e, this._providedHbsLoc = r;
1544
- }
1545
- serialize() {
1546
- let t = this.toCharPosSpan();
1547
- return t === null ? v.Broken : t.wrap().serialize();
1548
- }
1549
- wrap() {
1550
- return new I(this);
1551
- }
1552
- updateProvided(t, e) {
1553
- this._providedHbsLoc && (this._providedHbsLoc[e] = t), this._charPosSpan = null, this._providedHbsLoc = { start: t, end: t };
1554
- }
1555
- locDidUpdate({ start: t, end: e }) {
1556
- t !== void 0 && (this.updateProvided(t, "start"), this.hbsPositions.start = new Ct(this.source, t, null)), e !== void 0 && (this.updateProvided(e, "end"), this.hbsPositions.end = new Ct(this.source, e, null));
1557
- }
1558
- asString() {
1559
- let t = this.toCharPosSpan();
1560
- return t === null ? "" : t.asString();
1561
- }
1562
- getModule() {
1563
- return this.source.module;
1564
- }
1565
- getStart() {
1566
- return this.hbsPositions.start;
1567
- }
1568
- getEnd() {
1569
- return this.hbsPositions.end;
1570
- }
1571
- toHbsLoc() {
1572
- return { start: this.hbsPositions.start.hbsPos, end: this.hbsPositions.end.hbsPos };
1573
- }
1574
- toHbsSpan() {
1575
- return this;
1576
- }
1577
- toCharPosSpan() {
1578
- let t = this._charPosSpan;
1579
- if (t === null) {
1580
- let e = this.hbsPositions.start.toCharPos(), r = this.hbsPositions.end.toCharPos();
1581
- if (e && r) t = this._charPosSpan = new Ge(this.source, { start: e, end: r });
1582
- else return t = this._charPosSpan = ot, null;
1583
- }
1584
- return t === ot ? null : t;
1585
- }
1586
- }, pt = class {
1587
- constructor(t, e, r = null) {
1588
- this.kind = t, this.loc = e, this.string = r;
1589
- }
1590
- serialize() {
1591
- switch (this.kind) {
1592
- case v.Broken:
1593
- case v.NonExistent:
1594
- return this.kind;
1595
- case v.InternalsSynthetic:
1596
- return this.string || "";
1597
- }
1598
- }
1599
- wrap() {
1600
- return new I(this);
1601
- }
1602
- asString() {
1603
- return this.string || "";
1604
- }
1605
- locDidUpdate({ start: t, end: e }) {
1606
- t !== void 0 && (this.loc.start = t), e !== void 0 && (this.loc.end = e);
1607
- }
1608
- getModule() {
1609
- return "an unknown module";
1610
- }
1611
- getStart() {
1612
- return new Ne(this.kind, this.loc.start);
1613
- }
1614
- getEnd() {
1615
- return new Ne(this.kind, this.loc.end);
1616
- }
1617
- toCharPosSpan() {
1618
- return this;
1619
- }
1620
- toHbsSpan() {
1621
- return null;
1622
- }
1623
- toHbsLoc() {
1624
- return st;
1625
- }
1626
- }, W = Jr((t) => t.when(v.HbsPosition, v.HbsPosition, (e, r) => new We(e.source, { start: e, end: r }).wrap()).when(v.CharPosition, v.CharPosition, (e, r) => new Ge(e.source, { start: e, end: r }).wrap()).when(v.CharPosition, v.HbsPosition, (e, r) => {
1627
- let n = r.toCharPos();
1628
- return n === null ? new pt(v.Broken, st).wrap() : W(e, n);
1629
- }).when(v.HbsPosition, v.CharPosition, (e, r) => {
1630
- let n = e.toCharPos();
1631
- return n === null ? new pt(v.Broken, st).wrap() : W(n, r);
1632
- }).when(ke, qt, (e) => new pt(e.kind, st).wrap()).when(qt, ke, (e, r) => new pt(r.kind, st).wrap())), ot = "BROKEN", re = class Te {
1633
- static forHbsPos(e, r) {
1634
- return new Ct(e, r, null).wrap();
1635
- }
1636
- static broken(e = it) {
1637
- return new Ne(v.Broken, e).wrap();
1638
- }
1639
- constructor(e) {
1640
- this.data = e;
1641
- }
1642
- get offset() {
1643
- let e = this.data.toCharPos();
1644
- return e === null ? null : e.offset;
1645
- }
1646
- eql(e) {
1647
- return is(this.data, e.data);
1648
- }
1649
- until(e) {
1650
- return W(this.data, e.data);
1651
- }
1652
- move(e) {
1653
- let r = this.data.toCharPos();
1654
- if (r === null) return Te.broken();
1655
- {
1656
- let n = r.offset + e;
1657
- return r.source.check(n) ? new It(r.source, n).wrap() : Te.broken();
1658
- }
1659
- }
1660
- collapsed() {
1661
- return W(this.data, this.data);
1662
- }
1663
- toJSON() {
1664
- return this.data.toJSON();
1665
- }
1666
- }, It = class {
1667
- constructor(t, e) {
1668
- w(this, "kind", v.CharPosition);
1669
- w(this, "_locPos", null);
1670
- this.source = t, this.charPos = e;
1671
- }
1672
- toCharPos() {
1673
- return this;
1674
- }
1675
- toJSON() {
1676
- let t = this.toHbsPos();
1677
- return t === null ? it : t.toJSON();
1678
- }
1679
- wrap() {
1680
- return new re(this);
1681
- }
1682
- get offset() {
1683
- return this.charPos;
1684
- }
1685
- toHbsPos() {
1686
- let t = this._locPos;
1687
- if (t === null) {
1688
- let e = this.source.hbsPosFor(this.charPos);
1689
- e === null ? this._locPos = t = ot : this._locPos = t = new Ct(this.source, e, this.charPos);
1690
- }
1691
- return t === ot ? null : t;
1692
- }
1693
- }, Ct = class {
1694
- constructor(t, e, r = null) {
1695
- w(this, "kind", v.HbsPosition);
1696
- w(this, "_charPos");
1697
- this.source = t, this.hbsPos = e, this._charPos = r === null ? null : new It(t, r);
1698
- }
1699
- toCharPos() {
1700
- let t = this._charPos;
1701
- if (t === null) {
1702
- let e = this.source.charPosFor(this.hbsPos);
1703
- e === null ? this._charPos = t = ot : this._charPos = t = new It(this.source, e);
1704
- }
1705
- return t === ot ? null : t;
1706
- }
1707
- toJSON() {
1708
- return this.hbsPos;
1709
- }
1710
- wrap() {
1711
- return new re(this);
1712
- }
1713
- toHbsPos() {
1714
- return this;
1715
- }
1716
- }, Ne = class {
1717
- constructor(t, e) {
1718
- this.kind = t, this.pos = e;
1719
- }
1720
- toCharPos() {
1721
- return null;
1722
- }
1723
- toJSON() {
1724
- return this.pos;
1725
- }
1726
- wrap() {
1727
- return new re(this);
1728
- }
1729
- get offset() {
1730
- return null;
1731
- }
1732
- }, is = Jr((t) => t.when(v.HbsPosition, v.HbsPosition, ({ hbsPos: e }, { hbsPos: r }) => e.column === r.column && e.line === r.line).when(v.CharPosition, v.CharPosition, ({ charPos: e }, { charPos: r }) => e === r).when(v.CharPosition, v.HbsPosition, ({ offset: e }, r) => {
1733
- var n;
1734
- return e === ((n = r.toCharPos()) == null ? void 0 : n.offset);
1735
- }).when(v.HbsPosition, v.CharPosition, (e, { offset: r }) => {
1736
- var n;
1737
- return ((n = e.toCharPos()) == null ? void 0 : n.offset) === r;
1738
- }).when(qt, qt, () => !1)), Ft = class Yr {
1739
- static from(e, r = {}) {
1740
- var n;
1741
- return new Yr(e, (n = r.meta) == null ? void 0 : n.moduleName);
1742
- }
1743
- constructor(e, r = "an unknown module") {
1744
- this.source = e, this.module = r;
1745
- }
1746
- check(e) {
1747
- return e >= 0 && e <= this.source.length;
1748
- }
1749
- slice(e, r) {
1750
- return this.source.slice(e, r);
1751
- }
1752
- offsetFor(e, r) {
1753
- return re.forHbsPos(this, { line: e, column: r });
1754
- }
1755
- spanFor({ start: e, end: r }) {
1756
- return I.forHbsLoc(this, { start: { line: e.line, column: e.column }, end: { line: r.line, column: r.column } });
1757
- }
1758
- hbsPosFor(e) {
1759
- let r = 0, n = 0;
1760
- if (e > this.source.length) return null;
1761
- for (; ; ) {
1762
- let a = this.source.indexOf(`
1763
- `, n);
1764
- if (e <= a || a === -1) return { line: r + 1, column: e - n };
1765
- r += 1, n = a + 1;
1766
- }
1767
- }
1768
- charPosFor(e) {
1769
- let { line: r, column: n } = e, a = this.source.length, s = 0, u = 0;
1770
- for (; u < a; ) {
1771
- let i = this.source.indexOf(`
1772
- `, u);
1773
- if (i === -1 && (i = this.source.length), s === r - 1)
1774
- return u + n > i ? i : u + n;
1775
- if (i === -1) return 0;
1776
- s += 1, u = i + 1;
1777
- }
1778
- return a;
1779
- }
1780
- };
1781
- function D(t, e) {
1782
- let { module: r, loc: n } = e, { line: a, column: s } = n.start, u = e.asString(), i = u ? `
1783
-
1784
- |
1785
- | ${u.split(`
1786
- `).join(`
1787
- | `)}
1788
- |
1789
-
1790
- ` : "", l = new Error(`${t}: ${i}(error occurred in '${r}' @ line ${a} : column ${s})`);
1791
- return l.name = "SyntaxError", l.location = e, l.code = u, l;
1792
- }
1793
- var os = { Template: ["body"], Block: ["body"], MustacheStatement: ["path", "params", "hash"], BlockStatement: ["path", "params", "hash", "program", "inverse"], ElementModifierStatement: ["path", "params", "hash"], CommentStatement: [], MustacheCommentStatement: [], ElementNode: ["attributes", "modifiers", "children", "comments"], AttrNode: ["value"], TextNode: [], ConcatStatement: ["parts"], SubExpression: ["path", "params", "hash"], PathExpression: [], StringLiteral: [], BooleanLiteral: [], NumberLiteral: [], NullLiteral: [], UndefinedLiteral: [], Hash: ["pairs"], HashPair: ["value"] }, Ke = function() {
1794
- t.prototype = Object.create(Error.prototype), t.prototype.constructor = t;
1795
- function t(e, r, n, a) {
1796
- let s = Error.call(this, e);
1797
- this.key = a, this.message = e, this.node = r, this.parent = n, s.stack && (this.stack = s.stack);
1798
- }
1799
- return t;
1800
- }();
1801
- function gr(t, e, r) {
1802
- return new Ke("Cannot remove a node unless it is part of an array", t, e, r);
1803
- }
1804
- function ls(t, e, r) {
1805
- return new Ke("Cannot replace a node with multiple nodes unless it is part of an array", t, e, r);
1806
- }
1807
- function br(t, e) {
1808
- return new Ke("Replacing and removing in key handlers is not yet supported.", t, null, e);
1809
- }
1810
- var ne = class {
1811
- constructor(t, e = null, r = null) {
1812
- w(this, "node");
1813
- w(this, "parent");
1814
- w(this, "parentKey");
1815
- this.node = t, this.parent = e, this.parentKey = r;
1816
- }
1817
- get parentNode() {
1818
- return this.parent ? this.parent.node : null;
1819
- }
1820
- parents() {
1821
- return { [Symbol.iterator]: () => new cs(this) };
1822
- }
1823
- }, cs = class {
1824
- constructor(t) {
1825
- w(this, "path");
1826
- this.path = t;
1827
- }
1828
- next() {
1829
- return this.path.parent ? (this.path = this.path.parent, { done: !1, value: this.path }) : { done: !0, value: null };
1830
- }
1831
- };
1832
- function Xr(t) {
1833
- return typeof t == "function" ? t : t.enter;
1834
- }
1835
- function Zr(t) {
1836
- if (typeof t != "function") return t.exit;
1837
- }
1838
- function hs(t, e) {
1839
- let r = typeof t != "function" ? t.keys : void 0;
1840
- if (r === void 0) return;
1841
- let n = r[e];
1842
- return n !== void 0 ? n : r.All;
1843
- }
1844
- function ps(t, e) {
1845
- if (t.Program && (e === "Template" && !t.Template || e === "Block" && !t.Block)) return M(`The 'Program' visitor node is deprecated. Use 'Template' or 'Block' instead (node was '${e}') `), t.Program;
1846
- let r = t[e];
1847
- return r !== void 0 ? r : t.All;
1848
- }
1849
- function ae(t, e) {
1850
- let { node: r, parent: n, parentKey: a } = e, s = ps(t, r.type), u, i;
1851
- s !== void 0 && (u = Xr(s), i = Zr(s));
1852
- let l;
1853
- if (u !== void 0 && (l = u(r, e)), l != null) if (JSON.stringify(r) === JSON.stringify(l)) l = void 0;
1854
- else {
1855
- if (Array.isArray(l)) return tn(t, l, n, a), l;
1856
- {
1857
- let g = new ne(l, n, a);
1858
- return ae(t, g) || l;
1859
- }
1860
- }
1861
- if (l === void 0) {
1862
- let g = os[r.type];
1863
- for (let h = 0; h < g.length; h++) {
1864
- let m = g[h];
1865
- ms(t, s, e, m);
1866
- }
1867
- i !== void 0 && (l = i(r, e));
1868
- }
1869
- return l;
1870
- }
1871
- function ds(t, e) {
1872
- return t[e];
1873
- }
1874
- function yr(t, e, r) {
1875
- t[e] = r;
1876
- }
1877
- function ms(t, e, r, n) {
1878
- let { node: a } = r, s = ds(a, n);
1879
- if (!s) return;
1880
- let u, i;
1881
- if (e !== void 0) {
1882
- let l = hs(e, n);
1883
- l !== void 0 && (u = Xr(l), i = Zr(l));
1884
- }
1885
- if (u !== void 0 && u(a, n) !== void 0) throw br(a, n);
1886
- if (Array.isArray(s)) tn(t, s, r, n);
1887
- else {
1888
- let l = new ne(s, r, n), g = ae(t, l);
1889
- g !== void 0 && fs(a, n, s, g);
1890
- }
1891
- if (i !== void 0 && i(a, n) !== void 0) throw br(a, n);
1892
- }
1893
- function tn(t, e, r, n) {
1894
- for (let a = 0; a < e.length; a++) {
1895
- let s = Ue(e[a]), u = new ne(s, r, n), i = ae(t, u);
1896
- i !== void 0 && (a += gs(e, a, i) - 1);
1897
- }
1898
- }
1899
- function fs(t, e, r, n) {
1900
- if (n === null) throw gr(r, t, e);
1901
- if (Array.isArray(n)) if (n.length === 1) yr(t, e, n[0]);
1902
- else throw n.length === 0 ? gr(r, t, e) : ls(r, t, e);
1903
- else yr(t, e, n);
1904
- }
1905
- function gs(t, e, r) {
1906
- return r === null ? (t.splice(e, 1), 0) : Array.isArray(r) ? (t.splice(e, 1, ...r), r.length) : (t.splice(e, 1, r), 1);
1907
- }
1908
- function bs(t, e) {
1909
- let r = new ne(t);
1910
- ae(e, r);
1911
- }
1912
- function ys(t) {
1913
- switch (t.type) {
1914
- case "Block":
1915
- case "Template":
1916
- return t.body;
1917
- case "ElementNode":
1918
- return t.children;
1919
- }
1920
- }
1921
- function vt(t, e) {
1922
- ys(t).push(e);
1923
- }
1924
- function en(t) {
1925
- return t.type === "StringLiteral" || t.type === "BooleanLiteral" || t.type === "NumberLiteral" || t.type === "NullLiteral" || t.type === "UndefinedLiteral";
1926
- }
1927
- function As(t) {
1928
- return t.type === "UndefinedLiteral" ? "undefined" : JSON.stringify(t.value);
1929
- }
1930
- var fe;
1931
- function ge() {
1932
- return fe || (fe = new Ft("", "(synthetic)")), fe;
1933
- }
1934
- function Ds(t, e = [], r = $t([]), n = !1, a, s) {
1935
- return f.mustache({ path: ut(t), params: e, hash: r, trusting: n, strip: s, loc: k(a || null) });
1936
- }
1937
- function Es(t, e, r, n, a = null, s, u, i, l) {
1938
- let g, h = null;
1939
- return n.type === "Template" ? (M("b.program is deprecated. Use b.blockItself instead."), g = f.blockItself({ params: nn(n.blockParams), body: n.body, loc: n.loc })) : g = n, (a == null ? void 0 : a.type) === "Template" ? (M("b.program is deprecated. Use b.blockItself instead."), S(a.blockParams.length === 0, "{{else}} block cannot have block params"), h = f.blockItself({ params: [], body: a.body, loc: a.loc })) : h = a, f.block({ path: ut(t), params: e || [], hash: r || $t([]), defaultBlock: g, elseBlock: h, loc: k(s || null), openStrip: u, inverseStrip: i, closeStrip: l });
1940
- }
1941
- function vs(t, e, r, n) {
1942
- return f.elementModifier({ path: ut(t), params: e || [], hash: r || $t([]), loc: k(n || null) });
1943
- }
1944
- function Cs(t, e) {
1945
- return f.comment({ value: t, loc: k(e || null) });
1946
- }
1947
- function Ss(t, e) {
1948
- return f.mustacheComment({ value: t, loc: k(e || null) });
1949
- }
1950
- function ws(t, e) {
1951
- if (!Bt(t)) throw new Error("b.concat requires at least one part");
1952
- return f.concat({ parts: t, loc: k(e || null) });
1953
- }
1954
- function Bs(t, e = {}) {
1955
- let { attrs: r, blockParams: n, modifiers: a, comments: s, children: u, openTag: i, closeTag: l, loc: g } = e, h, m;
1956
- typeof t == "string" ? t.endsWith("/") ? (h = ut(t.slice(0, -1)), m = !0) : h = ut(t) : "type" in t ? (S(t.type === "PathExpression", `Invalid tag type ${t.type}`), h = t) : "path" in t ? (S(t.path.type === "PathExpression", `Invalid tag type ${t.path.type}`), h = t.path, m = t.selfClosing) : (h = ut(t.name), m = t.selfClosing), m && S(l == null, "Cannot build a self-closing tag with a closeTag source location");
1957
- let A = n == null ? void 0 : n.map((C) => typeof C == "string" ? rn(C) : C), y = null;
1958
- return l ? y = k(l || null) : l === void 0 && (y = m || es(h.original) ? null : k(null)), f.element({ path: h, selfClosing: m || !1, attributes: r || [], params: A || [], modifiers: a || [], comments: s || [], children: u || [], openTag: k(i || null), closeTag: y, loc: k(g || null) });
1959
- }
1960
- function ks(t, e, r) {
1961
- return f.attr({ name: t, value: e, loc: k(r || null) });
1962
- }
1963
- function xs(t = "", e) {
1964
- return f.text({ chars: t, loc: k(e || null) });
1965
- }
1966
- function Ts(t, e = [], r = $t([]), n) {
1967
- return f.sexpr({ path: ut(t), params: e, hash: r, loc: k(n || null) });
1968
- }
1969
- function Ns(t, e) {
1970
- let [r, ...n] = _t(t.split(".")), a = f.head({ original: r, loc: k(e || null) });
1971
- return f.path({ head: a, tail: n, loc: k(e || null) });
1972
- }
1973
- function Ps(t) {
1974
- return f.this({ loc: k(t || null) });
1975
- }
1976
- function Fs(t, e) {
1977
- return f.atName({ name: t, loc: k(e || null) });
1978
- }
1979
- function rn(t, e) {
1980
- return f.var({ name: t, loc: k(e || null) });
1981
- }
1982
- function Ls(t, e) {
1983
- return f.head({ original: t, loc: k(e || null) });
1984
- }
1985
- function _s(t, e = [], r) {
1986
- return f.path({ head: t, tail: e, loc: k(r || null) });
1987
- }
1988
- function ut(t, e) {
1989
- let r = k(e || null);
1990
- if (typeof t != "string") {
1991
- if ("type" in t) return t;
1992
- {
1993
- S(t.head.indexOf(".") === -1, "builder.path({ head, tail }) should not be called with a head with dots in it");
1994
- let { head: s, tail: u } = t;
1995
- return f.path({ head: f.head({ original: s, loc: r.sliceStartChars({ chars: s.length }) }), tail: u, loc: k(e || null) });
1996
- }
1997
- }
1998
- let { head: n, tail: a } = Ns(t, r);
1999
- return f.path({ head: n, tail: a, loc: r });
2000
- }
2001
- function Yt(t, e, r) {
2002
- return f.literal({ type: t, value: e, loc: k(r || null) });
2003
- }
2004
- function $t(t = [], e) {
2005
- return f.hash({ pairs: t, loc: k(e || null) });
2006
- }
2007
- function qs(t, e, r) {
2008
- return f.pair({ key: t, value: e, loc: k(r || null) });
2009
- }
2010
- function Is(t, e, r) {
2011
- return M("b.program is deprecated. Use b.template or b.blockItself instead."), e && e.length ? an(t, e, !1, r) : sn(t, [], r);
2012
- }
2013
- function nn(t) {
2014
- return t.map((e) => typeof e == "string" ? f.var({ name: e, loc: I.synthetic(e) }) : e);
2015
- }
2016
- function an(t = [], e = [], r = !1, n) {
2017
- return f.blockItself({ body: t, params: nn(e), chained: r, loc: k(n || null) });
2018
- }
2019
- function sn(t = [], e = [], r) {
2020
- return f.template({ body: t, blockParams: e, loc: k(r || null) });
2021
- }
2022
- function Os(t, e) {
2023
- return f.pos({ line: t, column: e });
2024
- }
2025
- function k(...t) {
2026
- if (t.length === 1) {
2027
- let e = t[0];
2028
- return e && typeof e == "object" ? I.forHbsLoc(ge(), e) : I.forHbsLoc(ge(), rs);
2029
- } else {
2030
- let [e, r, n, a, s] = t, u = s ? new Ft("", s) : ge();
2031
- return I.forHbsLoc(u, { start: { line: e, column: r }, end: { line: n || e, column: a || r } });
2032
- }
2033
- }
2034
- var $s = { mustache: Ds, block: Es, comment: Cs, mustacheComment: Ss, element: Bs, elementModifier: vs, attr: ks, text: xs, sexpr: Ts, concat: ws, hash: $t, pair: qs, literal: Yt, program: Is, blockItself: an, template: sn, loc: k, pos: Os, path: ut, fullPath: _s, head: Ls, at: Fs, var: rn, this: Ps, string: be("StringLiteral"), boolean: be("BooleanLiteral"), number: be("NumberLiteral"), undefined() {
2035
- return Yt("UndefinedLiteral", void 0);
2036
- }, null() {
2037
- return Yt("NullLiteral", null);
2038
- } };
2039
- function be(t) {
2040
- return function(e, r) {
2041
- return Yt(t, e, r);
2042
- };
2043
- }
2044
- function Vs({ path: t, params: e, hash: r, trusting: n, strip: a, loc: s }) {
2045
- let u = { type: "MustacheStatement", path: t, params: e, hash: r, trusting: n, strip: a, loc: s };
2046
- return Object.defineProperty(u, "escaped", { enumerable: !1, get() {
2047
- return M("The escaped property on mustache nodes is deprecated, use trusting instead"), !this.trusting;
2048
- }, set(i) {
2049
- M("The escaped property on mustache nodes is deprecated, use trusting instead"), this.trusting = !i;
2050
- } }), u;
2051
- }
2052
- function Rs({ head: t, tail: e, loc: r }) {
2053
- let n = { type: "PathExpression", head: t, tail: e, get original() {
2054
- return [this.head.original, ...this.tail].join(".");
2055
- }, set original(a) {
2056
- let [s, ...u] = _t(a.split("."));
2057
- this.head = $s.head(s, this.head.loc), this.tail = u;
2058
- }, loc: r };
2059
- return Object.defineProperty(n, "parts", { enumerable: !1, get() {
2060
- M("The parts property on path nodes is deprecated, use head and tail instead");
2061
- let a = _t(this.original.split("."));
2062
- return a[0] === "this" ? a.shift() : a[0].startsWith("@") && (a[0] = a[0].slice(1)), Object.freeze(a);
2063
- }, set(a) {
2064
- var s;
2065
- M("The parts property on mustache nodes is deprecated, use head and tail instead");
2066
- let u = [...a];
2067
- u[0] !== "this" && !((s = u[0]) != null && s.startsWith("@")) && (this.head.type === "ThisHead" ? u.unshift("this") : this.head.type === "AtHead" && (u[0] = `@${u[0]}`)), this.original = u.join(".");
2068
- } }), Object.defineProperty(n, "this", { enumerable: !1, get() {
2069
- return M("The this property on path nodes is deprecated, use head.type instead"), this.head.type === "ThisHead";
2070
- } }), Object.defineProperty(n, "data", { enumerable: !1, get() {
2071
- return M("The data property on path nodes is deprecated, use head.type instead"), this.head.type === "AtHead";
2072
- } }), n;
2073
- }
2074
- function Us({ type: t, value: e, loc: r }) {
2075
- let n = { type: t, value: e, loc: r };
2076
- return Object.defineProperty(n, "original", { enumerable: !1, get() {
2077
- return M("The original property on literal nodes is deprecated, use value instead"), this.value;
2078
- }, set(a) {
2079
- M("The original property on literal nodes is deprecated, use value instead"), this.value = a;
2080
- } }), n;
2081
- }
2082
- var Gt = { close: !1, open: !1 }, Hs = class {
2083
- pos({ line: t, column: e }) {
2084
- return { line: t, column: e };
2085
- }
2086
- blockItself({ body: t, params: e, chained: r = !1, loc: n }) {
2087
- return { type: "Block", body: t, params: e, get blockParams() {
2088
- return this.params.map((a) => a.name);
2089
- }, set blockParams(a) {
2090
- this.params = a.map((s) => f.var({ name: s, loc: I.synthetic(s) }));
2091
- }, chained: r, loc: n };
2092
- }
2093
- template({ body: t, blockParams: e, loc: r }) {
2094
- return { type: "Template", body: t, blockParams: e, loc: r };
2095
- }
2096
- mustache({ path: t, params: e, hash: r, trusting: n, loc: a, strip: s = Gt }) {
2097
- return Vs({ path: t, params: e, hash: r, trusting: n, strip: s, loc: a });
2098
- }
2099
- block({ path: t, params: e, hash: r, defaultBlock: n, elseBlock: a = null, loc: s, openStrip: u = Gt, inverseStrip: i = Gt, closeStrip: l = Gt }) {
2100
- return { type: "BlockStatement", path: t, params: e, hash: r, program: n, inverse: a, loc: s, openStrip: u, inverseStrip: i, closeStrip: l };
2101
- }
2102
- comment({ value: t, loc: e }) {
2103
- return { type: "CommentStatement", value: t, loc: e };
2104
- }
2105
- mustacheComment({ value: t, loc: e }) {
2106
- return { type: "MustacheCommentStatement", value: t, loc: e };
2107
- }
2108
- concat({ parts: t, loc: e }) {
2109
- return { type: "ConcatStatement", parts: t, loc: e };
2110
- }
2111
- element({ path: t, selfClosing: e, attributes: r, modifiers: n, params: a, comments: s, children: u, openTag: i, closeTag: l, loc: g }) {
2112
- let h = e;
2113
- return { type: "ElementNode", path: t, attributes: r, modifiers: n, params: a, comments: s, children: u, openTag: i, closeTag: l, loc: g, get tag() {
2114
- return this.path.original;
2115
- }, set tag(m) {
2116
- this.path.original = m;
2117
- }, get blockParams() {
2118
- return this.params.map((m) => m.name);
2119
- }, set blockParams(m) {
2120
- this.params = m.map((A) => f.var({ name: A, loc: I.synthetic(A) }));
2121
- }, get selfClosing() {
2122
- return h;
2123
- }, set selfClosing(m) {
2124
- h = m, m ? this.closeTag = null : this.closeTag = I.synthetic(`</${this.tag}>`);
2125
- } };
2126
- }
2127
- elementModifier({ path: t, params: e, hash: r, loc: n }) {
2128
- return { type: "ElementModifierStatement", path: t, params: e, hash: r, loc: n };
2129
- }
2130
- attr({ name: t, value: e, loc: r }) {
2131
- return { type: "AttrNode", name: t, value: e, loc: r };
2132
- }
2133
- text({ chars: t, loc: e }) {
2134
- return { type: "TextNode", chars: t, loc: e };
2135
- }
2136
- sexpr({ path: t, params: e, hash: r, loc: n }) {
2137
- return { type: "SubExpression", path: t, params: e, hash: r, loc: n };
2138
- }
2139
- path({ head: t, tail: e, loc: r }) {
2140
- return Rs({ head: t, tail: e, loc: r });
2141
- }
2142
- head({ original: t, loc: e }) {
2143
- return t === "this" ? this.this({ loc: e }) : t[0] === "@" ? this.atName({ name: t, loc: e }) : this.var({ name: t, loc: e });
2144
- }
2145
- this({ loc: t }) {
2146
- return { type: "ThisHead", get original() {
2147
- return "this";
2148
- }, loc: t };
2149
- }
2150
- atName({ name: t, loc: e }) {
2151
- let r = "", n = { type: "AtHead", get name() {
2152
- return r;
2153
- }, set name(a) {
2154
- S(a[0] === "@", "call builders.at() with a string that starts with '@'"), S(a.indexOf(".") === -1, "builder.at() should not be called with a name with dots in it"), r = a;
2155
- }, get original() {
2156
- return this.name;
2157
- }, set original(a) {
2158
- this.name = a;
2159
- }, loc: e };
2160
- return n.name = t, n;
2161
- }
2162
- var({ name: t, loc: e }) {
2163
- let r = "", n = { type: "VarHead", get name() {
2164
- return r;
2165
- }, set name(a) {
2166
- S(a !== "this", "You called builders.var() with 'this'. Call builders.this instead"), S(a[0] !== "@", `You called builders.var() with '${t}'. Call builders.at('${t}') instead`), S(a.indexOf(".") === -1, "builder.var() should not be called with a name with dots in it"), r = a;
2167
- }, get original() {
2168
- return this.name;
2169
- }, set original(a) {
2170
- this.name = a;
2171
- }, loc: e };
2172
- return n.name = t, n;
2173
- }
2174
- hash({ pairs: t, loc: e }) {
2175
- return { type: "Hash", pairs: t, loc: e };
2176
- }
2177
- pair({ key: t, value: e, loc: r }) {
2178
- return { type: "HashPair", key: t, value: e, loc: r };
2179
- }
2180
- literal({ type: t, value: e, loc: r }) {
2181
- return Us({ type: t, value: e, loc: r });
2182
- }
2183
- }, f = new Hs(), Ms = class {
2184
- constructor(t, e = new Qr(Ga), r = "precompile") {
2185
- w(this, "elementStack", []);
2186
- w(this, "lines");
2187
- w(this, "source");
2188
- w(this, "currentAttribute", null);
2189
- w(this, "currentNode", null);
2190
- w(this, "tokenizer");
2191
- this.source = t, this.lines = t.source.split(/\r\n?|\n/u), this.tokenizer = new ts(this, e, r);
2192
- }
2193
- offset() {
2194
- let { line: t, column: e } = this.tokenizer;
2195
- return this.source.offsetFor(t, e);
2196
- }
2197
- pos({ line: t, column: e }) {
2198
- return this.source.offsetFor(t, e);
2199
- }
2200
- finish(t) {
2201
- return Gr({}, t, { loc: t.start.until(this.offset()) });
2202
- }
2203
- get currentAttr() {
2204
- return Sa(this.currentAttribute, "expected attribute");
2205
- }
2206
- get currentTag() {
2207
- let t = this.currentNode;
2208
- return S(t && (t.type === "StartTag" || t.type === "EndTag"), "expected tag"), t;
2209
- }
2210
- get currentStartTag() {
2211
- let t = this.currentNode;
2212
- return S(t && t.type === "StartTag", "expected start tag"), t;
2213
- }
2214
- get currentEndTag() {
2215
- let t = this.currentNode;
2216
- return S(t && t.type === "EndTag", "expected end tag"), t;
2217
- }
2218
- get currentComment() {
2219
- let t = this.currentNode;
2220
- return S(t && t.type === "CommentStatement", "expected a comment"), t;
2221
- }
2222
- get currentData() {
2223
- let t = this.currentNode;
2224
- return S(t && t.type === "TextNode", "expected a text node"), t;
2225
- }
2226
- acceptNode(t) {
2227
- return this[t.type](t);
2228
- }
2229
- currentElement() {
2230
- return He(_t(this.elementStack));
2231
- }
2232
- sourceForNode(t, e) {
2233
- let r = t.loc.start.line - 1, n = r - 1, a = t.loc.start.column, s = [], u, i, l;
2234
- for (e ? (i = e.loc.end.line - 1, l = e.loc.end.column) : (i = t.loc.end.line - 1, l = t.loc.end.column); n < i; ) n++, u = Ue(this.lines[n]), n === r ? r === i ? s.push(u.slice(a, l)) : s.push(u.slice(a)) : n === i ? s.push(u.slice(0, l)) : s.push(u);
2235
- return s.join(`
2236
- `);
2237
- }
2238
- }, Ar = "beforeAttributeName", zs = "attributeValueUnquoted", js = class extends Ms {
2239
- constructor() {
2240
- super(...arguments);
2241
- w(this, "pendingError", null);
2242
- }
2243
- parse(e, r) {
2244
- var n;
2245
- let a = f.template({ body: [], blockParams: r, loc: this.source.spanFor(e.loc) }), s = this.parseProgram(a, e);
2246
- return (n = this.pendingError) == null || n.eof(s.loc.getEnd()), s;
2247
- }
2248
- Program(e, r) {
2249
- S(Array.isArray(r), "[BUG] Program in parser unexpectedly called without block params");
2250
- let n = f.blockItself({ body: [], params: r, chained: e.chained, loc: this.source.spanFor(e.loc) });
2251
- return this.parseProgram(n, e);
2252
- }
2253
- parseProgram(e, r) {
2254
- if (r.body.length === 0) return e;
2255
- let n;
2256
- try {
2257
- this.elementStack.push(e);
2258
- for (let a of r.body) this.acceptNode(a);
2259
- } finally {
2260
- n = this.elementStack.pop();
2261
- }
2262
- if (e !== n) {
2263
- if ((n == null ? void 0 : n.type) === "ElementNode") throw D(`Unclosed element \`${n.tag}\``, n.loc);
2264
- S(n !== void 0, "[BUG] empty parser elementStack"), S(!1, `[BUG] mismatched parser elementStack node: ${e.type}`);
2265
- }
2266
- return e;
2267
- }
2268
- BlockStatement(e) {
2269
- var r;
2270
- if (this.tokenizer.state === "comment") {
2271
- this.appendToCommentData(this.sourceForNode(e));
2272
- return;
2273
- }
2274
- if (this.tokenizer.state !== "data" && this.tokenizer.state !== "beforeData") throw D("A block may only be used inside an HTML element or another block.", this.source.spanFor(e.loc));
2275
- let { path: n, params: a, hash: s } = ye(this, e), u = this.source.spanFor(e.loc), i = [];
2276
- if ((r = e.program.blockParams) != null && r.length) {
2277
- let A = s.loc.collapse("end");
2278
- e.program.loc ? A = A.withEnd(this.source.spanFor(e.program.loc).getStart()) : e.program.body[0] ? A = A.withEnd(this.source.spanFor(e.program.body[0].loc).getStart()) : A = A.withEnd(u.getEnd());
2279
- let y = A.asString(), C = y.indexOf("|") + 1, T = y.indexOf("|", C);
2280
- for (let x of e.program.blockParams) {
2281
- let B, U;
2282
- C >= T ? B = -1 : B = y.indexOf(x, C), B === -1 || B + x.length > T ? (C = T, U = this.source.spanFor(Pt)) : (C = B, U = A.sliceStartChars({ skipStart: C, chars: x.length }), C += x.length), i.push(f.var({ name: x, loc: U }));
2283
- }
2284
- }
2285
- e.program.loc || (e.program.loc = Pt), e.inverse && !e.inverse.loc && (e.inverse.loc = Pt);
2286
- let l = this.Program(e.program, i), g = e.inverse ? this.Program(e.inverse, []) : null, h = f.block({ path: n, params: a, hash: s, defaultBlock: l, elseBlock: g, loc: this.source.spanFor(e.loc), openStrip: e.openStrip, inverseStrip: e.inverseStrip, closeStrip: e.closeStrip }), m = this.currentElement();
2287
- vt(m, h);
2288
- }
2289
- MustacheStatement(e) {
2290
- var r;
2291
- (r = this.pendingError) == null || r.mustache(this.source.spanFor(e.loc));
2292
- let { tokenizer: n } = this;
2293
- if (n.state === "comment") {
2294
- this.appendToCommentData(this.sourceForNode(e));
2295
- return;
2296
- }
2297
- let a, { escaped: s, loc: u, strip: i } = e;
2298
- if ("original" in e.path && e.path.original === "...attributes") throw D("Illegal use of ...attributes", this.source.spanFor(e.loc));
2299
- if (en(e.path)) a = f.mustache({ path: this.acceptNode(e.path), params: [], hash: f.hash({ pairs: [], loc: this.source.spanFor(e.path.loc).collapse("end") }), trusting: !s, loc: this.source.spanFor(u), strip: i });
2300
- else {
2301
- let { path: l, params: g, hash: h } = ye(this, e);
2302
- a = f.mustache({ path: l, params: g, hash: h, trusting: !s, loc: this.source.spanFor(u), strip: i });
2303
- }
2304
- switch (n.state) {
2305
- case "tagOpen":
2306
- case "tagName":
2307
- throw D("Cannot use mustaches in an elements tagname", a.loc);
2308
- case "beforeAttributeName":
2309
- Ae(this.currentStartTag, a);
2310
- break;
2311
- case "attributeName":
2312
- case "afterAttributeName":
2313
- this.beginAttributeValue(!1), this.finishAttributeValue(), Ae(this.currentStartTag, a), n.transitionTo(Ar);
2314
- break;
2315
- case "afterAttributeValueQuoted":
2316
- Ae(this.currentStartTag, a), n.transitionTo(Ar);
2317
- break;
2318
- case "beforeAttributeValue":
2319
- this.beginAttributeValue(!1), this.appendDynamicAttributeValuePart(a), n.transitionTo(zs);
2320
- break;
2321
- case "attributeValueDoubleQuoted":
2322
- case "attributeValueSingleQuoted":
2323
- case "attributeValueUnquoted":
2324
- this.appendDynamicAttributeValuePart(a);
2325
- break;
2326
- default:
2327
- vt(this.currentElement(), a);
2328
- }
2329
- return a;
2330
- }
2331
- appendDynamicAttributeValuePart(e) {
2332
- this.finalizeTextPart();
2333
- let r = this.currentAttr;
2334
- r.isDynamic = !0, r.parts.push(e);
2335
- }
2336
- finalizeTextPart() {
2337
- let e = this.currentAttr.currentPart;
2338
- e !== null && (this.currentAttr.parts.push(e), this.startTextPart());
2339
- }
2340
- startTextPart() {
2341
- this.currentAttr.currentPart = null;
2342
- }
2343
- ContentStatement(e) {
2344
- Ws(this.tokenizer, e), this.tokenizer.tokenizePart(e.value), this.tokenizer.flushData();
2345
- }
2346
- CommentStatement(e) {
2347
- let { tokenizer: r } = this;
2348
- if (r.state === "comment") return this.appendToCommentData(this.sourceForNode(e)), null;
2349
- let { value: n, loc: a } = e, s = f.mustacheComment({ value: n, loc: this.source.spanFor(a) });
2350
- switch (r.state) {
2351
- case "beforeAttributeName":
2352
- case "afterAttributeName":
2353
- this.currentStartTag.comments.push(s);
2354
- break;
2355
- case "beforeData":
2356
- case "data":
2357
- vt(this.currentElement(), s);
2358
- break;
2359
- default:
2360
- throw D(`Using a Handlebars comment when in the \`${r.state}\` state is not supported`, this.source.spanFor(e.loc));
2361
- }
2362
- return s;
2363
- }
2364
- PartialStatement(e) {
2365
- throw D("Handlebars partials are not supported", this.source.spanFor(e.loc));
2366
- }
2367
- PartialBlockStatement(e) {
2368
- throw D("Handlebars partial blocks are not supported", this.source.spanFor(e.loc));
2369
- }
2370
- Decorator(e) {
2371
- throw D("Handlebars decorators are not supported", this.source.spanFor(e.loc));
2372
- }
2373
- DecoratorBlock(e) {
2374
- throw D("Handlebars decorator blocks are not supported", this.source.spanFor(e.loc));
2375
- }
2376
- SubExpression(e) {
2377
- let { path: r, params: n, hash: a } = ye(this, e);
2378
- return f.sexpr({ path: r, params: n, hash: a, loc: this.source.spanFor(e.loc) });
2379
- }
2380
- PathExpression(e) {
2381
- let { original: r } = e, n;
2382
- if (r.indexOf("/") !== -1) {
2383
- if (r.slice(0, 2) === "./") throw D('Using "./" is not supported in Glimmer and unnecessary', this.source.spanFor(e.loc));
2384
- if (r.slice(0, 3) === "../") throw D('Changing context using "../" is not supported in Glimmer', this.source.spanFor(e.loc));
2385
- if (r.indexOf(".") !== -1) throw D("Mixing '.' and '/' in paths is not supported in Glimmer; use only '.' to separate property paths", this.source.spanFor(e.loc));
2386
- n = [e.parts.join("/")];
2387
- } else {
2388
- if (r === ".") throw D("'.' is not a supported path in Glimmer; check for a path with a trailing '.'", this.source.spanFor(e.loc));
2389
- n = e.parts;
2390
- }
2391
- let a = !1;
2392
- /^this(?:\..+)?$/u.test(r) && (a = !0);
2393
- let s;
2394
- if (a) s = f.this({ loc: this.source.spanFor({ start: e.loc.start, end: { line: e.loc.start.line, column: e.loc.start.column + 4 } }) });
2395
- else if (e.data) {
2396
- let u = n.shift();
2397
- if (u === void 0) throw D("Attempted to parse a path expression, but it was not valid. Paths beginning with @ must start with a-z.", this.source.spanFor(e.loc));
2398
- s = f.atName({ name: `@${u}`, loc: this.source.spanFor({ start: e.loc.start, end: { line: e.loc.start.line, column: e.loc.start.column + u.length + 1 } }) });
2399
- } else {
2400
- let u = n.shift();
2401
- if (u === void 0) throw D("Attempted to parse a path expression, but it was not valid. Paths must start with a-z or A-Z.", this.source.spanFor(e.loc));
2402
- s = f.var({ name: u, loc: this.source.spanFor({ start: e.loc.start, end: { line: e.loc.start.line, column: e.loc.start.column + u.length } }) });
2403
- }
2404
- return f.path({ head: s, tail: n, loc: this.source.spanFor(e.loc) });
2405
- }
2406
- Hash(e) {
2407
- let r = e.pairs.map((n) => f.pair({ key: n.key, value: this.acceptNode(n.value), loc: this.source.spanFor(n.loc) }));
2408
- return f.hash({ pairs: r, loc: this.source.spanFor(e.loc) });
2409
- }
2410
- StringLiteral(e) {
2411
- return f.literal({ type: "StringLiteral", value: e.value, loc: this.source.spanFor(e.loc) });
2412
- }
2413
- BooleanLiteral(e) {
2414
- return f.literal({ type: "BooleanLiteral", value: e.value, loc: this.source.spanFor(e.loc) });
2415
- }
2416
- NumberLiteral(e) {
2417
- return f.literal({ type: "NumberLiteral", value: e.value, loc: this.source.spanFor(e.loc) });
2418
- }
2419
- UndefinedLiteral(e) {
2420
- return f.literal({ type: "UndefinedLiteral", value: void 0, loc: this.source.spanFor(e.loc) });
2421
- }
2422
- NullLiteral(e) {
2423
- return f.literal({ type: "NullLiteral", value: null, loc: this.source.spanFor(e.loc) });
2424
- }
2425
- };
2426
- function Gs(t, e) {
2427
- if (e === "") return { lines: t.split(`
2428
- `).length - 1, columns: 0 };
2429
- let [r] = t.split(e), n = r.split(/\n/u), a = n.length - 1;
2430
- return { lines: a, columns: Ue(n[a]).length };
2431
- }
2432
- function Ws(t, e) {
2433
- let r = e.loc.start.line, n = e.loc.start.column, a = Gs(e.original, e.value);
2434
- r = r + a.lines, a.lines ? n = a.columns : n = n + a.columns, t.line = r, t.column = n;
2435
- }
2436
- function ye(t, e) {
2437
- let r;
2438
- switch (e.path.type) {
2439
- case "PathExpression":
2440
- r = t.PathExpression(e.path);
2441
- break;
2442
- case "SubExpression":
2443
- r = t.SubExpression(e.path);
2444
- break;
2445
- case "StringLiteral":
2446
- case "UndefinedLiteral":
2447
- case "NullLiteral":
2448
- case "NumberLiteral":
2449
- case "BooleanLiteral": {
2450
- let u;
2451
- throw e.path.type === "BooleanLiteral" ? u = e.path.original.toString() : e.path.type === "StringLiteral" ? u = `"${e.path.original}"` : e.path.type === "NullLiteral" ? u = "null" : e.path.type === "NumberLiteral" ? u = e.path.value.toString() : u = "undefined", D(`${e.path.type} "${e.path.type === "StringLiteral" ? e.path.original : u}" cannot be called as a sub-expression, replace (${u}) with ${u}`, t.source.spanFor(e.path.loc));
2452
- }
2453
- }
2454
- let n = e.params ? e.params.map((u) => t.acceptNode(u)) : [], a = Bt(n) ? He(n).loc : r.loc, s = e.hash ? t.Hash(e.hash) : f.hash({ pairs: [], loc: t.source.spanFor(a).collapse("end") });
2455
- return { path: r, params: n, hash: s };
2456
- }
2457
- function Ae(t, e) {
2458
- let { path: r, params: n, hash: a, loc: s } = e;
2459
- if (en(r)) {
2460
- let i = `{{${As(r)}}}`, l = `<${t.name} ... ${i} ...`;
2461
- throw D(`In ${l}, ${i} is not a valid modifier`, e.loc);
2462
- }
2463
- let u = f.elementModifier({ path: r, params: n, hash: a, loc: s });
2464
- t.modifiers.push(u);
2465
- }
2466
- function yt(t) {
2467
- return /[\t\n\f ]/u.test(t);
2468
- }
2469
- var Ks = class extends js {
2470
- constructor() {
2471
- super(...arguments);
2472
- w(this, "tagOpenLine", 0);
2473
- w(this, "tagOpenColumn", 0);
2474
- }
2475
- reset() {
2476
- this.currentNode = null;
2477
- }
2478
- beginComment() {
2479
- this.currentNode = { type: "CommentStatement", value: "", start: this.source.offsetFor(this.tagOpenLine, this.tagOpenColumn) };
2480
- }
2481
- appendToCommentData(e) {
2482
- this.currentComment.value += e;
2483
- }
2484
- finishComment() {
2485
- vt(this.currentElement(), f.comment(this.finish(this.currentComment)));
2486
- }
2487
- beginData() {
2488
- this.currentNode = { type: "TextNode", chars: "", start: this.offset() };
2489
- }
2490
- appendToData(e) {
2491
- this.currentData.chars += e;
2492
- }
2493
- finishData() {
2494
- vt(this.currentElement(), f.text(this.finish(this.currentData)));
2495
- }
2496
- tagOpen() {
2497
- this.tagOpenLine = this.tokenizer.line, this.tagOpenColumn = this.tokenizer.column;
2498
- }
2499
- beginStartTag() {
2500
- this.currentNode = { type: "StartTag", name: "", nameStart: null, nameEnd: null, attributes: [], modifiers: [], comments: [], params: [], selfClosing: !1, start: this.source.offsetFor(this.tagOpenLine, this.tagOpenColumn) };
2501
- }
2502
- beginEndTag() {
2503
- this.currentNode = { type: "EndTag", name: "", start: this.source.offsetFor(this.tagOpenLine, this.tagOpenColumn) };
2504
- }
2505
- finishTag() {
2506
- let e = this.finish(this.currentTag);
2507
- if (e.type === "StartTag") {
2508
- if (this.finishStartTag(), e.name === ":") throw D("Invalid named block named detected, you may have created a named block without a name, or you may have began your name with a number. Named blocks must have names that are at least one character long, and begin with a lower case letter", this.source.spanFor({ start: this.currentTag.start.toJSON(), end: this.offset().toJSON() }));
2509
- (Be.has(e.name) || e.selfClosing) && this.finishEndTag(!0);
2510
- } else e.type === "EndTag" && this.finishEndTag(!1);
2511
- }
2512
- finishStartTag() {
2513
- let { name: e, nameStart: r, nameEnd: n } = this.currentStartTag;
2514
- S(e !== "", "tag name cannot be empty"), S(r !== null, "nameStart unexpectedly null"), S(n !== null, "nameEnd unexpectedly null");
2515
- let a = r.until(n), [s, ...u] = _t(e.split(".")), i = f.path({ head: f.head({ original: s, loc: a.sliceStartChars({ chars: s.length }) }), tail: u, loc: a }), { attributes: l, modifiers: g, comments: h, params: m, selfClosing: A, loc: y } = this.finish(this.currentStartTag), C = f.element({ path: i, selfClosing: A, attributes: l, modifiers: g, comments: h, params: m, children: [], openTag: y, closeTag: A ? null : I.broken(), loc: y });
2516
- this.elementStack.push(C);
2517
- }
2518
- finishEndTag(e) {
2519
- let { start: r } = this.currentTag, n = this.finish(this.currentTag), a = this.elementStack.pop();
2520
- this.validateEndTag(n, a, e);
2521
- let s = this.currentElement();
2522
- e ? a.closeTag = null : a.selfClosing ? S(a.closeTag === null, "element.closeTag unexpectedly present") : a.closeTag = r.until(this.offset()), a.loc = a.loc.withEnd(this.offset()), vt(s, f.element(a));
2523
- }
2524
- markTagAsSelfClosing() {
2525
- let e = this.currentTag;
2526
- if (e.type === "StartTag") e.selfClosing = !0;
2527
- else throw D("Invalid end tag: closing tag must not be self-closing", this.source.spanFor({ start: e.start.toJSON(), end: this.offset().toJSON() }));
2528
- }
2529
- appendToTagName(e) {
2530
- let r = this.currentTag;
2531
- if (r.name += e, r.type === "StartTag") {
2532
- let n = this.offset();
2533
- r.nameStart === null && (S(r.nameEnd === null, "nameStart and nameEnd must both be null"), r.nameStart = n.move(-1)), r.nameEnd = n;
2534
- }
2535
- }
2536
- beginAttribute() {
2537
- let e = this.offset();
2538
- this.currentAttribute = { name: "", parts: [], currentPart: null, isQuoted: !1, isDynamic: !1, start: e, valueSpan: e.collapsed() };
2539
- }
2540
- appendToAttributeName(e) {
2541
- this.currentAttr.name += e, this.currentAttr.name === "as" && this.parsePossibleBlockParams();
2542
- }
2543
- beginAttributeValue(e) {
2544
- this.currentAttr.isQuoted = e, this.startTextPart(), this.currentAttr.valueSpan = this.offset().collapsed();
2545
- }
2546
- appendToAttributeValue(e) {
2547
- let r = this.currentAttr.parts, n = r[r.length - 1], a = this.currentAttr.currentPart;
2548
- if (a) a.chars += e, a.loc = a.loc.withEnd(this.offset());
2549
- else {
2550
- let s = this.offset();
2551
- e === `
2552
- ` ? s = n ? n.loc.getEnd() : this.currentAttr.valueSpan.getStart() : s = s.move(-1), this.currentAttr.currentPart = f.text({ chars: e, loc: s.collapsed() });
2553
- }
2554
- }
2555
- finishAttributeValue() {
2556
- this.finalizeTextPart();
2557
- let e = this.currentTag, r = this.offset();
2558
- if (e.type === "EndTag") throw D("Invalid end tag: closing tag must not have attributes", this.source.spanFor({ start: e.start.toJSON(), end: r.toJSON() }));
2559
- let { name: n, parts: a, start: s, isQuoted: u, isDynamic: i, valueSpan: l } = this.currentAttr;
2560
- if (n.startsWith("|") && a.length === 0 && !u && !i) throw D("Invalid block parameters syntax: block parameters must be preceded by the `as` keyword", s.until(s.move(n.length)));
2561
- let g = this.assembleAttributeValue(a, u, i, s.until(r));
2562
- g.loc = l.withEnd(r);
2563
- let h = f.attr({ name: n, value: g, loc: s.until(r) });
2564
- this.currentStartTag.attributes.push(h);
2565
- }
2566
- parsePossibleBlockParams() {
2567
- let e = "beforeAttributeName", r = "attributeName", n = "afterAttributeName", a = /[!"#%&'()*+./;<=>@[\\\]^`{|}~]/u;
2568
- S(this.tokenizer.state === r, "must be in TokenizerState.attributeName");
2569
- let s = this.currentStartTag, u = this.currentAttr, i = { state: "PossibleAs" }, l = { PossibleAs: (h) => {
2570
- if (S(i.state === "PossibleAs", "bug in block params parser"), yt(h)) i = { state: "BeforeStartPipe" }, this.tokenizer.transitionTo(n), this.tokenizer.consume();
2571
- else {
2572
- if (h === "|") throw D('Invalid block parameters syntax: expecting at least one space character between "as" and "|"', u.start.until(this.offset().move(1)));
2573
- i = { state: "Done" };
2574
- }
2575
- }, BeforeStartPipe: (h) => {
2576
- S(i.state === "BeforeStartPipe", "bug in block params parser"), yt(h) ? this.tokenizer.consume() : h === "|" ? (i = { state: "BeforeBlockParamName" }, this.tokenizer.transitionTo(e), this.tokenizer.consume()) : i = { state: "Done" };
2577
- }, BeforeBlockParamName: (h) => {
2578
- if (S(i.state === "BeforeBlockParamName", "bug in block params parser"), yt(h)) this.tokenizer.consume();
2579
- else if (h === "") i = { state: "Done" }, this.pendingError = { mustache(m) {
2580
- throw D("Invalid block parameters syntax: mustaches cannot be used inside parameters list", m);
2581
- }, eof(m) {
2582
- throw D('Invalid block parameters syntax: expecting the tag to be closed with ">" or "/>" after parameters list', u.start.until(m));
2583
- } };
2584
- else if (h === "|") {
2585
- if (s.params.length === 0) throw D("Invalid block parameters syntax: empty parameters list, expecting at least one identifier", u.start.until(this.offset().move(1)));
2586
- i = { state: "AfterEndPipe" }, this.tokenizer.consume();
2587
- } else {
2588
- if (h === ">" || h === "/") throw D('Invalid block parameters syntax: incomplete parameters list, expecting "|" but the tag was closed prematurely', u.start.until(this.offset().move(1)));
2589
- i = { state: "BlockParamName", name: h, start: this.offset() }, this.tokenizer.consume();
2590
- }
2591
- }, BlockParamName: (h) => {
2592
- if (S(i.state === "BlockParamName", "bug in block params parser"), h === "") i = { state: "Done" }, this.pendingError = { mustache(m) {
2593
- throw D("Invalid block parameters syntax: mustaches cannot be used inside parameters list", m);
2594
- }, eof(m) {
2595
- throw D('Invalid block parameters syntax: expecting the tag to be closed with ">" or "/>" after parameters list', u.start.until(m));
2596
- } };
2597
- else if (h === "|" || yt(h)) {
2598
- let m = i.start.until(this.offset());
2599
- if (i.name === "this" || a.test(i.name)) throw D(`Invalid block parameters syntax: invalid identifier name \`${i.name}\``, m);
2600
- s.params.push(f.var({ name: i.name, loc: m })), i = h === "|" ? { state: "AfterEndPipe" } : { state: "BeforeBlockParamName" }, this.tokenizer.consume();
2601
- } else {
2602
- if (h === ">" || h === "/") throw D('Invalid block parameters syntax: expecting "|" but the tag was closed prematurely', u.start.until(this.offset().move(1)));
2603
- i.name += h, this.tokenizer.consume();
2604
- }
2605
- }, AfterEndPipe: (h) => {
2606
- S(i.state === "AfterEndPipe", "bug in block params parser"), yt(h) ? this.tokenizer.consume() : h === "" ? (i = { state: "Done" }, this.pendingError = { mustache(m) {
2607
- throw D("Invalid block parameters syntax: modifiers cannot follow parameters list", m);
2608
- }, eof(m) {
2609
- throw D('Invalid block parameters syntax: expecting the tag to be closed with ">" or "/>" after parameters list', u.start.until(m));
2610
- } }) : h === ">" || h === "/" ? i = { state: "Done" } : (i = { state: "Error", message: 'Invalid block parameters syntax: expecting the tag to be closed with ">" or "/>" after parameters list', start: this.offset() }, this.tokenizer.consume());
2611
- }, Error: (h) => {
2612
- if (S(i.state === "Error", "bug in block params parser"), h === "" || h === "/" || h === ">" || yt(h)) throw D(i.message, i.start.until(this.offset()));
2613
- this.tokenizer.consume();
2614
- }, Done: () => {
2615
- S(!1, "This should never be called");
2616
- } }, g;
2617
- do
2618
- g = this.tokenizer.peek(), l[i.state](g);
2619
- while (i.state !== "Done" && g !== "");
2620
- S(i.state === "Done", "bug in block params parser");
2621
- }
2622
- reportSyntaxError(e) {
2623
- throw D(e, this.offset().collapsed());
2624
- }
2625
- assembleConcatenatedValue(e) {
2626
- for (let a of e) if (a.type !== "MustacheStatement" && a.type !== "TextNode") throw D(`Unsupported node in quoted attribute value: ${a.type}`, a.loc);
2627
- ve(e, "the concatenation parts of an element should not be empty");
2628
- let r = wa(e), n = He(e);
2629
- return f.concat({ parts: e, loc: this.source.spanFor(r.loc).extend(this.source.spanFor(n.loc)) });
2630
- }
2631
- validateEndTag(e, r, n) {
2632
- if (Be.has(e.name) && !n) throw D(`<${e.name}> elements do not need end tags. You should remove it`, e.loc);
2633
- if (r.tag === void 0) throw D(`Closing tag </${e.name}> without an open tag`, e.loc);
2634
- if (r.tag !== e.name) throw D(`Closing tag </${e.name}> did not match last open tag <${r.tag}> (on line ${r.loc.startPosition.line})`, e.loc);
2635
- }
2636
- assembleAttributeValue(e, r, n, a) {
2637
- if (n) {
2638
- if (r) return this.assembleConcatenatedValue(e);
2639
- {
2640
- ve(e);
2641
- let [s, u] = e;
2642
- if (u === void 0 || u.type === "TextNode" && u.chars === "/") return s;
2643
- throw D("An unquoted attribute value must be a string or a mustache, preceded by whitespace or a '=' character, and followed by whitespace, a '>' character, or '/>'", a);
2644
- }
2645
- } else return Bt(e) ? e[0] : f.text({ chars: "", loc: a });
2646
- }
2647
- }, Qs = {}, Js = class extends Qr {
2648
- constructor() {
2649
- super({});
2650
- }
2651
- parse() {
2652
- }
2653
- };
2654
- function Ys(t, e = {}) {
2655
- var r, n, a;
2656
- let s = e.mode || "precompile", u, i;
2657
- typeof t == "string" ? (u = new Ft(t, (r = e.meta) == null ? void 0 : r.moduleName), s === "codemod" ? i = we(t, e.parseOptions) : i = dr(t, e.parseOptions)) : t instanceof Ft ? (u = t, s === "codemod" ? i = we(t.source, e.parseOptions) : i = dr(t.source, e.parseOptions)) : (u = new Ft("", (n = e.meta) == null ? void 0 : n.moduleName), i = t);
2658
- let l;
2659
- s === "codemod" && (l = new Js());
2660
- let g = I.forCharPositions(u, 0, u.source.length);
2661
- i.loc = { source: "(program)", start: g.startPosition, end: g.endPosition };
2662
- let h = new Ks(u, l, s).parse(i, e.locals ?? []);
2663
- if ((a = e == null ? void 0 : e.plugins) != null && a.ast) for (let m of e.plugins.ast) {
2664
- let A = Gr({}, e, { syntax: Qs }, { plugins: void 0 }), y = m(A);
2665
- bs(h, y.visitor);
2666
- }
2667
- return h;
2668
- }
2669
- (function(t) {
2670
- return t.Helper = "Helper", t.Modifier = "Modifier", t.Component = "Component", t;
2671
- })({});
2672
- var Wt = `
2673
- `, Dr = "\r", Xs = function() {
2674
- function t(e) {
2675
- this.length = e.length;
2676
- for (var r = [0], n = 0; n < e.length; ) switch (e[n]) {
2677
- case Wt:
2678
- n += Wt.length, r.push(n);
2679
- break;
2680
- case Dr:
2681
- n += Dr.length, e[n] === Wt && (n += Wt.length), r.push(n);
2682
- break;
2683
- default:
2684
- n++;
2685
- break;
2686
- }
2687
- this.offsets = r;
2688
- }
2689
- return t.prototype.locationForIndex = function(e) {
2690
- if (e < 0 || e > this.length) return null;
2691
- for (var r = 0, n = this.offsets; n[r + 1] <= e; ) r++;
2692
- var a = e - n[r];
2693
- return { line: r, column: a };
2694
- }, t.prototype.indexForLocation = function(e) {
2695
- var r = e.line, n = e.column;
2696
- return r < 0 || r >= this.offsets.length || n < 0 || n > this.lengthOfLine(r) ? null : this.offsets[r] + n;
2697
- }, t.prototype.lengthOfLine = function(e) {
2698
- var r = this.offsets[e], n = e === this.offsets.length - 1 ? this.length : this.offsets[e + 1];
2699
- return n - r;
2700
- }, t;
2701
- }();
2702
- function Zs(t, e) {
2703
- let r = new SyntaxError(t + " (" + e.loc.start.line + ":" + e.loc.start.column + ")");
2704
- return Object.assign(r, e);
2705
- }
2706
- var tu = Zs;
2707
- function eu(t) {
2708
- let e = t.children ?? t.body;
2709
- if (e) for (let r = 0; r < e.length - 1; r++) e[r].type === "TextNode" && e[r + 1].type === "MustacheStatement" && (e[r].chars = e[r].chars.replace(/\\$/u, "\\\\"));
2710
- }
2711
- function ru(t) {
2712
- let e = new Xs(t), r = ({ line: a, column: s }) => e.indexForLocation({ line: a - 1, column: s }), n = (a) => {
2713
- let { start: s, end: u } = a.loc;
2714
- s.offset = r(s), u.offset = r(u);
2715
- };
2716
- return () => ({ name: "prettierParsePlugin", visitor: { All(a) {
2717
- n(a), eu(a);
2718
- } } });
2719
- }
2720
- function nu(t) {
2721
- let e;
2722
- try {
2723
- e = Ys(t, { mode: "codemod", plugins: { ast: [ru(t)] } });
2724
- } catch (r) {
2725
- let n = su(r);
2726
- if (n) {
2727
- let a = au(r);
2728
- throw tu(a, { loc: n, cause: r });
2729
- }
2730
- throw r;
2731
- }
2732
- return e;
2733
- }
2734
- function au(t) {
2735
- let { message: e } = t, r = e.split(`
2736
- `);
2737
- return r.length >= 4 && /^Parse error on line \d+:$/u.test(r[0]) && /^-*\^$/u.test(Tt(!1, r, -2)) ? Tt(!1, r, -1) : r.length >= 4 && /:\s?$/u.test(r[0]) && /^\(error occurred in '.*?' @ line \d+ : column \d+\)$/u.test(Tt(!1, r, -1)) && r[1] === "" && Tt(!1, r, -2) === "" && r.slice(2, -2).every((n) => n.startsWith("|")) ? r[0].trim().slice(0, -1) : e;
2738
- }
2739
- function su(t) {
2740
- let { location: e, hash: r } = t;
2741
- if (e) {
2742
- let { start: n, end: a } = e;
2743
- return typeof a.line != "number" ? { start: n } : e;
2744
- }
2745
- if (r) {
2746
- let { loc: { last_line: n, last_column: a } } = r;
2747
- return { start: { line: n, column: a + 1 } };
2748
- }
2749
- }
2750
- var uu = { parse: nu, astFormat: "glimmer", locStart: Lt, locEnd: Ee }, iu = { glimmer: va }, cu = Cr;
2751
- export {
2752
- cu as default,
2753
- Ca as languages,
2754
- jr as parsers,
2755
- iu as printers
2756
- };