playlist-data-engine 1.5.0 → 1.5.1
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.
|
@@ -33,7 +33,7 @@ function _r(s, e) {
|
|
|
33
33
|
`downbeatBeatIndex ${t.downbeatBeatIndex} exceeds total beats ${e}`
|
|
34
34
|
);
|
|
35
35
|
}
|
|
36
|
-
function
|
|
36
|
+
function Wv(s, e) {
|
|
37
37
|
Sr(e), _r(e, s.beats.length);
|
|
38
38
|
const t = fl(e.segments, s.beats.length), i = s.beats.map((n, a) => {
|
|
39
39
|
const r = pl(e.segments, a), o = e.segments[r], { downbeatBeatIndex: c, timeSignature: l } = o, { beatsPerMeasure: u } = l, d = a - c, h = (d % u + u) % u, m = h === 0, p = Math.max(0, Math.floor(d / u)) + t[r];
|
|
@@ -163,7 +163,7 @@ const ii = {
|
|
|
163
163
|
customThresholds: {},
|
|
164
164
|
useInterpolatedBeats: !1,
|
|
165
165
|
ignoreKeyRequirements: !1
|
|
166
|
-
},
|
|
166
|
+
}, Hv = Tr;
|
|
167
167
|
function Cn(s) {
|
|
168
168
|
switch (s) {
|
|
169
169
|
case "easy":
|
|
@@ -190,7 +190,7 @@ const Sl = {
|
|
|
190
190
|
minClusterBeats: 4,
|
|
191
191
|
enableMultiTempo: !1
|
|
192
192
|
};
|
|
193
|
-
function
|
|
193
|
+
function qv(s) {
|
|
194
194
|
const e = [], t = ["perfect", "great", "good", "ok"];
|
|
195
195
|
for (const n of t)
|
|
196
196
|
if (n in s) {
|
|
@@ -282,7 +282,7 @@ function _l(s, e) {
|
|
|
282
282
|
for (const [t] of s.beatSubdivisions)
|
|
283
283
|
;
|
|
284
284
|
}
|
|
285
|
-
function
|
|
285
|
+
function Gv(s) {
|
|
286
286
|
const e = Ir(s);
|
|
287
287
|
if (e > Ga)
|
|
288
288
|
throw new Error(
|
|
@@ -325,7 +325,7 @@ function Al(s) {
|
|
|
325
325
|
const n = t.maxHotness - t.minHotness, r = (s - t.minHotness) / n, o = t.windowMs - i.windowMs;
|
|
326
326
|
return t.windowMs - o * r;
|
|
327
327
|
}
|
|
328
|
-
function
|
|
328
|
+
function Uv(s) {
|
|
329
329
|
return _t.find((t) => t.tier === s)?.minHotness ?? 0;
|
|
330
330
|
}
|
|
331
331
|
const kl = {
|
|
@@ -430,7 +430,7 @@ function Nl(s, e, t) {
|
|
|
430
430
|
}
|
|
431
431
|
return s + i;
|
|
432
432
|
}
|
|
433
|
-
function
|
|
433
|
+
function Vv(s) {
|
|
434
434
|
const e = {
|
|
435
435
|
version: s.chartMetadata.seed ?? "1.0.0",
|
|
436
436
|
algorithm: "procedural-generation",
|
|
@@ -461,7 +461,7 @@ function Uv(s) {
|
|
|
461
461
|
downbeatConfig: s.downbeatConfig
|
|
462
462
|
};
|
|
463
463
|
}
|
|
464
|
-
function
|
|
464
|
+
function jv(s, e) {
|
|
465
465
|
const t = [], i = s.trackId === e.id, n = s.title.trim().toLowerCase() === e.title.trim().toLowerCase(), a = s.artist.trim().toLowerCase() === e.artist.trim().toLowerCase();
|
|
466
466
|
return i || n && a ? { matches: !0, mismatchDetails: [] } : (i || t.push(`Track ID: expected "${s.trackId}", got "${e.id}"`), n || t.push(`Title: expected "${s.title}", got "${e.title}"`), a || t.push(`Artist: expected "${s.artist}", got "${e.artist}"`), {
|
|
467
467
|
matches: !1,
|
|
@@ -502,13 +502,13 @@ const Ol = {
|
|
|
502
502
|
9: "IX",
|
|
503
503
|
10: "X"
|
|
504
504
|
}, ni = 10, zl = 10, Ll = 1e3, Va = 1.5;
|
|
505
|
-
function
|
|
505
|
+
function Kv(s) {
|
|
506
506
|
return typeof s == "number" && Number.isInteger(s) && s >= 0 && s <= 10;
|
|
507
507
|
}
|
|
508
508
|
function Wl(s) {
|
|
509
509
|
return Math.max(0, Math.min(10, Math.floor(s)));
|
|
510
510
|
}
|
|
511
|
-
function
|
|
511
|
+
function Yv(s) {
|
|
512
512
|
return typeof s == "string" && ["normal", "aggressive"].includes(s);
|
|
513
513
|
}
|
|
514
514
|
const Vt = {
|
|
@@ -3077,13 +3077,13 @@ function Ul() {
|
|
|
3077
3077
|
}
|
|
3078
3078
|
var Vl = Ul();
|
|
3079
3079
|
const jl = /* @__PURE__ */ xr(Vl);
|
|
3080
|
-
function
|
|
3080
|
+
function Zv(s, e, t) {
|
|
3081
3081
|
return `${s}-${e}-${t}`;
|
|
3082
3082
|
}
|
|
3083
3083
|
function ht(s) {
|
|
3084
3084
|
return jl(s, 0) / 4294967295;
|
|
3085
3085
|
}
|
|
3086
|
-
function
|
|
3086
|
+
function Xv(s, e, t) {
|
|
3087
3087
|
const i = ht(s);
|
|
3088
3088
|
return Math.floor(i * (t - e)) + e;
|
|
3089
3089
|
}
|
|
@@ -3220,7 +3220,7 @@ const Kl = {
|
|
|
3220
3220
|
13: 1,
|
|
3221
3221
|
14: 1,
|
|
3222
3222
|
15: 1
|
|
3223
|
-
},
|
|
3223
|
+
}, Jv = {
|
|
3224
3224
|
/** Default tuning factor (no adjustment) */
|
|
3225
3225
|
DEFAULT: 1,
|
|
3226
3226
|
/** 10% easier encounters */
|
|
@@ -3254,13 +3254,13 @@ function Pr(s) {
|
|
|
3254
3254
|
}
|
|
3255
3255
|
return n;
|
|
3256
3256
|
}
|
|
3257
|
-
function
|
|
3257
|
+
function Qv(s, e = 1) {
|
|
3258
3258
|
return Math.round(s * e);
|
|
3259
3259
|
}
|
|
3260
3260
|
function ki(s) {
|
|
3261
3261
|
return s <= 0 ? 1 : s >= 15 ? Ya[15] : Ya[s] || 1;
|
|
3262
3262
|
}
|
|
3263
|
-
function
|
|
3263
|
+
function eb(s, e) {
|
|
3264
3264
|
const t = s.reduce((n, a) => n + Rr(a), 0), i = e !== void 0 ? e : ki(s.length);
|
|
3265
3265
|
return Math.round(t * i);
|
|
3266
3266
|
}
|
|
@@ -3269,7 +3269,7 @@ function Zl(s) {
|
|
|
3269
3269
|
const e = s.reduce((t, i) => t + i, 0);
|
|
3270
3270
|
return Math.floor(e / s.length);
|
|
3271
3271
|
}
|
|
3272
|
-
function
|
|
3272
|
+
function tb(s) {
|
|
3273
3273
|
return typeof s == "string" && ["easy", "medium", "hard", "deadly"].includes(s);
|
|
3274
3274
|
}
|
|
3275
3275
|
class Xl {
|
|
@@ -6079,13 +6079,13 @@ const iu = [
|
|
|
6079
6079
|
...ru,
|
|
6080
6080
|
...ou
|
|
6081
6081
|
];
|
|
6082
|
-
function
|
|
6082
|
+
function ib(s) {
|
|
6083
6083
|
return jt.find((e) => e.id === s);
|
|
6084
6084
|
}
|
|
6085
|
-
function
|
|
6085
|
+
function nb(s) {
|
|
6086
6086
|
return jt.filter((e) => e.category === s);
|
|
6087
6087
|
}
|
|
6088
|
-
function
|
|
6088
|
+
function ab(s) {
|
|
6089
6089
|
return jt.filter((e) => e.archetype === s);
|
|
6090
6090
|
}
|
|
6091
6091
|
const Br = {
|
|
@@ -6121,13 +6121,13 @@ const Br = {
|
|
|
6121
6121
|
function wt(s) {
|
|
6122
6122
|
return Br[s];
|
|
6123
6123
|
}
|
|
6124
|
-
function
|
|
6124
|
+
function sb(s) {
|
|
6125
6125
|
return `1d${Br[s].signatureDieSize}`;
|
|
6126
6126
|
}
|
|
6127
6127
|
function lu() {
|
|
6128
6128
|
return ["common", "uncommon", "elite", "boss"];
|
|
6129
6129
|
}
|
|
6130
|
-
function
|
|
6130
|
+
function rb(s) {
|
|
6131
6131
|
const e = lu(), t = e.indexOf(s);
|
|
6132
6132
|
if (!(t === -1 || t === e.length - 1))
|
|
6133
6133
|
return e[t + 1];
|
|
@@ -6502,16 +6502,16 @@ class It {
|
|
|
6502
6502
|
return /^[a-z][a-z0-9_]*$/.test(e);
|
|
6503
6503
|
}
|
|
6504
6504
|
}
|
|
6505
|
-
function
|
|
6505
|
+
function ob(s, e) {
|
|
6506
6506
|
return It.validateClassFeature(s, e);
|
|
6507
6507
|
}
|
|
6508
|
-
function
|
|
6508
|
+
function cb(s, e) {
|
|
6509
6509
|
return It.validateRacialTrait(s, e);
|
|
6510
6510
|
}
|
|
6511
|
-
function
|
|
6511
|
+
function lb(s) {
|
|
6512
6512
|
return It.validateClassFeatures(s);
|
|
6513
6513
|
}
|
|
6514
|
-
function
|
|
6514
|
+
function ub(s) {
|
|
6515
6515
|
return It.validateRacialTraits(s);
|
|
6516
6516
|
}
|
|
6517
6517
|
function pu(s) {
|
|
@@ -6754,22 +6754,22 @@ class Ge {
|
|
|
6754
6754
|
return $r(e, t);
|
|
6755
6755
|
}
|
|
6756
6756
|
}
|
|
6757
|
-
function
|
|
6757
|
+
function db(s) {
|
|
6758
6758
|
return Ge.validateSkill(s);
|
|
6759
6759
|
}
|
|
6760
|
-
function
|
|
6760
|
+
function hb(s) {
|
|
6761
6761
|
return Ge.validateSkills(s);
|
|
6762
6762
|
}
|
|
6763
|
-
function
|
|
6763
|
+
function mb(s) {
|
|
6764
6764
|
return Ge.validateSkillProficiency(s);
|
|
6765
6765
|
}
|
|
6766
|
-
function
|
|
6766
|
+
function fb(s) {
|
|
6767
6767
|
return Ge.validateSkillProficiencies(s);
|
|
6768
6768
|
}
|
|
6769
|
-
function
|
|
6769
|
+
function pb(s) {
|
|
6770
6770
|
return Ge.validateSkillListDefinition(s);
|
|
6771
6771
|
}
|
|
6772
|
-
function
|
|
6772
|
+
function gb(s, e) {
|
|
6773
6773
|
return Ge.validateSkillPrerequisites(s, e);
|
|
6774
6774
|
}
|
|
6775
6775
|
const an = [
|
|
@@ -6889,16 +6889,16 @@ class rt {
|
|
|
6889
6889
|
return sn.includes(e);
|
|
6890
6890
|
}
|
|
6891
6891
|
}
|
|
6892
|
-
function
|
|
6892
|
+
function yb(s) {
|
|
6893
6893
|
return rt.validateSpell(s);
|
|
6894
6894
|
}
|
|
6895
|
-
function
|
|
6895
|
+
function vb(s) {
|
|
6896
6896
|
return rt.validateSpells(s);
|
|
6897
6897
|
}
|
|
6898
|
-
function
|
|
6898
|
+
function bb(s) {
|
|
6899
6899
|
return rt.validatePrerequisites(s);
|
|
6900
6900
|
}
|
|
6901
|
-
function
|
|
6901
|
+
function wb(s, e) {
|
|
6902
6902
|
return rt.validateSpellPrerequisites(s, e);
|
|
6903
6903
|
}
|
|
6904
6904
|
class Ne {
|
|
@@ -7087,7 +7087,7 @@ class Ne {
|
|
|
7087
7087
|
return this.getAllSkills().filter((t) => t.prerequisites ? this.validatePrerequisites(t, e).valid : !0);
|
|
7088
7088
|
}
|
|
7089
7089
|
}
|
|
7090
|
-
function
|
|
7090
|
+
function Sb() {
|
|
7091
7091
|
return Ne.getInstance();
|
|
7092
7092
|
}
|
|
7093
7093
|
const Pt = ["STR", "DEX", "CON", "INT", "WIS", "CHA"], ss = ["weapon", "armor", "item", "box"], rs = ["common", "uncommon", "rare", "very_rare", "legendary"], os = [
|
|
@@ -8332,7 +8332,7 @@ const Ii = {
|
|
|
8332
8332
|
"Triumphant",
|
|
8333
8333
|
"Immortal"
|
|
8334
8334
|
]
|
|
8335
|
-
},
|
|
8335
|
+
}, _b = {
|
|
8336
8336
|
// STR-based
|
|
8337
8337
|
athletics: "STR",
|
|
8338
8338
|
// DEX-based
|
|
@@ -8386,7 +8386,7 @@ function Wr(s, e) {
|
|
|
8386
8386
|
} catch {
|
|
8387
8387
|
}
|
|
8388
8388
|
}
|
|
8389
|
-
const
|
|
8389
|
+
const Tb = 10, wu = 50;
|
|
8390
8390
|
class it {
|
|
8391
8391
|
constructor() {
|
|
8392
8392
|
this.allSpellsCache = null, this.levelCache = null, this.schoolCache = null, this.manager = Y.getInstance();
|
|
@@ -8602,7 +8602,7 @@ class it {
|
|
|
8602
8602
|
};
|
|
8603
8603
|
}
|
|
8604
8604
|
}
|
|
8605
|
-
function
|
|
8605
|
+
function Cb() {
|
|
8606
8606
|
return it.getInstance();
|
|
8607
8607
|
}
|
|
8608
8608
|
class Y {
|
|
@@ -9465,12 +9465,12 @@ const Su = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
9465
9465
|
traits: ["Darkvision", "Hellish Resistance", "Infernal Legacy"],
|
|
9466
9466
|
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."
|
|
9467
9467
|
}
|
|
9468
|
-
},
|
|
9468
|
+
}, Mb = Hr, _u = Object.entries(Hr).map(([s, e]) => ({
|
|
9469
9469
|
race: s,
|
|
9470
9470
|
...e
|
|
9471
9471
|
}));
|
|
9472
9472
|
let rn = null, on = null;
|
|
9473
|
-
async function
|
|
9473
|
+
async function Ab(s) {
|
|
9474
9474
|
try {
|
|
9475
9475
|
rn || (on || (on = Promise.resolve().then(() => Su)), rn = (await on).ExtensionManager);
|
|
9476
9476
|
const t = rn.getInstance().get("races.data");
|
|
@@ -9955,7 +9955,7 @@ class ke {
|
|
|
9955
9955
|
return e;
|
|
9956
9956
|
}
|
|
9957
9957
|
}
|
|
9958
|
-
function
|
|
9958
|
+
function kb() {
|
|
9959
9959
|
return ke.getInstance();
|
|
9960
9960
|
}
|
|
9961
9961
|
const Tu = {
|
|
@@ -13176,7 +13176,7 @@ const Vr = {
|
|
|
13176
13176
|
hard: { min: 0.5, max: 0.6 },
|
|
13177
13177
|
deadly: { min: 0.3, max: 0.4 }
|
|
13178
13178
|
};
|
|
13179
|
-
class
|
|
13179
|
+
class Ib {
|
|
13180
13180
|
/**
|
|
13181
13181
|
* Validate an encounter by running simulations and analyzing results.
|
|
13182
13182
|
*
|
|
@@ -13348,7 +13348,7 @@ class kb {
|
|
|
13348
13348
|
return o;
|
|
13349
13349
|
}
|
|
13350
13350
|
}
|
|
13351
|
-
class
|
|
13351
|
+
class Db {
|
|
13352
13352
|
/**
|
|
13353
13353
|
* Run a parameter sweep.
|
|
13354
13354
|
*
|
|
@@ -13560,7 +13560,7 @@ class Ib {
|
|
|
13560
13560
|
};
|
|
13561
13561
|
}
|
|
13562
13562
|
}
|
|
13563
|
-
class
|
|
13563
|
+
class Eb {
|
|
13564
13564
|
/**
|
|
13565
13565
|
* Compare two encounter configurations using identical-seed simulation.
|
|
13566
13566
|
*
|
|
@@ -14031,7 +14031,7 @@ function Rn(s) {
|
|
|
14031
14031
|
maxMultiplier: s.maxMultiplier ?? nt.maxMultiplier
|
|
14032
14032
|
} : nt;
|
|
14033
14033
|
}
|
|
14034
|
-
function
|
|
14034
|
+
function xb(s, e = nt.combo.okBreaksCombo) {
|
|
14035
14035
|
return s === "miss" || s === "wrongKey" ? !0 : s === "ok" ? e : !1;
|
|
14036
14036
|
}
|
|
14037
14037
|
function E(s, e, t) {
|
|
@@ -16912,7 +16912,7 @@ const bp = et.map((s) => s), wp = re({
|
|
|
16912
16912
|
message: "AR chain tracks must have tx_id; other chains must have token_address and token_id",
|
|
16913
16913
|
path: ["chain_name"]
|
|
16914
16914
|
}
|
|
16915
|
-
),
|
|
16915
|
+
), Rb = re({
|
|
16916
16916
|
name: G(),
|
|
16917
16917
|
description: G().optional(),
|
|
16918
16918
|
image: G().url(),
|
|
@@ -16920,7 +16920,7 @@ const bp = et.map((s) => s), wp = re({
|
|
|
16920
16920
|
genre: G().optional(),
|
|
16921
16921
|
tags: Te(G()).optional(),
|
|
16922
16922
|
tracks: Te(wp)
|
|
16923
|
-
}),
|
|
16923
|
+
}), Pb = re({
|
|
16924
16924
|
bass_dominance: L().min(0).max(1),
|
|
16925
16925
|
mid_dominance: L().min(0).max(1),
|
|
16926
16926
|
treble_dominance: L().min(0).max(1),
|
|
@@ -16950,7 +16950,7 @@ const bp = et.map((s) => s), wp = re({
|
|
|
16950
16950
|
INT: L().min(1).max(20),
|
|
16951
16951
|
WIS: L().min(1).max(20),
|
|
16952
16952
|
CHA: L().min(1).max(20)
|
|
16953
|
-
}),
|
|
16953
|
+
}), Bb = re({
|
|
16954
16954
|
name: G(),
|
|
16955
16955
|
race: Mi(["Human", "Elf", "Dwarf", "Halfling", "Dragonborn", "Gnome", "Half-Elf", "Half-Orc", "Tiefling"]),
|
|
16956
16956
|
class: Mi(bp),
|
|
@@ -17192,7 +17192,7 @@ class Se {
|
|
|
17192
17192
|
return `${t}:${i}:${n}.${a}`;
|
|
17193
17193
|
}
|
|
17194
17194
|
}
|
|
17195
|
-
function
|
|
17195
|
+
function Nb(s) {
|
|
17196
17196
|
return Se.for(s);
|
|
17197
17197
|
}
|
|
17198
17198
|
class ee {
|
|
@@ -17418,7 +17418,7 @@ function Mo(s) {
|
|
|
17418
17418
|
}
|
|
17419
17419
|
return null;
|
|
17420
17420
|
}
|
|
17421
|
-
function
|
|
17421
|
+
function Fb(s) {
|
|
17422
17422
|
const e = [];
|
|
17423
17423
|
for (const t of s.tracks) {
|
|
17424
17424
|
const i = ra(t);
|
|
@@ -17426,7 +17426,7 @@ function Nb(s) {
|
|
|
17426
17426
|
}
|
|
17427
17427
|
return e;
|
|
17428
17428
|
}
|
|
17429
|
-
function
|
|
17429
|
+
function $b(s) {
|
|
17430
17430
|
const e = [];
|
|
17431
17431
|
for (const t of s.tracks) {
|
|
17432
17432
|
const i = oa(t);
|
|
@@ -17434,7 +17434,7 @@ function Fb(s) {
|
|
|
17434
17434
|
}
|
|
17435
17435
|
return e;
|
|
17436
17436
|
}
|
|
17437
|
-
function
|
|
17437
|
+
function Ob(s) {
|
|
17438
17438
|
const e = [];
|
|
17439
17439
|
for (const t of s.tracks) {
|
|
17440
17440
|
if ("title" in t && typeof t.title == "string") {
|
|
@@ -17451,7 +17451,7 @@ function $b(s) {
|
|
|
17451
17451
|
}
|
|
17452
17452
|
return e;
|
|
17453
17453
|
}
|
|
17454
|
-
function
|
|
17454
|
+
function zb(s) {
|
|
17455
17455
|
const e = [];
|
|
17456
17456
|
for (const t of s.tracks) {
|
|
17457
17457
|
if ("artist" in t && typeof t.artist == "string") {
|
|
@@ -17468,7 +17468,7 @@ function Ob(s) {
|
|
|
17468
17468
|
}
|
|
17469
17469
|
return e;
|
|
17470
17470
|
}
|
|
17471
|
-
function
|
|
17471
|
+
function Lb(s) {
|
|
17472
17472
|
const e = /* @__PURE__ */ new Set();
|
|
17473
17473
|
for (const t of s.tracks) {
|
|
17474
17474
|
if ("genre" in t && typeof t.genre == "string" && t.genre) {
|
|
@@ -17482,7 +17482,7 @@ function zb(s) {
|
|
|
17482
17482
|
}
|
|
17483
17483
|
return Array.from(e).sort();
|
|
17484
17484
|
}
|
|
17485
|
-
function
|
|
17485
|
+
function Wb(s) {
|
|
17486
17486
|
const e = /* @__PURE__ */ new Set();
|
|
17487
17487
|
for (const t of s.tracks) {
|
|
17488
17488
|
if ("tags" in t && Array.isArray(t.tags)) {
|
|
@@ -17499,7 +17499,7 @@ function Lb(s) {
|
|
|
17499
17499
|
}
|
|
17500
17500
|
return Array.from(e).sort();
|
|
17501
17501
|
}
|
|
17502
|
-
function
|
|
17502
|
+
function Hb(s) {
|
|
17503
17503
|
let e = 0;
|
|
17504
17504
|
for (const t of s.tracks) {
|
|
17505
17505
|
if ("duration" in t && typeof t.duration == "number") {
|
|
@@ -17513,10 +17513,10 @@ function Wb(s) {
|
|
|
17513
17513
|
}
|
|
17514
17514
|
return e;
|
|
17515
17515
|
}
|
|
17516
|
-
function
|
|
17516
|
+
function qb(s) {
|
|
17517
17517
|
return s.tracks.length;
|
|
17518
17518
|
}
|
|
17519
|
-
function
|
|
17519
|
+
function Gb(s) {
|
|
17520
17520
|
const e = [];
|
|
17521
17521
|
for (const t of s.tracks) {
|
|
17522
17522
|
const i = ra(t), n = oa(t), a = Co(t);
|
|
@@ -17539,7 +17539,7 @@ function qb(s) {
|
|
|
17539
17539
|
}
|
|
17540
17540
|
return e;
|
|
17541
17541
|
}
|
|
17542
|
-
function
|
|
17542
|
+
function Ub(s) {
|
|
17543
17543
|
const e = [];
|
|
17544
17544
|
for (const t of s.tracks) {
|
|
17545
17545
|
if ("audio_url" in t) {
|
|
@@ -17580,7 +17580,7 @@ function Gb(s) {
|
|
|
17580
17580
|
}
|
|
17581
17581
|
return e;
|
|
17582
17582
|
}
|
|
17583
|
-
function
|
|
17583
|
+
function Vb(s) {
|
|
17584
17584
|
const e = [];
|
|
17585
17585
|
for (const t of s.tracks) {
|
|
17586
17586
|
const i = Mo(t);
|
|
@@ -17588,7 +17588,7 @@ function Ub(s) {
|
|
|
17588
17588
|
}
|
|
17589
17589
|
return e;
|
|
17590
17590
|
}
|
|
17591
|
-
function
|
|
17591
|
+
function jb(s) {
|
|
17592
17592
|
const e = [];
|
|
17593
17593
|
for (const t of s.tracks) {
|
|
17594
17594
|
const i = Mo(t);
|
|
@@ -17675,7 +17675,7 @@ function Nt(s) {
|
|
|
17675
17675
|
function je(s, e, t = "") {
|
|
17676
17676
|
return `${e.protocol || "https"}://${e.host}/${s}${t}`;
|
|
17677
17677
|
}
|
|
17678
|
-
function
|
|
17678
|
+
function Kb(s, e = Ao, t = "") {
|
|
17679
17679
|
return e.sort((i, n) => i.priority - n.priority).map((i) => je(s, i, t));
|
|
17680
17680
|
}
|
|
17681
17681
|
async function Cp() {
|
|
@@ -17692,15 +17692,15 @@ async function Mp() {
|
|
|
17692
17692
|
return null;
|
|
17693
17693
|
}
|
|
17694
17694
|
}
|
|
17695
|
-
const Ap =
|
|
17696
|
-
class
|
|
17695
|
+
const Ap = "https://solana-rpc.publicnode.com", kp = 5e3, Ip = 864e5, hn = "arweave_active_gateway";
|
|
17696
|
+
class Dp {
|
|
17697
17697
|
constructor(e) {
|
|
17698
|
-
this.cache = /* @__PURE__ */ new Map(), this.logger = Se.for("ArweaveGateway"), this.hitCount = 0, this.missCount = 0, this.healthData = /* @__PURE__ */ new Map(), this.originalPriorities = /* @__PURE__ */ new Map(), this.MAX_HEALTH_RECORDS = 50, this.inflightResolves = /* @__PURE__ */ new Map(), this.inflightControllers = /* @__PURE__ */ new Map(), this.wayfinder = null, this.activeGateway = null, this.lastFetchTiming = 0, this.consecutiveSlowResponses = 0, this.gateways = (e?.gateways ?? Ao).map((t) => ({ ...t })), this.timeout = e?.timeout ??
|
|
17698
|
+
this.cache = /* @__PURE__ */ new Map(), this.logger = Se.for("ArweaveGateway"), this.hitCount = 0, this.missCount = 0, this.healthData = /* @__PURE__ */ new Map(), this.originalPriorities = /* @__PURE__ */ new Map(), this.MAX_HEALTH_RECORDS = 50, this.inflightResolves = /* @__PURE__ */ new Map(), this.inflightControllers = /* @__PURE__ */ new Map(), this.wayfinder = null, this.activeGateway = null, this.lastFetchTiming = 0, this.consecutiveSlowResponses = 0, this.gateways = (e?.gateways ?? Ao).map((t) => ({ ...t })), this.timeout = e?.timeout ?? kp, this.cacheTTL = e?.cacheTTL ?? Ip, this.slowResponseThreshold = e?.slowResponseThreshold ?? 8e3, this.maxSlowResponses = e?.maxSlowResponses ?? 3, this.solanaRpcUrl = e?.solanaRpcUrl ?? Ap, this.gateways.sort((t, i) => t.priority - i.priority), this.gateways.forEach((t) => {
|
|
17699
17699
|
this.originalPriorities.set(t.host, t.priority);
|
|
17700
17700
|
}), this.activeGateway = this.loadPersistedGateway(), Promise.all([Cp(), Mp(), import("./index.browser-CVv08iVS.js")]).then(([t, i, n]) => {
|
|
17701
17701
|
if (t && i)
|
|
17702
17702
|
try {
|
|
17703
|
-
const { FastestPingRoutingStrategy: a, RandomRoutingStrategy: r, CompositeRoutingStrategy: o, NetworkGatewaysProvider: c } = t, l = i.ARIO, u = n.createSolanaRpc(
|
|
17703
|
+
const { FastestPingRoutingStrategy: a, RandomRoutingStrategy: r, CompositeRoutingStrategy: o, NetworkGatewaysProvider: c } = t, l = i.ARIO, u = n.createSolanaRpc(this.solanaRpcUrl), d = l.init({ rpc: u }), h = new c({
|
|
17704
17704
|
ario: d,
|
|
17705
17705
|
sortBy: "operatorStake",
|
|
17706
17706
|
limit: 10
|
|
@@ -18623,7 +18623,7 @@ class Ip {
|
|
|
18623
18623
|
this.healthData.clear(), this.logger.info("Health data cleared");
|
|
18624
18624
|
}
|
|
18625
18625
|
}
|
|
18626
|
-
const Ae = new
|
|
18626
|
+
const Ae = new Dp(), ca = [
|
|
18627
18627
|
"ipfs.io",
|
|
18628
18628
|
"cloudflare-ipfs.com",
|
|
18629
18629
|
"dweb.link",
|
|
@@ -18637,8 +18637,8 @@ const Ae = new Ip(), ca = [
|
|
|
18637
18637
|
"spinamp.mypinata.cloud",
|
|
18638
18638
|
"catalogworks.b-cdn.net",
|
|
18639
18639
|
"www.heds.cloud"
|
|
18640
|
-
],
|
|
18641
|
-
function
|
|
18640
|
+
], Ep = "ipfs.io", $n = "/ipfs/";
|
|
18641
|
+
function xp(s) {
|
|
18642
18642
|
if (!s || typeof s != "string") return null;
|
|
18643
18643
|
if (s.startsWith("ipfs://ipfs/"))
|
|
18644
18644
|
return s.slice(12);
|
|
@@ -18656,7 +18656,7 @@ function Ep(s) {
|
|
|
18656
18656
|
}
|
|
18657
18657
|
return null;
|
|
18658
18658
|
}
|
|
18659
|
-
function
|
|
18659
|
+
function Yb(s) {
|
|
18660
18660
|
if (!s || typeof s != "string") return !1;
|
|
18661
18661
|
if (s.startsWith("ipfs://")) return !0;
|
|
18662
18662
|
try {
|
|
@@ -18668,7 +18668,7 @@ function Kb(s) {
|
|
|
18668
18668
|
}
|
|
18669
18669
|
return !1;
|
|
18670
18670
|
}
|
|
18671
|
-
function
|
|
18671
|
+
function Rp(s) {
|
|
18672
18672
|
if (!(!s || s.startsWith("ipfs://")))
|
|
18673
18673
|
try {
|
|
18674
18674
|
const { hostname: e } = new URL(s);
|
|
@@ -18679,12 +18679,12 @@ function xp(s) {
|
|
|
18679
18679
|
return;
|
|
18680
18680
|
}
|
|
18681
18681
|
}
|
|
18682
|
-
function
|
|
18682
|
+
function Zb(s, e = {}) {
|
|
18683
18683
|
if (!s) return s;
|
|
18684
|
-
const t = typeof e == "string" ? { gatewayHost: e } : e, { gatewayHost: i =
|
|
18684
|
+
const t = typeof e == "string" ? { gatewayHost: e } : e, { gatewayHost: i = Ep, preserveOriginalGateway: n = !1 } = t, a = xp(s);
|
|
18685
18685
|
if (a) {
|
|
18686
18686
|
if (n) {
|
|
18687
|
-
const r =
|
|
18687
|
+
const r = Rp(s);
|
|
18688
18688
|
if (r)
|
|
18689
18689
|
return `https://${r}/ipfs/${a}`;
|
|
18690
18690
|
}
|
|
@@ -18697,7 +18697,7 @@ function bi(s) {
|
|
|
18697
18697
|
}
|
|
18698
18698
|
var mn = { exports: {} };
|
|
18699
18699
|
var Vs;
|
|
18700
|
-
function
|
|
18700
|
+
function Pp() {
|
|
18701
18701
|
return Vs || (Vs = 1, (function(s, e) {
|
|
18702
18702
|
(function(t) {
|
|
18703
18703
|
s.exports = t();
|
|
@@ -20134,16 +20134,16 @@ function Rp() {
|
|
|
20134
20134
|
});
|
|
20135
20135
|
})(mn)), mn.exports;
|
|
20136
20136
|
}
|
|
20137
|
-
var
|
|
20138
|
-
const
|
|
20137
|
+
var Bp = Pp();
|
|
20138
|
+
const Np = /* @__PURE__ */ xr(Bp);
|
|
20139
20139
|
function vt(s) {
|
|
20140
20140
|
return `model:${s}`;
|
|
20141
20141
|
}
|
|
20142
|
-
function
|
|
20142
|
+
function Fp(s) {
|
|
20143
20143
|
const e = s.lastIndexOf("/");
|
|
20144
20144
|
return e >= 0 ? s.substring(0, e + 1) : "";
|
|
20145
20145
|
}
|
|
20146
|
-
async function
|
|
20146
|
+
async function $p(s, e = 3, t = 1e3) {
|
|
20147
20147
|
let i = null;
|
|
20148
20148
|
for (let n = 0; n < e; n++)
|
|
20149
20149
|
try {
|
|
@@ -20169,7 +20169,7 @@ async function js(s, e, t, i = 3, n = 1e3) {
|
|
|
20169
20169
|
const c = await fetch(o);
|
|
20170
20170
|
if (!c.ok)
|
|
20171
20171
|
throw new Error(`HTTP ${c.status}: ${c.statusText}`);
|
|
20172
|
-
const l = await c.text(), u = JSON.parse(l), d =
|
|
20172
|
+
const l = await c.text(), u = JSON.parse(l), d = Fp(o), h = {}, m = [];
|
|
20173
20173
|
if (u.weightsManifest && Array.isArray(u.weightsManifest)) {
|
|
20174
20174
|
for (const p of u.weightsManifest)
|
|
20175
20175
|
if (p.paths && Array.isArray(p.paths))
|
|
@@ -20177,7 +20177,7 @@ async function js(s, e, t, i = 3, n = 1e3) {
|
|
|
20177
20177
|
m.push(g);
|
|
20178
20178
|
}
|
|
20179
20179
|
const f = m.map(async (p) => {
|
|
20180
|
-
const g = d + p, y = await
|
|
20180
|
+
const g = d + p, y = await $p(g, i, n);
|
|
20181
20181
|
h[p] = await y.arrayBuffer();
|
|
20182
20182
|
});
|
|
20183
20183
|
return await Promise.all(f), {
|
|
@@ -20229,7 +20229,7 @@ function ko(s) {
|
|
|
20229
20229
|
}
|
|
20230
20230
|
const Io = /* @__PURE__ */ new Map();
|
|
20231
20231
|
let Ks = !1;
|
|
20232
|
-
function
|
|
20232
|
+
function Op() {
|
|
20233
20233
|
Ks || (Ks = !0, import("@tensorflow/tfjs").then((s) => {
|
|
20234
20234
|
s.io.registerLoadRouter(((e) => {
|
|
20235
20235
|
if (typeof e == "string" && e.startsWith("cached://")) {
|
|
@@ -20248,10 +20248,10 @@ function $p() {
|
|
|
20248
20248
|
}));
|
|
20249
20249
|
}));
|
|
20250
20250
|
}
|
|
20251
|
-
|
|
20252
|
-
class
|
|
20251
|
+
Op();
|
|
20252
|
+
class zp {
|
|
20253
20253
|
constructor(e = {}) {
|
|
20254
|
-
this.store =
|
|
20254
|
+
this.store = Np.createInstance({
|
|
20255
20255
|
name: e.storeName ?? "playlist-data-engine-models",
|
|
20256
20256
|
description: e.description ?? "Cached TF.js model artifacts for playlist-data-engine"
|
|
20257
20257
|
});
|
|
@@ -20364,8 +20364,8 @@ class Op {
|
|
|
20364
20364
|
}), e;
|
|
20365
20365
|
}
|
|
20366
20366
|
}
|
|
20367
|
-
const Ht = new
|
|
20368
|
-
function
|
|
20367
|
+
const Ht = new zp();
|
|
20368
|
+
function Xb(s) {
|
|
20369
20369
|
if (!s || !s.metadata) return null;
|
|
20370
20370
|
if (typeof s.metadata == "string")
|
|
20371
20371
|
try {
|
|
@@ -20376,10 +20376,10 @@ function Zb(s) {
|
|
|
20376
20376
|
}
|
|
20377
20377
|
return typeof s.metadata == "object" && !Array.isArray(s.metadata) ? s.metadata : null;
|
|
20378
20378
|
}
|
|
20379
|
-
function
|
|
20379
|
+
function Lp(s) {
|
|
20380
20380
|
const e = { stems: [], mixes: [], hasExtras: !1 };
|
|
20381
20381
|
if (!s) return e;
|
|
20382
|
-
const t =
|
|
20382
|
+
const t = Gp(s), i = Up(s), n = typeof s.vrm == "string" ? s.vrm : void 0, a = Wp(s.lyrics), r = Ys(s.visualizer), o = Ys(s.video), c = Hp(s.merch), l = qp(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, m = typeof s.external_url == "string" ? s.external_url : void 0;
|
|
20383
20383
|
return {
|
|
20384
20384
|
hasExtras: t.length > 0 || i.length > 0 || !!n || !!a || !!r || !!o || !!c || !!l || !!u || !!d || !!h || !!m,
|
|
20385
20385
|
...t.length > 0 ? { stems: t } : {},
|
|
@@ -20396,7 +20396,7 @@ function zp(s) {
|
|
|
20396
20396
|
...m ? { external_url: m } : {}
|
|
20397
20397
|
};
|
|
20398
20398
|
}
|
|
20399
|
-
function
|
|
20399
|
+
function Wp(s) {
|
|
20400
20400
|
if (s) {
|
|
20401
20401
|
if (typeof s == "string") return { text: s };
|
|
20402
20402
|
if (typeof s == "object" && !Array.isArray(s)) {
|
|
@@ -20414,7 +20414,7 @@ function Ys(s) {
|
|
|
20414
20414
|
mime_type: typeof e.mime_type == "string" ? e.mime_type : void 0
|
|
20415
20415
|
};
|
|
20416
20416
|
}
|
|
20417
|
-
function
|
|
20417
|
+
function Hp(s) {
|
|
20418
20418
|
if (!s || typeof s != "object" || Array.isArray(s)) return;
|
|
20419
20419
|
const e = s;
|
|
20420
20420
|
if (typeof e.uri == "string")
|
|
@@ -20424,7 +20424,7 @@ function Wp(s) {
|
|
|
20424
20424
|
type: typeof e.type == "string" ? e.type : void 0
|
|
20425
20425
|
};
|
|
20426
20426
|
}
|
|
20427
|
-
function
|
|
20427
|
+
function qp(s) {
|
|
20428
20428
|
if (!Array.isArray(s)) return;
|
|
20429
20429
|
const e = [];
|
|
20430
20430
|
for (const t of s)
|
|
@@ -20434,7 +20434,7 @@ function Hp(s) {
|
|
|
20434
20434
|
}
|
|
20435
20435
|
return e.length > 0 ? e : void 0;
|
|
20436
20436
|
}
|
|
20437
|
-
function
|
|
20437
|
+
function Gp(s) {
|
|
20438
20438
|
const e = s.stems;
|
|
20439
20439
|
if (!Array.isArray(e)) return [];
|
|
20440
20440
|
const t = [];
|
|
@@ -20449,13 +20449,13 @@ function qp(s) {
|
|
|
20449
20449
|
}
|
|
20450
20450
|
return t;
|
|
20451
20451
|
}
|
|
20452
|
-
function
|
|
20452
|
+
function Up(s) {
|
|
20453
20453
|
const e = s.mixes;
|
|
20454
20454
|
if (!Array.isArray(e)) return [];
|
|
20455
20455
|
const t = [];
|
|
20456
20456
|
for (const i of e)
|
|
20457
20457
|
if (i && typeof i == "object") {
|
|
20458
|
-
const n = i, a =
|
|
20458
|
+
const n = i, a = Vp(n.name), r = jp(n.conditions);
|
|
20459
20459
|
t.push({
|
|
20460
20460
|
name: a || "",
|
|
20461
20461
|
uri: typeof n.uri == "string" ? n.uri : void 0,
|
|
@@ -20465,7 +20465,7 @@ function Gp(s) {
|
|
|
20465
20465
|
}
|
|
20466
20466
|
return t;
|
|
20467
20467
|
}
|
|
20468
|
-
function
|
|
20468
|
+
function Vp(s) {
|
|
20469
20469
|
if (typeof s == "string") return s;
|
|
20470
20470
|
if (s && typeof s == "object" && !Array.isArray(s)) {
|
|
20471
20471
|
const e = s;
|
|
@@ -20473,7 +20473,7 @@ function Up(s) {
|
|
|
20473
20473
|
}
|
|
20474
20474
|
return "";
|
|
20475
20475
|
}
|
|
20476
|
-
function
|
|
20476
|
+
function jp(s) {
|
|
20477
20477
|
if (!Array.isArray(s)) return [];
|
|
20478
20478
|
const e = [];
|
|
20479
20479
|
for (const t of s)
|
|
@@ -20483,7 +20483,7 @@ function Vp(s) {
|
|
|
20483
20483
|
}
|
|
20484
20484
|
return e;
|
|
20485
20485
|
}
|
|
20486
|
-
function
|
|
20486
|
+
function Jb(s, e) {
|
|
20487
20487
|
const t = [], i = /* @__PURE__ */ new Date();
|
|
20488
20488
|
for (const n of s.mixes || []) {
|
|
20489
20489
|
if (n.conditions.length === 0) {
|
|
@@ -20497,7 +20497,7 @@ function Xb(s, e) {
|
|
|
20497
20497
|
}
|
|
20498
20498
|
const a = [], r = [];
|
|
20499
20499
|
for (const o of n.conditions) {
|
|
20500
|
-
const c =
|
|
20500
|
+
const c = Kp(o, e, i);
|
|
20501
20501
|
a.push(c), c.met || r.push(c);
|
|
20502
20502
|
}
|
|
20503
20503
|
t.push({
|
|
@@ -20509,7 +20509,7 @@ function Xb(s, e) {
|
|
|
20509
20509
|
}
|
|
20510
20510
|
return t;
|
|
20511
20511
|
}
|
|
20512
|
-
function
|
|
20512
|
+
function Kp(s, e, t = /* @__PURE__ */ new Date()) {
|
|
20513
20513
|
const { type: i, value: n } = s, a = e?.environment, r = e?.appState;
|
|
20514
20514
|
switch (i) {
|
|
20515
20515
|
case "weather": {
|
|
@@ -20579,7 +20579,7 @@ function jp(s, e, t = /* @__PURE__ */ new Date()) {
|
|
|
20579
20579
|
const o = a?.geolocation?.altitude;
|
|
20580
20580
|
if (o == null)
|
|
20581
20581
|
return { type: i, value: n, met: !1, reason: "Altitude unavailable" };
|
|
20582
|
-
const c =
|
|
20582
|
+
const c = Yp(n), l = Zp(o, c.operator, c.threshold);
|
|
20583
20583
|
return {
|
|
20584
20584
|
type: i,
|
|
20585
20585
|
value: n,
|
|
@@ -20629,14 +20629,14 @@ function Zs(s) {
|
|
|
20629
20629
|
const t = parseInt(e[0], 10), i = parseInt(e[1], 10);
|
|
20630
20630
|
return isNaN(t) || isNaN(i) ? 0 : t * 60 + i;
|
|
20631
20631
|
}
|
|
20632
|
-
function
|
|
20632
|
+
function Yp(s) {
|
|
20633
20633
|
const e = s.match(/^(>=|<=|>|<|=)?\s*(\d+(?:\.\d+)?)\s*$/);
|
|
20634
20634
|
return e ? {
|
|
20635
20635
|
operator: e[1] || ">=",
|
|
20636
20636
|
threshold: parseFloat(e[2])
|
|
20637
20637
|
} : { operator: ">=", threshold: parseFloat(s) || 0 };
|
|
20638
20638
|
}
|
|
20639
|
-
function
|
|
20639
|
+
function Zp(s, e, t) {
|
|
20640
20640
|
switch (e) {
|
|
20641
20641
|
case ">":
|
|
20642
20642
|
return s > t;
|
|
@@ -20653,7 +20653,7 @@ function Yp(s, e, t) {
|
|
|
20653
20653
|
return s >= t;
|
|
20654
20654
|
}
|
|
20655
20655
|
}
|
|
20656
|
-
class
|
|
20656
|
+
class Xp {
|
|
20657
20657
|
/**
|
|
20658
20658
|
* Generate a unique RPG-style character name from track metadata and character class
|
|
20659
20659
|
*
|
|
@@ -22628,7 +22628,7 @@ const Xs = [
|
|
|
22628
22628
|
source: "default",
|
|
22629
22629
|
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."
|
|
22630
22630
|
}
|
|
22631
|
-
],
|
|
22631
|
+
], Qb = [
|
|
22632
22632
|
"physical",
|
|
22633
22633
|
"exploration",
|
|
22634
22634
|
"combat",
|
|
@@ -22641,7 +22641,7 @@ const Xs = [
|
|
|
22641
22641
|
"perception",
|
|
22642
22642
|
"practical",
|
|
22643
22643
|
"entertainment"
|
|
22644
|
-
],
|
|
22644
|
+
], Jp = {
|
|
22645
22645
|
"appearance.bodyTypes": ["slender", "athletic", "muscular", "stocky"],
|
|
22646
22646
|
"appearance.skinTones": [
|
|
22647
22647
|
"#F5E6D3",
|
|
@@ -22720,35 +22720,35 @@ const Xs = [
|
|
|
22720
22720
|
};
|
|
22721
22721
|
function Do() {
|
|
22722
22722
|
const s = Y.getInstance();
|
|
22723
|
-
for (const [e, t] of Object.entries(
|
|
22723
|
+
for (const [e, t] of Object.entries(Jp))
|
|
22724
22724
|
s.initializeDefaults(e, [...t]);
|
|
22725
22725
|
}
|
|
22726
|
-
function
|
|
22726
|
+
function Qp() {
|
|
22727
22727
|
return Y.getInstance().getRegisteredCategories().some((t) => String(t).startsWith("appearance."));
|
|
22728
22728
|
}
|
|
22729
22729
|
function Eo() {
|
|
22730
|
-
|
|
22730
|
+
Qp() || Do();
|
|
22731
22731
|
}
|
|
22732
|
-
const
|
|
22732
|
+
const eg = Object.values(Or), tg = Object.entries(xn).map(([s, e]) => ({
|
|
22733
22733
|
class: s,
|
|
22734
22734
|
cantrips: e.cantrips,
|
|
22735
22735
|
spells_by_level: e.spells_by_level
|
|
22736
22736
|
}));
|
|
22737
22737
|
function xo() {
|
|
22738
22738
|
const s = Y.getInstance();
|
|
22739
|
-
s.initializeDefaults("spells",
|
|
22740
|
-
for (const e of
|
|
22739
|
+
s.initializeDefaults("spells", eg);
|
|
22740
|
+
for (const e of tg) {
|
|
22741
22741
|
const t = `spells.${e.class}`;
|
|
22742
22742
|
s.initializeDefaults(t, [e]);
|
|
22743
22743
|
}
|
|
22744
22744
|
}
|
|
22745
|
-
function
|
|
22745
|
+
function ig() {
|
|
22746
22746
|
return Y.getInstance().getRegisteredCategories().some((t) => String(t).startsWith("spells"));
|
|
22747
22747
|
}
|
|
22748
22748
|
function On() {
|
|
22749
|
-
|
|
22749
|
+
ig() || xo();
|
|
22750
22750
|
}
|
|
22751
|
-
const
|
|
22751
|
+
const ng = Object.values(Vt).map((s) => ({
|
|
22752
22752
|
...s,
|
|
22753
22753
|
source: "default",
|
|
22754
22754
|
spawnWeight: s.spawnWeight ?? 1,
|
|
@@ -22756,46 +22756,46 @@ const ig = Object.values(Vt).map((s) => ({
|
|
|
22756
22756
|
tags: s.tags ?? []
|
|
22757
22757
|
}));
|
|
22758
22758
|
function Ro() {
|
|
22759
|
-
Y.getInstance().initializeDefaults("equipment",
|
|
22759
|
+
Y.getInstance().initializeDefaults("equipment", ng);
|
|
22760
22760
|
}
|
|
22761
|
-
function
|
|
22761
|
+
function ag() {
|
|
22762
22762
|
return Y.getInstance().getRegisteredCategories().some((t) => t === "equipment");
|
|
22763
22763
|
}
|
|
22764
22764
|
function Po() {
|
|
22765
|
-
|
|
22765
|
+
ag() || Ro();
|
|
22766
22766
|
}
|
|
22767
22767
|
function Bo() {
|
|
22768
22768
|
Y.getInstance().initializeDefaults("races", [...bu]);
|
|
22769
22769
|
}
|
|
22770
|
-
function
|
|
22770
|
+
function sg() {
|
|
22771
22771
|
return Y.getInstance().getRegisteredCategories().some((t) => t === "races");
|
|
22772
22772
|
}
|
|
22773
22773
|
function No() {
|
|
22774
|
-
|
|
22774
|
+
sg() || Bo();
|
|
22775
22775
|
}
|
|
22776
22776
|
function Fo() {
|
|
22777
22777
|
Y.getInstance().initializeDefaults("races.data", [..._u]);
|
|
22778
22778
|
}
|
|
22779
|
-
function
|
|
22779
|
+
function rg() {
|
|
22780
22780
|
return Y.getInstance().getRegisteredCategories().some((t) => t === "races.data");
|
|
22781
22781
|
}
|
|
22782
|
-
function
|
|
22783
|
-
|
|
22782
|
+
function og() {
|
|
22783
|
+
rg() || Fo();
|
|
22784
22784
|
}
|
|
22785
22785
|
function $o() {
|
|
22786
22786
|
Y.getInstance().initializeDefaults("classes", [...yu]);
|
|
22787
22787
|
}
|
|
22788
|
-
function
|
|
22788
|
+
function cg() {
|
|
22789
22789
|
return Y.getInstance().getRegisteredCategories().some((t) => t === "classes");
|
|
22790
22790
|
}
|
|
22791
22791
|
function Oo() {
|
|
22792
|
-
|
|
22792
|
+
cg() || $o();
|
|
22793
22793
|
}
|
|
22794
|
-
function
|
|
22794
|
+
function e0() {
|
|
22795
22795
|
Do(), xo(), Ro(), Bo(), Fo(), $o(), zo(), Wo();
|
|
22796
22796
|
}
|
|
22797
|
-
function
|
|
22798
|
-
Eo(), On(), Po(), No(),
|
|
22797
|
+
function t0() {
|
|
22798
|
+
Eo(), On(), Po(), No(), og(), Oo(), Lo(), dg();
|
|
22799
22799
|
}
|
|
22800
22800
|
function zo() {
|
|
22801
22801
|
const s = Y.getInstance(), e = {};
|
|
@@ -22815,11 +22815,11 @@ function zo() {
|
|
|
22815
22815
|
s.initializeDefaults(a, n);
|
|
22816
22816
|
}
|
|
22817
22817
|
}
|
|
22818
|
-
function
|
|
22818
|
+
function lg() {
|
|
22819
22819
|
return Y.getInstance().getRegisteredCategories().some((t) => t === "classFeatures" || t === "racialTraits");
|
|
22820
22820
|
}
|
|
22821
22821
|
function Lo() {
|
|
22822
|
-
|
|
22822
|
+
lg() || zo();
|
|
22823
22823
|
}
|
|
22824
22824
|
function Wo() {
|
|
22825
22825
|
const s = Y.getInstance(), e = {
|
|
@@ -22838,14 +22838,14 @@ function Wo() {
|
|
|
22838
22838
|
s.initializeDefaults(n, i);
|
|
22839
22839
|
}
|
|
22840
22840
|
}
|
|
22841
|
-
function
|
|
22841
|
+
function ug() {
|
|
22842
22842
|
const s = Y.getInstance();
|
|
22843
22843
|
return s.hasCustomData("skills") || s.getDefaults("skills").length > 0;
|
|
22844
22844
|
}
|
|
22845
|
-
function
|
|
22846
|
-
|
|
22845
|
+
function dg() {
|
|
22846
|
+
ug() || Wo();
|
|
22847
22847
|
}
|
|
22848
|
-
class
|
|
22848
|
+
class hg {
|
|
22849
22849
|
/**
|
|
22850
22850
|
* Select a random race deterministically from seeded RNG
|
|
22851
22851
|
*
|
|
@@ -23253,7 +23253,7 @@ class pn {
|
|
|
23253
23253
|
};
|
|
23254
23254
|
}
|
|
23255
23255
|
}
|
|
23256
|
-
class
|
|
23256
|
+
class mg {
|
|
23257
23257
|
/**
|
|
23258
23258
|
* Get skill list definition for a class from ExtensionManager
|
|
23259
23259
|
*
|
|
@@ -23406,7 +23406,7 @@ class hg {
|
|
|
23406
23406
|
return n.slice(0, t);
|
|
23407
23407
|
}
|
|
23408
23408
|
}
|
|
23409
|
-
const
|
|
23409
|
+
const fg = [
|
|
23410
23410
|
"Wizard",
|
|
23411
23411
|
"Sorcerer",
|
|
23412
23412
|
"Warlock",
|
|
@@ -23415,7 +23415,7 @@ const mg = [
|
|
|
23415
23415
|
"Druid",
|
|
23416
23416
|
"Paladin"
|
|
23417
23417
|
];
|
|
23418
|
-
class
|
|
23418
|
+
class pg {
|
|
23419
23419
|
/**
|
|
23420
23420
|
* Generate character appearance from seed and audio profile
|
|
23421
23421
|
*
|
|
@@ -23432,7 +23432,7 @@ class fg {
|
|
|
23432
23432
|
D
|
|
23433
23433
|
), oe = i.color_palette, j = oe?.primary_color, X = oe?.secondary_color, fe = oe?.accent_color;
|
|
23434
23434
|
let pe;
|
|
23435
|
-
return
|
|
23435
|
+
return fg.includes(t) && (pe = this.generateAuraColor(t, oe?.primary_color)), {
|
|
23436
23436
|
body_type: R,
|
|
23437
23437
|
skin_tone: q,
|
|
23438
23438
|
hair_style: O,
|
|
@@ -23749,7 +23749,7 @@ const tr = {
|
|
|
23749
23749
|
items: ["Spellbook", "Component Pouch", "Scholar's Pack", "Ink & Quill"]
|
|
23750
23750
|
}
|
|
23751
23751
|
};
|
|
23752
|
-
function
|
|
23752
|
+
function gg(s) {
|
|
23753
23753
|
if (s in tr)
|
|
23754
23754
|
return tr[s];
|
|
23755
23755
|
try {
|
|
@@ -24292,7 +24292,7 @@ class Pi {
|
|
|
24292
24292
|
*/
|
|
24293
24293
|
static getStartingEquipment(e) {
|
|
24294
24294
|
this.ensureInitialized();
|
|
24295
|
-
const t =
|
|
24295
|
+
const t = gg(e);
|
|
24296
24296
|
return t ? {
|
|
24297
24297
|
weapons: [...t.weapons],
|
|
24298
24298
|
armor: [...t.armor],
|
|
@@ -24948,7 +24948,7 @@ class la {
|
|
|
24948
24948
|
);
|
|
24949
24949
|
d = J, l = u;
|
|
24950
24950
|
}
|
|
24951
|
-
const h = d ||
|
|
24951
|
+
const h = d || hg.select(a);
|
|
24952
24952
|
if (l !== void 0 && u !== "pure") {
|
|
24953
24953
|
const J = c.getAvailableSubraces(h);
|
|
24954
24954
|
if (!J.includes(l))
|
|
@@ -24959,7 +24959,7 @@ class la {
|
|
|
24959
24959
|
const le = ["pure", ...c.getAvailableSubraces(h)], dt = a.randomChoice(le);
|
|
24960
24960
|
l = dt === "pure" ? void 0 : dt;
|
|
24961
24961
|
}
|
|
24962
|
-
const m = n.forceClass || zn.suggest(t, a), f = n.forceName || new
|
|
24962
|
+
const m = n.forceClass || zn.suggest(t, a), f = n.forceName || new Xp().generateName(
|
|
24963
24963
|
e,
|
|
24964
24964
|
i,
|
|
24965
24965
|
t,
|
|
@@ -24968,14 +24968,14 @@ class la {
|
|
|
24968
24968
|
), p = pn.calculateBaseScores(t, a), g = pn.applyRacialBonuses(p, h), y = pn.calculateModifiers(g), v = zr(m);
|
|
24969
24969
|
if (!v)
|
|
24970
24970
|
throw new Error(`Unknown class: ${m}. Cannot generate character.`);
|
|
24971
|
-
const T = Zn(h)?.speed ?? 30, _ = v.hit_die + y.CON, I = 10 + y.DEX, D = y.DEX, R = Lr[r], q =
|
|
24971
|
+
const T = Zn(h)?.speed ?? 30, _ = v.hit_die + y.CON, I = 10 + y.DEX, D = y.DEX, R = Lr[r], q = mg.assignSkills(m, a), O = {
|
|
24972
24972
|
STR: v.saving_throws.includes("STR"),
|
|
24973
24973
|
DEX: v.saving_throws.includes("DEX"),
|
|
24974
24974
|
CON: v.saving_throws.includes("CON"),
|
|
24975
24975
|
INT: v.saving_throws.includes("INT"),
|
|
24976
24976
|
WIS: v.saving_throws.includes("WIS"),
|
|
24977
24977
|
CHA: v.saving_throws.includes("CHA")
|
|
24978
|
-
}, W =
|
|
24978
|
+
}, W = pg.generate(e, m, t), Z = c.getClassFeatures(m, r), Q = l ? c.getRacialTraitsForSubrace(h, l) : c.getBaseRacialTraits(h), se = Pi.initializeEquipment(m), oe = {
|
|
24979
24979
|
name: f,
|
|
24980
24980
|
race: h,
|
|
24981
24981
|
subrace: l,
|
|
@@ -25070,7 +25070,7 @@ class la {
|
|
|
25070
25070
|
function ir(s) {
|
|
25071
25071
|
return 2595 * Math.log10(1 + s / 700);
|
|
25072
25072
|
}
|
|
25073
|
-
function
|
|
25073
|
+
function yg(s) {
|
|
25074
25074
|
return 700 * (Math.pow(10, s / 2595) - 1);
|
|
25075
25075
|
}
|
|
25076
25076
|
function Hi(s, e) {
|
|
@@ -25091,12 +25091,12 @@ function Hi(s, e) {
|
|
|
25091
25091
|
targetSampleRate: e
|
|
25092
25092
|
};
|
|
25093
25093
|
}
|
|
25094
|
-
function
|
|
25094
|
+
function vg(s, e, t, i = 0, n = t / 2) {
|
|
25095
25095
|
const a = e / 2 + 1, r = [], o = ir(i), c = ir(n), l = [];
|
|
25096
25096
|
for (let d = 0; d < s + 2; d++)
|
|
25097
25097
|
l.push(o + d * (c - o) / (s + 1));
|
|
25098
25098
|
const u = l.map((d) => {
|
|
25099
|
-
const h =
|
|
25099
|
+
const h = yg(d);
|
|
25100
25100
|
return Math.floor((e + 1) * h / t);
|
|
25101
25101
|
});
|
|
25102
25102
|
for (let d = 0; d < s; d++) {
|
|
@@ -25109,7 +25109,7 @@ function yg(s, e, t, i = 0, n = t / 2) {
|
|
|
25109
25109
|
}
|
|
25110
25110
|
return r;
|
|
25111
25111
|
}
|
|
25112
|
-
function
|
|
25112
|
+
function bg(s, e, t) {
|
|
25113
25113
|
if (s.length === 0)
|
|
25114
25114
|
return new Float32Array(0);
|
|
25115
25115
|
const i = 1 / (2 * Math.PI * e), n = 1 / t, a = i / (i + n), r = new Float32Array(s.length);
|
|
@@ -25143,7 +25143,7 @@ function Ho(s, e, t) {
|
|
|
25143
25143
|
}
|
|
25144
25144
|
return l;
|
|
25145
25145
|
}
|
|
25146
|
-
function
|
|
25146
|
+
function wg(s) {
|
|
25147
25147
|
if (s.length === 0)
|
|
25148
25148
|
return 0;
|
|
25149
25149
|
let e = 0;
|
|
@@ -25158,7 +25158,7 @@ function bg(s) {
|
|
|
25158
25158
|
const n = i / s.length;
|
|
25159
25159
|
return Math.sqrt(n);
|
|
25160
25160
|
}
|
|
25161
|
-
function
|
|
25161
|
+
function Sg(s) {
|
|
25162
25162
|
const e = s.length, t = Math.pow(2, Math.ceil(Math.log2(e))), i = new Float32Array(t), n = new Float32Array(t);
|
|
25163
25163
|
for (let c = 0; c < e; c++) {
|
|
25164
25164
|
const l = 0.5 - 0.5 * Math.cos(2 * Math.PI * c / (e - 1));
|
|
@@ -25197,7 +25197,7 @@ function qo(s, e, t, i) {
|
|
|
25197
25197
|
const n = [];
|
|
25198
25198
|
let a = 0;
|
|
25199
25199
|
for (; a + e <= s.length; ) {
|
|
25200
|
-
const r = s.slice(a, a + e), o =
|
|
25200
|
+
const r = s.slice(a, a + e), o = Sg(r);
|
|
25201
25201
|
n.push(o), a += t;
|
|
25202
25202
|
}
|
|
25203
25203
|
return {
|
|
@@ -25217,11 +25217,11 @@ function Uo(s, e) {
|
|
|
25217
25217
|
const t = Math.PI * (2 * s - 1) / (2 * e);
|
|
25218
25218
|
return 1 / (2 * Math.sin(t));
|
|
25219
25219
|
}
|
|
25220
|
-
function
|
|
25220
|
+
function _g(s, e, t, i) {
|
|
25221
25221
|
const n = 2 * Math.PI * s / e, a = Math.cos(n), r = Math.sin(n), o = Uo(t, i), c = r / (2 * o), l = 1 + c, u = (1 - a) / 2 / l, d = (1 - a) / l, h = (1 - a) / 2 / l, m = -2 * a / l, f = (1 - c) / l;
|
|
25222
25222
|
return { b0: u, b1: d, b2: h, a1: m, a2: f };
|
|
25223
25223
|
}
|
|
25224
|
-
function
|
|
25224
|
+
function Tg(s, e, t, i) {
|
|
25225
25225
|
const n = 2 * Math.PI * s / e, a = Math.cos(n), r = Math.sin(n), o = Uo(t, i), c = r / (2 * o), l = 1 + c, u = (1 + a) / 2 / l, d = -(1 + a) / l, h = (1 + a) / 2 / l, m = -2 * a / l, f = (1 - c) / l;
|
|
25226
25226
|
return { b0: u, b1: d, b2: h, a1: m, a2: f };
|
|
25227
25227
|
}
|
|
@@ -25232,7 +25232,7 @@ function nr(s, e) {
|
|
|
25232
25232
|
o[c] = t * s[c] + i * s[c - 1] + n * s[c - 2] - a * o[c - 1] - r * o[c - 2];
|
|
25233
25233
|
return o;
|
|
25234
25234
|
}
|
|
25235
|
-
function
|
|
25235
|
+
function Cg(s, e, t, i, n) {
|
|
25236
25236
|
if (s.length === 0)
|
|
25237
25237
|
return new Float32Array(0);
|
|
25238
25238
|
const a = 8;
|
|
@@ -25243,22 +25243,22 @@ function Tg(s, e, t, i, n) {
|
|
|
25243
25243
|
const r = a / 2;
|
|
25244
25244
|
let o = new Float32Array(s);
|
|
25245
25245
|
for (let c = 1; c <= r; c++) {
|
|
25246
|
-
const l =
|
|
25246
|
+
const l = Tg(e, i, c, a);
|
|
25247
25247
|
o = nr(o, l);
|
|
25248
25248
|
}
|
|
25249
25249
|
for (let c = 1; c <= r; c++) {
|
|
25250
|
-
const l =
|
|
25250
|
+
const l = _g(t, i, c, a);
|
|
25251
25251
|
o = nr(o, l);
|
|
25252
25252
|
}
|
|
25253
25253
|
return o;
|
|
25254
25254
|
}
|
|
25255
|
-
function
|
|
25255
|
+
function Mg(s, e, t, i) {
|
|
25256
25256
|
const n = Go.find((a) => a.name === e);
|
|
25257
25257
|
if (!n)
|
|
25258
25258
|
throw new Error(`Unknown frequency band: ${e}. Valid bands are: low, mid, high`);
|
|
25259
|
-
return
|
|
25259
|
+
return Cg(s, n.lowHz, n.highHz, t);
|
|
25260
25260
|
}
|
|
25261
|
-
const
|
|
25261
|
+
const Ag = {
|
|
25262
25262
|
targetSampleRate: 44100,
|
|
25263
25263
|
fftWindowSizeMs: 23,
|
|
25264
25264
|
hopSizeMs: 10,
|
|
@@ -25266,7 +25266,7 @@ const Mg = {
|
|
|
25266
25266
|
peakThreshold: 0.3,
|
|
25267
25267
|
bands: Go
|
|
25268
25268
|
};
|
|
25269
|
-
class
|
|
25269
|
+
class kg {
|
|
25270
25270
|
/**
|
|
25271
25271
|
* Create a new Multi-Band Analyzer
|
|
25272
25272
|
*
|
|
@@ -25274,7 +25274,7 @@ class Ag {
|
|
|
25274
25274
|
*/
|
|
25275
25275
|
constructor(e = {}) {
|
|
25276
25276
|
if (this.config = {
|
|
25277
|
-
...
|
|
25277
|
+
...Ag,
|
|
25278
25278
|
...e
|
|
25279
25279
|
}, this.config.peakThreshold < 0 || this.config.peakThreshold > 1)
|
|
25280
25280
|
throw new Error(`peakThreshold must be between 0 and 1, got: ${this.config.peakThreshold}`);
|
|
@@ -25329,7 +25329,7 @@ class Ag {
|
|
|
25329
25329
|
* Analyze a single frequency band
|
|
25330
25330
|
*/
|
|
25331
25331
|
analyzeBand(e, t, i, n, a, r, o) {
|
|
25332
|
-
const c =
|
|
25332
|
+
const c = Mg(e, t.name, i), l = qo(c, n, a, i), u = l.numFrames, d = new Float32Array(u);
|
|
25333
25333
|
for (let T = 0; T < u; T++) {
|
|
25334
25334
|
const _ = l.frames[T];
|
|
25335
25335
|
let I = 0;
|
|
@@ -25474,14 +25474,14 @@ const gn = {
|
|
|
25474
25474
|
// 60ms buffer
|
|
25475
25475
|
adaptiveThresholding: !1
|
|
25476
25476
|
}
|
|
25477
|
-
},
|
|
25477
|
+
}, Ig = {
|
|
25478
25478
|
baseThreshold: 0.3,
|
|
25479
25479
|
adaptiveThresholding: !1,
|
|
25480
25480
|
adaptiveWindowSize: 50,
|
|
25481
25481
|
minTransientInterval: 0.02
|
|
25482
25482
|
// 20ms minimum between transients (fallback)
|
|
25483
25483
|
};
|
|
25484
|
-
class
|
|
25484
|
+
class Dg {
|
|
25485
25485
|
/**
|
|
25486
25486
|
* Create a new TransientDetector
|
|
25487
25487
|
*
|
|
@@ -25494,7 +25494,7 @@ class Ig {
|
|
|
25494
25494
|
high: { ...gn.high, ...i?.high }
|
|
25495
25495
|
};
|
|
25496
25496
|
if (this.config = {
|
|
25497
|
-
...
|
|
25497
|
+
...Ig,
|
|
25498
25498
|
...n,
|
|
25499
25499
|
bandConfig: a
|
|
25500
25500
|
}, t !== void 0 && (this.config.bands = t), this.config.baseThreshold < 0 || this.config.baseThreshold > 1)
|
|
@@ -26173,7 +26173,7 @@ class Vo {
|
|
|
26173
26173
|
};
|
|
26174
26174
|
}
|
|
26175
26175
|
}
|
|
26176
|
-
class
|
|
26176
|
+
class Eg {
|
|
26177
26177
|
constructor(e = {}) {
|
|
26178
26178
|
this.id = "high-bpm-grid-restriction", this.description = "Restricts 16th notes and triplets to 8th notes at high BPMs for playability", this.restrict16thBpm = e.restrict16thBpm ?? 160, this.restrictTripletBpm = e.restrictTripletBpm ?? 200;
|
|
26179
26179
|
}
|
|
@@ -26201,10 +26201,10 @@ class Dg {
|
|
|
26201
26201
|
}
|
|
26202
26202
|
}
|
|
26203
26203
|
const jo = {
|
|
26204
|
-
rules: [new
|
|
26204
|
+
rules: [new Eg()],
|
|
26205
26205
|
enabled: !0
|
|
26206
26206
|
};
|
|
26207
|
-
class
|
|
26207
|
+
class xg {
|
|
26208
26208
|
/**
|
|
26209
26209
|
* Create a new TempoAwareQuantizer.
|
|
26210
26210
|
*
|
|
@@ -26277,16 +26277,16 @@ class Eg {
|
|
|
26277
26277
|
return i;
|
|
26278
26278
|
}
|
|
26279
26279
|
}
|
|
26280
|
-
const
|
|
26280
|
+
const Rg = {
|
|
26281
26281
|
phraseSizes: [1, 2, 4, 8],
|
|
26282
26282
|
minOccurrences: 3,
|
|
26283
26283
|
topSignificantCount: 10,
|
|
26284
26284
|
includePhrasesWithoutVariation: !1,
|
|
26285
26285
|
minNotesPerPhrase: (s) => 1 + s
|
|
26286
26286
|
};
|
|
26287
|
-
class
|
|
26287
|
+
class Pg {
|
|
26288
26288
|
constructor(e = {}) {
|
|
26289
|
-
this.config = { ...
|
|
26289
|
+
this.config = { ...Rg, ...e };
|
|
26290
26290
|
}
|
|
26291
26291
|
/**
|
|
26292
26292
|
* Analyze quantized band streams for rhythmic phrases
|
|
@@ -26475,15 +26475,15 @@ class Rg {
|
|
|
26475
26475
|
return i * n;
|
|
26476
26476
|
}
|
|
26477
26477
|
}
|
|
26478
|
-
const
|
|
26478
|
+
const Bg = {
|
|
26479
26479
|
beatsPerSection: 8,
|
|
26480
26480
|
// 2 measures in 4/4 time
|
|
26481
26481
|
sparseThreshold: 1,
|
|
26482
26482
|
denseThreshold: 1.5
|
|
26483
26483
|
};
|
|
26484
|
-
class
|
|
26484
|
+
class Ng {
|
|
26485
26485
|
constructor(e = {}) {
|
|
26486
|
-
this.config = { ...
|
|
26486
|
+
this.config = { ...Bg, ...e };
|
|
26487
26487
|
}
|
|
26488
26488
|
/**
|
|
26489
26489
|
* Analyze quantized band streams for density
|
|
@@ -26704,11 +26704,11 @@ const Ko = {
|
|
|
26704
26704
|
mid: 0.95,
|
|
26705
26705
|
high: 1
|
|
26706
26706
|
}
|
|
26707
|
-
},
|
|
26707
|
+
}, Fg = {
|
|
26708
26708
|
low: 0.8,
|
|
26709
26709
|
mid: 0.95,
|
|
26710
26710
|
high: 1
|
|
26711
|
-
},
|
|
26711
|
+
}, $g = {
|
|
26712
26712
|
ddr: {
|
|
26713
26713
|
ioiVarianceWeight: 0.2,
|
|
26714
26714
|
syncopationWeight: 0.15,
|
|
@@ -26728,15 +26728,15 @@ const Ko = {
|
|
|
26728
26728
|
densityWeight: 0.2
|
|
26729
26729
|
}
|
|
26730
26730
|
};
|
|
26731
|
-
function
|
|
26732
|
-
const e =
|
|
26731
|
+
function i0(s) {
|
|
26732
|
+
const e = $g[s];
|
|
26733
26733
|
return {
|
|
26734
26734
|
...Ko,
|
|
26735
26735
|
...e,
|
|
26736
|
-
bandBiasWeights: { ...
|
|
26736
|
+
bandBiasWeights: { ...Fg }
|
|
26737
26737
|
};
|
|
26738
26738
|
}
|
|
26739
|
-
class
|
|
26739
|
+
class Og {
|
|
26740
26740
|
constructor(e = {}) {
|
|
26741
26741
|
this.config = { ...Ko, ...e };
|
|
26742
26742
|
}
|
|
@@ -26936,14 +26936,14 @@ class $g {
|
|
|
26936
26936
|
this.config = { ...this.config, ...e };
|
|
26937
26937
|
}
|
|
26938
26938
|
}
|
|
26939
|
-
const
|
|
26939
|
+
const zg = {
|
|
26940
26940
|
transitionOverlapBeats: 0,
|
|
26941
26941
|
// No overlap by default - clean section boundaries
|
|
26942
26942
|
preserveGridDecisions: !0
|
|
26943
|
-
},
|
|
26944
|
-
class
|
|
26943
|
+
}, Lg = 1, Wg = 1.5;
|
|
26944
|
+
class Hg {
|
|
26945
26945
|
constructor(e = {}) {
|
|
26946
|
-
this.config = { ...
|
|
26946
|
+
this.config = { ...zg, ...e };
|
|
26947
26947
|
}
|
|
26948
26948
|
/**
|
|
26949
26949
|
* Generate a composite stream from quantized band streams and scoring results
|
|
@@ -27048,7 +27048,7 @@ class Wg {
|
|
|
27048
27048
|
const o = Math.max(...e.map((c) => c.beatIndex)) + 1;
|
|
27049
27049
|
a = e.length / o * (i / 60);
|
|
27050
27050
|
}
|
|
27051
|
-
return a <
|
|
27051
|
+
return a < Lg ? "easy" : a > Wg ? "hard" : "medium";
|
|
27052
27052
|
}
|
|
27053
27053
|
/**
|
|
27054
27054
|
* Get the current configuration
|
|
@@ -27063,7 +27063,7 @@ const ua = {
|
|
|
27063
27063
|
fillEmptyMeasures: !0,
|
|
27064
27064
|
addedBeatIntensity: 0.45,
|
|
27065
27065
|
marginSeconds: 0.5
|
|
27066
|
-
},
|
|
27066
|
+
}, qg = {
|
|
27067
27067
|
ddr: {
|
|
27068
27068
|
strongBeatEmphasis: "natural",
|
|
27069
27069
|
downbeatProximityRange: 1,
|
|
@@ -27086,19 +27086,19 @@ const ua = {
|
|
|
27086
27086
|
marginSeconds: 0.5
|
|
27087
27087
|
}
|
|
27088
27088
|
};
|
|
27089
|
-
function
|
|
27090
|
-
return { ...
|
|
27089
|
+
function n0(s) {
|
|
27090
|
+
return { ...qg[s] };
|
|
27091
27091
|
}
|
|
27092
|
-
function
|
|
27092
|
+
function Gg(s) {
|
|
27093
27093
|
return s % 3 === 0 ? 3 : 2;
|
|
27094
27094
|
}
|
|
27095
|
-
function
|
|
27095
|
+
function Ug(s, e) {
|
|
27096
27096
|
return s % e === 0;
|
|
27097
27097
|
}
|
|
27098
|
-
function
|
|
27098
|
+
function Vg(s, e) {
|
|
27099
27099
|
return s % e !== 0;
|
|
27100
27100
|
}
|
|
27101
|
-
function
|
|
27101
|
+
function jg(s, e) {
|
|
27102
27102
|
let t = s[0];
|
|
27103
27103
|
for (const i of s)
|
|
27104
27104
|
if (i.startBeat <= e)
|
|
@@ -27107,13 +27107,13 @@ function Vg(s, e) {
|
|
|
27107
27107
|
break;
|
|
27108
27108
|
return t;
|
|
27109
27109
|
}
|
|
27110
|
-
function
|
|
27110
|
+
function Kg(s, e, t) {
|
|
27111
27111
|
if (t === "neutral")
|
|
27112
27112
|
return !1;
|
|
27113
|
-
const i =
|
|
27114
|
-
return t === "natural" ?
|
|
27113
|
+
const i = Gg(e);
|
|
27114
|
+
return t === "natural" ? Ug(s, i) : Vg(s, i);
|
|
27115
27115
|
}
|
|
27116
|
-
class
|
|
27116
|
+
class Yg {
|
|
27117
27117
|
constructor(e = {}) {
|
|
27118
27118
|
this.config = { ...ua, ...e };
|
|
27119
27119
|
}
|
|
@@ -27331,7 +27331,7 @@ class Kg {
|
|
|
27331
27331
|
return e.filter((r) => r.timestamp < n || r.timestamp > a ? (i.marginRemovals++, !1) : !0);
|
|
27332
27332
|
}
|
|
27333
27333
|
}
|
|
27334
|
-
const
|
|
27334
|
+
const a0 = [
|
|
27335
27335
|
"straight_16th",
|
|
27336
27336
|
"triplet_8th",
|
|
27337
27337
|
"straight_8th",
|
|
@@ -27418,7 +27418,7 @@ const n0 = [
|
|
|
27418
27418
|
description: "Custom density-based variant — parameters provided at generation time",
|
|
27419
27419
|
targetDensityRange: { min: 0, max: 1 / 0 }
|
|
27420
27420
|
}
|
|
27421
|
-
},
|
|
27421
|
+
}, Zg = 70, Xg = 70, Jg = 120;
|
|
27422
27422
|
function at(s, e) {
|
|
27423
27423
|
if (s === "natural")
|
|
27424
27424
|
return [...qe.natural.allowedGridTypes];
|
|
@@ -27427,13 +27427,13 @@ function at(s, e) {
|
|
|
27427
27427
|
if (s === "medium")
|
|
27428
27428
|
return ["straight_8th", "quarter_triplet"];
|
|
27429
27429
|
if (s === "hard")
|
|
27430
|
-
return e >=
|
|
27430
|
+
return e >= Xg ? ["straight_8th", "quarter_triplet"] : [...qe.hard.allowedGridTypes];
|
|
27431
27431
|
if (s === "custom")
|
|
27432
27432
|
return [...qe.custom.allowedGridTypes];
|
|
27433
27433
|
const t = s;
|
|
27434
27434
|
throw new Error(`Unhandled difficulty: ${t}`);
|
|
27435
27435
|
}
|
|
27436
|
-
const
|
|
27436
|
+
const Qg = {
|
|
27437
27437
|
straight_4th: ["straight_4th"],
|
|
27438
27438
|
straight_8th: ["straight_8th", "quarter_triplet"],
|
|
27439
27439
|
quarter_triplet: ["quarter_triplet", "straight_8th"],
|
|
@@ -27441,15 +27441,15 @@ const Jg = {
|
|
|
27441
27441
|
triplet_8th: ["triplet_8th", "straight_8th", "quarter_triplet"],
|
|
27442
27442
|
straight_16th: ["straight_16th", "triplet_8th", "straight_8th", "quarter_triplet"]
|
|
27443
27443
|
};
|
|
27444
|
-
function
|
|
27445
|
-
const t =
|
|
27444
|
+
function ey(s, e) {
|
|
27445
|
+
const t = Qg[s.maxGridType] ?? [s.maxGridType];
|
|
27446
27446
|
if (!s.bpmBasedQuantization)
|
|
27447
27447
|
return [...t];
|
|
27448
|
-
const i = s.restrictBpm ??
|
|
27448
|
+
const i = s.restrictBpm ?? Zg, n = s.quarterNoteBpm ?? Jg;
|
|
27449
27449
|
let a = [...t];
|
|
27450
27450
|
return e >= i && (a = a.filter((r) => r !== "straight_16th" && r !== "triplet_8th")), e > n && (a = a.filter((r) => r !== "straight_8th")), a;
|
|
27451
27451
|
}
|
|
27452
|
-
function
|
|
27452
|
+
function ty(s, e) {
|
|
27453
27453
|
if (s.length === 0 || e <= 0)
|
|
27454
27454
|
return 0;
|
|
27455
27455
|
const t = 60 / e;
|
|
@@ -27457,7 +27457,7 @@ function ey(s, e) {
|
|
|
27457
27457
|
...s.map((n) => Hn[n])
|
|
27458
27458
|
) / t;
|
|
27459
27459
|
}
|
|
27460
|
-
const
|
|
27460
|
+
const iy = {
|
|
27461
27461
|
logConversions: !1,
|
|
27462
27462
|
preservePhraseBoundaries: !0,
|
|
27463
27463
|
simplificationIntensityThreshold: 0.3,
|
|
@@ -27472,10 +27472,10 @@ const ty = {
|
|
|
27472
27472
|
seed: void 0,
|
|
27473
27473
|
rhythmicBalanceConfig: void 0
|
|
27474
27474
|
};
|
|
27475
|
-
function
|
|
27475
|
+
function s0(s, e, t) {
|
|
27476
27476
|
return t !== void 0 ? at(e, t).includes(s) : qe[e].allowedGridTypes.includes(s);
|
|
27477
27477
|
}
|
|
27478
|
-
function
|
|
27478
|
+
function r0(s, e) {
|
|
27479
27479
|
return e !== void 0 ? at(s, e) : [...qe[s].allowedGridTypes];
|
|
27480
27480
|
}
|
|
27481
27481
|
function qn(s, e, t, i) {
|
|
@@ -27493,10 +27493,10 @@ function qn(s, e, t, i) {
|
|
|
27493
27493
|
return s;
|
|
27494
27494
|
}
|
|
27495
27495
|
}
|
|
27496
|
-
function
|
|
27496
|
+
function o0(s) {
|
|
27497
27497
|
return s;
|
|
27498
27498
|
}
|
|
27499
|
-
function
|
|
27499
|
+
function ny(s, e, t) {
|
|
27500
27500
|
const i = [], n = t !== void 0 ? at(e, t) : qe[e].allowedGridTypes;
|
|
27501
27501
|
for (const a of s)
|
|
27502
27502
|
n.includes(a.gridType) || i.push({
|
|
@@ -27513,7 +27513,7 @@ function iy(s, e, t) {
|
|
|
27513
27513
|
}
|
|
27514
27514
|
class Gn {
|
|
27515
27515
|
constructor(e = {}) {
|
|
27516
|
-
this.currentUnifiedBeatMap = null, this.config = { ...
|
|
27516
|
+
this.currentUnifiedBeatMap = null, this.config = { ...iy, ...e };
|
|
27517
27517
|
}
|
|
27518
27518
|
/**
|
|
27519
27519
|
* Lock grid type per beat index before density work
|
|
@@ -27664,7 +27664,7 @@ class Gn {
|
|
|
27664
27664
|
this.currentUnifiedBeatMap = i;
|
|
27665
27665
|
const r = i?.quarterNoteBpm ?? 120, o = i?.duration ?? 120;
|
|
27666
27666
|
this.calculateDensity(e.beats, o);
|
|
27667
|
-
const c =
|
|
27667
|
+
const c = ey(t, r), l = ty(c, r);
|
|
27668
27668
|
let u = t.targetDensity, d = !1;
|
|
27669
27669
|
t.targetDensity > l && (u = l, d = !0, console.warn(
|
|
27670
27670
|
`[DifficultyVariantGenerator] Target density ${t.targetDensity.toFixed(2)} nps exceeds max achievable ${l.toFixed(2)} nps for grid types [${c.join(", ")}] at ${r} BPM. Clamping to ${u.toFixed(2)} nps.`
|
|
@@ -27818,7 +27818,7 @@ class Gn {
|
|
|
27818
27818
|
* @param difficulty - The difficulty level
|
|
27819
27819
|
*/
|
|
27820
27820
|
validateVariant(e, t) {
|
|
27821
|
-
const i =
|
|
27821
|
+
const i = ny(e.beats, t);
|
|
27822
27822
|
if (i.isValid)
|
|
27823
27823
|
this.config.logConversions && console.log(
|
|
27824
27824
|
`[DifficultyVariantGenerator] ${t} variant validated: ${i.totalBeats} beats, no subdivision violations`
|
|
@@ -28199,8 +28199,8 @@ class Gn {
|
|
|
28199
28199
|
const c = e % 4;
|
|
28200
28200
|
return c === 0 || c === 2;
|
|
28201
28201
|
}
|
|
28202
|
-
const o =
|
|
28203
|
-
return
|
|
28202
|
+
const o = jg(a, e).timeSignature.beatsPerMeasure;
|
|
28203
|
+
return Kg(
|
|
28204
28204
|
n.beatInMeasure,
|
|
28205
28205
|
o,
|
|
28206
28206
|
t
|
|
@@ -29238,13 +29238,13 @@ const Yo = {
|
|
|
29238
29238
|
description: "Focus on bass/low-frequency rhythms"
|
|
29239
29239
|
}
|
|
29240
29240
|
};
|
|
29241
|
-
function
|
|
29241
|
+
function c0(s) {
|
|
29242
29242
|
return Yo[s];
|
|
29243
29243
|
}
|
|
29244
|
-
function
|
|
29244
|
+
function l0() {
|
|
29245
29245
|
return Object.keys(Yo);
|
|
29246
29246
|
}
|
|
29247
|
-
const
|
|
29247
|
+
const ay = {
|
|
29248
29248
|
difficulty: "medium",
|
|
29249
29249
|
outputMode: "composite",
|
|
29250
29250
|
measureStartOffset: 0,
|
|
@@ -29273,18 +29273,18 @@ class mt {
|
|
|
29273
29273
|
...e.rhythmicBalanceConfig
|
|
29274
29274
|
};
|
|
29275
29275
|
this.options = {
|
|
29276
|
-
...
|
|
29276
|
+
...ay,
|
|
29277
29277
|
...e,
|
|
29278
29278
|
rhythmicBalanceConfig: t
|
|
29279
|
-
}, this.multiBandAnalyzer = new
|
|
29279
|
+
}, this.multiBandAnalyzer = new kg(), this.transientDetector = new Dg({
|
|
29280
29280
|
bandConfig: this.options.transientConfig
|
|
29281
29281
|
}), this.rhythmQuantizer = new Vo({
|
|
29282
29282
|
minimumTransientIntensity: this.options.minimumTransientIntensity,
|
|
29283
29283
|
densityValidation: this.options.densityValidation
|
|
29284
|
-
}), this.phraseAnalyzer = new
|
|
29284
|
+
}), this.phraseAnalyzer = new Pg(this.options.phraseAnalyzerConfig), this.densityAnalyzer = new Ng(), this.streamScorer = new Og(this.options.scoringConfig), this.compositeGenerator = new Hg(), this.variantGenerator = new Gn({
|
|
29285
29285
|
seed: this.options.seed,
|
|
29286
29286
|
rhythmicBalanceConfig: t
|
|
29287
|
-
}), this.rhythmicBalancer = new
|
|
29287
|
+
}), this.rhythmicBalancer = new Yg(this.options.rhythmicBalanceConfig), this.tempoAwareQuantizer = new xg(
|
|
29288
29288
|
this.options.tempoQuantizationConfig ?? jo,
|
|
29289
29289
|
this.rhythmQuantizer
|
|
29290
29290
|
);
|
|
@@ -30129,7 +30129,7 @@ class mt {
|
|
|
30129
30129
|
};
|
|
30130
30130
|
}
|
|
30131
30131
|
}
|
|
30132
|
-
const
|
|
30132
|
+
const sy = {
|
|
30133
30133
|
minFrequency: 80,
|
|
30134
30134
|
maxFrequency: 1e3,
|
|
30135
30135
|
frameSize: 2048,
|
|
@@ -30139,7 +30139,7 @@ const ay = {
|
|
|
30139
30139
|
selfTransitionProbability: 0.99,
|
|
30140
30140
|
yinThreshold: 0.4,
|
|
30141
30141
|
targetSampleRate: 44100
|
|
30142
|
-
}, ar = 69, sr = 440,
|
|
30142
|
+
}, ar = 69, sr = 440, ry = ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"];
|
|
30143
30143
|
class Zo {
|
|
30144
30144
|
/**
|
|
30145
30145
|
* Create a new PitchDetector
|
|
@@ -30147,7 +30147,7 @@ class Zo {
|
|
|
30147
30147
|
* @param config - Configuration options (partial, defaults applied)
|
|
30148
30148
|
*/
|
|
30149
30149
|
constructor(e = {}) {
|
|
30150
|
-
if (this.states = [], this.transitionMatrix = [], this.config = { ...
|
|
30150
|
+
if (this.states = [], this.transitionMatrix = [], this.config = { ...sy, ...e }, this.config.minFrequency <= 0)
|
|
30151
30151
|
throw new Error(`minFrequency must be positive, got: ${this.config.minFrequency}`);
|
|
30152
30152
|
if (this.config.maxFrequency <= this.config.minFrequency)
|
|
30153
30153
|
throw new Error("maxFrequency must be greater than minFrequency");
|
|
@@ -30230,7 +30230,7 @@ class Zo {
|
|
|
30230
30230
|
*/
|
|
30231
30231
|
midiToNoteName(e) {
|
|
30232
30232
|
const t = Math.floor(e / 12) - 1, i = Math.round(e) % 12;
|
|
30233
|
-
return `${
|
|
30233
|
+
return `${ry[i]}${t}`;
|
|
30234
30234
|
}
|
|
30235
30235
|
/**
|
|
30236
30236
|
* Detect pitch in an audio buffer
|
|
@@ -30587,7 +30587,7 @@ const da = "https://arweave.net/_HoMwkbF0JUamTiVGWNnCCC5yDjcPry-ENhzN6Xn3U0/mode
|
|
|
30587
30587
|
hopSize: 128,
|
|
30588
30588
|
targetSampleRate: 44100,
|
|
30589
30589
|
crepeModelUrl: da
|
|
30590
|
-
},
|
|
30590
|
+
}, oy = 69, cy = 440, ly = ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"];
|
|
30591
30591
|
class qi {
|
|
30592
30592
|
/**
|
|
30593
30593
|
* Private constructor - use static `create()` factory method instead.
|
|
@@ -31094,7 +31094,7 @@ class qi {
|
|
|
31094
31094
|
* @internal
|
|
31095
31095
|
*/
|
|
31096
31096
|
frequencyToMidi(e) {
|
|
31097
|
-
return
|
|
31097
|
+
return oy + 12 * Math.log2(e / cy);
|
|
31098
31098
|
}
|
|
31099
31099
|
/**
|
|
31100
31100
|
* Convert MIDI note number to note name (e.g., "C4", "F#5").
|
|
@@ -31102,7 +31102,7 @@ class qi {
|
|
|
31102
31102
|
*/
|
|
31103
31103
|
midiToNoteName(e) {
|
|
31104
31104
|
const t = Math.floor(e / 12) - 1, i = Math.round(e) % 12;
|
|
31105
|
-
return `${
|
|
31105
|
+
return `${ly[i]}${t}`;
|
|
31106
31106
|
}
|
|
31107
31107
|
}
|
|
31108
31108
|
const or = {
|
|
@@ -31111,7 +31111,7 @@ const or = {
|
|
|
31111
31111
|
pitchAlgorithm: "pitch_melodia",
|
|
31112
31112
|
crepeModelUrl: da
|
|
31113
31113
|
};
|
|
31114
|
-
class
|
|
31114
|
+
class uy {
|
|
31115
31115
|
/**
|
|
31116
31116
|
* Create a new PitchBeatLinker
|
|
31117
31117
|
*
|
|
@@ -31254,19 +31254,19 @@ class ly {
|
|
|
31254
31254
|
};
|
|
31255
31255
|
}
|
|
31256
31256
|
}
|
|
31257
|
-
const
|
|
31257
|
+
const dy = {
|
|
31258
31258
|
maxTimeGapForConsecutive: 0.5
|
|
31259
31259
|
};
|
|
31260
31260
|
function Xo(s) {
|
|
31261
31261
|
return s === 0 ? "unison" : s <= 2 ? "small" : s <= 4 ? "medium" : s <= 7 ? "large" : "very_large";
|
|
31262
31262
|
}
|
|
31263
|
-
function
|
|
31263
|
+
function hy(s, e) {
|
|
31264
31264
|
return Math.abs(s - e);
|
|
31265
31265
|
}
|
|
31266
|
-
function
|
|
31266
|
+
function my(s, e) {
|
|
31267
31267
|
return s === null || e === null ? "none" : s > e ? "up" : s < e ? "down" : "stable";
|
|
31268
31268
|
}
|
|
31269
|
-
function
|
|
31269
|
+
function fy(s) {
|
|
31270
31270
|
if (s.length === 0)
|
|
31271
31271
|
return "stable";
|
|
31272
31272
|
let e = 0, t = 0, i = 0;
|
|
@@ -31281,7 +31281,7 @@ function cr(s) {
|
|
|
31281
31281
|
const e = ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"], t = Math.floor(s / 12) - 1, i = s % 12;
|
|
31282
31282
|
return `${e[i]}${t}`;
|
|
31283
31283
|
}
|
|
31284
|
-
class
|
|
31284
|
+
class py {
|
|
31285
31285
|
/**
|
|
31286
31286
|
* Create a new MelodyContourAnalyzer
|
|
31287
31287
|
*
|
|
@@ -31289,7 +31289,7 @@ class fy {
|
|
|
31289
31289
|
*/
|
|
31290
31290
|
constructor(e = {}) {
|
|
31291
31291
|
this.config = {
|
|
31292
|
-
...
|
|
31292
|
+
...dy,
|
|
31293
31293
|
...e
|
|
31294
31294
|
};
|
|
31295
31295
|
}
|
|
@@ -31337,7 +31337,7 @@ class fy {
|
|
|
31337
31337
|
o = "none", c = 0, l = "unison";
|
|
31338
31338
|
else {
|
|
31339
31339
|
const u = n.pitch.midiNote, d = a.pitch.midiNote;
|
|
31340
|
-
u === null || d === null ? (o = "none", c = 0, l = "unison") : (o =
|
|
31340
|
+
u === null || d === null ? (o = "none", c = 0, l = "unison") : (o = my(u, d), c = hy(u, d), l = Xo(c));
|
|
31341
31341
|
}
|
|
31342
31342
|
t.push({
|
|
31343
31343
|
...n,
|
|
@@ -31383,7 +31383,7 @@ class fy {
|
|
|
31383
31383
|
mediumTermDirection: "stable",
|
|
31384
31384
|
longTermDirection: "stable"
|
|
31385
31385
|
};
|
|
31386
|
-
const n = Math.min(...i), a = Math.max(...i), r = cr(n), o = cr(a), c = this.buildSegments(t), l =
|
|
31386
|
+
const n = Math.min(...i), a = Math.max(...i), r = cr(n), o = cr(a), c = this.buildSegments(t), l = fy(c), u = this.calculateTimeWindowDirection(e, 1, 2), d = this.calculateTimeWindowDirection(e, 4, 8), h = this.calculateTimeWindowDirection(e, 16, 1 / 0);
|
|
31387
31387
|
return {
|
|
31388
31388
|
segments: c,
|
|
31389
31389
|
direction: l,
|
|
@@ -31519,7 +31519,7 @@ class fy {
|
|
|
31519
31519
|
};
|
|
31520
31520
|
}
|
|
31521
31521
|
}
|
|
31522
|
-
const
|
|
31522
|
+
const gy = {
|
|
31523
31523
|
algorithm: "pitch_melodia",
|
|
31524
31524
|
minFrequency: 80,
|
|
31525
31525
|
maxFrequency: 2e4,
|
|
@@ -31529,8 +31529,8 @@ const py = {
|
|
|
31529
31529
|
resolveUrl: Ae.resolveUrl.bind(Ae),
|
|
31530
31530
|
includeContour: !0,
|
|
31531
31531
|
onProgress: void 0
|
|
31532
|
-
},
|
|
31533
|
-
class
|
|
31532
|
+
}, yy = 69, vy = 440, by = ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"];
|
|
31533
|
+
class u0 {
|
|
31534
31534
|
/**
|
|
31535
31535
|
* Create a new PitchAnalyzer
|
|
31536
31536
|
*
|
|
@@ -31538,7 +31538,7 @@ class l0 {
|
|
|
31538
31538
|
*/
|
|
31539
31539
|
constructor(e = {}) {
|
|
31540
31540
|
this.config = {
|
|
31541
|
-
...
|
|
31541
|
+
...gy,
|
|
31542
31542
|
...e
|
|
31543
31543
|
};
|
|
31544
31544
|
}
|
|
@@ -31820,17 +31820,17 @@ class l0 {
|
|
|
31820
31820
|
* Convert frequency in Hz to MIDI note number
|
|
31821
31821
|
*/
|
|
31822
31822
|
frequencyToMidi(e) {
|
|
31823
|
-
return
|
|
31823
|
+
return yy + 12 * Math.log2(e / vy);
|
|
31824
31824
|
}
|
|
31825
31825
|
/**
|
|
31826
31826
|
* Convert MIDI note number to note name (e.g., "C4", "F#5")
|
|
31827
31827
|
*/
|
|
31828
31828
|
midiToNoteName(e) {
|
|
31829
31829
|
const t = Math.floor(e / 12) - 1, i = Math.round(e) % 12;
|
|
31830
|
-
return `${
|
|
31830
|
+
return `${by[i]}${t}`;
|
|
31831
31831
|
}
|
|
31832
31832
|
}
|
|
31833
|
-
const
|
|
31833
|
+
const wy = [
|
|
31834
31834
|
// Single key patterns
|
|
31835
31835
|
{
|
|
31836
31836
|
id: "ddr_basic_single_up",
|
|
@@ -31955,7 +31955,7 @@ const by = [
|
|
|
31955
31955
|
category: "basic",
|
|
31956
31956
|
difficulty: 2
|
|
31957
31957
|
}
|
|
31958
|
-
],
|
|
31958
|
+
], Sy = [
|
|
31959
31959
|
// Clockwise rolls
|
|
31960
31960
|
{
|
|
31961
31961
|
id: "ddr_roll_clockwise_full",
|
|
@@ -32061,7 +32061,7 @@ const by = [
|
|
|
32061
32061
|
category: "roll",
|
|
32062
32062
|
difficulty: 3
|
|
32063
32063
|
}
|
|
32064
|
-
],
|
|
32064
|
+
], _y = [
|
|
32065
32065
|
// Vertical streams
|
|
32066
32066
|
{
|
|
32067
32067
|
id: "ddr_stream_vertical_8",
|
|
@@ -32173,7 +32173,7 @@ const by = [
|
|
|
32173
32173
|
category: "stream",
|
|
32174
32174
|
difficulty: 6
|
|
32175
32175
|
}
|
|
32176
|
-
],
|
|
32176
|
+
], Ty = [
|
|
32177
32177
|
// Opposite jumps (maximum distance)
|
|
32178
32178
|
{
|
|
32179
32179
|
id: "ddr_jump_opposite_vertical",
|
|
@@ -32277,7 +32277,7 @@ const by = [
|
|
|
32277
32277
|
category: "jump",
|
|
32278
32278
|
difficulty: 6
|
|
32279
32279
|
}
|
|
32280
|
-
],
|
|
32280
|
+
], Cy = [
|
|
32281
32281
|
// Build-up transitions
|
|
32282
32282
|
{
|
|
32283
32283
|
id: "ddr_transition_build_up",
|
|
@@ -32320,7 +32320,7 @@ const by = [
|
|
|
32320
32320
|
category: "transition",
|
|
32321
32321
|
difficulty: 4
|
|
32322
32322
|
}
|
|
32323
|
-
],
|
|
32323
|
+
], My = [
|
|
32324
32324
|
// Single fret patterns
|
|
32325
32325
|
{
|
|
32326
32326
|
id: "gh_basic_single_1",
|
|
@@ -32495,7 +32495,7 @@ const by = [
|
|
|
32495
32495
|
category: "basic",
|
|
32496
32496
|
difficulty: 2
|
|
32497
32497
|
}
|
|
32498
|
-
],
|
|
32498
|
+
], Ay = [
|
|
32499
32499
|
// Two-fret alternations
|
|
32500
32500
|
{
|
|
32501
32501
|
id: "gh_alternating_1_3",
|
|
@@ -32619,7 +32619,7 @@ const by = [
|
|
|
32619
32619
|
category: "basic",
|
|
32620
32620
|
difficulty: 4
|
|
32621
32621
|
}
|
|
32622
|
-
],
|
|
32622
|
+
], ky = [
|
|
32623
32623
|
// Power chord shapes (1-3-5 and variations)
|
|
32624
32624
|
{
|
|
32625
32625
|
id: "gh_chord_power_full",
|
|
@@ -32713,7 +32713,7 @@ const by = [
|
|
|
32713
32713
|
category: "chord",
|
|
32714
32714
|
difficulty: 5
|
|
32715
32715
|
}
|
|
32716
|
-
],
|
|
32716
|
+
], Iy = [
|
|
32717
32717
|
// Wide jumps
|
|
32718
32718
|
{
|
|
32719
32719
|
id: "gh_jump_wide_1_4",
|
|
@@ -32808,7 +32808,7 @@ const by = [
|
|
|
32808
32808
|
category: "jump",
|
|
32809
32809
|
difficulty: 5
|
|
32810
32810
|
}
|
|
32811
|
-
],
|
|
32811
|
+
], Dy = [
|
|
32812
32812
|
// Build-up transitions
|
|
32813
32813
|
{
|
|
32814
32814
|
id: "gh_transition_build_up",
|
|
@@ -32872,18 +32872,18 @@ const by = [
|
|
|
32872
32872
|
category: "transition",
|
|
32873
32873
|
difficulty: 3
|
|
32874
32874
|
}
|
|
32875
|
-
],
|
|
32876
|
-
...by,
|
|
32875
|
+
], Ey = [
|
|
32877
32876
|
...wy,
|
|
32878
32877
|
...Sy,
|
|
32879
32878
|
..._y,
|
|
32880
|
-
...Ty
|
|
32881
|
-
|
|
32882
|
-
|
|
32879
|
+
...Ty,
|
|
32880
|
+
...Cy
|
|
32881
|
+
], xy = [
|
|
32883
32882
|
...My,
|
|
32884
32883
|
...Ay,
|
|
32885
32884
|
...ky,
|
|
32886
|
-
...Iy
|
|
32885
|
+
...Iy,
|
|
32886
|
+
...Dy
|
|
32887
32887
|
];
|
|
32888
32888
|
function Jo(s, e) {
|
|
32889
32889
|
const t = /* @__PURE__ */ new Map(), i = ["basic", "roll", "stream", "jump", "chord", "transition"];
|
|
@@ -32903,17 +32903,17 @@ function Jo(s, e) {
|
|
|
32903
32903
|
byDifficulty: n
|
|
32904
32904
|
};
|
|
32905
32905
|
}
|
|
32906
|
-
const Qo = Jo("ddr",
|
|
32906
|
+
const Qo = Jo("ddr", Ey), ec = Jo(
|
|
32907
32907
|
"guitar_hero",
|
|
32908
|
-
|
|
32908
|
+
xy
|
|
32909
32909
|
);
|
|
32910
|
-
function
|
|
32910
|
+
function d0(s) {
|
|
32911
32911
|
return s === "ddr" ? Qo : ec;
|
|
32912
32912
|
}
|
|
32913
|
-
function
|
|
32913
|
+
function h0(s, e) {
|
|
32914
32914
|
return s.byCategory.get(e) ?? [];
|
|
32915
32915
|
}
|
|
32916
|
-
function
|
|
32916
|
+
function m0(s, e = 1, t = 10) {
|
|
32917
32917
|
const i = [];
|
|
32918
32918
|
for (let n = e; n <= t; n++) {
|
|
32919
32919
|
const a = s.byDifficulty.get(n);
|
|
@@ -32921,24 +32921,24 @@ function h0(s, e = 1, t = 10) {
|
|
|
32921
32921
|
}
|
|
32922
32922
|
return i;
|
|
32923
32923
|
}
|
|
32924
|
-
function
|
|
32924
|
+
function f0(s, e) {
|
|
32925
32925
|
return s.patterns.filter(
|
|
32926
32926
|
(t) => e.every((i) => t.tags.includes(i))
|
|
32927
32927
|
);
|
|
32928
32928
|
}
|
|
32929
|
-
function
|
|
32929
|
+
function p0(s, e) {
|
|
32930
32930
|
return s.patterns.filter((t) => t.keys.length === e);
|
|
32931
32931
|
}
|
|
32932
|
-
function
|
|
32932
|
+
function g0(s, e) {
|
|
32933
32933
|
const t = e ? s.patterns.filter(e) : s.patterns;
|
|
32934
32934
|
if (t.length === 0) return;
|
|
32935
32935
|
const i = Math.floor(Math.random() * t.length);
|
|
32936
32936
|
return t[i];
|
|
32937
32937
|
}
|
|
32938
|
-
function
|
|
32938
|
+
function y0(s, e) {
|
|
32939
32939
|
return s.patterns.find((t) => t.id === e);
|
|
32940
32940
|
}
|
|
32941
|
-
function
|
|
32941
|
+
function v0(s) {
|
|
32942
32942
|
const e = {
|
|
32943
32943
|
basic: 0,
|
|
32944
32944
|
roll: 0,
|
|
@@ -32982,7 +32982,7 @@ const tc = {
|
|
|
32982
32982
|
descending: { unison: "left", small: "down", medium: "down", large: "down", very_large: "right" },
|
|
32983
32983
|
stable: "left"
|
|
32984
32984
|
}
|
|
32985
|
-
},
|
|
32985
|
+
}, Ry = {
|
|
32986
32986
|
up: { ascending: "up", descending: "left", stable: "up" },
|
|
32987
32987
|
right: { ascending: "up", descending: "down", stable: "right" },
|
|
32988
32988
|
down: { ascending: "right", descending: "down", stable: "down" },
|
|
@@ -33016,7 +33016,7 @@ const tc = {
|
|
|
33016
33016
|
descending: { unison: 5, small: 4, medium: 4, large: 3, very_large: 2 },
|
|
33017
33017
|
stable: 5
|
|
33018
33018
|
}
|
|
33019
|
-
},
|
|
33019
|
+
}, Py = {
|
|
33020
33020
|
1: { ascending: 2, descending: 1, stable: 1 },
|
|
33021
33021
|
2: { ascending: 3, descending: 1, stable: 2 },
|
|
33022
33022
|
3: { ascending: 4, descending: 2, stable: 3 },
|
|
@@ -33026,29 +33026,29 @@ const tc = {
|
|
|
33026
33026
|
function nc(s) {
|
|
33027
33027
|
return s.intervalCategory ?? "small";
|
|
33028
33028
|
}
|
|
33029
|
-
function
|
|
33029
|
+
function By(s, e, t) {
|
|
33030
33030
|
const i = e ?? "left";
|
|
33031
33031
|
if (s.direction === "stable" || s.intervalCategory === "unison")
|
|
33032
33032
|
return i;
|
|
33033
33033
|
if (t === "easy") {
|
|
33034
|
-
const o =
|
|
33034
|
+
const o = Ry[i];
|
|
33035
33035
|
return s.direction === "up" ? o.ascending : o.descending;
|
|
33036
33036
|
}
|
|
33037
33037
|
const n = tc[i], a = s.direction === "up" ? "ascending" : "descending", r = nc(s);
|
|
33038
33038
|
return n[a][r];
|
|
33039
33039
|
}
|
|
33040
|
-
function
|
|
33040
|
+
function Ny(s, e, t) {
|
|
33041
33041
|
const i = e ?? 3;
|
|
33042
33042
|
if (s.direction === "stable" || s.intervalCategory === "unison")
|
|
33043
33043
|
return i;
|
|
33044
33044
|
if (t === "easy") {
|
|
33045
|
-
const o =
|
|
33045
|
+
const o = Py[i];
|
|
33046
33046
|
return s.direction === "up" ? o.ascending : o.descending;
|
|
33047
33047
|
}
|
|
33048
33048
|
const n = ic[i], a = s.direction === "up" ? "ascending" : "descending", r = nc(s);
|
|
33049
33049
|
return n[a][r];
|
|
33050
33050
|
}
|
|
33051
|
-
function
|
|
33051
|
+
function Fy(s, e, t, i) {
|
|
33052
33052
|
const n = /* @__PURE__ */ new Map();
|
|
33053
33053
|
if (e)
|
|
33054
33054
|
for (const c of e) {
|
|
@@ -33063,11 +33063,11 @@ function Ny(s, e, t, i) {
|
|
|
33063
33063
|
for (let m = -2; m <= 2 && (u = n.get(l + m) ?? null, !u); m++)
|
|
33064
33064
|
;
|
|
33065
33065
|
let d = null, h = 0;
|
|
33066
|
-
u && u.direction !== "none" && (d = t === "ddr" ?
|
|
33066
|
+
u && u.direction !== "none" && (d = t === "ddr" ? By(u, o, i) : Ny(u, o, i), h = u.pitch?.probability ?? 0.5), a.push(d), r.push(h), o = d;
|
|
33067
33067
|
}
|
|
33068
33068
|
return { pitchKeys: a, probabilities: r };
|
|
33069
33069
|
}
|
|
33070
|
-
function
|
|
33070
|
+
function $y(s) {
|
|
33071
33071
|
const e = [];
|
|
33072
33072
|
let t = -1;
|
|
33073
33073
|
for (let i = 0; i <= s.length; i++) {
|
|
@@ -33106,7 +33106,7 @@ function wi(s, e, t, i, n) {
|
|
|
33106
33106
|
}
|
|
33107
33107
|
return !0;
|
|
33108
33108
|
}
|
|
33109
|
-
function
|
|
33109
|
+
function Oy(s, e, t, i, n) {
|
|
33110
33110
|
const a = [], r = e.filter(
|
|
33111
33111
|
(h) => h.difficulty <= t && h.keys.length > 0
|
|
33112
33112
|
);
|
|
@@ -33203,7 +33203,7 @@ function Si(s, e = Math.random) {
|
|
|
33203
33203
|
const t = s[0].keys.length, i = s.filter((n) => n.keys.length === t);
|
|
33204
33204
|
return i[Math.floor(e() * i.length)];
|
|
33205
33205
|
}
|
|
33206
|
-
function
|
|
33206
|
+
function zy(s, e, t) {
|
|
33207
33207
|
const i = s.length, n = [...s], a = new Array(i).fill(void 0);
|
|
33208
33208
|
for (let r = 0; r < e.length; r++) {
|
|
33209
33209
|
const o = t[r];
|
|
@@ -33224,7 +33224,7 @@ function Oy(s, e, t) {
|
|
|
33224
33224
|
patternIds: a
|
|
33225
33225
|
};
|
|
33226
33226
|
}
|
|
33227
|
-
function
|
|
33227
|
+
function Ly(s, e) {
|
|
33228
33228
|
const t = [];
|
|
33229
33229
|
if (e <= 0 || s.length === 0)
|
|
33230
33230
|
return { positions: t };
|
|
@@ -33234,7 +33234,7 @@ function zy(s, e) {
|
|
|
33234
33234
|
s[a] === n ? (i++, i > e && t.push(a)) : i = 1;
|
|
33235
33235
|
return { positions: t };
|
|
33236
33236
|
}
|
|
33237
|
-
function
|
|
33237
|
+
function Wy(s, e, t, i = Math.random) {
|
|
33238
33238
|
const n = e.filter((o) => o.difficulty <= t);
|
|
33239
33239
|
if (n.length === 0)
|
|
33240
33240
|
return s;
|
|
@@ -33383,7 +33383,7 @@ class vn {
|
|
|
33383
33383
|
}));
|
|
33384
33384
|
const a = [], r = this.getMaxPatternDifficulty(i);
|
|
33385
33385
|
let o = 0;
|
|
33386
|
-
const { pitchKeys: c, probabilities: l } =
|
|
33386
|
+
const { pitchKeys: c, probabilities: l } = Fy(
|
|
33387
33387
|
n,
|
|
33388
33388
|
t,
|
|
33389
33389
|
this.config.controllerMode,
|
|
@@ -33394,8 +33394,8 @@ class vn {
|
|
|
33394
33394
|
this.config.pitchInfluenceWeight
|
|
33395
33395
|
), d = c.map(
|
|
33396
33396
|
(v, S) => v !== null && u[S] ? v : null
|
|
33397
|
-
), h = this.config.controllerMode === "ddr" ? Qo.patterns : ec.patterns, m =
|
|
33398
|
-
const T =
|
|
33397
|
+
), h = this.config.controllerMode === "ddr" ? Qo.patterns : ec.patterns, m = $y(d), f = /* @__PURE__ */ new Set(), p = m.map((v, S) => {
|
|
33398
|
+
const T = Oy(
|
|
33399
33399
|
v,
|
|
33400
33400
|
h,
|
|
33401
33401
|
r,
|
|
@@ -33405,7 +33405,7 @@ class vn {
|
|
|
33405
33405
|
for (const _ of T)
|
|
33406
33406
|
_.pattern.id !== "__interpolated__" && f.add(_.pattern.id);
|
|
33407
33407
|
return T;
|
|
33408
|
-
}), { keys: g, patternIds: y } =
|
|
33408
|
+
}), { keys: g, patternIds: y } = zy(
|
|
33409
33409
|
d,
|
|
33410
33410
|
m,
|
|
33411
33411
|
p
|
|
@@ -33475,9 +33475,9 @@ class vn {
|
|
|
33475
33475
|
* Apply consecutive same-key limit to prevent monotonous patterns
|
|
33476
33476
|
*/
|
|
33477
33477
|
applyConsecutiveLimit(e, t, i) {
|
|
33478
|
-
const n = e.map((o) => o.key), a = this.config.consecutiveSameKeyLimit, { positions: r } =
|
|
33478
|
+
const n = e.map((o) => o.key), a = this.config.consecutiveSameKeyLimit, { positions: r } = Ly(n, a);
|
|
33479
33479
|
for (let o = 0; o < r.length; o++) {
|
|
33480
|
-
const c = r[o], l =
|
|
33480
|
+
const c = r[o], l = Wy(
|
|
33481
33481
|
e[c].key,
|
|
33482
33482
|
t,
|
|
33483
33483
|
i,
|
|
@@ -34367,12 +34367,12 @@ class ma {
|
|
|
34367
34367
|
...n.pitchDetector,
|
|
34368
34368
|
voicingThreshold: this.options.voicingThreshold
|
|
34369
34369
|
});
|
|
34370
|
-
const a = new
|
|
34370
|
+
const a = new uy(n), r = await a.linkWithComposite(
|
|
34371
34371
|
t.composite,
|
|
34372
34372
|
e
|
|
34373
34373
|
);
|
|
34374
34374
|
i?.(0.4, "Analyzing melody contour...");
|
|
34375
|
-
const c = new
|
|
34375
|
+
const c = new py().analyze(r);
|
|
34376
34376
|
i?.(0.8, "Deriving variant pitches...");
|
|
34377
34377
|
let l;
|
|
34378
34378
|
if (!t.difficultyVariants)
|
|
@@ -34447,7 +34447,7 @@ class ma {
|
|
|
34447
34447
|
};
|
|
34448
34448
|
}
|
|
34449
34449
|
}
|
|
34450
|
-
class
|
|
34450
|
+
class b0 {
|
|
34451
34451
|
// ============================================================================
|
|
34452
34452
|
// Export: GeneratedLevel → FullBeatMapExportData
|
|
34453
34453
|
// ============================================================================
|
|
@@ -35373,7 +35373,7 @@ class v0 {
|
|
|
35373
35373
|
`);
|
|
35374
35374
|
}
|
|
35375
35375
|
}
|
|
35376
|
-
function
|
|
35376
|
+
function w0(s) {
|
|
35377
35377
|
return typeof s == "string" && [
|
|
35378
35378
|
"humanoid",
|
|
35379
35379
|
"beast",
|
|
@@ -35385,16 +35385,16 @@ function b0(s) {
|
|
|
35385
35385
|
"monstrosity"
|
|
35386
35386
|
].includes(s);
|
|
35387
35387
|
}
|
|
35388
|
-
function
|
|
35388
|
+
function S0(s) {
|
|
35389
35389
|
return typeof s == "string" && ["common", "uncommon", "elite", "boss"].includes(s);
|
|
35390
35390
|
}
|
|
35391
|
-
function
|
|
35391
|
+
function _0(s) {
|
|
35392
35392
|
return typeof s == "string" && ["brute", "archer", "support"].includes(s);
|
|
35393
35393
|
}
|
|
35394
|
-
function
|
|
35394
|
+
function T0(s) {
|
|
35395
35395
|
return typeof s == "string" && ["easy", "medium", "hard", "deadly"].includes(s);
|
|
35396
35396
|
}
|
|
35397
|
-
class
|
|
35397
|
+
class C0 {
|
|
35398
35398
|
/**
|
|
35399
35399
|
* Calculate average party level
|
|
35400
35400
|
*
|
|
@@ -35618,31 +35618,31 @@ class T0 {
|
|
|
35618
35618
|
const _e = [];
|
|
35619
35619
|
for (let s = 0; s < 256; ++s)
|
|
35620
35620
|
_e.push((s + 256).toString(16).slice(1));
|
|
35621
|
-
function
|
|
35621
|
+
function Hy(s, e = 0) {
|
|
35622
35622
|
return (_e[s[e + 0]] + _e[s[e + 1]] + _e[s[e + 2]] + _e[s[e + 3]] + "-" + _e[s[e + 4]] + _e[s[e + 5]] + "-" + _e[s[e + 6]] + _e[s[e + 7]] + "-" + _e[s[e + 8]] + _e[s[e + 9]] + "-" + _e[s[e + 10]] + _e[s[e + 11]] + _e[s[e + 12]] + _e[s[e + 13]] + _e[s[e + 14]] + _e[s[e + 15]]).toLowerCase();
|
|
35623
35623
|
}
|
|
35624
35624
|
let bn;
|
|
35625
|
-
const
|
|
35626
|
-
function
|
|
35625
|
+
const qy = new Uint8Array(16);
|
|
35626
|
+
function Gy() {
|
|
35627
35627
|
if (!bn) {
|
|
35628
35628
|
if (typeof crypto > "u" || !crypto.getRandomValues)
|
|
35629
35629
|
throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
|
|
35630
35630
|
bn = crypto.getRandomValues.bind(crypto);
|
|
35631
35631
|
}
|
|
35632
|
-
return bn(
|
|
35632
|
+
return bn(qy);
|
|
35633
35633
|
}
|
|
35634
|
-
const
|
|
35635
|
-
function
|
|
35634
|
+
const Uy = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), lr = { randomUUID: Uy };
|
|
35635
|
+
function Vy(s, e, t) {
|
|
35636
35636
|
s = s || {};
|
|
35637
|
-
const i = s.random ?? s.rng?.() ??
|
|
35637
|
+
const i = s.random ?? s.rng?.() ?? Gy();
|
|
35638
35638
|
if (i.length < 16)
|
|
35639
35639
|
throw new Error("Random bytes length must be >= 16");
|
|
35640
|
-
return i[6] = i[6] & 15 | 64, i[8] = i[8] & 63 | 128,
|
|
35640
|
+
return i[6] = i[6] & 15 | 64, i[8] = i[8] & 63 | 128, Hy(i);
|
|
35641
35641
|
}
|
|
35642
|
-
function
|
|
35643
|
-
return lr.randomUUID && !s ? lr.randomUUID() :
|
|
35642
|
+
function jy(s, e, t) {
|
|
35643
|
+
return lr.randomUUID && !s ? lr.randomUUID() : Vy(s);
|
|
35644
35644
|
}
|
|
35645
|
-
class
|
|
35645
|
+
class M0 {
|
|
35646
35646
|
constructor(e = {}) {
|
|
35647
35647
|
this.options = {
|
|
35648
35648
|
validateAudioUrls: !1,
|
|
@@ -35706,7 +35706,7 @@ class C0 {
|
|
|
35706
35706
|
const i = ee.parseMetadata(e.metadata);
|
|
35707
35707
|
if (!i && this.options.strict)
|
|
35708
35708
|
throw new Error(`Failed to parse metadata for track at index ${t}`);
|
|
35709
|
-
const n = e.chain_name, a = e.token_address, r = e.token_id, o = e.tx_id, c = e.platform, l = e.id || (n === "AR" ? `AR-${o}` : `${n}-${a}-${r}`), u = e.uuid ||
|
|
35709
|
+
const n = e.chain_name, a = e.token_address, r = e.token_id, o = e.tx_id, c = e.platform, l = e.id || (n === "AR" ? `AR-${o}` : `${n}-${a}-${r}`), u = e.uuid || jy(), d = ee.extractTitle(i || {}), h = ee.extractArtist(i || {}), f = typeof e.artwork_url == "string" && e.artwork_url || typeof e.image_url == "string" && e.image_url || null || ee.extractImageUrl(i || {}), p = ee.extractImageThumbUrl(i || {}), y = typeof e.audio_url == "string" && e.audio_url || null || ee.extractAudioUrl(i || {}), v = ee.extractAudioUrlLossless(i || {});
|
|
35710
35710
|
if (!y) {
|
|
35711
35711
|
if (this.options.strict)
|
|
35712
35712
|
throw new Error(`No audio URL found for track: ${d || l}`);
|
|
@@ -35722,7 +35722,7 @@ class C0 {
|
|
|
35722
35722
|
throw new Error(`Missing required fields for track: ${JSON.stringify({ title: d, artist: h, imageUrl: f })}`);
|
|
35723
35723
|
return null;
|
|
35724
35724
|
}
|
|
35725
|
-
const S = typeof i?.description == "string" ? i.description : void 0, T = typeof i?.album == "string" ? i.album : void 0, _ = i?.duration ? Number(i.duration) : 0, I = ee.extractGenre(i || {}), D = i?.tags || [], R = i?.bpm ? Number(i.bpm) : void 0, q = typeof i?.key == "string" ? i.key : void 0, O = ee.convertAttributes(i?.attributes), W =
|
|
35725
|
+
const S = typeof i?.description == "string" ? i.description : void 0, T = typeof i?.album == "string" ? i.album : void 0, _ = i?.duration ? Number(i.duration) : 0, I = ee.extractGenre(i || {}), D = i?.tags || [], R = i?.bpm ? Number(i.bpm) : void 0, q = typeof i?.key == "string" ? i.key : void 0, O = ee.convertAttributes(i?.attributes), W = Lp(i || {}), Z = {
|
|
35726
35726
|
id: l,
|
|
35727
35727
|
uuid: u,
|
|
35728
35728
|
playlist_index: t,
|
|
@@ -35825,7 +35825,7 @@ const _i = {
|
|
|
35825
35825
|
gaussianSmoothMode: { mode: "standard" }
|
|
35826
35826
|
// Default to standard mode
|
|
35827
35827
|
};
|
|
35828
|
-
class
|
|
35828
|
+
class Ky {
|
|
35829
35829
|
/**
|
|
35830
35830
|
* Create a new Onset Strength Envelope calculator
|
|
35831
35831
|
*
|
|
@@ -35887,7 +35887,7 @@ class jy {
|
|
|
35887
35887
|
* @returns Onset strength envelope result
|
|
35888
35888
|
*/
|
|
35889
35889
|
calculate(e) {
|
|
35890
|
-
const t = Hi(e, this.config.targetSampleRate), i = t.targetSampleRate, n = e.duration, a = Math.round(this.config.fftWindowSize / 1e3 * i), r = Math.pow(2, Math.ceil(Math.log2(a))), o = Math.round(this.config.hopSizeMs / 1e3 * i), c = this.config.hopSizeMs / 1e3, l = qo(t.data, r, o, i), u =
|
|
35890
|
+
const t = Hi(e, this.config.targetSampleRate), i = t.targetSampleRate, n = e.duration, a = Math.round(this.config.fftWindowSize / 1e3 * i), r = Math.pow(2, Math.ceil(Math.log2(a))), o = Math.round(this.config.hopSizeMs / 1e3 * i), c = this.config.hopSizeMs / 1e3, l = qo(t.data, r, o, i), u = vg(
|
|
35891
35891
|
this.config.melBands,
|
|
35892
35892
|
r,
|
|
35893
35893
|
i
|
|
@@ -35913,7 +35913,7 @@ class jy {
|
|
|
35913
35913
|
}
|
|
35914
35914
|
m[S] = T;
|
|
35915
35915
|
}
|
|
35916
|
-
const f = 1 / c, p =
|
|
35916
|
+
const f = 1 / c, p = bg(
|
|
35917
35917
|
m,
|
|
35918
35918
|
this.config.highPassCutoff,
|
|
35919
35919
|
f
|
|
@@ -35921,7 +35921,7 @@ class jy {
|
|
|
35921
35921
|
p,
|
|
35922
35922
|
this.config.gaussianSmoothMs,
|
|
35923
35923
|
f
|
|
35924
|
-
), y =
|
|
35924
|
+
), y = wg(g), v = new Float32Array(g.length);
|
|
35925
35925
|
if (y > 1e-10)
|
|
35926
35926
|
for (let S = 0; S < g.length; S++)
|
|
35927
35927
|
v[S] = g[S] / y;
|
|
@@ -35979,7 +35979,7 @@ class jy {
|
|
|
35979
35979
|
return Math.round(e / t);
|
|
35980
35980
|
}
|
|
35981
35981
|
}
|
|
35982
|
-
const
|
|
35982
|
+
const Yy = {
|
|
35983
35983
|
tempoCenter: 0.5,
|
|
35984
35984
|
// 0.5 seconds (120 BPM) - center of human tempo perception
|
|
35985
35985
|
tempoWidth: 1.4,
|
|
@@ -35993,14 +35993,14 @@ const Ky = {
|
|
|
35993
35993
|
useTripleMeter: !1
|
|
35994
35994
|
// Disabled by default - opt-in for triple meter music
|
|
35995
35995
|
};
|
|
35996
|
-
class
|
|
35996
|
+
class Zy {
|
|
35997
35997
|
/**
|
|
35998
35998
|
* Create a new Tempo Detector
|
|
35999
35999
|
*
|
|
36000
36000
|
* @param config - Configuration options (all optional, defaults provided)
|
|
36001
36001
|
*/
|
|
36002
36002
|
constructor(e = {}) {
|
|
36003
|
-
this.config = { ...
|
|
36003
|
+
this.config = { ...Yy, ...e };
|
|
36004
36004
|
}
|
|
36005
36005
|
/**
|
|
36006
36006
|
* Estimate the tempo from an onset strength envelope
|
|
@@ -36243,7 +36243,7 @@ class Yy {
|
|
|
36243
36243
|
return u.sort((d, h) => h.strength - d.strength), u.slice(0, i);
|
|
36244
36244
|
}
|
|
36245
36245
|
}
|
|
36246
|
-
const Ti = Se.for("BeatTracker"),
|
|
36246
|
+
const Ti = Se.for("BeatTracker"), Xy = {
|
|
36247
36247
|
dpAlpha: 680,
|
|
36248
36248
|
// Ellis optimal balance factor
|
|
36249
36249
|
sensitivity: 1,
|
|
@@ -36253,14 +36253,14 @@ const Ti = Se.for("BeatTracker"), Zy = {
|
|
|
36253
36253
|
maxPredecessorRatio: 2
|
|
36254
36254
|
// 2τp - maximum predecessor interval
|
|
36255
36255
|
};
|
|
36256
|
-
class
|
|
36256
|
+
class Jy {
|
|
36257
36257
|
/**
|
|
36258
36258
|
* Create a new Beat Tracker
|
|
36259
36259
|
*
|
|
36260
36260
|
* @param config - Configuration options (all optional, defaults provided)
|
|
36261
36261
|
*/
|
|
36262
36262
|
constructor(e = {}) {
|
|
36263
|
-
this.config = { ...
|
|
36263
|
+
this.config = { ...Xy, ...e };
|
|
36264
36264
|
}
|
|
36265
36265
|
/**
|
|
36266
36266
|
* Get the current configuration
|
|
@@ -36577,7 +36577,7 @@ class Ye {
|
|
|
36577
36577
|
const a = e.duration;
|
|
36578
36578
|
if (this.updateProgress("preprocessing", 5, "Preparing audio..."), this.state.cancelled) throw new Error("Generation cancelled");
|
|
36579
36579
|
if (this.updateProgress("ose_calculation", 10, "Calculating onset strength envelope..."), this.state.cancelled) throw new Error("Generation cancelled");
|
|
36580
|
-
const o = new
|
|
36580
|
+
const o = new Ky({
|
|
36581
36581
|
targetSampleRate: 8e3,
|
|
36582
36582
|
fftWindowSize: 32,
|
|
36583
36583
|
hopSizeMs: this.options.hopSizeMs,
|
|
@@ -36587,7 +36587,7 @@ class Ye {
|
|
|
36587
36587
|
}).calculate(e);
|
|
36588
36588
|
if (this.updateProgress("ose_calculation", 35, "Onset strength envelope calculated."), this.state.cancelled) throw new Error("Generation cancelled");
|
|
36589
36589
|
if (this.updateProgress("tempo_estimation", 40, "Estimating tempo..."), this.state.cancelled) throw new Error("Generation cancelled");
|
|
36590
|
-
const l = new
|
|
36590
|
+
const l = new Zy({
|
|
36591
36591
|
tempoCenter: this.options.tempoCenter,
|
|
36592
36592
|
tempoWidth: this.options.tempoWidth,
|
|
36593
36593
|
minBpm: this.options.minBpm,
|
|
@@ -36599,7 +36599,7 @@ class Ye {
|
|
|
36599
36599
|
);
|
|
36600
36600
|
if (this.updateProgress("tempo_estimation", 55, `Tempo estimated: ${Math.round(l.primaryBpm)} BPM`), this.state.cancelled) throw new Error("Generation cancelled");
|
|
36601
36601
|
if (this.updateProgress("beat_tracking", 60, "Tracking beats..."), this.state.cancelled) throw new Error("Generation cancelled");
|
|
36602
|
-
const d = new
|
|
36602
|
+
const d = new Jy({
|
|
36603
36603
|
dpAlpha: this.options.dpAlpha,
|
|
36604
36604
|
sensitivity: this.options.sensitivity
|
|
36605
36605
|
}).trackBeats(
|
|
@@ -36864,13 +36864,13 @@ class Ye {
|
|
|
36864
36864
|
return Ye.fromJSON(i);
|
|
36865
36865
|
}
|
|
36866
36866
|
}
|
|
36867
|
-
function
|
|
36867
|
+
function Qy(s) {
|
|
36868
36868
|
return "mergedBeats" in s && "detectedBeats" in s;
|
|
36869
36869
|
}
|
|
36870
|
-
function
|
|
36870
|
+
function ev(s) {
|
|
36871
36871
|
return "subdivisionConfig" in s && "subdivisionMetadata" in s;
|
|
36872
36872
|
}
|
|
36873
|
-
class
|
|
36873
|
+
class tv {
|
|
36874
36874
|
/**
|
|
36875
36875
|
* Create a new BeatStream
|
|
36876
36876
|
*
|
|
@@ -36918,7 +36918,7 @@ class ev {
|
|
|
36918
36918
|
* selecting the appropriate beat array based on the map type and options.
|
|
36919
36919
|
*/
|
|
36920
36920
|
createNormalizedBeatMap(e) {
|
|
36921
|
-
if (
|
|
36921
|
+
if (ev(e)) {
|
|
36922
36922
|
let t = 120;
|
|
36923
36923
|
if (e.beats.length >= 2) {
|
|
36924
36924
|
const n = e.beats[1].timestamp - e.beats[0].timestamp;
|
|
@@ -36952,7 +36952,7 @@ class ev {
|
|
|
36952
36952
|
metadata: i,
|
|
36953
36953
|
downbeatConfig: e.downbeatConfig
|
|
36954
36954
|
};
|
|
36955
|
-
} else return
|
|
36955
|
+
} else return Qy(e) ? this.options.useInterpolatedBeats ? {
|
|
36956
36956
|
audioId: e.audioId,
|
|
36957
36957
|
duration: e.duration,
|
|
36958
36958
|
beats: e.mergedBeats,
|
|
@@ -38909,7 +38909,7 @@ const Ut = class Ut {
|
|
|
38909
38909
|
* ```
|
|
38910
38910
|
*/
|
|
38911
38911
|
createBeatStream(e, t, i) {
|
|
38912
|
-
return new
|
|
38912
|
+
return new tv(e, t, i);
|
|
38913
38913
|
}
|
|
38914
38914
|
// ==================== Beat Interpolation ====================
|
|
38915
38915
|
/**
|
|
@@ -39541,7 +39541,7 @@ Ut.LEVEL_PRESETS = {
|
|
|
39541
39541
|
}
|
|
39542
39542
|
};
|
|
39543
39543
|
let dr = Ut;
|
|
39544
|
-
const
|
|
39544
|
+
const iv = [
|
|
39545
39545
|
"60s",
|
|
39546
39546
|
"70s",
|
|
39547
39547
|
"80s",
|
|
@@ -40030,7 +40030,7 @@ const tv = [
|
|
|
40030
40030
|
"Stage & Screen---Score",
|
|
40031
40031
|
"Stage & Screen---Soundtrack",
|
|
40032
40032
|
"Stage & Screen---Theme"
|
|
40033
|
-
],
|
|
40033
|
+
], nv = [
|
|
40034
40034
|
"Blues",
|
|
40035
40035
|
"Classical",
|
|
40036
40036
|
"Country",
|
|
@@ -40041,7 +40041,7 @@ const tv = [
|
|
|
40041
40041
|
"Pop",
|
|
40042
40042
|
"Reggae",
|
|
40043
40043
|
"Rock"
|
|
40044
|
-
],
|
|
40044
|
+
], av = [
|
|
40045
40045
|
"guitar",
|
|
40046
40046
|
"classical",
|
|
40047
40047
|
"slow",
|
|
@@ -40092,7 +40092,7 @@ const tv = [
|
|
|
40092
40092
|
"metal",
|
|
40093
40093
|
"female voice",
|
|
40094
40094
|
"choral"
|
|
40095
|
-
],
|
|
40095
|
+
], sv = ["happy", "not happy"], rv = [
|
|
40096
40096
|
"action",
|
|
40097
40097
|
"adventure",
|
|
40098
40098
|
"advertising",
|
|
@@ -40155,7 +40155,7 @@ const tv = [
|
|
|
40155
40155
|
"uplifting",
|
|
40156
40156
|
"video",
|
|
40157
40157
|
"war"
|
|
40158
|
-
],
|
|
40158
|
+
], ov = ["danceable", "non-danceable"], cv = ["voice", "instrumental"], lv = ["acoustic", "electronic"];
|
|
40159
40159
|
function Ai(s) {
|
|
40160
40160
|
return typeof s == "object" && s !== null && "embedding" in s && "classifier" in s;
|
|
40161
40161
|
}
|
|
@@ -40167,21 +40167,21 @@ function wn(s, e) {
|
|
|
40167
40167
|
const t = s.toLowerCase();
|
|
40168
40168
|
return t.includes("effnet") || t.includes("discogs") ? "effnet" : t.includes("vggish") ? "vggish" : t.includes("tempocnn") || t.includes("tempo") && !t.includes("temple") ? "tempocnn" : "musicnn";
|
|
40169
40169
|
}
|
|
40170
|
-
function
|
|
40170
|
+
function uv(s, e) {
|
|
40171
40171
|
if (e) return e;
|
|
40172
40172
|
const t = s.toLowerCase();
|
|
40173
40173
|
return t.includes("jamendo") ? "jamendo" : t.includes("discogs400") || t.includes("discogs") ? "discogs400" : t.includes("tzanetakis") ? "tzanetakis" : t.includes("mtt_musicnn") ? "mtt_musicnn" : "jamendo";
|
|
40174
40174
|
}
|
|
40175
|
-
function
|
|
40175
|
+
function dv(s) {
|
|
40176
40176
|
switch (s) {
|
|
40177
40177
|
case "jamendo":
|
|
40178
|
-
return
|
|
40178
|
+
return iv;
|
|
40179
40179
|
case "discogs400":
|
|
40180
40180
|
return hr;
|
|
40181
40181
|
case "tzanetakis":
|
|
40182
|
-
return iv;
|
|
40183
|
-
case "mtt_musicnn":
|
|
40184
40182
|
return nv;
|
|
40183
|
+
case "mtt_musicnn":
|
|
40184
|
+
return av;
|
|
40185
40185
|
default:
|
|
40186
40186
|
return hr;
|
|
40187
40187
|
}
|
|
@@ -40189,7 +40189,7 @@ function uv(s) {
|
|
|
40189
40189
|
function Ot(s) {
|
|
40190
40190
|
return Ai(s) ? `${s.embedding} -> ${s.classifier}` : s.modelUrl;
|
|
40191
40191
|
}
|
|
40192
|
-
function
|
|
40192
|
+
function hv(s) {
|
|
40193
40193
|
if (!s || s.length === 0)
|
|
40194
40194
|
return [];
|
|
40195
40195
|
const e = s[0].length;
|
|
@@ -40257,19 +40257,19 @@ const Sn = {
|
|
|
40257
40257
|
modelUrl: "https://arweave.net/nX9KX1OVhEaT1dStNcsRiZKCQTWuHjAMl4MWprIFyZU/model.json",
|
|
40258
40258
|
modelType: "musicnn"
|
|
40259
40259
|
}
|
|
40260
|
-
},
|
|
40260
|
+
}, A0 = {
|
|
40261
40261
|
genre: Object.keys(sc),
|
|
40262
40262
|
mood: Object.keys(rc),
|
|
40263
40263
|
danceability: Object.keys(oc)
|
|
40264
40264
|
};
|
|
40265
|
-
function
|
|
40265
|
+
function mv(s) {
|
|
40266
40266
|
const e = {};
|
|
40267
40267
|
return s.genre && (e.genre = sc[s.genre]), s.mood && (e.mood = rc[s.mood]), s.danceability && (e.danceability = oc[s.danceability]), e;
|
|
40268
40268
|
}
|
|
40269
|
-
class
|
|
40269
|
+
class k0 {
|
|
40270
40270
|
constructor(e = {}) {
|
|
40271
40271
|
this.essentiaWASM = null, this.essentiaModel = null, this.extractor = null, this.initialized = !1, this.embeddingModelCache = /* @__PURE__ */ new Map(), this.classifierModelCache = /* @__PURE__ */ new Map(), this.resolvedUrlCache = /* @__PURE__ */ new Map(), this.extractors = /* @__PURE__ */ new Map();
|
|
40272
|
-
const t = e.preset ?
|
|
40272
|
+
const t = e.preset ? mv(e.preset) : {};
|
|
40273
40273
|
this.options = {
|
|
40274
40274
|
models: {
|
|
40275
40275
|
// Start with engine defaults, layer on presets, then explicit models
|
|
@@ -40619,8 +40619,8 @@ class A0 {
|
|
|
40619
40619
|
if (this.options.models?.genre) {
|
|
40620
40620
|
const d = this.options.models.genre, h = Ai(d) ? d.classifier : d.modelUrl;
|
|
40621
40621
|
let m;
|
|
40622
|
-
Ai(d) && d.classifierType ? m = d.classifierType : mr(d) && d.genreType ? m = d.genreType : m =
|
|
40623
|
-
const f =
|
|
40622
|
+
Ai(d) && d.classifierType ? m = d.classifierType : mr(d) && d.genreType ? m = d.genreType : m = uv(h);
|
|
40623
|
+
const f = dv(m);
|
|
40624
40624
|
u.genres = await this.runModelPrediction(
|
|
40625
40625
|
d,
|
|
40626
40626
|
o,
|
|
@@ -40628,7 +40628,7 @@ class A0 {
|
|
|
40628
40628
|
), u.primary_genre = u.genres.length > 0 ? u.genres[0].name : "Unknown", l.push(Ot(d));
|
|
40629
40629
|
}
|
|
40630
40630
|
if (this.options.models?.mood) {
|
|
40631
|
-
const d = this.options.models.mood, h = mr(d) ?
|
|
40631
|
+
const d = this.options.models.mood, h = mr(d) ? sv : rv;
|
|
40632
40632
|
u.moods = await this.runModelPrediction(
|
|
40633
40633
|
d,
|
|
40634
40634
|
o,
|
|
@@ -40639,7 +40639,7 @@ class A0 {
|
|
|
40639
40639
|
const d = this.options.models.danceability, m = (await this.runModelPrediction(
|
|
40640
40640
|
d,
|
|
40641
40641
|
o,
|
|
40642
|
-
|
|
40642
|
+
ov
|
|
40643
40643
|
)).find((f) => f.name === "danceable");
|
|
40644
40644
|
u.vibe_metrics.danceability = m?.confidence ?? 0, l.push(Ot(d));
|
|
40645
40645
|
}
|
|
@@ -40647,7 +40647,7 @@ class A0 {
|
|
|
40647
40647
|
const d = this.options.models.voice, m = (await this.runModelPrediction(
|
|
40648
40648
|
d,
|
|
40649
40649
|
o,
|
|
40650
|
-
|
|
40650
|
+
cv
|
|
40651
40651
|
)).find((f) => f.name === "instrumental");
|
|
40652
40652
|
u.vibe_metrics.instrumental_probability = m?.confidence ?? 0, l.push(Ot(d));
|
|
40653
40653
|
}
|
|
@@ -40655,7 +40655,7 @@ class A0 {
|
|
|
40655
40655
|
const d = this.options.models.acoustic, m = (await this.runModelPrediction(
|
|
40656
40656
|
d,
|
|
40657
40657
|
o,
|
|
40658
|
-
|
|
40658
|
+
lv
|
|
40659
40659
|
)).find((f) => f.name === "electronic");
|
|
40660
40660
|
u.vibe_metrics.electronic_probability = m?.confidence ?? 0, l.push(Ot(d));
|
|
40661
40661
|
}
|
|
@@ -40693,7 +40693,7 @@ class A0 {
|
|
|
40693
40693
|
* @returns Promise resolving to 1D array of averaged class predictions
|
|
40694
40694
|
*/
|
|
40695
40695
|
async runClassifierOnEmbeddings(e, t) {
|
|
40696
|
-
const i =
|
|
40696
|
+
const i = hv(t);
|
|
40697
40697
|
if (i.length === 0)
|
|
40698
40698
|
return console.warn("Empty embeddings provided to classifier"), [];
|
|
40699
40699
|
const n = await this.loadModelWithRetry(e), a = Ee.tensor2d([i], [1, i.length]);
|
|
@@ -40926,7 +40926,7 @@ class A0 {
|
|
|
40926
40926
|
})).sort((i, n) => n.confidence - i.confidence).filter((i) => i.confidence >= this.options.threshold).slice(0, this.options.topN);
|
|
40927
40927
|
}
|
|
40928
40928
|
}
|
|
40929
|
-
class
|
|
40929
|
+
class I0 {
|
|
40930
40930
|
/**
|
|
40931
40931
|
* Initialize ColorExtractor with canvas for image processing
|
|
40932
40932
|
* Canvas is only created in browser environments (safe for Node.js)
|
|
@@ -41135,7 +41135,7 @@ class k0 {
|
|
|
41135
41135
|
};
|
|
41136
41136
|
}
|
|
41137
41137
|
}
|
|
41138
|
-
const _n = Se.for("BeatSubdivider"),
|
|
41138
|
+
const _n = Se.for("BeatSubdivider"), fv = {
|
|
41139
41139
|
tolerance: 0.02,
|
|
41140
41140
|
// 20ms tolerance
|
|
41141
41141
|
defaultIntensity: 0.5,
|
|
@@ -41151,7 +41151,7 @@ class Xt {
|
|
|
41151
41151
|
*/
|
|
41152
41152
|
constructor(e) {
|
|
41153
41153
|
this.options = {
|
|
41154
|
-
...
|
|
41154
|
+
...fv,
|
|
41155
41155
|
...e
|
|
41156
41156
|
}, _n.debug("BeatSubdivider initialized", { options: this.options });
|
|
41157
41157
|
}
|
|
@@ -41638,7 +41638,7 @@ class Xt {
|
|
|
41638
41638
|
return Xt.fromJSON(i);
|
|
41639
41639
|
}
|
|
41640
41640
|
}
|
|
41641
|
-
class
|
|
41641
|
+
class D0 {
|
|
41642
41642
|
// Track direction for change detection
|
|
41643
41643
|
/**
|
|
41644
41644
|
* Create a new GrooveAnalyzer instance
|
|
@@ -41891,7 +41891,7 @@ class I0 {
|
|
|
41891
41891
|
return Math.abs(e) < this.options.neutralDeadZone ? "neutral" : e < 0 ? "push" : "pull";
|
|
41892
41892
|
}
|
|
41893
41893
|
}
|
|
41894
|
-
function
|
|
41894
|
+
function E0(s, e = kr, t) {
|
|
41895
41895
|
const i = Un(s);
|
|
41896
41896
|
return new Xt(t).subdivide(i, e);
|
|
41897
41897
|
}
|
|
@@ -41907,7 +41907,7 @@ function fa(s, e) {
|
|
|
41907
41907
|
beats: e
|
|
41908
41908
|
};
|
|
41909
41909
|
}
|
|
41910
|
-
function
|
|
41910
|
+
function x0(s, e, t) {
|
|
41911
41911
|
const i = gt(s);
|
|
41912
41912
|
if (e < 0 || e >= i.length)
|
|
41913
41913
|
throw new Error(
|
|
@@ -41927,7 +41927,7 @@ function E0(s, e, t) {
|
|
|
41927
41927
|
});
|
|
41928
41928
|
return fa(s, n);
|
|
41929
41929
|
}
|
|
41930
|
-
function
|
|
41930
|
+
function R0(s, e) {
|
|
41931
41931
|
const t = gt(s), i = t.length;
|
|
41932
41932
|
for (const r of e)
|
|
41933
41933
|
if (r.beatIndex < 0 || r.beatIndex >= i)
|
|
@@ -41952,7 +41952,7 @@ function x0(s, e) {
|
|
|
41952
41952
|
});
|
|
41953
41953
|
return fa(s, a);
|
|
41954
41954
|
}
|
|
41955
|
-
function
|
|
41955
|
+
function P0(s) {
|
|
41956
41956
|
const e = gt(s), t = /* @__PURE__ */ new Map();
|
|
41957
41957
|
for (let i = 0; i < e.length; i++) {
|
|
41958
41958
|
const n = e[i];
|
|
@@ -41960,7 +41960,7 @@ function R0(s) {
|
|
|
41960
41960
|
}
|
|
41961
41961
|
return t;
|
|
41962
41962
|
}
|
|
41963
|
-
function
|
|
41963
|
+
function B0(s) {
|
|
41964
41964
|
const t = gt(s).map((i) => {
|
|
41965
41965
|
if (i.requiredKey === void 0)
|
|
41966
41966
|
return i;
|
|
@@ -41969,20 +41969,20 @@ function P0(s) {
|
|
|
41969
41969
|
});
|
|
41970
41970
|
return fa(s, t);
|
|
41971
41971
|
}
|
|
41972
|
-
function
|
|
41972
|
+
function N0(s) {
|
|
41973
41973
|
return gt(s).some((t) => t.requiredKey !== void 0);
|
|
41974
41974
|
}
|
|
41975
|
-
function
|
|
41975
|
+
function F0(s) {
|
|
41976
41976
|
return gt(s).filter((t) => t.requiredKey !== void 0).length;
|
|
41977
41977
|
}
|
|
41978
|
-
function
|
|
41978
|
+
function $0(s) {
|
|
41979
41979
|
const e = gt(s), t = /* @__PURE__ */ new Set();
|
|
41980
41980
|
for (const i of e)
|
|
41981
41981
|
i.requiredKey !== void 0 && t.add(i.requiredKey);
|
|
41982
41982
|
return Array.from(t).sort();
|
|
41983
41983
|
}
|
|
41984
41984
|
const we = Se.for("SubdivisionPlaybackController");
|
|
41985
|
-
class
|
|
41985
|
+
class O0 {
|
|
41986
41986
|
/**
|
|
41987
41987
|
* Create a new SubdivisionPlaybackController
|
|
41988
41988
|
*
|
|
@@ -42582,7 +42582,7 @@ class $0 {
|
|
|
42582
42582
|
this.stop(), this.subscribers.clear(), this.state.scheduledBeats.clear(), we.debug("SubdivisionPlaybackController disposed");
|
|
42583
42583
|
}
|
|
42584
42584
|
}
|
|
42585
|
-
const
|
|
42585
|
+
const pv = [
|
|
42586
42586
|
0,
|
|
42587
42587
|
// Level 1
|
|
42588
42588
|
300,
|
|
@@ -42623,7 +42623,7 @@ const fv = [
|
|
|
42623
42623
|
// Level 19
|
|
42624
42624
|
355e3
|
|
42625
42625
|
// Level 20
|
|
42626
|
-
],
|
|
42626
|
+
], gv = {
|
|
42627
42627
|
stationary: 1,
|
|
42628
42628
|
walking: 1.2,
|
|
42629
42629
|
running: 1.5,
|
|
@@ -42646,11 +42646,11 @@ class cc {
|
|
|
42646
42646
|
*/
|
|
42647
42647
|
constructor(e) {
|
|
42648
42648
|
this.config = {
|
|
42649
|
-
level_thresholds: e?.level_thresholds ||
|
|
42649
|
+
level_thresholds: e?.level_thresholds || pv,
|
|
42650
42650
|
xp_per_second: e?.xp_per_second ?? 1,
|
|
42651
42651
|
xp_per_track_completion: e?.xp_per_track_completion ?? 50,
|
|
42652
42652
|
activity_bonuses: {
|
|
42653
|
-
...
|
|
42653
|
+
...gv,
|
|
42654
42654
|
...e?.activity_bonuses
|
|
42655
42655
|
},
|
|
42656
42656
|
track_mastery_threshold: e?.track_mastery_threshold ?? 10,
|
|
@@ -42853,7 +42853,7 @@ class cc {
|
|
|
42853
42853
|
return { ...this.config };
|
|
42854
42854
|
}
|
|
42855
42855
|
}
|
|
42856
|
-
class
|
|
42856
|
+
class z0 {
|
|
42857
42857
|
/**
|
|
42858
42858
|
* Create a new SessionTracker
|
|
42859
42859
|
* @param xpCalculator - Optional custom XPCalculator instance
|
|
@@ -43451,7 +43451,7 @@ class Ve {
|
|
|
43451
43451
|
e.equipment && xe.reapplyEquipmentEffects(e);
|
|
43452
43452
|
}
|
|
43453
43453
|
}
|
|
43454
|
-
class
|
|
43454
|
+
class yv {
|
|
43455
43455
|
constructor() {
|
|
43456
43456
|
this.name = "D&D 5e Standard";
|
|
43457
43457
|
}
|
|
@@ -43468,7 +43468,7 @@ class gv {
|
|
|
43468
43468
|
return !e?.forcedAbilities || e.forcedAbilities.length === 0;
|
|
43469
43469
|
}
|
|
43470
43470
|
}
|
|
43471
|
-
class
|
|
43471
|
+
class vv {
|
|
43472
43472
|
constructor() {
|
|
43473
43473
|
this.name = "D&D 5e Smart";
|
|
43474
43474
|
}
|
|
@@ -43517,7 +43517,7 @@ class yv {
|
|
|
43517
43517
|
return n;
|
|
43518
43518
|
}
|
|
43519
43519
|
}
|
|
43520
|
-
class
|
|
43520
|
+
class bv {
|
|
43521
43521
|
constructor() {
|
|
43522
43522
|
this.name = "Balanced";
|
|
43523
43523
|
}
|
|
@@ -43539,7 +43539,7 @@ class vv {
|
|
|
43539
43539
|
return !1;
|
|
43540
43540
|
}
|
|
43541
43541
|
}
|
|
43542
|
-
class
|
|
43542
|
+
class wv {
|
|
43543
43543
|
constructor() {
|
|
43544
43544
|
this.name = "Primary Only";
|
|
43545
43545
|
}
|
|
@@ -43562,7 +43562,7 @@ class bv {
|
|
|
43562
43562
|
return n;
|
|
43563
43563
|
}
|
|
43564
43564
|
}
|
|
43565
|
-
class
|
|
43565
|
+
class Sv {
|
|
43566
43566
|
constructor() {
|
|
43567
43567
|
this.name = "Random";
|
|
43568
43568
|
}
|
|
@@ -43579,7 +43579,7 @@ class wv {
|
|
|
43579
43579
|
return !1;
|
|
43580
43580
|
}
|
|
43581
43581
|
}
|
|
43582
|
-
class
|
|
43582
|
+
class _v {
|
|
43583
43583
|
constructor() {
|
|
43584
43584
|
this.name = "Manual";
|
|
43585
43585
|
}
|
|
@@ -43590,7 +43590,7 @@ class Sv {
|
|
|
43590
43590
|
return !0;
|
|
43591
43591
|
}
|
|
43592
43592
|
}
|
|
43593
|
-
class
|
|
43593
|
+
class Tv {
|
|
43594
43594
|
constructor(e, t) {
|
|
43595
43595
|
this.fn = e, this.name = t || "Custom Function";
|
|
43596
43596
|
}
|
|
@@ -43605,20 +43605,20 @@ function pr(s) {
|
|
|
43605
43605
|
if (typeof s != "string" && typeof s != "function")
|
|
43606
43606
|
return s;
|
|
43607
43607
|
if (typeof s == "function")
|
|
43608
|
-
return new
|
|
43608
|
+
return new Tv(s);
|
|
43609
43609
|
switch (s) {
|
|
43610
43610
|
case "dnD5e":
|
|
43611
|
-
return new gv();
|
|
43612
|
-
case "dnD5e_smart":
|
|
43613
43611
|
return new yv();
|
|
43614
|
-
case "
|
|
43612
|
+
case "dnD5e_smart":
|
|
43615
43613
|
return new vv();
|
|
43616
|
-
case "
|
|
43614
|
+
case "balanced":
|
|
43617
43615
|
return new bv();
|
|
43618
|
-
case "
|
|
43616
|
+
case "primary_only":
|
|
43619
43617
|
return new wv();
|
|
43620
|
-
case "
|
|
43618
|
+
case "random":
|
|
43621
43619
|
return new Sv();
|
|
43620
|
+
case "manual":
|
|
43621
|
+
return new _v();
|
|
43622
43622
|
default:
|
|
43623
43623
|
const e = s;
|
|
43624
43624
|
throw new Error(`Unknown strategy type: ${e}`);
|
|
@@ -43628,7 +43628,7 @@ const gr = [4, 8, 12, 16, 19], yr = {
|
|
|
43628
43628
|
strategy: "dnD5e",
|
|
43629
43629
|
autoApply: !0
|
|
43630
43630
|
};
|
|
43631
|
-
class
|
|
43631
|
+
class Cv {
|
|
43632
43632
|
constructor(e) {
|
|
43633
43633
|
this.config = this.mergeWithDefaults(e), this.strategy = pr(this.config.strategy);
|
|
43634
43634
|
}
|
|
@@ -44134,7 +44134,7 @@ const wa = class wa {
|
|
|
44134
44134
|
};
|
|
44135
44135
|
wa.customThresholds = /* @__PURE__ */ new Map();
|
|
44136
44136
|
let Ce = wa;
|
|
44137
|
-
class
|
|
44137
|
+
class L0 {
|
|
44138
44138
|
constructor(e) {
|
|
44139
44139
|
this.xpCalculator = new cc(), this.statManager = e, this.statManager && Ve.setStatManager(this.statManager);
|
|
44140
44140
|
}
|
|
@@ -44174,7 +44174,7 @@ class z0 {
|
|
|
44174
44174
|
};
|
|
44175
44175
|
if (n.xp.current += t, !this.statManager) {
|
|
44176
44176
|
const d = (n.gameMode || "standard") === "standard" ? "dnD5e" : "dnD5e_smart";
|
|
44177
|
-
this.statManager = new
|
|
44177
|
+
this.statManager = new Cv({ strategy: d }), Ve.setStatManager(this.statManager);
|
|
44178
44178
|
}
|
|
44179
44179
|
let a = !1, r;
|
|
44180
44180
|
const o = [], c = n.gameMode === "uncapped", l = Ve.calculateLevel(n.xp.current, c);
|
|
@@ -44485,7 +44485,7 @@ class z0 {
|
|
|
44485
44485
|
return Ce.getPrestigeInfo(n, a, r);
|
|
44486
44486
|
}
|
|
44487
44487
|
}
|
|
44488
|
-
class
|
|
44488
|
+
class W0 {
|
|
44489
44489
|
/**
|
|
44490
44490
|
* Create a new RhythmXPCalculator instance
|
|
44491
44491
|
*
|
|
@@ -44735,7 +44735,7 @@ class L0 {
|
|
|
44735
44735
|
});
|
|
44736
44736
|
}
|
|
44737
44737
|
}
|
|
44738
|
-
class
|
|
44738
|
+
class H0 {
|
|
44739
44739
|
/**
|
|
44740
44740
|
* Enchant equipment with new properties (creates per-instance modification)
|
|
44741
44741
|
*
|
|
@@ -45393,7 +45393,7 @@ const Vn = {
|
|
|
45393
45393
|
tags: ["magic", "enhanced", "+2", "armor"]
|
|
45394
45394
|
}
|
|
45395
45395
|
};
|
|
45396
|
-
class
|
|
45396
|
+
class Mv {
|
|
45397
45397
|
/**
|
|
45398
45398
|
* Open a box and generate its contents
|
|
45399
45399
|
*
|
|
@@ -45657,7 +45657,7 @@ const bt = {
|
|
|
45657
45657
|
very_rare: 3,
|
|
45658
45658
|
legendary: 4
|
|
45659
45659
|
};
|
|
45660
|
-
class
|
|
45660
|
+
class q0 {
|
|
45661
45661
|
/**
|
|
45662
45662
|
* Spawn multiple items from an array of equipment names
|
|
45663
45663
|
*
|
|
@@ -45980,7 +45980,7 @@ class H0 {
|
|
|
45980
45980
|
const o = Y.getInstance().get("equipment").find((d) => d.name === t);
|
|
45981
45981
|
if (!o || o.type !== "box")
|
|
45982
45982
|
return null;
|
|
45983
|
-
const c = e.equipment.items, l =
|
|
45983
|
+
const c = e.equipment.items, l = Mv.openBox(o, i, c);
|
|
45984
45984
|
if (!l.success)
|
|
45985
45985
|
return { character: e, result: l };
|
|
45986
45986
|
if (l.consumedItems && l.consumedItems.length > 0)
|
|
@@ -46352,7 +46352,7 @@ class vr {
|
|
|
46352
46352
|
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;
|
|
46353
46353
|
}
|
|
46354
46354
|
}
|
|
46355
|
-
class
|
|
46355
|
+
class Av {
|
|
46356
46356
|
constructor() {
|
|
46357
46357
|
this.logger = Se.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) => {
|
|
46358
46358
|
if (!this.isListening || !this.motionCallback) return;
|
|
@@ -46483,7 +46483,7 @@ const lc = re({
|
|
|
46483
46483
|
gust: L().optional()
|
|
46484
46484
|
}), hc = re({
|
|
46485
46485
|
all: L().min(0).max(100)
|
|
46486
|
-
}),
|
|
46486
|
+
}), kv = re({
|
|
46487
46487
|
type: L().optional(),
|
|
46488
46488
|
id: L().optional(),
|
|
46489
46489
|
country: G().optional(),
|
|
@@ -46502,7 +46502,7 @@ const lc = re({
|
|
|
46502
46502
|
}), pc = re({
|
|
46503
46503
|
lon: L().min(-180).max(180),
|
|
46504
46504
|
lat: L().min(-90).max(90)
|
|
46505
|
-
}),
|
|
46505
|
+
}), Iv = re({
|
|
46506
46506
|
coord: pc.optional(),
|
|
46507
46507
|
weather: Te(lc).min(1),
|
|
46508
46508
|
base: G().optional(),
|
|
@@ -46513,12 +46513,12 @@ const lc = re({
|
|
|
46513
46513
|
snow: fc.optional(),
|
|
46514
46514
|
clouds: hc.optional(),
|
|
46515
46515
|
dt: L().nonnegative(),
|
|
46516
|
-
sys:
|
|
46516
|
+
sys: kv,
|
|
46517
46517
|
timezone: L().optional(),
|
|
46518
46518
|
id: L().optional(),
|
|
46519
46519
|
name: G().optional(),
|
|
46520
46520
|
cod: L().optional()
|
|
46521
|
-
}),
|
|
46521
|
+
}), Dv = re({
|
|
46522
46522
|
dt: L().nonnegative(),
|
|
46523
46523
|
main: uc,
|
|
46524
46524
|
weather: Te(lc).min(1),
|
|
@@ -46533,11 +46533,11 @@ const lc = re({
|
|
|
46533
46533
|
pod: G().optional()
|
|
46534
46534
|
}).optional(),
|
|
46535
46535
|
dt_txt: G().optional()
|
|
46536
|
-
}),
|
|
46536
|
+
}), Ev = re({
|
|
46537
46537
|
cod: sa([G(), L()]),
|
|
46538
46538
|
message: L().optional(),
|
|
46539
46539
|
cnt: L().nonnegative().optional(),
|
|
46540
|
-
list: Te(
|
|
46540
|
+
list: Te(Dv).min(1),
|
|
46541
46541
|
city: re({
|
|
46542
46542
|
id: L(),
|
|
46543
46543
|
name: G(),
|
|
@@ -46549,7 +46549,7 @@ const lc = re({
|
|
|
46549
46549
|
sunset: L().optional()
|
|
46550
46550
|
}).optional()
|
|
46551
46551
|
}), br = "weather_api_cache";
|
|
46552
|
-
class
|
|
46552
|
+
class xv {
|
|
46553
46553
|
constructor(e, t, i) {
|
|
46554
46554
|
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 = Se.for("WeatherAPIClient"), this.lastKnownLocation = null, this.weatherApiMetrics = {
|
|
46555
46555
|
successCount: 0,
|
|
@@ -46951,7 +46951,7 @@ class Ev {
|
|
|
46951
46951
|
const o = `${this.baseUrl}?lat=${e}&lon=${t}&appid=${this.apiKey}&units=metric`, c = await fetch(o);
|
|
46952
46952
|
if (!c.ok)
|
|
46953
46953
|
throw new Error(`Weather API error: ${c.statusText}`);
|
|
46954
|
-
const l = await c.json(), u =
|
|
46954
|
+
const l = await c.json(), u = Iv.safeParse(l);
|
|
46955
46955
|
if (!u.success)
|
|
46956
46956
|
return this.logger.error("Weather API response validation failed", {
|
|
46957
46957
|
errors: u.error.issues,
|
|
@@ -47070,7 +47070,7 @@ class Ev {
|
|
|
47070
47070
|
const l = Math.ceil(n / 3), u = `${this.forecastUrl}?lat=${e}&lon=${t}&appid=${this.apiKey}&units=metric&cnt=${l}`, d = await fetch(u);
|
|
47071
47071
|
if (!d.ok)
|
|
47072
47072
|
throw new Error(`Weather Forecast API error: ${d.statusText}`);
|
|
47073
|
-
const h = await d.json(), m =
|
|
47073
|
+
const h = await d.json(), m = Ev.safeParse(h);
|
|
47074
47074
|
if (!m.success)
|
|
47075
47075
|
return this.logger.error("Weather Forecast API response validation failed", {
|
|
47076
47076
|
errors: m.error.issues,
|
|
@@ -47276,7 +47276,7 @@ function ga(s) {
|
|
|
47276
47276
|
function H(s, e, t) {
|
|
47277
47277
|
return t ? `${e}${s}${F.reset}` : s;
|
|
47278
47278
|
}
|
|
47279
|
-
function
|
|
47279
|
+
function Rv(s, e) {
|
|
47280
47280
|
switch (s) {
|
|
47281
47281
|
case "healthy":
|
|
47282
47282
|
return H("●", F.green, e);
|
|
@@ -47288,10 +47288,10 @@ function xv(s, e) {
|
|
|
47288
47288
|
return H("○", F.dim, e);
|
|
47289
47289
|
}
|
|
47290
47290
|
}
|
|
47291
|
-
function
|
|
47291
|
+
function Pv(s, e) {
|
|
47292
47292
|
return s ? H("✓ Granted", F.green, e) : H("✗ Denied", F.red, e);
|
|
47293
47293
|
}
|
|
47294
|
-
function
|
|
47294
|
+
function Bv(s, e) {
|
|
47295
47295
|
return s ? H("Available", F.green, e) : H("Unavailable", F.red, e);
|
|
47296
47296
|
}
|
|
47297
47297
|
function ya(s) {
|
|
@@ -47329,13 +47329,13 @@ function gc(s, e = {}) {
|
|
|
47329
47329
|
const t = { ...pa, ...e }, i = ga(t), n = 60;
|
|
47330
47330
|
console.log(va("ENVIRONMENTAL SENSORS", n, i)), t.showTimestamp && (console.log(`${H("Timestamp:", F.dim, i)} ${ya(s.timestamp)}`), console.log(`${H("Diagnostic Mode:", F.dim, i)} ${s.diagnosticMode ? H("ENABLED", F.yellow, i) : "Disabled"}`), console.log("")), console.log(H("┌─ SENSOR STATUS", F.cyan, i)), console.log(Pe(22) + (i ? F.reset : ""));
|
|
47331
47331
|
for (const o of s.sensors) {
|
|
47332
|
-
const c =
|
|
47332
|
+
const c = Rv(o.status.health, i), l = H(
|
|
47333
47333
|
o.status.health.toUpperCase().padEnd(8),
|
|
47334
47334
|
o.status.health === "healthy" ? F.green : o.status.health === "failed" ? F.red : F.yellow,
|
|
47335
47335
|
i
|
|
47336
47336
|
);
|
|
47337
47337
|
if (console.log(`
|
|
47338
|
-
${H(o.type.toUpperCase().padEnd(12), F.bright, i)}`), console.log(` Health: ${c} ${l}`), console.log(` Permission: ${
|
|
47338
|
+
${H(o.type.toUpperCase().padEnd(12), F.bright, i)}`), console.log(` Health: ${c} ${l}`), console.log(` Permission: ${Pv(o.permission, i)}`), console.log(` Availability:${Bv(o.availability, i)}`), o.status.consecutiveFailures > 0 && console.log(` Failures: ${H(o.status.consecutiveFailures.toString(), F.red, i)} consecutive`), o.status.lastError) {
|
|
47339
47339
|
const u = o.status.lastError.length > 40 ? o.status.lastError.substring(0, 37) + "..." : o.status.lastError;
|
|
47340
47340
|
console.log(` Last Error: ${H(u, F.red, i)}`);
|
|
47341
47341
|
}
|
|
@@ -47418,7 +47418,7 @@ ${H("┌─ API PERFORMANCE", F.cyan, i)}`), console.log(Pe(20) + (i ? F.reset :
|
|
|
47418
47418
|
${Pe(n)}
|
|
47419
47419
|
`);
|
|
47420
47420
|
}
|
|
47421
|
-
function
|
|
47421
|
+
function Nv(s, e = {}) {
|
|
47422
47422
|
const t = { ...pa, ...e }, i = ga(t);
|
|
47423
47423
|
if (console.log(va("SENSOR SYSTEM DASHBOARD", 70, i)), t.showTimestamp) {
|
|
47424
47424
|
const a = s.environmental?.timestamp || s.gaming?.timestamp || Date.now();
|
|
@@ -47442,9 +47442,9 @@ function Bv(s, e = {}) {
|
|
|
47442
47442
|
const vc = {
|
|
47443
47443
|
displayEnvironmentalDiagnostics: gc,
|
|
47444
47444
|
displayGamingDiagnostics: yc,
|
|
47445
|
-
displaySystemDashboard:
|
|
47445
|
+
displaySystemDashboard: Nv
|
|
47446
47446
|
};
|
|
47447
|
-
class
|
|
47447
|
+
class G0 {
|
|
47448
47448
|
/**
|
|
47449
47449
|
* Initialize environmental sensors with optional weather API key, retry config, or full config
|
|
47450
47450
|
*
|
|
@@ -47492,7 +47492,7 @@ class q0 {
|
|
|
47492
47492
|
const a = e;
|
|
47493
47493
|
i = a.weather?.apiKey ?? "", n = a.geolocation, a.retry && (this.retryConfig = { ...this.retryConfig, ...a.retry }), a.xpModifier && (this.xpConfig = { ...this.xpConfig, ...a.xpModifier });
|
|
47494
47494
|
}
|
|
47495
|
-
this.geolocation = n ? new vr(n) : new vr(), this.motion = new
|
|
47495
|
+
this.geolocation = n ? new vr(n) : new vr(), this.motion = new Av(), this.weather = new xv(i), this.initializeSensorStatuses();
|
|
47496
47496
|
}
|
|
47497
47497
|
/**
|
|
47498
47498
|
* Initialize sensor statuses to 'unknown' state
|
|
@@ -48013,7 +48013,7 @@ class q0 {
|
|
|
48013
48013
|
return this.weather.getSolarInfo(e, t, i);
|
|
48014
48014
|
}
|
|
48015
48015
|
}
|
|
48016
|
-
class
|
|
48016
|
+
class Fv {
|
|
48017
48017
|
constructor(e = "") {
|
|
48018
48018
|
this.baseUrl = "https://api.steampowered.com", this.logger = Se.for("SteamAPIClient"), this.currentGameApiMetrics = {
|
|
48019
48019
|
successCount: 0,
|
|
@@ -48203,7 +48203,7 @@ class Nv {
|
|
|
48203
48203
|
}
|
|
48204
48204
|
}
|
|
48205
48205
|
}
|
|
48206
|
-
class
|
|
48206
|
+
class U0 {
|
|
48207
48207
|
// 24 hours
|
|
48208
48208
|
/**
|
|
48209
48209
|
* Initialize GamingPlatformSensors with optional Steam configuration
|
|
@@ -48231,7 +48231,7 @@ class G0 {
|
|
|
48231
48231
|
totalGamingMinutes: 0,
|
|
48232
48232
|
gamesPlayedWhileListening: [],
|
|
48233
48233
|
lastUpdated: Date.now()
|
|
48234
|
-
}, 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
|
|
48234
|
+
}, 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 Fv(this.steamApiKey);
|
|
48235
48235
|
}
|
|
48236
48236
|
/**
|
|
48237
48237
|
* Authenticate with Steam
|
|
@@ -48405,7 +48405,7 @@ class G0 {
|
|
|
48405
48405
|
vc.displayGamingDiagnostics(this.getDiagnostics(), e);
|
|
48406
48406
|
}
|
|
48407
48407
|
}
|
|
48408
|
-
const
|
|
48408
|
+
const $v = {
|
|
48409
48409
|
geolocation: {
|
|
48410
48410
|
cacheTTL: 300 * 1e3,
|
|
48411
48411
|
// 5 minutes
|
|
@@ -48457,7 +48457,7 @@ const Fv = {
|
|
|
48457
48457
|
backoffMultiplier: 2
|
|
48458
48458
|
}
|
|
48459
48459
|
};
|
|
48460
|
-
function
|
|
48460
|
+
function Ov() {
|
|
48461
48461
|
const s = {};
|
|
48462
48462
|
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 = {
|
|
48463
48463
|
...s.gaming,
|
|
@@ -48471,9 +48471,9 @@ function $v() {
|
|
|
48471
48471
|
}
|
|
48472
48472
|
return s;
|
|
48473
48473
|
}
|
|
48474
|
-
function
|
|
48475
|
-
const e =
|
|
48476
|
-
return jn(
|
|
48474
|
+
function V0(s = {}) {
|
|
48475
|
+
const e = Ov();
|
|
48476
|
+
return jn($v, jn(e, s));
|
|
48477
48477
|
}
|
|
48478
48478
|
function jn(s, e) {
|
|
48479
48479
|
const t = { ...s };
|
|
@@ -48483,7 +48483,7 @@ function jn(s, e) {
|
|
|
48483
48483
|
}
|
|
48484
48484
|
return t;
|
|
48485
48485
|
}
|
|
48486
|
-
const
|
|
48486
|
+
const zv = [
|
|
48487
48487
|
0,
|
|
48488
48488
|
300,
|
|
48489
48489
|
900,
|
|
@@ -48506,7 +48506,7 @@ const Ov = [
|
|
|
48506
48506
|
355e3
|
|
48507
48507
|
], zt = {
|
|
48508
48508
|
xp: {
|
|
48509
|
-
level_thresholds:
|
|
48509
|
+
level_thresholds: zv,
|
|
48510
48510
|
xp_per_second: 1,
|
|
48511
48511
|
xp_per_track_completion: 50,
|
|
48512
48512
|
activity_bonuses: {
|
|
@@ -48542,7 +48542,7 @@ const Ov = [
|
|
|
48542
48542
|
showNotifications: !0
|
|
48543
48543
|
}
|
|
48544
48544
|
};
|
|
48545
|
-
function
|
|
48545
|
+
function j0(s) {
|
|
48546
48546
|
return s ? {
|
|
48547
48547
|
xp: {
|
|
48548
48548
|
...zt.xp,
|
|
@@ -51125,25 +51125,25 @@ class Le {
|
|
|
51125
51125
|
};
|
|
51126
51126
|
}
|
|
51127
51127
|
}
|
|
51128
|
-
const
|
|
51129
|
-
function
|
|
51128
|
+
const K0 = z.WEAPON_ENCHANTMENTS, Y0 = z.ARMOR_ENCHANTMENTS, Z0 = z.RESISTANCE_ENCHANTMENTS, X0 = z.CURSES, J0 = z.ALL_ENCHANTMENTS, Q0 = (s) => Le.getEnchantment(s), ew = (s) => Le.getCurse(s), tw = () => Le.getAllEnchantments(), iw = () => Le.getAllCurses(), nw = (s) => Le.getEnchantmentsByType(s), aw = (s) => Le.createStrengthEnchantment(s), sw = (s) => Le.createDexterityEnchantment(s), rw = (s) => Le.createConstitutionEnchantment(s), ow = (s) => Le.createIntelligenceEnchantment(s), cw = (s) => Le.createWisdomEnchantment(s), lw = (s) => Le.createCharismaEnchantment(s);
|
|
51129
|
+
function uw(s) {
|
|
51130
51130
|
return Jt.find((e) => e.name === s);
|
|
51131
51131
|
}
|
|
51132
|
-
function
|
|
51132
|
+
function dw(s) {
|
|
51133
51133
|
return Jt.filter((e) => e.type === s);
|
|
51134
51134
|
}
|
|
51135
|
-
function
|
|
51135
|
+
function hw(s) {
|
|
51136
51136
|
return Jt.filter((e) => e.rarity === s);
|
|
51137
51137
|
}
|
|
51138
|
-
function
|
|
51138
|
+
function mw() {
|
|
51139
51139
|
return Jt.filter((s) => s.tags?.includes("cursed"));
|
|
51140
51140
|
}
|
|
51141
|
-
function
|
|
51141
|
+
function fw(s) {
|
|
51142
51142
|
return Jt.filter(
|
|
51143
51143
|
(e) => e.properties?.some((t) => t.type === s)
|
|
51144
51144
|
);
|
|
51145
51145
|
}
|
|
51146
|
-
function
|
|
51146
|
+
function pw(s, e) {
|
|
51147
51147
|
const t = Vn[e];
|
|
51148
51148
|
return t ? {
|
|
51149
51149
|
...s,
|
|
@@ -51163,32 +51163,32 @@ function fw(s, e) {
|
|
|
51163
51163
|
export {
|
|
51164
51164
|
Ql as AICombatRunner,
|
|
51165
51165
|
yu as ALL_CLASSES,
|
|
51166
|
-
|
|
51167
|
-
|
|
51166
|
+
J0 as ALL_ENCHANTMENTS,
|
|
51167
|
+
a0 as ALL_GRID_TYPES,
|
|
51168
51168
|
bu as ALL_RACES,
|
|
51169
|
-
|
|
51170
|
-
|
|
51169
|
+
Y0 as ARMOR_ENCHANTMENTS,
|
|
51170
|
+
A0 as AVAILABLE_PRESETS,
|
|
51171
51171
|
pn as AbilityScoreCalculator,
|
|
51172
51172
|
Gs as AbilityScoresSchema,
|
|
51173
|
-
|
|
51174
|
-
|
|
51173
|
+
pg as AppearanceGenerator,
|
|
51174
|
+
Dp as ArweaveGatewayManager,
|
|
51175
51175
|
Re as AttackResolver,
|
|
51176
51176
|
dr as AudioAnalyzer,
|
|
51177
|
-
|
|
51177
|
+
Pb as AudioProfileSchema,
|
|
51178
51178
|
zl as BASE_PLAYS_THRESHOLD,
|
|
51179
51179
|
Ll as BASE_XP_THRESHOLD,
|
|
51180
|
-
|
|
51180
|
+
Hv as BEAT_ACCURACY_THRESHOLDS,
|
|
51181
51181
|
Ml as BEAT_DETECTION_ALGORITHM,
|
|
51182
51182
|
Cl as BEAT_DETECTION_VERSION,
|
|
51183
|
-
|
|
51184
|
-
|
|
51183
|
+
Ib as BalanceValidator,
|
|
51184
|
+
bv as BalancedStrategy,
|
|
51185
51185
|
ha as BeatConverter,
|
|
51186
51186
|
Ni as BeatInterpolator,
|
|
51187
51187
|
Ye as BeatMapGenerator,
|
|
51188
|
-
|
|
51188
|
+
tv as BeatStream,
|
|
51189
51189
|
Xt as BeatSubdivider,
|
|
51190
|
-
|
|
51191
|
-
|
|
51190
|
+
Jy as BeatTracker,
|
|
51191
|
+
Mv as BoxOpener,
|
|
51192
51192
|
vn as ButtonMapper,
|
|
51193
51193
|
vu as CLASS_AUDIO_PREFERENCES,
|
|
51194
51194
|
tt as CLASS_DATA,
|
|
@@ -51196,19 +51196,19 @@ export {
|
|
|
51196
51196
|
tr as CLASS_STARTING_EQUIPMENT,
|
|
51197
51197
|
tn as CONSECUTIVE_KEY_LIMITS,
|
|
51198
51198
|
Dn as CR_TO_XP,
|
|
51199
|
-
|
|
51199
|
+
X0 as CURSES,
|
|
51200
51200
|
la as CharacterGenerator,
|
|
51201
|
-
|
|
51202
|
-
|
|
51201
|
+
Bb as CharacterSheetSchema,
|
|
51202
|
+
L0 as CharacterUpdater,
|
|
51203
51203
|
zn as ClassSuggester,
|
|
51204
|
-
|
|
51204
|
+
I0 as ColorExtractor,
|
|
51205
51205
|
ql as CombatAI,
|
|
51206
51206
|
Xl as CombatEngine,
|
|
51207
51207
|
Jl as CombatMetricsTracker,
|
|
51208
51208
|
$i as CombatSimulator,
|
|
51209
51209
|
Fu as CombatantAccumulator,
|
|
51210
|
-
|
|
51211
|
-
|
|
51210
|
+
Eb as ComparativeAnalyzer,
|
|
51211
|
+
Hg as CompositeStreamGenerator,
|
|
51212
51212
|
oc as DANCEABILITY_PRESETS,
|
|
51213
51213
|
Qo as DDR_PATTERN_LIBRARY,
|
|
51214
51214
|
Sn as DEFAULT_ARWEAVE_MODELS,
|
|
@@ -51223,39 +51223,39 @@ export {
|
|
|
51223
51223
|
Vt as DEFAULT_EQUIPMENT,
|
|
51224
51224
|
Ao as DEFAULT_GATEWAYS,
|
|
51225
51225
|
kl as DEFAULT_GROOVE_OPTIONS,
|
|
51226
|
-
|
|
51226
|
+
Ep as DEFAULT_IPFS_GATEWAY,
|
|
51227
51227
|
zt as DEFAULT_PROGRESSION_CONFIG,
|
|
51228
51228
|
_u as DEFAULT_RACE_DATA_ARRAY,
|
|
51229
51229
|
Js as DEFAULT_RACIAL_TRAITS,
|
|
51230
51230
|
ua as DEFAULT_RHYTHMIC_BALANCE_CONFIG,
|
|
51231
51231
|
nt as DEFAULT_RHYTHM_XP_CONFIG,
|
|
51232
|
-
|
|
51232
|
+
$v as DEFAULT_SENSOR_CONFIG,
|
|
51233
51233
|
Qs as DEFAULT_SKILLS,
|
|
51234
|
-
|
|
51234
|
+
Qb as DEFAULT_SKILL_CATEGORIES,
|
|
51235
51235
|
kr as DEFAULT_SUBDIVISION_CONFIG,
|
|
51236
51236
|
Tl as DEFAULT_SUBDIVISION_PLAYBACK_OPTIONS,
|
|
51237
51237
|
jo as DEFAULT_TEMPO_AWARE_CONFIG,
|
|
51238
51238
|
ml as DEFAULT_TIME_SIGNATURE,
|
|
51239
51239
|
hr as DISCOGS400_GENRES,
|
|
51240
|
-
|
|
51240
|
+
Ng as DensityAnalyzer,
|
|
51241
51241
|
ue as DiceRoller,
|
|
51242
51242
|
Ss as DifficultyCalculator,
|
|
51243
51243
|
Gn as DifficultyVariantGenerator,
|
|
51244
|
-
|
|
51245
|
-
|
|
51244
|
+
vv as DnD5eSmartStrategy,
|
|
51245
|
+
yv as DnD5eStandardStrategy,
|
|
51246
51246
|
gl as EASY_ACCURACY_THRESHOLDS,
|
|
51247
51247
|
Il as EASY_GROOVE_PENALTIES,
|
|
51248
|
-
|
|
51248
|
+
Jg as EASY_QUARTER_NOTE_BPM,
|
|
51249
51249
|
z as ENCHANTMENT_LIBRARY,
|
|
51250
51250
|
Ya as ENEMY_COUNT_MULTIPLIER,
|
|
51251
51251
|
Vr as EXPECTED_WIN_RATES,
|
|
51252
51252
|
Le as EnchantmentLibrary,
|
|
51253
51253
|
Yt as EnemyGenerator,
|
|
51254
|
-
|
|
51254
|
+
G0 as EnvironmentalSensors,
|
|
51255
51255
|
xe as EquipmentEffectApplier,
|
|
51256
51256
|
Pi as EquipmentGenerator,
|
|
51257
|
-
|
|
51258
|
-
|
|
51257
|
+
H0 as EquipmentModifier,
|
|
51258
|
+
q0 as EquipmentSpawnHelper,
|
|
51259
51259
|
En as EquipmentValidator,
|
|
51260
51260
|
qi as EssentiaPitchDetector,
|
|
51261
51261
|
Y as ExtensionManager,
|
|
@@ -51267,75 +51267,75 @@ export {
|
|
|
51267
51267
|
El as GROOVE_PENALTY_PRESETS,
|
|
51268
51268
|
_t as GROOVE_TIERS,
|
|
51269
51269
|
ec as GUITAR_HERO_PATTERN_LIBRARY,
|
|
51270
|
-
|
|
51271
|
-
|
|
51270
|
+
U0 as GamingPlatformSensors,
|
|
51271
|
+
D0 as GrooveAnalyzer,
|
|
51272
51272
|
Tr as HARD_ACCURACY_THRESHOLDS,
|
|
51273
51273
|
Dl as HARD_GROOVE_PENALTIES,
|
|
51274
|
-
|
|
51274
|
+
Xg as HARD_RESTRICT_BPM,
|
|
51275
51275
|
qa as HOP_SIZE_PRESETS,
|
|
51276
|
-
|
|
51276
|
+
Eg as HighBpmGridRestrictionRule,
|
|
51277
51277
|
Vn as ITEM_CREATION_TEMPLATES,
|
|
51278
51278
|
Gl as InitiativeRoller,
|
|
51279
51279
|
Us as KNOWN_GATEWAY_HOSTS,
|
|
51280
51280
|
ca as KNOWN_IPFS_GATEWAY_HOSTS,
|
|
51281
51281
|
ma as LevelGenerator,
|
|
51282
|
-
|
|
51282
|
+
b0 as LevelSerializer,
|
|
51283
51283
|
Ve as LevelUpProcessor,
|
|
51284
51284
|
Sp as LogLevel,
|
|
51285
51285
|
Se as Logger,
|
|
51286
51286
|
Jt as MAGIC_ITEMS,
|
|
51287
51287
|
wu as MASTERY_BONUS_XP,
|
|
51288
|
-
|
|
51288
|
+
Tb as MASTERY_THRESHOLD,
|
|
51289
51289
|
Ha as MAX_BEATS_PER_MEASURE,
|
|
51290
51290
|
ni as MAX_PRESTIGE_LEVEL,
|
|
51291
51291
|
Ga as MAX_SUBDIVISION_DENSITY,
|
|
51292
51292
|
yl as MEDIUM_ACCURACY_THRESHOLDS,
|
|
51293
51293
|
kn as MEDIUM_GROOVE_PENALTIES,
|
|
51294
|
-
|
|
51294
|
+
Zg as MEDIUM_RESTRICT_BPM,
|
|
51295
51295
|
vl as MEL_BANDS_PRESETS,
|
|
51296
51296
|
Wa as MIN_BEATS_PER_MEASURE,
|
|
51297
51297
|
rc as MOOD_PRESETS,
|
|
51298
|
-
|
|
51298
|
+
_v as ManualStrategy,
|
|
51299
51299
|
ee as MetadataExtractor,
|
|
51300
|
-
|
|
51301
|
-
|
|
51302
|
-
|
|
51303
|
-
|
|
51304
|
-
|
|
51300
|
+
zp as ModelCache,
|
|
51301
|
+
kg as MultiBandAnalyzer,
|
|
51302
|
+
k0 as MusicClassifier,
|
|
51303
|
+
Xp as NamingEngine,
|
|
51304
|
+
Ky as OnsetStrengthEnvelope,
|
|
51305
51305
|
Ol as PRESTIGE_ROMAN_NUMERALS,
|
|
51306
51306
|
Va as PRESTIGE_SCALING_FACTOR,
|
|
51307
51307
|
Lr as PROFICIENCY_BONUS,
|
|
51308
|
-
|
|
51309
|
-
|
|
51310
|
-
|
|
51311
|
-
|
|
51312
|
-
|
|
51308
|
+
Db as ParameterSweep,
|
|
51309
|
+
C0 as PartyAnalyzer,
|
|
51310
|
+
Pg as PhraseAnalyzer,
|
|
51311
|
+
u0 as PitchAnalyzer,
|
|
51312
|
+
uy as PitchBeatLinker,
|
|
51313
51313
|
Zo as PitchDetector,
|
|
51314
|
-
|
|
51314
|
+
M0 as PlaylistParser,
|
|
51315
51315
|
wp as PlaylistTrackSchema,
|
|
51316
51316
|
Ce as PrestigeSystem,
|
|
51317
|
-
|
|
51318
|
-
|
|
51317
|
+
wv as PrimaryOnlyStrategy,
|
|
51318
|
+
Mb as RACE_DATA,
|
|
51319
51319
|
Br as RARITY_CONFIGS,
|
|
51320
|
-
|
|
51320
|
+
Z0 as RESISTANCE_ENCHANTMENTS,
|
|
51321
51321
|
Yo as RHYTHM_PRESETS,
|
|
51322
|
-
|
|
51323
|
-
|
|
51322
|
+
hg as RaceSelector,
|
|
51323
|
+
Sv as RandomStrategy,
|
|
51324
51324
|
mt as RhythmGenerator,
|
|
51325
51325
|
Vo as RhythmQuantizer,
|
|
51326
|
-
|
|
51327
|
-
|
|
51328
|
-
|
|
51326
|
+
W0 as RhythmXPCalculator,
|
|
51327
|
+
Yg as RhythmicBalancer,
|
|
51328
|
+
_b as SKILL_ABILITY_MAP,
|
|
51329
51329
|
Or as SPELL_DATABASE,
|
|
51330
51330
|
hs as SPELL_SLOTS_BY_CLASS,
|
|
51331
51331
|
qe as SUBDIVISION_LIMITS,
|
|
51332
51332
|
tu as SeededDiceRoller,
|
|
51333
51333
|
Ue as SeededRNG,
|
|
51334
51334
|
vc as SensorDashboard,
|
|
51335
|
-
|
|
51336
|
-
|
|
51335
|
+
Rb as ServerlessPlaylistSchema,
|
|
51336
|
+
z0 as SessionTracker,
|
|
51337
51337
|
Nu as SimulationAggregator,
|
|
51338
|
-
|
|
51338
|
+
mg as SkillAssigner,
|
|
51339
51339
|
Ne as SkillQuery,
|
|
51340
51340
|
Ge as SkillValidator,
|
|
51341
51341
|
Qe as SpectrumScanner,
|
|
@@ -51343,156 +51343,156 @@ export {
|
|
|
51343
51343
|
er as SpellManager,
|
|
51344
51344
|
it as SpellQuery,
|
|
51345
51345
|
rt as SpellValidator,
|
|
51346
|
-
|
|
51347
|
-
|
|
51348
|
-
|
|
51349
|
-
|
|
51350
|
-
|
|
51351
|
-
|
|
51352
|
-
|
|
51346
|
+
Cv as StatManager,
|
|
51347
|
+
Og as StreamScorer,
|
|
51348
|
+
O0 as SubdivisionPlaybackController,
|
|
51349
|
+
Jv as TUNING_FACTORS,
|
|
51350
|
+
xg as TempoAwareQuantizer,
|
|
51351
|
+
Zy as TempoDetector,
|
|
51352
|
+
Dg as TransientDetector,
|
|
51353
51353
|
Mn as VALID_SUBDIVISION_TYPES,
|
|
51354
|
-
|
|
51354
|
+
K0 as WEAPON_ENCHANTMENTS,
|
|
51355
51355
|
ze as WeightedSelector,
|
|
51356
51356
|
cc as XPCalculator,
|
|
51357
51357
|
Kl as XP_BUDGET_PER_LEVEL,
|
|
51358
51358
|
Ii as XP_THRESHOLDS,
|
|
51359
|
-
|
|
51360
|
-
|
|
51361
|
-
|
|
51362
|
-
|
|
51363
|
-
|
|
51364
|
-
|
|
51365
|
-
|
|
51366
|
-
|
|
51367
|
-
|
|
51368
|
-
|
|
51359
|
+
pw as applyTemplate,
|
|
51360
|
+
Qv as applyTuning,
|
|
51361
|
+
Qp as areAppearanceDefaultsInitialized,
|
|
51362
|
+
cg as areClassDefaultsInitialized,
|
|
51363
|
+
ag as areEquipmentDefaultsInitialized,
|
|
51364
|
+
lg as areFeatureDefaultsInitialized,
|
|
51365
|
+
rg as areRaceDataDefaultsInitialized,
|
|
51366
|
+
sg as areRaceDefaultsInitialized,
|
|
51367
|
+
ug as areSkillDefaultsInitialized,
|
|
51368
|
+
ig as areSpellDefaultsInitialized,
|
|
51369
51369
|
Ae as arweaveGatewayManager,
|
|
51370
51370
|
mu as asClass,
|
|
51371
|
-
|
|
51372
|
-
|
|
51373
|
-
|
|
51374
|
-
|
|
51371
|
+
x0 as assignKeyToBeat,
|
|
51372
|
+
R0 as assignKeysToBeats,
|
|
51373
|
+
hv as averageEmbeddings,
|
|
51374
|
+
eb as calculateAdjustedXP,
|
|
51375
51375
|
Nl as calculateBeatInMeasure,
|
|
51376
|
-
|
|
51377
|
-
|
|
51378
|
-
|
|
51379
|
-
|
|
51376
|
+
ty as calculateMaxAchievableDensity,
|
|
51377
|
+
wg as calculateStdDev,
|
|
51378
|
+
Vv as chartedBeatMapToBeatMap,
|
|
51379
|
+
B0 as clearAllKeys,
|
|
51380
51380
|
je as constructGatewayUrl,
|
|
51381
51381
|
qn as convertToAllowedGridType,
|
|
51382
|
-
|
|
51383
|
-
|
|
51384
|
-
|
|
51385
|
-
|
|
51386
|
-
|
|
51387
|
-
|
|
51382
|
+
lw as createCharismaEnchantment,
|
|
51383
|
+
rw as createConstitutionEnchantment,
|
|
51384
|
+
sw as createDexterityEnchantment,
|
|
51385
|
+
ow as createIntelligenceEnchantment,
|
|
51386
|
+
Nb as createLogger,
|
|
51387
|
+
vg as createMelFilterbank,
|
|
51388
51388
|
eu as createSeededRoller,
|
|
51389
51389
|
pr as createStatIncreaseStrategy,
|
|
51390
|
-
|
|
51391
|
-
|
|
51392
|
-
|
|
51390
|
+
aw as createStrengthEnchantment,
|
|
51391
|
+
cw as createWisdomEnchantment,
|
|
51392
|
+
ey as deriveAllowedGridTypes,
|
|
51393
51393
|
Tt as deriveSeed,
|
|
51394
|
-
|
|
51394
|
+
uv as detectGenreListType,
|
|
51395
51395
|
wn as detectModelArchitecture,
|
|
51396
51396
|
gc as displayEnvironmentalDiagnostics,
|
|
51397
51397
|
yc as displayGamingDiagnostics,
|
|
51398
|
-
|
|
51399
|
-
|
|
51398
|
+
Nv as displaySystemDashboard,
|
|
51399
|
+
t0 as ensureAllDefaultsInitialized,
|
|
51400
51400
|
Eo as ensureAppearanceDefaultsInitialized,
|
|
51401
51401
|
Oo as ensureClassDefaultsInitialized,
|
|
51402
51402
|
Po as ensureEquipmentDefaultsInitialized,
|
|
51403
51403
|
Lo as ensureFeatureDefaultsInitialized,
|
|
51404
|
-
|
|
51404
|
+
og as ensureRaceDataDefaultsInitialized,
|
|
51405
51405
|
No as ensureRaceDefaultsInitialized,
|
|
51406
|
-
|
|
51406
|
+
dg as ensureSkillDefaultsInitialized,
|
|
51407
51407
|
On as ensureSpellDefaultsInitialized,
|
|
51408
|
-
|
|
51409
|
-
|
|
51410
|
-
|
|
51411
|
-
|
|
51408
|
+
Jb as evaluateMixConditions,
|
|
51409
|
+
xp as extractIPFSPath,
|
|
51410
|
+
P0 as extractKeyMap,
|
|
51411
|
+
jg as findActiveSegment,
|
|
51412
51412
|
Ot as formatModelForMetadata,
|
|
51413
51413
|
Ho as gaussianSmooth,
|
|
51414
|
-
|
|
51414
|
+
Zv as generateSeed,
|
|
51415
51415
|
Cn as getAccuracyThresholdsForPreset,
|
|
51416
|
-
|
|
51417
|
-
|
|
51418
|
-
|
|
51416
|
+
iw as getAllCurses,
|
|
51417
|
+
tw as getAllEnchantments,
|
|
51418
|
+
Kb as getAllGatewayUrls,
|
|
51419
51419
|
lu as getAllRarities,
|
|
51420
|
-
|
|
51421
|
-
|
|
51422
|
-
|
|
51420
|
+
r0 as getAllowedGridTypes,
|
|
51421
|
+
zb as getArtists,
|
|
51422
|
+
Fb as getAudioUrls,
|
|
51423
51423
|
Zl as getAveragePartyLevel,
|
|
51424
51424
|
Pr as getCRFromXP,
|
|
51425
51425
|
zr as getClassData,
|
|
51426
51426
|
ms as getClassSpellList,
|
|
51427
|
-
|
|
51427
|
+
gg as getClassStartingEquipment,
|
|
51428
51428
|
Rl as getConsecutiveKeyLimit,
|
|
51429
|
-
|
|
51430
|
-
|
|
51431
|
-
|
|
51432
|
-
|
|
51433
|
-
|
|
51434
|
-
|
|
51429
|
+
n0 as getControllerModeBalanceDefaults,
|
|
51430
|
+
i0 as getControllerModeScoringDefaults,
|
|
51431
|
+
ew as getCurse,
|
|
51432
|
+
mw as getCursedItems,
|
|
51433
|
+
Q0 as getEnchantment,
|
|
51434
|
+
nw as getEnchantmentsByType,
|
|
51435
51435
|
ki as getEncounterMultiplier,
|
|
51436
|
-
|
|
51437
|
-
|
|
51436
|
+
kb as getFeatureQuery,
|
|
51437
|
+
Ub as getFullTracks,
|
|
51438
51438
|
Ar as getGaussianSmoothMs,
|
|
51439
|
-
|
|
51440
|
-
|
|
51439
|
+
dv as getGenreLabels,
|
|
51440
|
+
Lb as getGenres,
|
|
51441
51441
|
xl as getGroovePenaltiesForPreset,
|
|
51442
51442
|
en as getGrooveTier,
|
|
51443
51443
|
Al as getGrooveWindowMs,
|
|
51444
|
-
|
|
51444
|
+
rb as getHigherRarity,
|
|
51445
51445
|
Cr as getHopSizeMs,
|
|
51446
|
-
|
|
51447
|
-
|
|
51448
|
-
|
|
51449
|
-
|
|
51450
|
-
|
|
51451
|
-
|
|
51446
|
+
$b as getImageUrls,
|
|
51447
|
+
fw as getItemsWithProperty,
|
|
51448
|
+
F0 as getKeyCount,
|
|
51449
|
+
uw as getMagicItem,
|
|
51450
|
+
hw as getMagicItemsByRarity,
|
|
51451
|
+
dw as getMagicItemsByType,
|
|
51452
51452
|
Mr as getMelBands,
|
|
51453
|
-
|
|
51454
|
-
|
|
51455
|
-
|
|
51456
|
-
|
|
51457
|
-
|
|
51458
|
-
|
|
51459
|
-
|
|
51460
|
-
|
|
51461
|
-
|
|
51453
|
+
Gg as getMetricGroupSize,
|
|
51454
|
+
Uv as getMinHotnessForTier,
|
|
51455
|
+
y0 as getPatternById,
|
|
51456
|
+
d0 as getPatternLibrary,
|
|
51457
|
+
v0 as getPatternLibraryStats,
|
|
51458
|
+
h0 as getPatternsByCategory,
|
|
51459
|
+
m0 as getPatternsByDifficulty,
|
|
51460
|
+
p0 as getPatternsByKeyCount,
|
|
51461
|
+
f0 as getPatternsByTags,
|
|
51462
51462
|
Zn as getRaceData,
|
|
51463
|
-
|
|
51464
|
-
|
|
51463
|
+
Ab as getRaceDataAsync,
|
|
51464
|
+
g0 as getRandomPattern,
|
|
51465
51465
|
wt as getRarityConfig,
|
|
51466
|
-
|
|
51467
|
-
|
|
51468
|
-
|
|
51469
|
-
|
|
51470
|
-
|
|
51466
|
+
c0 as getRhythmPreset,
|
|
51467
|
+
l0 as getRhythmPresetNames,
|
|
51468
|
+
sb as getSignatureDie,
|
|
51469
|
+
Sb as getSkillQuery,
|
|
51470
|
+
Cb as getSpellQuery,
|
|
51471
51471
|
Wr as getSpellSlotsForClass,
|
|
51472
51472
|
Ir as getSubdivisionDensity,
|
|
51473
|
-
|
|
51474
|
-
|
|
51475
|
-
|
|
51476
|
-
|
|
51473
|
+
Wb as getTags,
|
|
51474
|
+
ib as getTemplateById,
|
|
51475
|
+
ab as getTemplatesByArchetype,
|
|
51476
|
+
nb as getTemplatesByCategory,
|
|
51477
51477
|
at as getTempoAwareAllowedGridTypes,
|
|
51478
|
-
|
|
51479
|
-
|
|
51480
|
-
|
|
51481
|
-
|
|
51482
|
-
|
|
51483
|
-
|
|
51484
|
-
|
|
51485
|
-
|
|
51486
|
-
|
|
51478
|
+
Hb as getTotalDuration,
|
|
51479
|
+
qb as getTrackCount,
|
|
51480
|
+
Lp as getTrackExtras,
|
|
51481
|
+
Xb as getTrackMetadata,
|
|
51482
|
+
Ob as getTrackTitles,
|
|
51483
|
+
Gb as getTracks,
|
|
51484
|
+
$0 as getUsedKeys,
|
|
51485
|
+
jb as getVRMTracks,
|
|
51486
|
+
Vb as getVRMs,
|
|
51487
51487
|
Yn as getXPBudgetForParty,
|
|
51488
51488
|
Yl as getXPBudgetPerLevel,
|
|
51489
51489
|
Rr as getXPForCR,
|
|
51490
|
-
|
|
51490
|
+
N0 as hasRequiredKeys,
|
|
51491
51491
|
ht as hashSeedToFloat,
|
|
51492
|
-
|
|
51493
|
-
|
|
51492
|
+
Xv as hashSeedToInt,
|
|
51493
|
+
bg as highPassFilter,
|
|
51494
51494
|
ir as hzToMel,
|
|
51495
|
-
|
|
51495
|
+
e0 as initializeAllDefaults,
|
|
51496
51496
|
Do as initializeAppearanceDefaults,
|
|
51497
51497
|
$o as initializeClassDefaults,
|
|
51498
51498
|
Ro as initializeEquipmentDefaults,
|
|
@@ -51503,63 +51503,63 @@ export {
|
|
|
51503
51503
|
xo as initializeSpellDefaults,
|
|
51504
51504
|
Wt as isArweaveUrl,
|
|
51505
51505
|
Fl as isFullBeatMapExportData,
|
|
51506
|
-
|
|
51507
|
-
|
|
51506
|
+
s0 as isGridTypeAllowed,
|
|
51507
|
+
Yb as isIPFS,
|
|
51508
51508
|
$l as isLevelPackExport,
|
|
51509
|
-
|
|
51510
|
-
|
|
51511
|
-
|
|
51509
|
+
Ug as isMetricStrongBeat,
|
|
51510
|
+
Vg as isMetricWeakBeat,
|
|
51511
|
+
Kv as isPrestigeLevel,
|
|
51512
51512
|
mr as isSingleStepModel,
|
|
51513
|
-
|
|
51513
|
+
Kg as isStrongBeatForEmphasis,
|
|
51514
51514
|
Ai as isTwoStepModel,
|
|
51515
|
-
|
|
51515
|
+
Yv as isValidAIPlayStyle,
|
|
51516
51516
|
Za as isValidClass,
|
|
51517
|
-
|
|
51518
|
-
|
|
51519
|
-
|
|
51520
|
-
|
|
51521
|
-
|
|
51517
|
+
T0 as isValidEncounterDifficulty,
|
|
51518
|
+
tb as isValidEncounterDifficultyUtil,
|
|
51519
|
+
_0 as isValidEnemyArchetype,
|
|
51520
|
+
w0 as isValidEnemyCategory,
|
|
51521
|
+
S0 as isValidEnemyRarity,
|
|
51522
51522
|
An as isValidSubdivisionType,
|
|
51523
|
-
|
|
51523
|
+
Ov as loadConfigFromEnv,
|
|
51524
51524
|
Bl as mapGridToSubdivision,
|
|
51525
|
-
|
|
51525
|
+
yg as melToHz,
|
|
51526
51526
|
Er as mergeButtonMappingConfig,
|
|
51527
|
-
|
|
51528
|
-
|
|
51527
|
+
V0 as mergeConfig,
|
|
51528
|
+
j0 as mergeProgressionConfig,
|
|
51529
51529
|
Rn as mergeRhythmXPConfig,
|
|
51530
51530
|
Ht as modelCache,
|
|
51531
|
-
|
|
51531
|
+
o0 as naturalDifficultyToLevel,
|
|
51532
51532
|
Nt as parseArweaveUrl,
|
|
51533
|
-
|
|
51533
|
+
Sg as performBeatFFT,
|
|
51534
51534
|
qo as performSTFT,
|
|
51535
|
-
|
|
51535
|
+
Wv as reapplyDownbeatConfig,
|
|
51536
51536
|
Hi as resampleAudio,
|
|
51537
|
-
|
|
51538
|
-
|
|
51539
|
-
|
|
51537
|
+
Zb as resolveIPFSLink,
|
|
51538
|
+
xb as shouldAccuracyBreakCombo,
|
|
51539
|
+
E0 as subdivideBeatMap,
|
|
51540
51540
|
Wl as toPrestigeLevel,
|
|
51541
51541
|
Un as unifyBeatMap,
|
|
51542
51542
|
Pl as validateButtonMappingConfig,
|
|
51543
|
-
|
|
51544
|
-
|
|
51543
|
+
ob as validateClassFeature,
|
|
51544
|
+
lb as validateClassFeatures,
|
|
51545
51545
|
Sr as validateDownbeatConfig,
|
|
51546
51546
|
_r as validateDownbeatConfigAgainstBeats,
|
|
51547
|
-
|
|
51548
|
-
|
|
51549
|
-
|
|
51550
|
-
|
|
51551
|
-
|
|
51552
|
-
|
|
51553
|
-
|
|
51554
|
-
|
|
51555
|
-
|
|
51556
|
-
|
|
51557
|
-
|
|
51558
|
-
|
|
51547
|
+
cb as validateRacialTrait,
|
|
51548
|
+
ub as validateRacialTraits,
|
|
51549
|
+
db as validateSkill,
|
|
51550
|
+
pb as validateSkillListDefinition,
|
|
51551
|
+
gb as validateSkillPrerequisites,
|
|
51552
|
+
fb as validateSkillProficiencies,
|
|
51553
|
+
mb as validateSkillProficiency,
|
|
51554
|
+
hb as validateSkills,
|
|
51555
|
+
yb as validateSpell,
|
|
51556
|
+
wb as validateSpellPrerequisites,
|
|
51557
|
+
bb as validateSpellPrerequisitesSchema,
|
|
51558
|
+
vb as validateSpells,
|
|
51559
51559
|
Dr as validateSubdivisionConfig,
|
|
51560
51560
|
_l as validateSubdivisionConfigAgainstBeats,
|
|
51561
|
-
|
|
51562
|
-
|
|
51563
|
-
|
|
51564
|
-
|
|
51561
|
+
Gv as validateSubdivisionDensity,
|
|
51562
|
+
ny as validateSubdivisionLimits,
|
|
51563
|
+
qv as validateThresholds,
|
|
51564
|
+
jv as validateTrackMatch
|
|
51565
51565
|
};
|