playlist-data-engine 1.7.2 → 1.7.3

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.
@@ -1,9 +1,9 @@
1
- import { d as nn, h as rn, l as Hi, n as on, o as ln, p as cn, q as un, s as dn, t as Bt, w as hn, u as pn, x as mn, y as gn, z as fn } from "./unifyBeatMap-k6vw_JPQ.js";
2
- import { A as Qp, C as em, E as tm, F as am, k as im, B as sm, j as nm, H as rm, I as om, J as lm, D as cm, K as um, L as dm, M as hm, N as pm, O as mm, Q as gm, T as fm, U as ym, V as vm, e as bm, W as wm, X as Sm, Y as _m, Z as km, _ as Am, $ as Tm, G as Cm, a0 as Im, a1 as Mm, a2 as Em, a3 as Dm, a4 as Rm, a5 as xm, a6 as Pm, a7 as $m, a8 as Nm, a9 as Om, aa as Bm, ab as Lm, ac as Fm, ad as Wm, ae as Hm, P as zm, af as qm, R as Um, ag as jm, ah as Gm, ai as Vm, S as Zm, aj as Ym, ak as Xm, al as Km, am as Jm, an as Qm, a as eg, ao as tg, ap as ag, aq as ig, ar as sg, as as ng, at as rg, au as og, av as lg, aw as cg, ax as ug, ay as dg, az as hg, aA as pg, aB as mg, aC as gg, aD as fg, aE as yg, aF as vg, aG as bg, aH as wg, aI as Sg, aJ as _g, aK as kg, aL as Ag, aM as Tg, aN as Cg, aO as Ig, aP as Mg, aQ as Eg, aR as Dg, aS as Rg, aT as xg, i as Pg, aU as $g, f as Ng, aV as Og, aW as Bg, aX as Lg, b as Fg, aY as Wg, m as Hg, aZ as zg, a_ as qg, a$ as Ug, b0 as jg, r as Gg, v as Vg, b1 as Zg, b2 as Yg, b3 as Xg, b4 as Kg, b5 as Jg, b6 as Qg } from "./unifyBeatMap-k6vw_JPQ.js";
1
+ import { d as an, h as sn, l as Fi, n as nn, o as rn, p as on, q as ln, s as cn, t as Bt, w as un, u as dn, x as hn, y as pn, z as mn } from "./unifyBeatMap-k6vw_JPQ.js";
2
+ import { A as Hp, C as zp, E as qp, F as Up, k as jp, B as Gp, j as Vp, H as Zp, I as Yp, J as Xp, D as Kp, K as Jp, L as Qp, M as em, N as tm, O as am, Q as im, T as sm, U as nm, V as rm, e as om, W as lm, X as cm, Y as um, Z as dm, _ as hm, $ as pm, G as mm, a0 as gm, a1 as fm, a2 as ym, a3 as vm, a4 as bm, a5 as wm, a6 as Sm, a7 as _m, a8 as km, a9 as Am, aa as Tm, ab as Cm, ac as Im, ad as Mm, ae as Em, P as Dm, af as Rm, R as xm, ag as Pm, ah as $m, ai as Nm, S as Om, aj as Bm, ak as Lm, al as Fm, am as Wm, an as Hm, a as zm, ao as qm, ap as Um, aq as jm, ar as Gm, as as Vm, at as Zm, au as Ym, av as Xm, aw as Km, ax as Jm, ay as Qm, az as eg, aA as tg, aB as ag, aC as ig, aD as sg, aE as ng, aF as rg, aG as og, aH as lg, aI as cg, aJ as ug, aK as dg, aL as hg, aM as pg, aN as mg, aO as gg, aP as fg, aQ as yg, aR as vg, aS as bg, aT as wg, i as Sg, aU as _g, f as kg, aV as Ag, aW as Tg, aX as Cg, b as Ig, aY as Mg, m as Eg, aZ as Dg, a_ as Rg, a$ as xg, b0 as Pg, r as $g, v as Ng, b1 as Og, b2 as Bg, b3 as Lg, b4 as Fg, b5 as Wg, b6 as Hg } from "./unifyBeatMap-k6vw_JPQ.js";
3
3
  import { a as wt, L as ye } from "./arweaveGatewayManager-DDSO5sLJ.js";
