@sunsteel/contracts 0.70.0 → 0.71.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +279 -2
- package/dist/index.d.cts +109 -1
- package/dist/index.d.ts +109 -1
- package/dist/index.js +265 -1
- package/package.json +40 -40
package/dist/index.cjs
CHANGED
|
@@ -37,6 +37,8 @@ __export(index_exports, {
|
|
|
37
37
|
ACTIVITY_REACTIONS: () => ACTIVITY_REACTIONS,
|
|
38
38
|
ACTIVITY_TYPES: () => ACTIVITY_TYPES,
|
|
39
39
|
ACTIVITY_TYPE_SECTIONS: () => ACTIVITY_TYPE_SECTIONS,
|
|
40
|
+
BAR_CHOICES_KG: () => BAR_CHOICES_KG,
|
|
41
|
+
BAR_WARM_UP_STEPS: () => BAR_WARM_UP_STEPS,
|
|
40
42
|
BLOCKED_MEMBERS_MAX: () => BLOCKED_MEMBERS_MAX,
|
|
41
43
|
CLONE_ROUTINE_REFUSALS: () => CLONE_ROUTINE_REFUSALS,
|
|
42
44
|
COMEBACK_MIN_INACTIVE_DAYS: () => COMEBACK_MIN_INACTIVE_DAYS,
|
|
@@ -64,6 +66,8 @@ __export(index_exports, {
|
|
|
64
66
|
FOLLOW_SUGGESTIONS_DEFAULT_LIMIT: () => FOLLOW_SUGGESTIONS_DEFAULT_LIMIT,
|
|
65
67
|
FOLLOW_SUGGESTIONS_MAX_LIMIT: () => FOLLOW_SUGGESTIONS_MAX_LIMIT,
|
|
66
68
|
FOLLOW_SUGGESTION_REASONS: () => FOLLOW_SUGGESTION_REASONS,
|
|
69
|
+
LIMITED_SHORTFALL_KG: () => LIMITED_SHORTFALL_KG,
|
|
70
|
+
MAX_SETS_PER_EXERCISE: () => MAX_SETS_PER_EXERCISE,
|
|
67
71
|
MEASURABLE_GOALS_MAX: () => MEASURABLE_GOALS_MAX,
|
|
68
72
|
MEASURABLE_GOAL_DIRECTIONS: () => MEASURABLE_GOAL_DIRECTIONS,
|
|
69
73
|
MEASURABLE_GOAL_TYPES: () => MEASURABLE_GOAL_TYPES,
|
|
@@ -79,12 +83,14 @@ __export(index_exports, {
|
|
|
79
83
|
NOTIFICATIONS_RETENTION_DAYS: () => NOTIFICATIONS_RETENTION_DAYS,
|
|
80
84
|
NOTIFICATION_CATEGORIES: () => NOTIFICATION_CATEGORIES,
|
|
81
85
|
NOTIFICATION_KINDS: () => NOTIFICATION_KINDS,
|
|
86
|
+
OTHER_WARM_UP_STEPS: () => OTHER_WARM_UP_STEPS,
|
|
82
87
|
PLATEAU_MIN_DAYS_SINCE_BEST: () => PLATEAU_MIN_DAYS_SINCE_BEST,
|
|
83
88
|
PLATEAU_MIN_SESSIONS: () => PLATEAU_MIN_SESSIONS,
|
|
84
89
|
PLATEAU_MIN_SESSIONS_MAX: () => PLATEAU_MIN_SESSIONS_MAX,
|
|
85
90
|
PLATEAU_MIN_SESSIONS_MIN: () => PLATEAU_MIN_SESSIONS_MIN,
|
|
86
91
|
PLATEAU_RECENT_DAYS: () => PLATEAU_RECENT_DAYS,
|
|
87
92
|
PLATEAU_WINDOW_DAYS: () => PLATEAU_WINDOW_DAYS,
|
|
93
|
+
PLATE_SETS: () => PLATE_SETS,
|
|
88
94
|
PREFERRED_TRAINING_STYLE_VALUES: () => PREFERRED_TRAINING_STYLE_VALUES,
|
|
89
95
|
PROFILE_BIO_MAX_LENGTH: () => PROFILE_BIO_MAX_LENGTH,
|
|
90
96
|
PROFILE_FAVORITE_EXERCISES_MAX: () => PROFILE_FAVORITE_EXERCISES_MAX,
|
|
@@ -177,11 +183,17 @@ __export(index_exports, {
|
|
|
177
183
|
WORKOUT_SESSION_STATUSES: () => WORKOUT_SESSION_STATUSES,
|
|
178
184
|
accountExportFileName: () => accountExportFileName,
|
|
179
185
|
applyDeload: () => applyDeload,
|
|
186
|
+
buildWarmUpRamp: () => buildWarmUpRamp,
|
|
187
|
+
calculatePlateLoading: () => calculatePlateLoading,
|
|
180
188
|
countsAsWork: () => countsAsWork,
|
|
181
189
|
countsForProgression: () => countsForProgression,
|
|
190
|
+
defaultWarmUpEquipment: () => defaultWarmUpEquipment,
|
|
182
191
|
deloadLengthDays: () => deloadLengthDays,
|
|
192
|
+
followWorkingLoad: () => followWorkingLoad,
|
|
193
|
+
isBarLoaded: () => isBarLoaded,
|
|
183
194
|
isSetKind: () => isSetKind,
|
|
184
195
|
isWithinQuietHours: () => isWithinQuietHours,
|
|
196
|
+
leadWorkingWeight: () => leadWorkingWeight,
|
|
185
197
|
matchesDeletionConfirmation: () => matchesDeletionConfirmation,
|
|
186
198
|
requiredToFinish: () => requiredToFinish,
|
|
187
199
|
resolveActiveTrainingBlock: () => resolveActiveTrainingBlock,
|
|
@@ -190,7 +202,8 @@ __export(index_exports, {
|
|
|
190
202
|
sessionCorrectionWindow: () => sessionCorrectionWindow,
|
|
191
203
|
setKindOf: () => setKindOf,
|
|
192
204
|
setLogValuesDiffer: () => setLogValuesDiffer,
|
|
193
|
-
trainingBlockCovers: () => trainingBlockCovers
|
|
205
|
+
trainingBlockCovers: () => trainingBlockCovers,
|
|
206
|
+
warmUpLoad: () => warmUpLoad
|
|
194
207
|
});
|
|
195
208
|
module.exports = __toCommonJS(index_exports);
|
|
196
209
|
|
|
@@ -544,6 +557,257 @@ function requiredToFinish(kind) {
|
|
|
544
557
|
return k === "WORKING" || k === "DROP";
|
|
545
558
|
}
|
|
546
559
|
|
|
560
|
+
// src/plate-loading.ts
|
|
561
|
+
var CANONICAL_SCALE = 1e4;
|
|
562
|
+
var DENSE_CAPACITY_LIMIT = 2e5;
|
|
563
|
+
var toCanonicalUnits = (weightKg) => Math.round(weightKg * CANONICAL_SCALE);
|
|
564
|
+
var fromCanonicalUnits = (units) => units / CANONICAL_SCALE;
|
|
565
|
+
var greatestCommonDivisor = (left, right) => {
|
|
566
|
+
let a = Math.abs(left);
|
|
567
|
+
let b = Math.abs(right);
|
|
568
|
+
while (b > 0) {
|
|
569
|
+
const remainder = a % b;
|
|
570
|
+
a = b;
|
|
571
|
+
b = remainder;
|
|
572
|
+
}
|
|
573
|
+
return a;
|
|
574
|
+
};
|
|
575
|
+
var buildChunks = (plates, divisor) => {
|
|
576
|
+
const chunks = [];
|
|
577
|
+
plates.forEach((plate, plateIndex) => {
|
|
578
|
+
const pairValue = Math.round(
|
|
579
|
+
toCanonicalUnits(plate.weightKg) * 2 / divisor
|
|
580
|
+
);
|
|
581
|
+
let remaining = plate.pairCount;
|
|
582
|
+
let chunkSize = 1;
|
|
583
|
+
while (remaining > 0) {
|
|
584
|
+
const quantity = Math.min(chunkSize, remaining);
|
|
585
|
+
chunks.push({
|
|
586
|
+
plateIndex,
|
|
587
|
+
quantity,
|
|
588
|
+
value: pairValue * quantity
|
|
589
|
+
});
|
|
590
|
+
remaining -= quantity;
|
|
591
|
+
chunkSize *= 2;
|
|
592
|
+
}
|
|
593
|
+
});
|
|
594
|
+
return chunks;
|
|
595
|
+
};
|
|
596
|
+
var reconstructSelection = (best, chunks, previousSum, previousChunk, plateCount) => {
|
|
597
|
+
const selection = Array.from({ length: plateCount }, () => 0);
|
|
598
|
+
let current = best;
|
|
599
|
+
while (current > 0) {
|
|
600
|
+
const chunkIndex = previousChunk(current);
|
|
601
|
+
if (chunkIndex < 0) break;
|
|
602
|
+
const chunk = chunks[chunkIndex];
|
|
603
|
+
selection[chunk.plateIndex] += chunk.quantity;
|
|
604
|
+
current = previousSum(current);
|
|
605
|
+
}
|
|
606
|
+
return selection;
|
|
607
|
+
};
|
|
608
|
+
var solveDense = (capacity, chunks, plateCount) => {
|
|
609
|
+
const reachable = new Uint8Array(capacity + 1);
|
|
610
|
+
const previousSum = new Int32Array(capacity + 1);
|
|
611
|
+
const previousChunk = new Int16Array(capacity + 1);
|
|
612
|
+
previousSum.fill(-1);
|
|
613
|
+
previousChunk.fill(-1);
|
|
614
|
+
reachable[0] = 1;
|
|
615
|
+
chunks.forEach((chunk, chunkIndex) => {
|
|
616
|
+
for (let sum = capacity; sum >= chunk.value; sum -= 1) {
|
|
617
|
+
if (!reachable[sum] && reachable[sum - chunk.value]) {
|
|
618
|
+
reachable[sum] = 1;
|
|
619
|
+
previousSum[sum] = sum - chunk.value;
|
|
620
|
+
previousChunk[sum] = chunkIndex;
|
|
621
|
+
}
|
|
622
|
+
}
|
|
623
|
+
});
|
|
624
|
+
let best = capacity;
|
|
625
|
+
while (best > 0 && !reachable[best]) best -= 1;
|
|
626
|
+
return {
|
|
627
|
+
best,
|
|
628
|
+
selection: reconstructSelection(
|
|
629
|
+
best,
|
|
630
|
+
chunks,
|
|
631
|
+
(sum) => previousSum[sum],
|
|
632
|
+
(sum) => previousChunk[sum],
|
|
633
|
+
plateCount
|
|
634
|
+
)
|
|
635
|
+
};
|
|
636
|
+
};
|
|
637
|
+
var solveSparse = (capacity, chunks, plateCount) => {
|
|
638
|
+
const reachable = /* @__PURE__ */ new Map();
|
|
639
|
+
reachable.set(0, { previous: -1, chunkIndex: -1 });
|
|
640
|
+
chunks.forEach((chunk, chunkIndex) => {
|
|
641
|
+
const currentSums = Array.from(reachable.keys());
|
|
642
|
+
for (const sum of currentSums) {
|
|
643
|
+
const next = sum + chunk.value;
|
|
644
|
+
if (next <= capacity && !reachable.has(next)) {
|
|
645
|
+
reachable.set(next, { previous: sum, chunkIndex });
|
|
646
|
+
}
|
|
647
|
+
}
|
|
648
|
+
});
|
|
649
|
+
let best = 0;
|
|
650
|
+
for (const sum of reachable.keys()) {
|
|
651
|
+
if (sum > best) best = sum;
|
|
652
|
+
}
|
|
653
|
+
return {
|
|
654
|
+
best,
|
|
655
|
+
selection: reconstructSelection(
|
|
656
|
+
best,
|
|
657
|
+
chunks,
|
|
658
|
+
(sum) => reachable.get(sum)?.previous ?? -1,
|
|
659
|
+
(sum) => reachable.get(sum)?.chunkIndex ?? -1,
|
|
660
|
+
plateCount
|
|
661
|
+
)
|
|
662
|
+
};
|
|
663
|
+
};
|
|
664
|
+
var heaviestFirst = (target, pairValues, counts) => {
|
|
665
|
+
let remaining = target;
|
|
666
|
+
const selection = pairValues.map((value, index) => {
|
|
667
|
+
const take = Math.min(counts[index], Math.floor(remaining / value));
|
|
668
|
+
remaining -= take * value;
|
|
669
|
+
return take;
|
|
670
|
+
});
|
|
671
|
+
return remaining === 0 ? selection : null;
|
|
672
|
+
};
|
|
673
|
+
var plateTotal = (selection) => selection.reduce((total, count) => total + count, 0);
|
|
674
|
+
var calculatePlateLoading = (targetWeightKg, barWeightKg, availablePlatePairs) => {
|
|
675
|
+
const targetUnits = Math.max(0, toCanonicalUnits(targetWeightKg));
|
|
676
|
+
const barUnits = Math.max(0, toCanonicalUnits(barWeightKg));
|
|
677
|
+
if (targetUnits < barUnits) {
|
|
678
|
+
return {
|
|
679
|
+
targetWeightKg: fromCanonicalUnits(targetUnits),
|
|
680
|
+
loadedWeightKg: fromCanonicalUnits(barUnits),
|
|
681
|
+
differenceKg: fromCanonicalUnits(barUnits - targetUnits),
|
|
682
|
+
status: "over",
|
|
683
|
+
platesPerSide: []
|
|
684
|
+
};
|
|
685
|
+
}
|
|
686
|
+
const plates = availablePlatePairs.filter((plate) => plate.weightKg > 0 && plate.pairCount > 0).sort((left, right) => right.weightKg - left.weightKg);
|
|
687
|
+
const pairValues = plates.map((plate) => toCanonicalUnits(plate.weightKg) * 2);
|
|
688
|
+
const divisor = pairValues.reduce(greatestCommonDivisor, 0) || 1;
|
|
689
|
+
const residualUnits = targetUnits - barUnits;
|
|
690
|
+
const requestedCapacity = Math.floor(residualUnits / divisor);
|
|
691
|
+
const inventoryCapacity = pairValues.reduce(
|
|
692
|
+
(total, value, index) => total + value / divisor * plates[index].pairCount,
|
|
693
|
+
0
|
|
694
|
+
);
|
|
695
|
+
const capacity = Math.min(requestedCapacity, inventoryCapacity);
|
|
696
|
+
const chunks = buildChunks(plates, divisor);
|
|
697
|
+
const solution = capacity <= DENSE_CAPACITY_LIMIT ? solveDense(capacity, chunks, plates.length) : solveSparse(capacity, chunks, plates.length);
|
|
698
|
+
const greedy = heaviestFirst(
|
|
699
|
+
solution.best,
|
|
700
|
+
pairValues.map((value) => value / divisor),
|
|
701
|
+
plates.map((plate) => plate.pairCount)
|
|
702
|
+
);
|
|
703
|
+
const selection = greedy && plateTotal(greedy) <= plateTotal(solution.selection) ? greedy : solution.selection;
|
|
704
|
+
const plateUnits = solution.best * divisor;
|
|
705
|
+
const loadedUnits = barUnits + plateUnits;
|
|
706
|
+
const differenceUnits = targetUnits - loadedUnits;
|
|
707
|
+
return {
|
|
708
|
+
targetWeightKg: fromCanonicalUnits(targetUnits),
|
|
709
|
+
loadedWeightKg: fromCanonicalUnits(loadedUnits),
|
|
710
|
+
differenceKg: fromCanonicalUnits(differenceUnits),
|
|
711
|
+
status: differenceUnits === 0 ? "exact" : "short",
|
|
712
|
+
platesPerSide: plates.flatMap(
|
|
713
|
+
(plate, index) => selection[index] > 0 ? [
|
|
714
|
+
{
|
|
715
|
+
weightKg: plate.weightKg,
|
|
716
|
+
platesPerSide: selection[index]
|
|
717
|
+
}
|
|
718
|
+
] : []
|
|
719
|
+
)
|
|
720
|
+
};
|
|
721
|
+
};
|
|
722
|
+
|
|
723
|
+
// src/warm-ups.ts
|
|
724
|
+
var MAX_SETS_PER_EXERCISE = 10;
|
|
725
|
+
var BAR_WARM_UP_STEPS = [
|
|
726
|
+
{ share: 0, reps: 10 },
|
|
727
|
+
{ share: 0.4, reps: 5 },
|
|
728
|
+
{ share: 0.6, reps: 3 },
|
|
729
|
+
{ share: 0.8, reps: 2 }
|
|
730
|
+
];
|
|
731
|
+
var OTHER_WARM_UP_STEPS = [
|
|
732
|
+
{ share: 0.5, reps: 8 },
|
|
733
|
+
{ share: 0.75, reps: 3 }
|
|
734
|
+
];
|
|
735
|
+
var BAR_LOADED = /* @__PURE__ */ new Set(["barbell", "ez-bar", "smith-machine"]);
|
|
736
|
+
var isBarLoaded = (equipmentRequired) => (equipmentRequired ?? []).some((item) => BAR_LOADED.has(item));
|
|
737
|
+
var POUNDS_PER_KILOGRAM = 2.2046226218;
|
|
738
|
+
var lb = (pounds) => pounds / POUNDS_PER_KILOGRAM;
|
|
739
|
+
var BAR_CHOICES_KG = {
|
|
740
|
+
KG: [20, 15, 10],
|
|
741
|
+
LB: [lb(45), lb(35), lb(15)]
|
|
742
|
+
};
|
|
743
|
+
var pairs = (weights, heaviestPairs) => weights.map((weightKg, index) => ({
|
|
744
|
+
weightKg,
|
|
745
|
+
pairCount: index === 0 ? heaviestPairs : 2
|
|
746
|
+
}));
|
|
747
|
+
var PLATE_SETS = {
|
|
748
|
+
KG: {
|
|
749
|
+
STANDARD: pairs([25, 20, 15, 10, 5, 2.5, 1.25], 4),
|
|
750
|
+
LIGHT: pairs([20, 15, 10, 5, 2.5, 1.25], 2)
|
|
751
|
+
},
|
|
752
|
+
LB: {
|
|
753
|
+
STANDARD: pairs([45, 35, 25, 10, 5, 2.5].map(lb), 4),
|
|
754
|
+
LIGHT: pairs([25, 10, 5, 2.5].map(lb), 2)
|
|
755
|
+
}
|
|
756
|
+
};
|
|
757
|
+
var LIMITED_SHORTFALL_KG = 2.5;
|
|
758
|
+
var defaultWarmUpEquipment = (unit) => ({
|
|
759
|
+
barWeightKg: BAR_CHOICES_KG[unit][0],
|
|
760
|
+
platePairs: PLATE_SETS[unit].STANDARD
|
|
761
|
+
});
|
|
762
|
+
var round = (value) => Math.round(value * 1e4) / 1e4;
|
|
763
|
+
function warmUpLoad(share, workingWeightKg, equipment) {
|
|
764
|
+
const target = share * workingWeightKg;
|
|
765
|
+
if (equipment.barLoaded) {
|
|
766
|
+
const loading = calculatePlateLoading(
|
|
767
|
+
Math.max(target, equipment.barWeightKg),
|
|
768
|
+
equipment.barWeightKg,
|
|
769
|
+
[...equipment.platePairs]
|
|
770
|
+
);
|
|
771
|
+
return {
|
|
772
|
+
weightKg: round(loading.loadedWeightKg),
|
|
773
|
+
platesPerSide: loading.platesPerSide,
|
|
774
|
+
limited: share > 0 && loading.status === "short" && loading.differenceKg >= LIMITED_SHORTFALL_KG - 1e-9
|
|
775
|
+
};
|
|
776
|
+
}
|
|
777
|
+
const increment = equipment.incrementKg > 0 ? equipment.incrementKg : 2.5;
|
|
778
|
+
return {
|
|
779
|
+
weightKg: round(Math.floor(target / increment + 1e-9) * increment),
|
|
780
|
+
limited: false
|
|
781
|
+
};
|
|
782
|
+
}
|
|
783
|
+
function buildWarmUpRamp(input) {
|
|
784
|
+
const work = input.workingWeightKg;
|
|
785
|
+
if (!(work > 0)) return { sets: [], leftOut: 0 };
|
|
786
|
+
const steps = input.barLoaded ? BAR_WARM_UP_STEPS : OTHER_WARM_UP_STEPS;
|
|
787
|
+
const sets = [];
|
|
788
|
+
for (const step of steps) {
|
|
789
|
+
const load = warmUpLoad(step.share, work, input);
|
|
790
|
+
const previous = sets[sets.length - 1];
|
|
791
|
+
if (load.weightKg <= 0 || load.weightKg >= work - 1e-9) continue;
|
|
792
|
+
if (previous && load.weightKg <= previous.weightKg + 1e-9) continue;
|
|
793
|
+
sets.push({ ...load, reps: step.reps, share: step.share });
|
|
794
|
+
}
|
|
795
|
+
const room = Math.max(0, input.room);
|
|
796
|
+
const kept = sets.slice(Math.max(0, sets.length - room));
|
|
797
|
+
return { sets: kept, leftOut: sets.length - kept.length };
|
|
798
|
+
}
|
|
799
|
+
function leadWorkingWeight(sets) {
|
|
800
|
+
const lead = sets.find((set) => countsForProgression(set.kind));
|
|
801
|
+
return typeof lead?.weight === "number" && lead.weight > 0 ? lead.weight : null;
|
|
802
|
+
}
|
|
803
|
+
function followWorkingLoad(sets, equipment) {
|
|
804
|
+
const work = leadWorkingWeight(sets);
|
|
805
|
+
if (work === null) return [...sets];
|
|
806
|
+
return sets.map(
|
|
807
|
+
(set) => set.kind === "WARMUP" && typeof set.warmUpShare === "number" ? { ...set, weight: warmUpLoad(set.warmUpShare, work, equipment).weightKg } : set
|
|
808
|
+
);
|
|
809
|
+
}
|
|
810
|
+
|
|
547
811
|
// src/routine.ts
|
|
548
812
|
var ROUTINE_SCHEDULE_MODES = ["WEEKLY", "ROTATION"];
|
|
549
813
|
var ROUTINE_DAYS_MAX = 7;
|
|
@@ -969,6 +1233,8 @@ function accountExportFileName(username, exportedAt) {
|
|
|
969
1233
|
ACTIVITY_REACTIONS,
|
|
970
1234
|
ACTIVITY_TYPES,
|
|
971
1235
|
ACTIVITY_TYPE_SECTIONS,
|
|
1236
|
+
BAR_CHOICES_KG,
|
|
1237
|
+
BAR_WARM_UP_STEPS,
|
|
972
1238
|
BLOCKED_MEMBERS_MAX,
|
|
973
1239
|
CLONE_ROUTINE_REFUSALS,
|
|
974
1240
|
COMEBACK_MIN_INACTIVE_DAYS,
|
|
@@ -996,6 +1262,8 @@ function accountExportFileName(username, exportedAt) {
|
|
|
996
1262
|
FOLLOW_SUGGESTIONS_DEFAULT_LIMIT,
|
|
997
1263
|
FOLLOW_SUGGESTIONS_MAX_LIMIT,
|
|
998
1264
|
FOLLOW_SUGGESTION_REASONS,
|
|
1265
|
+
LIMITED_SHORTFALL_KG,
|
|
1266
|
+
MAX_SETS_PER_EXERCISE,
|
|
999
1267
|
MEASURABLE_GOALS_MAX,
|
|
1000
1268
|
MEASURABLE_GOAL_DIRECTIONS,
|
|
1001
1269
|
MEASURABLE_GOAL_TYPES,
|
|
@@ -1011,12 +1279,14 @@ function accountExportFileName(username, exportedAt) {
|
|
|
1011
1279
|
NOTIFICATIONS_RETENTION_DAYS,
|
|
1012
1280
|
NOTIFICATION_CATEGORIES,
|
|
1013
1281
|
NOTIFICATION_KINDS,
|
|
1282
|
+
OTHER_WARM_UP_STEPS,
|
|
1014
1283
|
PLATEAU_MIN_DAYS_SINCE_BEST,
|
|
1015
1284
|
PLATEAU_MIN_SESSIONS,
|
|
1016
1285
|
PLATEAU_MIN_SESSIONS_MAX,
|
|
1017
1286
|
PLATEAU_MIN_SESSIONS_MIN,
|
|
1018
1287
|
PLATEAU_RECENT_DAYS,
|
|
1019
1288
|
PLATEAU_WINDOW_DAYS,
|
|
1289
|
+
PLATE_SETS,
|
|
1020
1290
|
PREFERRED_TRAINING_STYLE_VALUES,
|
|
1021
1291
|
PROFILE_BIO_MAX_LENGTH,
|
|
1022
1292
|
PROFILE_FAVORITE_EXERCISES_MAX,
|
|
@@ -1109,11 +1379,17 @@ function accountExportFileName(username, exportedAt) {
|
|
|
1109
1379
|
WORKOUT_SESSION_STATUSES,
|
|
1110
1380
|
accountExportFileName,
|
|
1111
1381
|
applyDeload,
|
|
1382
|
+
buildWarmUpRamp,
|
|
1383
|
+
calculatePlateLoading,
|
|
1112
1384
|
countsAsWork,
|
|
1113
1385
|
countsForProgression,
|
|
1386
|
+
defaultWarmUpEquipment,
|
|
1114
1387
|
deloadLengthDays,
|
|
1388
|
+
followWorkingLoad,
|
|
1389
|
+
isBarLoaded,
|
|
1115
1390
|
isSetKind,
|
|
1116
1391
|
isWithinQuietHours,
|
|
1392
|
+
leadWorkingWeight,
|
|
1117
1393
|
matchesDeletionConfirmation,
|
|
1118
1394
|
requiredToFinish,
|
|
1119
1395
|
resolveActiveTrainingBlock,
|
|
@@ -1122,5 +1398,6 @@ function accountExportFileName(username, exportedAt) {
|
|
|
1122
1398
|
sessionCorrectionWindow,
|
|
1123
1399
|
setKindOf,
|
|
1124
1400
|
setLogValuesDiffer,
|
|
1125
|
-
trainingBlockCovers
|
|
1401
|
+
trainingBlockCovers,
|
|
1402
|
+
warmUpLoad
|
|
1126
1403
|
});
|
package/dist/index.d.cts
CHANGED
|
@@ -390,6 +390,12 @@ interface RoutineSet {
|
|
|
390
390
|
rir?: number | null;
|
|
391
391
|
/** LIVE-12; absent means a working set. */
|
|
392
392
|
kind?: SetKind;
|
|
393
|
+
/**
|
|
394
|
+
* LIVE-20: a generated warm-up's share of the first working set (0 is the
|
|
395
|
+
* empty bar). With the exercise following its load, the warm-up's weight
|
|
396
|
+
* is recalculated from it.
|
|
397
|
+
*/
|
|
398
|
+
warmUpShare?: number | null;
|
|
393
399
|
}
|
|
394
400
|
interface RoutineExercise {
|
|
395
401
|
id: string;
|
|
@@ -398,6 +404,8 @@ interface RoutineExercise {
|
|
|
398
404
|
note?: string | null;
|
|
399
405
|
progressionScheme: ProgressionScheme;
|
|
400
406
|
minWeightIncrement: number;
|
|
407
|
+
/** LIVE-20: warm-ups with a share follow the first working set. */
|
|
408
|
+
warmUpsFollowLoad?: boolean;
|
|
401
409
|
exercise: {
|
|
402
410
|
id: string;
|
|
403
411
|
name: string;
|
|
@@ -413,6 +421,8 @@ interface CreateRoutineExerciseInput {
|
|
|
413
421
|
note?: string;
|
|
414
422
|
progressionScheme: ProgressionScheme;
|
|
415
423
|
minWeightIncrement: number;
|
|
424
|
+
/** LIVE-20: warm-ups with a share follow the first working set. */
|
|
425
|
+
warmUpsFollowLoad?: boolean;
|
|
416
426
|
sets: RoutineSet[];
|
|
417
427
|
}
|
|
418
428
|
interface RoutineDay {
|
|
@@ -541,6 +551,8 @@ interface RoutineVersionExercise {
|
|
|
541
551
|
note: string | null;
|
|
542
552
|
progressionScheme: ProgressionScheme;
|
|
543
553
|
minWeightIncrement: number;
|
|
554
|
+
/** LIVE-20; absent in setups captured before it. */
|
|
555
|
+
warmUpsFollowLoad?: boolean;
|
|
544
556
|
sets: RoutineSet[];
|
|
545
557
|
}
|
|
546
558
|
interface RoutineVersionDay {
|
|
@@ -2099,6 +2111,102 @@ interface PersonalGoalsResponse {
|
|
|
2099
2111
|
goals: PersonalGoalProgress[];
|
|
2100
2112
|
}
|
|
2101
2113
|
|
|
2114
|
+
interface PlateLoadingItem {
|
|
2115
|
+
weightKg: number;
|
|
2116
|
+
platesPerSide: number;
|
|
2117
|
+
}
|
|
2118
|
+
interface PlateLoadingResult {
|
|
2119
|
+
targetWeightKg: number;
|
|
2120
|
+
loadedWeightKg: number;
|
|
2121
|
+
differenceKg: number;
|
|
2122
|
+
status: 'exact' | 'short' | 'over';
|
|
2123
|
+
platesPerSide: PlateLoadingItem[];
|
|
2124
|
+
}
|
|
2125
|
+
declare const calculatePlateLoading: (targetWeightKg: number, barWeightKg: number, availablePlatePairs: PlatePairInventory[]) => PlateLoadingResult;
|
|
2126
|
+
|
|
2127
|
+
/** An exercise holds at most this many sets, warm-ups included. */
|
|
2128
|
+
declare const MAX_SETS_PER_EXERCISE = 10;
|
|
2129
|
+
interface WarmUpStep {
|
|
2130
|
+
/** Share of the working load; 0 is the empty bar. */
|
|
2131
|
+
share: number;
|
|
2132
|
+
reps: number;
|
|
2133
|
+
}
|
|
2134
|
+
/** Plate-loaded work: the empty bar, then 40, 60 and 80 %. */
|
|
2135
|
+
declare const BAR_WARM_UP_STEPS: readonly WarmUpStep[];
|
|
2136
|
+
/** Dumbbells, machines and cables: 50 and 75 %. */
|
|
2137
|
+
declare const OTHER_WARM_UP_STEPS: readonly WarmUpStep[];
|
|
2138
|
+
/** Whether an exercise is loaded with a bar and plates. */
|
|
2139
|
+
declare const isBarLoaded: (equipmentRequired: readonly string[] | undefined) => boolean;
|
|
2140
|
+
/** Bars offered when no gym is saved, in the account's unit. */
|
|
2141
|
+
declare const BAR_CHOICES_KG: Record<WeightUnit, number[]>;
|
|
2142
|
+
type PlateSetChoice = 'STANDARD' | 'LIGHT';
|
|
2143
|
+
/** The two plate sets offered when none are saved, in the account's unit. */
|
|
2144
|
+
declare const PLATE_SETS: Record<WeightUnit, Record<PlateSetChoice, PlatePairInventory[]>>;
|
|
2145
|
+
/**
|
|
2146
|
+
* A set is "the closest you can load" when the plates fall this far short of
|
|
2147
|
+
* its target: the step a standard set of plates (1.25 kg pairs) always makes.
|
|
2148
|
+
*/
|
|
2149
|
+
declare const LIMITED_SHORTFALL_KG = 2.5;
|
|
2150
|
+
/** What a warm-up load is made from. */
|
|
2151
|
+
interface WarmUpEquipment {
|
|
2152
|
+
barLoaded: boolean;
|
|
2153
|
+
barWeightKg: number;
|
|
2154
|
+
platePairs: readonly PlatePairInventory[];
|
|
2155
|
+
/** The exercise's own weight step, for anything not bar-loaded. */
|
|
2156
|
+
incrementKg: number;
|
|
2157
|
+
}
|
|
2158
|
+
/**
|
|
2159
|
+
* The equipment assumed when a member has no gym saved: a standard bar and
|
|
2160
|
+
* plate set in their unit. The builder asks instead; the server, which
|
|
2161
|
+
* cannot ask, uses this.
|
|
2162
|
+
*/
|
|
2163
|
+
declare const defaultWarmUpEquipment: (unit: WeightUnit) => {
|
|
2164
|
+
barWeightKg: number;
|
|
2165
|
+
platePairs: PlatePairInventory[];
|
|
2166
|
+
};
|
|
2167
|
+
interface WarmUpLoad {
|
|
2168
|
+
weightKg: number;
|
|
2169
|
+
/** Bar-loaded only: what goes on each side. */
|
|
2170
|
+
platesPerSide?: PlateLoadingItem[];
|
|
2171
|
+
/** The plates fell short of the target by a standard small step or more. */
|
|
2172
|
+
limited: boolean;
|
|
2173
|
+
}
|
|
2174
|
+
/** One step's load: rounded down to what the bar and plates, or the step, make. */
|
|
2175
|
+
declare function warmUpLoad(share: number, workingWeightKg: number, equipment: WarmUpEquipment): WarmUpLoad;
|
|
2176
|
+
interface WarmUpSet extends WarmUpLoad {
|
|
2177
|
+
reps: number;
|
|
2178
|
+
/** The step's share of the working load, kept so the set can follow it. */
|
|
2179
|
+
share: number;
|
|
2180
|
+
}
|
|
2181
|
+
interface WarmUpRamp {
|
|
2182
|
+
sets: WarmUpSet[];
|
|
2183
|
+
/** Steps left out because the exercise had no room for them. */
|
|
2184
|
+
leftOut: number;
|
|
2185
|
+
}
|
|
2186
|
+
/**
|
|
2187
|
+
* The warm-up sets for a working load: each step rounded down to a load that
|
|
2188
|
+
* can be made, a step no heavier than the one before or reaching the working
|
|
2189
|
+
* load dropped, and the heaviest kept when there is no room for all of them.
|
|
2190
|
+
*/
|
|
2191
|
+
declare function buildWarmUpRamp(input: WarmUpEquipment & {
|
|
2192
|
+
workingWeightKg: number;
|
|
2193
|
+
room: number;
|
|
2194
|
+
}): WarmUpRamp;
|
|
2195
|
+
type FollowingSet = {
|
|
2196
|
+
weight?: number | null;
|
|
2197
|
+
kind?: SetKind | null;
|
|
2198
|
+
warmUpShare?: number | null;
|
|
2199
|
+
};
|
|
2200
|
+
/** The load a following warm-up is a share of: the first working or optional set. */
|
|
2201
|
+
declare function leadWorkingWeight(sets: readonly FollowingSet[]): number | null;
|
|
2202
|
+
/**
|
|
2203
|
+
* LIVE-20: the sets with every warm-up that carries a share recalculated from
|
|
2204
|
+
* the exercise's first working set. Nothing else changes, a warm-up without a
|
|
2205
|
+
* share keeps its load, and without a working load the sets come back as they
|
|
2206
|
+
* were.
|
|
2207
|
+
*/
|
|
2208
|
+
declare function followWorkingLoad<T extends FollowingSet>(sets: readonly T[], equipment: WarmUpEquipment): T[];
|
|
2209
|
+
|
|
2102
2210
|
/**
|
|
2103
2211
|
* INTEL-02: a lighter period proposed from the signals `PROG-10` states. The
|
|
2104
2212
|
* suggestion acts on evidence only -- it names what was marked and when, never
|
|
@@ -3471,4 +3579,4 @@ interface AccountExportV1 {
|
|
|
3471
3579
|
/** The file name a download of the export is saved under. */
|
|
3472
3580
|
declare function accountExportFileName(username: string, exportedAt: string): string;
|
|
3473
3581
|
|
|
3474
|
-
export { ACCOUNT_EXPORT_FORMAT, ACCOUNT_EXPORT_VERSION, ACHIEVEMENT_CATEGORIES, ACHIEVEMENT_DEFINITIONS, ACTIVITY_CAPS, ACTIVITY_COMMENTS_PAGE_SIZE, ACTIVITY_COMMENTS_PER_DAY_MAX, ACTIVITY_COMMENT_MAX_LENGTH, ACTIVITY_DEFAULT_AUDIENCE, ACTIVITY_ENTRY_ID_MAX_LENGTH, ACTIVITY_FEED_FOLLOWED_MAX, ACTIVITY_PAGE_DEFAULT_LIMIT, ACTIVITY_PAGE_MAX_LIMIT, ACTIVITY_PREVIEW_AUDIENCES, ACTIVITY_REACTIONS, ACTIVITY_TYPES, ACTIVITY_TYPE_SECTIONS, type AccountExportGoal, type AccountExportMember, type AccountExportPersonalRecord, type AccountExportRoutine, type AccountExportScheduleOverride, type AccountExportTrainingEvent, type AccountExportTrainingLocation, type AccountExportV1, type AchievementActivity, type AchievementCategory, type AchievementCategoryProgress, type AchievementDefinition, type AchievementNotification, type AchievementUnlockedEventPayload, type AchievementsResponse, type ActivityAudience, type ActivityCap, type ActivityComment, type ActivityCommentNotification, type ActivityCommentSummary, type ActivityCommentsQuery, type ActivityCommentsResponse, type ActivityEntry, type ActivityEntrySharing, type ActivityFeedResponse, type ActivityLink, type ActivityPage, type ActivityPageQuery, type ActivityPreviewAudience, type ActivityPreviewQuery, type ActivityReaction, type ActivityReactionSummary, type ActivitySection, type ActivitySharingSettings, type ActivityType, type AppNotification, BLOCKED_MEMBERS_MAX, type BlockComparisonLift, type BlockComparisonLiftBest, type BlockComparisonPeriod, type BlockComparisonPeriodKind, type BlockedMember, type BlockedMembersResponse, type Brand, CLONE_ROUTINE_REFUSALS, COMEBACK_MIN_INACTIVE_DAYS, COMEBACK_RECOGNITION_LIMIT, COMEBACK_REQUIRED_ACTIVE_DAYS, COMEBACK_SESSION_LOOKBACK, COMEBACK_WINDOW_DAYS, type CalendarDate, type CloneRoutineRefusal, type CloneRoutineRequest, type ComebackActivity, type ComebackRecognition, type ComebackRecognitionSummary, type CorrectSessionRequest, type CorrectSessionResponse, type CorrectSessionSetRequest, type CreateActivityCommentRequest, type CreateActivityCommentResponse, type CreateDeloadRequest, type CreateReportRequest, type CreateReportResponse, type CreateRoutineDayInput, type CreateRoutineExerciseInput, type CreateRoutineRequest, type CreateRoutineVersionRequest, type CreateSessionShareRequest, DELOAD_DEFAULT_DAYS, DELOAD_DEFAULT_LOAD_REDUCTION, DELOAD_DEFAULT_SET_MODE, DELOAD_LOAD_REDUCTIONS, DELOAD_MAX_DAYS, DELOAD_NOT_LIGHTER, DELOAD_SET_MODES, DELOAD_SUGGESTION_COOLDOWN_DAYS, DELOAD_SUGGESTION_EARLIER_DAYS, DELOAD_SUGGESTION_MIN_MARKED_TODAY, DELOAD_SUGGESTION_ROUTINE_DAYS, DELOAD_SUGGESTION_SIGNALS, type DeclineSignal, type DecliningLift, type DecliningLiftSession, type DeleteAccountRequest, type DeleteAccountResponse, type DeleteActivityCommentResponse, type DeletePushSubscriptionRequest, type DeloadLoadReduction, type DeloadOptions, type DeloadSetMode, type DeloadSuggestion, type DeloadSuggestionEvidence, type DeloadSuggestionResponse, type DeloadSuggestionSignal, type DeloadSuggestionUnavailableReason, type DiscoverableRoutine, EXERCISE_EQUIPMENT, EXERCISE_MECHANICS, type EarnedAchievement, type EarnedPersonalRecord, type EffortPeriod, type EffortSignal, type Exercise, type ExerciseEquipment, type ExerciseId, type ExerciseMechanic, type ExercisePerformanceHistoryQuery, type ExercisePerformanceHistoryResponse, type ExercisePerformancePrescription, type ExercisePerformancePrescriptionSet, type ExercisePerformanceSession, type ExercisePerformanceSet, type ExercisePerformanceSummary, type ExercisePlateau, type ExerciseStrengthSummary, type ExerciseStrengthTrendPoint, type ExerciseStrengthTrendQuery, type ExerciseStrengthTrendResponse, FEATURED_PROFILE_ITEMS_MAX, FEATURED_PROFILE_ITEM_KINDS, FEATURED_PROFILE_REFERENCE_MAX_LENGTH, FOLLOW_SUGGESTIONS_DEFAULT_LIMIT, FOLLOW_SUGGESTIONS_MAX_LIMIT, FOLLOW_SUGGESTION_REASONS, type FeaturedProfileAchievementItem, type FeaturedProfileItem, type FeaturedProfileItemKind, type FeaturedProfileRankItem, type FeaturedProfileRecordItem, type FeaturedProfileRoutineItem, type FeaturedProfileSelection, type FeaturedProfileSelectionInput, type FeaturedProfileSelectionsResponse, type FinishStatus, type FinishWorkoutRequest, type FinishWorkoutResponse, type FollowSuggestion, type FollowSuggestionReason, type FollowSuggestionsResponse, type IsoDateString, type ListSessionsParams, MEASURABLE_GOALS_MAX, MEASURABLE_GOAL_DIRECTIONS, MEASURABLE_GOAL_TYPES, MINUTES_IN_DAY, MODERATION_ACTION_KINDS, MODERATION_HISTORY_PAGE_SIZE, MODERATION_NOTE_MAX_LENGTH, MODERATION_QUEUE_PAGE_SIZE, MOVEMENT_PATTERNS, MUSCLE_GROUPS, type MarkNotificationsReadRequest, type MarkNotificationsReadResponse, type MeasurableGoal, type MeasurableGoalDirection, type MeasurableGoalExercise, type MeasurableGoalInput, type MeasurableGoalType, type MemberActivityResponse, type MemberModerationState, type MemberRoutinesResponse, type ModerationActionKind, type ModerationActionRecord, type ModerationHistoryQuery, type ModerationHistoryResponse, type ModerationQueueQuery, type ModerationQueueResponse, type ModerationReport, type ModeratorState, type MoveOccurrenceRequest, type MovementPattern, type MuscleGroup, type MuscleGroupHeatmapQuery, type MuscleGroupHeatmapResponse, type MuscleGroupHeatmapValue, type MuscleGroupHeatmapWeek, type MuscleVolumeTrendSeries, NOTIFICATIONS_LIST_LIMIT, NOTIFICATIONS_LOOKBACK_DAYS, NOTIFICATIONS_RETENTION_DAYS, NOTIFICATION_CATEGORIES, NOTIFICATION_KINDS, type NewFollowerNotification, type NotificationCategory, type NotificationKind, type NotificationPreferences, type NotificationPreferencesResponse, type NotificationsResponse, type OwnActivityEntry, type OwnActivityResponse, PLATEAU_MIN_DAYS_SINCE_BEST, PLATEAU_MIN_SESSIONS, PLATEAU_MIN_SESSIONS_MAX, PLATEAU_MIN_SESSIONS_MIN, PLATEAU_RECENT_DAYS, PLATEAU_WINDOW_DAYS, PREFERRED_TRAINING_STYLE_VALUES, PROFILE_BIO_MAX_LENGTH, PROFILE_FAVORITE_EXERCISES_MAX, PROFILE_LOCATION_MAX_LENGTH, PROFILE_TRAINING_DISCIPLINES_MAX, PROFILE_TRAINING_GOALS_MAX, PROFILE_VISIBILITY_VALUES, PROGRESSION_SCHEMES, PROGRESS_TIMELINE_EVENT_TYPES, PUSH_PAYLOAD_KINDS, PUSH_SUBSCRIPTIONS_MAX, type PaginatedResponse, type PersonalGoalProgress, type PersonalGoalsResponse, type PersonalRecordActivity, type PersonalRecordEntry, type PersonalRecordKind, type PlannedReminder, type PlatePairInventory, type PlateauPreferences, type PlateauSet, type PlateausResponse, type PreferredTrainingStyle, type PreviousPerformanceResponse, type PreviousSessionRecap, type PreviousSetPerformance, type ProfileDiscoverySettings, type ProfileFavoriteExercise, type ProfilePrivacySettings, type ProfileViewerAccess, type ProfileVisibility, type ProgressTimelineEventType, type ProgressTimelineItem, type ProgressTimelinePersonalRecordItem, type ProgressTimelineProgressionItem, type ProgressTimelineQuery, type ProgressTimelineRecordPerformance, type ProgressTimelineRecordReason, type ProgressTimelineResponse, type ProgressTimelineSessionContext, type ProgressionActivity, type ProgressionChange, type ProgressionRule, type ProgressionScheme, type ProgressionSetChange, type PublicBodyMetrics, type PublicProfileAchievements, type PublicTrainingSummary, type PublicUserProfile, type PushPayload, type PushPayloadKind, type PushSubscriptionKeys, type PushSubscriptionSummary, type PushSubscriptionsResponse, type QuietHours, RELATIONSHIP_LIST_DEFAULT_LIMIT, RELATIONSHIP_LIST_KINDS, RELATIONSHIP_LIST_MAX_LIMIT, RENAISSANCE_RANK_DEFINITIONS, REPORTS_PER_DAY_MAX, REPORT_DETAILS_MAX_LENGTH, REPORT_REASONS, REPORT_STATUSES, REPORT_SUBJECT_KINDS, REP_TYPES, RESERVED_USERNAMES, REST_ALERT_MAX_LEAD_SECONDS, REST_ALERT_MIN_LEAD_SECONDS, REST_ALERT_REFUSALS, ROUTINE_DAYS_MAX, ROUTINE_DAY_NAME_MAX, ROUTINE_DISCOVERY_DEFAULT_LIMIT, ROUTINE_DISCOVERY_MAX_LIMIT, ROUTINE_DISCOVERY_SCAN_LIMIT, ROUTINE_DURATION_BANDS, ROUTINE_DURATION_BAND_MAX_MINUTES, ROUTINE_SCHEDULE_MODES, ROUTINE_SHARE_MAX_ACTIVE_LINKS, ROUTINE_TRAINING_BLOCKS_MAX, ROUTINE_TRAINING_BLOCK_NAME_MAX, ROUTINE_TRAINING_BLOCK_REVISIONS_MAX, ROUTINE_TRAINING_BLOCK_SOURCE_KINDS, ROUTINE_TRAINING_BLOCK_STATES, ROUTINE_VERSIONS_MAX, ROUTINE_VERSION_KINDS, ROUTINE_VERSION_NAME_MAX, ROUTINE_VISIBILITY_VALUES, type RecentActivityEntry, type RegisterPushSubscriptionRequest, type RelationshipListKind, type RelationshipListQuery, type RelationshipListResponse, type RelationshipMember, type RenaissanceRankDefinition, type RenaissanceRankProgress, type RepTargetPeriod, type RepTargetSignal, type RepType, type ReplaceFeaturedProfileItemsRequest, type ReplaceMeasurableGoalsRequest, type ReplaceTrainingLocationsRequest, type ReportReason, type ReportStatus, type ReportSubjectKind, type ReportSubjectPreview, type ResolvedRoutinePlan, type RestAlertPushPayload, type RestAlertRefusal, type RestoreRoutineVersionResponse, type ReviewReportRequest, type ReviewReportResponse, type Routine, type RoutineClassification, type RoutineDay, type RoutineDayId, type RoutineDiscoveryQuery, type RoutineDiscoveryResponse, type RoutineDurationBand, type RoutineExercise, type RoutineFacets, type RoutineId, type RoutineLineage, type RoutinePlanSource, type RoutineScheduleMode, type RoutineSet, type RoutineShare, type RoutineShareListResponse, type RoutineSharedActivity, type RoutineTemporaryOverride, type RoutineTemporaryOverridePlan, type RoutineTemporaryOverridesResponse, type RoutineTrainingBlock, type RoutineTrainingBlockPlan, type RoutineTrainingBlockRevision, type RoutineTrainingBlockRevisionsResponse, type RoutineTrainingBlockSource, type RoutineTrainingBlockSourceKind, type RoutineTrainingBlockState, type RoutineTrainingBlocksResponse, type RoutineVersion, type RoutineVersionDay, type RoutineVersionExercise, type RoutineVersionKind, type RoutineVersionSetup, type RoutineVersionsResponse, type RoutineVisibility, SCHEDULE_MOVE_MAX_DAYS, SCHEDULE_OVERRIDES_MAX_RANGE_DAYS, SCHEDULE_OVERRIDE_KINDS, SCHEDULE_SKIP_PAST_DAYS, SESSION_CORRECTIONS_MAX, SESSION_CORRECTION_LIMITS, SESSION_CORRECTION_WINDOW_HOURS, SESSION_EXERCISE_NOTE_MAX_LENGTH, SESSION_NOTE_MAX_LENGTH, SESSION_SHARE_DEFAULT_FIELDS, SESSION_SHARE_FIELDS, SESSION_SHARE_MAX_ACTIVE_LINKS, SET_KINDS, SET_KIND_LABELS, SEXES, SHARED_ROUTINE_SOURCES, STARRED_EXERCISES_MAX, STREAK_MAX_GAP_DAYS, type ScheduleOverride, type ScheduleOverrideKind, type ScheduleOverridesQuery, type ScheduleOverridesResponse, type ScheduleRestAlertRequest, type ScheduleRestAlertResponse, type SendTrainingPartnerEncouragementRequest, type SendTrainingPartnerEncouragementResponse, type SessionComparisonExercise, type SessionComparisonQuery, type SessionComparisonResponse, type SessionComparisonRoutineDay, type SessionComparisonSession, type SessionComparisonSet, type SessionCompletedActivity, type SessionCorrection, type SessionCorrectionClosedReason, type SessionCorrectionWindow, type SessionCorrectionsResponse, type SessionExerciseNote, type SessionExerciseSubstitution, type SessionProgressNotification, type SessionRecapExerciseNote, type SessionRecapRecord, type SessionSetCorrection, type SessionShare, type SessionShareField, type SessionShareListResponse, type SessionTemporaryOverride, type SessionTrainingBlock, type SetAccountTimeZoneRequest, type SetActivityEntryAudienceRequest, type SetActivityEntryAudienceResponse, type SetActivityReactionRequest, type SetActivityReactionResponse, type SetKind, type SetLog, type SetLogValues, type Sex, type SharedRoutine, type SharedRoutineOwner, type SharedRoutineSource, type SharedRoutineSummary, type SharedSessionOwner, type SharedSessionRecap, type SkipOccurrenceRequest, type StarredExercise, type StarredExercisesResponse, type StartWorkoutRequest, type StartWorkoutResponse, type StreakAtRiskPushPayload, type StreakMilestoneActivity, type StreakMilestoneEventPayload, type SubstituteSessionExerciseRequest, type SubstituteSessionExerciseResponse, type SupabaseAuthResponse, type SupabaseAuthUser, type SupabaseMigrationResponse, TEMPORARY_OVERRIDE_KINDS, TEMPORARY_OVERRIDE_SOURCE_KINDS, TRAINING_BLOCK_COMPARISON_MAX_DAYS, TRAINING_DISCIPLINE_VALUES, TRAINING_EVENT_TYPES, TRAINING_EXPERIENCE_LEVEL_VALUES, TRAINING_GOAL_VALUES, TRAINING_PARTNERSHIP_STATUSES, TRAINING_PARTNERS_MAX, TRAINING_PARTNER_ENCOURAGEMENTS_PER_24_HOURS_MAX, TRAINING_PARTNER_ENCOURAGEMENT_KINDS, TRAINING_PARTNER_PERMISSION_KEYS, TRAINING_PARTNER_REQUESTS_PER_DAY_MAX, TRAINING_SIGNAL_DECLINES_MAX, TRAINING_SIGNAL_DECLINE_SESSIONS, TRAINING_SIGNAL_MIN_DECLINE, TRAINING_SIGNAL_MIN_RPE_SETS, TRAINING_SIGNAL_MIN_SHORT_SETS, TRAINING_SIGNAL_MIN_TARGET_SETS, TRAINING_SIGNAL_PERIOD_DAYS, TRAINING_SIGNAL_RPE_RISE, TRAINING_SIGNAL_SHORT_LIFTS_MAX, TRAINING_SIGNAL_SHORT_POINTS_RISE, TRAINING_SIGNAL_WORKOUT_DROP, type TemporaryOverrideKind, type TemporaryOverrideSource, type TemporaryOverrideSourceKind, type TrainingBlockComparisonResponse, type TrainingDiscipline, type TrainingEventType, type TrainingExperienceLevel, type TrainingGoal, type TrainingIdentity, type TrainingLocationPreference, type TrainingLocationPreferenceInput, type TrainingPartnerAchievementNotification, type TrainingPartnerAchievementPushPayload, type TrainingPartnerEncouragementKind, type TrainingPartnerEncouragementNotification, type TrainingPartnerPermissions, type TrainingPartnerScheduleDay, type TrainingPartnerScheduleResponse, type TrainingPartnerSessionNotification, type TrainingPartnerSessionPushPayload, type TrainingPartnership, type TrainingPartnershipStatus, type TrainingPartnershipsResponse, type TrainingReminderPreference, type TrainingReminderPushPayload, type TrainingSignalPeriod, type TrainingSignalsResponse, USERNAME_MAX_LENGTH, USERNAME_MIN_LENGTH, USERNAME_PATTERN_SOURCE, type UpdateActivitySharingRequest, type UpdateNotificationPreferencesRequest, type UpdateProfileDiscoveryRequest, type UpdateProfilePrivacyRequest, type UpdateProfileRequest, type UpdateRoutineRequest, type UpdateRoutineVisibilityRequest, type UpdateSessionNotesRequest, type UpdateSessionNotesResponse, type UpdateTrainingPartnerPermissionsRequest, type UpsertRoutineTrainingBlockRequest, type UpsertSetLogRequest, type UpsertSetLogResponse, type UserId, type UserProfile, type UserSearchResponse, type VolumeTrendPoint, type VolumeTrendQuery, type VolumeTrendResponse, type VolumeTrendSeries, WEIGHT_UNITS, WORKOUT_SESSION_STATUSES, type WeightUnit, type WorkoutAnalyticsStatus, type WorkoutPeriod, type WorkoutProgressQuery, type WorkoutProgressResponse, type WorkoutSession, type WorkoutSessionId, type WorkoutSessionListResponse, type WorkoutSessionRecap, type WorkoutSessionSnapshotV1, type WorkoutSessionStatus, type WorkoutSessionSummary, type WorkoutSignal, type WorkoutStatsQuery, type WorkoutStatsResponse, accountExportFileName, applyDeload, countsAsWork, countsForProgression, deloadLengthDays, isSetKind, isWithinQuietHours, matchesDeletionConfirmation, requiredToFinish, resolveActiveTrainingBlock, resolveRoutinePlan, routineDayLabel, sessionCorrectionWindow, setKindOf, setLogValuesDiffer, trainingBlockCovers };
|
|
3582
|
+
export { ACCOUNT_EXPORT_FORMAT, ACCOUNT_EXPORT_VERSION, ACHIEVEMENT_CATEGORIES, ACHIEVEMENT_DEFINITIONS, ACTIVITY_CAPS, ACTIVITY_COMMENTS_PAGE_SIZE, ACTIVITY_COMMENTS_PER_DAY_MAX, ACTIVITY_COMMENT_MAX_LENGTH, ACTIVITY_DEFAULT_AUDIENCE, ACTIVITY_ENTRY_ID_MAX_LENGTH, ACTIVITY_FEED_FOLLOWED_MAX, ACTIVITY_PAGE_DEFAULT_LIMIT, ACTIVITY_PAGE_MAX_LIMIT, ACTIVITY_PREVIEW_AUDIENCES, ACTIVITY_REACTIONS, ACTIVITY_TYPES, ACTIVITY_TYPE_SECTIONS, type AccountExportGoal, type AccountExportMember, type AccountExportPersonalRecord, type AccountExportRoutine, type AccountExportScheduleOverride, type AccountExportTrainingEvent, type AccountExportTrainingLocation, type AccountExportV1, type AchievementActivity, type AchievementCategory, type AchievementCategoryProgress, type AchievementDefinition, type AchievementNotification, type AchievementUnlockedEventPayload, type AchievementsResponse, type ActivityAudience, type ActivityCap, type ActivityComment, type ActivityCommentNotification, type ActivityCommentSummary, type ActivityCommentsQuery, type ActivityCommentsResponse, type ActivityEntry, type ActivityEntrySharing, type ActivityFeedResponse, type ActivityLink, type ActivityPage, type ActivityPageQuery, type ActivityPreviewAudience, type ActivityPreviewQuery, type ActivityReaction, type ActivityReactionSummary, type ActivitySection, type ActivitySharingSettings, type ActivityType, type AppNotification, BAR_CHOICES_KG, BAR_WARM_UP_STEPS, BLOCKED_MEMBERS_MAX, type BlockComparisonLift, type BlockComparisonLiftBest, type BlockComparisonPeriod, type BlockComparisonPeriodKind, type BlockedMember, type BlockedMembersResponse, type Brand, CLONE_ROUTINE_REFUSALS, COMEBACK_MIN_INACTIVE_DAYS, COMEBACK_RECOGNITION_LIMIT, COMEBACK_REQUIRED_ACTIVE_DAYS, COMEBACK_SESSION_LOOKBACK, COMEBACK_WINDOW_DAYS, type CalendarDate, type CloneRoutineRefusal, type CloneRoutineRequest, type ComebackActivity, type ComebackRecognition, type ComebackRecognitionSummary, type CorrectSessionRequest, type CorrectSessionResponse, type CorrectSessionSetRequest, type CreateActivityCommentRequest, type CreateActivityCommentResponse, type CreateDeloadRequest, type CreateReportRequest, type CreateReportResponse, type CreateRoutineDayInput, type CreateRoutineExerciseInput, type CreateRoutineRequest, type CreateRoutineVersionRequest, type CreateSessionShareRequest, DELOAD_DEFAULT_DAYS, DELOAD_DEFAULT_LOAD_REDUCTION, DELOAD_DEFAULT_SET_MODE, DELOAD_LOAD_REDUCTIONS, DELOAD_MAX_DAYS, DELOAD_NOT_LIGHTER, DELOAD_SET_MODES, DELOAD_SUGGESTION_COOLDOWN_DAYS, DELOAD_SUGGESTION_EARLIER_DAYS, DELOAD_SUGGESTION_MIN_MARKED_TODAY, DELOAD_SUGGESTION_ROUTINE_DAYS, DELOAD_SUGGESTION_SIGNALS, type DeclineSignal, type DecliningLift, type DecliningLiftSession, type DeleteAccountRequest, type DeleteAccountResponse, type DeleteActivityCommentResponse, type DeletePushSubscriptionRequest, type DeloadLoadReduction, type DeloadOptions, type DeloadSetMode, type DeloadSuggestion, type DeloadSuggestionEvidence, type DeloadSuggestionResponse, type DeloadSuggestionSignal, type DeloadSuggestionUnavailableReason, type DiscoverableRoutine, EXERCISE_EQUIPMENT, EXERCISE_MECHANICS, type EarnedAchievement, type EarnedPersonalRecord, type EffortPeriod, type EffortSignal, type Exercise, type ExerciseEquipment, type ExerciseId, type ExerciseMechanic, type ExercisePerformanceHistoryQuery, type ExercisePerformanceHistoryResponse, type ExercisePerformancePrescription, type ExercisePerformancePrescriptionSet, type ExercisePerformanceSession, type ExercisePerformanceSet, type ExercisePerformanceSummary, type ExercisePlateau, type ExerciseStrengthSummary, type ExerciseStrengthTrendPoint, type ExerciseStrengthTrendQuery, type ExerciseStrengthTrendResponse, FEATURED_PROFILE_ITEMS_MAX, FEATURED_PROFILE_ITEM_KINDS, FEATURED_PROFILE_REFERENCE_MAX_LENGTH, FOLLOW_SUGGESTIONS_DEFAULT_LIMIT, FOLLOW_SUGGESTIONS_MAX_LIMIT, FOLLOW_SUGGESTION_REASONS, type FeaturedProfileAchievementItem, type FeaturedProfileItem, type FeaturedProfileItemKind, type FeaturedProfileRankItem, type FeaturedProfileRecordItem, type FeaturedProfileRoutineItem, type FeaturedProfileSelection, type FeaturedProfileSelectionInput, type FeaturedProfileSelectionsResponse, type FinishStatus, type FinishWorkoutRequest, type FinishWorkoutResponse, type FollowSuggestion, type FollowSuggestionReason, type FollowSuggestionsResponse, type IsoDateString, LIMITED_SHORTFALL_KG, type ListSessionsParams, MAX_SETS_PER_EXERCISE, MEASURABLE_GOALS_MAX, MEASURABLE_GOAL_DIRECTIONS, MEASURABLE_GOAL_TYPES, MINUTES_IN_DAY, MODERATION_ACTION_KINDS, MODERATION_HISTORY_PAGE_SIZE, MODERATION_NOTE_MAX_LENGTH, MODERATION_QUEUE_PAGE_SIZE, MOVEMENT_PATTERNS, MUSCLE_GROUPS, type MarkNotificationsReadRequest, type MarkNotificationsReadResponse, type MeasurableGoal, type MeasurableGoalDirection, type MeasurableGoalExercise, type MeasurableGoalInput, type MeasurableGoalType, type MemberActivityResponse, type MemberModerationState, type MemberRoutinesResponse, type ModerationActionKind, type ModerationActionRecord, type ModerationHistoryQuery, type ModerationHistoryResponse, type ModerationQueueQuery, type ModerationQueueResponse, type ModerationReport, type ModeratorState, type MoveOccurrenceRequest, type MovementPattern, type MuscleGroup, type MuscleGroupHeatmapQuery, type MuscleGroupHeatmapResponse, type MuscleGroupHeatmapValue, type MuscleGroupHeatmapWeek, type MuscleVolumeTrendSeries, NOTIFICATIONS_LIST_LIMIT, NOTIFICATIONS_LOOKBACK_DAYS, NOTIFICATIONS_RETENTION_DAYS, NOTIFICATION_CATEGORIES, NOTIFICATION_KINDS, type NewFollowerNotification, type NotificationCategory, type NotificationKind, type NotificationPreferences, type NotificationPreferencesResponse, type NotificationsResponse, OTHER_WARM_UP_STEPS, type OwnActivityEntry, type OwnActivityResponse, PLATEAU_MIN_DAYS_SINCE_BEST, PLATEAU_MIN_SESSIONS, PLATEAU_MIN_SESSIONS_MAX, PLATEAU_MIN_SESSIONS_MIN, PLATEAU_RECENT_DAYS, PLATEAU_WINDOW_DAYS, PLATE_SETS, PREFERRED_TRAINING_STYLE_VALUES, PROFILE_BIO_MAX_LENGTH, PROFILE_FAVORITE_EXERCISES_MAX, PROFILE_LOCATION_MAX_LENGTH, PROFILE_TRAINING_DISCIPLINES_MAX, PROFILE_TRAINING_GOALS_MAX, PROFILE_VISIBILITY_VALUES, PROGRESSION_SCHEMES, PROGRESS_TIMELINE_EVENT_TYPES, PUSH_PAYLOAD_KINDS, PUSH_SUBSCRIPTIONS_MAX, type PaginatedResponse, type PersonalGoalProgress, type PersonalGoalsResponse, type PersonalRecordActivity, type PersonalRecordEntry, type PersonalRecordKind, type PlannedReminder, type PlateLoadingItem, type PlateLoadingResult, type PlatePairInventory, type PlateSetChoice, type PlateauPreferences, type PlateauSet, type PlateausResponse, type PreferredTrainingStyle, type PreviousPerformanceResponse, type PreviousSessionRecap, type PreviousSetPerformance, type ProfileDiscoverySettings, type ProfileFavoriteExercise, type ProfilePrivacySettings, type ProfileViewerAccess, type ProfileVisibility, type ProgressTimelineEventType, type ProgressTimelineItem, type ProgressTimelinePersonalRecordItem, type ProgressTimelineProgressionItem, type ProgressTimelineQuery, type ProgressTimelineRecordPerformance, type ProgressTimelineRecordReason, type ProgressTimelineResponse, type ProgressTimelineSessionContext, type ProgressionActivity, type ProgressionChange, type ProgressionRule, type ProgressionScheme, type ProgressionSetChange, type PublicBodyMetrics, type PublicProfileAchievements, type PublicTrainingSummary, type PublicUserProfile, type PushPayload, type PushPayloadKind, type PushSubscriptionKeys, type PushSubscriptionSummary, type PushSubscriptionsResponse, type QuietHours, RELATIONSHIP_LIST_DEFAULT_LIMIT, RELATIONSHIP_LIST_KINDS, RELATIONSHIP_LIST_MAX_LIMIT, RENAISSANCE_RANK_DEFINITIONS, REPORTS_PER_DAY_MAX, REPORT_DETAILS_MAX_LENGTH, REPORT_REASONS, REPORT_STATUSES, REPORT_SUBJECT_KINDS, REP_TYPES, RESERVED_USERNAMES, REST_ALERT_MAX_LEAD_SECONDS, REST_ALERT_MIN_LEAD_SECONDS, REST_ALERT_REFUSALS, ROUTINE_DAYS_MAX, ROUTINE_DAY_NAME_MAX, ROUTINE_DISCOVERY_DEFAULT_LIMIT, ROUTINE_DISCOVERY_MAX_LIMIT, ROUTINE_DISCOVERY_SCAN_LIMIT, ROUTINE_DURATION_BANDS, ROUTINE_DURATION_BAND_MAX_MINUTES, ROUTINE_SCHEDULE_MODES, ROUTINE_SHARE_MAX_ACTIVE_LINKS, ROUTINE_TRAINING_BLOCKS_MAX, ROUTINE_TRAINING_BLOCK_NAME_MAX, ROUTINE_TRAINING_BLOCK_REVISIONS_MAX, ROUTINE_TRAINING_BLOCK_SOURCE_KINDS, ROUTINE_TRAINING_BLOCK_STATES, ROUTINE_VERSIONS_MAX, ROUTINE_VERSION_KINDS, ROUTINE_VERSION_NAME_MAX, ROUTINE_VISIBILITY_VALUES, type RecentActivityEntry, type RegisterPushSubscriptionRequest, type RelationshipListKind, type RelationshipListQuery, type RelationshipListResponse, type RelationshipMember, type RenaissanceRankDefinition, type RenaissanceRankProgress, type RepTargetPeriod, type RepTargetSignal, type RepType, type ReplaceFeaturedProfileItemsRequest, type ReplaceMeasurableGoalsRequest, type ReplaceTrainingLocationsRequest, type ReportReason, type ReportStatus, type ReportSubjectKind, type ReportSubjectPreview, type ResolvedRoutinePlan, type RestAlertPushPayload, type RestAlertRefusal, type RestoreRoutineVersionResponse, type ReviewReportRequest, type ReviewReportResponse, type Routine, type RoutineClassification, type RoutineDay, type RoutineDayId, type RoutineDiscoveryQuery, type RoutineDiscoveryResponse, type RoutineDurationBand, type RoutineExercise, type RoutineFacets, type RoutineId, type RoutineLineage, type RoutinePlanSource, type RoutineScheduleMode, type RoutineSet, type RoutineShare, type RoutineShareListResponse, type RoutineSharedActivity, type RoutineTemporaryOverride, type RoutineTemporaryOverridePlan, type RoutineTemporaryOverridesResponse, type RoutineTrainingBlock, type RoutineTrainingBlockPlan, type RoutineTrainingBlockRevision, type RoutineTrainingBlockRevisionsResponse, type RoutineTrainingBlockSource, type RoutineTrainingBlockSourceKind, type RoutineTrainingBlockState, type RoutineTrainingBlocksResponse, type RoutineVersion, type RoutineVersionDay, type RoutineVersionExercise, type RoutineVersionKind, type RoutineVersionSetup, type RoutineVersionsResponse, type RoutineVisibility, SCHEDULE_MOVE_MAX_DAYS, SCHEDULE_OVERRIDES_MAX_RANGE_DAYS, SCHEDULE_OVERRIDE_KINDS, SCHEDULE_SKIP_PAST_DAYS, SESSION_CORRECTIONS_MAX, SESSION_CORRECTION_LIMITS, SESSION_CORRECTION_WINDOW_HOURS, SESSION_EXERCISE_NOTE_MAX_LENGTH, SESSION_NOTE_MAX_LENGTH, SESSION_SHARE_DEFAULT_FIELDS, SESSION_SHARE_FIELDS, SESSION_SHARE_MAX_ACTIVE_LINKS, SET_KINDS, SET_KIND_LABELS, SEXES, SHARED_ROUTINE_SOURCES, STARRED_EXERCISES_MAX, STREAK_MAX_GAP_DAYS, type ScheduleOverride, type ScheduleOverrideKind, type ScheduleOverridesQuery, type ScheduleOverridesResponse, type ScheduleRestAlertRequest, type ScheduleRestAlertResponse, type SendTrainingPartnerEncouragementRequest, type SendTrainingPartnerEncouragementResponse, type SessionComparisonExercise, type SessionComparisonQuery, type SessionComparisonResponse, type SessionComparisonRoutineDay, type SessionComparisonSession, type SessionComparisonSet, type SessionCompletedActivity, type SessionCorrection, type SessionCorrectionClosedReason, type SessionCorrectionWindow, type SessionCorrectionsResponse, type SessionExerciseNote, type SessionExerciseSubstitution, type SessionProgressNotification, type SessionRecapExerciseNote, type SessionRecapRecord, type SessionSetCorrection, type SessionShare, type SessionShareField, type SessionShareListResponse, type SessionTemporaryOverride, type SessionTrainingBlock, type SetAccountTimeZoneRequest, type SetActivityEntryAudienceRequest, type SetActivityEntryAudienceResponse, type SetActivityReactionRequest, type SetActivityReactionResponse, type SetKind, type SetLog, type SetLogValues, type Sex, type SharedRoutine, type SharedRoutineOwner, type SharedRoutineSource, type SharedRoutineSummary, type SharedSessionOwner, type SharedSessionRecap, type SkipOccurrenceRequest, type StarredExercise, type StarredExercisesResponse, type StartWorkoutRequest, type StartWorkoutResponse, type StreakAtRiskPushPayload, type StreakMilestoneActivity, type StreakMilestoneEventPayload, type SubstituteSessionExerciseRequest, type SubstituteSessionExerciseResponse, type SupabaseAuthResponse, type SupabaseAuthUser, type SupabaseMigrationResponse, TEMPORARY_OVERRIDE_KINDS, TEMPORARY_OVERRIDE_SOURCE_KINDS, TRAINING_BLOCK_COMPARISON_MAX_DAYS, TRAINING_DISCIPLINE_VALUES, TRAINING_EVENT_TYPES, TRAINING_EXPERIENCE_LEVEL_VALUES, TRAINING_GOAL_VALUES, TRAINING_PARTNERSHIP_STATUSES, TRAINING_PARTNERS_MAX, TRAINING_PARTNER_ENCOURAGEMENTS_PER_24_HOURS_MAX, TRAINING_PARTNER_ENCOURAGEMENT_KINDS, TRAINING_PARTNER_PERMISSION_KEYS, TRAINING_PARTNER_REQUESTS_PER_DAY_MAX, TRAINING_SIGNAL_DECLINES_MAX, TRAINING_SIGNAL_DECLINE_SESSIONS, TRAINING_SIGNAL_MIN_DECLINE, TRAINING_SIGNAL_MIN_RPE_SETS, TRAINING_SIGNAL_MIN_SHORT_SETS, TRAINING_SIGNAL_MIN_TARGET_SETS, TRAINING_SIGNAL_PERIOD_DAYS, TRAINING_SIGNAL_RPE_RISE, TRAINING_SIGNAL_SHORT_LIFTS_MAX, TRAINING_SIGNAL_SHORT_POINTS_RISE, TRAINING_SIGNAL_WORKOUT_DROP, type TemporaryOverrideKind, type TemporaryOverrideSource, type TemporaryOverrideSourceKind, type TrainingBlockComparisonResponse, type TrainingDiscipline, type TrainingEventType, type TrainingExperienceLevel, type TrainingGoal, type TrainingIdentity, type TrainingLocationPreference, type TrainingLocationPreferenceInput, type TrainingPartnerAchievementNotification, type TrainingPartnerAchievementPushPayload, type TrainingPartnerEncouragementKind, type TrainingPartnerEncouragementNotification, type TrainingPartnerPermissions, type TrainingPartnerScheduleDay, type TrainingPartnerScheduleResponse, type TrainingPartnerSessionNotification, type TrainingPartnerSessionPushPayload, type TrainingPartnership, type TrainingPartnershipStatus, type TrainingPartnershipsResponse, type TrainingReminderPreference, type TrainingReminderPushPayload, type TrainingSignalPeriod, type TrainingSignalsResponse, USERNAME_MAX_LENGTH, USERNAME_MIN_LENGTH, USERNAME_PATTERN_SOURCE, type UpdateActivitySharingRequest, type UpdateNotificationPreferencesRequest, type UpdateProfileDiscoveryRequest, type UpdateProfilePrivacyRequest, type UpdateProfileRequest, type UpdateRoutineRequest, type UpdateRoutineVisibilityRequest, type UpdateSessionNotesRequest, type UpdateSessionNotesResponse, type UpdateTrainingPartnerPermissionsRequest, type UpsertRoutineTrainingBlockRequest, type UpsertSetLogRequest, type UpsertSetLogResponse, type UserId, type UserProfile, type UserSearchResponse, type VolumeTrendPoint, type VolumeTrendQuery, type VolumeTrendResponse, type VolumeTrendSeries, WEIGHT_UNITS, WORKOUT_SESSION_STATUSES, type WarmUpEquipment, type WarmUpLoad, type WarmUpRamp, type WarmUpSet, type WarmUpStep, type WeightUnit, type WorkoutAnalyticsStatus, type WorkoutPeriod, type WorkoutProgressQuery, type WorkoutProgressResponse, type WorkoutSession, type WorkoutSessionId, type WorkoutSessionListResponse, type WorkoutSessionRecap, type WorkoutSessionSnapshotV1, type WorkoutSessionStatus, type WorkoutSessionSummary, type WorkoutSignal, type WorkoutStatsQuery, type WorkoutStatsResponse, accountExportFileName, applyDeload, buildWarmUpRamp, calculatePlateLoading, countsAsWork, countsForProgression, defaultWarmUpEquipment, deloadLengthDays, followWorkingLoad, isBarLoaded, isSetKind, isWithinQuietHours, leadWorkingWeight, matchesDeletionConfirmation, requiredToFinish, resolveActiveTrainingBlock, resolveRoutinePlan, routineDayLabel, sessionCorrectionWindow, setKindOf, setLogValuesDiffer, trainingBlockCovers, warmUpLoad };
|
package/dist/index.d.ts
CHANGED
|
@@ -390,6 +390,12 @@ interface RoutineSet {
|
|
|
390
390
|
rir?: number | null;
|
|
391
391
|
/** LIVE-12; absent means a working set. */
|
|
392
392
|
kind?: SetKind;
|
|
393
|
+
/**
|
|
394
|
+
* LIVE-20: a generated warm-up's share of the first working set (0 is the
|
|
395
|
+
* empty bar). With the exercise following its load, the warm-up's weight
|
|
396
|
+
* is recalculated from it.
|
|
397
|
+
*/
|
|
398
|
+
warmUpShare?: number | null;
|
|
393
399
|
}
|
|
394
400
|
interface RoutineExercise {
|
|
395
401
|
id: string;
|
|
@@ -398,6 +404,8 @@ interface RoutineExercise {
|
|
|
398
404
|
note?: string | null;
|
|
399
405
|
progressionScheme: ProgressionScheme;
|
|
400
406
|
minWeightIncrement: number;
|
|
407
|
+
/** LIVE-20: warm-ups with a share follow the first working set. */
|
|
408
|
+
warmUpsFollowLoad?: boolean;
|
|
401
409
|
exercise: {
|
|
402
410
|
id: string;
|
|
403
411
|
name: string;
|
|
@@ -413,6 +421,8 @@ interface CreateRoutineExerciseInput {
|
|
|
413
421
|
note?: string;
|
|
414
422
|
progressionScheme: ProgressionScheme;
|
|
415
423
|
minWeightIncrement: number;
|
|
424
|
+
/** LIVE-20: warm-ups with a share follow the first working set. */
|
|
425
|
+
warmUpsFollowLoad?: boolean;
|
|
416
426
|
sets: RoutineSet[];
|
|
417
427
|
}
|
|
418
428
|
interface RoutineDay {
|
|
@@ -541,6 +551,8 @@ interface RoutineVersionExercise {
|
|
|
541
551
|
note: string | null;
|
|
542
552
|
progressionScheme: ProgressionScheme;
|
|
543
553
|
minWeightIncrement: number;
|
|
554
|
+
/** LIVE-20; absent in setups captured before it. */
|
|
555
|
+
warmUpsFollowLoad?: boolean;
|
|
544
556
|
sets: RoutineSet[];
|
|
545
557
|
}
|
|
546
558
|
interface RoutineVersionDay {
|
|
@@ -2099,6 +2111,102 @@ interface PersonalGoalsResponse {
|
|
|
2099
2111
|
goals: PersonalGoalProgress[];
|
|
2100
2112
|
}
|
|
2101
2113
|
|
|
2114
|
+
interface PlateLoadingItem {
|
|
2115
|
+
weightKg: number;
|
|
2116
|
+
platesPerSide: number;
|
|
2117
|
+
}
|
|
2118
|
+
interface PlateLoadingResult {
|
|
2119
|
+
targetWeightKg: number;
|
|
2120
|
+
loadedWeightKg: number;
|
|
2121
|
+
differenceKg: number;
|
|
2122
|
+
status: 'exact' | 'short' | 'over';
|
|
2123
|
+
platesPerSide: PlateLoadingItem[];
|
|
2124
|
+
}
|
|
2125
|
+
declare const calculatePlateLoading: (targetWeightKg: number, barWeightKg: number, availablePlatePairs: PlatePairInventory[]) => PlateLoadingResult;
|
|
2126
|
+
|
|
2127
|
+
/** An exercise holds at most this many sets, warm-ups included. */
|
|
2128
|
+
declare const MAX_SETS_PER_EXERCISE = 10;
|
|
2129
|
+
interface WarmUpStep {
|
|
2130
|
+
/** Share of the working load; 0 is the empty bar. */
|
|
2131
|
+
share: number;
|
|
2132
|
+
reps: number;
|
|
2133
|
+
}
|
|
2134
|
+
/** Plate-loaded work: the empty bar, then 40, 60 and 80 %. */
|
|
2135
|
+
declare const BAR_WARM_UP_STEPS: readonly WarmUpStep[];
|
|
2136
|
+
/** Dumbbells, machines and cables: 50 and 75 %. */
|
|
2137
|
+
declare const OTHER_WARM_UP_STEPS: readonly WarmUpStep[];
|
|
2138
|
+
/** Whether an exercise is loaded with a bar and plates. */
|
|
2139
|
+
declare const isBarLoaded: (equipmentRequired: readonly string[] | undefined) => boolean;
|
|
2140
|
+
/** Bars offered when no gym is saved, in the account's unit. */
|
|
2141
|
+
declare const BAR_CHOICES_KG: Record<WeightUnit, number[]>;
|
|
2142
|
+
type PlateSetChoice = 'STANDARD' | 'LIGHT';
|
|
2143
|
+
/** The two plate sets offered when none are saved, in the account's unit. */
|
|
2144
|
+
declare const PLATE_SETS: Record<WeightUnit, Record<PlateSetChoice, PlatePairInventory[]>>;
|
|
2145
|
+
/**
|
|
2146
|
+
* A set is "the closest you can load" when the plates fall this far short of
|
|
2147
|
+
* its target: the step a standard set of plates (1.25 kg pairs) always makes.
|
|
2148
|
+
*/
|
|
2149
|
+
declare const LIMITED_SHORTFALL_KG = 2.5;
|
|
2150
|
+
/** What a warm-up load is made from. */
|
|
2151
|
+
interface WarmUpEquipment {
|
|
2152
|
+
barLoaded: boolean;
|
|
2153
|
+
barWeightKg: number;
|
|
2154
|
+
platePairs: readonly PlatePairInventory[];
|
|
2155
|
+
/** The exercise's own weight step, for anything not bar-loaded. */
|
|
2156
|
+
incrementKg: number;
|
|
2157
|
+
}
|
|
2158
|
+
/**
|
|
2159
|
+
* The equipment assumed when a member has no gym saved: a standard bar and
|
|
2160
|
+
* plate set in their unit. The builder asks instead; the server, which
|
|
2161
|
+
* cannot ask, uses this.
|
|
2162
|
+
*/
|
|
2163
|
+
declare const defaultWarmUpEquipment: (unit: WeightUnit) => {
|
|
2164
|
+
barWeightKg: number;
|
|
2165
|
+
platePairs: PlatePairInventory[];
|
|
2166
|
+
};
|
|
2167
|
+
interface WarmUpLoad {
|
|
2168
|
+
weightKg: number;
|
|
2169
|
+
/** Bar-loaded only: what goes on each side. */
|
|
2170
|
+
platesPerSide?: PlateLoadingItem[];
|
|
2171
|
+
/** The plates fell short of the target by a standard small step or more. */
|
|
2172
|
+
limited: boolean;
|
|
2173
|
+
}
|
|
2174
|
+
/** One step's load: rounded down to what the bar and plates, or the step, make. */
|
|
2175
|
+
declare function warmUpLoad(share: number, workingWeightKg: number, equipment: WarmUpEquipment): WarmUpLoad;
|
|
2176
|
+
interface WarmUpSet extends WarmUpLoad {
|
|
2177
|
+
reps: number;
|
|
2178
|
+
/** The step's share of the working load, kept so the set can follow it. */
|
|
2179
|
+
share: number;
|
|
2180
|
+
}
|
|
2181
|
+
interface WarmUpRamp {
|
|
2182
|
+
sets: WarmUpSet[];
|
|
2183
|
+
/** Steps left out because the exercise had no room for them. */
|
|
2184
|
+
leftOut: number;
|
|
2185
|
+
}
|
|
2186
|
+
/**
|
|
2187
|
+
* The warm-up sets for a working load: each step rounded down to a load that
|
|
2188
|
+
* can be made, a step no heavier than the one before or reaching the working
|
|
2189
|
+
* load dropped, and the heaviest kept when there is no room for all of them.
|
|
2190
|
+
*/
|
|
2191
|
+
declare function buildWarmUpRamp(input: WarmUpEquipment & {
|
|
2192
|
+
workingWeightKg: number;
|
|
2193
|
+
room: number;
|
|
2194
|
+
}): WarmUpRamp;
|
|
2195
|
+
type FollowingSet = {
|
|
2196
|
+
weight?: number | null;
|
|
2197
|
+
kind?: SetKind | null;
|
|
2198
|
+
warmUpShare?: number | null;
|
|
2199
|
+
};
|
|
2200
|
+
/** The load a following warm-up is a share of: the first working or optional set. */
|
|
2201
|
+
declare function leadWorkingWeight(sets: readonly FollowingSet[]): number | null;
|
|
2202
|
+
/**
|
|
2203
|
+
* LIVE-20: the sets with every warm-up that carries a share recalculated from
|
|
2204
|
+
* the exercise's first working set. Nothing else changes, a warm-up without a
|
|
2205
|
+
* share keeps its load, and without a working load the sets come back as they
|
|
2206
|
+
* were.
|
|
2207
|
+
*/
|
|
2208
|
+
declare function followWorkingLoad<T extends FollowingSet>(sets: readonly T[], equipment: WarmUpEquipment): T[];
|
|
2209
|
+
|
|
2102
2210
|
/**
|
|
2103
2211
|
* INTEL-02: a lighter period proposed from the signals `PROG-10` states. The
|
|
2104
2212
|
* suggestion acts on evidence only -- it names what was marked and when, never
|
|
@@ -3471,4 +3579,4 @@ interface AccountExportV1 {
|
|
|
3471
3579
|
/** The file name a download of the export is saved under. */
|
|
3472
3580
|
declare function accountExportFileName(username: string, exportedAt: string): string;
|
|
3473
3581
|
|
|
3474
|
-
export { ACCOUNT_EXPORT_FORMAT, ACCOUNT_EXPORT_VERSION, ACHIEVEMENT_CATEGORIES, ACHIEVEMENT_DEFINITIONS, ACTIVITY_CAPS, ACTIVITY_COMMENTS_PAGE_SIZE, ACTIVITY_COMMENTS_PER_DAY_MAX, ACTIVITY_COMMENT_MAX_LENGTH, ACTIVITY_DEFAULT_AUDIENCE, ACTIVITY_ENTRY_ID_MAX_LENGTH, ACTIVITY_FEED_FOLLOWED_MAX, ACTIVITY_PAGE_DEFAULT_LIMIT, ACTIVITY_PAGE_MAX_LIMIT, ACTIVITY_PREVIEW_AUDIENCES, ACTIVITY_REACTIONS, ACTIVITY_TYPES, ACTIVITY_TYPE_SECTIONS, type AccountExportGoal, type AccountExportMember, type AccountExportPersonalRecord, type AccountExportRoutine, type AccountExportScheduleOverride, type AccountExportTrainingEvent, type AccountExportTrainingLocation, type AccountExportV1, type AchievementActivity, type AchievementCategory, type AchievementCategoryProgress, type AchievementDefinition, type AchievementNotification, type AchievementUnlockedEventPayload, type AchievementsResponse, type ActivityAudience, type ActivityCap, type ActivityComment, type ActivityCommentNotification, type ActivityCommentSummary, type ActivityCommentsQuery, type ActivityCommentsResponse, type ActivityEntry, type ActivityEntrySharing, type ActivityFeedResponse, type ActivityLink, type ActivityPage, type ActivityPageQuery, type ActivityPreviewAudience, type ActivityPreviewQuery, type ActivityReaction, type ActivityReactionSummary, type ActivitySection, type ActivitySharingSettings, type ActivityType, type AppNotification, BLOCKED_MEMBERS_MAX, type BlockComparisonLift, type BlockComparisonLiftBest, type BlockComparisonPeriod, type BlockComparisonPeriodKind, type BlockedMember, type BlockedMembersResponse, type Brand, CLONE_ROUTINE_REFUSALS, COMEBACK_MIN_INACTIVE_DAYS, COMEBACK_RECOGNITION_LIMIT, COMEBACK_REQUIRED_ACTIVE_DAYS, COMEBACK_SESSION_LOOKBACK, COMEBACK_WINDOW_DAYS, type CalendarDate, type CloneRoutineRefusal, type CloneRoutineRequest, type ComebackActivity, type ComebackRecognition, type ComebackRecognitionSummary, type CorrectSessionRequest, type CorrectSessionResponse, type CorrectSessionSetRequest, type CreateActivityCommentRequest, type CreateActivityCommentResponse, type CreateDeloadRequest, type CreateReportRequest, type CreateReportResponse, type CreateRoutineDayInput, type CreateRoutineExerciseInput, type CreateRoutineRequest, type CreateRoutineVersionRequest, type CreateSessionShareRequest, DELOAD_DEFAULT_DAYS, DELOAD_DEFAULT_LOAD_REDUCTION, DELOAD_DEFAULT_SET_MODE, DELOAD_LOAD_REDUCTIONS, DELOAD_MAX_DAYS, DELOAD_NOT_LIGHTER, DELOAD_SET_MODES, DELOAD_SUGGESTION_COOLDOWN_DAYS, DELOAD_SUGGESTION_EARLIER_DAYS, DELOAD_SUGGESTION_MIN_MARKED_TODAY, DELOAD_SUGGESTION_ROUTINE_DAYS, DELOAD_SUGGESTION_SIGNALS, type DeclineSignal, type DecliningLift, type DecliningLiftSession, type DeleteAccountRequest, type DeleteAccountResponse, type DeleteActivityCommentResponse, type DeletePushSubscriptionRequest, type DeloadLoadReduction, type DeloadOptions, type DeloadSetMode, type DeloadSuggestion, type DeloadSuggestionEvidence, type DeloadSuggestionResponse, type DeloadSuggestionSignal, type DeloadSuggestionUnavailableReason, type DiscoverableRoutine, EXERCISE_EQUIPMENT, EXERCISE_MECHANICS, type EarnedAchievement, type EarnedPersonalRecord, type EffortPeriod, type EffortSignal, type Exercise, type ExerciseEquipment, type ExerciseId, type ExerciseMechanic, type ExercisePerformanceHistoryQuery, type ExercisePerformanceHistoryResponse, type ExercisePerformancePrescription, type ExercisePerformancePrescriptionSet, type ExercisePerformanceSession, type ExercisePerformanceSet, type ExercisePerformanceSummary, type ExercisePlateau, type ExerciseStrengthSummary, type ExerciseStrengthTrendPoint, type ExerciseStrengthTrendQuery, type ExerciseStrengthTrendResponse, FEATURED_PROFILE_ITEMS_MAX, FEATURED_PROFILE_ITEM_KINDS, FEATURED_PROFILE_REFERENCE_MAX_LENGTH, FOLLOW_SUGGESTIONS_DEFAULT_LIMIT, FOLLOW_SUGGESTIONS_MAX_LIMIT, FOLLOW_SUGGESTION_REASONS, type FeaturedProfileAchievementItem, type FeaturedProfileItem, type FeaturedProfileItemKind, type FeaturedProfileRankItem, type FeaturedProfileRecordItem, type FeaturedProfileRoutineItem, type FeaturedProfileSelection, type FeaturedProfileSelectionInput, type FeaturedProfileSelectionsResponse, type FinishStatus, type FinishWorkoutRequest, type FinishWorkoutResponse, type FollowSuggestion, type FollowSuggestionReason, type FollowSuggestionsResponse, type IsoDateString, type ListSessionsParams, MEASURABLE_GOALS_MAX, MEASURABLE_GOAL_DIRECTIONS, MEASURABLE_GOAL_TYPES, MINUTES_IN_DAY, MODERATION_ACTION_KINDS, MODERATION_HISTORY_PAGE_SIZE, MODERATION_NOTE_MAX_LENGTH, MODERATION_QUEUE_PAGE_SIZE, MOVEMENT_PATTERNS, MUSCLE_GROUPS, type MarkNotificationsReadRequest, type MarkNotificationsReadResponse, type MeasurableGoal, type MeasurableGoalDirection, type MeasurableGoalExercise, type MeasurableGoalInput, type MeasurableGoalType, type MemberActivityResponse, type MemberModerationState, type MemberRoutinesResponse, type ModerationActionKind, type ModerationActionRecord, type ModerationHistoryQuery, type ModerationHistoryResponse, type ModerationQueueQuery, type ModerationQueueResponse, type ModerationReport, type ModeratorState, type MoveOccurrenceRequest, type MovementPattern, type MuscleGroup, type MuscleGroupHeatmapQuery, type MuscleGroupHeatmapResponse, type MuscleGroupHeatmapValue, type MuscleGroupHeatmapWeek, type MuscleVolumeTrendSeries, NOTIFICATIONS_LIST_LIMIT, NOTIFICATIONS_LOOKBACK_DAYS, NOTIFICATIONS_RETENTION_DAYS, NOTIFICATION_CATEGORIES, NOTIFICATION_KINDS, type NewFollowerNotification, type NotificationCategory, type NotificationKind, type NotificationPreferences, type NotificationPreferencesResponse, type NotificationsResponse, type OwnActivityEntry, type OwnActivityResponse, PLATEAU_MIN_DAYS_SINCE_BEST, PLATEAU_MIN_SESSIONS, PLATEAU_MIN_SESSIONS_MAX, PLATEAU_MIN_SESSIONS_MIN, PLATEAU_RECENT_DAYS, PLATEAU_WINDOW_DAYS, PREFERRED_TRAINING_STYLE_VALUES, PROFILE_BIO_MAX_LENGTH, PROFILE_FAVORITE_EXERCISES_MAX, PROFILE_LOCATION_MAX_LENGTH, PROFILE_TRAINING_DISCIPLINES_MAX, PROFILE_TRAINING_GOALS_MAX, PROFILE_VISIBILITY_VALUES, PROGRESSION_SCHEMES, PROGRESS_TIMELINE_EVENT_TYPES, PUSH_PAYLOAD_KINDS, PUSH_SUBSCRIPTIONS_MAX, type PaginatedResponse, type PersonalGoalProgress, type PersonalGoalsResponse, type PersonalRecordActivity, type PersonalRecordEntry, type PersonalRecordKind, type PlannedReminder, type PlatePairInventory, type PlateauPreferences, type PlateauSet, type PlateausResponse, type PreferredTrainingStyle, type PreviousPerformanceResponse, type PreviousSessionRecap, type PreviousSetPerformance, type ProfileDiscoverySettings, type ProfileFavoriteExercise, type ProfilePrivacySettings, type ProfileViewerAccess, type ProfileVisibility, type ProgressTimelineEventType, type ProgressTimelineItem, type ProgressTimelinePersonalRecordItem, type ProgressTimelineProgressionItem, type ProgressTimelineQuery, type ProgressTimelineRecordPerformance, type ProgressTimelineRecordReason, type ProgressTimelineResponse, type ProgressTimelineSessionContext, type ProgressionActivity, type ProgressionChange, type ProgressionRule, type ProgressionScheme, type ProgressionSetChange, type PublicBodyMetrics, type PublicProfileAchievements, type PublicTrainingSummary, type PublicUserProfile, type PushPayload, type PushPayloadKind, type PushSubscriptionKeys, type PushSubscriptionSummary, type PushSubscriptionsResponse, type QuietHours, RELATIONSHIP_LIST_DEFAULT_LIMIT, RELATIONSHIP_LIST_KINDS, RELATIONSHIP_LIST_MAX_LIMIT, RENAISSANCE_RANK_DEFINITIONS, REPORTS_PER_DAY_MAX, REPORT_DETAILS_MAX_LENGTH, REPORT_REASONS, REPORT_STATUSES, REPORT_SUBJECT_KINDS, REP_TYPES, RESERVED_USERNAMES, REST_ALERT_MAX_LEAD_SECONDS, REST_ALERT_MIN_LEAD_SECONDS, REST_ALERT_REFUSALS, ROUTINE_DAYS_MAX, ROUTINE_DAY_NAME_MAX, ROUTINE_DISCOVERY_DEFAULT_LIMIT, ROUTINE_DISCOVERY_MAX_LIMIT, ROUTINE_DISCOVERY_SCAN_LIMIT, ROUTINE_DURATION_BANDS, ROUTINE_DURATION_BAND_MAX_MINUTES, ROUTINE_SCHEDULE_MODES, ROUTINE_SHARE_MAX_ACTIVE_LINKS, ROUTINE_TRAINING_BLOCKS_MAX, ROUTINE_TRAINING_BLOCK_NAME_MAX, ROUTINE_TRAINING_BLOCK_REVISIONS_MAX, ROUTINE_TRAINING_BLOCK_SOURCE_KINDS, ROUTINE_TRAINING_BLOCK_STATES, ROUTINE_VERSIONS_MAX, ROUTINE_VERSION_KINDS, ROUTINE_VERSION_NAME_MAX, ROUTINE_VISIBILITY_VALUES, type RecentActivityEntry, type RegisterPushSubscriptionRequest, type RelationshipListKind, type RelationshipListQuery, type RelationshipListResponse, type RelationshipMember, type RenaissanceRankDefinition, type RenaissanceRankProgress, type RepTargetPeriod, type RepTargetSignal, type RepType, type ReplaceFeaturedProfileItemsRequest, type ReplaceMeasurableGoalsRequest, type ReplaceTrainingLocationsRequest, type ReportReason, type ReportStatus, type ReportSubjectKind, type ReportSubjectPreview, type ResolvedRoutinePlan, type RestAlertPushPayload, type RestAlertRefusal, type RestoreRoutineVersionResponse, type ReviewReportRequest, type ReviewReportResponse, type Routine, type RoutineClassification, type RoutineDay, type RoutineDayId, type RoutineDiscoveryQuery, type RoutineDiscoveryResponse, type RoutineDurationBand, type RoutineExercise, type RoutineFacets, type RoutineId, type RoutineLineage, type RoutinePlanSource, type RoutineScheduleMode, type RoutineSet, type RoutineShare, type RoutineShareListResponse, type RoutineSharedActivity, type RoutineTemporaryOverride, type RoutineTemporaryOverridePlan, type RoutineTemporaryOverridesResponse, type RoutineTrainingBlock, type RoutineTrainingBlockPlan, type RoutineTrainingBlockRevision, type RoutineTrainingBlockRevisionsResponse, type RoutineTrainingBlockSource, type RoutineTrainingBlockSourceKind, type RoutineTrainingBlockState, type RoutineTrainingBlocksResponse, type RoutineVersion, type RoutineVersionDay, type RoutineVersionExercise, type RoutineVersionKind, type RoutineVersionSetup, type RoutineVersionsResponse, type RoutineVisibility, SCHEDULE_MOVE_MAX_DAYS, SCHEDULE_OVERRIDES_MAX_RANGE_DAYS, SCHEDULE_OVERRIDE_KINDS, SCHEDULE_SKIP_PAST_DAYS, SESSION_CORRECTIONS_MAX, SESSION_CORRECTION_LIMITS, SESSION_CORRECTION_WINDOW_HOURS, SESSION_EXERCISE_NOTE_MAX_LENGTH, SESSION_NOTE_MAX_LENGTH, SESSION_SHARE_DEFAULT_FIELDS, SESSION_SHARE_FIELDS, SESSION_SHARE_MAX_ACTIVE_LINKS, SET_KINDS, SET_KIND_LABELS, SEXES, SHARED_ROUTINE_SOURCES, STARRED_EXERCISES_MAX, STREAK_MAX_GAP_DAYS, type ScheduleOverride, type ScheduleOverrideKind, type ScheduleOverridesQuery, type ScheduleOverridesResponse, type ScheduleRestAlertRequest, type ScheduleRestAlertResponse, type SendTrainingPartnerEncouragementRequest, type SendTrainingPartnerEncouragementResponse, type SessionComparisonExercise, type SessionComparisonQuery, type SessionComparisonResponse, type SessionComparisonRoutineDay, type SessionComparisonSession, type SessionComparisonSet, type SessionCompletedActivity, type SessionCorrection, type SessionCorrectionClosedReason, type SessionCorrectionWindow, type SessionCorrectionsResponse, type SessionExerciseNote, type SessionExerciseSubstitution, type SessionProgressNotification, type SessionRecapExerciseNote, type SessionRecapRecord, type SessionSetCorrection, type SessionShare, type SessionShareField, type SessionShareListResponse, type SessionTemporaryOverride, type SessionTrainingBlock, type SetAccountTimeZoneRequest, type SetActivityEntryAudienceRequest, type SetActivityEntryAudienceResponse, type SetActivityReactionRequest, type SetActivityReactionResponse, type SetKind, type SetLog, type SetLogValues, type Sex, type SharedRoutine, type SharedRoutineOwner, type SharedRoutineSource, type SharedRoutineSummary, type SharedSessionOwner, type SharedSessionRecap, type SkipOccurrenceRequest, type StarredExercise, type StarredExercisesResponse, type StartWorkoutRequest, type StartWorkoutResponse, type StreakAtRiskPushPayload, type StreakMilestoneActivity, type StreakMilestoneEventPayload, type SubstituteSessionExerciseRequest, type SubstituteSessionExerciseResponse, type SupabaseAuthResponse, type SupabaseAuthUser, type SupabaseMigrationResponse, TEMPORARY_OVERRIDE_KINDS, TEMPORARY_OVERRIDE_SOURCE_KINDS, TRAINING_BLOCK_COMPARISON_MAX_DAYS, TRAINING_DISCIPLINE_VALUES, TRAINING_EVENT_TYPES, TRAINING_EXPERIENCE_LEVEL_VALUES, TRAINING_GOAL_VALUES, TRAINING_PARTNERSHIP_STATUSES, TRAINING_PARTNERS_MAX, TRAINING_PARTNER_ENCOURAGEMENTS_PER_24_HOURS_MAX, TRAINING_PARTNER_ENCOURAGEMENT_KINDS, TRAINING_PARTNER_PERMISSION_KEYS, TRAINING_PARTNER_REQUESTS_PER_DAY_MAX, TRAINING_SIGNAL_DECLINES_MAX, TRAINING_SIGNAL_DECLINE_SESSIONS, TRAINING_SIGNAL_MIN_DECLINE, TRAINING_SIGNAL_MIN_RPE_SETS, TRAINING_SIGNAL_MIN_SHORT_SETS, TRAINING_SIGNAL_MIN_TARGET_SETS, TRAINING_SIGNAL_PERIOD_DAYS, TRAINING_SIGNAL_RPE_RISE, TRAINING_SIGNAL_SHORT_LIFTS_MAX, TRAINING_SIGNAL_SHORT_POINTS_RISE, TRAINING_SIGNAL_WORKOUT_DROP, type TemporaryOverrideKind, type TemporaryOverrideSource, type TemporaryOverrideSourceKind, type TrainingBlockComparisonResponse, type TrainingDiscipline, type TrainingEventType, type TrainingExperienceLevel, type TrainingGoal, type TrainingIdentity, type TrainingLocationPreference, type TrainingLocationPreferenceInput, type TrainingPartnerAchievementNotification, type TrainingPartnerAchievementPushPayload, type TrainingPartnerEncouragementKind, type TrainingPartnerEncouragementNotification, type TrainingPartnerPermissions, type TrainingPartnerScheduleDay, type TrainingPartnerScheduleResponse, type TrainingPartnerSessionNotification, type TrainingPartnerSessionPushPayload, type TrainingPartnership, type TrainingPartnershipStatus, type TrainingPartnershipsResponse, type TrainingReminderPreference, type TrainingReminderPushPayload, type TrainingSignalPeriod, type TrainingSignalsResponse, USERNAME_MAX_LENGTH, USERNAME_MIN_LENGTH, USERNAME_PATTERN_SOURCE, type UpdateActivitySharingRequest, type UpdateNotificationPreferencesRequest, type UpdateProfileDiscoveryRequest, type UpdateProfilePrivacyRequest, type UpdateProfileRequest, type UpdateRoutineRequest, type UpdateRoutineVisibilityRequest, type UpdateSessionNotesRequest, type UpdateSessionNotesResponse, type UpdateTrainingPartnerPermissionsRequest, type UpsertRoutineTrainingBlockRequest, type UpsertSetLogRequest, type UpsertSetLogResponse, type UserId, type UserProfile, type UserSearchResponse, type VolumeTrendPoint, type VolumeTrendQuery, type VolumeTrendResponse, type VolumeTrendSeries, WEIGHT_UNITS, WORKOUT_SESSION_STATUSES, type WeightUnit, type WorkoutAnalyticsStatus, type WorkoutPeriod, type WorkoutProgressQuery, type WorkoutProgressResponse, type WorkoutSession, type WorkoutSessionId, type WorkoutSessionListResponse, type WorkoutSessionRecap, type WorkoutSessionSnapshotV1, type WorkoutSessionStatus, type WorkoutSessionSummary, type WorkoutSignal, type WorkoutStatsQuery, type WorkoutStatsResponse, accountExportFileName, applyDeload, countsAsWork, countsForProgression, deloadLengthDays, isSetKind, isWithinQuietHours, matchesDeletionConfirmation, requiredToFinish, resolveActiveTrainingBlock, resolveRoutinePlan, routineDayLabel, sessionCorrectionWindow, setKindOf, setLogValuesDiffer, trainingBlockCovers };
|
|
3582
|
+
export { ACCOUNT_EXPORT_FORMAT, ACCOUNT_EXPORT_VERSION, ACHIEVEMENT_CATEGORIES, ACHIEVEMENT_DEFINITIONS, ACTIVITY_CAPS, ACTIVITY_COMMENTS_PAGE_SIZE, ACTIVITY_COMMENTS_PER_DAY_MAX, ACTIVITY_COMMENT_MAX_LENGTH, ACTIVITY_DEFAULT_AUDIENCE, ACTIVITY_ENTRY_ID_MAX_LENGTH, ACTIVITY_FEED_FOLLOWED_MAX, ACTIVITY_PAGE_DEFAULT_LIMIT, ACTIVITY_PAGE_MAX_LIMIT, ACTIVITY_PREVIEW_AUDIENCES, ACTIVITY_REACTIONS, ACTIVITY_TYPES, ACTIVITY_TYPE_SECTIONS, type AccountExportGoal, type AccountExportMember, type AccountExportPersonalRecord, type AccountExportRoutine, type AccountExportScheduleOverride, type AccountExportTrainingEvent, type AccountExportTrainingLocation, type AccountExportV1, type AchievementActivity, type AchievementCategory, type AchievementCategoryProgress, type AchievementDefinition, type AchievementNotification, type AchievementUnlockedEventPayload, type AchievementsResponse, type ActivityAudience, type ActivityCap, type ActivityComment, type ActivityCommentNotification, type ActivityCommentSummary, type ActivityCommentsQuery, type ActivityCommentsResponse, type ActivityEntry, type ActivityEntrySharing, type ActivityFeedResponse, type ActivityLink, type ActivityPage, type ActivityPageQuery, type ActivityPreviewAudience, type ActivityPreviewQuery, type ActivityReaction, type ActivityReactionSummary, type ActivitySection, type ActivitySharingSettings, type ActivityType, type AppNotification, BAR_CHOICES_KG, BAR_WARM_UP_STEPS, BLOCKED_MEMBERS_MAX, type BlockComparisonLift, type BlockComparisonLiftBest, type BlockComparisonPeriod, type BlockComparisonPeriodKind, type BlockedMember, type BlockedMembersResponse, type Brand, CLONE_ROUTINE_REFUSALS, COMEBACK_MIN_INACTIVE_DAYS, COMEBACK_RECOGNITION_LIMIT, COMEBACK_REQUIRED_ACTIVE_DAYS, COMEBACK_SESSION_LOOKBACK, COMEBACK_WINDOW_DAYS, type CalendarDate, type CloneRoutineRefusal, type CloneRoutineRequest, type ComebackActivity, type ComebackRecognition, type ComebackRecognitionSummary, type CorrectSessionRequest, type CorrectSessionResponse, type CorrectSessionSetRequest, type CreateActivityCommentRequest, type CreateActivityCommentResponse, type CreateDeloadRequest, type CreateReportRequest, type CreateReportResponse, type CreateRoutineDayInput, type CreateRoutineExerciseInput, type CreateRoutineRequest, type CreateRoutineVersionRequest, type CreateSessionShareRequest, DELOAD_DEFAULT_DAYS, DELOAD_DEFAULT_LOAD_REDUCTION, DELOAD_DEFAULT_SET_MODE, DELOAD_LOAD_REDUCTIONS, DELOAD_MAX_DAYS, DELOAD_NOT_LIGHTER, DELOAD_SET_MODES, DELOAD_SUGGESTION_COOLDOWN_DAYS, DELOAD_SUGGESTION_EARLIER_DAYS, DELOAD_SUGGESTION_MIN_MARKED_TODAY, DELOAD_SUGGESTION_ROUTINE_DAYS, DELOAD_SUGGESTION_SIGNALS, type DeclineSignal, type DecliningLift, type DecliningLiftSession, type DeleteAccountRequest, type DeleteAccountResponse, type DeleteActivityCommentResponse, type DeletePushSubscriptionRequest, type DeloadLoadReduction, type DeloadOptions, type DeloadSetMode, type DeloadSuggestion, type DeloadSuggestionEvidence, type DeloadSuggestionResponse, type DeloadSuggestionSignal, type DeloadSuggestionUnavailableReason, type DiscoverableRoutine, EXERCISE_EQUIPMENT, EXERCISE_MECHANICS, type EarnedAchievement, type EarnedPersonalRecord, type EffortPeriod, type EffortSignal, type Exercise, type ExerciseEquipment, type ExerciseId, type ExerciseMechanic, type ExercisePerformanceHistoryQuery, type ExercisePerformanceHistoryResponse, type ExercisePerformancePrescription, type ExercisePerformancePrescriptionSet, type ExercisePerformanceSession, type ExercisePerformanceSet, type ExercisePerformanceSummary, type ExercisePlateau, type ExerciseStrengthSummary, type ExerciseStrengthTrendPoint, type ExerciseStrengthTrendQuery, type ExerciseStrengthTrendResponse, FEATURED_PROFILE_ITEMS_MAX, FEATURED_PROFILE_ITEM_KINDS, FEATURED_PROFILE_REFERENCE_MAX_LENGTH, FOLLOW_SUGGESTIONS_DEFAULT_LIMIT, FOLLOW_SUGGESTIONS_MAX_LIMIT, FOLLOW_SUGGESTION_REASONS, type FeaturedProfileAchievementItem, type FeaturedProfileItem, type FeaturedProfileItemKind, type FeaturedProfileRankItem, type FeaturedProfileRecordItem, type FeaturedProfileRoutineItem, type FeaturedProfileSelection, type FeaturedProfileSelectionInput, type FeaturedProfileSelectionsResponse, type FinishStatus, type FinishWorkoutRequest, type FinishWorkoutResponse, type FollowSuggestion, type FollowSuggestionReason, type FollowSuggestionsResponse, type IsoDateString, LIMITED_SHORTFALL_KG, type ListSessionsParams, MAX_SETS_PER_EXERCISE, MEASURABLE_GOALS_MAX, MEASURABLE_GOAL_DIRECTIONS, MEASURABLE_GOAL_TYPES, MINUTES_IN_DAY, MODERATION_ACTION_KINDS, MODERATION_HISTORY_PAGE_SIZE, MODERATION_NOTE_MAX_LENGTH, MODERATION_QUEUE_PAGE_SIZE, MOVEMENT_PATTERNS, MUSCLE_GROUPS, type MarkNotificationsReadRequest, type MarkNotificationsReadResponse, type MeasurableGoal, type MeasurableGoalDirection, type MeasurableGoalExercise, type MeasurableGoalInput, type MeasurableGoalType, type MemberActivityResponse, type MemberModerationState, type MemberRoutinesResponse, type ModerationActionKind, type ModerationActionRecord, type ModerationHistoryQuery, type ModerationHistoryResponse, type ModerationQueueQuery, type ModerationQueueResponse, type ModerationReport, type ModeratorState, type MoveOccurrenceRequest, type MovementPattern, type MuscleGroup, type MuscleGroupHeatmapQuery, type MuscleGroupHeatmapResponse, type MuscleGroupHeatmapValue, type MuscleGroupHeatmapWeek, type MuscleVolumeTrendSeries, NOTIFICATIONS_LIST_LIMIT, NOTIFICATIONS_LOOKBACK_DAYS, NOTIFICATIONS_RETENTION_DAYS, NOTIFICATION_CATEGORIES, NOTIFICATION_KINDS, type NewFollowerNotification, type NotificationCategory, type NotificationKind, type NotificationPreferences, type NotificationPreferencesResponse, type NotificationsResponse, OTHER_WARM_UP_STEPS, type OwnActivityEntry, type OwnActivityResponse, PLATEAU_MIN_DAYS_SINCE_BEST, PLATEAU_MIN_SESSIONS, PLATEAU_MIN_SESSIONS_MAX, PLATEAU_MIN_SESSIONS_MIN, PLATEAU_RECENT_DAYS, PLATEAU_WINDOW_DAYS, PLATE_SETS, PREFERRED_TRAINING_STYLE_VALUES, PROFILE_BIO_MAX_LENGTH, PROFILE_FAVORITE_EXERCISES_MAX, PROFILE_LOCATION_MAX_LENGTH, PROFILE_TRAINING_DISCIPLINES_MAX, PROFILE_TRAINING_GOALS_MAX, PROFILE_VISIBILITY_VALUES, PROGRESSION_SCHEMES, PROGRESS_TIMELINE_EVENT_TYPES, PUSH_PAYLOAD_KINDS, PUSH_SUBSCRIPTIONS_MAX, type PaginatedResponse, type PersonalGoalProgress, type PersonalGoalsResponse, type PersonalRecordActivity, type PersonalRecordEntry, type PersonalRecordKind, type PlannedReminder, type PlateLoadingItem, type PlateLoadingResult, type PlatePairInventory, type PlateSetChoice, type PlateauPreferences, type PlateauSet, type PlateausResponse, type PreferredTrainingStyle, type PreviousPerformanceResponse, type PreviousSessionRecap, type PreviousSetPerformance, type ProfileDiscoverySettings, type ProfileFavoriteExercise, type ProfilePrivacySettings, type ProfileViewerAccess, type ProfileVisibility, type ProgressTimelineEventType, type ProgressTimelineItem, type ProgressTimelinePersonalRecordItem, type ProgressTimelineProgressionItem, type ProgressTimelineQuery, type ProgressTimelineRecordPerformance, type ProgressTimelineRecordReason, type ProgressTimelineResponse, type ProgressTimelineSessionContext, type ProgressionActivity, type ProgressionChange, type ProgressionRule, type ProgressionScheme, type ProgressionSetChange, type PublicBodyMetrics, type PublicProfileAchievements, type PublicTrainingSummary, type PublicUserProfile, type PushPayload, type PushPayloadKind, type PushSubscriptionKeys, type PushSubscriptionSummary, type PushSubscriptionsResponse, type QuietHours, RELATIONSHIP_LIST_DEFAULT_LIMIT, RELATIONSHIP_LIST_KINDS, RELATIONSHIP_LIST_MAX_LIMIT, RENAISSANCE_RANK_DEFINITIONS, REPORTS_PER_DAY_MAX, REPORT_DETAILS_MAX_LENGTH, REPORT_REASONS, REPORT_STATUSES, REPORT_SUBJECT_KINDS, REP_TYPES, RESERVED_USERNAMES, REST_ALERT_MAX_LEAD_SECONDS, REST_ALERT_MIN_LEAD_SECONDS, REST_ALERT_REFUSALS, ROUTINE_DAYS_MAX, ROUTINE_DAY_NAME_MAX, ROUTINE_DISCOVERY_DEFAULT_LIMIT, ROUTINE_DISCOVERY_MAX_LIMIT, ROUTINE_DISCOVERY_SCAN_LIMIT, ROUTINE_DURATION_BANDS, ROUTINE_DURATION_BAND_MAX_MINUTES, ROUTINE_SCHEDULE_MODES, ROUTINE_SHARE_MAX_ACTIVE_LINKS, ROUTINE_TRAINING_BLOCKS_MAX, ROUTINE_TRAINING_BLOCK_NAME_MAX, ROUTINE_TRAINING_BLOCK_REVISIONS_MAX, ROUTINE_TRAINING_BLOCK_SOURCE_KINDS, ROUTINE_TRAINING_BLOCK_STATES, ROUTINE_VERSIONS_MAX, ROUTINE_VERSION_KINDS, ROUTINE_VERSION_NAME_MAX, ROUTINE_VISIBILITY_VALUES, type RecentActivityEntry, type RegisterPushSubscriptionRequest, type RelationshipListKind, type RelationshipListQuery, type RelationshipListResponse, type RelationshipMember, type RenaissanceRankDefinition, type RenaissanceRankProgress, type RepTargetPeriod, type RepTargetSignal, type RepType, type ReplaceFeaturedProfileItemsRequest, type ReplaceMeasurableGoalsRequest, type ReplaceTrainingLocationsRequest, type ReportReason, type ReportStatus, type ReportSubjectKind, type ReportSubjectPreview, type ResolvedRoutinePlan, type RestAlertPushPayload, type RestAlertRefusal, type RestoreRoutineVersionResponse, type ReviewReportRequest, type ReviewReportResponse, type Routine, type RoutineClassification, type RoutineDay, type RoutineDayId, type RoutineDiscoveryQuery, type RoutineDiscoveryResponse, type RoutineDurationBand, type RoutineExercise, type RoutineFacets, type RoutineId, type RoutineLineage, type RoutinePlanSource, type RoutineScheduleMode, type RoutineSet, type RoutineShare, type RoutineShareListResponse, type RoutineSharedActivity, type RoutineTemporaryOverride, type RoutineTemporaryOverridePlan, type RoutineTemporaryOverridesResponse, type RoutineTrainingBlock, type RoutineTrainingBlockPlan, type RoutineTrainingBlockRevision, type RoutineTrainingBlockRevisionsResponse, type RoutineTrainingBlockSource, type RoutineTrainingBlockSourceKind, type RoutineTrainingBlockState, type RoutineTrainingBlocksResponse, type RoutineVersion, type RoutineVersionDay, type RoutineVersionExercise, type RoutineVersionKind, type RoutineVersionSetup, type RoutineVersionsResponse, type RoutineVisibility, SCHEDULE_MOVE_MAX_DAYS, SCHEDULE_OVERRIDES_MAX_RANGE_DAYS, SCHEDULE_OVERRIDE_KINDS, SCHEDULE_SKIP_PAST_DAYS, SESSION_CORRECTIONS_MAX, SESSION_CORRECTION_LIMITS, SESSION_CORRECTION_WINDOW_HOURS, SESSION_EXERCISE_NOTE_MAX_LENGTH, SESSION_NOTE_MAX_LENGTH, SESSION_SHARE_DEFAULT_FIELDS, SESSION_SHARE_FIELDS, SESSION_SHARE_MAX_ACTIVE_LINKS, SET_KINDS, SET_KIND_LABELS, SEXES, SHARED_ROUTINE_SOURCES, STARRED_EXERCISES_MAX, STREAK_MAX_GAP_DAYS, type ScheduleOverride, type ScheduleOverrideKind, type ScheduleOverridesQuery, type ScheduleOverridesResponse, type ScheduleRestAlertRequest, type ScheduleRestAlertResponse, type SendTrainingPartnerEncouragementRequest, type SendTrainingPartnerEncouragementResponse, type SessionComparisonExercise, type SessionComparisonQuery, type SessionComparisonResponse, type SessionComparisonRoutineDay, type SessionComparisonSession, type SessionComparisonSet, type SessionCompletedActivity, type SessionCorrection, type SessionCorrectionClosedReason, type SessionCorrectionWindow, type SessionCorrectionsResponse, type SessionExerciseNote, type SessionExerciseSubstitution, type SessionProgressNotification, type SessionRecapExerciseNote, type SessionRecapRecord, type SessionSetCorrection, type SessionShare, type SessionShareField, type SessionShareListResponse, type SessionTemporaryOverride, type SessionTrainingBlock, type SetAccountTimeZoneRequest, type SetActivityEntryAudienceRequest, type SetActivityEntryAudienceResponse, type SetActivityReactionRequest, type SetActivityReactionResponse, type SetKind, type SetLog, type SetLogValues, type Sex, type SharedRoutine, type SharedRoutineOwner, type SharedRoutineSource, type SharedRoutineSummary, type SharedSessionOwner, type SharedSessionRecap, type SkipOccurrenceRequest, type StarredExercise, type StarredExercisesResponse, type StartWorkoutRequest, type StartWorkoutResponse, type StreakAtRiskPushPayload, type StreakMilestoneActivity, type StreakMilestoneEventPayload, type SubstituteSessionExerciseRequest, type SubstituteSessionExerciseResponse, type SupabaseAuthResponse, type SupabaseAuthUser, type SupabaseMigrationResponse, TEMPORARY_OVERRIDE_KINDS, TEMPORARY_OVERRIDE_SOURCE_KINDS, TRAINING_BLOCK_COMPARISON_MAX_DAYS, TRAINING_DISCIPLINE_VALUES, TRAINING_EVENT_TYPES, TRAINING_EXPERIENCE_LEVEL_VALUES, TRAINING_GOAL_VALUES, TRAINING_PARTNERSHIP_STATUSES, TRAINING_PARTNERS_MAX, TRAINING_PARTNER_ENCOURAGEMENTS_PER_24_HOURS_MAX, TRAINING_PARTNER_ENCOURAGEMENT_KINDS, TRAINING_PARTNER_PERMISSION_KEYS, TRAINING_PARTNER_REQUESTS_PER_DAY_MAX, TRAINING_SIGNAL_DECLINES_MAX, TRAINING_SIGNAL_DECLINE_SESSIONS, TRAINING_SIGNAL_MIN_DECLINE, TRAINING_SIGNAL_MIN_RPE_SETS, TRAINING_SIGNAL_MIN_SHORT_SETS, TRAINING_SIGNAL_MIN_TARGET_SETS, TRAINING_SIGNAL_PERIOD_DAYS, TRAINING_SIGNAL_RPE_RISE, TRAINING_SIGNAL_SHORT_LIFTS_MAX, TRAINING_SIGNAL_SHORT_POINTS_RISE, TRAINING_SIGNAL_WORKOUT_DROP, type TemporaryOverrideKind, type TemporaryOverrideSource, type TemporaryOverrideSourceKind, type TrainingBlockComparisonResponse, type TrainingDiscipline, type TrainingEventType, type TrainingExperienceLevel, type TrainingGoal, type TrainingIdentity, type TrainingLocationPreference, type TrainingLocationPreferenceInput, type TrainingPartnerAchievementNotification, type TrainingPartnerAchievementPushPayload, type TrainingPartnerEncouragementKind, type TrainingPartnerEncouragementNotification, type TrainingPartnerPermissions, type TrainingPartnerScheduleDay, type TrainingPartnerScheduleResponse, type TrainingPartnerSessionNotification, type TrainingPartnerSessionPushPayload, type TrainingPartnership, type TrainingPartnershipStatus, type TrainingPartnershipsResponse, type TrainingReminderPreference, type TrainingReminderPushPayload, type TrainingSignalPeriod, type TrainingSignalsResponse, USERNAME_MAX_LENGTH, USERNAME_MIN_LENGTH, USERNAME_PATTERN_SOURCE, type UpdateActivitySharingRequest, type UpdateNotificationPreferencesRequest, type UpdateProfileDiscoveryRequest, type UpdateProfilePrivacyRequest, type UpdateProfileRequest, type UpdateRoutineRequest, type UpdateRoutineVisibilityRequest, type UpdateSessionNotesRequest, type UpdateSessionNotesResponse, type UpdateTrainingPartnerPermissionsRequest, type UpsertRoutineTrainingBlockRequest, type UpsertSetLogRequest, type UpsertSetLogResponse, type UserId, type UserProfile, type UserSearchResponse, type VolumeTrendPoint, type VolumeTrendQuery, type VolumeTrendResponse, type VolumeTrendSeries, WEIGHT_UNITS, WORKOUT_SESSION_STATUSES, type WarmUpEquipment, type WarmUpLoad, type WarmUpRamp, type WarmUpSet, type WarmUpStep, type WeightUnit, type WorkoutAnalyticsStatus, type WorkoutPeriod, type WorkoutProgressQuery, type WorkoutProgressResponse, type WorkoutSession, type WorkoutSessionId, type WorkoutSessionListResponse, type WorkoutSessionRecap, type WorkoutSessionSnapshotV1, type WorkoutSessionStatus, type WorkoutSessionSummary, type WorkoutSignal, type WorkoutStatsQuery, type WorkoutStatsResponse, accountExportFileName, applyDeload, buildWarmUpRamp, calculatePlateLoading, countsAsWork, countsForProgression, defaultWarmUpEquipment, deloadLengthDays, followWorkingLoad, isBarLoaded, isSetKind, isWithinQuietHours, leadWorkingWeight, matchesDeletionConfirmation, requiredToFinish, resolveActiveTrainingBlock, resolveRoutinePlan, routineDayLabel, sessionCorrectionWindow, setKindOf, setLogValuesDiffer, trainingBlockCovers, warmUpLoad };
|
package/dist/index.js
CHANGED
|
@@ -348,6 +348,257 @@ function requiredToFinish(kind) {
|
|
|
348
348
|
return k === "WORKING" || k === "DROP";
|
|
349
349
|
}
|
|
350
350
|
|
|
351
|
+
// src/plate-loading.ts
|
|
352
|
+
var CANONICAL_SCALE = 1e4;
|
|
353
|
+
var DENSE_CAPACITY_LIMIT = 2e5;
|
|
354
|
+
var toCanonicalUnits = (weightKg) => Math.round(weightKg * CANONICAL_SCALE);
|
|
355
|
+
var fromCanonicalUnits = (units) => units / CANONICAL_SCALE;
|
|
356
|
+
var greatestCommonDivisor = (left, right) => {
|
|
357
|
+
let a = Math.abs(left);
|
|
358
|
+
let b = Math.abs(right);
|
|
359
|
+
while (b > 0) {
|
|
360
|
+
const remainder = a % b;
|
|
361
|
+
a = b;
|
|
362
|
+
b = remainder;
|
|
363
|
+
}
|
|
364
|
+
return a;
|
|
365
|
+
};
|
|
366
|
+
var buildChunks = (plates, divisor) => {
|
|
367
|
+
const chunks = [];
|
|
368
|
+
plates.forEach((plate, plateIndex) => {
|
|
369
|
+
const pairValue = Math.round(
|
|
370
|
+
toCanonicalUnits(plate.weightKg) * 2 / divisor
|
|
371
|
+
);
|
|
372
|
+
let remaining = plate.pairCount;
|
|
373
|
+
let chunkSize = 1;
|
|
374
|
+
while (remaining > 0) {
|
|
375
|
+
const quantity = Math.min(chunkSize, remaining);
|
|
376
|
+
chunks.push({
|
|
377
|
+
plateIndex,
|
|
378
|
+
quantity,
|
|
379
|
+
value: pairValue * quantity
|
|
380
|
+
});
|
|
381
|
+
remaining -= quantity;
|
|
382
|
+
chunkSize *= 2;
|
|
383
|
+
}
|
|
384
|
+
});
|
|
385
|
+
return chunks;
|
|
386
|
+
};
|
|
387
|
+
var reconstructSelection = (best, chunks, previousSum, previousChunk, plateCount) => {
|
|
388
|
+
const selection = Array.from({ length: plateCount }, () => 0);
|
|
389
|
+
let current = best;
|
|
390
|
+
while (current > 0) {
|
|
391
|
+
const chunkIndex = previousChunk(current);
|
|
392
|
+
if (chunkIndex < 0) break;
|
|
393
|
+
const chunk = chunks[chunkIndex];
|
|
394
|
+
selection[chunk.plateIndex] += chunk.quantity;
|
|
395
|
+
current = previousSum(current);
|
|
396
|
+
}
|
|
397
|
+
return selection;
|
|
398
|
+
};
|
|
399
|
+
var solveDense = (capacity, chunks, plateCount) => {
|
|
400
|
+
const reachable = new Uint8Array(capacity + 1);
|
|
401
|
+
const previousSum = new Int32Array(capacity + 1);
|
|
402
|
+
const previousChunk = new Int16Array(capacity + 1);
|
|
403
|
+
previousSum.fill(-1);
|
|
404
|
+
previousChunk.fill(-1);
|
|
405
|
+
reachable[0] = 1;
|
|
406
|
+
chunks.forEach((chunk, chunkIndex) => {
|
|
407
|
+
for (let sum = capacity; sum >= chunk.value; sum -= 1) {
|
|
408
|
+
if (!reachable[sum] && reachable[sum - chunk.value]) {
|
|
409
|
+
reachable[sum] = 1;
|
|
410
|
+
previousSum[sum] = sum - chunk.value;
|
|
411
|
+
previousChunk[sum] = chunkIndex;
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
});
|
|
415
|
+
let best = capacity;
|
|
416
|
+
while (best > 0 && !reachable[best]) best -= 1;
|
|
417
|
+
return {
|
|
418
|
+
best,
|
|
419
|
+
selection: reconstructSelection(
|
|
420
|
+
best,
|
|
421
|
+
chunks,
|
|
422
|
+
(sum) => previousSum[sum],
|
|
423
|
+
(sum) => previousChunk[sum],
|
|
424
|
+
plateCount
|
|
425
|
+
)
|
|
426
|
+
};
|
|
427
|
+
};
|
|
428
|
+
var solveSparse = (capacity, chunks, plateCount) => {
|
|
429
|
+
const reachable = /* @__PURE__ */ new Map();
|
|
430
|
+
reachable.set(0, { previous: -1, chunkIndex: -1 });
|
|
431
|
+
chunks.forEach((chunk, chunkIndex) => {
|
|
432
|
+
const currentSums = Array.from(reachable.keys());
|
|
433
|
+
for (const sum of currentSums) {
|
|
434
|
+
const next = sum + chunk.value;
|
|
435
|
+
if (next <= capacity && !reachable.has(next)) {
|
|
436
|
+
reachable.set(next, { previous: sum, chunkIndex });
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
});
|
|
440
|
+
let best = 0;
|
|
441
|
+
for (const sum of reachable.keys()) {
|
|
442
|
+
if (sum > best) best = sum;
|
|
443
|
+
}
|
|
444
|
+
return {
|
|
445
|
+
best,
|
|
446
|
+
selection: reconstructSelection(
|
|
447
|
+
best,
|
|
448
|
+
chunks,
|
|
449
|
+
(sum) => reachable.get(sum)?.previous ?? -1,
|
|
450
|
+
(sum) => reachable.get(sum)?.chunkIndex ?? -1,
|
|
451
|
+
plateCount
|
|
452
|
+
)
|
|
453
|
+
};
|
|
454
|
+
};
|
|
455
|
+
var heaviestFirst = (target, pairValues, counts) => {
|
|
456
|
+
let remaining = target;
|
|
457
|
+
const selection = pairValues.map((value, index) => {
|
|
458
|
+
const take = Math.min(counts[index], Math.floor(remaining / value));
|
|
459
|
+
remaining -= take * value;
|
|
460
|
+
return take;
|
|
461
|
+
});
|
|
462
|
+
return remaining === 0 ? selection : null;
|
|
463
|
+
};
|
|
464
|
+
var plateTotal = (selection) => selection.reduce((total, count) => total + count, 0);
|
|
465
|
+
var calculatePlateLoading = (targetWeightKg, barWeightKg, availablePlatePairs) => {
|
|
466
|
+
const targetUnits = Math.max(0, toCanonicalUnits(targetWeightKg));
|
|
467
|
+
const barUnits = Math.max(0, toCanonicalUnits(barWeightKg));
|
|
468
|
+
if (targetUnits < barUnits) {
|
|
469
|
+
return {
|
|
470
|
+
targetWeightKg: fromCanonicalUnits(targetUnits),
|
|
471
|
+
loadedWeightKg: fromCanonicalUnits(barUnits),
|
|
472
|
+
differenceKg: fromCanonicalUnits(barUnits - targetUnits),
|
|
473
|
+
status: "over",
|
|
474
|
+
platesPerSide: []
|
|
475
|
+
};
|
|
476
|
+
}
|
|
477
|
+
const plates = availablePlatePairs.filter((plate) => plate.weightKg > 0 && plate.pairCount > 0).sort((left, right) => right.weightKg - left.weightKg);
|
|
478
|
+
const pairValues = plates.map((plate) => toCanonicalUnits(plate.weightKg) * 2);
|
|
479
|
+
const divisor = pairValues.reduce(greatestCommonDivisor, 0) || 1;
|
|
480
|
+
const residualUnits = targetUnits - barUnits;
|
|
481
|
+
const requestedCapacity = Math.floor(residualUnits / divisor);
|
|
482
|
+
const inventoryCapacity = pairValues.reduce(
|
|
483
|
+
(total, value, index) => total + value / divisor * plates[index].pairCount,
|
|
484
|
+
0
|
|
485
|
+
);
|
|
486
|
+
const capacity = Math.min(requestedCapacity, inventoryCapacity);
|
|
487
|
+
const chunks = buildChunks(plates, divisor);
|
|
488
|
+
const solution = capacity <= DENSE_CAPACITY_LIMIT ? solveDense(capacity, chunks, plates.length) : solveSparse(capacity, chunks, plates.length);
|
|
489
|
+
const greedy = heaviestFirst(
|
|
490
|
+
solution.best,
|
|
491
|
+
pairValues.map((value) => value / divisor),
|
|
492
|
+
plates.map((plate) => plate.pairCount)
|
|
493
|
+
);
|
|
494
|
+
const selection = greedy && plateTotal(greedy) <= plateTotal(solution.selection) ? greedy : solution.selection;
|
|
495
|
+
const plateUnits = solution.best * divisor;
|
|
496
|
+
const loadedUnits = barUnits + plateUnits;
|
|
497
|
+
const differenceUnits = targetUnits - loadedUnits;
|
|
498
|
+
return {
|
|
499
|
+
targetWeightKg: fromCanonicalUnits(targetUnits),
|
|
500
|
+
loadedWeightKg: fromCanonicalUnits(loadedUnits),
|
|
501
|
+
differenceKg: fromCanonicalUnits(differenceUnits),
|
|
502
|
+
status: differenceUnits === 0 ? "exact" : "short",
|
|
503
|
+
platesPerSide: plates.flatMap(
|
|
504
|
+
(plate, index) => selection[index] > 0 ? [
|
|
505
|
+
{
|
|
506
|
+
weightKg: plate.weightKg,
|
|
507
|
+
platesPerSide: selection[index]
|
|
508
|
+
}
|
|
509
|
+
] : []
|
|
510
|
+
)
|
|
511
|
+
};
|
|
512
|
+
};
|
|
513
|
+
|
|
514
|
+
// src/warm-ups.ts
|
|
515
|
+
var MAX_SETS_PER_EXERCISE = 10;
|
|
516
|
+
var BAR_WARM_UP_STEPS = [
|
|
517
|
+
{ share: 0, reps: 10 },
|
|
518
|
+
{ share: 0.4, reps: 5 },
|
|
519
|
+
{ share: 0.6, reps: 3 },
|
|
520
|
+
{ share: 0.8, reps: 2 }
|
|
521
|
+
];
|
|
522
|
+
var OTHER_WARM_UP_STEPS = [
|
|
523
|
+
{ share: 0.5, reps: 8 },
|
|
524
|
+
{ share: 0.75, reps: 3 }
|
|
525
|
+
];
|
|
526
|
+
var BAR_LOADED = /* @__PURE__ */ new Set(["barbell", "ez-bar", "smith-machine"]);
|
|
527
|
+
var isBarLoaded = (equipmentRequired) => (equipmentRequired ?? []).some((item) => BAR_LOADED.has(item));
|
|
528
|
+
var POUNDS_PER_KILOGRAM = 2.2046226218;
|
|
529
|
+
var lb = (pounds) => pounds / POUNDS_PER_KILOGRAM;
|
|
530
|
+
var BAR_CHOICES_KG = {
|
|
531
|
+
KG: [20, 15, 10],
|
|
532
|
+
LB: [lb(45), lb(35), lb(15)]
|
|
533
|
+
};
|
|
534
|
+
var pairs = (weights, heaviestPairs) => weights.map((weightKg, index) => ({
|
|
535
|
+
weightKg,
|
|
536
|
+
pairCount: index === 0 ? heaviestPairs : 2
|
|
537
|
+
}));
|
|
538
|
+
var PLATE_SETS = {
|
|
539
|
+
KG: {
|
|
540
|
+
STANDARD: pairs([25, 20, 15, 10, 5, 2.5, 1.25], 4),
|
|
541
|
+
LIGHT: pairs([20, 15, 10, 5, 2.5, 1.25], 2)
|
|
542
|
+
},
|
|
543
|
+
LB: {
|
|
544
|
+
STANDARD: pairs([45, 35, 25, 10, 5, 2.5].map(lb), 4),
|
|
545
|
+
LIGHT: pairs([25, 10, 5, 2.5].map(lb), 2)
|
|
546
|
+
}
|
|
547
|
+
};
|
|
548
|
+
var LIMITED_SHORTFALL_KG = 2.5;
|
|
549
|
+
var defaultWarmUpEquipment = (unit) => ({
|
|
550
|
+
barWeightKg: BAR_CHOICES_KG[unit][0],
|
|
551
|
+
platePairs: PLATE_SETS[unit].STANDARD
|
|
552
|
+
});
|
|
553
|
+
var round = (value) => Math.round(value * 1e4) / 1e4;
|
|
554
|
+
function warmUpLoad(share, workingWeightKg, equipment) {
|
|
555
|
+
const target = share * workingWeightKg;
|
|
556
|
+
if (equipment.barLoaded) {
|
|
557
|
+
const loading = calculatePlateLoading(
|
|
558
|
+
Math.max(target, equipment.barWeightKg),
|
|
559
|
+
equipment.barWeightKg,
|
|
560
|
+
[...equipment.platePairs]
|
|
561
|
+
);
|
|
562
|
+
return {
|
|
563
|
+
weightKg: round(loading.loadedWeightKg),
|
|
564
|
+
platesPerSide: loading.platesPerSide,
|
|
565
|
+
limited: share > 0 && loading.status === "short" && loading.differenceKg >= LIMITED_SHORTFALL_KG - 1e-9
|
|
566
|
+
};
|
|
567
|
+
}
|
|
568
|
+
const increment = equipment.incrementKg > 0 ? equipment.incrementKg : 2.5;
|
|
569
|
+
return {
|
|
570
|
+
weightKg: round(Math.floor(target / increment + 1e-9) * increment),
|
|
571
|
+
limited: false
|
|
572
|
+
};
|
|
573
|
+
}
|
|
574
|
+
function buildWarmUpRamp(input) {
|
|
575
|
+
const work = input.workingWeightKg;
|
|
576
|
+
if (!(work > 0)) return { sets: [], leftOut: 0 };
|
|
577
|
+
const steps = input.barLoaded ? BAR_WARM_UP_STEPS : OTHER_WARM_UP_STEPS;
|
|
578
|
+
const sets = [];
|
|
579
|
+
for (const step of steps) {
|
|
580
|
+
const load = warmUpLoad(step.share, work, input);
|
|
581
|
+
const previous = sets[sets.length - 1];
|
|
582
|
+
if (load.weightKg <= 0 || load.weightKg >= work - 1e-9) continue;
|
|
583
|
+
if (previous && load.weightKg <= previous.weightKg + 1e-9) continue;
|
|
584
|
+
sets.push({ ...load, reps: step.reps, share: step.share });
|
|
585
|
+
}
|
|
586
|
+
const room = Math.max(0, input.room);
|
|
587
|
+
const kept = sets.slice(Math.max(0, sets.length - room));
|
|
588
|
+
return { sets: kept, leftOut: sets.length - kept.length };
|
|
589
|
+
}
|
|
590
|
+
function leadWorkingWeight(sets) {
|
|
591
|
+
const lead = sets.find((set) => countsForProgression(set.kind));
|
|
592
|
+
return typeof lead?.weight === "number" && lead.weight > 0 ? lead.weight : null;
|
|
593
|
+
}
|
|
594
|
+
function followWorkingLoad(sets, equipment) {
|
|
595
|
+
const work = leadWorkingWeight(sets);
|
|
596
|
+
if (work === null) return [...sets];
|
|
597
|
+
return sets.map(
|
|
598
|
+
(set) => set.kind === "WARMUP" && typeof set.warmUpShare === "number" ? { ...set, weight: warmUpLoad(set.warmUpShare, work, equipment).weightKg } : set
|
|
599
|
+
);
|
|
600
|
+
}
|
|
601
|
+
|
|
351
602
|
// src/routine.ts
|
|
352
603
|
var ROUTINE_SCHEDULE_MODES = ["WEEKLY", "ROTATION"];
|
|
353
604
|
var ROUTINE_DAYS_MAX = 7;
|
|
@@ -772,6 +1023,8 @@ export {
|
|
|
772
1023
|
ACTIVITY_REACTIONS,
|
|
773
1024
|
ACTIVITY_TYPES,
|
|
774
1025
|
ACTIVITY_TYPE_SECTIONS,
|
|
1026
|
+
BAR_CHOICES_KG,
|
|
1027
|
+
BAR_WARM_UP_STEPS,
|
|
775
1028
|
BLOCKED_MEMBERS_MAX,
|
|
776
1029
|
CLONE_ROUTINE_REFUSALS,
|
|
777
1030
|
COMEBACK_MIN_INACTIVE_DAYS,
|
|
@@ -799,6 +1052,8 @@ export {
|
|
|
799
1052
|
FOLLOW_SUGGESTIONS_DEFAULT_LIMIT,
|
|
800
1053
|
FOLLOW_SUGGESTIONS_MAX_LIMIT,
|
|
801
1054
|
FOLLOW_SUGGESTION_REASONS,
|
|
1055
|
+
LIMITED_SHORTFALL_KG,
|
|
1056
|
+
MAX_SETS_PER_EXERCISE,
|
|
802
1057
|
MEASURABLE_GOALS_MAX,
|
|
803
1058
|
MEASURABLE_GOAL_DIRECTIONS,
|
|
804
1059
|
MEASURABLE_GOAL_TYPES,
|
|
@@ -814,12 +1069,14 @@ export {
|
|
|
814
1069
|
NOTIFICATIONS_RETENTION_DAYS,
|
|
815
1070
|
NOTIFICATION_CATEGORIES,
|
|
816
1071
|
NOTIFICATION_KINDS,
|
|
1072
|
+
OTHER_WARM_UP_STEPS,
|
|
817
1073
|
PLATEAU_MIN_DAYS_SINCE_BEST,
|
|
818
1074
|
PLATEAU_MIN_SESSIONS,
|
|
819
1075
|
PLATEAU_MIN_SESSIONS_MAX,
|
|
820
1076
|
PLATEAU_MIN_SESSIONS_MIN,
|
|
821
1077
|
PLATEAU_RECENT_DAYS,
|
|
822
1078
|
PLATEAU_WINDOW_DAYS,
|
|
1079
|
+
PLATE_SETS,
|
|
823
1080
|
PREFERRED_TRAINING_STYLE_VALUES,
|
|
824
1081
|
PROFILE_BIO_MAX_LENGTH,
|
|
825
1082
|
PROFILE_FAVORITE_EXERCISES_MAX,
|
|
@@ -912,11 +1169,17 @@ export {
|
|
|
912
1169
|
WORKOUT_SESSION_STATUSES,
|
|
913
1170
|
accountExportFileName,
|
|
914
1171
|
applyDeload,
|
|
1172
|
+
buildWarmUpRamp,
|
|
1173
|
+
calculatePlateLoading,
|
|
915
1174
|
countsAsWork,
|
|
916
1175
|
countsForProgression,
|
|
1176
|
+
defaultWarmUpEquipment,
|
|
917
1177
|
deloadLengthDays,
|
|
1178
|
+
followWorkingLoad,
|
|
1179
|
+
isBarLoaded,
|
|
918
1180
|
isSetKind,
|
|
919
1181
|
isWithinQuietHours,
|
|
1182
|
+
leadWorkingWeight,
|
|
920
1183
|
matchesDeletionConfirmation,
|
|
921
1184
|
requiredToFinish,
|
|
922
1185
|
resolveActiveTrainingBlock,
|
|
@@ -925,5 +1188,6 @@ export {
|
|
|
925
1188
|
sessionCorrectionWindow,
|
|
926
1189
|
setKindOf,
|
|
927
1190
|
setLogValuesDiffer,
|
|
928
|
-
trainingBlockCovers
|
|
1191
|
+
trainingBlockCovers,
|
|
1192
|
+
warmUpLoad
|
|
929
1193
|
};
|
package/package.json
CHANGED
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@sunsteel/contracts",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"repository": {
|
|
5
|
-
"type": "git",
|
|
6
|
-
"url": "git+https://github.com/ezee969/sunsteel-contracts.git"
|
|
7
|
-
},
|
|
8
|
-
"private": false,
|
|
9
|
-
"engines": {
|
|
10
|
-
"node": ">=20.11"
|
|
11
|
-
},
|
|
12
|
-
"type": "module",
|
|
13
|
-
"sideEffects": false,
|
|
14
|
-
"main": "./dist/index.cjs",
|
|
15
|
-
"module": "./dist/index.js",
|
|
16
|
-
"types": "./dist/index.d.ts",
|
|
17
|
-
"exports": {
|
|
18
|
-
".": {
|
|
19
|
-
"types": "./dist/index.d.ts",
|
|
20
|
-
"import": "./dist/index.js",
|
|
21
|
-
"require": "./dist/index.cjs"
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
"files": [
|
|
25
|
-
"dist"
|
|
26
|
-
],
|
|
27
|
-
"scripts": {
|
|
28
|
-
"build": "tsup src/index.ts --format esm,cjs --dts --clean",
|
|
29
|
-
"dev": "tsup src/index.ts --format esm,cjs --dts --watch",
|
|
30
|
-
"typecheck": "tsc --noEmit",
|
|
31
|
-
"lint": "npm run typecheck",
|
|
32
|
-
"verify": "npm run typecheck && npm run build",
|
|
33
|
-
"verify:security": "npm audit",
|
|
34
|
-
"prepublishOnly": "npm run build"
|
|
35
|
-
},
|
|
36
|
-
"devDependencies": {
|
|
37
|
-
"tsup": "^8.3.5",
|
|
38
|
-
"typescript": "^5.7.3"
|
|
39
|
-
}
|
|
40
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@sunsteel/contracts",
|
|
3
|
+
"version": "0.71.0",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "git+https://github.com/ezee969/sunsteel-contracts.git"
|
|
7
|
+
},
|
|
8
|
+
"private": false,
|
|
9
|
+
"engines": {
|
|
10
|
+
"node": ">=20.11"
|
|
11
|
+
},
|
|
12
|
+
"type": "module",
|
|
13
|
+
"sideEffects": false,
|
|
14
|
+
"main": "./dist/index.cjs",
|
|
15
|
+
"module": "./dist/index.js",
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"exports": {
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./dist/index.d.ts",
|
|
20
|
+
"import": "./dist/index.js",
|
|
21
|
+
"require": "./dist/index.cjs"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"files": [
|
|
25
|
+
"dist"
|
|
26
|
+
],
|
|
27
|
+
"scripts": {
|
|
28
|
+
"build": "tsup src/index.ts --format esm,cjs --dts --clean",
|
|
29
|
+
"dev": "tsup src/index.ts --format esm,cjs --dts --watch",
|
|
30
|
+
"typecheck": "tsc --noEmit",
|
|
31
|
+
"lint": "npm run typecheck",
|
|
32
|
+
"verify": "npm run typecheck && npm run build",
|
|
33
|
+
"verify:security": "npm audit",
|
|
34
|
+
"prepublishOnly": "npm run build"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"tsup": "^8.3.5",
|
|
38
|
+
"typescript": "^5.7.3"
|
|
39
|
+
}
|
|
40
|
+
}
|