@prismicio/cli 0.0.1 → 0.0.2-alpha.xru-fix-npx-install-warnings.2
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.
- package/dist/acorn-CCr8VihG.js +3019 -0
- package/dist/acorn-CCr8VihG.js.map +1 -0
- package/dist/angular-B-6Sdz-P.js +2737 -0
- package/dist/angular-B-6Sdz-P.js.map +1 -0
- package/dist/babel-DSSzU6fH.js +7175 -0
- package/dist/babel-DSSzU6fH.js.map +1 -0
- package/dist/cli-NVpkXC9F.js +150015 -0
- package/dist/cli-NVpkXC9F.js.map +1 -0
- package/dist/cli.js +3 -144
- package/dist/cli.js.map +1 -1
- package/dist/estree-DHLJIae3.js +4486 -0
- package/dist/estree-DHLJIae3.js.map +1 -0
- package/dist/flow-DVd4L7fO.js +27426 -0
- package/dist/flow-DVd4L7fO.js.map +1 -0
- package/dist/glimmer-ffe_QHPj.js +2696 -0
- package/dist/glimmer-ffe_QHPj.js.map +1 -0
- package/dist/graphql-Cx6A4xbM.js +1241 -0
- package/dist/graphql-Cx6A4xbM.js.map +1 -0
- package/dist/html-Cp0WeaDh.js +2794 -0
- package/dist/html-Cp0WeaDh.js.map +1 -0
- package/dist/index-CAoPVwid.js +397 -0
- package/dist/index-CAoPVwid.js.map +1 -0
- package/dist/index-CqzxeUkd.js +835 -0
- package/dist/index-CqzxeUkd.js.map +1 -0
- package/dist/index-D3Z7xY3-.js +323 -0
- package/dist/index-D3Z7xY3-.js.map +1 -0
- package/dist/index-D80unpFN.js +3003 -0
- package/dist/index-D80unpFN.js.map +1 -0
- package/dist/index-DA8FlEll.js +35 -0
- package/dist/index-DA8FlEll.js.map +1 -0
- package/dist/index-DVTRroeB.js +189 -0
- package/dist/index-DVTRroeB.js.map +1 -0
- package/dist/index.js +2 -2
- package/dist/markdown-B2nQpAgl.js +3380 -0
- package/dist/markdown-B2nQpAgl.js.map +1 -0
- package/dist/meriyah-oMgd23nK.js +2640 -0
- package/dist/meriyah-oMgd23nK.js.map +1 -0
- package/dist/multipart-parser-jkRZKgYV.js +354 -0
- package/dist/multipart-parser-jkRZKgYV.js.map +1 -0
- package/dist/postcss-4okJ6bzF.js +4943 -0
- package/dist/postcss-4okJ6bzF.js.map +1 -0
- package/dist/typescript-eHDX_fq8.js +12974 -0
- package/dist/typescript-eHDX_fq8.js.map +1 -0
- package/dist/yaml-CoPGVzvb.js +4165 -0
- package/dist/yaml-CoPGVzvb.js.map +1 -0
- package/package.json +16 -17
- package/src/utils/sentry.ts +2 -0
- package/dist/_node_modules/meow/build/dependencies.js +0 -9040
- package/dist/_node_modules/meow/build/dependencies.js.map +0 -1
- package/dist/_node_modules/meow/build/index.js +0 -80
- package/dist/_node_modules/meow/build/index.js.map +0 -1
- package/dist/_node_modules/meow/build/options.js +0 -86
- package/dist/_node_modules/meow/build/options.js.map +0 -1
- package/dist/_node_modules/meow/build/parser.js +0 -61
- package/dist/_node_modules/meow/build/parser.js.map +0 -1
- package/dist/_node_modules/meow/build/utils.js +0 -8
- package/dist/_node_modules/meow/build/utils.js.map +0 -1
- package/dist/_node_modules/meow/build/validate.js +0 -102
- package/dist/_node_modules/meow/build/validate.js.map +0 -1
- package/dist/commands/init.js +0 -34
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/sync.js +0 -32
- package/dist/commands/sync.js.map +0 -1
- package/dist/core/auth.js +0 -72
- package/dist/core/auth.js.map +0 -1
- package/dist/core/customType.js +0 -43
- package/dist/core/customType.js.map +0 -1
- package/dist/core/framework.js +0 -128
- package/dist/core/framework.js.map +0 -1
- package/dist/core/project.js +0 -92
- package/dist/core/project.js.map +0 -1
- package/dist/core/repository.js +0 -33
- package/dist/core/repository.js.map +0 -1
- package/dist/core/slices.js +0 -47
- package/dist/core/slices.js.map +0 -1
- package/dist/core/version.js +0 -27
- package/dist/core/version.js.map +0 -1
- package/dist/packages/cli/package.json.js +0 -63
- package/dist/packages/cli/package.json.js.map +0 -1
- package/dist/utils/error.js +0 -18
- package/dist/utils/error.js.map +0 -1
- package/dist/utils/listr.js +0 -12
- package/dist/utils/listr.js.map +0 -1
- package/dist/utils/output.js +0 -34
- package/dist/utils/output.js.map +0 -1
- package/dist/utils/package.js +0 -20
- package/dist/utils/package.js.map +0 -1
- package/dist/utils/sentry.js +0 -62
- package/dist/utils/sentry.js.map +0 -1
- package/dist/utils/telemetry.js +0 -42
- package/dist/utils/telemetry.js.map +0 -1
|
@@ -0,0 +1,2696 @@
|
|
|
1
|
+
var Vs = Object.defineProperty;
|
|
2
|
+
var _e = (e5, t) => {
|
|
3
|
+
for (var r in t) Vs(e5, r, { get: t[r], enumerable: true });
|
|
4
|
+
};
|
|
5
|
+
var Ds = {};
|
|
6
|
+
_e(Ds, { languages: () => ss, parsers: () => br, printers: () => wi });
|
|
7
|
+
var Jt = (e5, t) => (r, n, ...s) => r | 1 && n == null ? void 0 : (t.call(n) ?? n[e5]).apply(n, s);
|
|
8
|
+
var Fs = String.prototype.replaceAll ?? function(e5, t) {
|
|
9
|
+
return e5.global ? this.replace(e5, t) : this.split(e5).join(t);
|
|
10
|
+
}, Hs = Jt("replaceAll", function() {
|
|
11
|
+
if (typeof this == "string") return Fs;
|
|
12
|
+
}), St = Hs;
|
|
13
|
+
function Us(e5) {
|
|
14
|
+
return this[e5 < 0 ? this.length + e5 : e5];
|
|
15
|
+
}
|
|
16
|
+
var Ms = Jt("at", function() {
|
|
17
|
+
if (Array.isArray(this) || typeof this == "string") return Us;
|
|
18
|
+
}), V = Ms;
|
|
19
|
+
var zs = () => {
|
|
20
|
+
}, Dt = zs;
|
|
21
|
+
var Ot = "string", Bt = "array", $t = "cursor", kt = "indent", Et = "align", Xt = "trim", vt = "group", wt = "fill", Tt = "if-break", Zt = "indent-if-break", te = "line-suffix", ee = "line-suffix-boundary", Q = "line", re = "label", xt = "break-parent", se = /* @__PURE__ */ new Set([$t, kt, Et, Xt, vt, wt, Tt, Zt, te, ee, Q, re, xt]);
|
|
22
|
+
function Ys(e5) {
|
|
23
|
+
if (typeof e5 == "string") return Ot;
|
|
24
|
+
if (Array.isArray(e5)) return Bt;
|
|
25
|
+
if (!e5) return;
|
|
26
|
+
let { type: t } = e5;
|
|
27
|
+
if (se.has(t)) return t;
|
|
28
|
+
}
|
|
29
|
+
var ne = Ys;
|
|
30
|
+
var Gs = (e5) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(e5);
|
|
31
|
+
function Ks(e5) {
|
|
32
|
+
let t = e5 === null ? "null" : typeof e5;
|
|
33
|
+
if (t !== "string" && t !== "object") return `Unexpected doc '${t}',
|
|
34
|
+
Expected it to be 'string' or 'object'.`;
|
|
35
|
+
if (ne(e5)) throw new Error("doc is valid.");
|
|
36
|
+
let r = Object.prototype.toString.call(e5);
|
|
37
|
+
if (r !== "[object Object]") return `Unexpected doc '${r}'.`;
|
|
38
|
+
let n = Gs([...se].map((s) => `'${s}'`));
|
|
39
|
+
return `Unexpected doc.type '${e5.type}'.
|
|
40
|
+
Expected it to be ${n}.`;
|
|
41
|
+
}
|
|
42
|
+
var De = class extends Error {
|
|
43
|
+
name = "InvalidDocError";
|
|
44
|
+
constructor(t) {
|
|
45
|
+
super(Ks(t)), this.doc = t;
|
|
46
|
+
}
|
|
47
|
+
}, Cr = De;
|
|
48
|
+
function Ws(e5, t) {
|
|
49
|
+
if (typeof e5 == "string") return t(e5);
|
|
50
|
+
let r = /* @__PURE__ */ new Map();
|
|
51
|
+
return n(e5);
|
|
52
|
+
function n(i) {
|
|
53
|
+
if (r.has(i)) return r.get(i);
|
|
54
|
+
let a = s(i);
|
|
55
|
+
return r.set(i, a), a;
|
|
56
|
+
}
|
|
57
|
+
function s(i) {
|
|
58
|
+
switch (ne(i)) {
|
|
59
|
+
case Bt:
|
|
60
|
+
return t(i.map(n));
|
|
61
|
+
case wt:
|
|
62
|
+
return t({ ...i, parts: i.parts.map(n) });
|
|
63
|
+
case Tt:
|
|
64
|
+
return t({ ...i, breakContents: n(i.breakContents), flatContents: n(i.flatContents) });
|
|
65
|
+
case vt: {
|
|
66
|
+
let { expandedStates: a, contents: o } = i;
|
|
67
|
+
return a ? (a = a.map(n), o = a[0]) : o = n(o), t({ ...i, contents: o, expandedStates: a });
|
|
68
|
+
}
|
|
69
|
+
case Et:
|
|
70
|
+
case kt:
|
|
71
|
+
case Zt:
|
|
72
|
+
case re:
|
|
73
|
+
case te:
|
|
74
|
+
return t({ ...i, contents: n(i.contents) });
|
|
75
|
+
case Ot:
|
|
76
|
+
case $t:
|
|
77
|
+
case Xt:
|
|
78
|
+
case ee:
|
|
79
|
+
case Q:
|
|
80
|
+
case xt:
|
|
81
|
+
return t(i);
|
|
82
|
+
default:
|
|
83
|
+
throw new Cr(i);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function ie(e5, t = Lr) {
|
|
88
|
+
return Ws(e5, (r) => typeof r == "string" ? ct(t, r.split(`
|
|
89
|
+
`)) : r);
|
|
90
|
+
}
|
|
91
|
+
var ae = Dt;
|
|
92
|
+
function F(e5) {
|
|
93
|
+
return { type: kt, contents: e5 };
|
|
94
|
+
}
|
|
95
|
+
function js(e5, t) {
|
|
96
|
+
return { type: Et, contents: t, n: e5 };
|
|
97
|
+
}
|
|
98
|
+
function Oe(e5) {
|
|
99
|
+
return js(-1, e5);
|
|
100
|
+
}
|
|
101
|
+
var Be = { type: xt };
|
|
102
|
+
function Ie(e5) {
|
|
103
|
+
return { type: wt, parts: e5 };
|
|
104
|
+
}
|
|
105
|
+
function B(e5, t = {}) {
|
|
106
|
+
return ae(t.expandedStates), { type: vt, id: t.id, contents: e5, break: !!t.shouldBreak, expandedStates: t.expandedStates };
|
|
107
|
+
}
|
|
108
|
+
function Re(e5, t = "", r = {}) {
|
|
109
|
+
return { type: Tt, breakContents: e5, flatContents: t, groupId: r.groupId };
|
|
110
|
+
}
|
|
111
|
+
function ct(e5, t) {
|
|
112
|
+
let r = [];
|
|
113
|
+
for (let n = 0; n < t.length; n++) n !== 0 && r.push(e5), r.push(t[n]);
|
|
114
|
+
return r;
|
|
115
|
+
}
|
|
116
|
+
var N = { type: Q }, H = { type: Q, soft: true }, Qs = { type: Q, hard: true }, ut = [Qs, Be], Js = { type: Q, hard: true, literal: true }, Lr = [Js, Be];
|
|
117
|
+
function $s(e5, t) {
|
|
118
|
+
let r = t === true || t === "'" ? "'" : '"', n = r === "'" ? '"' : "'", s = 0, i = 0;
|
|
119
|
+
for (let a of e5) a === r ? s++ : a === n && i++;
|
|
120
|
+
return s > i ? n : r;
|
|
121
|
+
}
|
|
122
|
+
var oe = $s;
|
|
123
|
+
function qe(e5) {
|
|
124
|
+
if (typeof e5 != "string") throw new TypeError("Expected a string");
|
|
125
|
+
return e5.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
|
|
126
|
+
}
|
|
127
|
+
var Ve = class {
|
|
128
|
+
#t;
|
|
129
|
+
constructor(t) {
|
|
130
|
+
this.#t = new Set(t);
|
|
131
|
+
}
|
|
132
|
+
getLeadingWhitespaceCount(t) {
|
|
133
|
+
let r = this.#t, n = 0;
|
|
134
|
+
for (let s = 0; s < t.length && r.has(t.charAt(s)); s++) n++;
|
|
135
|
+
return n;
|
|
136
|
+
}
|
|
137
|
+
getTrailingWhitespaceCount(t) {
|
|
138
|
+
let r = this.#t, n = 0;
|
|
139
|
+
for (let s = t.length - 1; s >= 0 && r.has(t.charAt(s)); s--) n++;
|
|
140
|
+
return n;
|
|
141
|
+
}
|
|
142
|
+
getLeadingWhitespace(t) {
|
|
143
|
+
let r = this.getLeadingWhitespaceCount(t);
|
|
144
|
+
return t.slice(0, r);
|
|
145
|
+
}
|
|
146
|
+
getTrailingWhitespace(t) {
|
|
147
|
+
let r = this.getTrailingWhitespaceCount(t);
|
|
148
|
+
return t.slice(t.length - r);
|
|
149
|
+
}
|
|
150
|
+
hasLeadingWhitespace(t) {
|
|
151
|
+
return this.#t.has(t.charAt(0));
|
|
152
|
+
}
|
|
153
|
+
hasTrailingWhitespace(t) {
|
|
154
|
+
return this.#t.has(V(0, t, -1));
|
|
155
|
+
}
|
|
156
|
+
trimStart(t) {
|
|
157
|
+
let r = this.getLeadingWhitespaceCount(t);
|
|
158
|
+
return t.slice(r);
|
|
159
|
+
}
|
|
160
|
+
trimEnd(t) {
|
|
161
|
+
let r = this.getTrailingWhitespaceCount(t);
|
|
162
|
+
return t.slice(0, t.length - r);
|
|
163
|
+
}
|
|
164
|
+
trim(t) {
|
|
165
|
+
return this.trimEnd(this.trimStart(t));
|
|
166
|
+
}
|
|
167
|
+
split(t, r = false) {
|
|
168
|
+
let n = `[${qe([...this.#t].join(""))}]+`, s = new RegExp(r ? `(${n})` : n, "u");
|
|
169
|
+
return t.split(s);
|
|
170
|
+
}
|
|
171
|
+
hasWhitespaceCharacter(t) {
|
|
172
|
+
let r = this.#t;
|
|
173
|
+
return Array.prototype.some.call(t, (n) => r.has(n));
|
|
174
|
+
}
|
|
175
|
+
hasNonWhitespaceCharacter(t) {
|
|
176
|
+
let r = this.#t;
|
|
177
|
+
return Array.prototype.some.call(t, (n) => !r.has(n));
|
|
178
|
+
}
|
|
179
|
+
isWhitespaceOnly(t) {
|
|
180
|
+
let r = this.#t;
|
|
181
|
+
return Array.prototype.every.call(t, (n) => r.has(n));
|
|
182
|
+
}
|
|
183
|
+
#e(t) {
|
|
184
|
+
let r = Number.POSITIVE_INFINITY;
|
|
185
|
+
for (let n of t.split(`
|
|
186
|
+
`)) {
|
|
187
|
+
if (n.length === 0) continue;
|
|
188
|
+
let s = this.getLeadingWhitespaceCount(n);
|
|
189
|
+
if (s === 0) return 0;
|
|
190
|
+
n.length !== s && s < r && (r = s);
|
|
191
|
+
}
|
|
192
|
+
return r === Number.POSITIVE_INFINITY ? 0 : r;
|
|
193
|
+
}
|
|
194
|
+
dedentString(t) {
|
|
195
|
+
let r = this.#e(t);
|
|
196
|
+
return r === 0 ? t : t.split(`
|
|
197
|
+
`).map((n) => n.slice(r)).join(`
|
|
198
|
+
`);
|
|
199
|
+
}
|
|
200
|
+
}, Or = Ve;
|
|
201
|
+
var Xs = [" ", `
|
|
202
|
+
`, "\f", "\r", " "], Zs = new Or(Xs), R = Zs;
|
|
203
|
+
function tn(e5) {
|
|
204
|
+
return Array.isArray(e5) && e5.length > 0;
|
|
205
|
+
}
|
|
206
|
+
var It = tn;
|
|
207
|
+
var Fe = class extends Error {
|
|
208
|
+
name = "UnexpectedNodeError";
|
|
209
|
+
constructor(t, r, n = "type") {
|
|
210
|
+
super(`Unexpected ${r} node ${n}: ${JSON.stringify(t[n])}.`), this.node = t;
|
|
211
|
+
}
|
|
212
|
+
}, Br = Fe;
|
|
213
|
+
function Ir(e5, t, r) {
|
|
214
|
+
if (e5.type === "TextNode") {
|
|
215
|
+
let n = e5.chars.trim();
|
|
216
|
+
if (!n) return null;
|
|
217
|
+
r.tag === "style" && r.children.length === 1 && r.children[0] === e5 ? t.chars = "" : t.chars = R.split(n).join(" ");
|
|
218
|
+
}
|
|
219
|
+
e5.type === "ElementNode" && (delete t.startTag, delete t.openTag, delete t.parts, delete t.endTag, delete t.closeTag, delete t.nameNode, delete t.body, delete t.blockParamNodes, delete t.params, delete t.path), e5.type === "Block" && (delete t.blockParamNodes, delete t.params), e5.type === "AttrNode" && e5.name.toLowerCase() === "class" && delete t.value, e5.type === "PathExpression" && (t.head = e5.head.original);
|
|
220
|
+
}
|
|
221
|
+
Ir.ignoredProperties = /* @__PURE__ */ new Set(["loc", "selfClosing"]);
|
|
222
|
+
var Rr = Ir;
|
|
223
|
+
function en(e5) {
|
|
224
|
+
let { node: t } = e5;
|
|
225
|
+
if (t.type !== "TextNode") return;
|
|
226
|
+
let { parent: r } = e5;
|
|
227
|
+
if (!(r.type === "ElementNode" && r.tag === "style" && r.children.length === 1 && r.children[0] === t)) return;
|
|
228
|
+
let n = r.attributes.find((s) => s.type === "AttrNode" && s.name === "lang");
|
|
229
|
+
if (!(n && !(n.value.type === "TextNode" && (n.value.chars === "" || n.value.chars === "css")))) return async (s) => {
|
|
230
|
+
let i = t.chars;
|
|
231
|
+
return i.trim() ? await s(i, { parser: "css" }) : "";
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
var qr = en;
|
|
235
|
+
var Rt = null;
|
|
236
|
+
function qt(e5) {
|
|
237
|
+
if (Rt !== null && typeof Rt.property) {
|
|
238
|
+
let t = Rt;
|
|
239
|
+
return Rt = qt.prototype = null, t;
|
|
240
|
+
}
|
|
241
|
+
return Rt = qt.prototype = e5 ?? /* @__PURE__ */ Object.create(null), new qt();
|
|
242
|
+
}
|
|
243
|
+
var rn = 10;
|
|
244
|
+
for (let e5 = 0; e5 <= rn; e5++) qt();
|
|
245
|
+
function He(e5) {
|
|
246
|
+
return qt(e5);
|
|
247
|
+
}
|
|
248
|
+
function sn(e5, t = "type") {
|
|
249
|
+
He(e5);
|
|
250
|
+
function r(n) {
|
|
251
|
+
let s = n[t], i = e5[s];
|
|
252
|
+
if (!Array.isArray(i)) throw Object.assign(new Error(`Missing visitor keys for '${s}'.`), { node: n });
|
|
253
|
+
return i;
|
|
254
|
+
}
|
|
255
|
+
return r;
|
|
256
|
+
}
|
|
257
|
+
var Vr = sn;
|
|
258
|
+
var Fr = { 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"] };
|
|
259
|
+
var nn = Vr(Fr), Hr = nn;
|
|
260
|
+
var ht = (e5) => e5.loc.start.offset, Vt = (e5) => e5.loc.end.offset;
|
|
261
|
+
var Ur = /* @__PURE__ */ new Set(["area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr"]);
|
|
262
|
+
function zr(e5) {
|
|
263
|
+
return e5.toUpperCase() === e5;
|
|
264
|
+
}
|
|
265
|
+
function an(e5) {
|
|
266
|
+
return e5.type === "ElementNode" && typeof e5.tag == "string" && !e5.tag.startsWith(":") && (zr(e5.tag[0]) || e5.tag.includes("."));
|
|
267
|
+
}
|
|
268
|
+
function on(e5) {
|
|
269
|
+
return Ur.has(e5.toLowerCase()) && !zr(e5[0]);
|
|
270
|
+
}
|
|
271
|
+
function Ue(e5) {
|
|
272
|
+
return e5.selfClosing === true || on(e5.tag) || an(e5) && e5.children.every((t) => le(t));
|
|
273
|
+
}
|
|
274
|
+
function le(e5) {
|
|
275
|
+
return e5.type === "TextNode" && !/\S/u.test(e5.chars);
|
|
276
|
+
}
|
|
277
|
+
function Mr(e5) {
|
|
278
|
+
return e5?.type === "MustacheCommentStatement" && typeof e5.value == "string" && e5.value.trim() === "prettier-ignore";
|
|
279
|
+
}
|
|
280
|
+
function Yr(e5) {
|
|
281
|
+
return Mr(e5.node) || e5.isInArray && (e5.key === "children" || e5.key === "body" || e5.key === "parts") && Mr(e5.siblings[e5.index - 2]);
|
|
282
|
+
}
|
|
283
|
+
var $r = 2;
|
|
284
|
+
function ln(e5, t, r) {
|
|
285
|
+
let { node: n } = e5;
|
|
286
|
+
switch (n.type) {
|
|
287
|
+
case "Block":
|
|
288
|
+
case "Program":
|
|
289
|
+
case "Template":
|
|
290
|
+
return B(e5.map(r, "body"));
|
|
291
|
+
case "ElementNode": {
|
|
292
|
+
let s = t.htmlWhitespaceSensitivity !== "ignore", i = [!s && e5.previous?.type === "ElementNode" ? H : "", B([un(e5, r)])];
|
|
293
|
+
if (Ue(n)) return [i];
|
|
294
|
+
let a = ["</", n.tag, ">"], o = n.tag === "style";
|
|
295
|
+
if (n.children.length === 0 || (!s || o) && n.children.every((h) => le(h))) return [i, a];
|
|
296
|
+
let c = e5.map(r, "children");
|
|
297
|
+
return o || !s ? [i, F([H, ...c]), H, a] : [i, F(B(c)), a];
|
|
298
|
+
}
|
|
299
|
+
case "BlockStatement":
|
|
300
|
+
return ts(e5) ? [bn(e5, r), Wr(e5, t, r), jr(e5, t, r)] : [mn(e5, r), B([Wr(e5, t, r), jr(e5, t, r), yn(e5, t, r)])];
|
|
301
|
+
case "ElementModifierStatement":
|
|
302
|
+
return B(["{{", Jr(e5, r), "}}"]);
|
|
303
|
+
case "MustacheStatement":
|
|
304
|
+
return B([ce(n), Jr(e5, r), ue(n)]);
|
|
305
|
+
case "SubExpression":
|
|
306
|
+
return B(["(", Tn(e5, r), H, ")"]);
|
|
307
|
+
case "AttrNode": {
|
|
308
|
+
let { name: s, value: i } = n, a = i.type === "TextNode";
|
|
309
|
+
if (a && i.chars === "" && ht(i) === Vt(i)) return s;
|
|
310
|
+
let c = a ? oe(i.chars, t.singleQuote) : i.type === "ConcatStatement" ? oe(i.parts.map((f) => f.type === "TextNode" ? f.chars : "").join(""), t.singleQuote) : "", h = r("value");
|
|
311
|
+
return [s, "=", c, s === "class" && c ? B(F(h)) : h, c];
|
|
312
|
+
}
|
|
313
|
+
case "ConcatStatement":
|
|
314
|
+
return e5.map(r, "parts");
|
|
315
|
+
case "Hash":
|
|
316
|
+
return ct(N, e5.map(r, "pairs"));
|
|
317
|
+
case "HashPair":
|
|
318
|
+
return [n.key, "=", r("value")];
|
|
319
|
+
case "TextNode": {
|
|
320
|
+
let s = n.chars, { parent: i } = e5;
|
|
321
|
+
if (i.type === "ElementNode") {
|
|
322
|
+
if (i.tag === "pre") return ie(s);
|
|
323
|
+
if (i.tag === "style") return s = St(0, s, /^\n+/gu, ""), s = R.trimEnd(s), s = R.dedentString(s), ie(s, ut);
|
|
324
|
+
}
|
|
325
|
+
s = St(0, s, "{{", "\\{{");
|
|
326
|
+
let a = Sn(e5);
|
|
327
|
+
if (a) {
|
|
328
|
+
if (a === "class") {
|
|
329
|
+
let D = s.trim().split(/\s+/u).join(" "), I = false, O = false;
|
|
330
|
+
return e5.parent.type === "ConcatStatement" && (e5.previous?.type === "MustacheStatement" && /^\s/u.test(s) && (I = true), e5.next?.type === "MustacheStatement" && /\s$/u.test(s) && D !== "" && (O = true)), [I ? N : "", D, O ? N : ""];
|
|
331
|
+
}
|
|
332
|
+
return ie(s);
|
|
333
|
+
}
|
|
334
|
+
let o = R.isWhitespaceOnly(s), { isFirst: c, isLast: h } = e5;
|
|
335
|
+
if (t.htmlWhitespaceSensitivity !== "ignore") {
|
|
336
|
+
let D = h && e5.parent.type === "Template", I = c && e5.parent.type === "Template";
|
|
337
|
+
if (o) {
|
|
338
|
+
if (I || D) return "";
|
|
339
|
+
let C = [N], $ = Nt(s);
|
|
340
|
+
return $ && (C = Ft($)), h && (C = C.map((W) => Oe(W))), C;
|
|
341
|
+
}
|
|
342
|
+
let O = R.getLeadingWhitespace(s), z = [];
|
|
343
|
+
if (O) {
|
|
344
|
+
z = [N];
|
|
345
|
+
let C = Nt(O);
|
|
346
|
+
C && (z = Ft(C)), s = s.slice(O.length);
|
|
347
|
+
}
|
|
348
|
+
let P = R.getTrailingWhitespace(s), U = [];
|
|
349
|
+
if (P) {
|
|
350
|
+
if (!D) {
|
|
351
|
+
U = [N];
|
|
352
|
+
let C = Nt(P);
|
|
353
|
+
C && (U = Ft(C)), h && (U = U.map(($) => Oe($)));
|
|
354
|
+
}
|
|
355
|
+
s = s.slice(0, -P.length);
|
|
356
|
+
}
|
|
357
|
+
return [...z, Ie(Qr(s)), ...U];
|
|
358
|
+
}
|
|
359
|
+
let f = Nt(s), p = kn(s), g = En(s);
|
|
360
|
+
if ((c || h) && o && (e5.parent.type === "Block" || e5.parent.type === "ElementNode" || e5.parent.type === "Template")) return "";
|
|
361
|
+
o && f ? (p = Math.min(f, $r), g = 0) : ((e5.next?.type === "BlockStatement" || e5.next?.type === "ElementNode") && (g = Math.max(g, 1)), (e5.previous?.type === "BlockStatement" || e5.previous?.type === "ElementNode") && (p = Math.max(p, 1)));
|
|
362
|
+
let E = "", T = "";
|
|
363
|
+
return g === 0 && e5.next?.type === "MustacheStatement" && (T = " "), p === 0 && e5.previous?.type === "MustacheStatement" && (E = " "), c && (p = 0, E = ""), h && (g = 0, T = ""), R.hasLeadingWhitespace(s) && (s = E + R.trimStart(s)), R.hasTrailingWhitespace(s) && (s = R.trimEnd(s) + T), [...Ft(p), Ie(Qr(s)), ...Ft(g)];
|
|
364
|
+
}
|
|
365
|
+
case "MustacheCommentStatement": {
|
|
366
|
+
let s = ht(n), i = Vt(n), a = t.originalText.charAt(s + 2) === "~", o = t.originalText.charAt(i - 3) === "~", c = n.value.includes("}}") ? "--" : "";
|
|
367
|
+
return ["{{", a ? "~" : "", "!", c, n.value, c, o ? "~" : "", "}}"];
|
|
368
|
+
}
|
|
369
|
+
case "PathExpression":
|
|
370
|
+
return Pn(n);
|
|
371
|
+
case "BooleanLiteral":
|
|
372
|
+
return String(n.value);
|
|
373
|
+
case "CommentStatement":
|
|
374
|
+
return ["<!--", n.value, "-->"];
|
|
375
|
+
case "StringLiteral":
|
|
376
|
+
return vn(e5, t);
|
|
377
|
+
case "NumberLiteral":
|
|
378
|
+
return String(n.value);
|
|
379
|
+
case "UndefinedLiteral":
|
|
380
|
+
return "undefined";
|
|
381
|
+
case "NullLiteral":
|
|
382
|
+
return "null";
|
|
383
|
+
case "FrontMatter":
|
|
384
|
+
case "AtHead":
|
|
385
|
+
case "VarHead":
|
|
386
|
+
case "ThisHead":
|
|
387
|
+
default:
|
|
388
|
+
throw new Br(n, "Handlebars");
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
function cn(e5, t) {
|
|
392
|
+
return ht(e5) - ht(t);
|
|
393
|
+
}
|
|
394
|
+
function un(e5, t) {
|
|
395
|
+
let { node: r } = e5, n = ["attributes", "modifiers", "comments"].filter((i) => It(r[i])), s = n.flatMap((i) => r[i]).sort(cn);
|
|
396
|
+
for (let i of n) e5.each(({ node: a }) => {
|
|
397
|
+
let o = s.indexOf(a);
|
|
398
|
+
s.splice(o, 1, [N, t()]);
|
|
399
|
+
}, i);
|
|
400
|
+
return It(r.blockParams) && s.push(N, ze(r)), ["<", r.tag, F(s), hn(r)];
|
|
401
|
+
}
|
|
402
|
+
function hn(e5) {
|
|
403
|
+
return Ue(e5) ? Re([H, "/>"], [" />", H]) : Re([H, ">"], ">");
|
|
404
|
+
}
|
|
405
|
+
function ce(e5) {
|
|
406
|
+
let t = e5.trusting ? "{{{" : "{{", r = e5.strip?.open ? "~" : "";
|
|
407
|
+
return [t, r];
|
|
408
|
+
}
|
|
409
|
+
function ue(e5) {
|
|
410
|
+
let t = e5.trusting ? "}}}" : "}}";
|
|
411
|
+
return [e5.strip?.close ? "~" : "", t];
|
|
412
|
+
}
|
|
413
|
+
function pn(e5) {
|
|
414
|
+
let t = ce(e5), r = e5.openStrip.open ? "~" : "";
|
|
415
|
+
return [t, r, "#"];
|
|
416
|
+
}
|
|
417
|
+
function fn(e5) {
|
|
418
|
+
let t = ue(e5);
|
|
419
|
+
return [e5.openStrip.close ? "~" : "", t];
|
|
420
|
+
}
|
|
421
|
+
function Gr(e5) {
|
|
422
|
+
let t = ce(e5), r = e5.closeStrip.open ? "~" : "";
|
|
423
|
+
return [t, r, "/"];
|
|
424
|
+
}
|
|
425
|
+
function Kr(e5) {
|
|
426
|
+
let t = ue(e5);
|
|
427
|
+
return [e5.closeStrip.close ? "~" : "", t];
|
|
428
|
+
}
|
|
429
|
+
function Xr(e5) {
|
|
430
|
+
let t = ce(e5), r = e5.inverseStrip.open ? "~" : "";
|
|
431
|
+
return [t, r];
|
|
432
|
+
}
|
|
433
|
+
function Zr(e5) {
|
|
434
|
+
let t = ue(e5);
|
|
435
|
+
return [e5.inverseStrip.close ? "~" : "", t];
|
|
436
|
+
}
|
|
437
|
+
function mn(e5, t) {
|
|
438
|
+
let { node: r } = e5, n = [], s = he(e5, t);
|
|
439
|
+
return s && n.push(B(s)), It(r.program.blockParams) && n.push(ze(r.program)), B([pn(r), Me(e5, t), n.length > 0 ? F([N, ct(N, n)]) : "", H, fn(r)]);
|
|
440
|
+
}
|
|
441
|
+
function dn(e5, t) {
|
|
442
|
+
return [t.htmlWhitespaceSensitivity === "ignore" ? ut : "", Xr(e5), "else", Zr(e5)];
|
|
443
|
+
}
|
|
444
|
+
var gn = ({ path: e5 }, { path: t }) => [e5, t].every((r) => r.type === "PathExpression" && r.head.type === "VarHead") && e5.head.name === t.head.name;
|
|
445
|
+
function ts(e5) {
|
|
446
|
+
if (!e5.match((r) => r.type === "BlockStatement", (r, n) => n === "body" && r.type === "Block" && r.body.length === 1, (r, n) => n === "inverse" && r.type === "BlockStatement")) return false;
|
|
447
|
+
let { node: t } = e5;
|
|
448
|
+
return t.path.type === "PathExpression" && t.path.head.type === "VarHead" && t.path.head.name === "if" || gn(t, e5.grandparent);
|
|
449
|
+
}
|
|
450
|
+
function bn(e5, t) {
|
|
451
|
+
let { node: r, grandparent: n } = e5;
|
|
452
|
+
return B([Xr(n), ["else", " ", n.inverse.body[0].path.head.name], F([N, B(he(e5, t)), ...It(r.program.blockParams) ? [N, ze(r.program)] : []]), H, Zr(n)]);
|
|
453
|
+
}
|
|
454
|
+
function yn(e5, t, r) {
|
|
455
|
+
let { node: n } = e5;
|
|
456
|
+
return t.htmlWhitespaceSensitivity === "ignore" ? [es(n) ? H : ut, Gr(n), r("path"), Kr(n)] : [Gr(n), r("path"), Kr(n)];
|
|
457
|
+
}
|
|
458
|
+
function es(e5) {
|
|
459
|
+
return e5.type === "BlockStatement" && e5.program.body.every((t) => le(t));
|
|
460
|
+
}
|
|
461
|
+
function Wr(e5, t, r) {
|
|
462
|
+
let { node: n } = e5;
|
|
463
|
+
if (es(n)) return "";
|
|
464
|
+
let s = r("program");
|
|
465
|
+
return t.htmlWhitespaceSensitivity === "ignore" ? F([ut, s]) : F(s);
|
|
466
|
+
}
|
|
467
|
+
function jr(e5, t, r) {
|
|
468
|
+
let { node: n } = e5;
|
|
469
|
+
if (!n.inverse) return "";
|
|
470
|
+
let s = r("inverse"), i = t.htmlWhitespaceSensitivity === "ignore" ? [ut, s] : s;
|
|
471
|
+
return e5.call(ts, "inverse", "body", 0) ? i : [dn(n, t), F(i)];
|
|
472
|
+
}
|
|
473
|
+
function Qr(e5) {
|
|
474
|
+
return ct(N, R.split(e5));
|
|
475
|
+
}
|
|
476
|
+
function Sn(e5) {
|
|
477
|
+
for (let t = 0; t < 2; t++) {
|
|
478
|
+
let r = e5.getParentNode(t);
|
|
479
|
+
if (r?.type === "AttrNode") return r.name.toLowerCase();
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
function Nt(e5) {
|
|
483
|
+
return e5 = typeof e5 == "string" ? e5 : "", e5.split(`
|
|
484
|
+
`).length - 1;
|
|
485
|
+
}
|
|
486
|
+
function kn(e5) {
|
|
487
|
+
e5 = typeof e5 == "string" ? e5 : "";
|
|
488
|
+
let t = (e5.match(/^([^\S\n\r]*[\n\r])+/gu) || [])[0] || "";
|
|
489
|
+
return Nt(t);
|
|
490
|
+
}
|
|
491
|
+
function En(e5) {
|
|
492
|
+
e5 = typeof e5 == "string" ? e5 : "";
|
|
493
|
+
let t = (e5.match(/([\n\r][^\S\n\r]*)+$/gu) || [])[0] || "";
|
|
494
|
+
return Nt(t);
|
|
495
|
+
}
|
|
496
|
+
function Ft(e5 = 0) {
|
|
497
|
+
return Array.from({ length: Math.min(e5, $r) }).fill(ut);
|
|
498
|
+
}
|
|
499
|
+
function vn(e5, t) {
|
|
500
|
+
let { node: { value: r } } = e5, n = oe(r, wn(e5) ? !t.singleQuote : t.singleQuote);
|
|
501
|
+
return [n, St(0, r, n, `\\${n}`), n];
|
|
502
|
+
}
|
|
503
|
+
function wn(e5) {
|
|
504
|
+
let { ancestors: t } = e5, r = t.findIndex((n) => n.type !== "SubExpression");
|
|
505
|
+
return r !== -1 && t[r + 1].type === "ConcatStatement" && t[r + 2].type === "AttrNode";
|
|
506
|
+
}
|
|
507
|
+
function Tn(e5, t) {
|
|
508
|
+
let r = Me(e5, t), n = he(e5, t);
|
|
509
|
+
return n ? F([r, N, B(n)]) : r;
|
|
510
|
+
}
|
|
511
|
+
function Jr(e5, t) {
|
|
512
|
+
let r = Me(e5, t), n = he(e5, t);
|
|
513
|
+
return n ? [F([r, N, n]), H] : r;
|
|
514
|
+
}
|
|
515
|
+
function Me(e5, t) {
|
|
516
|
+
return t("path");
|
|
517
|
+
}
|
|
518
|
+
function he(e5, t) {
|
|
519
|
+
let { node: r } = e5, n = [];
|
|
520
|
+
return r.params.length > 0 && n.push(...e5.map(t, "params")), r.hash?.pairs.length > 0 && n.push(t("hash")), n.length === 0 ? "" : ct(N, n);
|
|
521
|
+
}
|
|
522
|
+
function ze(e5) {
|
|
523
|
+
return ["as |", e5.blockParams.join(" "), "|"];
|
|
524
|
+
}
|
|
525
|
+
var xn = new Set("!\"#%&'()*+,./;<=>@[\\]^`{|}~"), Nn = /* @__PURE__ */ new Set(["true", "false", "null", "undefined"]), An = (e5, t) => t === 0 && e5.startsWith("@") ? false : t !== 0 && Nn.has(e5) || /\s/u.test(e5) || /^\d/u.test(e5) || Array.prototype.some.call(e5, (r) => xn.has(r));
|
|
526
|
+
function Pn(e5) {
|
|
527
|
+
return e5.tail.length === 0 && e5.original.includes("/") ? e5.original : [e5.head.original, ...e5.tail].map((r, n) => An(r, n) ? `[${r}]` : r).join(".");
|
|
528
|
+
}
|
|
529
|
+
var Cn = { features: { experimental_frontMatterSupport: { massageAstNode: true, embed: true, print: true } }, print: ln, massageAstNode: Rr, hasPrettierIgnore: Yr, getVisitorKeys: Hr, embed: qr }, rs = Cn;
|
|
530
|
+
var ss = [{ name: "Handlebars", type: "markup", aceMode: "handlebars", extensions: [".handlebars", ".hbs"], tmScope: "text.html.handlebars", aliases: ["hbs", "htmlbars"], parsers: ["glimmer"], vscodeLanguageIds: ["handlebars"], linguistLanguageId: 155 }];
|
|
531
|
+
var br = {};
|
|
532
|
+
_e(br, { glimmer: () => vi });
|
|
533
|
+
var Ye = Object.assign;
|
|
534
|
+
var ns = console;
|
|
535
|
+
function as(e5, t = "unexpected unreachable branch") {
|
|
536
|
+
throw ns.log("unreachable", e5), ns.log(`${t} :: ${JSON.stringify(e5)} (${e5})`), new Error("code reached unreachable");
|
|
537
|
+
}
|
|
538
|
+
var _n = function() {
|
|
539
|
+
var e5 = function(X, b, S, y) {
|
|
540
|
+
for (S = S || {}, y = X.length; y--; S[X[y]] = b) ;
|
|
541
|
+
return S;
|
|
542
|
+
}, t = [2, 52], r = [1, 20], n = [5, 14, 15, 19, 29, 34, 39, 44, 47, 48, 53, 57, 61], s = [1, 44], i = [1, 40], a = [1, 43], o = [1, 33], c = [1, 34], h = [1, 35], f = [1, 36], p = [1, 37], g = [1, 42], E = [1, 46], T = [14, 15, 19, 29, 34, 39, 44, 47, 48, 53, 57, 61], D = [14, 15, 19, 29, 34, 44, 47, 48, 53, 57, 61], I = [15, 18], O = [14, 15, 19, 29, 34, 47, 48, 53, 57, 61], z = [33, 67, 73, 75, 84, 85, 86, 87, 88, 89], P = [23, 33, 56, 67, 68, 73, 75, 77, 79, 84, 85, 86, 87, 88, 89], U = [1, 62], C = [1, 63], $ = [23, 33, 56, 68, 73, 79], W = [23, 33, 56, 67, 68, 73, 75, 77, 79, 84, 85, 86, 87, 88, 89, 92, 93], yr = [2, 51], Sr = [1, 64], kr = [67, 73, 75, 77, 84, 85, 86, 87, 88, 89], Er = [56, 67, 73, 75, 84, 85, 86, 87, 88, 89], vr = [1, 75], Ee = [1, 76], ve = [1, 83], dt = [33, 67, 73, 75, 79, 84, 85, 86, 87, 88, 89], wr = [23, 67, 73, 75, 84, 85, 86, 87, 88, 89], Tr = [67, 68, 73, 75, 84, 85, 86, 87, 88, 89], gt = [33, 79], we = [1, 134], xr = [73, 81], Te = { trace: function() {
|
|
543
|
+
}, yy: {}, symbols_: { error: 2, root: 3, program: 4, EOF: 5, program_repetition0: 6, statement: 7, mustache: 8, block: 9, rawBlock: 10, partial: 11, partialBlock: 12, content: 13, COMMENT: 14, CONTENT: 15, openRawBlock: 16, rawBlock_repetition0: 17, END_RAW_BLOCK: 18, OPEN_RAW_BLOCK: 19, helperName: 20, openRawBlock_repetition0: 21, openRawBlock_option0: 22, CLOSE_RAW_BLOCK: 23, openBlock: 24, block_option0: 25, closeBlock: 26, openInverse: 27, block_option1: 28, OPEN_BLOCK: 29, openBlock_repetition0: 30, openBlock_option0: 31, openBlock_option1: 32, CLOSE: 33, OPEN_INVERSE: 34, openInverse_repetition0: 35, openInverse_option0: 36, openInverse_option1: 37, openInverseChain: 38, OPEN_INVERSE_CHAIN: 39, openInverseChain_repetition0: 40, openInverseChain_option0: 41, openInverseChain_option1: 42, inverseAndProgram: 43, INVERSE: 44, inverseChain: 45, inverseChain_option0: 46, OPEN_ENDBLOCK: 47, OPEN: 48, hash: 49, expr: 50, mustache_repetition0: 51, mustache_option0: 52, OPEN_UNESCAPED: 53, mustache_repetition1: 54, mustache_option1: 55, CLOSE_UNESCAPED: 56, OPEN_PARTIAL: 57, partial_repetition0: 58, partial_option0: 59, openPartialBlock: 60, OPEN_PARTIAL_BLOCK: 61, openPartialBlock_repetition0: 62, openPartialBlock_option0: 63, exprHead: 64, arrayLiteral: 65, sexpr: 66, OPEN_SEXPR: 67, CLOSE_SEXPR: 68, sexpr_repetition0: 69, sexpr_option0: 70, hash_repetition_plus0: 71, hashSegment: 72, ID: 73, EQUALS: 74, OPEN_ARRAY: 75, arrayLiteral_repetition0: 76, CLOSE_ARRAY: 77, blockParams: 78, OPEN_BLOCK_PARAMS: 79, blockParams_repetition_plus0: 80, CLOSE_BLOCK_PARAMS: 81, path: 82, dataName: 83, STRING: 84, NUMBER: 85, BOOLEAN: 86, UNDEFINED: 87, NULL: 88, DATA: 89, pathSegments: 90, sep: 91, SEP: 92, PRIVATE_SEP: 93, $accept: 0, $end: 1 }, terminals_: { 2: "error", 5: "EOF", 14: "COMMENT", 15: "CONTENT", 18: "END_RAW_BLOCK", 19: "OPEN_RAW_BLOCK", 23: "CLOSE_RAW_BLOCK", 29: "OPEN_BLOCK", 33: "CLOSE", 34: "OPEN_INVERSE", 39: "OPEN_INVERSE_CHAIN", 44: "INVERSE", 47: "OPEN_ENDBLOCK", 48: "OPEN", 53: "OPEN_UNESCAPED", 56: "CLOSE_UNESCAPED", 57: "OPEN_PARTIAL", 61: "OPEN_PARTIAL_BLOCK", 67: "OPEN_SEXPR", 68: "CLOSE_SEXPR", 73: "ID", 74: "EQUALS", 75: "OPEN_ARRAY", 77: "CLOSE_ARRAY", 79: "OPEN_BLOCK_PARAMS", 81: "CLOSE_BLOCK_PARAMS", 84: "STRING", 85: "NUMBER", 86: "BOOLEAN", 87: "UNDEFINED", 88: "NULL", 89: "DATA", 92: "SEP", 93: "PRIVATE_SEP" }, productions_: [0, [3, 2], [4, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [13, 1], [10, 3], [16, 5], [9, 4], [9, 4], [24, 6], [27, 6], [38, 6], [43, 2], [45, 3], [45, 1], [26, 3], [8, 3], [8, 5], [8, 5], [11, 5], [12, 3], [60, 5], [50, 1], [50, 1], [64, 1], [64, 1], [66, 3], [66, 5], [49, 1], [72, 3], [65, 3], [78, 3], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [83, 2], [91, 1], [91, 1], [82, 3], [82, 1], [90, 3], [90, 1], [6, 0], [6, 2], [17, 0], [17, 2], [21, 0], [21, 2], [22, 0], [22, 1], [25, 0], [25, 1], [28, 0], [28, 1], [30, 0], [30, 2], [31, 0], [31, 1], [32, 0], [32, 1], [35, 0], [35, 2], [36, 0], [36, 1], [37, 0], [37, 1], [40, 0], [40, 2], [41, 0], [41, 1], [42, 0], [42, 1], [46, 0], [46, 1], [51, 0], [51, 2], [52, 0], [52, 1], [54, 0], [54, 2], [55, 0], [55, 1], [58, 0], [58, 2], [59, 0], [59, 1], [62, 0], [62, 2], [63, 0], [63, 1], [69, 0], [69, 2], [70, 0], [70, 1], [71, 1], [71, 2], [76, 0], [76, 2], [80, 1], [80, 2]], performAction: function(b, S, y, m, w, l, bt) {
|
|
544
|
+
var u = l.length - 1;
|
|
545
|
+
switch (w) {
|
|
546
|
+
case 1:
|
|
547
|
+
return l[u - 1];
|
|
548
|
+
case 2:
|
|
549
|
+
this.$ = m.prepareProgram(l[u]);
|
|
550
|
+
break;
|
|
551
|
+
case 3:
|
|
552
|
+
case 4:
|
|
553
|
+
case 5:
|
|
554
|
+
case 6:
|
|
555
|
+
case 7:
|
|
556
|
+
case 8:
|
|
557
|
+
case 20:
|
|
558
|
+
case 28:
|
|
559
|
+
case 29:
|
|
560
|
+
case 30:
|
|
561
|
+
case 31:
|
|
562
|
+
case 38:
|
|
563
|
+
case 39:
|
|
564
|
+
case 46:
|
|
565
|
+
case 47:
|
|
566
|
+
this.$ = l[u];
|
|
567
|
+
break;
|
|
568
|
+
case 9:
|
|
569
|
+
this.$ = { type: "CommentStatement", value: m.stripComment(l[u]), strip: m.stripFlags(l[u], l[u]), loc: m.locInfo(this._$) };
|
|
570
|
+
break;
|
|
571
|
+
case 10:
|
|
572
|
+
this.$ = { type: "ContentStatement", original: l[u], value: l[u], loc: m.locInfo(this._$) };
|
|
573
|
+
break;
|
|
574
|
+
case 11:
|
|
575
|
+
this.$ = m.prepareRawBlock(l[u - 2], l[u - 1], l[u], this._$);
|
|
576
|
+
break;
|
|
577
|
+
case 12:
|
|
578
|
+
this.$ = { path: l[u - 3], params: l[u - 2], hash: l[u - 1] };
|
|
579
|
+
break;
|
|
580
|
+
case 13:
|
|
581
|
+
this.$ = m.prepareBlock(l[u - 3], l[u - 2], l[u - 1], l[u], false, this._$);
|
|
582
|
+
break;
|
|
583
|
+
case 14:
|
|
584
|
+
this.$ = m.prepareBlock(l[u - 3], l[u - 2], l[u - 1], l[u], true, this._$);
|
|
585
|
+
break;
|
|
586
|
+
case 15:
|
|
587
|
+
this.$ = { open: l[u - 5], path: l[u - 4], params: l[u - 3], hash: l[u - 2], blockParams: l[u - 1], strip: m.stripFlags(l[u - 5], l[u]) };
|
|
588
|
+
break;
|
|
589
|
+
case 16:
|
|
590
|
+
case 17:
|
|
591
|
+
this.$ = { path: l[u - 4], params: l[u - 3], hash: l[u - 2], blockParams: l[u - 1], strip: m.stripFlags(l[u - 5], l[u]) };
|
|
592
|
+
break;
|
|
593
|
+
case 18:
|
|
594
|
+
this.$ = { strip: m.stripFlags(l[u - 1], l[u - 1]), program: l[u] };
|
|
595
|
+
break;
|
|
596
|
+
case 19:
|
|
597
|
+
var Z = m.prepareBlock(l[u - 2], l[u - 1], l[u], l[u], false, this._$), _t = m.prepareProgram([Z], l[u - 1].loc);
|
|
598
|
+
_t.chained = true, this.$ = { strip: l[u - 2].strip, program: _t, chain: true };
|
|
599
|
+
break;
|
|
600
|
+
case 21:
|
|
601
|
+
this.$ = { path: l[u - 1], strip: m.stripFlags(l[u - 2], l[u]) };
|
|
602
|
+
break;
|
|
603
|
+
case 22:
|
|
604
|
+
this.$ = m.prepareMustache(m.syntax.hash(l[u - 1], m.locInfo(this._$), { yy: m, syntax: "expr" }), [], void 0, l[u - 2], m.stripFlags(l[u - 2], l[u]), this._$);
|
|
605
|
+
break;
|
|
606
|
+
case 23:
|
|
607
|
+
case 24:
|
|
608
|
+
this.$ = m.prepareMustache(l[u - 3], l[u - 2], l[u - 1], l[u - 4], m.stripFlags(l[u - 4], l[u]), this._$);
|
|
609
|
+
break;
|
|
610
|
+
case 25:
|
|
611
|
+
this.$ = { type: "PartialStatement", name: l[u - 3], params: l[u - 2], hash: l[u - 1], indent: "", strip: m.stripFlags(l[u - 4], l[u]), loc: m.locInfo(this._$) };
|
|
612
|
+
break;
|
|
613
|
+
case 26:
|
|
614
|
+
this.$ = m.preparePartialBlock(l[u - 2], l[u - 1], l[u], this._$);
|
|
615
|
+
break;
|
|
616
|
+
case 27:
|
|
617
|
+
this.$ = { path: l[u - 3], params: l[u - 2], hash: l[u - 1], strip: m.stripFlags(l[u - 4], l[u]) };
|
|
618
|
+
break;
|
|
619
|
+
case 32:
|
|
620
|
+
this.$ = m.syntax.hash(l[u - 1], m.locInfo(this._$), { yy: m, syntax: "expr" });
|
|
621
|
+
break;
|
|
622
|
+
case 33:
|
|
623
|
+
this.$ = { type: "SubExpression", path: l[u - 3], params: l[u - 2], hash: l[u - 1], loc: m.locInfo(this._$) };
|
|
624
|
+
break;
|
|
625
|
+
case 34:
|
|
626
|
+
this.$ = { type: "Hash", pairs: l[u], loc: m.locInfo(this._$) };
|
|
627
|
+
break;
|
|
628
|
+
case 35:
|
|
629
|
+
this.$ = { type: "HashPair", key: m.id(l[u - 2]), value: l[u], loc: m.locInfo(this._$) };
|
|
630
|
+
break;
|
|
631
|
+
case 36:
|
|
632
|
+
this.$ = m.syntax.square(l[u - 1], m.locInfo(this._$), { yy: m, syntax: "expr" });
|
|
633
|
+
break;
|
|
634
|
+
case 37:
|
|
635
|
+
this.$ = m.id(l[u - 1]);
|
|
636
|
+
break;
|
|
637
|
+
case 40:
|
|
638
|
+
this.$ = { type: "StringLiteral", value: l[u], original: l[u], loc: m.locInfo(this._$) };
|
|
639
|
+
break;
|
|
640
|
+
case 41:
|
|
641
|
+
this.$ = { type: "NumberLiteral", value: Number(l[u]), original: Number(l[u]), loc: m.locInfo(this._$) };
|
|
642
|
+
break;
|
|
643
|
+
case 42:
|
|
644
|
+
this.$ = { type: "BooleanLiteral", value: l[u] === "true", original: l[u] === "true", loc: m.locInfo(this._$) };
|
|
645
|
+
break;
|
|
646
|
+
case 43:
|
|
647
|
+
this.$ = { type: "UndefinedLiteral", original: void 0, value: void 0, loc: m.locInfo(this._$) };
|
|
648
|
+
break;
|
|
649
|
+
case 44:
|
|
650
|
+
this.$ = { type: "NullLiteral", original: null, value: null, loc: m.locInfo(this._$) };
|
|
651
|
+
break;
|
|
652
|
+
case 45:
|
|
653
|
+
this.$ = m.preparePath(true, false, l[u], this._$);
|
|
654
|
+
break;
|
|
655
|
+
case 48:
|
|
656
|
+
this.$ = m.preparePath(false, l[u - 2], l[u], this._$);
|
|
657
|
+
break;
|
|
658
|
+
case 49:
|
|
659
|
+
this.$ = m.preparePath(false, false, l[u], this._$);
|
|
660
|
+
break;
|
|
661
|
+
case 50:
|
|
662
|
+
l[u - 2].push({ part: m.id(l[u]), original: l[u], separator: l[u - 1] }), this.$ = l[u - 2];
|
|
663
|
+
break;
|
|
664
|
+
case 51:
|
|
665
|
+
this.$ = [{ part: m.id(l[u]), original: l[u] }];
|
|
666
|
+
break;
|
|
667
|
+
case 52:
|
|
668
|
+
case 54:
|
|
669
|
+
case 56:
|
|
670
|
+
case 64:
|
|
671
|
+
case 70:
|
|
672
|
+
case 76:
|
|
673
|
+
case 84:
|
|
674
|
+
case 88:
|
|
675
|
+
case 92:
|
|
676
|
+
case 96:
|
|
677
|
+
case 100:
|
|
678
|
+
case 106:
|
|
679
|
+
this.$ = [];
|
|
680
|
+
break;
|
|
681
|
+
case 53:
|
|
682
|
+
case 55:
|
|
683
|
+
case 57:
|
|
684
|
+
case 65:
|
|
685
|
+
case 71:
|
|
686
|
+
case 77:
|
|
687
|
+
case 85:
|
|
688
|
+
case 89:
|
|
689
|
+
case 93:
|
|
690
|
+
case 97:
|
|
691
|
+
case 101:
|
|
692
|
+
case 105:
|
|
693
|
+
case 107:
|
|
694
|
+
case 109:
|
|
695
|
+
l[u - 1].push(l[u]);
|
|
696
|
+
break;
|
|
697
|
+
case 104:
|
|
698
|
+
case 108:
|
|
699
|
+
this.$ = [l[u]];
|
|
700
|
+
break;
|
|
701
|
+
}
|
|
702
|
+
}, table: [e5([5, 14, 15, 19, 29, 34, 48, 53, 57, 61], t, { 3: 1, 4: 2, 6: 3 }), { 1: [3] }, { 5: [1, 4] }, e5([5, 39, 44, 47], [2, 2], { 7: 5, 8: 6, 9: 7, 10: 8, 11: 9, 12: 10, 13: 11, 24: 15, 27: 16, 16: 17, 60: 19, 14: [1, 12], 15: r, 19: [1, 23], 29: [1, 21], 34: [1, 22], 48: [1, 13], 53: [1, 14], 57: [1, 18], 61: [1, 24] }), { 1: [2, 1] }, e5(n, [2, 53]), e5(n, [2, 3]), e5(n, [2, 4]), e5(n, [2, 5]), e5(n, [2, 6]), e5(n, [2, 7]), e5(n, [2, 8]), e5(n, [2, 9]), { 20: 28, 49: 25, 50: 26, 64: 29, 65: 38, 66: 39, 67: s, 71: 27, 72: 30, 73: i, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, { 20: 28, 50: 45, 64: 29, 65: 38, 66: 39, 67: s, 73: E, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, e5(T, t, { 6: 3, 4: 47 }), e5(D, t, { 6: 3, 4: 48 }), e5(I, [2, 54], { 17: 49 }), { 20: 28, 50: 50, 64: 29, 65: 38, 66: 39, 67: s, 73: E, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, e5(O, t, { 6: 3, 4: 51 }), e5([5, 14, 15, 18, 19, 29, 34, 39, 44, 47, 48, 53, 57, 61], [2, 10]), { 20: 52, 64: 53, 65: 38, 66: 39, 67: s, 73: E, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, { 20: 54, 64: 53, 65: 38, 66: 39, 67: s, 73: E, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, { 20: 55, 64: 53, 65: 38, 66: 39, 67: s, 73: E, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, { 20: 28, 50: 56, 64: 29, 65: 38, 66: 39, 67: s, 73: E, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, { 33: [1, 57] }, e5(z, [2, 84], { 51: 58 }), e5([23, 33, 56, 68, 79], [2, 34], { 72: 59, 73: [1, 60] }), e5(P, [2, 28]), e5(P, [2, 29], { 91: 61, 92: U, 93: C }), e5($, [2, 104]), e5(P, [2, 38]), e5(P, [2, 39]), e5(P, [2, 40]), e5(P, [2, 41]), e5(P, [2, 42]), e5(P, [2, 43]), e5(P, [2, 44]), e5(W, [2, 30]), e5(W, [2, 31]), e5([23, 33, 56, 67, 68, 73, 75, 79, 84, 85, 86, 87, 88, 89, 92, 93], yr, { 74: Sr }), e5(P, [2, 49], { 91: 65, 92: U, 93: C }), { 73: E, 90: 66 }, e5(kr, [2, 106], { 76: 67 }), { 20: 28, 49: 68, 50: 69, 64: 29, 65: 38, 66: 39, 67: s, 71: 27, 72: 30, 73: i, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, e5(Er, [2, 88], { 54: 70 }), e5(W, yr), { 25: 71, 38: 73, 39: vr, 43: 74, 44: Ee, 45: 72, 47: [2, 60] }, { 28: 77, 43: 78, 44: Ee, 47: [2, 62] }, { 13: 80, 15: r, 18: [1, 79] }, e5(z, [2, 92], { 58: 81 }), { 26: 82, 47: ve }, e5(dt, [2, 64], { 30: 84 }), { 91: 61, 92: U, 93: C }, e5(dt, [2, 70], { 35: 85 }), e5(wr, [2, 56], { 21: 86 }), e5(z, [2, 96], { 62: 87 }), e5(n, [2, 22]), { 20: 28, 33: [2, 86], 49: 90, 50: 89, 52: 88, 64: 29, 65: 38, 66: 39, 67: s, 71: 27, 72: 30, 73: i, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, e5($, [2, 105]), { 74: Sr }, { 73: E, 90: 91 }, { 73: [2, 46] }, { 73: [2, 47] }, { 20: 28, 50: 92, 64: 29, 65: 38, 66: 39, 67: s, 73: E, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, { 73: [1, 93] }, e5(P, [2, 45], { 91: 65, 92: U, 93: C }), { 20: 28, 50: 95, 64: 29, 65: 38, 66: 39, 67: s, 73: E, 75: a, 77: [1, 94], 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, { 68: [1, 96] }, e5(Tr, [2, 100], { 69: 97 }), { 20: 28, 49: 100, 50: 99, 55: 98, 56: [2, 90], 64: 29, 65: 38, 66: 39, 67: s, 71: 27, 72: 30, 73: i, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, { 26: 101, 47: ve }, { 47: [2, 61] }, e5(T, t, { 6: 3, 4: 102 }), { 47: [2, 20] }, { 20: 103, 64: 53, 65: 38, 66: 39, 67: s, 73: E, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, e5(O, t, { 6: 3, 4: 104 }), { 26: 105, 47: ve }, { 47: [2, 63] }, e5(n, [2, 11]), e5(I, [2, 55]), { 20: 28, 33: [2, 94], 49: 108, 50: 107, 59: 106, 64: 29, 65: 38, 66: 39, 67: s, 71: 27, 72: 30, 73: i, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, e5(n, [2, 26]), { 20: 109, 64: 53, 65: 38, 66: 39, 67: s, 73: E, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, e5(gt, [2, 66], { 71: 27, 20: 28, 64: 29, 72: 30, 82: 31, 83: 32, 65: 38, 66: 39, 90: 41, 31: 110, 50: 111, 49: 112, 67: s, 73: i, 75: a, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g }), e5(gt, [2, 72], { 71: 27, 20: 28, 64: 29, 72: 30, 82: 31, 83: 32, 65: 38, 66: 39, 90: 41, 36: 113, 50: 114, 49: 115, 67: s, 73: i, 75: a, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g }), { 20: 28, 22: 116, 23: [2, 58], 49: 118, 50: 117, 64: 29, 65: 38, 66: 39, 67: s, 71: 27, 72: 30, 73: i, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, { 20: 28, 33: [2, 98], 49: 121, 50: 120, 63: 119, 64: 29, 65: 38, 66: 39, 67: s, 71: 27, 72: 30, 73: i, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, { 33: [1, 122] }, e5(z, [2, 85]), { 33: [2, 87] }, e5(P, [2, 48], { 91: 65, 92: U, 93: C }), e5($, [2, 35]), e5(W, [2, 50]), e5(W, [2, 36]), e5(kr, [2, 107]), e5(W, [2, 32]), { 20: 28, 49: 125, 50: 124, 64: 29, 65: 38, 66: 39, 67: s, 68: [2, 102], 70: 123, 71: 27, 72: 30, 73: i, 75: a, 82: 31, 83: 32, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g, 90: 41 }, { 56: [1, 126] }, e5(Er, [2, 89]), { 56: [2, 91] }, e5(n, [2, 13]), { 38: 73, 39: vr, 43: 74, 44: Ee, 45: 128, 46: 127, 47: [2, 82] }, e5(dt, [2, 76], { 40: 129 }), { 47: [2, 18] }, e5(n, [2, 14]), { 33: [1, 130] }, e5(z, [2, 93]), { 33: [2, 95] }, { 33: [1, 131] }, { 32: 132, 33: [2, 68], 78: 133, 79: we }, e5(dt, [2, 65]), e5(gt, [2, 67]), { 33: [2, 74], 37: 135, 78: 136, 79: we }, e5(dt, [2, 71]), e5(gt, [2, 73]), { 23: [1, 137] }, e5(wr, [2, 57]), { 23: [2, 59] }, { 33: [1, 138] }, e5(z, [2, 97]), { 33: [2, 99] }, e5(n, [2, 23]), { 68: [1, 139] }, e5(Tr, [2, 101]), { 68: [2, 103] }, e5(n, [2, 24]), { 47: [2, 19] }, { 47: [2, 83] }, e5(gt, [2, 78], { 71: 27, 20: 28, 64: 29, 72: 30, 82: 31, 83: 32, 65: 38, 66: 39, 90: 41, 41: 140, 50: 141, 49: 142, 67: s, 73: i, 75: a, 84: o, 85: c, 86: h, 87: f, 88: p, 89: g }), e5(n, [2, 25]), e5(n, [2, 21]), { 33: [1, 143] }, { 33: [2, 69] }, { 73: [1, 145], 80: 144 }, { 33: [1, 146] }, { 33: [2, 75] }, e5(I, [2, 12]), e5(O, [2, 27]), e5(W, [2, 33]), { 33: [2, 80], 42: 147, 78: 148, 79: we }, e5(dt, [2, 77]), e5(gt, [2, 79]), e5(T, [2, 15]), { 73: [1, 150], 81: [1, 149] }, e5(xr, [2, 108]), e5(D, [2, 16]), { 33: [1, 151] }, { 33: [2, 81] }, { 33: [2, 37] }, e5(xr, [2, 109]), e5(T, [2, 17])], defaultActions: { 4: [2, 1], 62: [2, 46], 63: [2, 47], 72: [2, 61], 74: [2, 20], 78: [2, 63], 90: [2, 87], 100: [2, 91], 104: [2, 18], 108: [2, 95], 118: [2, 59], 121: [2, 99], 125: [2, 103], 127: [2, 19], 128: [2, 83], 133: [2, 69], 136: [2, 75], 148: [2, 81], 149: [2, 37] }, parseError: function(b, S) {
|
|
703
|
+
if (S.recoverable) this.trace(b);
|
|
704
|
+
else {
|
|
705
|
+
var y = new Error(b);
|
|
706
|
+
throw y.hash = S, y;
|
|
707
|
+
}
|
|
708
|
+
}, parse: function(b) {
|
|
709
|
+
var S = this, y = [0], w = [null], l = [], bt = this.table, u = "", Z = 0, _t = 0, Nr = 0, Bs = 2, Ar = 1, Is = l.slice.call(arguments, 1), x = Object.create(this.lexer), ot = { yy: {} };
|
|
710
|
+
for (var Ne in this.yy) Object.prototype.hasOwnProperty.call(this.yy, Ne) && (ot.yy[Ne] = this.yy[Ne]);
|
|
711
|
+
x.setInput(b, ot.yy), ot.yy.lexer = x, ot.yy.parser = this, typeof x.yylloc > "u" && (x.yylloc = {});
|
|
712
|
+
var Ae = x.yylloc;
|
|
713
|
+
l.push(Ae);
|
|
714
|
+
var Rs = x.options && x.options.ranges;
|
|
715
|
+
typeof ot.yy.parseError == "function" ? this.parseError = ot.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
|
|
716
|
+
for (var qs = function() {
|
|
717
|
+
var Y;
|
|
718
|
+
return Y = x.lex() || Ar, typeof Y != "number" && (Y = S.symbols_[Y] || Y), Y;
|
|
719
|
+
}, _, Pe, lt, q, xi, Ce, yt = {}, jt, j, Pr, Qt; ; ) {
|
|
720
|
+
if (lt = y[y.length - 1], this.defaultActions[lt] ? q = this.defaultActions[lt] : ((_ === null || typeof _ > "u") && (_ = qs()), q = bt[lt] && bt[lt][_]), typeof q > "u" || !q.length || !q[0]) {
|
|
721
|
+
var Le = "";
|
|
722
|
+
Qt = [];
|
|
723
|
+
for (jt in bt[lt]) this.terminals_[jt] && jt > Bs && Qt.push("'" + this.terminals_[jt] + "'");
|
|
724
|
+
x.showPosition ? Le = "Parse error on line " + (Z + 1) + `:
|
|
725
|
+
` + x.showPosition() + `
|
|
726
|
+
Expecting ` + Qt.join(", ") + ", got '" + (this.terminals_[_] || _) + "'" : Le = "Parse error on line " + (Z + 1) + ": Unexpected " + (_ == Ar ? "end of input" : "'" + (this.terminals_[_] || _) + "'"), this.parseError(Le, { text: x.match, token: this.terminals_[_] || _, line: x.yylineno, loc: Ae, expected: Qt });
|
|
727
|
+
}
|
|
728
|
+
if (q[0] instanceof Array && q.length > 1) throw new Error("Parse Error: multiple actions possible at state: " + lt + ", token: " + _);
|
|
729
|
+
switch (q[0]) {
|
|
730
|
+
case 1:
|
|
731
|
+
y.push(_), w.push(x.yytext), l.push(x.yylloc), y.push(q[1]), _ = null, Pe ? (_ = Pe, Pe = null) : (_t = x.yyleng, u = x.yytext, Z = x.yylineno, Ae = x.yylloc, Nr > 0);
|
|
732
|
+
break;
|
|
733
|
+
case 2:
|
|
734
|
+
if (j = this.productions_[q[1]][1], yt.$ = w[w.length - j], yt._$ = { first_line: l[l.length - (j || 1)].first_line, last_line: l[l.length - 1].last_line, first_column: l[l.length - (j || 1)].first_column, last_column: l[l.length - 1].last_column }, Rs && (yt._$.range = [l[l.length - (j || 1)].range[0], l[l.length - 1].range[1]]), Ce = this.performAction.apply(yt, [u, _t, Z, ot.yy, q[1], w, l].concat(Is)), typeof Ce < "u") return Ce;
|
|
735
|
+
j && (y = y.slice(0, -1 * j * 2), w = w.slice(0, -1 * j), l = l.slice(0, -1 * j)), y.push(this.productions_[q[1]][0]), w.push(yt.$), l.push(yt._$), Pr = bt[y[y.length - 2]][y[y.length - 1]], y.push(Pr);
|
|
736
|
+
break;
|
|
737
|
+
case 3:
|
|
738
|
+
return true;
|
|
739
|
+
}
|
|
740
|
+
}
|
|
741
|
+
return true;
|
|
742
|
+
} }, Os = /* @__PURE__ */ function() {
|
|
743
|
+
var X = { EOF: 1, parseError: function(S, y) {
|
|
744
|
+
if (this.yy.parser) this.yy.parser.parseError(S, y);
|
|
745
|
+
else throw new Error(S);
|
|
746
|
+
}, setInput: function(b, S) {
|
|
747
|
+
return this.yy = S || this.yy || {}, this._input = b, this._more = this._backtrack = this.done = false, 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;
|
|
748
|
+
}, input: function() {
|
|
749
|
+
var b = this._input[0];
|
|
750
|
+
this.yytext += b, this.yyleng++, this.offset++, this.match += b, this.matched += b;
|
|
751
|
+
var S = b.match(/(?:\r\n?|\n).*/g);
|
|
752
|
+
return S ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), b;
|
|
753
|
+
}, unput: function(b) {
|
|
754
|
+
var S = b.length, y = b.split(/(?:\r\n?|\n)/g);
|
|
755
|
+
this._input = b + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - S), this.offset -= S;
|
|
756
|
+
var m = this.match.split(/(?:\r\n?|\n)/g);
|
|
757
|
+
this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), y.length - 1 && (this.yylineno -= y.length - 1);
|
|
758
|
+
var w = this.yylloc.range;
|
|
759
|
+
return this.yylloc = { first_line: this.yylloc.first_line, last_line: this.yylineno + 1, first_column: this.yylloc.first_column, last_column: y ? (y.length === m.length ? this.yylloc.first_column : 0) + m[m.length - y.length].length - y[0].length : this.yylloc.first_column - S }, this.options.ranges && (this.yylloc.range = [w[0], w[0] + this.yyleng - S]), this.yyleng = this.yytext.length, this;
|
|
760
|
+
}, more: function() {
|
|
761
|
+
return this._more = true, this;
|
|
762
|
+
}, reject: function() {
|
|
763
|
+
if (this.options.backtrack_lexer) this._backtrack = true;
|
|
764
|
+
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).
|
|
765
|
+
` + this.showPosition(), { text: "", token: null, line: this.yylineno });
|
|
766
|
+
return this;
|
|
767
|
+
}, less: function(b) {
|
|
768
|
+
this.unput(this.match.slice(b));
|
|
769
|
+
}, pastInput: function() {
|
|
770
|
+
var b = this.matched.substr(0, this.matched.length - this.match.length);
|
|
771
|
+
return (b.length > 20 ? "..." : "") + b.substr(-20).replace(/\n/g, "");
|
|
772
|
+
}, upcomingInput: function() {
|
|
773
|
+
var b = this.match;
|
|
774
|
+
return b.length < 20 && (b += this._input.substr(0, 20 - b.length)), (b.substr(0, 20) + (b.length > 20 ? "..." : "")).replace(/\n/g, "");
|
|
775
|
+
}, showPosition: function() {
|
|
776
|
+
var b = this.pastInput(), S = new Array(b.length + 1).join("-");
|
|
777
|
+
return b + this.upcomingInput() + `
|
|
778
|
+
` + S + "^";
|
|
779
|
+
}, test_match: function(b, S) {
|
|
780
|
+
var y, m, w;
|
|
781
|
+
if (this.options.backtrack_lexer && (w = { 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 && (w.yylloc.range = this.yylloc.range.slice(0))), m = b[0].match(/(?:\r\n?|\n).*/g), m && (this.yylineno += m.length), this.yylloc = { first_line: this.yylloc.last_line, last_line: this.yylineno + 1, first_column: this.yylloc.last_column, last_column: m ? m[m.length - 1].length - m[m.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + b[0].length }, this.yytext += b[0], this.match += b[0], this.matches = b, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = false, this._backtrack = false, this._input = this._input.slice(b[0].length), this.matched += b[0], y = this.performAction.call(this, this.yy, this, S, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = false), y) return y;
|
|
782
|
+
if (this._backtrack) {
|
|
783
|
+
for (var l in w) this[l] = w[l];
|
|
784
|
+
return false;
|
|
785
|
+
}
|
|
786
|
+
return false;
|
|
787
|
+
}, next: function() {
|
|
788
|
+
if (this.done) return this.EOF;
|
|
789
|
+
this._input || (this.done = true);
|
|
790
|
+
var b, S, y, m;
|
|
791
|
+
this._more || (this.yytext = "", this.match = "");
|
|
792
|
+
for (var w = this._currentRules(), l = 0; l < w.length; l++) if (y = this._input.match(this.rules[w[l]]), y && (!S || y[0].length > S[0].length)) {
|
|
793
|
+
if (S = y, m = l, this.options.backtrack_lexer) {
|
|
794
|
+
if (b = this.test_match(y, w[l]), b !== false) return b;
|
|
795
|
+
if (this._backtrack) {
|
|
796
|
+
S = false;
|
|
797
|
+
continue;
|
|
798
|
+
} else return false;
|
|
799
|
+
} else if (!this.options.flex) break;
|
|
800
|
+
}
|
|
801
|
+
return S ? (b = this.test_match(S, w[m]), b !== false ? b : false) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text.
|
|
802
|
+
` + this.showPosition(), { text: "", token: null, line: this.yylineno });
|
|
803
|
+
}, lex: function() {
|
|
804
|
+
var S = this.next();
|
|
805
|
+
return S || this.lex();
|
|
806
|
+
}, begin: function(S) {
|
|
807
|
+
this.conditionStack.push(S);
|
|
808
|
+
}, popState: function() {
|
|
809
|
+
var S = this.conditionStack.length - 1;
|
|
810
|
+
return S > 0 ? this.conditionStack.pop() : this.conditionStack[0];
|
|
811
|
+
}, _currentRules: function() {
|
|
812
|
+
return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules;
|
|
813
|
+
}, topState: function(S) {
|
|
814
|
+
return S = this.conditionStack.length - 1 - Math.abs(S || 0), S >= 0 ? this.conditionStack[S] : "INITIAL";
|
|
815
|
+
}, pushState: function(S) {
|
|
816
|
+
this.begin(S);
|
|
817
|
+
}, stateStackSize: function() {
|
|
818
|
+
return this.conditionStack.length;
|
|
819
|
+
}, options: {}, performAction: function(S, y, m, w) {
|
|
820
|
+
function l(u, Z) {
|
|
821
|
+
return y.yytext = y.yytext.substring(u, y.yyleng - Z + u);
|
|
822
|
+
}
|
|
823
|
+
switch (m) {
|
|
824
|
+
case 0:
|
|
825
|
+
if (y.yytext.slice(-2) === "\\\\" ? (l(0, 1), this.begin("mu")) : y.yytext.slice(-1) === "\\" ? (l(0, 1), this.begin("emu")) : this.begin("mu"), y.yytext) return 15;
|
|
826
|
+
break;
|
|
827
|
+
case 1:
|
|
828
|
+
return 15;
|
|
829
|
+
case 2:
|
|
830
|
+
return this.popState(), 15;
|
|
831
|
+
case 3:
|
|
832
|
+
return this.begin("raw"), 15;
|
|
833
|
+
case 4:
|
|
834
|
+
return this.popState(), this.conditionStack[this.conditionStack.length - 1] === "raw" ? 15 : (l(5, 9), 18);
|
|
835
|
+
case 5:
|
|
836
|
+
return 15;
|
|
837
|
+
case 6:
|
|
838
|
+
return this.popState(), 14;
|
|
839
|
+
case 7:
|
|
840
|
+
return 67;
|
|
841
|
+
case 8:
|
|
842
|
+
return 68;
|
|
843
|
+
case 9:
|
|
844
|
+
if (S.syntax.square === "string") this.unput(y.yytext), this.begin("escl");
|
|
845
|
+
else return 75;
|
|
846
|
+
break;
|
|
847
|
+
case 10:
|
|
848
|
+
return 77;
|
|
849
|
+
case 11:
|
|
850
|
+
return 19;
|
|
851
|
+
case 12:
|
|
852
|
+
return this.popState(), this.begin("raw"), 23;
|
|
853
|
+
case 13:
|
|
854
|
+
return 57;
|
|
855
|
+
case 14:
|
|
856
|
+
return 61;
|
|
857
|
+
case 15:
|
|
858
|
+
return 29;
|
|
859
|
+
case 16:
|
|
860
|
+
return 47;
|
|
861
|
+
case 17:
|
|
862
|
+
return this.popState(), 44;
|
|
863
|
+
case 18:
|
|
864
|
+
return this.popState(), 44;
|
|
865
|
+
case 19:
|
|
866
|
+
return 34;
|
|
867
|
+
case 20:
|
|
868
|
+
return 39;
|
|
869
|
+
case 21:
|
|
870
|
+
return 53;
|
|
871
|
+
case 22:
|
|
872
|
+
return 48;
|
|
873
|
+
case 23:
|
|
874
|
+
this.unput(y.yytext), this.popState(), this.begin("com");
|
|
875
|
+
break;
|
|
876
|
+
case 24:
|
|
877
|
+
return this.popState(), 14;
|
|
878
|
+
case 25:
|
|
879
|
+
return 48;
|
|
880
|
+
case 26:
|
|
881
|
+
return 74;
|
|
882
|
+
case 27:
|
|
883
|
+
return 73;
|
|
884
|
+
case 28:
|
|
885
|
+
return 73;
|
|
886
|
+
case 29:
|
|
887
|
+
return 93;
|
|
888
|
+
case 30:
|
|
889
|
+
return 92;
|
|
890
|
+
case 31:
|
|
891
|
+
break;
|
|
892
|
+
case 32:
|
|
893
|
+
return this.popState(), 56;
|
|
894
|
+
case 33:
|
|
895
|
+
return this.popState(), 33;
|
|
896
|
+
case 34:
|
|
897
|
+
return y.yytext = l(1, 2).replace(/\\"/g, '"'), 84;
|
|
898
|
+
case 35:
|
|
899
|
+
return y.yytext = l(1, 2).replace(/\\'/g, "'"), 84;
|
|
900
|
+
case 36:
|
|
901
|
+
return 89;
|
|
902
|
+
case 37:
|
|
903
|
+
return 86;
|
|
904
|
+
case 38:
|
|
905
|
+
return 86;
|
|
906
|
+
case 39:
|
|
907
|
+
return 87;
|
|
908
|
+
case 40:
|
|
909
|
+
return 88;
|
|
910
|
+
case 41:
|
|
911
|
+
return 85;
|
|
912
|
+
case 42:
|
|
913
|
+
return 79;
|
|
914
|
+
case 43:
|
|
915
|
+
return 81;
|
|
916
|
+
case 44:
|
|
917
|
+
return 73;
|
|
918
|
+
case 45:
|
|
919
|
+
return y.yytext = y.yytext.replace(/\\([\\\]])/g, "$1"), this.popState(), 73;
|
|
920
|
+
case 46:
|
|
921
|
+
return "INVALID";
|
|
922
|
+
case 47:
|
|
923
|
+
return 5;
|
|
924
|
+
}
|
|
925
|
+
}, 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, 46, 47], inclusive: false }, emu: { rules: [2], inclusive: false }, com: { rules: [6], inclusive: false }, raw: { rules: [3, 4, 5], inclusive: false }, escl: { rules: [45], inclusive: false }, INITIAL: { rules: [0, 1, 47], inclusive: true } } };
|
|
926
|
+
return X;
|
|
927
|
+
}();
|
|
928
|
+
Te.lexer = Os;
|
|
929
|
+
function xe() {
|
|
930
|
+
this.yy = {};
|
|
931
|
+
}
|
|
932
|
+
return xe.prototype = Te, Te.Parser = xe, new xe();
|
|
933
|
+
}(), Ht = _n;
|
|
934
|
+
var Ge = ["description", "fileName", "lineNumber", "endLineNumber", "message", "name", "number", "stack"];
|
|
935
|
+
function Ke(e5, t) {
|
|
936
|
+
var r = t && t.loc, n, s, i, a;
|
|
937
|
+
r && (n = r.start.line, s = r.end.line, i = r.start.column, a = r.end.column, e5 += " - " + n + ":" + i);
|
|
938
|
+
for (var o = Error.prototype.constructor.call(this, e5), c = 0; c < Ge.length; c++) this[Ge[c]] = o[Ge[c]];
|
|
939
|
+
Error.captureStackTrace && Error.captureStackTrace(this, Ke);
|
|
940
|
+
try {
|
|
941
|
+
r && (this.lineNumber = n, this.endLineNumber = s, Object.defineProperty ? (Object.defineProperty(this, "column", { value: i, enumerable: true }), Object.defineProperty(this, "endColumn", { value: a, enumerable: true })) : (this.column = i, this.endColumn = a));
|
|
942
|
+
} catch {
|
|
943
|
+
}
|
|
944
|
+
}
|
|
945
|
+
Ke.prototype = new Error();
|
|
946
|
+
var tt = Ke;
|
|
947
|
+
function pe() {
|
|
948
|
+
this.parents = [];
|
|
949
|
+
}
|
|
950
|
+
pe.prototype = { constructor: pe, mutating: false, acceptKey: function(e5, t) {
|
|
951
|
+
var r = this.accept(e5[t]);
|
|
952
|
+
if (this.mutating) {
|
|
953
|
+
if (r && !pe.prototype[r.type]) throw new tt('Unexpected node type "' + r.type + '" found when accepting ' + t + " on " + e5.type);
|
|
954
|
+
e5[t] = r;
|
|
955
|
+
}
|
|
956
|
+
}, acceptRequired: function(e5, t) {
|
|
957
|
+
if (this.acceptKey(e5, t), !e5[t]) throw new tt(e5.type + " requires " + t);
|
|
958
|
+
}, acceptArray: function(e5) {
|
|
959
|
+
for (var t = 0, r = e5.length; t < r; t++) this.acceptKey(e5, t), e5[t] || (e5.splice(t, 1), t--, r--);
|
|
960
|
+
}, accept: function(e5) {
|
|
961
|
+
if (e5) {
|
|
962
|
+
if (!this[e5.type]) throw new tt("Unknown type: " + e5.type, e5);
|
|
963
|
+
this.current && this.parents.unshift(this.current), this.current = e5;
|
|
964
|
+
var t = this[e5.type](e5);
|
|
965
|
+
if (this.current = this.parents.shift(), !this.mutating || t) return t;
|
|
966
|
+
if (t !== false) return e5;
|
|
967
|
+
}
|
|
968
|
+
}, Program: function(e5) {
|
|
969
|
+
this.acceptArray(e5.body);
|
|
970
|
+
}, MustacheStatement: fe, Decorator: fe, BlockStatement: os, DecoratorBlock: os, PartialStatement: ls, PartialBlockStatement: function(e5) {
|
|
971
|
+
ls.call(this, e5), this.acceptKey(e5, "program");
|
|
972
|
+
}, ContentStatement: function() {
|
|
973
|
+
}, CommentStatement: function() {
|
|
974
|
+
}, SubExpression: fe, PathExpression: function() {
|
|
975
|
+
}, StringLiteral: function() {
|
|
976
|
+
}, NumberLiteral: function() {
|
|
977
|
+
}, BooleanLiteral: function() {
|
|
978
|
+
}, UndefinedLiteral: function() {
|
|
979
|
+
}, NullLiteral: function() {
|
|
980
|
+
}, Hash: function(e5) {
|
|
981
|
+
this.acceptArray(e5.pairs);
|
|
982
|
+
}, HashPair: function(e5) {
|
|
983
|
+
this.acceptRequired(e5, "value");
|
|
984
|
+
} };
|
|
985
|
+
function fe(e5) {
|
|
986
|
+
this.acceptRequired(e5, "path"), this.acceptArray(e5.params), this.acceptKey(e5, "hash");
|
|
987
|
+
}
|
|
988
|
+
function os(e5) {
|
|
989
|
+
fe.call(this, e5), this.acceptKey(e5, "program"), this.acceptKey(e5, "inverse");
|
|
990
|
+
}
|
|
991
|
+
function ls(e5) {
|
|
992
|
+
this.acceptRequired(e5, "name"), this.acceptArray(e5.params), this.acceptKey(e5, "hash");
|
|
993
|
+
}
|
|
994
|
+
var cs = pe;
|
|
995
|
+
function G(e5) {
|
|
996
|
+
e5 === void 0 && (e5 = {}), this.options = e5;
|
|
997
|
+
}
|
|
998
|
+
G.prototype = new cs();
|
|
999
|
+
G.prototype.Program = function(e5) {
|
|
1000
|
+
var t = !this.options.ignoreStandalone, r = !this.isRootSeen;
|
|
1001
|
+
this.isRootSeen = true;
|
|
1002
|
+
for (var n = e5.body, s = 0, i = n.length; s < i; s++) {
|
|
1003
|
+
var a = n[s], o = this.accept(a);
|
|
1004
|
+
if (o) {
|
|
1005
|
+
var c = We(n, s, r), h = je(n, s, r), f = o.openStandalone && c, p = o.closeStandalone && h, g = o.inlineStandalone && c && h;
|
|
1006
|
+
o.close && pt(n, s, true), o.open && et(n, s, true), t && g && (pt(n, s), et(n, s) && a.type === "PartialStatement" && (a.indent = /([ \t]+$)/.exec(n[s - 1].original)[1])), t && f && (pt((a.program || a.inverse).body), et(n, s)), t && p && (pt(n, s), et((a.inverse || a.program).body));
|
|
1007
|
+
}
|
|
1008
|
+
}
|
|
1009
|
+
return e5;
|
|
1010
|
+
};
|
|
1011
|
+
G.prototype.BlockStatement = G.prototype.DecoratorBlock = G.prototype.PartialBlockStatement = function(e5) {
|
|
1012
|
+
this.accept(e5.program), this.accept(e5.inverse);
|
|
1013
|
+
var t = e5.program || e5.inverse, r = e5.program && e5.inverse, n = r, s = r;
|
|
1014
|
+
if (r && r.chained) for (n = r.body[0].program; s.chained; ) s = s.body[s.body.length - 1].program;
|
|
1015
|
+
var i = { open: e5.openStrip.open, close: e5.closeStrip.close, openStandalone: je(t.body), closeStandalone: We((n || t).body) };
|
|
1016
|
+
if (e5.openStrip.close && pt(t.body, null, true), r) {
|
|
1017
|
+
var a = e5.inverseStrip;
|
|
1018
|
+
a.open && et(t.body, null, true), a.close && pt(n.body, null, true), e5.closeStrip.open && et(s.body, null, true), !this.options.ignoreStandalone && We(t.body) && je(n.body) && (et(t.body), pt(n.body));
|
|
1019
|
+
} else e5.closeStrip.open && et(t.body, null, true);
|
|
1020
|
+
return i;
|
|
1021
|
+
};
|
|
1022
|
+
G.prototype.Decorator = G.prototype.MustacheStatement = function(e5) {
|
|
1023
|
+
return e5.strip;
|
|
1024
|
+
};
|
|
1025
|
+
G.prototype.PartialStatement = G.prototype.CommentStatement = function(e5) {
|
|
1026
|
+
var t = e5.strip || {};
|
|
1027
|
+
return { inlineStandalone: true, open: t.open, close: t.close };
|
|
1028
|
+
};
|
|
1029
|
+
function We(e5, t, r) {
|
|
1030
|
+
t === void 0 && (t = e5.length);
|
|
1031
|
+
var n = e5[t - 1], s = e5[t - 2];
|
|
1032
|
+
if (!n) return r;
|
|
1033
|
+
if (n.type === "ContentStatement") return (s || !r ? /\r?\n\s*?$/ : /(^|\r?\n)\s*?$/).test(n.original);
|
|
1034
|
+
}
|
|
1035
|
+
function je(e5, t, r) {
|
|
1036
|
+
t === void 0 && (t = -1);
|
|
1037
|
+
var n = e5[t + 1], s = e5[t + 2];
|
|
1038
|
+
if (!n) return r;
|
|
1039
|
+
if (n.type === "ContentStatement") return (s || !r ? /^\s*?\r?\n/ : /^\s*?(\r?\n|$)/).test(n.original);
|
|
1040
|
+
}
|
|
1041
|
+
function pt(e5, t, r) {
|
|
1042
|
+
var n = e5[t == null ? 0 : t + 1];
|
|
1043
|
+
if (!(!n || n.type !== "ContentStatement" || !r && n.rightStripped)) {
|
|
1044
|
+
var s = n.value;
|
|
1045
|
+
n.value = n.value.replace(r ? /^\s+/ : /^[ \t]*\r?\n?/, ""), n.rightStripped = n.value !== s;
|
|
1046
|
+
}
|
|
1047
|
+
}
|
|
1048
|
+
function et(e5, t, r) {
|
|
1049
|
+
var n = e5[t == null ? e5.length - 1 : t - 1];
|
|
1050
|
+
if (!(!n || n.type !== "ContentStatement" || !r && n.leftStripped)) {
|
|
1051
|
+
var s = n.value;
|
|
1052
|
+
return n.value = n.value.replace(r ? /\s+$/ : /[ \t]+$/, ""), n.leftStripped = n.value !== s, n.leftStripped;
|
|
1053
|
+
}
|
|
1054
|
+
}
|
|
1055
|
+
var us = G;
|
|
1056
|
+
var Ut = {};
|
|
1057
|
+
_e(Ut, { SourceLocation: () => Je, id: () => On, prepareBlock: () => Fn, prepareMustache: () => qn, preparePartialBlock: () => Un, preparePath: () => Rn, prepareProgram: () => Hn, prepareRawBlock: () => Vn, stripComment: () => In, stripFlags: () => Bn });
|
|
1058
|
+
var Dn = function(e5, t, r) {
|
|
1059
|
+
for (var n = 0, s = t.length, i; n < s; n++) (i || !(n in t)) && (i || (i = Array.prototype.slice.call(t, 0, n)), i[n] = t[n]);
|
|
1060
|
+
return e5.concat(i || Array.prototype.slice.call(t));
|
|
1061
|
+
};
|
|
1062
|
+
function Qe(e5, t) {
|
|
1063
|
+
if (t = t.path ? t.path.original : t, e5.path.original !== t) {
|
|
1064
|
+
var r = { loc: e5.path.loc };
|
|
1065
|
+
throw new tt(e5.path.original + " doesn't match " + t, r);
|
|
1066
|
+
}
|
|
1067
|
+
}
|
|
1068
|
+
function Je(e5, t) {
|
|
1069
|
+
this.source = e5, this.start = { line: t.first_line, column: t.first_column }, this.end = { line: t.last_line, column: t.last_column };
|
|
1070
|
+
}
|
|
1071
|
+
function On(e5) {
|
|
1072
|
+
return /^\[.*\]$/.test(e5) ? e5.substring(1, e5.length - 1) : e5;
|
|
1073
|
+
}
|
|
1074
|
+
function Bn(e5, t) {
|
|
1075
|
+
return { open: e5.charAt(2) === "~", close: t.charAt(t.length - 3) === "~" };
|
|
1076
|
+
}
|
|
1077
|
+
function In(e5) {
|
|
1078
|
+
return e5.replace(/^\{\{~?!-?-?/, "").replace(/-?-?~?\}\}$/, "");
|
|
1079
|
+
}
|
|
1080
|
+
function Rn(e5, t, r, n) {
|
|
1081
|
+
n = this.locInfo(n);
|
|
1082
|
+
var s;
|
|
1083
|
+
e5 ? s = "@" : t ? s = t.original + "." : s = "";
|
|
1084
|
+
for (var i = [], a = 0, o = 0, c = r.length; o < c; o++) {
|
|
1085
|
+
var h = r[o].part, f = r[o].original !== h, p = r[o].separator, g = p === ".#" ? "#" : "";
|
|
1086
|
+
if (s += (p || "") + h, !f && (h === ".." || h === "." || h === "this")) {
|
|
1087
|
+
if (i.length > 0) throw new tt("Invalid path: " + s, { loc: n });
|
|
1088
|
+
h === ".." && a++;
|
|
1089
|
+
} else i.push("".concat(g).concat(h));
|
|
1090
|
+
}
|
|
1091
|
+
var E = t || i.shift();
|
|
1092
|
+
return { type: "PathExpression", this: s.startsWith("this."), data: e5, depth: a, head: E, tail: i, parts: E ? Dn([E], i) : i, original: s, loc: n };
|
|
1093
|
+
}
|
|
1094
|
+
function qn(e5, t, r, n, s, i) {
|
|
1095
|
+
var a = n.charAt(3) || n.charAt(2), o = a !== "{" && a !== "&", c = /\*/.test(n);
|
|
1096
|
+
return { type: c ? "Decorator" : "MustacheStatement", path: e5, params: t, hash: r, escaped: o, strip: s, loc: this.locInfo(i) };
|
|
1097
|
+
}
|
|
1098
|
+
function Vn(e5, t, r, n) {
|
|
1099
|
+
Qe(e5, r), n = this.locInfo(n);
|
|
1100
|
+
var s = { type: "Program", body: t, strip: {}, loc: n };
|
|
1101
|
+
return { type: "BlockStatement", path: e5.path, params: e5.params, hash: e5.hash, program: s, openStrip: {}, inverseStrip: {}, closeStrip: {}, loc: n };
|
|
1102
|
+
}
|
|
1103
|
+
function Fn(e5, t, r, n, s, i) {
|
|
1104
|
+
n && n.path && Qe(e5, n);
|
|
1105
|
+
var a = /\*/.test(e5.open);
|
|
1106
|
+
t.blockParams = e5.blockParams;
|
|
1107
|
+
var o, c;
|
|
1108
|
+
if (r) {
|
|
1109
|
+
if (a) throw new tt("Unexpected inverse block on decorator", r);
|
|
1110
|
+
r.chain && (r.program.body[0].closeStrip = n.strip), c = r.strip, o = r.program;
|
|
1111
|
+
}
|
|
1112
|
+
return s && (s = o, o = t, t = s), { type: a ? "DecoratorBlock" : "BlockStatement", path: e5.path, params: e5.params, hash: e5.hash, program: t, inverse: o, openStrip: e5.strip, inverseStrip: c, closeStrip: n && n.strip, loc: this.locInfo(i) };
|
|
1113
|
+
}
|
|
1114
|
+
function Hn(e5, t) {
|
|
1115
|
+
if (!t && e5.length) {
|
|
1116
|
+
var r = e5[0].loc, n = e5[e5.length - 1].loc;
|
|
1117
|
+
r && n && (t = { source: r.source, start: { line: r.start.line, column: r.start.column }, end: { line: n.end.line, column: n.end.column } });
|
|
1118
|
+
}
|
|
1119
|
+
return { type: "Program", body: e5, strip: {}, loc: t };
|
|
1120
|
+
}
|
|
1121
|
+
function Un(e5, t, r, n) {
|
|
1122
|
+
return Qe(e5, r), { type: "PartialBlockStatement", name: e5.path, params: e5.params, hash: e5.hash, program: t, openStrip: e5.strip, closeStrip: r && r.strip, loc: this.locInfo(n) };
|
|
1123
|
+
}
|
|
1124
|
+
var hs = {};
|
|
1125
|
+
for (me in Ut) Object.prototype.hasOwnProperty.call(Ut, me) && (hs[me] = Ut[me]);
|
|
1126
|
+
var me;
|
|
1127
|
+
function de(e5, t) {
|
|
1128
|
+
var r, n, s;
|
|
1129
|
+
if (e5.type === "Program") return e5;
|
|
1130
|
+
Ht.yy = hs, Ht.yy.locInfo = function(o) {
|
|
1131
|
+
return new Je(t && t.srcName, o);
|
|
1132
|
+
};
|
|
1133
|
+
var i;
|
|
1134
|
+
typeof ((r = t?.syntax) === null || r === void 0 ? void 0 : r.square) == "function" ? i = t.syntax.square : ((n = t?.syntax) === null || n === void 0 ? void 0 : n.square) === "node" ? i = Mn : i = "string";
|
|
1135
|
+
var a;
|
|
1136
|
+
return typeof ((s = t?.syntax) === null || s === void 0 ? void 0 : s.hash) == "function" ? a = t.syntax.hash : a = zn, Ht.yy.syntax = { square: i, hash: a }, Ht.parse(e5);
|
|
1137
|
+
}
|
|
1138
|
+
function Mn(e5, t) {
|
|
1139
|
+
return { type: "ArrayLiteral", items: e5, loc: t };
|
|
1140
|
+
}
|
|
1141
|
+
function zn(e5, t) {
|
|
1142
|
+
return { type: "HashLiteral", pairs: e5.pairs, loc: t };
|
|
1143
|
+
}
|
|
1144
|
+
function $e(e5, t) {
|
|
1145
|
+
var r = de(e5, t), n = new us(t);
|
|
1146
|
+
return n.accept(r);
|
|
1147
|
+
}
|
|
1148
|
+
var fs = { 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: `
|
|
1149
|
+
`, 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: "" }, Yn = /^#[xX]([A-Fa-f0-9]+)$/, Gn = /^#([0-9]+)$/, Kn = /^([A-Za-z0-9]+)$/, Xe = function() {
|
|
1150
|
+
function e5(t) {
|
|
1151
|
+
this.named = t;
|
|
1152
|
+
}
|
|
1153
|
+
return e5.prototype.parse = function(t) {
|
|
1154
|
+
if (t) {
|
|
1155
|
+
var r = t.match(Yn);
|
|
1156
|
+
if (r) return String.fromCharCode(parseInt(r[1], 16));
|
|
1157
|
+
if (r = t.match(Gn), r) return String.fromCharCode(parseInt(r[1], 10));
|
|
1158
|
+
if (r = t.match(Kn), r) return this.named[r[1]];
|
|
1159
|
+
}
|
|
1160
|
+
}, e5;
|
|
1161
|
+
}(), Wn = /[\t\n\f ]/, jn = /[A-Za-z]/, Qn = /\r\n?/g;
|
|
1162
|
+
function L(e5) {
|
|
1163
|
+
return Wn.test(e5);
|
|
1164
|
+
}
|
|
1165
|
+
function ps(e5) {
|
|
1166
|
+
return jn.test(e5);
|
|
1167
|
+
}
|
|
1168
|
+
function Jn(e5) {
|
|
1169
|
+
return e5.replace(Qn, `
|
|
1170
|
+
`);
|
|
1171
|
+
}
|
|
1172
|
+
var Ze = function() {
|
|
1173
|
+
function e5(t, r, n) {
|
|
1174
|
+
n === void 0 && (n = "precompile"), this.delegate = t, 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() {
|
|
1175
|
+
var s = this.peek();
|
|
1176
|
+
if (s === "<" && !this.isIgnoredEndTag()) this.transitionTo("tagOpen"), this.markTagStart(), this.consume();
|
|
1177
|
+
else {
|
|
1178
|
+
if (this.mode === "precompile" && s === `
|
|
1179
|
+
`) {
|
|
1180
|
+
var i = this.tagNameBuffer.toLowerCase();
|
|
1181
|
+
(i === "pre" || i === "textarea") && this.consume();
|
|
1182
|
+
}
|
|
1183
|
+
this.transitionTo("data"), this.delegate.beginData();
|
|
1184
|
+
}
|
|
1185
|
+
}, data: function() {
|
|
1186
|
+
var s = this.peek(), i = this.tagNameBuffer;
|
|
1187
|
+
s === "<" && !this.isIgnoredEndTag() ? (this.delegate.finishData(), this.transitionTo("tagOpen"), this.markTagStart(), this.consume()) : s === "&" && i !== "script" && i !== "style" ? (this.consume(), this.delegate.appendToData(this.consumeCharRef() || "&")) : (this.consume(), this.delegate.appendToData(s));
|
|
1188
|
+
}, tagOpen: function() {
|
|
1189
|
+
var s = this.consume();
|
|
1190
|
+
s === "!" ? this.transitionTo("markupDeclarationOpen") : s === "/" ? this.transitionTo("endTagOpen") : (s === "@" || s === ":" || ps(s)) && (this.transitionTo("tagName"), this.tagNameBuffer = "", this.delegate.beginStartTag(), this.appendToTagName(s));
|
|
1191
|
+
}, markupDeclarationOpen: function() {
|
|
1192
|
+
var s = this.consume();
|
|
1193
|
+
if (s === "-" && this.peek() === "-") this.consume(), this.transitionTo("commentStart"), this.delegate.beginComment();
|
|
1194
|
+
else {
|
|
1195
|
+
var i = s.toUpperCase() + this.input.substring(this.index, this.index + 6).toUpperCase();
|
|
1196
|
+
i === "DOCTYPE" && (this.consume(), this.consume(), this.consume(), this.consume(), this.consume(), this.consume(), this.transitionTo("doctype"), this.delegate.beginDoctype && this.delegate.beginDoctype());
|
|
1197
|
+
}
|
|
1198
|
+
}, doctype: function() {
|
|
1199
|
+
var s = this.consume();
|
|
1200
|
+
L(s) && this.transitionTo("beforeDoctypeName");
|
|
1201
|
+
}, beforeDoctypeName: function() {
|
|
1202
|
+
var s = this.consume();
|
|
1203
|
+
L(s) || (this.transitionTo("doctypeName"), this.delegate.appendToDoctypeName && this.delegate.appendToDoctypeName(s.toLowerCase()));
|
|
1204
|
+
}, doctypeName: function() {
|
|
1205
|
+
var s = this.consume();
|
|
1206
|
+
L(s) ? this.transitionTo("afterDoctypeName") : s === ">" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData")) : this.delegate.appendToDoctypeName && this.delegate.appendToDoctypeName(s.toLowerCase());
|
|
1207
|
+
}, afterDoctypeName: function() {
|
|
1208
|
+
var s = this.consume();
|
|
1209
|
+
if (!L(s)) if (s === ">") this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData");
|
|
1210
|
+
else {
|
|
1211
|
+
var i = s.toUpperCase() + this.input.substring(this.index, this.index + 5).toUpperCase(), a = i.toUpperCase() === "PUBLIC", o = i.toUpperCase() === "SYSTEM";
|
|
1212
|
+
(a || o) && (this.consume(), this.consume(), this.consume(), this.consume(), this.consume(), this.consume()), a ? this.transitionTo("afterDoctypePublicKeyword") : o && this.transitionTo("afterDoctypeSystemKeyword");
|
|
1213
|
+
}
|
|
1214
|
+
}, afterDoctypePublicKeyword: function() {
|
|
1215
|
+
var s = this.peek();
|
|
1216
|
+
L(s) ? (this.transitionTo("beforeDoctypePublicIdentifier"), this.consume()) : s === '"' ? (this.transitionTo("doctypePublicIdentifierDoubleQuoted"), this.consume()) : s === "'" ? (this.transitionTo("doctypePublicIdentifierSingleQuoted"), this.consume()) : s === ">" && (this.consume(), this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData"));
|
|
1217
|
+
}, doctypePublicIdentifierDoubleQuoted: function() {
|
|
1218
|
+
var s = this.consume();
|
|
1219
|
+
s === '"' ? this.transitionTo("afterDoctypePublicIdentifier") : s === ">" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData")) : this.delegate.appendToDoctypePublicIdentifier && this.delegate.appendToDoctypePublicIdentifier(s);
|
|
1220
|
+
}, doctypePublicIdentifierSingleQuoted: function() {
|
|
1221
|
+
var s = this.consume();
|
|
1222
|
+
s === "'" ? this.transitionTo("afterDoctypePublicIdentifier") : s === ">" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData")) : this.delegate.appendToDoctypePublicIdentifier && this.delegate.appendToDoctypePublicIdentifier(s);
|
|
1223
|
+
}, afterDoctypePublicIdentifier: function() {
|
|
1224
|
+
var s = this.consume();
|
|
1225
|
+
L(s) ? this.transitionTo("betweenDoctypePublicAndSystemIdentifiers") : s === ">" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData")) : s === '"' ? this.transitionTo("doctypeSystemIdentifierDoubleQuoted") : s === "'" && this.transitionTo("doctypeSystemIdentifierSingleQuoted");
|
|
1226
|
+
}, betweenDoctypePublicAndSystemIdentifiers: function() {
|
|
1227
|
+
var s = this.consume();
|
|
1228
|
+
L(s) || (s === ">" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData")) : s === '"' ? this.transitionTo("doctypeSystemIdentifierDoubleQuoted") : s === "'" && this.transitionTo("doctypeSystemIdentifierSingleQuoted"));
|
|
1229
|
+
}, doctypeSystemIdentifierDoubleQuoted: function() {
|
|
1230
|
+
var s = this.consume();
|
|
1231
|
+
s === '"' ? this.transitionTo("afterDoctypeSystemIdentifier") : s === ">" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData")) : this.delegate.appendToDoctypeSystemIdentifier && this.delegate.appendToDoctypeSystemIdentifier(s);
|
|
1232
|
+
}, doctypeSystemIdentifierSingleQuoted: function() {
|
|
1233
|
+
var s = this.consume();
|
|
1234
|
+
s === "'" ? this.transitionTo("afterDoctypeSystemIdentifier") : s === ">" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData")) : this.delegate.appendToDoctypeSystemIdentifier && this.delegate.appendToDoctypeSystemIdentifier(s);
|
|
1235
|
+
}, afterDoctypeSystemIdentifier: function() {
|
|
1236
|
+
var s = this.consume();
|
|
1237
|
+
L(s) || s === ">" && (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData"));
|
|
1238
|
+
}, commentStart: function() {
|
|
1239
|
+
var s = this.consume();
|
|
1240
|
+
s === "-" ? this.transitionTo("commentStartDash") : s === ">" ? (this.delegate.finishComment(), this.transitionTo("beforeData")) : (this.delegate.appendToCommentData(s), this.transitionTo("comment"));
|
|
1241
|
+
}, commentStartDash: function() {
|
|
1242
|
+
var s = this.consume();
|
|
1243
|
+
s === "-" ? this.transitionTo("commentEnd") : s === ">" ? (this.delegate.finishComment(), this.transitionTo("beforeData")) : (this.delegate.appendToCommentData("-"), this.transitionTo("comment"));
|
|
1244
|
+
}, comment: function() {
|
|
1245
|
+
var s = this.consume();
|
|
1246
|
+
s === "-" ? this.transitionTo("commentEndDash") : this.delegate.appendToCommentData(s);
|
|
1247
|
+
}, commentEndDash: function() {
|
|
1248
|
+
var s = this.consume();
|
|
1249
|
+
s === "-" ? this.transitionTo("commentEnd") : (this.delegate.appendToCommentData("-" + s), this.transitionTo("comment"));
|
|
1250
|
+
}, commentEnd: function() {
|
|
1251
|
+
var s = this.consume();
|
|
1252
|
+
s === ">" ? (this.delegate.finishComment(), this.transitionTo("beforeData")) : (this.delegate.appendToCommentData("--" + s), this.transitionTo("comment"));
|
|
1253
|
+
}, tagName: function() {
|
|
1254
|
+
var s = this.consume();
|
|
1255
|
+
L(s) ? this.transitionTo("beforeAttributeName") : s === "/" ? this.transitionTo("selfClosingStartTag") : s === ">" ? (this.delegate.finishTag(), this.transitionTo("beforeData")) : this.appendToTagName(s);
|
|
1256
|
+
}, endTagName: function() {
|
|
1257
|
+
var s = this.consume();
|
|
1258
|
+
L(s) ? (this.transitionTo("beforeAttributeName"), this.tagNameBuffer = "") : s === "/" ? (this.transitionTo("selfClosingStartTag"), this.tagNameBuffer = "") : s === ">" ? (this.delegate.finishTag(), this.transitionTo("beforeData"), this.tagNameBuffer = "") : this.appendToTagName(s);
|
|
1259
|
+
}, beforeAttributeName: function() {
|
|
1260
|
+
var s = this.peek();
|
|
1261
|
+
if (L(s)) {
|
|
1262
|
+
this.consume();
|
|
1263
|
+
return;
|
|
1264
|
+
} else s === "/" ? (this.transitionTo("selfClosingStartTag"), this.consume()) : s === ">" ? (this.consume(), this.delegate.finishTag(), this.transitionTo("beforeData")) : s === "=" ? (this.delegate.reportSyntaxError("attribute name cannot start with equals sign"), this.transitionTo("attributeName"), this.delegate.beginAttribute(), this.consume(), this.delegate.appendToAttributeName(s)) : (this.transitionTo("attributeName"), this.delegate.beginAttribute());
|
|
1265
|
+
}, attributeName: function() {
|
|
1266
|
+
var s = this.peek();
|
|
1267
|
+
L(s) ? (this.transitionTo("afterAttributeName"), this.consume()) : s === "/" ? (this.delegate.beginAttributeValue(false), this.delegate.finishAttributeValue(), this.consume(), this.transitionTo("selfClosingStartTag")) : s === "=" ? (this.transitionTo("beforeAttributeValue"), this.consume()) : s === ">" ? (this.delegate.beginAttributeValue(false), this.delegate.finishAttributeValue(), this.consume(), this.delegate.finishTag(), this.transitionTo("beforeData")) : s === '"' || s === "'" || s === "<" ? (this.delegate.reportSyntaxError(s + " is not a valid character within attribute names"), this.consume(), this.delegate.appendToAttributeName(s)) : (this.consume(), this.delegate.appendToAttributeName(s));
|
|
1268
|
+
}, afterAttributeName: function() {
|
|
1269
|
+
var s = this.peek();
|
|
1270
|
+
if (L(s)) {
|
|
1271
|
+
this.consume();
|
|
1272
|
+
return;
|
|
1273
|
+
} else s === "/" ? (this.delegate.beginAttributeValue(false), this.delegate.finishAttributeValue(), this.consume(), this.transitionTo("selfClosingStartTag")) : s === "=" ? (this.consume(), this.transitionTo("beforeAttributeValue")) : s === ">" ? (this.delegate.beginAttributeValue(false), this.delegate.finishAttributeValue(), this.consume(), this.delegate.finishTag(), this.transitionTo("beforeData")) : (this.delegate.beginAttributeValue(false), this.delegate.finishAttributeValue(), this.transitionTo("attributeName"), this.delegate.beginAttribute(), this.consume(), this.delegate.appendToAttributeName(s));
|
|
1274
|
+
}, beforeAttributeValue: function() {
|
|
1275
|
+
var s = this.peek();
|
|
1276
|
+
L(s) ? this.consume() : s === '"' ? (this.transitionTo("attributeValueDoubleQuoted"), this.delegate.beginAttributeValue(true), this.consume()) : s === "'" ? (this.transitionTo("attributeValueSingleQuoted"), this.delegate.beginAttributeValue(true), this.consume()) : s === ">" ? (this.delegate.beginAttributeValue(false), this.delegate.finishAttributeValue(), this.consume(), this.delegate.finishTag(), this.transitionTo("beforeData")) : (this.transitionTo("attributeValueUnquoted"), this.delegate.beginAttributeValue(false), this.consume(), this.delegate.appendToAttributeValue(s));
|
|
1277
|
+
}, attributeValueDoubleQuoted: function() {
|
|
1278
|
+
var s = this.consume();
|
|
1279
|
+
s === '"' ? (this.delegate.finishAttributeValue(), this.transitionTo("afterAttributeValueQuoted")) : s === "&" ? this.delegate.appendToAttributeValue(this.consumeCharRef() || "&") : this.delegate.appendToAttributeValue(s);
|
|
1280
|
+
}, attributeValueSingleQuoted: function() {
|
|
1281
|
+
var s = this.consume();
|
|
1282
|
+
s === "'" ? (this.delegate.finishAttributeValue(), this.transitionTo("afterAttributeValueQuoted")) : s === "&" ? this.delegate.appendToAttributeValue(this.consumeCharRef() || "&") : this.delegate.appendToAttributeValue(s);
|
|
1283
|
+
}, attributeValueUnquoted: function() {
|
|
1284
|
+
var s = this.peek();
|
|
1285
|
+
L(s) ? (this.delegate.finishAttributeValue(), this.consume(), this.transitionTo("beforeAttributeName")) : s === "/" ? (this.delegate.finishAttributeValue(), this.consume(), this.transitionTo("selfClosingStartTag")) : s === "&" ? (this.consume(), this.delegate.appendToAttributeValue(this.consumeCharRef() || "&")) : s === ">" ? (this.delegate.finishAttributeValue(), this.consume(), this.delegate.finishTag(), this.transitionTo("beforeData")) : (this.consume(), this.delegate.appendToAttributeValue(s));
|
|
1286
|
+
}, afterAttributeValueQuoted: function() {
|
|
1287
|
+
var s = this.peek();
|
|
1288
|
+
L(s) ? (this.consume(), this.transitionTo("beforeAttributeName")) : s === "/" ? (this.consume(), this.transitionTo("selfClosingStartTag")) : s === ">" ? (this.consume(), this.delegate.finishTag(), this.transitionTo("beforeData")) : this.transitionTo("beforeAttributeName");
|
|
1289
|
+
}, selfClosingStartTag: function() {
|
|
1290
|
+
var s = this.peek();
|
|
1291
|
+
s === ">" ? (this.consume(), this.delegate.markTagAsSelfClosing(), this.delegate.finishTag(), this.transitionTo("beforeData")) : this.transitionTo("beforeAttributeName");
|
|
1292
|
+
}, endTagOpen: function() {
|
|
1293
|
+
var s = this.consume();
|
|
1294
|
+
(s === "@" || s === ":" || ps(s)) && (this.transitionTo("endTagName"), this.tagNameBuffer = "", this.delegate.beginEndTag(), this.appendToTagName(s));
|
|
1295
|
+
} }, this.reset();
|
|
1296
|
+
}
|
|
1297
|
+
return e5.prototype.reset = function() {
|
|
1298
|
+
this.transitionTo("beforeData"), this.input = "", this.tagNameBuffer = "", this.index = 0, this.line = 1, this.column = 0, this.delegate.reset();
|
|
1299
|
+
}, e5.prototype.transitionTo = function(t) {
|
|
1300
|
+
this.state = t;
|
|
1301
|
+
}, e5.prototype.tokenize = function(t) {
|
|
1302
|
+
this.reset(), this.tokenizePart(t), this.tokenizeEOF();
|
|
1303
|
+
}, e5.prototype.tokenizePart = function(t) {
|
|
1304
|
+
for (this.input += Jn(t); this.index < this.input.length; ) {
|
|
1305
|
+
var r = this.states[this.state];
|
|
1306
|
+
if (r !== void 0) r.call(this);
|
|
1307
|
+
else throw new Error("unhandled state " + this.state);
|
|
1308
|
+
}
|
|
1309
|
+
}, e5.prototype.tokenizeEOF = function() {
|
|
1310
|
+
this.flushData();
|
|
1311
|
+
}, e5.prototype.flushData = function() {
|
|
1312
|
+
this.state === "data" && (this.delegate.finishData(), this.transitionTo("beforeData"));
|
|
1313
|
+
}, e5.prototype.peek = function() {
|
|
1314
|
+
return this.input.charAt(this.index);
|
|
1315
|
+
}, e5.prototype.consume = function() {
|
|
1316
|
+
var t = this.peek();
|
|
1317
|
+
return this.index++, t === `
|
|
1318
|
+
` ? (this.line++, this.column = 0) : this.column++, t;
|
|
1319
|
+
}, e5.prototype.consumeCharRef = function() {
|
|
1320
|
+
var t = this.input.indexOf(";", this.index);
|
|
1321
|
+
if (t !== -1) {
|
|
1322
|
+
var r = this.input.slice(this.index, t), n = this.entityParser.parse(r);
|
|
1323
|
+
if (n) {
|
|
1324
|
+
for (var s = r.length; s; ) this.consume(), s--;
|
|
1325
|
+
return this.consume(), n;
|
|
1326
|
+
}
|
|
1327
|
+
}
|
|
1328
|
+
}, e5.prototype.markTagStart = function() {
|
|
1329
|
+
this.delegate.tagOpen();
|
|
1330
|
+
}, e5.prototype.appendToTagName = function(t) {
|
|
1331
|
+
this.tagNameBuffer += t, this.delegate.appendToTagName(t);
|
|
1332
|
+
}, e5.prototype.isIgnoredEndTag = function() {
|
|
1333
|
+
var t = this.tagNameBuffer;
|
|
1334
|
+
return t === "title" && this.input.substring(this.index, this.index + 8) !== "</title>" || t === "style" && this.input.substring(this.index, this.index + 8) !== "</style>" || t === "script" && this.input.substring(this.index, this.index + 9) !== "<\/script>";
|
|
1335
|
+
}, e5;
|
|
1336
|
+
}();
|
|
1337
|
+
var ir = /* @__PURE__ */ new Set(["area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr"]);
|
|
1338
|
+
function ti(e5) {
|
|
1339
|
+
return ir.has(e5.toLowerCase()) && e5[0]?.toLowerCase() === e5[0];
|
|
1340
|
+
}
|
|
1341
|
+
function Kt(e5) {
|
|
1342
|
+
return !!e5 && e5.length > 0;
|
|
1343
|
+
}
|
|
1344
|
+
function dr(e5) {
|
|
1345
|
+
return e5.length === 0 ? void 0 : e5[e5.length - 1];
|
|
1346
|
+
}
|
|
1347
|
+
function ei(e5) {
|
|
1348
|
+
return e5.length === 0 ? void 0 : e5[0];
|
|
1349
|
+
}
|
|
1350
|
+
var nt = Object.freeze({ line: 1, column: 0 }), ri = Object.freeze({ source: "(synthetic)", start: nt, end: nt }), ar = Object.freeze({ source: "(nonexistent)", start: nt, end: nt }), st = Object.freeze({ source: "(broken)", start: nt, end: nt }), or = class {
|
|
1351
|
+
constructor(t) {
|
|
1352
|
+
this._whens = t;
|
|
1353
|
+
}
|
|
1354
|
+
first(t) {
|
|
1355
|
+
for (let r of this._whens) {
|
|
1356
|
+
let n = r.match(t);
|
|
1357
|
+
if (Kt(n)) return n[0];
|
|
1358
|
+
}
|
|
1359
|
+
return null;
|
|
1360
|
+
}
|
|
1361
|
+
}, Se = class {
|
|
1362
|
+
get(t, r) {
|
|
1363
|
+
let n = this._map.get(t);
|
|
1364
|
+
return n || (n = r(), this._map.set(t, n), n);
|
|
1365
|
+
}
|
|
1366
|
+
add(t, r) {
|
|
1367
|
+
this._map.set(t, r);
|
|
1368
|
+
}
|
|
1369
|
+
match(t) {
|
|
1370
|
+
let r = function(a) {
|
|
1371
|
+
switch (a) {
|
|
1372
|
+
case "Broken":
|
|
1373
|
+
case "InternalsSynthetic":
|
|
1374
|
+
case "NonExistent":
|
|
1375
|
+
return "IS_INVISIBLE";
|
|
1376
|
+
default:
|
|
1377
|
+
return a;
|
|
1378
|
+
}
|
|
1379
|
+
}(t), n = [], s = this._map.get(r), i = this._map.get("MATCH_ANY");
|
|
1380
|
+
return s && n.push(s), i && n.push(i), n;
|
|
1381
|
+
}
|
|
1382
|
+
constructor() {
|
|
1383
|
+
this._map = /* @__PURE__ */ new Map();
|
|
1384
|
+
}
|
|
1385
|
+
};
|
|
1386
|
+
function vs(e5) {
|
|
1387
|
+
return e5(new lr()).validate();
|
|
1388
|
+
}
|
|
1389
|
+
var lr = class {
|
|
1390
|
+
validate() {
|
|
1391
|
+
return (t, r) => this.matchFor(t.kind, r.kind)(t, r);
|
|
1392
|
+
}
|
|
1393
|
+
matchFor(t, r) {
|
|
1394
|
+
let n = this._whens.match(t);
|
|
1395
|
+
return Kt(n), new or(n).first(r);
|
|
1396
|
+
}
|
|
1397
|
+
when(t, r, n) {
|
|
1398
|
+
return this._whens.get(t, () => new Se()).add(r, n), this;
|
|
1399
|
+
}
|
|
1400
|
+
constructor() {
|
|
1401
|
+
this._whens = new Se();
|
|
1402
|
+
}
|
|
1403
|
+
}, cr = class e {
|
|
1404
|
+
static synthetic(t) {
|
|
1405
|
+
let r = A.synthetic(t);
|
|
1406
|
+
return new e({ loc: r, chars: t });
|
|
1407
|
+
}
|
|
1408
|
+
static load(t, r) {
|
|
1409
|
+
return new e({ loc: A.load(t, r[1]), chars: r[0] });
|
|
1410
|
+
}
|
|
1411
|
+
constructor(t) {
|
|
1412
|
+
this.loc = t.loc, this.chars = t.chars;
|
|
1413
|
+
}
|
|
1414
|
+
getString() {
|
|
1415
|
+
return this.chars;
|
|
1416
|
+
}
|
|
1417
|
+
serialize() {
|
|
1418
|
+
return [this.chars, this.loc.serialize()];
|
|
1419
|
+
}
|
|
1420
|
+
}, A = class e2 {
|
|
1421
|
+
static get NON_EXISTENT() {
|
|
1422
|
+
return new J("NonExistent", ar).wrap();
|
|
1423
|
+
}
|
|
1424
|
+
static load(t, r) {
|
|
1425
|
+
return typeof r == "number" ? e2.forCharPositions(t, r, r) : typeof r == "string" ? e2.synthetic(r) : Array.isArray(r) ? e2.forCharPositions(t, r[0], r[1]) : r === "NonExistent" ? e2.NON_EXISTENT : r === "Broken" ? e2.broken(st) : void as(r);
|
|
1426
|
+
}
|
|
1427
|
+
static forHbsLoc(t, r) {
|
|
1428
|
+
let n = new at(t, r.start), s = new at(t, r.end);
|
|
1429
|
+
return new Yt(t, { start: n, end: s }, r).wrap();
|
|
1430
|
+
}
|
|
1431
|
+
static forCharPositions(t, r, n) {
|
|
1432
|
+
let s = new mt(t, r), i = new mt(t, n);
|
|
1433
|
+
return new zt(t, { start: s, end: i }).wrap();
|
|
1434
|
+
}
|
|
1435
|
+
static synthetic(t) {
|
|
1436
|
+
return new J("InternalsSynthetic", ar, t).wrap();
|
|
1437
|
+
}
|
|
1438
|
+
static broken(t = st) {
|
|
1439
|
+
return new J("Broken", t).wrap();
|
|
1440
|
+
}
|
|
1441
|
+
constructor(t) {
|
|
1442
|
+
var r;
|
|
1443
|
+
this.data = t, this.isInvisible = (r = t.kind) !== "CharPosition" && r !== "HbsPosition";
|
|
1444
|
+
}
|
|
1445
|
+
getStart() {
|
|
1446
|
+
return this.data.getStart().wrap();
|
|
1447
|
+
}
|
|
1448
|
+
getEnd() {
|
|
1449
|
+
return this.data.getEnd().wrap();
|
|
1450
|
+
}
|
|
1451
|
+
get loc() {
|
|
1452
|
+
let t = this.data.toHbsSpan();
|
|
1453
|
+
return t === null ? st : t.toHbsLoc();
|
|
1454
|
+
}
|
|
1455
|
+
get module() {
|
|
1456
|
+
return this.data.getModule();
|
|
1457
|
+
}
|
|
1458
|
+
get startPosition() {
|
|
1459
|
+
return this.loc.start;
|
|
1460
|
+
}
|
|
1461
|
+
get endPosition() {
|
|
1462
|
+
return this.loc.end;
|
|
1463
|
+
}
|
|
1464
|
+
toJSON() {
|
|
1465
|
+
return this.loc;
|
|
1466
|
+
}
|
|
1467
|
+
withStart(t) {
|
|
1468
|
+
return K(t.data, this.data.getEnd());
|
|
1469
|
+
}
|
|
1470
|
+
withEnd(t) {
|
|
1471
|
+
return K(this.data.getStart(), t.data);
|
|
1472
|
+
}
|
|
1473
|
+
asString() {
|
|
1474
|
+
return this.data.asString();
|
|
1475
|
+
}
|
|
1476
|
+
toSlice(t) {
|
|
1477
|
+
let r = this.data.asString();
|
|
1478
|
+
return JSON.stringify(r), JSON.stringify(t), new cr({ loc: this, chars: t || r });
|
|
1479
|
+
}
|
|
1480
|
+
get start() {
|
|
1481
|
+
return this.loc.start;
|
|
1482
|
+
}
|
|
1483
|
+
set start(t) {
|
|
1484
|
+
this.data.locDidUpdate({ start: t });
|
|
1485
|
+
}
|
|
1486
|
+
get end() {
|
|
1487
|
+
return this.loc.end;
|
|
1488
|
+
}
|
|
1489
|
+
set end(t) {
|
|
1490
|
+
this.data.locDidUpdate({ end: t });
|
|
1491
|
+
}
|
|
1492
|
+
get source() {
|
|
1493
|
+
return this.module;
|
|
1494
|
+
}
|
|
1495
|
+
collapse(t) {
|
|
1496
|
+
switch (t) {
|
|
1497
|
+
case "start":
|
|
1498
|
+
return this.getStart().collapsed();
|
|
1499
|
+
case "end":
|
|
1500
|
+
return this.getEnd().collapsed();
|
|
1501
|
+
}
|
|
1502
|
+
}
|
|
1503
|
+
extend(t) {
|
|
1504
|
+
return K(this.data.getStart(), t.data.getEnd());
|
|
1505
|
+
}
|
|
1506
|
+
serialize() {
|
|
1507
|
+
return this.data.serialize();
|
|
1508
|
+
}
|
|
1509
|
+
slice({ skipStart: t = 0, skipEnd: r = 0 }) {
|
|
1510
|
+
return K(this.getStart().move(t).data, this.getEnd().move(-r).data);
|
|
1511
|
+
}
|
|
1512
|
+
sliceStartChars({ skipStart: t = 0, chars: r }) {
|
|
1513
|
+
return K(this.getStart().move(t).data, this.getStart().move(t + r).data);
|
|
1514
|
+
}
|
|
1515
|
+
sliceEndChars({ skipEnd: t = 0, chars: r }) {
|
|
1516
|
+
return K(this.getEnd().move(t - r).data, this.getStart().move(-t).data);
|
|
1517
|
+
}
|
|
1518
|
+
}, zt = class {
|
|
1519
|
+
#t;
|
|
1520
|
+
constructor(t, r) {
|
|
1521
|
+
this.source = t, this.charPositions = r, this.kind = "CharPosition", this.#t = null;
|
|
1522
|
+
}
|
|
1523
|
+
wrap() {
|
|
1524
|
+
return new A(this);
|
|
1525
|
+
}
|
|
1526
|
+
asString() {
|
|
1527
|
+
return this.source.slice(this.charPositions.start.charPos, this.charPositions.end.charPos);
|
|
1528
|
+
}
|
|
1529
|
+
getModule() {
|
|
1530
|
+
return this.source.module;
|
|
1531
|
+
}
|
|
1532
|
+
getStart() {
|
|
1533
|
+
return this.charPositions.start;
|
|
1534
|
+
}
|
|
1535
|
+
getEnd() {
|
|
1536
|
+
return this.charPositions.end;
|
|
1537
|
+
}
|
|
1538
|
+
locDidUpdate() {
|
|
1539
|
+
}
|
|
1540
|
+
toHbsSpan() {
|
|
1541
|
+
let t = this.#t;
|
|
1542
|
+
if (t === null) {
|
|
1543
|
+
let r = this.charPositions.start.toHbsPos(), n = this.charPositions.end.toHbsPos();
|
|
1544
|
+
t = this.#t = r === null || n === null ? it : new Yt(this.source, { start: r, end: n });
|
|
1545
|
+
}
|
|
1546
|
+
return t === it ? null : t;
|
|
1547
|
+
}
|
|
1548
|
+
serialize() {
|
|
1549
|
+
let { start: { charPos: t }, end: { charPos: r } } = this.charPositions;
|
|
1550
|
+
return t === r ? t : [t, r];
|
|
1551
|
+
}
|
|
1552
|
+
toCharPosSpan() {
|
|
1553
|
+
return this;
|
|
1554
|
+
}
|
|
1555
|
+
}, Yt = class {
|
|
1556
|
+
#t;
|
|
1557
|
+
#e;
|
|
1558
|
+
constructor(t, r, n = null) {
|
|
1559
|
+
this.source = t, this.hbsPositions = r, this.kind = "HbsPosition", this.#t = null, this.#e = n;
|
|
1560
|
+
}
|
|
1561
|
+
serialize() {
|
|
1562
|
+
let t = this.toCharPosSpan();
|
|
1563
|
+
return t === null ? "Broken" : t.wrap().serialize();
|
|
1564
|
+
}
|
|
1565
|
+
wrap() {
|
|
1566
|
+
return new A(this);
|
|
1567
|
+
}
|
|
1568
|
+
updateProvided(t, r) {
|
|
1569
|
+
this.#e && (this.#e[r] = t), this.#t = null, this.#e = { start: t, end: t };
|
|
1570
|
+
}
|
|
1571
|
+
locDidUpdate({ start: t, end: r }) {
|
|
1572
|
+
t !== void 0 && (this.updateProvided(t, "start"), this.hbsPositions.start = new at(this.source, t, null)), r !== void 0 && (this.updateProvided(r, "end"), this.hbsPositions.end = new at(this.source, r, null));
|
|
1573
|
+
}
|
|
1574
|
+
asString() {
|
|
1575
|
+
let t = this.toCharPosSpan();
|
|
1576
|
+
return t === null ? "" : t.asString();
|
|
1577
|
+
}
|
|
1578
|
+
getModule() {
|
|
1579
|
+
return this.source.module;
|
|
1580
|
+
}
|
|
1581
|
+
getStart() {
|
|
1582
|
+
return this.hbsPositions.start;
|
|
1583
|
+
}
|
|
1584
|
+
getEnd() {
|
|
1585
|
+
return this.hbsPositions.end;
|
|
1586
|
+
}
|
|
1587
|
+
toHbsLoc() {
|
|
1588
|
+
return { start: this.hbsPositions.start.hbsPos, end: this.hbsPositions.end.hbsPos };
|
|
1589
|
+
}
|
|
1590
|
+
toHbsSpan() {
|
|
1591
|
+
return this;
|
|
1592
|
+
}
|
|
1593
|
+
toCharPosSpan() {
|
|
1594
|
+
let t = this.#t;
|
|
1595
|
+
if (t === null) {
|
|
1596
|
+
let r = this.hbsPositions.start.toCharPos(), n = this.hbsPositions.end.toCharPos();
|
|
1597
|
+
if (!r || !n) return t = this.#t = it, null;
|
|
1598
|
+
t = this.#t = new zt(this.source, { start: r, end: n });
|
|
1599
|
+
}
|
|
1600
|
+
return t === it ? null : t;
|
|
1601
|
+
}
|
|
1602
|
+
}, J = class {
|
|
1603
|
+
constructor(t, r, n = null) {
|
|
1604
|
+
this.kind = t, this.loc = r, this.string = n;
|
|
1605
|
+
}
|
|
1606
|
+
serialize() {
|
|
1607
|
+
switch (this.kind) {
|
|
1608
|
+
case "Broken":
|
|
1609
|
+
case "NonExistent":
|
|
1610
|
+
return this.kind;
|
|
1611
|
+
case "InternalsSynthetic":
|
|
1612
|
+
return this.string || "";
|
|
1613
|
+
}
|
|
1614
|
+
}
|
|
1615
|
+
wrap() {
|
|
1616
|
+
return new A(this);
|
|
1617
|
+
}
|
|
1618
|
+
asString() {
|
|
1619
|
+
return this.string || "";
|
|
1620
|
+
}
|
|
1621
|
+
locDidUpdate({ start: t, end: r }) {
|
|
1622
|
+
t !== void 0 && (this.loc.start = t), r !== void 0 && (this.loc.end = r);
|
|
1623
|
+
}
|
|
1624
|
+
getModule() {
|
|
1625
|
+
return "an unknown module";
|
|
1626
|
+
}
|
|
1627
|
+
getStart() {
|
|
1628
|
+
return new Gt(this.kind, this.loc.start);
|
|
1629
|
+
}
|
|
1630
|
+
getEnd() {
|
|
1631
|
+
return new Gt(this.kind, this.loc.end);
|
|
1632
|
+
}
|
|
1633
|
+
toCharPosSpan() {
|
|
1634
|
+
return this;
|
|
1635
|
+
}
|
|
1636
|
+
toHbsSpan() {
|
|
1637
|
+
return null;
|
|
1638
|
+
}
|
|
1639
|
+
toHbsLoc() {
|
|
1640
|
+
return st;
|
|
1641
|
+
}
|
|
1642
|
+
}, K = vs((e5) => e5.when("HbsPosition", "HbsPosition", (t, r) => new Yt(t.source, { start: t, end: r }).wrap()).when("CharPosition", "CharPosition", (t, r) => new zt(t.source, { start: t, end: r }).wrap()).when("CharPosition", "HbsPosition", (t, r) => {
|
|
1643
|
+
let n = r.toCharPos();
|
|
1644
|
+
return n === null ? new J("Broken", st).wrap() : K(t, n);
|
|
1645
|
+
}).when("HbsPosition", "CharPosition", (t, r) => {
|
|
1646
|
+
let n = t.toCharPos();
|
|
1647
|
+
return n === null ? new J("Broken", st).wrap() : K(n, r);
|
|
1648
|
+
}).when("IS_INVISIBLE", "MATCH_ANY", (t) => new J(t.kind, st).wrap()).when("MATCH_ANY", "IS_INVISIBLE", (t, r) => new J(r.kind, st).wrap())), it = "BROKEN", Ct = class e3 {
|
|
1649
|
+
static forHbsPos(t, r) {
|
|
1650
|
+
return new at(t, r, null).wrap();
|
|
1651
|
+
}
|
|
1652
|
+
static broken(t = nt) {
|
|
1653
|
+
return new Gt("Broken", t).wrap();
|
|
1654
|
+
}
|
|
1655
|
+
constructor(t) {
|
|
1656
|
+
this.data = t;
|
|
1657
|
+
}
|
|
1658
|
+
get offset() {
|
|
1659
|
+
let t = this.data.toCharPos();
|
|
1660
|
+
return t === null ? null : t.offset;
|
|
1661
|
+
}
|
|
1662
|
+
eql(t) {
|
|
1663
|
+
return si(this.data, t.data);
|
|
1664
|
+
}
|
|
1665
|
+
until(t) {
|
|
1666
|
+
return K(this.data, t.data);
|
|
1667
|
+
}
|
|
1668
|
+
move(t) {
|
|
1669
|
+
let r = this.data.toCharPos();
|
|
1670
|
+
if (r === null) return e3.broken();
|
|
1671
|
+
{
|
|
1672
|
+
let n = r.offset + t;
|
|
1673
|
+
return r.source.validate(n) ? new mt(r.source, n).wrap() : e3.broken();
|
|
1674
|
+
}
|
|
1675
|
+
}
|
|
1676
|
+
collapsed() {
|
|
1677
|
+
return K(this.data, this.data);
|
|
1678
|
+
}
|
|
1679
|
+
toJSON() {
|
|
1680
|
+
return this.data.toJSON();
|
|
1681
|
+
}
|
|
1682
|
+
}, mt = class {
|
|
1683
|
+
constructor(t, r) {
|
|
1684
|
+
this.source = t, this.charPos = r, this.kind = "CharPosition", this._locPos = null;
|
|
1685
|
+
}
|
|
1686
|
+
toCharPos() {
|
|
1687
|
+
return this;
|
|
1688
|
+
}
|
|
1689
|
+
toJSON() {
|
|
1690
|
+
let t = this.toHbsPos();
|
|
1691
|
+
return t === null ? nt : t.toJSON();
|
|
1692
|
+
}
|
|
1693
|
+
wrap() {
|
|
1694
|
+
return new Ct(this);
|
|
1695
|
+
}
|
|
1696
|
+
get offset() {
|
|
1697
|
+
return this.charPos;
|
|
1698
|
+
}
|
|
1699
|
+
toHbsPos() {
|
|
1700
|
+
let t = this._locPos;
|
|
1701
|
+
if (t === null) {
|
|
1702
|
+
let r = this.source.hbsPosFor(this.charPos);
|
|
1703
|
+
this._locPos = t = r === null ? it : new at(this.source, r, this.charPos);
|
|
1704
|
+
}
|
|
1705
|
+
return t === it ? null : t;
|
|
1706
|
+
}
|
|
1707
|
+
}, at = class {
|
|
1708
|
+
constructor(t, r, n = null) {
|
|
1709
|
+
this.source = t, this.hbsPos = r, this.kind = "HbsPosition", this._charPos = n === null ? null : new mt(t, n);
|
|
1710
|
+
}
|
|
1711
|
+
toCharPos() {
|
|
1712
|
+
let t = this._charPos;
|
|
1713
|
+
if (t === null) {
|
|
1714
|
+
let r = this.source.charPosFor(this.hbsPos);
|
|
1715
|
+
this._charPos = t = r === null ? it : new mt(this.source, r);
|
|
1716
|
+
}
|
|
1717
|
+
return t === it ? null : t;
|
|
1718
|
+
}
|
|
1719
|
+
toJSON() {
|
|
1720
|
+
return this.hbsPos;
|
|
1721
|
+
}
|
|
1722
|
+
wrap() {
|
|
1723
|
+
return new Ct(this);
|
|
1724
|
+
}
|
|
1725
|
+
toHbsPos() {
|
|
1726
|
+
return this;
|
|
1727
|
+
}
|
|
1728
|
+
}, Gt = class {
|
|
1729
|
+
constructor(t, r) {
|
|
1730
|
+
this.kind = t, this.pos = r;
|
|
1731
|
+
}
|
|
1732
|
+
toCharPos() {
|
|
1733
|
+
return null;
|
|
1734
|
+
}
|
|
1735
|
+
toJSON() {
|
|
1736
|
+
return this.pos;
|
|
1737
|
+
}
|
|
1738
|
+
wrap() {
|
|
1739
|
+
return new Ct(this);
|
|
1740
|
+
}
|
|
1741
|
+
get offset() {
|
|
1742
|
+
return null;
|
|
1743
|
+
}
|
|
1744
|
+
}, si = vs((e5) => e5.when("HbsPosition", "HbsPosition", ({ hbsPos: t }, { hbsPos: r }) => t.column === r.column && t.line === r.line).when("CharPosition", "CharPosition", ({ charPos: t }, { charPos: r }) => t === r).when("CharPosition", "HbsPosition", ({ offset: t }, r) => t === r.toCharPos()?.offset).when("HbsPosition", "CharPosition", (t, { offset: r }) => t.toCharPos()?.offset === r).when("MATCH_ANY", "MATCH_ANY", () => false)), ft = class e4 {
|
|
1745
|
+
static from(t, r = {}) {
|
|
1746
|
+
return new e4(t, r.meta?.moduleName);
|
|
1747
|
+
}
|
|
1748
|
+
constructor(t, r = "an unknown module") {
|
|
1749
|
+
this.source = t, this.module = r;
|
|
1750
|
+
}
|
|
1751
|
+
validate(t) {
|
|
1752
|
+
return t >= 0 && t <= this.source.length;
|
|
1753
|
+
}
|
|
1754
|
+
slice(t, r) {
|
|
1755
|
+
return this.source.slice(t, r);
|
|
1756
|
+
}
|
|
1757
|
+
offsetFor(t, r) {
|
|
1758
|
+
return Ct.forHbsPos(this, { line: t, column: r });
|
|
1759
|
+
}
|
|
1760
|
+
spanFor({ start: t, end: r }) {
|
|
1761
|
+
return A.forHbsLoc(this, { start: { line: t.line, column: t.column }, end: { line: r.line, column: r.column } });
|
|
1762
|
+
}
|
|
1763
|
+
hbsPosFor(t) {
|
|
1764
|
+
let r = 0, n = 0;
|
|
1765
|
+
if (t > this.source.length) return null;
|
|
1766
|
+
for (; ; ) {
|
|
1767
|
+
let s = this.source.indexOf(`
|
|
1768
|
+
`, n);
|
|
1769
|
+
if (t <= s || s === -1) return { line: r + 1, column: t - n };
|
|
1770
|
+
r += 1, n = s + 1;
|
|
1771
|
+
}
|
|
1772
|
+
}
|
|
1773
|
+
charPosFor(t) {
|
|
1774
|
+
let { line: r, column: n } = t, s = this.source.length, i = 0, a = 0;
|
|
1775
|
+
for (; a < s; ) {
|
|
1776
|
+
let o = this.source.indexOf(`
|
|
1777
|
+
`, a);
|
|
1778
|
+
if (o === -1 && (o = this.source.length), i === r - 1) {
|
|
1779
|
+
if (a + n > o) return o;
|
|
1780
|
+
return a + n;
|
|
1781
|
+
}
|
|
1782
|
+
if (o === -1) return 0;
|
|
1783
|
+
i += 1, a = o + 1;
|
|
1784
|
+
}
|
|
1785
|
+
return s;
|
|
1786
|
+
}
|
|
1787
|
+
};
|
|
1788
|
+
function k(e5, t) {
|
|
1789
|
+
let { module: r, loc: n } = t, { line: s, column: i } = n.start, a = t.asString(), o = a ? `
|
|
1790
|
+
|
|
1791
|
+
|
|
|
1792
|
+
| ${a.split(`
|
|
1793
|
+
`).join(`
|
|
1794
|
+
| `)}
|
|
1795
|
+
|
|
|
1796
|
+
|
|
1797
|
+
` : "", c = new Error(`${e5}: ${o}(error occurred in '${r}' @ line ${s} : column ${i})`);
|
|
1798
|
+
return c.name = "SyntaxError", c.location = t, c.code = a, c;
|
|
1799
|
+
}
|
|
1800
|
+
var ni = { 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"] }, gr = function() {
|
|
1801
|
+
function e5(t, r, n, s) {
|
|
1802
|
+
let i = Error.call(this, t);
|
|
1803
|
+
this.key = s, this.message = t, this.node = r, this.parent = n, i.stack && (this.stack = i.stack);
|
|
1804
|
+
}
|
|
1805
|
+
return e5.prototype = Object.create(Error.prototype), e5.prototype.constructor = e5, e5;
|
|
1806
|
+
}();
|
|
1807
|
+
function ds(e5, t, r) {
|
|
1808
|
+
return new gr("Cannot remove a node unless it is part of an array", e5, t, r);
|
|
1809
|
+
}
|
|
1810
|
+
function ii(e5, t, r) {
|
|
1811
|
+
return new gr("Cannot replace a node with multiple nodes unless it is part of an array", e5, t, r);
|
|
1812
|
+
}
|
|
1813
|
+
function gs(e5, t) {
|
|
1814
|
+
return new gr("Replacing and removing in key handlers is not yet supported.", e5, null, t);
|
|
1815
|
+
}
|
|
1816
|
+
var Lt = class {
|
|
1817
|
+
constructor(t, r = null, n = null) {
|
|
1818
|
+
this.node = t, this.parent = r, this.parentKey = n;
|
|
1819
|
+
}
|
|
1820
|
+
get parentNode() {
|
|
1821
|
+
return this.parent ? this.parent.node : null;
|
|
1822
|
+
}
|
|
1823
|
+
parents() {
|
|
1824
|
+
return { [Symbol.iterator]: () => new ur(this) };
|
|
1825
|
+
}
|
|
1826
|
+
}, ur = class {
|
|
1827
|
+
constructor(t) {
|
|
1828
|
+
this.path = t;
|
|
1829
|
+
}
|
|
1830
|
+
next() {
|
|
1831
|
+
return this.path.parent ? (this.path = this.path.parent, { done: false, value: this.path }) : { done: true, value: null };
|
|
1832
|
+
}
|
|
1833
|
+
};
|
|
1834
|
+
function ws(e5) {
|
|
1835
|
+
return typeof e5 == "function" ? e5 : e5.enter;
|
|
1836
|
+
}
|
|
1837
|
+
function Ts(e5) {
|
|
1838
|
+
return typeof e5 == "function" ? void 0 : e5.exit;
|
|
1839
|
+
}
|
|
1840
|
+
function ke(e5, t) {
|
|
1841
|
+
let r, n, s, { node: i, parent: a, parentKey: o } = t, c = function(h, f) {
|
|
1842
|
+
if (h.Program && (f === "Template" && !h.Template || f === "Block" && !h.Block)) return h.Program;
|
|
1843
|
+
let p = h[f];
|
|
1844
|
+
return p !== void 0 ? p : h.All;
|
|
1845
|
+
}(e5, i.type);
|
|
1846
|
+
if (c !== void 0 && (r = ws(c), n = Ts(c)), r !== void 0 && (s = r(i, t)), s != null) {
|
|
1847
|
+
if (JSON.stringify(i) !== JSON.stringify(s)) return Array.isArray(s) ? (xs(e5, s, a, o), s) : ke(e5, new Lt(s, a, o)) || s;
|
|
1848
|
+
s = void 0;
|
|
1849
|
+
}
|
|
1850
|
+
if (s === void 0) {
|
|
1851
|
+
let h = ni[i.type];
|
|
1852
|
+
for (let f = 0; f < h.length; f++) ai(e5, c, t, h[f]);
|
|
1853
|
+
n !== void 0 && (s = n(i, t));
|
|
1854
|
+
}
|
|
1855
|
+
return s;
|
|
1856
|
+
}
|
|
1857
|
+
function bs(e5, t, r) {
|
|
1858
|
+
e5[t] = r;
|
|
1859
|
+
}
|
|
1860
|
+
function ai(e5, t, r, n) {
|
|
1861
|
+
let s, i, { node: a } = r, o = function(c, h) {
|
|
1862
|
+
return c[h];
|
|
1863
|
+
}(a, n);
|
|
1864
|
+
if (o) {
|
|
1865
|
+
if (t !== void 0) {
|
|
1866
|
+
let c = function(h, f) {
|
|
1867
|
+
let p = typeof h != "function" ? h.keys : void 0;
|
|
1868
|
+
if (p === void 0) return;
|
|
1869
|
+
let g = p[f];
|
|
1870
|
+
return g !== void 0 ? g : p.All;
|
|
1871
|
+
}(t, n);
|
|
1872
|
+
c !== void 0 && (s = ws(c), i = Ts(c));
|
|
1873
|
+
}
|
|
1874
|
+
if (s !== void 0 && s(a, n) !== void 0) throw gs(a, n);
|
|
1875
|
+
if (Array.isArray(o)) xs(e5, o, r, n);
|
|
1876
|
+
else {
|
|
1877
|
+
let c = ke(e5, new Lt(o, r, n));
|
|
1878
|
+
c !== void 0 && function(h, f, p, g) {
|
|
1879
|
+
if (g === null) throw ds(p, h, f);
|
|
1880
|
+
if (Array.isArray(g)) {
|
|
1881
|
+
if (g.length !== 1) throw g.length === 0 ? ds(p, h, f) : ii(p, h, f);
|
|
1882
|
+
bs(h, f, g[0]);
|
|
1883
|
+
} else bs(h, f, g);
|
|
1884
|
+
}(a, n, o, c);
|
|
1885
|
+
}
|
|
1886
|
+
if (i !== void 0 && i(a, n) !== void 0) throw gs(a, n);
|
|
1887
|
+
}
|
|
1888
|
+
}
|
|
1889
|
+
function xs(e5, t, r, n) {
|
|
1890
|
+
for (let s = 0; s < t.length; s++) {
|
|
1891
|
+
let i = t[s], a = ke(e5, new Lt(i, r, n));
|
|
1892
|
+
a !== void 0 && (s += oi(t, s, a) - 1);
|
|
1893
|
+
}
|
|
1894
|
+
}
|
|
1895
|
+
function oi(e5, t, r) {
|
|
1896
|
+
return r === null ? (e5.splice(t, 1), 0) : Array.isArray(r) ? (e5.splice(t, 1, ...r), r.length) : (e5.splice(t, 1, r), 1);
|
|
1897
|
+
}
|
|
1898
|
+
function li(e5, t) {
|
|
1899
|
+
ke(t, new Lt(e5));
|
|
1900
|
+
}
|
|
1901
|
+
function Pt(e5, t) {
|
|
1902
|
+
(function(r) {
|
|
1903
|
+
switch (r.type) {
|
|
1904
|
+
case "Block":
|
|
1905
|
+
case "Template":
|
|
1906
|
+
return r.body;
|
|
1907
|
+
case "ElementNode":
|
|
1908
|
+
return r.children;
|
|
1909
|
+
}
|
|
1910
|
+
})(e5).push(t);
|
|
1911
|
+
}
|
|
1912
|
+
function Ns(e5) {
|
|
1913
|
+
return e5.type === "StringLiteral" || e5.type === "BooleanLiteral" || e5.type === "NumberLiteral" || e5.type === "NullLiteral" || e5.type === "UndefinedLiteral";
|
|
1914
|
+
}
|
|
1915
|
+
var tr;
|
|
1916
|
+
function er() {
|
|
1917
|
+
return tr || (tr = new ft("", "(synthetic)")), tr;
|
|
1918
|
+
}
|
|
1919
|
+
function ys(e5, t) {
|
|
1920
|
+
return d.var({ name: e5, loc: v(t || null) });
|
|
1921
|
+
}
|
|
1922
|
+
function rt(e5, t) {
|
|
1923
|
+
let r = v(t || null);
|
|
1924
|
+
if (typeof e5 != "string") {
|
|
1925
|
+
if ("type" in e5) return e5;
|
|
1926
|
+
{
|
|
1927
|
+
e5.head.indexOf(".");
|
|
1928
|
+
let { head: i, tail: a } = e5;
|
|
1929
|
+
return d.path({ head: d.head({ original: i, loc: r.sliceStartChars({ chars: i.length }) }), tail: a, loc: v(t || null) });
|
|
1930
|
+
}
|
|
1931
|
+
}
|
|
1932
|
+
let { head: n, tail: s } = function(i, a) {
|
|
1933
|
+
let [o, ...c] = i.split("."), h = d.head({ original: o, loc: v(a || null) });
|
|
1934
|
+
return d.path({ head: h, tail: c, loc: v(a || null) });
|
|
1935
|
+
}(e5, r);
|
|
1936
|
+
return d.path({ head: n, tail: s, loc: r });
|
|
1937
|
+
}
|
|
1938
|
+
function ye(e5, t, r) {
|
|
1939
|
+
return d.literal({ type: e5, value: t, loc: v(r || null) });
|
|
1940
|
+
}
|
|
1941
|
+
function Mt(e5 = [], t) {
|
|
1942
|
+
return d.hash({ pairs: e5, loc: v(t || null) });
|
|
1943
|
+
}
|
|
1944
|
+
function As(e5) {
|
|
1945
|
+
return e5.map((t) => typeof t == "string" ? d.var({ name: t, loc: A.synthetic(t) }) : t);
|
|
1946
|
+
}
|
|
1947
|
+
function Ss(e5 = [], t = [], r = false, n) {
|
|
1948
|
+
return d.blockItself({ body: e5, params: As(t), chained: r, loc: v(n || null) });
|
|
1949
|
+
}
|
|
1950
|
+
function ks(e5 = [], t = [], r) {
|
|
1951
|
+
return d.template({ body: e5, blockParams: t, loc: v(r || null) });
|
|
1952
|
+
}
|
|
1953
|
+
function v(...e5) {
|
|
1954
|
+
if (e5.length === 1) {
|
|
1955
|
+
let t = e5[0];
|
|
1956
|
+
return t && typeof t == "object" ? A.forHbsLoc(er(), t) : A.forHbsLoc(er(), ri);
|
|
1957
|
+
}
|
|
1958
|
+
{
|
|
1959
|
+
let [t, r, n, s, i] = e5, a = i ? new ft("", i) : er();
|
|
1960
|
+
return A.forHbsLoc(a, { start: { line: t, column: r }, end: { line: n || t, column: s || r } });
|
|
1961
|
+
}
|
|
1962
|
+
}
|
|
1963
|
+
var ci = { mustache: function(e5, t = [], r = Mt([]), n = false, s, i) {
|
|
1964
|
+
return d.mustache({ path: rt(e5), params: t, hash: r, trusting: n, strip: i, loc: v(s || null) });
|
|
1965
|
+
}, block: function(e5, t, r, n, s = null, i, a, o, c) {
|
|
1966
|
+
let h, f = null;
|
|
1967
|
+
return h = n.type === "Template" ? d.blockItself({ params: As(n.blockParams), body: n.body, loc: n.loc }) : n, s?.type === "Template" ? (s.blockParams.length, f = d.blockItself({ params: [], body: s.body, loc: s.loc })) : f = s, d.block({ path: rt(e5), params: t || [], hash: r || Mt([]), defaultBlock: h, elseBlock: f, loc: v(i || null), openStrip: a, inverseStrip: o, closeStrip: c });
|
|
1968
|
+
}, comment: function(e5, t) {
|
|
1969
|
+
return d.comment({ value: e5, loc: v(t || null) });
|
|
1970
|
+
}, mustacheComment: function(e5, t) {
|
|
1971
|
+
return d.mustacheComment({ value: e5, loc: v(t || null) });
|
|
1972
|
+
}, element: function(e5, t = {}) {
|
|
1973
|
+
let r, n, { attrs: s, blockParams: i, modifiers: a, comments: o, children: c, openTag: h, closeTag: f, loc: p } = t;
|
|
1974
|
+
typeof e5 == "string" ? e5.endsWith("/") ? (r = rt(e5.slice(0, -1)), n = true) : r = rt(e5) : "type" in e5 ? (e5.type, e5.type, r = e5) : "path" in e5 ? (e5.path.type, e5.path.type, r = e5.path, n = e5.selfClosing) : (r = rt(e5.name), n = e5.selfClosing);
|
|
1975
|
+
let g = i?.map((T) => typeof T == "string" ? ys(T) : T), E = null;
|
|
1976
|
+
return f ? E = v(f) : f === void 0 && (E = n || ti(r.original) ? null : v(null)), d.element({ path: r, selfClosing: n || false, attributes: s || [], params: g || [], modifiers: a || [], comments: o || [], children: c || [], openTag: v(h || null), closeTag: E, loc: v(p || null) });
|
|
1977
|
+
}, elementModifier: function(e5, t, r, n) {
|
|
1978
|
+
return d.elementModifier({ path: rt(e5), params: t || [], hash: r || Mt([]), loc: v(n || null) });
|
|
1979
|
+
}, attr: function(e5, t, r) {
|
|
1980
|
+
return d.attr({ name: e5, value: t, loc: v(r || null) });
|
|
1981
|
+
}, text: function(e5 = "", t) {
|
|
1982
|
+
return d.text({ chars: e5, loc: v(t || null) });
|
|
1983
|
+
}, sexpr: function(e5, t = [], r = Mt([]), n) {
|
|
1984
|
+
return d.sexpr({ path: rt(e5), params: t, hash: r, loc: v(n || null) });
|
|
1985
|
+
}, concat: function(e5, t) {
|
|
1986
|
+
if (!Kt(e5)) throw new Error("b.concat requires at least one part");
|
|
1987
|
+
return d.concat({ parts: e5, loc: v(t || null) });
|
|
1988
|
+
}, hash: Mt, pair: function(e5, t, r) {
|
|
1989
|
+
return d.pair({ key: e5, value: t, loc: v(r || null) });
|
|
1990
|
+
}, literal: ye, program: function(e5, t, r) {
|
|
1991
|
+
return t && t.length ? Ss(e5, t, false, r) : ks(e5, [], r);
|
|
1992
|
+
}, blockItself: Ss, template: ks, loc: v, pos: function(e5, t) {
|
|
1993
|
+
return d.pos({ line: e5, column: t });
|
|
1994
|
+
}, path: rt, fullPath: function(e5, t = [], r) {
|
|
1995
|
+
return d.path({ head: e5, tail: t, loc: v(r || null) });
|
|
1996
|
+
}, head: function(e5, t) {
|
|
1997
|
+
return d.head({ original: e5, loc: v(t || null) });
|
|
1998
|
+
}, at: function(e5, t) {
|
|
1999
|
+
return d.atName({ name: e5, loc: v(t || null) });
|
|
2000
|
+
}, var: ys, this: function(e5) {
|
|
2001
|
+
return d.this({ loc: v(e5 || null) });
|
|
2002
|
+
}, string: rr("StringLiteral"), boolean: rr("BooleanLiteral"), number: rr("NumberLiteral"), undefined: () => ye("UndefinedLiteral", void 0), null: () => ye("NullLiteral", null) };
|
|
2003
|
+
function rr(e5) {
|
|
2004
|
+
return function(t, r) {
|
|
2005
|
+
return ye(e5, t, r);
|
|
2006
|
+
};
|
|
2007
|
+
}
|
|
2008
|
+
var be = { close: false, open: false }, d = new class {
|
|
2009
|
+
pos({ line: e5, column: t }) {
|
|
2010
|
+
return { line: e5, column: t };
|
|
2011
|
+
}
|
|
2012
|
+
blockItself({ body: e5, params: t, chained: r = false, loc: n }) {
|
|
2013
|
+
return { type: "Block", body: e5, params: t, get blockParams() {
|
|
2014
|
+
return this.params.map((s) => s.name);
|
|
2015
|
+
}, set blockParams(s) {
|
|
2016
|
+
this.params = s.map((i) => d.var({ name: i, loc: A.synthetic(i) }));
|
|
2017
|
+
}, chained: r, loc: n };
|
|
2018
|
+
}
|
|
2019
|
+
template({ body: e5, blockParams: t, loc: r }) {
|
|
2020
|
+
return { type: "Template", body: e5, blockParams: t, loc: r };
|
|
2021
|
+
}
|
|
2022
|
+
mustache({ path: e5, params: t, hash: r, trusting: n, loc: s, strip: i = be }) {
|
|
2023
|
+
return function({ path: a, params: o, hash: c, trusting: h, strip: f, loc: p }) {
|
|
2024
|
+
let g = { type: "MustacheStatement", path: a, params: o, hash: c, trusting: h, strip: f, loc: p };
|
|
2025
|
+
return Object.defineProperty(g, "escaped", { enumerable: false, get() {
|
|
2026
|
+
return !this.trusting;
|
|
2027
|
+
}, set(E) {
|
|
2028
|
+
this.trusting = !E;
|
|
2029
|
+
} }), g;
|
|
2030
|
+
}({ path: e5, params: t, hash: r, trusting: n, strip: i, loc: s });
|
|
2031
|
+
}
|
|
2032
|
+
block({ path: e5, params: t, hash: r, defaultBlock: n, elseBlock: s = null, loc: i, openStrip: a = be, inverseStrip: o = be, closeStrip: c = be }) {
|
|
2033
|
+
return { type: "BlockStatement", path: e5, params: t, hash: r, program: n, inverse: s, loc: i, openStrip: a, inverseStrip: o, closeStrip: c };
|
|
2034
|
+
}
|
|
2035
|
+
comment({ value: e5, loc: t }) {
|
|
2036
|
+
return { type: "CommentStatement", value: e5, loc: t };
|
|
2037
|
+
}
|
|
2038
|
+
mustacheComment({ value: e5, loc: t }) {
|
|
2039
|
+
return { type: "MustacheCommentStatement", value: e5, loc: t };
|
|
2040
|
+
}
|
|
2041
|
+
concat({ parts: e5, loc: t }) {
|
|
2042
|
+
return { type: "ConcatStatement", parts: e5, loc: t };
|
|
2043
|
+
}
|
|
2044
|
+
element({ path: e5, selfClosing: t, attributes: r, modifiers: n, params: s, comments: i, children: a, openTag: o, closeTag: c, loc: h }) {
|
|
2045
|
+
let f = t;
|
|
2046
|
+
return { type: "ElementNode", path: e5, attributes: r, modifiers: n, params: s, comments: i, children: a, openTag: o, closeTag: c, loc: h, get tag() {
|
|
2047
|
+
return this.path.original;
|
|
2048
|
+
}, set tag(p) {
|
|
2049
|
+
this.path.original = p;
|
|
2050
|
+
}, get blockParams() {
|
|
2051
|
+
return this.params.map((p) => p.name);
|
|
2052
|
+
}, set blockParams(p) {
|
|
2053
|
+
this.params = p.map((g) => d.var({ name: g, loc: A.synthetic(g) }));
|
|
2054
|
+
}, get selfClosing() {
|
|
2055
|
+
return f;
|
|
2056
|
+
}, set selfClosing(p) {
|
|
2057
|
+
f = p, this.closeTag = p ? null : A.synthetic(`</${this.tag}>`);
|
|
2058
|
+
} };
|
|
2059
|
+
}
|
|
2060
|
+
elementModifier({ path: e5, params: t, hash: r, loc: n }) {
|
|
2061
|
+
return { type: "ElementModifierStatement", path: e5, params: t, hash: r, loc: n };
|
|
2062
|
+
}
|
|
2063
|
+
attr({ name: e5, value: t, loc: r }) {
|
|
2064
|
+
return { type: "AttrNode", name: e5, value: t, loc: r };
|
|
2065
|
+
}
|
|
2066
|
+
text({ chars: e5, loc: t }) {
|
|
2067
|
+
return { type: "TextNode", chars: e5, loc: t };
|
|
2068
|
+
}
|
|
2069
|
+
sexpr({ path: e5, params: t, hash: r, loc: n }) {
|
|
2070
|
+
return { type: "SubExpression", path: e5, params: t, hash: r, loc: n };
|
|
2071
|
+
}
|
|
2072
|
+
path({ head: e5, tail: t, loc: r }) {
|
|
2073
|
+
return function({ head: n, tail: s, loc: i }) {
|
|
2074
|
+
let a = { type: "PathExpression", head: n, tail: s, get original() {
|
|
2075
|
+
return [this.head.original, ...this.tail].join(".");
|
|
2076
|
+
}, set original(o) {
|
|
2077
|
+
let [c, ...h] = o.split(".");
|
|
2078
|
+
this.head = ci.head(c, this.head.loc), this.tail = h;
|
|
2079
|
+
}, loc: i };
|
|
2080
|
+
return Object.defineProperty(a, "parts", { enumerable: false, get() {
|
|
2081
|
+
let o = this.original.split(".");
|
|
2082
|
+
return o[0] === "this" ? o.shift() : o[0].startsWith("@") && (o[0] = o[0].slice(1)), Object.freeze(o);
|
|
2083
|
+
}, set(o) {
|
|
2084
|
+
let c = [...o];
|
|
2085
|
+
c[0] === "this" || c[0]?.startsWith("@") || (this.head.type === "ThisHead" ? c.unshift("this") : this.head.type === "AtHead" && (c[0] = `@${c[0]}`)), this.original = c.join(".");
|
|
2086
|
+
} }), Object.defineProperty(a, "this", { enumerable: false, get() {
|
|
2087
|
+
return this.head.type === "ThisHead";
|
|
2088
|
+
} }), Object.defineProperty(a, "data", { enumerable: false, get() {
|
|
2089
|
+
return this.head.type === "AtHead";
|
|
2090
|
+
} }), a;
|
|
2091
|
+
}({ head: e5, tail: t, loc: r });
|
|
2092
|
+
}
|
|
2093
|
+
head({ original: e5, loc: t }) {
|
|
2094
|
+
return e5 === "this" ? this.this({ loc: t }) : e5[0] === "@" ? this.atName({ name: e5, loc: t }) : this.var({ name: e5, loc: t });
|
|
2095
|
+
}
|
|
2096
|
+
this({ loc: e5 }) {
|
|
2097
|
+
return { type: "ThisHead", get original() {
|
|
2098
|
+
return "this";
|
|
2099
|
+
}, loc: e5 };
|
|
2100
|
+
}
|
|
2101
|
+
atName({ name: e5, loc: t }) {
|
|
2102
|
+
let r = "", n = { type: "AtHead", get name() {
|
|
2103
|
+
return r;
|
|
2104
|
+
}, set name(s) {
|
|
2105
|
+
s[0], s.indexOf("."), r = s;
|
|
2106
|
+
}, get original() {
|
|
2107
|
+
return this.name;
|
|
2108
|
+
}, set original(s) {
|
|
2109
|
+
this.name = s;
|
|
2110
|
+
}, loc: t };
|
|
2111
|
+
return n.name = e5, n;
|
|
2112
|
+
}
|
|
2113
|
+
var({ name: e5, loc: t }) {
|
|
2114
|
+
let r = "", n = { type: "VarHead", get name() {
|
|
2115
|
+
return r;
|
|
2116
|
+
}, set name(s) {
|
|
2117
|
+
s[0], s.indexOf("."), r = s;
|
|
2118
|
+
}, get original() {
|
|
2119
|
+
return this.name;
|
|
2120
|
+
}, set original(s) {
|
|
2121
|
+
this.name = s;
|
|
2122
|
+
}, loc: t };
|
|
2123
|
+
return n.name = e5, n;
|
|
2124
|
+
}
|
|
2125
|
+
hash({ pairs: e5, loc: t }) {
|
|
2126
|
+
return { type: "Hash", pairs: e5, loc: t };
|
|
2127
|
+
}
|
|
2128
|
+
pair({ key: e5, value: t, loc: r }) {
|
|
2129
|
+
return { type: "HashPair", key: e5, value: t, loc: r };
|
|
2130
|
+
}
|
|
2131
|
+
literal({ type: e5, value: t, loc: r }) {
|
|
2132
|
+
return function({ type: n, value: s, loc: i }) {
|
|
2133
|
+
let a = { type: n, value: s, loc: i };
|
|
2134
|
+
return Object.defineProperty(a, "original", { enumerable: false, get() {
|
|
2135
|
+
return this.value;
|
|
2136
|
+
}, set(o) {
|
|
2137
|
+
this.value = o;
|
|
2138
|
+
} }), a;
|
|
2139
|
+
}({ type: e5, value: t, loc: r });
|
|
2140
|
+
}
|
|
2141
|
+
}(), hr = class {
|
|
2142
|
+
constructor(t, r = new Xe(fs), n = "precompile") {
|
|
2143
|
+
this.elementStack = [], this.currentAttribute = null, this.currentNode = null, this.source = t, this.lines = t.source.split(/\r\n?|\n/u), this.tokenizer = new Ze(this, r, n);
|
|
2144
|
+
}
|
|
2145
|
+
offset() {
|
|
2146
|
+
let { line: t, column: r } = this.tokenizer;
|
|
2147
|
+
return this.source.offsetFor(t, r);
|
|
2148
|
+
}
|
|
2149
|
+
pos({ line: t, column: r }) {
|
|
2150
|
+
return this.source.offsetFor(t, r);
|
|
2151
|
+
}
|
|
2152
|
+
finish(t) {
|
|
2153
|
+
return Ye({}, t, { loc: t.start.until(this.offset()) });
|
|
2154
|
+
}
|
|
2155
|
+
get currentAttr() {
|
|
2156
|
+
return this.currentAttribute;
|
|
2157
|
+
}
|
|
2158
|
+
get currentTag() {
|
|
2159
|
+
let t = this.currentNode;
|
|
2160
|
+
return t && (t.type === "StartTag" || t.type), t;
|
|
2161
|
+
}
|
|
2162
|
+
get currentStartTag() {
|
|
2163
|
+
let t = this.currentNode;
|
|
2164
|
+
return t && t.type, t;
|
|
2165
|
+
}
|
|
2166
|
+
get currentEndTag() {
|
|
2167
|
+
let t = this.currentNode;
|
|
2168
|
+
return t && t.type, t;
|
|
2169
|
+
}
|
|
2170
|
+
get currentComment() {
|
|
2171
|
+
let t = this.currentNode;
|
|
2172
|
+
return t && t.type, t;
|
|
2173
|
+
}
|
|
2174
|
+
get currentData() {
|
|
2175
|
+
let t = this.currentNode;
|
|
2176
|
+
return t && t.type, t;
|
|
2177
|
+
}
|
|
2178
|
+
acceptNode(t) {
|
|
2179
|
+
return this[t.type](t);
|
|
2180
|
+
}
|
|
2181
|
+
currentElement() {
|
|
2182
|
+
return dr(this.elementStack);
|
|
2183
|
+
}
|
|
2184
|
+
sourceForNode(t, r) {
|
|
2185
|
+
let n, s, i, a = t.loc.start.line - 1, o = a - 1, c = t.loc.start.column, h = [];
|
|
2186
|
+
for (r ? (s = r.loc.end.line - 1, i = r.loc.end.column) : (s = t.loc.end.line - 1, i = t.loc.end.column); o < s; ) o++, n = this.lines[o], o === a ? a === s ? h.push(n.slice(c, i)) : h.push(n.slice(c)) : o === s ? h.push(n.slice(0, i)) : h.push(n);
|
|
2187
|
+
return h.join(`
|
|
2188
|
+
`);
|
|
2189
|
+
}
|
|
2190
|
+
}, pr = class extends hr {
|
|
2191
|
+
parse(t, r) {
|
|
2192
|
+
t.loc;
|
|
2193
|
+
let n = d.template({ body: [], blockParams: r, loc: this.source.spanFor(t.loc) }), s = this.parseProgram(n, t);
|
|
2194
|
+
return this.pendingError?.eof(s.loc.getEnd()), s;
|
|
2195
|
+
}
|
|
2196
|
+
Program(t, r) {
|
|
2197
|
+
t.loc;
|
|
2198
|
+
let n = d.blockItself({ body: [], params: r, chained: t.chained, loc: this.source.spanFor(t.loc) });
|
|
2199
|
+
return this.parseProgram(n, t);
|
|
2200
|
+
}
|
|
2201
|
+
parseProgram(t, r) {
|
|
2202
|
+
if (r.body.length === 0) return t;
|
|
2203
|
+
let n;
|
|
2204
|
+
try {
|
|
2205
|
+
this.elementStack.push(t);
|
|
2206
|
+
for (let s of r.body) this.acceptNode(s);
|
|
2207
|
+
} finally {
|
|
2208
|
+
n = this.elementStack.pop();
|
|
2209
|
+
}
|
|
2210
|
+
if (t !== n) {
|
|
2211
|
+
if (n?.type === "ElementNode") throw k(`Unclosed element \`${n.tag}\``, n.loc);
|
|
2212
|
+
t.type;
|
|
2213
|
+
}
|
|
2214
|
+
return t;
|
|
2215
|
+
}
|
|
2216
|
+
BlockStatement(t) {
|
|
2217
|
+
if (this.tokenizer.state === "comment") return t.loc, void this.appendToCommentData(this.sourceForNode(t));
|
|
2218
|
+
if (this.tokenizer.state !== "data" && this.tokenizer.state !== "beforeData") throw k("A block may only be used inside an HTML element or another block.", this.source.spanFor(t.loc));
|
|
2219
|
+
let { path: r, params: n, hash: s } = sr(this, t), i = this.source.spanFor(t.loc), a, o = [];
|
|
2220
|
+
if (t.program.blockParams?.length) {
|
|
2221
|
+
let p = s.loc.collapse("end");
|
|
2222
|
+
p = t.program.loc ? p.withEnd(this.source.spanFor(t.program.loc).getStart()) : t.program.body[0] ? p.withEnd(this.source.spanFor(t.program.body[0].loc).getStart()) : p.withEnd(i.getEnd()), a = Es(this.source, t, p);
|
|
2223
|
+
let g = p.asString(), E = g.indexOf("|") + 1, T = g.indexOf("|", E);
|
|
2224
|
+
for (let D of t.program.blockParams) {
|
|
2225
|
+
let I, O;
|
|
2226
|
+
I = E >= T ? -1 : g.indexOf(D, E), I === -1 || I + D.length > T ? (E = T, O = this.source.spanFor(ar)) : (E = I, O = p.sliceStartChars({ skipStart: E, chars: D.length }), E += D.length), o.push(d.var({ name: D, loc: O }));
|
|
2227
|
+
}
|
|
2228
|
+
} else a = Es(this.source, t, i);
|
|
2229
|
+
let c = this.Program(a.program, o), h = a.inverse ? this.Program(a.inverse, []) : null, f = d.block({ path: r, params: n, hash: s, defaultBlock: c, elseBlock: h, loc: this.source.spanFor(t.loc), openStrip: t.openStrip, inverseStrip: t.inverseStrip, closeStrip: t.closeStrip });
|
|
2230
|
+
Pt(this.currentElement(), f);
|
|
2231
|
+
}
|
|
2232
|
+
MustacheStatement(t) {
|
|
2233
|
+
this.pendingError?.mustache(this.source.spanFor(t.loc));
|
|
2234
|
+
let { tokenizer: r } = this;
|
|
2235
|
+
if (r.state === "comment") return void this.appendToCommentData(this.sourceForNode(t));
|
|
2236
|
+
let n, { escaped: s, loc: i, strip: a } = t;
|
|
2237
|
+
if ("original" in t.path && t.path.original === "...attributes") throw k("Illegal use of ...attributes", this.source.spanFor(t.loc));
|
|
2238
|
+
if (Ns(t.path)) n = d.mustache({ path: this.acceptNode(t.path), params: [], hash: d.hash({ pairs: [], loc: this.source.spanFor(t.path.loc).collapse("end") }), trusting: !s, loc: this.source.spanFor(i), strip: a });
|
|
2239
|
+
else {
|
|
2240
|
+
let { path: o, params: c, hash: h } = sr(this, t);
|
|
2241
|
+
n = d.mustache({ path: o, params: c, hash: h, trusting: !s, loc: this.source.spanFor(i), strip: a });
|
|
2242
|
+
}
|
|
2243
|
+
switch (r.state) {
|
|
2244
|
+
case "tagOpen":
|
|
2245
|
+
case "tagName":
|
|
2246
|
+
throw k("Cannot use mustaches in an elements tagname", n.loc);
|
|
2247
|
+
case "beforeAttributeName":
|
|
2248
|
+
nr(this.currentStartTag, n);
|
|
2249
|
+
break;
|
|
2250
|
+
case "attributeName":
|
|
2251
|
+
case "afterAttributeName":
|
|
2252
|
+
this.beginAttributeValue(false), this.finishAttributeValue(), nr(this.currentStartTag, n), r.transitionTo("beforeAttributeName");
|
|
2253
|
+
break;
|
|
2254
|
+
case "afterAttributeValueQuoted":
|
|
2255
|
+
nr(this.currentStartTag, n), r.transitionTo("beforeAttributeName");
|
|
2256
|
+
break;
|
|
2257
|
+
case "beforeAttributeValue":
|
|
2258
|
+
this.beginAttributeValue(false), this.appendDynamicAttributeValuePart(n), r.transitionTo("attributeValueUnquoted");
|
|
2259
|
+
break;
|
|
2260
|
+
case "attributeValueDoubleQuoted":
|
|
2261
|
+
case "attributeValueSingleQuoted":
|
|
2262
|
+
case "attributeValueUnquoted":
|
|
2263
|
+
this.appendDynamicAttributeValuePart(n);
|
|
2264
|
+
break;
|
|
2265
|
+
default:
|
|
2266
|
+
Pt(this.currentElement(), n);
|
|
2267
|
+
}
|
|
2268
|
+
return n;
|
|
2269
|
+
}
|
|
2270
|
+
appendDynamicAttributeValuePart(t) {
|
|
2271
|
+
this.finalizeTextPart();
|
|
2272
|
+
let r = this.currentAttr;
|
|
2273
|
+
r.isDynamic = true, r.parts.push(t);
|
|
2274
|
+
}
|
|
2275
|
+
finalizeTextPart() {
|
|
2276
|
+
let t = this.currentAttr.currentPart;
|
|
2277
|
+
t !== null && (this.currentAttr.parts.push(t), this.startTextPart());
|
|
2278
|
+
}
|
|
2279
|
+
startTextPart() {
|
|
2280
|
+
this.currentAttr.currentPart = null;
|
|
2281
|
+
}
|
|
2282
|
+
ContentStatement(t) {
|
|
2283
|
+
(function(r, n) {
|
|
2284
|
+
let s = n.loc.start.line, i = n.loc.start.column, a = function(o, c) {
|
|
2285
|
+
if (c === "") return { lines: o.split(`
|
|
2286
|
+
`).length - 1, columns: 0 };
|
|
2287
|
+
let [h] = o.split(c), f = h.split(/\n/u), p = f.length - 1;
|
|
2288
|
+
return { lines: p, columns: f[p].length };
|
|
2289
|
+
}(n.original, n.value);
|
|
2290
|
+
s += a.lines, a.lines ? i = a.columns : i += a.columns, r.line = s, r.column = i;
|
|
2291
|
+
})(this.tokenizer, t), this.tokenizer.tokenizePart(t.value), this.tokenizer.flushData();
|
|
2292
|
+
}
|
|
2293
|
+
CommentStatement(t) {
|
|
2294
|
+
let { tokenizer: r } = this;
|
|
2295
|
+
if (r.state === "comment") return this.appendToCommentData(this.sourceForNode(t)), null;
|
|
2296
|
+
let { value: n, loc: s } = t, i = d.mustacheComment({ value: n, loc: this.source.spanFor(s) });
|
|
2297
|
+
switch (r.state) {
|
|
2298
|
+
case "beforeAttributeName":
|
|
2299
|
+
case "afterAttributeName":
|
|
2300
|
+
this.currentStartTag.comments.push(i);
|
|
2301
|
+
break;
|
|
2302
|
+
case "beforeData":
|
|
2303
|
+
case "data":
|
|
2304
|
+
Pt(this.currentElement(), i);
|
|
2305
|
+
break;
|
|
2306
|
+
default:
|
|
2307
|
+
throw k(`Using a Handlebars comment when in the \`${r.state}\` state is not supported`, this.source.spanFor(t.loc));
|
|
2308
|
+
}
|
|
2309
|
+
return i;
|
|
2310
|
+
}
|
|
2311
|
+
PartialStatement(t) {
|
|
2312
|
+
throw k("Handlebars partials are not supported", this.source.spanFor(t.loc));
|
|
2313
|
+
}
|
|
2314
|
+
PartialBlockStatement(t) {
|
|
2315
|
+
throw k("Handlebars partial blocks are not supported", this.source.spanFor(t.loc));
|
|
2316
|
+
}
|
|
2317
|
+
Decorator(t) {
|
|
2318
|
+
throw k("Handlebars decorators are not supported", this.source.spanFor(t.loc));
|
|
2319
|
+
}
|
|
2320
|
+
DecoratorBlock(t) {
|
|
2321
|
+
throw k("Handlebars decorator blocks are not supported", this.source.spanFor(t.loc));
|
|
2322
|
+
}
|
|
2323
|
+
SubExpression(t) {
|
|
2324
|
+
let { path: r, params: n, hash: s } = sr(this, t);
|
|
2325
|
+
return d.sexpr({ path: r, params: n, hash: s, loc: this.source.spanFor(t.loc) });
|
|
2326
|
+
}
|
|
2327
|
+
PathExpression(t) {
|
|
2328
|
+
let { original: r } = t, n;
|
|
2329
|
+
if (r.indexOf("/") !== -1) {
|
|
2330
|
+
if (r.slice(0, 2) === "./") throw k('Using "./" is not supported in Glimmer and unnecessary', this.source.spanFor(t.loc));
|
|
2331
|
+
if (r.slice(0, 3) === "../") throw k('Changing context using "../" is not supported in Glimmer', this.source.spanFor(t.loc));
|
|
2332
|
+
if (r.indexOf(".") !== -1) throw k("Mixing '.' and '/' in paths is not supported in Glimmer; use only '.' to separate property paths", this.source.spanFor(t.loc));
|
|
2333
|
+
n = [t.parts.join("/")];
|
|
2334
|
+
} else {
|
|
2335
|
+
if (r === ".") throw k("'.' is not a supported path in Glimmer; check for a path with a trailing '.'", this.source.spanFor(t.loc));
|
|
2336
|
+
n = t.parts;
|
|
2337
|
+
}
|
|
2338
|
+
let s, i = false;
|
|
2339
|
+
if (/^this(?:\..+)?$/u.test(r) && (i = true), i) s = d.this({ loc: this.source.spanFor({ start: t.loc.start, end: { line: t.loc.start.line, column: t.loc.start.column + 4 } }) });
|
|
2340
|
+
else if (t.data) {
|
|
2341
|
+
let a = n.shift();
|
|
2342
|
+
if (a === void 0) throw k("Attempted to parse a path expression, but it was not valid. Paths beginning with @ must start with a-z.", this.source.spanFor(t.loc));
|
|
2343
|
+
s = d.atName({ name: `@${a}`, loc: this.source.spanFor({ start: t.loc.start, end: { line: t.loc.start.line, column: t.loc.start.column + a.length + 1 } }) });
|
|
2344
|
+
} else {
|
|
2345
|
+
let a = n.shift();
|
|
2346
|
+
if (a === void 0) throw k("Attempted to parse a path expression, but it was not valid. Paths must start with a-z or A-Z.", this.source.spanFor(t.loc));
|
|
2347
|
+
s = d.var({ name: a, loc: this.source.spanFor({ start: t.loc.start, end: { line: t.loc.start.line, column: t.loc.start.column + a.length } }) });
|
|
2348
|
+
}
|
|
2349
|
+
return d.path({ head: s, tail: n, loc: this.source.spanFor(t.loc) });
|
|
2350
|
+
}
|
|
2351
|
+
Hash(t) {
|
|
2352
|
+
let r = t.pairs.map((n) => d.pair({ key: n.key, value: this.acceptNode(n.value), loc: this.source.spanFor(n.loc) }));
|
|
2353
|
+
return d.hash({ pairs: r, loc: this.source.spanFor(t.loc) });
|
|
2354
|
+
}
|
|
2355
|
+
StringLiteral(t) {
|
|
2356
|
+
return d.literal({ type: "StringLiteral", value: t.value, loc: this.source.spanFor(t.loc) });
|
|
2357
|
+
}
|
|
2358
|
+
BooleanLiteral(t) {
|
|
2359
|
+
return d.literal({ type: "BooleanLiteral", value: t.value, loc: this.source.spanFor(t.loc) });
|
|
2360
|
+
}
|
|
2361
|
+
NumberLiteral(t) {
|
|
2362
|
+
return d.literal({ type: "NumberLiteral", value: t.value, loc: this.source.spanFor(t.loc) });
|
|
2363
|
+
}
|
|
2364
|
+
UndefinedLiteral(t) {
|
|
2365
|
+
return d.literal({ type: "UndefinedLiteral", value: void 0, loc: this.source.spanFor(t.loc) });
|
|
2366
|
+
}
|
|
2367
|
+
NullLiteral(t) {
|
|
2368
|
+
return d.literal({ type: "NullLiteral", value: null, loc: this.source.spanFor(t.loc) });
|
|
2369
|
+
}
|
|
2370
|
+
constructor(...t) {
|
|
2371
|
+
super(...t), this.pendingError = null;
|
|
2372
|
+
}
|
|
2373
|
+
};
|
|
2374
|
+
function sr(e5, t) {
|
|
2375
|
+
let r;
|
|
2376
|
+
switch (t.path.type) {
|
|
2377
|
+
case "PathExpression":
|
|
2378
|
+
r = e5.PathExpression(t.path);
|
|
2379
|
+
break;
|
|
2380
|
+
case "SubExpression":
|
|
2381
|
+
r = e5.SubExpression(t.path);
|
|
2382
|
+
break;
|
|
2383
|
+
case "StringLiteral":
|
|
2384
|
+
case "UndefinedLiteral":
|
|
2385
|
+
case "NullLiteral":
|
|
2386
|
+
case "NumberLiteral":
|
|
2387
|
+
case "BooleanLiteral": {
|
|
2388
|
+
let i;
|
|
2389
|
+
throw i = t.path.type === "BooleanLiteral" ? t.path.original.toString() : t.path.type === "StringLiteral" ? `"${t.path.original}"` : t.path.type === "NullLiteral" ? "null" : t.path.type === "NumberLiteral" ? t.path.value.toString() : "undefined", k(`${t.path.type} "${t.path.type === "StringLiteral" ? t.path.original : i}" cannot be called as a sub-expression, replace (${i}) with ${i}`, e5.source.spanFor(t.path.loc));
|
|
2390
|
+
}
|
|
2391
|
+
}
|
|
2392
|
+
let n = t.params.map((i) => e5.acceptNode(i)), s = Kt(n) ? dr(n).loc : r.loc;
|
|
2393
|
+
return { path: r, params: n, hash: t.hash ? e5.Hash(t.hash) : d.hash({ pairs: [], loc: e5.source.spanFor(s).collapse("end") }) };
|
|
2394
|
+
}
|
|
2395
|
+
function nr(e5, t) {
|
|
2396
|
+
let { path: r, params: n, hash: s, loc: i } = t;
|
|
2397
|
+
if (Ns(r)) {
|
|
2398
|
+
let o = `{{${function(c) {
|
|
2399
|
+
return c.type === "UndefinedLiteral" ? "undefined" : JSON.stringify(c.value);
|
|
2400
|
+
}(r)}}}`;
|
|
2401
|
+
throw k(`In <${e5.name} ... ${o} ..., ${o} is not a valid modifier`, t.loc);
|
|
2402
|
+
}
|
|
2403
|
+
let a = d.elementModifier({ path: r, params: n, hash: s, loc: i });
|
|
2404
|
+
e5.modifiers.push(a);
|
|
2405
|
+
}
|
|
2406
|
+
function Es(e5, t, r) {
|
|
2407
|
+
if (!t.program.loc) {
|
|
2408
|
+
let s = V(0, t.program.body, 0), i = V(0, t.program.body, -1);
|
|
2409
|
+
if (s && i) t.program.loc = { ...s.loc, end: i.loc.end };
|
|
2410
|
+
else {
|
|
2411
|
+
let a = e5.spanFor(t.loc);
|
|
2412
|
+
t.program.loc = r.withEnd(a.getEnd());
|
|
2413
|
+
}
|
|
2414
|
+
}
|
|
2415
|
+
let n = e5.spanFor(t.program.loc).getEnd();
|
|
2416
|
+
return t.inverse && !t.inverse.loc && (t.inverse.loc = n.collapsed()), t;
|
|
2417
|
+
}
|
|
2418
|
+
function At(e5) {
|
|
2419
|
+
return /[\t\n\f ]/u.test(e5);
|
|
2420
|
+
}
|
|
2421
|
+
var fr = class extends pr {
|
|
2422
|
+
reset() {
|
|
2423
|
+
this.currentNode = null;
|
|
2424
|
+
}
|
|
2425
|
+
beginComment() {
|
|
2426
|
+
this.currentNode = { type: "CommentStatement", value: "", start: this.source.offsetFor(this.tagOpenLine, this.tagOpenColumn) };
|
|
2427
|
+
}
|
|
2428
|
+
appendToCommentData(t) {
|
|
2429
|
+
this.currentComment.value += t;
|
|
2430
|
+
}
|
|
2431
|
+
finishComment() {
|
|
2432
|
+
Pt(this.currentElement(), d.comment(this.finish(this.currentComment)));
|
|
2433
|
+
}
|
|
2434
|
+
beginData() {
|
|
2435
|
+
this.currentNode = { type: "TextNode", chars: "", start: this.offset() };
|
|
2436
|
+
}
|
|
2437
|
+
appendToData(t) {
|
|
2438
|
+
this.currentData.chars += t;
|
|
2439
|
+
}
|
|
2440
|
+
finishData() {
|
|
2441
|
+
Pt(this.currentElement(), d.text(this.finish(this.currentData)));
|
|
2442
|
+
}
|
|
2443
|
+
tagOpen() {
|
|
2444
|
+
this.tagOpenLine = this.tokenizer.line, this.tagOpenColumn = this.tokenizer.column;
|
|
2445
|
+
}
|
|
2446
|
+
beginStartTag() {
|
|
2447
|
+
this.currentNode = { type: "StartTag", name: "", nameStart: null, nameEnd: null, attributes: [], modifiers: [], comments: [], params: [], selfClosing: false, start: this.source.offsetFor(this.tagOpenLine, this.tagOpenColumn) };
|
|
2448
|
+
}
|
|
2449
|
+
beginEndTag() {
|
|
2450
|
+
this.currentNode = { type: "EndTag", name: "", start: this.source.offsetFor(this.tagOpenLine, this.tagOpenColumn) };
|
|
2451
|
+
}
|
|
2452
|
+
finishTag() {
|
|
2453
|
+
let t = this.finish(this.currentTag);
|
|
2454
|
+
if (t.type === "StartTag") {
|
|
2455
|
+
if (this.finishStartTag(), t.name === ":") throw k("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() }));
|
|
2456
|
+
(ir.has(t.name) || t.selfClosing) && this.finishEndTag(true);
|
|
2457
|
+
} else t.type, t.type, this.finishEndTag(false);
|
|
2458
|
+
}
|
|
2459
|
+
finishStartTag() {
|
|
2460
|
+
let { name: t, nameStart: r, nameEnd: n } = this.currentStartTag, s = r.until(n), [i, ...a] = t.split("."), o = d.path({ head: d.head({ original: i, loc: s.sliceStartChars({ chars: i.length }) }), tail: a, loc: s }), { attributes: c, modifiers: h, comments: f, params: p, selfClosing: g, loc: E } = this.finish(this.currentStartTag), T = d.element({ path: o, selfClosing: g, attributes: c, modifiers: h, comments: f, params: p, children: [], openTag: E, closeTag: g ? null : A.broken(), loc: E });
|
|
2461
|
+
this.elementStack.push(T);
|
|
2462
|
+
}
|
|
2463
|
+
finishEndTag(t) {
|
|
2464
|
+
let { start: r } = this.currentTag, n = this.finish(this.currentTag), s = this.elementStack.pop();
|
|
2465
|
+
this.validateEndTag(n, s, t);
|
|
2466
|
+
let i = this.currentElement();
|
|
2467
|
+
t ? s.closeTag = null : s.selfClosing ? s.closeTag : s.closeTag = r.until(this.offset()), s.loc = s.loc.withEnd(this.offset()), Pt(i, d.element(s));
|
|
2468
|
+
}
|
|
2469
|
+
markTagAsSelfClosing() {
|
|
2470
|
+
let t = this.currentTag;
|
|
2471
|
+
if (t.type !== "StartTag") throw k("Invalid end tag: closing tag must not be self-closing", this.source.spanFor({ start: t.start.toJSON(), end: this.offset().toJSON() }));
|
|
2472
|
+
t.selfClosing = true;
|
|
2473
|
+
}
|
|
2474
|
+
appendToTagName(t) {
|
|
2475
|
+
let r = this.currentTag;
|
|
2476
|
+
if (r.name += t, r.type === "StartTag") {
|
|
2477
|
+
let n = this.offset();
|
|
2478
|
+
r.nameStart === null && (r.nameEnd, r.nameStart = n.move(-1)), r.nameEnd = n;
|
|
2479
|
+
}
|
|
2480
|
+
}
|
|
2481
|
+
beginAttribute() {
|
|
2482
|
+
let t = this.offset();
|
|
2483
|
+
this.currentAttribute = { name: "", parts: [], currentPart: null, isQuoted: false, isDynamic: false, start: t, valueSpan: t.collapsed() };
|
|
2484
|
+
}
|
|
2485
|
+
appendToAttributeName(t) {
|
|
2486
|
+
this.currentAttr.name += t, this.currentAttr.name === "as" && this.parsePossibleBlockParams();
|
|
2487
|
+
}
|
|
2488
|
+
beginAttributeValue(t) {
|
|
2489
|
+
this.currentAttr.isQuoted = t, this.startTextPart(), this.currentAttr.valueSpan = this.offset().collapsed();
|
|
2490
|
+
}
|
|
2491
|
+
appendToAttributeValue(t) {
|
|
2492
|
+
let r = this.currentAttr.parts, n = r[r.length - 1], s = this.currentAttr.currentPart;
|
|
2493
|
+
if (s) s.chars += t, s.loc = s.loc.withEnd(this.offset());
|
|
2494
|
+
else {
|
|
2495
|
+
let i = this.offset();
|
|
2496
|
+
i = t === `
|
|
2497
|
+
` ? n ? n.loc.getEnd() : this.currentAttr.valueSpan.getStart() : i.move(-1), this.currentAttr.currentPart = d.text({ chars: t, loc: i.collapsed() });
|
|
2498
|
+
}
|
|
2499
|
+
}
|
|
2500
|
+
finishAttributeValue() {
|
|
2501
|
+
this.finalizeTextPart();
|
|
2502
|
+
let t = this.currentTag, r = this.offset();
|
|
2503
|
+
if (t.type === "EndTag") throw k("Invalid end tag: closing tag must not have attributes", this.source.spanFor({ start: t.start.toJSON(), end: r.toJSON() }));
|
|
2504
|
+
let { name: n, parts: s, start: i, isQuoted: a, isDynamic: o, valueSpan: c } = this.currentAttr;
|
|
2505
|
+
if (n.startsWith("|") && s.length === 0 && !a && !o) throw k("Invalid block parameters syntax: block parameters must be preceded by the `as` keyword", i.until(i.move(n.length)));
|
|
2506
|
+
let h = this.assembleAttributeValue(s, a, o, i.until(r));
|
|
2507
|
+
h.loc = c.withEnd(r);
|
|
2508
|
+
let f = d.attr({ name: n, value: h, loc: i.until(r) });
|
|
2509
|
+
this.currentStartTag.attributes.push(f);
|
|
2510
|
+
}
|
|
2511
|
+
parsePossibleBlockParams() {
|
|
2512
|
+
let t = /[!"#%&'()*+./;<=>@[\\\]^`{|}~]/u;
|
|
2513
|
+
this.tokenizer.state;
|
|
2514
|
+
let r = this.currentStartTag, n = this.currentAttr, s = { state: "PossibleAs" }, i = { PossibleAs: (o) => {
|
|
2515
|
+
if (s.state, At(o)) s = { state: "BeforeStartPipe" }, this.tokenizer.transitionTo("afterAttributeName"), this.tokenizer.consume();
|
|
2516
|
+
else {
|
|
2517
|
+
if (o === "|") throw k('Invalid block parameters syntax: expecting at least one space character between "as" and "|"', n.start.until(this.offset().move(1)));
|
|
2518
|
+
s = { state: "Done" };
|
|
2519
|
+
}
|
|
2520
|
+
}, BeforeStartPipe: (o) => {
|
|
2521
|
+
s.state, At(o) ? this.tokenizer.consume() : o === "|" ? (s = { state: "BeforeBlockParamName" }, this.tokenizer.transitionTo("beforeAttributeName"), this.tokenizer.consume()) : s = { state: "Done" };
|
|
2522
|
+
}, BeforeBlockParamName: (o) => {
|
|
2523
|
+
if (s.state, At(o)) this.tokenizer.consume();
|
|
2524
|
+
else if (o === "") s = { state: "Done" }, this.pendingError = { mustache(c) {
|
|
2525
|
+
throw k("Invalid block parameters syntax: mustaches cannot be used inside parameters list", c);
|
|
2526
|
+
}, eof(c) {
|
|
2527
|
+
throw k('Invalid block parameters syntax: expecting the tag to be closed with ">" or "/>" after parameters list', n.start.until(c));
|
|
2528
|
+
} };
|
|
2529
|
+
else if (o === "|") {
|
|
2530
|
+
if (r.params.length === 0) throw k("Invalid block parameters syntax: empty parameters list, expecting at least one identifier", n.start.until(this.offset().move(1)));
|
|
2531
|
+
s = { state: "AfterEndPipe" }, this.tokenizer.consume();
|
|
2532
|
+
} else {
|
|
2533
|
+
if (o === ">" || o === "/") throw k('Invalid block parameters syntax: incomplete parameters list, expecting "|" but the tag was closed prematurely', n.start.until(this.offset().move(1)));
|
|
2534
|
+
s = { state: "BlockParamName", name: o, start: this.offset() }, this.tokenizer.consume();
|
|
2535
|
+
}
|
|
2536
|
+
}, BlockParamName: (o) => {
|
|
2537
|
+
if (s.state, o === "") s = { state: "Done" }, this.pendingError = { mustache(c) {
|
|
2538
|
+
throw k("Invalid block parameters syntax: mustaches cannot be used inside parameters list", c);
|
|
2539
|
+
}, eof(c) {
|
|
2540
|
+
throw k('Invalid block parameters syntax: expecting the tag to be closed with ">" or "/>" after parameters list', n.start.until(c));
|
|
2541
|
+
} };
|
|
2542
|
+
else if (o === "|" || At(o)) {
|
|
2543
|
+
let c = s.start.until(this.offset());
|
|
2544
|
+
if (s.name === "this" || t.test(s.name)) throw k(`Invalid block parameters syntax: invalid identifier name \`${s.name}\``, c);
|
|
2545
|
+
r.params.push(d.var({ name: s.name, loc: c })), s = o === "|" ? { state: "AfterEndPipe" } : { state: "BeforeBlockParamName" }, this.tokenizer.consume();
|
|
2546
|
+
} else {
|
|
2547
|
+
if (o === ">" || o === "/") throw k('Invalid block parameters syntax: expecting "|" but the tag was closed prematurely', n.start.until(this.offset().move(1)));
|
|
2548
|
+
s.name += o, this.tokenizer.consume();
|
|
2549
|
+
}
|
|
2550
|
+
}, AfterEndPipe: (o) => {
|
|
2551
|
+
s.state, At(o) ? this.tokenizer.consume() : o === "" ? (s = { state: "Done" }, this.pendingError = { mustache(c) {
|
|
2552
|
+
throw k("Invalid block parameters syntax: modifiers cannot follow parameters list", c);
|
|
2553
|
+
}, eof(c) {
|
|
2554
|
+
throw k('Invalid block parameters syntax: expecting the tag to be closed with ">" or "/>" after parameters list', n.start.until(c));
|
|
2555
|
+
} }) : o === ">" || o === "/" ? s = { state: "Done" } : (s = { state: "Error", message: 'Invalid block parameters syntax: expecting the tag to be closed with ">" or "/>" after parameters list', start: this.offset() }, this.tokenizer.consume());
|
|
2556
|
+
}, Error: (o) => {
|
|
2557
|
+
if (s.state, o === "" || o === "/" || o === ">" || At(o)) throw k(s.message, s.start.until(this.offset()));
|
|
2558
|
+
this.tokenizer.consume();
|
|
2559
|
+
}, Done: () => {
|
|
2560
|
+
} }, a;
|
|
2561
|
+
do
|
|
2562
|
+
a = this.tokenizer.peek(), i[s.state](a);
|
|
2563
|
+
while (s.state !== "Done" && a !== "");
|
|
2564
|
+
s.state;
|
|
2565
|
+
}
|
|
2566
|
+
reportSyntaxError(t) {
|
|
2567
|
+
throw k(t, this.offset().collapsed());
|
|
2568
|
+
}
|
|
2569
|
+
assembleConcatenatedValue(t) {
|
|
2570
|
+
let r = ei(t), n = dr(t);
|
|
2571
|
+
return d.concat({ parts: t, loc: this.source.spanFor(r.loc).extend(this.source.spanFor(n.loc)) });
|
|
2572
|
+
}
|
|
2573
|
+
validateEndTag(t, r, n) {
|
|
2574
|
+
if (ir.has(t.name) && !n) throw k(`<${t.name}> elements do not need end tags. You should remove it`, t.loc);
|
|
2575
|
+
if (r.type !== "ElementNode") throw k(`Closing tag </${t.name}> without an open tag`, t.loc);
|
|
2576
|
+
if (r.tag !== t.name) throw k(`Closing tag </${t.name}> did not match last open tag <${r.tag}> (on line ${r.loc.startPosition.line})`, t.loc);
|
|
2577
|
+
}
|
|
2578
|
+
assembleAttributeValue(t, r, n, s) {
|
|
2579
|
+
if (n) {
|
|
2580
|
+
if (r) return this.assembleConcatenatedValue(t);
|
|
2581
|
+
{
|
|
2582
|
+
let [i, a] = t;
|
|
2583
|
+
if (a === void 0 || a.type === "TextNode" && a.chars === "/") return i;
|
|
2584
|
+
throw k("An unquoted attribute value must be a string or a mustache, preceded by whitespace or a '=' character, and followed by whitespace, a '>' character, or '/>'", s);
|
|
2585
|
+
}
|
|
2586
|
+
}
|
|
2587
|
+
return Kt(t) ? t[0] : d.text({ chars: "", loc: s });
|
|
2588
|
+
}
|
|
2589
|
+
constructor(...t) {
|
|
2590
|
+
super(...t), this.tagOpenLine = 0, this.tagOpenColumn = 0;
|
|
2591
|
+
}
|
|
2592
|
+
}, ui = {}, mr = class extends Xe {
|
|
2593
|
+
constructor() {
|
|
2594
|
+
super({});
|
|
2595
|
+
}
|
|
2596
|
+
parse() {
|
|
2597
|
+
}
|
|
2598
|
+
};
|
|
2599
|
+
function Ps(e5, t = {}) {
|
|
2600
|
+
let r, n, s, i = t.mode || "precompile";
|
|
2601
|
+
typeof e5 == "string" ? (r = new ft(e5, t.meta?.moduleName), n = i === "codemod" ? de(e5, t.parseOptions) : $e(e5, t.parseOptions)) : e5 instanceof ft ? (r = e5, n = i === "codemod" ? de(e5.source, t.parseOptions) : $e(e5.source, t.parseOptions)) : (r = new ft("", t.meta?.moduleName), n = e5), i === "codemod" && (s = new mr());
|
|
2602
|
+
let a = A.forCharPositions(r, 0, r.source.length);
|
|
2603
|
+
n.loc = { source: "(program)", start: a.startPosition, end: a.endPosition };
|
|
2604
|
+
let o = new fr(r, s, i).parse(n, t.locals ?? []);
|
|
2605
|
+
if (t.plugins?.ast) for (let c of t.plugins.ast) li(o, c(Ye({}, t, { syntax: ui }, { plugins: void 0 })).visitor);
|
|
2606
|
+
return o;
|
|
2607
|
+
}
|
|
2608
|
+
function pi(e5, t) {
|
|
2609
|
+
let r = new SyntaxError(e5 + " (" + t.loc.start.line + ":" + t.loc.start.column + ")");
|
|
2610
|
+
return Object.assign(r, t);
|
|
2611
|
+
}
|
|
2612
|
+
var Cs = pi;
|
|
2613
|
+
var Ls = Symbol.for("PRETTIER_IS_FRONT_MATTER");
|
|
2614
|
+
var Wt = 3;
|
|
2615
|
+
function fi(e5) {
|
|
2616
|
+
let t = e5.slice(0, Wt);
|
|
2617
|
+
if (t !== "---" && t !== "+++") return;
|
|
2618
|
+
let r = e5.indexOf(`
|
|
2619
|
+
`, Wt);
|
|
2620
|
+
if (r === -1) return;
|
|
2621
|
+
let n = e5.slice(Wt, r).trim(), s = e5.indexOf(`
|
|
2622
|
+
${t}`, r), i = n;
|
|
2623
|
+
if (i || (i = t === "+++" ? "toml" : "yaml"), s === -1 && t === "---" && i === "yaml" && (s = e5.indexOf(`
|
|
2624
|
+
...`, r)), s === -1) return;
|
|
2625
|
+
let a = s + 1 + Wt, o = e5.charAt(a + 1);
|
|
2626
|
+
if (!/\s?/u.test(o)) return;
|
|
2627
|
+
let c = e5.slice(0, a), h;
|
|
2628
|
+
return { language: i, explicitLanguage: n || null, value: e5.slice(r + 1, s), startDelimiter: t, endDelimiter: c.slice(-Wt), raw: c, start: { line: 1, column: 0, index: 0 }, end: { index: c.length, get line() {
|
|
2629
|
+
return h ?? (h = c.split(`
|
|
2630
|
+
`)), h.length;
|
|
2631
|
+
}, get column() {
|
|
2632
|
+
return h ?? (h = c.split(`
|
|
2633
|
+
`)), V(0, h, -1).length;
|
|
2634
|
+
} }, [Ls]: true };
|
|
2635
|
+
}
|
|
2636
|
+
function mi(e5) {
|
|
2637
|
+
let t = fi(e5);
|
|
2638
|
+
return t ? { frontMatter: t, get content() {
|
|
2639
|
+
let { raw: r } = t;
|
|
2640
|
+
return St(0, r, /[^\n]/gu, " ") + e5.slice(r.length);
|
|
2641
|
+
} } : { content: e5 };
|
|
2642
|
+
}
|
|
2643
|
+
var _s = mi;
|
|
2644
|
+
function di(e5) {
|
|
2645
|
+
let t = e5.children ?? e5.body;
|
|
2646
|
+
if (t) for (let r = 0; r < t.length - 1; r++) t[r].type === "TextNode" && t[r + 1].type === "MustacheStatement" && (t[r].chars = t[r].chars.replace(/\\$/u, "\\\\"));
|
|
2647
|
+
}
|
|
2648
|
+
var gi = (e5) => {
|
|
2649
|
+
let { start: t, end: r } = e5.loc;
|
|
2650
|
+
t.offset = e5.loc.getStart().offset, r.offset = e5.loc.getEnd().offset;
|
|
2651
|
+
}, bi = () => ({ name: "glimmerPrettierParsePlugin", visitor: { All(e5) {
|
|
2652
|
+
gi(e5), di(e5);
|
|
2653
|
+
} } }), yi = { mode: "codemod", plugins: { ast: [bi] } };
|
|
2654
|
+
function Si(e5) {
|
|
2655
|
+
let { frontMatter: t, content: r } = _s(e5), n;
|
|
2656
|
+
try {
|
|
2657
|
+
n = Ps(r, yi);
|
|
2658
|
+
} catch (s) {
|
|
2659
|
+
let i = Ei(s);
|
|
2660
|
+
if (i) {
|
|
2661
|
+
let a = ki(s);
|
|
2662
|
+
throw Cs(a, { loc: i, cause: s });
|
|
2663
|
+
}
|
|
2664
|
+
throw s;
|
|
2665
|
+
}
|
|
2666
|
+
if (t) {
|
|
2667
|
+
let s = { ...t, type: "FrontMatter", loc: { start: { ...t.start, offset: t.start.index }, end: { ...t.end, offset: t.end.index } } };
|
|
2668
|
+
n.body.unshift(s);
|
|
2669
|
+
}
|
|
2670
|
+
return n;
|
|
2671
|
+
}
|
|
2672
|
+
function ki(e5) {
|
|
2673
|
+
let { message: t } = e5, r = t.split(`
|
|
2674
|
+
`);
|
|
2675
|
+
return r.length >= 4 && /^Parse error on line \d+:$/u.test(r[0]) && /^-*\^$/u.test(V(0, r, -2)) ? V(0, r, -1) : r.length >= 4 && /:\s?$/u.test(r[0]) && /^\(error occurred in '.*?' @ line \d+ : column \d+\)$/u.test(V(0, r, -1)) && r[1] === "" && V(0, r, -2) === "" && r.slice(2, -2).every((n) => n.startsWith("|")) ? r[0].trim().slice(0, -1) : t;
|
|
2676
|
+
}
|
|
2677
|
+
function Ei(e5) {
|
|
2678
|
+
let { location: t, hash: r } = e5;
|
|
2679
|
+
if (t) {
|
|
2680
|
+
let { start: n, end: s } = t;
|
|
2681
|
+
return typeof s.line != "number" ? { start: n } : t;
|
|
2682
|
+
}
|
|
2683
|
+
if (r) {
|
|
2684
|
+
let { loc: { last_line: n, last_column: s } } = r;
|
|
2685
|
+
return { start: { line: n, column: s + 1 } };
|
|
2686
|
+
}
|
|
2687
|
+
}
|
|
2688
|
+
var vi = { parse: Si, astFormat: "glimmer", locStart: ht, locEnd: Vt };
|
|
2689
|
+
var wi = { glimmer: rs };
|
|
2690
|
+
export {
|
|
2691
|
+
Ds as default,
|
|
2692
|
+
ss as languages,
|
|
2693
|
+
br as parsers,
|
|
2694
|
+
wi as printers
|
|
2695
|
+
};
|
|
2696
|
+
//# sourceMappingURL=glimmer-ffe_QHPj.js.map
|