4
- import { A as tf, D as af, K as sf, b as nf, c as rf, d as of, g as lf, i as cf, p as uf } from "./arweaveGatewayManager-DDSO5sLJ.js";
5
- import { M as ge } from "./gateway-DyR4M-uH.js";
6
- import { D as hf, K as pf, e as mf, g as gf, a as ff, b as yf, c as vf, d as bf, f as wf, h as Sf, i as _f, j as kf, k as Af, l as Tf, m as Cf, n as If, r as Mf } from "./gateway-DyR4M-uH.js";
4
+ import { A as qg, D as Ug, K as jg, b as Gg, c as Vg, d as Zg, g as Yg, i as Xg, p as Kg } from "./arweaveGatewayManager-DDSO5sLJ.js";
5
+ import { M as ge, g as gn, r as fn } from "./gateway-C_p9Ku3O.js";
6
+ import { D as Qg, K as ef, e as tf, a as af, f as sf, b as nf, c as rf, d as of, h as lf, i as cf, j as uf, k as df, l as hf, m as pf, n as mf, o as gf, p as ff, q as yf, s as vf, t as bf, u as wf, v as Sf, w as _f, x as kf, y as Af, z as Tf } from "./gateway-C_p9Ku3O.js";
7
7
  const yn = {
8
8
  0: "",
9
9
  1: "I",
@@ -17,13 +17,13 @@ const yn = {
17
17
  9: "IX",
18
18
  10: "X"
19
19
  }, ot = 10, vn = 10, bn = 1e3, Ma = 1.5;
20
- function ph(s) {
20
+ function th(s) {
21
21
  return typeof s == "number" && Number.isInteger(s) && s >= 0 && s <= 10;
22
22
  }
23
23
  function wn(s) {
24
24
  return Math.max(0, Math.min(10, Math.floor(s)));
25
25
  }
26
- function mh(s) {
26
+ function ah(s) {
27
27
  return typeof s == "string" && ["normal", "aggressive"].includes(s);
28
28
  }
29
29
  const et = {
@@ -2574,8 +2574,8 @@ class _e {
2574
2574
  * Generate a random float between 0.0 and 1.0
2575
2575
  */
2576
2576
  random() {
2577
- const e = nn(this.seed, this.counter.toString());
2578
- return this.counter++, rn(e);
2577
+ const e = an(this.seed, this.counter.toString());
2578
+ return this.counter++, sn(e);
2579
2579
  }
2580
2580
  /**
2581
2581
  * Generate a random integer between min (inclusive) and max (exclusive)
@@ -2696,7 +2696,7 @@ const An = {
2696
2696
  13: 1,
2697
2697
  14: 1,
2698
2698
  15: 1
2699
- }, gh = {
2699
+ }, ih = {
2700
2700
  /** Default tuning factor (no adjustment) */
2701
2701
  DEFAULT: 1,
2702
2702
  /** 10% easier encounters */
@@ -2717,10 +2717,10 @@ function Tn(s, e) {
2717
2717
  function ca(s, e) {
2718
2718
  return s.reduce((t, a) => t + Tn(a, e), 0);
2719
2719
  }
2720
- function zi(s) {
2720
+ function Wi(s) {
2721
2721
  return Yt[s] || 0;
2722
2722
  }
2723
- function qi(s) {
2723
+ function Hi(s) {
2724
2724
  if (s <= 0) return 0;
2725
2725
  const e = Object.keys(Yt).map(Number).sort((n, r) => n - r);
2726
2726
  let t = 0, a = e.length - 1, i = 0;
@@ -2730,14 +2730,14 @@ function qi(s) {
2730
2730
  }
2731
2731
  return i;
2732
2732
  }
2733
- function fh(s, e = 1) {
2733
+ function sh(s, e = 1) {
2734
2734
  return Math.round(s * e);
2735
2735
  }
2736
2736
  function kt(s) {
2737
2737
  return s <= 0 ? 1 : s >= 15 ? Da[15] : Da[s] || 1;
2738
2738
  }
2739
- function yh(s, e) {
2740
- const t = s.reduce((i, n) => i + zi(n), 0), a = e !== void 0 ? e : kt(s.length);
2739
+ function nh(s, e) {
2740
+ const t = s.reduce((i, n) => i + Wi(n), 0), a = e !== void 0 ? e : kt(s.length);
2741
2741
  return Math.round(t * a);
2742
2742
  }
2743
2743
  function Cn(s) {
@@ -2745,7 +2745,7 @@ function Cn(s) {
2745
2745
  const e = s.reduce((t, a) => t + a, 0);
2746
2746
  return Math.floor(e / s.length);
2747
2747
  }
2748
- function vh(s) {
2748
+ function rh(s) {
2749
2749
  return typeof s == "string" && ["easy", "medium", "hard", "deadly"].includes(s);
2750
2750
  }
2751
2751
  class In {
@@ -3276,7 +3276,7 @@ class In {
3276
3276
  i = Math.ceil(e.history.length / Math.max(1, e.combatants.length));
3277
3277
  const n = t.filter((c) => c.isDefeated).reduce((c, u) => {
3278
3278
  const d = u.character.cr ?? u.character.level;
3279
- return c + zi(d);
3279
+ return c + Wi(d);
3280
3280
  }, 0), r = e.winner ? `${e.winner.character.name} won the combat!` : "Combat ended in a draw.";
3281
3281
  let o = 0, l = [];
3282
3282
  if (this.config.treasure) {
@@ -5555,16 +5555,16 @@ const xn = [
5555
5555
  ...On,
5556
5556
  ...Bn
5557
5557
  ];
5558
- function bh(s) {
5558
+ function oh(s) {
5559
5559
  return tt.find((e) => e.id === s);
5560
5560
  }
5561
- function wh(s) {
5561
+ function lh(s) {
5562
5562
  return tt.filter((e) => e.category === s);
5563
5563
  }
5564
- function Sh(s) {
5564
+ function ch(s) {
5565
5565
  return tt.filter((e) => e.archetype === s);
5566
5566
  }
5567
- const Ui = {
5567
+ const zi = {
5568
5568
  common: {
5569
5569
  statMultiplier: 1,
5570
5570
  hpMultiplier: 1,
@@ -5595,15 +5595,15 @@ const Ui = {
5595
5595
  }
5596
5596
  };
5597
5597
  function We(s) {
5598
- return Ui[s];
5598
+ return zi[s];
5599
5599
  }
5600
- function _h(s) {
5601
- return `1d${Ui[s].signatureDieSize}`;
5600
+ function uh(s) {
5601
+ return `1d${zi[s].signatureDieSize}`;
5602
5602
  }
5603
5603
  function Fn() {
5604
5604
  return ["common", "uncommon", "elite", "boss"];
5605
5605
  }
5606
- function kh(s) {
5606
+ function dh(s) {
5607
5607
  const e = Fn(), t = e.indexOf(s);
5608
5608
  if (!(t === -1 || t === e.length - 1))
5609
5609
  return e[t + 1];
@@ -5659,14 +5659,14 @@ const at = ["STR", "DEX", "CON", "INT", "WIS", "CHA"];
5659
5659
  function De(s) {
5660
5660
  return at.includes(s);
5661
5661
  }
5662
- const ji = [
5662
+ const qi = [
5663
5663
  "http://",
5664
5664
  "https://",
5665
5665
  "/",
5666
5666
  "assets/"
5667
5667
  ];
5668
- function Gi(s) {
5669
- return typeof s != "string" || s.trim() === "" ? !1 : ji.some((e) => s.startsWith(e));
5668
+ function Ui(s) {
5669
+ return typeof s != "string" || s.trim() === "" ? !1 : qi.some((e) => s.startsWith(e));
5670
5670
  }
5671
5671
  function xa(s, e) {
5672
5672
  return s === void 0 ? { valid: !0, errors: [] } : typeof s != "string" ? {
@@ -5675,10 +5675,10 @@ function xa(s, e) {
5675
5675
  } : s.trim() === "" ? {
5676
5676
  valid: !1,
5677
5677
  errors: [`${e} cannot be an empty string`]
5678
- } : Gi(s) ? { valid: !0, errors: [] } : {
5678
+ } : Ui(s) ? { valid: !0, errors: [] } : {
5679
5679
  valid: !1,
5680
5680
  errors: [
5681
- `${e} must start with one of: ${ji.join(", ")} (got: "${s}")`
5681
+ `${e} must start with one of: ${qi.join(", ")} (got: "${s}")`
5682
5682
  ]
5683
5683
  };
5684
5684
  }
@@ -5978,16 +5978,16 @@ class Ge {
5978
5978
  return /^[a-z][a-z0-9_]*$/.test(e);
5979
5979
  }
5980
5980
  }
5981
- function Ah(s, e) {
5981
+ function hh(s, e) {
5982
5982
  return Ge.validateClassFeature(s, e);
5983
5983
  }
5984
- function Th(s, e) {
5984
+ function ph(s, e) {
5985
5985
  return Ge.validateRacialTrait(s, e);
5986
5986
  }
5987
- function Ch(s) {
5987
+ function mh(s) {
5988
5988
  return Ge.validateClassFeatures(s);
5989
5989
  }
5990
- function Ih(s) {
5990
+ function gh(s) {
5991
5991
  return Ge.validateRacialTraits(s);
5992
5992
  }
5993
5993
  function jn(s) {
@@ -6029,7 +6029,7 @@ function jn(s) {
6029
6029
  errors: e
6030
6030
  };
6031
6031
  }
6032
- function Vi(s, e) {
6032
+ function ji(s, e) {
6033
6033
  const t = [];
6034
6034
  if (!s)
6035
6035
  return { valid: !0, errors: [] };
@@ -6227,25 +6227,25 @@ class Se {
6227
6227
  * @returns Validation result with unmet prerequisites if any
6228
6228
  */
6229
6229
  static validateSkillPrerequisites(e, t) {
6230
- return Vi(e, t);
6230
+ return ji(e, t);
6231
6231
  }
6232
6232
  }
6233
- function Mh(s) {
6233
+ function fh(s) {
6234
6234
  return Se.validateSkill(s);
6235
6235
  }
6236
- function Eh(s) {
6236
+ function yh(s) {
6237
6237
  return Se.validateSkills(s);
6238
6238
  }
6239
- function Dh(s) {
6239
+ function vh(s) {
6240
6240
  return Se.validateSkillProficiency(s);
6241
6241
  }
6242
- function Rh(s) {
6242
+ function bh(s) {
6243
6243
  return Se.validateSkillProficiencies(s);
6244
6244
  }
6245
- function xh(s) {
6245
+ function wh(s) {
6246
6246
  return Se.validateSkillListDefinition(s);
6247
6247
  }
6248
- function Ph(s, e) {
6248
+ function Sh(s, e) {
6249
6249
  return Se.validateSkillPrerequisites(s, e);
6250
6250
  }
6251
6251
  const Lt = [
@@ -6333,7 +6333,7 @@ class Re {
6333
6333
  * @returns Validation result with unmet prerequisites if any
6334
6334
  */
6335
6335
  static validateSpellPrerequisites(e, t) {
6336
- return Vi(e, t);
6336
+ return ji(e, t);
6337
6337
  }
6338
6338
  /**
6339
6339
  * Check if a string is a valid ability score
@@ -6365,16 +6365,16 @@ class Re {
6365
6365
  return Ft.includes(e);
6366
6366
  }
6367
6367
  }
6368
- function $h(s) {
6368
+ function _h(s) {
6369
6369
  return Re.validateSpell(s);
6370
6370
  }
6371
- function Nh(s) {
6371
+ function kh(s) {
6372
6372
  return Re.validateSpells(s);
6373
6373
  }
6374
- function Oh(s) {
6374
+ function Ah(s) {
6375
6375
  return Re.validatePrerequisites(s);
6376
6376
  }
6377
- function Bh(s, e) {
6377
+ function Th(s, e) {
6378
6378
  return Re.validateSpellPrerequisites(s, e);
6379
6379
  }
6380
6380
  class he {
@@ -6563,7 +6563,7 @@ class he {
6563
6563
  return this.getAllSkills().filter((t) => t.prerequisites ? this.validatePrerequisites(t, e).valid : !0);
6564
6564
  }
6565
6565
  }
6566
- function Lh() {
6566
+ function Ch() {
6567
6567
  return he.getInstance();
6568
6568
  }
6569
6569
  const Xe = ["STR", "DEX", "CON", "INT", "WIS", "CHA"], Wa = ["weapon", "armor", "item", "box"], Ha = ["common", "uncommon", "rare", "very_rare", "legendary"], za = [
@@ -7298,7 +7298,7 @@ const Ie = {
7298
7298
  amplitude: 0.7,
7299
7299
  treble: 0.5
7300
7300
  }
7301
- }, Zi = {
7301
+ }, Gi = {
7302
7302
  // Cantrips (Level 0)
7303
7303
  "Acid Splash": { name: "Acid Splash", level: 0, school: "Evocation", casting_time: "1 action", range: "60 feet", components: ["V", "S"], duration: "Instantaneous", description: "Hurls a bubble of acid at a creature or point. On hit, deals acid damage to creatures in a small splash radius. Dexterity save for half damage." },
7304
7304
  "Fire Bolt": { name: "Fire Bolt", level: 0, school: "Evocation", casting_time: "1 action", range: "120 feet", components: ["V", "S"], duration: "Instantaneous", description: "Hurls a mote of fire at a creature or object. On hit, deals fire damage. One of the most reliable damaging cantrips for ranged combat." },
@@ -7617,7 +7617,7 @@ const Ie = {
7617
7617
  20: { 1: 4, 2: 4, 3: 4, 4: 4, 5: 4 }
7618
7618
  }
7619
7619
  };
7620
- function Yi(s) {
7620
+ function Vi(s) {
7621
7621
  if (s in Ie)
7622
7622
  return Ie[s];
7623
7623
  try {
@@ -7661,7 +7661,7 @@ const At = {
7661
7661
  18: 265e3,
7662
7662
  19: 305e3,
7663
7663
  20: 355e3
7664
- }, Xi = {
7664
+ }, Zi = {
7665
7665
  1: 2,
7666
7666
  2: 2,
7667
7667
  3: 2,
@@ -7808,7 +7808,7 @@ const At = {
7808
7808
  "Triumphant",
7809
7809
  "Immortal"
7810
7810
  ]
7811
- }, Fh = {
7811
+ }, Ih = {
7812
7812
  // STR-based
7813
7813
  athletics: "STR",
7814
7814
  // DEX-based
@@ -7843,7 +7843,7 @@ function Za(s) {
7843
7843
  } catch {
7844
7844
  }
7845
7845
  }
7846
- function Ki(s, e) {
7846
+ function Yi(s, e) {
7847
7847
  if (s in Va) {
7848
7848
  const t = Va[s];
7849
7849
  if (t && e in t)
@@ -7862,7 +7862,7 @@ function Ki(s, e) {
7862
7862
  } catch {
7863
7863
  }
7864
7864
  }
7865
- const Wh = 10, Xn = 50;
7865
+ const Mh = 10, Xn = 50;
7866
7866
  class Me {
7867
7867
  constructor() {
7868
7868
  this.allSpellsCache = null, this.levelCache = null, this.schoolCache = null, this.manager = R.getInstance();
@@ -7991,7 +7991,7 @@ class Me {
7991
7991
  * @returns Number of spell slots at this level, or 0 if not a spellcaster
7992
7992
  */
7993
7993
  getSpellSlotsForClass(e, t) {
7994
- const a = Ki(e, t);
7994
+ const a = Yi(e, t);
7995
7995
  return a ? Object.values(a).reduce((n, r) => n + r, 0) : 0;
7996
7996
  }
7997
7997
  /**
@@ -8078,7 +8078,7 @@ class Me {
8078
8078
  };
8079
8079
  }
8080
8080
  }
8081
- function Hh() {
8081
+ function Eh() {
8082
8082
  return Me.getInstance();
8083
8083
  }
8084
8084
  class R {
@@ -8856,7 +8856,7 @@ ${n.map((d) => ` - ${d}`).join(`
8856
8856
  * @private
8857
8857
  */
8858
8858
  validateImageField(e, t) {
8859
- return Gi(e) ? null : `${t}: ${e} (URLs must start with: http://, https://, /, or assets/)`;
8859
+ return Ui(e) ? null : `${t}: ${e} (URLs must start with: http://, https://, /, or assets/)`;
8860
8860
  }
8861
8861
  /**
8862
8862
  * Validate multiple image URLs and collect errors
@@ -8880,7 +8880,7 @@ ${n.map((d) => ` - ${d}`).join(`
8880
8880
  const Kn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
8881
8881
  __proto__: null,
8882
8882
  ExtensionManager: R
8883
- }, Symbol.toStringTag, { value: "Module" })), Ji = {
8883
+ }, Symbol.toStringTag, { value: "Module" })), Xi = {
8884
8884
  Human: {
8885
8885
  ability_bonuses: { STR: 1, DEX: 1, CON: 1, INT: 1, WIS: 1, CHA: 1 },
8886
8886
  speed: 30,
@@ -8941,12 +8941,12 @@ const Kn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
8941
8941
  traits: ["Darkvision", "Hellish Resistance", "Infernal Legacy"],
8942
8942
  description: "Tieflings are humanoids with infernal blood, often bearing horns, tails, and other fiendish features. Their ancestry grants them resistance to fire and innate magical abilities. Though often feared and distrusted due to their appearance, tieflings are as varied in morality and ambition as any other race, with many becoming powerful warlocks, sorcerers, or charismatic leaders."
8943
8943
  }
8944
- }, zh = Ji, Jn = Object.entries(Ji).map(([s, e]) => ({
8944
+ }, Dh = Xi, Jn = Object.entries(Xi).map(([s, e]) => ({
8945
8945
  race: s,
8946
8946
  ...e
8947
8947
  }));
8948
8948
  let Wt = null, Ht = null;
8949
- async function qh(s) {
8949
+ async function Rh(s) {
8950
8950
  try {
8951
8951
  Wt || (Ht || (Ht = Promise.resolve().then(() => Kn)), Wt = (await Ht).ExtensionManager);
8952
8952
  const t = Wt.getInstance().get("races.data");
@@ -9431,7 +9431,7 @@ class se {
9431
9431
  return e;
9432
9432
  }
9433
9433
  }
9434
- function Uh() {
9434
+ function xh() {
9435
9435
  return se.getInstance();
9436
9436
  }
9437
9437
  const Qn = {
@@ -11034,8 +11034,8 @@ const nr = {
11034
11034
  { minLevel: 20, die: "2d8" },
11035
11035
  { minLevel: 25, die: "2d10" },
11036
11036
  { minLevel: 30, die: "3d8" }
11037
- ], Qi = 0.2, lr = 0.2;
11038
- function es(s) {
11037
+ ], Ki = 0.2, lr = 0.2;
11038
+ function Ji(s) {
11039
11039
  switch (s) {
11040
11040
  case "brute":
11041
11041
  return "STR";
@@ -11046,14 +11046,14 @@ function es(s) {
11046
11046
  }
11047
11047
  }
11048
11048
  function Qa(s, e, t) {
11049
- const a = We(t), i = nr[t], n = Math.pow(e, i), r = ts(e);
11049
+ const a = We(t), i = nr[t], n = Math.pow(e, i), r = Qi(e);
11050
11050
  return Math.round(s * n * a.hpMultiplier * r);
11051
11051
  }
11052
- function ts(s) {
11052
+ function Qi(s) {
11053
11053
  return s >= 1 ? 1 : s <= 0 ? 0.5 : 0.5 + 0.5 * s;
11054
11054
  }
11055
11055
  function ft(s, e, t, a) {
11056
- const i = es(a), n = Math.floor(((s[i] ?? 10) - 10) / 2), r = Math.ceil(1 + (e - 1) / 4), o = cr(e), l = Math.floor(Qi * (e - 1)), c = n + l, u = Math.floor(rr * (e - 1)), d = r + n + u;
11056
+ const i = Ji(a), n = Math.floor(((s[i] ?? 10) - 10) / 2), r = Math.ceil(1 + (e - 1) / 4), o = cr(e), l = Math.floor(Ki * (e - 1)), c = n + l, u = Math.floor(rr * (e - 1)), d = r + n + u;
11057
11057
  return { damageDie: o, damageModifier: c, attackBonus: d };
11058
11058
  }
11059
11059
  function cr(s) {
@@ -11072,7 +11072,7 @@ function ei(s, e, t, a) {
11072
11072
  return n + i + r + o;
11073
11073
  }
11074
11074
  function ur(s, e, t) {
11075
- const a = es(t), i = Math.floor(((s[a] ?? 10) - 10) / 2), n = Math.floor(Qi * (e - 1));
11075
+ const a = Ji(t), i = Math.floor(((s[a] ?? 10) - 10) / 2), n = Math.floor(Ki * (e - 1));
11076
11076
  return i + n;
11077
11077
  }
11078
11078
  const T = class T {
@@ -11694,21 +11694,21 @@ const T = class T {
11694
11694
  rarity: r,
11695
11695
  seed: `${t}-equipment`
11696
11696
  });
11697
- let L, J;
11697
+ let F, Q;
11698
11698
  if (u?.attackLevel !== void 0) {
11699
11699
  const D = ft(m, u.attackLevel, r, h.archetype);
11700
- L = D.damageDie, J = D.damageModifier;
11700
+ F = D.damageDie, Q = D.damageModifier;
11701
11701
  } else {
11702
11702
  const D = ft(m, g, r, h.archetype);
11703
- L = D.damageDie, J = D.damageModifier;
11703
+ F = D.damageDie, Q = D.damageModifier;
11704
11704
  }
11705
11705
  const X = [];
11706
11706
  if ($.weapon) {
11707
11707
  const D = ze.getEquipmentName($.weapon.id), N = et[D];
11708
11708
  N && X.push({
11709
11709
  name: D,
11710
- damage: `${L} + ${J}`,
11711
- damage_dice: L,
11710
+ damage: `${F} + ${Q}`,
11711
+ damage_dice: F,
11712
11712
  damage_type: N.damage?.damageType || h.signatureAbility.damageType,
11713
11713
  type: h.signatureAbility.attackType,
11714
11714
  range: h.signatureAbility.range,
@@ -11718,8 +11718,8 @@ const T = class T {
11718
11718
  }
11719
11719
  X.length === 0 && X.push({
11720
11720
  name: h.signatureAbility.name,
11721
- damage: `${L} + ${J}`,
11722
- damage_dice: L,
11721
+ damage: `${F} + ${Q}`,
11722
+ damage_dice: F,
11723
11723
  damage_type: h.signatureAbility.damageType,
11724
11724
  type: h.signatureAbility.attackType,
11725
11725
  range: h.signatureAbility.range,
@@ -11739,8 +11739,8 @@ const T = class T {
11739
11739
  let K;
11740
11740
  if (u?.defenseLevel !== void 0 ? K = ei(m, u.defenseLevel, h.baseAC, $) : K = ei(m, g, h.baseAC, $), a !== void 0) {
11741
11741
  const D = h.archetype === "brute" ? "STR" : h.archetype === "archer" ? "DEX" : "CHA", N = T.estimateWeaponDPR(
11742
- L,
11743
- J,
11742
+ F,
11743
+ Q,
11744
11744
  b,
11745
11745
  f[D]
11746
11746
  ), be = T.getMinHPRatio(a), de = Math.ceil(N * be);
@@ -11895,7 +11895,7 @@ const T = class T {
11895
11895
  * @returns Stat multiplier
11896
11896
  */
11897
11897
  static getStatMultiplierForFractionalCR(e) {
11898
- return ts(e);
11898
+ return Qi(e);
11899
11899
  }
11900
11900
  /**
11901
11901
  * Get damage die notation for rarity
@@ -12011,10 +12011,10 @@ const T = class T {
12011
12011
  `Boss encounters must have count=1. Requested count=${i} with baseRarity='boss'. Boss enemies are designed for solo encounters against a party. Use a lower rarity (common/uncommon/elite) for multi-enemy encounters, or set count=1 for a boss encounter.`
12012
12012
  );
12013
12013
  const y = e.map((V) => V.level), b = ca(y, n), I = Math.round(b * l), C = kt(i), E = Math.round(I / C / i);
12014
- let x = qi(E);
12014
+ let x = Hi(E);
12015
12015
  const P = T.getSeededRNG(a), $ = P.random();
12016
12016
  $ < 0.25 ? x = Math.min(x * 1.5, 30) : $ > 0.75 && (x = Math.max(x * 0.67, 0.125));
12017
- const L = o ? T.getRarityDistribution(i, x) : Array(i).fill(r), J = T.selectTemplatesForMix(
12017
+ const F = o ? T.getRarityDistribution(i, x) : Array(i).fill(r), Q = T.selectTemplatesForMix(
12018
12018
  i,
12019
12019
  P,
12020
12020
  h,
@@ -12024,7 +12024,7 @@ const T = class T {
12024
12024
  g
12025
12025
  ), X = [];
12026
12026
  for (let V = 0; V < i; V++) {
12027
- const oe = J[V];
12027
+ const oe = Q[V];
12028
12028
  if (!oe)
12029
12029
  throw new Error(`No template available for enemy at index ${V}`);
12030
12030
  const K = T.generate({
@@ -12032,7 +12032,7 @@ const T = class T {
12032
12032
  templateId: oe.id,
12033
12033
  cr: x,
12034
12034
  // Pass CR for proper level scaling (Task 1.4)
12035
- rarity: L[V],
12035
+ rarity: F[V],
12036
12036
  // Use distributed rarity (Task 2.3)
12037
12037
  difficultyMultiplier: l,
12038
12038
  audioProfile: g,
@@ -12119,7 +12119,7 @@ const T = class T {
12119
12119
  const $ = E[P];
12120
12120
  if (!$)
12121
12121
  throw new Error(`No template available for enemy at index ${P}`);
12122
- const L = T.generate({
12122
+ const F = T.generate({
12123
12123
  seed: `${t}-${P}`,
12124
12124
  templateId: $.id,
12125
12125
  cr: b,
@@ -12131,7 +12131,7 @@ const T = class T {
12131
12131
  track: g,
12132
12132
  ...f ? { statLevels: f } : {}
12133
12133
  });
12134
- x.push(L);
12134
+ x.push(F);
12135
12135
  }
12136
12136
  return m && !r && T.applyLeaderPromotion(x, C, n), x;
12137
12137
  }
@@ -12646,13 +12646,13 @@ function ti(s, e = 20) {
12646
12646
  percent: s.length > 0 ? o.count / s.length * 100 : 0
12647
12647
  }));
12648
12648
  }
12649
- const as = {
12649
+ const es = {
12650
12650
  easy: { min: 0.9, max: 1 },
12651
12651
  medium: { min: 0.7, max: 0.8 },
12652
12652
  hard: { min: 0.5, max: 0.6 },
12653
12653
  deadly: { min: 0.3, max: 0.4 }
12654
12654
  };
12655
- class jh {
12655
+ class Ph {
12656
12656
  /**
12657
12657
  * Validate an encounter by running simulations and analyzing results.
12658
12658
  *
@@ -12680,7 +12680,7 @@ class jh {
12680
12680
  * @returns Complete balance analysis report
12681
12681
  */
12682
12682
  analyze(e, t) {
12683
- const { summary: a } = e, i = a.playerWinRate, n = as[t], r = this.classifyDifficulty(i), o = this.calculateBalanceScore(i, n), l = this.classifyVariance(i, n), c = this.calculateConfidence(a.totalRuns), u = this.generateRecommendations(
12683
+ const { summary: a } = e, i = a.playerWinRate, n = es[t], r = this.classifyDifficulty(i), o = this.calculateBalanceScore(i, n), l = this.classifyVariance(i, n), c = this.calculateConfidence(a.totalRuns), u = this.generateRecommendations(
12684
12684
  i,
12685
12685
  n,
12686
12686
  r,
@@ -12824,7 +12824,7 @@ class jh {
12824
12824
  return o;
12825
12825
  }
12826
12826
  }
12827
- class Gh {
12827
+ class $h {
12828
12828
  /**
12829
12829
  * Run a parameter sweep.
12830
12830
  *
@@ -13036,7 +13036,7 @@ class Gh {
13036
13036
  };
13037
13037
  }
13038
13038
  }
13039
- class Vh {
13039
+ class Nh {
13040
13040
  /**
13041
13041
  * Compare two encounter configurations using identical-seed simulation.
13042
13042
  *
@@ -13288,13 +13288,13 @@ const ie = class ie {
13288
13288
  onProgress: h
13289
13289
  } = i, p = [];
13290
13290
  let g = 0;
13291
- const m = e.map((O) => O.level), f = ca(m, a), y = kt(u), b = f / y, I = qi(b);
13291
+ const m = e.map((O) => O.level), f = ca(m, a), y = kt(u), b = f / y, I = Hi(b);
13292
13292
  let C = ie.CR_FLOOR, E = ie.CR_CEILING, x = Math.max(C, Math.min(E, I));
13293
- const P = as[a];
13294
- let $ = !1, L = null, J = !1;
13293
+ const P = es[a];
13294
+ let $ = !1, F = null, Q = !1;
13295
13295
  for (let O = 0; O < c; O++) {
13296
13296
  if (d?.aborted) {
13297
- J = !0;
13297
+ Q = !0;
13298
13298
  break;
13299
13299
  }
13300
13300
  h?.(O + 1, c, x);
@@ -13319,7 +13319,7 @@ const ie = class ie {
13319
13319
  };
13320
13320
  p.push(N);
13321
13321
  const be = (P.min + P.max) / 2;
13322
- if ((!L || Math.abs(N.winRate - be) < Math.abs(L.winRate - be)) && (L = N), N.winRate >= P.min && N.winRate <= P.max) {
13322
+ if ((!F || Math.abs(N.winRate - be) < Math.abs(F.winRate - be)) && (F = N), N.winRate >= P.min && N.winRate <= P.max) {
13323
13323
  $ = !0;
13324
13324
  break;
13325
13325
  }
@@ -13331,14 +13331,14 @@ const ie = class ie {
13331
13331
  } else
13332
13332
  x = de;
13333
13333
  }
13334
- const X = L?.cr ?? x, V = this.generateEnemy(t, X, o), oe = this.calculateMarginOfError(L?.totalRuns ?? l), K = this.formatConfidenceInterval(
13335
- L?.winRate ?? 0,
13334
+ const X = F?.cr ?? x, V = this.generateEnemy(t, X, o), oe = this.calculateMarginOfError(F?.totalRuns ?? l), K = this.formatConfidenceInterval(
13335
+ F?.winRate ?? 0,
13336
13336
  oe
13337
13337
  );
13338
13338
  return {
13339
13339
  targetDifficulty: a,
13340
13340
  recommendedCR: this.roundCR(X),
13341
- winRate: L?.winRate ?? 0,
13341
+ winRate: F?.winRate ?? 0,
13342
13342
  expectedWinRateRange: P,
13343
13343
  confidenceInterval: K,
13344
13344
  marginOfError: oe,
@@ -13348,7 +13348,7 @@ const ie = class ie {
13348
13348
  probes: p,
13349
13349
  initialCREstimate: this.roundCR(I),
13350
13350
  suggestedEnemy: V,
13351
- wasCancelled: J
13351
+ wasCancelled: Q
13352
13352
  };
13353
13353
  }
13354
13354
  /**
@@ -13507,7 +13507,7 @@ function Jt(s) {
13507
13507
  maxMultiplier: s.maxMultiplier ?? Ee.maxMultiplier
13508
13508
  } : Ee;
13509
13509
  }
13510
- function Zh(s, e = Ee.combo.okBreaksCombo) {
13510
+ function Oh(s, e = Ee.combo.okBreaksCombo) {
13511
13511
  return s === "miss" || s === "wrongKey" ? !0 : s === "ok" ? e : !1;
13512
13512
  }
13513
13513
  function v(s, e, t) {
@@ -13549,16 +13549,16 @@ class je extends Error {
13549
13549
  super("Encountered Promise during synchronous parse. Use .parseAsync() instead.");
13550
13550
  }
13551
13551
  }
13552
- class is extends Error {
13552
+ class ts extends Error {
13553
13553
  constructor(e) {
13554
13554
  super(`Encountered unidirectional transform during encode: ${e}`), this.name = "ZodEncodeError";
13555
13555
  }
13556
13556
  }
13557
- const ss = {};
13557
+ const as = {};
13558
13558
  function xe(s) {
13559
- return ss;
13559
+ return as;
13560
13560
  }
13561
- function ns(s) {
13561
+ function is(s) {
13562
13562
  const e = Object.values(s).filter((a) => typeof a == "number");
13563
13563
  return Object.entries(s).filter(([a, i]) => e.indexOf(+a) === -1).map(([a, i]) => i);
13564
13564
  }
@@ -13593,7 +13593,7 @@ function fr(s, e) {
13593
13593
  return r % o / 10 ** n;
13594
13594
  }
13595
13595
  const ii = /* @__PURE__ */ Symbol("evaluating");
13596
- function B(s, e, t) {
13596
+ function L(s, e, t) {
13597
13597
  let a;
13598
13598
  Object.defineProperty(s, e, {
13599
13599
  get() {
@@ -13631,7 +13631,7 @@ function si(s) {
13631
13631
  function yr(s) {
13632
13632
  return s.toLowerCase().trim().replace(/[^\w\s-]/g, "").replace(/[\s_-]+/g, "-").replace(/^-+|-+$/g, "");
13633
13633
  }
13634
- const rs = "captureStackTrace" in Error ? Error.captureStackTrace : (...s) => {
13634
+ const ss = "captureStackTrace" in Error ? Error.captureStackTrace : (...s) => {
13635
13635
  };
13636
13636
  function Tt(s) {
13637
13637
  return typeof s == "object" && s !== null && !Array.isArray(s);
@@ -13655,7 +13655,7 @@ function Ve(s) {
13655
13655
  const t = e.prototype;
13656
13656
  return !(Tt(t) === !1 || Object.prototype.hasOwnProperty.call(t, "isPrototypeOf") === !1);
13657
13657
  }
13658
- function os(s) {
13658
+ function ns(s) {
13659
13659
  return Ve(s) ? { ...s } : Array.isArray(s) ? [...s] : s;
13660
13660
  }
13661
13661
  const br = /* @__PURE__ */ new Set(["string", "number", "symbol"]);
@@ -13857,7 +13857,7 @@ function st(...s) {
13857
13857
  inst: a
13858
13858
  } : { ...e };
13859
13859
  }
13860
- const ls = (s, e) => {
13860
+ const rs = (s, e) => {
13861
13861
  s.name = "$ZodError", Object.defineProperty(s, "_zod", {
13862
13862
  value: s._zod,
13863
13863
  enumerable: !1
@@ -13868,7 +13868,7 @@ const ls = (s, e) => {
13868
13868
  value: () => s.message,
13869
13869
  enumerable: !1
13870
13870
  });
13871
- }, cs = v("$ZodError", ls), us = v("$ZodError", ls, { Parent: Error });
13871
+ }, os = v("$ZodError", rs), ls = v("$ZodError", rs, { Parent: Error });
13872
13872
  function Er(s, e = (t) => t.message) {
13873
13873
  const t = {}, a = [];
13874
13874
  for (const i of s.issues)
@@ -13902,7 +13902,7 @@ const fa = (s) => (e, t, a, i) => {
13902
13902
  throw new je();
13903
13903
  if (r.issues.length) {
13904
13904
  const o = new (i?.Err ?? s)(r.issues.map((l) => Pe(l, n, xe())));
13905
- throw rs(o, i?.callee), o;
13905
+ throw ss(o, i?.callee), o;
13906
13906
  }
13907
13907
  return r.value;
13908
13908
  }, ya = (s) => async (e, t, a, i) => {
@@ -13910,7 +13910,7 @@ const fa = (s) => (e, t, a, i) => {
13910
13910
  let r = e._zod.run({ value: t, issues: [] }, n);
13911
13911
  if (r instanceof Promise && (r = await r), r.issues.length) {
13912
13912
  const o = new (i?.Err ?? s)(r.issues.map((l) => Pe(l, n, xe())));
13913
- throw rs(o, i?.callee), o;
13913
+ throw ss(o, i?.callee), o;
13914
13914
  }
13915
13915
  return r.value;
13916
13916
  }, $t = (s) => (e, t, a) => {
@@ -13919,16 +13919,16 @@ const fa = (s) => (e, t, a, i) => {
13919
13919
  throw new je();
13920
13920
  return n.issues.length ? {
13921
13921
  success: !1,
13922
- error: new (s ?? cs)(n.issues.map((r) => Pe(r, i, xe())))
13922
+ error: new (s ?? os)(n.issues.map((r) => Pe(r, i, xe())))
13923
13923
  } : { success: !0, data: n.value };
13924
- }, Rr = /* @__PURE__ */ $t(us), Nt = (s) => async (e, t, a) => {
13924
+ }, Rr = /* @__PURE__ */ $t(ls), Nt = (s) => async (e, t, a) => {
13925
13925
  const i = a ? Object.assign(a, { async: !0 }) : { async: !0 };
13926
13926
  let n = e._zod.run({ value: t, issues: [] }, i);
13927
13927
  return n instanceof Promise && (n = await n), n.issues.length ? {
13928
13928
  success: !1,
13929
13929
  error: new s(n.issues.map((r) => Pe(r, i, xe())))
13930
13930
  } : { success: !0, data: n.value };
13931
- }, xr = /* @__PURE__ */ Nt(us), Pr = (s) => (e, t, a) => {
13931
+ }, xr = /* @__PURE__ */ Nt(ls), Pr = (s) => (e, t, a) => {
13932
13932
  const i = a ? Object.assign(a, { direction: "backward" }) : { direction: "backward" };
13933
13933
  return fa(s)(e, t, i);
13934
13934
  }, $r = (s) => (e, t, a) => fa(s)(e, t, a), Nr = (s) => async (e, t, a) => {
@@ -13944,33 +13944,33 @@ const fa = (s) => (e, t, a, i) => {
13944
13944
  function Kr() {
13945
13945
  return new RegExp(Xr, "u");
13946
13946
  }
13947
- const Jr = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/, Qr = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/, eo = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/, to = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/, ao = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/, ds = /^[A-Za-z0-9_-]*$/, io = /^\+[1-9]\d{6,14}$/, hs = "(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))", so = /* @__PURE__ */ new RegExp(`^${hs}$`);
13948
- function ps(s) {
13947
+ const Jr = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/, Qr = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/, eo = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/, to = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/, ao = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/, cs = /^[A-Za-z0-9_-]*$/, io = /^\+[1-9]\d{6,14}$/, us = "(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))", so = /* @__PURE__ */ new RegExp(`^${us}$`);
13948
+ function ds(s) {
13949
13949
  const e = "(?:[01]\\d|2[0-3]):[0-5]\\d";
13950
13950
  return typeof s.precision == "number" ? s.precision === -1 ? `${e}` : s.precision === 0 ? `${e}:[0-5]\\d` : `${e}:[0-5]\\d\\.\\d{${s.precision}}` : `${e}(?::[0-5]\\d(?:\\.\\d+)?)?`;
13951
13951
  }
13952
13952
  function no(s) {
13953
- return new RegExp(`^${ps(s)}$`);
13953
+ return new RegExp(`^${ds(s)}$`);
13954
13954
  }
13955
13955
  function ro(s) {
13956
- const e = ps({ precision: s.precision }), t = ["Z"];
13956
+ const e = ds({ precision: s.precision }), t = ["Z"];
13957
13957
  s.local && t.push(""), s.offset && t.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");
13958
13958
  const a = `${e}(?:${t.join("|")})`;
13959
- return new RegExp(`^${hs}T(?:${a})$`);
13959
+ return new RegExp(`^${us}T(?:${a})$`);
13960
13960
  }
13961
13961
  const oo = (s) => {
13962
13962
  const e = s ? `[\\s\\S]{${s?.minimum ?? 0},${s?.maximum ?? ""}}` : "[\\s\\S]*";
13963
13963
  return new RegExp(`^${e}$`);
13964
- }, lo = /^-?\d+$/, ms = /^-?\d+(?:\.\d+)?$/, co = /^(?:true|false)$/i, uo = /^[^A-Z]*$/, ho = /^[^a-z]*$/, ue = /* @__PURE__ */ v("$ZodCheck", (s, e) => {
13964
+ }, lo = /^-?\d+$/, hs = /^-?\d+(?:\.\d+)?$/, co = /^(?:true|false)$/i, uo = /^[^A-Z]*$/, ho = /^[^a-z]*$/, ue = /* @__PURE__ */ v("$ZodCheck", (s, e) => {
13965
13965
  var t;
13966
13966
  s._zod ?? (s._zod = {}), s._zod.def = e, (t = s._zod).onattach ?? (t.onattach = []);
13967
- }), gs = {
13967
+ }), ps = {
13968
13968
  number: "number",
13969
13969
  bigint: "bigint",
13970
13970
  object: "date"
13971
- }, fs = /* @__PURE__ */ v("$ZodCheckLessThan", (s, e) => {
13971
+ }, ms = /* @__PURE__ */ v("$ZodCheckLessThan", (s, e) => {
13972
13972
  ue.init(s, e);
13973
- const t = gs[typeof e.value];
13973
+ const t = ps[typeof e.value];
13974
13974
  s._zod.onattach.push((a) => {
13975
13975
  const i = a._zod.bag, n = (e.inclusive ? i.maximum : i.exclusiveMaximum) ?? Number.POSITIVE_INFINITY;
13976
13976
  e.value < n && (e.inclusive ? i.maximum = e.value : i.exclusiveMaximum = e.value);
@@ -13985,9 +13985,9 @@ const oo = (s) => {
13985
13985
  continue: !e.abort
13986
13986
  });
13987
13987
  };
13988
- }), ys = /* @__PURE__ */ v("$ZodCheckGreaterThan", (s, e) => {
13988
+ }), gs = /* @__PURE__ */ v("$ZodCheckGreaterThan", (s, e) => {
13989
13989
  ue.init(s, e);
13990
- const t = gs[typeof e.value];
13990
+ const t = ps[typeof e.value];
13991
13991
  s._zod.onattach.push((a) => {
13992
13992
  const i = a._zod.bag, n = (e.inclusive ? i.minimum : i.exclusiveMinimum) ?? Number.NEGATIVE_INFINITY;
13993
13993
  e.value > n && (e.inclusive ? i.minimum = e.value : i.exclusiveMinimum = e.value);
@@ -14326,7 +14326,7 @@ const Co = {
14326
14326
  return i(l, a, o);
14327
14327
  };
14328
14328
  }
14329
- B(s, "~standard", () => ({
14329
+ L(s, "~standard", () => ({
14330
14330
  validate: (i) => {
14331
14331
  try {
14332
14332
  const n = Rr(s, i);
@@ -14474,7 +14474,7 @@ const Co = {
14474
14474
  }
14475
14475
  };
14476
14476
  });
14477
- function vs(s) {
14477
+ function fs(s) {
14478
14478
  if (s === "")
14479
14479
  return !0;
14480
14480
  if (s.length % 4 !== 0)
@@ -14487,7 +14487,7 @@ function vs(s) {
14487
14487
  }
14488
14488
  const Go = /* @__PURE__ */ v("$ZodBase64", (s, e) => {
14489
14489
  e.pattern ?? (e.pattern = ao), H.init(s, e), s._zod.bag.contentEncoding = "base64", s._zod.check = (t) => {
14490
- vs(t.value) || t.issues.push({
14490
+ fs(t.value) || t.issues.push({
14491
14491
  code: "invalid_format",
14492
14492
  format: "base64",
14493
14493
  input: t.value,
@@ -14497,13 +14497,13 @@ const Go = /* @__PURE__ */ v("$ZodBase64", (s, e) => {
14497
14497
  };
14498
14498
  });
14499
14499
  function Vo(s) {
14500
- if (!ds.test(s))
14500
+ if (!cs.test(s))
14501
14501
  return !1;
14502
14502
  const e = s.replace(/[-_]/g, (a) => a === "-" ? "+" : "/"), t = e.padEnd(Math.ceil(e.length / 4) * 4, "=");
14503
- return vs(t);
14503
+ return fs(t);
14504
14504
  }
14505
14505
  const Zo = /* @__PURE__ */ v("$ZodBase64URL", (s, e) => {
14506
- e.pattern ?? (e.pattern = ds), H.init(s, e), s._zod.bag.contentEncoding = "base64url", s._zod.check = (t) => {
14506
+ e.pattern ?? (e.pattern = cs), H.init(s, e), s._zod.bag.contentEncoding = "base64url", s._zod.check = (t) => {
14507
14507
  Vo(t.value) || t.issues.push({
14508
14508
  code: "invalid_format",
14509
14509
  format: "base64url",
@@ -14539,8 +14539,8 @@ const Ko = /* @__PURE__ */ v("$ZodJWT", (s, e) => {
14539
14539
  continue: !e.abort
14540
14540
  });
14541
14541
  };
14542
- }), bs = /* @__PURE__ */ v("$ZodNumber", (s, e) => {
14543
- U.init(s, e), s._zod.pattern = s._zod.bag.pattern ?? ms, s._zod.parse = (t, a) => {
14542
+ }), ys = /* @__PURE__ */ v("$ZodNumber", (s, e) => {
14543
+ U.init(s, e), s._zod.pattern = s._zod.bag.pattern ?? hs, s._zod.parse = (t, a) => {
14544
14544
  if (e.coerce)
14545
14545
  try {
14546
14546
  t.value = Number(t.value);
@@ -14559,7 +14559,7 @@ const Ko = /* @__PURE__ */ v("$ZodJWT", (s, e) => {
14559
14559
  }), t;
14560
14560
  };
14561
14561
  }), Jo = /* @__PURE__ */ v("$ZodNumberFormat", (s, e) => {
14562
- mo.init(s, e), bs.init(s, e);
14562
+ mo.init(s, e), ys.init(s, e);
14563
14563
  }), Qo = /* @__PURE__ */ v("$ZodBoolean", (s, e) => {
14564
14564
  U.init(s, e), s._zod.pattern = co, s._zod.parse = (t, a) => {
14565
14565
  if (e.coerce)
@@ -14618,7 +14618,7 @@ function Ct(s, e, t, a, i) {
14618
14618
  }
14619
14619
  s.value === void 0 ? t in a && (e.value[t] = void 0) : e.value[t] = s.value;
14620
14620
  }
14621
- function ws(s) {
14621
+ function vs(s) {
14622
14622
  const e = Object.keys(s.shape);
14623
14623
  for (const a of e)
14624
14624
  if (!s.shape?.[a]?._zod?.traits?.has("$ZodType"))
@@ -14632,7 +14632,7 @@ function ws(s) {
14632
14632
  optionalKeys: new Set(t)
14633
14633
  };
14634
14634
  }
14635
- function Ss(s, e, t, a, i, n) {
14635
+ function bs(s, e, t, a, i, n) {
14636
14636
  const r = [], o = i.keySet, l = i.catchall._zod, c = l.def.type, u = l.optout === "optional";
14637
14637
  for (const d in e) {
14638
14638
  if (o.has(d))
@@ -14663,8 +14663,8 @@ const il = /* @__PURE__ */ v("$ZodObject", (s, e) => {
14663
14663
  }
14664
14664
  });
14665
14665
  }
14666
- const a = ha(() => ws(e));
14667
- B(s._zod, "propValues", () => {
14666
+ const a = ha(() => vs(e));
14667
+ L(s._zod, "propValues", () => {
14668
14668
  const o = e.shape, l = {};
14669
14669
  for (const c in o) {
14670
14670
  const u = o[c]._zod;
@@ -14694,11 +14694,11 @@ const il = /* @__PURE__ */ v("$ZodObject", (s, e) => {
14694
14694
  const p = d[h], g = p._zod.optout === "optional", m = p._zod.run({ value: c[h], issues: [] }, l);
14695
14695
  m instanceof Promise ? u.push(m.then((f) => Ct(f, o, h, c, g))) : Ct(m, o, h, c, g);
14696
14696
  }
14697
- return n ? Ss(u, c, o, l, a.value, s) : u.length ? Promise.all(u).then(() => o) : o;
14697
+ return n ? bs(u, c, o, l, a.value, s) : u.length ? Promise.all(u).then(() => o) : o;
14698
14698
  };
14699
14699
  }), sl = /* @__PURE__ */ v("$ZodObjectJIT", (s, e) => {
14700
14700
  il.init(s, e);
14701
- const t = s._zod.parse, a = ha(() => ws(e)), i = (h) => {
14701
+ const t = s._zod.parse, a = ha(() => vs(e)), i = (h) => {
14702
14702
  const p = new To(["shape", "payload", "ctx"]), g = a.value, m = (I) => {
14703
14703
  const C = si(I);
14704
14704
  return `shape[${C}]._zod.run({ value: input[${C}], issues: [] }, ctx)`;
@@ -14752,12 +14752,12 @@ const il = /* @__PURE__ */ v("$ZodObject", (s, e) => {
14752
14752
  return (I, C) => b(h, I, C);
14753
14753
  };
14754
14754
  let n;
14755
- const r = Tt, o = !ss.jitless, c = o && vr.value, u = e.catchall;
14755
+ const r = Tt, o = !as.jitless, c = o && vr.value, u = e.catchall;
14756
14756
  let d;
14757
14757
  s._zod.parse = (h, p) => {
14758
14758
  d ?? (d = a.value);
14759
14759
  const g = h.value;
14760
- return r(g) ? o && c && p?.async === !1 && p.jitless !== !0 ? (n || (n = i(e.shape)), h = n(h, p), u ? Ss([], g, h, p, d, s) : h) : t(h, p) : (h.issues.push({
14760
+ return r(g) ? o && c && p?.async === !1 && p.jitless !== !0 ? (n || (n = i(e.shape)), h = n(h, p), u ? bs([], g, h, p, d, s) : h) : t(h, p) : (h.issues.push({
14761
14761
  expected: "object",
14762
14762
  code: "invalid_type",
14763
14763
  input: g,
@@ -14778,10 +14778,10 @@ function oi(s, e, t, a) {
14778
14778
  }), e);
14779
14779
  }
14780
14780
  const nl = /* @__PURE__ */ v("$ZodUnion", (s, e) => {
14781
- U.init(s, e), B(s._zod, "optin", () => e.options.some((i) => i._zod.optin === "optional") ? "optional" : void 0), B(s._zod, "optout", () => e.options.some((i) => i._zod.optout === "optional") ? "optional" : void 0), B(s._zod, "values", () => {
14781
+ U.init(s, e), L(s._zod, "optin", () => e.options.some((i) => i._zod.optin === "optional") ? "optional" : void 0), L(s._zod, "optout", () => e.options.some((i) => i._zod.optout === "optional") ? "optional" : void 0), L(s._zod, "values", () => {
14782
14782
  if (e.options.every((i) => i._zod.values))
14783
14783
  return new Set(e.options.flatMap((i) => Array.from(i._zod.values)));
14784
- }), B(s._zod, "pattern", () => {
14784
+ }), L(s._zod, "pattern", () => {
14785
14785
  if (e.options.every((i) => i._zod.pattern)) {
14786
14786
  const i = e.options.map((n) => n._zod.pattern);
14787
14787
  return new RegExp(`^(${i.map((n) => ma(n.source)).join("|")})$`);
@@ -14912,7 +14912,7 @@ const ol = /* @__PURE__ */ v("$ZodRecord", (s, e) => {
14912
14912
  let l = e.keyType._zod.run({ value: o, issues: [] }, a);
14913
14913
  if (l instanceof Promise)
14914
14914
  throw new Error("Async schemas not supported in object keys currently");
14915
- if (typeof o == "string" && ms.test(o) && l.issues.length) {
14915
+ if (typeof o == "string" && hs.test(o) && l.issues.length) {
14916
14916
  const d = e.keyType._zod.run({ value: Number(o), issues: [] }, a);
14917
14917
  if (d instanceof Promise)
14918
14918
  throw new Error("Async schemas not supported in object keys currently");
@@ -14939,7 +14939,7 @@ const ol = /* @__PURE__ */ v("$ZodRecord", (s, e) => {
14939
14939
  };
14940
14940
  }), ll = /* @__PURE__ */ v("$ZodEnum", (s, e) => {
14941
14941
  U.init(s, e);
14942
- const t = ns(e.entries), a = new Set(t);
14942
+ const t = is(e.entries), a = new Set(t);
14943
14943
  s._zod.values = a, s._zod.pattern = new RegExp(`^(${t.filter((i) => br.has(typeof i)).map((i) => typeof i == "string" ? Pt(i) : i.toString()).join("|")})$`), s._zod.parse = (i, n) => {
14944
14944
  const r = i.value;
14945
14945
  return a.has(r) || i.issues.push({
@@ -14952,7 +14952,7 @@ const ol = /* @__PURE__ */ v("$ZodRecord", (s, e) => {
14952
14952
  }), cl = /* @__PURE__ */ v("$ZodTransform", (s, e) => {
14953
14953
  U.init(s, e), s._zod.parse = (t, a) => {
14954
14954
  if (a.direction === "backward")
14955
- throw new is(s.constructor.name);
14955
+ throw new ts(s.constructor.name);
14956
14956
  const i = e.transform(t.value, t);
14957
14957
  if (a.async)
14958
14958
  return (i instanceof Promise ? i : Promise.resolve(i)).then((r) => (t.value = r, t));
@@ -14964,8 +14964,8 @@ const ol = /* @__PURE__ */ v("$ZodRecord", (s, e) => {
14964
14964
  function ci(s, e) {
14965
14965
  return s.issues.length && e === void 0 ? { issues: [], value: void 0 } : s;
14966
14966
  }
14967
- const _s = /* @__PURE__ */ v("$ZodOptional", (s, e) => {
14968
- U.init(s, e), s._zod.optin = "optional", s._zod.optout = "optional", B(s._zod, "values", () => e.innerType._zod.values ? /* @__PURE__ */ new Set([...e.innerType._zod.values, void 0]) : void 0), B(s._zod, "pattern", () => {
14967
+ const ws = /* @__PURE__ */ v("$ZodOptional", (s, e) => {
14968
+ U.init(s, e), s._zod.optin = "optional", s._zod.optout = "optional", L(s._zod, "values", () => e.innerType._zod.values ? /* @__PURE__ */ new Set([...e.innerType._zod.values, void 0]) : void 0), L(s._zod, "pattern", () => {
14969
14969
  const t = e.innerType._zod.pattern;
14970
14970
  return t ? new RegExp(`^(${ma(t.source)})?$`) : void 0;
14971
14971
  }), s._zod.parse = (t, a) => {
@@ -14976,14 +14976,14 @@ const _s = /* @__PURE__ */ v("$ZodOptional", (s, e) => {
14976
14976
  return t.value === void 0 ? t : e.innerType._zod.run(t, a);
14977
14977
  };
14978
14978
  }), ul = /* @__PURE__ */ v("$ZodExactOptional", (s, e) => {
14979
- _s.init(s, e), B(s._zod, "values", () => e.innerType._zod.values), B(s._zod, "pattern", () => e.innerType._zod.pattern), s._zod.parse = (t, a) => e.innerType._zod.run(t, a);
14979
+ ws.init(s, e), L(s._zod, "values", () => e.innerType._zod.values), L(s._zod, "pattern", () => e.innerType._zod.pattern), s._zod.parse = (t, a) => e.innerType._zod.run(t, a);
14980
14980
  }), dl = /* @__PURE__ */ v("$ZodNullable", (s, e) => {
14981
- U.init(s, e), B(s._zod, "optin", () => e.innerType._zod.optin), B(s._zod, "optout", () => e.innerType._zod.optout), B(s._zod, "pattern", () => {
14981
+ U.init(s, e), L(s._zod, "optin", () => e.innerType._zod.optin), L(s._zod, "optout", () => e.innerType._zod.optout), L(s._zod, "pattern", () => {
14982
14982
  const t = e.innerType._zod.pattern;
14983
14983
  return t ? new RegExp(`^(${ma(t.source)}|null)$`) : void 0;
14984
- }), B(s._zod, "values", () => e.innerType._zod.values ? /* @__PURE__ */ new Set([...e.innerType._zod.values, null]) : void 0), s._zod.parse = (t, a) => t.value === null ? t : e.innerType._zod.run(t, a);
14984
+ }), L(s._zod, "values", () => e.innerType._zod.values ? /* @__PURE__ */ new Set([...e.innerType._zod.values, null]) : void 0), s._zod.parse = (t, a) => t.value === null ? t : e.innerType._zod.run(t, a);
14985
14985
  }), hl = /* @__PURE__ */ v("$ZodDefault", (s, e) => {
14986
- U.init(s, e), s._zod.optin = "optional", B(s._zod, "values", () => e.innerType._zod.values), s._zod.parse = (t, a) => {
14986
+ U.init(s, e), s._zod.optin = "optional", L(s._zod, "values", () => e.innerType._zod.values), s._zod.parse = (t, a) => {
14987
14987
  if (a.direction === "backward")
14988
14988
  return e.innerType._zod.run(t, a);
14989
14989
  if (t.value === void 0)
@@ -14996,9 +14996,9 @@ function ui(s, e) {
14996
14996
  return s.value === void 0 && (s.value = e.defaultValue), s;
14997
14997
  }
14998
14998
  const pl = /* @__PURE__ */ v("$ZodPrefault", (s, e) => {
14999
- U.init(s, e), s._zod.optin = "optional", B(s._zod, "values", () => e.innerType._zod.values), s._zod.parse = (t, a) => (a.direction === "backward" || t.value === void 0 && (t.value = e.defaultValue), e.innerType._zod.run(t, a));
14999
+ U.init(s, e), s._zod.optin = "optional", L(s._zod, "values", () => e.innerType._zod.values), s._zod.parse = (t, a) => (a.direction === "backward" || t.value === void 0 && (t.value = e.defaultValue), e.innerType._zod.run(t, a));
15000
15000
  }), ml = /* @__PURE__ */ v("$ZodNonOptional", (s, e) => {
15001
- U.init(s, e), B(s._zod, "values", () => {
15001
+ U.init(s, e), L(s._zod, "values", () => {
15002
15002
  const t = e.innerType._zod.values;
15003
15003
  return t ? new Set([...t].filter((a) => a !== void 0)) : void 0;
15004
15004
  }), s._zod.parse = (t, a) => {
@@ -15015,7 +15015,7 @@ function di(s, e) {
15015
15015
  }), s;
15016
15016
  }
15017
15017
  const gl = /* @__PURE__ */ v("$ZodCatch", (s, e) => {
15018
- U.init(s, e), B(s._zod, "optin", () => e.innerType._zod.optin), B(s._zod, "optout", () => e.innerType._zod.optout), B(s._zod, "values", () => e.innerType._zod.values), s._zod.parse = (t, a) => {
15018
+ U.init(s, e), L(s._zod, "optin", () => e.innerType._zod.optin), L(s._zod, "optout", () => e.innerType._zod.optout), L(s._zod, "values", () => e.innerType._zod.values), s._zod.parse = (t, a) => {
15019
15019
  if (a.direction === "backward")
15020
15020
  return e.innerType._zod.run(t, a);
15021
15021
  const i = e.innerType._zod.run(t, a);
@@ -15034,7 +15034,7 @@ const gl = /* @__PURE__ */ v("$ZodCatch", (s, e) => {
15034
15034
  }), t.issues = []), t);
15035
15035
  };
15036
15036
  }), fl = /* @__PURE__ */ v("$ZodPipe", (s, e) => {
15037
- U.init(s, e), B(s._zod, "values", () => e.in._zod.values), B(s._zod, "optin", () => e.in._zod.optin), B(s._zod, "optout", () => e.out._zod.optout), B(s._zod, "propValues", () => e.in._zod.propValues), s._zod.parse = (t, a) => {
15037
+ U.init(s, e), L(s._zod, "values", () => e.in._zod.values), L(s._zod, "optin", () => e.in._zod.optin), L(s._zod, "optout", () => e.out._zod.optout), L(s._zod, "propValues", () => e.in._zod.propValues), s._zod.parse = (t, a) => {
15038
15038
  if (a.direction === "backward") {
15039
15039
  const n = e.out._zod.run(t, a);
15040
15040
  return n instanceof Promise ? n.then((r) => vt(r, e.in, a)) : vt(n, e.in, a);
@@ -15047,7 +15047,7 @@ function vt(s, e, t) {
15047
15047
  return s.issues.length ? (s.aborted = !0, s) : e._zod.run({ value: s.value, issues: s.issues }, t);
15048
15048
  }
15049
15049
  const yl = /* @__PURE__ */ v("$ZodReadonly", (s, e) => {
15050
- U.init(s, e), B(s._zod, "propValues", () => e.innerType._zod.propValues), B(s._zod, "values", () => e.innerType._zod.values), B(s._zod, "optin", () => e.innerType?._zod?.optin), B(s._zod, "optout", () => e.innerType?._zod?.optout), s._zod.parse = (t, a) => {
15050
+ U.init(s, e), L(s._zod, "propValues", () => e.innerType._zod.propValues), L(s._zod, "values", () => e.innerType._zod.values), L(s._zod, "optin", () => e.innerType?._zod?.optin), L(s._zod, "optout", () => e.innerType?._zod?.optout), s._zod.parse = (t, a) => {
15051
15051
  if (a.direction === "backward")
15052
15052
  return e.innerType._zod.run(t, a);
15053
15053
  const i = e.innerType._zod.run(t, a);
@@ -15425,7 +15425,7 @@ function Kl(s, e) {
15425
15425
  }
15426
15426
  // @__NO_SIDE_EFFECTS__
15427
15427
  function fi(s, e) {
15428
- return new fs({
15428
+ return new ms({
15429
15429
  check: "less_than",
15430
15430
  ...M(e),
15431
15431
  value: s,
@@ -15434,7 +15434,7 @@ function fi(s, e) {
15434
15434
  }
15435
15435
  // @__NO_SIDE_EFFECTS__
15436
15436
  function zt(s, e) {
15437
- return new fs({
15437
+ return new ms({
15438
15438
  check: "less_than",
15439
15439
  ...M(e),
15440
15440
  value: s,
@@ -15443,7 +15443,7 @@ function zt(s, e) {
15443
15443
  }
15444
15444
  // @__NO_SIDE_EFFECTS__
15445
15445
  function yi(s, e) {
15446
- return new ys({
15446
+ return new gs({
15447
15447
  check: "greater_than",
15448
15448
  ...M(e),
15449
15449
  value: s,
@@ -15452,7 +15452,7 @@ function yi(s, e) {
15452
15452
  }
15453
15453
  // @__NO_SIDE_EFFECTS__
15454
15454
  function qt(s, e) {
15455
- return new ys({
15455
+ return new gs({
15456
15456
  check: "greater_than",
15457
15457
  ...M(e),
15458
15458
  value: s,
@@ -15468,7 +15468,7 @@ function vi(s, e) {
15468
15468
  });
15469
15469
  }
15470
15470
  // @__NO_SIDE_EFFECTS__
15471
- function ks(s, e) {
15471
+ function Ss(s, e) {
15472
15472
  return new go({
15473
15473
  check: "max_length",
15474
15474
  ...M(e),
@@ -15484,7 +15484,7 @@ function It(s, e) {
15484
15484
  });
15485
15485
  }
15486
15486
  // @__NO_SIDE_EFFECTS__
15487
- function As(s, e) {
15487
+ function _s(s, e) {
15488
15488
  return new yo({
15489
15489
  check: "length_equals",
15490
15490
  ...M(e),
@@ -15610,7 +15610,7 @@ function hc(s, e) {
15610
15610
  });
15611
15611
  return t._zod.check = s, t;
15612
15612
  }
15613
- function Ts(s) {
15613
+ function ks(s) {
15614
15614
  let e = s?.target ?? "draft-2020-12";
15615
15615
  return e === "draft-4" && (e = "draft-04"), e === "draft-7" && (e = "draft-07"), {
15616
15616
  processors: s.processors ?? {},
@@ -15657,7 +15657,7 @@ function Z(s, e, t = { path: [], schemaPath: [] }) {
15657
15657
  const l = e.metadataRegistry.get(s);
15658
15658
  return l && Object.assign(r.schema, l), e.io === "input" && ne(s) && (delete r.schema.examples, delete r.schema.default), e.io === "input" && r.schema._prefault && ((a = r.schema).default ?? (a.default = r.schema._prefault)), delete r.schema._prefault, e.seen.get(s).schema;
15659
15659
  }
15660
- function Cs(s, e) {
15660
+ function As(s, e) {
15661
15661
  const t = s.seen.get(e);
15662
15662
  if (!t)
15663
15663
  throw new Error("Unprocessed schema. This is a bug in Zod.");
@@ -15729,7 +15729,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15729
15729
  }
15730
15730
  }
15731
15731
  }
15732
- function Is(s, e) {
15732
+ function Ts(s, e) {
15733
15733
  const t = s.seen.get(e);
15734
15734
  if (!t)
15735
15735
  throw new Error("Unprocessed schema. This is a bug in Zod.");
@@ -15838,11 +15838,11 @@ function ne(s, e) {
15838
15838
  return !1;
15839
15839
  }
15840
15840
  const pc = (s, e = {}) => (t) => {
15841
- const a = Ts({ ...t, processors: e });
15842
- return Z(s, a), Cs(a, s), Is(a, s);
15841
+ const a = ks({ ...t, processors: e });
15842
+ return Z(s, a), As(a, s), Ts(a, s);
15843
15843
  }, Mt = (s, e, t = {}) => (a) => {
15844
- const { libraryOptions: i, target: n } = a ?? {}, r = Ts({ ...i ?? {}, target: n, io: e, processors: t });
15845
- return Z(s, r), Cs(r, s), Is(r, s);
15844
+ const { libraryOptions: i, target: n } = a ?? {}, r = ks({ ...i ?? {}, target: n, io: e, processors: t });
15845
+ return Z(s, r), As(r, s), Ts(r, s);
15846
15846
  }, mc = {
15847
15847
  guid: "uuid",
15848
15848
  url: "uri",
@@ -15872,7 +15872,7 @@ const pc = (s, e = {}) => (t) => {
15872
15872
  t.not = {};
15873
15873
  }, bc = (s, e, t, a) => {
15874
15874
  }, wc = (s, e, t, a) => {
15875
- const i = s._zod.def, n = ns(i.entries);
15875
+ const i = s._zod.def, n = is(i.entries);
15876
15876
  n.every((r) => typeof r == "number") && (t.type = "number"), n.every((r) => typeof r == "string") && (t.type = "string"), t.enum = n;
15877
15877
  }, Sc = (s, e, t, a) => {
15878
15878
  if (e.unrepresentable === "throw")
@@ -15983,7 +15983,7 @@ const pc = (s, e = {}) => (t) => {
15983
15983
  Z(i.innerType, e, a);
15984
15984
  const n = e.seen.get(s);
15985
15985
  n.ref = i.innerType, t.readOnly = !0;
15986
- }, Ms = (s, e, t, a) => {
15986
+ }, Cs = (s, e, t, a) => {
15987
15987
  const i = s._zod.def;
15988
15988
  Z(i.innerType, e, a);
15989
15989
  const n = e.seen.get(s);
@@ -16013,7 +16013,7 @@ function zc(s) {
16013
16013
  return /* @__PURE__ */ Gl(Hc, s);
16014
16014
  }
16015
16015
  const qc = (s, e) => {
16016
- cs.init(s, e), s.name = "ZodError", Object.defineProperties(s, {
16016
+ os.init(s, e), s.name = "ZodError", Object.defineProperties(s, {
16017
16017
  format: {
16018
16018
  value: (t) => Dr(s, t)
16019
16019
  // enumerable: false,
@@ -16055,7 +16055,7 @@ const qc = (s, e) => {
16055
16055
  ]
16056
16056
  }), {
16057
16057
  parent: !0
16058
- }), s.with = s.check, s.clone = (t, a) => Ne(s, t, a), s.brand = () => s, s.register = ((t, a) => (t.add(s, a), s)), s.parse = (t, a) => Uc(s, t, a, { callee: s.parse }), s.safeParse = (t, a) => Gc(s, t, a), s.parseAsync = async (t, a) => jc(s, t, a, { callee: s.parseAsync }), s.safeParseAsync = async (t, a) => Vc(s, t, a), s.spa = s.safeParseAsync, s.encode = (t, a) => Zc(s, t, a), s.decode = (t, a) => Yc(s, t, a), s.encodeAsync = async (t, a) => Xc(s, t, a), s.decodeAsync = async (t, a) => Kc(s, t, a), s.safeEncode = (t, a) => Jc(s, t, a), s.safeDecode = (t, a) => Qc(s, t, a), s.safeEncodeAsync = async (t, a) => eu(s, t, a), s.safeDecodeAsync = async (t, a) => tu(s, t, a), s.refine = (t, a) => s.check(Vu(t, a)), s.superRefine = (t) => s.check(Zu(t)), s.overwrite = (t) => s.check(/* @__PURE__ */ Ze(t)), s.optional = () => _i(s), s.exactOptional = () => $u(s), s.nullable = () => ki(s), s.nullish = () => _i(ki(s)), s.nonoptional = (t) => Wu(s, t), s.array = () => te(s), s.or = (t) => ba([s, t]), s.and = (t) => Eu(s, t), s.transform = (t) => Ai(s, xu(t)), s.default = (t) => Bu(s, t), s.prefault = (t) => Fu(s, t), s.catch = (t) => zu(s, t), s.pipe = (t) => Ai(s, t), s.readonly = () => ju(s), s.describe = (t) => {
16058
+ }), s.with = s.check, s.clone = (t, a) => Ne(s, t, a), s.brand = () => s, s.register = ((t, a) => (t.add(s, a), s)), s.parse = (t, a) => Uc(s, t, a, { callee: s.parse }), s.safeParse = (t, a) => Gc(s, t, a), s.parseAsync = async (t, a) => jc(s, t, a, { callee: s.parseAsync }), s.safeParseAsync = async (t, a) => Vc(s, t, a), s.spa = s.safeParseAsync, s.encode = (t, a) => Zc(s, t, a), s.decode = (t, a) => Yc(s, t, a), s.encodeAsync = async (t, a) => Xc(s, t, a), s.decodeAsync = async (t, a) => Kc(s, t, a), s.safeEncode = (t, a) => Jc(s, t, a), s.safeDecode = (t, a) => Qc(s, t, a), s.safeEncodeAsync = async (t, a) => eu(s, t, a), s.safeDecodeAsync = async (t, a) => tu(s, t, a), s.refine = (t, a) => s.check(Vu(t, a)), s.superRefine = (t) => s.check(Zu(t)), s.overwrite = (t) => s.check(/* @__PURE__ */ Ze(t)), s.optional = () => _i(s), s.exactOptional = () => $u(s), s.nullable = () => ki(s), s.nullish = () => _i(ki(s)), s.nonoptional = (t) => Wu(s, t), s.array = () => J(s), s.or = (t) => ba([s, t]), s.and = (t) => Eu(s, t), s.transform = (t) => Ai(s, xu(t)), s.default = (t) => Bu(s, t), s.prefault = (t) => Fu(s, t), s.catch = (t) => zu(s, t), s.pipe = (t) => Ai(s, t), s.readonly = () => ju(s), s.describe = (t) => {
16059
16059
  const a = s.clone();
16060
16060
  return Je.add(a, { description: t }), a;
16061
16061
  }, Object.defineProperty(s, "description", {
@@ -16068,18 +16068,18 @@ const qc = (s, e) => {
16068
16068
  return Je.get(s);
16069
16069
  const a = s.clone();
16070
16070
  return Je.add(a, t[0]), a;
16071
- }, s.isOptional = () => s.safeParse(void 0).success, s.isNullable = () => s.safeParse(null).success, s.apply = (t) => t(s), s)), Es = /* @__PURE__ */ v("_ZodString", (s, e) => {
16071
+ }, s.isOptional = () => s.safeParse(void 0).success, s.isNullable = () => s.safeParse(null).success, s.apply = (t) => t(s), s)), Is = /* @__PURE__ */ v("_ZodString", (s, e) => {
16072
16072
  va.init(s, e), j.init(s, e), s._zod.processJSONSchema = (a, i, n) => gc(s, a, i);
16073
16073
  const t = s._zod.bag;
16074
- s.format = t.format ?? null, s.minLength = t.minimum ?? null, s.maxLength = t.maximum ?? null, s.regex = (...a) => s.check(/* @__PURE__ */ Jl(...a)), s.includes = (...a) => s.check(/* @__PURE__ */ tc(...a)), s.startsWith = (...a) => s.check(/* @__PURE__ */ ac(...a)), s.endsWith = (...a) => s.check(/* @__PURE__ */ ic(...a)), s.min = (...a) => s.check(/* @__PURE__ */ It(...a)), s.max = (...a) => s.check(/* @__PURE__ */ ks(...a)), s.length = (...a) => s.check(/* @__PURE__ */ As(...a)), s.nonempty = (...a) => s.check(/* @__PURE__ */ It(1, ...a)), s.lowercase = (a) => s.check(/* @__PURE__ */ Ql(a)), s.uppercase = (a) => s.check(/* @__PURE__ */ ec(a)), s.trim = () => s.check(/* @__PURE__ */ nc()), s.normalize = (...a) => s.check(/* @__PURE__ */ sc(...a)), s.toLowerCase = () => s.check(/* @__PURE__ */ rc()), s.toUpperCase = () => s.check(/* @__PURE__ */ oc()), s.slugify = () => s.check(/* @__PURE__ */ lc());
16074
+ s.format = t.format ?? null, s.minLength = t.minimum ?? null, s.maxLength = t.maximum ?? null, s.regex = (...a) => s.check(/* @__PURE__ */ Jl(...a)), s.includes = (...a) => s.check(/* @__PURE__ */ tc(...a)), s.startsWith = (...a) => s.check(/* @__PURE__ */ ac(...a)), s.endsWith = (...a) => s.check(/* @__PURE__ */ ic(...a)), s.min = (...a) => s.check(/* @__PURE__ */ It(...a)), s.max = (...a) => s.check(/* @__PURE__ */ Ss(...a)), s.length = (...a) => s.check(/* @__PURE__ */ _s(...a)), s.nonempty = (...a) => s.check(/* @__PURE__ */ It(1, ...a)), s.lowercase = (a) => s.check(/* @__PURE__ */ Ql(a)), s.uppercase = (a) => s.check(/* @__PURE__ */ ec(a)), s.trim = () => s.check(/* @__PURE__ */ nc()), s.normalize = (...a) => s.check(/* @__PURE__ */ sc(...a)), s.toLowerCase = () => s.check(/* @__PURE__ */ rc()), s.toUpperCase = () => s.check(/* @__PURE__ */ oc()), s.slugify = () => s.check(/* @__PURE__ */ lc());
16075
16075
  }), au = /* @__PURE__ */ v("ZodString", (s, e) => {
16076
- va.init(s, e), Es.init(s, e), s.email = (t) => s.check(/* @__PURE__ */ _l(iu, t)), s.url = (t) => s.check(/* @__PURE__ */ Il(su, t)), s.jwt = (t) => s.check(/* @__PURE__ */ zl(bu, t)), s.emoji = (t) => s.check(/* @__PURE__ */ Ml(nu, t)), s.guid = (t) => s.check(/* @__PURE__ */ gi(bi, t)), s.uuid = (t) => s.check(/* @__PURE__ */ kl(bt, t)), s.uuidv4 = (t) => s.check(/* @__PURE__ */ Al(bt, t)), s.uuidv6 = (t) => s.check(/* @__PURE__ */ Tl(bt, t)), s.uuidv7 = (t) => s.check(/* @__PURE__ */ Cl(bt, t)), s.nanoid = (t) => s.check(/* @__PURE__ */ El(ru, t)), s.guid = (t) => s.check(/* @__PURE__ */ gi(bi, t)), s.cuid = (t) => s.check(/* @__PURE__ */ Dl(ou, t)), s.cuid2 = (t) => s.check(/* @__PURE__ */ Rl(lu, t)), s.ulid = (t) => s.check(/* @__PURE__ */ xl(cu, t)), s.base64 = (t) => s.check(/* @__PURE__ */ Fl(fu, t)), s.base64url = (t) => s.check(/* @__PURE__ */ Wl(yu, t)), s.xid = (t) => s.check(/* @__PURE__ */ Pl(uu, t)), s.ksuid = (t) => s.check(/* @__PURE__ */ $l(du, t)), s.ipv4 = (t) => s.check(/* @__PURE__ */ Nl(hu, t)), s.ipv6 = (t) => s.check(/* @__PURE__ */ Ol(pu, t)), s.cidrv4 = (t) => s.check(/* @__PURE__ */ Bl(mu, t)), s.cidrv6 = (t) => s.check(/* @__PURE__ */ Ll(gu, t)), s.e164 = (t) => s.check(/* @__PURE__ */ Hl(vu, t)), s.datetime = (t) => s.check(Oc(t)), s.date = (t) => s.check(Lc(t)), s.time = (t) => s.check(Wc(t)), s.duration = (t) => s.check(zc(t));
16076
+ va.init(s, e), Is.init(s, e), s.email = (t) => s.check(/* @__PURE__ */ _l(iu, t)), s.url = (t) => s.check(/* @__PURE__ */ Il(su, t)), s.jwt = (t) => s.check(/* @__PURE__ */ zl(bu, t)), s.emoji = (t) => s.check(/* @__PURE__ */ Ml(nu, t)), s.guid = (t) => s.check(/* @__PURE__ */ gi(bi, t)), s.uuid = (t) => s.check(/* @__PURE__ */ kl(bt, t)), s.uuidv4 = (t) => s.check(/* @__PURE__ */ Al(bt, t)), s.uuidv6 = (t) => s.check(/* @__PURE__ */ Tl(bt, t)), s.uuidv7 = (t) => s.check(/* @__PURE__ */ Cl(bt, t)), s.nanoid = (t) => s.check(/* @__PURE__ */ El(ru, t)), s.guid = (t) => s.check(/* @__PURE__ */ gi(bi, t)), s.cuid = (t) => s.check(/* @__PURE__ */ Dl(ou, t)), s.cuid2 = (t) => s.check(/* @__PURE__ */ Rl(lu, t)), s.ulid = (t) => s.check(/* @__PURE__ */ xl(cu, t)), s.base64 = (t) => s.check(/* @__PURE__ */ Fl(fu, t)), s.base64url = (t) => s.check(/* @__PURE__ */ Wl(yu, t)), s.xid = (t) => s.check(/* @__PURE__ */ Pl(uu, t)), s.ksuid = (t) => s.check(/* @__PURE__ */ $l(du, t)), s.ipv4 = (t) => s.check(/* @__PURE__ */ Nl(hu, t)), s.ipv6 = (t) => s.check(/* @__PURE__ */ Ol(pu, t)), s.cidrv4 = (t) => s.check(/* @__PURE__ */ Bl(mu, t)), s.cidrv6 = (t) => s.check(/* @__PURE__ */ Ll(gu, t)), s.e164 = (t) => s.check(/* @__PURE__ */ Hl(vu, t)), s.datetime = (t) => s.check(Oc(t)), s.date = (t) => s.check(Lc(t)), s.time = (t) => s.check(Wc(t)), s.duration = (t) => s.check(zc(t));
16077
16077
  });
16078
- function A(s) {
16078
+ function _(s) {
16079
16079
  return /* @__PURE__ */ Sl(au, s);
16080
16080
  }
16081
16081
  const q = /* @__PURE__ */ v("ZodStringFormat", (s, e) => {
16082
- H.init(s, e), Es.init(s, e);
16082
+ H.init(s, e), Is.init(s, e);
16083
16083
  }), iu = /* @__PURE__ */ v("ZodEmail", (s, e) => {
16084
16084
  Eo.init(s, e), q.init(s, e);
16085
16085
  }), bi = /* @__PURE__ */ v("ZodGUID", (s, e) => {
@@ -16118,16 +16118,16 @@ const q = /* @__PURE__ */ v("ZodStringFormat", (s, e) => {
16118
16118
  Yo.init(s, e), q.init(s, e);
16119
16119
  }), bu = /* @__PURE__ */ v("ZodJWT", (s, e) => {
16120
16120
  Ko.init(s, e), q.init(s, e);
16121
- }), Ds = /* @__PURE__ */ v("ZodNumber", (s, e) => {
16122
- bs.init(s, e), j.init(s, e), s._zod.processJSONSchema = (a, i, n) => fc(s, a, i), s.gt = (a, i) => s.check(/* @__PURE__ */ yi(a, i)), s.gte = (a, i) => s.check(/* @__PURE__ */ qt(a, i)), s.min = (a, i) => s.check(/* @__PURE__ */ qt(a, i)), s.lt = (a, i) => s.check(/* @__PURE__ */ fi(a, i)), s.lte = (a, i) => s.check(/* @__PURE__ */ zt(a, i)), s.max = (a, i) => s.check(/* @__PURE__ */ zt(a, i)), s.int = (a) => s.check(wi(a)), s.safe = (a) => s.check(wi(a)), s.positive = (a) => s.check(/* @__PURE__ */ yi(0, a)), s.nonnegative = (a) => s.check(/* @__PURE__ */ qt(0, a)), s.negative = (a) => s.check(/* @__PURE__ */ fi(0, a)), s.nonpositive = (a) => s.check(/* @__PURE__ */ zt(0, a)), s.multipleOf = (a, i) => s.check(/* @__PURE__ */ vi(a, i)), s.step = (a, i) => s.check(/* @__PURE__ */ vi(a, i)), s.finite = () => s;
16121
+ }), Ms = /* @__PURE__ */ v("ZodNumber", (s, e) => {
16122
+ ys.init(s, e), j.init(s, e), s._zod.processJSONSchema = (a, i, n) => fc(s, a, i), s.gt = (a, i) => s.check(/* @__PURE__ */ yi(a, i)), s.gte = (a, i) => s.check(/* @__PURE__ */ qt(a, i)), s.min = (a, i) => s.check(/* @__PURE__ */ qt(a, i)), s.lt = (a, i) => s.check(/* @__PURE__ */ fi(a, i)), s.lte = (a, i) => s.check(/* @__PURE__ */ zt(a, i)), s.max = (a, i) => s.check(/* @__PURE__ */ zt(a, i)), s.int = (a) => s.check(wi(a)), s.safe = (a) => s.check(wi(a)), s.positive = (a) => s.check(/* @__PURE__ */ yi(0, a)), s.nonnegative = (a) => s.check(/* @__PURE__ */ qt(0, a)), s.negative = (a) => s.check(/* @__PURE__ */ fi(0, a)), s.nonpositive = (a) => s.check(/* @__PURE__ */ zt(0, a)), s.multipleOf = (a, i) => s.check(/* @__PURE__ */ vi(a, i)), s.step = (a, i) => s.check(/* @__PURE__ */ vi(a, i)), s.finite = () => s;
16123
16123
  const t = s._zod.bag;
16124
16124
  s.minValue = Math.max(t.minimum ?? Number.NEGATIVE_INFINITY, t.exclusiveMinimum ?? Number.NEGATIVE_INFINITY) ?? null, s.maxValue = Math.min(t.maximum ?? Number.POSITIVE_INFINITY, t.exclusiveMaximum ?? Number.POSITIVE_INFINITY) ?? null, s.isInt = (t.format ?? "").includes("int") || Number.isSafeInteger(t.multipleOf ?? 0.5), s.isFinite = !0, s.format = t.format ?? null;
16125
16125
  });
16126
- function _(s) {
16127
- return /* @__PURE__ */ Vl(Ds, s);
16126
+ function k(s) {
16127
+ return /* @__PURE__ */ Vl(Ms, s);
16128
16128
  }
16129
16129
  const wu = /* @__PURE__ */ v("ZodNumberFormat", (s, e) => {
16130
- Jo.init(s, e), Ds.init(s, e);
16130
+ Jo.init(s, e), Ms.init(s, e);
16131
16131
  });
16132
16132
  function wi(s) {
16133
16133
  return /* @__PURE__ */ Zl(wu, s);
@@ -16151,15 +16151,15 @@ function Au(s) {
16151
16151
  return /* @__PURE__ */ Kl(ku, s);
16152
16152
  }
16153
16153
  const Tu = /* @__PURE__ */ v("ZodArray", (s, e) => {
16154
- al.init(s, e), j.init(s, e), s._zod.processJSONSchema = (t, a, i) => kc(s, t, a, i), s.element = e.element, s.min = (t, a) => s.check(/* @__PURE__ */ It(t, a)), s.nonempty = (t) => s.check(/* @__PURE__ */ It(1, t)), s.max = (t, a) => s.check(/* @__PURE__ */ ks(t, a)), s.length = (t, a) => s.check(/* @__PURE__ */ As(t, a)), s.unwrap = () => s.element;
16154
+ al.init(s, e), j.init(s, e), s._zod.processJSONSchema = (t, a, i) => kc(s, t, a, i), s.element = e.element, s.min = (t, a) => s.check(/* @__PURE__ */ It(t, a)), s.nonempty = (t) => s.check(/* @__PURE__ */ It(1, t)), s.max = (t, a) => s.check(/* @__PURE__ */ Ss(t, a)), s.length = (t, a) => s.check(/* @__PURE__ */ _s(t, a)), s.unwrap = () => s.element;
16155
16155
  });
16156
- function te(s, e) {
16156
+ function J(s, e) {
16157
16157
  return /* @__PURE__ */ cc(Tu, s, e);
16158
16158
  }
16159
16159
  const Cu = /* @__PURE__ */ v("ZodObject", (s, e) => {
16160
- sl.init(s, e), j.init(s, e), s._zod.processJSONSchema = (t, a, i) => Ac(s, t, a, i), B(s, "shape", () => e.shape), s.keyof = () => _t(Object.keys(s._zod.def.shape)), s.catchall = (t) => s.clone({ ...s._zod.def, catchall: t }), s.passthrough = () => s.clone({ ...s._zod.def, catchall: Si() }), s.loose = () => s.clone({ ...s._zod.def, catchall: Si() }), s.strict = () => s.clone({ ...s._zod.def, catchall: Au() }), s.strip = () => s.clone({ ...s._zod.def, catchall: void 0 }), s.extend = (t) => Ar(s, t), s.safeExtend = (t) => Tr(s, t), s.merge = (t) => Cr(s, t), s.pick = (t) => _r(s, t), s.omit = (t) => kr(s, t), s.partial = (...t) => Ir(Rs, s, t[0]), s.required = (...t) => Mr(xs, s, t[0]);
16160
+ sl.init(s, e), j.init(s, e), s._zod.processJSONSchema = (t, a, i) => Ac(s, t, a, i), L(s, "shape", () => e.shape), s.keyof = () => _t(Object.keys(s._zod.def.shape)), s.catchall = (t) => s.clone({ ...s._zod.def, catchall: t }), s.passthrough = () => s.clone({ ...s._zod.def, catchall: Si() }), s.loose = () => s.clone({ ...s._zod.def, catchall: Si() }), s.strict = () => s.clone({ ...s._zod.def, catchall: Au() }), s.strip = () => s.clone({ ...s._zod.def, catchall: void 0 }), s.extend = (t) => Ar(s, t), s.safeExtend = (t) => Tr(s, t), s.merge = (t) => Cr(s, t), s.pick = (t) => _r(s, t), s.omit = (t) => kr(s, t), s.partial = (...t) => Ir(Es, s, t[0]), s.required = (...t) => Mr(Ds, s, t[0]);
16161
16161
  });
16162
- function F(s, e) {
16162
+ function B(s, e) {
16163
16163
  const t = {
16164
16164
  type: "object",
16165
16165
  shape: s ?? {},
@@ -16240,7 +16240,7 @@ function _t(s, e) {
16240
16240
  const Ru = /* @__PURE__ */ v("ZodTransform", (s, e) => {
16241
16241
  cl.init(s, e), j.init(s, e), s._zod.processJSONSchema = (t, a, i) => _c(s, t), s._zod.parse = (t, a) => {
16242
16242
  if (a.direction === "backward")
16243
- throw new is(s.constructor.name);
16243
+ throw new ts(s.constructor.name);
16244
16244
  t.addIssue = (n) => {
16245
16245
  if (typeof n == "string")
16246
16246
  t.issues.push(st(n, t.value, e));
@@ -16259,17 +16259,17 @@ function xu(s) {
16259
16259
  transform: s
16260
16260
  });
16261
16261
  }
16262
- const Rs = /* @__PURE__ */ v("ZodOptional", (s, e) => {
16263
- _s.init(s, e), j.init(s, e), s._zod.processJSONSchema = (t, a, i) => Ms(s, t, a, i), s.unwrap = () => s._zod.def.innerType;
16262
+ const Es = /* @__PURE__ */ v("ZodOptional", (s, e) => {
16263
+ ws.init(s, e), j.init(s, e), s._zod.processJSONSchema = (t, a, i) => Cs(s, t, a, i), s.unwrap = () => s._zod.def.innerType;
16264
16264
  });
16265
16265
  function _i(s) {
16266
- return new Rs({
16266
+ return new Es({
16267
16267
  type: "optional",
16268
16268
  innerType: s
16269
16269
  });
16270
16270
  }
16271
16271
  const Pu = /* @__PURE__ */ v("ZodExactOptional", (s, e) => {
16272
- ul.init(s, e), j.init(s, e), s._zod.processJSONSchema = (t, a, i) => Ms(s, t, a, i), s.unwrap = () => s._zod.def.innerType;
16272
+ ul.init(s, e), j.init(s, e), s._zod.processJSONSchema = (t, a, i) => Cs(s, t, a, i), s.unwrap = () => s._zod.def.innerType;
16273
16273
  });
16274
16274
  function $u(s) {
16275
16275
  return new Pu({
@@ -16294,7 +16294,7 @@ function Bu(s, e) {
16294
16294
  type: "default",
16295
16295
  innerType: s,
16296
16296
  get defaultValue() {
16297
- return typeof e == "function" ? e() : os(e);
16297
+ return typeof e == "function" ? e() : ns(e);
16298
16298
  }
16299
16299
  });
16300
16300
  }
@@ -16306,15 +16306,15 @@ function Fu(s, e) {
16306
16306
  type: "prefault",
16307
16307
  innerType: s,
16308
16308
  get defaultValue() {
16309
- return typeof e == "function" ? e() : os(e);
16309
+ return typeof e == "function" ? e() : ns(e);
16310
16310
  }
16311
16311
  });
16312
16312
  }
16313
- const xs = /* @__PURE__ */ v("ZodNonOptional", (s, e) => {
16313
+ const Ds = /* @__PURE__ */ v("ZodNonOptional", (s, e) => {
16314
16314
  ml.init(s, e), j.init(s, e), s._zod.processJSONSchema = (t, a, i) => Ec(s, t, a, i), s.unwrap = () => s._zod.def.innerType;
16315
16315
  });
16316
16316
  function Wu(s, e) {
16317
- return new xs({
16317
+ return new Ds({
16318
16318
  type: "nonoptional",
16319
16319
  innerType: s,
16320
16320
  ...M(e)
@@ -16359,426 +16359,137 @@ function Vu(s, e = {}) {
16359
16359
  function Zu(s) {
16360
16360
  return /* @__PURE__ */ dc(s);
16361
16361
  }
16362
- const Yu = Ce.map((s) => s), Xu = F({
16363
- id: A(),
16364
- uuid: A(),
16365
- playlist_index: _().nonnegative(),
16366
- chain_name: A(),
16367
- token_address: A().optional(),
16368
- token_id: A().optional(),
16369
- tx_id: A().optional(),
16370
- platform: A(),
16371
- title: A(),
16372
- artist: A(),
16373
- description: A().optional(),
16374
- album: A().optional(),
16375
- image_url: A().url(),
16376
- image_thumb_url: A().url().optional(),
16377
- audio_url: A().url(),
16378
- audio_url_lossless: A().url().optional(),
16379
- duration: _().nonnegative(),
16380
- genre: A(),
16381
- tags: te(A()),
16382
- bpm: _().positive().optional(),
16383
- key: A().optional(),
16384
- attributes: St(A(), ba([A(), _()])).optional()
16362
+ const Yu = Ce.map((s) => s), Xu = B({
16363
+ id: _(),
16364
+ uuid: _(),
16365
+ playlist_index: k().nonnegative(),
16366
+ chain_name: _(),
16367
+ token_address: _().optional(),
16368
+ token_id: _().optional(),
16369
+ tx_id: _().optional(),
16370
+ platform: _(),
16371
+ title: _(),
16372
+ artist: _(),
16373
+ description: _().optional(),
16374
+ album: _().optional(),
16375
+ image_url: _().url(),
16376
+ image_thumb_url: _().url().optional(),
16377
+ audio_url: _().url(),
16378
+ audio_url_lossless: _().url().optional(),
16379
+ duration: k().nonnegative(),
16380
+ genre: _(),
16381
+ tags: J(_()),
16382
+ bpm: k().positive().optional(),
16383
+ key: _().optional(),
16384
+ attributes: St(_(), ba([_(), k()])).optional()
16385
16385
  }).refine(
16386
16386
  (s) => s.chain_name === "AR" ? !!s.tx_id : !!s.token_address && !!s.token_id,
16387
16387
  {
16388
16388
  message: "AR chain tracks must have tx_id; other chains must have token_address and token_id",
16389
16389
  path: ["chain_name"]
16390
16390
  }
16391
- ), Yh = F({
16392
- name: A(),
16393
- description: A().optional(),
16394
- image: A().url(),
16395
- creator: A(),
16396
- genre: A().optional(),
16397
- tags: te(A()).optional(),
16398
- tracks: te(Xu)
16399
- }), Xh = F({
16400
- bass_dominance: _().min(0).max(1),
16401
- mid_dominance: _().min(0).max(1),
16402
- treble_dominance: _().min(0).max(1),
16403
- average_amplitude: _().min(0).max(1),
16404
- spectral_centroid: _().optional(),
16405
- spectral_rolloff: _().optional(),
16406
- zero_crossing_rate: _().optional(),
16407
- color_palette: F({
16408
- colors: te(A()),
16409
- primary_color: A(),
16410
- secondary_color: A().optional(),
16411
- accent_color: A().optional(),
16412
- brightness: _().min(0).max(1),
16413
- saturation: _().min(0).max(1),
16391
+ ), Bh = B({
16392
+ name: _(),
16393
+ description: _().optional(),
16394
+ image: _().url(),
16395
+ creator: _(),
16396
+ genre: _().optional(),
16397
+ tags: J(_()).optional(),
16398
+ tracks: J(Xu)
16399
+ }), Lh = B({
16400
+ bass_dominance: k().min(0).max(1),
16401
+ mid_dominance: k().min(0).max(1),
16402
+ treble_dominance: k().min(0).max(1),
16403
+ average_amplitude: k().min(0).max(1),
16404
+ spectral_centroid: k().optional(),
16405
+ spectral_rolloff: k().optional(),
16406
+ zero_crossing_rate: k().optional(),
16407
+ color_palette: B({
16408
+ colors: J(_()),
16409
+ primary_color: _(),
16410
+ secondary_color: _().optional(),
16411
+ accent_color: _().optional(),
16412
+ brightness: k().min(0).max(1),
16413
+ saturation: k().min(0).max(1),
16414
16414
  is_monochrome: ta()
16415
16415
  }).optional(),
16416
- analysis_metadata: F({
16417
- duration_analyzed: _().positive(),
16416
+ analysis_metadata: B({
16417
+ duration_analyzed: k().positive(),
16418
16418
  full_buffer_analyzed: ta(),
16419
- sample_positions: te(_()),
16420
- analyzed_at: A()
16419
+ sample_positions: J(k()),
16420
+ analyzed_at: _()
16421
16421
  })
16422
- }), Ti = F({
16423
- STR: _().min(1).max(20),
16424
- DEX: _().min(1).max(20),
16425
- CON: _().min(1).max(20),
16426
- INT: _().min(1).max(20),
16427
- WIS: _().min(1).max(20),
16428
- CHA: _().min(1).max(20)
16429
- }), Kh = F({
16430
- name: A(),
16422
+ }), Ti = B({
16423
+ STR: k().min(1).max(20),
16424
+ DEX: k().min(1).max(20),
16425
+ CON: k().min(1).max(20),
16426
+ INT: k().min(1).max(20),
16427
+ WIS: k().min(1).max(20),
16428
+ CHA: k().min(1).max(20)
16429
+ }), Fh = B({
16430
+ name: _(),
16431
16431
  race: _t(["Human", "Elf", "Dwarf", "Halfling", "Dragonborn", "Gnome", "Half-Elf", "Half-Orc", "Tiefling"]),
16432
16432
  class: _t(Yu),
16433
- level: _().min(1).max(20),
16433
+ level: k().min(1).max(20),
16434
16434
  ability_scores: Ti,
16435
16435
  ability_modifiers: Ti,
16436
- proficiency_bonus: _().min(2).max(6),
16437
- hp: F({
16438
- current: _().nonnegative(),
16439
- max: _().positive(),
16440
- temp: _().nonnegative()
16436
+ proficiency_bonus: k().min(2).max(6),
16437
+ hp: B({
16438
+ current: k().nonnegative(),
16439
+ max: k().positive(),
16440
+ temp: k().nonnegative()
16441
16441
  }),
16442
- armor_class: _().positive(),
16443
- initiative: _(),
16444
- speed: _().positive(),
16445
- skills: St(A(), _t(["none", "proficient", "expertise"])),
16446
- saving_throws: St(A(), ta()),
16447
- racial_traits: te(A()),
16448
- class_features: te(A()),
16449
- spells: F({
16450
- spell_slots: St(A(), F({
16451
- total: _().nonnegative(),
16452
- used: _().nonnegative()
16442
+ armor_class: k().positive(),
16443
+ initiative: k(),
16444
+ speed: k().positive(),
16445
+ skills: St(_(), _t(["none", "proficient", "expertise"])),
16446
+ saving_throws: St(_(), ta()),
16447
+ racial_traits: J(_()),
16448
+ class_features: J(_()),
16449
+ spells: B({
16450
+ spell_slots: St(_(), B({
16451
+ total: k().nonnegative(),
16452
+ used: k().nonnegative()
16453
16453
  })),
16454
- known_spells: te(A()),
16455
- cantrips: te(A())
16454
+ known_spells: J(_()),
16455
+ cantrips: J(_())
16456
16456
  }).optional(),
16457
- equipment: F({
16458
- weapons: te(A()),
16459
- armor: te(A()),
16460
- items: te(A())
16457
+ equipment: B({
16458
+ weapons: J(_()),
16459
+ armor: J(_()),
16460
+ items: J(_())
16461
16461
  }).optional(),
16462
- appearance: F({
16463
- body_type: A(),
16464
- skin_tone: A(),
16465
- hair_style: A(),
16466
- hair_color: A(),
16467
- eye_color: A(),
16468
- facial_features: te(A()),
16469
- primary_color: A().optional(),
16470
- secondary_color: A().optional(),
16471
- aura_color: A().optional()
16462
+ appearance: B({
16463
+ body_type: _(),
16464
+ skin_tone: _(),
16465
+ hair_style: _(),
16466
+ hair_color: _(),
16467
+ eye_color: _(),
16468
+ facial_features: J(_()),
16469
+ primary_color: _().optional(),
16470
+ secondary_color: _().optional(),
16471
+ aura_color: _().optional()
16472
16472
  }).optional(),
16473
- xp: F({
16474
- current: _().nonnegative(),
16475
- next_level: _().positive()
16473
+ xp: B({
16474
+ current: k().nonnegative(),
16475
+ next_level: k().positive()
16476
16476
  }),
16477
- seed: A(),
16478
- generated_at: A()
16477
+ seed: _(),
16478
+ generated_at: _()
16479
+ }), Ku = B({
16480
+ type: _(),
16481
+ value: _()
16482
+ }), Wh = B({
16483
+ name: _(),
16484
+ uri: _().optional(),
16485
+ mime_type: _().optional(),
16486
+ conditions: J(Ku)
16487
+ }), Hh = B({
16488
+ name: _(),
16489
+ uri: _().optional(),
16490
+ mime_type: _().optional()
16479
16491
  });
16480
- function Jh(s) {
16481
- if (!s || !s.metadata) return null;
16482
- if (typeof s.metadata == "string")
16483
- try {
16484
- const e = JSON.parse(s.metadata);
16485
- return typeof e == "object" && e !== null && !Array.isArray(e) ? e : null;
16486
- } catch {
16487
- return null;
16488
- }
16489
- return typeof s.metadata == "object" && !Array.isArray(s.metadata) ? s.metadata : null;
16490
- }
16491
- function Ku(s) {
16492
- const e = { stems: [], mixes: [], hasExtras: !1 };
16493
- if (!s) return e;
16494
- const t = id(s), a = sd(s), i = typeof s.vrm == "string" ? s.vrm : void 0, n = ed(s.lyrics), r = Ci(s.visualizer), o = Ci(s.video), l = td(s.merch), c = ad(s.credits), u = typeof s.midi == "string" ? s.midi : void 0, d = typeof s.step_mania == "string" ? s.step_mania : void 0, h = typeof s.clone_hero == "string" ? s.clone_hero : void 0, p = typeof s.external_url == "string" ? s.external_url : void 0;
16495
- return {
16496
- hasExtras: t.length > 0 || a.length > 0 || !!i || !!n || !!r || !!o || !!l || !!c || !!u || !!d || !!h || !!p,
16497
- ...t.length > 0 ? { stems: t } : {},
16498
- ...a.length > 0 ? { mixes: a } : {},
16499
- ...i ? { vrm: i } : {},
16500
- ...n ? { lyrics: n } : {},
16501
- ...r ? { visualizer: r } : {},
16502
- ...o ? { video: o } : {},
16503
- ...l ? { merch: l } : {},
16504
- ...c ? { credits: c } : {},
16505
- ...u ? { midi: u } : {},
16506
- ...d ? { step_mania: d } : {},
16507
- ...h ? { clone_hero: h } : {},
16508
- ...p ? { external_url: p } : {}
16509
- };
16510
- }
16511
- const Ju = ["audio/wav", "audio/x-wav", "audio/flac"];
16512
- function Qu(s, e, t) {
16513
- const a = e?.["Selected Mix"], i = typeof s == "string" && s || typeof a == "string" && a || null;
16514
- if (!i || i === "default") return null;
16515
- const n = (t ?? []).filter((c) => c.name === i);
16516
- if (n.length === 0) return null;
16517
- const r = (c) => Ju.includes((c.mime_type ?? "").toLowerCase()), o = n.find(r), l = n.find((c) => !r(c)) ?? n[0];
16518
- return {
16519
- name: i,
16520
- ...l?.uri ? { audio_url: l.uri } : {},
16521
- ...o?.uri && o.uri !== l?.uri ? { audio_url_lossless: o.uri } : {}
16522
- };
16523
- }
16524
- function ed(s) {
16525
- if (s) {
16526
- if (typeof s == "string") return { text: s };
16527
- if (typeof s == "object" && !Array.isArray(s)) {
16528
- const e = s;
16529
- return { text: typeof e.text == "string" ? e.text : void 0 };
16530
- }
16531
- }
16532
- }
16533
- function Ci(s) {
16534
- if (!s || typeof s != "object" || Array.isArray(s)) return;
16535
- const e = s;
16536
- if (typeof e.uri == "string")
16537
- return {
16538
- uri: e.uri,
16539
- mime_type: typeof e.mime_type == "string" ? e.mime_type : void 0
16540
- };
16541
- }
16542
- function td(s) {
16543
- if (!s || typeof s != "object" || Array.isArray(s)) return;
16544
- const e = s;
16545
- if (typeof e.uri == "string")
16546
- return {
16547
- uri: e.uri,
16548
- mime_type: typeof e.mime_type == "string" ? e.mime_type : void 0,
16549
- type: typeof e.type == "string" ? e.type : void 0
16550
- };
16551
- }
16552
- function ad(s) {
16553
- if (!Array.isArray(s)) return;
16554
- const e = [];
16555
- for (const t of s)
16556
- if (t && typeof t == "object") {
16557
- const a = t;
16558
- typeof a.name == "string" && typeof a.credit == "string" && e.push({ name: a.name, credit: a.credit });
16559
- }
16560
- return e.length > 0 ? e : void 0;
16561
- }
16562
- function id(s) {
16563
- const e = s.stems;
16564
- if (!Array.isArray(e)) return [];
16565
- const t = [];
16566
- for (const a of e)
16567
- if (a && typeof a == "object") {
16568
- const i = a;
16569
- t.push({
16570
- name: typeof i.name == "string" ? i.name : "",
16571
- uri: typeof i.uri == "string" ? i.uri : void 0,
16572
- mime_type: typeof i.mime_type == "string" ? i.mime_type : void 0
16573
- });
16574
- }
16575
- return t;
16576
- }
16577
- function sd(s) {
16578
- const e = s.mixes;
16579
- if (!Array.isArray(e)) return [];
16580
- const t = [];
16581
- for (const a of e)
16582
- if (a && typeof a == "object") {
16583
- const i = a, n = nd(i.name), r = rd(i.conditions);
16584
- t.push({
16585
- name: n || "",
16586
- uri: typeof i.uri == "string" ? i.uri : void 0,
16587
- mime_type: typeof i.mime_type == "string" ? i.mime_type : void 0,
16588
- conditions: r
16589
- });
16590
- }
16591
- return t;
16592
- }
16593
- function nd(s) {
16594
- if (typeof s == "string") return s;
16595
- if (s && typeof s == "object" && !Array.isArray(s)) {
16596
- const e = s;
16597
- if (typeof e.value == "string") return e.value;
16598
- }
16599
- return "";
16600
- }
16601
- function rd(s) {
16602
- if (!Array.isArray(s)) return [];
16603
- const e = [];
16604
- for (const t of s)
16605
- if (t && typeof t == "object") {
16606
- const a = t;
16607
- typeof a.type == "string" && typeof a.value == "string" && e.push({ type: a.type, value: a.value });
16608
- }
16609
- return e;
16610
- }
16611
- function Qh(s, e) {
16612
- const t = [], a = /* @__PURE__ */ new Date();
16613
- for (const i of s.mixes || []) {
16614
- if (i.conditions.length === 0) {
16615
- t.push({
16616
- mix: i,
16617
- conditions: [],
16618
- allMet: !0,
16619
- unmetConditions: []
16620
- });
16621
- continue;
16622
- }
16623
- const n = [], r = [];
16624
- for (const o of i.conditions) {
16625
- const l = od(o, e, a);
16626
- n.push(l), l.met || r.push(l);
16627
- }
16628
- t.push({
16629
- mix: i,
16630
- conditions: n,
16631
- allMet: r.length === 0,
16632
- unmetConditions: r
16633
- });
16634
- }
16635
- return t;
16636
- }
16637
- function od(s, e, t = /* @__PURE__ */ new Date()) {
16638
- const { type: a, value: i } = s, n = e?.environment, r = e?.appState;
16639
- switch (a) {
16640
- case "weather": {
16641
- const o = n?.weather?.weatherType || "", l = o.toLowerCase() === i.toLowerCase();
16642
- return {
16643
- type: a,
16644
- value: i,
16645
- met: l,
16646
- reason: l ? `Weather is ${o}` : `Weather is ${o} (need ${i})`
16647
- };
16648
- }
16649
- case "day": {
16650
- const l = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"][t.getDay()], c = l.toLowerCase() === i.toLowerCase();
16651
- return {
16652
- type: a,
16653
- value: i,
16654
- met: c,
16655
- reason: c ? `Today is ${l}` : `Today is ${l} (need ${i})`
16656
- };
16657
- }
16658
- case "start_time": {
16659
- const o = t.getHours() * 60 + t.getMinutes(), l = Ii(i), c = o >= l;
16660
- return {
16661
- type: a,
16662
- value: i,
16663
- met: c,
16664
- reason: c ? `Time is after ${i}` : `Time is before ${i}`
16665
- };
16666
- }
16667
- case "end_time": {
16668
- const o = t.getHours() * 60 + t.getMinutes(), l = Ii(i), c = o < l;
16669
- return {
16670
- type: a,
16671
- value: i,
16672
- met: c,
16673
- reason: c ? `Time is before ${i}` : `Time is after ${i}`
16674
- };
16675
- }
16676
- case "min_plays": {
16677
- const o = parseInt(i, 10), l = r?.playCount ?? 0, c = l >= o;
16678
- return {
16679
- type: a,
16680
- value: i,
16681
- met: c,
16682
- reason: c ? `Played ${l} times (need ${o})` : `Played ${l} times (need ${o})`
16683
- };
16684
- }
16685
- case "max_plays": {
16686
- const o = parseInt(i, 10), l = r?.playCount ?? 0, c = l <= o;
16687
- return {
16688
- type: a,
16689
- value: i,
16690
- met: c,
16691
- reason: c ? `Played ${l} times (max ${o})` : `Played ${l} times (exceeds max ${o})`
16692
- };
16693
- }
16694
- case "every_x_plays": {
16695
- const o = parseInt(i, 10), l = r?.playCount ?? 0, c = o > 0 && l > 0 && l % o === 0;
16696
- return {
16697
- type: a,
16698
- value: i,
16699
- met: c,
16700
- reason: c ? `Play #${l} (every ${o} plays)` : `Play #${l} (not a multiple of ${o})`
16701
- };
16702
- }
16703
- case "altitude": {
16704
- const o = n?.geolocation?.altitude;
16705
- if (o == null)
16706
- return { type: a, value: i, met: !1, reason: "Altitude unavailable" };
16707
- const l = ld(i), c = cd(o, l.operator, l.threshold);
16708
- return {
16709
- type: a,
16710
- value: i,
16711
- met: c,
16712
- reason: c ? `Altitude ${o}m ${l.operator} ${l.threshold}m` : `Altitude ${o}m (need ${l.operator} ${l.threshold}m)`
16713
- };
16714
- }
16715
- case "favorite": {
16716
- const o = r?.isFavorite ?? !1, l = i.toLowerCase() === "true", c = o === l;
16717
- return {
16718
- type: a,
16719
- value: i,
16720
- met: c,
16721
- reason: c ? o ? "Track is favorited" : "Track is not favorited" : o ? "Track is favorited (need unfavorited)" : "Track is not favorited (need favorited)"
16722
- };
16723
- }
16724
- case "birthday": {
16725
- if (!r?.userBirthday)
16726
- return { type: a, value: i, met: !1, reason: "Birthday not set" };
16727
- const l = `${String(t.getMonth() + 1).padStart(2, "0")}-${String(t.getDate()).padStart(2, "0")}` === r.userBirthday;
16728
- return {
16729
- type: a,
16730
- value: i,
16731
- met: l,
16732
- reason: l ? "It's your birthday!" : `Not your birthday (need ${r.userBirthday})`
16733
- };
16734
- }
16735
- case "weight":
16736
- return {
16737
- type: a,
16738
- value: i,
16739
- met: !0,
16740
- reason: `Weight ${i} (used for random selection, always available)`
16741
- };
16742
- default:
16743
- return {
16744
- type: a,
16745
- value: i,
16746
- met: !0,
16747
- reason: `Custom condition: ${a} = ${i}`
16748
- };
16749
- }
16750
- }
16751
- function Ii(s) {
16752
- const e = s.split(":");
16753
- if (e.length !== 2) return 0;
16754
- const t = parseInt(e[0], 10), a = parseInt(e[1], 10);
16755
- return isNaN(t) || isNaN(a) ? 0 : t * 60 + a;
16756
- }
16757
- function ld(s) {
16758
- const e = s.match(/^(>=|<=|>|<|=)?\s*(\d+(?:\.\d+)?)\s*$/);
16759
- return e ? {
16760
- operator: e[1] || ">=",
16761
- threshold: parseFloat(e[2])
16762
- } : { operator: ">=", threshold: parseFloat(s) || 0 };
16763
- }
16764
- function cd(s, e, t) {
16765
- switch (e) {
16766
- case ">":
16767
- return s > t;
16768
- case ">=":
16769
- return s >= t;
16770
- case "<":
16771
- return s < t;
16772
- case "<=":
16773
- return s <= t;
16774
- case "=":
16775
- case "==":
16776
- return s === t;
16777
- default:
16778
- return s >= t;
16779
- }
16780
- }
16781
- class ud {
16492
+ class Ju {
16782
16493
  /**
16783
16494
  * Generate a unique RPG-style character name from track metadata and character class
16784
16495
  *
@@ -17169,7 +16880,7 @@ class fe {
17169
16880
  return i;
17170
16881
  }
17171
16882
  }
17172
- const Mi = [
16883
+ const Ci = [
17173
16884
  // ========================================
17174
16885
  // BARBARIAN FEATURES
17175
16886
  // ========================================
@@ -18328,7 +18039,7 @@ const Mi = [
18328
18039
  source: "default",
18329
18040
  tags: ["magic"]
18330
18041
  }
18331
- ], Ei = [
18042
+ ], Ii = [
18332
18043
  // ========================================
18333
18044
  // HUMAN TRAITS
18334
18045
  // ========================================
@@ -18585,7 +18296,7 @@ const Mi = [
18585
18296
  source: "default",
18586
18297
  tags: ["magic", "spell"]
18587
18298
  }
18588
- ], Di = [
18299
+ ], Mi = [
18589
18300
  // STR-based skills
18590
18301
  {
18591
18302
  id: "athletics",
@@ -18753,7 +18464,7 @@ const Mi = [
18753
18464
  source: "default",
18754
18465
  description: "Covers influencing others through reason, charm, and good faith. Use this skill when you need to convince someone to see your point of view, negotiate favorable terms, get someone to do you a favor, or rally people to your cause. This skill works best when you're being honest."
18755
18466
  }
18756
- ], ep = [
18467
+ ], zh = [
18757
18468
  "physical",
18758
18469
  "exploration",
18759
18470
  "combat",
@@ -18766,7 +18477,7 @@ const Mi = [
18766
18477
  "perception",
18767
18478
  "practical",
18768
18479
  "entertainment"
18769
- ], dd = {
18480
+ ], Qu = {
18770
18481
  "appearance.bodyTypes": ["slender", "athletic", "muscular", "stocky"],
18771
18482
  "appearance.skinTones": [
18772
18483
  "#F5E6D3",
@@ -18843,110 +18554,110 @@ const Mi = [
18843
18554
  "soft features"
18844
18555
  ]
18845
18556
  };
18846
- function Ps() {
18557
+ function Rs() {
18847
18558
  const s = R.getInstance();
18848
- for (const [e, t] of Object.entries(dd))
18559
+ for (const [e, t] of Object.entries(Qu))
18849
18560
  s.initializeDefaults(e, [...t]);
18850
18561
  }
18851
- function hd() {
18562
+ function ed() {
18852
18563
  return R.getInstance().getRegisteredCategories().some((t) => String(t).startsWith("appearance."));
18853
18564
  }
18854
- function $s() {
18855
- hd() || Ps();
18565
+ function xs() {
18566
+ ed() || Rs();
18856
18567
  }
18857
- const pd = Object.values(Zi), md = Object.entries(Kt).map(([s, e]) => ({
18568
+ const td = Object.values(Gi), ad = Object.entries(Kt).map(([s, e]) => ({
18858
18569
  class: s,
18859
18570
  cantrips: e.cantrips,
18860
18571
  spells_by_level: e.spells_by_level
18861
18572
  }));
18862
- function Ns() {
18573
+ function Ps() {
18863
18574
  const s = R.getInstance();
18864
- s.initializeDefaults("spells", pd);
18865
- for (const e of md) {
18575
+ s.initializeDefaults("spells", td);
18576
+ for (const e of ad) {
18866
18577
  const t = `spells.${e.class}`;
18867
18578
  s.initializeDefaults(t, [e]);
18868
18579
  }
18869
18580
  }
18870
- function gd() {
18581
+ function id() {
18871
18582
  return R.getInstance().getRegisteredCategories().some((t) => String(t).startsWith("spells"));
18872
18583
  }
18873
18584
  function ia() {
18874
- gd() || Ns();
18585
+ id() || Ps();
18875
18586
  }
18876
- const fd = Object.values(et).map((s) => ({
18587
+ const sd = Object.values(et).map((s) => ({
18877
18588
  ...s,
18878
18589
  source: "default",
18879
18590
  spawnWeight: s.spawnWeight ?? 1,
18880
18591
  // Default to normal spawn rate
18881
18592
  tags: s.tags ?? []
18882
18593
  }));
18883
- function Os() {
18884
- R.getInstance().initializeDefaults("equipment", fd);
18594
+ function $s() {
18595
+ R.getInstance().initializeDefaults("equipment", sd);
18885
18596
  }
18886
- function yd() {
18597
+ function nd() {
18887
18598
  return R.getInstance().getRegisteredCategories().some((t) => t === "equipment");
18888
18599
  }
18889
- function Bs() {
18890
- yd() || Os();
18600
+ function Ns() {
18601
+ nd() || $s();
18891
18602
  }
18892
- function Ls() {
18603
+ function Os() {
18893
18604
  R.getInstance().initializeDefaults("races", [...Yn]);
18894
18605
  }
18895
- function vd() {
18606
+ function rd() {
18896
18607
  return R.getInstance().getRegisteredCategories().some((t) => t === "races");
18897
18608
  }
18898
- function Fs() {
18899
- vd() || Ls();
18609
+ function Bs() {
18610
+ rd() || Os();
18900
18611
  }
18901
- function Ws() {
18612
+ function Ls() {
18902
18613
  R.getInstance().initializeDefaults("races.data", [...Jn]);
18903
18614
  }
18904
- function bd() {
18615
+ function od() {
18905
18616
  return R.getInstance().getRegisteredCategories().some((t) => t === "races.data");
18906
18617
  }
18907
- function wd() {
18908
- bd() || Ws();
18618
+ function ld() {
18619
+ od() || Ls();
18909
18620
  }
18910
- function Hs() {
18621
+ function Fs() {
18911
18622
  R.getInstance().initializeDefaults("classes", [...Vn]);
18912
18623
  }
18913
- function Sd() {
18624
+ function cd() {
18914
18625
  return R.getInstance().getRegisteredCategories().some((t) => t === "classes");
18915
18626
  }
18916
- function zs() {
18917
- Sd() || Hs();
18627
+ function Ws() {
18628
+ cd() || Fs();
18918
18629
  }
18919
- function tp() {
18920
- Ps(), Ns(), Os(), Ls(), Ws(), Hs(), qs(), js();
18630
+ function qh() {
18631
+ Rs(), Ps(), $s(), Os(), Ls(), Fs(), Hs(), qs();
18921
18632
  }
18922
- function ap() {
18923
- $s(), ia(), Bs(), Fs(), wd(), zs(), Us(), Ad();
18633
+ function Uh() {
18634
+ xs(), ia(), Ns(), Bs(), ld(), Ws(), zs(), hd();
18924
18635
  }
18925
- function qs() {
18636
+ function Hs() {
18926
18637
  const s = R.getInstance(), e = {};
18927
- for (const a of Mi)
18638
+ for (const a of Ci)
18928
18639
  e[a.class] || (e[a.class] = []), e[a.class].push(a);
18929
- s.initializeDefaults("classFeatures", [...Mi]);
18640
+ s.initializeDefaults("classFeatures", [...Ci]);
18930
18641
  for (const [a, i] of Object.entries(e)) {
18931
18642
  const n = `classFeatures.${a}`;
18932
18643
  s.initializeDefaults(n, i);
18933
18644
  }
18934
18645
  const t = {};
18935
- for (const a of Ei)
18646
+ for (const a of Ii)
18936
18647
  t[a.race] || (t[a.race] = []), t[a.race].push(a);
18937
- s.initializeDefaults("racialTraits", [...Ei]);
18648
+ s.initializeDefaults("racialTraits", [...Ii]);
18938
18649
  for (const [a, i] of Object.entries(t)) {
18939
18650
  const n = `racialTraits.${a}`;
18940
18651
  s.initializeDefaults(n, i);
18941
18652
  }
18942
18653
  }
18943
- function _d() {
18654
+ function ud() {
18944
18655
  return R.getInstance().getRegisteredCategories().some((t) => t === "classFeatures" || t === "racialTraits");
18945
18656
  }
18946
- function Us() {
18947
- _d() || qs();
18657
+ function zs() {
18658
+ ud() || Hs();
18948
18659
  }
18949
- function js() {
18660
+ function qs() {
18950
18661
  const s = R.getInstance(), e = {
18951
18662
  STR: [],
18952
18663
  DEX: [],
@@ -18955,22 +18666,22 @@ function js() {
18955
18666
  WIS: [],
18956
18667
  CHA: []
18957
18668
  };
18958
- for (const t of Di)
18669
+ for (const t of Mi)
18959
18670
  e[t.ability].push(t);
18960
- s.initializeDefaults("skills", [...Di]);
18671
+ s.initializeDefaults("skills", [...Mi]);
18961
18672
  for (const [t, a] of Object.entries(e)) {
18962
18673
  const i = `skills.${t}`;
18963
18674
  s.initializeDefaults(i, a);
18964
18675
  }
18965
18676
  }
18966
- function kd() {
18677
+ function dd() {
18967
18678
  const s = R.getInstance();
18968
18679
  return s.hasCustomData("skills") || s.getDefaults("skills").length > 0;
18969
18680
  }
18970
- function Ad() {
18971
- kd() || js();
18681
+ function hd() {
18682
+ dd() || qs();
18972
18683
  }
18973
- class Td {
18684
+ class pd {
18974
18685
  /**
18975
18686
  * Select a random race deterministically from seeded RNG
18976
18687
  *
@@ -19012,7 +18723,7 @@ class Td {
19012
18723
  * ```
19013
18724
  */
19014
18725
  static select(e) {
19015
- Fs();
18726
+ Bs();
19016
18727
  const t = R.getInstance(), a = t.get("races"), i = t.getWeights("races"), n = t.getMode("races") || "default";
19017
18728
  return fe.select(a, i, e, n);
19018
18729
  }
@@ -19069,7 +18780,7 @@ const Ca = class Ca {
19069
18780
  * ```
19070
18781
  */
19071
18782
  static suggest(e, t) {
19072
- zs();
18783
+ Ws();
19073
18784
  const a = R.getInstance(), i = a.get("classes"), n = this.calculateAllAffinities(e, i), r = this.calculateProbabilities(n), o = a.getWeights("classes"), l = this.applyCustomWeights(r, o, i), c = Object.entries(l).map(([u, d]) => [u, d]);
19074
18785
  return t.weightedChoice(c);
19075
18786
  }
@@ -19378,7 +19089,7 @@ class Ut {
19378
19089
  };
19379
19090
  }
19380
19091
  }
19381
- class Cd {
19092
+ class md {
19382
19093
  /**
19383
19094
  * Get skill list definition for a class from ExtensionManager
19384
19095
  *
@@ -19412,7 +19123,7 @@ class Cd {
19412
19123
  const i = he.getInstance(), n = i.getAllSkills(), r = {};
19413
19124
  for (const h of n)
19414
19125
  r[h.id] = "none";
19415
- const o = Yi(e);
19126
+ const o = Vi(e);
19416
19127
  if (!o)
19417
19128
  return console.warn(`SkillAssigner: Unknown class "${e}", using default skill assignment`), r;
19418
19129
  const l = this.validateSkills(o.available_skills, i), c = a ? this.filterSkillsByPrerequisites(l, i, a) : l, u = this.getSkillListDefinition(e), d = this.selectSkills(
@@ -19531,7 +19242,7 @@ class Cd {
19531
19242
  return i.slice(0, t);
19532
19243
  }
19533
19244
  }
19534
- const Id = [
19245
+ const gd = [
19535
19246
  "Wizard",
19536
19247
  "Sorcerer",
19537
19248
  "Warlock",
@@ -19540,7 +19251,7 @@ const Id = [
19540
19251
  "Druid",
19541
19252
  "Paladin"
19542
19253
  ];
19543
- class Md {
19254
+ class fd {
19544
19255
  /**
19545
19256
  * Generate character appearance from seed and audio profile
19546
19257
  *
@@ -19548,8 +19259,8 @@ class Md {
19548
19259
  * and WeightedSelector for spawn rate control.
19549
19260
  */
19550
19261
  static generate(e, t, a) {
19551
- $s();
19552
- const i = new _e(e), n = R.getInstance(), r = n.get("appearance.bodyTypes"), o = n.getWeights("appearance.bodyTypes"), l = n.getMode("appearance.bodyTypes") || "default", c = n.get("appearance.skinTones"), u = n.getWeights("appearance.skinTones"), d = n.getMode("appearance.skinTones") || "default", h = n.get("appearance.hairStyles"), p = n.getWeights("appearance.hairStyles"), g = n.getMode("appearance.hairStyles") || "default", m = n.get("appearance.hairColors"), f = n.getWeights("appearance.hairColors"), y = n.getMode("appearance.hairColors") || "default", b = n.get("appearance.eyeColors"), I = n.getWeights("appearance.eyeColors"), C = n.getMode("appearance.eyeColors") || "default", E = n.get("appearance.facialFeatures"), x = n.getWeights("appearance.facialFeatures"), P = n.getMode("appearance.facialFeatures") || "default", $ = fe.select(r, o, i, l), L = fe.select(c, u, i, d), J = fe.select(h, p, i, g), X = fe.select(m, f, i, y), V = fe.select(b, I, i, C), oe = i.randomInt(1, 4), K = fe.selectMultiple(
19262
+ xs();
19263
+ const i = new _e(e), n = R.getInstance(), r = n.get("appearance.bodyTypes"), o = n.getWeights("appearance.bodyTypes"), l = n.getMode("appearance.bodyTypes") || "default", c = n.get("appearance.skinTones"), u = n.getWeights("appearance.skinTones"), d = n.getMode("appearance.skinTones") || "default", h = n.get("appearance.hairStyles"), p = n.getWeights("appearance.hairStyles"), g = n.getMode("appearance.hairStyles") || "default", m = n.get("appearance.hairColors"), f = n.getWeights("appearance.hairColors"), y = n.getMode("appearance.hairColors") || "default", b = n.get("appearance.eyeColors"), I = n.getWeights("appearance.eyeColors"), C = n.getMode("appearance.eyeColors") || "default", E = n.get("appearance.facialFeatures"), x = n.getWeights("appearance.facialFeatures"), P = n.getMode("appearance.facialFeatures") || "default", $ = fe.select(r, o, i, l), F = fe.select(c, u, i, d), Q = fe.select(h, p, i, g), X = fe.select(m, f, i, y), V = fe.select(b, I, i, C), oe = i.randomInt(1, 4), K = fe.selectMultiple(
19553
19264
  E,
19554
19265
  x,
19555
19266
  i,
@@ -19557,10 +19268,10 @@ class Md {
19557
19268
  P
19558
19269
  ), O = a.color_palette, D = O?.primary_color, N = O?.secondary_color, be = O?.accent_color;
19559
19270
  let de;
19560
- return Id.includes(t) && (de = this.generateAuraColor(t, O?.primary_color)), {
19271
+ return gd.includes(t) && (de = this.generateAuraColor(t, O?.primary_color)), {
19561
19272
  body_type: $,
19562
- skin_tone: L,
19563
- hair_style: J,
19273
+ skin_tone: F,
19274
+ hair_style: Q,
19564
19275
  hair_color: X,
19565
19276
  eye_color: V,
19566
19277
  facial_features: K,
@@ -19599,7 +19310,7 @@ class Md {
19599
19310
  return `#${u(o)}${u(l)}${u(c)}`;
19600
19311
  }
19601
19312
  }
19602
- class Ri {
19313
+ class Ei {
19603
19314
  /**
19604
19315
  * Check if a class is a spellcaster
19605
19316
  *
@@ -19625,7 +19336,7 @@ class Ri {
19625
19336
  const a = {};
19626
19337
  for (let n = 0; n <= 9; n++)
19627
19338
  a[n] = { total: 0, used: 0 };
19628
- const i = Ki(e, t);
19339
+ const i = Yi(e, t);
19629
19340
  if (!i)
19630
19341
  return a;
19631
19342
  for (const [n, r] of Object.entries(i)) {
@@ -19715,7 +19426,7 @@ class Ri {
19715
19426
  static filterSpellsByPrerequisites(e, t) {
19716
19427
  const a = [];
19717
19428
  for (const i of e) {
19718
- const n = Zi[i];
19429
+ const n = Gi[i];
19719
19430
  if (!n) {
19720
19431
  a.push(i);
19721
19432
  continue;
@@ -19811,7 +19522,7 @@ class Ri {
19811
19522
  };
19812
19523
  }
19813
19524
  }
19814
- const xi = {
19525
+ const Di = {
19815
19526
  Barbarian: {
19816
19527
  weapons: ["Greataxe", "Handaxe"],
19817
19528
  armor: ["No Armor"],
@@ -19874,9 +19585,9 @@ const xi = {
19874
19585
  items: ["Spellbook", "Component Pouch", "Scholar's Pack", "Ink & Quill"]
19875
19586
  }
19876
19587
  };
19877
- function Ed(s) {
19878
- if (s in xi)
19879
- return xi[s];
19588
+ function yd(s) {
19589
+ if (s in Di)
19590
+ return Di[s];
19880
19591
  try {
19881
19592
  const e = R.getInstance(), t = `classStartingEquipment.${s}`, a = e.get(t);
19882
19593
  if (a && Array.isArray(a) && a.length > 0) {
@@ -20385,7 +20096,7 @@ class Et {
20385
20096
  * Safe to call multiple times
20386
20097
  */
20387
20098
  static ensureInitialized() {
20388
- Bs();
20099
+ Ns();
20389
20100
  }
20390
20101
  /**
20391
20102
  * Get equipment data from extended database (defaults + custom)
@@ -20417,7 +20128,7 @@ class Et {
20417
20128
  */
20418
20129
  static getStartingEquipment(e) {
20419
20130
  this.ensureInitialized();
20420
- const t = Ed(e);
20131
+ const t = yd(e);
20421
20132
  return t ? {
20422
20133
  weapons: [...t.weapons],
20423
20134
  armor: [...t.armor],
@@ -21054,7 +20765,7 @@ class wa {
21054
20765
  */
21055
20766
  static generate(e, t, a, i = {}) {
21056
20767
  const n = new _e(e), r = i.level || 1, o = i.gameMode || "standard";
21057
- Us();
20768
+ zs();
21058
20769
  const l = se.getInstance();
21059
20770
  i.extensions && wa.registerExtensions(i.extensions);
21060
20771
  let c;
@@ -21073,7 +20784,7 @@ class wa {
21073
20784
  );
21074
20785
  d = W, c = u;
21075
20786
  }
21076
- const h = d || Td.select(n);
20787
+ const h = d || pd.select(n);
21077
20788
  if (c !== void 0 && u !== "pure") {
21078
20789
  const W = l.getAvailableSubraces(h);
21079
20790
  if (!W.includes(c))
@@ -21081,26 +20792,26 @@ class wa {
21081
20792
  `Invalid subrace "${c}" for race "${h}". Available subraces: ${W.length > 0 ? W.join(", ") : "none"}`
21082
20793
  );
21083
20794
  } else if (c === void 0 && u === void 0) {
21084
- const Q = ["pure", ...l.getAvailableSubraces(h)], Ye = n.randomChoice(Q);
20795
+ const ee = ["pure", ...l.getAvailableSubraces(h)], Ye = n.randomChoice(ee);
21085
20796
  c = Ye === "pure" ? void 0 : Ye;
21086
20797
  }
21087
- const p = i.forceClass || sa.suggest(t, n), g = i.forceName || new ud().generateName(
20798
+ const p = i.forceClass || sa.suggest(t, n), g = i.forceName || new Ju().generateName(
21088
20799
  e,
21089
20800
  a,
21090
20801
  t,
21091
20802
  p,
21092
20803
  i.deterministicName || !0
21093
- ), m = Ut.calculateBaseScores(t, n), f = Ut.applyRacialBonuses(m, h), y = Ut.calculateModifiers(f), b = Yi(p);
20804
+ ), m = Ut.calculateBaseScores(t, n), f = Ut.applyRacialBonuses(m, h), y = Ut.calculateModifiers(f), b = Vi(p);
21094
20805
  if (!b)
21095
20806
  throw new Error(`Unknown class: ${p}. Cannot generate character.`);
21096
- const C = ua(h)?.speed ?? 30, E = b.hit_die + y.CON, x = 10 + y.DEX, P = y.DEX, $ = Xi[r], L = Cd.assignSkills(p, n), J = {
20807
+ const C = ua(h)?.speed ?? 30, E = b.hit_die + y.CON, x = 10 + y.DEX, P = y.DEX, $ = Zi[r], F = md.assignSkills(p, n), Q = {
21097
20808
  STR: b.saving_throws.includes("STR"),
21098
20809
  DEX: b.saving_throws.includes("DEX"),
21099
20810
  CON: b.saving_throws.includes("CON"),
21100
20811
  INT: b.saving_throws.includes("INT"),
21101
20812
  WIS: b.saving_throws.includes("WIS"),
21102
20813
  CHA: b.saving_throws.includes("CHA")
21103
- }, X = Md.generate(e, p, t), V = l.getClassFeatures(p, r), oe = c ? l.getRacialTraitsForSubrace(h, c) : l.getBaseRacialTraits(h), K = Et.initializeEquipment(p), O = {
20814
+ }, X = fd.generate(e, p, t), V = l.getClassFeatures(p, r), oe = c ? l.getRacialTraitsForSubrace(h, c) : l.getBaseRacialTraits(h), K = Et.initializeEquipment(p), O = {
21104
20815
  name: g,
21105
20816
  race: h,
21106
20817
  subrace: c,
@@ -21114,8 +20825,8 @@ class wa {
21114
20825
  armor_class: x,
21115
20826
  initiative: P,
21116
20827
  speed: C,
21117
- skills: L,
21118
- saving_throws: J,
20828
+ skills: F,
20829
+ saving_throws: Q,
21119
20830
  racial_traits: [],
21120
20831
  // Empty for now, will populate after validation
21121
20832
  class_features: [],
@@ -21132,15 +20843,15 @@ class wa {
21132
20843
  seed: e,
21133
20844
  generated_at: (/* @__PURE__ */ new Date()).toISOString(),
21134
20845
  gameMode: o
21135
- }, D = Ri.initializeSpells(p, r, O), N = [];
20846
+ }, D = Ei.initializeSpells(p, r, O), N = [];
21136
20847
  for (const W of V) {
21137
- const Q = l.validatePrerequisites(W, O);
21138
- Q.valid || console.warn(`Feature "${W.name}" (${W.id}) failed prerequisite validation:`, Q.errors), N.push(W);
20848
+ const ee = l.validatePrerequisites(W, O);
20849
+ ee.valid || console.warn(`Feature "${W.name}" (${W.id}) failed prerequisite validation:`, ee.errors), N.push(W);
21139
20850
  }
21140
20851
  const be = [];
21141
20852
  for (const W of oe) {
21142
- const Q = l.validatePrerequisites(W, O);
21143
- Q.valid || console.warn(`Trait "${W.name}" (${W.id}) failed prerequisite validation:`, Q.errors), be.push(W);
20853
+ const ee = l.validatePrerequisites(W, O);
20854
+ ee.valid || console.warn(`Trait "${W.name}" (${W.id}) failed prerequisite validation:`, ee.errors), be.push(W);
21144
20855
  }
21145
20856
  const de = {
21146
20857
  name: g,
@@ -21160,8 +20871,8 @@ class wa {
21160
20871
  armor_class: x,
21161
20872
  initiative: P,
21162
20873
  speed: C,
21163
- skills: L,
21164
- saving_throws: J,
20874
+ skills: F,
20875
+ saving_throws: Q,
21165
20876
  racial_traits: be.map((W) => W.id),
21166
20877
  class_features: N.map((W) => W.id),
21167
20878
  appearance: X,
@@ -21177,22 +20888,22 @@ class wa {
21177
20888
  };
21178
20889
  if (Dt.applyMultipleEffects(de, be), Dt.applyMultipleEffects(de, N), K) {
21179
20890
  const W = [
21180
- ...K.weapons.filter((Q) => Q.equipped),
21181
- ...K.armor.filter((Q) => Q.equipped),
21182
- ...K.items.filter((Q) => Q.equipped)
20891
+ ...K.weapons.filter((ee) => ee.equipped),
20892
+ ...K.armor.filter((ee) => ee.equipped),
20893
+ ...K.items.filter((ee) => ee.equipped)
21183
20894
  ];
21184
- for (const Q of W) {
21185
- const Ye = Et.getEquipmentDataStatic(Q.name);
20895
+ for (const ee of W) {
20896
+ const Ye = Et.getEquipmentDataStatic(ee.name);
21186
20897
  if (Ye) {
21187
- const sn = Q.instanceId;
21188
- re.equipItem(de, Ye, sn).applied || (Q.equipped = !1);
20898
+ const tn = ee.instanceId;
20899
+ re.equipItem(de, Ye, tn).applied || (ee.equipped = !1);
21189
20900
  }
21190
20901
  }
21191
20902
  }
21192
- return Ri.filterCharacterSpells(de);
20903
+ return Ei.filterCharacterSpells(de);
21193
20904
  }
21194
20905
  }
21195
- function ip(s) {
20906
+ function jh(s) {
21196
20907
  return typeof s == "string" && [
21197
20908
  "humanoid",
21198
20909
  "beast",
@@ -21204,16 +20915,16 @@ function ip(s) {
21204
20915
  "monstrosity"
21205
20916
  ].includes(s);
21206
20917
  }
21207
- function sp(s) {
20918
+ function Gh(s) {
21208
20919
  return typeof s == "string" && ["common", "uncommon", "elite", "boss"].includes(s);
21209
20920
  }
21210
- function np(s) {
20921
+ function Vh(s) {
21211
20922
  return typeof s == "string" && ["brute", "archer", "support"].includes(s);
21212
20923
  }
21213
- function rp(s) {
20924
+ function Zh(s) {
21214
20925
  return typeof s == "string" && ["easy", "medium", "hard", "deadly"].includes(s);
21215
20926
  }
21216
- class op {
20927
+ class Yh {
21217
20928
  /**
21218
20929
  * Calculate average party level
21219
20930
  *
@@ -21434,34 +21145,34 @@ class op {
21434
21145
  };
21435
21146
  }
21436
21147
  }
21437
- const ee = [];
21148
+ const te = [];
21438
21149
  for (let s = 0; s < 256; ++s)
21439
- ee.push((s + 256).toString(16).slice(1));
21440
- function Dd(s, e = 0) {
21441
- return (ee[s[e + 0]] + ee[s[e + 1]] + ee[s[e + 2]] + ee[s[e + 3]] + "-" + ee[s[e + 4]] + ee[s[e + 5]] + "-" + ee[s[e + 6]] + ee[s[e + 7]] + "-" + ee[s[e + 8]] + ee[s[e + 9]] + "-" + ee[s[e + 10]] + ee[s[e + 11]] + ee[s[e + 12]] + ee[s[e + 13]] + ee[s[e + 14]] + ee[s[e + 15]]).toLowerCase();
21150
+ te.push((s + 256).toString(16).slice(1));
21151
+ function vd(s, e = 0) {
21152
+ return (te[s[e + 0]] + te[s[e + 1]] + te[s[e + 2]] + te[s[e + 3]] + "-" + te[s[e + 4]] + te[s[e + 5]] + "-" + te[s[e + 6]] + te[s[e + 7]] + "-" + te[s[e + 8]] + te[s[e + 9]] + "-" + te[s[e + 10]] + te[s[e + 11]] + te[s[e + 12]] + te[s[e + 13]] + te[s[e + 14]] + te[s[e + 15]]).toLowerCase();
21442
21153
  }
21443
21154
  let jt;
21444
- const Rd = new Uint8Array(16);
21445
- function xd() {
21155
+ const bd = new Uint8Array(16);
21156
+ function wd() {
21446
21157
  if (!jt) {
21447
21158
  if (typeof crypto > "u" || !crypto.getRandomValues)
21448
21159
  throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
21449
21160
  jt = crypto.getRandomValues.bind(crypto);
21450
21161
  }
21451
- return jt(Rd);
21162
+ return jt(bd);
21452
21163
  }
21453
- const Pd = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), Pi = { randomUUID: Pd };
21454
- function $d(s, e, t) {
21164
+ const Sd = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), Ri = { randomUUID: Sd };
21165
+ function _d(s, e, t) {
21455
21166
  s = s || {};
21456
- const a = s.random ?? s.rng?.() ?? xd();
21167
+ const a = s.random ?? s.rng?.() ?? wd();
21457
21168
  if (a.length < 16)
21458
21169
  throw new Error("Random bytes length must be >= 16");
21459
- return a[6] = a[6] & 15 | 64, a[8] = a[8] & 63 | 128, Dd(a);
21170
+ return a[6] = a[6] & 15 | 64, a[8] = a[8] & 63 | 128, vd(a);
21460
21171
  }
21461
- function Nd(s, e, t) {
21462
- return Pi.randomUUID && !s ? Pi.randomUUID() : $d(s);
21172
+ function kd(s, e, t) {
21173
+ return Ri.randomUUID && !s ? Ri.randomUUID() : _d(s);
21463
21174
  }
21464
- class lp {
21175
+ class Xh {
21465
21176
  constructor(e = {}) {
21466
21177
  this.options = {
21467
21178
  validateAudioUrls: !1,
@@ -21525,7 +21236,7 @@ class lp {
21525
21236
  const a = ge.parseMetadata(e.metadata);
21526
21237
  if (!a && this.options.strict)
21527
21238
  throw new Error(`Failed to parse metadata for track at index ${t}`);
21528
- const i = e.chain_name, n = e.token_address, r = e.token_id, o = e.tx_id, l = e.platform, c = e.id || (i === "AR" ? `AR-${o}` : `${i}-${n}-${r}`), u = e.uuid || Nd(), d = ge.extractTitle(a || {}), h = ge.extractArtist(a || {}), g = typeof e.artwork_url == "string" && e.artwork_url || typeof e.image_url == "string" && e.image_url || null || ge.extractImageUrl(a || {}), m = ge.extractImageThumbUrl(a || {}), y = typeof e.audio_url == "string" && e.audio_url || null || ge.extractAudioUrl(a || {}), b = ge.extractAudioUrlLossless(a || {}), I = ge.convertAttributes(a?.attributes), C = Ku(a || {}), E = Qu(e.selected_mix, I, C.mixes), x = E?.audio_url || y, P = E ? E.audio_url_lossless : b;
21239
+ const i = e.chain_name, n = e.token_address, r = e.token_id, o = e.tx_id, l = e.platform, c = e.id || (i === "AR" ? `AR-${o}` : `${i}-${n}-${r}`), u = e.uuid || kd(), d = ge.extractTitle(a || {}), h = ge.extractArtist(a || {}), g = typeof e.artwork_url == "string" && e.artwork_url || typeof e.image_url == "string" && e.image_url || null || ge.extractImageUrl(a || {}), m = ge.extractImageThumbUrl(a || {}), y = typeof e.audio_url == "string" && e.audio_url || null || ge.extractAudioUrl(a || {}), b = ge.extractAudioUrlLossless(a || {}), I = ge.convertAttributes(a?.attributes), C = gn(a || {}), E = fn(e.selected_mix, I, C.mixes), x = E?.audio_url || y, P = E ? E.audio_url_lossless : b;
21529
21240
  if (!x) {
21530
21241
  if (this.options.strict)
21531
21242
  throw new Error(`No audio URL found for track: ${d || c}`);
@@ -21541,7 +21252,7 @@ class lp {
21541
21252
  throw new Error(`Missing required fields for track: ${JSON.stringify({ title: d, artist: h, imageUrl: g })}`);
21542
21253
  return null;
21543
21254
  }
21544
- const $ = ge.extractDescription(a || {}) ?? void 0, L = typeof a?.album == "string" ? a.album : void 0, J = a?.duration ? Number(a.duration) : 0, X = ge.extractGenre(a || {}), V = ge.extractTags(a || {}), oe = a?.bpm ? Number(a.bpm) : void 0, K = typeof a?.key == "string" ? a.key : void 0, O = {
21255
+ const $ = ge.extractDescription(a || {}) ?? void 0, F = typeof a?.album == "string" ? a.album : void 0, Q = a?.duration ? Number(a.duration) : 0, X = ge.extractGenre(a || {}), V = ge.extractTags(a || {}), oe = a?.bpm ? Number(a.bpm) : void 0, K = typeof a?.key == "string" ? a.key : void 0, O = {
21545
21256
  id: c,
21546
21257
  uuid: u,
21547
21258
  playlist_index: t,
@@ -21550,12 +21261,12 @@ class lp {
21550
21261
  title: d,
21551
21262
  artist: h,
21552
21263
  description: $,
21553
- album: L,
21264
+ album: F,
21554
21265
  image_url: g,
21555
21266
  audio_url: x,
21556
21267
  audio_url_lossless: P && P !== x ? P : void 0,
21557
21268
  ...E ? { selected_mix: E.name } : {},
21558
- duration: J,
21269
+ duration: Q,
21559
21270
  genre: X,
21560
21271
  tags: V,
21561
21272
  bpm: oe,
@@ -21583,7 +21294,7 @@ class lp {
21583
21294
  }
21584
21295
  }
21585
21296
  }
21586
- class cp {
21297
+ class Kh {
21587
21298
  /**
21588
21299
  * Initialize ColorExtractor with canvas for image processing
21589
21300
  * Canvas is only created in browser environments (safe for Node.js)
@@ -21792,7 +21503,7 @@ class cp {
21792
21503
  };
21793
21504
  }
21794
21505
  }
21795
- const Gt = ye.for("BeatSubdivider"), Od = {
21506
+ const Gt = ye.for("BeatSubdivider"), Ad = {
21796
21507
  tolerance: 0.02,
21797
21508
  // 20ms tolerance
21798
21509
  defaultIntensity: 0.5,
@@ -21808,7 +21519,7 @@ class nt {
21808
21519
  */
21809
21520
  constructor(e) {
21810
21521
  this.options = {
21811
- ...Od,
21522
+ ...Ad,
21812
21523
  ...e
21813
21524
  }, Gt.debug("BeatSubdivider initialized", { options: this.options });
21814
21525
  }
@@ -21823,13 +21534,13 @@ class nt {
21823
21534
  * @returns The subdivided beat map
21824
21535
  * @throws Error if configuration is invalid
21825
21536
  */
21826
- subdivide(e, t = Hi) {
21537
+ subdivide(e, t = Fi) {
21827
21538
  if (Gt.debug("Starting per-beat subdivision", {
21828
21539
  audioId: e.audioId,
21829
21540
  beatCount: e.beats.length,
21830
21541
  explicitAssignments: t.beatSubdivisions.size,
21831
21542
  defaultSubdivision: t.defaultSubdivision
21832
- }), on(t), ln(t, e.beats.length), e.beats.length === 0)
21543
+ }), nn(t), rn(t, e.beats.length), e.beats.length === 0)
21833
21544
  return this.createEmptySubdividedBeatMap(e, t);
21834
21545
  const a = /* @__PURE__ */ new Set();
21835
21546
  let i = 0;
@@ -21844,7 +21555,7 @@ class nt {
21844
21555
  for (let m = 0; m < e.beats.length; m++) {
21845
21556
  const f = t.beatSubdivisions.get(m) ?? t.defaultSubdivision;
21846
21557
  t.beatSubdivisions.has(m) && r++, a.add(f);
21847
- const y = cn(f);
21558
+ const y = on(f);
21848
21559
  i = Math.max(i, y);
21849
21560
  const b = e.beats[m], I = m < e.beats.length - 1 ? e.beats[m + 1] : null, C = e.detectedBeatIndices.includes(m);
21850
21561
  if (f === "rest" || f === "half" && b.beatInMeasure % 2 !== 0)
@@ -22295,7 +22006,7 @@ class nt {
22295
22006
  return nt.fromJSON(a);
22296
22007
  }
22297
22008
  }
22298
- class up {
22009
+ class Jh {
22299
22010
  // Track direction for change detection
22300
22011
  /**
22301
22012
  * Create a new GrooveAnalyzer instance
@@ -22303,7 +22014,7 @@ class up {
22303
22014
  * @param options - Optional configuration to customize groove analysis behavior
22304
22015
  */
22305
22016
  constructor(e) {
22306
- this.recentOffsets = [], this.establishedOffset = 0, this.pocketDirection = "neutral", this.hotness = 0, this.streakLength = 0, this.hitCount = 0, this.lastBpm = 120, this.grooveStartTime = null, this.maxHotness = 0, this.maxGrooveStreak = 0, this.hotnessSamples = [], this.grooveHitCount = 0, this.previousDirection = "neutral", this.options = { ...un, ...e };
22017
+ this.recentOffsets = [], this.establishedOffset = 0, this.pocketDirection = "neutral", this.hotness = 0, this.streakLength = 0, this.hitCount = 0, this.lastBpm = 120, this.grooveStartTime = null, this.maxHotness = 0, this.maxGrooveStreak = 0, this.hotnessSamples = [], this.grooveHitCount = 0, this.previousDirection = "neutral", this.options = { ...ln, ...e };
22307
22018
  }
22308
22019
  /**
22309
22020
  * Set difficulty level for groove penalties.
@@ -22328,7 +22039,7 @@ class up {
22328
22039
  * ```
22329
22040
  */
22330
22041
  setDifficulty(e) {
22331
- const t = dn(e.preset, e.customPenalties);
22042
+ const t = cn(e.preset, e.customPenalties);
22332
22043
  this.options.hotnessLossOnMiss = t.hotnessLossOnMiss, this.options.hotnessLossOnBreak = t.hotnessLossOnBreak;
22333
22044
  }
22334
22045
  /**
@@ -22509,7 +22220,7 @@ class up {
22509
22220
  * @returns Pocket window size in seconds
22510
22221
  */
22511
22222
  calculatePocketWindow(e) {
22512
- const a = hn(this.hotness) / 1e3, i = 120 / e;
22223
+ const a = un(this.hotness) / 1e3, i = 120 / e;
22513
22224
  return a * i;
22514
22225
  }
22515
22226
  /**
@@ -22548,8 +22259,8 @@ class up {
22548
22259
  return Math.abs(e) < this.options.neutralDeadZone ? "neutral" : e < 0 ? "push" : "pull";
22549
22260
  }
22550
22261
  }
22551
- function dp(s, e = Hi, t) {
22552
- const a = pn(s);
22262
+ function Qh(s, e = Fi, t) {
22263
+ const a = dn(s);
22553
22264
  return new nt(t).subdivide(a, e);
22554
22265
  }
22555
22266
  function Le(s) {
@@ -22564,7 +22275,7 @@ function Sa(s, e) {
22564
22275
  beats: e
22565
22276
  };
22566
22277
  }
22567
- function hp(s, e, t) {
22278
+ function ep(s, e, t) {
22568
22279
  const a = Le(s);
22569
22280
  if (e < 0 || e >= a.length)
22570
22281
  throw new Error(
@@ -22584,7 +22295,7 @@ function hp(s, e, t) {
22584
22295
  });
22585
22296
  return Sa(s, i);
22586
22297
  }
22587
- function pp(s, e) {
22298
+ function tp(s, e) {
22588
22299
  const t = Le(s), a = t.length;
22589
22300
  for (const r of e)
22590
22301
  if (r.beatIndex < 0 || r.beatIndex >= a)
@@ -22609,7 +22320,7 @@ function pp(s, e) {
22609
22320
  });
22610
22321
  return Sa(s, n);
22611
22322
  }
22612
- function mp(s) {
22323
+ function ap(s) {
22613
22324
  const e = Le(s), t = /* @__PURE__ */ new Map();
22614
22325
  for (let a = 0; a < e.length; a++) {
22615
22326
  const i = e[a];
@@ -22617,7 +22328,7 @@ function mp(s) {
22617
22328
  }
22618
22329
  return t;
22619
22330
  }
22620
- function gp(s) {
22331
+ function ip(s) {
22621
22332
  const t = Le(s).map((a) => {
22622
22333
  if (a.requiredKey === void 0)
22623
22334
  return a;
@@ -22626,20 +22337,20 @@ function gp(s) {
22626
22337
  });
22627
22338
  return Sa(s, t);
22628
22339
  }
22629
- function fp(s) {
22340
+ function sp(s) {
22630
22341
  return Le(s).some((t) => t.requiredKey !== void 0);
22631
22342
  }
22632
- function yp(s) {
22343
+ function np(s) {
22633
22344
  return Le(s).filter((t) => t.requiredKey !== void 0).length;
22634
22345
  }
22635
- function vp(s) {
22346
+ function rp(s) {
22636
22347
  const e = Le(s), t = /* @__PURE__ */ new Set();
22637
22348
  for (const a of e)
22638
22349
  a.requiredKey !== void 0 && t.add(a.requiredKey);
22639
22350
  return Array.from(t).sort();
22640
22351
  }
22641
22352
  const Y = ye.for("SubdivisionPlaybackController");
22642
- class bp {
22353
+ class op {
22643
22354
  /**
22644
22355
  * Create a new SubdivisionPlaybackController
22645
22356
  *
@@ -22665,7 +22376,7 @@ class bp {
22665
22376
  */
22666
22377
  constructor(e, t, a = {}) {
22667
22378
  this.unifiedMap = e, this.audioContext = t, this.options = {
22668
- ...mn,
22379
+ ...hn,
22669
22380
  ...a
22670
22381
  };
22671
22382
  const i = {
@@ -22685,7 +22396,7 @@ class bp {
22685
22396
  pendingMeasureNumber: null,
22686
22397
  transitionTimestamp: null,
22687
22398
  scheduledBeats: /* @__PURE__ */ new Map(),
22688
- thresholds: gn("medium")
22399
+ thresholds: pn("medium")
22689
22400
  }, this.subscribers = /* @__PURE__ */ new Set(), this.regenerateBeats(), Y.debug("SubdivisionPlaybackController initialized", {
22690
22401
  audioId: e.audioId,
22691
22402
  duration: e.duration,
@@ -22758,7 +22469,7 @@ class bp {
22758
22469
  * ```
22759
22470
  */
22760
22471
  setSubdivision(e) {
22761
- if (!fn(e))
22472
+ if (!mn(e))
22762
22473
  throw new Error(`Invalid subdivision type: ${e}`);
22763
22474
  if (this.state.currentSubdivision === e)
22764
22475
  return;
@@ -23239,7 +22950,7 @@ class bp {
23239
22950
  this.stop(), this.subscribers.clear(), this.state.scheduledBeats.clear(), Y.debug("SubdivisionPlaybackController disposed");
23240
22951
  }
23241
22952
  }
23242
- const Bd = [
22953
+ const Td = [
23243
22954
  0,
23244
22955
  // Level 1
23245
22956
  300,
@@ -23280,7 +22991,7 @@ const Bd = [
23280
22991
  // Level 19
23281
22992
  355e3
23282
22993
  // Level 20
23283
- ], Ld = {
22994
+ ], Cd = {
23284
22995
  stationary: 1,
23285
22996
  walking: 1.2,
23286
22997
  running: 1.5,
@@ -23296,18 +23007,18 @@ const Bd = [
23296
23007
  rhythm_game_groove: 0.5
23297
23008
  // +50% max from groove hotness
23298
23009
  };
23299
- class Gs {
23010
+ class Us {
23300
23011
  /**
23301
23012
  * Create a new XPCalculator
23302
23013
  * @param options - Configuration options for XP calculation
23303
23014
  */
23304
23015
  constructor(e) {
23305
23016
  this.config = {
23306
- level_thresholds: e?.level_thresholds || Bd,
23017
+ level_thresholds: e?.level_thresholds || Td,
23307
23018
  xp_per_second: e?.xp_per_second ?? 1,
23308
23019
  xp_per_track_completion: e?.xp_per_track_completion ?? 50,
23309
23020
  activity_bonuses: {
23310
- ...Ld,
23021
+ ...Cd,
23311
23022
  ...e?.activity_bonuses
23312
23023
  },
23313
23024
  track_mastery_threshold: e?.track_mastery_threshold ?? 10,
@@ -23510,13 +23221,13 @@ class Gs {
23510
23221
  return { ...this.config };
23511
23222
  }
23512
23223
  }
23513
- class wp {
23224
+ class lp {
23514
23225
  /**
23515
23226
  * Create a new SessionTracker
23516
23227
  * @param xpCalculator - Optional custom XPCalculator instance
23517
23228
  */
23518
23229
  constructor(e) {
23519
- this.activeSessions = /* @__PURE__ */ new Map(), this.sessionHistory = [], this.sessionCounter = 0, this.xpCalculator = e || new Gs();
23230
+ this.activeSessions = /* @__PURE__ */ new Map(), this.sessionHistory = [], this.sessionCounter = 0, this.xpCalculator = e || new Us();
23520
23231
  }
23521
23232
  /**
23522
23233
  * Start a new listening session
@@ -23727,7 +23438,7 @@ class wp {
23727
23438
  return Array.from(this.activeSessions.keys());
23728
23439
  }
23729
23440
  }
23730
- const $i = [4, 8, 12, 16, 19];
23441
+ const xi = [4, 8, 12, 16, 19];
23731
23442
  class ke {
23732
23443
  /**
23733
23444
  * Set configuration for uncapped mode progression
@@ -23781,7 +23492,7 @@ class ke {
23781
23492
  newHitPointsTotal: c,
23782
23493
  proficiencyBonusIncrease: d,
23783
23494
  newProficiencyBonus: u
23784
- }, p = n || $i.includes(t);
23495
+ }, p = n || xi.includes(t);
23785
23496
  if (this.statManager && p) {
23786
23497
  const m = this.statManager.processLevelUp(e, t);
23787
23498
  m && m.increases.length > 0 && (h.abilityScoreIncreases = m.increases.map((f) => ({
@@ -23791,7 +23502,7 @@ class ke {
23791
23502
  ability: m.increases[0].ability,
23792
23503
  increase: m.increases[0].delta
23793
23504
  }));
23794
- } else $i.includes(t) && (h.abilityScoreIncrease = {
23505
+ } else xi.includes(t) && (h.abilityScoreIncrease = {
23795
23506
  ability: "STR",
23796
23507
  // Default, can be customized by caller
23797
23508
  increase: 2
@@ -23963,7 +23674,7 @@ class ke {
23963
23674
  if (!t) {
23964
23675
  if (e < 1 || e > 20)
23965
23676
  throw new Error("Standard proficiency bonus only defined for levels 1-20");
23966
- return Xi[e];
23677
+ return Zi[e];
23967
23678
  }
23968
23679
  return this.uncappedConfig?.proficiencyBonusFormula ? this.uncappedConfig.proficiencyBonusFormula(e) : e <= 4 ? 2 : e <= 8 ? 3 : e <= 12 ? 4 : e <= 16 ? 5 : 2 + Math.floor((e - 1) / 4);
23969
23680
  }
@@ -24108,7 +23819,7 @@ class ke {
24108
23819
  e.equipment && re.reapplyEquipmentEffects(e);
24109
23820
  }
24110
23821
  }
24111
- class Fd {
23822
+ class Id {
24112
23823
  constructor() {
24113
23824
  this.name = "D&D 5e Standard";
24114
23825
  }
@@ -24125,7 +23836,7 @@ class Fd {
24125
23836
  return !e?.forcedAbilities || e.forcedAbilities.length === 0;
24126
23837
  }
24127
23838
  }
24128
- class Wd {
23839
+ class Md {
24129
23840
  constructor() {
24130
23841
  this.name = "D&D 5e Smart";
24131
23842
  }
@@ -24174,7 +23885,7 @@ class Wd {
24174
23885
  return i;
24175
23886
  }
24176
23887
  }
24177
- class Hd {
23888
+ class Ed {
24178
23889
  constructor() {
24179
23890
  this.name = "Balanced";
24180
23891
  }
@@ -24196,7 +23907,7 @@ class Hd {
24196
23907
  return !1;
24197
23908
  }
24198
23909
  }
24199
- class zd {
23910
+ class Dd {
24200
23911
  constructor() {
24201
23912
  this.name = "Primary Only";
24202
23913
  }
@@ -24219,7 +23930,7 @@ class zd {
24219
23930
  return i;
24220
23931
  }
24221
23932
  }
24222
- class qd {
23933
+ class Rd {
24223
23934
  constructor() {
24224
23935
  this.name = "Random";
24225
23936
  }
@@ -24236,7 +23947,7 @@ class qd {
24236
23947
  return !1;
24237
23948
  }
24238
23949
  }
24239
- class Ud {
23950
+ class xd {
24240
23951
  constructor() {
24241
23952
  this.name = "Manual";
24242
23953
  }
@@ -24247,7 +23958,7 @@ class Ud {
24247
23958
  return !0;
24248
23959
  }
24249
23960
  }
24250
- class jd {
23961
+ class Pd {
24251
23962
  constructor(e, t) {
24252
23963
  this.fn = e, this.name = t || "Custom Function";
24253
23964
  }
@@ -24258,36 +23969,36 @@ class jd {
24258
23969
  return !1;
24259
23970
  }
24260
23971
  }
24261
- function Ni(s) {
23972
+ function Pi(s) {
24262
23973
  if (typeof s != "string" && typeof s != "function")
24263
23974
  return s;
24264
23975
  if (typeof s == "function")
24265
- return new jd(s);
23976
+ return new Pd(s);
24266
23977
  switch (s) {
24267
23978
  case "dnD5e":
24268
- return new Fd();
23979
+ return new Id();
24269
23980
  case "dnD5e_smart":
24270
- return new Wd();
23981
+ return new Md();
24271
23982
  case "balanced":
24272
- return new Hd();
23983
+ return new Ed();
24273
23984
  case "primary_only":
24274
- return new zd();
23985
+ return new Dd();
24275
23986
  case "random":
24276
- return new qd();
23987
+ return new Rd();
24277
23988
  case "manual":
24278
- return new Ud();
23989
+ return new xd();
24279
23990
  default:
24280
23991
  const e = s;
24281
23992
  throw new Error(`Unknown strategy type: ${e}`);
24282
23993
  }
24283
23994
  }
24284
- const Oi = [4, 8, 12, 16, 19], Bi = {
23995
+ const $i = [4, 8, 12, 16, 19], Ni = {
24285
23996
  strategy: "dnD5e",
24286
23997
  autoApply: !0
24287
23998
  };
24288
- class Gd {
23999
+ class $d {
24289
24000
  constructor(e) {
24290
- this.config = this.mergeWithDefaults(e), this.strategy = Ni(this.config.strategy);
24001
+ this.config = this.mergeWithDefaults(e), this.strategy = Pi(this.config.strategy);
24291
24002
  }
24292
24003
  /**
24293
24004
  * Increase stats manually (e.g., from potions, items, events)
@@ -24388,7 +24099,7 @@ class Gd {
24388
24099
  * @returns Result with stat increases, or null if no increase at this level
24389
24100
  */
24390
24101
  processLevelUp(e, t, a) {
24391
- const n = (e.gameMode || "standard") === "uncapped", r = this.config.statIncreaseLevels?.length ? this.config.statIncreaseLevels : Oi;
24102
+ const n = (e.gameMode || "standard") === "uncapped", r = this.config.statIncreaseLevels?.length ? this.config.statIncreaseLevels : $i;
24392
24103
  if (!(n || r.includes(t)))
24393
24104
  return null;
24394
24105
  const c = this.strategy.selectIncreases(
@@ -24418,7 +24129,7 @@ class Gd {
24418
24129
  */
24419
24130
  updateConfig(e) {
24420
24131
  const t = this.config.strategy;
24421
- this.config = this.mergeWithDefaults(e), e.strategy && e.strategy !== t && (this.strategy = Ni(this.config.strategy));
24132
+ this.config = this.mergeWithDefaults(e), e.strategy && e.strategy !== t && (this.strategy = Pi(this.config.strategy));
24422
24133
  }
24423
24134
  /**
24424
24135
  * Get current configuration
@@ -24522,9 +24233,9 @@ class Gd {
24522
24233
  mergeWithDefaults(e) {
24523
24234
  return {
24524
24235
  maxStatCap: e?.maxStatCap ?? 20,
24525
- strategy: e?.strategy ?? Bi.strategy,
24526
- autoApply: e?.autoApply ?? Bi.autoApply,
24527
- statIncreaseLevels: e?.statIncreaseLevels ?? Oi
24236
+ strategy: e?.strategy ?? Ni.strategy,
24237
+ autoApply: e?.autoApply ?? Ni.autoApply,
24238
+ statIncreaseLevels: e?.statIncreaseLevels ?? $i
24528
24239
  };
24529
24240
  }
24530
24241
  }
@@ -24791,9 +24502,9 @@ const Ia = class Ia {
24791
24502
  };
24792
24503
  Ia.customThresholds = /* @__PURE__ */ new Map();
24793
24504
  let ae = Ia;
24794
- class Sp {
24505
+ class cp {
24795
24506
  constructor(e) {
24796
- this.xpCalculator = new Gs(), this.statManager = e, this.statManager && ke.setStatManager(this.statManager);
24507
+ this.xpCalculator = new Us(), this.statManager = e, this.statManager && ke.setStatManager(this.statManager);
24797
24508
  }
24798
24509
  /**
24799
24510
  * Add XP from any source (combat, quests, custom activities)
@@ -24831,7 +24542,7 @@ class Sp {
24831
24542
  };
24832
24543
  if (i.xp.current += t, !this.statManager) {
24833
24544
  const d = (i.gameMode || "standard") === "standard" ? "dnD5e" : "dnD5e_smart";
24834
- this.statManager = new Gd({ strategy: d }), ke.setStatManager(this.statManager);
24545
+ this.statManager = new $d({ strategy: d }), ke.setStatManager(this.statManager);
24835
24546
  }
24836
24547
  let n = !1, r;
24837
24548
  const o = [], l = i.gameMode === "uncapped", c = ke.calculateLevel(i.xp.current, l);
@@ -25142,7 +24853,7 @@ class Sp {
25142
24853
  return ae.getPrestigeInfo(i, n, r);
25143
24854
  }
25144
24855
  }
25145
- class _p {
24856
+ class up {
25146
24857
  /**
25147
24858
  * Create a new RhythmXPCalculator instance
25148
24859
  *
@@ -25392,7 +25103,7 @@ class _p {
25392
25103
  });
25393
25104
  }
25394
25105
  }
25395
- class kp {
25106
+ class dp {
25396
25107
  /**
25397
25108
  * Enchant equipment with new properties (creates per-instance modification)
25398
25109
  *
@@ -26050,7 +25761,7 @@ const oa = {
26050
25761
  tags: ["magic", "enhanced", "+2", "armor"]
26051
25762
  }
26052
25763
  };
26053
- class Vd {
25764
+ class Nd {
26054
25765
  /**
26055
25766
  * Open a box and generate its contents
26056
25767
  *
@@ -26314,7 +26025,7 @@ const Fe = {
26314
26025
  very_rare: 3,
26315
26026
  legendary: 4
26316
26027
  };
26317
- class Ap {
26028
+ class hp {
26318
26029
  /**
26319
26030
  * Spawn multiple items from an array of equipment names
26320
26031
  *
@@ -26637,7 +26348,7 @@ class Ap {
26637
26348
  const o = R.getInstance().get("equipment").find((d) => d.name === t);
26638
26349
  if (!o || o.type !== "box")
26639
26350
  return null;
26640
- const l = e.equipment.items, c = Vd.openBox(o, a, l);
26351
+ const l = e.equipment.items, c = Nd.openBox(o, a, l);
26641
26352
  if (!c.success)
26642
26353
  return { character: e, result: c };
26643
26354
  if (c.consumedItems && c.consumedItems.length > 0)
@@ -26714,7 +26425,7 @@ class Ap {
26714
26425
  }
26715
26426
  }
26716
26427
  const Vt = "geolocation_cache";
26717
- class Li {
26428
+ class Oi {
26718
26429
  constructor(e, t) {
26719
26430
  if (this.cache = null, this.cacheTTL = 300 * 1e3, this.cacheStats = { hits: 0, misses: 0 }, this.logger = ye.for("GeolocationProvider"), typeof e == "number" || e === void 0)
26720
26431
  this.cacheTTL = (e ?? 5) * 60 * 1e3, this.useLocalStorage = (t ?? !0) && this.isLocalStorageAvailable();
@@ -27009,7 +26720,7 @@ class Li {
27009
26720
  return e >= 7 && e <= 18 && t >= 275 && t <= 290 || e >= 33 && e <= 43 && t >= 124 && t <= 132 || e >= 36 && e <= 47 && t >= 8 && t <= 19 || e >= 36 && e <= 44 && t >= 358 && t <= 360 || e >= 36 && e <= 44 && t >= 0 && t <= 10 || e >= 55 && e <= 71 && t >= 4 && t <= 32 || e >= 24 && e <= 31 && t >= 268 && t <= 272 || e >= 55 && e <= 62 && t >= 210 && t <= 220 || e >= 50 && e <= 62 && t >= 156 && t <= 163;
27010
26721
  }
27011
26722
  }
27012
- class Zd {
26723
+ class Od {
27013
26724
  constructor() {
27014
26725
  this.logger = ye.for("MotionDetector"), this.isListening = !1, this.lastMotion = null, this.motionCallback = null, this.lastProcessedTime = 0, this.minSampleIntervalMs = 83, this.deltaBuffer = [], this.bufferSize = 24, this.confirmedActivity = "unknown", this.candidateActivity = null, this.candidateStartTime = 0, this.confirmationMs = 1500, this.handleMotion = (e) => {
27015
26726
  if (!this.isListening || !this.motionCallback) return;
@@ -27119,94 +26830,94 @@ class Zd {
27119
26830
  Date.now() - this.candidateStartTime >= this.confirmationMs && (this.confirmedActivity = a, this.candidateActivity = null);
27120
26831
  }
27121
26832
  }
27122
- const Vs = F({
27123
- id: _(),
27124
- main: A(),
27125
- description: A(),
27126
- icon: A().optional()
27127
- }), Zs = F({
27128
- temp: _(),
27129
- feels_like: _().optional(),
27130
- temp_min: _().optional(),
27131
- temp_max: _().optional(),
27132
- pressure: _(),
27133
- humidity: _().nonnegative(),
27134
- sea_level: _().optional(),
27135
- grnd_level: _().optional(),
27136
- temp_kf: _().optional()
27137
- }), Ys = F({
27138
- speed: _().nonnegative(),
27139
- deg: _().min(0).max(360).optional(),
27140
- gust: _().optional()
27141
- }), Xs = F({
27142
- all: _().min(0).max(100)
27143
- }), Yd = F({
27144
- type: _().optional(),
27145
- id: _().optional(),
27146
- country: A().optional(),
27147
- sunrise: _().nonnegative(),
27148
- sunset: _().nonnegative(),
27149
- pod: A().optional()
26833
+ const js = B({
26834
+ id: k(),
26835
+ main: _(),
26836
+ description: _(),
26837
+ icon: _().optional()
26838
+ }), Gs = B({
26839
+ temp: k(),
26840
+ feels_like: k().optional(),
26841
+ temp_min: k().optional(),
26842
+ temp_max: k().optional(),
26843
+ pressure: k(),
26844
+ humidity: k().nonnegative(),
26845
+ sea_level: k().optional(),
26846
+ grnd_level: k().optional(),
26847
+ temp_kf: k().optional()
26848
+ }), Vs = B({
26849
+ speed: k().nonnegative(),
26850
+ deg: k().min(0).max(360).optional(),
26851
+ gust: k().optional()
26852
+ }), Zs = B({
26853
+ all: k().min(0).max(100)
26854
+ }), Bd = B({
26855
+ type: k().optional(),
26856
+ id: k().optional(),
26857
+ country: _().optional(),
26858
+ sunrise: k().nonnegative(),
26859
+ sunset: k().nonnegative(),
26860
+ pod: _().optional()
27150
26861
  // Part of day (d/n) - forecast only
27151
- }), Ks = F({
27152
- "1h": _().optional(),
26862
+ }), Ys = B({
26863
+ "1h": k().optional(),
27153
26864
  // Precipitation volume for last 1 hour
27154
- "3h": _().optional()
26865
+ "3h": k().optional()
27155
26866
  // Precipitation volume for last 3 hours
27156
- }), Js = F({
27157
- "1h": _().optional(),
27158
- "3h": _().optional()
27159
- }), Qs = F({
27160
- lon: _().min(-180).max(180),
27161
- lat: _().min(-90).max(90)
27162
- }), Xd = F({
27163
- coord: Qs.optional(),
27164
- weather: te(Vs).min(1),
27165
- base: A().optional(),
27166
- main: Zs,
27167
- visibility: _().nonnegative().optional(),
27168
- wind: Ys.optional(),
27169
- rain: Ks.optional(),
27170
- snow: Js.optional(),
27171
- clouds: Xs.optional(),
27172
- dt: _().nonnegative(),
27173
- sys: Yd,
27174
- timezone: _().optional(),
27175
- id: _().optional(),
27176
- name: A().optional(),
27177
- cod: _().optional()
27178
- }), Kd = F({
27179
- dt: _().nonnegative(),
27180
- main: Zs,
27181
- weather: te(Vs).min(1),
27182
- clouds: Xs.optional(),
27183
- wind: Ys.optional(),
27184
- visibility: _().nonnegative().optional(),
27185
- pop: _().min(0).max(1).optional(),
26867
+ }), Xs = B({
26868
+ "1h": k().optional(),
26869
+ "3h": k().optional()
26870
+ }), Ks = B({
26871
+ lon: k().min(-180).max(180),
26872
+ lat: k().min(-90).max(90)
26873
+ }), Ld = B({
26874
+ coord: Ks.optional(),
26875
+ weather: J(js).min(1),
26876
+ base: _().optional(),
26877
+ main: Gs,
26878
+ visibility: k().nonnegative().optional(),
26879
+ wind: Vs.optional(),
26880
+ rain: Ys.optional(),
26881
+ snow: Xs.optional(),
26882
+ clouds: Zs.optional(),
26883
+ dt: k().nonnegative(),
26884
+ sys: Bd,
26885
+ timezone: k().optional(),
26886
+ id: k().optional(),
26887
+ name: _().optional(),
26888
+ cod: k().optional()
26889
+ }), Fd = B({
26890
+ dt: k().nonnegative(),
26891
+ main: Gs,
26892
+ weather: J(js).min(1),
26893
+ clouds: Zs.optional(),
26894
+ wind: Vs.optional(),
26895
+ visibility: k().nonnegative().optional(),
26896
+ pop: k().min(0).max(1).optional(),
27186
26897
  // Probability of precipitation
27187
- rain: Ks.optional(),
27188
- snow: Js.optional(),
27189
- sys: F({
27190
- pod: A().optional()
26898
+ rain: Ys.optional(),
26899
+ snow: Xs.optional(),
26900
+ sys: B({
26901
+ pod: _().optional()
27191
26902
  }).optional(),
27192
- dt_txt: A().optional()
27193
- }), Jd = F({
27194
- cod: ba([A(), _()]),
27195
- message: _().optional(),
27196
- cnt: _().nonnegative().optional(),
27197
- list: te(Kd).min(1),
27198
- city: F({
27199
- id: _(),
27200
- name: A(),
27201
- coord: Qs,
27202
- country: A().optional(),
27203
- population: _().optional(),
27204
- timezone: _().optional(),
27205
- sunrise: _().optional(),
27206
- sunset: _().optional()
26903
+ dt_txt: _().optional()
26904
+ }), Wd = B({
26905
+ cod: ba([_(), k()]),
26906
+ message: k().optional(),
26907
+ cnt: k().nonnegative().optional(),
26908
+ list: J(Fd).min(1),
26909
+ city: B({
26910
+ id: k(),
26911
+ name: _(),
26912
+ coord: Ks,
26913
+ country: _().optional(),
26914
+ population: k().optional(),
26915
+ timezone: k().optional(),
26916
+ sunrise: k().optional(),
26917
+ sunset: k().optional()
27207
26918
  }).optional()
27208
- }), Fi = "weather_api_cache";
27209
- class Qd {
26919
+ }), Bi = "weather_api_cache";
26920
+ class Hd {
27210
26921
  constructor(e, t, a) {
27211
26922
  if (this.baseUrl = "https://api.openweathermap.org/data/2.5/weather", this.forecastUrl = "https://api.openweathermap.org/data/2.5/forecast", this.cache = /* @__PURE__ */ new Map(), this.forecastCache = /* @__PURE__ */ new Map(), this.cacheTTL = 720 * 1e3, this.forecastCacheTTL = 3600 * 1e3, this.cacheStats = { hits: 0, misses: 0 }, this.logger = ye.for("WeatherAPIClient"), this.lastKnownLocation = null, this.weatherApiMetrics = {
27212
26923
  successCount: 0,
@@ -27246,7 +26957,7 @@ class Qd {
27246
26957
  */
27247
26958
  loadFromLocalStorage() {
27248
26959
  try {
27249
- const e = localStorage.getItem(Fi);
26960
+ const e = localStorage.getItem(Bi);
27250
26961
  if (e) {
27251
26962
  const t = JSON.parse(e), a = Date.now();
27252
26963
  for (const [i, n] of Object.entries(t))
@@ -27265,7 +26976,7 @@ class Qd {
27265
26976
  const e = {};
27266
26977
  for (const [t, a] of this.cache.entries())
27267
26978
  e[t] = a;
27268
- localStorage.setItem(Fi, JSON.stringify(e));
26979
+ localStorage.setItem(Bi, JSON.stringify(e));
27269
26980
  } catch (e) {
27270
26981
  this.logger.warn("Failed to save weather cache to localStorage", { error: e });
27271
26982
  }
@@ -27608,7 +27319,7 @@ class Qd {
27608
27319
  const o = `${this.baseUrl}?lat=${e}&lon=${t}&appid=${this.apiKey}&units=metric`, l = await fetch(o);
27609
27320
  if (!l.ok)
27610
27321
  throw new Error(`Weather API error: ${l.statusText}`);
27611
- const c = await l.json(), u = Xd.safeParse(c);
27322
+ const c = await l.json(), u = Ld.safeParse(c);
27612
27323
  if (!u.success)
27613
27324
  return this.logger.error("Weather API response validation failed", {
27614
27325
  errors: u.error.issues,
@@ -27727,7 +27438,7 @@ class Qd {
27727
27438
  const c = Math.ceil(i / 3), u = `${this.forecastUrl}?lat=${e}&lon=${t}&appid=${this.apiKey}&units=metric&cnt=${c}`, d = await fetch(u);
27728
27439
  if (!d.ok)
27729
27440
  throw new Error(`Weather Forecast API error: ${d.statusText}`);
27730
- const h = await d.json(), p = Jd.safeParse(h);
27441
+ const h = await d.json(), p = Wd.safeParse(h);
27731
27442
  if (!p.success)
27732
27443
  return this.logger.error("Weather Forecast API response validation failed", {
27733
27444
  errors: p.error.issues,
@@ -27930,26 +27641,26 @@ const w = {
27930
27641
  function ka(s) {
27931
27642
  return s.useColors === !1 ? !1 : typeof process < "u" && process.stdout?.isTTY === !0;
27932
27643
  }
27933
- function k(s, e, t) {
27644
+ function A(s, e, t) {
27934
27645
  return t ? `${e}${s}${w.reset}` : s;
27935
27646
  }
27936
- function eh(s, e) {
27647
+ function zd(s, e) {
27937
27648
  switch (s) {
27938
27649
  case "healthy":
27939
- return k("●", w.green, e);
27650
+ return A("●", w.green, e);
27940
27651
  case "degraded":
27941
- return k("●", w.yellow, e);
27652
+ return A("●", w.yellow, e);
27942
27653
  case "failed":
27943
- return k("●", w.red, e);
27654
+ return A("●", w.red, e);
27944
27655
  default:
27945
- return k("○", w.dim, e);
27656
+ return A("○", w.dim, e);
27946
27657
  }
27947
27658
  }
27948
- function th(s, e) {
27949
- return s ? k("✓ Granted", w.green, e) : k("✗ Denied", w.red, e);
27659
+ function qd(s, e) {
27660
+ return s ? A("✓ Granted", w.green, e) : A("✗ Denied", w.red, e);
27950
27661
  }
27951
- function ah(s, e) {
27952
- return s ? k("Available", w.green, e) : k("Unavailable", w.red, e);
27662
+ function Ud(s, e) {
27663
+ return s ? A("Available", w.green, e) : A("Unavailable", w.red, e);
27953
27664
  }
27954
27665
  function Aa(s) {
27955
27666
  const e = new Date(s), t = e.getHours().toString().padStart(2, "0"), a = e.getMinutes().toString().padStart(2, "0"), i = e.getSeconds().toString().padStart(2, "0");
@@ -27958,7 +27669,7 @@ function Aa(s) {
27958
27669
  function Qe(s) {
27959
27670
  return s < 1e3 ? `${s}ms` : s < 6e4 ? `${(s / 1e3).toFixed(1)}s` : s < 36e5 ? `${Math.floor(s / 6e4)}m ${Math.floor(s % 6e4 / 1e3)}s` : `${Math.floor(s / 36e5)}h ${Math.floor(s % 36e5 / 6e4)}m`;
27960
27671
  }
27961
- function Wi(s, e) {
27672
+ function Li(s, e) {
27962
27673
  const t = s + e;
27963
27674
  return t === 0 ? "N/A" : `${(s / t * 100).toFixed(1)}%`;
27964
27675
  }
@@ -27966,7 +27677,7 @@ function Rt(s, e) {
27966
27677
  const t = [], a = s.totalCalls > 0;
27967
27678
  if (t.push(` Calls: ${s.totalCalls}`), t.push(` Success: ${a ? `${s.successRate.toFixed(1)}%` : "N/A"}`), a) {
27968
27679
  const i = s.average < 500 ? w.green : s.average < 1500 ? w.yellow : w.red;
27969
- t.push(` Avg Time: ${k(`${s.average}ms`, i, e)}`), t.push(` Min/Avg/Max: ${s.min}/${s.average}/${s.max}ms`), t.push(` P95/P99: ${s.p95}/${s.p99}ms`);
27680
+ t.push(` Avg Time: ${A(`${s.average}ms`, i, e)}`), t.push(` Min/Avg/Max: ${s.min}/${s.average}/${s.max}ms`), t.push(` P95/P99: ${s.p95}/${s.p99}ms`);
27970
27681
  } else
27971
27682
  t.push(" Avg Time: N/A");
27972
27683
  return t;
@@ -27982,19 +27693,19 @@ ${" ".repeat(i)}${o}${" ".repeat(n)}
27982
27693
  ${r}
27983
27694
  `;
27984
27695
  }
27985
- function en(s, e = {}) {
27696
+ function Js(s, e = {}) {
27986
27697
  const t = { ..._a, ...e }, a = ka(t), i = 60;
27987
- console.log(Ta("ENVIRONMENTAL SENSORS", i, a)), t.showTimestamp && (console.log(`${k("Timestamp:", w.dim, a)} ${Aa(s.timestamp)}`), console.log(`${k("Diagnostic Mode:", w.dim, a)} ${s.diagnosticMode ? k("ENABLED", w.yellow, a) : "Disabled"}`), console.log("")), console.log(k("┌─ SENSOR STATUS", w.cyan, a)), console.log(ce(22) + (a ? w.reset : ""));
27698
+ console.log(Ta("ENVIRONMENTAL SENSORS", i, a)), t.showTimestamp && (console.log(`${A("Timestamp:", w.dim, a)} ${Aa(s.timestamp)}`), console.log(`${A("Diagnostic Mode:", w.dim, a)} ${s.diagnosticMode ? A("ENABLED", w.yellow, a) : "Disabled"}`), console.log("")), console.log(A("┌─ SENSOR STATUS", w.cyan, a)), console.log(ce(22) + (a ? w.reset : ""));
27988
27699
  for (const o of s.sensors) {
27989
- const l = eh(o.status.health, a), c = k(
27700
+ const l = zd(o.status.health, a), c = A(
27990
27701
  o.status.health.toUpperCase().padEnd(8),
27991
27702
  o.status.health === "healthy" ? w.green : o.status.health === "failed" ? w.red : w.yellow,
27992
27703
  a
27993
27704
  );
27994
27705
  if (console.log(`
27995
- ${k(o.type.toUpperCase().padEnd(12), w.bright, a)}`), console.log(` Health: ${l} ${c}`), console.log(` Permission: ${th(o.permission, a)}`), console.log(` Availability:${ah(o.availability, a)}`), o.status.consecutiveFailures > 0 && console.log(` Failures: ${k(o.status.consecutiveFailures.toString(), w.red, a)} consecutive`), o.status.lastError) {
27706
+ ${A(o.type.toUpperCase().padEnd(12), w.bright, a)}`), console.log(` Health: ${l} ${c}`), console.log(` Permission: ${qd(o.permission, a)}`), console.log(` Availability:${Ud(o.availability, a)}`), o.status.consecutiveFailures > 0 && console.log(` Failures: ${A(o.status.consecutiveFailures.toString(), w.red, a)} consecutive`), o.status.lastError) {
27996
27707
  const u = o.status.lastError.length > 40 ? o.status.lastError.substring(0, 37) + "..." : o.status.lastError;
27997
- console.log(` Last Error: ${k(u, w.red, a)}`);
27708
+ console.log(` Last Error: ${A(u, w.red, a)}`);
27998
27709
  }
27999
27710
  if (o.status.lastSuccessTimestamp) {
28000
27711
  const u = Date.now() - o.status.lastSuccessTimestamp;
@@ -28002,58 +27713,58 @@ function en(s, e = {}) {
28002
27713
  }
28003
27714
  }
28004
27715
  console.log(`
28005
- ${k("┌─ CACHE STATISTICS", w.cyan, a)}`), console.log(ce(22) + (a ? w.reset : "")), console.log(`
28006
- ${k("GEOLOCATION", w.bright, a)}`), console.log(` Cache Age: ${s.cache.geolocation.age !== null ? Qe(s.cache.geolocation.age) : "N/A"}`), console.log(` Expired: ${s.cache.geolocation.isExpired ? k("Yes", w.red, a) : k("No", w.green, a)}`), console.log(` Hit Rate: ${Wi(s.cache.geolocation.stats.hits, s.cache.geolocation.stats.misses)} (${s.cache.geolocation.stats.hits}h/${s.cache.geolocation.stats.misses}m)`), console.log(`
28007
- ${k("WEATHER API", w.bright, a)}`), console.log(` Cache Size: ${s.cache.weather.size} entries`), console.log(" TTL: 12 minutes"), console.log(` Hit Rate: ${Wi(s.cache.weather.stats.hits, s.cache.weather.stats.misses)} (${s.cache.weather.stats.hits}h/${s.cache.weather.stats.misses}m)`), console.log(`
28008
- ${k("┌─ API PERFORMANCE", w.cyan, a)}`), console.log(ce(20) + (a ? w.reset : "")), console.log(`
28009
- ${k("WEATHER API", w.bright, a)}`);
27716
+ ${A("┌─ CACHE STATISTICS", w.cyan, a)}`), console.log(ce(22) + (a ? w.reset : "")), console.log(`
27717
+ ${A("GEOLOCATION", w.bright, a)}`), console.log(` Cache Age: ${s.cache.geolocation.age !== null ? Qe(s.cache.geolocation.age) : "N/A"}`), console.log(` Expired: ${s.cache.geolocation.isExpired ? A("Yes", w.red, a) : A("No", w.green, a)}`), console.log(` Hit Rate: ${Li(s.cache.geolocation.stats.hits, s.cache.geolocation.stats.misses)} (${s.cache.geolocation.stats.hits}h/${s.cache.geolocation.stats.misses}m)`), console.log(`
27718
+ ${A("WEATHER API", w.bright, a)}`), console.log(` Cache Size: ${s.cache.weather.size} entries`), console.log(" TTL: 12 minutes"), console.log(` Hit Rate: ${Li(s.cache.weather.stats.hits, s.cache.weather.stats.misses)} (${s.cache.weather.stats.hits}h/${s.cache.weather.stats.misses}m)`), console.log(`
27719
+ ${A("┌─ API PERFORMANCE", w.cyan, a)}`), console.log(ce(20) + (a ? w.reset : "")), console.log(`
27720
+ ${A("WEATHER API", w.bright, a)}`);
28010
27721
  const n = Rt(s.performance.weatherApi, a);
28011
27722
  for (const o of n)
28012
27723
  console.log(o);
28013
27724
  console.log(`
28014
- ${k("FORECAST API", w.bright, a)}`);
27725
+ ${A("FORECAST API", w.bright, a)}`);
28015
27726
  const r = Rt(s.performance.forecastApi, a);
28016
27727
  for (const o of r)
28017
27728
  console.log(o);
28018
27729
  if (s.recentFailures.length > 0) {
28019
27730
  const o = s.recentFailures.slice(0, t.maxFailures);
28020
27731
  console.log(`
28021
- ${k("┌─ RECENT FAILURES", w.red, a)}`), console.log(ce(22) + (a ? w.reset : ""));
27732
+ ${A("┌─ RECENT FAILURES", w.red, a)}`), console.log(ce(22) + (a ? w.reset : ""));
28022
27733
  for (const l of o) {
28023
27734
  const c = Qe(Date.now() - l.timestamp);
28024
27735
  console.log(`
28025
- ${k(l.sensorType.toUpperCase(), w.bright, a)} - ${k(c, w.dim, a)} ago`), console.log(` Error: ${k(l.error, w.red, a)}`), console.log(` Retry: ${l.retryAttempt}${l.willRetry ? " (will retry)" : " (final)"}`);
27736
+ ${A(l.sensorType.toUpperCase(), w.bright, a)} - ${A(c, w.dim, a)} ago`), console.log(` Error: ${A(l.error, w.red, a)}`), console.log(` Retry: ${l.retryAttempt}${l.willRetry ? " (will retry)" : " (final)"}`);
28026
27737
  }
28027
27738
  }
28028
27739
  console.log(`
28029
- ${k("┌─ CONTEXT DATA", w.cyan, a)}`), console.log(ce(17) + (a ? w.reset : "")), console.log(`
28030
- Geolocation: ${s.context.hasGeolocation ? k("✓", w.green, a) : k("✗", w.red, a)}`), console.log(` Motion: ${s.context.hasMotion ? k("✓", w.green, a) : k("✗", w.red, a)}`), console.log(` Weather: ${s.context.hasWeather ? k("✓", w.green, a) : k("✗", w.red, a)}`), console.log(` Biome: ${s.context.hasBiome ? k("✓", w.green, a) : k("✗", w.red, a)}`), console.log(`
27740
+ ${A("┌─ CONTEXT DATA", w.cyan, a)}`), console.log(ce(17) + (a ? w.reset : "")), console.log(`
27741
+ Geolocation: ${s.context.hasGeolocation ? A("✓", w.green, a) : A("✗", w.red, a)}`), console.log(` Motion: ${s.context.hasMotion ? A("✓", w.green, a) : A("✗", w.red, a)}`), console.log(` Weather: ${s.context.hasWeather ? A("✓", w.green, a) : A("✗", w.red, a)}`), console.log(` Biome: ${s.context.hasBiome ? A("✓", w.green, a) : A("✗", w.red, a)}`), console.log(`
28031
27742
  ${ce(i)}
28032
27743
  `);
28033
27744
  }
28034
- function tn(s, e = {}) {
27745
+ function Qs(s, e = {}) {
28035
27746
  const t = { ..._a, ...e }, a = ka(t), i = 60;
28036
- console.log(Ta("GAMING PLATFORM SENSORS", i, a)), t.showTimestamp && console.log(`${k("Timestamp:", w.dim, a)} ${Aa(s.timestamp)}
28037
- `), console.log(k("┌─ PLATFORM STATUS", w.cyan, a)), console.log(ce(22) + (a ? w.reset : "")), console.log(`
28038
- ${k("STEAM", w.bright, a)}`), console.log(` Authenticated: ${s.steam.isAuthenticated ? k("✓", w.green, a) : k("✗", w.red, a)}`), console.log(` API Key: ${s.steam.apiKey ? k("✓ Configured", w.green, a) : k("✗ Missing", w.red, a)}`), s.steam.userId && console.log(` User ID: ${s.steam.userId}`), console.log(`
28039
- ${k("┌─ GAMING CONTEXT", w.cyan, a)}`), console.log(ce(20) + (a ? w.reset : ""));
27747
+ console.log(Ta("GAMING PLATFORM SENSORS", i, a)), t.showTimestamp && console.log(`${A("Timestamp:", w.dim, a)} ${Aa(s.timestamp)}
27748
+ `), console.log(A("┌─ PLATFORM STATUS", w.cyan, a)), console.log(ce(22) + (a ? w.reset : "")), console.log(`
27749
+ ${A("STEAM", w.bright, a)}`), console.log(` Authenticated: ${s.steam.isAuthenticated ? A("✓", w.green, a) : A("✗", w.red, a)}`), console.log(` API Key: ${s.steam.apiKey ? A("✓ Configured", w.green, a) : A("✗ Missing", w.red, a)}`), s.steam.userId && console.log(` User ID: ${s.steam.userId}`), console.log(`
27750
+ ${A("┌─ GAMING CONTEXT", w.cyan, a)}`), console.log(ce(20) + (a ? w.reset : ""));
28040
27751
  const n = s.gamingContext.isActivelyGaming;
28041
27752
  if (console.log(`
28042
- Active Gaming: ${n ? k("✓ Yes", w.green, a) : k("✗ No", w.dim, a)}`), console.log(` Platform: ${k(s.gamingContext.platformSource.toUpperCase(), n ? w.green : w.dim, a)}`), s.gamingContext.currentGame) {
27753
+ Active Gaming: ${n ? A("✓ Yes", w.green, a) : A("✗ No", w.dim, a)}`), console.log(` Platform: ${A(s.gamingContext.platformSource.toUpperCase(), n ? w.green : w.dim, a)}`), s.gamingContext.currentGame) {
28043
27754
  const l = s.gamingContext.currentGame;
28044
27755
  console.log(`
28045
- ${k("Current Game:", w.bright, a)}`), console.log(` Name: ${k(l.name, w.cyan, a)}`), console.log(` Source: ${l.source}`), l.genre && l.genre.length > 0 && console.log(` Genre: ${l.genre.join(", ")}`), l.sessionDuration && console.log(` Session: ${Qe(l.sessionDuration * 1e3 * 60)}`), l.partySize && console.log(` Party: ${l.partySize} player${l.partySize > 1 ? "s" : ""}`);
27756
+ ${A("Current Game:", w.bright, a)}`), console.log(` Name: ${A(l.name, w.cyan, a)}`), console.log(` Source: ${l.source}`), l.genre && l.genre.length > 0 && console.log(` Genre: ${l.genre.join(", ")}`), l.sessionDuration && console.log(` Session: ${Qe(l.sessionDuration * 1e3 * 60)}`), l.partySize && console.log(` Party: ${l.partySize} player${l.partySize > 1 ? "s" : ""}`);
28046
27757
  }
28047
27758
  if (s.gamingContext.gamesPlayedWhileListening.length > 0) {
28048
27759
  console.log(`
28049
- ${k("Games While Listening:", w.bright, a)}`);
27760
+ ${A("Games While Listening:", w.bright, a)}`);
28050
27761
  for (const l of s.gamingContext.gamesPlayedWhileListening)
28051
27762
  console.log(` • ${l}`);
28052
27763
  }
28053
27764
  if (console.log(`
28054
- ${k("┌─ POLLING STATUS", w.cyan, a)}`), console.log(ce(19) + (a ? w.reset : "")), console.log(`
28055
- Active: ${s.polling.isActive ? k("✓", w.green, a) : k("✗", w.dim, a)}`), console.log(` Interval: ${Qe(s.polling.intervalMs)}`), s.polling.exponentialBackoff > 1 && console.log(` Backoff: ${k(`${s.polling.exponentialBackoff}x`, w.yellow, a)}`), console.log(`
28056
- ${k("┌─ CACHE", w.cyan, a)}`), console.log(ce(10) + (a ? w.reset : "")), console.log(`
27765
+ ${A("┌─ POLLING STATUS", w.cyan, a)}`), console.log(ce(19) + (a ? w.reset : "")), console.log(`
27766
+ Active: ${s.polling.isActive ? A("✓", w.green, a) : A("✗", w.dim, a)}`), console.log(` Interval: ${Qe(s.polling.intervalMs)}`), s.polling.exponentialBackoff > 1 && console.log(` Backoff: ${A(`${s.polling.exponentialBackoff}x`, w.yellow, a)}`), console.log(`
27767
+ ${A("┌─ CACHE", w.cyan, a)}`), console.log(ce(10) + (a ? w.reset : "")), console.log(`
28057
27768
  Game Metadata: ${s.cache.gameMetadataCacheSize} entries`), s.cache.cachedGames.length > 0) {
28058
27769
  console.log(" Cached Games:");
28059
27770
  for (const l of s.cache.cachedGames.slice(0, 5))
@@ -28061,13 +27772,13 @@ ${k("┌─ CACHE", w.cyan, a)}`), console.log(ce(10) + (a ? w.reset : "")), con
28061
27772
  s.cache.cachedGames.length > 5 && console.log(` ... and ${s.cache.cachedGames.length - 5} more`);
28062
27773
  }
28063
27774
  console.log(`
28064
- ${k("┌─ API PERFORMANCE", w.cyan, a)}`), console.log(ce(20) + (a ? w.reset : "")), console.log(`
28065
- ${k("CURRENT GAME API", w.bright, a)}`);
27775
+ ${A("┌─ API PERFORMANCE", w.cyan, a)}`), console.log(ce(20) + (a ? w.reset : "")), console.log(`
27776
+ ${A("CURRENT GAME API", w.bright, a)}`);
28066
27777
  const r = Rt(s.performance.currentGameApi, a);
28067
27778
  for (const l of r)
28068
27779
  console.log(l);
28069
27780
  console.log(`
28070
- ${k("METADATA API", w.bright, a)}`);
27781
+ ${A("METADATA API", w.bright, a)}`);
28071
27782
  const o = Rt(s.performance.metadataApi, a);
28072
27783
  for (const l of o)
28073
27784
  console.log(l);
@@ -28075,33 +27786,33 @@ ${k("┌─ API PERFORMANCE", w.cyan, a)}`), console.log(ce(20) + (a ? w.reset :
28075
27786
  ${ce(i)}
28076
27787
  `);
28077
27788
  }
28078
- function ih(s, e = {}) {
27789
+ function jd(s, e = {}) {
28079
27790
  const t = { ..._a, ...e }, a = ka(t);
28080
27791
  if (console.log(Ta("SENSOR SYSTEM DASHBOARD", 70, a)), t.showTimestamp) {
28081
27792
  const n = s.environmental?.timestamp || s.gaming?.timestamp || Date.now();
28082
- console.log(`${k("Generated:", w.dim, a)} ${Aa(n)}
27793
+ console.log(`${A("Generated:", w.dim, a)} ${Aa(n)}
28083
27794
  `);
28084
27795
  }
28085
- if (console.log(k("┌─ QUICK HEALTH SUMMARY", w.cyan, a)), console.log(ce(26) + (a ? w.reset : "")), s.environmental) {
27796
+ if (console.log(A("┌─ QUICK HEALTH SUMMARY", w.cyan, a)), console.log(ce(26) + (a ? w.reset : "")), s.environmental) {
28086
27797
  let n = 0;
28087
27798
  for (const o of s.environmental.sensors)
28088
27799
  o.status.health === "healthy" && n++;
28089
27800
  const r = n === s.environmental.sensors.length;
28090
27801
  console.log(`
28091
- Environmental: ${r ? k(`✓ ${n}/${n} Healthy`, w.green, a) : k(`⚠ ${n}/${s.environmental.sensors.length} Healthy`, w.yellow, a)}`);
27802
+ Environmental: ${r ? A(`✓ ${n}/${n} Healthy`, w.green, a) : A(`⚠ ${n}/${s.environmental.sensors.length} Healthy`, w.yellow, a)}`);
28092
27803
  }
28093
27804
  if (s.gaming) {
28094
27805
  const n = s.gaming.steam.isAuthenticated;
28095
- console.log(` Gaming: ${n ? k("✓ Connected", w.green, a) : k("✗ Disconnected", w.dim, a)}`);
27806
+ console.log(` Gaming: ${n ? A("✓ Connected", w.green, a) : A("✗ Disconnected", w.dim, a)}`);
28096
27807
  }
28097
- console.log(""), s.environmental && en(s.environmental, t), s.gaming && tn(s.gaming, t);
27808
+ console.log(""), s.environmental && Js(s.environmental, t), s.gaming && Qs(s.gaming, t);
28098
27809
  }
28099
- const an = {
28100
- displayEnvironmentalDiagnostics: en,
28101
- displayGamingDiagnostics: tn,
28102
- displaySystemDashboard: ih
27810
+ const en = {
27811
+ displayEnvironmentalDiagnostics: Js,
27812
+ displayGamingDiagnostics: Qs,
27813
+ displaySystemDashboard: jd
28103
27814
  };
28104
- class Tp {
27815
+ class pp {
28105
27816
  /**
28106
27817
  * Initialize environmental sensors with optional weather API key, retry config, or full config
28107
27818
  *
@@ -28149,7 +27860,7 @@ class Tp {
28149
27860
  const n = e;
28150
27861
  a = n.weather?.apiKey ?? "", i = n.geolocation, n.retry && (this.retryConfig = { ...this.retryConfig, ...n.retry }), n.xpModifier && (this.xpConfig = { ...this.xpConfig, ...n.xpModifier });
28151
27862
  }
28152
- this.geolocation = i ? new Li(i) : new Li(), this.motion = new Zd(), this.weather = new Qd(a), this.initializeSensorStatuses();
27863
+ this.geolocation = i ? new Oi(i) : new Oi(), this.motion = new Od(), this.weather = new Hd(a), this.initializeSensorStatuses();
28153
27864
  }
28154
27865
  /**
28155
27866
  * Initialize sensor statuses to 'unknown' state
@@ -28642,7 +28353,7 @@ class Tp {
28642
28353
  * sensors.printDashboard({ useColors: false, compact: true });
28643
28354
  */
28644
28355
  printDashboard(e) {
28645
- an.displayEnvironmentalDiagnostics(this.getDiagnostics(), e);
28356
+ en.displayEnvironmentalDiagnostics(this.getDiagnostics(), e);
28646
28357
  }
28647
28358
  /**
28648
28359
  * Get solar information including sunrise, sunset, and day stage.
@@ -28670,7 +28381,7 @@ class Tp {
28670
28381
  return this.weather.getSolarInfo(e, t, a);
28671
28382
  }
28672
28383
  }
28673
- class sh {
28384
+ class Gd {
28674
28385
  constructor(e = "") {
28675
28386
  this.baseUrl = "https://api.steampowered.com", this.logger = ye.for("SteamAPIClient"), this.currentGameApiMetrics = {
28676
28387
  successCount: 0,
@@ -28860,7 +28571,7 @@ class sh {
28860
28571
  }
28861
28572
  }
28862
28573
  }
28863
- class Cp {
28574
+ class mp {
28864
28575
  // 24 hours
28865
28576
  /**
28866
28577
  * Initialize GamingPlatformSensors with optional Steam configuration
@@ -28888,7 +28599,7 @@ class Cp {
28888
28599
  totalGamingMinutes: 0,
28889
28600
  gamesPlayedWhileListening: [],
28890
28601
  lastUpdated: Date.now()
28891
- }, this.contextCallback = null, this.gameMetadataCache = /* @__PURE__ */ new Map(), this.cacheExpiryMs = 864e5, "steam" in e && e.steam && (this.steamApiKey = e.steam.apiKey, this.steamUserId = e.steam.steamId, e.steam.pollInterval && (this.pollIntervalMs = e.steam.pollInterval)), "metadataCacheExpiry" in e && e.metadataCacheExpiry && (this.cacheExpiryMs = e.metadataCacheExpiry), "maxBackoffMs" in e && e.maxBackoffMs && (this.maxBackoffMs = e.maxBackoffMs), "xpModifier" in e && e.xpModifier && (this.xpConfig = { ...this.xpConfig, ...e.xpModifier }), this.steam = new sh(this.steamApiKey);
28602
+ }, this.contextCallback = null, this.gameMetadataCache = /* @__PURE__ */ new Map(), this.cacheExpiryMs = 864e5, "steam" in e && e.steam && (this.steamApiKey = e.steam.apiKey, this.steamUserId = e.steam.steamId, e.steam.pollInterval && (this.pollIntervalMs = e.steam.pollInterval)), "metadataCacheExpiry" in e && e.metadataCacheExpiry && (this.cacheExpiryMs = e.metadataCacheExpiry), "maxBackoffMs" in e && e.maxBackoffMs && (this.maxBackoffMs = e.maxBackoffMs), "xpModifier" in e && e.xpModifier && (this.xpConfig = { ...this.xpConfig, ...e.xpModifier }), this.steam = new Gd(this.steamApiKey);
28892
28603
  }
28893
28604
  /**
28894
28605
  * Authenticate with Steam
@@ -29059,10 +28770,10 @@ class Cp {
29059
28770
  * gamingSensors.printDashboard({ useColors: false, compact: true });
29060
28771
  */
29061
28772
  printDashboard(e) {
29062
- an.displayGamingDiagnostics(this.getDiagnostics(), e);
28773
+ en.displayGamingDiagnostics(this.getDiagnostics(), e);
29063
28774
  }
29064
28775
  }
29065
- const nh = {
28776
+ const Vd = {
29066
28777
  geolocation: {
29067
28778
  cacheTTL: 300 * 1e3,
29068
28779
  // 5 minutes
@@ -29114,7 +28825,7 @@ const nh = {
29114
28825
  backoffMultiplier: 2
29115
28826
  }
29116
28827
  };
29117
- function rh() {
28828
+ function Zd() {
29118
28829
  const s = {};
29119
28830
  if (typeof process < "u" && process.env?.WEATHER_API_KEY && (s.weather = { ...s.weather, apiKey: process.env.WEATHER_API_KEY }), typeof process < "u" && process.env?.STEAM_API_KEY && (s.gaming = {
29120
28831
  ...s.gaming,
@@ -29128,9 +28839,9 @@ function rh() {
29128
28839
  }
29129
28840
  return s;
29130
28841
  }
29131
- function Ip(s = {}) {
29132
- const e = rh();
29133
- return la(nh, la(e, s));
28842
+ function gp(s = {}) {
28843
+ const e = Zd();
28844
+ return la(Vd, la(e, s));
29134
28845
  }
29135
28846
  function la(s, e) {
29136
28847
  const t = { ...s };
@@ -29140,7 +28851,7 @@ function la(s, e) {
29140
28851
  }
29141
28852
  return t;
29142
28853
  }
29143
- const oh = [
28854
+ const Yd = [
29144
28855
  0,
29145
28856
  300,
29146
28857
  900,
@@ -29163,7 +28874,7 @@ const oh = [
29163
28874
  355e3
29164
28875
  ], Ke = {
29165
28876
  xp: {
29166
- level_thresholds: oh,
28877
+ level_thresholds: Yd,
29167
28878
  xp_per_second: 1,
29168
28879
  xp_per_track_completion: 50,
29169
28880
  activity_bonuses: {
@@ -29199,7 +28910,7 @@ const oh = [
29199
28910
  showNotifications: !0
29200
28911
  }
29201
28912
  };
29202
- function Mp(s) {
28913
+ function fp(s) {
29203
28914
  return s ? {
29204
28915
  xp: {
29205
28916
  ...Ke.xp,
@@ -31782,25 +31493,25 @@ class ve {
31782
31493
  };
31783
31494
  }
31784
31495
  }
31785
- const Ep = S.WEAPON_ENCHANTMENTS, Dp = S.ARMOR_ENCHANTMENTS, Rp = S.RESISTANCE_ENCHANTMENTS, xp = S.CURSES, Pp = S.ALL_ENCHANTMENTS, $p = (s) => ve.getEnchantment(s), Np = (s) => ve.getCurse(s), Op = () => ve.getAllEnchantments(), Bp = () => ve.getAllCurses(), Lp = (s) => ve.getEnchantmentsByType(s), Fp = (s) => ve.createStrengthEnchantment(s), Wp = (s) => ve.createDexterityEnchantment(s), Hp = (s) => ve.createConstitutionEnchantment(s), zp = (s) => ve.createIntelligenceEnchantment(s), qp = (s) => ve.createWisdomEnchantment(s), Up = (s) => ve.createCharismaEnchantment(s);
31786
- function jp(s) {
31496
+ const yp = S.WEAPON_ENCHANTMENTS, vp = S.ARMOR_ENCHANTMENTS, bp = S.RESISTANCE_ENCHANTMENTS, wp = S.CURSES, Sp = S.ALL_ENCHANTMENTS, _p = (s) => ve.getEnchantment(s), kp = (s) => ve.getCurse(s), Ap = () => ve.getAllEnchantments(), Tp = () => ve.getAllCurses(), Cp = (s) => ve.getEnchantmentsByType(s), Ip = (s) => ve.createStrengthEnchantment(s), Mp = (s) => ve.createDexterityEnchantment(s), Ep = (s) => ve.createConstitutionEnchantment(s), Dp = (s) => ve.createIntelligenceEnchantment(s), Rp = (s) => ve.createWisdomEnchantment(s), xp = (s) => ve.createCharismaEnchantment(s);
31497
+ function Pp(s) {
31787
31498
  return rt.find((e) => e.name === s);
31788
31499
  }
31789
- function Gp(s) {
31500
+ function $p(s) {
31790
31501
  return rt.filter((e) => e.type === s);
31791
31502
  }
31792
- function Vp(s) {
31503
+ function Np(s) {
31793
31504
  return rt.filter((e) => e.rarity === s);
31794
31505
  }
31795
- function Zp() {
31506
+ function Op() {
31796
31507
  return rt.filter((s) => s.tags?.includes("cursed"));
31797
31508
  }
31798
- function Yp(s) {
31509
+ function Bp(s) {
31799
31510
  return rt.filter(
31800
31511
  (e) => e.properties?.some((t) => t.type === s)
31801
31512
  );
31802
31513
  }
31803
- function Xp(s, e) {
31514
+ function Lp(s, e) {
31804
31515
  const t = oa[e];
31805
31516
  return t ? {
31806
31517
  ...s,
@@ -31820,379 +31531,389 @@ function Xp(s, e) {
31820
31531
  export {
31821
31532
  En as AICombatRunner,
31822
31533
  Vn as ALL_CLASSES,
31823
- Pp as ALL_ENCHANTMENTS,
31824
- Qp as ALL_GRID_TYPES,
31534
+ Sp as ALL_ENCHANTMENTS,
31535
+ Hp as ALL_GRID_TYPES,
31825
31536
  Yn as ALL_RACES,
31826
- Dp as ARMOR_ENCHANTMENTS,
31537
+ vp as ARMOR_ENCHANTMENTS,
31827
31538
  Ut as AbilityScoreCalculator,
31828
31539
  Ti as AbilityScoresSchema,
31829
- Md as AppearanceGenerator,
31830
- tf as ArweaveGatewayManager,
31540
+ fd as AppearanceGenerator,
31541
+ qg as ArweaveGatewayManager,
31831
31542
  le as AttackResolver,
31832
- Xh as AudioProfileSchema,
31543
+ Lh as AudioProfileSchema,
31833
31544
  vn as BASE_PLAYS_THRESHOLD,
31834
31545
  bn as BASE_XP_THRESHOLD,
31835
- em as BEAT_ACCURACY_THRESHOLDS,
31836
- tm as BEAT_DETECTION_ALGORITHM,
31837
- am as BEAT_DETECTION_VERSION,
31838
- jh as BalanceValidator,
31839
- Hd as BalancedStrategy,
31840
- im as BeatInterpolator,
31841
- sm as BeatMapGenerator,
31842
- nm as BeatStream,
31546
+ zp as BEAT_ACCURACY_THRESHOLDS,
31547
+ qp as BEAT_DETECTION_ALGORITHM,
31548
+ Up as BEAT_DETECTION_VERSION,
31549
+ Ph as BalanceValidator,
31550
+ Ed as BalancedStrategy,
31551
+ jp as BeatInterpolator,
31552
+ Gp as BeatMapGenerator,
31553
+ Vp as BeatStream,
31843
31554
  nt as BeatSubdivider,
31844
- rm as BeatTracker,
31845
- Vd as BoxOpener,
31555
+ Zp as BeatTracker,
31556
+ Nd as BoxOpener,
31846
31557
  Zn as CLASS_AUDIO_PREFERENCES,
31847
31558
  Ie as CLASS_DATA,
31848
31559
  Kt as CLASS_SPELL_LISTS,
31849
- xi as CLASS_STARTING_EQUIPMENT,
31850
- om as CONSECUTIVE_KEY_LIMITS,
31560
+ Di as CLASS_STARTING_EQUIPMENT,
31561
+ Yp as CONSECUTIVE_KEY_LIMITS,
31851
31562
  Yt as CR_TO_XP,
31852
- xp as CURSES,
31563
+ wp as CURSES,
31853
31564
  wa as CharacterGenerator,
31854
- Kh as CharacterSheetSchema,
31855
- Sp as CharacterUpdater,
31565
+ Fh as CharacterSheetSchema,
31566
+ cp as CharacterUpdater,
31856
31567
  sa as ClassSuggester,
31857
- cp as ColorExtractor,
31568
+ Kh as ColorExtractor,
31858
31569
  _n as CombatAI,
31859
31570
  In as CombatEngine,
31860
31571
  Mn as CombatMetricsTracker,
31861
31572
  xt as CombatSimulator,
31862
31573
  hr as CombatantAccumulator,
31863
- Vh as ComparativeAnalyzer,
31864
- lm as CompositeStreamGenerator,
31865
- cm as DDR_PATTERN_LIBRARY,
31866
- um as DEFAULT_BEATMAP_GENERATOR_OPTIONS,
31867
- dm as DEFAULT_BEATSTREAM_OPTIONS,
31868
- hm as DEFAULT_BEAT_INTERPOLATION_OPTIONS,
31869
- pm as DEFAULT_BUTTON_MAPPING_CONFIG,
31870
- Mi as DEFAULT_CLASS_FEATURES,
31871
- mm as DEFAULT_DOWNBEAT_CONFIG,
31574
+ Nh as ComparativeAnalyzer,
31575
+ Xp as CompositeStreamGenerator,
31576
+ Kp as DDR_PATTERN_LIBRARY,
31577
+ Jp as DEFAULT_BEATMAP_GENERATOR_OPTIONS,
31578
+ Qp as DEFAULT_BEATSTREAM_OPTIONS,
31579
+ em as DEFAULT_BEAT_INTERPOLATION_OPTIONS,
31580
+ tm as DEFAULT_BUTTON_MAPPING_CONFIG,
31581
+ Ci as DEFAULT_CLASS_FEATURES,
31582
+ am as DEFAULT_DOWNBEAT_CONFIG,
31872
31583
  tt as DEFAULT_ENEMY_TEMPLATES,
31873
31584
  et as DEFAULT_EQUIPMENT,
31874
- af as DEFAULT_GATEWAYS,
31875
- un as DEFAULT_GROOVE_OPTIONS,
31876
- hf as DEFAULT_IPFS_GATEWAY,
31585
+ Ug as DEFAULT_GATEWAYS,
31586
+ ln as DEFAULT_GROOVE_OPTIONS,
31587
+ Qg as DEFAULT_IPFS_GATEWAY,
31877
31588
  Ke as DEFAULT_PROGRESSION_CONFIG,
31878
31589
  Jn as DEFAULT_RACE_DATA_ARRAY,
31879
- Ei as DEFAULT_RACIAL_TRAITS,
31880
- gm as DEFAULT_RHYTHMIC_BALANCE_CONFIG,
31590
+ Ii as DEFAULT_RACIAL_TRAITS,
31591
+ im as DEFAULT_RHYTHMIC_BALANCE_CONFIG,
31881
31592
  Ee as DEFAULT_RHYTHM_XP_CONFIG,
31882
- nh as DEFAULT_SENSOR_CONFIG,
31883
- Di as DEFAULT_SKILLS,
31884
- ep as DEFAULT_SKILL_CATEGORIES,
31885
- Hi as DEFAULT_SUBDIVISION_CONFIG,
31886
- mn as DEFAULT_SUBDIVISION_PLAYBACK_OPTIONS,
31887
- fm as DEFAULT_TEMPO_AWARE_CONFIG,
31888
- ym as DEFAULT_TIME_SIGNATURE,
31889
- vm as DensityAnalyzer,
31593
+ Vd as DEFAULT_SENSOR_CONFIG,
31594
+ Mi as DEFAULT_SKILLS,
31595
+ zh as DEFAULT_SKILL_CATEGORIES,
31596
+ Fi as DEFAULT_SUBDIVISION_CONFIG,
31597
+ hn as DEFAULT_SUBDIVISION_PLAYBACK_OPTIONS,
31598
+ sm as DEFAULT_TEMPO_AWARE_CONFIG,
31599
+ nm as DEFAULT_TIME_SIGNATURE,
31600
+ rm as DensityAnalyzer,
31890
31601
  z as DiceRoller,
31891
31602
  ai as DifficultyCalculator,
31892
- bm as DifficultyVariantGenerator,
31893
- Wd as DnD5eSmartStrategy,
31894
- Fd as DnD5eStandardStrategy,
31895
- wm as EASY_ACCURACY_THRESHOLDS,
31896
- Sm as EASY_GROOVE_PENALTIES,
31897
- _m as EASY_QUARTER_NOTE_BPM,
31603
+ om as DifficultyVariantGenerator,
31604
+ Md as DnD5eSmartStrategy,
31605
+ Id as DnD5eStandardStrategy,
31606
+ lm as EASY_ACCURACY_THRESHOLDS,
31607
+ cm as EASY_GROOVE_PENALTIES,
31608
+ um as EASY_QUARTER_NOTE_BPM,
31898
31609
  S as ENCHANTMENT_LIBRARY,
31899
31610
  Da as ENEMY_COUNT_MULTIPLIER,
31900
- as as EXPECTED_WIN_RATES,
31611
+ es as EXPECTED_WIN_RATES,
31901
31612
  ve as EnchantmentLibrary,
31902
31613
  it as EnemyGenerator,
31903
- Tp as EnvironmentalSensors,
31614
+ pp as EnvironmentalSensors,
31904
31615
  re as EquipmentEffectApplier,
31905
31616
  Et as EquipmentGenerator,
31906
- kp as EquipmentModifier,
31907
- Ap as EquipmentSpawnHelper,
31617
+ dp as EquipmentModifier,
31618
+ hp as EquipmentSpawnHelper,
31908
31619
  Xt as EquipmentValidator,
31909
31620
  R as ExtensionManager,
31910
31621
  Dt as FeatureEffectApplier,
31911
31622
  se as FeatureQuery,
31912
31623
  Ge as FeatureValidator,
31913
- km as GAUSSIAN_SMOOTH_PRESETS,
31914
- Am as GROOVE_PENALTY_PRESETS,
31915
- Tm as GROOVE_TIERS,
31916
- Cm as GUITAR_HERO_PATTERN_LIBRARY,
31917
- Cp as GamingPlatformSensors,
31918
- up as GrooveAnalyzer,
31919
- Im as HARD_ACCURACY_THRESHOLDS,
31920
- Mm as HARD_GROOVE_PENALTIES,
31921
- Em as HARD_RESTRICT_BPM,
31922
- Dm as HOP_SIZE_PRESETS,
31923
- Rm as HighBpmGridRestrictionRule,
31624
+ dm as GAUSSIAN_SMOOTH_PRESETS,
31625
+ hm as GROOVE_PENALTY_PRESETS,
31626
+ pm as GROOVE_TIERS,
31627
+ mm as GUITAR_HERO_PATTERN_LIBRARY,
31628
+ mp as GamingPlatformSensors,
31629
+ Jh as GrooveAnalyzer,
31630
+ gm as HARD_ACCURACY_THRESHOLDS,
31631
+ fm as HARD_GROOVE_PENALTIES,
31632
+ ym as HARD_RESTRICT_BPM,
31633
+ vm as HOP_SIZE_PRESETS,
31634
+ bm as HighBpmGridRestrictionRule,
31924
31635
  oa as ITEM_CREATION_TEMPLATES,
31925
31636
  kn as InitiativeRoller,
31926
- sf as KNOWN_GATEWAY_HOSTS,
31927
- pf as KNOWN_IPFS_GATEWAY_HOSTS,
31637
+ jg as KNOWN_GATEWAY_HOSTS,
31638
+ ef as KNOWN_IPFS_GATEWAY_HOSTS,
31928
31639
  ke as LevelUpProcessor,
31929
- nf as LogLevel,
31640
+ Gg as LogLevel,
31930
31641
  ye as Logger,
31931
31642
  rt as MAGIC_ITEMS,
31932
31643
  Xn as MASTERY_BONUS_XP,
31933
- Wh as MASTERY_THRESHOLD,
31934
- xm as MAX_BEATS_PER_MEASURE,
31644
+ Mh as MASTERY_THRESHOLD,
31645
+ wm as MAX_BEATS_PER_MEASURE,
31935
31646
  ot as MAX_PRESTIGE_LEVEL,
31936
- Pm as MAX_SUBDIVISION_DENSITY,
31937
- $m as MEDIUM_ACCURACY_THRESHOLDS,
31938
- Nm as MEDIUM_GROOVE_PENALTIES,
31939
- Om as MEDIUM_RESTRICT_BPM,
31940
- Bm as MEL_BANDS_PRESETS,
31941
- Lm as MIN_BEATS_PER_MEASURE,
31942
- Ud as ManualStrategy,
31647
+ Sm as MAX_SUBDIVISION_DENSITY,
31648
+ _m as MEDIUM_ACCURACY_THRESHOLDS,
31649
+ km as MEDIUM_GROOVE_PENALTIES,
31650
+ Am as MEDIUM_RESTRICT_BPM,
31651
+ Tm as MEL_BANDS_PRESETS,
31652
+ Cm as MIN_BEATS_PER_MEASURE,
31653
+ xd as ManualStrategy,
31943
31654
  ge as MetadataExtractor,
31944
- Fm as MultiBandAnalyzer,
31945
- ud as NamingEngine,
31946
- Wm as OnsetStrengthEnvelope,
31655
+ Ku as MixConditionSchema,
31656
+ Wh as MixInfoSchema,
31657
+ Im as MultiBandAnalyzer,
31658
+ Ju as NamingEngine,
31659
+ Mm as OnsetStrengthEnvelope,
31947
31660
  yn as PRESTIGE_ROMAN_NUMERALS,
31948
31661
  Ma as PRESTIGE_SCALING_FACTOR,
31949
- Xi as PROFICIENCY_BONUS,
31950
- Gh as ParameterSweep,
31951
- op as PartyAnalyzer,
31952
- Hm as PhraseAnalyzer,
31953
- zm as PitchDetector,
31954
- lp as PlaylistParser,
31662
+ Zi as PROFICIENCY_BONUS,
31663
+ $h as ParameterSweep,
31664
+ Yh as PartyAnalyzer,
31665
+ Em as PhraseAnalyzer,
31666
+ Dm as PitchDetector,
31667
+ Xh as PlaylistParser,
31955
31668
  Xu as PlaylistTrackSchema,
31956
31669
  ae as PrestigeSystem,
31957
- zd as PrimaryOnlyStrategy,
31958
- zh as RACE_DATA,
31959
- Ui as RARITY_CONFIGS,
31960
- Rp as RESISTANCE_ENCHANTMENTS,
31961
- qm as RHYTHM_PRESETS,
31962
- Td as RaceSelector,
31963
- qd as RandomStrategy,
31964
- Um as RhythmGenerator,
31965
- jm as RhythmQuantizer,
31966
- _p as RhythmXPCalculator,
31967
- Gm as RhythmicBalancer,
31968
- Fh as SKILL_ABILITY_MAP,
31969
- Zi as SPELL_DATABASE,
31670
+ Dd as PrimaryOnlyStrategy,
31671
+ Dh as RACE_DATA,
31672
+ zi as RARITY_CONFIGS,
31673
+ bp as RESISTANCE_ENCHANTMENTS,
31674
+ Rm as RHYTHM_PRESETS,
31675
+ pd as RaceSelector,
31676
+ Rd as RandomStrategy,
31677
+ xm as RhythmGenerator,
31678
+ Pm as RhythmQuantizer,
31679
+ up as RhythmXPCalculator,
31680
+ $m as RhythmicBalancer,
31681
+ Ih as SKILL_ABILITY_MAP,
31682
+ Gi as SPELL_DATABASE,
31970
31683
  Va as SPELL_SLOTS_BY_CLASS,
31971
- Vm as SUBDIVISION_LIMITS,
31684
+ Nm as SUBDIVISION_LIMITS,
31972
31685
  Rn as SeededDiceRoller,
31973
31686
  _e as SeededRNG,
31974
- an as SensorDashboard,
31975
- Yh as ServerlessPlaylistSchema,
31976
- wp as SessionTracker,
31687
+ en as SensorDashboard,
31688
+ Bh as ServerlessPlaylistSchema,
31689
+ lp as SessionTracker,
31977
31690
  dr as SimulationAggregator,
31978
- Cd as SkillAssigner,
31691
+ md as SkillAssigner,
31979
31692
  he as SkillQuery,
31980
31693
  Se as SkillValidator,
31981
- Zm as SpectrumScanner,
31694
+ Om as SpectrumScanner,
31982
31695
  G as SpellCaster,
31983
- Ri as SpellManager,
31696
+ Ei as SpellManager,
31984
31697
  Me as SpellQuery,
31985
31698
  Re as SpellValidator,
31986
- Gd as StatManager,
31987
- Ym as StreamScorer,
31988
- bp as SubdivisionPlaybackController,
31989
- gh as TUNING_FACTORS,
31990
- Xm as TempoAwareQuantizer,
31991
- Km as TempoDetector,
31992
- Jm as TransientDetector,
31993
- Qm as VALID_SUBDIVISION_TYPES,
31994
- Ep as WEAPON_ENCHANTMENTS,
31699
+ $d as StatManager,
31700
+ Hh as StemInfoSchema,
31701
+ Bm as StreamScorer,
31702
+ op as SubdivisionPlaybackController,
31703
+ ih as TUNING_FACTORS,
31704
+ Lm as TempoAwareQuantizer,
31705
+ Fm as TempoDetector,
31706
+ Wm as TransientDetector,
31707
+ Hm as VALID_SUBDIVISION_TYPES,
31708
+ yp as WEAPON_ENCHANTMENTS,
31995
31709
  fe as WeightedSelector,
31996
- Gs as XPCalculator,
31710
+ Us as XPCalculator,
31997
31711
  An as XP_BUDGET_PER_LEVEL,
31998
31712
  At as XP_THRESHOLDS,
31999
- Xp as applyTemplate,
32000
- fh as applyTuning,
32001
- hd as areAppearanceDefaultsInitialized,
32002
- Sd as areClassDefaultsInitialized,
32003
- yd as areEquipmentDefaultsInitialized,
32004
- _d as areFeatureDefaultsInitialized,
32005
- bd as areRaceDataDefaultsInitialized,
32006
- vd as areRaceDefaultsInitialized,
32007
- kd as areSkillDefaultsInitialized,
32008
- gd as areSpellDefaultsInitialized,
31713
+ Lp as applyTemplate,
31714
+ sh as applyTuning,
31715
+ ed as areAppearanceDefaultsInitialized,
31716
+ cd as areClassDefaultsInitialized,
31717
+ nd as areEquipmentDefaultsInitialized,
31718
+ ud as areFeatureDefaultsInitialized,
31719
+ od as areRaceDataDefaultsInitialized,
31720
+ rd as areRaceDefaultsInitialized,
31721
+ dd as areSkillDefaultsInitialized,
31722
+ id as areSpellDefaultsInitialized,
32009
31723
  wt as arweaveGatewayManager,
32010
31724
  qn as asClass,
32011
- hp as assignKeyToBeat,
32012
- pp as assignKeysToBeats,
32013
- yh as calculateAdjustedXP,
32014
- eg as calculateBeatInMeasure,
32015
- tg as calculateMaxAchievableDensity,
32016
- ag as calculateStdDev,
32017
- ig as chartedBeatMapToBeatMap,
32018
- gp as clearAllKeys,
32019
- rf as constructGatewayUrl,
32020
- sg as convertToAllowedGridType,
32021
- Up as createCharismaEnchantment,
32022
- Hp as createConstitutionEnchantment,
32023
- Wp as createDexterityEnchantment,
32024
- zp as createIntelligenceEnchantment,
32025
- of as createLogger,
32026
- ng as createMelFilterbank,
31725
+ ep as assignKeyToBeat,
31726
+ tp as assignKeysToBeats,
31727
+ nh as calculateAdjustedXP,
31728
+ zm as calculateBeatInMeasure,
31729
+ qm as calculateMaxAchievableDensity,
31730
+ Um as calculateStdDev,
31731
+ jm as chartedBeatMapToBeatMap,
31732
+ ip as clearAllKeys,
31733
+ Vg as constructGatewayUrl,
31734
+ Gm as convertToAllowedGridType,
31735
+ xp as createCharismaEnchantment,
31736
+ Ep as createConstitutionEnchantment,
31737
+ Mp as createDexterityEnchantment,
31738
+ Dp as createIntelligenceEnchantment,
31739
+ Zg as createLogger,
31740
+ Vm as createMelFilterbank,
32027
31741
  Dn as createSeededRoller,
32028
- Ni as createStatIncreaseStrategy,
32029
- Fp as createStrengthEnchantment,
32030
- qp as createWisdomEnchantment,
32031
- rg as deriveAllowedGridTypes,
32032
- nn as deriveSeed,
32033
- en as displayEnvironmentalDiagnostics,
32034
- tn as displayGamingDiagnostics,
32035
- ih as displaySystemDashboard,
32036
- ap as ensureAllDefaultsInitialized,
32037
- $s as ensureAppearanceDefaultsInitialized,
32038
- zs as ensureClassDefaultsInitialized,
32039
- Bs as ensureEquipmentDefaultsInitialized,
32040
- Us as ensureFeatureDefaultsInitialized,
32041
- wd as ensureRaceDataDefaultsInitialized,
32042
- Fs as ensureRaceDefaultsInitialized,
32043
- Ad as ensureSkillDefaultsInitialized,
31742
+ Pi as createStatIncreaseStrategy,
31743
+ Ip as createStrengthEnchantment,
31744
+ Rp as createWisdomEnchantment,
31745
+ Zm as deriveAllowedGridTypes,
31746
+ an as deriveSeed,
31747
+ Js as displayEnvironmentalDiagnostics,
31748
+ Qs as displayGamingDiagnostics,
31749
+ jd as displaySystemDashboard,
31750
+ Uh as ensureAllDefaultsInitialized,
31751
+ xs as ensureAppearanceDefaultsInitialized,
31752
+ Ws as ensureClassDefaultsInitialized,
31753
+ Ns as ensureEquipmentDefaultsInitialized,
31754
+ zs as ensureFeatureDefaultsInitialized,
31755
+ ld as ensureRaceDataDefaultsInitialized,
31756
+ Bs as ensureRaceDefaultsInitialized,
31757
+ hd as ensureSkillDefaultsInitialized,
32044
31758
  ia as ensureSpellDefaultsInitialized,
32045
- Qh as evaluateMixConditions,
32046
- mf as extractIPFSPath,
32047
- mp as extractKeyMap,
32048
- og as findActiveSegment,
32049
- lg as gaussianSmooth,
32050
- cg as generateSeed,
32051
- gn as getAccuracyThresholdsForPreset,
32052
- Bp as getAllCurses,
32053
- Op as getAllEnchantments,
32054
- lf as getAllGatewayUrls,
31759
+ tf as evaluateMixConditions,
31760
+ af as extractIPFSPath,
31761
+ ap as extractKeyMap,
31762
+ Ym as findActiveSegment,
31763
+ sf as findMixByName,
31764
+ Xm as gaussianSmooth,
31765
+ Km as generateSeed,
31766
+ pn as getAccuracyThresholdsForPreset,
31767
+ Tp as getAllCurses,
31768
+ Ap as getAllEnchantments,
31769
+ Yg as getAllGatewayUrls,
32055
31770
  Fn as getAllRarities,
32056
- ug as getAllowedGridTypes,
32057
- gf as getArtists,
32058
- ff as getAudioUrls,
31771
+ Jm as getAllowedGridTypes,
31772
+ nf as getArtists,
31773
+ rf as getAudioUrls,
32059
31774
  Cn as getAveragePartyLevel,
32060
- qi as getCRFromXP,
32061
- Yi as getClassData,
31775
+ Hi as getCRFromXP,
31776
+ Vi as getClassData,
32062
31777
  Za as getClassSpellList,
32063
- Ed as getClassStartingEquipment,
32064
- dg as getConsecutiveKeyLimit,
32065
- hg as getControllerModeBalanceDefaults,
32066
- pg as getControllerModeScoringDefaults,
32067
- Np as getCurse,
32068
- Zp as getCursedItems,
32069
- $p as getEnchantment,
32070
- Lp as getEnchantmentsByType,
31778
+ yd as getClassStartingEquipment,
31779
+ Qm as getConsecutiveKeyLimit,
31780
+ eg as getControllerModeBalanceDefaults,
31781
+ tg as getControllerModeScoringDefaults,
31782
+ kp as getCurse,
31783
+ Op as getCursedItems,
31784
+ _p as getEnchantment,
31785
+ Cp as getEnchantmentsByType,
32071
31786
  kt as getEncounterMultiplier,
32072
- Uh as getFeatureQuery,
32073
- yf as getFullTracks,
32074
- mg as getGaussianSmoothMs,
32075
- vf as getGenres,
32076
- dn as getGroovePenaltiesForPreset,
31787
+ xh as getFeatureQuery,
31788
+ of as getFullTracks,
31789
+ ag as getGaussianSmoothMs,
31790
+ lf as getGenres,
31791
+ cn as getGroovePenaltiesForPreset,
32077
31792
  Bt as getGrooveTier,
32078
- hn as getGrooveWindowMs,
32079
- kh as getHigherRarity,
32080
- gg as getHopSizeMs,
32081
- bf as getImageUrls,
32082
- Yp as getItemsWithProperty,
32083
- yp as getKeyCount,
32084
- jp as getMagicItem,
32085
- Vp as getMagicItemsByRarity,
32086
- Gp as getMagicItemsByType,
32087
- fg as getMelBands,
32088
- yg as getMetricGroupSize,
32089
- vg as getMinHotnessForTier,
32090
- bg as getPatternById,
32091
- wg as getPatternLibrary,
32092
- Sg as getPatternLibraryStats,
32093
- _g as getPatternsByCategory,
32094
- kg as getPatternsByDifficulty,
32095
- Ag as getPatternsByKeyCount,
32096
- Tg as getPatternsByTags,
31793
+ un as getGrooveWindowMs,
31794
+ dh as getHigherRarity,
31795
+ ig as getHopSizeMs,
31796
+ cf as getImageUrls,
31797
+ Bp as getItemsWithProperty,
31798
+ np as getKeyCount,
31799
+ Pp as getMagicItem,
31800
+ Np as getMagicItemsByRarity,
31801
+ $p as getMagicItemsByType,
31802
+ sg as getMelBands,
31803
+ ng as getMetricGroupSize,
31804
+ rg as getMinHotnessForTier,
31805
+ uf as getMixTracks,
31806
+ df as getMixes,
31807
+ og as getPatternById,
31808
+ lg as getPatternLibrary,
31809
+ cg as getPatternLibraryStats,
31810
+ ug as getPatternsByCategory,
31811
+ dg as getPatternsByDifficulty,
31812
+ hg as getPatternsByKeyCount,
31813
+ pg as getPatternsByTags,
31814
+ hf as getPreferredMixByQuality,
32097
31815
  ua as getRaceData,
32098
- qh as getRaceDataAsync,
32099
- Cg as getRandomPattern,
31816
+ Rh as getRaceDataAsync,
31817
+ mg as getRandomPattern,
32100
31818
  We as getRarityConfig,
32101
- Ig as getRhythmPreset,
32102
- Mg as getRhythmPresetNames,
32103
- _h as getSignatureDie,
32104
- Lh as getSkillQuery,
32105
- Hh as getSpellQuery,
32106
- Ki as getSpellSlotsForClass,
32107
- cn as getSubdivisionDensity,
32108
- wf as getTags,
32109
- bh as getTemplateById,
32110
- Sh as getTemplatesByArchetype,
32111
- wh as getTemplatesByCategory,
32112
- Eg as getTempoAwareAllowedGridTypes,
32113
- Sf as getTotalDuration,
32114
- _f as getTrackCount,
32115
- Ku as getTrackExtras,
32116
- Jh as getTrackMetadata,
32117
- kf as getTrackTitles,
32118
- Af as getTracks,
32119
- vp as getUsedKeys,
32120
- Tf as getVRMTracks,
32121
- Cf as getVRMs,
31819
+ gg as getRhythmPreset,
31820
+ fg as getRhythmPresetNames,
31821
+ uh as getSignatureDie,
31822
+ Ch as getSkillQuery,
31823
+ Eh as getSpellQuery,
31824
+ Yi as getSpellSlotsForClass,
31825
+ on as getSubdivisionDensity,
31826
+ pf as getTags,
31827
+ oh as getTemplateById,
31828
+ ch as getTemplatesByArchetype,
31829
+ lh as getTemplatesByCategory,
31830
+ yg as getTempoAwareAllowedGridTypes,
31831
+ mf as getTotalDuration,
31832
+ gf as getTrackCount,
31833
+ gn as getTrackExtras,
31834
+ ff as getTrackMetadata,
31835
+ yf as getTrackTitles,
31836
+ vf as getTracks,
31837
+ bf as getUniqueMixes,
31838
+ rp as getUsedKeys,
31839
+ wf as getVRMTracks,
31840
+ Sf as getVRMs,
32122
31841
  ca as getXPBudgetForParty,
32123
31842
  Tn as getXPBudgetPerLevel,
32124
- zi as getXPForCR,
32125
- fp as hasRequiredKeys,
32126
- rn as hashSeedToFloat,
32127
- Dg as hashSeedToInt,
32128
- Rg as highPassFilter,
32129
- xg as hzToMel,
32130
- tp as initializeAllDefaults,
32131
- Ps as initializeAppearanceDefaults,
32132
- Hs as initializeClassDefaults,
32133
- Os as initializeEquipmentDefaults,
32134
- qs as initializeFeatureDefaults,
32135
- Ws as initializeRaceDataDefaults,
32136
- Ls as initializeRaceDefaults,
32137
- js as initializeSkillDefaults,
32138
- Ns as initializeSpellDefaults,
32139
- cf as isArweaveUrl,
32140
- Pg as isFullBeatMapExportData,
32141
- $g as isGridTypeAllowed,
32142
- If as isIPFS,
32143
- Ng as isLevelPackExport,
32144
- Og as isMetricStrongBeat,
32145
- Bg as isMetricWeakBeat,
32146
- ph as isPrestigeLevel,
32147
- Lg as isStrongBeatForEmphasis,
32148
- mh as isValidAIPlayStyle,
31843
+ Wi as getXPForCR,
31844
+ sp as hasRequiredKeys,
31845
+ sn as hashSeedToFloat,
31846
+ vg as hashSeedToInt,
31847
+ bg as highPassFilter,
31848
+ wg as hzToMel,
31849
+ qh as initializeAllDefaults,
31850
+ Rs as initializeAppearanceDefaults,
31851
+ Fs as initializeClassDefaults,
31852
+ $s as initializeEquipmentDefaults,
31853
+ Hs as initializeFeatureDefaults,
31854
+ Ls as initializeRaceDataDefaults,
31855
+ Os as initializeRaceDefaults,
31856
+ qs as initializeSkillDefaults,
31857
+ Ps as initializeSpellDefaults,
31858
+ Xg as isArweaveUrl,
31859
+ Sg as isFullBeatMapExportData,
31860
+ _g as isGridTypeAllowed,
31861
+ _f as isIPFS,
31862
+ kg as isLevelPackExport,
31863
+ Ag as isMetricStrongBeat,
31864
+ Tg as isMetricWeakBeat,
31865
+ th as isPrestigeLevel,
31866
+ Cg as isStrongBeatForEmphasis,
31867
+ ah as isValidAIPlayStyle,
32149
31868
  Ra as isValidClass,
32150
- rp as isValidEncounterDifficulty,
32151
- vh as isValidEncounterDifficultyUtil,
32152
- np as isValidEnemyArchetype,
32153
- ip as isValidEnemyCategory,
32154
- sp as isValidEnemyRarity,
32155
- fn as isValidSubdivisionType,
32156
- rh as loadConfigFromEnv,
32157
- Fg as mapGridToSubdivision,
32158
- Wg as melToHz,
32159
- Hg as mergeButtonMappingConfig,
32160
- Ip as mergeConfig,
32161
- Mp as mergeProgressionConfig,
31869
+ Zh as isValidEncounterDifficulty,
31870
+ rh as isValidEncounterDifficultyUtil,
31871
+ Vh as isValidEnemyArchetype,
31872
+ jh as isValidEnemyCategory,
31873
+ Gh as isValidEnemyRarity,
31874
+ mn as isValidSubdivisionType,
31875
+ Zd as loadConfigFromEnv,
31876
+ Ig as mapGridToSubdivision,
31877
+ Mg as melToHz,
31878
+ Eg as mergeButtonMappingConfig,
31879
+ gp as mergeConfig,
31880
+ fp as mergeProgressionConfig,
32162
31881
  Jt as mergeRhythmXPConfig,
32163
- zg as naturalDifficultyToLevel,
32164
- uf as parseArweaveUrl,
32165
- qg as performBeatFFT,
32166
- Ug as performSTFT,
32167
- jg as reapplyDownbeatConfig,
32168
- Gg as resampleAudio,
32169
- Mf as resolveIPFSLink,
32170
- Qu as resolveSelectedMix,
32171
- Zh as shouldAccuracyBreakCombo,
32172
- dp as subdivideBeatMap,
31882
+ Dg as naturalDifficultyToLevel,
31883
+ Kg as parseArweaveUrl,
31884
+ Rg as performBeatFFT,
31885
+ xg as performSTFT,
31886
+ Pg as reapplyDownbeatConfig,
31887
+ $g as resampleAudio,
31888
+ kf as resolveIPFSLink,
31889
+ Af as resolveMixUrl,
31890
+ fn as resolveSelectedMix,
31891
+ Tf as selectMix,
31892
+ Oh as shouldAccuracyBreakCombo,
31893
+ Qh as subdivideBeatMap,
32173
31894
  wn as toPrestigeLevel,
32174
- pn as unifyBeatMap,
32175
- Vg as validateButtonMappingConfig,
32176
- Ah as validateClassFeature,
32177
- Ch as validateClassFeatures,
32178
- Zg as validateDownbeatConfig,
32179
- Yg as validateDownbeatConfigAgainstBeats,
32180
- Th as validateRacialTrait,
32181
- Ih as validateRacialTraits,
32182
- Mh as validateSkill,
32183
- xh as validateSkillListDefinition,
32184
- Ph as validateSkillPrerequisites,
32185
- Rh as validateSkillProficiencies,
32186
- Dh as validateSkillProficiency,
32187
- Eh as validateSkills,
32188
- $h as validateSpell,
32189
- Bh as validateSpellPrerequisites,
32190
- Oh as validateSpellPrerequisitesSchema,
32191
- Nh as validateSpells,
32192
- on as validateSubdivisionConfig,
32193
- ln as validateSubdivisionConfigAgainstBeats,
32194
- Xg as validateSubdivisionDensity,
32195
- Kg as validateSubdivisionLimits,
32196
- Jg as validateThresholds,
32197
- Qg as validateTrackMatch
31895
+ dn as unifyBeatMap,
31896
+ Ng as validateButtonMappingConfig,
31897
+ hh as validateClassFeature,
31898
+ mh as validateClassFeatures,
31899
+ Og as validateDownbeatConfig,
31900
+ Bg as validateDownbeatConfigAgainstBeats,
31901
+ ph as validateRacialTrait,
31902
+ gh as validateRacialTraits,
31903
+ fh as validateSkill,
31904
+ wh as validateSkillListDefinition,
31905
+ Sh as validateSkillPrerequisites,
31906
+ bh as validateSkillProficiencies,
31907
+ vh as validateSkillProficiency,
31908
+ yh as validateSkills,
31909
+ _h as validateSpell,
31910
+ Th as validateSpellPrerequisites,
31911
+ Ah as validateSpellPrerequisitesSchema,
31912
+ kh as validateSpells,
31913
+ nn as validateSubdivisionConfig,
31914
+ rn as validateSubdivisionConfigAgainstBeats,
31915
+ Lg as validateSubdivisionDensity,
31916
+ Fg as validateSubdivisionLimits,
31917
+ Wg as validateThresholds,
31918
+ Hg as validateTrackMatch
32198
31919
  };