i18nsmith 0.1.9 → 0.2.0
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/commands/rename.d.ts.map +1 -1
- package/dist/commands/review.d.ts +4 -0
- package/dist/commands/review.d.ts.map +1 -0
- package/dist/commands/review.test.d.ts +2 -0
- package/dist/commands/review.test.d.ts.map +1 -0
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/transform.d.ts.map +1 -1
- package/dist/commands/translate/index.d.ts.map +1 -1
- package/dist/commands/translate/types.d.ts +2 -0
- package/dist/commands/translate/types.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1119 -383
- package/dist/test-helpers/ensure-cli-built.d.ts +2 -0
- package/dist/test-helpers/ensure-cli-built.d.ts.map +1 -0
- package/dist/utils/preview.d.ts +13 -0
- package/dist/utils/preview.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/commands/debug-patterns.test.ts +6 -1
- package/src/commands/rename.ts +35 -3
- package/src/commands/review.test.ts +12 -0
- package/src/commands/review.ts +228 -0
- package/src/commands/sync-seed.test.ts +9 -3
- package/src/commands/sync.ts +104 -10
- package/src/commands/transform.ts +31 -4
- package/src/commands/translate/index.ts +23 -3
- package/src/commands/translate/types.ts +2 -0
- package/src/commands/translate.test.ts +9 -3
- package/src/e2e.test.ts +3 -11
- package/src/index.ts +2 -0
- package/src/integration.test.ts +12 -1
- package/src/test-helpers/ensure-cli-built.ts +32 -0
- package/src/utils/preview.ts +126 -0
package/dist/index.js
CHANGED
|
@@ -4942,7 +4942,7 @@ ${i.comment}` : s5.comment), s5 = i;
|
|
|
4942
4942
|
ws8.scalarFallback = (t) => {
|
|
4943
4943
|
throw new SyntaxError(`Unresolved plain scalar ${JSON.stringify(t)}`);
|
|
4944
4944
|
};
|
|
4945
|
-
var
|
|
4945
|
+
var fs39 = ({ value: t }) => t ? E5.boolOptions.trueStr : E5.boolOptions.falseStr, lt8 = (t) => typeof t == "bigint" || Number.isInteger(t);
|
|
4946
4946
|
function qt11(t, e30, n5) {
|
|
4947
4947
|
let r5 = e30.replace(/_/g, "");
|
|
4948
4948
|
if (E5.intOptions.asBigInt) {
|
|
@@ -4971,7 +4971,7 @@ ${i.comment}` : s5.comment), s5 = i;
|
|
|
4971
4971
|
}
|
|
4972
4972
|
return E5.stringifyNumber(t);
|
|
4973
4973
|
}
|
|
4974
|
-
var la3 = Vn6.concat([{ identify: (t) => t == null, createNode: (t, e30, n5) => n5.wrapScalars ? new E5.Scalar(null) : null, default: true, tag: "tag:yaml.org,2002:null", test: /^(?:~|[Nn]ull|NULL)?$/, resolve: () => null, options: E5.nullOptions, stringify: () => E5.nullOptions.nullStr }, { identify: (t) => typeof t == "boolean", default: true, tag: "tag:yaml.org,2002:bool", test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/, resolve: () => true, options: E5.boolOptions, stringify:
|
|
4974
|
+
var la3 = Vn6.concat([{ identify: (t) => t == null, createNode: (t, e30, n5) => n5.wrapScalars ? new E5.Scalar(null) : null, default: true, tag: "tag:yaml.org,2002:null", test: /^(?:~|[Nn]ull|NULL)?$/, resolve: () => null, options: E5.nullOptions, stringify: () => E5.nullOptions.nullStr }, { identify: (t) => typeof t == "boolean", default: true, tag: "tag:yaml.org,2002:bool", test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/, resolve: () => true, options: E5.boolOptions, stringify: fs39 }, { identify: (t) => typeof t == "boolean", default: true, tag: "tag:yaml.org,2002:bool", test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i, resolve: () => false, options: E5.boolOptions, stringify: fs39 }, { identify: lt8, default: true, tag: "tag:yaml.org,2002:int", format: "BIN", test: /^([-+]?)0b([0-1_]+)$/, resolve: (t, e30, n5) => qt11(e30, n5, 2), stringify: (t) => Un8(t, 2, "0b") }, { identify: lt8, default: true, tag: "tag:yaml.org,2002:int", format: "OCT", test: /^([-+]?)0([0-7_]+)$/, resolve: (t, e30, n5) => qt11(e30, n5, 8), stringify: (t) => Un8(t, 8, "0") }, { identify: lt8, default: true, tag: "tag:yaml.org,2002:int", test: /^([-+]?)([0-9][0-9_]*)$/, resolve: (t, e30, n5) => qt11(e30, n5, 10), stringify: E5.stringifyNumber }, { identify: lt8, default: true, tag: "tag:yaml.org,2002:int", format: "HEX", test: /^([-+]?)0x([0-9a-fA-F_]+)$/, resolve: (t, e30, n5) => qt11(e30, n5, 16), stringify: (t) => Un8(t, 16, "0x") }, { identify: (t) => typeof t == "number", default: true, tag: "tag:yaml.org,2002:float", test: /^(?:[-+]?\.inf|(\.nan))$/i, resolve: (t, e30) => e30 ? NaN : t[0] === "-" ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY, stringify: E5.stringifyNumber }, { identify: (t) => typeof t == "number", default: true, tag: "tag:yaml.org,2002:float", format: "EXP", test: /^[-+]?([0-9][0-9_]*)?(\.[0-9_]*)?[eE][-+]?[0-9]+$/, resolve: (t) => parseFloat(t.replace(/_/g, "")), stringify: ({ value: t }) => Number(t).toExponential() }, { identify: (t) => typeof t == "number", default: true, tag: "tag:yaml.org,2002:float", test: /^[-+]?(?:[0-9][0-9_]*)?\.([0-9_]*)$/, resolve(t, e30) {
|
|
4975
4975
|
let n5 = new E5.Scalar(parseFloat(t.replace(/_/g, "")));
|
|
4976
4976
|
if (e30) {
|
|
4977
4977
|
let r5 = e30.replace(/_/g, "");
|
|
@@ -6862,10 +6862,10 @@ function kc({ node: e30, parent: t }) {
|
|
|
6862
6862
|
}
|
|
6863
6863
|
function oo2(e30) {
|
|
6864
6864
|
let t = (n5) => n5.type === "TemplateLiteral", r5 = (n5, s5) => Oe2(n5) && !n5.computed && n5.key.type === "Identifier" && n5.key.name === "styles" && s5 === "value";
|
|
6865
|
-
return e30.match(t, (n5, s5) => q2(n5) && s5 === "elements", r5, ...
|
|
6865
|
+
return e30.match(t, (n5, s5) => q2(n5) && s5 === "elements", r5, ...fs22) || e30.match(t, r5, ...fs22);
|
|
6866
6866
|
}
|
|
6867
6867
|
function ys(e30) {
|
|
6868
|
-
return e30.match((t) => t.type === "TemplateLiteral", (t, r5) => Oe2(t) && !t.computed && t.key.type === "Identifier" && t.key.name === "template" && r5 === "value", ...
|
|
6868
|
+
return e30.match((t) => t.type === "TemplateLiteral", (t, r5) => Oe2(t) && !t.computed && t.key.type === "Identifier" && t.key.name === "template" && r5 === "value", ...fs22);
|
|
6869
6869
|
}
|
|
6870
6870
|
function Ds2(e30, t) {
|
|
6871
6871
|
return T(e30, x.Block | x.Leading, ({ value: r5 }) => r5 === ` ${t} `);
|
|
@@ -9850,7 +9850,7 @@ function Ca(e30, t) {
|
|
|
9850
9850
|
}
|
|
9851
9851
|
if (r5 === "TemplateLiteral") return { type: "StringLiteral", value: e30.quasis[0].value.cooked };
|
|
9852
9852
|
}
|
|
9853
|
-
var Ba2, jn, Ta, Qs2, Hs2, Wt, ba, Pa, W2, Ia, N2, Lr2, Zs2, ei2, _a2, Ma, ot, JD, ze2, ti2, ri2, ni2, Ze2, Z2, qt, Ut, Yt, R, qa2, Le2, si2, ii2, Ua2, Ya2, wr2, Xa2, oi2, ut, ui2, Dr2, Qa2, _r2, a, pi2, Za, Mr2, k2, pe, rp, ce2, np, Nr2, sp, At2, Pt2, jr, kt2, Di2, q2, se2, Jr, pp, Je2, Ht2, H, Te2, lp, Dp, Fi2, M, J2, yp, Ep, li2, vr2, Yn, Fp, qn2, Un, x, gi2, oe, Ae2, Se, xt, Ue, hi2, Cr2, dp, Kt, Bi2, Cp, Ap, Tp, bi2, xp, Pi2, at2, _e2, ue, Qn, Hr, Zn2, Mp, Np, wi2, Xp, Vp, Ri2, nc, Ji2, Gi2, ic, Wi2, Ye, Be, tt2, He2, Xe2, rt2, Fe, Me2, be, Ve2, $e, Ge2, me2, Pe2, Ne, Xr, We2, ac, is, gt2, qi2, Vr2, de2, Kr, $i2, Ki2, ke2, Tr2, A, f, os, E, yc, $r2, je2, Ec, Fc, dc, Cc, Ac, Tc, xc, gc, as, ve2, ct, cs, no2, so2,
|
|
9853
|
+
var Ba2, jn, Ta, Qs2, Hs2, Wt, ba, Pa, W2, Ia, N2, Lr2, Zs2, ei2, _a2, Ma, ot, JD, ze2, ti2, ri2, ni2, Ze2, Z2, qt, Ut, Yt, R, qa2, Le2, si2, ii2, Ua2, Ya2, wr2, Xa2, oi2, ut, ui2, Dr2, Qa2, _r2, a, pi2, Za, Mr2, k2, pe, rp, ce2, np, Nr2, sp, At2, Pt2, jr, kt2, Di2, q2, se2, Jr, pp, Je2, Ht2, H, Te2, lp, Dp, Fi2, M, J2, yp, Ep, li2, vr2, Yn, Fp, qn2, Un, x, gi2, oe, Ae2, Se, xt, Ue, hi2, Cr2, dp, Kt, Bi2, Cp, Ap, Tp, bi2, xp, Pi2, at2, _e2, ue, Qn, Hr, Zn2, Mp, Np, wi2, Xp, Vp, Ri2, nc, Ji2, Gi2, ic, Wi2, Ye, Be, tt2, He2, Xe2, rt2, Fe, Me2, be, Ve2, $e, Ge2, me2, Pe2, Ne, Xr, We2, ac, is, gt2, qi2, Vr2, de2, Kr, $i2, Ki2, ke2, Tr2, A, f, os, E, yc, $r2, je2, Ec, Fc, dc, Cc, Ac, Tc, xc, gc, as, ve2, ct, cs, no2, so2, fs22, po2, Es, fo2, yo, jc, Co, Gc, Wc, go, qc, Ao, Uc, To, Yc, ho, ko, Io, Fs2, Oo, Qc, ge, Mo, sl2, Et2, pl, cl, ll, ml, vo, dt2, fl, Ro, Fl, dl, Cl, Go, hr2, kl, Vo, Ll, cn2, Yl, bs, Ls2, Qe2, ws, pu, yn2, _s2, Kl, nr2, Dm, Ns, ym, Am, Tm, xu, gu, hu, Bu, Bm, bm, Pm, js2, Om, Iu, Mm, Jt2, ju, jm, Ru, Rm, qm, Xm, Qm, Ws2, Zm, ua, lD, Ys2, DD, ya, Xs2, ar2, Ea, fD, Fa2, ED, pr2, St2, FD, Aa, dD, CD;
|
|
9854
9854
|
var init_estree = __esm({
|
|
9855
9855
|
"../../node_modules/.pnpm/prettier@3.7.4/node_modules/prettier/plugins/estree.mjs"() {
|
|
9856
9856
|
Ba2 = Object.defineProperty;
|
|
@@ -10043,7 +10043,7 @@ var init_estree = __esm({
|
|
|
10043
10043
|
cs = Symbol("DOC_FILL_PRINTED_LENGTH");
|
|
10044
10044
|
no2 = Sc;
|
|
10045
10045
|
so2 = Bc;
|
|
10046
|
-
|
|
10046
|
+
fs22 = [(e30, t) => e30.type === "ObjectExpression" && t === "properties", (e30, t) => e30.type === "CallExpression" && e30.callee.type === "Identifier" && e30.callee.name === "Component" && t === "arguments", (e30, t) => e30.type === "Decorator" && t === "expression"];
|
|
10047
10047
|
po2 = (e30) => Oc(e30) || wc(e30) || _c(e30) || oo2(e30);
|
|
10048
10048
|
Es = 0;
|
|
10049
10049
|
fo2 = mo.bind(void 0, "html");
|
|
@@ -10350,7 +10350,7 @@ function ls2(e30) {
|
|
|
10350
10350
|
function Ut2(e30) {
|
|
10351
10351
|
return e30 >= 65 && e30 <= 90 || e30 >= 97 && e30 <= 122;
|
|
10352
10352
|
}
|
|
10353
|
-
function
|
|
10353
|
+
function fs23(e30) {
|
|
10354
10354
|
return e30 >= 0 && e30 <= 1114111;
|
|
10355
10355
|
}
|
|
10356
10356
|
function ds2(e30) {
|
|
@@ -12521,7 +12521,7 @@ var init_acorn = __esm({
|
|
|
12521
12521
|
}
|
|
12522
12522
|
return true;
|
|
12523
12523
|
}
|
|
12524
|
-
if (s5 && e30.eat(123) && this.regexp_eatHexDigits(e30) && e30.eat(125) &&
|
|
12524
|
+
if (s5 && e30.eat(123) && this.regexp_eatHexDigits(e30) && e30.eat(125) && fs23(e30.lastIntValue)) return true;
|
|
12525
12525
|
s5 && e30.raise("Invalid unicode escape"), e30.pos = i;
|
|
12526
12526
|
}
|
|
12527
12527
|
return false;
|
|
@@ -13449,7 +13449,7 @@ function W4(e30) {
|
|
|
13449
13449
|
return tr4 <= e30 && e30 <= nr4;
|
|
13450
13450
|
}
|
|
13451
13451
|
function Lt4(e30) {
|
|
13452
|
-
return e30 >= ps3 && e30 <=
|
|
13452
|
+
return e30 >= ps3 && e30 <= fs24 || e30 >= Ut3 && e30 <= Wt3;
|
|
13453
13453
|
}
|
|
13454
13454
|
function Mn(e30) {
|
|
13455
13455
|
return e30 === cs3 || e30 === ls3 || e30 === Pt4;
|
|
@@ -13482,7 +13482,7 @@ function Lr3(e30, t, n5) {
|
|
|
13482
13482
|
return new I3(e30, t, p.RegExpFlags, 0, n5);
|
|
13483
13483
|
}
|
|
13484
13484
|
function Zn3(e30) {
|
|
13485
|
-
return ps3 <= e30 && e30 <=
|
|
13485
|
+
return ps3 <= e30 && e30 <= fs24 || Ut3 <= e30 && e30 <= Wt3 || e30 == ot3 || e30 == Ht4;
|
|
13486
13486
|
}
|
|
13487
13487
|
function es3(e30) {
|
|
13488
13488
|
return Lt4(e30) || W4(e30) || e30 == ot3 || e30 == Ht4;
|
|
@@ -13619,7 +13619,7 @@ function pt4(e30) {
|
|
|
13619
13619
|
return delete n5.comments, e30 === ht4 && n5.type !== "NGChainedExpression" && (n5 = { ...n5, type: "NGChainedExpression", expressions: [n5] }), { type: "NGRoot", node: n5, comments: s5 };
|
|
13620
13620
|
}, locStart: en3, locEnd: Os3 };
|
|
13621
13621
|
}
|
|
13622
|
-
var Hs4, rn3, an3, ft3, U3, ze4, dt4, x2, Fs4, tn3, ei4, fn3, dn3, mn3, L3, gn3, vn2, xn2, wn2, Sn3, En3, yn3, _n2, u, _3, Je4, gt4, vt4, xt3, wt4, Ye2, St4, Et4, w3, yt4, _t3, Ct4, kt4, Qe4, Tt4, bt4, ti4, Cn2, a3, l2, At4, ni4, kn2, Y2, v3, Pe4, A3, Q3, It3, Le4, Me4, X4, ce4, ue3, he4, be3, Re3, k4, $e3, De4, Vt3, y, J4, K4, Z4, ee2, Be3, Oe3, pe2, fe2, de3, me4, Fe3, Ve4, B2, F3, ge3, He4, Nt4, Tn2, bn2, M3, An2, ye3, as3, Xe4, Gs4, Xs4, Js4, os3, Ys4, ls3, Qs4, Ht4, Ks3, In2, cs3, Ae4, q4, Nn, us3, re3, hs3, ke4, Ke4, j2, Te4, Zs4, b3, er4, Pn2, tr4, nr4, Ut3, sr4, Wt3, le3, mt4, G3, rr4, ot3, ps3, ir4, ar4, or4, lr3, cr3, ur4, hr4,
|
|
13622
|
+
var Hs4, rn3, an3, ft3, U3, ze4, dt4, x2, Fs4, tn3, ei4, fn3, dn3, mn3, L3, gn3, vn2, xn2, wn2, Sn3, En3, yn3, _n2, u, _3, Je4, gt4, vt4, xt3, wt4, Ye2, St4, Et4, w3, yt4, _t3, Ct4, kt4, Qe4, Tt4, bt4, ti4, Cn2, a3, l2, At4, ni4, kn2, Y2, v3, Pe4, A3, Q3, It3, Le4, Me4, X4, ce4, ue3, he4, be3, Re3, k4, $e3, De4, Vt3, y, J4, K4, Z4, ee2, Be3, Oe3, pe2, fe2, de3, me4, Fe3, Ve4, B2, F3, ge3, He4, Nt4, Tn2, bn2, M3, An2, ye3, as3, Xe4, Gs4, Xs4, Js4, os3, Ys4, ls3, Qs4, Ht4, Ks3, In2, cs3, Ae4, q4, Nn, us3, re3, hs3, ke4, Ke4, j2, Te4, Zs4, b3, er4, Pn2, tr4, nr4, Ut3, sr4, Wt3, le3, mt4, G3, rr4, ot3, ps3, ir4, ar4, or4, lr3, cr3, ur4, hr4, fs24, Ze4, Ln2, ie3, ds3, Pt4, et4, tt4, nt4, st2, Mt4, Rn2, $n2, Dn2, fr4, ms3, dr4, Rt3, mr2, gr3, qt3, ii4, ai4, vr3, oi4, xr3, li4, gs3, ci4, ui4, wr3, Sr3, Er3, hi4, pi4, fi4, f3, ve4, Bn2, On2, Fn2, R3, Vn2, Hn3, Un2, Wn2, $3, qn3, jn2, yr3, vs4, We4, jt3, di4, mi4, gi4, rt4, xe3, zn3, Gn3, Xn3, Jn2, $t2, vi4, Yn2, Qn2, xi4, wi4, Si4, Ei4, yi4, _r3, Cr3, Kn3, xs4, _i4, Ci4, p, V4, kr2, Ue3, I3, Ie3, Ge4, Dt3, Bt2, Ot4, we3, ae3, ts3, z3, Ft3, Or3, ki4, Ti4, bi4, Ai4, Ii4, Ni4, Pi4, Li4, Mi3, Ri4, $i4, ns3, Di4, Bi4, ss3, rs3, ws3, Oi4, Fi4, is3, Vi4, Hr2, Ss2, Wr2, Es2, ys3, _s3, Cs2, jr2, lt3, ks3, Gt3, Se3, se4, m2, Ps4, T3, Xt4, Jt4, Yt2, Ls4, Ms4, Rs4, $s3, Ns3, zr2, Qt3, Kt3, ht4, Zt4, Gr2, Xr2, Jr2, Yr3;
|
|
13623
13623
|
var init_angular = __esm({
|
|
13624
13624
|
"../../node_modules/.pnpm/prettier@3.7.4/node_modules/prettier/plugins/angular.mjs"() {
|
|
13625
13625
|
Hs4 = Object.defineProperty;
|
|
@@ -14786,7 +14786,7 @@ var init_angular = __esm({
|
|
|
14786
14786
|
cr3 = 116;
|
|
14787
14787
|
ur4 = 117;
|
|
14788
14788
|
hr4 = 118;
|
|
14789
|
-
|
|
14789
|
+
fs24 = 122;
|
|
14790
14790
|
Ze4 = 123;
|
|
14791
14791
|
Ln2 = 124;
|
|
14792
14792
|
ie3 = 125;
|
|
@@ -16955,7 +16955,7 @@ function cr4(a5, t) {
|
|
|
16955
16955
|
}
|
|
16956
16956
|
function lr4(a5, t) {
|
|
16957
16957
|
let e30 = null, s5 = t;
|
|
16958
|
-
for (; s5 !== e30; ) e30 = s5, s5 = cs4(a5, s5), s5 = ps4(a5, s5), s5 = ds4(a5, s5), s5 =
|
|
16958
|
+
for (; s5 !== e30; ) e30 = s5, s5 = cs4(a5, s5), s5 = ps4(a5, s5), s5 = ds4(a5, s5), s5 = fs25(a5, s5);
|
|
16959
16959
|
return s5;
|
|
16960
16960
|
}
|
|
16961
16961
|
function ys4(a5) {
|
|
@@ -17261,7 +17261,7 @@ function re4(a5) {
|
|
|
17261
17261
|
throw q5(a5, `'${a5.type}'`);
|
|
17262
17262
|
}
|
|
17263
17263
|
}
|
|
17264
|
-
var Hs5, Re4, Ks4, kt5, R4, Q4, Dt4, Js5, Mt5, be4, Gs5, Xs5, Ys5, Qs5, Zs5, ei5, p2, ri4, Ft4, ai5, W5, E2, T4, m3, Ue4, oe4, j3, ni5, we4, ft4, pe3, dt5, mt5, yt5, xt4, Pt5, gt5, oi5, bt5, Xt5, Pi5, gi5, Yt3, Ti5, At5, bi5, Ai5, Si5, Ei5, ue4, fe3, He5, We5, Ni5, g2, vi5, Di5, Mi4, Oi5, ge4, _e5, je5, U4, Bi5, Je5, Ge5, Xe5, Ye3, Qe5, Ze5, Ui4, _t4, Te5, Vi5, tt5, st3, it3, rt5, Z5, Ce5, at5, nt5, Y3, de4, Vt4, ot4, ht5, ct4, Ve5, y2, Ji4, $t3, Qi4, Zi4, Kt4, Ht5, hs4, tr5, pt5, ze5, sr5, ir5, qe4, ut4, Ee4, ua2, Wt4, da2, cs4, ma2, ls4, ps4, us4,
|
|
17264
|
+
var Hs5, Re4, Ks4, kt5, R4, Q4, Dt4, Js5, Mt5, be4, Gs5, Xs5, Ys5, Qs5, Zs5, ei5, p2, ri4, Ft4, ai5, W5, E2, T4, m3, Ue4, oe4, j3, ni5, we4, ft4, pe3, dt5, mt5, yt5, xt4, Pt5, gt5, oi5, bt5, Xt5, Pi5, gi5, Yt3, Ti5, At5, bi5, Ai5, Si5, Ei5, ue4, fe3, He5, We5, Ni5, g2, vi5, Di5, Mi4, Oi5, ge4, _e5, je5, U4, Bi5, Je5, Ge5, Xe5, Ye3, Qe5, Ze5, Ui4, _t4, Te5, Vi5, tt5, st3, it3, rt5, Z5, Ce5, at5, nt5, Y3, de4, Vt4, ot4, ht5, ct4, Ve5, y2, Ji4, $t3, Qi4, Zi4, Kt4, Ht5, hs4, tr5, pt5, ze5, sr5, ir5, qe4, ut4, Ee4, ua2, Wt4, da2, cs4, ma2, ls4, ps4, us4, fs25, ds4, ms4, ve5, ee3, ur5, fr5, xs5, mr3, Ps5, te5, xr4, se5, Pr3, gs4, St5, Ts3, wt5, Ct5, bs4, As4, me5, wr4, Ss3, c, ws4, Er4, Cs3, Es3, fn4, Ns4, De5, ks4, Me5, vr4, Lr4, xe4, Dr4, Mr4, Or4, Fr4, vs5, Br4, Ls5, Rr4, Ur4, Os4, Fs5, H3, Oe4, Nt5, Fe4, ie4, Vr3, js5, Vs3, _4, zr3, Hr3, zs5, Wr3, Jr3, Gr3, Xr3, qs5, Yr4, Lt5, vt5, $s4, ea2, ta2, sa2, ia2, ra2;
|
|
17265
17265
|
var init_babel = __esm({
|
|
17266
17266
|
"../../node_modules/.pnpm/prettier@3.7.4/node_modules/prettier/plugins/babel.mjs"() {
|
|
17267
17267
|
Hs5 = Object.defineProperty;
|
|
@@ -23555,7 +23555,7 @@ var init_babel = __esm({
|
|
|
23555
23555
|
ps4 = or5;
|
|
23556
23556
|
us4 = (a5) => a5 === `
|
|
23557
23557
|
` || a5 === "\r" || a5 === "\u2028" || a5 === "\u2029";
|
|
23558
|
-
|
|
23558
|
+
fs25 = hr5;
|
|
23559
23559
|
ds4 = cr4;
|
|
23560
23560
|
ms4 = lr4;
|
|
23561
23561
|
ve5 = pr5;
|
|
@@ -23880,7 +23880,7 @@ var init_flow = __esm({
|
|
|
23880
23880
|
"use strict";
|
|
23881
23881
|
var ox = 320, Yx = "loc", xr6 = 289, E12 = 70416, S24 = 69748, da5 = 163, Tt12 = 92159, Vr7 = 43587, G12 = "labeled_statement", yo2 = "&=", Et13 = "int_of_string", G32 = 110591, _o2 = 92909, gp4 = 11559, nD2 = "regexp", W52 = 43301, bp3 = 11703, V52 = 122654, ya3 = 255, uD2 = "%ni", $52 = 68252, iD2 = 232, Q52 = 42785, qn8 = "declare_variable", Tp3 = "while", Z52 = 66938, xy2 = 70301, ry2 = 124907, Ep3 = 126515, fD2 = 218, Bn7 = "pattern_identifier", ey = 67643, Un8 = "export_source", ty2 = 216, ny2 = 64279, cD2 = "Out_of_memory", uy2 = 113788, sD2 = "comments", iy2 = 126624, aD2 = "win32", Xn9 = "object_key_bigint_literal", oD2 = 185, Sp3 = 123214, _a6 = "constructor", fy2 = 69955, Gn9 = "import_declaration", cy2 = 68437, sy2 = "Failure", Ap3 = "Unix.Unix_error", ay2 = 64255, oy2 = 42539, vy2 = 110579, Yn7 = "export_default_declaration", zn9 = "jsx_attribute_name", Ip3 = 11727, ly2 = 43002, Pp4 = 126500, Jn9 = "component_param_pattern", vD = "collect_comments_opt", Kn10 = "match_unary_pattern", lD2 = 321, Hn8 = "keyof_type", pD2 = "Invalid binary/octal ", kD = "range", py2 = 170, wa4 = "false", ky2 = 43798, mD2 = ", characters ", Wn8 = "object_type_property_getter", my2 = 65547, hy2 = 126467, dy2 = 65007, yy2 = 42237, _y2 = 8318, wy2 = 71215, Vn6 = "object_property_type", $n8 = "type_alias", gy2 = 67742, Qn8 = "function_body", hD = 304, by2 = 68111, Cp3 = 120745, Ty2 = 71959, Np4 = 43880, dD2 = "Match_failure", Zn10 = "type_cast", wo5 = 109, ga2 = "void", Ey2 = "generator", Sy2 = 125124, Ay2 = 101589, Op3 = 94179, yD2 = ">>>", jp3 = 70404, x72 = "optional_indexed_access_type", $12 = "argument", r7 = "object_property", e72 = "object_type_property", Iy3 = 67004, Py2 = 42783, Cy2 = 68850, _D = "@", Ny2 = 43741, Oy2 = 43487, Dp3 = "object", wD = "end", Rp3 = 126571, jy3 = 71956, gD = 208, Dy3 = 126566, Ry2 = 67702, bD = "EEXIST", t7 = "this_expression", TD = 203, Fy3 = 11507, My3 = 113807, Fp3 = 119893, Ly3 = 42735, p62 = "rest", n7 = "null_literal", k63 = "protected", qy3 = 43615, v24 = 8231, By3 = 68149, Uy3 = 73727, Xy2 = 72348, Gy3 = 92995, Sv2 = 224, Yy3 = 11686, zy3 = 43013, u7 = "assignment_pattern", Jy2 = 12329, i7 = "function_type", Y32 = 192, f7 = "jsx_element_name", Ky2 = 70018, ED2 = -57, c7 = "catch_clause_pattern", Mp3 = 126540, s7 = "template_literal", Hy3 = 120654, Wy3 = 68497, Vy3 = 67679, a7 = "readonly_type", $y3 = 68735, Qy2 = "<", Lp3 = ": No such file or directory", Zy2 = 66915, x9 = "chain", SD = "!", o7 = "object_type", r9 = 43712, qp3 = 64297, e92 = 183969, t9 = -105, n9 = 43503, u9 = 67591, Av2 = 65278, i9 = 67669, v72 = "for_of_assignment_pattern", m62 = "`", f9 = 11502, l7 = "catch_body", c9 = 42191, go2 = -744106340, s9 = 182, Iv2 = ":", AD = "a string", a9 = 65663, o9 = 66978, v9 = 71947, Bp3 = 43519, l9 = 71086, p9 = 125258, k9 = 12538, p7 = "expression_or_spread", ID = "Printexc.handle_uncaught_exception", Up3 = 69956, Xp3 = 120122, Gp3 = 247, PD = 231, m9 = " : flags Open_rdonly and Open_wronly are not compatible", k72 = "statement_fork_point", CD2 = 710, ND = -692038429, Ue10 = "static", h9 = 55203, d9 = 64324, y9 = 64111, OD = "!==", _92 = 120132, w9 = 124903, h62 = "class", jD = 222, m7 = "pattern_number_literal", ba3 = "kind", g9 = 71903, h7 = "variable_declarator", DD2 = " named `", d7 = "typeof_expression", b9 = 126627, T9 = 70084, RD = 228, Yp3 = 70480, y7 = "class_private_field", E9 = 239, zp3 = 120713, rn7 = 65535, z32 = -26, _72 = "private_name", S9 = 43137, w72 = "remote_identifier", A9 = 70161, g7 = "label_identifier", I9 = "src/parser/statement_parser.ml", P9 = 8335, C9 = 19903, N9 = 64310, Pv2 = "_", b7 = "for_init_declaration", FD2 = "infer", O9 = 64466, j9 = 43018, MD = "tokens", D9 = 92735, R92 = 66954, F92 = 65473, M92 = 70285, T7 = "sequence", L9 = "compare: functional value", q92 = 69890, d62 = 1e3, B9 = 65487, U9 = 42653, LD = "\\\\", qD = "%=", E7 = "match_member_pattern_base", X92 = 72367, S7 = "function_rest_param", BD = "/static/", G92 = 124911, Y9 = 65276, Jp3 = 126558, z9 = 11498, UD = 137, A72 = "export_default_declaration_decl", J92 = "cases", Kp3 = 126602, I72 = "jsx_child", Xe11 = "continue", K92 = 42962, XD = "importKind", e110 = 122, J32 = "Literal", P7 = "pattern_object_property_identifier_key", H92 = 42508, bo4 = "in", W92 = 55238, V92 = 67071, $92 = 70831, Q92 = 72161, Z9 = 67462, GD = "<<=", x_2 = 43009, r_2 = 66383, Hp3 = 67827, e_2 = 72202, t_2 = 69839, n_2 = 66775, YD = "-=", Cv2 = 8202, u_2 = 70105, i_2 = 120538, zD = -92, C72 = "for_in_left_declaration", f_2 = "rendersType", Wp3 = 126563, c_2 = 70708, Vp3 = 126523, JD2 = 166, N7 = "match_", KD = 202, s_2 = 110951, Ta3 = "component", $p3 = 126552, a_2 = 66977, o_2 = 213, O7 = "enum_member_identifier", HD = 210, j72 = "enum_bigint_body", WD = ">=", v_2 = 126495, l_2 = "specifiers", p_2 = "=", k_2 = 65338, y62 = "members", m_2 = 123535, h_2 = 43702, d_2 = 72767, Nv2 = "get", y_2 = 126633, Qp3 = 126536, __2 = 94098, w_2 = "types", g_2 = 113663, VD = "Internal Error: Found private field in object props", D7 = "jsx_element", b_2 = 70366, T_2 = 110959, Zp3 = 120655, $D = "trailingComments", QD = 282, To3 = 24029, ZD = -100, xR = 144, H24 = "yield", R72 = "binding_pattern", F72 = "typeof_identifier", rR = "ENOTEMPTY", xk = 126468, E_2 = 1255, S_2 = 120628, M72 = "pattern_object_property_string_literal_key", A_2 = 8521, eR = "leadingComments", tR = 8204, Eo2 = "@ ", I_ = 70319, Ea5 = "left", nR = 188, rk = "case", P_ = 19967, ek = 42622, C_ = 43492, N_ = 113770, L72 = "match_instance_pattern_constructor", O_ = 42774, j_ = 183, tk = 8468, q72 = "record_body", B7 = "class_implements", nk = 126579, K32 = "string", uR = 211, r23 = -48, D_ = 69926, R_ = 123213, U72 = "if_consequent_statement", F_ = 124927, H32 = "number", M_ = 126546, L_ = 68119, q_ = 70726, uk = 70750, B_ = 65489, iR = "SpreadElement", fR = "callee", cR = 193, U_ = 70492, X_ = 71934, sR = 164, G_ = 110580, Y_ = 12320, ik = "any", se11 = "/", X72 = "type_guard", w12 = "body", fk = 178, ge11 = "pattern", aR = "comment_bounds", oR = 297, G72 = "binding_type_identifier", z_ = 187, Y7 = "pattern_array_rest_element_pattern", ck = "@])", J_ = 12543, K_ = 11623, vR = "start", H_ = 67871, ae10 = "interface", W_ = 8449, V_ = 67637, $_ = 42961, sk = 120085, Q_ = 126463, lR = "alternate", pR = -1053382366, Z_ = 70143, kR = "--", xw = 68031, z72 = "jsx_expression", J72 = "type_identifier_reference", ak = 11647, rw = "proto", St12 = "identifier", ew = 43696, At12 = "raw", tw = 126529, nw = 11564, ok2 = 126557, uw = 64911, vk = 67592, iw = 43493, lk = 215, fw = 110588, _63 = 461894857, cw = 92927, sw = 67861, aw = 119980, ow = 43042, mR = -89, vw = 66965, lw = 67391, W32 = "computed", hR = "unreachable jsxtext", pw = 71167, kw = 42559, mw = 72966, dR = 180, hw = 197, pk = 64319, yR = 169, _R = "*", kk = 129, dw = 66335, w63 = "meta", yw = 43388, mk = 94178, ft9 = "optional", hk = "unknown", _w = 120121, ww = 123180, dk = 8469, gw = 68220, wR = "|", bw = 43187, Tw = 94207, Ew = 124895, yk = 120513, Sw = 42527, Ov = 8286, Aw = 94177, g62 = "var", K72 = "component_type_param", Iw = 66421, gR = 285, Pw = 92991, Cw = 68415, H72 = "comment", W72 = "match_pattern_array_element", jv = 244, _k = "^", Nw = 173791, bR = 136, Ow = 42890, jw = "ENOTDIR", Dw = "??", Rw = 43711, Fw = 66303, Mw = 113800, Lw = 42239, qw = 12703, V72 = "variance_opt", $72 = "+", TR = ">>>=", ER = 147, SR = 376, wk = "mixed", Bw2 = 65613, Uw = 73029, AR = 318, Xw = 68191, IR = "*=", gk = 8487, Gw = 8477, Q72 = "toplevel_statement_list", bk = "never", Tk = "do", So3 = 125, Yw = 72249, PR = "Pervasives.do_at_exit", CR = "visit_trailing_comment", Z72 = "jsx_closing_element", xu3 = "jsx_namespaced_name", zw = 124908, Jw = 126651, ru4 = "component_declaration", Kw = 15, eu4 = "interface_type", tu3 = "function_type_return_annotation", Hw = 64109, Ek = 65595, Sk = 126560, Ww = 110927, Ak = 65598, Ik = 8488, nu3 = "`.", NR = 175, Pk = "package", Ck = "else", Nk = 120771, Vw = 68023, OR = "fd ", Dv = 8238, Ok = 888960333, jk = 119965, $w = 42655, uu4 = "match_object_pattern", Qw = 11710, Zw = 119993, iu3 = "boolean_literal", jR = 290, fu4 = "statement_list", cu3 = "function_param", su3 = "match_as_pattern", au3 = "pattern_object_property_bigint_literal_key", Dk = 69959, xg2 = 120485, DR = 240, rg2 = 191456, ou3 = "declare_enum", Rk = 120597, Fk = 70281, vu4 = "type_annotation", lu4 = "spread_element", Mk = 126544, eg2 = 120069, en10 = "key", tg2 = 43583, ng2 = "out", ug2 = `
|
|
23882
23882
|
`, RR = "**=", pu2 = "pattern_object_property_pattern", ig2 = "e", fg8 = 72712, FR = "Internal Error: Found object private prop", cg2 = "ENOENT", sg2 = -42, ku3 = "jsx_opening_attribute", ag2 = 67646, mu3 = "component_type", og2 = 64296, vg2 = 43887, MR = "Division_by_zero", LR = "EnumDefaultedMember", hu4 = "typeof_member_identifier", lg2 = 43792, du4 = "match_member_pattern_property", yu5 = "declare_export_declaration_decl", pg2 = 93026, _u4 = "type_annotation_hint", kg2 = 42887, mg2 = 43881, hg2 = 43761, Lk = 8526, qR = 287, b63 = 119, dg2 = 43866, yg2 = 72847, _g2 = 8348, k12 = 101, wg2 = 94026, qk = 72272, BR = "src/parser/flow_lexer.ml", gg2 = 120744, Rv = 8191, V32 = "implies", Bk = 255, Uk = 11711, wu3 = "match_unary_pattern_argument", bg2 = 71235, UR = 288, Xk = 68116, cr8 = 100, gu4 = "match_expression", bu4 = "enum_body", Gk = 1114111, Tu5 = "assignment", Tg2 = 71955, Yk = 43260, Eu5 = "pattern_array_e", Eg2 = 126583, XR = "prefix", Su3 = "class_body", T63 = "shorthand", Sg2 = 171, Ag2 = 66256, zk = -97, GR = " =", Ig2 = 94032, Pg2 = 42606, Au3 = "match_case", Cg2 = 71839, Jk = 120134, Ng2 = 55291, Og2 = 92862, jg2 = 43019, Dg2 = 126543, $32 = "function", Rg2 = 111355, Fg2 = 11389, Mg2 = 70753, Lg2 = 43249, qg2 = 64829, Kk = "line", Iu4 = "function_declaration", Hk = "undefined", YR = "([^/]+)", Bg2 = 110947, Ug2 = 70002, zR = "Cygwin", Pu3 = "as_expression", Xg2 = 12591, Wk = 64285, Gg2 = 2048, Yg2 = 73112, Vk = 126589, JR = 225, $k = 43259, zg2 = 72817, Qk = 64318, KR = 172, HR = 209, Cu3 = "match_binding_pattern", Nu4 = " ", Ou5 = "import_source", E62 = "delete", WR = "Enum `", Zk = 126553, Jg2 = 67001, Fv2 = "default", Kg2 = 11630, Hg2 = 206, ju4 = "enum_bigint_member", Wg2 = 67504, x8 = 67593, Vg2 = 113791, VR = "MatchObjectPatternProperty", $g2 = 69572, Du4 = "typeof_type", $R = 212, QR = "%i", Ru4 = "function_this_param", Qg2 = 72329, Ao2 = "0x", Mv = 8239, Zg2 = 75075, ZR = 57343, Fu4 = "pattern_bigint_literal", xb2 = 12341, xF = 201, Lv = "hook", rF2 = ": closedir failed", rb2 = 42959, r8 = 119970, eb2 = 43560, eF = "||=", Mu4 = "member_private_name", tb2 = 120570, Lu4 = "object_key_identifier", e82 = 223, tF2 = "Not_found", qu4 = "record_static_property", nF2 = 230, Bu3 = "jsx_element_name_member_expression", Uu4 = "string_literal", nb2 = 120596, ub2 = 43807, ib2 = 69687, fb2 = 63743, t8 = 72192, Xu3 = "member_property", cb2 = 43262, Gu3 = "class_declaration", uF2 = "renders*", iF2 = "%Li", sb2 = 126578, Yu2 = "jsx_attribute", Q32 = 254, be10 = "empty", S62 = "label", zu3 = "object_internal_slot_property_type", n8 = 120133, ab2 = 43359, Ge11 = "predicate", fF2 = "??=", ob2 = 43697, vb2 = -43, Ju5 = "default_opt", cF2 = "the start of a statement", lb2 = 67826, Ku4 = "record_element", Hu3 = "object_", Wu2 = "class_element", u8 = 11631, i8 = 70855, Vu4 = "opaque_type", $u4 = "number_literal", sF2 = ", ", f8 = 8319, c8 = 120004, s8 = 133, Qu2 = "type_params", Zu2 = "pattern_object_rest_property", W24 = "import", pb2 = 72e3, kb2 = 67413, mb2 = 12343, hb2 = 70080, xi11 = "intersection_type", l24 = -36, db2 = 70005, A63 = "properties", yb2 = 11679, _b2 = 8483, wb2 = 110587, aF2 = 43520, ri9 = "computed_key", oF2 = 207, ei10 = "class_identifier", gb2 = "Invalid number ", ti10 = "function_param_pattern", qv = 12288, bb2 = 113817, Tb2 = 70730, Eb2 = 178207, a8 = 71236, Sb2 = 167, ni10 = "object_indexer_property_type", Ab2 = 64286, vF = "TypeAnnotation", lF2 = 220, ui11 = "type_identifier", ii10 = "spread_property", fi11 = "jsx_attribute_value_expression", Ib2 = 126519, o8 = 70108, v83 = 126, l8 = 42999, Sa2 = "prototype", Pb2 = " : flags Open_text and Open_binary are not compatible", pF = "**", p8 = 43823, Cb2 = ": Not a directory", ci10 = "render_type", k8 = 72349, Z32 = "test", Nb2 = 43776, Ob2 = 92879, jb2 = 11263, kF = 241, Db2 = 93052, si9 = "nullable_type", Rb2 = 43704, Fb2 = 64321, mF = "Property", Mb2 = 72191, hF = 165, I63 = "instanceof", Lb2 = 69247, dF = 302, Ye10 = "name", m8 = 126634, qb2 = 8516, h8 = "typeArguments", Bb2 = 71127, ai10 = "jsx_spread_attribute", Ub2 = 66559, Xb2 = 44031, Gb2 = 43645, e210 = 8233, Yb2 = 71494, zb2 = "opaque", d8 = 72967, Jb2 = 70106, oi10 = "logical", yF = "@[%s =@ ", P63 = "0o", y8 = 126554, Kb2 = 71351, _82 = 8484, Hb2 = 72242, w82 = 120687, xl6 = 252, Wb2 = 183983, C62 = "%S", vi11 = "function_this_param_type", _F = 292, g8 = "decorators", Vb2 = 43255, li10 = "catch_clause", ze11 = "-", $b2 = 67711, wF = ": file descriptor already closed", b8 = 64311, pi11 = "record_declaration", T8 = 120539, Qb2 = "arguments", E8 = 73062, Zb2 = 173823, xT = 42124, rT = 72095, eT = 125259, tT = 42969, S8 = 70280, gF = 12520, nT = 69749, uT = 70066, ki10 = "binary", mi11 = "for_in_statement", iT = 43010, bF = "^=", fT = 126570, hi11 = "for_statement", A8 = 126584, di11 = "function_return_annotation", cT = 72144, sT = 8505, TF = -101, yi11 = "class_expression", aT = 120076, oT = 69807, vT = 40981, lT = -24976191, pT = 72768, kT = 126550, I8 = '"', _i9 = "call_type_arg", EF = "f", Bv2 = "this", P8 = 126628, SF = "===", AF = 56320, wi10 = "declare_module_exports", mT = 120512, p24 = 105, hT = 119974, dT = 71450, yT = 71942, IF = 195, C8 = 120629, PF = "/=", CF = ">>", gi11 = "declare_interface", NF = 4096, bi11 = "pattern_array_rest_element", _T = 71338, N8 = 126520, Ti11 = "as_const_expression", OF = "Popping lex mode from empty stack", jF = "renders?", wT = 68405, Ei10 = "member", Si11 = "class_extends", Uv2 = 12287, O8 = 126590, gT = 66377, DF = "fields", Io5 = "async", Ai9 = "pattern_array_element", rl5 = 240, RF = 308, bT = 69864, Xv = "readonly", TT = 70460, ET = 120779, ST = 66378, Ii8 = "new_", j82 = 126551, Pi8 = "pattern_object_rest_property_pattern", Ci8 = "for_statement_init", AT = 43595, D8 = 68296, FF = 148, MF = "\0\0\0\0", IT = 120712, PT = 64217, CT = 69295, LF = "||", NT = ";", OT = 70461, jT = 66939, DT = "record", qF = "collect_comments", BF = 279, Ni9 = "generic_type", RT = 68295, FT = 44002, R82 = 72162, Oi9 = "object_call_property_type", F82 = 8305, M82 = 119995, L82 = "with", ji6 = "class_property", UF = "qualification", Di8 = "jsx_attribute_name_namespaced", Ri8 = "if_statement", Fi8 = "typeof_qualified_identifier", XF = 238, MT = 65615, GF = 176, t23 = "expression", q82 = 126559, Mi7 = "jsx_attribute_value", Li8 = "<2>", qi7 = "component_param", B8 = "Map.bal", N63 = 132, LT = 70412, qT = 70440, YF = "<<", U82 = "finally", zF = "v", Bi8 = "syntax_opt", Ui7 = "meta_property", BT = 12447, UT = 67514, X82 = 12448, Xi8 = "object_mapped_type_property", Gv = "operator", JF = "closedir", Gi7 = "unary_expression", XT = 126588, GT = 70851, Yi8 = "export_batch_specifier", el5 = "renders", KF = 226, YT = 73111, HF = 221, rx2 = "", zT = 66927, JT = 64967, KT = "elements", HT = 67640, WT = 43754, zi7 = "declare_export_declaration", G82 = -26065557, VT = 65855, O62 = "boolean", Aa3 = "typeof", $T = 124902, WF = 139, QT = 65629, VF = 224, ZT = 43123, Y8 = 70449, xE = 12735, Te10 = 107, z82 = 11719, $F = "!=", Ji6 = "call_type_args", tl4 = "asserts", Po4 = -46, rE = "namespace", Ki8 = "match_pattern", Hi9 = "for_of_statement_lhs", J82 = 126504, eE = 69505, K82 = "for", tE = 72703, H82 = 120127, W82 = 43471, nE = 93047, QF = "Undefined_recursive_module", ZF = 2147483647, Wi7 = "template_literal_element", xM = "Unexpected ", uE = 101631, iE = 65497, V82 = 68120, Vi8 = "import_default_specifier", tn9 = "array", rM = "expressions", fE = 110930, eM = 204, $i9 = "while_", Qi8 = "function_rest_param_type", Co2 = 63, cE = 77808, tM = "Unexpected token `", k24 = 114, Zi7 = "pattern_object_p", sE = 65140, aE = 123190, xf4 = "pattern_object_property_number_literal_key", j63 = "enum", rf3 = "conditional_type", ef3 = 113, tf3 = "array_type", nM = "minus", oE = 43790, nf3 = "do_while", vE = 11567, lE = 11694, D63 = 256, pE = 119976, uf3 = "component_body", nn8 = 111, kE = 177976, $82 = 67644, mE = 73439, R63 = 951901561, uM = "?", iM = ")", Q82 = 43867, Z82 = 65575, hE = 69445, fM = "FunctionTypeParam", xm3 = 119996, dE = 65019, ff3 = "conditional", yE = 11505, cM = 135, _E = 71295, wE = 12799, gE = 67382, cf3 = "type_guard_annotation", sf3 = "object_key_computed", un8 = 123, af3 = "pattern_object_property_key", bE = 119892, TE = 67505, EE = 66962, of3 = "with_", SE = 43273, vf4 = "interface_declaration", rm3 = "bool", AE = 71945, IE = "declaration", PE = 11519, F63 = ">", CE = 66771, em3 = "}", sM = 8472, NE = 43014, lf3 = "declare_function", Gr9 = 127, OE = "RestElement", jE = 190, DE = 8467, aM = "module", tm3 = 126522, oM = "Sys_blocked_io", pf3 = "jsx_opening_element", kf4 = "object_key_number_literal", mf3 = "match_instance_pattern", vM = "|=", lM = "mixins", RE = 205, pM = 217, nm3 = "if", kM = "+=", hf3 = "match_object_pattern_property_key", df3 = "match_rest_pattern", yf3 = "export_named_declaration_specifier", um3 = "try", im3 = "_bigarr02", FE = 70479, fn9 = "right", ME = 245, LE = 11718, _f4 = "tuple_labeled_element", mM = "TypeParameterInstantiation", qE = "mkdir", BE = 71999, UE = 870530776, hM = "@[", dM = -908856609, yM = 331416730, XE = 11670, GE = 66735, YE = 43709, fm3 = 43642, zE = 67002, JE = 69375, wf3 = "function_body_any", KE = 119807, _M = "Assert_failure", gf3 = "function_identifier", HE = 65479, M63 = 131, Yv = "new", bf3 = "for_of_left_declaration", WE = 120084, VE = 100343, $E = 73030, cm3 = 70452, sm3 = 134, QE = 253, ZE = 42954, wM = 227, Tf3 = "jsx_member_expression_object", Ef3 = "class_property_value", xS = 120144, gM = 314, rS = 66994, nl5 = "set", eS = 126498, Sf3 = "tuple_element", Af3 = "arg_list", tS = 65481, nS = 8511, uS = 42964, iS = 11492, am3 = 126555, fS = 71039, cS = "exportKind", If4 = "program", sS = 70187, bM = 173, It10 = "as", zv2 = 124, TM = "visit_leading_comment", aS = 110575, Pf4 = "class_", oS2 = 72440, vS = 67897, EM = 235, lS = 8543, SM = 141, Cf4 = 120, Nf3 = "match_object_pattern_property", L63 = 1024, pS = 101640, AM = 1027, IM = 236, ul6 = 246, PM = "(", kS = 66511, Of3 = "regexp_literal", mS = 65574, hS = 43513, dS = 43695, CM = "&&", om3 = 11558, yS = 66503, _S = 93071, jf3 = "pattern_expression", wS = 65381, vm3 = 126538, gS = 12292, Df4 = "import_namespace_specifier", bS = 67583, TS = 120137, ES = 69622, SS = 120770, AS = 71131, Jv = 8287, IS = 110590, PS = 65135, CS = "Fatal error: exception ", q63 = 118, NS = 181, lm3 = 11687, m24 = "camlinternalFormat.ml", OS = 72959, jS = 249, Rf4 = "union_type", NM = 8206, DS = 73064, RS = 70271, FS = 92728, pm3 = 65344, km3 = 11695, Ff3 = "class_decorator", OM = "the end of an expression statement (`;`)", MS = 177983, LS = 8457, jM = 931, qS = 66499, BS = 94175, DM = "#", US = "Identifier", Mf4 = "for_in_statement_lhs", Lf3 = "pattern_string_literal", mm3 = 70302, hm3 = 126496, XS = 66461, GS = 82943, dm3 = 8450, YS = 72271, zS = 70853, JS = "of", RM = "Stack_overflow", B63 = "hasUnknownMembers", U63 = "a", qf3 = "variable_declarator_pattern", KS = 73061, HS = 77711, ym3 = 64317, WS = 73097, FM = 269, Bf3 = "enum_declaration", VS = 66966, $S = 189, QS = 119964, Uf3 = "type_param", cn9 = 782176664, _m3 = 65535, MM = -10, ZS = 64433, wm3 = 43815, gm3 = 94031, bm3 = 73065, xA = 69958, LM = 145, Tm3 = "property", Xf = "jsx_children", Gf3 = "member_property_identifier", rA = 42537, No3 = "const", eA = 70278, Yf3 = "enum_string_member", X63 = "local", zf3 = "jsx_element_name_identifier", tA = 68223, Em3 = "", nA = 119967, Sm3 = 119994, uA = 66993, Jf2 = "jsx_member_expression_identifier", Am3 = "explicitType", iA = 67589, fA = 65597, cA = "exported", sA = 94111, aA = 113775, Kf2 = "object_spread_property_type", oA = 64847, Hf = "component_identifier", Wf3 = "class_implements_interface", qM = 162, BM = 243, vA = 12783, UM = `Fatal error: exception %s
|
|
23883
|
-
`, Im3 = 120093, G63 = "column", Vf3 = "component_rest_param", XM = "methods", lA = 70451, pA = 70312, kA = 69967, Pm3 = 70279, mA = 66463, hA = 92975, Cm3 = 70286, $f3 = "pattern_object_property_computed_key", Qf2 = "object_key_string_literal", dA = "jsError", Zf2 = "type_args", yA = 8304, GM = "==", wr6 = 115, xc3 = "declare_component", _A = 120092, wA = 43638, gA = 66811, Ia5 = -87, bA = 43334, TA = 66863, EA = 77823, YM = 143, rc3 = "optional_call", SA = 126562, Nm3 = 70162, ec3 = 104, zM = "static ", AA = 66963, Kv = "await", Om3 = 70107, V24 = "0", IA = 72250, PA = 8507, CA = 100351, jm3 = "AssignmentPattern", tc3 = "type", JM = "%u", NA = "NonNullExpression", nc4 = "function_expression_or_method", OA = 43470, KM = 146, HM = 242, WM = "camlinternalMod.ml", uc3 = "match_or_pattern", jA = 72750, DA = 69414, RA = 65370, ic3 = "syntax", VM = 32752, FA = 42963, $M = "End_of_file", MA = 12294, LA = 8471, QM = "elementType", qA = 43782, ZM = "++", BA = 43641, UA = 71944, fc3 = "record_property", XA = 126601, GA = 78894, xL = -45, Hv = "null", rL = 177, eL = "satisfies", YA = 131071, cc4 = "import_specifier", sc3 = "class_method", ac3 = "type_", zA = 126514, JA = 8454, tL = "inexact", KA = 67807, HA = 8525, WA = 65470, VA = 71352, oc4 = "tuple_spread_element", nL = 219, $A = "abstract", QA = 73458, Je11 = "return", Y63 = 65536, Dm3 = 126548, vc4 = "array_element", ZA = -253313196, xI = 186, Rm3 = "catch", lc3 = "infer_type", rI = 12295, uL = "Invalid legacy octal ", eI = 69762, tI = 43311, nI = 65437, pc3 = "variable_declaration", iL = -696510241, kc3 = "function_params", uI = 64316, fL = 311, Fm3 = 11565, cL = "infinity", iI = "@]", fI = 65908, mc3 = "extends", cI = 66204, sI = 43784, aI = 11742, Mm3 = 126503, Ke12 = "debugger", oI = 70457, z63 = 912068366, vI = 68786, Lm3 = "keyof", qm3 = 69415, lI = 12686, sn9 = 127343600, hc3 = "declare_type_alias", sL = "the", aL = 233, dc3 = "jsx_element_name_namespaced", pI = 72283, kI = 161, yc3 = "class_static_block", _c3 = "function_param_type", Pt12 = 128, mI = -673950933, Bm3 = 126591, oL = "Sys_error", hI = 74649, dI = 74862, J63 = "is", yI = 43738, _I = 68479, vL = 196, Um3 = 70854, wc3 = "enum_boolean_member", Xm3 = 72163, wI = 92783, lL = 281, gc3 = "component_param_name", gI = 68863, an8 = 32768, pL = 2048, bI = 64284, kL = "@{", TI = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", Gm3 = 8455, bc4 = "update_expression", mL = 276, EI = 65500, K63 = "from", SI = 68447, Ym3 = 12592, AI = 92766, hL = ">>=", n23 = 110, II = 66431, PI = 43586, Tc4 = "jsx_identifier", CI = " : file already exists", R12 = 128, NI = 71958, OI = 66717, Ec4 = "enum_boolean_body", jI = 64262, Yr10 = "id", Sc4 = "component_renders_annotation", DI = 42888, RI = 8584, FI = 73008, Ac3 = "enum_symbol_body", Ic3 = "declare_namespace", zm3 = 72713, MI = 55215, Pc3 = "object_property_value_type", Cc3 = "match_wildcard_pattern", Nc3 = "for_in_assignment_pattern", Jm3 = 8485, LI = 43395, qI = 229, Pa5 = "true", BI = 43743, Oc3 = "enum_number_member", dL = 234, UI = 72969, yL = "expected *", Ee9 = 102, _L = 200, H63 = "symbol", Wv = "source", jc2 = "tparam_const_modifier", XI = 43714, Dc2 = "jsx_fragment", Rc3 = "jsx_attribute_name_identifier", W63 = "public", GI = 43442, Fc2 = "pattern_object_property", YI = 65786, zI = 70783, JI = 43713, KI = 72160, wL = "*-/", Mc2 = "export_named_specifier", Lc2 = "arrow_function", HI = 122623, Km3 = 70006, gL = "${", WI = 43814, qc3 = "generic_qualified_identifier_type", VI = 199, Bc2 = "jsx_spread_child", Hm3 = 8489, Wm3 = 184, bL = 2047, $I = 66955, Uc2 = "try_catch", QI = 70497, TL = 313, EL = 237, ZI = 67431, xP = 125183, SL = -602162310, on8 = "params", rP = "consequent", eP = 68029, tP = 67829, nP = 68095, Xc2 = "enum_string_body", uP = 93823, iP = 68351, fP = 65495, Gc2 = "declare_module", Yc3 = "match_as_pattern_target", zc3 = "body_expression", cP = 66175, sP = 191, Vm4 = 70441, $m3 = 65141, Qm3 = "&", Jc2 = "super_expression", Zm3 = 126564, aP = 72105, LI0 = "fs", He10 = "throw", oP = 68287, vP = 67839, Ca3 = 116, lP = 110882, pP = 69404, kP = 123197, Vv = 65279, il7 = "src/parser/type_parser.ml", mP = 68115, xh2 = 126547, rh2 = 126556, hP = 73055, Kc2 = "member_property_expression", Hc2 = "enum_defaulted_member", dP = 43071, yP = 11726, Wc2 = "component_type_rest_param", _P = 68607, Vc3 = "object_key", AL = 160, $24 = "variance", wP = 70655, gP = 70414, fl6 = "super", bP = 123583, TP = 65594, V63 = "method", EP = 73648, $63 = 121, SP = 93951, $c2 = "pattern_array_element_pattern", AP = 43764, IP = 42993, eh2 = 120145, PP = 74879, IL = 168, th2 = 8486, CP = 72001, Qc2 = "tagged_template", Zc2 = "module_ref_literal", NP = 65312, Oo5 = "implements", OP = 43700, jP = 120003, PL = "Invalid_argument", xs8 = 16777215, DP = 83526, nh2 = 69744, uh2 = 12336, rs8 = "switch_case", CL = -61, es8 = "optional_member", RP = 64274, ih2 = 64322, fh2 = 126530, FP = 71998, ch2 = 72970, MP = 13311, LP = 73647, qP = 120074, cl6 = "let", NL = "global", ts8 = "expression_statement", ns8 = "component_type_params", BP = 512, UP = 69634, XP = 67461, GP = 123627, YP = 64913, OL = "children", jL = "PropertyDefinition", DL = 1026, RL = "%li", us8 = "declare_class", zP = 43258, is8 = "indexed_access_type", JP = 124926, h24 = 112, KP = "b",
|
|
23883
|
+
`, Im3 = 120093, G63 = "column", Vf3 = "component_rest_param", XM = "methods", lA = 70451, pA = 70312, kA = 69967, Pm3 = 70279, mA = 66463, hA = 92975, Cm3 = 70286, $f3 = "pattern_object_property_computed_key", Qf2 = "object_key_string_literal", dA = "jsError", Zf2 = "type_args", yA = 8304, GM = "==", wr6 = 115, xc3 = "declare_component", _A = 120092, wA = 43638, gA = 66811, Ia5 = -87, bA = 43334, TA = 66863, EA = 77823, YM = 143, rc3 = "optional_call", SA = 126562, Nm3 = 70162, ec3 = 104, zM = "static ", AA = 66963, Kv = "await", Om3 = 70107, V24 = "0", IA = 72250, PA = 8507, CA = 100351, jm3 = "AssignmentPattern", tc3 = "type", JM = "%u", NA = "NonNullExpression", nc4 = "function_expression_or_method", OA = 43470, KM = 146, HM = 242, WM = "camlinternalMod.ml", uc3 = "match_or_pattern", jA = 72750, DA = 69414, RA = 65370, ic3 = "syntax", VM = 32752, FA = 42963, $M = "End_of_file", MA = 12294, LA = 8471, QM = "elementType", qA = 43782, ZM = "++", BA = 43641, UA = 71944, fc3 = "record_property", XA = 126601, GA = 78894, xL = -45, Hv = "null", rL = 177, eL = "satisfies", YA = 131071, cc4 = "import_specifier", sc3 = "class_method", ac3 = "type_", zA = 126514, JA = 8454, tL = "inexact", KA = 67807, HA = 8525, WA = 65470, VA = 71352, oc4 = "tuple_spread_element", nL = 219, $A = "abstract", QA = 73458, Je11 = "return", Y63 = 65536, Dm3 = 126548, vc4 = "array_element", ZA = -253313196, xI = 186, Rm3 = "catch", lc3 = "infer_type", rI = 12295, uL = "Invalid legacy octal ", eI = 69762, tI = 43311, nI = 65437, pc3 = "variable_declaration", iL = -696510241, kc3 = "function_params", uI = 64316, fL = 311, Fm3 = 11565, cL = "infinity", iI = "@]", fI = 65908, mc3 = "extends", cI = 66204, sI = 43784, aI = 11742, Mm3 = 126503, Ke12 = "debugger", oI = 70457, z63 = 912068366, vI = 68786, Lm3 = "keyof", qm3 = 69415, lI = 12686, sn9 = 127343600, hc3 = "declare_type_alias", sL = "the", aL = 233, dc3 = "jsx_element_name_namespaced", pI = 72283, kI = 161, yc3 = "class_static_block", _c3 = "function_param_type", Pt12 = 128, mI = -673950933, Bm3 = 126591, oL = "Sys_error", hI = 74649, dI = 74862, J63 = "is", yI = 43738, _I = 68479, vL = 196, Um3 = 70854, wc3 = "enum_boolean_member", Xm3 = 72163, wI = 92783, lL = 281, gc3 = "component_param_name", gI = 68863, an8 = 32768, pL = 2048, bI = 64284, kL = "@{", TI = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", Gm3 = 8455, bc4 = "update_expression", mL = 276, EI = 65500, K63 = "from", SI = 68447, Ym3 = 12592, AI = 92766, hL = ">>=", n23 = 110, II = 66431, PI = 43586, Tc4 = "jsx_identifier", CI = " : file already exists", R12 = 128, NI = 71958, OI = 66717, Ec4 = "enum_boolean_body", jI = 64262, Yr10 = "id", Sc4 = "component_renders_annotation", DI = 42888, RI = 8584, FI = 73008, Ac3 = "enum_symbol_body", Ic3 = "declare_namespace", zm3 = 72713, MI = 55215, Pc3 = "object_property_value_type", Cc3 = "match_wildcard_pattern", Nc3 = "for_in_assignment_pattern", Jm3 = 8485, LI = 43395, qI = 229, Pa5 = "true", BI = 43743, Oc3 = "enum_number_member", dL = 234, UI = 72969, yL = "expected *", Ee9 = 102, _L = 200, H63 = "symbol", Wv = "source", jc2 = "tparam_const_modifier", XI = 43714, Dc2 = "jsx_fragment", Rc3 = "jsx_attribute_name_identifier", W63 = "public", GI = 43442, Fc2 = "pattern_object_property", YI = 65786, zI = 70783, JI = 43713, KI = 72160, wL = "*-/", Mc2 = "export_named_specifier", Lc2 = "arrow_function", HI = 122623, Km3 = 70006, gL = "${", WI = 43814, qc3 = "generic_qualified_identifier_type", VI = 199, Bc2 = "jsx_spread_child", Hm3 = 8489, Wm3 = 184, bL = 2047, $I = 66955, Uc2 = "try_catch", QI = 70497, TL = 313, EL = 237, ZI = 67431, xP = 125183, SL = -602162310, on8 = "params", rP = "consequent", eP = 68029, tP = 67829, nP = 68095, Xc2 = "enum_string_body", uP = 93823, iP = 68351, fP = 65495, Gc2 = "declare_module", Yc3 = "match_as_pattern_target", zc3 = "body_expression", cP = 66175, sP = 191, Vm4 = 70441, $m3 = 65141, Qm3 = "&", Jc2 = "super_expression", Zm3 = 126564, aP = 72105, LI0 = "fs", He10 = "throw", oP = 68287, vP = 67839, Ca3 = 116, lP = 110882, pP = 69404, kP = 123197, Vv = 65279, il7 = "src/parser/type_parser.ml", mP = 68115, xh2 = 126547, rh2 = 126556, hP = 73055, Kc2 = "member_property_expression", Hc2 = "enum_defaulted_member", dP = 43071, yP = 11726, Wc2 = "component_type_rest_param", _P = 68607, Vc3 = "object_key", AL = 160, $24 = "variance", wP = 70655, gP = 70414, fl6 = "super", bP = 123583, TP = 65594, V63 = "method", EP = 73648, $63 = 121, SP = 93951, $c2 = "pattern_array_element_pattern", AP = 43764, IP = 42993, eh2 = 120145, PP = 74879, IL = 168, th2 = 8486, CP = 72001, Qc2 = "tagged_template", Zc2 = "module_ref_literal", NP = 65312, Oo5 = "implements", OP = 43700, jP = 120003, PL = "Invalid_argument", xs8 = 16777215, DP = 83526, nh2 = 69744, uh2 = 12336, rs8 = "switch_case", CL = -61, es8 = "optional_member", RP = 64274, ih2 = 64322, fh2 = 126530, FP = 71998, ch2 = 72970, MP = 13311, LP = 73647, qP = 120074, cl6 = "let", NL = "global", ts8 = "expression_statement", ns8 = "component_type_params", BP = 512, UP = 69634, XP = 67461, GP = 123627, YP = 64913, OL = "children", jL = "PropertyDefinition", DL = 1026, RL = "%li", us8 = "declare_class", zP = 43258, is8 = "indexed_access_type", JP = 124926, h24 = 112, KP = "b", fs39 = "predicate_expression", cs7 = "if_alternate_statement", Q63 = "private", FL = -594953737, ML = 140, HP = "nan", WP = 72103, sh2 = 11735, ss9 = "statement", VP = "rmdir", ah2 = 66512, $P = "match", QP = 198, ZP = 11734, as8 = "import_named_specifier", xC = 69599, rC = 68799, eC = 194559, os7 = "match_array_pattern", LL = 174, vs9 = "function_", ls7 = "bigint_literal", t12 = 248, oh2 = 67638, vh2 = 126539, tC = 11557, qL = 214, nC = 5760, We12 = "break", vn7 = "block", ps7 = "match_member_pattern", uC = 123565, iC = 66815, m12 = "value", BL = 1039100673, fC = 69746, cC = 70448, sC = 74751, ks8 = "init", aC = 69551, lh2 = 65548, ms8 = "jsx_member_expression", ph2 = 68096, d24 = 108, kh2 = 126521, oC = 71487, hs8 = "match_statement", vC = 178205, lC = 12548, UL = " : is a directory", ln8 = ".", pC = 12348, sl6 = -835925911, B24 = "typeParameters", kC = 66855, Y12 = "typeAnnotation", $v = "bigint", ds7 = "jsx_attribute_value_literal", mh2 = 194, XL = "T_JSX_TEXT", mC = 68466, hh2 = 126537, GL = 67714067, hC = 69487, dh2 = "export", dC = 43822, yh2 = 126499, yC = 55242, ys8 = "member_type_identifier", YL = 138, _C = 71679, Qv = 130, wC = 12438, gC = 119969, zL = 298, _h2 = 12539, bC = 119972, JL = ",", TC = 71423, EC = "index out of bounds", Ct12 = 106, al6 = "%d", KL = "T_RENDERS_QUESTION", wh2 = 120571, gh2 = "returnType", SC = 69423, bh = 120070, HL = "%", Z63 = 117, AC = 179, IC = "EBADF", PC = 93759, Th2 = 64325, _s7 = "component_params", CC = 66517, NC = 67423, OC = 605857695, jC = 43518, WL = 251, ws8 = "for_of_statement", DC = 71983, VL = "~", RC = 12442, Ve9 = "switch", FC = 66207, Eh2 = 126535, $L = "&&=", MC = 69289, LC = 71723, gs7 = "generic_identifier_type", qC = 126619, bs8 = "object_type_property_setter", BC = 70418, QL = "<=", UC = 125251, XC = 11702, Ts6 = "enum_number_body", ol7 = 250, GC = 124910, YC = 69297, zC = 67455, JC = 42511, Es8 = "ts_satisfies", ZL = 268, KC = 68324, Sh2 = "an identifier", HC = 126534, Ss8 = 103, WC = 120126, jo4 = 449540197, x43 = "declare", VC = 68899, $C = 126502, As8 = "function_expression", xq = 142, QC = 123135, ZC = 67967, xN = 120487, rN = 120686, Is8 = "export_named_declaration", eN = 66348, Ah2 = 119981, tN = 12352, Ps9 = "tuple_type", nN = 68680, Ih2 = "target", Cs6 = "call";
|
|
23884
23884
|
function Ez(x11, r11, e31, t, u11) {
|
|
23885
23885
|
if (t <= r11) for (var i = 1; i <= u11; i++) e31[t + i] = x11[r11 + i];
|
|
23886
23886
|
else for (var i = u11; i >= 1; i--) e31[t + i] = x11[r11 + i];
|
|
@@ -25969,7 +25969,7 @@ var init_flow = __esm({
|
|
|
25969
25969
|
function XJ(x11, r11, e31, t, u11, i, c11, v11) {
|
|
25970
25970
|
return (x11.l >= 0 ? x11.l : x11.l = x11.length) == 7 ? x11(r11, e31, t, u11, i, c11, v11) : Os7(x11, [r11, e31, t, u11, i, c11, v11]);
|
|
25971
25971
|
}
|
|
25972
|
-
var D10 = void 0, NN = [t12, cD2, -1], Lq = [t12, oL, -2], mn8 = [t12, sy2, -3], Kh2 = [t12, PL, -4], Ds8 = [t12, tF2, -7], qq = [t12, dD2, -8], Bq = [t12, RM, -9], Nr7 = [t12, _M, -11], s42 = [t12, QF, -12], GJ = [4, 0, 0, 0, [12, 45, [4, 0, 0, 0, 0]]], ON = [0, [11, 'File "', [2, 0, [11, '", line ', [4, 0, 0, 0, [11, mD2, [4, 0, 0, 0, [12, 45, [4, 0, 0, 0, [11, ": ", [2, 0, 0]]]]]]]]]], 'File "%s", line %d, characters %d-%d: %s'], dl6 = [0, 0, [0, 0, 0], [0, 0, 0]], Lo3 = [0, 0, 0, 0, 0, 0, 1, 0, 0, 0], Uq = [0, "first_leading", "last_trailing"], Xq = [0, Af3, tn9, vc4, tf3, Lc2, Ti11, Pu3, Tu5, u7, ls7, ki10, R72, G72, vn7, zc3, iu3, We12, Cs6, _i9, Ji6, l7, li10, c7, Pf4, Su3, Gu3, Ff3, Wu2, yi11, Si11, ei10, B7, Wf3, sc3, y7, ji6, Ef3, yc3, H72, uf3, ru4, Hf, qi7, gc3, Jn9, _s7, Sc4, Vf3, mu3, K72, ns8, Wc2, ri9, ff3, rf3, Xe11, Ke12, us8, xc3, ou3, zi7, yu5, lf3, gi11, Gc2, wi10, Ic3, hc3, qn8, Ju5, nf3, be10, j72, ju4, bu4, Ec4, wc3, Bf3, Hc2, O7, Ts6, Oc3, Xc2, Yf3, Ac3, Yi8, Yn7, A72, Is8, yf3, Mc2, Un8, t23, p7, ts8, Nc3, C72, mi11, Mf4, b7, v72, bf3, ws8, Hi9, hi11, Ci8, vs9, Qn8, wf3, Iu4, As8, nc4, gf3, cu3, ti10, _c3, kc3, S7, Qi8, di11, Ru4, vi11, i7, tu3, gs7, qc3, Ni9, St12, cs7, U72, Ri8, W24, Gn9, Vi8, as8, Df4, Ou5, cc4, is8, lc3, ae10, vf4, eu4, xi11, Yu2, zn9, Rc3, Di8, Mi7, fi11, ds7, I72, Xf, Z72, D7, f7, zf3, Bu3, dc3, z72, Dc2, Tc4, ms8, Jf2, Tf3, xu3, ku3, pf3, ai10, Bc2, Hn8, g7, G12, oi10, N7, os7, su3, Yc3, Cu3, Au3, gu4, mf3, L72, ps7, E7, du4, uu4, Nf3, hf3, uc3, Ki8, W72, df3, hs8, Kn10, wu3, Cc3, Ei10, Mu4, Xu3, Kc2, Gf3, ys8, Ui7, Zc2, Ii8, n7, si9, $u4, Hu3, Oi9, ni10, zu3, Vc3, Xn9, sf3, Lu4, kf4, Qf2, Xi8, r7, Vn6, Pc3, Kf2, o7, e72, Wn8, bs8, Vu4, rc3, x72, es8, ge11, Eu5, Ai9, $c2, bi11, Y7, Fu4, jf3, Bn7, m7, Zi7, Fc2, au3, $f3, P7, af3, xf4, pu2, M72, Zu2, Pi8, Lf3, Ge11,
|
|
25972
|
+
var D10 = void 0, NN = [t12, cD2, -1], Lq = [t12, oL, -2], mn8 = [t12, sy2, -3], Kh2 = [t12, PL, -4], Ds8 = [t12, tF2, -7], qq = [t12, dD2, -8], Bq = [t12, RM, -9], Nr7 = [t12, _M, -11], s42 = [t12, QF, -12], GJ = [4, 0, 0, 0, [12, 45, [4, 0, 0, 0, 0]]], ON = [0, [11, 'File "', [2, 0, [11, '", line ', [4, 0, 0, 0, [11, mD2, [4, 0, 0, 0, [12, 45, [4, 0, 0, 0, [11, ": ", [2, 0, 0]]]]]]]]]], 'File "%s", line %d, characters %d-%d: %s'], dl6 = [0, 0, [0, 0, 0], [0, 0, 0]], Lo3 = [0, 0, 0, 0, 0, 0, 1, 0, 0, 0], Uq = [0, "first_leading", "last_trailing"], Xq = [0, Af3, tn9, vc4, tf3, Lc2, Ti11, Pu3, Tu5, u7, ls7, ki10, R72, G72, vn7, zc3, iu3, We12, Cs6, _i9, Ji6, l7, li10, c7, Pf4, Su3, Gu3, Ff3, Wu2, yi11, Si11, ei10, B7, Wf3, sc3, y7, ji6, Ef3, yc3, H72, uf3, ru4, Hf, qi7, gc3, Jn9, _s7, Sc4, Vf3, mu3, K72, ns8, Wc2, ri9, ff3, rf3, Xe11, Ke12, us8, xc3, ou3, zi7, yu5, lf3, gi11, Gc2, wi10, Ic3, hc3, qn8, Ju5, nf3, be10, j72, ju4, bu4, Ec4, wc3, Bf3, Hc2, O7, Ts6, Oc3, Xc2, Yf3, Ac3, Yi8, Yn7, A72, Is8, yf3, Mc2, Un8, t23, p7, ts8, Nc3, C72, mi11, Mf4, b7, v72, bf3, ws8, Hi9, hi11, Ci8, vs9, Qn8, wf3, Iu4, As8, nc4, gf3, cu3, ti10, _c3, kc3, S7, Qi8, di11, Ru4, vi11, i7, tu3, gs7, qc3, Ni9, St12, cs7, U72, Ri8, W24, Gn9, Vi8, as8, Df4, Ou5, cc4, is8, lc3, ae10, vf4, eu4, xi11, Yu2, zn9, Rc3, Di8, Mi7, fi11, ds7, I72, Xf, Z72, D7, f7, zf3, Bu3, dc3, z72, Dc2, Tc4, ms8, Jf2, Tf3, xu3, ku3, pf3, ai10, Bc2, Hn8, g7, G12, oi10, N7, os7, su3, Yc3, Cu3, Au3, gu4, mf3, L72, ps7, E7, du4, uu4, Nf3, hf3, uc3, Ki8, W72, df3, hs8, Kn10, wu3, Cc3, Ei10, Mu4, Xu3, Kc2, Gf3, ys8, Ui7, Zc2, Ii8, n7, si9, $u4, Hu3, Oi9, ni10, zu3, Vc3, Xn9, sf3, Lu4, kf4, Qf2, Xi8, r7, Vn6, Pc3, Kf2, o7, e72, Wn8, bs8, Vu4, rc3, x72, es8, ge11, Eu5, Ai9, $c2, bi11, Y7, Fu4, jf3, Bn7, m7, Zi7, Fc2, au3, $f3, P7, af3, xf4, pu2, M72, Zu2, Pi8, Lf3, Ge11, fs39, _72, If4, a7, q72, pi11, Ku4, fc3, qu4, Of3, w72, ci10, Je11, T7, lu4, ii10, ss9, k72, fu4, Uu4, Jc2, Ve9, rs8, ic3, Bi8, Qc2, s7, Wi7, t7, He10, Q72, jc2, Uc2, Es8, Sf3, _f4, oc4, Ps9, ac3, $n8, vu4, _u4, Zf2, Zn10, X72, cf3, ui11, J72, Uf3, Qu2, d7, F72, hu4, Fi8, Du4, Gi7, Rf4, bc4, pc3, h7, qf3, $24, V72, $i9, of3, H24], hn8 = [0, 0, 0];
|
|
25973
25973
|
Dt10(11, s42, QF), Dt10(10, Nr7, _M), Dt10(9, [t12, oM, MM], oM), Dt10(8, Bq, RM), Dt10(7, qq, dD2), Dt10(6, Ds8, tF2), Dt10(5, [t12, MR, -6], MR), Dt10(4, [t12, $M, -5], $M), Dt10(3, Kh2, PL), Dt10(2, mn8, sy2), Dt10(1, Lq, oL), Dt10(0, NN, cD2);
|
|
25974
25974
|
function L12(x11) {
|
|
25975
25975
|
if (typeof x11 == "number") return 0;
|
|
@@ -29156,8 +29156,8 @@ var init_flow = __esm({
|
|
|
29156
29156
|
}, 0, r11[1]);
|
|
29157
29157
|
};
|
|
29158
29158
|
}
|
|
29159
|
-
var KV = "Array.sub", HV = "first domain already spawned", WV = [0, "camlinternalOO.ml", BF, 50], VV = [0, WM, 72, 5], $V = [0, WM, 81, 2], QV = "/tmp", ZV = ln8, x$ = [0, "src/wtf8.ml", 65, 9], r$ = [0, "src/third-party/sedlex/flow_sedlexing.ml", jS, 4], e$ = "Flow_sedlexing.MalFormed", t$ = O62, n$ = H32, u$ = K32, i$ = H63, f$ = $v, c$ = [0, [12, 40, [18, [1, [0, [11, Li8, 0], Li8]], [11, "File_key.LibFile", [17, [0, Eo2, 1, 0], 0]]]], "(@[<2>File_key.LibFile@ "], s$ = [0, [3, 0, 0], C62], a$ = [0, [17, 0, [12, 41, 0]], ck], o$ = [0, [12, 40, [18, [1, [0, [11, Li8, 0], Li8]], [11, "File_key.SourceFile", [17, [0, Eo2, 1, 0], 0]]]], "(@[<2>File_key.SourceFile@ "], v$ = [0, [3, 0, 0], C62], l$ = [0, [17, 0, [12, 41, 0]], ck], p$ = [0, [12, 40, [18, [1, [0, [11, Li8, 0], Li8]], [11, "File_key.JsonFile", [17, [0, Eo2, 1, 0], 0]]]], "(@[<2>File_key.JsonFile@ "], k$ = [0, [3, 0, 0], C62], m$ = [0, [17, 0, [12, 41, 0]], ck], h$ = [0, [12, 40, [18, [1, [0, [11, Li8, 0], Li8]], [11, "File_key.ResourceFile", [17, [0, Eo2, 1, 0], 0]]]], "(@[<2>File_key.ResourceFile@ "], d$ = [0, [3, 0, 0], C62], y$ = [0, [17, 0, [12, 41, 0]], ck], _$ = [0, 1], w$ = [0, 0], g$ = [0, 1], b$ = [0, 2], T$ = [0, 2], E$ = [0, 0], S$ = [0, 1], A$ = [0, 1], I$ = [0, 1], P$ = [0, 1], C$ = [0, 2], N$ = [0, 1], O$ = [0, 1], j$ = [0, 0, 0], D$ = [0, 0, 0], R$ = [0, ss9, fi11, _c3, Ni9, di11, Cs6, mf3, si9, sf3, z72, eu4, zc3, _u4, e72, Ve9, bs8, Mc2, W72, hf3, Ff3, Es8, Xi8, Z72, Ii8, lc3, I72, Ec4, O7, of3, Fu4, tu3, Ku4, jc2, hi11, m7, pf3, Ic3, Vf3, gs7, wc3, ys8, St12, V72, Mf4, $f3, lf3, Ji6, ti10, l7, f7, Ac3, Lf3, vi11, Hi9, rs8, Vc3, U72, Au3, fu4, Kn10, Ou5, bu4, ai10, Ui7, Si11, ji6, es8, Af3, pu2, Ki8, qi7, X72, Lu4, Zu2, ms8, Wf3, o7, Ge11, r7, Qi8, x72, Gf3, dc3, D7, qc3, G12, ff3, $n8, Oc3, E7, Nf3, Tc4, g7, kc3, su3, P7, tf3, Gc2, Yn7, Mu4, a7, Eu5, vc4, j72, _i9, T7, $24, Pi8, ou3, d7, w72, Ri8, wu3, ki10, Ci8, Q72, Rc3, Wu2, Oi9, ic3, be10, v72, vu4, H24, Hn8, Uc2, zi7, xf4, Du4, $c2, xc3, Yc3, If4, ls7, Gi7, Ef3, yu5, $u4, pc3, du4, Xf, Pu3, oc4, xi11, Cc3, Hc2, Nc3, Wn8, yf3, Bc2, bi11, mi11, Uf3, Ps9, Hf, qf3, _f4, ii10, Qu2, Uu4, Rf4, B7, is8, ws8, y7, oi10, S7, ru4, bc4, H72, Hu3, xu3, Sc4, u7, Ei10, Pf4, yi11, Jn9, L72, ps7, Y7, Tf3, gc3, Xu3, W24, Je11, F72, J72, Jc2, jf3, He10, Ke12, n7, cs7, Vu4, p7, ds7, ge11, iu3, As8, Bf3, cc4, sc3, Un8, cu3, Mi7, Ru4, hu4, Ts6, q72, fs36, fc3, Qn8, Vi8, uc3, qu4, Xc2, A72, ns8, ni10, lu4, Xn9, Df4, Pc3, Fc2, ac3, kf4, M72, Vn6, ui11, wi10, uu4, c7, gi11, G72, zn9, Bi8, ju4, Sf3, i7, _72, Gn9, Qf2, Su3, zu3, zf3, ei10, Cu3, vf4, nf3, Zf2, tn9, h7, Ju5, li10, Zn10, qn8, Bu3, Di8, ri9, ku3, Zi7, Zc2, Yu2, C72, gu4, Jf2, cf3, s7, Tu5, df3, K72, Bn7, Ti11, R72, t23, Ai9, uf3, ts8, hs8, Iu4, wf3, k72, Xe11, gf3, _s7, af3, Yi8, hc3, yc3, Wi7, Qc2, vs9, Is8, Fi8, bf3, os7, rc3, vn7, as8, Gu3, Dc2, Kf2, nc4, us8, pi11, ci10, Yf3, We12, Lc2, ae10, N7, rf3, $i9, mu3, Of3, b7, Wc2, au3, t7, Kc2], F$ = [0, H24, of3, $i9, V72, $24, qf3, h7, pc3, bc4, Rf4, Gi7, Du4, Fi8, hu4, F72, d7, Qu2, Uf3, J72, ui11, cf3, X72, Zn10, Zf2, _u4, vu4, $n8, ac3, Ps9, oc4, _f4, Sf3, Es8, Uc2, jc2, Q72, He10, t7, Wi7, s7, Qc2, Bi8, ic3, rs8, Ve9, Jc2, Uu4, fu4, k72, ss9, ii10, lu4, T7, Je11, ci10, w72, Of3, qu4, fc3, Ku4, pi11, q72, a7, If4, _72, fs36, Ge11, Lf3, Pi8, Zu2, M72, pu2, xf4, af3, P7, $f3, au3, Fc2, Zi7, m7, Bn7, jf3, Fu4, Y7, bi11, $c2, Ai9, Eu5, ge11, es8, x72, rc3, Vu4, bs8, Wn8, e72, o7, Kf2, Pc3, Vn6, r7, Xi8, Qf2, kf4, Lu4, sf3, Xn9, Vc3, zu3, ni10, Oi9, Hu3, $u4, si9, n7, Ii8, Zc2, Ui7, ys8, Gf3, Kc2, Xu3, Mu4, Ei10, Cc3, wu3, Kn10, hs8, df3, W72, Ki8, uc3, hf3, Nf3, uu4, du4, E7, ps7, L72, mf3, gu4, Au3, Cu3, Yc3, su3, os7, N7, oi10, G12, g7, Hn8, Bc2, ai10, pf3, ku3, xu3, Tf3, Jf2, ms8, Tc4, Dc2, z72, dc3, Bu3, zf3, f7, D7, Z72, Xf, I72, ds7, fi11, Mi7, Di8, Rc3, zn9, Yu2, xi11, eu4, vf4, ae10, lc3, is8, cc4, Ou5, Df4, as8, Vi8, Gn9, W24, Ri8, U72, cs7, St12, Ni9, qc3, gs7, tu3, i7, vi11, Ru4, di11, Qi8, S7, kc3, _c3, ti10, cu3, gf3, nc4, As8, Iu4, wf3, Qn8, vs9, Ci8, hi11, Hi9, ws8, bf3, v72, b7, Mf4, mi11, C72, Nc3, ts8, p7, t23, Un8, Mc2, yf3, Is8, A72, Yn7, Yi8, Ac3, Yf3, Xc2, Oc3, Ts6, O7, Hc2, Bf3, wc3, Ec4, bu4, ju4, j72, be10, nf3, Ju5, qn8, hc3, Ic3, wi10, Gc2, gi11, lf3, yu5, zi7, ou3, xc3, us8, Ke12, Xe11, rf3, ff3, ri9, Wc2, ns8, K72, mu3, Vf3, Sc4, _s7, Jn9, gc3, qi7, Hf, ru4, uf3, H72, yc3, Ef3, ji6, y7, sc3, Wf3, B7, ei10, Si11, yi11, Wu2, Ff3, Gu3, Su3, Pf4, c7, li10, l7, Ji6, _i9, Cs6, We12, iu3, zc3, vn7, G72, R72, ki10, ls7, u7, Tu5, Pu3, Ti11, Lc2, tf3, vc4, tn9, Af3], M$ = GM, L$ = $F, q$ = SF, B$ = OD, U$ = Qy2, X$ = QL, G$ = F63, Y$ = WD, z$ = YF, J$ = CF, K$ = yD2, H$ = $72, W$ = ze11, V$ = _R, $$ = pF, Q$ = se11, Z$ = HL, xQ = wR, rQ = _k, eQ = Qm3, tQ = bo4, nQ = I63, uQ = kM, iQ = YD, fQ = IR, cQ = RR, sQ = PF, aQ = qD, oQ = GD, vQ = hL, lQ = TR, pQ = vM, kQ = bF, mQ = yo2, hQ = fF2, dQ = $L, yQ = eF, _Q = g62, wQ = cl6, gQ = No3, bQ = [0, [18, [1, [0, [11, Li8, 0], Li8]], [11, "{ ", 0]], "@[<2>{ "], TQ = "Loc.line", EQ = [0, [18, [1, [0, 0, rx2]], [2, 0, [11, GR, [17, [0, Eo2, 1, 0], 0]]]], yF], SQ = [0, [4, 0, 0, 0, 0], al6], AQ = [0, [17, 0, 0], iI], IQ = [0, [12, 59, [17, [0, Eo2, 1, 0], 0]], ";@ "], PQ = G63, CQ = [0, [18, [1, [0, 0, rx2]], [2, 0, [11, GR, [17, [0, Eo2, 1, 0], 0]]]], yF], NQ = [0, [4, 0, 0, 0, 0], al6], OQ = [0, [17, 0, 0], iI], jQ = [0, [17, [0, Eo2, 1, 0], [12, So3, [17, 0, 0]]], "@ }@]"], DQ = rx2, RQ = "Object literal may not have data and accessor property with the same name", FQ = "Object literal may not have multiple get/set accessors with the same name", MQ = "Unexpected token <. Remember, adjacent JSX elements must be wrapped in an enclosing parent tag", LQ = "`let [` is ambiguous in this position because it is either a `let` binding pattern, or a member expression.", qQ = "Async functions can only be declared at top level or immediately within another function.", BQ = "`await` is an invalid identifier in async functions", UQ = "`await` is not allowed in async function parameters.", XQ = "Computed properties must have a value.", GQ = "Constructor can't be an accessor.", YQ = "Constructor can't be an async function.", zQ = "Constructor can't be a generator.", JQ = "It is sufficient for your declare function to just have a Promise return type.", KQ = "async is an implementation detail and isn't necessary for your declare function statement. ", HQ = "`declare` modifier can only appear on class fields.", WQ = "Unexpected token `=`. Initializers are not allowed in a `declare`.", VQ = "Unexpected token `=`. Initializers are not allowed in a `declare opaque type`.", $Q = "Classes may only have one constructor", QQ = "Rest element must be final element of an array pattern", ZQ = "Cannot export an enum with `export type`, try `export enum E {}` or `module.exports = E;` instead.", xZ = "Enum members are separated with `,`. Replace `;` with `,`.", rZ = "`const` enums are not supported. Flow Enums are designed to allow for inlining, however the inlining itself needs to be part of the build system (whatever you use) rather than Flow itself.", eZ = "Expected an object pattern, array pattern, or an identifier but found an expression instead", tZ = "Missing comma between export specifiers", nZ = "Generators can only be declared at top level or immediately within another function.", uZ = "Getter should have zero parameters", iZ = "A getter cannot have a `this` parameter.", fZ = "Illegal continue statement", cZ = "Illegal return statement", sZ = "Illegal Unicode escape", aZ = "Missing comma between import specifiers", oZ = "It cannot be used with `import type` or `import typeof` statements", vZ = "The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. ", lZ = "Explicit inexact syntax cannot appear inside an explicit exact object type", pZ = "Explicit inexact syntax can only appear inside an object type", kZ = "Component params must be an identifier. If you'd like to destructure, you should use `name as {destructure}`", mZ = "A bigint literal must be an integer", hZ = "JSX value should be either an expression or a quoted JSX text", dZ = "Invalid left-hand side in assignment", yZ = "Invalid left-hand side in exponentiation expression", _Z = "Invalid left-hand side in for-in", wZ = "Invalid left-hand side in for-of", gZ = "Invalid optional indexed access. Indexed access uses bracket notation. Use the format `T?.[K]`.", bZ = "Invalid regular expression", TZ = "A bigint literal cannot use exponential notation", EZ = "Tuple spread elements cannot be optional.", SZ = "Tuple variance annotations can only be used with labeled tuple elements, e.g. `[+foo: number]`", AZ = "`typeof` can only be used to get the type of variables.", IZ = "JSX attributes must only be assigned a non-empty expression", PZ = "Literals cannot be used as shorthand properties.", CZ = "Malformed unicode", NZ = "`match` argument must not be empty", OZ = "`match` argument cannot contain spread elements", jZ = "`await` is not yet supported in `match` expressions", DZ = "`yield` is not yet supported in `match` expressions", RZ = "Object pattern can't contain methods", FZ = "Expected at least one type parameter.", MZ = "Type parameter declaration needs a default, since a preceding type parameter declaration has a default.", LZ = "More than one default clause in switch statement", qZ = "Illegal newline after throw", BZ = "Illegal newline before arrow", UZ = "Missing catch or finally after try", XZ = "Const must be initialized", GZ = "Destructuring assignment must be initialized", YZ = "An optional chain may not be used in a `new` expression.", zZ = "Template literals may not be used in an optional chain.", JZ = "Rest parameter must be final parameter of an argument list", KZ = "Private fields may not be deleted.", HZ = "Private fields can only be referenced from within a class.", WZ = "Rest property must be final property of an object pattern", VZ = "Records to not support private elements. Remove the `#`.", $Z = "Setter should have exactly one parameter", QZ = "A setter cannot have a `this` parameter.", ZZ = "Catch variable may not be eval or arguments in strict mode", x00 = "Delete of an unqualified identifier in strict mode.", r00 = "Duplicate data property in object literal not allowed in strict mode", e00 = "Function name may not be eval or arguments in strict mode", t00 = "Assignment to eval or arguments is not allowed in strict mode", n00 = "Postfix increment/decrement may not have eval or arguments operand in strict mode", u00 = "Prefix increment/decrement may not have eval or arguments operand in strict mode", i00 = "Strict mode code may not include a with statement", f00 = "Number literals with leading zeros are not allowed in strict mode.", c00 = "Octal literals are not allowed in strict mode.", s00 = "Strict mode function may not have duplicate parameter names", a00 = "Parameter name eval or arguments is not allowed in strict mode", o00 = 'Illegal "use strict" directive in function with non-simple parameter list', v00 = "Use of reserved word in strict mode", l00 = "Variable name may not be eval or arguments in strict mode", p00 = "You may not access a private field through the `super` keyword.", k00 = "Flow does not support abstract classes.", m00 = "Flow does not support template literal types.", h00 = "A type annotation is required for the `this` parameter.", d00 = "Arrow functions cannot have a `this` parameter; arrow functions automatically bind `this` when declared.", y00 = "Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.", _00 = "The `this` parameter cannot be optional.", w00 = "The `this` parameter must be the first function parameter.", g00 = "A trailing comma is not permitted after the rest element", b00 = "Unexpected end of input", T00 = "Explicit inexact syntax must come at the end of an object type", E00 = "Opaque type aliases are not allowed in untyped mode", S00 = "Unexpected proto modifier", A00 = "Unexpected reserved word", I00 = "Unexpected reserved type", P00 = "Spreading a type is only allowed inside an object type", C00 = "Unexpected static modifier", N00 = "Unexpected `super` outside of a class method", O00 = "`super()` is only valid in a class constructor", j00 = "Type aliases are not allowed in untyped mode", D00 = "Type annotations are not allowed in untyped mode", R00 = "Type declarations are not allowed in untyped mode", F00 = "Type exports are not allowed in untyped mode", M00 = "Type imports are not allowed in untyped mode", L00 = "Interfaces are not allowed in untyped mode", q00 = "Unexpected variance sigil", B00 = "Found a decorator in an unsupported position.", U00 = "Invalid regular expression: missing /", X00 = "Unexpected whitespace between `#` and identifier", G00 = "`yield` is an invalid identifier in generators", Y00 = "Yield expression not allowed in formal parameter", z00 = [0, [11, "Duplicate export for `", [2, 0, [12, 96, 0]]], "Duplicate export for `%s`"], J00 = [0, [11, "Private fields may only be declared once. `#", [2, 0, [11, "` is declared more than once.", 0]]], "Private fields may only be declared once. `#%s` is declared more than once."], K00 = [0, [11, "bigint enum members need to be initialized, e.g. `", [2, 0, [11, " = 1n,` in enum `", [2, 0, [11, nu3, 0]]]]], "bigint enum members need to be initialized, e.g. `%s = 1n,` in enum `%s`."], H00 = [0, [11, "Boolean enum members need to be initialized. Use either `", [2, 0, [11, " = true,` or `", [2, 0, [11, " = false,` in enum `", [2, 0, [11, nu3, 0]]]]]]], "Boolean enum members need to be initialized. Use either `%s = true,` or `%s = false,` in enum `%s`."], W00 = [0, [11, "Enum member names need to be unique, but the name `", [2, 0, [11, "` has already been used before in enum `", [2, 0, [11, nu3, 0]]]]], "Enum member names need to be unique, but the name `%s` has already been used before in enum `%s`."], V00 = [0, [11, WR, [2, 0, [11, "` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.", 0]]], "Enum `%s` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers."], $00 = "The `...` must come at the end of the enum body. Remove the trailing comma.", Q00 = "The `...` must come after all enum members. Move it to the end of the enum body.", Z00 = [0, [11, "Use one of `boolean`, `number`, `string`, `symbol`, or `bigint` in enum `", [2, 0, [11, nu3, 0]]], "Use one of `boolean`, `number`, `string`, `symbol`, or `bigint` in enum `%s`."], xx0 = [0, [11, "Enum type `", [2, 0, [11, "` is not valid. ", [2, 0, 0]]]], "Enum type `%s` is not valid. %s"], rx0 = [0, [11, "Supplied enum type is not valid. ", [2, 0, 0]], "Supplied enum type is not valid. %s"], ex0 = [0, [11, "Enum member names and initializers are separated with `=`. Replace `", [2, 0, [11, ":` with `", [2, 0, [11, " =`.", 0]]]]], "Enum member names and initializers are separated with `=`. Replace `%s:` with `%s =`."], tx0 = [0, [11, WR, [2, 0, [11, "` has type `", [2, 0, [11, "`, so the initializer of `", [2, 0, [11, "` needs to be a ", [2, 0, [11, " literal.", 0]]]]]]]]], "Enum `%s` has type `%s`, so the initializer of `%s` needs to be a %s literal."], nx0 = [0, [11, "Symbol enum members cannot be initialized. Use `", [2, 0, [11, ",` in enum `", [2, 0, [11, nu3, 0]]]]], "Symbol enum members cannot be initialized. Use `%s,` in enum `%s`."], ux0 = [0, [11, "The enum member initializer for `", [2, 0, [11, "` needs to be a literal (either a boolean, number, or string) in enum `", [2, 0, [11, nu3, 0]]]]], "The enum member initializer for `%s` needs to be a literal (either a boolean, number, or string) in enum `%s`."], ix0 = [0, [11, "Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `", [2, 0, [11, "`, consider using `", [2, 0, [11, "`, in enum `", [2, 0, [11, nu3, 0]]]]]]], "Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `%s`, consider using `%s`, in enum `%s`."], fx0 = [0, [11, "Number enum members need to be initialized, e.g. `", [2, 0, [11, " = 1,` in enum `", [2, 0, [11, nu3, 0]]]]], "Number enum members need to be initialized, e.g. `%s = 1,` in enum `%s`."], cx0 = [0, [11, "String enum members need to consistently either all use initializers, or use no initializers, in enum ", [2, 0, [12, 46, 0]]], "String enum members need to consistently either all use initializers, or use no initializers, in enum %s."], sx0 = [0, [11, "Expected corresponding JSX closing tag for ", [2, 0, 0]], "Expected corresponding JSX closing tag for %s"], ax0 = "immediately within another function.", ox0 = "In strict mode code, functions can only be declared at top level or ", vx0 = "inside a block, or as the body of an if statement.", lx0 = "In non-strict mode code, functions can only be declared at top level, ", px0 = " `break` statements are not required in `match` statements, as unlike `switch` statements, `match` statement cases do not fall-through by default.", kx0 = rx2, mx0 = [0, [11, "Illegal break statement.", [2, 0, 0]], "Illegal break statement.%s"], hx0 = zM, dx0 = rx2, yx0 = XM, _x0 = DF, wx0 = DM, gx0 = [0, [11, "Classes may not have ", [2, 0, [2, 0, [11, DD2, [2, 0, [11, nu3, 0]]]]]], "Classes may not have %s%s named `%s`."], bx0 = "Components use `renders` instead of `:` to annotate the render type of a component.", Tx0 = uM, Ex0 = rx2, Sx0 = [0, [11, "String params require local bindings using `as` renaming. You can use `'", [2, 0, [11, "' as ", [2, 0, [2, 0, [11, ": <TYPE>` ", 0]]]]]], "String params require local bindings using `as` renaming. You can use `'%s' as %s%s: <TYPE>` "], Ax0 = "Remove the period.", Ix0 = "Indexed access uses bracket notation.", Px0 = [0, [11, "Invalid indexed access. ", [2, 0, [11, " Use the format `T[K]`.", 0]]], "Invalid indexed access. %s Use the format `T[K]`."], Cx0 = [0, [11, "Invalid flags supplied to RegExp constructor '", [2, 0, [12, 39, 0]]], "Invalid flags supplied to RegExp constructor '%s'"], Nx0 = tn9, Ox0 = Dp3, jx0 = [0, [11, "In match ", [2, 0, [11, " pattern, the rest must be the last element in the pattern", 0]]], "In match %s pattern, the rest must be the last element in the pattern"], Dx0 = [0, [11, "JSX element ", [2, 0, [11, " has no corresponding closing tag.", 0]]], "JSX element %s has no corresponding closing tag."], Rx0 = [0, [11, tM, [2, 0, [11, "`. Parentheses are required to combine `??` with `&&` or `||` expressions.", 0]]], "Unexpected token `%s`. Parentheses are required to combine `??` with `&&` or `||` expressions."], Fx0 = zM, Mx0 = rx2, Lx0 = XM, qx0 = A63, Bx0 = [0, [11, "Records may not have ", [2, 0, [2, 0, [11, DD2, [2, 0, [11, nu3, 0]]]]]], "Records may not have %s%s named `%s`."], Ux0 = [0, [2, 0, [11, " '", [2, 0, [11, "' has already been declared", 0]]]], "%s '%s' has already been declared"], Xx0 = rx2, Gx0 = k63, Yx0 = " You can try using JavaScript private fields by prepending `#` to the field name.", zx0 = Q63, Jx0 = " Fields and methods are public by default. You can simply omit the `public` keyword.", Kx0 = W63, Hx0 = [0, [11, "Flow does not support using `", [2, 0, [11, "` in classes.", [2, 0, 0]]]], "Flow does not support using `%s` in classes.%s"], Wx0 = [0, [11, "Private fields must be declared before they can be referenced. `#", [2, 0, [11, "` has not been declared.", 0]]], "Private fields must be declared before they can be referenced. `#%s` has not been declared."], Vx0 = [0, [11, xM, [2, 0, 0]], "Unexpected %s"], $x0 = [0, [11, tM, [2, 0, [11, "`. Did you mean `", [2, 0, [11, "`?", 0]]]]], "Unexpected token `%s`. Did you mean `%s`?"], Qx0 = [0, [11, xM, [2, 0, [11, ", expected ", [2, 0, 0]]]], "Unexpected %s, expected %s"], Zx0 = [0, [11, "Undefined label '", [2, 0, [12, 39, 0]]], "Undefined label '%s'"], xr0 = "Parse_error.Error", rr0 = [0, [0, 36, 37], [0, 48, 58], [0, 65, 91], [0, 95, 96], [0, 97, un8], [0, py2, Sg2], [0, NS, s9], [0, j_, Wm3], [0, xI, z_], [0, Y32, lk], [0, ty2, Gp3], [0, t12, 706], [0, CD2, 722], [0, 736, 741], [0, 748, 749], [0, 750, 751], [0, 768, 885], [0, 886, 888], [0, 890, 894], [0, 895, 896], [0, 902, 907], [0, 908, 909], [0, 910, 930], [0, jM, 1014], [0, 1015, 1154], [0, 1155, 1160], [0, 1162, 1328], [0, 1329, 1367], [0, 1369, 1370], [0, 1376, 1417], [0, 1425, 1470], [0, 1471, 1472], [0, 1473, 1475], [0, 1476, 1478], [0, 1479, 1480], [0, 1488, 1515], [0, 1519, 1523], [0, 1552, 1563], [0, 1568, 1642], [0, 1646, 1748], [0, 1749, 1757], [0, 1759, 1769], [0, 1770, 1789], [0, 1791, 1792], [0, 1808, 1867], [0, 1869, 1970], [0, 1984, 2038], [0, 2042, 2043], [0, 2045, 2046], [0, Gg2, 2094], [0, 2112, 2140], [0, 2144, 2155], [0, 2208, 2229], [0, 2230, 2238], [0, 2259, 2274], [0, 2275, 2404], [0, 2406, 2416], [0, 2417, 2436], [0, 2437, 2445], [0, 2447, 2449], [0, 2451, 2473], [0, 2474, 2481], [0, 2482, 2483], [0, 2486, 2490], [0, 2492, 2501], [0, 2503, 2505], [0, 2507, 2511], [0, 2519, 2520], [0, 2524, 2526], [0, 2527, 2532], [0, 2534, 2546], [0, 2556, 2557], [0, 2558, 2559], [0, 2561, 2564], [0, 2565, 2571], [0, 2575, 2577], [0, 2579, 2601], [0, 2602, 2609], [0, 2610, 2612], [0, 2613, 2615], [0, 2616, 2618], [0, 2620, 2621], [0, 2622, 2627], [0, 2631, 2633], [0, 2635, 2638], [0, 2641, 2642], [0, 2649, 2653], [0, 2654, 2655], [0, 2662, 2678], [0, 2689, 2692], [0, 2693, 2702], [0, 2703, 2706], [0, 2707, 2729], [0, 2730, 2737], [0, 2738, 2740], [0, 2741, 2746], [0, 2748, 2758], [0, 2759, 2762], [0, 2763, 2766], [0, 2768, 2769], [0, 2784, 2788], [0, 2790, 2800], [0, 2809, 2816], [0, 2817, 2820], [0, 2821, 2829], [0, 2831, 2833], [0, 2835, 2857], [0, 2858, 2865], [0, 2866, 2868], [0, 2869, 2874], [0, 2876, 2885], [0, 2887, 2889], [0, 2891, 2894], [0, 2902, 2904], [0, 2908, 2910], [0, 2911, 2916], [0, 2918, 2928], [0, 2929, 2930], [0, 2946, 2948], [0, 2949, 2955], [0, 2958, 2961], [0, 2962, 2966], [0, 2969, 2971], [0, 2972, 2973], [0, 2974, 2976], [0, 2979, 2981], [0, 2984, 2987], [0, 2990, 3002], [0, 3006, 3011], [0, 3014, 3017], [0, 3018, 3022], [0, 3024, 3025], [0, 3031, 3032], [0, 3046, 3056], [0, 3072, 3085], [0, 3086, 3089], [0, 3090, 3113], [0, 3114, 3130], [0, 3133, 3141], [0, 3142, 3145], [0, 3146, 3150], [0, 3157, 3159], [0, 3160, 3163], [0, 3168, 3172], [0, 3174, 3184], [0, 3200, 3204], [0, 3205, 3213], [0, 3214, 3217], [0, 3218, 3241], [0, 3242, 3252], [0, 3253, 3258], [0, 3260, 3269], [0, 3270, 3273], [0, 3274, 3278], [0, 3285, 3287], [0, 3294, 3295], [0, 3296, 3300], [0, 3302, 3312], [0, 3313, 3315], [0, 3328, 3332], [0, 3333, 3341], [0, 3342, 3345], [0, 3346, 3397], [0, 3398, 3401], [0, 3402, 3407], [0, 3412, 3416], [0, 3423, 3428], [0, 3430, 3440], [0, 3450, 3456], [0, 3458, 3460], [0, 3461, 3479], [0, 3482, 3506], [0, 3507, 3516], [0, 3517, 3518], [0, 3520, 3527], [0, 3530, 3531], [0, 3535, 3541], [0, 3542, 3543], [0, 3544, 3552], [0, 3558, 3568], [0, 3570, 3572], [0, 3585, 3643], [0, 3648, 3663], [0, 3664, 3674], [0, 3713, 3715], [0, 3716, 3717], [0, 3718, 3723], [0, 3724, 3748], [0, 3749, 3750], [0, 3751, 3774], [0, 3776, 3781], [0, 3782, 3783], [0, 3784, 3790], [0, 3792, 3802], [0, 3804, 3808], [0, 3840, 3841], [0, 3864, 3866], [0, 3872, 3882], [0, 3893, 3894], [0, 3895, 3896], [0, 3897, 3898], [0, 3902, 3912], [0, 3913, 3949], [0, 3953, 3973], [0, 3974, 3992], [0, 3993, 4029], [0, 4038, 4039], [0, NF, 4170], [0, 4176, 4254], [0, 4256, 4294], [0, 4295, 4296], [0, 4301, 4302], [0, 4304, 4347], [0, 4348, 4681], [0, 4682, 4686], [0, 4688, 4695], [0, 4696, 4697], [0, 4698, 4702], [0, 4704, 4745], [0, 4746, 4750], [0, 4752, 4785], [0, 4786, 4790], [0, 4792, 4799], [0, 4800, 4801], [0, 4802, 4806], [0, 4808, 4823], [0, 4824, 4881], [0, 4882, 4886], [0, 4888, 4955], [0, 4957, 4960], [0, 4969, 4978], [0, 4992, 5008], [0, 5024, 5110], [0, 5112, 5118], [0, 5121, 5741], [0, 5743, nC], [0, 5761, 5787], [0, 5792, 5867], [0, 5870, 5881], [0, 5888, 5901], [0, 5902, 5909], [0, 5920, 5941], [0, 5952, 5972], [0, 5984, 5997], [0, 5998, 6001], [0, 6002, 6004], [0, 6016, 6100], [0, 6103, 6104], [0, 6108, 6110], [0, 6112, 6122], [0, 6155, 6158], [0, 6160, 6170], [0, 6176, 6265], [0, 6272, 6315], [0, 6320, 6390], [0, 6400, 6431], [0, 6432, 6444], [0, 6448, 6460], [0, 6470, 6510], [0, 6512, 6517], [0, 6528, 6572], [0, 6576, 6602], [0, 6608, 6619], [0, 6656, 6684], [0, 6688, 6751], [0, 6752, 6781], [0, 6783, 6794], [0, 6800, 6810], [0, 6823, 6824], [0, 6832, 6846], [0, 6912, 6988], [0, 6992, 7002], [0, 7019, 7028], [0, 7040, 7156], [0, 7168, 7224], [0, 7232, 7242], [0, 7245, 7294], [0, 7296, 7305], [0, 7312, 7355], [0, 7357, 7360], [0, 7376, 7379], [0, 7380, 7419], [0, 7424, 7674], [0, 7675, 7958], [0, 7960, 7966], [0, 7968, 8006], [0, 8008, 8014], [0, 8016, 8024], [0, 8025, 8026], [0, 8027, 8028], [0, 8029, 8030], [0, 8031, 8062], [0, 8064, 8117], [0, 8118, 8125], [0, 8126, 8127], [0, 8130, 8133], [0, 8134, 8141], [0, 8144, 8148], [0, 8150, 8156], [0, 8160, 8173], [0, 8178, 8181], [0, 8182, 8189], [0, tR, NM], [0, 8255, 8257], [0, 8276, 8277], [0, F82, 8306], [0, f8, 8320], [0, 8336, 8349], [0, 8400, 8413], [0, 8417, 8418], [0, 8421, 8433], [0, dm3, 8451], [0, Gm3, 8456], [0, 8458, tk], [0, dk, 8470], [0, sM, 8478], [0, _82, Jm3], [0, th2, gk], [0, Ik, Hm3], [0, 8490, 8506], [0, 8508, 8512], [0, 8517, 8522], [0, Lk, 8527], [0, 8544, 8585], [0, 11264, 11311], [0, 11312, 11359], [0, 11360, 11493], [0, 11499, 11508], [0, 11520, om3], [0, gp4, 11560], [0, Fm3, 11566], [0, 11568, 11624], [0, u8, 11632], [0, ak, 11671], [0, 11680, lm3], [0, 11688, km3], [0, 11696, bp3], [0, 11704, Uk], [0, 11712, z82], [0, 11720, Ip3], [0, 11728, sh2], [0, 11736, 11743], [0, 11744, 11776], [0, 12293, 12296], [0, 12321, uh2], [0, 12337, 12342], [0, 12344, 12349], [0, 12353, 12439], [0, 12441, X82], [0, 12449, _h2], [0, 12540, 12544], [0, 12549, Ym3], [0, 12593, 12687], [0, 12704, 12731], [0, 12784, 12800], [0, 13312, 19894], [0, 19968, 40944], [0, 40960, 42125], [0, 42192, 42238], [0, 42240, 42509], [0, 42512, 42540], [0, 42560, 42608], [0, 42612, ek], [0, 42623, 42738], [0, 42775, 42784], [0, 42786, 42889], [0, 42891, 42944], [0, 42946, 42951], [0, l8, 43048], [0, 43072, 43124], [0, 43136, 43206], [0, 43216, 43226], [0, 43232, 43256], [0, $k, Yk], [0, 43261, 43310], [0, 43312, 43348], [0, 43360, 43389], [0, 43392, 43457], [0, W82, 43482], [0, 43488, Bp3], [0, aF2, 43575], [0, 43584, 43598], [0, 43600, 43610], [0, 43616, 43639], [0, fm3, 43715], [0, 43739, 43742], [0, 43744, 43760], [0, 43762, 43767], [0, 43777, 43783], [0, 43785, 43791], [0, 43793, 43799], [0, 43808, wm3], [0, 43816, p8], [0, 43824, Q82], [0, 43868, Np4], [0, 43888, 44011], [0, 44012, 44014], [0, 44016, 44026], [0, 44032, 55204], [0, 55216, 55239], [0, 55243, 55292], [0, 63744, 64110], [0, 64112, 64218], [0, 64256, 64263], [0, 64275, 64280], [0, Wk, qp3], [0, 64298, b8], [0, 64312, ym3], [0, Qk, pk], [0, 64320, ih2], [0, 64323, Th2], [0, 64326, 64434], [0, 64467, 64830], [0, 64848, 64912], [0, 64914, 64968], [0, 65008, 65020], [0, 65024, 65040], [0, 65056, 65072], [0, 65075, 65077], [0, 65101, 65104], [0, 65136, $m3], [0, 65142, 65277], [0, 65296, 65306], [0, 65313, 65339], [0, 65343, pm3], [0, 65345, 65371], [0, 65382, 65471], [0, 65474, 65480], [0, 65482, 65488], [0, 65490, 65496], [0, 65498, 65501], [0, Y63, lh2], [0, 65549, Z82], [0, 65576, Ek], [0, 65596, Ak], [0, 65599, 65614], [0, 65616, 65630], [0, 65664, 65787], [0, 65856, 65909], [0, 66045, 66046], [0, 66176, 66205], [0, 66208, 66257], [0, 66272, 66273], [0, 66304, 66336], [0, 66349, 66379], [0, 66384, 66427], [0, 66432, 66462], [0, 66464, 66500], [0, 66504, ah2], [0, 66513, 66518], [0, 66560, 66718], [0, 66720, 66730], [0, 66736, 66772], [0, 66776, 66812], [0, 66816, 66856], [0, 66864, 66916], [0, 67072, 67383], [0, 67392, 67414], [0, 67424, 67432], [0, 67584, 67590], [0, vk, x8], [0, 67594, oh2], [0, 67639, 67641], [0, $82, 67645], [0, 67647, 67670], [0, 67680, 67703], [0, 67712, 67743], [0, 67808, Hp3], [0, 67828, 67830], [0, 67840, 67862], [0, 67872, 67898], [0, 67968, 68024], [0, 68030, 68032], [0, ph2, 68100], [0, 68101, 68103], [0, 68108, Xk], [0, 68117, V82], [0, 68121, 68150], [0, 68152, 68155], [0, 68159, 68160], [0, 68192, 68221], [0, 68224, 68253], [0, 68288, D8], [0, 68297, 68327], [0, 68352, 68406], [0, 68416, 68438], [0, 68448, 68467], [0, 68480, 68498], [0, 68608, 68681], [0, 68736, 68787], [0, 68800, 68851], [0, 68864, 68904], [0, 68912, 68922], [0, 69376, 69405], [0, qm3, 69416], [0, 69424, 69457], [0, 69600, 69623], [0, 69632, 69703], [0, 69734, nh2], [0, 69759, 69819], [0, 69840, 69865], [0, 69872, 69882], [0, 69888, 69941], [0, 69942, 69952], [0, Up3, Dk], [0, 69968, 70004], [0, Km3, 70007], [0, 70016, 70085], [0, 70089, 70093], [0, 70096, Om3], [0, o8, 70109], [0, 70144, Nm3], [0, 70163, 70200], [0, 70206, 70207], [0, 70272, Pm3], [0, S8, Fk], [0, 70282, Cm3], [0, 70287, mm3], [0, 70303, 70313], [0, 70320, 70379], [0, 70384, 70394], [0, 70400, jp3], [0, 70405, 70413], [0, 70415, 70417], [0, 70419, Vm4], [0, 70442, Y8], [0, 70450, cm3], [0, 70453, 70458], [0, 70459, 70469], [0, 70471, 70473], [0, 70475, 70478], [0, Yp3, 70481], [0, 70487, 70488], [0, 70493, 70500], [0, 70502, 70509], [0, 70512, 70517], [0, 70656, 70731], [0, 70736, 70746], [0, uk, 70752], [0, 70784, Um3], [0, i8, 70856], [0, 70864, 70874], [0, 71040, 71094], [0, 71096, 71105], [0, 71128, 71134], [0, 71168, 71233], [0, a8, 71237], [0, 71248, 71258], [0, 71296, 71353], [0, 71360, 71370], [0, 71424, 71451], [0, 71453, 71468], [0, 71472, 71482], [0, 71680, 71739], [0, 71840, 71914], [0, 71935, 71936], [0, 72096, 72104], [0, 72106, 72152], [0, 72154, R82], [0, Xm3, 72165], [0, t8, 72255], [0, 72263, 72264], [0, qk, 72346], [0, k8, 72350], [0, 72384, 72441], [0, 72704, zm3], [0, 72714, 72759], [0, 72760, 72769], [0, 72784, 72794], [0, 72818, 72848], [0, 72850, 72872], [0, 72873, 72887], [0, 72960, d8], [0, 72968, ch2], [0, 72971, 73015], [0, 73018, 73019], [0, 73020, 73022], [0, 73023, 73032], [0, 73040, 73050], [0, 73056, E8], [0, 73063, bm3], [0, 73066, 73103], [0, 73104, 73106], [0, 73107, 73113], [0, 73120, 73130], [0, 73440, 73463], [0, 73728, 74650], [0, 74752, 74863], [0, 74880, 75076], [0, 77824, 78895], [0, 82944, 83527], [0, 92160, 92729], [0, 92736, 92767], [0, 92768, 92778], [0, 92880, 92910], [0, 92912, 92917], [0, 92928, 92983], [0, 92992, 92996], [0, 93008, 93018], [0, 93027, 93048], [0, 93053, 93072], [0, 93760, 93824], [0, 93952, 94027], [0, gm3, 94088], [0, 94095, 94112], [0, 94176, mk], [0, Op3, 94180], [0, 94208, 100344], [0, 100352, 101107], [0, 110592, 110879], [0, 110928, 110931], [0, 110948, 110952], [0, 110960, 111356], [0, 113664, 113771], [0, 113776, 113789], [0, 113792, 113801], [0, 113808, 113818], [0, 113821, 113823], [0, 119141, 119146], [0, 119149, 119155], [0, 119163, 119171], [0, 119173, 119180], [0, 119210, 119214], [0, 119362, 119365], [0, 119808, Fp3], [0, 119894, jk], [0, 119966, 119968], [0, r8, 119971], [0, 119973, 119975], [0, 119977, Ah2], [0, 119982, Sm3], [0, M82, xm3], [0, 119997, c8], [0, 120005, bh], [0, 120071, 120075], [0, 120077, sk], [0, 120086, Im3], [0, 120094, Xp3], [0, 120123, H82], [0, 120128, n8], [0, Jk, 120135], [0, 120138, eh2], [0, 120146, 120486], [0, 120488, yk], [0, 120514, T8], [0, 120540, wh2], [0, 120572, Rk], [0, 120598, C8], [0, 120630, Zp3], [0, 120656, w82], [0, 120688, zp3], [0, 120714, Cp3], [0, 120746, Nk], [0, 120772, 120780], [0, 120782, 120832], [0, 121344, 121399], [0, 121403, 121453], [0, 121461, 121462], [0, 121476, 121477], [0, 121499, 121504], [0, 121505, 121520], [0, 122880, 122887], [0, 122888, 122905], [0, 122907, 122914], [0, 122915, 122917], [0, 122918, 122923], [0, 123136, 123181], [0, 123184, 123198], [0, 123200, 123210], [0, Sp3, 123215], [0, 123584, 123642], [0, 124928, 125125], [0, 125136, 125143], [0, 125184, 125260], [0, 125264, 125274], [0, 126464, xk], [0, 126469, hm3], [0, 126497, yh2], [0, Pp4, 126501], [0, Mm3, J82], [0, 126505, Ep3], [0, 126516, N8], [0, kh2, tm3], [0, Vp3, 126524], [0, fh2, 126531], [0, Eh2, Qp3], [0, hh2, vm3], [0, vh2, Mp3], [0, 126541, Mk], [0, 126545, xh2], [0, Dm3, 126549], [0, j82, $p3], [0, Zk, y8], [0, am3, rh2], [0, ok2, Jp3], [0, q82, Sk], [0, 126561, Wp3], [0, Zm3, 126565], [0, 126567, Rp3], [0, 126572, nk], [0, 126580, A8], [0, 126585, Vk], [0, O8, Bm3], [0, 126592, Kp3], [0, 126603, 126620], [0, 126625, P8], [0, 126629, m8], [0, 126635, 126652], [0, 131072, 173783], [0, 173824, 177973], [0, 177984, 178206], [0, 178208, 183970], [0, 183984, 191457], [0, 194560, 195102], [0, 917760, 918e3]], er0 = [0, 1, 0], tr0 = [0, 0, [0, 1, 0], [0, 1, 0]], nr0 = sL, ur0 = "end of input", ir0 = U63, fr0 = "template literal part", cr0 = U63, sr0 = nD2, ar0 = sL, or0 = U63, vr0 = H32, lr0 = U63, pr0 = $v, kr0 = U63, mr0 = K32, hr0 = "an", dr0 = St12, yr0 = Nu4, _r0 = [0, [11, "token `", [2, 0, [12, 96, 0]]], "token `%s`"], wr0 = "{", gr0 = em3, br0 = "{|", Tr0 = "|}", Er0 = PM, Sr0 = iM, Ar0 = "[", Ir0 = "]", Pr0 = NT, Cr0 = JL, Nr0 = ln8, Or0 = "=>", jr0 = "...", Dr0 = _D, Rr0 = DM, Fr0 = $32, Mr0 = nm3, Lr0 = bo4, qr0 = I63, Br0 = Je11, Ur0 = Ve9, Xr0 = $P, Gr0 = DT, Yr0 = Bv2, zr0 = He10, Jr0 = um3, Kr0 = g62, Hr0 = Tp3, Wr0 = L82, Vr0 = No3, $r0 = cl6, Qr0 = Hv, Zr0 = wa4, x10 = Pa5, r10 = We12, e102 = rk, t10 = Rm3, n10 = Xe11, u10 = Fv2, i10 = Tk, f10 = U82, c10 = K82, s10 = h62, a10 = mc3, o10 = Ue10, v10 = Ck, l10 = Yv, p10 = E62, k10 = Aa3, m10 = ga2, h10 = j63, d10 = dh2, y10 = W24, _10 = fl6, w10 = Oo5, g10 = ae10, b10 = Pk, T10 = Q63, E10 = k63, S10 = W63, A10 = H24, I10 = Ke12, P10 = x43, C102 = tc3, N10 = zb2, O10 = JS, j10 = Io5, D102 = Kv, R10 = "%checks", F10 = TR, M10 = hL, L10 = GD, q102 = bF, B10 = vM, U10 = yo2, X102 = qD, G10 = PF, Y10 = IR, z10 = RR, J102 = YD, K102 = kM, H10 = fF2, W10 = $L, V102 = eF, $10 = p_2, Q10 = "?.", Z10 = Dw, x20 = uM, r20 = Iv2, e202 = LF, t20 = CM, n20 = wR, u20 = _k, i20 = Qm3, f20 = GM, c20 = $F, s20 = SF, a20 = OD, o20 = QL, v20 = WD, l20 = Qy2, p20 = F63, k20 = YF, m20 = CF, h20 = yD2, d20 = $72, y20 = ze11, _20 = se11, w20 = _R, g20 = pF, b20 = HL, T20 = SD, E20 = VL, S20 = ZM, A20 = kR, I20 = rx2, P20 = ik, C20 = wk, N20 = be10, O20 = H32, j20 = $v, D20 = K32, R20 = ga2, F20 = H63, M20 = hk, L20 = bk, q20 = Hk, B20 = Lm3, U20 = Xv, X20 = FD2, G20 = J63, Y20 = tl4, z20 = V32, J20 = jF, K20 = uF2, H20 = m62, W20 = m62, V20 = gL, $20 = m62, Q20 = m62, Z20 = em3, xe0 = em3, re0 = gL, ee0 = se11, te0 = se11, ne0 = O62, ue0 = rm3, ie0 = "T_LCURLY", fe0 = "T_RCURLY", ce0 = "T_LCURLYBAR", se0 = "T_RCURLYBAR", ae0 = "T_LPAREN", oe0 = "T_RPAREN", ve0 = "T_LBRACKET", le0 = "T_RBRACKET", pe0 = "T_SEMICOLON", ke0 = "T_COMMA", me0 = "T_PERIOD", he0 = "T_ARROW", de0 = "T_ELLIPSIS", ye0 = "T_AT", _e0 = "T_POUND", we0 = "T_FUNCTION", ge0 = "T_IF", be0 = "T_IN", Te0 = "T_INSTANCEOF", Ee0 = "T_RETURN", Se0 = "T_SWITCH", Ae0 = "T_MATCH", Ie0 = "T_RECORD", Pe0 = "T_THIS", Ce0 = "T_THROW", Ne0 = "T_TRY", Oe0 = "T_VAR", je0 = "T_WHILE", De0 = "T_WITH", Re0 = "T_CONST", Fe0 = "T_LET", Me0 = "T_NULL", Le0 = "T_FALSE", qe0 = "T_TRUE", Be0 = "T_BREAK", Ue0 = "T_CASE", Xe0 = "T_CATCH", Ge0 = "T_CONTINUE", Ye0 = "T_DEFAULT", ze0 = "T_DO", Je0 = "T_FINALLY", Ke0 = "T_FOR", He0 = "T_CLASS", We0 = "T_EXTENDS", Ve0 = "T_STATIC", $e0 = "T_ELSE", Qe0 = "T_NEW", Ze0 = "T_DELETE", xt0 = "T_TYPEOF", rt0 = "T_VOID", et0 = "T_ENUM", tt0 = "T_EXPORT", nt0 = "T_IMPORT", ut0 = "T_SUPER", it0 = "T_IMPLEMENTS", ft0 = "T_INTERFACE", ct0 = "T_PACKAGE", st0 = "T_PRIVATE", at0 = "T_PROTECTED", ot0 = "T_PUBLIC", vt0 = "T_YIELD", lt0 = "T_DEBUGGER", pt0 = "T_DECLARE", kt0 = "T_TYPE", mt0 = "T_OPAQUE", ht0 = "T_OF", dt0 = "T_ASYNC", yt0 = "T_AWAIT", _t0 = "T_CHECKS", wt0 = "T_RSHIFT3_ASSIGN", gt0 = "T_RSHIFT_ASSIGN", bt0 = "T_LSHIFT_ASSIGN", Tt0 = "T_BIT_XOR_ASSIGN", Et0 = "T_BIT_OR_ASSIGN", St0 = "T_BIT_AND_ASSIGN", At0 = "T_MOD_ASSIGN", It0 = "T_DIV_ASSIGN", Pt0 = "T_MULT_ASSIGN", Ct0 = "T_EXP_ASSIGN", Nt0 = "T_MINUS_ASSIGN", Ot0 = "T_PLUS_ASSIGN", jt0 = "T_NULLISH_ASSIGN", Dt0 = "T_AND_ASSIGN", Rt0 = "T_OR_ASSIGN", Ft0 = "T_ASSIGN", Mt0 = "T_PLING_PERIOD", Lt0 = "T_PLING_PLING", qt0 = "T_PLING", Bt0 = "T_COLON", Ut0 = "T_OR", Xt0 = "T_AND", Gt0 = "T_BIT_OR", Yt0 = "T_BIT_XOR", zt0 = "T_BIT_AND", Jt0 = "T_EQUAL", Kt0 = "T_NOT_EQUAL", Ht0 = "T_STRICT_EQUAL", Wt0 = "T_STRICT_NOT_EQUAL", Vt0 = "T_LESS_THAN_EQUAL", $t0 = "T_GREATER_THAN_EQUAL", Qt0 = "T_LESS_THAN", Zt0 = "T_GREATER_THAN", xn0 = "T_LSHIFT", rn0 = "T_RSHIFT", en0 = "T_RSHIFT3", tn0 = "T_PLUS", nn0 = "T_MINUS", un0 = "T_DIV", in0 = "T_MULT", fn0 = "T_EXP", cn0 = "T_MOD", sn0 = "T_NOT", an0 = "T_BIT_NOT", on0 = "T_INCR", vn0 = "T_DECR", ln0 = "T_EOF", pn0 = "T_ANY_TYPE", kn0 = "T_MIXED_TYPE", mn0 = "T_EMPTY_TYPE", hn0 = "T_NUMBER_TYPE", dn0 = "T_BIGINT_TYPE", yn0 = "T_STRING_TYPE", _n0 = "T_VOID_TYPE", wn0 = "T_SYMBOL_TYPE", gn0 = "T_UNKNOWN_TYPE", bn0 = "T_NEVER_TYPE", Tn0 = "T_UNDEFINED_TYPE", En0 = "T_KEYOF", Sn0 = "T_READONLY", An0 = "T_INFER", In0 = "T_IS", Pn0 = "T_ASSERTS", Cn0 = "T_IMPLIES", Nn0 = KL, On0 = KL, jn0 = "T_NUMBER", Dn0 = "T_BIGINT", Rn0 = "T_STRING", Fn0 = "T_TEMPLATE_PART", Mn0 = "T_IDENTIFIER", Ln0 = "T_REGEXP", qn0 = "T_INTERPRETER", Bn0 = "T_ERROR", Un0 = "T_JSX_IDENTIFIER", Xn0 = XL, Gn0 = XL, Yn0 = "T_BOOLEAN_TYPE", zn0 = "T_NUMBER_SINGLETON_TYPE", Jn0 = "T_BIGINT_SINGLETON_TYPE", Kn0 = [0, BR, $S, 9], Hn0 = [0, BR, Hg2, 9], Wn0 = wL, Vn0 = "*/", $n0 = wL, Qn0 = "unreachable line_comment", Zn0 = "unreachable string_quote", x70 = "\\", r70 = "unreachable template_part", e70 = `\r
|
|
29160
|
-
`, t70 = ug2, n70 = "unreachable regexp_class", u70 = LD, i70 = "unreachable regexp_body", f70 = rx2, c70 = rx2, s70 = rx2, a70 = rx2, o70 = hR, v70 = "{'>'}", l70 = F63, p70 = "{'}'}", k70 = em3, m70 = Ao2, h70 = NT, d70 = Qm3, y70 = hR, _70 = Ao2, w70 = NT, g70 = Qm3, b70 = "unreachable type_token wholenumber", T70 = "unreachable type_token wholebigint", E70 = "unreachable type_token floatbigint", S70 = "unreachable type_token scinumber", A70 = "unreachable type_token scibigint", I70 = "unreachable type_token hexnumber", P70 = "unreachable type_token hexbigint", C70 = "unreachable type_token legacyoctnumber", N70 = "unreachable type_token octnumber", O70 = "unreachable type_token octbigint", j70 = "unreachable type_token binnumber", D70 = "unreachable type_token bigbigint", R70 = "unreachable type_token", F70 = yL, M70 = [11, 1], L70 = [11, 0], q70 = "unreachable template_tail", B70 = rx2, U70 = rx2, X70 = "unreachable jsx_child", G70 = "unreachable jsx_tag", Y70 = [0, hw], z70 = [0, 913], J70 = [0, Y32], K70 = [0, mh2], H70 = [0, cR], W70 = [0, QP], V70 = [0, 8747], $70 = [0, gD], Q70 = [0, 916], Z70 = [0, 8225], xu0 = [0, 935], ru0 = [0, VI], eu0 = [0, 914], tu0 = [0, vL], nu0 = [0, IF], uu0 = [0, RE], iu0 = [0, 915], fu0 = [0, TD], cu0 = [0, 919], su0 = [0, 917], au0 = [0, _L], ou0 = [0, KD], vu0 = [0, HR], lu0 = [0, 924], pu0 = [0, 923], ku0 = [0, 922], mu0 = [0, oF2], hu0 = [0, 921], du0 = [0, eM], yu0 = [0, Hg2], _u0 = [0, xF], wu0 = [0, ty2], gu0 = [0, 927], bu0 = [0, 937], Tu0 = [0, HD], Eu0 = [0, $R], Su0 = [0, uR], Au0 = [0, 338], Iu0 = [0, 352], Pu0 = [0, 929], Cu0 = [0, 936], Nu0 = [0, 8243], Ou0 = [0, 928], ju0 = [0, 934], Du0 = [0, qL], Ru0 = [0, o_2], Fu0 = [0, 933], Mu0 = [0, pM], Lu0 = [0, nL], qu0 = [0, fD2], Bu0 = [0, 920], Uu0 = [0, 932], Xu0 = [0, jD], Gu0 = [0, dR], Yu0 = [0, KF], zu0 = [0, JR], Ju0 = [0, 918], Ku0 = [0, SR], Hu0 = [0, HF], Wu0 = [0, 926], Vu0 = [0, lF2], $u0 = [0, jM], Qu0 = [0, 925], Zu0 = [0, 39], xi0 = [0, 8736], ri0 = [0, 8743], ei0 = [0, 38], ti0 = [0, 945], ni0 = [0, 8501], ui0 = [0, Sv2], ii0 = [0, 8226], fi0 = [0, JD2], ci0 = [0, 946], si0 = [0, 8222], ai0 = [0, RD], oi0 = [0, wM], vi0 = [0, 8776], li0 = [0, qI], pi0 = [0, 8773], ki0 = [0, 9827], mi0 = [0, CD2], hi0 = [0, 967], di0 = [0, qM], yi0 = [0, Wm3], _i0 = [0, PD], wi0 = [0, GF], gi0 = [0, 8595], bi0 = [0, 8224], Ti0 = [0, 8659], Ei0 = [0, sR], Si0 = [0, 8746], Ai0 = [0, 8629], Ii0 = [0, yR], Pi0 = [0, 8745], Ci0 = [0, 8195], Ni0 = [0, 8709], Oi0 = [0, iD2], ji0 = [0, dL], Di0 = [0, aL], Ri0 = [0, Gp3], Fi0 = [0, 9830], Mi0 = [0, 8707], Li0 = [0, 8364], qi0 = [0, EM], Bi0 = [0, rl5], Ui0 = [0, 951], Xi0 = [0, 8801], Gi0 = [0, 949], Yi0 = [0, 8194], zi0 = [0, 8805], Ji0 = [0, 947], Ki0 = [0, 8260], Hi0 = [0, jE], Wi0 = [0, nR], Vi0 = [0, $S], $i0 = [0, 8704], Qi0 = [0, XF], Zi0 = [0, EL], xf0 = [0, 8230], rf0 = [0, 9829], ef0 = [0, 8596], tf0 = [0, 8660], nf0 = [0, 62], uf0 = [0, 402], if0 = [0, 948], ff0 = [0, nF2], cf0 = [0, E9], sf0 = [0, 8712], af0 = [0, sP], of0 = [0, 953], vf0 = [0, 8734], lf0 = [0, 8465], pf0 = [0, IM], kf0 = [0, 8220], mf0 = [0, 8968], hf0 = [0, 8592], df0 = [0, Sg2], yf0 = [0, 10216], _f0 = [0, 955], wf0 = [0, 8656], gf0 = [0, 954], bf0 = [0, 60], Tf0 = [0, 8216], Ef0 = [0, 8249], Sf0 = [0, NM], Af0 = [0, 9674], If0 = [0, 8727], Pf0 = [0, 8970], Cf0 = [0, AL], Nf0 = [0, 8711], Of0 = [0, 956], jf0 = [0, 8722], Df0 = [0, j_], Rf0 = [0, NS], Ff0 = [0, 8212], Mf0 = [0, NR], Lf0 = [0, 8804], qf0 = [0, 957], Bf0 = [0, kF], Uf0 = [0, 8836], Xf0 = [0, 8713], Gf0 = [0, KR], Yf0 = [0, 8715], zf0 = [0, 8800], Jf0 = [0, 8853], Kf0 = [0, 959], Hf0 = [0, 969], Wf0 = [0, 8254], Vf0 = [0, HM], $f0 = [0, 339], Qf0 = [0, jv], Zf0 = [0, BM], xc0 = [0, s9], rc0 = [0, ul6], ec0 = [0, 8855], tc0 = [0, ME], nc0 = [0, t12], uc0 = [0, xI], ic0 = [0, py2], fc0 = [0, da5], cc0 = [0, rL], sc0 = [0, 982], ac0 = [0, 960], oc0 = [0, 966], vc0 = [0, 8869], lc0 = [0, 8240], pc0 = [0, 8706], kc0 = [0, 8744], mc0 = [0, 8211], hc0 = [0, 10217], dc0 = [0, 8730], yc0 = [0, 8658], _c0 = [0, 34], wc0 = [0, 968], gc0 = [0, 8733], bc0 = [0, 8719], Tc0 = [0, 961], Ec0 = [0, 8971], Sc0 = [0, LL], Ac0 = [0, 8476], Ic0 = [0, 8221], Pc0 = [0, 8969], Cc0 = [0, 8594], Nc0 = [0, z_], Oc0 = [0, bM], jc0 = [0, Sb2], Dc0 = [0, 8901], Rc0 = [0, 353], Fc0 = [0, 8218], Mc0 = [0, 8217], Lc0 = [0, 8250], qc0 = [0, 8835], Bc0 = [0, 8721], Uc0 = [0, 8838], Xc0 = [0, 8834], Gc0 = [0, 9824], Yc0 = [0, 8764], zc0 = [0, 962], Jc0 = [0, 963], Kc0 = [0, 8207], Hc0 = [0, 952], Wc0 = [0, 8756], Vc0 = [0, 964], $c0 = [0, e82], Qc0 = [0, 8839], Zc0 = [0, AC], xs0 = [0, fk], rs0 = [0, ol7], es0 = [0, 8657], ts0 = [0, 8482], ns0 = [0, lk], us0 = [0, 732], is0 = [0, Q32], fs0 = [0, 8201], cs0 = [0, 977], ss0 = [0, sM], as0 = [0, xl6], os0 = [0, 965], vs0 = [0, 978], ls0 = [0, IL], ps0 = [0, jS], ks0 = [0, WL], ms0 = [0, tR], hs0 = [0, 8205], ds0 = [0, 950], ys0 = [0, Bk], _s0 = [0, hF], ws0 = [0, QE], gs0 = [0, 958], bs0 = [0, 8593], Ts0 = [0, oD2], Es0 = [0, 8242], Ss0 = [0, kI], As0 = "unreachable regexp", Is0 = "unreachable token wholenumber", Ps0 = "unreachable token wholebigint", Cs0 = "unreachable token floatbigint", Ns0 = "unreachable token scinumber", Os0 = "unreachable token scibigint", js0 = "unreachable token hexnumber", Ds0 = "unreachable token hexbigint", Rs0 = "unreachable token legacyoctnumber", Fs0 = "unreachable token legacynonoctnumber", Ms0 = "unreachable token octnumber", Ls0 = "unreachable token octbigint", qs0 = "unreachable token bignumber", Bs0 = "unreachable token bigint", Us0 = "unreachable token", Xs0 = yL, Gs0 = [7, "#!"], Ys0 = "expected ?", zs0 = "unreachable string_escape", Js0 = V24, Ks0 = P63, Hs0 = P63, Ws0 = V24, Vs0 = KP, $s0 = EF, Qs0 = "n", Zs0 = "r", xa0 = "t", ra0 = zF, ea0 = P63, ta0 = Ao2, na0 = Ao2, ua0 = "unreachable id_char", ia0 = Ao2, fa0 = Ao2, ca0 = P63, sa0 = uL, aa0 = pD2, oa0 = gb2, va0 = [28, "token ILLEGAL"], la0 = [0, [11, "the identifier `", [2, 0, [12, 96, 0]]], "the identifier `%s`"], pa0 = [0, 1], ka0 = [0, 1], ma0 = OF, ha0 = OF, da0 = [0, [11, "an identifier. When exporting a ", [2, 0, [11, " as a named export, you must specify a ", [2, 0, [11, " name. Did you mean `export default ", [2, 0, [11, " ...`?", 0]]]]]]], "an identifier. When exporting a %s as a named export, you must specify a %s name. Did you mean `export default %s ...`?"], ya0 = Sh2, _a0 = "Peeking current location when not available", wa0 = [0, "src/parser/parser_env.ml", SR, 9], ga0 = "Internal Error: Tried to add_declared_private with outside of class scope.", ba0 = "Internal Error: `exit_class` called before a matching `enter_class`", Ta0 = rx2, Ea0 = [0, 0, 0], Sa0 = [0, 0, 0], Aa0 = "Parser_env.Try.Rollback", Ia0 = rx2, Pa0 = rx2, Ca0 = [0, H24, of3, $i9, CR, TM, V72, $24, qf3, h7, pc3, bc4, Rf4, Gi7, Du4, Fi8, hu4, F72, d7, Qu2, Uf3, J72, ui11, cf3, X72, Zn10, Zf2, _u4, vu4, $n8, ac3, Ps9, oc4, _f4, Sf3, Es8, Uc2, jc2, Q72, He10, t7, Wi7, s7, Qc2, Bi8, ic3, rs8, Ve9, Jc2, Uu4, fu4, k72, ss9, ii10, lu4, T7, Je11, ci10, w72, Of3, qu4, fc3, Ku4, pi11, q72, a7, If4, _72, fs36, Ge11, Lf3, Pi8, Zu2, M72, pu2, xf4, af3, P7, $f3, au3, Fc2, Zi7, m7, Bn7, jf3, Fu4, Y7, bi11, $c2, Ai9, Eu5, ge11, es8, x72, rc3, Vu4, bs8, Wn8, e72, o7, Kf2, Pc3, Vn6, r7, Xi8, Qf2, kf4, Lu4, sf3, Xn9, Vc3, zu3, ni10, Oi9, Hu3, $u4, si9, n7, Ii8, Zc2, Ui7, ys8, Gf3, Kc2, Xu3, Mu4, Ei10, Cc3, wu3, Kn10, hs8, df3, W72, Ki8, uc3, hf3, Nf3, uu4, du4, E7, ps7, L72, mf3, gu4, Au3, Cu3, Yc3, su3, os7, N7, oi10, G12, g7, Hn8, Bc2, ai10, pf3, ku3, xu3, Tf3, Jf2, ms8, Tc4, Dc2, z72, dc3, Bu3, zf3, f7, D7, Z72, Xf, I72, ds7, fi11, Mi7, Di8, Rc3, zn9, Yu2, xi11, eu4, vf4, ae10, lc3, is8, cc4, Ou5, Df4, as8, Vi8, Gn9, W24, Ri8, U72, cs7, St12, Ni9, qc3, gs7, tu3, i7, vi11, Ru4, di11, Qi8, S7, kc3, _c3, ti10, cu3, gf3, nc4, As8, Iu4, wf3, Qn8, vs9, Ci8, hi11, Hi9, ws8, bf3, v72, b7, Mf4, mi11, C72, Nc3, ts8, p7, t23, Un8, Mc2, yf3, Is8, A72, Yn7, Yi8, Ac3, Yf3, Xc2, Oc3, Ts6, O7, Hc2, Bf3, wc3, Ec4, bu4, ju4, j72, be10, nf3, Ju5, qn8, hc3, Ic3, wi10, Gc2, gi11, lf3, yu5, zi7, ou3, xc3, us8, Ke12, Xe11, rf3, ff3, ri9, Wc2, ns8, K72, mu3, Vf3, Sc4, _s7, Jn9, gc3, qi7, Hf, ru4, uf3, aR, H72, vD, qF, yc3, Ef3, ji6, y7, sc3, Wf3, B7, ei10, Si11, yi11, Wu2, Ff3, Gu3, Su3, Pf4, c7, li10, l7, Ji6, _i9, Cs6, We12, iu3, zc3, vn7, G72, R72, ki10, ls7, u7, Tu5, Pu3, Ti11, Lc2, tf3, vc4, tn9, Af3], Na0 = [0, ss9, fi11, _c3, Ni9, di11, Cs6, mf3, si9, sf3, z72, eu4, zc3, _u4, e72, Ve9, bs8, Mc2, W72, hf3, Ff3, Es8, Xi8, Z72, Ii8, lc3, I72, Ec4, O7, of3, Fu4, tu3, Ku4, jc2, hi11, m7, pf3, Ic3, Vf3, gs7, wc3, ys8, St12, V72, Mf4, $f3, lf3, Ji6, ti10, l7, f7, Ac3, Lf3, vi11, Hi9, rs8, Vc3, U72, Au3, fu4, Kn10, Ou5, bu4, ai10, Ui7, Si11, ji6, es8, Af3, pu2, Ki8, qi7, X72, Lu4, Zu2, ms8, Wf3, o7, Ge11, r7, Qi8, x72, Gf3, dc3, D7, qc3, G12, ff3, $n8, Oc3, E7, Nf3, Tc4, g7, kc3, su3, P7, tf3, Gc2, Yn7, Mu4, a7, Eu5, vc4, j72, _i9, T7, $24, Pi8, ou3, d7, w72, Ri8, wu3, ki10, Ci8, Q72, Rc3, Wu2, Oi9, ic3, be10, v72, vu4, H24, Hn8, Uc2, zi7, xf4, Du4, $c2, xc3, Yc3, If4, ls7, Gi7, Ef3, yu5, $u4, pc3, du4, Xf, Pu3, oc4, xi11, Cc3, Hc2, Nc3, Wn8, yf3, Bc2, bi11, mi11, Uf3, Ps9, Hf, qf3, _f4, ii10, Qu2, Uu4, Rf4, B7, is8, ws8, y7, oi10, S7, ru4, bc4, H72, Hu3, xu3, Sc4, u7, Ei10, Pf4, yi11, Jn9, L72, ps7, Y7, Tf3, gc3, Xu3, W24, Je11, F72, J72, Jc2, jf3, He10, Ke12, n7, cs7, Vu4, p7, ds7, ge11, iu3, As8, Bf3, cc4, sc3, Un8, cu3, Mi7, Ru4, hu4, Ts6, q72, fs36, fc3, Qn8, Vi8, uc3, qu4, Xc2, A72, ns8, ni10, lu4, Xn9, Df4, Pc3, Fc2, ac3, kf4, M72, Vn6, ui11, wi10, uu4, c7, gi11, G72, zn9, Bi8, ju4, Sf3, i7, _72, Gn9, Qf2, Su3, zu3, zf3, ei10, Cu3, vf4, nf3, Zf2, tn9, h7, Ju5, li10, Zn10, qn8, Bu3, Di8, ri9, ku3, Zi7, Zc2, Yu2, C72, gu4, Jf2, cf3, s7, Tu5, df3, K72, Bn7, Ti11, R72, t23, Ai9, uf3, ts8, hs8, Iu4, wf3, k72, Xe11, gf3, _s7, af3, Yi8, hc3, yc3, Wi7, Qc2, vs9, Is8, Fi8, bf3, os7, rc3, vn7, as8, Gu3, Dc2, Kf2, nc4, us8, pi11, ci10, Yf3, We12, Lc2, ae10, N7, rf3, $i9, mu3, Of3, b7, Wc2, au3, t7, Kc2], Oa0 = [0, ss9, fi11, _c3, Ni9, di11, Cs6, mf3, si9, sf3, z72, eu4, zc3, _u4, e72, Ve9, bs8, Mc2, W72, hf3, Ff3, Es8, Xi8, Z72, Ii8, lc3, I72, Ec4, O7, of3, Fu4, tu3, Ku4, jc2, hi11, m7, pf3, Ic3, Vf3, gs7, wc3, ys8, St12, V72, TM, Mf4, $f3, lf3, Ji6, ti10, l7, f7, Ac3, Lf3, vi11, Hi9, rs8, Vc3, U72, Au3, fu4, Kn10, Ou5, bu4, ai10, Ui7, Si11, ji6, es8, Af3, pu2, Ki8, qi7, vD, X72, Lu4, Zu2, ms8, Wf3, o7, Ge11, r7, Qi8, x72, Gf3, dc3, D7, qc3, G12, ff3, $n8, Oc3, E7, Nf3, Tc4, g7, kc3, su3, P7, tf3, Gc2, Yn7, Mu4, a7, Eu5, vc4, j72, _i9, T7, $24, Pi8, ou3, d7, w72, Ri8, wu3, ki10, Ci8, Q72, Rc3, Wu2, Oi9, ic3, be10, v72, vu4, H24, Hn8, Uc2, zi7, xf4, Du4, $c2, xc3, Yc3, If4, ls7, Gi7, Ef3, yu5, $u4, pc3, du4, Xf, Pu3, oc4, xi11, Cc3, Hc2, Nc3, Wn8, yf3, Bc2, bi11, mi11, Uf3, Ps9, Hf, qf3, _f4, ii10, Qu2, Uu4, Rf4, B7, is8, ws8, y7, oi10, S7, ru4, bc4, H72, Hu3, xu3, Sc4, u7, Ei10, Pf4, yi11, Jn9, L72, ps7, Y7, Tf3, gc3, Xu3, W24, Je11, F72, J72, Jc2, jf3, He10, Ke12, n7, cs7, Vu4, p7, ds7, ge11, iu3, As8, Bf3, cc4, sc3, Un8, cu3, Mi7, Ru4, hu4, Ts6, q72, fs36, fc3, Qn8, Vi8, uc3, qu4, Xc2, A72, ns8, ni10, lu4, Xn9, Df4, Pc3, Fc2, ac3, kf4, M72, Vn6, ui11, wi10, uu4, c7, gi11, G72, zn9, qF, Bi8, ju4, Sf3, i7, _72, Gn9, Qf2, Su3, zu3, zf3, ei10, Cu3, vf4, nf3, Zf2, aR, tn9, h7, Ju5, li10, Zn10, CR, qn8, Bu3, Di8, ri9, ku3, Zi7, Zc2, Yu2, C72, gu4, Jf2, cf3, s7, Tu5, df3, K72, Bn7, Ti11, R72, t23, Ai9, uf3, ts8, hs8, Iu4, wf3, k72, Xe11, gf3, _s7, af3, Yi8, hc3, yc3, Wi7, Qc2, vs9, Is8, Fi8, bf3, os7, rc3, vn7, as8, Gu3, Dc2, Kf2, nc4, us8, pi11, ci10, Yf3, We12, Lc2, ae10, N7, rf3, $i9, mu3, Of3, b7, Wc2, au3, t7, Kc2], ja0 = [0, H24, of3, $i9, V72, $24, qf3, h7, pc3, bc4, Rf4, Gi7, Du4, Fi8, hu4, F72, d7, Qu2, Uf3, J72, ui11, cf3, X72, Zn10, Zf2, _u4, vu4, $n8, ac3, Ps9, oc4, _f4, Sf3, Es8, Uc2, jc2, Q72, He10, t7, Wi7, s7, Qc2, Bi8, ic3, rs8, Ve9, Jc2, Uu4, fu4, k72, ss9, ii10, lu4, T7, Je11, ci10, w72, Of3, qu4, fc3, Ku4, pi11, q72, a7, If4, _72, fs36, Ge11, Lf3, Pi8, Zu2, M72, pu2, xf4, af3, P7, $f3, au3, Fc2, Zi7, m7, Bn7, jf3, Fu4, Y7, bi11, $c2, Ai9, Eu5, ge11, es8, x72, rc3, Vu4, bs8, Wn8, e72, o7, Kf2, Pc3, Vn6, r7, Xi8, Qf2, kf4, Lu4, sf3, Xn9, Vc3, zu3, ni10, Oi9, Hu3, $u4, si9, n7, Ii8, Zc2, Ui7, ys8, Gf3, Kc2, Xu3, Mu4, Ei10, Cc3, wu3, Kn10, hs8, df3, W72, Ki8, uc3, hf3, Nf3, uu4, du4, E7, ps7, L72, mf3, gu4, Au3, Cu3, Yc3, su3, os7, N7, oi10, G12, g7, Hn8, Bc2, ai10, pf3, ku3, xu3, Tf3, Jf2, ms8, Tc4, Dc2, z72, dc3, Bu3, zf3, f7, D7, Z72, Xf, I72, ds7, fi11, Mi7, Di8, Rc3, zn9, Yu2, xi11, eu4, vf4, ae10, lc3, is8, cc4, Ou5, Df4, as8, Vi8, Gn9, W24, Ri8, U72, cs7, St12, Ni9, qc3, gs7, tu3, i7, vi11, Ru4, di11, Qi8, S7, kc3, _c3, ti10, cu3, gf3, nc4, As8, Iu4, wf3, Qn8, vs9, Ci8, hi11, Hi9, ws8, bf3, v72, b7, Mf4, mi11, C72, Nc3, ts8, p7, t23, Un8, Mc2, yf3, Is8, A72, Yn7, Yi8, Ac3, Yf3, Xc2, Oc3, Ts6, O7, Hc2, Bf3, wc3, Ec4, bu4, ju4, j72, be10, nf3, Ju5, qn8, hc3, Ic3, wi10, Gc2, gi11, lf3, yu5, zi7, ou3, xc3, us8, Ke12, Xe11, rf3, ff3, ri9, Wc2, ns8, K72, mu3, Vf3, Sc4, _s7, Jn9, gc3, qi7, Hf, ru4, uf3, H72, yc3, Ef3, ji6, y7, sc3, Wf3, B7, ei10, Si11, yi11, Wu2, Ff3, Gu3, Su3, Pf4, c7, li10, l7, Ji6, _i9, Cs6, We12, iu3, zc3, vn7, G72, R72, ki10, ls7, u7, Tu5, Pu3, Ti11, Lc2, tf3, vc4, tn9, Af3], Da0 = $32, Ra0 = nm3, Fa0 = bo4, Ma0 = I63, La0 = Je11, qa0 = Ve9, Ba0 = $P, Ua0 = DT, Xa0 = Bv2, Ga0 = He10, Ya0 = um3, za0 = g62, Ja0 = Tp3, Ka0 = L82, Ha0 = No3, Wa0 = cl6, Va0 = Hv, $a0 = wa4, Qa0 = Pa5, Za0 = We12, xo0 = rk, ro0 = Rm3, eo0 = Xe11, to0 = Fv2, no0 = Tk, uo0 = U82, io0 = K82, fo0 = h62, co0 = mc3, so0 = Ue10, ao0 = Ck, oo0 = Yv, vo0 = E62, lo0 = Aa3, po0 = ga2, ko0 = j63, mo0 = dh2, ho0 = W24, do0 = fl6, yo0 = Oo5, _o0 = ae10, wo0 = Pk, go0 = Q63, bo0 = k63, To0 = W63, Eo0 = H24, So0 = Ke12, Ao0 = x43, Io0 = tc3, Po0 = zb2, Co0 = JS, No0 = Io5, Oo0 = Kv, jo0 = ik, Do0 = wk, Ro0 = be10, Fo0 = H32, Mo0 = $v, Lo0 = K32, qo0 = ga2, Bo0 = H63, Uo0 = hk, Xo0 = bk, Go0 = Hk, Yo0 = Lm3, zo0 = Xv, Jo0 = J63, Ko0 = tl4, Ho0 = V32, Wo0 = O62, Vo0 = rm3, $o0 = [0, Sh2], Qo0 = rx2, Zo0 = [19, 1], xv0 = [19, 0], rv0 = [0, 0], ev0 = Ta3, tv0 = [0, 0], nv0 = [0, "a type"], uv0 = [0, 0], iv0 = [0, "a number literal type"], fv0 = [0, 0], cv0 = J63, sv0 = tl4, av0 = V32, ov0 = "You should only call render_type after making sure the next token is a renders variant", vv0 = [0, [0, 0, 0, 0, 0]], lv0 = [0, 0, 0, 0], pv0 = [0, 1], kv0 = [0, il7, 1466, 6], mv0 = [0, il7, 1469, 6], hv0 = [0, il7, 1572, 8], dv0 = [0, 1], yv0 = [0, il7, 1589, 8], _v0 = "Can not have both `static` and `proto`", wv0 = Ue10, gv0 = rw, bv0 = [0, 0], Tv0 = [0, "the end of a tuple type (no trailing comma is allowed in inexact tuple type)."], Ev0 = [0, il7, Sv2, 15], Sv0 = [0, il7, sP, 15], Av0 = ze11, Iv0 = ze11, Pv0 = Kk, Cv0 = G63, Nv0 = [0, [11, "Failure while looking up ", [2, 0, [11, ". Index: ", [4, 0, 0, 0, [11, ". Length: ", [4, 0, 0, 0, [12, 46, 0]]]]]]], "Failure while looking up %s. Index: %d. Length: %d."], Ov0 = [0, 0, 0, 0], jv0 = "Offset_utils.Offset_lookup_failed", Dv0 = m12, Rv0 = kD, Fv0 = G63, Mv0 = Kk, Lv0 = wD, qv0 = G63, Bv0 = Kk, Uv0 = vR, Xv0 = Yx, Gv0 = "normal", Yv0 = tc3, zv0 = "jsxTag", Jv0 = "jsxChild", Kv0 = "template", Hv0 = nD2, Wv0 = "context", Vv0 = tc3, $v0 = [6, 0], Qv0 = [0, 0], Zv0 = [0, 1], x30 = [0, 4], r30 = [0, 2], e30 = [0, 3], t30 = [0, 0], n30 = ze11, u30 = [0, 0, 0, 0, 0, 0], i30 = [0, 0], f30 = [0, OM], c30 = [0, 1], s30 = [0, 0], a30 = Ta3, o30 = [0, 73], v30 = [0, 84], l30 = aM, p30 = rE, k30 = "exports", m30 = K63, h30 = [0, rx2, rx2, 0], d30 = [0, AD], y30 = [0, 84], _30 = [0, "a declaration, statement or export specifiers"], w30 = [0, 1], g30 = [0, I9, 1971, 21], b30 = [0, "the keyword `as`"], T30 = [0, 29], E30 = [0, 29], S30 = [0, 0], A30 = [0, 1], I30 = [0, AD], P30 = [0, "the keyword `from`"], C30 = [0, rx2, rx2, 0], N30 = "Label", O30 = [0, OM], j30 = [0, 0, 0], D30 = [0, 38], R30 = [0, I9, 372, 22], F30 = [0, 37], M30 = [0, I9, 391, 22], L30 = [0, 0], q30 = "the token `;`", B30 = [0, 0], U30 = [0, 0], X30 = FR, G30 = [0, Sh2], Y30 = FR, z30 = [28, St12], J30 = Ta3, K30 = [0, 73], H30 = [0, rx2, 0], W30 = It10, V30 = [0, rx2, 0], $30 = [0, 73], Q30 = [0, 73], Z30 = $32, xl0 = [0, rx2, 0], rl0 = [0, 0, 0], el0 = [0, 0, 0], tl0 = [0, [0, 8]], nl0 = [0, [0, 7]], ul0 = [0, [0, 6]], il0 = [0, [0, 10]], fl0 = [0, [0, 9]], cl0 = [0, [0, 11]], sl0 = [0, [0, 5]], al0 = [0, [0, 4]], ol0 = [0, [0, 2]], vl0 = [0, [0, 3]], ll0 = [0, [0, 1]], pl0 = [0, [0, 0]], kl0 = [0, [0, 12]], ml0 = [0, [0, 13]], hl0 = [0, [0, 14]], dl0 = [0, 0], yl0 = [0, 1], _l0 = [0, 0], wl0 = [0, 2], gl0 = [0, 3], bl0 = [0, 7], Tl0 = [0, 6], El0 = [0, 4], Sl0 = [0, 5], Al0 = [0, 1], Il0 = [0, 0], Pl0 = [0, 1], Cl0 = [0, 0], Nl0 = fl6, Ol0 = [0, "either a call or access of `super`"], jl0 = fl6, Dl0 = W24, Rl0 = w63, Fl0 = w63, Ml0 = [0, 2], Ll0 = [0, 0], ql0 = [0, 1], Bl0 = Yv, Ul0 = [0, "the identifier `target`"], Xl0 = [0, 0], Gl0 = [0, 1], Yl0 = [0, 0], zl0 = [0, 0], Jl0 = [0, 2], Kl0 = [0, 2], Hl0 = [0, 1], Wl0 = [0, 73], Vl0 = P63, $l0 = uL, Ql0 = gb2, Zl0 = gb2, x60 = pD2, r60 = [0, 0], e60 = [0, 1], t60 = [0, 0], n60 = se11, u60 = se11, i60 = [0, "a regular expression"], f60 = rx2, c60 = rx2, s60 = rx2, a60 = [0, 81], o60 = [0, "src/parser/expression_parser.ml", 1550, 17], v60 = [0, "a template literal part"], l60 = [0, [0, rx2, rx2], 1], p60 = Pv2, k60 = [0, 6], m60 = [0, [0, 17, [0, 2]]], h60 = [0, [0, 18, [0, 3]]], d60 = [0, [0, 19, [0, 4]]], y60 = [0, [0, 0, [0, 5]]], _60 = [0, [0, 1, [0, 5]]], w60 = [0, [0, 2, [0, 5]]], g60 = [0, [0, 3, [0, 5]]], b60 = [0, [0, 5, [0, 6]]], T60 = [0, [0, 7, [0, 6]]], E60 = [0, [0, 4, [0, 6]]], S60 = [0, [0, 6, [0, 6]]], A60 = [0, [0, 8, [0, 7]]], I60 = [0, [0, 9, [0, 7]]], P60 = [0, [0, 10, [0, 7]]], C60 = [0, [0, 11, [0, 8]]], N60 = [0, [0, 12, [0, 8]]], O60 = [0, [0, 15, [0, 9]]], j60 = [0, [0, 13, [0, 9]]], D60 = [0, [0, 14, [1, 10]]], R60 = [0, [0, 16, [0, 9]]], F60 = [0, [0, 21, [0, 6]]], M60 = [0, [0, 20, [0, 6]]], L60 = [23, Dw], q60 = [13, "JSX fragment"], B60 = Iv2, U60 = ln8, X60 = [0, sn9], G60 = [1, sn9], Y60 = [0, rx2, rx2, 0], z60 = [0, Sh2], J60 = rx2, K60 = [0, "a numeric or string literal"], H60 = [0, rx2, '""', 0], W60 = [0, 0], V60 = [0, "a number literal"], $60 = [0, [0, 0, V24, 0]], Q60 = [0, 84], Z60 = [21, dM], x40 = [21, R63], r40 = [0, 0, 0], e40 = h62, t40 = [0, rx2, 0], n40 = "unexpected PrivateName in Property, expected a PrivateField", u40 = [0, 0, 0], i40 = Sa2, f40 = "Must be one of the above", c40 = [0, 1], s40 = [0, 1], a40 = [0, 1], o40 = Sa2, v40 = Sa2, l40 = p_2, p40 = "Internal Error: private name found in object props", k40 = [0, 0, 0, 0], m40 = [0, cF2], h40 = [19, [0, 0]], d40 = [0, cF2], y40 = ug2, _40 = "Nooo: ", w40 = Fv2, g40 = "Parser error: No such thing as an expression pattern!", b40 = [0, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], T40 = [0, "src/parser/parser_flow.ml", fk, 28], E40 = [0, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], S40 = kD, A40 = Yx, I40 = $D, P40 = eR, C40 = eR, N40 = $D, O40 = tc3, j40 = sD2, D40 = w12, R40 = m12, F40 = "InterpreterDirective", M40 = "interpreter", L40 = "Program", q40 = w12, B40 = "RecordBody", U40 = m12, X40 = Y12, G40 = en10, Y40 = "RecordStaticProperty", z40 = "defaultValue", J40 = Y12, K40 = en10, H40 = "RecordProperty", W40 = S62, V40 = "BreakStatement", $40 = S62, Q40 = "ContinueStatement", Z40 = "DebuggerStatement", xp0 = Wv, rp0 = "DeclareExportAllDeclaration", ep0 = Wv, tp0 = l_2, np0 = IE, up0 = Fv2, ip0 = "DeclareExportDeclaration", fp0 = w12, cp0 = Yr10, sp0 = "DeclareModule", ap0 = Y12, op0 = "DeclareModuleExports", vp0 = w12, lp0 = Yr10, pp0 = NL, kp0 = "DeclareNamespace", mp0 = Z32, hp0 = w12, dp0 = "DoWhileStatement", yp0 = "EmptyStatement", _p0 = cS, wp0 = IE, gp0 = "ExportDefaultDeclaration", bp0 = cS, Tp0 = cA, Ep0 = Wv, Sp0 = "ExportAllDeclaration", Ap0 = cS, Ip0 = Wv, Pp0 = l_2, Cp0 = IE, Np0 = "ExportNamedDeclaration", Op0 = "directive", jp0 = t23, Dp0 = "ExpressionStatement", Rp0 = w12, Fp0 = "update", Mp0 = Z32, Lp0 = ks8, qp0 = "ForStatement", Bp0 = "each", Up0 = w12, Xp0 = fn9, Gp0 = Ea5, Yp0 = "ForInStatement", zp0 = Kv, Jp0 = w12, Kp0 = fn9, Hp0 = Ea5, Wp0 = "ForOfStatement", Vp0 = lR, $p0 = rP, Qp0 = Z32, Zp0 = "IfStatement", xk0 = tc3, rk0 = Aa3, ek0 = m12, tk0 = XD, nk0 = Wv, uk0 = l_2, ik0 = "ImportDeclaration", fk0 = w12, ck0 = S62, sk0 = "LabeledStatement", ak0 = J92, ok0 = $12, vk0 = "MatchStatement", lk0 = "RecordImplements", pk0 = w12, kk0 = Oo5, mk0 = B24, hk0 = Yr10, dk0 = "RecordDeclaration", yk0 = $12, _k0 = "ReturnStatement", wk0 = J92, gk0 = "discriminant", bk0 = "SwitchStatement", Tk0 = $12, Ek0 = "ThrowStatement", Sk0 = "finalizer", Ak0 = "handler", Ik0 = vn7, Pk0 = "TryStatement", Ck0 = w12, Nk0 = Z32, Ok0 = "WhileStatement", jk0 = w12, Dk0 = Dp3, Rk0 = "WithStatement", Fk0 = x9, Mk0 = $12, Lk0 = NA, qk0 = x9, Bk0 = $12, Uk0 = NA, Xk0 = KT, Gk0 = "ArrayExpression", Yk0 = B24, zk0 = gh2, Jk0 = t23, Kk0 = Ge11, Hk0 = Ey2, Wk0 = Io5, Vk0 = w12, $k0 = on8, Qk0 = Yr10, Zk0 = "ArrowFunctionExpression", x80 = t23, r80 = "AsConstExpression", e80 = Y12, t80 = t23, n80 = "AsExpression", u80 = p_2, i80 = fn9, f80 = Ea5, c80 = Gv, s80 = "AssignmentExpression", a80 = fn9, o80 = Ea5, v80 = Gv, l80 = "BinaryExpression", p80 = "CallExpression", k80 = lR, m80 = rP, h80 = Z32, d80 = "ConditionalExpression", y80 = Wv, _80 = "ImportExpression", w80 = LF, g80 = CM, b80 = Dw, T80 = fn9, E80 = Ea5, S80 = Gv, A80 = "LogicalExpression", I80 = J92, P80 = $12, C80 = "MatchExpression", N80 = "MemberExpression", O80 = Tm3, j80 = w63, D80 = "MetaProperty", R80 = Qb2, F80 = h8, M80 = fR, L80 = "NewExpression", q80 = A63, B80 = "ObjectExpression", U80 = ft9, X80 = "OptionalCallExpression", G80 = ft9, Y80 = "OptionalMemberExpression", z80 = rM, J80 = "SequenceExpression", K80 = "Super", H80 = "ThisExpression", W80 = Y12, V80 = t23, $80 = "TypeCastExpression", Q80 = Y12, Z80 = t23, xm0 = "SatisfiesExpression", rm0 = x9, em0 = $12, tm0 = NA, nm0 = ze11, um0 = $72, im0 = SD, fm0 = VL, cm0 = Aa3, sm0 = ga2, am0 = E62, om0 = "matched above", vm0 = $12, lm0 = XR, pm0 = Gv, km0 = "UnaryExpression", mm0 = $12, hm0 = "AwaitExpression", dm0 = kR, ym0 = ZM, _m0 = XR, wm0 = $12, gm0 = Gv, bm0 = "UpdateExpression", Tm0 = "delegate", Em0 = $12, Sm0 = "YieldExpression", Am0 = "MatchExpressionCase", Im0 = "guard", Pm0 = w12, Cm0 = ge11, Nm0 = "MatchStatementCase", Om0 = "literal", jm0 = "MatchLiteralPattern", Dm0 = "MatchWildcardPattern", Rm0 = ze11, Fm0 = $72, Mm0 = $12, Lm0 = Gv, qm0 = "MatchUnaryPattern", Bm0 = "MatchObjectPattern", Um0 = "MatchInstanceObjectPattern", Xm0 = DF, Gm0 = _a6, Ym0 = "MatchInstancePattern", zm0 = "patterns", Jm0 = "MatchOrPattern", Km0 = Ih2, Hm0 = ge11, Wm0 = "MatchAsPattern", Vm0 = Yr10, $m0 = "MatchIdentifierPattern", Qm0 = Tm3, Zm0 = "base", xh0 = "MatchMemberPattern", rh0 = ba3, eh0 = Yr10, th0 = "MatchBindingPattern", nh0 = p62, uh0 = KT, ih0 = "MatchArrayPattern", fh0 = T63, ch0 = ge11, sh0 = en10, ah0 = VR, oh0 = T63, vh0 = ge11, lh0 = en10, ph0 = VR, kh0 = p62, mh0 = A63, hh0 = $12, dh0 = "MatchRestPattern", yh0 = "Unexpected FunctionDeclaration with BodyExpression", _h0 = "HookDeclaration", wh0 = t23, gh0 = Ge11, bh0 = Ey2, Th0 = Io5, Eh0 = "FunctionDeclaration", Sh0 = B24, Ah0 = gh2, Ih0 = w12, Ph0 = on8, Ch0 = Yr10, Nh0 = "Unexpected FunctionExpression with BodyExpression", Oh0 = B24, jh0 = gh2, Dh0 = t23, Rh0 = Ge11, Fh0 = Ey2, Mh0 = Io5, Lh0 = w12, qh0 = on8, Bh0 = Yr10, Uh0 = "FunctionExpression", Xh0 = ft9, Gh0 = Y12, Yh0 = Ye10, zh0 = US, Jh0 = ft9, Kh0 = Y12, Hh0 = Ye10, Wh0 = "PrivateIdentifier", Vh0 = ft9, $h0 = Y12, Qh0 = Ye10, Zh0 = US, xd0 = rP, rd0 = Z32, ed0 = "SwitchCase", td0 = w12, nd0 = "param", ud0 = "CatchClause", id0 = w12, fd0 = "BlockStatement", cd0 = ba3, sd0 = Yr10, ad0 = "DeclareVariable", od0 = "DeclareHook", vd0 = Ge11, ld0 = "DeclareFunction", pd0 = Yr10, kd0 = lM, md0 = Oo5, hd0 = mc3, dd0 = w12, yd0 = B24, _d0 = Yr10, wd0 = "DeclareClass", gd0 = B24, bd0 = f_2, Td0 = on8, Ed0 = p62, Sd0 = on8, Ad0 = Yr10, Id0 = "DeclareComponent", Pd0 = B24, Cd0 = f_2, Nd0 = p62, Od0 = on8, jd0 = "ComponentTypeAnnotation", Dd0 = ft9, Rd0 = Y12, Fd0 = Ye10, Md0 = "ComponentTypeParameter", Ld0 = w12, qd0 = Yr10, Bd0 = "DeclareEnum", Ud0 = mc3, Xd0 = w12, Gd0 = B24, Yd0 = Yr10, zd0 = "DeclareInterface", Jd0 = m12, Kd0 = tc3, Hd0 = cA, Wd0 = "ExportNamespaceSpecifier", Vd0 = fn9, $d0 = B24, Qd0 = Yr10, Zd0 = "DeclareTypeAlias", x50 = fn9, r50 = B24, e50 = Yr10, t50 = "TypeAlias", n50 = "DeclareOpaqueType", u50 = "OpaqueType", i50 = "supertype", f50 = "upperBound", c50 = "lowerBound", s50 = "impltype", a50 = B24, o50 = Yr10, v50 = "ClassDeclaration", l50 = "ClassExpression", p50 = g8, k50 = Oo5, m50 = "superTypeParameters", h50 = "superClass", d50 = B24, y50 = w12, _50 = Yr10, w50 = t23, g50 = "Decorator", b50 = B24, T50 = Yr10, E50 = "ClassImplements", S50 = w12, A50 = "ClassBody", I50 = w12, P50 = "StaticBlock", C50 = _a6, N50 = V63, O50 = Nv2, j50 = nl5, D50 = g8, R50 = W32, F50 = Ue10, M50 = ba3, L50 = m12, q50 = en10, B50 = "MethodDefinition", U50 = x43, X50 = g8, G50 = $24, Y50 = Ue10, z50 = W32, J50 = Y12, K50 = m12, H50 = en10, W50 = jL, V50 = "Internal Error: Private name found in class prop", $50 = x43, Q50 = g8, Z50 = $24, xy0 = Ue10, ry0 = W32, ey0 = Y12, ty0 = m12, ny0 = en10, uy0 = jL, iy0 = B24, fy0 = f_2, cy0 = on8, sy0 = Yr10, ay0 = w12, oy0 = "ComponentDeclaration", vy0 = $12, ly0 = OE, py0 = fn9, ky0 = Ea5, my0 = jm3, hy0 = T63, dy0 = X63, yy0 = Ye10, _y0 = "ComponentParameter", wy0 = ks8, gy0 = Yr10, by0 = "EnumBigIntMember", Ty0 = Yr10, Ey0 = LR, Sy0 = ks8, Ay0 = Yr10, Iy0 = "EnumStringMember", Py0 = Yr10, Cy0 = LR, Ny0 = ks8, Oy0 = Yr10, jy0 = "EnumNumberMember", Dy0 = ks8, Ry0 = Yr10, Fy0 = "EnumBooleanMember", My0 = B63, Ly0 = Am3, qy0 = y62, By0 = "EnumBooleanBody", Uy0 = B63, Xy0 = Am3, Gy0 = y62, Yy0 = "EnumNumberBody", zy0 = B63, Jy0 = Am3, Ky0 = y62, Hy0 = "EnumStringBody", Wy0 = B63, Vy0 = y62, $y0 = "EnumSymbolBody", Qy0 = B63, Zy0 = Am3, x90 = y62, r90 = "EnumBigIntBody", e90 = w12, t90 = Yr10, n90 = "EnumDeclaration", u90 = mc3, i90 = w12, f90 = B24, c90 = Yr10, s90 = "InterfaceDeclaration", a90 = B24, o90 = Yr10, v90 = "InterfaceExtends", l90 = Y12, p90 = A63, k90 = "ObjectPattern", m90 = Y12, h90 = KT, d90 = "ArrayPattern", y90 = fn9, _90 = Ea5, w90 = jm3, g90 = Y12, b90 = Ye10, T90 = US, E90 = $12, S90 = OE, A90 = $12, I90 = OE, P90 = fn9, C90 = Ea5, N90 = jm3, O90 = ks8, j90 = ks8, D90 = Nv2, R90 = nl5, F90 = VD, M90 = W32, L90 = T63, q90 = V63, B90 = ba3, U90 = m12, X90 = en10, G90 = mF, Y90 = $12, z90 = iR, J90 = fn9, K90 = Ea5, H90 = jm3, W90 = W32, V90 = T63, $90 = V63, Q90 = ba3, Z90 = m12, x_0 = en10, r_0 = mF, e_0 = $12, t_0 = iR, n_0 = At12, u_0 = m12, i_0 = J32, f_0 = rx2, c_0 = At12, s_0 = $v, a_0 = m12, o_0 = J32, v_0 = At12, l_0 = m12, p_0 = J32, k_0 = Pa5, m_0 = wa4, h_0 = At12, d_0 = m12, y_0 = J32, __0 = "flags", w_0 = ge11, g_0 = "regex", b_0 = At12, T_0 = m12, E_0 = J32, S_0 = At12, A_0 = m12, I_0 = J32, P_0 = rM, C_0 = "quasis", N_0 = "TemplateLiteral", O_0 = "cooked", j_0 = At12, D_0 = "tail", R_0 = m12, F_0 = "TemplateElement", M_0 = "quasi", L_0 = "tag", q_0 = "TaggedTemplateExpression", B_0 = ba3, U_0 = "declarations", X_0 = "VariableDeclaration", G_0 = ks8, Y_0 = Yr10, z_0 = "VariableDeclarator", J_0 = "plus", K_0 = nM, H_0 = Xv, W_0 = bo4, V_0 = ng2, $_0 = "in-out", Q_0 = ba3, Z_0 = "Variance", xw0 = "AnyTypeAnnotation", rw0 = "MixedTypeAnnotation", ew0 = "EmptyTypeAnnotation", tw0 = "VoidTypeAnnotation", nw0 = "NullLiteralTypeAnnotation", uw0 = "SymbolTypeAnnotation", iw0 = "NumberTypeAnnotation", fw0 = "BigIntTypeAnnotation", cw0 = "StringTypeAnnotation", sw0 = "BooleanTypeAnnotation", aw0 = Y12, ow0 = "NullableTypeAnnotation", vw0 = "UnknownTypeAnnotation", lw0 = "NeverTypeAnnotation", pw0 = "UndefinedTypeAnnotation", kw0 = ba3, mw0 = Y12, hw0 = "parameterName", dw0 = "TypePredicate", yw0 = "HookTypeAnnotation", _w0 = "FunctionTypeAnnotation", ww0 = Bv2, gw0 = B24, bw0 = p62, Tw0 = gh2, Ew0 = on8, Sw0 = ft9, Aw0 = Y12, Iw0 = Ye10, Pw0 = fM, Cw0 = ft9, Nw0 = Y12, Ow0 = Ye10, jw0 = fM, Dw0 = [0, 0, 0, 0, 0], Rw0 = "internalSlots", Fw0 = "callProperties", Mw0 = "indexers", Lw0 = A63, qw0 = "exact", Bw0 = tL, Uw0 = "ObjectTypeAnnotation", Xw0 = VD, Gw0 = "There should not be computed object type property keys", Yw0 = ks8, zw0 = Nv2, Jw0 = nl5, Kw0 = ba3, Hw0 = $24, Ww0 = rw, Vw0 = Ue10, $w0 = ft9, Qw0 = V63, Zw0 = m12, xg0 = en10, rg0 = "ObjectTypeProperty", eg0 = $12, tg0 = "ObjectTypeSpreadProperty", ng0 = $24, ug0 = Ue10, ig0 = m12, fg0 = en10, cg0 = Yr10, sg0 = "ObjectTypeIndexer", ag0 = Ue10, og0 = m12, vg0 = "ObjectTypeCallProperty", lg0 = ft9, pg0 = $24, kg0 = "sourceType", mg0 = "propType", hg0 = "keyTparam", dg0 = "ObjectTypeMappedTypeProperty", yg0 = m12, _g0 = V63, wg0 = Ue10, gg0 = ft9, bg0 = Yr10, Tg0 = "ObjectTypeInternalSlot", Eg0 = w12, Sg0 = mc3, Ag0 = "InterfaceTypeAnnotation", Ig0 = QM, Pg0 = "ArrayTypeAnnotation", Cg0 = "falseType", Ng0 = "trueType", Og0 = "extendsType", jg0 = "checkType", Dg0 = "ConditionalTypeAnnotation", Rg0 = "typeParameter", Fg0 = "InferTypeAnnotation", Mg0 = Yr10, Lg0 = UF, qg0 = "QualifiedTypeIdentifier", Bg0 = B24, Ug0 = Yr10, Xg0 = "GenericTypeAnnotation", Gg0 = "indexType", Yg0 = "objectType", zg0 = "IndexedAccessType", Jg0 = ft9, Kg0 = "OptionalIndexedAccessType", Hg0 = w_2, Wg0 = "UnionTypeAnnotation", Vg0 = w_2, $g0 = "IntersectionTypeAnnotation", Qg0 = h8, Zg0 = $12, xb0 = "TypeofTypeAnnotation", rb0 = Yr10, eb0 = UF, tb0 = "QualifiedTypeofIdentifier", nb0 = $12, ub0 = "KeyofTypeAnnotation", ib0 = el5, fb0 = jF, cb0 = uF2, sb0 = Y12, ab0 = Gv, ob0 = "TypeOperator", vb0 = Xv, lb0 = tL, pb0 = "elementTypes", kb0 = "TupleTypeAnnotation", mb0 = ft9, hb0 = $24, db0 = QM, yb0 = S62, _b0 = "TupleTypeLabeledElement", wb0 = Y12, gb0 = S62, bb0 = "TupleTypeSpreadElement", Tb0 = At12, Eb0 = m12, Sb0 = "StringLiteralTypeAnnotation", Ab0 = At12, Ib0 = m12, Pb0 = "NumberLiteralTypeAnnotation", Cb0 = At12, Nb0 = m12, Ob0 = "BigIntLiteralTypeAnnotation", jb0 = Pa5, Db0 = wa4, Rb0 = At12, Fb0 = m12, Mb0 = "BooleanLiteralTypeAnnotation", Lb0 = "ExistsTypeAnnotation", qb0 = Y12, Bb0 = vF, Ub0 = Y12, Xb0 = vF, Gb0 = on8, Yb0 = "TypeParameterDeclaration", zb0 = "usesExtendsBound", Jb0 = Fv2, Kb0 = $24, Hb0 = No3, Wb0 = "bound", Vb0 = Ye10, $b0 = "TypeParameter", Qb0 = on8, Zb0 = mM, xT0 = on8, rT0 = mM, eT0 = Pv2, tT0 = OL, nT0 = "closingElement", uT0 = "openingElement", iT0 = "JSXElement", fT0 = "closingFragment", cT0 = OL, sT0 = "openingFragment", aT0 = "JSXFragment", oT0 = h8, vT0 = "selfClosing", lT0 = "attributes", pT0 = Ye10, kT0 = "JSXOpeningElement", mT0 = "JSXOpeningFragment", hT0 = Ye10, dT0 = "JSXClosingElement", yT0 = "JSXClosingFragment", _T0 = m12, wT0 = Ye10, gT0 = "JSXAttribute", bT0 = $12, TT0 = "JSXSpreadAttribute", ET0 = "JSXEmptyExpression", ST0 = t23, AT0 = "JSXExpressionContainer", IT0 = t23, PT0 = "JSXSpreadChild", CT0 = At12, NT0 = m12, OT0 = "JSXText", jT0 = Tm3, DT0 = Dp3, RT0 = "JSXMemberExpression", FT0 = Ye10, MT0 = rE, LT0 = "JSXNamespacedName", qT0 = Ye10, BT0 = "JSXIdentifier", UT0 = cA, XT0 = X63, GT0 = "ExportSpecifier", YT0 = X63, zT0 = "ImportDefaultSpecifier", JT0 = X63, KT0 = "ImportNamespaceSpecifier", HT0 = XD, WT0 = X63, VT0 = "imported", $T0 = "ImportSpecifier", QT0 = "Line", ZT0 = "Block", xE0 = m12, rE0 = m12, eE0 = "DeclaredPredicate", tE0 = "InferredPredicate", nE0 = Qb2, uE0 = h8, iE0 = fR, fE0 = W32, cE0 = Tm3, sE0 = Dp3, aE0 = "message", oE0 = Yx, vE0 = wD, lE0 = vR, pE0 = Wv, kE0 = G63, mE0 = Kk, hE0 = [0, ss9, fi11, _c3, Ni9, di11, Cs6, mf3, si9, sf3, z72, eu4, zc3, _u4, e72, Ve9, bs8, Mc2, W72, hf3, Ff3, Es8, Xi8, Z72, Ii8, lc3, I72, Ec4, O7, of3, Fu4, tu3, Ku4, jc2, hi11, m7, pf3, Ic3, Vf3, gs7, wc3, ys8, St12, V72, Mf4, $f3, lf3, Ji6, ti10, l7, f7, Ac3, Lf3, vi11, Hi9, rs8, Vc3, U72, Au3, fu4, Kn10, Ou5, bu4, ai10, Ui7, Si11, ji6, es8, Af3, pu2, Ki8, qi7, X72, Lu4, Zu2, ms8, Wf3, o7, Ge11, r7, Qi8, x72, Gf3, dc3, D7, qc3, G12, ff3, $n8, Oc3, E7, Nf3, Tc4, g7, kc3, su3, P7, tf3, Gc2, Yn7, Mu4, a7, Eu5, vc4, j72, _i9, T7, $24, Pi8, ou3, d7, w72, Ri8, wu3, ki10, Ci8, Q72, Rc3, Wu2, Oi9, ic3, be10, v72, vu4, H24, Hn8, Uc2, zi7, xf4, Du4, $c2, xc3, Yc3, If4, ls7, Gi7, Ef3, yu5, $u4, pc3, du4, Xf, Pu3, oc4, xi11, Cc3, Hc2, Nc3, Wn8, yf3, Bc2, bi11, mi11, Uf3, Ps9, Hf, qf3, _f4, ii10, Qu2, Uu4, Rf4, B7, is8, ws8, y7, oi10, S7, ru4, bc4, H72, Hu3, xu3, Sc4, u7, Ei10, Pf4, yi11, Jn9, L72, ps7, Y7, Tf3, gc3, Xu3, W24, Je11, F72, J72, Jc2, jf3, He10, Ke12, n7, cs7, Vu4, p7, ds7, ge11, iu3, As8, Bf3, cc4, sc3, Un8, cu3, Mi7, Ru4, hu4, Ts6, q72, fs36, fc3, Qn8, Vi8, uc3, qu4, Xc2, A72, ns8, ni10, lu4, Xn9, Df4, Pc3, Fc2, ac3, kf4, M72, Vn6, ui11, wi10, uu4, c7, gi11, G72, zn9, Bi8, ju4, Sf3, i7, _72, Gn9, Qf2, Su3, zu3, zf3, ei10, Cu3, vf4, nf3, Zf2, tn9, h7, Ju5, li10, Zn10, qn8, Bu3, Di8, ri9, ku3, Zi7, Zc2, Yu2, C72, gu4, Jf2, cf3, s7, Tu5, df3, K72, Bn7, Ti11, R72, t23, Ai9, uf3, ts8, hs8, Iu4, wf3, k72, Xe11, gf3, _s7, af3, Yi8, hc3, yc3, Wi7, Qc2, vs9, Is8, Fi8, bf3, os7, rc3, vn7, as8, Gu3, Dc2, Kf2, nc4, us8, pi11, ci10, Yf3, We12, Lc2, ae10, N7, rf3, $i9, mu3, Of3, b7, Wc2, au3, t7, Kc2], dE0 = [0, H24, of3, $i9, V72, $24, qf3, h7, pc3, bc4, Rf4, Gi7, Du4, Fi8, hu4, F72, d7, Qu2, Uf3, J72, ui11, cf3, X72, Zn10, Zf2, _u4, vu4, $n8, ac3, Ps9, oc4, _f4, Sf3, Es8, Uc2, jc2, Q72, He10, t7, Wi7, s7, Qc2, Bi8, ic3, rs8, Ve9, Jc2, Uu4, fu4, k72, ss9, ii10, lu4, T7, Je11, ci10, w72, Of3, qu4, fc3, Ku4, pi11, q72, a7, If4, _72, fs36, Ge11, Lf3, Pi8, Zu2, M72, pu2, xf4, af3, P7, $f3, au3, Fc2, Zi7, m7, Bn7, jf3, Fu4, Y7, bi11, $c2, Ai9, Eu5, ge11, es8, x72, rc3, Vu4, bs8, Wn8, e72, o7, Kf2, Pc3, Vn6, r7, Xi8, Qf2, kf4, Lu4, sf3, Xn9, Vc3, zu3, ni10, Oi9, Hu3, $u4, si9, n7, Ii8, Zc2, Ui7, ys8, Gf3, Kc2, Xu3, Mu4, Ei10, Cc3, wu3, Kn10, hs8, df3, W72, Ki8, uc3, hf3, Nf3, uu4, du4, E7, ps7, L72, mf3, gu4, Au3, Cu3, Yc3, su3, os7, N7, oi10, G12, g7, Hn8, Bc2, ai10, pf3, ku3, xu3, Tf3, Jf2, ms8, Tc4, Dc2, z72, dc3, Bu3, zf3, f7, D7, Z72, Xf, I72, ds7, fi11, Mi7, Di8, Rc3, zn9, Yu2, xi11, eu4, vf4, ae10, lc3, is8, cc4, Ou5, Df4, as8, Vi8, Gn9, W24, Ri8, U72, cs7, St12, Ni9, qc3, gs7, tu3, i7, vi11, Ru4, di11, Qi8, S7, kc3, _c3, ti10, cu3, gf3, nc4, As8, Iu4, wf3, Qn8, vs9, Ci8, hi11, Hi9, ws8, bf3, v72, b7, Mf4, mi11, C72, Nc3, ts8, p7, t23, Un8, Mc2, yf3, Is8, A72, Yn7, Yi8, Ac3, Yf3, Xc2, Oc3, Ts6, O7, Hc2, Bf3, wc3, Ec4, bu4, ju4, j72, be10, nf3, Ju5, qn8, hc3, Ic3, wi10, Gc2, gi11, lf3, yu5, zi7, ou3, xc3, us8, Ke12, Xe11, rf3, ff3, ri9, Wc2, ns8, K72, mu3, Vf3, Sc4, _s7, Jn9, gc3, qi7, Hf, ru4, uf3, H72, yc3, Ef3, ji6, y7, sc3, Wf3, B7, ei10, Si11, yi11, Wu2, Ff3, Gu3, Su3, Pf4, c7, li10, l7, Ji6, _i9, Cs6, We12, iu3, zc3, vn7, G72, R72, ki10, ls7, u7, Tu5, Pu3, Ti11, Lc2, tf3, vc4, tn9, Af3], yE0 = [0, Af3, tn9, vc4, tf3, Lc2, Ti11, Pu3, Tu5, u7, ls7, ki10, R72, G72, vn7, zc3, iu3, We12, Cs6, _i9, Ji6, l7, li10, c7, Pf4, Su3, Gu3, Ff3, Wu2, yi11, Si11, ei10, B7, Wf3, sc3, y7, ji6, Ef3, yc3, H72, uf3, ru4, Hf, qi7, gc3, Jn9, _s7, Sc4, Vf3, mu3, K72, ns8, Wc2, ri9, ff3, rf3, Xe11, Ke12, us8, xc3, ou3, zi7, yu5, lf3, gi11, Gc2, wi10, Ic3, hc3, qn8, Ju5, nf3, be10, j72, ju4, bu4, Ec4, wc3, Bf3, Hc2, O7, Ts6, Oc3, Xc2, Yf3, Ac3, Yi8, Yn7, A72, Is8, yf3, Mc2, Un8, t23, p7, ts8, Nc3, C72, mi11, Mf4, b7, v72, bf3, ws8, Hi9, hi11, Ci8, vs9, Qn8, wf3, Iu4, As8, nc4, gf3, cu3, ti10, _c3, kc3, S7, Qi8, di11, Ru4, vi11, i7, tu3, gs7, qc3, Ni9, St12, cs7, U72, Ri8, W24, Gn9, Vi8, as8, Df4, Ou5, cc4, is8, lc3, ae10, vf4, eu4, xi11, Yu2, zn9, Rc3, Di8, Mi7, fi11, ds7, I72, Xf, Z72, D7, f7, zf3, Bu3, dc3, z72, Dc2, Tc4, ms8, Jf2, Tf3, xu3, ku3, pf3, ai10, Bc2, Hn8, g7, G12, oi10, N7, os7, su3, Yc3, Cu3, Au3, gu4, mf3, L72, ps7, E7, du4, uu4, Nf3, hf3, uc3, Ki8, W72, df3, hs8, Kn10, wu3, Cc3, Ei10, Mu4, Xu3, Kc2, Gf3, ys8, Ui7, Zc2, Ii8, n7, si9, $u4, Hu3, Oi9, ni10, zu3, Vc3, Xn9, sf3, Lu4, kf4, Qf2, Xi8, r7, Vn6, Pc3, Kf2, o7, e72, Wn8, bs8, Vu4, rc3, x72, es8, ge11, Eu5, Ai9, $c2, bi11, Y7, Fu4, jf3, Bn7, m7, Zi7, Fc2, au3, $f3, P7, af3, xf4, pu2, M72, Zu2, Pi8, Lf3, Ge11, fs36, _72, If4, a7, q72, pi11, Ku4, fc3, qu4, Of3, w72, ci10, Je11, T7, lu4, ii10, ss9, k72, fu4, Uu4, Jc2, Ve9, rs8, ic3, Bi8, Qc2, s7, Wi7, t7, He10, Q72, jc2, Uc2, Es8, Sf3, _f4, oc4, Ps9, ac3, $n8, vu4, _u4, Zf2, Zn10, X72, cf3, ui11, J72, Uf3, Qu2, d7, F72, hu4, Fi8, Du4, Gi7, Rf4, bc4, pc3, h7, qf3, $24, V72, $i9, of3, H24], _E0 = "Jsoo_runtime.Error.Exn", wE0 = [0, 0], gE0 = "assert_operator", bE0 = "use_strict", TE0 = w_2, EE0 = "esproposal_decorators", SE0 = "records", AE0 = "pattern_matching", IE0 = "enums", PE0 = "components", CE0 = "Internal error: ", NE0 = [t12, "CamlinternalLazy.Undefined", js9(0)];
|
|
29159
|
+
var KV = "Array.sub", HV = "first domain already spawned", WV = [0, "camlinternalOO.ml", BF, 50], VV = [0, WM, 72, 5], $V = [0, WM, 81, 2], QV = "/tmp", ZV = ln8, x$ = [0, "src/wtf8.ml", 65, 9], r$ = [0, "src/third-party/sedlex/flow_sedlexing.ml", jS, 4], e$ = "Flow_sedlexing.MalFormed", t$ = O62, n$ = H32, u$ = K32, i$ = H63, f$ = $v, c$ = [0, [12, 40, [18, [1, [0, [11, Li8, 0], Li8]], [11, "File_key.LibFile", [17, [0, Eo2, 1, 0], 0]]]], "(@[<2>File_key.LibFile@ "], s$ = [0, [3, 0, 0], C62], a$ = [0, [17, 0, [12, 41, 0]], ck], o$ = [0, [12, 40, [18, [1, [0, [11, Li8, 0], Li8]], [11, "File_key.SourceFile", [17, [0, Eo2, 1, 0], 0]]]], "(@[<2>File_key.SourceFile@ "], v$ = [0, [3, 0, 0], C62], l$ = [0, [17, 0, [12, 41, 0]], ck], p$ = [0, [12, 40, [18, [1, [0, [11, Li8, 0], Li8]], [11, "File_key.JsonFile", [17, [0, Eo2, 1, 0], 0]]]], "(@[<2>File_key.JsonFile@ "], k$ = [0, [3, 0, 0], C62], m$ = [0, [17, 0, [12, 41, 0]], ck], h$ = [0, [12, 40, [18, [1, [0, [11, Li8, 0], Li8]], [11, "File_key.ResourceFile", [17, [0, Eo2, 1, 0], 0]]]], "(@[<2>File_key.ResourceFile@ "], d$ = [0, [3, 0, 0], C62], y$ = [0, [17, 0, [12, 41, 0]], ck], _$ = [0, 1], w$ = [0, 0], g$ = [0, 1], b$ = [0, 2], T$ = [0, 2], E$ = [0, 0], S$ = [0, 1], A$ = [0, 1], I$ = [0, 1], P$ = [0, 1], C$ = [0, 2], N$ = [0, 1], O$ = [0, 1], j$ = [0, 0, 0], D$ = [0, 0, 0], R$ = [0, ss9, fi11, _c3, Ni9, di11, Cs6, mf3, si9, sf3, z72, eu4, zc3, _u4, e72, Ve9, bs8, Mc2, W72, hf3, Ff3, Es8, Xi8, Z72, Ii8, lc3, I72, Ec4, O7, of3, Fu4, tu3, Ku4, jc2, hi11, m7, pf3, Ic3, Vf3, gs7, wc3, ys8, St12, V72, Mf4, $f3, lf3, Ji6, ti10, l7, f7, Ac3, Lf3, vi11, Hi9, rs8, Vc3, U72, Au3, fu4, Kn10, Ou5, bu4, ai10, Ui7, Si11, ji6, es8, Af3, pu2, Ki8, qi7, X72, Lu4, Zu2, ms8, Wf3, o7, Ge11, r7, Qi8, x72, Gf3, dc3, D7, qc3, G12, ff3, $n8, Oc3, E7, Nf3, Tc4, g7, kc3, su3, P7, tf3, Gc2, Yn7, Mu4, a7, Eu5, vc4, j72, _i9, T7, $24, Pi8, ou3, d7, w72, Ri8, wu3, ki10, Ci8, Q72, Rc3, Wu2, Oi9, ic3, be10, v72, vu4, H24, Hn8, Uc2, zi7, xf4, Du4, $c2, xc3, Yc3, If4, ls7, Gi7, Ef3, yu5, $u4, pc3, du4, Xf, Pu3, oc4, xi11, Cc3, Hc2, Nc3, Wn8, yf3, Bc2, bi11, mi11, Uf3, Ps9, Hf, qf3, _f4, ii10, Qu2, Uu4, Rf4, B7, is8, ws8, y7, oi10, S7, ru4, bc4, H72, Hu3, xu3, Sc4, u7, Ei10, Pf4, yi11, Jn9, L72, ps7, Y7, Tf3, gc3, Xu3, W24, Je11, F72, J72, Jc2, jf3, He10, Ke12, n7, cs7, Vu4, p7, ds7, ge11, iu3, As8, Bf3, cc4, sc3, Un8, cu3, Mi7, Ru4, hu4, Ts6, q72, fs39, fc3, Qn8, Vi8, uc3, qu4, Xc2, A72, ns8, ni10, lu4, Xn9, Df4, Pc3, Fc2, ac3, kf4, M72, Vn6, ui11, wi10, uu4, c7, gi11, G72, zn9, Bi8, ju4, Sf3, i7, _72, Gn9, Qf2, Su3, zu3, zf3, ei10, Cu3, vf4, nf3, Zf2, tn9, h7, Ju5, li10, Zn10, qn8, Bu3, Di8, ri9, ku3, Zi7, Zc2, Yu2, C72, gu4, Jf2, cf3, s7, Tu5, df3, K72, Bn7, Ti11, R72, t23, Ai9, uf3, ts8, hs8, Iu4, wf3, k72, Xe11, gf3, _s7, af3, Yi8, hc3, yc3, Wi7, Qc2, vs9, Is8, Fi8, bf3, os7, rc3, vn7, as8, Gu3, Dc2, Kf2, nc4, us8, pi11, ci10, Yf3, We12, Lc2, ae10, N7, rf3, $i9, mu3, Of3, b7, Wc2, au3, t7, Kc2], F$ = [0, H24, of3, $i9, V72, $24, qf3, h7, pc3, bc4, Rf4, Gi7, Du4, Fi8, hu4, F72, d7, Qu2, Uf3, J72, ui11, cf3, X72, Zn10, Zf2, _u4, vu4, $n8, ac3, Ps9, oc4, _f4, Sf3, Es8, Uc2, jc2, Q72, He10, t7, Wi7, s7, Qc2, Bi8, ic3, rs8, Ve9, Jc2, Uu4, fu4, k72, ss9, ii10, lu4, T7, Je11, ci10, w72, Of3, qu4, fc3, Ku4, pi11, q72, a7, If4, _72, fs39, Ge11, Lf3, Pi8, Zu2, M72, pu2, xf4, af3, P7, $f3, au3, Fc2, Zi7, m7, Bn7, jf3, Fu4, Y7, bi11, $c2, Ai9, Eu5, ge11, es8, x72, rc3, Vu4, bs8, Wn8, e72, o7, Kf2, Pc3, Vn6, r7, Xi8, Qf2, kf4, Lu4, sf3, Xn9, Vc3, zu3, ni10, Oi9, Hu3, $u4, si9, n7, Ii8, Zc2, Ui7, ys8, Gf3, Kc2, Xu3, Mu4, Ei10, Cc3, wu3, Kn10, hs8, df3, W72, Ki8, uc3, hf3, Nf3, uu4, du4, E7, ps7, L72, mf3, gu4, Au3, Cu3, Yc3, su3, os7, N7, oi10, G12, g7, Hn8, Bc2, ai10, pf3, ku3, xu3, Tf3, Jf2, ms8, Tc4, Dc2, z72, dc3, Bu3, zf3, f7, D7, Z72, Xf, I72, ds7, fi11, Mi7, Di8, Rc3, zn9, Yu2, xi11, eu4, vf4, ae10, lc3, is8, cc4, Ou5, Df4, as8, Vi8, Gn9, W24, Ri8, U72, cs7, St12, Ni9, qc3, gs7, tu3, i7, vi11, Ru4, di11, Qi8, S7, kc3, _c3, ti10, cu3, gf3, nc4, As8, Iu4, wf3, Qn8, vs9, Ci8, hi11, Hi9, ws8, bf3, v72, b7, Mf4, mi11, C72, Nc3, ts8, p7, t23, Un8, Mc2, yf3, Is8, A72, Yn7, Yi8, Ac3, Yf3, Xc2, Oc3, Ts6, O7, Hc2, Bf3, wc3, Ec4, bu4, ju4, j72, be10, nf3, Ju5, qn8, hc3, Ic3, wi10, Gc2, gi11, lf3, yu5, zi7, ou3, xc3, us8, Ke12, Xe11, rf3, ff3, ri9, Wc2, ns8, K72, mu3, Vf3, Sc4, _s7, Jn9, gc3, qi7, Hf, ru4, uf3, H72, yc3, Ef3, ji6, y7, sc3, Wf3, B7, ei10, Si11, yi11, Wu2, Ff3, Gu3, Su3, Pf4, c7, li10, l7, Ji6, _i9, Cs6, We12, iu3, zc3, vn7, G72, R72, ki10, ls7, u7, Tu5, Pu3, Ti11, Lc2, tf3, vc4, tn9, Af3], M$ = GM, L$ = $F, q$ = SF, B$ = OD, U$ = Qy2, X$ = QL, G$ = F63, Y$ = WD, z$ = YF, J$ = CF, K$ = yD2, H$ = $72, W$ = ze11, V$ = _R, $$ = pF, Q$ = se11, Z$ = HL, xQ = wR, rQ = _k, eQ = Qm3, tQ = bo4, nQ = I63, uQ = kM, iQ = YD, fQ = IR, cQ = RR, sQ = PF, aQ = qD, oQ = GD, vQ = hL, lQ = TR, pQ = vM, kQ = bF, mQ = yo2, hQ = fF2, dQ = $L, yQ = eF, _Q = g62, wQ = cl6, gQ = No3, bQ = [0, [18, [1, [0, [11, Li8, 0], Li8]], [11, "{ ", 0]], "@[<2>{ "], TQ = "Loc.line", EQ = [0, [18, [1, [0, 0, rx2]], [2, 0, [11, GR, [17, [0, Eo2, 1, 0], 0]]]], yF], SQ = [0, [4, 0, 0, 0, 0], al6], AQ = [0, [17, 0, 0], iI], IQ = [0, [12, 59, [17, [0, Eo2, 1, 0], 0]], ";@ "], PQ = G63, CQ = [0, [18, [1, [0, 0, rx2]], [2, 0, [11, GR, [17, [0, Eo2, 1, 0], 0]]]], yF], NQ = [0, [4, 0, 0, 0, 0], al6], OQ = [0, [17, 0, 0], iI], jQ = [0, [17, [0, Eo2, 1, 0], [12, So3, [17, 0, 0]]], "@ }@]"], DQ = rx2, RQ = "Object literal may not have data and accessor property with the same name", FQ = "Object literal may not have multiple get/set accessors with the same name", MQ = "Unexpected token <. Remember, adjacent JSX elements must be wrapped in an enclosing parent tag", LQ = "`let [` is ambiguous in this position because it is either a `let` binding pattern, or a member expression.", qQ = "Async functions can only be declared at top level or immediately within another function.", BQ = "`await` is an invalid identifier in async functions", UQ = "`await` is not allowed in async function parameters.", XQ = "Computed properties must have a value.", GQ = "Constructor can't be an accessor.", YQ = "Constructor can't be an async function.", zQ = "Constructor can't be a generator.", JQ = "It is sufficient for your declare function to just have a Promise return type.", KQ = "async is an implementation detail and isn't necessary for your declare function statement. ", HQ = "`declare` modifier can only appear on class fields.", WQ = "Unexpected token `=`. Initializers are not allowed in a `declare`.", VQ = "Unexpected token `=`. Initializers are not allowed in a `declare opaque type`.", $Q = "Classes may only have one constructor", QQ = "Rest element must be final element of an array pattern", ZQ = "Cannot export an enum with `export type`, try `export enum E {}` or `module.exports = E;` instead.", xZ = "Enum members are separated with `,`. Replace `;` with `,`.", rZ = "`const` enums are not supported. Flow Enums are designed to allow for inlining, however the inlining itself needs to be part of the build system (whatever you use) rather than Flow itself.", eZ = "Expected an object pattern, array pattern, or an identifier but found an expression instead", tZ = "Missing comma between export specifiers", nZ = "Generators can only be declared at top level or immediately within another function.", uZ = "Getter should have zero parameters", iZ = "A getter cannot have a `this` parameter.", fZ = "Illegal continue statement", cZ = "Illegal return statement", sZ = "Illegal Unicode escape", aZ = "Missing comma between import specifiers", oZ = "It cannot be used with `import type` or `import typeof` statements", vZ = "The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. ", lZ = "Explicit inexact syntax cannot appear inside an explicit exact object type", pZ = "Explicit inexact syntax can only appear inside an object type", kZ = "Component params must be an identifier. If you'd like to destructure, you should use `name as {destructure}`", mZ = "A bigint literal must be an integer", hZ = "JSX value should be either an expression or a quoted JSX text", dZ = "Invalid left-hand side in assignment", yZ = "Invalid left-hand side in exponentiation expression", _Z = "Invalid left-hand side in for-in", wZ = "Invalid left-hand side in for-of", gZ = "Invalid optional indexed access. Indexed access uses bracket notation. Use the format `T?.[K]`.", bZ = "Invalid regular expression", TZ = "A bigint literal cannot use exponential notation", EZ = "Tuple spread elements cannot be optional.", SZ = "Tuple variance annotations can only be used with labeled tuple elements, e.g. `[+foo: number]`", AZ = "`typeof` can only be used to get the type of variables.", IZ = "JSX attributes must only be assigned a non-empty expression", PZ = "Literals cannot be used as shorthand properties.", CZ = "Malformed unicode", NZ = "`match` argument must not be empty", OZ = "`match` argument cannot contain spread elements", jZ = "`await` is not yet supported in `match` expressions", DZ = "`yield` is not yet supported in `match` expressions", RZ = "Object pattern can't contain methods", FZ = "Expected at least one type parameter.", MZ = "Type parameter declaration needs a default, since a preceding type parameter declaration has a default.", LZ = "More than one default clause in switch statement", qZ = "Illegal newline after throw", BZ = "Illegal newline before arrow", UZ = "Missing catch or finally after try", XZ = "Const must be initialized", GZ = "Destructuring assignment must be initialized", YZ = "An optional chain may not be used in a `new` expression.", zZ = "Template literals may not be used in an optional chain.", JZ = "Rest parameter must be final parameter of an argument list", KZ = "Private fields may not be deleted.", HZ = "Private fields can only be referenced from within a class.", WZ = "Rest property must be final property of an object pattern", VZ = "Records to not support private elements. Remove the `#`.", $Z = "Setter should have exactly one parameter", QZ = "A setter cannot have a `this` parameter.", ZZ = "Catch variable may not be eval or arguments in strict mode", x00 = "Delete of an unqualified identifier in strict mode.", r00 = "Duplicate data property in object literal not allowed in strict mode", e00 = "Function name may not be eval or arguments in strict mode", t00 = "Assignment to eval or arguments is not allowed in strict mode", n00 = "Postfix increment/decrement may not have eval or arguments operand in strict mode", u00 = "Prefix increment/decrement may not have eval or arguments operand in strict mode", i00 = "Strict mode code may not include a with statement", f00 = "Number literals with leading zeros are not allowed in strict mode.", c00 = "Octal literals are not allowed in strict mode.", s00 = "Strict mode function may not have duplicate parameter names", a00 = "Parameter name eval or arguments is not allowed in strict mode", o00 = 'Illegal "use strict" directive in function with non-simple parameter list', v00 = "Use of reserved word in strict mode", l00 = "Variable name may not be eval or arguments in strict mode", p00 = "You may not access a private field through the `super` keyword.", k00 = "Flow does not support abstract classes.", m00 = "Flow does not support template literal types.", h00 = "A type annotation is required for the `this` parameter.", d00 = "Arrow functions cannot have a `this` parameter; arrow functions automatically bind `this` when declared.", y00 = "Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.", _00 = "The `this` parameter cannot be optional.", w00 = "The `this` parameter must be the first function parameter.", g00 = "A trailing comma is not permitted after the rest element", b00 = "Unexpected end of input", T00 = "Explicit inexact syntax must come at the end of an object type", E00 = "Opaque type aliases are not allowed in untyped mode", S00 = "Unexpected proto modifier", A00 = "Unexpected reserved word", I00 = "Unexpected reserved type", P00 = "Spreading a type is only allowed inside an object type", C00 = "Unexpected static modifier", N00 = "Unexpected `super` outside of a class method", O00 = "`super()` is only valid in a class constructor", j00 = "Type aliases are not allowed in untyped mode", D00 = "Type annotations are not allowed in untyped mode", R00 = "Type declarations are not allowed in untyped mode", F00 = "Type exports are not allowed in untyped mode", M00 = "Type imports are not allowed in untyped mode", L00 = "Interfaces are not allowed in untyped mode", q00 = "Unexpected variance sigil", B00 = "Found a decorator in an unsupported position.", U00 = "Invalid regular expression: missing /", X00 = "Unexpected whitespace between `#` and identifier", G00 = "`yield` is an invalid identifier in generators", Y00 = "Yield expression not allowed in formal parameter", z00 = [0, [11, "Duplicate export for `", [2, 0, [12, 96, 0]]], "Duplicate export for `%s`"], J00 = [0, [11, "Private fields may only be declared once. `#", [2, 0, [11, "` is declared more than once.", 0]]], "Private fields may only be declared once. `#%s` is declared more than once."], K00 = [0, [11, "bigint enum members need to be initialized, e.g. `", [2, 0, [11, " = 1n,` in enum `", [2, 0, [11, nu3, 0]]]]], "bigint enum members need to be initialized, e.g. `%s = 1n,` in enum `%s`."], H00 = [0, [11, "Boolean enum members need to be initialized. Use either `", [2, 0, [11, " = true,` or `", [2, 0, [11, " = false,` in enum `", [2, 0, [11, nu3, 0]]]]]]], "Boolean enum members need to be initialized. Use either `%s = true,` or `%s = false,` in enum `%s`."], W00 = [0, [11, "Enum member names need to be unique, but the name `", [2, 0, [11, "` has already been used before in enum `", [2, 0, [11, nu3, 0]]]]], "Enum member names need to be unique, but the name `%s` has already been used before in enum `%s`."], V00 = [0, [11, WR, [2, 0, [11, "` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.", 0]]], "Enum `%s` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers."], $00 = "The `...` must come at the end of the enum body. Remove the trailing comma.", Q00 = "The `...` must come after all enum members. Move it to the end of the enum body.", Z00 = [0, [11, "Use one of `boolean`, `number`, `string`, `symbol`, or `bigint` in enum `", [2, 0, [11, nu3, 0]]], "Use one of `boolean`, `number`, `string`, `symbol`, or `bigint` in enum `%s`."], xx0 = [0, [11, "Enum type `", [2, 0, [11, "` is not valid. ", [2, 0, 0]]]], "Enum type `%s` is not valid. %s"], rx0 = [0, [11, "Supplied enum type is not valid. ", [2, 0, 0]], "Supplied enum type is not valid. %s"], ex0 = [0, [11, "Enum member names and initializers are separated with `=`. Replace `", [2, 0, [11, ":` with `", [2, 0, [11, " =`.", 0]]]]], "Enum member names and initializers are separated with `=`. Replace `%s:` with `%s =`."], tx0 = [0, [11, WR, [2, 0, [11, "` has type `", [2, 0, [11, "`, so the initializer of `", [2, 0, [11, "` needs to be a ", [2, 0, [11, " literal.", 0]]]]]]]]], "Enum `%s` has type `%s`, so the initializer of `%s` needs to be a %s literal."], nx0 = [0, [11, "Symbol enum members cannot be initialized. Use `", [2, 0, [11, ",` in enum `", [2, 0, [11, nu3, 0]]]]], "Symbol enum members cannot be initialized. Use `%s,` in enum `%s`."], ux0 = [0, [11, "The enum member initializer for `", [2, 0, [11, "` needs to be a literal (either a boolean, number, or string) in enum `", [2, 0, [11, nu3, 0]]]]], "The enum member initializer for `%s` needs to be a literal (either a boolean, number, or string) in enum `%s`."], ix0 = [0, [11, "Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `", [2, 0, [11, "`, consider using `", [2, 0, [11, "`, in enum `", [2, 0, [11, nu3, 0]]]]]]], "Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `%s`, consider using `%s`, in enum `%s`."], fx0 = [0, [11, "Number enum members need to be initialized, e.g. `", [2, 0, [11, " = 1,` in enum `", [2, 0, [11, nu3, 0]]]]], "Number enum members need to be initialized, e.g. `%s = 1,` in enum `%s`."], cx0 = [0, [11, "String enum members need to consistently either all use initializers, or use no initializers, in enum ", [2, 0, [12, 46, 0]]], "String enum members need to consistently either all use initializers, or use no initializers, in enum %s."], sx0 = [0, [11, "Expected corresponding JSX closing tag for ", [2, 0, 0]], "Expected corresponding JSX closing tag for %s"], ax0 = "immediately within another function.", ox0 = "In strict mode code, functions can only be declared at top level or ", vx0 = "inside a block, or as the body of an if statement.", lx0 = "In non-strict mode code, functions can only be declared at top level, ", px0 = " `break` statements are not required in `match` statements, as unlike `switch` statements, `match` statement cases do not fall-through by default.", kx0 = rx2, mx0 = [0, [11, "Illegal break statement.", [2, 0, 0]], "Illegal break statement.%s"], hx0 = zM, dx0 = rx2, yx0 = XM, _x0 = DF, wx0 = DM, gx0 = [0, [11, "Classes may not have ", [2, 0, [2, 0, [11, DD2, [2, 0, [11, nu3, 0]]]]]], "Classes may not have %s%s named `%s`."], bx0 = "Components use `renders` instead of `:` to annotate the render type of a component.", Tx0 = uM, Ex0 = rx2, Sx0 = [0, [11, "String params require local bindings using `as` renaming. You can use `'", [2, 0, [11, "' as ", [2, 0, [2, 0, [11, ": <TYPE>` ", 0]]]]]], "String params require local bindings using `as` renaming. You can use `'%s' as %s%s: <TYPE>` "], Ax0 = "Remove the period.", Ix0 = "Indexed access uses bracket notation.", Px0 = [0, [11, "Invalid indexed access. ", [2, 0, [11, " Use the format `T[K]`.", 0]]], "Invalid indexed access. %s Use the format `T[K]`."], Cx0 = [0, [11, "Invalid flags supplied to RegExp constructor '", [2, 0, [12, 39, 0]]], "Invalid flags supplied to RegExp constructor '%s'"], Nx0 = tn9, Ox0 = Dp3, jx0 = [0, [11, "In match ", [2, 0, [11, " pattern, the rest must be the last element in the pattern", 0]]], "In match %s pattern, the rest must be the last element in the pattern"], Dx0 = [0, [11, "JSX element ", [2, 0, [11, " has no corresponding closing tag.", 0]]], "JSX element %s has no corresponding closing tag."], Rx0 = [0, [11, tM, [2, 0, [11, "`. Parentheses are required to combine `??` with `&&` or `||` expressions.", 0]]], "Unexpected token `%s`. Parentheses are required to combine `??` with `&&` or `||` expressions."], Fx0 = zM, Mx0 = rx2, Lx0 = XM, qx0 = A63, Bx0 = [0, [11, "Records may not have ", [2, 0, [2, 0, [11, DD2, [2, 0, [11, nu3, 0]]]]]], "Records may not have %s%s named `%s`."], Ux0 = [0, [2, 0, [11, " '", [2, 0, [11, "' has already been declared", 0]]]], "%s '%s' has already been declared"], Xx0 = rx2, Gx0 = k63, Yx0 = " You can try using JavaScript private fields by prepending `#` to the field name.", zx0 = Q63, Jx0 = " Fields and methods are public by default. You can simply omit the `public` keyword.", Kx0 = W63, Hx0 = [0, [11, "Flow does not support using `", [2, 0, [11, "` in classes.", [2, 0, 0]]]], "Flow does not support using `%s` in classes.%s"], Wx0 = [0, [11, "Private fields must be declared before they can be referenced. `#", [2, 0, [11, "` has not been declared.", 0]]], "Private fields must be declared before they can be referenced. `#%s` has not been declared."], Vx0 = [0, [11, xM, [2, 0, 0]], "Unexpected %s"], $x0 = [0, [11, tM, [2, 0, [11, "`. Did you mean `", [2, 0, [11, "`?", 0]]]]], "Unexpected token `%s`. Did you mean `%s`?"], Qx0 = [0, [11, xM, [2, 0, [11, ", expected ", [2, 0, 0]]]], "Unexpected %s, expected %s"], Zx0 = [0, [11, "Undefined label '", [2, 0, [12, 39, 0]]], "Undefined label '%s'"], xr0 = "Parse_error.Error", rr0 = [0, [0, 36, 37], [0, 48, 58], [0, 65, 91], [0, 95, 96], [0, 97, un8], [0, py2, Sg2], [0, NS, s9], [0, j_, Wm3], [0, xI, z_], [0, Y32, lk], [0, ty2, Gp3], [0, t12, 706], [0, CD2, 722], [0, 736, 741], [0, 748, 749], [0, 750, 751], [0, 768, 885], [0, 886, 888], [0, 890, 894], [0, 895, 896], [0, 902, 907], [0, 908, 909], [0, 910, 930], [0, jM, 1014], [0, 1015, 1154], [0, 1155, 1160], [0, 1162, 1328], [0, 1329, 1367], [0, 1369, 1370], [0, 1376, 1417], [0, 1425, 1470], [0, 1471, 1472], [0, 1473, 1475], [0, 1476, 1478], [0, 1479, 1480], [0, 1488, 1515], [0, 1519, 1523], [0, 1552, 1563], [0, 1568, 1642], [0, 1646, 1748], [0, 1749, 1757], [0, 1759, 1769], [0, 1770, 1789], [0, 1791, 1792], [0, 1808, 1867], [0, 1869, 1970], [0, 1984, 2038], [0, 2042, 2043], [0, 2045, 2046], [0, Gg2, 2094], [0, 2112, 2140], [0, 2144, 2155], [0, 2208, 2229], [0, 2230, 2238], [0, 2259, 2274], [0, 2275, 2404], [0, 2406, 2416], [0, 2417, 2436], [0, 2437, 2445], [0, 2447, 2449], [0, 2451, 2473], [0, 2474, 2481], [0, 2482, 2483], [0, 2486, 2490], [0, 2492, 2501], [0, 2503, 2505], [0, 2507, 2511], [0, 2519, 2520], [0, 2524, 2526], [0, 2527, 2532], [0, 2534, 2546], [0, 2556, 2557], [0, 2558, 2559], [0, 2561, 2564], [0, 2565, 2571], [0, 2575, 2577], [0, 2579, 2601], [0, 2602, 2609], [0, 2610, 2612], [0, 2613, 2615], [0, 2616, 2618], [0, 2620, 2621], [0, 2622, 2627], [0, 2631, 2633], [0, 2635, 2638], [0, 2641, 2642], [0, 2649, 2653], [0, 2654, 2655], [0, 2662, 2678], [0, 2689, 2692], [0, 2693, 2702], [0, 2703, 2706], [0, 2707, 2729], [0, 2730, 2737], [0, 2738, 2740], [0, 2741, 2746], [0, 2748, 2758], [0, 2759, 2762], [0, 2763, 2766], [0, 2768, 2769], [0, 2784, 2788], [0, 2790, 2800], [0, 2809, 2816], [0, 2817, 2820], [0, 2821, 2829], [0, 2831, 2833], [0, 2835, 2857], [0, 2858, 2865], [0, 2866, 2868], [0, 2869, 2874], [0, 2876, 2885], [0, 2887, 2889], [0, 2891, 2894], [0, 2902, 2904], [0, 2908, 2910], [0, 2911, 2916], [0, 2918, 2928], [0, 2929, 2930], [0, 2946, 2948], [0, 2949, 2955], [0, 2958, 2961], [0, 2962, 2966], [0, 2969, 2971], [0, 2972, 2973], [0, 2974, 2976], [0, 2979, 2981], [0, 2984, 2987], [0, 2990, 3002], [0, 3006, 3011], [0, 3014, 3017], [0, 3018, 3022], [0, 3024, 3025], [0, 3031, 3032], [0, 3046, 3056], [0, 3072, 3085], [0, 3086, 3089], [0, 3090, 3113], [0, 3114, 3130], [0, 3133, 3141], [0, 3142, 3145], [0, 3146, 3150], [0, 3157, 3159], [0, 3160, 3163], [0, 3168, 3172], [0, 3174, 3184], [0, 3200, 3204], [0, 3205, 3213], [0, 3214, 3217], [0, 3218, 3241], [0, 3242, 3252], [0, 3253, 3258], [0, 3260, 3269], [0, 3270, 3273], [0, 3274, 3278], [0, 3285, 3287], [0, 3294, 3295], [0, 3296, 3300], [0, 3302, 3312], [0, 3313, 3315], [0, 3328, 3332], [0, 3333, 3341], [0, 3342, 3345], [0, 3346, 3397], [0, 3398, 3401], [0, 3402, 3407], [0, 3412, 3416], [0, 3423, 3428], [0, 3430, 3440], [0, 3450, 3456], [0, 3458, 3460], [0, 3461, 3479], [0, 3482, 3506], [0, 3507, 3516], [0, 3517, 3518], [0, 3520, 3527], [0, 3530, 3531], [0, 3535, 3541], [0, 3542, 3543], [0, 3544, 3552], [0, 3558, 3568], [0, 3570, 3572], [0, 3585, 3643], [0, 3648, 3663], [0, 3664, 3674], [0, 3713, 3715], [0, 3716, 3717], [0, 3718, 3723], [0, 3724, 3748], [0, 3749, 3750], [0, 3751, 3774], [0, 3776, 3781], [0, 3782, 3783], [0, 3784, 3790], [0, 3792, 3802], [0, 3804, 3808], [0, 3840, 3841], [0, 3864, 3866], [0, 3872, 3882], [0, 3893, 3894], [0, 3895, 3896], [0, 3897, 3898], [0, 3902, 3912], [0, 3913, 3949], [0, 3953, 3973], [0, 3974, 3992], [0, 3993, 4029], [0, 4038, 4039], [0, NF, 4170], [0, 4176, 4254], [0, 4256, 4294], [0, 4295, 4296], [0, 4301, 4302], [0, 4304, 4347], [0, 4348, 4681], [0, 4682, 4686], [0, 4688, 4695], [0, 4696, 4697], [0, 4698, 4702], [0, 4704, 4745], [0, 4746, 4750], [0, 4752, 4785], [0, 4786, 4790], [0, 4792, 4799], [0, 4800, 4801], [0, 4802, 4806], [0, 4808, 4823], [0, 4824, 4881], [0, 4882, 4886], [0, 4888, 4955], [0, 4957, 4960], [0, 4969, 4978], [0, 4992, 5008], [0, 5024, 5110], [0, 5112, 5118], [0, 5121, 5741], [0, 5743, nC], [0, 5761, 5787], [0, 5792, 5867], [0, 5870, 5881], [0, 5888, 5901], [0, 5902, 5909], [0, 5920, 5941], [0, 5952, 5972], [0, 5984, 5997], [0, 5998, 6001], [0, 6002, 6004], [0, 6016, 6100], [0, 6103, 6104], [0, 6108, 6110], [0, 6112, 6122], [0, 6155, 6158], [0, 6160, 6170], [0, 6176, 6265], [0, 6272, 6315], [0, 6320, 6390], [0, 6400, 6431], [0, 6432, 6444], [0, 6448, 6460], [0, 6470, 6510], [0, 6512, 6517], [0, 6528, 6572], [0, 6576, 6602], [0, 6608, 6619], [0, 6656, 6684], [0, 6688, 6751], [0, 6752, 6781], [0, 6783, 6794], [0, 6800, 6810], [0, 6823, 6824], [0, 6832, 6846], [0, 6912, 6988], [0, 6992, 7002], [0, 7019, 7028], [0, 7040, 7156], [0, 7168, 7224], [0, 7232, 7242], [0, 7245, 7294], [0, 7296, 7305], [0, 7312, 7355], [0, 7357, 7360], [0, 7376, 7379], [0, 7380, 7419], [0, 7424, 7674], [0, 7675, 7958], [0, 7960, 7966], [0, 7968, 8006], [0, 8008, 8014], [0, 8016, 8024], [0, 8025, 8026], [0, 8027, 8028], [0, 8029, 8030], [0, 8031, 8062], [0, 8064, 8117], [0, 8118, 8125], [0, 8126, 8127], [0, 8130, 8133], [0, 8134, 8141], [0, 8144, 8148], [0, 8150, 8156], [0, 8160, 8173], [0, 8178, 8181], [0, 8182, 8189], [0, tR, NM], [0, 8255, 8257], [0, 8276, 8277], [0, F82, 8306], [0, f8, 8320], [0, 8336, 8349], [0, 8400, 8413], [0, 8417, 8418], [0, 8421, 8433], [0, dm3, 8451], [0, Gm3, 8456], [0, 8458, tk], [0, dk, 8470], [0, sM, 8478], [0, _82, Jm3], [0, th2, gk], [0, Ik, Hm3], [0, 8490, 8506], [0, 8508, 8512], [0, 8517, 8522], [0, Lk, 8527], [0, 8544, 8585], [0, 11264, 11311], [0, 11312, 11359], [0, 11360, 11493], [0, 11499, 11508], [0, 11520, om3], [0, gp4, 11560], [0, Fm3, 11566], [0, 11568, 11624], [0, u8, 11632], [0, ak, 11671], [0, 11680, lm3], [0, 11688, km3], [0, 11696, bp3], [0, 11704, Uk], [0, 11712, z82], [0, 11720, Ip3], [0, 11728, sh2], [0, 11736, 11743], [0, 11744, 11776], [0, 12293, 12296], [0, 12321, uh2], [0, 12337, 12342], [0, 12344, 12349], [0, 12353, 12439], [0, 12441, X82], [0, 12449, _h2], [0, 12540, 12544], [0, 12549, Ym3], [0, 12593, 12687], [0, 12704, 12731], [0, 12784, 12800], [0, 13312, 19894], [0, 19968, 40944], [0, 40960, 42125], [0, 42192, 42238], [0, 42240, 42509], [0, 42512, 42540], [0, 42560, 42608], [0, 42612, ek], [0, 42623, 42738], [0, 42775, 42784], [0, 42786, 42889], [0, 42891, 42944], [0, 42946, 42951], [0, l8, 43048], [0, 43072, 43124], [0, 43136, 43206], [0, 43216, 43226], [0, 43232, 43256], [0, $k, Yk], [0, 43261, 43310], [0, 43312, 43348], [0, 43360, 43389], [0, 43392, 43457], [0, W82, 43482], [0, 43488, Bp3], [0, aF2, 43575], [0, 43584, 43598], [0, 43600, 43610], [0, 43616, 43639], [0, fm3, 43715], [0, 43739, 43742], [0, 43744, 43760], [0, 43762, 43767], [0, 43777, 43783], [0, 43785, 43791], [0, 43793, 43799], [0, 43808, wm3], [0, 43816, p8], [0, 43824, Q82], [0, 43868, Np4], [0, 43888, 44011], [0, 44012, 44014], [0, 44016, 44026], [0, 44032, 55204], [0, 55216, 55239], [0, 55243, 55292], [0, 63744, 64110], [0, 64112, 64218], [0, 64256, 64263], [0, 64275, 64280], [0, Wk, qp3], [0, 64298, b8], [0, 64312, ym3], [0, Qk, pk], [0, 64320, ih2], [0, 64323, Th2], [0, 64326, 64434], [0, 64467, 64830], [0, 64848, 64912], [0, 64914, 64968], [0, 65008, 65020], [0, 65024, 65040], [0, 65056, 65072], [0, 65075, 65077], [0, 65101, 65104], [0, 65136, $m3], [0, 65142, 65277], [0, 65296, 65306], [0, 65313, 65339], [0, 65343, pm3], [0, 65345, 65371], [0, 65382, 65471], [0, 65474, 65480], [0, 65482, 65488], [0, 65490, 65496], [0, 65498, 65501], [0, Y63, lh2], [0, 65549, Z82], [0, 65576, Ek], [0, 65596, Ak], [0, 65599, 65614], [0, 65616, 65630], [0, 65664, 65787], [0, 65856, 65909], [0, 66045, 66046], [0, 66176, 66205], [0, 66208, 66257], [0, 66272, 66273], [0, 66304, 66336], [0, 66349, 66379], [0, 66384, 66427], [0, 66432, 66462], [0, 66464, 66500], [0, 66504, ah2], [0, 66513, 66518], [0, 66560, 66718], [0, 66720, 66730], [0, 66736, 66772], [0, 66776, 66812], [0, 66816, 66856], [0, 66864, 66916], [0, 67072, 67383], [0, 67392, 67414], [0, 67424, 67432], [0, 67584, 67590], [0, vk, x8], [0, 67594, oh2], [0, 67639, 67641], [0, $82, 67645], [0, 67647, 67670], [0, 67680, 67703], [0, 67712, 67743], [0, 67808, Hp3], [0, 67828, 67830], [0, 67840, 67862], [0, 67872, 67898], [0, 67968, 68024], [0, 68030, 68032], [0, ph2, 68100], [0, 68101, 68103], [0, 68108, Xk], [0, 68117, V82], [0, 68121, 68150], [0, 68152, 68155], [0, 68159, 68160], [0, 68192, 68221], [0, 68224, 68253], [0, 68288, D8], [0, 68297, 68327], [0, 68352, 68406], [0, 68416, 68438], [0, 68448, 68467], [0, 68480, 68498], [0, 68608, 68681], [0, 68736, 68787], [0, 68800, 68851], [0, 68864, 68904], [0, 68912, 68922], [0, 69376, 69405], [0, qm3, 69416], [0, 69424, 69457], [0, 69600, 69623], [0, 69632, 69703], [0, 69734, nh2], [0, 69759, 69819], [0, 69840, 69865], [0, 69872, 69882], [0, 69888, 69941], [0, 69942, 69952], [0, Up3, Dk], [0, 69968, 70004], [0, Km3, 70007], [0, 70016, 70085], [0, 70089, 70093], [0, 70096, Om3], [0, o8, 70109], [0, 70144, Nm3], [0, 70163, 70200], [0, 70206, 70207], [0, 70272, Pm3], [0, S8, Fk], [0, 70282, Cm3], [0, 70287, mm3], [0, 70303, 70313], [0, 70320, 70379], [0, 70384, 70394], [0, 70400, jp3], [0, 70405, 70413], [0, 70415, 70417], [0, 70419, Vm4], [0, 70442, Y8], [0, 70450, cm3], [0, 70453, 70458], [0, 70459, 70469], [0, 70471, 70473], [0, 70475, 70478], [0, Yp3, 70481], [0, 70487, 70488], [0, 70493, 70500], [0, 70502, 70509], [0, 70512, 70517], [0, 70656, 70731], [0, 70736, 70746], [0, uk, 70752], [0, 70784, Um3], [0, i8, 70856], [0, 70864, 70874], [0, 71040, 71094], [0, 71096, 71105], [0, 71128, 71134], [0, 71168, 71233], [0, a8, 71237], [0, 71248, 71258], [0, 71296, 71353], [0, 71360, 71370], [0, 71424, 71451], [0, 71453, 71468], [0, 71472, 71482], [0, 71680, 71739], [0, 71840, 71914], [0, 71935, 71936], [0, 72096, 72104], [0, 72106, 72152], [0, 72154, R82], [0, Xm3, 72165], [0, t8, 72255], [0, 72263, 72264], [0, qk, 72346], [0, k8, 72350], [0, 72384, 72441], [0, 72704, zm3], [0, 72714, 72759], [0, 72760, 72769], [0, 72784, 72794], [0, 72818, 72848], [0, 72850, 72872], [0, 72873, 72887], [0, 72960, d8], [0, 72968, ch2], [0, 72971, 73015], [0, 73018, 73019], [0, 73020, 73022], [0, 73023, 73032], [0, 73040, 73050], [0, 73056, E8], [0, 73063, bm3], [0, 73066, 73103], [0, 73104, 73106], [0, 73107, 73113], [0, 73120, 73130], [0, 73440, 73463], [0, 73728, 74650], [0, 74752, 74863], [0, 74880, 75076], [0, 77824, 78895], [0, 82944, 83527], [0, 92160, 92729], [0, 92736, 92767], [0, 92768, 92778], [0, 92880, 92910], [0, 92912, 92917], [0, 92928, 92983], [0, 92992, 92996], [0, 93008, 93018], [0, 93027, 93048], [0, 93053, 93072], [0, 93760, 93824], [0, 93952, 94027], [0, gm3, 94088], [0, 94095, 94112], [0, 94176, mk], [0, Op3, 94180], [0, 94208, 100344], [0, 100352, 101107], [0, 110592, 110879], [0, 110928, 110931], [0, 110948, 110952], [0, 110960, 111356], [0, 113664, 113771], [0, 113776, 113789], [0, 113792, 113801], [0, 113808, 113818], [0, 113821, 113823], [0, 119141, 119146], [0, 119149, 119155], [0, 119163, 119171], [0, 119173, 119180], [0, 119210, 119214], [0, 119362, 119365], [0, 119808, Fp3], [0, 119894, jk], [0, 119966, 119968], [0, r8, 119971], [0, 119973, 119975], [0, 119977, Ah2], [0, 119982, Sm3], [0, M82, xm3], [0, 119997, c8], [0, 120005, bh], [0, 120071, 120075], [0, 120077, sk], [0, 120086, Im3], [0, 120094, Xp3], [0, 120123, H82], [0, 120128, n8], [0, Jk, 120135], [0, 120138, eh2], [0, 120146, 120486], [0, 120488, yk], [0, 120514, T8], [0, 120540, wh2], [0, 120572, Rk], [0, 120598, C8], [0, 120630, Zp3], [0, 120656, w82], [0, 120688, zp3], [0, 120714, Cp3], [0, 120746, Nk], [0, 120772, 120780], [0, 120782, 120832], [0, 121344, 121399], [0, 121403, 121453], [0, 121461, 121462], [0, 121476, 121477], [0, 121499, 121504], [0, 121505, 121520], [0, 122880, 122887], [0, 122888, 122905], [0, 122907, 122914], [0, 122915, 122917], [0, 122918, 122923], [0, 123136, 123181], [0, 123184, 123198], [0, 123200, 123210], [0, Sp3, 123215], [0, 123584, 123642], [0, 124928, 125125], [0, 125136, 125143], [0, 125184, 125260], [0, 125264, 125274], [0, 126464, xk], [0, 126469, hm3], [0, 126497, yh2], [0, Pp4, 126501], [0, Mm3, J82], [0, 126505, Ep3], [0, 126516, N8], [0, kh2, tm3], [0, Vp3, 126524], [0, fh2, 126531], [0, Eh2, Qp3], [0, hh2, vm3], [0, vh2, Mp3], [0, 126541, Mk], [0, 126545, xh2], [0, Dm3, 126549], [0, j82, $p3], [0, Zk, y8], [0, am3, rh2], [0, ok2, Jp3], [0, q82, Sk], [0, 126561, Wp3], [0, Zm3, 126565], [0, 126567, Rp3], [0, 126572, nk], [0, 126580, A8], [0, 126585, Vk], [0, O8, Bm3], [0, 126592, Kp3], [0, 126603, 126620], [0, 126625, P8], [0, 126629, m8], [0, 126635, 126652], [0, 131072, 173783], [0, 173824, 177973], [0, 177984, 178206], [0, 178208, 183970], [0, 183984, 191457], [0, 194560, 195102], [0, 917760, 918e3]], er0 = [0, 1, 0], tr0 = [0, 0, [0, 1, 0], [0, 1, 0]], nr0 = sL, ur0 = "end of input", ir0 = U63, fr0 = "template literal part", cr0 = U63, sr0 = nD2, ar0 = sL, or0 = U63, vr0 = H32, lr0 = U63, pr0 = $v, kr0 = U63, mr0 = K32, hr0 = "an", dr0 = St12, yr0 = Nu4, _r0 = [0, [11, "token `", [2, 0, [12, 96, 0]]], "token `%s`"], wr0 = "{", gr0 = em3, br0 = "{|", Tr0 = "|}", Er0 = PM, Sr0 = iM, Ar0 = "[", Ir0 = "]", Pr0 = NT, Cr0 = JL, Nr0 = ln8, Or0 = "=>", jr0 = "...", Dr0 = _D, Rr0 = DM, Fr0 = $32, Mr0 = nm3, Lr0 = bo4, qr0 = I63, Br0 = Je11, Ur0 = Ve9, Xr0 = $P, Gr0 = DT, Yr0 = Bv2, zr0 = He10, Jr0 = um3, Kr0 = g62, Hr0 = Tp3, Wr0 = L82, Vr0 = No3, $r0 = cl6, Qr0 = Hv, Zr0 = wa4, x10 = Pa5, r10 = We12, e102 = rk, t10 = Rm3, n10 = Xe11, u10 = Fv2, i10 = Tk, f10 = U82, c10 = K82, s10 = h62, a10 = mc3, o10 = Ue10, v10 = Ck, l10 = Yv, p10 = E62, k10 = Aa3, m10 = ga2, h10 = j63, d10 = dh2, y10 = W24, _10 = fl6, w10 = Oo5, g10 = ae10, b10 = Pk, T10 = Q63, E10 = k63, S10 = W63, A10 = H24, I10 = Ke12, P10 = x43, C102 = tc3, N10 = zb2, O10 = JS, j10 = Io5, D102 = Kv, R10 = "%checks", F10 = TR, M10 = hL, L10 = GD, q102 = bF, B10 = vM, U10 = yo2, X102 = qD, G10 = PF, Y10 = IR, z10 = RR, J102 = YD, K102 = kM, H10 = fF2, W10 = $L, V102 = eF, $10 = p_2, Q10 = "?.", Z10 = Dw, x20 = uM, r20 = Iv2, e202 = LF, t20 = CM, n20 = wR, u20 = _k, i20 = Qm3, f20 = GM, c20 = $F, s20 = SF, a20 = OD, o20 = QL, v20 = WD, l20 = Qy2, p20 = F63, k20 = YF, m20 = CF, h20 = yD2, d20 = $72, y20 = ze11, _20 = se11, w20 = _R, g20 = pF, b20 = HL, T20 = SD, E20 = VL, S20 = ZM, A20 = kR, I20 = rx2, P20 = ik, C20 = wk, N20 = be10, O20 = H32, j20 = $v, D20 = K32, R20 = ga2, F20 = H63, M20 = hk, L20 = bk, q20 = Hk, B20 = Lm3, U20 = Xv, X20 = FD2, G20 = J63, Y20 = tl4, z20 = V32, J20 = jF, K20 = uF2, H20 = m62, W20 = m62, V20 = gL, $20 = m62, Q20 = m62, Z20 = em3, xe0 = em3, re0 = gL, ee0 = se11, te0 = se11, ne0 = O62, ue0 = rm3, ie0 = "T_LCURLY", fe0 = "T_RCURLY", ce0 = "T_LCURLYBAR", se0 = "T_RCURLYBAR", ae0 = "T_LPAREN", oe0 = "T_RPAREN", ve0 = "T_LBRACKET", le0 = "T_RBRACKET", pe0 = "T_SEMICOLON", ke0 = "T_COMMA", me0 = "T_PERIOD", he0 = "T_ARROW", de0 = "T_ELLIPSIS", ye0 = "T_AT", _e0 = "T_POUND", we0 = "T_FUNCTION", ge0 = "T_IF", be0 = "T_IN", Te0 = "T_INSTANCEOF", Ee0 = "T_RETURN", Se0 = "T_SWITCH", Ae0 = "T_MATCH", Ie0 = "T_RECORD", Pe0 = "T_THIS", Ce0 = "T_THROW", Ne0 = "T_TRY", Oe0 = "T_VAR", je0 = "T_WHILE", De0 = "T_WITH", Re0 = "T_CONST", Fe0 = "T_LET", Me0 = "T_NULL", Le0 = "T_FALSE", qe0 = "T_TRUE", Be0 = "T_BREAK", Ue0 = "T_CASE", Xe0 = "T_CATCH", Ge0 = "T_CONTINUE", Ye0 = "T_DEFAULT", ze0 = "T_DO", Je0 = "T_FINALLY", Ke0 = "T_FOR", He0 = "T_CLASS", We0 = "T_EXTENDS", Ve0 = "T_STATIC", $e0 = "T_ELSE", Qe0 = "T_NEW", Ze0 = "T_DELETE", xt0 = "T_TYPEOF", rt0 = "T_VOID", et0 = "T_ENUM", tt0 = "T_EXPORT", nt0 = "T_IMPORT", ut0 = "T_SUPER", it0 = "T_IMPLEMENTS", ft0 = "T_INTERFACE", ct0 = "T_PACKAGE", st0 = "T_PRIVATE", at0 = "T_PROTECTED", ot0 = "T_PUBLIC", vt0 = "T_YIELD", lt0 = "T_DEBUGGER", pt0 = "T_DECLARE", kt0 = "T_TYPE", mt0 = "T_OPAQUE", ht0 = "T_OF", dt0 = "T_ASYNC", yt0 = "T_AWAIT", _t0 = "T_CHECKS", wt0 = "T_RSHIFT3_ASSIGN", gt0 = "T_RSHIFT_ASSIGN", bt0 = "T_LSHIFT_ASSIGN", Tt0 = "T_BIT_XOR_ASSIGN", Et0 = "T_BIT_OR_ASSIGN", St0 = "T_BIT_AND_ASSIGN", At0 = "T_MOD_ASSIGN", It0 = "T_DIV_ASSIGN", Pt0 = "T_MULT_ASSIGN", Ct0 = "T_EXP_ASSIGN", Nt0 = "T_MINUS_ASSIGN", Ot0 = "T_PLUS_ASSIGN", jt0 = "T_NULLISH_ASSIGN", Dt0 = "T_AND_ASSIGN", Rt0 = "T_OR_ASSIGN", Ft0 = "T_ASSIGN", Mt0 = "T_PLING_PERIOD", Lt0 = "T_PLING_PLING", qt0 = "T_PLING", Bt0 = "T_COLON", Ut0 = "T_OR", Xt0 = "T_AND", Gt0 = "T_BIT_OR", Yt0 = "T_BIT_XOR", zt0 = "T_BIT_AND", Jt0 = "T_EQUAL", Kt0 = "T_NOT_EQUAL", Ht0 = "T_STRICT_EQUAL", Wt0 = "T_STRICT_NOT_EQUAL", Vt0 = "T_LESS_THAN_EQUAL", $t0 = "T_GREATER_THAN_EQUAL", Qt0 = "T_LESS_THAN", Zt0 = "T_GREATER_THAN", xn0 = "T_LSHIFT", rn0 = "T_RSHIFT", en0 = "T_RSHIFT3", tn0 = "T_PLUS", nn0 = "T_MINUS", un0 = "T_DIV", in0 = "T_MULT", fn0 = "T_EXP", cn0 = "T_MOD", sn0 = "T_NOT", an0 = "T_BIT_NOT", on0 = "T_INCR", vn0 = "T_DECR", ln0 = "T_EOF", pn0 = "T_ANY_TYPE", kn0 = "T_MIXED_TYPE", mn0 = "T_EMPTY_TYPE", hn0 = "T_NUMBER_TYPE", dn0 = "T_BIGINT_TYPE", yn0 = "T_STRING_TYPE", _n0 = "T_VOID_TYPE", wn0 = "T_SYMBOL_TYPE", gn0 = "T_UNKNOWN_TYPE", bn0 = "T_NEVER_TYPE", Tn0 = "T_UNDEFINED_TYPE", En0 = "T_KEYOF", Sn0 = "T_READONLY", An0 = "T_INFER", In0 = "T_IS", Pn0 = "T_ASSERTS", Cn0 = "T_IMPLIES", Nn0 = KL, On0 = KL, jn0 = "T_NUMBER", Dn0 = "T_BIGINT", Rn0 = "T_STRING", Fn0 = "T_TEMPLATE_PART", Mn0 = "T_IDENTIFIER", Ln0 = "T_REGEXP", qn0 = "T_INTERPRETER", Bn0 = "T_ERROR", Un0 = "T_JSX_IDENTIFIER", Xn0 = XL, Gn0 = XL, Yn0 = "T_BOOLEAN_TYPE", zn0 = "T_NUMBER_SINGLETON_TYPE", Jn0 = "T_BIGINT_SINGLETON_TYPE", Kn0 = [0, BR, $S, 9], Hn0 = [0, BR, Hg2, 9], Wn0 = wL, Vn0 = "*/", $n0 = wL, Qn0 = "unreachable line_comment", Zn0 = "unreachable string_quote", x70 = "\\", r70 = "unreachable template_part", e70 = `\r
|
|
29160
|
+
`, t70 = ug2, n70 = "unreachable regexp_class", u70 = LD, i70 = "unreachable regexp_body", f70 = rx2, c70 = rx2, s70 = rx2, a70 = rx2, o70 = hR, v70 = "{'>'}", l70 = F63, p70 = "{'}'}", k70 = em3, m70 = Ao2, h70 = NT, d70 = Qm3, y70 = hR, _70 = Ao2, w70 = NT, g70 = Qm3, b70 = "unreachable type_token wholenumber", T70 = "unreachable type_token wholebigint", E70 = "unreachable type_token floatbigint", S70 = "unreachable type_token scinumber", A70 = "unreachable type_token scibigint", I70 = "unreachable type_token hexnumber", P70 = "unreachable type_token hexbigint", C70 = "unreachable type_token legacyoctnumber", N70 = "unreachable type_token octnumber", O70 = "unreachable type_token octbigint", j70 = "unreachable type_token binnumber", D70 = "unreachable type_token bigbigint", R70 = "unreachable type_token", F70 = yL, M70 = [11, 1], L70 = [11, 0], q70 = "unreachable template_tail", B70 = rx2, U70 = rx2, X70 = "unreachable jsx_child", G70 = "unreachable jsx_tag", Y70 = [0, hw], z70 = [0, 913], J70 = [0, Y32], K70 = [0, mh2], H70 = [0, cR], W70 = [0, QP], V70 = [0, 8747], $70 = [0, gD], Q70 = [0, 916], Z70 = [0, 8225], xu0 = [0, 935], ru0 = [0, VI], eu0 = [0, 914], tu0 = [0, vL], nu0 = [0, IF], uu0 = [0, RE], iu0 = [0, 915], fu0 = [0, TD], cu0 = [0, 919], su0 = [0, 917], au0 = [0, _L], ou0 = [0, KD], vu0 = [0, HR], lu0 = [0, 924], pu0 = [0, 923], ku0 = [0, 922], mu0 = [0, oF2], hu0 = [0, 921], du0 = [0, eM], yu0 = [0, Hg2], _u0 = [0, xF], wu0 = [0, ty2], gu0 = [0, 927], bu0 = [0, 937], Tu0 = [0, HD], Eu0 = [0, $R], Su0 = [0, uR], Au0 = [0, 338], Iu0 = [0, 352], Pu0 = [0, 929], Cu0 = [0, 936], Nu0 = [0, 8243], Ou0 = [0, 928], ju0 = [0, 934], Du0 = [0, qL], Ru0 = [0, o_2], Fu0 = [0, 933], Mu0 = [0, pM], Lu0 = [0, nL], qu0 = [0, fD2], Bu0 = [0, 920], Uu0 = [0, 932], Xu0 = [0, jD], Gu0 = [0, dR], Yu0 = [0, KF], zu0 = [0, JR], Ju0 = [0, 918], Ku0 = [0, SR], Hu0 = [0, HF], Wu0 = [0, 926], Vu0 = [0, lF2], $u0 = [0, jM], Qu0 = [0, 925], Zu0 = [0, 39], xi0 = [0, 8736], ri0 = [0, 8743], ei0 = [0, 38], ti0 = [0, 945], ni0 = [0, 8501], ui0 = [0, Sv2], ii0 = [0, 8226], fi0 = [0, JD2], ci0 = [0, 946], si0 = [0, 8222], ai0 = [0, RD], oi0 = [0, wM], vi0 = [0, 8776], li0 = [0, qI], pi0 = [0, 8773], ki0 = [0, 9827], mi0 = [0, CD2], hi0 = [0, 967], di0 = [0, qM], yi0 = [0, Wm3], _i0 = [0, PD], wi0 = [0, GF], gi0 = [0, 8595], bi0 = [0, 8224], Ti0 = [0, 8659], Ei0 = [0, sR], Si0 = [0, 8746], Ai0 = [0, 8629], Ii0 = [0, yR], Pi0 = [0, 8745], Ci0 = [0, 8195], Ni0 = [0, 8709], Oi0 = [0, iD2], ji0 = [0, dL], Di0 = [0, aL], Ri0 = [0, Gp3], Fi0 = [0, 9830], Mi0 = [0, 8707], Li0 = [0, 8364], qi0 = [0, EM], Bi0 = [0, rl5], Ui0 = [0, 951], Xi0 = [0, 8801], Gi0 = [0, 949], Yi0 = [0, 8194], zi0 = [0, 8805], Ji0 = [0, 947], Ki0 = [0, 8260], Hi0 = [0, jE], Wi0 = [0, nR], Vi0 = [0, $S], $i0 = [0, 8704], Qi0 = [0, XF], Zi0 = [0, EL], xf0 = [0, 8230], rf0 = [0, 9829], ef0 = [0, 8596], tf0 = [0, 8660], nf0 = [0, 62], uf0 = [0, 402], if0 = [0, 948], ff0 = [0, nF2], cf0 = [0, E9], sf0 = [0, 8712], af0 = [0, sP], of0 = [0, 953], vf0 = [0, 8734], lf0 = [0, 8465], pf0 = [0, IM], kf0 = [0, 8220], mf0 = [0, 8968], hf0 = [0, 8592], df0 = [0, Sg2], yf0 = [0, 10216], _f0 = [0, 955], wf0 = [0, 8656], gf0 = [0, 954], bf0 = [0, 60], Tf0 = [0, 8216], Ef0 = [0, 8249], Sf0 = [0, NM], Af0 = [0, 9674], If0 = [0, 8727], Pf0 = [0, 8970], Cf0 = [0, AL], Nf0 = [0, 8711], Of0 = [0, 956], jf0 = [0, 8722], Df0 = [0, j_], Rf0 = [0, NS], Ff0 = [0, 8212], Mf0 = [0, NR], Lf0 = [0, 8804], qf0 = [0, 957], Bf0 = [0, kF], Uf0 = [0, 8836], Xf0 = [0, 8713], Gf0 = [0, KR], Yf0 = [0, 8715], zf0 = [0, 8800], Jf0 = [0, 8853], Kf0 = [0, 959], Hf0 = [0, 969], Wf0 = [0, 8254], Vf0 = [0, HM], $f0 = [0, 339], Qf0 = [0, jv], Zf0 = [0, BM], xc0 = [0, s9], rc0 = [0, ul6], ec0 = [0, 8855], tc0 = [0, ME], nc0 = [0, t12], uc0 = [0, xI], ic0 = [0, py2], fc0 = [0, da5], cc0 = [0, rL], sc0 = [0, 982], ac0 = [0, 960], oc0 = [0, 966], vc0 = [0, 8869], lc0 = [0, 8240], pc0 = [0, 8706], kc0 = [0, 8744], mc0 = [0, 8211], hc0 = [0, 10217], dc0 = [0, 8730], yc0 = [0, 8658], _c0 = [0, 34], wc0 = [0, 968], gc0 = [0, 8733], bc0 = [0, 8719], Tc0 = [0, 961], Ec0 = [0, 8971], Sc0 = [0, LL], Ac0 = [0, 8476], Ic0 = [0, 8221], Pc0 = [0, 8969], Cc0 = [0, 8594], Nc0 = [0, z_], Oc0 = [0, bM], jc0 = [0, Sb2], Dc0 = [0, 8901], Rc0 = [0, 353], Fc0 = [0, 8218], Mc0 = [0, 8217], Lc0 = [0, 8250], qc0 = [0, 8835], Bc0 = [0, 8721], Uc0 = [0, 8838], Xc0 = [0, 8834], Gc0 = [0, 9824], Yc0 = [0, 8764], zc0 = [0, 962], Jc0 = [0, 963], Kc0 = [0, 8207], Hc0 = [0, 952], Wc0 = [0, 8756], Vc0 = [0, 964], $c0 = [0, e82], Qc0 = [0, 8839], Zc0 = [0, AC], xs0 = [0, fk], rs0 = [0, ol7], es0 = [0, 8657], ts0 = [0, 8482], ns0 = [0, lk], us0 = [0, 732], is0 = [0, Q32], fs0 = [0, 8201], cs0 = [0, 977], ss0 = [0, sM], as0 = [0, xl6], os0 = [0, 965], vs0 = [0, 978], ls0 = [0, IL], ps0 = [0, jS], ks0 = [0, WL], ms0 = [0, tR], hs0 = [0, 8205], ds0 = [0, 950], ys0 = [0, Bk], _s0 = [0, hF], ws0 = [0, QE], gs0 = [0, 958], bs0 = [0, 8593], Ts0 = [0, oD2], Es0 = [0, 8242], Ss0 = [0, kI], As0 = "unreachable regexp", Is0 = "unreachable token wholenumber", Ps0 = "unreachable token wholebigint", Cs0 = "unreachable token floatbigint", Ns0 = "unreachable token scinumber", Os0 = "unreachable token scibigint", js0 = "unreachable token hexnumber", Ds0 = "unreachable token hexbigint", Rs0 = "unreachable token legacyoctnumber", Fs0 = "unreachable token legacynonoctnumber", Ms0 = "unreachable token octnumber", Ls0 = "unreachable token octbigint", qs0 = "unreachable token bignumber", Bs0 = "unreachable token bigint", Us0 = "unreachable token", Xs0 = yL, Gs0 = [7, "#!"], Ys0 = "expected ?", zs0 = "unreachable string_escape", Js0 = V24, Ks0 = P63, Hs0 = P63, Ws0 = V24, Vs0 = KP, $s0 = EF, Qs0 = "n", Zs0 = "r", xa0 = "t", ra0 = zF, ea0 = P63, ta0 = Ao2, na0 = Ao2, ua0 = "unreachable id_char", ia0 = Ao2, fa0 = Ao2, ca0 = P63, sa0 = uL, aa0 = pD2, oa0 = gb2, va0 = [28, "token ILLEGAL"], la0 = [0, [11, "the identifier `", [2, 0, [12, 96, 0]]], "the identifier `%s`"], pa0 = [0, 1], ka0 = [0, 1], ma0 = OF, ha0 = OF, da0 = [0, [11, "an identifier. When exporting a ", [2, 0, [11, " as a named export, you must specify a ", [2, 0, [11, " name. Did you mean `export default ", [2, 0, [11, " ...`?", 0]]]]]]], "an identifier. When exporting a %s as a named export, you must specify a %s name. Did you mean `export default %s ...`?"], ya0 = Sh2, _a0 = "Peeking current location when not available", wa0 = [0, "src/parser/parser_env.ml", SR, 9], ga0 = "Internal Error: Tried to add_declared_private with outside of class scope.", ba0 = "Internal Error: `exit_class` called before a matching `enter_class`", Ta0 = rx2, Ea0 = [0, 0, 0], Sa0 = [0, 0, 0], Aa0 = "Parser_env.Try.Rollback", Ia0 = rx2, Pa0 = rx2, Ca0 = [0, H24, of3, $i9, CR, TM, V72, $24, qf3, h7, pc3, bc4, Rf4, Gi7, Du4, Fi8, hu4, F72, d7, Qu2, Uf3, J72, ui11, cf3, X72, Zn10, Zf2, _u4, vu4, $n8, ac3, Ps9, oc4, _f4, Sf3, Es8, Uc2, jc2, Q72, He10, t7, Wi7, s7, Qc2, Bi8, ic3, rs8, Ve9, Jc2, Uu4, fu4, k72, ss9, ii10, lu4, T7, Je11, ci10, w72, Of3, qu4, fc3, Ku4, pi11, q72, a7, If4, _72, fs39, Ge11, Lf3, Pi8, Zu2, M72, pu2, xf4, af3, P7, $f3, au3, Fc2, Zi7, m7, Bn7, jf3, Fu4, Y7, bi11, $c2, Ai9, Eu5, ge11, es8, x72, rc3, Vu4, bs8, Wn8, e72, o7, Kf2, Pc3, Vn6, r7, Xi8, Qf2, kf4, Lu4, sf3, Xn9, Vc3, zu3, ni10, Oi9, Hu3, $u4, si9, n7, Ii8, Zc2, Ui7, ys8, Gf3, Kc2, Xu3, Mu4, Ei10, Cc3, wu3, Kn10, hs8, df3, W72, Ki8, uc3, hf3, Nf3, uu4, du4, E7, ps7, L72, mf3, gu4, Au3, Cu3, Yc3, su3, os7, N7, oi10, G12, g7, Hn8, Bc2, ai10, pf3, ku3, xu3, Tf3, Jf2, ms8, Tc4, Dc2, z72, dc3, Bu3, zf3, f7, D7, Z72, Xf, I72, ds7, fi11, Mi7, Di8, Rc3, zn9, Yu2, xi11, eu4, vf4, ae10, lc3, is8, cc4, Ou5, Df4, as8, Vi8, Gn9, W24, Ri8, U72, cs7, St12, Ni9, qc3, gs7, tu3, i7, vi11, Ru4, di11, Qi8, S7, kc3, _c3, ti10, cu3, gf3, nc4, As8, Iu4, wf3, Qn8, vs9, Ci8, hi11, Hi9, ws8, bf3, v72, b7, Mf4, mi11, C72, Nc3, ts8, p7, t23, Un8, Mc2, yf3, Is8, A72, Yn7, Yi8, Ac3, Yf3, Xc2, Oc3, Ts6, O7, Hc2, Bf3, wc3, Ec4, bu4, ju4, j72, be10, nf3, Ju5, qn8, hc3, Ic3, wi10, Gc2, gi11, lf3, yu5, zi7, ou3, xc3, us8, Ke12, Xe11, rf3, ff3, ri9, Wc2, ns8, K72, mu3, Vf3, Sc4, _s7, Jn9, gc3, qi7, Hf, ru4, uf3, aR, H72, vD, qF, yc3, Ef3, ji6, y7, sc3, Wf3, B7, ei10, Si11, yi11, Wu2, Ff3, Gu3, Su3, Pf4, c7, li10, l7, Ji6, _i9, Cs6, We12, iu3, zc3, vn7, G72, R72, ki10, ls7, u7, Tu5, Pu3, Ti11, Lc2, tf3, vc4, tn9, Af3], Na0 = [0, ss9, fi11, _c3, Ni9, di11, Cs6, mf3, si9, sf3, z72, eu4, zc3, _u4, e72, Ve9, bs8, Mc2, W72, hf3, Ff3, Es8, Xi8, Z72, Ii8, lc3, I72, Ec4, O7, of3, Fu4, tu3, Ku4, jc2, hi11, m7, pf3, Ic3, Vf3, gs7, wc3, ys8, St12, V72, Mf4, $f3, lf3, Ji6, ti10, l7, f7, Ac3, Lf3, vi11, Hi9, rs8, Vc3, U72, Au3, fu4, Kn10, Ou5, bu4, ai10, Ui7, Si11, ji6, es8, Af3, pu2, Ki8, qi7, X72, Lu4, Zu2, ms8, Wf3, o7, Ge11, r7, Qi8, x72, Gf3, dc3, D7, qc3, G12, ff3, $n8, Oc3, E7, Nf3, Tc4, g7, kc3, su3, P7, tf3, Gc2, Yn7, Mu4, a7, Eu5, vc4, j72, _i9, T7, $24, Pi8, ou3, d7, w72, Ri8, wu3, ki10, Ci8, Q72, Rc3, Wu2, Oi9, ic3, be10, v72, vu4, H24, Hn8, Uc2, zi7, xf4, Du4, $c2, xc3, Yc3, If4, ls7, Gi7, Ef3, yu5, $u4, pc3, du4, Xf, Pu3, oc4, xi11, Cc3, Hc2, Nc3, Wn8, yf3, Bc2, bi11, mi11, Uf3, Ps9, Hf, qf3, _f4, ii10, Qu2, Uu4, Rf4, B7, is8, ws8, y7, oi10, S7, ru4, bc4, H72, Hu3, xu3, Sc4, u7, Ei10, Pf4, yi11, Jn9, L72, ps7, Y7, Tf3, gc3, Xu3, W24, Je11, F72, J72, Jc2, jf3, He10, Ke12, n7, cs7, Vu4, p7, ds7, ge11, iu3, As8, Bf3, cc4, sc3, Un8, cu3, Mi7, Ru4, hu4, Ts6, q72, fs39, fc3, Qn8, Vi8, uc3, qu4, Xc2, A72, ns8, ni10, lu4, Xn9, Df4, Pc3, Fc2, ac3, kf4, M72, Vn6, ui11, wi10, uu4, c7, gi11, G72, zn9, Bi8, ju4, Sf3, i7, _72, Gn9, Qf2, Su3, zu3, zf3, ei10, Cu3, vf4, nf3, Zf2, tn9, h7, Ju5, li10, Zn10, qn8, Bu3, Di8, ri9, ku3, Zi7, Zc2, Yu2, C72, gu4, Jf2, cf3, s7, Tu5, df3, K72, Bn7, Ti11, R72, t23, Ai9, uf3, ts8, hs8, Iu4, wf3, k72, Xe11, gf3, _s7, af3, Yi8, hc3, yc3, Wi7, Qc2, vs9, Is8, Fi8, bf3, os7, rc3, vn7, as8, Gu3, Dc2, Kf2, nc4, us8, pi11, ci10, Yf3, We12, Lc2, ae10, N7, rf3, $i9, mu3, Of3, b7, Wc2, au3, t7, Kc2], Oa0 = [0, ss9, fi11, _c3, Ni9, di11, Cs6, mf3, si9, sf3, z72, eu4, zc3, _u4, e72, Ve9, bs8, Mc2, W72, hf3, Ff3, Es8, Xi8, Z72, Ii8, lc3, I72, Ec4, O7, of3, Fu4, tu3, Ku4, jc2, hi11, m7, pf3, Ic3, Vf3, gs7, wc3, ys8, St12, V72, TM, Mf4, $f3, lf3, Ji6, ti10, l7, f7, Ac3, Lf3, vi11, Hi9, rs8, Vc3, U72, Au3, fu4, Kn10, Ou5, bu4, ai10, Ui7, Si11, ji6, es8, Af3, pu2, Ki8, qi7, vD, X72, Lu4, Zu2, ms8, Wf3, o7, Ge11, r7, Qi8, x72, Gf3, dc3, D7, qc3, G12, ff3, $n8, Oc3, E7, Nf3, Tc4, g7, kc3, su3, P7, tf3, Gc2, Yn7, Mu4, a7, Eu5, vc4, j72, _i9, T7, $24, Pi8, ou3, d7, w72, Ri8, wu3, ki10, Ci8, Q72, Rc3, Wu2, Oi9, ic3, be10, v72, vu4, H24, Hn8, Uc2, zi7, xf4, Du4, $c2, xc3, Yc3, If4, ls7, Gi7, Ef3, yu5, $u4, pc3, du4, Xf, Pu3, oc4, xi11, Cc3, Hc2, Nc3, Wn8, yf3, Bc2, bi11, mi11, Uf3, Ps9, Hf, qf3, _f4, ii10, Qu2, Uu4, Rf4, B7, is8, ws8, y7, oi10, S7, ru4, bc4, H72, Hu3, xu3, Sc4, u7, Ei10, Pf4, yi11, Jn9, L72, ps7, Y7, Tf3, gc3, Xu3, W24, Je11, F72, J72, Jc2, jf3, He10, Ke12, n7, cs7, Vu4, p7, ds7, ge11, iu3, As8, Bf3, cc4, sc3, Un8, cu3, Mi7, Ru4, hu4, Ts6, q72, fs39, fc3, Qn8, Vi8, uc3, qu4, Xc2, A72, ns8, ni10, lu4, Xn9, Df4, Pc3, Fc2, ac3, kf4, M72, Vn6, ui11, wi10, uu4, c7, gi11, G72, zn9, qF, Bi8, ju4, Sf3, i7, _72, Gn9, Qf2, Su3, zu3, zf3, ei10, Cu3, vf4, nf3, Zf2, aR, tn9, h7, Ju5, li10, Zn10, CR, qn8, Bu3, Di8, ri9, ku3, Zi7, Zc2, Yu2, C72, gu4, Jf2, cf3, s7, Tu5, df3, K72, Bn7, Ti11, R72, t23, Ai9, uf3, ts8, hs8, Iu4, wf3, k72, Xe11, gf3, _s7, af3, Yi8, hc3, yc3, Wi7, Qc2, vs9, Is8, Fi8, bf3, os7, rc3, vn7, as8, Gu3, Dc2, Kf2, nc4, us8, pi11, ci10, Yf3, We12, Lc2, ae10, N7, rf3, $i9, mu3, Of3, b7, Wc2, au3, t7, Kc2], ja0 = [0, H24, of3, $i9, V72, $24, qf3, h7, pc3, bc4, Rf4, Gi7, Du4, Fi8, hu4, F72, d7, Qu2, Uf3, J72, ui11, cf3, X72, Zn10, Zf2, _u4, vu4, $n8, ac3, Ps9, oc4, _f4, Sf3, Es8, Uc2, jc2, Q72, He10, t7, Wi7, s7, Qc2, Bi8, ic3, rs8, Ve9, Jc2, Uu4, fu4, k72, ss9, ii10, lu4, T7, Je11, ci10, w72, Of3, qu4, fc3, Ku4, pi11, q72, a7, If4, _72, fs39, Ge11, Lf3, Pi8, Zu2, M72, pu2, xf4, af3, P7, $f3, au3, Fc2, Zi7, m7, Bn7, jf3, Fu4, Y7, bi11, $c2, Ai9, Eu5, ge11, es8, x72, rc3, Vu4, bs8, Wn8, e72, o7, Kf2, Pc3, Vn6, r7, Xi8, Qf2, kf4, Lu4, sf3, Xn9, Vc3, zu3, ni10, Oi9, Hu3, $u4, si9, n7, Ii8, Zc2, Ui7, ys8, Gf3, Kc2, Xu3, Mu4, Ei10, Cc3, wu3, Kn10, hs8, df3, W72, Ki8, uc3, hf3, Nf3, uu4, du4, E7, ps7, L72, mf3, gu4, Au3, Cu3, Yc3, su3, os7, N7, oi10, G12, g7, Hn8, Bc2, ai10, pf3, ku3, xu3, Tf3, Jf2, ms8, Tc4, Dc2, z72, dc3, Bu3, zf3, f7, D7, Z72, Xf, I72, ds7, fi11, Mi7, Di8, Rc3, zn9, Yu2, xi11, eu4, vf4, ae10, lc3, is8, cc4, Ou5, Df4, as8, Vi8, Gn9, W24, Ri8, U72, cs7, St12, Ni9, qc3, gs7, tu3, i7, vi11, Ru4, di11, Qi8, S7, kc3, _c3, ti10, cu3, gf3, nc4, As8, Iu4, wf3, Qn8, vs9, Ci8, hi11, Hi9, ws8, bf3, v72, b7, Mf4, mi11, C72, Nc3, ts8, p7, t23, Un8, Mc2, yf3, Is8, A72, Yn7, Yi8, Ac3, Yf3, Xc2, Oc3, Ts6, O7, Hc2, Bf3, wc3, Ec4, bu4, ju4, j72, be10, nf3, Ju5, qn8, hc3, Ic3, wi10, Gc2, gi11, lf3, yu5, zi7, ou3, xc3, us8, Ke12, Xe11, rf3, ff3, ri9, Wc2, ns8, K72, mu3, Vf3, Sc4, _s7, Jn9, gc3, qi7, Hf, ru4, uf3, H72, yc3, Ef3, ji6, y7, sc3, Wf3, B7, ei10, Si11, yi11, Wu2, Ff3, Gu3, Su3, Pf4, c7, li10, l7, Ji6, _i9, Cs6, We12, iu3, zc3, vn7, G72, R72, ki10, ls7, u7, Tu5, Pu3, Ti11, Lc2, tf3, vc4, tn9, Af3], Da0 = $32, Ra0 = nm3, Fa0 = bo4, Ma0 = I63, La0 = Je11, qa0 = Ve9, Ba0 = $P, Ua0 = DT, Xa0 = Bv2, Ga0 = He10, Ya0 = um3, za0 = g62, Ja0 = Tp3, Ka0 = L82, Ha0 = No3, Wa0 = cl6, Va0 = Hv, $a0 = wa4, Qa0 = Pa5, Za0 = We12, xo0 = rk, ro0 = Rm3, eo0 = Xe11, to0 = Fv2, no0 = Tk, uo0 = U82, io0 = K82, fo0 = h62, co0 = mc3, so0 = Ue10, ao0 = Ck, oo0 = Yv, vo0 = E62, lo0 = Aa3, po0 = ga2, ko0 = j63, mo0 = dh2, ho0 = W24, do0 = fl6, yo0 = Oo5, _o0 = ae10, wo0 = Pk, go0 = Q63, bo0 = k63, To0 = W63, Eo0 = H24, So0 = Ke12, Ao0 = x43, Io0 = tc3, Po0 = zb2, Co0 = JS, No0 = Io5, Oo0 = Kv, jo0 = ik, Do0 = wk, Ro0 = be10, Fo0 = H32, Mo0 = $v, Lo0 = K32, qo0 = ga2, Bo0 = H63, Uo0 = hk, Xo0 = bk, Go0 = Hk, Yo0 = Lm3, zo0 = Xv, Jo0 = J63, Ko0 = tl4, Ho0 = V32, Wo0 = O62, Vo0 = rm3, $o0 = [0, Sh2], Qo0 = rx2, Zo0 = [19, 1], xv0 = [19, 0], rv0 = [0, 0], ev0 = Ta3, tv0 = [0, 0], nv0 = [0, "a type"], uv0 = [0, 0], iv0 = [0, "a number literal type"], fv0 = [0, 0], cv0 = J63, sv0 = tl4, av0 = V32, ov0 = "You should only call render_type after making sure the next token is a renders variant", vv0 = [0, [0, 0, 0, 0, 0]], lv0 = [0, 0, 0, 0], pv0 = [0, 1], kv0 = [0, il7, 1466, 6], mv0 = [0, il7, 1469, 6], hv0 = [0, il7, 1572, 8], dv0 = [0, 1], yv0 = [0, il7, 1589, 8], _v0 = "Can not have both `static` and `proto`", wv0 = Ue10, gv0 = rw, bv0 = [0, 0], Tv0 = [0, "the end of a tuple type (no trailing comma is allowed in inexact tuple type)."], Ev0 = [0, il7, Sv2, 15], Sv0 = [0, il7, sP, 15], Av0 = ze11, Iv0 = ze11, Pv0 = Kk, Cv0 = G63, Nv0 = [0, [11, "Failure while looking up ", [2, 0, [11, ". Index: ", [4, 0, 0, 0, [11, ". Length: ", [4, 0, 0, 0, [12, 46, 0]]]]]]], "Failure while looking up %s. Index: %d. Length: %d."], Ov0 = [0, 0, 0, 0], jv0 = "Offset_utils.Offset_lookup_failed", Dv0 = m12, Rv0 = kD, Fv0 = G63, Mv0 = Kk, Lv0 = wD, qv0 = G63, Bv0 = Kk, Uv0 = vR, Xv0 = Yx, Gv0 = "normal", Yv0 = tc3, zv0 = "jsxTag", Jv0 = "jsxChild", Kv0 = "template", Hv0 = nD2, Wv0 = "context", Vv0 = tc3, $v0 = [6, 0], Qv0 = [0, 0], Zv0 = [0, 1], x30 = [0, 4], r30 = [0, 2], e30 = [0, 3], t30 = [0, 0], n30 = ze11, u30 = [0, 0, 0, 0, 0, 0], i30 = [0, 0], f30 = [0, OM], c30 = [0, 1], s30 = [0, 0], a30 = Ta3, o30 = [0, 73], v30 = [0, 84], l30 = aM, p30 = rE, k30 = "exports", m30 = K63, h30 = [0, rx2, rx2, 0], d30 = [0, AD], y30 = [0, 84], _30 = [0, "a declaration, statement or export specifiers"], w30 = [0, 1], g30 = [0, I9, 1971, 21], b30 = [0, "the keyword `as`"], T30 = [0, 29], E30 = [0, 29], S30 = [0, 0], A30 = [0, 1], I30 = [0, AD], P30 = [0, "the keyword `from`"], C30 = [0, rx2, rx2, 0], N30 = "Label", O30 = [0, OM], j30 = [0, 0, 0], D30 = [0, 38], R30 = [0, I9, 372, 22], F30 = [0, 37], M30 = [0, I9, 391, 22], L30 = [0, 0], q30 = "the token `;`", B30 = [0, 0], U30 = [0, 0], X30 = FR, G30 = [0, Sh2], Y30 = FR, z30 = [28, St12], J30 = Ta3, K30 = [0, 73], H30 = [0, rx2, 0], W30 = It10, V30 = [0, rx2, 0], $30 = [0, 73], Q30 = [0, 73], Z30 = $32, xl0 = [0, rx2, 0], rl0 = [0, 0, 0], el0 = [0, 0, 0], tl0 = [0, [0, 8]], nl0 = [0, [0, 7]], ul0 = [0, [0, 6]], il0 = [0, [0, 10]], fl0 = [0, [0, 9]], cl0 = [0, [0, 11]], sl0 = [0, [0, 5]], al0 = [0, [0, 4]], ol0 = [0, [0, 2]], vl0 = [0, [0, 3]], ll0 = [0, [0, 1]], pl0 = [0, [0, 0]], kl0 = [0, [0, 12]], ml0 = [0, [0, 13]], hl0 = [0, [0, 14]], dl0 = [0, 0], yl0 = [0, 1], _l0 = [0, 0], wl0 = [0, 2], gl0 = [0, 3], bl0 = [0, 7], Tl0 = [0, 6], El0 = [0, 4], Sl0 = [0, 5], Al0 = [0, 1], Il0 = [0, 0], Pl0 = [0, 1], Cl0 = [0, 0], Nl0 = fl6, Ol0 = [0, "either a call or access of `super`"], jl0 = fl6, Dl0 = W24, Rl0 = w63, Fl0 = w63, Ml0 = [0, 2], Ll0 = [0, 0], ql0 = [0, 1], Bl0 = Yv, Ul0 = [0, "the identifier `target`"], Xl0 = [0, 0], Gl0 = [0, 1], Yl0 = [0, 0], zl0 = [0, 0], Jl0 = [0, 2], Kl0 = [0, 2], Hl0 = [0, 1], Wl0 = [0, 73], Vl0 = P63, $l0 = uL, Ql0 = gb2, Zl0 = gb2, x60 = pD2, r60 = [0, 0], e60 = [0, 1], t60 = [0, 0], n60 = se11, u60 = se11, i60 = [0, "a regular expression"], f60 = rx2, c60 = rx2, s60 = rx2, a60 = [0, 81], o60 = [0, "src/parser/expression_parser.ml", 1550, 17], v60 = [0, "a template literal part"], l60 = [0, [0, rx2, rx2], 1], p60 = Pv2, k60 = [0, 6], m60 = [0, [0, 17, [0, 2]]], h60 = [0, [0, 18, [0, 3]]], d60 = [0, [0, 19, [0, 4]]], y60 = [0, [0, 0, [0, 5]]], _60 = [0, [0, 1, [0, 5]]], w60 = [0, [0, 2, [0, 5]]], g60 = [0, [0, 3, [0, 5]]], b60 = [0, [0, 5, [0, 6]]], T60 = [0, [0, 7, [0, 6]]], E60 = [0, [0, 4, [0, 6]]], S60 = [0, [0, 6, [0, 6]]], A60 = [0, [0, 8, [0, 7]]], I60 = [0, [0, 9, [0, 7]]], P60 = [0, [0, 10, [0, 7]]], C60 = [0, [0, 11, [0, 8]]], N60 = [0, [0, 12, [0, 8]]], O60 = [0, [0, 15, [0, 9]]], j60 = [0, [0, 13, [0, 9]]], D60 = [0, [0, 14, [1, 10]]], R60 = [0, [0, 16, [0, 9]]], F60 = [0, [0, 21, [0, 6]]], M60 = [0, [0, 20, [0, 6]]], L60 = [23, Dw], q60 = [13, "JSX fragment"], B60 = Iv2, U60 = ln8, X60 = [0, sn9], G60 = [1, sn9], Y60 = [0, rx2, rx2, 0], z60 = [0, Sh2], J60 = rx2, K60 = [0, "a numeric or string literal"], H60 = [0, rx2, '""', 0], W60 = [0, 0], V60 = [0, "a number literal"], $60 = [0, [0, 0, V24, 0]], Q60 = [0, 84], Z60 = [21, dM], x40 = [21, R63], r40 = [0, 0, 0], e40 = h62, t40 = [0, rx2, 0], n40 = "unexpected PrivateName in Property, expected a PrivateField", u40 = [0, 0, 0], i40 = Sa2, f40 = "Must be one of the above", c40 = [0, 1], s40 = [0, 1], a40 = [0, 1], o40 = Sa2, v40 = Sa2, l40 = p_2, p40 = "Internal Error: private name found in object props", k40 = [0, 0, 0, 0], m40 = [0, cF2], h40 = [19, [0, 0]], d40 = [0, cF2], y40 = ug2, _40 = "Nooo: ", w40 = Fv2, g40 = "Parser error: No such thing as an expression pattern!", b40 = [0, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], T40 = [0, "src/parser/parser_flow.ml", fk, 28], E40 = [0, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], S40 = kD, A40 = Yx, I40 = $D, P40 = eR, C40 = eR, N40 = $D, O40 = tc3, j40 = sD2, D40 = w12, R40 = m12, F40 = "InterpreterDirective", M40 = "interpreter", L40 = "Program", q40 = w12, B40 = "RecordBody", U40 = m12, X40 = Y12, G40 = en10, Y40 = "RecordStaticProperty", z40 = "defaultValue", J40 = Y12, K40 = en10, H40 = "RecordProperty", W40 = S62, V40 = "BreakStatement", $40 = S62, Q40 = "ContinueStatement", Z40 = "DebuggerStatement", xp0 = Wv, rp0 = "DeclareExportAllDeclaration", ep0 = Wv, tp0 = l_2, np0 = IE, up0 = Fv2, ip0 = "DeclareExportDeclaration", fp0 = w12, cp0 = Yr10, sp0 = "DeclareModule", ap0 = Y12, op0 = "DeclareModuleExports", vp0 = w12, lp0 = Yr10, pp0 = NL, kp0 = "DeclareNamespace", mp0 = Z32, hp0 = w12, dp0 = "DoWhileStatement", yp0 = "EmptyStatement", _p0 = cS, wp0 = IE, gp0 = "ExportDefaultDeclaration", bp0 = cS, Tp0 = cA, Ep0 = Wv, Sp0 = "ExportAllDeclaration", Ap0 = cS, Ip0 = Wv, Pp0 = l_2, Cp0 = IE, Np0 = "ExportNamedDeclaration", Op0 = "directive", jp0 = t23, Dp0 = "ExpressionStatement", Rp0 = w12, Fp0 = "update", Mp0 = Z32, Lp0 = ks8, qp0 = "ForStatement", Bp0 = "each", Up0 = w12, Xp0 = fn9, Gp0 = Ea5, Yp0 = "ForInStatement", zp0 = Kv, Jp0 = w12, Kp0 = fn9, Hp0 = Ea5, Wp0 = "ForOfStatement", Vp0 = lR, $p0 = rP, Qp0 = Z32, Zp0 = "IfStatement", xk0 = tc3, rk0 = Aa3, ek0 = m12, tk0 = XD, nk0 = Wv, uk0 = l_2, ik0 = "ImportDeclaration", fk0 = w12, ck0 = S62, sk0 = "LabeledStatement", ak0 = J92, ok0 = $12, vk0 = "MatchStatement", lk0 = "RecordImplements", pk0 = w12, kk0 = Oo5, mk0 = B24, hk0 = Yr10, dk0 = "RecordDeclaration", yk0 = $12, _k0 = "ReturnStatement", wk0 = J92, gk0 = "discriminant", bk0 = "SwitchStatement", Tk0 = $12, Ek0 = "ThrowStatement", Sk0 = "finalizer", Ak0 = "handler", Ik0 = vn7, Pk0 = "TryStatement", Ck0 = w12, Nk0 = Z32, Ok0 = "WhileStatement", jk0 = w12, Dk0 = Dp3, Rk0 = "WithStatement", Fk0 = x9, Mk0 = $12, Lk0 = NA, qk0 = x9, Bk0 = $12, Uk0 = NA, Xk0 = KT, Gk0 = "ArrayExpression", Yk0 = B24, zk0 = gh2, Jk0 = t23, Kk0 = Ge11, Hk0 = Ey2, Wk0 = Io5, Vk0 = w12, $k0 = on8, Qk0 = Yr10, Zk0 = "ArrowFunctionExpression", x80 = t23, r80 = "AsConstExpression", e80 = Y12, t80 = t23, n80 = "AsExpression", u80 = p_2, i80 = fn9, f80 = Ea5, c80 = Gv, s80 = "AssignmentExpression", a80 = fn9, o80 = Ea5, v80 = Gv, l80 = "BinaryExpression", p80 = "CallExpression", k80 = lR, m80 = rP, h80 = Z32, d80 = "ConditionalExpression", y80 = Wv, _80 = "ImportExpression", w80 = LF, g80 = CM, b80 = Dw, T80 = fn9, E80 = Ea5, S80 = Gv, A80 = "LogicalExpression", I80 = J92, P80 = $12, C80 = "MatchExpression", N80 = "MemberExpression", O80 = Tm3, j80 = w63, D80 = "MetaProperty", R80 = Qb2, F80 = h8, M80 = fR, L80 = "NewExpression", q80 = A63, B80 = "ObjectExpression", U80 = ft9, X80 = "OptionalCallExpression", G80 = ft9, Y80 = "OptionalMemberExpression", z80 = rM, J80 = "SequenceExpression", K80 = "Super", H80 = "ThisExpression", W80 = Y12, V80 = t23, $80 = "TypeCastExpression", Q80 = Y12, Z80 = t23, xm0 = "SatisfiesExpression", rm0 = x9, em0 = $12, tm0 = NA, nm0 = ze11, um0 = $72, im0 = SD, fm0 = VL, cm0 = Aa3, sm0 = ga2, am0 = E62, om0 = "matched above", vm0 = $12, lm0 = XR, pm0 = Gv, km0 = "UnaryExpression", mm0 = $12, hm0 = "AwaitExpression", dm0 = kR, ym0 = ZM, _m0 = XR, wm0 = $12, gm0 = Gv, bm0 = "UpdateExpression", Tm0 = "delegate", Em0 = $12, Sm0 = "YieldExpression", Am0 = "MatchExpressionCase", Im0 = "guard", Pm0 = w12, Cm0 = ge11, Nm0 = "MatchStatementCase", Om0 = "literal", jm0 = "MatchLiteralPattern", Dm0 = "MatchWildcardPattern", Rm0 = ze11, Fm0 = $72, Mm0 = $12, Lm0 = Gv, qm0 = "MatchUnaryPattern", Bm0 = "MatchObjectPattern", Um0 = "MatchInstanceObjectPattern", Xm0 = DF, Gm0 = _a6, Ym0 = "MatchInstancePattern", zm0 = "patterns", Jm0 = "MatchOrPattern", Km0 = Ih2, Hm0 = ge11, Wm0 = "MatchAsPattern", Vm0 = Yr10, $m0 = "MatchIdentifierPattern", Qm0 = Tm3, Zm0 = "base", xh0 = "MatchMemberPattern", rh0 = ba3, eh0 = Yr10, th0 = "MatchBindingPattern", nh0 = p62, uh0 = KT, ih0 = "MatchArrayPattern", fh0 = T63, ch0 = ge11, sh0 = en10, ah0 = VR, oh0 = T63, vh0 = ge11, lh0 = en10, ph0 = VR, kh0 = p62, mh0 = A63, hh0 = $12, dh0 = "MatchRestPattern", yh0 = "Unexpected FunctionDeclaration with BodyExpression", _h0 = "HookDeclaration", wh0 = t23, gh0 = Ge11, bh0 = Ey2, Th0 = Io5, Eh0 = "FunctionDeclaration", Sh0 = B24, Ah0 = gh2, Ih0 = w12, Ph0 = on8, Ch0 = Yr10, Nh0 = "Unexpected FunctionExpression with BodyExpression", Oh0 = B24, jh0 = gh2, Dh0 = t23, Rh0 = Ge11, Fh0 = Ey2, Mh0 = Io5, Lh0 = w12, qh0 = on8, Bh0 = Yr10, Uh0 = "FunctionExpression", Xh0 = ft9, Gh0 = Y12, Yh0 = Ye10, zh0 = US, Jh0 = ft9, Kh0 = Y12, Hh0 = Ye10, Wh0 = "PrivateIdentifier", Vh0 = ft9, $h0 = Y12, Qh0 = Ye10, Zh0 = US, xd0 = rP, rd0 = Z32, ed0 = "SwitchCase", td0 = w12, nd0 = "param", ud0 = "CatchClause", id0 = w12, fd0 = "BlockStatement", cd0 = ba3, sd0 = Yr10, ad0 = "DeclareVariable", od0 = "DeclareHook", vd0 = Ge11, ld0 = "DeclareFunction", pd0 = Yr10, kd0 = lM, md0 = Oo5, hd0 = mc3, dd0 = w12, yd0 = B24, _d0 = Yr10, wd0 = "DeclareClass", gd0 = B24, bd0 = f_2, Td0 = on8, Ed0 = p62, Sd0 = on8, Ad0 = Yr10, Id0 = "DeclareComponent", Pd0 = B24, Cd0 = f_2, Nd0 = p62, Od0 = on8, jd0 = "ComponentTypeAnnotation", Dd0 = ft9, Rd0 = Y12, Fd0 = Ye10, Md0 = "ComponentTypeParameter", Ld0 = w12, qd0 = Yr10, Bd0 = "DeclareEnum", Ud0 = mc3, Xd0 = w12, Gd0 = B24, Yd0 = Yr10, zd0 = "DeclareInterface", Jd0 = m12, Kd0 = tc3, Hd0 = cA, Wd0 = "ExportNamespaceSpecifier", Vd0 = fn9, $d0 = B24, Qd0 = Yr10, Zd0 = "DeclareTypeAlias", x50 = fn9, r50 = B24, e50 = Yr10, t50 = "TypeAlias", n50 = "DeclareOpaqueType", u50 = "OpaqueType", i50 = "supertype", f50 = "upperBound", c50 = "lowerBound", s50 = "impltype", a50 = B24, o50 = Yr10, v50 = "ClassDeclaration", l50 = "ClassExpression", p50 = g8, k50 = Oo5, m50 = "superTypeParameters", h50 = "superClass", d50 = B24, y50 = w12, _50 = Yr10, w50 = t23, g50 = "Decorator", b50 = B24, T50 = Yr10, E50 = "ClassImplements", S50 = w12, A50 = "ClassBody", I50 = w12, P50 = "StaticBlock", C50 = _a6, N50 = V63, O50 = Nv2, j50 = nl5, D50 = g8, R50 = W32, F50 = Ue10, M50 = ba3, L50 = m12, q50 = en10, B50 = "MethodDefinition", U50 = x43, X50 = g8, G50 = $24, Y50 = Ue10, z50 = W32, J50 = Y12, K50 = m12, H50 = en10, W50 = jL, V50 = "Internal Error: Private name found in class prop", $50 = x43, Q50 = g8, Z50 = $24, xy0 = Ue10, ry0 = W32, ey0 = Y12, ty0 = m12, ny0 = en10, uy0 = jL, iy0 = B24, fy0 = f_2, cy0 = on8, sy0 = Yr10, ay0 = w12, oy0 = "ComponentDeclaration", vy0 = $12, ly0 = OE, py0 = fn9, ky0 = Ea5, my0 = jm3, hy0 = T63, dy0 = X63, yy0 = Ye10, _y0 = "ComponentParameter", wy0 = ks8, gy0 = Yr10, by0 = "EnumBigIntMember", Ty0 = Yr10, Ey0 = LR, Sy0 = ks8, Ay0 = Yr10, Iy0 = "EnumStringMember", Py0 = Yr10, Cy0 = LR, Ny0 = ks8, Oy0 = Yr10, jy0 = "EnumNumberMember", Dy0 = ks8, Ry0 = Yr10, Fy0 = "EnumBooleanMember", My0 = B63, Ly0 = Am3, qy0 = y62, By0 = "EnumBooleanBody", Uy0 = B63, Xy0 = Am3, Gy0 = y62, Yy0 = "EnumNumberBody", zy0 = B63, Jy0 = Am3, Ky0 = y62, Hy0 = "EnumStringBody", Wy0 = B63, Vy0 = y62, $y0 = "EnumSymbolBody", Qy0 = B63, Zy0 = Am3, x90 = y62, r90 = "EnumBigIntBody", e90 = w12, t90 = Yr10, n90 = "EnumDeclaration", u90 = mc3, i90 = w12, f90 = B24, c90 = Yr10, s90 = "InterfaceDeclaration", a90 = B24, o90 = Yr10, v90 = "InterfaceExtends", l90 = Y12, p90 = A63, k90 = "ObjectPattern", m90 = Y12, h90 = KT, d90 = "ArrayPattern", y90 = fn9, _90 = Ea5, w90 = jm3, g90 = Y12, b90 = Ye10, T90 = US, E90 = $12, S90 = OE, A90 = $12, I90 = OE, P90 = fn9, C90 = Ea5, N90 = jm3, O90 = ks8, j90 = ks8, D90 = Nv2, R90 = nl5, F90 = VD, M90 = W32, L90 = T63, q90 = V63, B90 = ba3, U90 = m12, X90 = en10, G90 = mF, Y90 = $12, z90 = iR, J90 = fn9, K90 = Ea5, H90 = jm3, W90 = W32, V90 = T63, $90 = V63, Q90 = ba3, Z90 = m12, x_0 = en10, r_0 = mF, e_0 = $12, t_0 = iR, n_0 = At12, u_0 = m12, i_0 = J32, f_0 = rx2, c_0 = At12, s_0 = $v, a_0 = m12, o_0 = J32, v_0 = At12, l_0 = m12, p_0 = J32, k_0 = Pa5, m_0 = wa4, h_0 = At12, d_0 = m12, y_0 = J32, __0 = "flags", w_0 = ge11, g_0 = "regex", b_0 = At12, T_0 = m12, E_0 = J32, S_0 = At12, A_0 = m12, I_0 = J32, P_0 = rM, C_0 = "quasis", N_0 = "TemplateLiteral", O_0 = "cooked", j_0 = At12, D_0 = "tail", R_0 = m12, F_0 = "TemplateElement", M_0 = "quasi", L_0 = "tag", q_0 = "TaggedTemplateExpression", B_0 = ba3, U_0 = "declarations", X_0 = "VariableDeclaration", G_0 = ks8, Y_0 = Yr10, z_0 = "VariableDeclarator", J_0 = "plus", K_0 = nM, H_0 = Xv, W_0 = bo4, V_0 = ng2, $_0 = "in-out", Q_0 = ba3, Z_0 = "Variance", xw0 = "AnyTypeAnnotation", rw0 = "MixedTypeAnnotation", ew0 = "EmptyTypeAnnotation", tw0 = "VoidTypeAnnotation", nw0 = "NullLiteralTypeAnnotation", uw0 = "SymbolTypeAnnotation", iw0 = "NumberTypeAnnotation", fw0 = "BigIntTypeAnnotation", cw0 = "StringTypeAnnotation", sw0 = "BooleanTypeAnnotation", aw0 = Y12, ow0 = "NullableTypeAnnotation", vw0 = "UnknownTypeAnnotation", lw0 = "NeverTypeAnnotation", pw0 = "UndefinedTypeAnnotation", kw0 = ba3, mw0 = Y12, hw0 = "parameterName", dw0 = "TypePredicate", yw0 = "HookTypeAnnotation", _w0 = "FunctionTypeAnnotation", ww0 = Bv2, gw0 = B24, bw0 = p62, Tw0 = gh2, Ew0 = on8, Sw0 = ft9, Aw0 = Y12, Iw0 = Ye10, Pw0 = fM, Cw0 = ft9, Nw0 = Y12, Ow0 = Ye10, jw0 = fM, Dw0 = [0, 0, 0, 0, 0], Rw0 = "internalSlots", Fw0 = "callProperties", Mw0 = "indexers", Lw0 = A63, qw0 = "exact", Bw0 = tL, Uw0 = "ObjectTypeAnnotation", Xw0 = VD, Gw0 = "There should not be computed object type property keys", Yw0 = ks8, zw0 = Nv2, Jw0 = nl5, Kw0 = ba3, Hw0 = $24, Ww0 = rw, Vw0 = Ue10, $w0 = ft9, Qw0 = V63, Zw0 = m12, xg0 = en10, rg0 = "ObjectTypeProperty", eg0 = $12, tg0 = "ObjectTypeSpreadProperty", ng0 = $24, ug0 = Ue10, ig0 = m12, fg0 = en10, cg0 = Yr10, sg0 = "ObjectTypeIndexer", ag0 = Ue10, og0 = m12, vg0 = "ObjectTypeCallProperty", lg0 = ft9, pg0 = $24, kg0 = "sourceType", mg0 = "propType", hg0 = "keyTparam", dg0 = "ObjectTypeMappedTypeProperty", yg0 = m12, _g0 = V63, wg0 = Ue10, gg0 = ft9, bg0 = Yr10, Tg0 = "ObjectTypeInternalSlot", Eg0 = w12, Sg0 = mc3, Ag0 = "InterfaceTypeAnnotation", Ig0 = QM, Pg0 = "ArrayTypeAnnotation", Cg0 = "falseType", Ng0 = "trueType", Og0 = "extendsType", jg0 = "checkType", Dg0 = "ConditionalTypeAnnotation", Rg0 = "typeParameter", Fg0 = "InferTypeAnnotation", Mg0 = Yr10, Lg0 = UF, qg0 = "QualifiedTypeIdentifier", Bg0 = B24, Ug0 = Yr10, Xg0 = "GenericTypeAnnotation", Gg0 = "indexType", Yg0 = "objectType", zg0 = "IndexedAccessType", Jg0 = ft9, Kg0 = "OptionalIndexedAccessType", Hg0 = w_2, Wg0 = "UnionTypeAnnotation", Vg0 = w_2, $g0 = "IntersectionTypeAnnotation", Qg0 = h8, Zg0 = $12, xb0 = "TypeofTypeAnnotation", rb0 = Yr10, eb0 = UF, tb0 = "QualifiedTypeofIdentifier", nb0 = $12, ub0 = "KeyofTypeAnnotation", ib0 = el5, fb0 = jF, cb0 = uF2, sb0 = Y12, ab0 = Gv, ob0 = "TypeOperator", vb0 = Xv, lb0 = tL, pb0 = "elementTypes", kb0 = "TupleTypeAnnotation", mb0 = ft9, hb0 = $24, db0 = QM, yb0 = S62, _b0 = "TupleTypeLabeledElement", wb0 = Y12, gb0 = S62, bb0 = "TupleTypeSpreadElement", Tb0 = At12, Eb0 = m12, Sb0 = "StringLiteralTypeAnnotation", Ab0 = At12, Ib0 = m12, Pb0 = "NumberLiteralTypeAnnotation", Cb0 = At12, Nb0 = m12, Ob0 = "BigIntLiteralTypeAnnotation", jb0 = Pa5, Db0 = wa4, Rb0 = At12, Fb0 = m12, Mb0 = "BooleanLiteralTypeAnnotation", Lb0 = "ExistsTypeAnnotation", qb0 = Y12, Bb0 = vF, Ub0 = Y12, Xb0 = vF, Gb0 = on8, Yb0 = "TypeParameterDeclaration", zb0 = "usesExtendsBound", Jb0 = Fv2, Kb0 = $24, Hb0 = No3, Wb0 = "bound", Vb0 = Ye10, $b0 = "TypeParameter", Qb0 = on8, Zb0 = mM, xT0 = on8, rT0 = mM, eT0 = Pv2, tT0 = OL, nT0 = "closingElement", uT0 = "openingElement", iT0 = "JSXElement", fT0 = "closingFragment", cT0 = OL, sT0 = "openingFragment", aT0 = "JSXFragment", oT0 = h8, vT0 = "selfClosing", lT0 = "attributes", pT0 = Ye10, kT0 = "JSXOpeningElement", mT0 = "JSXOpeningFragment", hT0 = Ye10, dT0 = "JSXClosingElement", yT0 = "JSXClosingFragment", _T0 = m12, wT0 = Ye10, gT0 = "JSXAttribute", bT0 = $12, TT0 = "JSXSpreadAttribute", ET0 = "JSXEmptyExpression", ST0 = t23, AT0 = "JSXExpressionContainer", IT0 = t23, PT0 = "JSXSpreadChild", CT0 = At12, NT0 = m12, OT0 = "JSXText", jT0 = Tm3, DT0 = Dp3, RT0 = "JSXMemberExpression", FT0 = Ye10, MT0 = rE, LT0 = "JSXNamespacedName", qT0 = Ye10, BT0 = "JSXIdentifier", UT0 = cA, XT0 = X63, GT0 = "ExportSpecifier", YT0 = X63, zT0 = "ImportDefaultSpecifier", JT0 = X63, KT0 = "ImportNamespaceSpecifier", HT0 = XD, WT0 = X63, VT0 = "imported", $T0 = "ImportSpecifier", QT0 = "Line", ZT0 = "Block", xE0 = m12, rE0 = m12, eE0 = "DeclaredPredicate", tE0 = "InferredPredicate", nE0 = Qb2, uE0 = h8, iE0 = fR, fE0 = W32, cE0 = Tm3, sE0 = Dp3, aE0 = "message", oE0 = Yx, vE0 = wD, lE0 = vR, pE0 = Wv, kE0 = G63, mE0 = Kk, hE0 = [0, ss9, fi11, _c3, Ni9, di11, Cs6, mf3, si9, sf3, z72, eu4, zc3, _u4, e72, Ve9, bs8, Mc2, W72, hf3, Ff3, Es8, Xi8, Z72, Ii8, lc3, I72, Ec4, O7, of3, Fu4, tu3, Ku4, jc2, hi11, m7, pf3, Ic3, Vf3, gs7, wc3, ys8, St12, V72, Mf4, $f3, lf3, Ji6, ti10, l7, f7, Ac3, Lf3, vi11, Hi9, rs8, Vc3, U72, Au3, fu4, Kn10, Ou5, bu4, ai10, Ui7, Si11, ji6, es8, Af3, pu2, Ki8, qi7, X72, Lu4, Zu2, ms8, Wf3, o7, Ge11, r7, Qi8, x72, Gf3, dc3, D7, qc3, G12, ff3, $n8, Oc3, E7, Nf3, Tc4, g7, kc3, su3, P7, tf3, Gc2, Yn7, Mu4, a7, Eu5, vc4, j72, _i9, T7, $24, Pi8, ou3, d7, w72, Ri8, wu3, ki10, Ci8, Q72, Rc3, Wu2, Oi9, ic3, be10, v72, vu4, H24, Hn8, Uc2, zi7, xf4, Du4, $c2, xc3, Yc3, If4, ls7, Gi7, Ef3, yu5, $u4, pc3, du4, Xf, Pu3, oc4, xi11, Cc3, Hc2, Nc3, Wn8, yf3, Bc2, bi11, mi11, Uf3, Ps9, Hf, qf3, _f4, ii10, Qu2, Uu4, Rf4, B7, is8, ws8, y7, oi10, S7, ru4, bc4, H72, Hu3, xu3, Sc4, u7, Ei10, Pf4, yi11, Jn9, L72, ps7, Y7, Tf3, gc3, Xu3, W24, Je11, F72, J72, Jc2, jf3, He10, Ke12, n7, cs7, Vu4, p7, ds7, ge11, iu3, As8, Bf3, cc4, sc3, Un8, cu3, Mi7, Ru4, hu4, Ts6, q72, fs39, fc3, Qn8, Vi8, uc3, qu4, Xc2, A72, ns8, ni10, lu4, Xn9, Df4, Pc3, Fc2, ac3, kf4, M72, Vn6, ui11, wi10, uu4, c7, gi11, G72, zn9, Bi8, ju4, Sf3, i7, _72, Gn9, Qf2, Su3, zu3, zf3, ei10, Cu3, vf4, nf3, Zf2, tn9, h7, Ju5, li10, Zn10, qn8, Bu3, Di8, ri9, ku3, Zi7, Zc2, Yu2, C72, gu4, Jf2, cf3, s7, Tu5, df3, K72, Bn7, Ti11, R72, t23, Ai9, uf3, ts8, hs8, Iu4, wf3, k72, Xe11, gf3, _s7, af3, Yi8, hc3, yc3, Wi7, Qc2, vs9, Is8, Fi8, bf3, os7, rc3, vn7, as8, Gu3, Dc2, Kf2, nc4, us8, pi11, ci10, Yf3, We12, Lc2, ae10, N7, rf3, $i9, mu3, Of3, b7, Wc2, au3, t7, Kc2], dE0 = [0, H24, of3, $i9, V72, $24, qf3, h7, pc3, bc4, Rf4, Gi7, Du4, Fi8, hu4, F72, d7, Qu2, Uf3, J72, ui11, cf3, X72, Zn10, Zf2, _u4, vu4, $n8, ac3, Ps9, oc4, _f4, Sf3, Es8, Uc2, jc2, Q72, He10, t7, Wi7, s7, Qc2, Bi8, ic3, rs8, Ve9, Jc2, Uu4, fu4, k72, ss9, ii10, lu4, T7, Je11, ci10, w72, Of3, qu4, fc3, Ku4, pi11, q72, a7, If4, _72, fs39, Ge11, Lf3, Pi8, Zu2, M72, pu2, xf4, af3, P7, $f3, au3, Fc2, Zi7, m7, Bn7, jf3, Fu4, Y7, bi11, $c2, Ai9, Eu5, ge11, es8, x72, rc3, Vu4, bs8, Wn8, e72, o7, Kf2, Pc3, Vn6, r7, Xi8, Qf2, kf4, Lu4, sf3, Xn9, Vc3, zu3, ni10, Oi9, Hu3, $u4, si9, n7, Ii8, Zc2, Ui7, ys8, Gf3, Kc2, Xu3, Mu4, Ei10, Cc3, wu3, Kn10, hs8, df3, W72, Ki8, uc3, hf3, Nf3, uu4, du4, E7, ps7, L72, mf3, gu4, Au3, Cu3, Yc3, su3, os7, N7, oi10, G12, g7, Hn8, Bc2, ai10, pf3, ku3, xu3, Tf3, Jf2, ms8, Tc4, Dc2, z72, dc3, Bu3, zf3, f7, D7, Z72, Xf, I72, ds7, fi11, Mi7, Di8, Rc3, zn9, Yu2, xi11, eu4, vf4, ae10, lc3, is8, cc4, Ou5, Df4, as8, Vi8, Gn9, W24, Ri8, U72, cs7, St12, Ni9, qc3, gs7, tu3, i7, vi11, Ru4, di11, Qi8, S7, kc3, _c3, ti10, cu3, gf3, nc4, As8, Iu4, wf3, Qn8, vs9, Ci8, hi11, Hi9, ws8, bf3, v72, b7, Mf4, mi11, C72, Nc3, ts8, p7, t23, Un8, Mc2, yf3, Is8, A72, Yn7, Yi8, Ac3, Yf3, Xc2, Oc3, Ts6, O7, Hc2, Bf3, wc3, Ec4, bu4, ju4, j72, be10, nf3, Ju5, qn8, hc3, Ic3, wi10, Gc2, gi11, lf3, yu5, zi7, ou3, xc3, us8, Ke12, Xe11, rf3, ff3, ri9, Wc2, ns8, K72, mu3, Vf3, Sc4, _s7, Jn9, gc3, qi7, Hf, ru4, uf3, H72, yc3, Ef3, ji6, y7, sc3, Wf3, B7, ei10, Si11, yi11, Wu2, Ff3, Gu3, Su3, Pf4, c7, li10, l7, Ji6, _i9, Cs6, We12, iu3, zc3, vn7, G72, R72, ki10, ls7, u7, Tu5, Pu3, Ti11, Lc2, tf3, vc4, tn9, Af3], yE0 = [0, Af3, tn9, vc4, tf3, Lc2, Ti11, Pu3, Tu5, u7, ls7, ki10, R72, G72, vn7, zc3, iu3, We12, Cs6, _i9, Ji6, l7, li10, c7, Pf4, Su3, Gu3, Ff3, Wu2, yi11, Si11, ei10, B7, Wf3, sc3, y7, ji6, Ef3, yc3, H72, uf3, ru4, Hf, qi7, gc3, Jn9, _s7, Sc4, Vf3, mu3, K72, ns8, Wc2, ri9, ff3, rf3, Xe11, Ke12, us8, xc3, ou3, zi7, yu5, lf3, gi11, Gc2, wi10, Ic3, hc3, qn8, Ju5, nf3, be10, j72, ju4, bu4, Ec4, wc3, Bf3, Hc2, O7, Ts6, Oc3, Xc2, Yf3, Ac3, Yi8, Yn7, A72, Is8, yf3, Mc2, Un8, t23, p7, ts8, Nc3, C72, mi11, Mf4, b7, v72, bf3, ws8, Hi9, hi11, Ci8, vs9, Qn8, wf3, Iu4, As8, nc4, gf3, cu3, ti10, _c3, kc3, S7, Qi8, di11, Ru4, vi11, i7, tu3, gs7, qc3, Ni9, St12, cs7, U72, Ri8, W24, Gn9, Vi8, as8, Df4, Ou5, cc4, is8, lc3, ae10, vf4, eu4, xi11, Yu2, zn9, Rc3, Di8, Mi7, fi11, ds7, I72, Xf, Z72, D7, f7, zf3, Bu3, dc3, z72, Dc2, Tc4, ms8, Jf2, Tf3, xu3, ku3, pf3, ai10, Bc2, Hn8, g7, G12, oi10, N7, os7, su3, Yc3, Cu3, Au3, gu4, mf3, L72, ps7, E7, du4, uu4, Nf3, hf3, uc3, Ki8, W72, df3, hs8, Kn10, wu3, Cc3, Ei10, Mu4, Xu3, Kc2, Gf3, ys8, Ui7, Zc2, Ii8, n7, si9, $u4, Hu3, Oi9, ni10, zu3, Vc3, Xn9, sf3, Lu4, kf4, Qf2, Xi8, r7, Vn6, Pc3, Kf2, o7, e72, Wn8, bs8, Vu4, rc3, x72, es8, ge11, Eu5, Ai9, $c2, bi11, Y7, Fu4, jf3, Bn7, m7, Zi7, Fc2, au3, $f3, P7, af3, xf4, pu2, M72, Zu2, Pi8, Lf3, Ge11, fs39, _72, If4, a7, q72, pi11, Ku4, fc3, qu4, Of3, w72, ci10, Je11, T7, lu4, ii10, ss9, k72, fu4, Uu4, Jc2, Ve9, rs8, ic3, Bi8, Qc2, s7, Wi7, t7, He10, Q72, jc2, Uc2, Es8, Sf3, _f4, oc4, Ps9, ac3, $n8, vu4, _u4, Zf2, Zn10, X72, cf3, ui11, J72, Uf3, Qu2, d7, F72, hu4, Fi8, Du4, Gi7, Rf4, bc4, pc3, h7, qf3, $24, V72, $i9, of3, H24], _E0 = "Jsoo_runtime.Error.Exn", wE0 = [0, 0], gE0 = "assert_operator", bE0 = "use_strict", TE0 = w_2, EE0 = "esproposal_decorators", SE0 = "records", AE0 = "pattern_matching", IE0 = "enums", PE0 = "components", CE0 = "Internal error: ", NE0 = [t12, "CamlinternalLazy.Undefined", js9(0)];
|
|
29161
29161
|
function OE0(x11, r11) {
|
|
29162
29162
|
var e31 = Rx(r11) - 1 | 0, t = 0;
|
|
29163
29163
|
if (e31 >= 0) for (var u11 = t; ; ) {
|
|
@@ -51416,7 +51416,7 @@ function Qe6(e30, t) {
|
|
|
51416
51416
|
function ps5(e30) {
|
|
51417
51417
|
return /^\[.*\]$/.test(e30) ? e30.substring(1, e30.length - 1) : e30;
|
|
51418
51418
|
}
|
|
51419
|
-
function
|
|
51419
|
+
function fs26(e30, t) {
|
|
51420
51420
|
return { open: e30.charAt(2) === "~", close: t.charAt(t.length - 3) === "~" };
|
|
51421
51421
|
}
|
|
51422
51422
|
function ms5(e30) {
|
|
@@ -52713,7 +52713,7 @@ Expecting ` + Qt9.join(", ") + ", got '" + (this.terminals_[L9] || L9) + "'" : D
|
|
|
52713
52713
|
};
|
|
52714
52714
|
jr4 = G5;
|
|
52715
52715
|
Ft5 = {};
|
|
52716
|
-
Oe5(Ft5, { SourceLocation: () => Qe6, id: () => ps5, prepareBlock: () => ys5, prepareMustache: () => gs5, preparePartialBlock: () => ks5, preparePath: () => ds5, prepareProgram: () => Ss4, prepareRawBlock: () => bs5, stripComment: () => ms5, stripFlags: () =>
|
|
52716
|
+
Oe5(Ft5, { SourceLocation: () => Qe6, id: () => ps5, prepareBlock: () => ys5, prepareMustache: () => gs5, preparePartialBlock: () => ks5, preparePath: () => ds5, prepareProgram: () => Ss4, prepareRawBlock: () => bs5, stripComment: () => ms5, stripFlags: () => fs26 });
|
|
52717
52717
|
hs5 = function(e30, t, r5) {
|
|
52718
52718
|
if (r5 || arguments.length === 2) for (var s5 = 0, n5 = t.length, i; s5 < n5; s5++) (i || !(s5 in t)) && (i || (i = Array.prototype.slice.call(t, 0, s5)), i[s5] = t[s5]);
|
|
52719
52719
|
return e30.concat(i || Array.prototype.slice.call(t));
|
|
@@ -56672,7 +56672,7 @@ function dt7(e30) {
|
|
|
56672
56672
|
let t = Jt8(e30), r5 = t.name === "vue" ? bs6 : Xr5;
|
|
56673
56673
|
return { parse: (n5, i) => Kr4(n5, r5, t, i), hasPragma: vi7, hasIgnorePragma: Ti7, astFormat: "html", locStart: Q7, locEnd: te8 };
|
|
56674
56674
|
}
|
|
56675
|
-
var Jr5, Zr4, ks6, en6, ir7, As6, $e7, tn6, ws6, Ae7, ys6, xs7, w6, Ls7, F7, Ps7, ze8, Ye6, je8, _t7, ye7, xe6, St8, Ne6, Le7, Pe6, Oe7, Et8, Ct8, Y5, vt8, De7, Tt8, bt8, Ds7, sr7, rn5, D5, wt8, sn4, an5, j5, _7, k7, Ms7, v7, Bs7, nn5, cn5, un5, Fs7, qs7, pn5, lr6, hn5, Vs5, Us7, x4, cr6, mn5, Ws7, Gs7, dn5, gn5, zs7, Ys7, _n4, Xs7, En5, Cn4, Re7, ea3, At8, yt7, le7, Xe8, pr7, bn4, hr7, wn4, mr5, ce8, aa3, fr7, kn5, Ea2, Vn3, Un4, Er5, va2, Gn5, $n4, zn5, Cr5, wa2, Yn4, jn4, Xn5, Kn5, Aa2, ya2, xa2, Na2, Zn5, La2, ei7, ti7, ri6, Oa2, ii7, si6, vr5, G7, Ia2, ui7, Fa3, pi7, Q7, te8, hi7, Ft7, Ya3, fi7, nt8, Xa4, di7, R7, gi7, Qa3, _i6, Si7, Ei7, Ci6, vi7, Ti7, bi7, wi7, I6, kr4, Ar5, Ee7, Za2, Vt7, Di6, eo3, to3, ro3, no3, io3, Ri6, so3, Ii6, f5, Mi5, ot6, qe7, ht8, h2, Fi6, re6, Ce7, Hi5, Vi6, Ui5, Wi5, Gi5, ne8, $i6, zi5, ve8, J8, Yi5, Nr5, Lr6, Pr4, Te7, oo3, l4, xo2, No2, Mr6, Po2, mt8, Oo2, is6, Ho2, Vr5, N5, Vo2, ls6, Uo2, us6, Ur6, Wo2, Go2, ps6, il3, hs6, ms6, Wr5,
|
|
56675
|
+
var Jr5, Zr4, ks6, en6, ir7, As6, $e7, tn6, ws6, Ae7, ys6, xs7, w6, Ls7, F7, Ps7, ze8, Ye6, je8, _t7, ye7, xe6, St8, Ne6, Le7, Pe6, Oe7, Et8, Ct8, Y5, vt8, De7, Tt8, bt8, Ds7, sr7, rn5, D5, wt8, sn4, an5, j5, _7, k7, Ms7, v7, Bs7, nn5, cn5, un5, Fs7, qs7, pn5, lr6, hn5, Vs5, Us7, x4, cr6, mn5, Ws7, Gs7, dn5, gn5, zs7, Ys7, _n4, Xs7, En5, Cn4, Re7, ea3, At8, yt7, le7, Xe8, pr7, bn4, hr7, wn4, mr5, ce8, aa3, fr7, kn5, Ea2, Vn3, Un4, Er5, va2, Gn5, $n4, zn5, Cr5, wa2, Yn4, jn4, Xn5, Kn5, Aa2, ya2, xa2, Na2, Zn5, La2, ei7, ti7, ri6, Oa2, ii7, si6, vr5, G7, Ia2, ui7, Fa3, pi7, Q7, te8, hi7, Ft7, Ya3, fi7, nt8, Xa4, di7, R7, gi7, Qa3, _i6, Si7, Ei7, Ci6, vi7, Ti7, bi7, wi7, I6, kr4, Ar5, Ee7, Za2, Vt7, Di6, eo3, to3, ro3, no3, io3, Ri6, so3, Ii6, f5, Mi5, ot6, qe7, ht8, h2, Fi6, re6, Ce7, Hi5, Vi6, Ui5, Wi5, Gi5, ne8, $i6, zi5, ve8, J8, Yi5, Nr5, Lr6, Pr4, Te7, oo3, l4, xo2, No2, Mr6, Po2, mt8, Oo2, is6, Ho2, Vr5, N5, Vo2, ls6, Uo2, us6, Ur6, Wo2, Go2, ps6, il3, hs6, ms6, Wr5, fs27, sl3, ds6, Qr5, gs6, ol3, Zt8, _s6, er7, Ss5, ae6, $r6, zr5, We8, tr7, cl2, Yr6, rr7, Tl2, bl2, wl2, kl2, Al2, yl2, xl2;
|
|
56676
56676
|
var init_html = __esm({
|
|
56677
56677
|
"../../node_modules/.pnpm/prettier@3.7.4/node_modules/prettier/plugins/html.mjs"() {
|
|
56678
56678
|
Jr5 = Object.defineProperty;
|
|
@@ -58161,8 +58161,8 @@ If '${e30}' is a directive input, make sure the directive is imported by the cur
|
|
|
58161
58161
|
hs6 = il3;
|
|
58162
58162
|
ms6 = [{ name: "Angular", type: "markup", aceMode: "html", extensions: [".component.html"], tmScope: "text.html.basic", aliases: ["xhtml"], codemirrorMode: "htmlmixed", codemirrorMimeType: "text/html", parsers: ["angular"], vscodeLanguageIds: ["html"], filenames: [], linguistLanguageId: 146 }, { name: "HTML", type: "markup", aceMode: "html", extensions: [".html", ".hta", ".htm", ".html.hl", ".inc", ".xht", ".xhtml"], tmScope: "text.html.basic", aliases: ["xhtml"], codemirrorMode: "htmlmixed", codemirrorMimeType: "text/html", parsers: ["html"], vscodeLanguageIds: ["html"], linguistLanguageId: 146 }, { name: "Lightning Web Components", type: "markup", aceMode: "html", extensions: [], tmScope: "text.html.basic", aliases: ["xhtml"], codemirrorMode: "htmlmixed", codemirrorMimeType: "text/html", parsers: ["lwc"], vscodeLanguageIds: ["html"], filenames: [], linguistLanguageId: 146 }, { name: "MJML", type: "markup", aceMode: "html", extensions: [".mjml"], tmScope: "text.mjml.basic", aliases: ["MJML", "mjml"], codemirrorMode: "htmlmixed", codemirrorMimeType: "text/html", parsers: ["mjml"], filenames: [], vscodeLanguageIds: ["mjml"], linguistLanguageId: 146 }, { name: "Vue", type: "markup", aceMode: "vue", extensions: [".vue"], tmScope: "source.vue", codemirrorMode: "vue", codemirrorMimeType: "text/x-vue", parsers: ["vue"], vscodeLanguageIds: ["vue"], linguistLanguageId: 391 }];
|
|
58163
58163
|
Wr5 = { bracketSpacing: { category: "Common", type: "boolean", default: true, description: "Print spaces between brackets.", oppositeDescription: "Do not print spaces between brackets." }, objectWrap: { category: "Common", type: "choice", default: "preserve", description: "How to wrap object literals.", choices: [{ value: "preserve", description: "Keep as multi-line, if there is a newline between the opening brace and first property." }, { value: "collapse", description: "Fit to a single line when possible." }] }, singleQuote: { category: "Common", type: "boolean", default: false, description: "Use single quotes instead of double quotes." }, proseWrap: { category: "Common", type: "choice", default: "preserve", description: "How to wrap prose.", choices: [{ value: "always", description: "Wrap prose if it exceeds the print width." }, { value: "never", description: "Do not wrap prose." }, { value: "preserve", description: "Wrap prose as-is." }] }, bracketSameLine: { category: "Common", type: "boolean", default: false, description: "Put > of opening tags on the last line instead of on a new line." }, singleAttributePerLine: { category: "Common", type: "boolean", default: false, description: "Enforce single attribute per line in HTML, Vue and JSX." } };
|
|
58164
|
-
|
|
58165
|
-
sl3 = { bracketSameLine: Wr5.bracketSameLine, htmlWhitespaceSensitivity: { category:
|
|
58164
|
+
fs27 = "HTML";
|
|
58165
|
+
sl3 = { bracketSameLine: Wr5.bracketSameLine, htmlWhitespaceSensitivity: { category: fs27, type: "choice", default: "css", description: "How to handle whitespaces in HTML.", choices: [{ value: "css", description: "Respect the default value of CSS display property." }, { value: "strict", description: "Whitespaces are considered sensitive." }, { value: "ignore", description: "Whitespaces are considered insensitive." }] }, singleAttributePerLine: Wr5.singleAttributePerLine, vueIndentScriptAndStyle: { category: fs27, type: "boolean", default: false, description: "Indent script and style tags in Vue files." } };
|
|
58166
58166
|
ds6 = sl3;
|
|
58167
58167
|
Qr5 = {};
|
|
58168
58168
|
en6(Qr5, { angular: () => kl2, html: () => Tl2, lwc: () => yl2, mjml: () => wl2, vue: () => Al2 });
|
|
@@ -60767,7 +60767,7 @@ $$`;
|
|
|
60767
60767
|
ds7.exports = hs8;
|
|
60768
60768
|
hs8.locator = T02;
|
|
60769
60769
|
var B0 = `
|
|
60770
|
-
`, _02 = "!", ls7 = '"',
|
|
60770
|
+
`, _02 = "!", ls7 = '"', fs39 = "'", Ze11 = "(", xr6 = ")", yn8 = "<", wn8 = ">", Ds8 = "[", yr7 = "\\", O0 = "]", ps7 = "`";
|
|
60771
60771
|
function hs8(e30, r5, t) {
|
|
60772
60772
|
var n5 = this, u4 = "", i = 0, a5 = r5.charAt(0), o5 = n5.options.pedantic, s5 = n5.options.commonmark, f7 = n5.options.gfm, c7, l5, D7, m7, p4, h5, F10, g5, E5, v9, A8, b7, d5, y7, w9, C8, k8, T7;
|
|
60773
60773
|
if (a5 === _02 && (g5 = true, u4 = a5, a5 = r5.charAt(++i)), a5 === Ds8 && !(!g5 && n5.inLink)) {
|
|
@@ -60795,7 +60795,7 @@ $$`;
|
|
|
60795
60795
|
if (r5.charAt(i) !== wn8) return;
|
|
60796
60796
|
u4 += yn8 + y7 + wn8, w9 = y7, i++;
|
|
60797
60797
|
} else {
|
|
60798
|
-
for (a5 = null, h5 = ""; i < A8 && (a5 = r5.charAt(i), !(h5 && (a5 === ls7 || a5 ===
|
|
60798
|
+
for (a5 = null, h5 = ""; i < A8 && (a5 = r5.charAt(i), !(h5 && (a5 === ls7 || a5 === fs39 || s5 && a5 === Ze11))); ) {
|
|
60799
60799
|
if (br7(a5)) {
|
|
60800
60800
|
if (!o5) break;
|
|
60801
60801
|
h5 += a5;
|
|
@@ -60812,7 +60812,7 @@ $$`;
|
|
|
60812
60812
|
u4 += y7, w9 = y7, i = u4.length;
|
|
60813
60813
|
}
|
|
60814
60814
|
for (y7 = ""; i < A8 && (a5 = r5.charAt(i), !!br7(a5)); ) y7 += a5, i++;
|
|
60815
|
-
if (a5 = r5.charAt(i), u4 += y7, y7 && (a5 === ls7 || a5 ===
|
|
60815
|
+
if (a5 = r5.charAt(i), u4 += y7, y7 && (a5 === ls7 || a5 === fs39 || s5 && a5 === Ze11)) if (i++, u4 += a5, y7 = "", v9 = a5 === Ze11 ? xr6 : a5, p4 = u4, s5) {
|
|
60816
60816
|
for (; i < A8 && (a5 = r5.charAt(i), a5 !== v9); ) a5 === yr7 && (y7 += yr7, a5 = r5.charAt(++i)), i++, y7 += a5;
|
|
60817
60817
|
if (a5 = r5.charAt(i), a5 !== v9) return;
|
|
60818
60818
|
for (b7 = y7, u4 += y7 + a5, i++; i < A8 && (a5 = r5.charAt(i), !!br7(a5)); ) u4 += a5, i++;
|
|
@@ -66040,7 +66040,7 @@ var init_postcss = __esm({
|
|
|
66040
66040
|
});
|
|
66041
66041
|
fe9 = w7((wx, zi7) => {
|
|
66042
66042
|
"use strict";
|
|
66043
|
-
var Bi8 = Me11(), Ui7 = ft8(), Fc2 = ut9(), { isClean: Fi8, my: $i9 } = Ht11(),
|
|
66043
|
+
var Bi8 = Me11(), Ui7 = ft8(), Fc2 = ut9(), { isClean: Fi8, my: $i9 } = Ht11(), fs39, Wi7, Gi7, ps7;
|
|
66044
66044
|
function Yi8(t) {
|
|
66045
66045
|
return t.map((e30) => (e30.nodes && (e30.nodes = Yi8(e30.nodes)), delete e30.source, e30));
|
|
66046
66046
|
}
|
|
@@ -66118,7 +66118,7 @@ var init_postcss = __esm({
|
|
|
66118
66118
|
if (typeof e30.value > "u") throw new Error("Value field is missed in node creation");
|
|
66119
66119
|
typeof e30.value != "string" && (e30.value = String(e30.value)), e30 = [new Ui7(e30)];
|
|
66120
66120
|
} else if (e30.selector || e30.selectors) e30 = [new ps7(e30)];
|
|
66121
|
-
else if (e30.name) e30 = [new
|
|
66121
|
+
else if (e30.name) e30 = [new fs39(e30)];
|
|
66122
66122
|
else if (e30.text) e30 = [new Bi8(e30)];
|
|
66123
66123
|
else throw new Error("Unknown node type in node creation");
|
|
66124
66124
|
return e30.map((n5) => (n5[$i9] || t.rebuild(n5), n5 = n5.proxyOf, n5.parent && n5.parent.removeChild(n5), n5[Fi8] && Vi8(n5), n5.raws || (n5.raws = {}), typeof n5.raws.before > "u" && s5 && typeof s5.raws.before < "u" && (n5.raws.before = s5.raws.before.replace(/\S/g, "")), n5.parent = this.proxyOf, n5));
|
|
@@ -66204,7 +66204,7 @@ var init_postcss = __esm({
|
|
|
66204
66204
|
ps7 = t;
|
|
66205
66205
|
};
|
|
66206
66206
|
z9.registerAtRule = (t) => {
|
|
66207
|
-
|
|
66207
|
+
fs39 = t;
|
|
66208
66208
|
};
|
|
66209
66209
|
z9.registerRoot = (t) => {
|
|
66210
66210
|
Gi7 = t;
|
|
@@ -66212,7 +66212,7 @@ var init_postcss = __esm({
|
|
|
66212
66212
|
zi7.exports = z9;
|
|
66213
66213
|
z9.default = z9;
|
|
66214
66214
|
z9.rebuild = (t) => {
|
|
66215
|
-
t.type === "atrule" ? Object.setPrototypeOf(t,
|
|
66215
|
+
t.type === "atrule" ? Object.setPrototypeOf(t, fs39.prototype) : t.type === "rule" ? Object.setPrototypeOf(t, ps7.prototype) : t.type === "decl" ? Object.setPrototypeOf(t, Ui7.prototype) : t.type === "comment" ? Object.setPrototypeOf(t, Bi8.prototype) : t.type === "root" && Object.setPrototypeOf(t, Gi7.prototype), t[$i9] = true, t.nodes && t.nodes.forEach((e30) => {
|
|
66216
66216
|
z9.rebuild(e30);
|
|
66217
66217
|
});
|
|
66218
66218
|
};
|
|
@@ -72872,7 +72872,7 @@ function wf2(e30, t) {
|
|
|
72872
72872
|
return _10();
|
|
72873
72873
|
}, get converters() {
|
|
72874
72874
|
return f7();
|
|
72875
|
-
}, baseFactory: t, flags: e30, createNodeArray: de11, createNumericLiteral: V12, createBigIntLiteral: oe9, createStringLiteral: ft9, createStringLiteralFromNode: nr9, createRegularExpressionLiteral: mn8, createLiteralLikeNode: rr8, createIdentifier: We12, createTempVariable: ir10, createLoopVariable: Ir6, createUniqueName: Ot12, getGeneratedNameForNode: Bn7, createPrivateIdentifier: Mt11, createUniquePrivateName: $e11, getGeneratedPrivateNameForNode: qn8, createToken: ot8, createSuper: at11, createThis: Bt10, createNull: Lt10, createTrue: ct9, createFalse: ar9, createModifier: dt9, createModifiersFromModifierFlags: yn8, createQualifiedName: yt10, updateQualifiedName: _n7, createComputedPropertyName: tt11, updateComputedPropertyName: qt11, createTypeParameterDeclaration: tn9, updateTypeParameterDeclaration: sr10, createParameterDeclaration: mr7, updateParameterDeclaration: hr8, createDecorator: Fn6, updateDecorator: zn9, createPropertySignature: Or7, updatePropertySignature: Vn6, createPropertyDeclaration: yr7, updatePropertyDeclaration: L9, createMethodSignature: se11, updateMethodSignature: fe10, createMethodDeclaration: Te10, updateMethodDeclaration: He10, createConstructorDeclaration: lt8, updateConstructorDeclaration: Mr8, createGetAccessorDeclaration: Nn7, updateGetAccessorDeclaration: Wn8, createSetAccessorDeclaration: U9, updateSetAccessorDeclaration: K11, createCallSignature: xe10, updateCallSignature: Se11, createConstructSignature: we9, updateConstructSignature: me12, createIndexSignature: Ve9, updateIndexSignature: Ze11, createClassStaticBlockDeclaration: st8, updateClassStaticBlockDeclaration: Ct12, createTemplateLiteralTypeSpan: Ye10, updateTemplateLiteralTypeSpan: Ee9, createKeywordTypeNode: gn8, createTypePredicateNode: rt12, updateTypePredicateNode: on8, createTypeReferenceNode: Zr7, updateTypeReferenceNode: M10, createFunctionTypeNode: Ue10, updateFunctionTypeNode: u4, createConstructorTypeNode: Me12, updateConstructorTypeNode: nn8, createTypeQueryNode: Dt10, updateTypeQueryNode: wt11, createTypeLiteralNode: Pt12, updateTypeLiteralNode: Ft11, createArrayTypeNode: Gn9, updateArrayTypeNode: ki10, createTupleTypeNode: cn9, updateTupleTypeNode: H10, createNamedTupleMember: le10, updateNamedTupleMember: qe11, createOptionalTypeNode: ve11, updateOptionalTypeNode: J12, createRestTypeNode: mt10, updateRestTypeNode: xt10, createUnionTypeNode: ql4, updateUnionTypeNode: C_, createIntersectionTypeNode: Lr8, updateIntersectionTypeNode: Le11, createConditionalTypeNode: pt9, updateConditionalTypeNode: Fl3, createInferTypeNode: Yn7, updateInferTypeNode: zl4, createImportTypeNode: _r8, updateImportTypeNode: oa3, createParenthesizedType: Qt9, updateParenthesizedType: At12, createThisTypeNode: P7, createTypeOperatorNode: Gt9, updateTypeOperatorNode: Jr7, createIndexedAccessTypeNode: or9, updateIndexedAccessTypeNode: Ka4, createMappedTypeNode: gt9, updateMappedTypeNode: jt8, createLiteralTypeNode: ei10, updateLiteralTypeNode: br7, createTemplateLiteralType: Wt10, updateTemplateLiteralType: Vl4, createObjectBindingPattern: D_, updateObjectBindingPattern: Wl4, createArrayBindingPattern: jr7, updateArrayBindingPattern: Gl4, createBindingElement: ca4, updateBindingElement: ti10, createArrayLiteralExpression: Za3, updateArrayLiteralExpression: P_, createObjectLiteralExpression: Ei10, updateObjectLiteralExpression: Yl4, createPropertyAccessExpression: e30 & 4 ? (n5, i) => setEmitFlags(cr8(n5, i), 262144) : cr8, updatePropertyAccessExpression: Hl4, createPropertyAccessChain: e30 & 4 ? (n5, i, s5) => setEmitFlags(Ai9(n5, i, s5), 262144) : Ai9, updatePropertyAccessChain: la3, createElementAccessExpression: Ci8, updateElementAccessExpression: Xl4, createElementAccessChain: O_, updateElementAccessChain: es8, createCallExpression: Di8, updateCallExpression: ua5, createCallChain: ts8, updateCallChain: L_, createNewExpression: bn7, updateNewExpression: ns8, createTaggedTemplateExpression: pa5, updateTaggedTemplateExpression: J_, createTypeAssertion: j_, updateTypeAssertion: R_, createParenthesizedExpression: rs8, updateParenthesizedExpression: U_, createFunctionExpression: is8, updateFunctionExpression: B_, createArrowFunction: as8, updateArrowFunction: q_, createDeleteExpression: F_, updateDeleteExpression: z_, createTypeOfExpression: fa4, updateTypeOfExpression: un8, createVoidExpression: ss9, updateVoidExpression: lr8, createAwaitExpression: V_, updateAwaitExpression: Rr7, createPrefixUnaryExpression: Ur8, updatePrefixUnaryExpression: $l4, createPostfixUnaryExpression: ni10, updatePostfixUnaryExpression: Ql4, createBinaryExpression: da5, updateBinaryExpression: Kl4, createConditionalExpression: G_, updateConditionalExpression: Y_, createTemplateExpression: H_, updateTemplateExpression: Hn8, createTemplateHead: $_, createTemplateMiddle: ma5, createTemplateTail: _s7, createNoSubstitutionTemplateLiteral: eu4, createTemplateLiteralLikeNode: ii10, createYieldExpression: os7, updateYieldExpression: tu3, createSpreadElement: Q_, updateSpreadElement: nu3, createClassExpression: K_, updateClassExpression: cs7, createOmittedExpression: ls7, createExpressionWithTypeArguments: Z_, updateExpressionWithTypeArguments: eo4, createAsExpression: pn9, updateAsExpression: ha2, createNonNullExpression: to4, updateNonNullExpression: no5, createSatisfiesExpression: us8, updateSatisfiesExpression: ro4, createNonNullChain: ps7, updateNonNullChain: In7, createMetaProperty: io4, updateMetaProperty:
|
|
72875
|
+
}, baseFactory: t, flags: e30, createNodeArray: de11, createNumericLiteral: V12, createBigIntLiteral: oe9, createStringLiteral: ft9, createStringLiteralFromNode: nr9, createRegularExpressionLiteral: mn8, createLiteralLikeNode: rr8, createIdentifier: We12, createTempVariable: ir10, createLoopVariable: Ir6, createUniqueName: Ot12, getGeneratedNameForNode: Bn7, createPrivateIdentifier: Mt11, createUniquePrivateName: $e11, getGeneratedPrivateNameForNode: qn8, createToken: ot8, createSuper: at11, createThis: Bt10, createNull: Lt10, createTrue: ct9, createFalse: ar9, createModifier: dt9, createModifiersFromModifierFlags: yn8, createQualifiedName: yt10, updateQualifiedName: _n7, createComputedPropertyName: tt11, updateComputedPropertyName: qt11, createTypeParameterDeclaration: tn9, updateTypeParameterDeclaration: sr10, createParameterDeclaration: mr7, updateParameterDeclaration: hr8, createDecorator: Fn6, updateDecorator: zn9, createPropertySignature: Or7, updatePropertySignature: Vn6, createPropertyDeclaration: yr7, updatePropertyDeclaration: L9, createMethodSignature: se11, updateMethodSignature: fe10, createMethodDeclaration: Te10, updateMethodDeclaration: He10, createConstructorDeclaration: lt8, updateConstructorDeclaration: Mr8, createGetAccessorDeclaration: Nn7, updateGetAccessorDeclaration: Wn8, createSetAccessorDeclaration: U9, updateSetAccessorDeclaration: K11, createCallSignature: xe10, updateCallSignature: Se11, createConstructSignature: we9, updateConstructSignature: me12, createIndexSignature: Ve9, updateIndexSignature: Ze11, createClassStaticBlockDeclaration: st8, updateClassStaticBlockDeclaration: Ct12, createTemplateLiteralTypeSpan: Ye10, updateTemplateLiteralTypeSpan: Ee9, createKeywordTypeNode: gn8, createTypePredicateNode: rt12, updateTypePredicateNode: on8, createTypeReferenceNode: Zr7, updateTypeReferenceNode: M10, createFunctionTypeNode: Ue10, updateFunctionTypeNode: u4, createConstructorTypeNode: Me12, updateConstructorTypeNode: nn8, createTypeQueryNode: Dt10, updateTypeQueryNode: wt11, createTypeLiteralNode: Pt12, updateTypeLiteralNode: Ft11, createArrayTypeNode: Gn9, updateArrayTypeNode: ki10, createTupleTypeNode: cn9, updateTupleTypeNode: H10, createNamedTupleMember: le10, updateNamedTupleMember: qe11, createOptionalTypeNode: ve11, updateOptionalTypeNode: J12, createRestTypeNode: mt10, updateRestTypeNode: xt10, createUnionTypeNode: ql4, updateUnionTypeNode: C_, createIntersectionTypeNode: Lr8, updateIntersectionTypeNode: Le11, createConditionalTypeNode: pt9, updateConditionalTypeNode: Fl3, createInferTypeNode: Yn7, updateInferTypeNode: zl4, createImportTypeNode: _r8, updateImportTypeNode: oa3, createParenthesizedType: Qt9, updateParenthesizedType: At12, createThisTypeNode: P7, createTypeOperatorNode: Gt9, updateTypeOperatorNode: Jr7, createIndexedAccessTypeNode: or9, updateIndexedAccessTypeNode: Ka4, createMappedTypeNode: gt9, updateMappedTypeNode: jt8, createLiteralTypeNode: ei10, updateLiteralTypeNode: br7, createTemplateLiteralType: Wt10, updateTemplateLiteralType: Vl4, createObjectBindingPattern: D_, updateObjectBindingPattern: Wl4, createArrayBindingPattern: jr7, updateArrayBindingPattern: Gl4, createBindingElement: ca4, updateBindingElement: ti10, createArrayLiteralExpression: Za3, updateArrayLiteralExpression: P_, createObjectLiteralExpression: Ei10, updateObjectLiteralExpression: Yl4, createPropertyAccessExpression: e30 & 4 ? (n5, i) => setEmitFlags(cr8(n5, i), 262144) : cr8, updatePropertyAccessExpression: Hl4, createPropertyAccessChain: e30 & 4 ? (n5, i, s5) => setEmitFlags(Ai9(n5, i, s5), 262144) : Ai9, updatePropertyAccessChain: la3, createElementAccessExpression: Ci8, updateElementAccessExpression: Xl4, createElementAccessChain: O_, updateElementAccessChain: es8, createCallExpression: Di8, updateCallExpression: ua5, createCallChain: ts8, updateCallChain: L_, createNewExpression: bn7, updateNewExpression: ns8, createTaggedTemplateExpression: pa5, updateTaggedTemplateExpression: J_, createTypeAssertion: j_, updateTypeAssertion: R_, createParenthesizedExpression: rs8, updateParenthesizedExpression: U_, createFunctionExpression: is8, updateFunctionExpression: B_, createArrowFunction: as8, updateArrowFunction: q_, createDeleteExpression: F_, updateDeleteExpression: z_, createTypeOfExpression: fa4, updateTypeOfExpression: un8, createVoidExpression: ss9, updateVoidExpression: lr8, createAwaitExpression: V_, updateAwaitExpression: Rr7, createPrefixUnaryExpression: Ur8, updatePrefixUnaryExpression: $l4, createPostfixUnaryExpression: ni10, updatePostfixUnaryExpression: Ql4, createBinaryExpression: da5, updateBinaryExpression: Kl4, createConditionalExpression: G_, updateConditionalExpression: Y_, createTemplateExpression: H_, updateTemplateExpression: Hn8, createTemplateHead: $_, createTemplateMiddle: ma5, createTemplateTail: _s7, createNoSubstitutionTemplateLiteral: eu4, createTemplateLiteralLikeNode: ii10, createYieldExpression: os7, updateYieldExpression: tu3, createSpreadElement: Q_, updateSpreadElement: nu3, createClassExpression: K_, updateClassExpression: cs7, createOmittedExpression: ls7, createExpressionWithTypeArguments: Z_, updateExpressionWithTypeArguments: eo4, createAsExpression: pn9, updateAsExpression: ha2, createNonNullExpression: to4, updateNonNullExpression: no5, createSatisfiesExpression: us8, updateSatisfiesExpression: ro4, createNonNullChain: ps7, updateNonNullChain: In7, createMetaProperty: io4, updateMetaProperty: fs39, createTemplateSpan: Xn9, updateTemplateSpan: ya3, createSemicolonClassElement: ao4, createBlock: Br8, updateBlock: ru4, createVariableStatement: ds7, updateVariableStatement: so4, createEmptyStatement: _o2, createExpressionStatement: Ni9, updateExpressionStatement: oo5, createIfStatement: co3, updateIfStatement: lo3, createDoStatement: uo4, updateDoStatement: po5, createWhileStatement: fo4, updateWhileStatement: iu3, createForStatement: mo2, updateForStatement: ho2, createForInStatement: ms8, updateForInStatement: au3, createForOfStatement: yo2, updateForOfStatement: su3, createContinueStatement: go2, updateContinueStatement: _u4, createBreakStatement: hs8, updateBreakStatement: bo4, createReturnStatement: ys8, updateReturnStatement: ou3, createWithStatement: gs7, updateWithStatement: vo3, createSwitchStatement: bs8, updateSwitchStatement: ai10, createLabeledStatement: To3, updateLabeledStatement: xo4, createThrowStatement: So3, updateThrowStatement: cu3, createTryStatement: wo5, updateTryStatement: lu4, createDebuggerStatement: ko2, createVariableDeclaration: ga2, updateVariableDeclaration: Eo2, createVariableDeclarationList: vs9, updateVariableDeclarationList: uu4, createFunctionDeclaration: Ao2, updateFunctionDeclaration: Ts6, createClassDeclaration: Co2, updateClassDeclaration: ba3, createInterfaceDeclaration: Do3, updateInterfaceDeclaration: Po4, createTypeAliasDeclaration: _t10, updateTypeAliasDeclaration: vr6, createEnumDeclaration: xs8, updateEnumDeclaration: Tr7, createModuleDeclaration: No3, updateModuleDeclaration: kt12, createModuleBlock: xr6, updateModuleBlock: zt10, createCaseBlock: Io5, updateCaseBlock: fu4, createNamespaceExportDeclaration: Oo5, updateNamespaceExportDeclaration: Mo3, createImportEqualsDeclaration: Lo3, updateImportEqualsDeclaration: Jo5, createImportDeclaration: jo4, updateImportDeclaration: Ro3, createImportClause: Uo4, updateImportClause: Bo4, createAssertClause: Ss8, updateAssertClause: mu3, createAssertEntry: Ii8, updateAssertEntry: qo4, createImportTypeAssertionContainer: ws8, updateImportTypeAssertionContainer: Fo3, createImportAttributes: zo4, updateImportAttributes: ks8, createImportAttribute: Vo3, updateImportAttribute: Wo3, createNamespaceImport: Go3, updateNamespaceImport: hu4, createNamespaceExport: Yo4, updateNamespaceExport: yu5, createNamedImports: Ho3, updateNamedImports: Xo3, createImportSpecifier: Sr7, updateImportSpecifier: gu4, createExportAssignment: va4, updateExportAssignment: Oi9, createExportDeclaration: Ta3, updateExportDeclaration: $o3, createNamedExports: Es8, updateNamedExports: bu4, createExportSpecifier: xa5, updateExportSpecifier: vu4, createMissingDeclaration: Tu5, createExternalModuleReference: As8, updateExternalModuleReference: xu3, get createJSDocAllType() {
|
|
72876
72876
|
return c7(313);
|
|
72877
72877
|
}, get createJSDocUnknownType() {
|
|
72878
72878
|
return c7(314);
|
|
@@ -73841,7 +73841,7 @@ function wf2(e30, t) {
|
|
|
73841
73841
|
}
|
|
73842
73842
|
return s5.flowNode = void 0, s5;
|
|
73843
73843
|
}
|
|
73844
|
-
function
|
|
73844
|
+
function fs39(n5, i) {
|
|
73845
73845
|
return n5.name !== i ? j9(io4(n5.keywordToken, i), n5) : n5;
|
|
73846
73846
|
}
|
|
73847
73847
|
function Xn9(n5, i) {
|
|
@@ -78813,7 +78813,7 @@ ${Me12.join(`
|
|
|
78813
78813
|
function io4(o5, p4) {
|
|
78814
78814
|
return o5 === 39 ? (J12(o5), true) : Le11(59) ? true : p4 && u4() === 39 ? (Ee9(A7._0_expected, nt10(59)), B7(), true) : false;
|
|
78815
78815
|
}
|
|
78816
|
-
function
|
|
78816
|
+
function fs39(o5, p4) {
|
|
78817
78817
|
let m7 = we9(), g5 = Ye10();
|
|
78818
78818
|
He10(!!(o5 & 1)), st8(!!(o5 & 2));
|
|
78819
78819
|
let b7 = o5 & 32 ? un8(17, cs7) : un8(16, () => p4 ? us8(g5) : ro4(g5));
|
|
@@ -78821,7 +78821,7 @@ ${Me12.join(`
|
|
|
78821
78821
|
}
|
|
78822
78822
|
function Xn9(o5) {
|
|
78823
78823
|
if (!J12(21)) return lr8();
|
|
78824
|
-
let p4 =
|
|
78824
|
+
let p4 = fs39(o5, true);
|
|
78825
78825
|
return J12(22), p4;
|
|
78826
78826
|
}
|
|
78827
78827
|
function ya3() {
|
|
@@ -79394,9 +79394,9 @@ ${Me12.join(`
|
|
|
79394
79394
|
function Bo4(o5, p4) {
|
|
79395
79395
|
let m7 = M10(), g5 = Ue10(), b7 = Uc2(), N7 = Zt10(b7, cl5) ? 2 : 0, Q10 = pn9(), _e11;
|
|
79396
79396
|
if (J12(21)) {
|
|
79397
|
-
if (o5) _e11 =
|
|
79397
|
+
if (o5) _e11 = fs39(N7, o5);
|
|
79398
79398
|
else {
|
|
79399
|
-
let ur9 =
|
|
79399
|
+
let ur9 = fs39(N7, o5);
|
|
79400
79400
|
if (!ur9) return;
|
|
79401
79401
|
_e11 = ur9;
|
|
79402
79402
|
}
|
|
@@ -82832,18 +82832,18 @@ import { createRequire as __prettierCreateRequire } from "module";
|
|
|
82832
82832
|
import { fileURLToPath as __prettierFileUrlToPath } from "url";
|
|
82833
82833
|
import { dirname as __prettierDirname } from "path";
|
|
82834
82834
|
import path102 from "path";
|
|
82835
|
-
import * as
|
|
82835
|
+
import * as path30 from "path";
|
|
82836
82836
|
import * as url from "url";
|
|
82837
82837
|
import path52 from "path";
|
|
82838
82838
|
import * as path42 from "path";
|
|
82839
|
-
import * as
|
|
82840
|
-
import * as
|
|
82839
|
+
import * as fs28 from "fs/promises";
|
|
82840
|
+
import * as path210 from "path";
|
|
82841
82841
|
import process2 from "process";
|
|
82842
82842
|
import * as path32 from "path";
|
|
82843
82843
|
import process3 from "process";
|
|
82844
82844
|
import path92 from "path";
|
|
82845
82845
|
import { pathToFileURL as pathToFileURL2 } from "url";
|
|
82846
|
-
import
|
|
82846
|
+
import fs29 from "fs/promises";
|
|
82847
82847
|
import path82 from "path";
|
|
82848
82848
|
import { pathToFileURL as pathToFileURL4 } from "url";
|
|
82849
82849
|
import assert3 from "assert";
|
|
@@ -83364,7 +83364,7 @@ async function findInDirectory(nameOrNames, { typeCheck, cwd, allowSymlinks = tr
|
|
|
83364
83364
|
const directory = toAbsolutePath(cwd) ?? process2.cwd();
|
|
83365
83365
|
const names = Array.isArray(nameOrNames) ? nameOrNames : [nameOrNames];
|
|
83366
83366
|
for (const name of names) {
|
|
83367
|
-
const fileOrDirectory =
|
|
83367
|
+
const fileOrDirectory = path210.join(directory, name);
|
|
83368
83368
|
const stats = await safeStat(fileOrDirectory, allowSymlinks);
|
|
83369
83369
|
if (await typeCheck(stats) && (!filter2 || await filter2({ name, path: fileOrDirectory, stats }))) {
|
|
83370
83370
|
return fileOrDirectory;
|
|
@@ -83373,7 +83373,7 @@ async function findInDirectory(nameOrNames, { typeCheck, cwd, allowSymlinks = tr
|
|
|
83373
83373
|
}
|
|
83374
83374
|
async function safeStat(path152, allowSymlinks = true) {
|
|
83375
83375
|
try {
|
|
83376
|
-
return await (allowSymlinks ?
|
|
83376
|
+
return await (allowSymlinks ? fs28.stat : fs28.lstat)(path152);
|
|
83377
83377
|
} catch {
|
|
83378
83378
|
}
|
|
83379
83379
|
}
|
|
@@ -84507,7 +84507,7 @@ async function readFile(file) {
|
|
|
84507
84507
|
file = new URL(file);
|
|
84508
84508
|
}
|
|
84509
84509
|
try {
|
|
84510
|
-
return await
|
|
84510
|
+
return await fs29.readFile(file, "utf8");
|
|
84511
84511
|
} catch (error) {
|
|
84512
84512
|
if (error.code === "ENOENT") {
|
|
84513
84513
|
return;
|
|
@@ -97848,7 +97848,7 @@ var init_prettier = __esm({
|
|
|
97848
97848
|
isUrlString = (value) => typeof value === "string" && value.startsWith(URL_STRING_PREFIX);
|
|
97849
97849
|
isUrl = (urlOrPath) => isUrlInstance(urlOrPath) || isUrlString(urlOrPath);
|
|
97850
97850
|
toPath = (urlOrPath) => isUrl(urlOrPath) ? url.fileURLToPath(urlOrPath) : urlOrPath;
|
|
97851
|
-
toAbsolutePath = (urlOrPath) => urlOrPath ?
|
|
97851
|
+
toAbsolutePath = (urlOrPath) => urlOrPath ? path30.resolve(isUrl(urlOrPath) ? url.fileURLToPath(urlOrPath) : urlOrPath) : urlOrPath;
|
|
97852
97852
|
partition_default = partition2;
|
|
97853
97853
|
import_editorconfig = __toESM(require_src(), 1);
|
|
97854
97854
|
isFile = (stats) => stats?.isFile();
|
|
@@ -101034,8 +101034,8 @@ import { Command as Command2 } from "commander";
|
|
|
101034
101034
|
|
|
101035
101035
|
// src/commands/init.ts
|
|
101036
101036
|
import inquirer from "inquirer";
|
|
101037
|
-
import
|
|
101038
|
-
import
|
|
101037
|
+
import fs10 from "fs/promises";
|
|
101038
|
+
import path16 from "path";
|
|
101039
101039
|
import chalk from "chalk";
|
|
101040
101040
|
|
|
101041
101041
|
// ../core/src/config/defaults.ts
|
|
@@ -101258,21 +101258,112 @@ function normalizeConfig(parsed) {
|
|
|
101258
101258
|
}
|
|
101259
101259
|
|
|
101260
101260
|
// ../core/src/config/loader.ts
|
|
101261
|
+
import fs2 from "fs/promises";
|
|
101262
|
+
import path2 from "path";
|
|
101263
|
+
|
|
101264
|
+
// ../core/src/config/inference.ts
|
|
101261
101265
|
import fs from "fs/promises";
|
|
101262
101266
|
import path from "path";
|
|
101267
|
+
var LOCALE_DIR_CANDIDATES = [
|
|
101268
|
+
"locales",
|
|
101269
|
+
"src/locales",
|
|
101270
|
+
"app/locales",
|
|
101271
|
+
"apps/web/locales",
|
|
101272
|
+
"public/locales",
|
|
101273
|
+
"packages/web/locales",
|
|
101274
|
+
"packages/app/locales",
|
|
101275
|
+
"i18n/locales",
|
|
101276
|
+
"translations"
|
|
101277
|
+
];
|
|
101278
|
+
var LOCALE_FILE_EXTENSIONS = /* @__PURE__ */ new Set([".json", ".jsonc", ".yaml", ".yml"]);
|
|
101279
|
+
var LOCALE_NAME_REGEX = /^[a-z]{2,}(?:[-_][a-z0-9]+)*$/i;
|
|
101280
|
+
async function pathExists(candidate) {
|
|
101281
|
+
try {
|
|
101282
|
+
const stats = await fs.stat(candidate);
|
|
101283
|
+
return stats.isDirectory();
|
|
101284
|
+
} catch {
|
|
101285
|
+
return false;
|
|
101286
|
+
}
|
|
101287
|
+
}
|
|
101288
|
+
async function detectLocalesDir(projectRoot) {
|
|
101289
|
+
for (const candidate of LOCALE_DIR_CANDIDATES) {
|
|
101290
|
+
const absolute = path.resolve(projectRoot, candidate);
|
|
101291
|
+
if (await pathExists(absolute)) {
|
|
101292
|
+
return candidate;
|
|
101293
|
+
}
|
|
101294
|
+
}
|
|
101295
|
+
return void 0;
|
|
101296
|
+
}
|
|
101297
|
+
function parseLocaleName(filename) {
|
|
101298
|
+
const base = path.parse(filename).name;
|
|
101299
|
+
if (LOCALE_NAME_REGEX.test(base)) {
|
|
101300
|
+
return base.replace(/_/g, "-");
|
|
101301
|
+
}
|
|
101302
|
+
return void 0;
|
|
101303
|
+
}
|
|
101304
|
+
async function collectLocales(localesDir) {
|
|
101305
|
+
try {
|
|
101306
|
+
const entries = await fs.readdir(localesDir, { withFileTypes: true });
|
|
101307
|
+
const locales = /* @__PURE__ */ new Set();
|
|
101308
|
+
for (const entry of entries) {
|
|
101309
|
+
if (entry.isDirectory() && LOCALE_NAME_REGEX.test(entry.name)) {
|
|
101310
|
+
locales.add(entry.name.replace(/_/g, "-"));
|
|
101311
|
+
} else if (entry.isFile() && LOCALE_FILE_EXTENSIONS.has(path.extname(entry.name).toLowerCase())) {
|
|
101312
|
+
const parsed = parseLocaleName(entry.name);
|
|
101313
|
+
if (parsed) {
|
|
101314
|
+
locales.add(parsed);
|
|
101315
|
+
}
|
|
101316
|
+
}
|
|
101317
|
+
}
|
|
101318
|
+
return Array.from(locales).sort();
|
|
101319
|
+
} catch {
|
|
101320
|
+
return [];
|
|
101321
|
+
}
|
|
101322
|
+
}
|
|
101323
|
+
async function inferConfig(rawConfig, context) {
|
|
101324
|
+
const inferred = { ...rawConfig };
|
|
101325
|
+
if (!inferred.localesDir || inferred.localesDir.trim().length === 0) {
|
|
101326
|
+
const detectedDir = await detectLocalesDir(context.projectRoot);
|
|
101327
|
+
if (detectedDir) {
|
|
101328
|
+
inferred.localesDir = detectedDir;
|
|
101329
|
+
}
|
|
101330
|
+
}
|
|
101331
|
+
const candidateLocalesDir = inferred.localesDir ? path.resolve(context.projectRoot, inferred.localesDir) : void 0;
|
|
101332
|
+
if (!candidateLocalesDir) {
|
|
101333
|
+
return inferred;
|
|
101334
|
+
}
|
|
101335
|
+
const discoveredLocales = await collectLocales(candidateLocalesDir);
|
|
101336
|
+
if (!discoveredLocales.length) {
|
|
101337
|
+
return inferred;
|
|
101338
|
+
}
|
|
101339
|
+
if (!inferred.sourceLanguage || inferred.sourceLanguage.trim().length === 0) {
|
|
101340
|
+
inferred.sourceLanguage = discoveredLocales.includes("en") ? "en" : discoveredLocales[0] ?? DEFAULT_SOURCE_LANGUAGE;
|
|
101341
|
+
}
|
|
101342
|
+
const currentTargets = Array.isArray(inferred.targetLanguages) ? inferred.targetLanguages : [];
|
|
101343
|
+
if (!currentTargets.length) {
|
|
101344
|
+
const sourceLanguage = inferred.sourceLanguage ?? DEFAULT_SOURCE_LANGUAGE;
|
|
101345
|
+
const targets = discoveredLocales.filter((locale) => locale !== sourceLanguage);
|
|
101346
|
+
if (targets.length) {
|
|
101347
|
+
inferred.targetLanguages = targets;
|
|
101348
|
+
}
|
|
101349
|
+
}
|
|
101350
|
+
return inferred;
|
|
101351
|
+
}
|
|
101352
|
+
|
|
101353
|
+
// ../core/src/config/loader.ts
|
|
101263
101354
|
async function findUp(filename, cwd) {
|
|
101264
101355
|
let currentDir = cwd;
|
|
101265
|
-
let parentDir =
|
|
101356
|
+
let parentDir = path2.dirname(currentDir);
|
|
101266
101357
|
const maxDepth = 10;
|
|
101267
101358
|
let depth = 0;
|
|
101268
101359
|
do {
|
|
101269
|
-
const filePath =
|
|
101360
|
+
const filePath = path2.join(currentDir, filename);
|
|
101270
101361
|
try {
|
|
101271
|
-
await
|
|
101362
|
+
await fs2.access(filePath);
|
|
101272
101363
|
return filePath;
|
|
101273
101364
|
} catch {
|
|
101274
101365
|
}
|
|
101275
|
-
parentDir =
|
|
101366
|
+
parentDir = path2.dirname(currentDir);
|
|
101276
101367
|
if (parentDir === currentDir) {
|
|
101277
101368
|
return null;
|
|
101278
101369
|
}
|
|
@@ -101281,10 +101372,10 @@ async function findUp(filename, cwd) {
|
|
|
101281
101372
|
} while (currentDir !== parentDir && depth < maxDepth);
|
|
101282
101373
|
return null;
|
|
101283
101374
|
}
|
|
101284
|
-
async function
|
|
101375
|
+
async function readConfigFile(resolvedPath) {
|
|
101285
101376
|
let fileContents;
|
|
101286
101377
|
try {
|
|
101287
|
-
fileContents = await
|
|
101378
|
+
fileContents = await fs2.readFile(resolvedPath, "utf-8");
|
|
101288
101379
|
} catch (error) {
|
|
101289
101380
|
const err = error;
|
|
101290
101381
|
if (err.code === "ENOENT") {
|
|
@@ -101300,20 +101391,20 @@ async function loadConfigFromPath(resolvedPath) {
|
|
|
101300
101391
|
`Config file at ${resolvedPath} contains invalid JSON: ${error.message}`
|
|
101301
101392
|
);
|
|
101302
101393
|
}
|
|
101303
|
-
return
|
|
101394
|
+
return parsed;
|
|
101304
101395
|
}
|
|
101305
101396
|
async function loadConfigWithMeta(configPath = DEFAULT_CONFIG_FILENAME, options8) {
|
|
101306
101397
|
const cwd = options8?.cwd ?? process.cwd();
|
|
101307
101398
|
let resolvedPath;
|
|
101308
|
-
if (
|
|
101399
|
+
if (path2.isAbsolute(configPath)) {
|
|
101309
101400
|
resolvedPath = configPath;
|
|
101310
101401
|
} else {
|
|
101311
|
-
const cwdPath =
|
|
101402
|
+
const cwdPath = path2.resolve(cwd, configPath);
|
|
101312
101403
|
try {
|
|
101313
|
-
await
|
|
101404
|
+
await fs2.access(cwdPath);
|
|
101314
101405
|
resolvedPath = cwdPath;
|
|
101315
101406
|
} catch {
|
|
101316
|
-
if (!configPath.includes(
|
|
101407
|
+
if (!configPath.includes(path2.sep) || configPath === DEFAULT_CONFIG_FILENAME) {
|
|
101317
101408
|
const found = await findUp(configPath, cwd);
|
|
101318
101409
|
resolvedPath = found ?? cwdPath;
|
|
101319
101410
|
} else {
|
|
@@ -101321,8 +101412,10 @@ async function loadConfigWithMeta(configPath = DEFAULT_CONFIG_FILENAME, options8
|
|
|
101321
101412
|
}
|
|
101322
101413
|
}
|
|
101323
101414
|
}
|
|
101324
|
-
const
|
|
101325
|
-
const projectRoot =
|
|
101415
|
+
const rawConfig = await readConfigFile(resolvedPath);
|
|
101416
|
+
const projectRoot = path2.dirname(resolvedPath);
|
|
101417
|
+
const enriched = await inferConfig(rawConfig, { projectRoot });
|
|
101418
|
+
const config = normalizeConfig(enriched);
|
|
101326
101419
|
return {
|
|
101327
101420
|
config,
|
|
101328
101421
|
configPath: resolvedPath,
|
|
@@ -101335,7 +101428,7 @@ async function loadConfig(configPath = DEFAULT_CONFIG_FILENAME) {
|
|
|
101335
101428
|
}
|
|
101336
101429
|
|
|
101337
101430
|
// ../core/src/scanner.ts
|
|
101338
|
-
import
|
|
101431
|
+
import path3 from "path";
|
|
101339
101432
|
import {
|
|
101340
101433
|
Node,
|
|
101341
101434
|
Project,
|
|
@@ -101353,6 +101446,8 @@ var TRANSLATABLE_ATTRIBUTES = /* @__PURE__ */ new Set([
|
|
|
101353
101446
|
"tooltip",
|
|
101354
101447
|
"value"
|
|
101355
101448
|
]);
|
|
101449
|
+
var LETTER_REGEX_GLOBAL = new RegExp("\\p{L}", "gu");
|
|
101450
|
+
var MAX_DIRECTIVE_COMMENT_DEPTH = 4;
|
|
101356
101451
|
var Scanner = class {
|
|
101357
101452
|
constructor(config, options8 = {}) {
|
|
101358
101453
|
this.config = config;
|
|
@@ -101360,6 +101455,10 @@ var Scanner = class {
|
|
|
101360
101455
|
this.project = options8.project ?? new Project({
|
|
101361
101456
|
skipAddingFilesFromTsConfig: true
|
|
101362
101457
|
});
|
|
101458
|
+
this.allowPatterns = this.compilePatterns(this.config.extraction?.allowPatterns);
|
|
101459
|
+
this.denyPatterns = this.compilePatterns(this.config.extraction?.denyPatterns);
|
|
101460
|
+
this.preserveNewlines = this.config.extraction?.preserveNewlines ?? false;
|
|
101461
|
+
this.decodeHtmlEntities = this.config.extraction?.decodeHtmlEntities ?? true;
|
|
101363
101462
|
}
|
|
101364
101463
|
scan(options8) {
|
|
101365
101464
|
const collectNodes = options8?.collectNodes ?? false;
|
|
@@ -101380,8 +101479,20 @@ var Scanner = class {
|
|
|
101380
101479
|
}
|
|
101381
101480
|
const candidates = [];
|
|
101382
101481
|
const detailedCandidates = [];
|
|
101482
|
+
const buckets = {
|
|
101483
|
+
highConfidence: [],
|
|
101484
|
+
needsReview: [],
|
|
101485
|
+
skipped: []
|
|
101486
|
+
};
|
|
101487
|
+
this.activeSkipLog = buckets.skipped;
|
|
101383
101488
|
const record = (candidate, node, file) => {
|
|
101384
101489
|
candidates.push(candidate);
|
|
101490
|
+
const bucket = this.getConfidenceBucket(candidate);
|
|
101491
|
+
if (bucket === "high") {
|
|
101492
|
+
buckets.highConfidence.push(candidate);
|
|
101493
|
+
} else {
|
|
101494
|
+
buckets.needsReview.push(candidate);
|
|
101495
|
+
}
|
|
101385
101496
|
if (collectNodes) {
|
|
101386
101497
|
detailedCandidates.push({
|
|
101387
101498
|
...candidate,
|
|
@@ -101410,10 +101521,12 @@ var Scanner = class {
|
|
|
101410
101521
|
});
|
|
101411
101522
|
}
|
|
101412
101523
|
const filesExamined = files.map((file) => this.getRelativePath(file.getFilePath()));
|
|
101524
|
+
this.activeSkipLog = void 0;
|
|
101413
101525
|
const summary = {
|
|
101414
101526
|
filesScanned: files.length,
|
|
101415
101527
|
filesExamined,
|
|
101416
|
-
candidates
|
|
101528
|
+
candidates,
|
|
101529
|
+
buckets
|
|
101417
101530
|
};
|
|
101418
101531
|
if (files.length === 0) {
|
|
101419
101532
|
console.warn('\u26A0\uFE0F Scanner found 0 files. Check your "include" patterns in i18n.config.json.');
|
|
@@ -101428,7 +101541,13 @@ var Scanner = class {
|
|
|
101428
101541
|
return summary;
|
|
101429
101542
|
}
|
|
101430
101543
|
captureJsxText(node, file, record) {
|
|
101431
|
-
const
|
|
101544
|
+
const directive = this.getExtractionDirective(node);
|
|
101545
|
+
if (directive === "skip") {
|
|
101546
|
+
this.recordSkip("directive_skip", node, node.getText());
|
|
101547
|
+
return;
|
|
101548
|
+
}
|
|
101549
|
+
const forced = directive === "force";
|
|
101550
|
+
const text = this.normalizeText(node.getText(), { force: forced, node });
|
|
101432
101551
|
if (!text) {
|
|
101433
101552
|
return;
|
|
101434
101553
|
}
|
|
@@ -101437,7 +101556,8 @@ var Scanner = class {
|
|
|
101437
101556
|
file,
|
|
101438
101557
|
kind: "jsx-text",
|
|
101439
101558
|
text,
|
|
101440
|
-
context: this.getJsxContext(node)
|
|
101559
|
+
context: this.getJsxContext(node),
|
|
101560
|
+
forced
|
|
101441
101561
|
}), node, file);
|
|
101442
101562
|
}
|
|
101443
101563
|
captureJsxAttribute(node, file, record) {
|
|
@@ -101458,7 +101578,13 @@ var Scanner = class {
|
|
|
101458
101578
|
value = this.extractLiteralText(expression);
|
|
101459
101579
|
}
|
|
101460
101580
|
}
|
|
101461
|
-
const
|
|
101581
|
+
const directive = this.getExtractionDirective(node);
|
|
101582
|
+
if (directive === "skip") {
|
|
101583
|
+
this.recordSkip("directive_skip", node, value);
|
|
101584
|
+
return;
|
|
101585
|
+
}
|
|
101586
|
+
const forced = directive === "force";
|
|
101587
|
+
const text = this.normalizeText(value, { force: forced, node });
|
|
101462
101588
|
if (!text) {
|
|
101463
101589
|
return;
|
|
101464
101590
|
}
|
|
@@ -101467,7 +101593,8 @@ var Scanner = class {
|
|
|
101467
101593
|
file,
|
|
101468
101594
|
kind: "jsx-attribute",
|
|
101469
101595
|
text,
|
|
101470
|
-
context: `${attributeName} attribute
|
|
101596
|
+
context: `${attributeName} attribute`,
|
|
101597
|
+
forced
|
|
101471
101598
|
}), node, file);
|
|
101472
101599
|
}
|
|
101473
101600
|
captureJsxExpression(node, file, record) {
|
|
@@ -101483,7 +101610,13 @@ var Scanner = class {
|
|
|
101483
101610
|
return;
|
|
101484
101611
|
}
|
|
101485
101612
|
const raw = this.extractLiteralText(expression);
|
|
101486
|
-
const
|
|
101613
|
+
const directive = this.getExtractionDirective(node);
|
|
101614
|
+
if (directive === "skip") {
|
|
101615
|
+
this.recordSkip("directive_skip", node, raw);
|
|
101616
|
+
return;
|
|
101617
|
+
}
|
|
101618
|
+
const forced = directive === "force";
|
|
101619
|
+
const text = this.normalizeText(raw, { force: forced, node });
|
|
101487
101620
|
if (!text) {
|
|
101488
101621
|
return;
|
|
101489
101622
|
}
|
|
@@ -101492,7 +101625,8 @@ var Scanner = class {
|
|
|
101492
101625
|
file,
|
|
101493
101626
|
kind: "jsx-expression",
|
|
101494
101627
|
text,
|
|
101495
|
-
context: this.getJsxContext(node)
|
|
101628
|
+
context: this.getJsxContext(node),
|
|
101629
|
+
forced
|
|
101496
101630
|
}), node, file);
|
|
101497
101631
|
}
|
|
101498
101632
|
captureCallExpression(node, file, record) {
|
|
@@ -101506,12 +101640,19 @@ var Scanner = class {
|
|
|
101506
101640
|
if (!arg) {
|
|
101507
101641
|
return;
|
|
101508
101642
|
}
|
|
101643
|
+
const directive = this.getExtractionDirective(arg) ?? this.getExtractionDirective(node);
|
|
101509
101644
|
const raw = this.extractLiteralText(arg);
|
|
101510
|
-
|
|
101645
|
+
if (directive === "skip") {
|
|
101646
|
+
this.recordSkip("directive_skip", node, raw);
|
|
101647
|
+
return;
|
|
101648
|
+
}
|
|
101649
|
+
const forced = directive === "force";
|
|
101650
|
+
const text = this.normalizeText(raw, { force: forced, node });
|
|
101511
101651
|
if (!text) {
|
|
101512
101652
|
return;
|
|
101513
101653
|
}
|
|
101514
|
-
if (!text
|
|
101654
|
+
if (!forced && !/\s/.test(text)) {
|
|
101655
|
+
this.recordSkip("non_sentence", node, text);
|
|
101515
101656
|
return;
|
|
101516
101657
|
}
|
|
101517
101658
|
record(this.createCandidate({
|
|
@@ -101519,7 +101660,8 @@ var Scanner = class {
|
|
|
101519
101660
|
file,
|
|
101520
101661
|
kind: "call-expression",
|
|
101521
101662
|
text,
|
|
101522
|
-
context: "t() call"
|
|
101663
|
+
context: "t() call",
|
|
101664
|
+
forced
|
|
101523
101665
|
}), node, file);
|
|
101524
101666
|
}
|
|
101525
101667
|
extractLiteralText(node) {
|
|
@@ -101535,6 +101677,17 @@ var Scanner = class {
|
|
|
101535
101677
|
if (Node.isTemplateExpression(node)) {
|
|
101536
101678
|
return void 0;
|
|
101537
101679
|
}
|
|
101680
|
+
if (Node.isBinaryExpression(node)) {
|
|
101681
|
+
const operator = node.getOperatorToken().getKind();
|
|
101682
|
+
if (operator === SyntaxKind.PlusToken) {
|
|
101683
|
+
const left = this.extractLiteralText(node.getLeft());
|
|
101684
|
+
const right = this.extractLiteralText(node.getRight());
|
|
101685
|
+
if (typeof left === "string" && typeof right === "string") {
|
|
101686
|
+
return left + right;
|
|
101687
|
+
}
|
|
101688
|
+
}
|
|
101689
|
+
return void 0;
|
|
101690
|
+
}
|
|
101538
101691
|
if (Node.isParenthesizedExpression(node) || Node.isAsExpression(node) || Node.isNonNullExpression(node)) {
|
|
101539
101692
|
return this.extractLiteralText(node.getExpression());
|
|
101540
101693
|
}
|
|
@@ -101572,22 +101725,208 @@ var Scanner = class {
|
|
|
101572
101725
|
kind: params.kind,
|
|
101573
101726
|
text: params.text,
|
|
101574
101727
|
context: params.context,
|
|
101728
|
+
forced: params.forced,
|
|
101575
101729
|
position
|
|
101576
101730
|
};
|
|
101577
101731
|
}
|
|
101578
|
-
|
|
101579
|
-
if (!
|
|
101732
|
+
recordSkip(reason, node, text) {
|
|
101733
|
+
if (!this.activeSkipLog) {
|
|
101734
|
+
return;
|
|
101735
|
+
}
|
|
101736
|
+
const location = node ? {
|
|
101737
|
+
filePath: this.getRelativePath(node.getSourceFile().getFilePath()),
|
|
101738
|
+
...this.getNodePosition(node)
|
|
101739
|
+
} : void 0;
|
|
101740
|
+
this.activeSkipLog.push({
|
|
101741
|
+
text,
|
|
101742
|
+
reason,
|
|
101743
|
+
location
|
|
101744
|
+
});
|
|
101745
|
+
}
|
|
101746
|
+
normalizeText(raw, options8 = {}) {
|
|
101747
|
+
if (typeof raw === "undefined") {
|
|
101748
|
+
this.recordSkip("non_literal", options8.node);
|
|
101580
101749
|
return void 0;
|
|
101581
101750
|
}
|
|
101582
|
-
|
|
101583
|
-
if (
|
|
101751
|
+
let text = raw;
|
|
101752
|
+
if (this.decodeHtmlEntities) {
|
|
101753
|
+
text = this.decodeEntities(text);
|
|
101754
|
+
}
|
|
101755
|
+
if (this.preserveNewlines) {
|
|
101756
|
+
text = text.replace(/\r\n?/g, "\n");
|
|
101757
|
+
text = text.replace(/[ \t\f\v]+/g, " ");
|
|
101758
|
+
text = text.replace(/ *\n */g, "\n");
|
|
101759
|
+
} else {
|
|
101760
|
+
text = text.replace(/\s+/g, " ");
|
|
101761
|
+
}
|
|
101762
|
+
text = text.trim();
|
|
101763
|
+
if (!text.length) {
|
|
101764
|
+
this.recordSkip("empty", options8.node, text);
|
|
101584
101765
|
return void 0;
|
|
101585
101766
|
}
|
|
101586
101767
|
const minLength = this.config.minTextLength ?? 1;
|
|
101587
|
-
if (
|
|
101768
|
+
if (!options8.force && text.length < minLength) {
|
|
101769
|
+
this.recordSkip("below_min_length", options8.node, text);
|
|
101588
101770
|
return void 0;
|
|
101589
101771
|
}
|
|
101590
|
-
|
|
101772
|
+
const inclusion = this.shouldIncludeText(text, { forced: options8.force });
|
|
101773
|
+
if (!inclusion.include) {
|
|
101774
|
+
this.recordSkip(inclusion.reason ?? "insufficient_letters", options8.node, text);
|
|
101775
|
+
return void 0;
|
|
101776
|
+
}
|
|
101777
|
+
return text;
|
|
101778
|
+
}
|
|
101779
|
+
shouldIncludeText(text, options8 = {}) {
|
|
101780
|
+
if (options8.forced) {
|
|
101781
|
+
return { include: true };
|
|
101782
|
+
}
|
|
101783
|
+
if (this.matchesPattern(text, this.denyPatterns)) {
|
|
101784
|
+
return { include: false, reason: "denied_pattern" };
|
|
101785
|
+
}
|
|
101786
|
+
if (this.matchesPattern(text, this.allowPatterns)) {
|
|
101787
|
+
return { include: true };
|
|
101788
|
+
}
|
|
101789
|
+
const letters = text.match(LETTER_REGEX_GLOBAL) || [];
|
|
101790
|
+
const letterCount = letters.length;
|
|
101791
|
+
const totalLength = text.length || 1;
|
|
101792
|
+
if (letterCount === 0) {
|
|
101793
|
+
return { include: false, reason: "no_letters" };
|
|
101794
|
+
}
|
|
101795
|
+
const minLetterCount = this.config.extraction?.minLetterCount ?? 2;
|
|
101796
|
+
const minLetterRatio = this.config.extraction?.minLetterRatio ?? 0.25;
|
|
101797
|
+
const letterRatio = letterCount / totalLength;
|
|
101798
|
+
if (letterCount >= minLetterCount || letterRatio >= minLetterRatio) {
|
|
101799
|
+
return { include: true };
|
|
101800
|
+
}
|
|
101801
|
+
return { include: false, reason: "insufficient_letters" };
|
|
101802
|
+
}
|
|
101803
|
+
matchesPattern(text, patterns) {
|
|
101804
|
+
return patterns.some((pattern) => pattern.test(text));
|
|
101805
|
+
}
|
|
101806
|
+
getConfidenceBucket(candidate) {
|
|
101807
|
+
if (candidate.forced) {
|
|
101808
|
+
return "review";
|
|
101809
|
+
}
|
|
101810
|
+
if (this.matchesPattern(candidate.text, this.allowPatterns)) {
|
|
101811
|
+
return "high";
|
|
101812
|
+
}
|
|
101813
|
+
const letters = candidate.text.match(LETTER_REGEX_GLOBAL) || [];
|
|
101814
|
+
const letterCount = letters.length;
|
|
101815
|
+
const totalLength = candidate.text.length || 1;
|
|
101816
|
+
const letterRatio = letterCount / totalLength;
|
|
101817
|
+
const minLetterCount = this.config.extraction?.minLetterCount ?? 2;
|
|
101818
|
+
const minLetterRatio = this.config.extraction?.minLetterRatio ?? 0.25;
|
|
101819
|
+
const elevatedCountThreshold = Math.max(minLetterCount * 2, minLetterCount + 3);
|
|
101820
|
+
const elevatedRatioThreshold = Math.min(0.85, minLetterRatio + 0.35);
|
|
101821
|
+
if (letterCount >= elevatedCountThreshold) {
|
|
101822
|
+
return "high";
|
|
101823
|
+
}
|
|
101824
|
+
if (letterRatio >= elevatedRatioThreshold && letterCount >= minLetterCount) {
|
|
101825
|
+
return "high";
|
|
101826
|
+
}
|
|
101827
|
+
if (letterCount >= minLetterCount + 2 && letterRatio >= minLetterRatio) {
|
|
101828
|
+
return "high";
|
|
101829
|
+
}
|
|
101830
|
+
return "review";
|
|
101831
|
+
}
|
|
101832
|
+
compilePatterns(patterns) {
|
|
101833
|
+
if (!patterns?.length) {
|
|
101834
|
+
return [];
|
|
101835
|
+
}
|
|
101836
|
+
const result = [];
|
|
101837
|
+
for (const pattern of patterns) {
|
|
101838
|
+
try {
|
|
101839
|
+
result.push(new RegExp(pattern));
|
|
101840
|
+
} catch (error) {
|
|
101841
|
+
console.warn(`\u26A0\uFE0F Invalid extraction pattern "${pattern}": ${error.message}`);
|
|
101842
|
+
}
|
|
101843
|
+
}
|
|
101844
|
+
return result;
|
|
101845
|
+
}
|
|
101846
|
+
decodeEntities(text) {
|
|
101847
|
+
const namedEntities = {
|
|
101848
|
+
amp: "&",
|
|
101849
|
+
lt: "<",
|
|
101850
|
+
gt: ">",
|
|
101851
|
+
quot: '"',
|
|
101852
|
+
apos: "'",
|
|
101853
|
+
nbsp: " "
|
|
101854
|
+
};
|
|
101855
|
+
return text.replace(/&(#\d+|#x[0-9a-f]+|[a-z]+);/gi, (match, entity) => {
|
|
101856
|
+
if (entity[0] === "#") {
|
|
101857
|
+
const isHex = entity[1]?.toLowerCase() === "x";
|
|
101858
|
+
const codePoint = isHex ? parseInt(entity.slice(2), 16) : parseInt(entity.slice(1), 10);
|
|
101859
|
+
return Number.isFinite(codePoint) ? String.fromCodePoint(codePoint) : match;
|
|
101860
|
+
}
|
|
101861
|
+
const normalized = entity.toLowerCase();
|
|
101862
|
+
return normalized in namedEntities ? namedEntities[normalized] : match;
|
|
101863
|
+
});
|
|
101864
|
+
}
|
|
101865
|
+
getExtractionDirective(node) {
|
|
101866
|
+
if (!node) {
|
|
101867
|
+
return void 0;
|
|
101868
|
+
}
|
|
101869
|
+
let current = node;
|
|
101870
|
+
let depth = 0;
|
|
101871
|
+
while (current && depth <= MAX_DIRECTIVE_COMMENT_DEPTH) {
|
|
101872
|
+
const commentDirective = this.getCommentDirective(current);
|
|
101873
|
+
if (commentDirective) {
|
|
101874
|
+
return commentDirective;
|
|
101875
|
+
}
|
|
101876
|
+
if (Node.isSourceFile(current)) {
|
|
101877
|
+
break;
|
|
101878
|
+
}
|
|
101879
|
+
current = current.getParent();
|
|
101880
|
+
depth += 1;
|
|
101881
|
+
}
|
|
101882
|
+
return this.getJsxDirective(node);
|
|
101883
|
+
}
|
|
101884
|
+
getCommentDirective(node) {
|
|
101885
|
+
const ranges = [
|
|
101886
|
+
...node.getLeadingCommentRanges(),
|
|
101887
|
+
...node.getTrailingCommentRanges()
|
|
101888
|
+
];
|
|
101889
|
+
for (const range of ranges) {
|
|
101890
|
+
const text = range.getText();
|
|
101891
|
+
if (/i18n:skip/i.test(text)) {
|
|
101892
|
+
return "skip";
|
|
101893
|
+
}
|
|
101894
|
+
if (/i18n:force-extract/i.test(text)) {
|
|
101895
|
+
return "force";
|
|
101896
|
+
}
|
|
101897
|
+
}
|
|
101898
|
+
return void 0;
|
|
101899
|
+
}
|
|
101900
|
+
getJsxDirective(node) {
|
|
101901
|
+
const jsxAncestor = node.getFirstAncestor(
|
|
101902
|
+
(ancestor) => Node.isJsxElement(ancestor) || Node.isJsxSelfClosingElement(ancestor)
|
|
101903
|
+
);
|
|
101904
|
+
if (!jsxAncestor) {
|
|
101905
|
+
return void 0;
|
|
101906
|
+
}
|
|
101907
|
+
if (Node.isJsxElement(jsxAncestor)) {
|
|
101908
|
+
const attributes = jsxAncestor.getOpeningElement().getAttributes();
|
|
101909
|
+
return this.getDirectiveFromAttributes(attributes);
|
|
101910
|
+
}
|
|
101911
|
+
if (Node.isJsxSelfClosingElement(jsxAncestor)) {
|
|
101912
|
+
return this.getDirectiveFromAttributes(jsxAncestor.getAttributes());
|
|
101913
|
+
}
|
|
101914
|
+
return void 0;
|
|
101915
|
+
}
|
|
101916
|
+
getDirectiveFromAttributes(attributes) {
|
|
101917
|
+
for (const attribute of attributes) {
|
|
101918
|
+
if (!Node.isJsxAttribute(attribute)) {
|
|
101919
|
+
continue;
|
|
101920
|
+
}
|
|
101921
|
+
const name = attribute.getNameNode().getText();
|
|
101922
|
+
if (name === "data-i18n-skip") {
|
|
101923
|
+
return "skip";
|
|
101924
|
+
}
|
|
101925
|
+
if (name === "data-i18n-force-extract") {
|
|
101926
|
+
return "force";
|
|
101927
|
+
}
|
|
101928
|
+
}
|
|
101929
|
+
return void 0;
|
|
101591
101930
|
}
|
|
101592
101931
|
getJsxContext(node) {
|
|
101593
101932
|
const openingElement = node.getFirstAncestorByKind(SyntaxKind.JsxOpeningElement);
|
|
@@ -101603,7 +101942,7 @@ var Scanner = class {
|
|
|
101603
101942
|
return [...includes, ...excludes];
|
|
101604
101943
|
}
|
|
101605
101944
|
resolveTargetFiles(targets) {
|
|
101606
|
-
const normalizedPatterns = targets.flatMap((entry) => entry.split(",").map((token2) => token2.trim())).filter(Boolean).map((pattern) =>
|
|
101945
|
+
const normalizedPatterns = targets.flatMap((entry) => entry.split(",").map((token2) => token2.trim())).filter(Boolean).map((pattern) => path3.isAbsolute(pattern) ? pattern : path3.join(this.workspaceRoot, pattern));
|
|
101607
101946
|
const matches = fg.sync(normalizedPatterns, {
|
|
101608
101947
|
onlyFiles: true,
|
|
101609
101948
|
unique: true,
|
|
@@ -101612,7 +101951,7 @@ var Scanner = class {
|
|
|
101612
101951
|
return matches.sort((a5, b7) => a5.localeCompare(b7));
|
|
101613
101952
|
}
|
|
101614
101953
|
getRelativePath(filePath) {
|
|
101615
|
-
const relative2 =
|
|
101954
|
+
const relative2 = path3.relative(this.workspaceRoot, filePath);
|
|
101616
101955
|
return relative2 || filePath;
|
|
101617
101956
|
}
|
|
101618
101957
|
getNodePosition(node) {
|
|
@@ -101624,7 +101963,7 @@ var Scanner = class {
|
|
|
101624
101963
|
|
|
101625
101964
|
// ../core/src/key-generator.ts
|
|
101626
101965
|
import crypto from "crypto";
|
|
101627
|
-
import
|
|
101966
|
+
import path4 from "path";
|
|
101628
101967
|
function normalizeText(input) {
|
|
101629
101968
|
return input.replace(/\s+/g, " ").trim();
|
|
101630
101969
|
}
|
|
@@ -101675,7 +102014,7 @@ var KeyGenerator = class {
|
|
|
101675
102014
|
text,
|
|
101676
102015
|
context.kind,
|
|
101677
102016
|
context.context ?? "",
|
|
101678
|
-
|
|
102017
|
+
path4.normalize(context.filePath).replace(/\\+/g, "/")
|
|
101679
102018
|
].join("|");
|
|
101680
102019
|
return crypto.createHash("sha1").update(base).digest("hex");
|
|
101681
102020
|
}
|
|
@@ -101691,7 +102030,7 @@ var KeyGenerator = class {
|
|
|
101691
102030
|
return candidate;
|
|
101692
102031
|
}
|
|
101693
102032
|
buildScopeSlug(filePath, jsxContext) {
|
|
101694
|
-
const fileSlug = slugify(
|
|
102033
|
+
const fileSlug = slugify(path4.basename(filePath, path4.extname(filePath)));
|
|
101695
102034
|
const contextSlug = slugify(jsxContext);
|
|
101696
102035
|
if (fileSlug && contextSlug) {
|
|
101697
102036
|
return `${fileSlug}.${contextSlug}`;
|
|
@@ -101924,8 +102263,8 @@ function capitalize(word) {
|
|
|
101924
102263
|
}
|
|
101925
102264
|
|
|
101926
102265
|
// ../core/src/locale-store.ts
|
|
101927
|
-
import
|
|
101928
|
-
import
|
|
102266
|
+
import fs3 from "fs/promises";
|
|
102267
|
+
import path5 from "path";
|
|
101929
102268
|
import crypto2 from "crypto";
|
|
101930
102269
|
|
|
101931
102270
|
// ../core/src/utils/locale-shape.ts
|
|
@@ -102020,7 +102359,7 @@ var LocaleStore = class {
|
|
|
102020
102359
|
this.sortKeysMode = options8.sortKeys ?? DEFAULT_LOCALE_STORE_OPTIONS.sortKeys;
|
|
102021
102360
|
}
|
|
102022
102361
|
getFilePath(locale) {
|
|
102023
|
-
return
|
|
102362
|
+
return path5.join(this.localesDir, `${locale}.json`);
|
|
102024
102363
|
}
|
|
102025
102364
|
async get(locale) {
|
|
102026
102365
|
const entry = await this.ensureLocale(locale);
|
|
@@ -102085,27 +102424,27 @@ var LocaleStore = class {
|
|
|
102085
102424
|
if (!entry.dirty) {
|
|
102086
102425
|
continue;
|
|
102087
102426
|
}
|
|
102088
|
-
await
|
|
102427
|
+
await fs3.mkdir(path5.dirname(entry.path), { recursive: true });
|
|
102089
102428
|
const sortedData = this.sortKeysForEntry(entry.data, entry);
|
|
102090
102429
|
const format3 = this.resolvePersistenceFormat(entry);
|
|
102091
102430
|
const structured = format3 === "flat" ? sortedData : sortNestedObject(expandLocaleTree(sortedData, this.delimiter));
|
|
102092
102431
|
const serialized = JSON.stringify(structured, null, 2);
|
|
102093
102432
|
const tempPath = this.createTempPath(entry.path);
|
|
102094
|
-
await
|
|
102433
|
+
await fs3.writeFile(tempPath, `${serialized}
|
|
102095
102434
|
`, "utf8");
|
|
102096
102435
|
try {
|
|
102097
|
-
await
|
|
102436
|
+
await fs3.rename(tempPath, entry.path);
|
|
102098
102437
|
} catch (error) {
|
|
102099
102438
|
const err = error;
|
|
102100
102439
|
if (err.code === "EEXIST" || err.code === "EPERM") {
|
|
102101
|
-
await
|
|
102440
|
+
await fs3.rm(entry.path, { force: true }).catch(() => {
|
|
102102
102441
|
});
|
|
102103
|
-
await
|
|
102442
|
+
await fs3.rename(tempPath, entry.path);
|
|
102104
102443
|
} else {
|
|
102105
102444
|
throw error;
|
|
102106
102445
|
}
|
|
102107
102446
|
} finally {
|
|
102108
|
-
await
|
|
102447
|
+
await fs3.rm(tempPath, { force: true }).catch(() => {
|
|
102109
102448
|
});
|
|
102110
102449
|
}
|
|
102111
102450
|
entry.dirty = false;
|
|
@@ -102133,24 +102472,24 @@ var LocaleStore = class {
|
|
|
102133
102472
|
for (const entry of this.cache.values()) {
|
|
102134
102473
|
const sortedData = this.sortKeysForEntry(entry.data, entry);
|
|
102135
102474
|
const structured = targetFormat === "flat" ? sortedData : sortNestedObject(expandLocaleTree(sortedData, delimiter));
|
|
102136
|
-
await
|
|
102475
|
+
await fs3.mkdir(path5.dirname(entry.path), { recursive: true });
|
|
102137
102476
|
const serialized = JSON.stringify(structured, null, 2);
|
|
102138
102477
|
const tempPath = this.createTempPath(entry.path);
|
|
102139
|
-
await
|
|
102478
|
+
await fs3.writeFile(tempPath, `${serialized}
|
|
102140
102479
|
`, "utf8");
|
|
102141
102480
|
try {
|
|
102142
|
-
await
|
|
102481
|
+
await fs3.rename(tempPath, entry.path);
|
|
102143
102482
|
} catch (error) {
|
|
102144
102483
|
const err = error;
|
|
102145
102484
|
if (err.code === "EEXIST" || err.code === "EPERM") {
|
|
102146
|
-
await
|
|
102485
|
+
await fs3.rm(entry.path, { force: true }).catch(() => {
|
|
102147
102486
|
});
|
|
102148
|
-
await
|
|
102487
|
+
await fs3.rename(tempPath, entry.path);
|
|
102149
102488
|
} else {
|
|
102150
102489
|
throw error;
|
|
102151
102490
|
}
|
|
102152
102491
|
} finally {
|
|
102153
|
-
await
|
|
102492
|
+
await fs3.rm(tempPath, { force: true }).catch(() => {
|
|
102154
102493
|
});
|
|
102155
102494
|
}
|
|
102156
102495
|
entry.format = targetFormat;
|
|
@@ -102171,7 +102510,7 @@ var LocaleStore = class {
|
|
|
102171
102510
|
}
|
|
102172
102511
|
async loadLocaleData(filePath) {
|
|
102173
102512
|
try {
|
|
102174
|
-
const contents = await
|
|
102513
|
+
const contents = await fs3.readFile(filePath, "utf8");
|
|
102175
102514
|
const parsed = JSON.parse(contents);
|
|
102176
102515
|
if (!parsed || typeof parsed !== "object") {
|
|
102177
102516
|
return { data: {}, format: this.resolveFormatPreference("flat"), originalKeyOrder: [] };
|
|
@@ -102472,33 +102811,33 @@ var LocaleValidator = class {
|
|
|
102472
102811
|
};
|
|
102473
102812
|
|
|
102474
102813
|
// ../core/src/syncer.ts
|
|
102475
|
-
import
|
|
102814
|
+
import path8 from "path";
|
|
102476
102815
|
import { Node as Node2, Project as Project2 } from "ts-morph";
|
|
102477
102816
|
import fg2 from "fast-glob";
|
|
102478
102817
|
|
|
102479
102818
|
// ../core/src/backup.ts
|
|
102480
|
-
import
|
|
102481
|
-
import
|
|
102819
|
+
import fs4 from "fs/promises";
|
|
102820
|
+
import path6 from "path";
|
|
102482
102821
|
var DEFAULT_BACKUP_DIR = ".i18nsmith-backup";
|
|
102483
102822
|
var DEFAULT_MAX_BACKUPS = 5;
|
|
102484
102823
|
var MANIFEST_VERSION = 1;
|
|
102485
102824
|
async function createBackup(localesDir, workspaceRoot, options8 = {}, command) {
|
|
102486
|
-
const backupBaseDir =
|
|
102825
|
+
const backupBaseDir = path6.resolve(workspaceRoot, options8.backupDir ?? DEFAULT_BACKUP_DIR);
|
|
102487
102826
|
const maxBackups = options8.maxBackups ?? DEFAULT_MAX_BACKUPS;
|
|
102488
102827
|
try {
|
|
102489
|
-
await
|
|
102828
|
+
await fs4.access(localesDir);
|
|
102490
102829
|
} catch {
|
|
102491
102830
|
return null;
|
|
102492
102831
|
}
|
|
102493
|
-
const files = await
|
|
102832
|
+
const files = await fs4.readdir(localesDir);
|
|
102494
102833
|
const localeFiles = files.filter((f7) => f7.endsWith(".json"));
|
|
102495
102834
|
if (localeFiles.length === 0) {
|
|
102496
102835
|
return null;
|
|
102497
102836
|
}
|
|
102498
102837
|
const now = /* @__PURE__ */ new Date();
|
|
102499
102838
|
const timestamp = formatTimestamp(now);
|
|
102500
|
-
const backupPath =
|
|
102501
|
-
await
|
|
102839
|
+
const backupPath = path6.join(backupBaseDir, timestamp);
|
|
102840
|
+
await fs4.mkdir(backupPath, { recursive: true });
|
|
102502
102841
|
const manifest = {
|
|
102503
102842
|
version: MANIFEST_VERSION,
|
|
102504
102843
|
timestamp,
|
|
@@ -102507,19 +102846,19 @@ async function createBackup(localesDir, workspaceRoot, options8 = {}, command) {
|
|
|
102507
102846
|
command
|
|
102508
102847
|
};
|
|
102509
102848
|
for (const file of localeFiles) {
|
|
102510
|
-
const sourcePath =
|
|
102511
|
-
const destPath =
|
|
102512
|
-
const content = await
|
|
102513
|
-
await
|
|
102514
|
-
const stats = await
|
|
102849
|
+
const sourcePath = path6.join(localesDir, file);
|
|
102850
|
+
const destPath = path6.join(backupPath, file);
|
|
102851
|
+
const content = await fs4.readFile(sourcePath);
|
|
102852
|
+
await fs4.writeFile(destPath, content);
|
|
102853
|
+
const stats = await fs4.stat(sourcePath);
|
|
102515
102854
|
manifest.files.push({
|
|
102516
|
-
originalPath:
|
|
102517
|
-
backupPath:
|
|
102855
|
+
originalPath: path6.relative(workspaceRoot, sourcePath),
|
|
102856
|
+
backupPath: path6.relative(workspaceRoot, destPath),
|
|
102518
102857
|
size: stats.size
|
|
102519
102858
|
});
|
|
102520
102859
|
}
|
|
102521
|
-
await
|
|
102522
|
-
|
|
102860
|
+
await fs4.writeFile(
|
|
102861
|
+
path6.join(backupPath, "manifest.json"),
|
|
102523
102862
|
JSON.stringify(manifest, null, 2)
|
|
102524
102863
|
);
|
|
102525
102864
|
await pruneOldBackups(backupBaseDir, maxBackups);
|
|
@@ -102527,27 +102866,27 @@ async function createBackup(localesDir, workspaceRoot, options8 = {}, command) {
|
|
|
102527
102866
|
timestamp,
|
|
102528
102867
|
backupPath,
|
|
102529
102868
|
files: localeFiles,
|
|
102530
|
-
summary: `Backed up ${localeFiles.length} locale file(s) to ${
|
|
102869
|
+
summary: `Backed up ${localeFiles.length} locale file(s) to ${path6.relative(workspaceRoot, backupPath)}`
|
|
102531
102870
|
};
|
|
102532
102871
|
}
|
|
102533
102872
|
async function listBackups(workspaceRoot, options8 = {}) {
|
|
102534
|
-
const backupBaseDir =
|
|
102873
|
+
const backupBaseDir = path6.resolve(workspaceRoot, options8.backupDir ?? DEFAULT_BACKUP_DIR);
|
|
102535
102874
|
try {
|
|
102536
|
-
await
|
|
102875
|
+
await fs4.access(backupBaseDir);
|
|
102537
102876
|
} catch {
|
|
102538
102877
|
return [];
|
|
102539
102878
|
}
|
|
102540
|
-
const entries = await
|
|
102879
|
+
const entries = await fs4.readdir(backupBaseDir, { withFileTypes: true });
|
|
102541
102880
|
const backups = [];
|
|
102542
102881
|
for (const entry of entries) {
|
|
102543
102882
|
if (!entry.isDirectory()) continue;
|
|
102544
|
-
const manifestPath =
|
|
102883
|
+
const manifestPath = path6.join(backupBaseDir, entry.name, "manifest.json");
|
|
102545
102884
|
try {
|
|
102546
|
-
const manifestContent = await
|
|
102885
|
+
const manifestContent = await fs4.readFile(manifestPath, "utf8");
|
|
102547
102886
|
const manifest = JSON.parse(manifestContent);
|
|
102548
102887
|
backups.push({
|
|
102549
102888
|
timestamp: manifest.timestamp,
|
|
102550
|
-
path:
|
|
102889
|
+
path: path6.join(backupBaseDir, entry.name),
|
|
102551
102890
|
fileCount: manifest.files.length,
|
|
102552
102891
|
createdAt: manifest.createdAt
|
|
102553
102892
|
});
|
|
@@ -102557,16 +102896,16 @@ async function listBackups(workspaceRoot, options8 = {}) {
|
|
|
102557
102896
|
return backups.sort((a5, b7) => b7.timestamp.localeCompare(a5.timestamp));
|
|
102558
102897
|
}
|
|
102559
102898
|
async function restoreBackup(backupPath, workspaceRoot) {
|
|
102560
|
-
const manifestPath =
|
|
102561
|
-
const manifestContent = await
|
|
102899
|
+
const manifestPath = path6.join(backupPath, "manifest.json");
|
|
102900
|
+
const manifestContent = await fs4.readFile(manifestPath, "utf8");
|
|
102562
102901
|
const manifest = JSON.parse(manifestContent);
|
|
102563
102902
|
const restored = [];
|
|
102564
102903
|
for (const file of manifest.files) {
|
|
102565
|
-
const sourcePath =
|
|
102566
|
-
const destPath =
|
|
102567
|
-
await
|
|
102568
|
-
const content = await
|
|
102569
|
-
await
|
|
102904
|
+
const sourcePath = path6.join(backupPath, path6.basename(file.backupPath));
|
|
102905
|
+
const destPath = path6.resolve(workspaceRoot, file.originalPath);
|
|
102906
|
+
await fs4.mkdir(path6.dirname(destPath), { recursive: true });
|
|
102907
|
+
const content = await fs4.readFile(sourcePath);
|
|
102908
|
+
await fs4.writeFile(destPath, content);
|
|
102570
102909
|
restored.push(file.originalPath);
|
|
102571
102910
|
}
|
|
102572
102911
|
return {
|
|
@@ -102575,11 +102914,11 @@ async function restoreBackup(backupPath, workspaceRoot) {
|
|
|
102575
102914
|
};
|
|
102576
102915
|
}
|
|
102577
102916
|
async function pruneOldBackups(backupBaseDir, maxBackups) {
|
|
102578
|
-
const entries = await
|
|
102917
|
+
const entries = await fs4.readdir(backupBaseDir, { withFileTypes: true });
|
|
102579
102918
|
const backupDirs = entries.filter((e30) => e30.isDirectory()).map((e30) => e30.name).sort().reverse();
|
|
102580
102919
|
for (const dir of backupDirs.slice(maxBackups)) {
|
|
102581
|
-
const dirPath =
|
|
102582
|
-
await
|
|
102920
|
+
const dirPath = path6.join(backupBaseDir, dir);
|
|
102921
|
+
await fs4.rm(dirPath, { recursive: true, force: true });
|
|
102583
102922
|
}
|
|
102584
102923
|
}
|
|
102585
102924
|
function formatTimestamp(date) {
|
|
@@ -102681,7 +103020,7 @@ var PlaceholderValidator = class {
|
|
|
102681
103020
|
|
|
102682
103021
|
// ../core/src/diff-utils.ts
|
|
102683
103022
|
import { createPatch } from "diff";
|
|
102684
|
-
import
|
|
103023
|
+
import path7 from "path";
|
|
102685
103024
|
function buildLocaleDiffs(originalData, projectedData, getFilePath, workspaceRoot) {
|
|
102686
103025
|
const locales = /* @__PURE__ */ new Set([...originalData.keys(), ...projectedData.keys()]);
|
|
102687
103026
|
const diffs = [];
|
|
@@ -102696,7 +103035,7 @@ function buildLocaleDiffs(originalData, projectedData, getFilePath, workspaceRoo
|
|
|
102696
103035
|
const afterSerialized = `${JSON.stringify(after, null, 2)}
|
|
102697
103036
|
`;
|
|
102698
103037
|
const filePath = getFilePath(locale);
|
|
102699
|
-
const relativePath =
|
|
103038
|
+
const relativePath = path7.relative(workspaceRoot, filePath) || filePath;
|
|
102700
103039
|
const patch = createPatch(relativePath, beforeSerialized, afterSerialized);
|
|
102701
103040
|
const { added, updated, removed } = computeDiffStats(before, after);
|
|
102702
103041
|
diffs.push({
|
|
@@ -102779,7 +103118,7 @@ function createUnifiedDiff(filePath, originalContent, newContent, workspaceRoot)
|
|
|
102779
103118
|
if (originalContent === newContent) {
|
|
102780
103119
|
return null;
|
|
102781
103120
|
}
|
|
102782
|
-
const relativePath =
|
|
103121
|
+
const relativePath = path7.relative(workspaceRoot, filePath) || filePath;
|
|
102783
103122
|
const diff = createPatch(relativePath, originalContent, newContent);
|
|
102784
103123
|
const lines = diff.split("\n");
|
|
102785
103124
|
let changes = 0;
|
|
@@ -102797,7 +103136,7 @@ function createUnifiedDiff(filePath, originalContent, newContent, workspaceRoot)
|
|
|
102797
103136
|
}
|
|
102798
103137
|
|
|
102799
103138
|
// ../core/src/syncer/reference-cache.ts
|
|
102800
|
-
import
|
|
103139
|
+
import fs5 from "fs/promises";
|
|
102801
103140
|
var REFERENCE_CACHE_VERSION = 2;
|
|
102802
103141
|
async function loadReferenceCache(cachePath, translationIdentifier, invalidate) {
|
|
102803
103142
|
if (invalidate) {
|
|
@@ -102805,7 +103144,7 @@ async function loadReferenceCache(cachePath, translationIdentifier, invalidate)
|
|
|
102805
103144
|
return void 0;
|
|
102806
103145
|
}
|
|
102807
103146
|
try {
|
|
102808
|
-
const raw = await
|
|
103147
|
+
const raw = await fs5.readFile(cachePath, "utf8");
|
|
102809
103148
|
const parsed = JSON.parse(raw);
|
|
102810
103149
|
if (parsed.version !== REFERENCE_CACHE_VERSION) {
|
|
102811
103150
|
return void 0;
|
|
@@ -102827,15 +103166,15 @@ async function saveReferenceCache(cachePath, cacheDir, translationIdentifier, en
|
|
|
102827
103166
|
translationIdentifier,
|
|
102828
103167
|
files: entries
|
|
102829
103168
|
};
|
|
102830
|
-
await
|
|
102831
|
-
await
|
|
103169
|
+
await fs5.mkdir(cacheDir, { recursive: true });
|
|
103170
|
+
await fs5.writeFile(cachePath, JSON.stringify(payload), "utf8");
|
|
102832
103171
|
}
|
|
102833
103172
|
async function clearReferenceCache(cachePath) {
|
|
102834
|
-
await
|
|
103173
|
+
await fs5.rm(cachePath, { force: true }).catch(() => {
|
|
102835
103174
|
});
|
|
102836
103175
|
}
|
|
102837
103176
|
async function computeFileFingerprint(filePath) {
|
|
102838
|
-
const stats = await
|
|
103177
|
+
const stats = await fs5.stat(filePath);
|
|
102839
103178
|
return {
|
|
102840
103179
|
mtimeMs: stats.mtimeMs,
|
|
102841
103180
|
size: stats.size
|
|
@@ -103179,7 +103518,7 @@ var Syncer = class {
|
|
|
103179
103518
|
this.project = options8.project ?? new Project2({
|
|
103180
103519
|
skipAddingFilesFromTsConfig: true
|
|
103181
103520
|
});
|
|
103182
|
-
const localesDir =
|
|
103521
|
+
const localesDir = path8.resolve(this.workspaceRoot, config.localesDir ?? "locales");
|
|
103183
103522
|
const localeStoreOptions = {
|
|
103184
103523
|
format: config.locales?.format ?? "auto",
|
|
103185
103524
|
delimiter: config.locales?.delimiter ?? ".",
|
|
@@ -103201,8 +103540,8 @@ var Syncer = class {
|
|
|
103201
103540
|
this.defaultAssumedKeys = syncOptions.dynamicKeyAssumptions ?? [];
|
|
103202
103541
|
const globPatterns = syncOptions.dynamicKeyGlobs ?? [];
|
|
103203
103542
|
this.dynamicKeyGlobMatchers = globPatterns.map((pattern) => pattern.trim()).filter(Boolean).map((pattern) => compileGlob(pattern));
|
|
103204
|
-
this.cacheDir =
|
|
103205
|
-
this.referenceCachePath =
|
|
103543
|
+
this.cacheDir = path8.join(this.workspaceRoot, ".i18nsmith", "cache");
|
|
103544
|
+
this.referenceCachePath = path8.join(this.cacheDir, "sync-references.json");
|
|
103206
103545
|
}
|
|
103207
103546
|
async run(runOptions = {}) {
|
|
103208
103547
|
const runtime = this.resolveRuntimeOptions(runOptions);
|
|
@@ -103308,7 +103647,7 @@ var Syncer = class {
|
|
|
103308
103647
|
let backupResult;
|
|
103309
103648
|
if (write) {
|
|
103310
103649
|
if (runtime.backup) {
|
|
103311
|
-
const localesDir =
|
|
103650
|
+
const localesDir = path8.resolve(this.workspaceRoot, this.config.localesDir ?? "locales");
|
|
103312
103651
|
const result = await createBackup(
|
|
103313
103652
|
localesDir,
|
|
103314
103653
|
this.workspaceRoot,
|
|
@@ -103467,7 +103806,7 @@ var Syncer = class {
|
|
|
103467
103806
|
return void 0;
|
|
103468
103807
|
}
|
|
103469
103808
|
const resolvedPatterns = normalizedTargets.map(
|
|
103470
|
-
(pattern) =>
|
|
103809
|
+
(pattern) => path8.isAbsolute(pattern) ? pattern : path8.join(this.workspaceRoot, pattern)
|
|
103471
103810
|
);
|
|
103472
103811
|
const files = await fg2(resolvedPatterns, {
|
|
103473
103812
|
onlyFiles: true,
|
|
@@ -103480,7 +103819,7 @@ var Syncer = class {
|
|
|
103480
103819
|
const absolute = /* @__PURE__ */ new Set();
|
|
103481
103820
|
const relative2 = /* @__PURE__ */ new Set();
|
|
103482
103821
|
for (const filePath of files) {
|
|
103483
|
-
const absolutePath =
|
|
103822
|
+
const absolutePath = path8.resolve(filePath);
|
|
103484
103823
|
absolute.add(absolutePath);
|
|
103485
103824
|
relative2.add(this.getRelativePath(absolutePath));
|
|
103486
103825
|
}
|
|
@@ -103642,14 +103981,14 @@ var Syncer = class {
|
|
|
103642
103981
|
return [...includes, ...excludes];
|
|
103643
103982
|
}
|
|
103644
103983
|
getRelativePath(filePath) {
|
|
103645
|
-
const relative2 =
|
|
103984
|
+
const relative2 = path8.relative(this.workspaceRoot, filePath);
|
|
103646
103985
|
return relative2 || filePath;
|
|
103647
103986
|
}
|
|
103648
103987
|
resolveGlobPatterns(patterns) {
|
|
103649
103988
|
return patterns.map((pattern) => {
|
|
103650
103989
|
const isNegated = pattern.startsWith("!");
|
|
103651
103990
|
const rawPattern = isNegated ? pattern.slice(1) : pattern;
|
|
103652
|
-
const absolute =
|
|
103991
|
+
const absolute = path8.isAbsolute(rawPattern) ? rawPattern : path8.join(this.workspaceRoot, rawPattern);
|
|
103653
103992
|
return isNegated ? `!${absolute}` : absolute;
|
|
103654
103993
|
});
|
|
103655
103994
|
}
|
|
@@ -103734,14 +104073,14 @@ import fg3 from "fast-glob";
|
|
|
103734
104073
|
import { Node as Node3, Project as Project3 } from "ts-morph";
|
|
103735
104074
|
|
|
103736
104075
|
// ../core/src/key-renamer.ts
|
|
103737
|
-
import
|
|
104076
|
+
import path9 from "path";
|
|
103738
104077
|
import { Node as Node4, Project as Project4 } from "ts-morph";
|
|
103739
104078
|
var KeyRenamer = class {
|
|
103740
104079
|
constructor(config, options8 = {}) {
|
|
103741
104080
|
this.config = config;
|
|
103742
104081
|
this.workspaceRoot = options8.workspaceRoot ?? process.cwd();
|
|
103743
104082
|
this.project = options8.project ?? new Project4({ skipAddingFilesFromTsConfig: true });
|
|
103744
|
-
const localesDir =
|
|
104083
|
+
const localesDir = path9.resolve(this.workspaceRoot, config.localesDir ?? "locales");
|
|
103745
104084
|
const localeStoreOptions = {
|
|
103746
104085
|
format: config.locales?.format ?? "auto",
|
|
103747
104086
|
delimiter: config.locales?.delimiter ?? ".",
|
|
@@ -103953,22 +104292,22 @@ var KeyRenamer = class {
|
|
|
103953
104292
|
return [...includes, ...excludes];
|
|
103954
104293
|
}
|
|
103955
104294
|
getRelativePath(filePath) {
|
|
103956
|
-
const relative2 =
|
|
104295
|
+
const relative2 = path9.relative(this.workspaceRoot, filePath);
|
|
103957
104296
|
return relative2 || filePath;
|
|
103958
104297
|
}
|
|
103959
104298
|
resolveGlobPatterns(patterns) {
|
|
103960
104299
|
return patterns.map((pattern) => {
|
|
103961
104300
|
const isNegated = pattern.startsWith("!");
|
|
103962
104301
|
const rawPattern = isNegated ? pattern.slice(1) : pattern;
|
|
103963
|
-
const absolute =
|
|
104302
|
+
const absolute = path9.isAbsolute(rawPattern) ? rawPattern : path9.join(this.workspaceRoot, rawPattern);
|
|
103964
104303
|
return isNegated ? `!${absolute}` : absolute;
|
|
103965
104304
|
});
|
|
103966
104305
|
}
|
|
103967
104306
|
};
|
|
103968
104307
|
|
|
103969
104308
|
// ../core/src/diagnostics.ts
|
|
103970
|
-
import
|
|
103971
|
-
import
|
|
104309
|
+
import fs6 from "fs/promises";
|
|
104310
|
+
import path10 from "path";
|
|
103972
104311
|
import fg4 from "fast-glob";
|
|
103973
104312
|
var DEFAULT_INCLUDE2 = ["src/**/*.{ts,tsx,js,jsx}"];
|
|
103974
104313
|
var DEFAULT_RUNTIME_DEPENDENCIES = [
|
|
@@ -103993,7 +104332,7 @@ var DEFAULT_ADAPTER_HINTS = [
|
|
|
103993
104332
|
var DEFAULT_MAX_SOURCE_FILES = 200;
|
|
103994
104333
|
async function diagnoseWorkspace(config, options8 = {}) {
|
|
103995
104334
|
const workspaceRoot = options8.workspaceRoot ?? process.cwd();
|
|
103996
|
-
const localesDir =
|
|
104335
|
+
const localesDir = path10.resolve(workspaceRoot, config.localesDir ?? "locales");
|
|
103997
104336
|
const localeFiles = await detectLocaleFiles(localesDir, config);
|
|
103998
104337
|
const detectedLocales = localeFiles.filter((entry) => !entry.missing && !entry.parseError).map((entry) => entry.locale);
|
|
103999
104338
|
const runtimePackages = await detectRuntimePackages(workspaceRoot, config);
|
|
@@ -104030,7 +104369,7 @@ function buildActionableInsights(input) {
|
|
|
104030
104369
|
const sourceLocale = input.localeFiles.find((entry) => entry.locale === input.config.sourceLanguage && !entry.missing);
|
|
104031
104370
|
if (!sourceLocale) {
|
|
104032
104371
|
const message = `Source locale "${input.config.sourceLanguage}" is missing in ${input.config.localesDir}.`;
|
|
104033
|
-
conflicts.push({ kind: "missing-source-locale", message, files: [
|
|
104372
|
+
conflicts.push({ kind: "missing-source-locale", message, files: [path10.join(input.config.localesDir, `${input.config.sourceLanguage}.json`)] });
|
|
104034
104373
|
actionableItems.push({ kind: "diagnostics-missing-source-locale", severity: "error", message });
|
|
104035
104374
|
}
|
|
104036
104375
|
const missingTargets = input.config.targetLanguages.filter(
|
|
@@ -104124,9 +104463,9 @@ async function detectLocaleFiles(localesDir, config) {
|
|
|
104124
104463
|
absolute: true
|
|
104125
104464
|
}).catch(() => []);
|
|
104126
104465
|
for (const absolutePath of files) {
|
|
104127
|
-
const locale =
|
|
104466
|
+
const locale = path10.basename(absolutePath, path10.extname(absolutePath));
|
|
104128
104467
|
try {
|
|
104129
|
-
const [raw, stats] = await Promise.all([
|
|
104468
|
+
const [raw, stats] = await Promise.all([fs6.readFile(absolutePath, "utf8"), fs6.stat(absolutePath)]);
|
|
104130
104469
|
const parsed = JSON.parse(raw);
|
|
104131
104470
|
entries.push({
|
|
104132
104471
|
locale,
|
|
@@ -104149,7 +104488,7 @@ async function detectLocaleFiles(localesDir, config) {
|
|
|
104149
104488
|
if (!entries.some((entry) => entry.locale === locale)) {
|
|
104150
104489
|
entries.push({
|
|
104151
104490
|
locale,
|
|
104152
|
-
path:
|
|
104491
|
+
path: path10.join(localesDir, `${locale}.json`),
|
|
104153
104492
|
keyCount: 0,
|
|
104154
104493
|
bytes: 0,
|
|
104155
104494
|
missing: true
|
|
@@ -104159,12 +104498,12 @@ async function detectLocaleFiles(localesDir, config) {
|
|
|
104159
104498
|
return entries.sort((a5, b7) => a5.locale.localeCompare(b7.locale));
|
|
104160
104499
|
}
|
|
104161
104500
|
async function detectRuntimePackages(workspaceRoot, config) {
|
|
104162
|
-
const pkgPath =
|
|
104501
|
+
const pkgPath = path10.join(workspaceRoot, "package.json");
|
|
104163
104502
|
const candidates = Array.from(
|
|
104164
104503
|
/* @__PURE__ */ new Set([...DEFAULT_RUNTIME_DEPENDENCIES, ...config.diagnostics?.runtimePackages ?? []])
|
|
104165
104504
|
);
|
|
104166
104505
|
try {
|
|
104167
|
-
const raw = await
|
|
104506
|
+
const raw = await fs6.readFile(pkgPath, "utf8");
|
|
104168
104507
|
const pkg = JSON.parse(raw);
|
|
104169
104508
|
const deps = pkg.dependencies ?? {};
|
|
104170
104509
|
const devDeps = pkg.devDependencies ?? {};
|
|
@@ -104195,8 +104534,8 @@ async function detectProviderFiles(workspaceRoot, config) {
|
|
|
104195
104534
|
const providers = [];
|
|
104196
104535
|
for (const absolutePath of matches.slice(0, 50)) {
|
|
104197
104536
|
try {
|
|
104198
|
-
const contents = await
|
|
104199
|
-
const relativePath =
|
|
104537
|
+
const contents = await fs6.readFile(absolutePath, "utf8");
|
|
104538
|
+
const relativePath = path10.relative(workspaceRoot, absolutePath);
|
|
104200
104539
|
providers.push({
|
|
104201
104540
|
path: absolutePath,
|
|
104202
104541
|
relativePath,
|
|
@@ -104214,9 +104553,9 @@ async function detectAdapterFiles(workspaceRoot, config) {
|
|
|
104214
104553
|
const hints = [...DEFAULT_ADAPTER_HINTS, ...config.diagnostics?.adapterHints ?? []];
|
|
104215
104554
|
await Promise.all(
|
|
104216
104555
|
hints.map(async (hint) => {
|
|
104217
|
-
const absolute =
|
|
104556
|
+
const absolute = path10.resolve(workspaceRoot, hint.path);
|
|
104218
104557
|
try {
|
|
104219
|
-
await
|
|
104558
|
+
await fs6.access(absolute);
|
|
104220
104559
|
detections.push({ ...hint });
|
|
104221
104560
|
} catch {
|
|
104222
104561
|
}
|
|
@@ -104229,7 +104568,7 @@ async function detectTranslationUsage(workspaceRoot, config) {
|
|
|
104229
104568
|
/* @__PURE__ */ new Set([...config.include, ...config.diagnostics?.include ?? []])
|
|
104230
104569
|
);
|
|
104231
104570
|
const includePatterns = (includeGlobs.length ? includeGlobs : DEFAULT_INCLUDE2).map(
|
|
104232
|
-
(pattern) =>
|
|
104571
|
+
(pattern) => path10.resolve(workspaceRoot, pattern)
|
|
104233
104572
|
);
|
|
104234
104573
|
const excludePatterns = Array.from(/* @__PURE__ */ new Set([...config.exclude ?? [], ...config.diagnostics?.exclude ?? []]));
|
|
104235
104574
|
const files = await fg4(includePatterns, {
|
|
@@ -104250,16 +104589,16 @@ async function detectTranslationUsage(workspaceRoot, config) {
|
|
|
104250
104589
|
const identifierExampleFiles = [];
|
|
104251
104590
|
for (const filePath of sampled) {
|
|
104252
104591
|
try {
|
|
104253
|
-
const contents = await
|
|
104592
|
+
const contents = await fs6.readFile(filePath, "utf8");
|
|
104254
104593
|
const hookMatches = contents.match(new RegExp(hookPattern, "g"));
|
|
104255
104594
|
const identifierMatches = contents.match(new RegExp(identifierPattern, "g"));
|
|
104256
104595
|
hookOccurrences += hookMatches?.length ?? 0;
|
|
104257
104596
|
identifierOccurrences += identifierMatches?.length ?? 0;
|
|
104258
104597
|
if (hookExampleFiles.length < 5 && hookMatches?.length) {
|
|
104259
|
-
hookExampleFiles.push(
|
|
104598
|
+
hookExampleFiles.push(path10.relative(workspaceRoot, filePath));
|
|
104260
104599
|
}
|
|
104261
104600
|
if (identifierExampleFiles.length < 5 && identifierMatches?.length) {
|
|
104262
|
-
identifierExampleFiles.push(
|
|
104601
|
+
identifierExampleFiles.push(path10.relative(workspaceRoot, filePath));
|
|
104263
104602
|
}
|
|
104264
104603
|
} catch {
|
|
104265
104604
|
}
|
|
@@ -104303,7 +104642,7 @@ function escapeRegex(value) {
|
|
|
104303
104642
|
}
|
|
104304
104643
|
|
|
104305
104644
|
// ../core/src/check-runner.ts
|
|
104306
|
-
import
|
|
104645
|
+
import path11 from "node:path";
|
|
104307
104646
|
var SEVERITY_ORDER = {
|
|
104308
104647
|
error: 0,
|
|
104309
104648
|
warn: 1,
|
|
@@ -104327,7 +104666,16 @@ var CheckRunner = class {
|
|
|
104327
104666
|
invalidateCache: options8.invalidateCache
|
|
104328
104667
|
});
|
|
104329
104668
|
const scanHardcoded = options8.scanHardcoded ?? true;
|
|
104330
|
-
let scan = {
|
|
104669
|
+
let scan = {
|
|
104670
|
+
filesScanned: 0,
|
|
104671
|
+
filesExamined: [],
|
|
104672
|
+
candidates: [],
|
|
104673
|
+
buckets: {
|
|
104674
|
+
highConfidence: [],
|
|
104675
|
+
needsReview: [],
|
|
104676
|
+
skipped: []
|
|
104677
|
+
}
|
|
104678
|
+
};
|
|
104331
104679
|
if (scanHardcoded) {
|
|
104332
104680
|
const scanner = new Scanner(this.config, { workspaceRoot: this.workspaceRoot });
|
|
104333
104681
|
scan = options8.targets?.length ? scanner.scan({ targets: options8.targets }) : scanner.scan();
|
|
@@ -104378,13 +104726,11 @@ function candidateToActionable(candidate) {
|
|
|
104378
104726
|
};
|
|
104379
104727
|
}
|
|
104380
104728
|
function buildSuggestedCommands(report, sync, scan, config, workspaceRoot) {
|
|
104381
|
-
const ctx = { report, sync, scan, config };
|
|
104382
104729
|
const items = [];
|
|
104383
104730
|
const diagKinds = new Set(report.actionableItems.map((item) => item.kind));
|
|
104384
104731
|
const adapterModule = config.translationAdapter?.module;
|
|
104385
104732
|
const isDefaultAdapter = !adapterModule || adapterModule === DEFAULT_ADAPTER_MODULE;
|
|
104386
104733
|
const hasCustomAdapter = !isDefaultAdapter;
|
|
104387
|
-
const hasExistingAdapter = report.adapterFiles.length > 0;
|
|
104388
104734
|
const hasRuntimePackage = report.runtimePackages.length > 0;
|
|
104389
104735
|
const hasWorkingSetup = hasCustomAdapter || hasRuntimePackage;
|
|
104390
104736
|
const add = (entry) => {
|
|
@@ -104397,7 +104743,7 @@ function buildSuggestedCommands(report, sync, scan, config, workspaceRoot) {
|
|
|
104397
104743
|
const relevantFiles = [...new Set(scan.candidates.map((c7) => c7.filePath))].slice(0, 5);
|
|
104398
104744
|
add({
|
|
104399
104745
|
label: "Extract hardcoded text",
|
|
104400
|
-
command: "i18nsmith transform
|
|
104746
|
+
command: "i18nsmith transform",
|
|
104401
104747
|
reason: `${scan.candidates.length} hardcoded string${scan.candidates.length === 1 ? "" : "s"} found that should be translated`,
|
|
104402
104748
|
severity: "warn",
|
|
104403
104749
|
category: "extraction",
|
|
@@ -104411,7 +104757,7 @@ function buildSuggestedCommands(report, sync, scan, config, workspaceRoot) {
|
|
|
104411
104757
|
const missingKeyFiles = [...new Set(sync.missingKeys.flatMap((k8) => k8.references.map((r5) => r5.filePath)))].slice(0, 5);
|
|
104412
104758
|
add({
|
|
104413
104759
|
label: "Apply locale fixes",
|
|
104414
|
-
command: "i18nsmith sync --
|
|
104760
|
+
command: "i18nsmith sync --prune",
|
|
104415
104761
|
reason: `${sync.missingKeys.length} missing key(s) to add, ${sync.unusedKeys.length} unused key(s) to remove`,
|
|
104416
104762
|
severity: "error",
|
|
104417
104763
|
category: "sync",
|
|
@@ -104422,7 +104768,7 @@ function buildSuggestedCommands(report, sync, scan, config, workspaceRoot) {
|
|
|
104422
104768
|
const relevantFiles = [...new Set(sync.missingKeys.flatMap((k8) => k8.references.map((r5) => r5.filePath)))].slice(0, 5);
|
|
104423
104769
|
add({
|
|
104424
104770
|
label: "Add missing keys",
|
|
104425
|
-
command: "i18nsmith sync
|
|
104771
|
+
command: "i18nsmith sync",
|
|
104426
104772
|
reason: `${sync.missingKeys.length} key(s) used in code but missing from locale files`,
|
|
104427
104773
|
severity: "error",
|
|
104428
104774
|
category: "sync",
|
|
@@ -104432,7 +104778,7 @@ function buildSuggestedCommands(report, sync, scan, config, workspaceRoot) {
|
|
|
104432
104778
|
} else if (hasUnusedKeys) {
|
|
104433
104779
|
add({
|
|
104434
104780
|
label: "Prune unused keys",
|
|
104435
|
-
command: "i18nsmith sync --
|
|
104781
|
+
command: "i18nsmith sync --prune",
|
|
104436
104782
|
reason: `${sync.unusedKeys.length} key(s) in locale files but not used in code`,
|
|
104437
104783
|
severity: "warn",
|
|
104438
104784
|
category: "sync",
|
|
@@ -104442,7 +104788,7 @@ function buildSuggestedCommands(report, sync, scan, config, workspaceRoot) {
|
|
|
104442
104788
|
if (sync.placeholderIssues.length) {
|
|
104443
104789
|
add({
|
|
104444
104790
|
label: "Fix placeholder mismatches",
|
|
104445
|
-
command: "i18nsmith sync --
|
|
104791
|
+
command: "i18nsmith sync --validate-interpolations",
|
|
104446
104792
|
reason: `${sync.placeholderIssues.length} placeholder mismatch(es) detected across locales`,
|
|
104447
104793
|
severity: "error",
|
|
104448
104794
|
category: "validation",
|
|
@@ -104455,7 +104801,7 @@ function buildSuggestedCommands(report, sync, scan, config, workspaceRoot) {
|
|
|
104455
104801
|
if (hasTranslationProvider) {
|
|
104456
104802
|
add({
|
|
104457
104803
|
label: "Fill empty translations",
|
|
104458
|
-
command: "i18nsmith translate
|
|
104804
|
+
command: "i18nsmith translate",
|
|
104459
104805
|
reason: `${sync.emptyValueViolations.length} empty translation value(s) in ${emptyLocales.join(", ")}`,
|
|
104460
104806
|
severity: "warn",
|
|
104461
104807
|
category: "translation",
|
|
@@ -104475,7 +104821,7 @@ function buildSuggestedCommands(report, sync, scan, config, workspaceRoot) {
|
|
|
104475
104821
|
if (diagKinds.has("diagnostics-missing-source-locale") || diagKinds.has("diagnostics-missing-target-locales")) {
|
|
104476
104822
|
add({
|
|
104477
104823
|
label: "Create missing locale files",
|
|
104478
|
-
command: "i18nsmith sync --
|
|
104824
|
+
command: "i18nsmith sync --seed-target-locales",
|
|
104479
104825
|
reason: "One or more locale files are missing from the locales directory",
|
|
104480
104826
|
severity: "error",
|
|
104481
104827
|
category: "setup",
|
|
@@ -104533,7 +104879,7 @@ function buildSuggestedCommands(report, sync, scan, config, workspaceRoot) {
|
|
|
104533
104879
|
const suggestedKey = buildSuspiciousKeySuggestion(warning, config, workspaceRoot);
|
|
104534
104880
|
add({
|
|
104535
104881
|
label: `Rename suspicious key "${warning.key}"`,
|
|
104536
|
-
command: `i18nsmith rename-key ${quoteCliArg(warning.key)} ${quoteCliArg(suggestedKey)}
|
|
104882
|
+
command: `i18nsmith rename-key ${quoteCliArg(warning.key)} ${quoteCliArg(suggestedKey)}`,
|
|
104537
104883
|
reason: `Suspicious key format (${warning.reason}). Rename to ${suggestedKey} for consistency.`,
|
|
104538
104884
|
severity: "info",
|
|
104539
104885
|
category: "quality",
|
|
@@ -104557,7 +104903,7 @@ function buildSuspiciousKeySuggestion(warning, config, workspaceRoot) {
|
|
|
104557
104903
|
hashLength: config.keyGeneration?.shortHashLen
|
|
104558
104904
|
});
|
|
104559
104905
|
const baseText = warning.key.replace(/-[a-f0-9]{6,}$/i, "").replace(/^[^.]+\./, "");
|
|
104560
|
-
const localesDir =
|
|
104906
|
+
const localesDir = path11.resolve(workspaceRoot, config.localesDir ?? "locales");
|
|
104561
104907
|
const isLocaleFile = warning.filePath?.startsWith(localesDir);
|
|
104562
104908
|
const contextPath = isLocaleFile ? "" : warning.filePath ?? "";
|
|
104563
104909
|
const generated = generator.generate(baseText, {
|
|
@@ -104568,13 +104914,13 @@ function buildSuspiciousKeySuggestion(warning, config, workspaceRoot) {
|
|
|
104568
104914
|
}
|
|
104569
104915
|
|
|
104570
104916
|
// ../core/src/translation-service.ts
|
|
104571
|
-
import
|
|
104917
|
+
import path12 from "path";
|
|
104572
104918
|
var DEFAULT_SKIP_EMPTY = true;
|
|
104573
104919
|
var TranslationService = class {
|
|
104574
104920
|
constructor(config, options8 = {}) {
|
|
104575
104921
|
this.config = config;
|
|
104576
104922
|
this.workspaceRoot = options8.workspaceRoot ?? process.cwd();
|
|
104577
|
-
const localesDir =
|
|
104923
|
+
const localesDir = path12.resolve(this.workspaceRoot, config.localesDir ?? "locales");
|
|
104578
104924
|
this.localeStore = options8.localeStore ?? new LocaleStore(localesDir, {
|
|
104579
104925
|
format: config.locales?.format,
|
|
104580
104926
|
delimiter: config.locales?.delimiter,
|
|
@@ -104819,28 +105165,28 @@ function createRenameMappingFile(mapping, options8 = {}) {
|
|
|
104819
105165
|
}
|
|
104820
105166
|
|
|
104821
105167
|
// ../core/src/gitignore.ts
|
|
104822
|
-
import
|
|
104823
|
-
import
|
|
105168
|
+
import fs7 from "fs/promises";
|
|
105169
|
+
import path13 from "path";
|
|
104824
105170
|
var I18NSMITH_GITIGNORE_ENTRIES = [
|
|
104825
105171
|
"# i18nsmith artifacts",
|
|
104826
105172
|
".i18nsmith/",
|
|
104827
105173
|
".i18nsmith-backup/"
|
|
104828
105174
|
];
|
|
104829
105175
|
async function ensureGitignore(workspaceRoot) {
|
|
104830
|
-
const gitignorePath =
|
|
105176
|
+
const gitignorePath = path13.join(workspaceRoot, ".gitignore");
|
|
104831
105177
|
const result = {
|
|
104832
105178
|
updated: false,
|
|
104833
105179
|
added: [],
|
|
104834
105180
|
gitignorePath
|
|
104835
105181
|
};
|
|
104836
105182
|
try {
|
|
104837
|
-
await
|
|
105183
|
+
await fs7.access(path13.join(workspaceRoot, ".git"));
|
|
104838
105184
|
} catch {
|
|
104839
105185
|
return result;
|
|
104840
105186
|
}
|
|
104841
105187
|
let existingContent = "";
|
|
104842
105188
|
try {
|
|
104843
|
-
existingContent = await
|
|
105189
|
+
existingContent = await fs7.readFile(gitignorePath, "utf8");
|
|
104844
105190
|
} catch {
|
|
104845
105191
|
}
|
|
104846
105192
|
const linesToAdd = [];
|
|
@@ -104863,7 +105209,7 @@ async function ensureGitignore(workspaceRoot) {
|
|
|
104863
105209
|
linesToAdd.unshift("", commentLine);
|
|
104864
105210
|
}
|
|
104865
105211
|
const newContent = existingContent.trimEnd() + "\n" + linesToAdd.join("\n") + "\n";
|
|
104866
|
-
await
|
|
105212
|
+
await fs7.writeFile(gitignorePath, newContent, "utf8");
|
|
104867
105213
|
result.updated = true;
|
|
104868
105214
|
result.added = linesToAdd.filter((l5) => !l5.startsWith("#") && l5.trim() !== "");
|
|
104869
105215
|
}
|
|
@@ -104871,17 +105217,17 @@ async function ensureGitignore(workspaceRoot) {
|
|
|
104871
105217
|
}
|
|
104872
105218
|
|
|
104873
105219
|
// src/utils/scaffold.ts
|
|
104874
|
-
import
|
|
104875
|
-
import
|
|
105220
|
+
import fs8 from "fs/promises";
|
|
105221
|
+
import path14 from "path";
|
|
104876
105222
|
function resolvePath(targetPath, workspaceRoot) {
|
|
104877
|
-
return
|
|
105223
|
+
return path14.isAbsolute(targetPath) ? targetPath : path14.join(workspaceRoot, targetPath);
|
|
104878
105224
|
}
|
|
104879
105225
|
async function ensureDir(dirPath) {
|
|
104880
|
-
await
|
|
105226
|
+
await fs8.mkdir(dirPath, { recursive: true });
|
|
104881
105227
|
}
|
|
104882
105228
|
async function writeFileSafely(filePath, content, force, dryRun) {
|
|
104883
105229
|
try {
|
|
104884
|
-
await
|
|
105230
|
+
await fs8.stat(filePath);
|
|
104885
105231
|
if (!force) {
|
|
104886
105232
|
throw new Error(`File already exists at ${filePath}. Re-run with --force to overwrite.`);
|
|
104887
105233
|
}
|
|
@@ -104893,11 +105239,11 @@ async function writeFileSafely(filePath, content, force, dryRun) {
|
|
|
104893
105239
|
if (dryRun) {
|
|
104894
105240
|
return false;
|
|
104895
105241
|
}
|
|
104896
|
-
await
|
|
105242
|
+
await fs8.writeFile(filePath, content, "utf8");
|
|
104897
105243
|
return true;
|
|
104898
105244
|
}
|
|
104899
105245
|
function relativeImportPath(fromDir, targetPath, dropExtension = true) {
|
|
104900
|
-
let relative2 =
|
|
105246
|
+
let relative2 = path14.relative(fromDir, targetPath).replace(/\\/g, "/");
|
|
104901
105247
|
if (!relative2.startsWith(".")) {
|
|
104902
105248
|
relative2 = `./${relative2}`;
|
|
104903
105249
|
}
|
|
@@ -104910,12 +105256,12 @@ async function scaffoldTranslationContext(filePath, sourceLanguage, options8 = {
|
|
|
104910
105256
|
const workspaceRoot = options8.workspaceRoot ?? process.cwd();
|
|
104911
105257
|
const localesDir = options8.localesDir ?? "locales";
|
|
104912
105258
|
const absolutePath = resolvePath(filePath, workspaceRoot);
|
|
104913
|
-
const dir =
|
|
105259
|
+
const dir = path14.dirname(absolutePath);
|
|
104914
105260
|
if (!options8.dryRun) {
|
|
104915
105261
|
await ensureDir(dir);
|
|
104916
105262
|
}
|
|
104917
|
-
const localeFile =
|
|
104918
|
-
let localeImportPath =
|
|
105263
|
+
const localeFile = path14.join(workspaceRoot, localesDir, `${sourceLanguage}.json`);
|
|
105264
|
+
let localeImportPath = path14.relative(dir, localeFile).replace(/\\/g, "/");
|
|
104919
105265
|
if (!localeImportPath.startsWith(".")) {
|
|
104920
105266
|
localeImportPath = `./${localeImportPath}`;
|
|
104921
105267
|
}
|
|
@@ -104966,11 +105312,11 @@ async function scaffoldI18next(i18nPath, providerPath, sourceLanguage, localesDi
|
|
|
104966
105312
|
const absoluteI18nPath = resolvePath(i18nPath, workspaceRoot);
|
|
104967
105313
|
const absoluteProviderPath = resolvePath(providerPath, workspaceRoot);
|
|
104968
105314
|
if (!options8.dryRun) {
|
|
104969
|
-
await ensureDir(
|
|
104970
|
-
await ensureDir(
|
|
105315
|
+
await ensureDir(path14.dirname(absoluteI18nPath));
|
|
105316
|
+
await ensureDir(path14.dirname(absoluteProviderPath));
|
|
104971
105317
|
}
|
|
104972
|
-
const localeFile =
|
|
104973
|
-
let localeImportPath =
|
|
105318
|
+
const localeFile = path14.join(workspaceRoot, localesDir, `${sourceLanguage}.json`);
|
|
105319
|
+
let localeImportPath = path14.relative(path14.dirname(absoluteI18nPath), localeFile).replace(/\\/g, "/");
|
|
104974
105320
|
if (!localeImportPath.startsWith(".")) {
|
|
104975
105321
|
localeImportPath = `./${localeImportPath}`;
|
|
104976
105322
|
}
|
|
@@ -105020,7 +105366,7 @@ export function initI18next() {
|
|
|
105020
105366
|
export default i18next;
|
|
105021
105367
|
`;
|
|
105022
105368
|
const i18nWritten = await writeFileSafely(absoluteI18nPath, i18nContent, options8.force, options8.dryRun);
|
|
105023
|
-
const providerImport = relativeImportPath(
|
|
105369
|
+
const providerImport = relativeImportPath(path14.dirname(absoluteProviderPath), absoluteI18nPath, true);
|
|
105024
105370
|
const providerContent = `'use client';
|
|
105025
105371
|
|
|
105026
105372
|
import { ReactNode, useEffect, useState } from 'react';
|
|
@@ -105068,12 +105414,12 @@ export function I18nProvider({ children }: I18nProviderProps) {
|
|
|
105068
105414
|
}
|
|
105069
105415
|
|
|
105070
105416
|
// src/utils/pkg.ts
|
|
105071
|
-
import { promises as
|
|
105072
|
-
import
|
|
105417
|
+
import { promises as fs9 } from "fs";
|
|
105418
|
+
import path15 from "path";
|
|
105073
105419
|
async function readPackageJson(cwd) {
|
|
105074
|
-
const pkgPath =
|
|
105420
|
+
const pkgPath = path15.join(cwd ?? process.cwd(), "package.json");
|
|
105075
105421
|
try {
|
|
105076
|
-
const content = await
|
|
105422
|
+
const content = await fs9.readFile(pkgPath, "utf8");
|
|
105077
105423
|
return JSON.parse(content);
|
|
105078
105424
|
} catch (error) {
|
|
105079
105425
|
if (error && typeof error === "object" && "code" in error && error.code === "ENOENT") {
|
|
@@ -105116,9 +105462,9 @@ function parseGlobList(value) {
|
|
|
105116
105462
|
}
|
|
105117
105463
|
async function runNonInteractiveInit(commandOptions) {
|
|
105118
105464
|
const workspaceRoot = process.cwd();
|
|
105119
|
-
const configPath =
|
|
105465
|
+
const configPath = path16.join(workspaceRoot, "i18n.config.json");
|
|
105120
105466
|
try {
|
|
105121
|
-
await
|
|
105467
|
+
await fs10.access(configPath);
|
|
105122
105468
|
if (!commandOptions.merge) {
|
|
105123
105469
|
console.log(chalk.yellow("Config file already exists. Use --merge to update existing config."));
|
|
105124
105470
|
console.log(chalk.dim(` ${configPath}`));
|
|
@@ -105193,7 +105539,7 @@ async function runNonInteractiveInit(commandOptions) {
|
|
|
105193
105539
|
seedTargetLocales: false
|
|
105194
105540
|
};
|
|
105195
105541
|
try {
|
|
105196
|
-
await
|
|
105542
|
+
await fs10.writeFile(configPath, JSON.stringify(config, null, 2));
|
|
105197
105543
|
console.log(chalk.green(`
|
|
105198
105544
|
\u2713 Configuration created at ${configPath}`));
|
|
105199
105545
|
console.log(chalk.dim(" Source language: " + sourceLanguage));
|
|
@@ -105388,9 +105734,9 @@ function registerInit(program2) {
|
|
|
105388
105734
|
console.log(chalk.yellow("Aborting init to avoid overwriting existing i18n assets. Re-run with --merge to bypass."));
|
|
105389
105735
|
return;
|
|
105390
105736
|
}
|
|
105391
|
-
const configPath =
|
|
105737
|
+
const configPath = path16.join(workspaceRoot, "i18n.config.json");
|
|
105392
105738
|
try {
|
|
105393
|
-
await
|
|
105739
|
+
await fs10.writeFile(configPath, JSON.stringify(config, null, 2));
|
|
105394
105740
|
console.log(chalk.green(`
|
|
105395
105741
|
Configuration created at ${configPath}`));
|
|
105396
105742
|
const gitignoreResult = await ensureGitignore(workspaceRoot);
|
|
@@ -105510,14 +105856,14 @@ import inquirer2 from "inquirer";
|
|
|
105510
105856
|
import chalk2 from "chalk";
|
|
105511
105857
|
|
|
105512
105858
|
// src/utils/package-manager.ts
|
|
105513
|
-
import
|
|
105514
|
-
import
|
|
105859
|
+
import fs11 from "fs/promises";
|
|
105860
|
+
import path17 from "path";
|
|
105515
105861
|
import { spawn } from "child_process";
|
|
105516
105862
|
async function detectPackageManager(workspaceRoot = process.cwd()) {
|
|
105517
|
-
if (await fileExists(
|
|
105863
|
+
if (await fileExists(path17.join(workspaceRoot, "pnpm-lock.yaml"))) {
|
|
105518
105864
|
return "pnpm";
|
|
105519
105865
|
}
|
|
105520
|
-
if (await fileExists(
|
|
105866
|
+
if (await fileExists(path17.join(workspaceRoot, "yarn.lock"))) {
|
|
105521
105867
|
return "yarn";
|
|
105522
105868
|
}
|
|
105523
105869
|
return "npm";
|
|
@@ -105541,7 +105887,7 @@ async function installDependencies(manager, deps, workspaceRoot = process.cwd())
|
|
|
105541
105887
|
}
|
|
105542
105888
|
async function fileExists(target) {
|
|
105543
105889
|
try {
|
|
105544
|
-
await
|
|
105890
|
+
await fs11.access(target);
|
|
105545
105891
|
return true;
|
|
105546
105892
|
} catch {
|
|
105547
105893
|
return false;
|
|
@@ -105549,8 +105895,8 @@ async function fileExists(target) {
|
|
|
105549
105895
|
}
|
|
105550
105896
|
|
|
105551
105897
|
// src/utils/provider-injector.ts
|
|
105552
|
-
import
|
|
105553
|
-
import { promises as
|
|
105898
|
+
import path18 from "path";
|
|
105899
|
+
import { promises as fs12 } from "fs";
|
|
105554
105900
|
import { createTwoFilesPatch } from "diff";
|
|
105555
105901
|
import {
|
|
105556
105902
|
Node as Node5,
|
|
@@ -105611,9 +105957,9 @@ function getDetectedProvider(sourceFile) {
|
|
|
105611
105957
|
async function maybeInjectProvider(options8) {
|
|
105612
105958
|
const { providerComponentPath, candidates = DEFAULT_PROVIDER_CANDIDATES, dryRun = false } = options8;
|
|
105613
105959
|
const workspaceRoot = process.cwd();
|
|
105614
|
-
const providerAbsolute =
|
|
105960
|
+
const providerAbsolute = path18.resolve(providerComponentPath);
|
|
105615
105961
|
for (const candidate of candidates) {
|
|
105616
|
-
const absoluteCandidate =
|
|
105962
|
+
const absoluteCandidate = path18.resolve(workspaceRoot, candidate);
|
|
105617
105963
|
if (!await fileExists2(absoluteCandidate)) {
|
|
105618
105964
|
continue;
|
|
105619
105965
|
}
|
|
@@ -105636,7 +105982,7 @@ async function injectIntoCandidate({
|
|
|
105636
105982
|
providerAbsolutePath,
|
|
105637
105983
|
dryRun
|
|
105638
105984
|
}) {
|
|
105639
|
-
const originalContents = await
|
|
105985
|
+
const originalContents = await fs12.readFile(candidateAbsolutePath, "utf8");
|
|
105640
105986
|
const project = new Project5({
|
|
105641
105987
|
useInMemoryFileSystem: false,
|
|
105642
105988
|
skipAddingFilesFromTsConfig: true
|
|
@@ -105661,7 +106007,7 @@ async function injectIntoCandidate({
|
|
|
105661
106007
|
reason: "Multiple `{children}` expressions detected; unsure which one to wrap."
|
|
105662
106008
|
};
|
|
105663
106009
|
}
|
|
105664
|
-
const providerImportPath = toRelativeImport(
|
|
106010
|
+
const providerImportPath = toRelativeImport(path18.dirname(candidateAbsolutePath), providerAbsolutePath);
|
|
105665
106011
|
ensureProviderImport(sourceFile, providerImportPath);
|
|
105666
106012
|
const expression = childrenExpressions[0];
|
|
105667
106013
|
expression.replaceWithText(`<I18nProvider>${expression.getText()}</I18nProvider>`);
|
|
@@ -105680,7 +106026,7 @@ async function injectIntoCandidate({
|
|
|
105680
106026
|
if (dryRun) {
|
|
105681
106027
|
return { status: "preview", file: candidateRelativePath, diff };
|
|
105682
106028
|
}
|
|
105683
|
-
await
|
|
106029
|
+
await fs12.writeFile(candidateAbsolutePath, updatedContents, "utf8");
|
|
105684
106030
|
return { status: "injected", file: candidateRelativePath, diff };
|
|
105685
106031
|
}
|
|
105686
106032
|
function getTagName(element) {
|
|
@@ -105730,14 +106076,14 @@ function ensureProviderImport(sourceFile, moduleSpecifier) {
|
|
|
105730
106076
|
}
|
|
105731
106077
|
async function fileExists2(target) {
|
|
105732
106078
|
try {
|
|
105733
|
-
await
|
|
106079
|
+
await fs12.access(target);
|
|
105734
106080
|
return true;
|
|
105735
106081
|
} catch {
|
|
105736
106082
|
return false;
|
|
105737
106083
|
}
|
|
105738
106084
|
}
|
|
105739
106085
|
function toRelativeImport(fromDir, targetAbsolute) {
|
|
105740
|
-
let relative2 =
|
|
106086
|
+
let relative2 = path18.relative(fromDir, targetAbsolute).replace(/\\/g, "/");
|
|
105741
106087
|
if (!relative2.startsWith(".")) {
|
|
105742
106088
|
relative2 = `./${relative2}`;
|
|
105743
106089
|
}
|
|
@@ -105944,6 +106290,7 @@ async function detectExistingRuntime() {
|
|
|
105944
106290
|
// src/commands/translate/index.ts
|
|
105945
106291
|
import chalk6 from "chalk";
|
|
105946
106292
|
import inquirer3 from "inquirer";
|
|
106293
|
+
import path22 from "path";
|
|
105947
106294
|
|
|
105948
106295
|
// ../translation/src/index.ts
|
|
105949
106296
|
var TranslatorLoadError = class extends Error {
|
|
@@ -105994,14 +106341,14 @@ async function resolveTranslatorInstance(moduleExports, options8) {
|
|
|
105994
106341
|
}
|
|
105995
106342
|
|
|
105996
106343
|
// src/commands/translate/reporter.ts
|
|
105997
|
-
import
|
|
105998
|
-
import
|
|
106344
|
+
import fs13 from "fs/promises";
|
|
106345
|
+
import path19 from "path";
|
|
105999
106346
|
import chalk3 from "chalk";
|
|
106000
106347
|
async function emitTranslateOutput(summary, options8) {
|
|
106001
106348
|
if (options8.report) {
|
|
106002
|
-
const outputPath =
|
|
106003
|
-
await
|
|
106004
|
-
await
|
|
106349
|
+
const outputPath = path19.resolve(process.cwd(), options8.report);
|
|
106350
|
+
await fs13.mkdir(path19.dirname(outputPath), { recursive: true });
|
|
106351
|
+
await fs13.writeFile(outputPath, JSON.stringify(summary, null, 2));
|
|
106005
106352
|
console.log(chalk3.green(`Translate report written to ${outputPath}`));
|
|
106006
106353
|
}
|
|
106007
106354
|
if (options8.json) {
|
|
@@ -106083,8 +106430,8 @@ function printGenericEstimate(plan) {
|
|
|
106083
106430
|
}
|
|
106084
106431
|
|
|
106085
106432
|
// src/commands/translate/csv-handler.ts
|
|
106086
|
-
import
|
|
106087
|
-
import
|
|
106433
|
+
import fs14 from "fs/promises";
|
|
106434
|
+
import path20 from "path";
|
|
106088
106435
|
import chalk4 from "chalk";
|
|
106089
106436
|
function escapeCsvField(field) {
|
|
106090
106437
|
if (field.includes(",") || field.includes('"') || field.includes("\n") || field.includes("\r")) {
|
|
@@ -106167,9 +106514,9 @@ async function handleCsvExport(options8) {
|
|
|
106167
106514
|
].join(","));
|
|
106168
106515
|
}
|
|
106169
106516
|
const csvContent = csvLines.join("\n") + "\n";
|
|
106170
|
-
const resolvedPath =
|
|
106171
|
-
await
|
|
106172
|
-
await
|
|
106517
|
+
const resolvedPath = path20.resolve(process.cwd(), exportPath);
|
|
106518
|
+
await fs14.mkdir(path20.dirname(resolvedPath), { recursive: true });
|
|
106519
|
+
await fs14.writeFile(resolvedPath, csvContent, "utf8");
|
|
106173
106520
|
console.log(chalk4.green(`\u2713 Exported ${rows.length} missing translation(s) to ${exportPath}`));
|
|
106174
106521
|
console.log(chalk4.gray(` Source locale: ${plan.sourceLocale}`));
|
|
106175
106522
|
console.log(chalk4.gray(` Target locales: ${plan.locales.map((l5) => l5.locale).join(", ")}`));
|
|
@@ -106190,10 +106537,10 @@ async function handleCsvImport(options8) {
|
|
|
106190
106537
|
const placeholderValidator = new PlaceholderValidator(
|
|
106191
106538
|
config.sync?.placeholderFormats?.length ? config.sync.placeholderFormats : DEFAULT_PLACEHOLDER_FORMATS
|
|
106192
106539
|
);
|
|
106193
|
-
const resolvedPath =
|
|
106540
|
+
const resolvedPath = path20.resolve(process.cwd(), importPath);
|
|
106194
106541
|
let csvContent;
|
|
106195
106542
|
try {
|
|
106196
|
-
csvContent = await
|
|
106543
|
+
csvContent = await fs14.readFile(resolvedPath, "utf8");
|
|
106197
106544
|
} catch (err) {
|
|
106198
106545
|
const error = err;
|
|
106199
106546
|
if (error.code === "ENOENT") {
|
|
@@ -106313,9 +106660,9 @@ async function handleCsvImport(options8) {
|
|
|
106313
106660
|
),
|
|
106314
106661
|
placeholderIssues
|
|
106315
106662
|
};
|
|
106316
|
-
const outputPath =
|
|
106317
|
-
await
|
|
106318
|
-
await
|
|
106663
|
+
const outputPath = path20.resolve(process.cwd(), options8.report);
|
|
106664
|
+
await fs14.mkdir(path20.dirname(outputPath), { recursive: true });
|
|
106665
|
+
await fs14.writeFile(outputPath, JSON.stringify(report, null, 2));
|
|
106319
106666
|
console.log(chalk4.green(`Import report written to ${options8.report}`));
|
|
106320
106667
|
}
|
|
106321
106668
|
} catch (error) {
|
|
@@ -106449,8 +106796,101 @@ function chunkTasks(items, size) {
|
|
|
106449
106796
|
return result;
|
|
106450
106797
|
}
|
|
106451
106798
|
|
|
106799
|
+
// src/utils/preview.ts
|
|
106800
|
+
import fs15 from "fs/promises";
|
|
106801
|
+
import path21 from "path";
|
|
106802
|
+
import { spawn as spawn2 } from "child_process";
|
|
106803
|
+
async function writePreviewFile(kind, summary, outputPath) {
|
|
106804
|
+
const resolvedPath = path21.resolve(process.cwd(), outputPath);
|
|
106805
|
+
const payload = {
|
|
106806
|
+
type: `${kind}-preview`,
|
|
106807
|
+
version: 1,
|
|
106808
|
+
command: buildCommandString(),
|
|
106809
|
+
args: process.argv.slice(2),
|
|
106810
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
106811
|
+
summary
|
|
106812
|
+
};
|
|
106813
|
+
await fs15.mkdir(path21.dirname(resolvedPath), { recursive: true });
|
|
106814
|
+
await fs15.writeFile(resolvedPath, JSON.stringify(payload, null, 2), "utf8");
|
|
106815
|
+
return resolvedPath;
|
|
106816
|
+
}
|
|
106817
|
+
async function readPreviewFile(expectedKind, previewPath) {
|
|
106818
|
+
const resolved = path21.resolve(process.cwd(), previewPath);
|
|
106819
|
+
const raw = await fs15.readFile(resolved, "utf8");
|
|
106820
|
+
const payload = JSON.parse(raw);
|
|
106821
|
+
if (!payload?.type?.startsWith(`${expectedKind}-preview`)) {
|
|
106822
|
+
throw new Error(`Preview kind mismatch. Expected ${expectedKind}, got ${payload?.type ?? "unknown"}.`);
|
|
106823
|
+
}
|
|
106824
|
+
if (!Array.isArray(payload.args) || payload.args.length === 0) {
|
|
106825
|
+
throw new Error("Preview file is missing recorded CLI arguments.");
|
|
106826
|
+
}
|
|
106827
|
+
return payload;
|
|
106828
|
+
}
|
|
106829
|
+
async function applyPreviewFile(expectedKind, previewPath, extraArgs = []) {
|
|
106830
|
+
const payload = await readPreviewFile(expectedKind, previewPath);
|
|
106831
|
+
const sanitizedArgs = sanitizePreviewArgs(payload.args);
|
|
106832
|
+
const [command, ...rest] = sanitizedArgs;
|
|
106833
|
+
if (!command) {
|
|
106834
|
+
throw new Error("Preview file does not include the original command.");
|
|
106835
|
+
}
|
|
106836
|
+
if (command !== expectedKind) {
|
|
106837
|
+
throw new Error(`Preview command mismatch. Expected ${expectedKind}, got ${command}.`);
|
|
106838
|
+
}
|
|
106839
|
+
const replayArgs = [command, ...rest];
|
|
106840
|
+
if (!replayArgs.some((arg) => arg === "--write" || arg.startsWith("--write="))) {
|
|
106841
|
+
replayArgs.push("--write");
|
|
106842
|
+
}
|
|
106843
|
+
for (const extra of extraArgs) {
|
|
106844
|
+
if (!replayArgs.includes(extra)) {
|
|
106845
|
+
replayArgs.push(extra);
|
|
106846
|
+
}
|
|
106847
|
+
}
|
|
106848
|
+
console.log(`Applying preview from ${path21.relative(process.cwd(), path21.resolve(previewPath))}\u2026`);
|
|
106849
|
+
await spawnCli(replayArgs);
|
|
106850
|
+
}
|
|
106851
|
+
function sanitizePreviewArgs(args) {
|
|
106852
|
+
const sanitized = [];
|
|
106853
|
+
for (let i = 0; i < args.length; i++) {
|
|
106854
|
+
const token2 = args[i];
|
|
106855
|
+
if (token2 === "--preview-output") {
|
|
106856
|
+
i += 1;
|
|
106857
|
+
continue;
|
|
106858
|
+
}
|
|
106859
|
+
if (token2?.startsWith("--preview-output=")) {
|
|
106860
|
+
continue;
|
|
106861
|
+
}
|
|
106862
|
+
sanitized.push(token2);
|
|
106863
|
+
}
|
|
106864
|
+
return sanitized;
|
|
106865
|
+
}
|
|
106866
|
+
function spawnCli(args) {
|
|
106867
|
+
const entry = process.argv[1];
|
|
106868
|
+
if (!entry) {
|
|
106869
|
+
return Promise.reject(new Error("Unable to determine CLI entry point for preview apply."));
|
|
106870
|
+
}
|
|
106871
|
+
return new Promise((resolve3, reject) => {
|
|
106872
|
+
const child = spawn2(process.argv[0], [entry, ...args], {
|
|
106873
|
+
stdio: "inherit"
|
|
106874
|
+
});
|
|
106875
|
+
child.on("exit", (code) => {
|
|
106876
|
+
if (code === 0) {
|
|
106877
|
+
resolve3();
|
|
106878
|
+
} else {
|
|
106879
|
+
reject(new Error(`Preview apply command exited with code ${code ?? "unknown"}`));
|
|
106880
|
+
}
|
|
106881
|
+
});
|
|
106882
|
+
child.on("error", (error) => {
|
|
106883
|
+
reject(error);
|
|
106884
|
+
});
|
|
106885
|
+
});
|
|
106886
|
+
}
|
|
106887
|
+
function buildCommandString() {
|
|
106888
|
+
const args = process.argv.slice(2);
|
|
106889
|
+
return args.length ? `i18nsmith ${args.join(" ")}` : "i18nsmith";
|
|
106890
|
+
}
|
|
106891
|
+
|
|
106452
106892
|
// src/commands/translate/index.ts
|
|
106453
|
-
function
|
|
106893
|
+
function collectLocales2(value, previous) {
|
|
106454
106894
|
const tokens = (Array.isArray(value) ? value : value.split(",")).map((entry) => entry.trim()).filter(Boolean);
|
|
106455
106895
|
return [...previous, ...tokens];
|
|
106456
106896
|
}
|
|
@@ -106487,7 +106927,11 @@ async function confirmTranslate(plan, providerName) {
|
|
|
106487
106927
|
return proceed;
|
|
106488
106928
|
}
|
|
106489
106929
|
function registerTranslate(program2) {
|
|
106490
|
-
program2.command("translate").description("Fill missing locale entries by invoking configured translation adapters").option("-c, --config <path>", "Path to i18nsmith config file", "i18n.config.json").option("--json", "Print raw JSON results", false).option("--report <path>", "Write JSON summary to a file").option("--write", "Write translated values to locale files (defaults to dry-run)", false).option("--locales <codes...>", "Comma-separated list of locale codes to translate",
|
|
106930
|
+
program2.command("translate").description("Fill missing locale entries by invoking configured translation adapters").option("-c, --config <path>", "Path to i18nsmith config file", "i18n.config.json").option("--json", "Print raw JSON results", false).option("--report <path>", "Write JSON summary to a file").option("--write", "Write translated values to locale files (defaults to dry-run)", false).option("--locales <codes...>", "Comma-separated list of locale codes to translate", collectLocales2, []).option("--provider <name>", "Override the translation provider configured in i18n.config.json").option("--force", "Retranslate keys even if a locale already has a value", false).option("--estimate", "Attempt to estimate cost when running in dry-run mode", false).option("--no-skip-empty", "Allow writing empty translator results (default skips them)").option("-y, --yes", "Skip interactive confirmation when applying translations", false).option("--strict-placeholders", "Fail if translated output has placeholder mismatches (for CI)", false).option("--export <path>", "Export missing translations to a CSV file for external translation").option("--import <path>", "Import translations from a CSV file and merge into locale files").option("--preview-output <path>", "Write preview summary (JSON) to a file (implies dry-run)").option("--apply-preview <path>", "Apply a previously saved translate preview JSON file safely").action(async (options8) => {
|
|
106931
|
+
if (options8.applyPreview) {
|
|
106932
|
+
await applyPreviewFile("translate", options8.applyPreview, ["--yes"]);
|
|
106933
|
+
return;
|
|
106934
|
+
}
|
|
106491
106935
|
if (options8.export) {
|
|
106492
106936
|
await handleCsvExport(options8);
|
|
106493
106937
|
return;
|
|
@@ -106496,9 +106940,13 @@ function registerTranslate(program2) {
|
|
|
106496
106940
|
await handleCsvImport(options8);
|
|
106497
106941
|
return;
|
|
106498
106942
|
}
|
|
106499
|
-
|
|
106500
|
-
|
|
106501
|
-
)
|
|
106943
|
+
const previewMode = Boolean(options8.previewOutput);
|
|
106944
|
+
const writeEnabled = Boolean(options8.write) && !previewMode;
|
|
106945
|
+
if (previewMode && options8.write) {
|
|
106946
|
+
console.log(chalk6.yellow("Preview requested; ignoring --write and running in dry-run mode."));
|
|
106947
|
+
}
|
|
106948
|
+
options8.write = writeEnabled;
|
|
106949
|
+
console.log(chalk6.blue(writeEnabled ? "Translating locale files..." : "Planning translations (dry-run)..."));
|
|
106502
106950
|
try {
|
|
106503
106951
|
const config = await loadConfig(options8.config);
|
|
106504
106952
|
const translationService = new TranslationService(config);
|
|
@@ -106523,6 +106971,11 @@ function registerTranslate(program2) {
|
|
|
106523
106971
|
totalCharacters: plan.totalCharacters
|
|
106524
106972
|
};
|
|
106525
106973
|
if (!options8.write) {
|
|
106974
|
+
if (previewMode && options8.previewOutput) {
|
|
106975
|
+
const savedPath = await writePreviewFile("translate", summary, options8.previewOutput);
|
|
106976
|
+
console.log(chalk6.green(`Preview written to ${path22.relative(process.cwd(), savedPath)}`));
|
|
106977
|
+
return;
|
|
106978
|
+
}
|
|
106526
106979
|
if (options8.estimate && providerSettings.name !== "manual") {
|
|
106527
106980
|
await maybePrintEstimate(plan, providerSettings);
|
|
106528
106981
|
}
|
|
@@ -106588,8 +107041,8 @@ function registerTranslate(program2) {
|
|
|
106588
107041
|
}
|
|
106589
107042
|
|
|
106590
107043
|
// src/commands/preflight.ts
|
|
106591
|
-
import
|
|
106592
|
-
import
|
|
107044
|
+
import fs16 from "fs/promises";
|
|
107045
|
+
import path23 from "path";
|
|
106593
107046
|
import chalk7 from "chalk";
|
|
106594
107047
|
import fg5 from "fast-glob";
|
|
106595
107048
|
function registerPreflight(program2) {
|
|
@@ -106643,36 +107096,36 @@ async function runPreflightChecks(options8) {
|
|
|
106643
107096
|
return { passed, checks };
|
|
106644
107097
|
}
|
|
106645
107098
|
async function checkConfigFile(configPath, cwd) {
|
|
106646
|
-
const absolutePath =
|
|
107099
|
+
const absolutePath = path23.isAbsolute(configPath) ? configPath : path23.resolve(cwd, configPath);
|
|
106647
107100
|
try {
|
|
106648
|
-
await
|
|
107101
|
+
await fs16.access(absolutePath);
|
|
106649
107102
|
return {
|
|
106650
107103
|
name: "Config File",
|
|
106651
107104
|
status: "pass",
|
|
106652
|
-
message: `Found config at ${
|
|
107105
|
+
message: `Found config at ${path23.relative(cwd, absolutePath) || configPath}`
|
|
106653
107106
|
};
|
|
106654
107107
|
} catch {
|
|
106655
107108
|
let searchDir = cwd;
|
|
106656
|
-
let parentDir =
|
|
107109
|
+
let parentDir = path23.dirname(searchDir);
|
|
106657
107110
|
let found = false;
|
|
106658
107111
|
let foundPath = "";
|
|
106659
107112
|
while (searchDir !== parentDir) {
|
|
106660
|
-
const testPath =
|
|
107113
|
+
const testPath = path23.join(searchDir, "i18n.config.json");
|
|
106661
107114
|
try {
|
|
106662
|
-
await
|
|
107115
|
+
await fs16.access(testPath);
|
|
106663
107116
|
found = true;
|
|
106664
107117
|
foundPath = testPath;
|
|
106665
107118
|
break;
|
|
106666
107119
|
} catch {
|
|
106667
107120
|
searchDir = parentDir;
|
|
106668
|
-
parentDir =
|
|
107121
|
+
parentDir = path23.dirname(searchDir);
|
|
106669
107122
|
}
|
|
106670
107123
|
}
|
|
106671
107124
|
if (found) {
|
|
106672
107125
|
return {
|
|
106673
107126
|
name: "Config File",
|
|
106674
107127
|
status: "warn",
|
|
106675
|
-
message: `Config found at ${
|
|
107128
|
+
message: `Config found at ${path23.relative(cwd, foundPath)} (not in current directory)`,
|
|
106676
107129
|
suggestion: "You may be in a subdirectory. Run commands from the project root or use -c flag."
|
|
106677
107130
|
};
|
|
106678
107131
|
}
|
|
@@ -106687,7 +107140,7 @@ async function checkConfigFile(configPath, cwd) {
|
|
|
106687
107140
|
async function checkIncludePatterns(config, projectRoot) {
|
|
106688
107141
|
try {
|
|
106689
107142
|
const patterns = config.include.map(
|
|
106690
|
-
(p4) =>
|
|
107143
|
+
(p4) => path23.isAbsolute(p4) ? p4 : path23.join(projectRoot, p4)
|
|
106691
107144
|
);
|
|
106692
107145
|
const files = await fg5(patterns, {
|
|
106693
107146
|
ignore: config.exclude ?? [],
|
|
@@ -106716,9 +107169,9 @@ async function checkIncludePatterns(config, projectRoot) {
|
|
|
106716
107169
|
}
|
|
106717
107170
|
}
|
|
106718
107171
|
async function checkLocalesDir(config, projectRoot, autoFix) {
|
|
106719
|
-
const localesDir =
|
|
107172
|
+
const localesDir = path23.resolve(projectRoot, config.localesDir ?? "locales");
|
|
106720
107173
|
try {
|
|
106721
|
-
const stats = await
|
|
107174
|
+
const stats = await fs16.stat(localesDir);
|
|
106722
107175
|
if (!stats.isDirectory()) {
|
|
106723
107176
|
return {
|
|
106724
107177
|
name: "Locales Directory",
|
|
@@ -106734,7 +107187,7 @@ async function checkLocalesDir(config, projectRoot, autoFix) {
|
|
|
106734
107187
|
} catch {
|
|
106735
107188
|
if (autoFix) {
|
|
106736
107189
|
try {
|
|
106737
|
-
await
|
|
107190
|
+
await fs16.mkdir(localesDir, { recursive: true });
|
|
106738
107191
|
return {
|
|
106739
107192
|
name: "Locales Directory",
|
|
106740
107193
|
status: "pass",
|
|
@@ -106757,10 +107210,10 @@ async function checkLocalesDir(config, projectRoot, autoFix) {
|
|
|
106757
107210
|
}
|
|
106758
107211
|
}
|
|
106759
107212
|
async function checkSourceLocale(config, projectRoot, autoFix) {
|
|
106760
|
-
const localesDir =
|
|
106761
|
-
const sourceLocalePath =
|
|
107213
|
+
const localesDir = path23.resolve(projectRoot, config.localesDir ?? "locales");
|
|
107214
|
+
const sourceLocalePath = path23.join(localesDir, `${config.sourceLanguage}.json`);
|
|
106762
107215
|
try {
|
|
106763
|
-
const content = await
|
|
107216
|
+
const content = await fs16.readFile(sourceLocalePath, "utf8");
|
|
106764
107217
|
JSON.parse(content);
|
|
106765
107218
|
return {
|
|
106766
107219
|
name: "Source Locale",
|
|
@@ -106772,8 +107225,8 @@ async function checkSourceLocale(config, projectRoot, autoFix) {
|
|
|
106772
107225
|
if (error.code === "ENOENT") {
|
|
106773
107226
|
if (autoFix) {
|
|
106774
107227
|
try {
|
|
106775
|
-
await
|
|
106776
|
-
await
|
|
107228
|
+
await fs16.mkdir(localesDir, { recursive: true });
|
|
107229
|
+
await fs16.writeFile(sourceLocalePath, "{}");
|
|
106777
107230
|
return {
|
|
106778
107231
|
name: "Source Locale",
|
|
106779
107232
|
status: "pass",
|
|
@@ -106855,13 +107308,13 @@ async function checkAdapterDependencies(config, projectRoot) {
|
|
|
106855
107308
|
}
|
|
106856
107309
|
}
|
|
106857
107310
|
async function checkWritePermissions(config, projectRoot) {
|
|
106858
|
-
const localesDir =
|
|
107311
|
+
const localesDir = path23.resolve(projectRoot, config.localesDir ?? "locales");
|
|
106859
107312
|
try {
|
|
106860
|
-
await
|
|
106861
|
-
const testFile =
|
|
107313
|
+
await fs16.access(localesDir);
|
|
107314
|
+
const testFile = path23.join(localesDir, ".i18nsmith-permission-test");
|
|
106862
107315
|
try {
|
|
106863
|
-
await
|
|
106864
|
-
await
|
|
107316
|
+
await fs16.writeFile(testFile, "");
|
|
107317
|
+
await fs16.unlink(testFile);
|
|
106865
107318
|
return {
|
|
106866
107319
|
name: "Write Permissions",
|
|
106867
107320
|
status: "pass",
|
|
@@ -106876,11 +107329,11 @@ async function checkWritePermissions(config, projectRoot) {
|
|
|
106876
107329
|
};
|
|
106877
107330
|
}
|
|
106878
107331
|
} catch {
|
|
106879
|
-
const parentDir =
|
|
107332
|
+
const parentDir = path23.dirname(localesDir);
|
|
106880
107333
|
try {
|
|
106881
|
-
const testFile =
|
|
106882
|
-
await
|
|
106883
|
-
await
|
|
107334
|
+
const testFile = path23.join(parentDir, ".i18nsmith-permission-test");
|
|
107335
|
+
await fs16.writeFile(testFile, "");
|
|
107336
|
+
await fs16.unlink(testFile);
|
|
106884
107337
|
return {
|
|
106885
107338
|
name: "Write Permissions",
|
|
106886
107339
|
status: "pass",
|
|
@@ -106962,7 +107415,7 @@ function printPreflightResults(result) {
|
|
|
106962
107415
|
}
|
|
106963
107416
|
|
|
106964
107417
|
// src/commands/debug-patterns.ts
|
|
106965
|
-
import
|
|
107418
|
+
import path24 from "path";
|
|
106966
107419
|
import chalk8 from "chalk";
|
|
106967
107420
|
import fg6 from "fast-glob";
|
|
106968
107421
|
function registerDebugPatterns(program2) {
|
|
@@ -106970,7 +107423,7 @@ function registerDebugPatterns(program2) {
|
|
|
106970
107423
|
try {
|
|
106971
107424
|
const { config, projectRoot, configPath } = await loadConfigWithMeta(options8.config);
|
|
106972
107425
|
console.log(chalk8.blue("Debugging glob patterns..."));
|
|
106973
|
-
console.log(chalk8.gray(`Config: ${
|
|
107426
|
+
console.log(chalk8.gray(`Config: ${path24.relative(process.cwd(), configPath)}`));
|
|
106974
107427
|
console.log(chalk8.gray(`Project root: ${projectRoot}
|
|
106975
107428
|
`));
|
|
106976
107429
|
const includePatterns = config.include ?? ["**/*.tsx", "**/*.ts", "**/*.jsx", "**/*.js"];
|
|
@@ -107134,8 +107587,8 @@ function printPatternAnalysis(summary, verbose) {
|
|
|
107134
107587
|
}
|
|
107135
107588
|
|
|
107136
107589
|
// src/commands/diagnose.ts
|
|
107137
|
-
import
|
|
107138
|
-
import
|
|
107590
|
+
import fs17 from "fs/promises";
|
|
107591
|
+
import path25 from "path";
|
|
107139
107592
|
import chalk9 from "chalk";
|
|
107140
107593
|
|
|
107141
107594
|
// src/utils/exit-codes.ts
|
|
@@ -107247,7 +107700,7 @@ function printDiagnosisReport(report) {
|
|
|
107247
107700
|
console.log(chalk9.yellow(" \u2022 No locale files detected."));
|
|
107248
107701
|
} else {
|
|
107249
107702
|
for (const entry of report.localeFiles) {
|
|
107250
|
-
const relPath =
|
|
107703
|
+
const relPath = path25.relative(process.cwd(), entry.path);
|
|
107251
107704
|
const status = entry.missing ? chalk9.red("missing") : entry.parseError ? chalk9.red("invalid JSON") : `${entry.keyCount} keys`;
|
|
107252
107705
|
console.log(` \u2022 ${entry.locale} \u2014 ${status}${entry.missing ? "" : ` (${relPath})`}`);
|
|
107253
107706
|
}
|
|
@@ -107316,9 +107769,9 @@ function registerDiagnose(program2) {
|
|
|
107316
107769
|
const config = await loadConfig(options8.config);
|
|
107317
107770
|
const report = await diagnoseWorkspace(config);
|
|
107318
107771
|
if (options8.report) {
|
|
107319
|
-
const outputPath =
|
|
107320
|
-
await
|
|
107321
|
-
await
|
|
107772
|
+
const outputPath = path25.resolve(process.cwd(), options8.report);
|
|
107773
|
+
await fs17.mkdir(path25.dirname(outputPath), { recursive: true });
|
|
107774
|
+
await fs17.writeFile(outputPath, JSON.stringify(report, null, 2));
|
|
107322
107775
|
console.log(chalk9.green(`Diagnosis report written to ${outputPath}`));
|
|
107323
107776
|
}
|
|
107324
107777
|
if (options8.json) {
|
|
@@ -107341,15 +107794,15 @@ Blocking conflicts detected (${report.conflicts.length}).`));
|
|
|
107341
107794
|
}
|
|
107342
107795
|
|
|
107343
107796
|
// src/commands/audit.ts
|
|
107344
|
-
import
|
|
107345
|
-
import
|
|
107797
|
+
import fs18 from "fs/promises";
|
|
107798
|
+
import path26 from "path";
|
|
107346
107799
|
import chalk10 from "chalk";
|
|
107347
107800
|
function registerAudit(program2) {
|
|
107348
107801
|
program2.command("audit").description("Audit locale files for suspicious keys, key=value patterns, and quality issues").option("-c, --config <path>", "Path to i18nsmith config file", "i18n.config.json").option("-l, --locale <locales...>", "Specific locale(s) to audit (defaults to all)").option("--json", "Print raw JSON results", false).option("--report <path>", "Write JSON report to a file").option("--strict", "Exit with error code if any issues found", false).option("--duplicates", "Check for duplicate values (consolidation opportunities)", false).option("--inconsistent", "Check for inconsistent key naming patterns", false).option("--orphaned", "Check for orphaned namespaces with few keys", false).action(async (options8) => {
|
|
107349
107802
|
console.log(chalk10.blue("Auditing locale files..."));
|
|
107350
107803
|
try {
|
|
107351
107804
|
const config = await loadConfig(options8.config);
|
|
107352
|
-
const localesDir =
|
|
107805
|
+
const localesDir = path26.resolve(process.cwd(), config.localesDir ?? "locales");
|
|
107353
107806
|
const localeStore = new LocaleStore(localesDir, {
|
|
107354
107807
|
sortKeys: config.locales?.sortKeys ?? "alphabetical"
|
|
107355
107808
|
});
|
|
@@ -107434,9 +107887,9 @@ function registerAudit(program2) {
|
|
|
107434
107887
|
const totalIssues = results.reduce((sum, r5) => sum + r5.issues.length, 0);
|
|
107435
107888
|
const totalQualityIssues = results.reduce((sum, r5) => sum + r5.qualityIssues.length, 0);
|
|
107436
107889
|
if (options8.report) {
|
|
107437
|
-
const outputPath =
|
|
107438
|
-
await
|
|
107439
|
-
await
|
|
107890
|
+
const outputPath = path26.resolve(process.cwd(), options8.report);
|
|
107891
|
+
await fs18.mkdir(path26.dirname(outputPath), { recursive: true });
|
|
107892
|
+
await fs18.writeFile(outputPath, JSON.stringify({ results, totalIssues, totalQualityIssues }, null, 2));
|
|
107440
107893
|
console.log(chalk10.green(`Audit report written to ${outputPath}`));
|
|
107441
107894
|
}
|
|
107442
107895
|
if (options8.json) {
|
|
@@ -107495,13 +107948,13 @@ Audit failed with ${totalIssues} issue(s). Use --strict=false to allow.`));
|
|
|
107495
107948
|
}
|
|
107496
107949
|
|
|
107497
107950
|
// src/commands/check.ts
|
|
107498
|
-
import
|
|
107499
|
-
import
|
|
107951
|
+
import fs20 from "fs/promises";
|
|
107952
|
+
import path28 from "path";
|
|
107500
107953
|
import chalk12 from "chalk";
|
|
107501
107954
|
|
|
107502
107955
|
// src/utils/diff-utils.ts
|
|
107503
|
-
import
|
|
107504
|
-
import
|
|
107956
|
+
import fs19 from "fs/promises";
|
|
107957
|
+
import path27 from "path";
|
|
107505
107958
|
import chalk11 from "chalk";
|
|
107506
107959
|
function printLocaleDiffs(diffs) {
|
|
107507
107960
|
if (!diffs.length) {
|
|
@@ -107520,14 +107973,14 @@ async function writeLocaleDiffPatches(diffs, directory) {
|
|
|
107520
107973
|
console.log(chalk11.gray("No locale diffs to write."));
|
|
107521
107974
|
return;
|
|
107522
107975
|
}
|
|
107523
|
-
const targetDir =
|
|
107524
|
-
await
|
|
107976
|
+
const targetDir = path27.isAbsolute(directory) ? directory : path27.resolve(process.cwd(), directory);
|
|
107977
|
+
await fs19.mkdir(targetDir, { recursive: true });
|
|
107525
107978
|
await Promise.all(
|
|
107526
107979
|
diffs.map((entry) => {
|
|
107527
107980
|
const safeLocale = entry.locale.replace(/[^a-z0-9_-]/gi, "-");
|
|
107528
107981
|
const fileName = `${safeLocale || "locale"}.patch`;
|
|
107529
|
-
const filePath =
|
|
107530
|
-
return
|
|
107982
|
+
const filePath = path27.join(targetDir, fileName);
|
|
107983
|
+
return fs19.writeFile(filePath, `${entry.diff.trimEnd()}
|
|
107531
107984
|
`, "utf8");
|
|
107532
107985
|
})
|
|
107533
107986
|
);
|
|
@@ -107606,7 +108059,7 @@ function registerCheck(program2) {
|
|
|
107606
108059
|
const { config, projectRoot, configPath } = await loadConfigWithMeta(options8.config);
|
|
107607
108060
|
const cwd = process.cwd();
|
|
107608
108061
|
if (projectRoot !== cwd) {
|
|
107609
|
-
console.log(chalk12.gray(`Config found at ${
|
|
108062
|
+
console.log(chalk12.gray(`Config found at ${path28.relative(cwd, configPath)}`));
|
|
107610
108063
|
console.log(chalk12.gray(`Using project root: ${projectRoot}
|
|
107611
108064
|
`));
|
|
107612
108065
|
}
|
|
@@ -107627,9 +108080,9 @@ function registerCheck(program2) {
|
|
|
107627
108080
|
invalidateCache: options8.invalidateCache
|
|
107628
108081
|
});
|
|
107629
108082
|
if (options8.report) {
|
|
107630
|
-
const outputPath =
|
|
107631
|
-
await
|
|
107632
|
-
await
|
|
108083
|
+
const outputPath = path28.resolve(process.cwd(), options8.report);
|
|
108084
|
+
await fs20.mkdir(path28.dirname(outputPath), { recursive: true });
|
|
108085
|
+
await fs20.writeFile(outputPath, JSON.stringify(summary, null, 2));
|
|
107633
108086
|
console.log(chalk12.green(`Health report written to ${outputPath}`));
|
|
107634
108087
|
}
|
|
107635
108088
|
if (options8.json) {
|
|
@@ -107666,8 +108119,8 @@ Blocking diagnostic conflict detected: ${diagExit.reason}`));
|
|
|
107666
108119
|
}
|
|
107667
108120
|
|
|
107668
108121
|
// src/commands/scan.ts
|
|
107669
|
-
import
|
|
107670
|
-
import
|
|
108122
|
+
import fs21 from "fs/promises";
|
|
108123
|
+
import path29 from "path";
|
|
107671
108124
|
import chalk13 from "chalk";
|
|
107672
108125
|
var collectTargetPatterns2 = (value, previous) => {
|
|
107673
108126
|
const list = Array.isArray(value) ? value : [value];
|
|
@@ -107695,7 +108148,7 @@ function registerScan(program2) {
|
|
|
107695
108148
|
const { config, projectRoot, configPath } = await loadConfigWithMeta(options8.config);
|
|
107696
108149
|
const cwd = process.cwd();
|
|
107697
108150
|
if (projectRoot !== cwd) {
|
|
107698
|
-
console.log(chalk13.gray(`Config found at ${
|
|
108151
|
+
console.log(chalk13.gray(`Config found at ${path29.relative(cwd, configPath)}`));
|
|
107699
108152
|
console.log(chalk13.gray(`Using project root: ${projectRoot}
|
|
107700
108153
|
`));
|
|
107701
108154
|
}
|
|
@@ -107708,9 +108161,9 @@ function registerScan(program2) {
|
|
|
107708
108161
|
const scanner = new Scanner(config, { workspaceRoot: projectRoot });
|
|
107709
108162
|
const summary = scanner.scan();
|
|
107710
108163
|
if (options8.report) {
|
|
107711
|
-
const outputPath =
|
|
107712
|
-
await
|
|
107713
|
-
await
|
|
108164
|
+
const outputPath = path29.resolve(process.cwd(), options8.report);
|
|
108165
|
+
await fs21.mkdir(path29.dirname(outputPath), { recursive: true });
|
|
108166
|
+
await fs21.writeFile(outputPath, JSON.stringify(summary, null, 2));
|
|
107714
108167
|
console.log(chalk13.green(`Scan report written to ${outputPath}`));
|
|
107715
108168
|
}
|
|
107716
108169
|
if (options8.json) {
|
|
@@ -107751,13 +108204,13 @@ function registerScan(program2) {
|
|
|
107751
108204
|
}
|
|
107752
108205
|
|
|
107753
108206
|
// src/commands/transform.ts
|
|
107754
|
-
import
|
|
107755
|
-
import
|
|
108207
|
+
import fs33 from "fs/promises";
|
|
108208
|
+
import path33 from "path";
|
|
107756
108209
|
import chalk14 from "chalk";
|
|
107757
108210
|
|
|
107758
108211
|
// ../transformer/src/transformer.ts
|
|
107759
|
-
import
|
|
107760
|
-
import
|
|
108212
|
+
import fs31 from "fs";
|
|
108213
|
+
import path31 from "path";
|
|
107761
108214
|
import {
|
|
107762
108215
|
Node as Node7,
|
|
107763
108216
|
Project as Project6
|
|
@@ -107871,6 +108324,19 @@ function ensureUseTranslationBinding(fn9, hookName) {
|
|
|
107871
108324
|
}
|
|
107872
108325
|
body.insertStatements(0, `const { t } = ${hookName}();`);
|
|
107873
108326
|
}
|
|
108327
|
+
function ensureClientDirective(sourceFile) {
|
|
108328
|
+
const statements = sourceFile.getStatements();
|
|
108329
|
+
const hasClientDirective = statements.some((statement) => {
|
|
108330
|
+
if (isDirectiveStatement(statement)) {
|
|
108331
|
+
const text = statement.getText();
|
|
108332
|
+
return text.includes("use client");
|
|
108333
|
+
}
|
|
108334
|
+
return false;
|
|
108335
|
+
});
|
|
108336
|
+
if (!hasClientDirective) {
|
|
108337
|
+
sourceFile.insertStatements(0, "'use client';");
|
|
108338
|
+
}
|
|
108339
|
+
}
|
|
107874
108340
|
function findNearestFunctionScope(node) {
|
|
107875
108341
|
return node.getFirstAncestor(
|
|
107876
108342
|
(ancestor) => Node6.isFunctionDeclaration(ancestor) || Node6.isMethodDeclaration(ancestor) || Node6.isFunctionExpression(ancestor) || Node6.isArrowFunction(ancestor)
|
|
@@ -107896,7 +108362,7 @@ function countDirectiveStatements(statements) {
|
|
|
107896
108362
|
}
|
|
107897
108363
|
|
|
107898
108364
|
// ../transformer/src/formatting.ts
|
|
107899
|
-
import
|
|
108365
|
+
import fs30 from "fs/promises";
|
|
107900
108366
|
var defaultLoader = () => Promise.resolve().then(() => (init_prettier(), prettier_exports));
|
|
107901
108367
|
function isModuleNotFound(error) {
|
|
107902
108368
|
if (!error || typeof error !== "object") {
|
|
@@ -107912,14 +108378,14 @@ function isModuleNotFound(error) {
|
|
|
107912
108378
|
async function formatFileWithPrettier(filePath, loadPrettier = defaultLoader) {
|
|
107913
108379
|
try {
|
|
107914
108380
|
const prettier = await loadPrettier();
|
|
107915
|
-
const fileContent = await
|
|
108381
|
+
const fileContent = await fs30.readFile(filePath, "utf8");
|
|
107916
108382
|
const config = await prettier.resolveConfig(filePath).catch(() => null);
|
|
107917
108383
|
const formatted = await prettier.format(fileContent, {
|
|
107918
108384
|
...config ?? {},
|
|
107919
108385
|
filepath: filePath
|
|
107920
108386
|
});
|
|
107921
108387
|
if (formatted !== fileContent) {
|
|
107922
|
-
await
|
|
108388
|
+
await fs30.writeFile(filePath, formatted, "utf8");
|
|
107923
108389
|
}
|
|
107924
108390
|
} catch (error) {
|
|
107925
108391
|
if (isModuleNotFound(error)) {
|
|
@@ -107939,7 +108405,7 @@ var Transformer = class _Transformer {
|
|
|
107939
108405
|
const namespace = options8.keyNamespace ?? this.config.keyGeneration?.namespace ?? "common";
|
|
107940
108406
|
this.keyGenerator = options8.keyGenerator ?? new KeyGenerator({ namespace, hashLength: this.config.keyGeneration?.shortHashLen ?? 6 });
|
|
107941
108407
|
this.keyValidator = new KeyValidator(this.config.sync?.suspiciousKeyPolicy ?? "skip");
|
|
107942
|
-
const localesDir =
|
|
108408
|
+
const localesDir = path31.resolve(this.workspaceRoot, config.localesDir ?? "locales");
|
|
107943
108409
|
const localeStoreOptions = {
|
|
107944
108410
|
format: config.locales?.format ?? "auto",
|
|
107945
108411
|
delimiter: config.locales?.delimiter ?? ".",
|
|
@@ -108016,6 +108482,7 @@ var Transformer = class _Transformer {
|
|
|
108016
108482
|
}
|
|
108017
108483
|
if (write) {
|
|
108018
108484
|
ensureUseTranslationBinding(scope, adapterForFile.hookName);
|
|
108485
|
+
ensureClientDirective(sourceFile);
|
|
108019
108486
|
this.applyCandidate(candidate);
|
|
108020
108487
|
candidate.status = "applied";
|
|
108021
108488
|
filesChanged.set(candidate.filePath, sourceFile);
|
|
@@ -108087,12 +108554,12 @@ var Transformer = class _Transformer {
|
|
|
108087
108554
|
if (!requiredDeps) {
|
|
108088
108555
|
return;
|
|
108089
108556
|
}
|
|
108090
|
-
const pkgPath =
|
|
108091
|
-
if (!
|
|
108557
|
+
const pkgPath = path31.resolve(this.workspaceRoot, "package.json");
|
|
108558
|
+
if (!fs31.existsSync(pkgPath)) {
|
|
108092
108559
|
return;
|
|
108093
108560
|
}
|
|
108094
108561
|
try {
|
|
108095
|
-
const pkg = JSON.parse(
|
|
108562
|
+
const pkg = JSON.parse(fs31.readFileSync(pkgPath, "utf8"));
|
|
108096
108563
|
const deps = { ...pkg.dependencies, ...pkg.devDependencies };
|
|
108097
108564
|
const missing = requiredDeps.filter((dep) => !deps[dep]);
|
|
108098
108565
|
if (missing.length) {
|
|
@@ -108152,7 +108619,7 @@ var Transformer = class _Transformer {
|
|
|
108152
108619
|
}
|
|
108153
108620
|
buildContext(candidate) {
|
|
108154
108621
|
return {
|
|
108155
|
-
filePath:
|
|
108622
|
+
filePath: path31.resolve(this.workspaceRoot, candidate.filePath),
|
|
108156
108623
|
kind: candidate.kind,
|
|
108157
108624
|
context: candidate.context
|
|
108158
108625
|
};
|
|
@@ -108222,10 +108689,13 @@ var Transformer = class _Transformer {
|
|
|
108222
108689
|
}
|
|
108223
108690
|
return Array.from(variants).filter(Boolean);
|
|
108224
108691
|
}
|
|
108225
|
-
getRelativeModulePath(
|
|
108226
|
-
|
|
108227
|
-
|
|
108228
|
-
|
|
108692
|
+
getRelativeModulePath(moduleSpecifier, sourceFilePath) {
|
|
108693
|
+
if (moduleSpecifier.startsWith("@/") || !moduleSpecifier.startsWith(".") && !path31.isAbsolute(moduleSpecifier)) {
|
|
108694
|
+
return moduleSpecifier;
|
|
108695
|
+
}
|
|
108696
|
+
const absoluteModuleFullPath = path31.isAbsolute(moduleSpecifier) ? moduleSpecifier : path31.resolve(this.workspaceRoot, moduleSpecifier);
|
|
108697
|
+
const sourceDir = path31.dirname(sourceFilePath);
|
|
108698
|
+
const relativePath = path31.relative(sourceDir, absoluteModuleFullPath);
|
|
108229
108699
|
const withoutExtension = relativePath.replace(/\.tsx?$/, "");
|
|
108230
108700
|
if (!withoutExtension.startsWith(".")) {
|
|
108231
108701
|
return "./" + withoutExtension;
|
|
@@ -108273,16 +108743,26 @@ function printTransformSummary(summary) {
|
|
|
108273
108743
|
}
|
|
108274
108744
|
}
|
|
108275
108745
|
function registerTransform(program2) {
|
|
108276
|
-
program2.command("transform").description("Scan project and apply i18n transformations").option("-c, --config <path>", "Path to i18nsmith config file", "i18n.config.json").option("--json", "Print raw JSON results", false).option("--report <path>", "Write JSON summary to a file (for CI or editors)").option("--write", "Write changes to disk (defaults to dry-run)", false).option("--check", "Exit with error code if changes are needed", false).option("--diff", "Display unified diffs for locale files that would change", false).option("--patch-dir <path>", "Write locale diffs to .patch files in the specified directory").option("--target <pattern...>", "Limit scanning to specific files or glob patterns", collectTargetPatterns3, []).option("--migrate-text-keys", 'Migrate existing t("Text") calls to structured keys').action(async (options8) => {
|
|
108746
|
+
program2.command("transform").description("Scan project and apply i18n transformations").option("-c, --config <path>", "Path to i18nsmith config file", "i18n.config.json").option("--json", "Print raw JSON results", false).option("--report <path>", "Write JSON summary to a file (for CI or editors)").option("--write", "Write changes to disk (defaults to dry-run)", false).option("--check", "Exit with error code if changes are needed", false).option("--diff", "Display unified diffs for locale files that would change", false).option("--patch-dir <path>", "Write locale diffs to .patch files in the specified directory").option("--target <pattern...>", "Limit scanning to specific files or glob patterns", collectTargetPatterns3, []).option("--migrate-text-keys", 'Migrate existing t("Text") calls to structured keys').option("--preview-output <path>", "Write preview summary (JSON) to a file (implies dry-run)").option("--apply-preview <path>", "Apply a previously saved transform preview JSON file safely").action(async (options8) => {
|
|
108747
|
+
if (options8.applyPreview) {
|
|
108748
|
+
await applyPreviewFile("transform", options8.applyPreview);
|
|
108749
|
+
return;
|
|
108750
|
+
}
|
|
108277
108751
|
const diffEnabled = Boolean(options8.diff || options8.patchDir);
|
|
108278
|
-
|
|
108279
|
-
|
|
108280
|
-
);
|
|
108752
|
+
const previewMode = Boolean(options8.previewOutput);
|
|
108753
|
+
const diffRequested = diffEnabled || previewMode;
|
|
108754
|
+
const writeEnabled = Boolean(options8.write) && !previewMode;
|
|
108755
|
+
if (previewMode && options8.write) {
|
|
108756
|
+
console.log(chalk14.yellow("Preview requested; ignoring --write and running in dry-run mode."));
|
|
108757
|
+
}
|
|
108758
|
+
options8.write = writeEnabled;
|
|
108759
|
+
const banner = previewMode ? "Generating transform preview..." : writeEnabled ? "Running transform (write mode)..." : "Planning transform (dry-run)...";
|
|
108760
|
+
console.log(chalk14.blue(banner));
|
|
108281
108761
|
try {
|
|
108282
108762
|
const { config, projectRoot, configPath } = await loadConfigWithMeta(options8.config);
|
|
108283
108763
|
const cwd = process.cwd();
|
|
108284
108764
|
if (projectRoot !== cwd) {
|
|
108285
|
-
console.log(chalk14.gray(`Config found at ${
|
|
108765
|
+
console.log(chalk14.gray(`Config found at ${path33.relative(cwd, configPath)}`));
|
|
108286
108766
|
console.log(chalk14.gray(`Using project root: ${projectRoot}
|
|
108287
108767
|
`));
|
|
108288
108768
|
}
|
|
@@ -108290,13 +108770,17 @@ function registerTransform(program2) {
|
|
|
108290
108770
|
const summary = await transformer.run({
|
|
108291
108771
|
write: options8.write,
|
|
108292
108772
|
targets: options8.target,
|
|
108293
|
-
diff:
|
|
108773
|
+
diff: diffRequested,
|
|
108294
108774
|
migrateTextKeys: options8.migrateTextKeys
|
|
108295
108775
|
});
|
|
108776
|
+
if (previewMode && options8.previewOutput) {
|
|
108777
|
+
const savedPath = await writePreviewFile("transform", summary, options8.previewOutput);
|
|
108778
|
+
console.log(chalk14.green(`Preview written to ${path33.relative(process.cwd(), savedPath)}`));
|
|
108779
|
+
}
|
|
108296
108780
|
if (options8.report) {
|
|
108297
|
-
const outputPath =
|
|
108298
|
-
await
|
|
108299
|
-
await
|
|
108781
|
+
const outputPath = path33.resolve(process.cwd(), options8.report);
|
|
108782
|
+
await fs33.mkdir(path33.dirname(outputPath), { recursive: true });
|
|
108783
|
+
await fs33.writeFile(outputPath, JSON.stringify(summary, null, 2));
|
|
108300
108784
|
console.log(chalk14.green(`Transform report written to ${outputPath}`));
|
|
108301
108785
|
}
|
|
108302
108786
|
if (options8.json) {
|
|
@@ -108334,8 +108818,8 @@ function registerTransform(program2) {
|
|
|
108334
108818
|
// src/commands/sync.ts
|
|
108335
108819
|
import chalk15 from "chalk";
|
|
108336
108820
|
import inquirer4 from "inquirer";
|
|
108337
|
-
import { promises as
|
|
108338
|
-
import
|
|
108821
|
+
import { promises as fs34 } from "fs";
|
|
108822
|
+
import path34 from "path";
|
|
108339
108823
|
function collectAssumedKeys2(value, previous = []) {
|
|
108340
108824
|
return previous.concat(value.split(",").map((k8) => k8.trim()));
|
|
108341
108825
|
}
|
|
@@ -108343,26 +108827,53 @@ function collectTargetPatterns4(value, previous = []) {
|
|
|
108343
108827
|
return previous.concat(value);
|
|
108344
108828
|
}
|
|
108345
108829
|
function registerSync(program2) {
|
|
108346
|
-
program2.command("sync").description("Detect missing locale keys and optionally prune unused entries").option("-c, --config <path>", "Path to i18nsmith config file", "i18n.config.json").option("--json", "Print raw JSON results", false).option("--report <path>", "Write JSON summary to a file (for CI or editors)").option("--write", "Write changes to disk (defaults to dry-run)", false).option("--prune", "Remove unused keys from locale files (requires --write)", false).option("--no-backup", "Disable automatic backup when using --prune (backup is on by default with --prune)").option("-y, --yes", "Skip confirmation prompts (for CI)", false).option("--check", "Exit with error code if drift detected", false).option("--strict", "Exit with error code if any suspicious patterns detected (CI mode)", false).option("--validate-interpolations", "Validate interpolation placeholders across locales", false).option("--no-empty-values", "Treat empty or placeholder locale values as failures").option("--assume <keys...>", "List of runtime keys to assume present (comma-separated)", collectAssumedKeys2, []).option("--assume-globs <patterns...>", "Glob patterns for dynamic key namespaces (e.g., errors.*, navigation.**)", collectTargetPatterns4, []).option("--interactive", "Interactively approve locale mutations before writing", false).option("--diff", "Display unified diffs for locale files that would change", false).option("--patch-dir <path>", "Write locale diffs to .patch files in the specified directory").option("--invalidate-cache", "Ignore cached sync analysis and rescan all source files", false).option("--target <pattern...>", "Limit translation reference scanning to specific files or glob patterns", collectTargetPatterns4, []).option("--include <patterns...>", "Override include globs from config (comma or space separated)", collectTargetPatterns4, []).option("--exclude <patterns...>", "Override exclude globs from config (comma or space separated)", collectTargetPatterns4, []).option("--auto-rename-suspicious", "Propose normalized names for suspicious keys", false).option("--rename-map-file <path>", "Write rename proposals to a mapping file (JSON or commented format)").option("--naming-convention <convention>", "Naming convention for auto-rename (kebab-case, camelCase, snake_case)", "kebab-case").option("--rewrite-shape <format>", "Rewrite all locale files to flat or nested format").option("--shape-delimiter <char>", 'Delimiter for key nesting (default: ".")', ".").option("--seed-target-locales", "Add missing keys to target locale files with empty or placeholder values", false).option("--seed-value <value>", "Value to use when seeding target locales (default: empty string)", "").action(async (options8) => {
|
|
108830
|
+
program2.command("sync").description("Detect missing locale keys and optionally prune unused entries").option("-c, --config <path>", "Path to i18nsmith config file", "i18n.config.json").option("--json", "Print raw JSON results", false).option("--report <path>", "Write JSON summary to a file (for CI or editors)").option("--write", "Write changes to disk (defaults to dry-run)", false).option("--prune", "Remove unused keys from locale files (requires --write)", false).option("--no-backup", "Disable automatic backup when using --prune (backup is on by default with --prune)").option("-y, --yes", "Skip confirmation prompts (for CI)", false).option("--check", "Exit with error code if drift detected", false).option("--strict", "Exit with error code if any suspicious patterns detected (CI mode)", false).option("--validate-interpolations", "Validate interpolation placeholders across locales", false).option("--no-empty-values", "Treat empty or placeholder locale values as failures").option("--assume <keys...>", "List of runtime keys to assume present (comma-separated)", collectAssumedKeys2, []).option("--assume-globs <patterns...>", "Glob patterns for dynamic key namespaces (e.g., errors.*, navigation.**)", collectTargetPatterns4, []).option("--interactive", "Interactively approve locale mutations before writing", false).option("--diff", "Display unified diffs for locale files that would change", false).option("--patch-dir <path>", "Write locale diffs to .patch files in the specified directory").option("--invalidate-cache", "Ignore cached sync analysis and rescan all source files", false).option("--target <pattern...>", "Limit translation reference scanning to specific files or glob patterns", collectTargetPatterns4, []).option("--include <patterns...>", "Override include globs from config (comma or space separated)", collectTargetPatterns4, []).option("--exclude <patterns...>", "Override exclude globs from config (comma or space separated)", collectTargetPatterns4, []).option("--auto-rename-suspicious", "Propose normalized names for suspicious keys", false).option("--rename-map-file <path>", "Write rename proposals to a mapping file (JSON or commented format)").option("--naming-convention <convention>", "Naming convention for auto-rename (kebab-case, camelCase, snake_case)", "kebab-case").option("--rewrite-shape <format>", "Rewrite all locale files to flat or nested format").option("--shape-delimiter <char>", 'Delimiter for key nesting (default: ".")', ".").option("--seed-target-locales", "Add missing keys to target locale files with empty or placeholder values", false).option("--seed-value <value>", "Value to use when seeding target locales (default: empty string)", "").option("--preview-output <path>", "Write preview summary (JSON) to a file (implies dry-run)").option("--selection-file <path>", "Path to JSON file with selected missing/unused keys to write (used with --write)").option("--apply-preview <path>", "Apply a previously saved sync preview JSON file safely").action(async (options8) => {
|
|
108831
|
+
if (options8.applyPreview) {
|
|
108832
|
+
const extraArgs = [];
|
|
108833
|
+
if (options8.selectionFile) {
|
|
108834
|
+
extraArgs.push("--selection-file", options8.selectionFile);
|
|
108835
|
+
}
|
|
108836
|
+
if (options8.prune) {
|
|
108837
|
+
extraArgs.push("--prune");
|
|
108838
|
+
}
|
|
108839
|
+
await applyPreviewFile("sync", options8.applyPreview, extraArgs);
|
|
108840
|
+
return;
|
|
108841
|
+
}
|
|
108347
108842
|
const interactive = Boolean(options8.interactive);
|
|
108348
108843
|
const diffEnabled = Boolean(options8.diff || options8.patchDir);
|
|
108349
108844
|
const invalidateCache = Boolean(options8.invalidateCache);
|
|
108350
|
-
const
|
|
108845
|
+
const previewMode = Boolean(options8.previewOutput);
|
|
108846
|
+
const diffRequested = diffEnabled || Boolean(options8.json) || previewMode;
|
|
108351
108847
|
if (interactive && options8.json) {
|
|
108352
108848
|
console.error(chalk15.red("--interactive cannot be combined with --json output."));
|
|
108353
108849
|
process.exitCode = 1;
|
|
108354
108850
|
return;
|
|
108355
108851
|
}
|
|
108356
|
-
|
|
108357
|
-
chalk15.
|
|
108358
|
-
|
|
108359
|
-
|
|
108360
|
-
|
|
108852
|
+
if (previewMode && interactive) {
|
|
108853
|
+
console.error(chalk15.red("--preview-output cannot be combined with --interactive."));
|
|
108854
|
+
process.exitCode = 1;
|
|
108855
|
+
return;
|
|
108856
|
+
}
|
|
108857
|
+
const writeEnabled = Boolean(options8.write) && !previewMode;
|
|
108858
|
+
if (previewMode && options8.write) {
|
|
108859
|
+
console.log(
|
|
108860
|
+
chalk15.yellow("Preview requested; ignoring --write and running in dry-run mode.")
|
|
108861
|
+
);
|
|
108862
|
+
}
|
|
108863
|
+
options8.write = writeEnabled;
|
|
108864
|
+
if (options8.selectionFile && !options8.write) {
|
|
108865
|
+
console.error(chalk15.red("--selection-file requires --write (or --apply-preview) to take effect."));
|
|
108866
|
+
process.exitCode = 1;
|
|
108867
|
+
return;
|
|
108868
|
+
}
|
|
108869
|
+
const selectionFromFile = options8.selectionFile ? await loadSelectionFile(options8.selectionFile) : void 0;
|
|
108870
|
+
const banner = previewMode ? "Generating sync preview..." : interactive ? "Interactive sync (dry-run first)..." : writeEnabled ? "Syncing locale files..." : "Checking locale drift...";
|
|
108871
|
+
console.log(chalk15.blue(banner));
|
|
108361
108872
|
try {
|
|
108362
108873
|
const { config, projectRoot, configPath } = await loadConfigWithMeta(options8.config);
|
|
108363
108874
|
const cwd = process.cwd();
|
|
108364
108875
|
if (projectRoot !== cwd) {
|
|
108365
|
-
console.log(chalk15.gray(`Config found at ${
|
|
108876
|
+
console.log(chalk15.gray(`Config found at ${path34.relative(cwd, configPath)}`));
|
|
108366
108877
|
console.log(chalk15.gray(`Using project root: ${projectRoot}
|
|
108367
108878
|
`));
|
|
108368
108879
|
}
|
|
@@ -108437,18 +108948,23 @@ function registerSync(program2) {
|
|
|
108437
108948
|
validateInterpolations: options8.validateInterpolations,
|
|
108438
108949
|
emptyValuePolicy: options8.emptyValues === false ? "fail" : void 0,
|
|
108439
108950
|
assumedKeys: options8.assume,
|
|
108951
|
+
selection: selectionFromFile,
|
|
108440
108952
|
diff: diffRequested,
|
|
108441
108953
|
invalidateCache,
|
|
108442
108954
|
targets: options8.target
|
|
108443
108955
|
});
|
|
108956
|
+
if (previewMode && options8.previewOutput) {
|
|
108957
|
+
const savedPath = await writePreviewFile("sync", summary, options8.previewOutput);
|
|
108958
|
+
console.log(chalk15.green(`Preview written to ${path34.relative(process.cwd(), savedPath)}`));
|
|
108959
|
+
}
|
|
108444
108960
|
if (summary.backup) {
|
|
108445
108961
|
console.log(chalk15.blue(`
|
|
108446
108962
|
\u{1F4E6} ${summary.backup.summary}`));
|
|
108447
108963
|
}
|
|
108448
108964
|
if (options8.report) {
|
|
108449
|
-
const outputPath =
|
|
108450
|
-
await
|
|
108451
|
-
await
|
|
108965
|
+
const outputPath = path34.resolve(process.cwd(), options8.report);
|
|
108966
|
+
await fs34.mkdir(path34.dirname(outputPath), { recursive: true });
|
|
108967
|
+
await fs34.writeFile(outputPath, JSON.stringify(summary, null, 2));
|
|
108452
108968
|
console.log(chalk15.green(`Sync report written to ${outputPath}`));
|
|
108453
108969
|
}
|
|
108454
108970
|
if (options8.json) {
|
|
@@ -108651,7 +109167,7 @@ function printSyncSummary(summary) {
|
|
|
108651
109167
|
}
|
|
108652
109168
|
async function handleAutoRenameSuspicious(summary, options8, config, projectRoot) {
|
|
108653
109169
|
console.log(chalk15.blue("\n\u{1F4DD} Auto-rename suspicious keys analysis:"));
|
|
108654
|
-
const localesDir =
|
|
109170
|
+
const localesDir = path34.resolve(process.cwd(), config.localesDir ?? "locales");
|
|
108655
109171
|
const localeStore = new LocaleStore(localesDir, {
|
|
108656
109172
|
sortKeys: config.locales?.sortKeys ?? "alphabetical"
|
|
108657
109173
|
});
|
|
@@ -108694,13 +109210,13 @@ async function handleAutoRenameSuspicious(summary, options8, config, projectRoot
|
|
|
108694
109210
|
}
|
|
108695
109211
|
const hasMappings = Object.keys(report.renameMapping).length > 0;
|
|
108696
109212
|
if (options8.renameMapFile && hasMappings) {
|
|
108697
|
-
const outputPath =
|
|
109213
|
+
const outputPath = path34.resolve(process.cwd(), options8.renameMapFile);
|
|
108698
109214
|
const isJsonFormat = outputPath.endsWith(".json");
|
|
108699
109215
|
const content = createRenameMappingFile(report.renameMapping, {
|
|
108700
109216
|
includeComments: !isJsonFormat
|
|
108701
109217
|
});
|
|
108702
|
-
await
|
|
108703
|
-
await
|
|
109218
|
+
await fs34.mkdir(path34.dirname(outputPath), { recursive: true });
|
|
109219
|
+
await fs34.writeFile(outputPath, content, "utf8");
|
|
108704
109220
|
console.log(chalk15.green(`
|
|
108705
109221
|
\u2713 Rename mapping written to ${outputPath}`));
|
|
108706
109222
|
console.log(chalk15.gray(" Apply with: npx i18nsmith rename-keys --map " + options8.renameMapFile + " --write"));
|
|
@@ -108718,13 +109234,13 @@ async function handleAutoRenameSuspicious(summary, options8, config, projectRoot
|
|
|
108718
109234
|
const applySummary = await renamer.renameBatch(mappings, { write: true, diff: Boolean(options8.diff) });
|
|
108719
109235
|
printRenameBatchSummary(applySummary);
|
|
108720
109236
|
if (!options8.renameMapFile && hasMappings) {
|
|
108721
|
-
const defaultMapPath =
|
|
108722
|
-
await
|
|
108723
|
-
await
|
|
109237
|
+
const defaultMapPath = path34.resolve(projectRoot, ".i18nsmith", "auto-rename-map.json");
|
|
109238
|
+
await fs34.mkdir(path34.dirname(defaultMapPath), { recursive: true });
|
|
109239
|
+
await fs34.writeFile(defaultMapPath, JSON.stringify(report.renameMapping, null, 2));
|
|
108724
109240
|
console.log(
|
|
108725
109241
|
chalk15.gray(
|
|
108726
109242
|
`
|
|
108727
|
-
Saved rename mapping to ${
|
|
109243
|
+
Saved rename mapping to ${path34.relative(process.cwd(), defaultMapPath)} (set --rename-map-file to customize)`
|
|
108728
109244
|
)
|
|
108729
109245
|
);
|
|
108730
109246
|
}
|
|
@@ -108739,7 +109255,7 @@ async function handleRewriteShape(options8, config) {
|
|
|
108739
109255
|
const delimiter = options8.shapeDelimiter ?? ".";
|
|
108740
109256
|
console.log(chalk15.blue(`
|
|
108741
109257
|
\u{1F504} Rewriting locale files to ${targetFormat} format...`));
|
|
108742
|
-
const localesDir =
|
|
109258
|
+
const localesDir = path34.resolve(process.cwd(), config.localesDir ?? "locales");
|
|
108743
109259
|
const localeStore = new LocaleStore(localesDir, {
|
|
108744
109260
|
delimiter,
|
|
108745
109261
|
sortKeys: config.locales?.sortKeys ?? "alphabetical"
|
|
@@ -108849,6 +109365,42 @@ async function runInteractiveSync(syncer, options8) {
|
|
|
108849
109365
|
await writeLocaleDiffPatches(writeSummary.diffs, options8.patchDir);
|
|
108850
109366
|
}
|
|
108851
109367
|
}
|
|
109368
|
+
async function loadSelectionFile(filePath) {
|
|
109369
|
+
const resolvedPath = path34.isAbsolute(filePath) ? filePath : path34.resolve(process.cwd(), filePath);
|
|
109370
|
+
let raw;
|
|
109371
|
+
try {
|
|
109372
|
+
raw = await fs34.readFile(resolvedPath, "utf8");
|
|
109373
|
+
} catch (error) {
|
|
109374
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
109375
|
+
throw new Error(`Unable to read selection file at ${resolvedPath}: ${message}`);
|
|
109376
|
+
}
|
|
109377
|
+
let parsed;
|
|
109378
|
+
try {
|
|
109379
|
+
parsed = JSON.parse(raw);
|
|
109380
|
+
} catch (error) {
|
|
109381
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
109382
|
+
throw new Error(`Selection file ${resolvedPath} contains invalid JSON: ${message}`);
|
|
109383
|
+
}
|
|
109384
|
+
const selection = {};
|
|
109385
|
+
const missing = parsed.missing;
|
|
109386
|
+
const unused = parsed.unused;
|
|
109387
|
+
if (Array.isArray(missing)) {
|
|
109388
|
+
const normalized = missing.map((key2) => String(key2).trim()).filter(Boolean);
|
|
109389
|
+
if (normalized.length) {
|
|
109390
|
+
selection.missing = normalized;
|
|
109391
|
+
}
|
|
109392
|
+
}
|
|
109393
|
+
if (Array.isArray(unused)) {
|
|
109394
|
+
const normalized = unused.map((key2) => String(key2).trim()).filter(Boolean);
|
|
109395
|
+
if (normalized.length) {
|
|
109396
|
+
selection.unused = normalized;
|
|
109397
|
+
}
|
|
109398
|
+
}
|
|
109399
|
+
if (!selection.missing?.length && !selection.unused?.length) {
|
|
109400
|
+
throw new Error(`Selection file ${resolvedPath} must include at least one "missing" or "unused" entry.`);
|
|
109401
|
+
}
|
|
109402
|
+
return selection;
|
|
109403
|
+
}
|
|
108852
109404
|
function printRenameBatchSummary(summary) {
|
|
108853
109405
|
console.log(
|
|
108854
109406
|
chalk15.green(
|
|
@@ -108963,19 +109515,37 @@ Restore a backup with: i18nsmith backup-restore <timestamp>`));
|
|
|
108963
109515
|
|
|
108964
109516
|
// src/commands/rename.ts
|
|
108965
109517
|
import chalk17 from "chalk";
|
|
108966
|
-
import
|
|
108967
|
-
import { promises as
|
|
109518
|
+
import path35 from "node:path";
|
|
109519
|
+
import { promises as fs35 } from "node:fs";
|
|
108968
109520
|
function registerRename(program2) {
|
|
108969
|
-
program2.command("rename-key").description("Rename translation keys across source files and locale JSON").argument("<oldKey>", "Existing translation key").argument("<newKey>", "Replacement translation key").option("-c, --config <path>", "Path to i18nsmith config file", "i18n.config.json").option("--json", "Print raw JSON results", false).option("--report <path>", "Write JSON summary to a file (for CI or editors)").option("--write", "Write changes to disk (defaults to dry-run)", false).action(async (oldKey, newKey, options8) => {
|
|
108970
|
-
|
|
109521
|
+
program2.command("rename-key").description("Rename translation keys across source files and locale JSON").argument("<oldKey>", "Existing translation key").argument("<newKey>", "Replacement translation key").option("-c, --config <path>", "Path to i18nsmith config file", "i18n.config.json").option("--json", "Print raw JSON results", false).option("--report <path>", "Write JSON summary to a file (for CI or editors)").option("--write", "Write changes to disk (defaults to dry-run)", false).option("--diff", "Display unified diffs for files that would change", false).option("--preview-output <path>", "Write preview summary (JSON) to a file (implies dry-run)").option("--apply-preview <path>", "Apply a previously saved rename preview JSON file safely").action(async (oldKey, newKey, options8) => {
|
|
109522
|
+
if (options8.applyPreview) {
|
|
109523
|
+
await applyPreviewFile("rename-key", options8.applyPreview);
|
|
109524
|
+
return;
|
|
109525
|
+
}
|
|
109526
|
+
const previewMode = Boolean(options8.previewOutput);
|
|
109527
|
+
const writeEnabled = Boolean(options8.write) && !previewMode;
|
|
109528
|
+
if (previewMode && options8.write) {
|
|
109529
|
+
console.log(chalk17.yellow("Preview requested; ignoring --write and running in dry-run mode."));
|
|
109530
|
+
}
|
|
109531
|
+
options8.write = writeEnabled;
|
|
109532
|
+
console.log(chalk17.blue(writeEnabled ? "Renaming translation key..." : "Planning key rename (dry-run)..."));
|
|
108971
109533
|
try {
|
|
108972
109534
|
const config = await loadConfig(options8.config);
|
|
108973
109535
|
const renamer = new KeyRenamer(config);
|
|
108974
|
-
const summary = await renamer.rename(oldKey, newKey, {
|
|
109536
|
+
const summary = await renamer.rename(oldKey, newKey, {
|
|
109537
|
+
write: options8.write,
|
|
109538
|
+
diff: options8.diff || previewMode
|
|
109539
|
+
});
|
|
109540
|
+
if (previewMode && options8.previewOutput) {
|
|
109541
|
+
const savedPath = await writePreviewFile("rename-key", summary, options8.previewOutput);
|
|
109542
|
+
console.log(chalk17.green(`Preview written to ${path35.relative(process.cwd(), savedPath)}`));
|
|
109543
|
+
return;
|
|
109544
|
+
}
|
|
108975
109545
|
if (options8.report) {
|
|
108976
|
-
const outputPath =
|
|
108977
|
-
await
|
|
108978
|
-
await
|
|
109546
|
+
const outputPath = path35.resolve(process.cwd(), options8.report);
|
|
109547
|
+
await fs35.mkdir(path35.dirname(outputPath), { recursive: true });
|
|
109548
|
+
await fs35.writeFile(outputPath, JSON.stringify(summary, null, 2));
|
|
108979
109549
|
console.log(chalk17.green(`Rename report written to ${outputPath}`));
|
|
108980
109550
|
}
|
|
108981
109551
|
if (options8.json) {
|
|
@@ -109002,9 +109572,9 @@ function registerRename(program2) {
|
|
|
109002
109572
|
const renamer = new KeyRenamer(config);
|
|
109003
109573
|
const summary = await renamer.renameBatch(mappings, { write: options8.write, diff: options8.diff });
|
|
109004
109574
|
if (options8.report) {
|
|
109005
|
-
const outputPath =
|
|
109006
|
-
await
|
|
109007
|
-
await
|
|
109575
|
+
const outputPath = path35.resolve(process.cwd(), options8.report);
|
|
109576
|
+
await fs35.mkdir(path35.dirname(outputPath), { recursive: true });
|
|
109577
|
+
await fs35.writeFile(outputPath, JSON.stringify(summary, null, 2));
|
|
109008
109578
|
console.log(chalk17.green(`Batch rename report written to ${outputPath}`));
|
|
109009
109579
|
}
|
|
109010
109580
|
if (options8.json) {
|
|
@@ -109106,10 +109676,10 @@ async function loadRenameMappings(mapPath) {
|
|
|
109106
109676
|
if (!mapPath) {
|
|
109107
109677
|
throw new Error("A path to the rename map is required.");
|
|
109108
109678
|
}
|
|
109109
|
-
const resolvedPath =
|
|
109679
|
+
const resolvedPath = path35.isAbsolute(mapPath) ? mapPath : path35.resolve(process.cwd(), mapPath);
|
|
109110
109680
|
let fileContents;
|
|
109111
109681
|
try {
|
|
109112
|
-
fileContents = await
|
|
109682
|
+
fileContents = await fs35.readFile(resolvedPath, "utf8");
|
|
109113
109683
|
} catch (error) {
|
|
109114
109684
|
const err = error;
|
|
109115
109685
|
if (err.code === "ENOENT") {
|
|
@@ -109149,13 +109719,13 @@ function normalizeRenameMap(input) {
|
|
|
109149
109719
|
}
|
|
109150
109720
|
|
|
109151
109721
|
// src/commands/install-hooks.ts
|
|
109152
|
-
import
|
|
109153
|
-
import
|
|
109722
|
+
import fs36 from "fs/promises";
|
|
109723
|
+
import path36 from "path";
|
|
109154
109724
|
import { Command } from "commander";
|
|
109155
109725
|
async function huskyInstalled(root2) {
|
|
109156
109726
|
try {
|
|
109157
|
-
const pkgPath =
|
|
109158
|
-
const pkgRaw = await
|
|
109727
|
+
const pkgPath = path36.join(root2, "package.json");
|
|
109728
|
+
const pkgRaw = await fs36.readFile(pkgPath, "utf8");
|
|
109159
109729
|
return /"husky"/.test(pkgRaw);
|
|
109160
109730
|
} catch {
|
|
109161
109731
|
return false;
|
|
@@ -109170,10 +109740,10 @@ async function ensureHusky(root2, pm3, force) {
|
|
|
109170
109740
|
console.log(" (Run manually; automatic exec intentionally omitted in prototype)");
|
|
109171
109741
|
}
|
|
109172
109742
|
async function writeHook(root2, file, content) {
|
|
109173
|
-
const hookPath =
|
|
109174
|
-
await
|
|
109175
|
-
await
|
|
109176
|
-
console.log(`\u2714 Hook created: ${
|
|
109743
|
+
const hookPath = path36.join(root2, ".husky", file);
|
|
109744
|
+
await fs36.mkdir(path36.dirname(hookPath), { recursive: true });
|
|
109745
|
+
await fs36.writeFile(hookPath, content, "utf8");
|
|
109746
|
+
console.log(`\u2714 Hook created: ${path36.relative(root2, hookPath)}`);
|
|
109177
109747
|
}
|
|
109178
109748
|
function registerInstallHooks(program2) {
|
|
109179
109749
|
const cmd = new Command("install-hooks").description("Prototype: scaffold Husky git hooks for i18nsmith checks").option("-y, --yes", "Skip confirmations").option("--force", "Force re-install husky even if present").option("--skip", "Skip husky installation (just create hooks)").action(async (opts) => {
|
|
@@ -109203,8 +109773,8 @@ NOCOLOR=1 npx i18nsmith sync --dry-run --check || exit 1
|
|
|
109203
109773
|
}
|
|
109204
109774
|
|
|
109205
109775
|
// src/commands/config.ts
|
|
109206
|
-
import
|
|
109207
|
-
import
|
|
109776
|
+
import fs37 from "fs/promises";
|
|
109777
|
+
import path37 from "path";
|
|
109208
109778
|
import chalk18 from "chalk";
|
|
109209
109779
|
function parseKeyPath(keyPath) {
|
|
109210
109780
|
return keyPath.split(".").filter(Boolean);
|
|
@@ -109250,13 +109820,13 @@ function parseValue2(valueStr) {
|
|
|
109250
109820
|
return valueStr;
|
|
109251
109821
|
}
|
|
109252
109822
|
async function readRawConfig(configPath) {
|
|
109253
|
-
const content = await
|
|
109823
|
+
const content = await fs37.readFile(configPath, "utf-8");
|
|
109254
109824
|
const parsed = JSON.parse(content);
|
|
109255
109825
|
return { content, parsed };
|
|
109256
109826
|
}
|
|
109257
109827
|
async function writeConfig(configPath, config) {
|
|
109258
109828
|
const content = JSON.stringify(config, null, 2);
|
|
109259
|
-
await
|
|
109829
|
+
await fs37.writeFile(configPath, content, "utf-8");
|
|
109260
109830
|
}
|
|
109261
109831
|
function registerConfig(program2) {
|
|
109262
109832
|
const configCmd = program2.command("config").description("View or modify i18nsmith configuration");
|
|
@@ -109331,8 +109901,8 @@ function registerConfig(program2) {
|
|
|
109331
109901
|
try {
|
|
109332
109902
|
const { configPath } = await loadConfigWithMeta(options8.config);
|
|
109333
109903
|
const { parsed } = await readRawConfig(configPath);
|
|
109334
|
-
const projectRoot =
|
|
109335
|
-
const relativePath =
|
|
109904
|
+
const projectRoot = path37.dirname(configPath);
|
|
109905
|
+
const relativePath = path37.isAbsolute(adapterPath) ? path37.relative(projectRoot, adapterPath) : adapterPath;
|
|
109336
109906
|
if (!parsed.translationAdapter || typeof parsed.translationAdapter !== "object") {
|
|
109337
109907
|
parsed.translationAdapter = {};
|
|
109338
109908
|
}
|
|
@@ -109358,6 +109928,171 @@ function registerConfig(program2) {
|
|
|
109358
109928
|
});
|
|
109359
109929
|
}
|
|
109360
109930
|
|
|
109931
|
+
// src/commands/review.ts
|
|
109932
|
+
import fs38 from "fs/promises";
|
|
109933
|
+
import path38 from "path";
|
|
109934
|
+
import chalk19 from "chalk";
|
|
109935
|
+
import inquirer6 from "inquirer";
|
|
109936
|
+
var DEFAULT_CONFIG_PATH = "i18n.config.json";
|
|
109937
|
+
var DEFAULT_LIMIT = 20;
|
|
109938
|
+
function literalToRegexPattern(value) {
|
|
109939
|
+
const escaped = value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
109940
|
+
return `^${escaped}$`;
|
|
109941
|
+
}
|
|
109942
|
+
function normalizeLimit(value) {
|
|
109943
|
+
if (typeof value !== "number" || Number.isNaN(value) || !Number.isFinite(value)) {
|
|
109944
|
+
return DEFAULT_LIMIT;
|
|
109945
|
+
}
|
|
109946
|
+
return Math.min(Math.max(1, Math.floor(value)), 200);
|
|
109947
|
+
}
|
|
109948
|
+
function summarizeSkipReasons(skipped) {
|
|
109949
|
+
if (!skipped.length) {
|
|
109950
|
+
return [];
|
|
109951
|
+
}
|
|
109952
|
+
const counts = /* @__PURE__ */ new Map();
|
|
109953
|
+
for (const entry of skipped) {
|
|
109954
|
+
counts.set(entry.reason, (counts.get(entry.reason) ?? 0) + 1);
|
|
109955
|
+
}
|
|
109956
|
+
return [...counts.entries()].sort((a5, b7) => b7[1] - a5[1]).slice(0, 5).map(([reason, count]) => `${reason}: ${count}`);
|
|
109957
|
+
}
|
|
109958
|
+
async function writeExtractionOverrides(configPath, allowPatterns, denyPatterns) {
|
|
109959
|
+
if (!allowPatterns.length && !denyPatterns.length) {
|
|
109960
|
+
return { allowAdded: 0, denyAdded: 0, wrote: false };
|
|
109961
|
+
}
|
|
109962
|
+
const raw = await fs38.readFile(configPath, "utf-8");
|
|
109963
|
+
const parsed = JSON.parse(raw);
|
|
109964
|
+
const extraction = typeof parsed.extraction === "object" && parsed.extraction !== null ? parsed.extraction : parsed.extraction = {};
|
|
109965
|
+
const allowList = Array.isArray(extraction.allowPatterns) ? [...extraction.allowPatterns] : [];
|
|
109966
|
+
const denyList = Array.isArray(extraction.denyPatterns) ? [...extraction.denyPatterns] : [];
|
|
109967
|
+
const allowAdded = appendUnique(allowList, allowPatterns);
|
|
109968
|
+
const denyAdded = appendUnique(denyList, denyPatterns);
|
|
109969
|
+
if (allowAdded === 0 && denyAdded === 0) {
|
|
109970
|
+
return { allowAdded, denyAdded, wrote: false };
|
|
109971
|
+
}
|
|
109972
|
+
extraction.allowPatterns = allowList;
|
|
109973
|
+
extraction.denyPatterns = denyList;
|
|
109974
|
+
await fs38.writeFile(configPath, JSON.stringify(parsed, null, 2));
|
|
109975
|
+
return { allowAdded, denyAdded, wrote: true };
|
|
109976
|
+
}
|
|
109977
|
+
function appendUnique(target, additions) {
|
|
109978
|
+
const seen = new Set(target);
|
|
109979
|
+
let added = 0;
|
|
109980
|
+
for (const next of additions) {
|
|
109981
|
+
if (seen.has(next)) continue;
|
|
109982
|
+
target.push(next);
|
|
109983
|
+
seen.add(next);
|
|
109984
|
+
added++;
|
|
109985
|
+
}
|
|
109986
|
+
return added;
|
|
109987
|
+
}
|
|
109988
|
+
function printCandidate(candidate) {
|
|
109989
|
+
const location = `${candidate.filePath}:${candidate.position.line}:${candidate.position.column}`;
|
|
109990
|
+
console.log(chalk19.cyan(`
|
|
109991
|
+
${candidate.text}`));
|
|
109992
|
+
console.log(chalk19.gray(` \u2022 Location: ${location}`));
|
|
109993
|
+
console.log(chalk19.gray(` \u2022 Kind: ${candidate.kind}`));
|
|
109994
|
+
if (candidate.context) {
|
|
109995
|
+
console.log(chalk19.gray(` \u2022 Context: ${candidate.context}`));
|
|
109996
|
+
}
|
|
109997
|
+
}
|
|
109998
|
+
async function promptAction() {
|
|
109999
|
+
const { action } = await inquirer6.prompt([
|
|
110000
|
+
{
|
|
110001
|
+
type: "list",
|
|
110002
|
+
name: "action",
|
|
110003
|
+
message: "Choose an action for this string",
|
|
110004
|
+
choices: [
|
|
110005
|
+
{ name: "Always translate (add to allowPatterns)", value: "allow" },
|
|
110006
|
+
{ name: "Always skip (add to denyPatterns)", value: "deny" },
|
|
110007
|
+
{ name: "Skip for now", value: "skip" },
|
|
110008
|
+
{ name: "Stop reviewing", value: "stop" }
|
|
110009
|
+
]
|
|
110010
|
+
}
|
|
110011
|
+
]);
|
|
110012
|
+
return action;
|
|
110013
|
+
}
|
|
110014
|
+
function registerReview(program2) {
|
|
110015
|
+
program2.command("review").description("Review borderline candidates and persist allow/deny overrides").option("-c, --config <path>", "Path to i18nsmith config file", DEFAULT_CONFIG_PATH).option("--json", "Print raw bucket data as JSON", false).option("--limit <n>", "Limit the number of items per session (default: 20)", (value) => parseInt(value, 10)).option("--scan-calls", "Include translation call arguments", false).action(async (options8) => {
|
|
110016
|
+
try {
|
|
110017
|
+
const { config, projectRoot, configPath } = await loadConfigWithMeta(options8.config);
|
|
110018
|
+
const scanner = new Scanner(config, { workspaceRoot: projectRoot });
|
|
110019
|
+
const summary = scanner.scan({ scanCalls: options8.scanCalls });
|
|
110020
|
+
const buckets = summary.buckets ?? {};
|
|
110021
|
+
const needsReview = buckets.needsReview ?? [];
|
|
110022
|
+
const skipped = buckets.skipped ?? [];
|
|
110023
|
+
if (options8.json) {
|
|
110024
|
+
console.log(JSON.stringify({ needsReview, skipped }, null, 2));
|
|
110025
|
+
return;
|
|
110026
|
+
}
|
|
110027
|
+
if (!needsReview.length) {
|
|
110028
|
+
console.log(chalk19.green("No borderline candidates detected."));
|
|
110029
|
+
const reasons = summarizeSkipReasons(skipped);
|
|
110030
|
+
if (reasons.length) {
|
|
110031
|
+
console.log(chalk19.gray("Most common skip reasons:"));
|
|
110032
|
+
reasons.forEach((line3) => console.log(chalk19.gray(` \u2022 ${line3}`)));
|
|
110033
|
+
}
|
|
110034
|
+
return;
|
|
110035
|
+
}
|
|
110036
|
+
if (!process.stdout.isTTY || process.env.CI === "true") {
|
|
110037
|
+
console.log(chalk19.red("Interactive review requires a TTY. Use --json for non-interactive output."));
|
|
110038
|
+
process.exitCode = 1;
|
|
110039
|
+
return;
|
|
110040
|
+
}
|
|
110041
|
+
const limit = normalizeLimit(options8.limit);
|
|
110042
|
+
const queue = needsReview.slice(0, limit);
|
|
110043
|
+
console.log(
|
|
110044
|
+
chalk19.blue(
|
|
110045
|
+
`Reviewing ${queue.length} of ${needsReview.length} candidate${needsReview.length === 1 ? "" : "s"} (limit=${limit}).`
|
|
110046
|
+
)
|
|
110047
|
+
);
|
|
110048
|
+
const allowPatterns = [];
|
|
110049
|
+
const denyPatterns = [];
|
|
110050
|
+
for (const candidate of queue) {
|
|
110051
|
+
printCandidate(candidate);
|
|
110052
|
+
const action = await promptAction();
|
|
110053
|
+
if (action === "stop") {
|
|
110054
|
+
break;
|
|
110055
|
+
}
|
|
110056
|
+
if (action === "skip") {
|
|
110057
|
+
continue;
|
|
110058
|
+
}
|
|
110059
|
+
const pattern = literalToRegexPattern(candidate.text);
|
|
110060
|
+
if (action === "allow") {
|
|
110061
|
+
allowPatterns.push(pattern);
|
|
110062
|
+
console.log(chalk19.green(` \u2192 Queued ${pattern} for allowPatterns`));
|
|
110063
|
+
} else if (action === "deny") {
|
|
110064
|
+
denyPatterns.push(pattern);
|
|
110065
|
+
console.log(chalk19.yellow(` \u2192 Queued ${pattern} for denyPatterns`));
|
|
110066
|
+
}
|
|
110067
|
+
}
|
|
110068
|
+
if (!allowPatterns.length && !denyPatterns.length) {
|
|
110069
|
+
console.log(chalk19.gray("No config changes requested."));
|
|
110070
|
+
return;
|
|
110071
|
+
}
|
|
110072
|
+
const { allowAdded, denyAdded, wrote } = await writeExtractionOverrides(
|
|
110073
|
+
configPath,
|
|
110074
|
+
allowPatterns,
|
|
110075
|
+
denyPatterns
|
|
110076
|
+
);
|
|
110077
|
+
if (!wrote) {
|
|
110078
|
+
console.log(chalk19.gray("Patterns already existed; config unchanged."));
|
|
110079
|
+
return;
|
|
110080
|
+
}
|
|
110081
|
+
console.log(
|
|
110082
|
+
chalk19.green(
|
|
110083
|
+
`Updated ${relativize(configPath)} (${allowAdded} allow, ${denyAdded} deny pattern${allowAdded + denyAdded === 1 ? "" : "s"} added).`
|
|
110084
|
+
)
|
|
110085
|
+
);
|
|
110086
|
+
} catch (error) {
|
|
110087
|
+
console.error(chalk19.red("Review failed:"), error.message);
|
|
110088
|
+
process.exitCode = 1;
|
|
110089
|
+
}
|
|
110090
|
+
});
|
|
110091
|
+
}
|
|
110092
|
+
function relativize(filePath) {
|
|
110093
|
+
return path38.relative(process.cwd(), filePath) || filePath;
|
|
110094
|
+
}
|
|
110095
|
+
|
|
109361
110096
|
// src/index.ts
|
|
109362
110097
|
var program = new Command2();
|
|
109363
110098
|
program.name("i18nsmith").description("Universal Automated i18n Library").version("0.1.0");
|
|
@@ -109376,6 +110111,7 @@ registerBackup(program);
|
|
|
109376
110111
|
registerRename(program);
|
|
109377
110112
|
registerInstallHooks(program);
|
|
109378
110113
|
registerConfig(program);
|
|
110114
|
+
registerReview(program);
|
|
109379
110115
|
program.parse();
|
|
109380
110116
|
export {
|
|
109381
110117
|
program
|