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/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 fs36 = ({ value: t }) => t ? E5.boolOptions.trueStr : E5.boolOptions.falseStr, lt8 = (t) => typeof t == "bigint" || Number.isInteger(t);
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: fs36 }, { 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: fs36 }, { 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) {
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, ...fs20) || e30.match(t, r5, ...fs20);
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", ...fs20);
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, fs20, 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;
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
- fs20 = [(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"];
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 fs21(e30) {
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) && fs21(e30.lastIntValue)) return true;
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 <= fs22 || e30 >= Ut3 && e30 <= Wt3;
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 <= fs22 || Ut3 <= e30 && e30 <= Wt3 || e30 == ot3 || e30 == Ht4;
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, fs22, 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;
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
- fs22 = 122;
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 = fs23(a5, 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, fs23, 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;
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
- fs23 = hr5;
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", fs36 = "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";
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, 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], hn8 = [0, 0, 0];
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 fs24(e30, t) {
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: () => fs24 });
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, fs25, sl3, ds6, Qr5, gs6, ol3, Zt8, _s6, er7, Ss5, ae6, $r6, zr5, We8, tr7, cl2, Yr6, rr7, Tl2, bl2, wl2, kl2, Al2, yl2, xl2;
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
- fs25 = "HTML";
58165
- sl3 = { bracketSameLine: Wr5.bracketSameLine, htmlWhitespaceSensitivity: { category: fs25, 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: fs25, type: "boolean", default: false, description: "Indent script and style tags in Vue files." } };
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 = '"', fs36 = "'", Ze11 = "(", xr6 = ")", yn8 = "<", wn8 = ">", Ds8 = "[", yr7 = "\\", O0 = "]", ps7 = "`";
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 === fs36 || s5 && a5 === Ze11))); ) {
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 === fs36 || s5 && a5 === Ze11)) if (i++, u4 += a5, y7 = "", v9 = a5 === Ze11 ? xr6 : a5, p4 = u4, s5) {
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(), fs36, Wi7, Gi7, ps7;
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 fs36(e30)];
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
- fs36 = t;
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, fs36.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) => {
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: fs36, 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() {
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 fs36(n5, i) {
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 fs36(o5, p4) {
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 = fs36(o5, true);
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 = fs36(N7, o5);
79397
+ if (o5) _e11 = fs39(N7, o5);
79398
79398
  else {
79399
- let ur9 = fs36(N7, o5);
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 path27 from "path";
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 fs26 from "fs/promises";
82840
- import * as path28 from "path";
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 fs27 from "fs/promises";
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 = path28.join(directory, name);
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 ? fs26.stat : fs26.lstat)(path152);
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 fs27.readFile(file, "utf8");
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 ? path27.resolve(isUrl(urlOrPath) ? url.fileURLToPath(urlOrPath) : 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 fs9 from "fs/promises";
101038
- import path15 from "path";
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 = path.dirname(currentDir);
101356
+ let parentDir = path2.dirname(currentDir);
101266
101357
  const maxDepth = 10;
101267
101358
  let depth = 0;
101268
101359
  do {
101269
- const filePath = path.join(currentDir, filename);
101360
+ const filePath = path2.join(currentDir, filename);
101270
101361
  try {
101271
- await fs.access(filePath);
101362
+ await fs2.access(filePath);
101272
101363
  return filePath;
101273
101364
  } catch {
101274
101365
  }
101275
- parentDir = path.dirname(currentDir);
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 loadConfigFromPath(resolvedPath) {
101375
+ async function readConfigFile(resolvedPath) {
101285
101376
  let fileContents;
101286
101377
  try {
101287
- fileContents = await fs.readFile(resolvedPath, "utf-8");
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 normalizeConfig(parsed);
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 (path.isAbsolute(configPath)) {
101399
+ if (path2.isAbsolute(configPath)) {
101309
101400
  resolvedPath = configPath;
101310
101401
  } else {
101311
- const cwdPath = path.resolve(cwd, configPath);
101402
+ const cwdPath = path2.resolve(cwd, configPath);
101312
101403
  try {
101313
- await fs.access(cwdPath);
101404
+ await fs2.access(cwdPath);
101314
101405
  resolvedPath = cwdPath;
101315
101406
  } catch {
101316
- if (!configPath.includes(path.sep) || configPath === DEFAULT_CONFIG_FILENAME) {
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 config = await loadConfigFromPath(resolvedPath);
101325
- const projectRoot = path.dirname(resolvedPath);
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 path2 from "path";
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 text = this.normalizeText(node.getText());
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 text = this.normalizeText(value);
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 text = this.normalizeText(raw);
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
- const text = this.normalizeText(raw);
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.includes(" ")) {
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
- normalizeText(raw) {
101579
- if (!raw) {
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
- const normalized = raw.replace(/\s+/g, " ").trim();
101583
- if (normalized.length === 0) {
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 (normalized.length < minLength) {
101768
+ if (!options8.force && text.length < minLength) {
101769
+ this.recordSkip("below_min_length", options8.node, text);
101588
101770
  return void 0;
101589
101771
  }
101590
- return normalized;
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) => path2.isAbsolute(pattern) ? pattern : path2.join(this.workspaceRoot, 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 = path2.relative(this.workspaceRoot, filePath);
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 path3 from "path";
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
- path3.normalize(context.filePath).replace(/\\+/g, "/")
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(path3.basename(filePath, path3.extname(filePath)));
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 fs2 from "fs/promises";
101928
- import path4 from "path";
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 path4.join(this.localesDir, `${locale}.json`);
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 fs2.mkdir(path4.dirname(entry.path), { recursive: true });
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 fs2.writeFile(tempPath, `${serialized}
102433
+ await fs3.writeFile(tempPath, `${serialized}
102095
102434
  `, "utf8");
102096
102435
  try {
102097
- await fs2.rename(tempPath, entry.path);
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 fs2.rm(entry.path, { force: true }).catch(() => {
102440
+ await fs3.rm(entry.path, { force: true }).catch(() => {
102102
102441
  });
102103
- await fs2.rename(tempPath, entry.path);
102442
+ await fs3.rename(tempPath, entry.path);
102104
102443
  } else {
102105
102444
  throw error;
102106
102445
  }
102107
102446
  } finally {
102108
- await fs2.rm(tempPath, { force: true }).catch(() => {
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 fs2.mkdir(path4.dirname(entry.path), { recursive: true });
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 fs2.writeFile(tempPath, `${serialized}
102478
+ await fs3.writeFile(tempPath, `${serialized}
102140
102479
  `, "utf8");
102141
102480
  try {
102142
- await fs2.rename(tempPath, entry.path);
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 fs2.rm(entry.path, { force: true }).catch(() => {
102485
+ await fs3.rm(entry.path, { force: true }).catch(() => {
102147
102486
  });
102148
- await fs2.rename(tempPath, entry.path);
102487
+ await fs3.rename(tempPath, entry.path);
102149
102488
  } else {
102150
102489
  throw error;
102151
102490
  }
102152
102491
  } finally {
102153
- await fs2.rm(tempPath, { force: true }).catch(() => {
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 fs2.readFile(filePath, "utf8");
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 path7 from "path";
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 fs3 from "fs/promises";
102481
- import path5 from "path";
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 = path5.resolve(workspaceRoot, options8.backupDir ?? DEFAULT_BACKUP_DIR);
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 fs3.access(localesDir);
102828
+ await fs4.access(localesDir);
102490
102829
  } catch {
102491
102830
  return null;
102492
102831
  }
102493
- const files = await fs3.readdir(localesDir);
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 = path5.join(backupBaseDir, timestamp);
102501
- await fs3.mkdir(backupPath, { recursive: true });
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 = path5.join(localesDir, file);
102511
- const destPath = path5.join(backupPath, file);
102512
- const content = await fs3.readFile(sourcePath);
102513
- await fs3.writeFile(destPath, content);
102514
- const stats = await fs3.stat(sourcePath);
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: path5.relative(workspaceRoot, sourcePath),
102517
- backupPath: path5.relative(workspaceRoot, destPath),
102855
+ originalPath: path6.relative(workspaceRoot, sourcePath),
102856
+ backupPath: path6.relative(workspaceRoot, destPath),
102518
102857
  size: stats.size
102519
102858
  });
102520
102859
  }
102521
- await fs3.writeFile(
102522
- path5.join(backupPath, "manifest.json"),
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 ${path5.relative(workspaceRoot, backupPath)}`
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 = path5.resolve(workspaceRoot, options8.backupDir ?? DEFAULT_BACKUP_DIR);
102873
+ const backupBaseDir = path6.resolve(workspaceRoot, options8.backupDir ?? DEFAULT_BACKUP_DIR);
102535
102874
  try {
102536
- await fs3.access(backupBaseDir);
102875
+ await fs4.access(backupBaseDir);
102537
102876
  } catch {
102538
102877
  return [];
102539
102878
  }
102540
- const entries = await fs3.readdir(backupBaseDir, { withFileTypes: true });
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 = path5.join(backupBaseDir, entry.name, "manifest.json");
102883
+ const manifestPath = path6.join(backupBaseDir, entry.name, "manifest.json");
102545
102884
  try {
102546
- const manifestContent = await fs3.readFile(manifestPath, "utf8");
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: path5.join(backupBaseDir, entry.name),
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 = path5.join(backupPath, "manifest.json");
102561
- const manifestContent = await fs3.readFile(manifestPath, "utf8");
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 = path5.join(backupPath, path5.basename(file.backupPath));
102566
- const destPath = path5.resolve(workspaceRoot, file.originalPath);
102567
- await fs3.mkdir(path5.dirname(destPath), { recursive: true });
102568
- const content = await fs3.readFile(sourcePath);
102569
- await fs3.writeFile(destPath, content);
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 fs3.readdir(backupBaseDir, { withFileTypes: true });
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 = path5.join(backupBaseDir, dir);
102582
- await fs3.rm(dirPath, { recursive: true, force: true });
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 path6 from "path";
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 = path6.relative(workspaceRoot, filePath) || filePath;
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 = path6.relative(workspaceRoot, filePath) || filePath;
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 fs4 from "fs/promises";
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 fs4.readFile(cachePath, "utf8");
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 fs4.mkdir(cacheDir, { recursive: true });
102831
- await fs4.writeFile(cachePath, JSON.stringify(payload), "utf8");
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 fs4.rm(cachePath, { force: true }).catch(() => {
103173
+ await fs5.rm(cachePath, { force: true }).catch(() => {
102835
103174
  });
102836
103175
  }
102837
103176
  async function computeFileFingerprint(filePath) {
102838
- const stats = await fs4.stat(filePath);
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 = path7.resolve(this.workspaceRoot, config.localesDir ?? "locales");
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 = path7.join(this.workspaceRoot, ".i18nsmith", "cache");
103205
- this.referenceCachePath = path7.join(this.cacheDir, "sync-references.json");
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 = path7.resolve(this.workspaceRoot, this.config.localesDir ?? "locales");
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) => path7.isAbsolute(pattern) ? pattern : path7.join(this.workspaceRoot, 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 = path7.resolve(filePath);
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 = path7.relative(this.workspaceRoot, filePath);
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 = path7.isAbsolute(rawPattern) ? rawPattern : path7.join(this.workspaceRoot, rawPattern);
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 path8 from "path";
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 = path8.resolve(this.workspaceRoot, config.localesDir ?? "locales");
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 = path8.relative(this.workspaceRoot, filePath);
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 = path8.isAbsolute(rawPattern) ? rawPattern : path8.join(this.workspaceRoot, rawPattern);
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 fs5 from "fs/promises";
103971
- import path9 from "path";
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 = path9.resolve(workspaceRoot, config.localesDir ?? "locales");
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: [path9.join(input.config.localesDir, `${input.config.sourceLanguage}.json`)] });
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 = path9.basename(absolutePath, path9.extname(absolutePath));
104466
+ const locale = path10.basename(absolutePath, path10.extname(absolutePath));
104128
104467
  try {
104129
- const [raw, stats] = await Promise.all([fs5.readFile(absolutePath, "utf8"), fs5.stat(absolutePath)]);
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: path9.join(localesDir, `${locale}.json`),
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 = path9.join(workspaceRoot, "package.json");
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 fs5.readFile(pkgPath, "utf8");
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 fs5.readFile(absolutePath, "utf8");
104199
- const relativePath = path9.relative(workspaceRoot, absolutePath);
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 = path9.resolve(workspaceRoot, hint.path);
104556
+ const absolute = path10.resolve(workspaceRoot, hint.path);
104218
104557
  try {
104219
- await fs5.access(absolute);
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) => path9.resolve(workspaceRoot, 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 fs5.readFile(filePath, "utf8");
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(path9.relative(workspaceRoot, filePath));
104598
+ hookExampleFiles.push(path10.relative(workspaceRoot, filePath));
104260
104599
  }
104261
104600
  if (identifierExampleFiles.length < 5 && identifierMatches?.length) {
104262
- identifierExampleFiles.push(path9.relative(workspaceRoot, filePath));
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 path10 from "node:path";
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 = { filesScanned: 0, filesExamined: [], candidates: [] };
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 --write",
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 --write --prune",
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 --write",
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 --write --prune",
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 --write --validate-interpolations",
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 --write --yes",
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 --write --seed-target-locales",
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)} --write`,
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 = path10.resolve(workspaceRoot, config.localesDir ?? "locales");
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 path11 from "path";
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 = path11.resolve(this.workspaceRoot, config.localesDir ?? "locales");
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 fs6 from "fs/promises";
104823
- import path12 from "path";
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 = path12.join(workspaceRoot, ".gitignore");
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 fs6.access(path12.join(workspaceRoot, ".git"));
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 fs6.readFile(gitignorePath, "utf8");
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 fs6.writeFile(gitignorePath, newContent, "utf8");
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 fs7 from "fs/promises";
104875
- import path13 from "path";
105220
+ import fs8 from "fs/promises";
105221
+ import path14 from "path";
104876
105222
  function resolvePath(targetPath, workspaceRoot) {
104877
- return path13.isAbsolute(targetPath) ? targetPath : path13.join(workspaceRoot, targetPath);
105223
+ return path14.isAbsolute(targetPath) ? targetPath : path14.join(workspaceRoot, targetPath);
104878
105224
  }
104879
105225
  async function ensureDir(dirPath) {
104880
- await fs7.mkdir(dirPath, { recursive: true });
105226
+ await fs8.mkdir(dirPath, { recursive: true });
104881
105227
  }
104882
105228
  async function writeFileSafely(filePath, content, force, dryRun) {
104883
105229
  try {
104884
- await fs7.stat(filePath);
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 fs7.writeFile(filePath, content, "utf8");
105242
+ await fs8.writeFile(filePath, content, "utf8");
104897
105243
  return true;
104898
105244
  }
104899
105245
  function relativeImportPath(fromDir, targetPath, dropExtension = true) {
104900
- let relative2 = path13.relative(fromDir, targetPath).replace(/\\/g, "/");
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 = path13.dirname(absolutePath);
105259
+ const dir = path14.dirname(absolutePath);
104914
105260
  if (!options8.dryRun) {
104915
105261
  await ensureDir(dir);
104916
105262
  }
104917
- const localeFile = path13.join(workspaceRoot, localesDir, `${sourceLanguage}.json`);
104918
- let localeImportPath = path13.relative(dir, localeFile).replace(/\\/g, "/");
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(path13.dirname(absoluteI18nPath));
104970
- await ensureDir(path13.dirname(absoluteProviderPath));
105315
+ await ensureDir(path14.dirname(absoluteI18nPath));
105316
+ await ensureDir(path14.dirname(absoluteProviderPath));
104971
105317
  }
104972
- const localeFile = path13.join(workspaceRoot, localesDir, `${sourceLanguage}.json`);
104973
- let localeImportPath = path13.relative(path13.dirname(absoluteI18nPath), localeFile).replace(/\\/g, "/");
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(path13.dirname(absoluteProviderPath), absoluteI18nPath, true);
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 fs8 } from "fs";
105072
- import path14 from "path";
105417
+ import { promises as fs9 } from "fs";
105418
+ import path15 from "path";
105073
105419
  async function readPackageJson(cwd) {
105074
- const pkgPath = path14.join(cwd ?? process.cwd(), "package.json");
105420
+ const pkgPath = path15.join(cwd ?? process.cwd(), "package.json");
105075
105421
  try {
105076
- const content = await fs8.readFile(pkgPath, "utf8");
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 = path15.join(workspaceRoot, "i18n.config.json");
105465
+ const configPath = path16.join(workspaceRoot, "i18n.config.json");
105120
105466
  try {
105121
- await fs9.access(configPath);
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 fs9.writeFile(configPath, JSON.stringify(config, null, 2));
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 = path15.join(workspaceRoot, "i18n.config.json");
105737
+ const configPath = path16.join(workspaceRoot, "i18n.config.json");
105392
105738
  try {
105393
- await fs9.writeFile(configPath, JSON.stringify(config, null, 2));
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 fs10 from "fs/promises";
105514
- import path16 from "path";
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(path16.join(workspaceRoot, "pnpm-lock.yaml"))) {
105863
+ if (await fileExists(path17.join(workspaceRoot, "pnpm-lock.yaml"))) {
105518
105864
  return "pnpm";
105519
105865
  }
105520
- if (await fileExists(path16.join(workspaceRoot, "yarn.lock"))) {
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 fs10.access(target);
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 path17 from "path";
105553
- import { promises as fs11 } from "fs";
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 = path17.resolve(providerComponentPath);
105960
+ const providerAbsolute = path18.resolve(providerComponentPath);
105615
105961
  for (const candidate of candidates) {
105616
- const absoluteCandidate = path17.resolve(workspaceRoot, candidate);
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 fs11.readFile(candidateAbsolutePath, "utf8");
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(path17.dirname(candidateAbsolutePath), providerAbsolutePath);
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 fs11.writeFile(candidateAbsolutePath, updatedContents, "utf8");
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 fs11.access(target);
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 = path17.relative(fromDir, targetAbsolute).replace(/\\/g, "/");
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 fs12 from "fs/promises";
105998
- import path18 from "path";
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 = path18.resolve(process.cwd(), options8.report);
106003
- await fs12.mkdir(path18.dirname(outputPath), { recursive: true });
106004
- await fs12.writeFile(outputPath, JSON.stringify(summary, null, 2));
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 fs13 from "fs/promises";
106087
- import path19 from "path";
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 = path19.resolve(process.cwd(), exportPath);
106171
- await fs13.mkdir(path19.dirname(resolvedPath), { recursive: true });
106172
- await fs13.writeFile(resolvedPath, csvContent, "utf8");
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 = path19.resolve(process.cwd(), importPath);
106540
+ const resolvedPath = path20.resolve(process.cwd(), importPath);
106194
106541
  let csvContent;
106195
106542
  try {
106196
- csvContent = await fs13.readFile(resolvedPath, "utf8");
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 = path19.resolve(process.cwd(), options8.report);
106317
- await fs13.mkdir(path19.dirname(outputPath), { recursive: true });
106318
- await fs13.writeFile(outputPath, JSON.stringify(report, null, 2));
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 collectLocales(value, previous) {
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", collectLocales, []).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").action(async (options8) => {
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
- console.log(
106500
- chalk6.blue(options8.write ? "Translating locale files..." : "Planning translations (dry-run)...")
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 fs14 from "fs/promises";
106592
- import path20 from "path";
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 = path20.isAbsolute(configPath) ? configPath : path20.resolve(cwd, configPath);
107099
+ const absolutePath = path23.isAbsolute(configPath) ? configPath : path23.resolve(cwd, configPath);
106647
107100
  try {
106648
- await fs14.access(absolutePath);
107101
+ await fs16.access(absolutePath);
106649
107102
  return {
106650
107103
  name: "Config File",
106651
107104
  status: "pass",
106652
- message: `Found config at ${path20.relative(cwd, absolutePath) || configPath}`
107105
+ message: `Found config at ${path23.relative(cwd, absolutePath) || configPath}`
106653
107106
  };
106654
107107
  } catch {
106655
107108
  let searchDir = cwd;
106656
- let parentDir = path20.dirname(searchDir);
107109
+ let parentDir = path23.dirname(searchDir);
106657
107110
  let found = false;
106658
107111
  let foundPath = "";
106659
107112
  while (searchDir !== parentDir) {
106660
- const testPath = path20.join(searchDir, "i18n.config.json");
107113
+ const testPath = path23.join(searchDir, "i18n.config.json");
106661
107114
  try {
106662
- await fs14.access(testPath);
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 = path20.dirname(searchDir);
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 ${path20.relative(cwd, foundPath)} (not in current directory)`,
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) => path20.isAbsolute(p4) ? p4 : path20.join(projectRoot, 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 = path20.resolve(projectRoot, config.localesDir ?? "locales");
107172
+ const localesDir = path23.resolve(projectRoot, config.localesDir ?? "locales");
106720
107173
  try {
106721
- const stats = await fs14.stat(localesDir);
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 fs14.mkdir(localesDir, { recursive: true });
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 = path20.resolve(projectRoot, config.localesDir ?? "locales");
106761
- const sourceLocalePath = path20.join(localesDir, `${config.sourceLanguage}.json`);
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 fs14.readFile(sourceLocalePath, "utf8");
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 fs14.mkdir(localesDir, { recursive: true });
106776
- await fs14.writeFile(sourceLocalePath, "{}");
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 = path20.resolve(projectRoot, config.localesDir ?? "locales");
107311
+ const localesDir = path23.resolve(projectRoot, config.localesDir ?? "locales");
106859
107312
  try {
106860
- await fs14.access(localesDir);
106861
- const testFile = path20.join(localesDir, ".i18nsmith-permission-test");
107313
+ await fs16.access(localesDir);
107314
+ const testFile = path23.join(localesDir, ".i18nsmith-permission-test");
106862
107315
  try {
106863
- await fs14.writeFile(testFile, "");
106864
- await fs14.unlink(testFile);
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 = path20.dirname(localesDir);
107332
+ const parentDir = path23.dirname(localesDir);
106880
107333
  try {
106881
- const testFile = path20.join(parentDir, ".i18nsmith-permission-test");
106882
- await fs14.writeFile(testFile, "");
106883
- await fs14.unlink(testFile);
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 path21 from "path";
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: ${path21.relative(process.cwd(), configPath)}`));
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 fs15 from "fs/promises";
107138
- import path22 from "path";
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 = path22.relative(process.cwd(), entry.path);
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 = path22.resolve(process.cwd(), options8.report);
107320
- await fs15.mkdir(path22.dirname(outputPath), { recursive: true });
107321
- await fs15.writeFile(outputPath, JSON.stringify(report, null, 2));
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 fs16 from "fs/promises";
107345
- import path23 from "path";
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 = path23.resolve(process.cwd(), config.localesDir ?? "locales");
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 = path23.resolve(process.cwd(), options8.report);
107438
- await fs16.mkdir(path23.dirname(outputPath), { recursive: true });
107439
- await fs16.writeFile(outputPath, JSON.stringify({ results, totalIssues, totalQualityIssues }, null, 2));
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 fs18 from "fs/promises";
107499
- import path25 from "path";
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 fs17 from "fs/promises";
107504
- import path24 from "path";
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 = path24.isAbsolute(directory) ? directory : path24.resolve(process.cwd(), directory);
107524
- await fs17.mkdir(targetDir, { recursive: true });
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 = path24.join(targetDir, fileName);
107530
- return fs17.writeFile(filePath, `${entry.diff.trimEnd()}
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 ${path25.relative(cwd, configPath)}`));
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 = path25.resolve(process.cwd(), options8.report);
107631
- await fs18.mkdir(path25.dirname(outputPath), { recursive: true });
107632
- await fs18.writeFile(outputPath, JSON.stringify(summary, null, 2));
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 fs19 from "fs/promises";
107670
- import path26 from "path";
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 ${path26.relative(cwd, configPath)}`));
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 = path26.resolve(process.cwd(), options8.report);
107712
- await fs19.mkdir(path26.dirname(outputPath), { recursive: true });
107713
- await fs19.writeFile(outputPath, JSON.stringify(summary, null, 2));
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 fs30 from "fs/promises";
107755
- import path30 from "path";
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 fs29 from "fs";
107760
- import path29 from "path";
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 fs28 from "fs/promises";
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 fs28.readFile(filePath, "utf8");
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 fs28.writeFile(filePath, formatted, "utf8");
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 = path29.resolve(this.workspaceRoot, config.localesDir ?? "locales");
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 = path29.resolve(this.workspaceRoot, "package.json");
108091
- if (!fs29.existsSync(pkgPath)) {
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(fs29.readFileSync(pkgPath, "utf8"));
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: path29.resolve(this.workspaceRoot, candidate.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(absoluteModulePath, sourceFilePath) {
108226
- const absoluteModuleFullPath = path29.isAbsolute(absoluteModulePath) ? absoluteModulePath : path29.resolve(this.workspaceRoot, absoluteModulePath);
108227
- const sourceDir = path29.dirname(sourceFilePath);
108228
- const relativePath = path29.relative(sourceDir, absoluteModuleFullPath);
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
- console.log(
108279
- chalk14.blue(options8.write ? "Running transform (write mode)..." : "Planning transform (dry-run)...")
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 ${path30.relative(cwd, configPath)}`));
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: diffEnabled,
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 = path30.resolve(process.cwd(), options8.report);
108298
- await fs30.mkdir(path30.dirname(outputPath), { recursive: true });
108299
- await fs30.writeFile(outputPath, JSON.stringify(summary, null, 2));
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 fs31 } from "fs";
108338
- import path31 from "path";
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 diffRequested = diffEnabled || Boolean(options8.json);
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
- console.log(
108357
- chalk15.blue(
108358
- interactive ? "Interactive sync (dry-run first)..." : options8.write ? "Syncing locale files..." : "Checking locale drift..."
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 ${path31.relative(cwd, configPath)}`));
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 = path31.resolve(process.cwd(), options8.report);
108450
- await fs31.mkdir(path31.dirname(outputPath), { recursive: true });
108451
- await fs31.writeFile(outputPath, JSON.stringify(summary, null, 2));
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 = path31.resolve(process.cwd(), config.localesDir ?? "locales");
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 = path31.resolve(process.cwd(), options8.renameMapFile);
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 fs31.mkdir(path31.dirname(outputPath), { recursive: true });
108703
- await fs31.writeFile(outputPath, content, "utf8");
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 = path31.resolve(projectRoot, ".i18nsmith", "auto-rename-map.json");
108722
- await fs31.mkdir(path31.dirname(defaultMapPath), { recursive: true });
108723
- await fs31.writeFile(defaultMapPath, JSON.stringify(report.renameMapping, null, 2));
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 ${path31.relative(process.cwd(), defaultMapPath)} (set --rename-map-file to customize)`
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 = path31.resolve(process.cwd(), config.localesDir ?? "locales");
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 path33 from "node:path";
108967
- import { promises as fs33 } from "node:fs";
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
- console.log(chalk17.blue(options8.write ? "Renaming translation key..." : "Planning key rename (dry-run)..."));
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, { write: options8.write });
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 = path33.resolve(process.cwd(), options8.report);
108977
- await fs33.mkdir(path33.dirname(outputPath), { recursive: true });
108978
- await fs33.writeFile(outputPath, JSON.stringify(summary, null, 2));
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 = path33.resolve(process.cwd(), options8.report);
109006
- await fs33.mkdir(path33.dirname(outputPath), { recursive: true });
109007
- await fs33.writeFile(outputPath, JSON.stringify(summary, null, 2));
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 = path33.isAbsolute(mapPath) ? mapPath : path33.resolve(process.cwd(), mapPath);
109679
+ const resolvedPath = path35.isAbsolute(mapPath) ? mapPath : path35.resolve(process.cwd(), mapPath);
109110
109680
  let fileContents;
109111
109681
  try {
109112
- fileContents = await fs33.readFile(resolvedPath, "utf8");
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 fs34 from "fs/promises";
109153
- import path34 from "path";
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 = path34.join(root2, "package.json");
109158
- const pkgRaw = await fs34.readFile(pkgPath, "utf8");
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 = path34.join(root2, ".husky", file);
109174
- await fs34.mkdir(path34.dirname(hookPath), { recursive: true });
109175
- await fs34.writeFile(hookPath, content, "utf8");
109176
- console.log(`\u2714 Hook created: ${path34.relative(root2, hookPath)}`);
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 fs35 from "fs/promises";
109207
- import path35 from "path";
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 fs35.readFile(configPath, "utf-8");
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 fs35.writeFile(configPath, content, "utf-8");
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 = path35.dirname(configPath);
109335
- const relativePath = path35.isAbsolute(adapterPath) ? path35.relative(projectRoot, adapterPath) : adapterPath;
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