hevy-shared 1.0.629 → 1.0.631
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/built/index.d.ts +12 -2
- package/built/index.js +35 -14
- package/built/muscleSplits.d.ts +14 -2
- package/built/muscleSplits.js +31 -32
- package/package.json +1 -1
package/built/index.d.ts
CHANGED
|
@@ -549,10 +549,20 @@ export interface PublicUserProfile {
|
|
|
549
549
|
weekly_workout_durations: WeeklyWorkoutDuration[];
|
|
550
550
|
last_workout?: Workout;
|
|
551
551
|
}
|
|
552
|
-
export declare const
|
|
552
|
+
export declare const coreMuscles: readonly ["abdominals"];
|
|
553
|
+
export declare const shoulderMuscles: readonly ["shoulders"];
|
|
554
|
+
export declare const armMuscles: readonly ["biceps", "triceps", "forearms"];
|
|
555
|
+
export declare const legMuscles: readonly ["quadriceps", "hamstrings", "calves", "glutes", "abductors", "adductors"];
|
|
556
|
+
export declare const backMuscles: readonly ["lats", "traps", "lower_back", "upper_back"];
|
|
557
|
+
export declare const chestMuscles: readonly ["chest"];
|
|
558
|
+
export declare const miscellaneousMuscles: readonly ["cardio", "neck", "full_body", "other"];
|
|
559
|
+
export declare const simplifiedMuscleGroups: readonly ["core", "shoulders", "arms", "legs", "back", "chest"];
|
|
560
|
+
export type SimplifiedMuscleGroup = Lookup<typeof simplifiedMuscleGroups>;
|
|
561
|
+
export declare const isSimplifiedMuscleGroup: (x: string) => x is SimplifiedMuscleGroup;
|
|
562
|
+
export declare const muscleGroups: readonly ["abdominals", "shoulders", "biceps", "triceps", "forearms", "quadriceps", "hamstrings", "calves", "glutes", "abductors", "adductors", "lats", "traps", "lower_back", "upper_back", "chest", "cardio", "neck", "full_body", "other"];
|
|
553
563
|
export type MuscleGroup = Lookup<typeof muscleGroups>;
|
|
554
564
|
export declare const isMuscleGroup: (x: string) => x is MuscleGroup;
|
|
555
|
-
export declare const muscleGroupFilters: readonly ["all_muscles", "abdominals", "
|
|
565
|
+
export declare const muscleGroupFilters: readonly ["all_muscles", "abdominals", "shoulders", "biceps", "triceps", "forearms", "quadriceps", "hamstrings", "calves", "glutes", "abductors", "adductors", "lats", "traps", "lower_back", "upper_back", "chest", "cardio", "neck", "full_body", "other"];
|
|
556
566
|
export type MuscleGroupFilter = Lookup<typeof muscleGroupFilters>;
|
|
557
567
|
export declare const isMuscleGroupFilter: (x: string) => x is MuscleGroupFilter;
|
|
558
568
|
/**
|
package/built/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.isValidUserWorkoutMetricsType = exports.isBodyMeasurementKey = exports.measurementsList = exports.isWorkoutBiometrics = exports.isHeartRateSamples = exports.isPublicWorkout = exports.isSetType = exports.isRPE = exports.validRpeValues = exports.isSetPersonalRecordType = exports.supportedInstructionsLanguages = exports.exerciseCategories = exports.trainingLevels = exports.trainingGoals = exports.isCustomExerciseType = exports.customExericseTypes = exports.isExerciseType = exports.exerciseTypes = exports.isExerciseRepType = exports.exerciseRepTypes = exports.isEquipmentFilter = exports.equipmentFilters = exports.isEquipment = exports.equipments = exports.isMuscleGroupFilter = exports.muscleGroupFilters = exports.isMuscleGroup = exports.muscleGroups = exports.DefaultClientConfiguration = exports.isCoachRole = exports.isErrorResponse = exports.isLivePRVolumeOption = exports.isTimerVolumeOption = exports.isWeekday = exports.orderedWeekdays = exports.isBodyMeasurementUnit = exports.isDistanceUnitShort = exports.isDistanceUnit = exports.isWeightUnit = exports.isLanguage = exports.supportedLanguages = void 0;
|
|
17
|
+
exports.isValidUserWorkoutMetricsType = exports.isBodyMeasurementKey = exports.measurementsList = exports.isWorkoutBiometrics = exports.isHeartRateSamples = exports.isPublicWorkout = exports.isSetType = exports.isRPE = exports.validRpeValues = exports.isSetPersonalRecordType = exports.supportedInstructionsLanguages = exports.exerciseCategories = exports.trainingLevels = exports.trainingGoals = exports.isCustomExerciseType = exports.customExericseTypes = exports.isExerciseType = exports.exerciseTypes = exports.isExerciseRepType = exports.exerciseRepTypes = exports.isEquipmentFilter = exports.equipmentFilters = exports.isEquipment = exports.equipments = exports.isMuscleGroupFilter = exports.muscleGroupFilters = exports.isMuscleGroup = exports.muscleGroups = exports.isSimplifiedMuscleGroup = exports.simplifiedMuscleGroups = exports.miscellaneousMuscles = exports.chestMuscles = exports.backMuscles = exports.legMuscles = exports.armMuscles = exports.shoulderMuscles = exports.coreMuscles = exports.DefaultClientConfiguration = exports.isCoachRole = exports.isErrorResponse = exports.isLivePRVolumeOption = exports.isTimerVolumeOption = exports.isWeekday = exports.orderedWeekdays = exports.isBodyMeasurementUnit = exports.isDistanceUnitShort = exports.isDistanceUnit = exports.isWeightUnit = exports.isLanguage = exports.supportedLanguages = void 0;
|
|
18
18
|
const typeUtils_1 = require("./typeUtils");
|
|
19
19
|
__exportStar(require("./constants"), exports);
|
|
20
20
|
__exportStar(require("./utils"), exports);
|
|
@@ -104,28 +104,49 @@ const _supportedProStores = [
|
|
|
104
104
|
'paddle',
|
|
105
105
|
'hevy-coach',
|
|
106
106
|
];
|
|
107
|
-
exports.
|
|
108
|
-
|
|
107
|
+
exports.coreMuscles = ['abdominals'];
|
|
108
|
+
exports.shoulderMuscles = ['shoulders'];
|
|
109
|
+
exports.armMuscles = ['biceps', 'triceps', 'forearms'];
|
|
110
|
+
exports.legMuscles = [
|
|
111
|
+
'quadriceps',
|
|
112
|
+
'hamstrings',
|
|
113
|
+
'calves',
|
|
114
|
+
'glutes',
|
|
109
115
|
'abductors',
|
|
110
116
|
'adductors',
|
|
111
|
-
|
|
117
|
+
];
|
|
118
|
+
exports.backMuscles = [
|
|
119
|
+
'lats',
|
|
120
|
+
'traps',
|
|
112
121
|
'lower_back',
|
|
113
122
|
'upper_back',
|
|
123
|
+
];
|
|
124
|
+
exports.chestMuscles = ['chest'];
|
|
125
|
+
exports.miscellaneousMuscles = [
|
|
114
126
|
'cardio',
|
|
115
|
-
'chest',
|
|
116
|
-
'calves',
|
|
117
|
-
'forearms',
|
|
118
|
-
'glutes',
|
|
119
|
-
'hamstrings',
|
|
120
|
-
'lats',
|
|
121
|
-
'quadriceps',
|
|
122
|
-
'shoulders',
|
|
123
|
-
'triceps',
|
|
124
|
-
'traps',
|
|
125
127
|
'neck',
|
|
126
128
|
'full_body',
|
|
127
129
|
'other',
|
|
128
130
|
];
|
|
131
|
+
exports.simplifiedMuscleGroups = [
|
|
132
|
+
'core',
|
|
133
|
+
'shoulders',
|
|
134
|
+
'arms',
|
|
135
|
+
'legs',
|
|
136
|
+
'back',
|
|
137
|
+
'chest',
|
|
138
|
+
];
|
|
139
|
+
const isSimplifiedMuscleGroup = (x) => (0, typeUtils_1.isInArray)(x, exports.simplifiedMuscleGroups);
|
|
140
|
+
exports.isSimplifiedMuscleGroup = isSimplifiedMuscleGroup;
|
|
141
|
+
exports.muscleGroups = [
|
|
142
|
+
...exports.coreMuscles,
|
|
143
|
+
...exports.shoulderMuscles,
|
|
144
|
+
...exports.armMuscles,
|
|
145
|
+
...exports.legMuscles,
|
|
146
|
+
...exports.backMuscles,
|
|
147
|
+
...exports.chestMuscles,
|
|
148
|
+
...exports.miscellaneousMuscles,
|
|
149
|
+
];
|
|
129
150
|
const isMuscleGroup = (x) => (0, typeUtils_1.isInArray)(x, exports.muscleGroups);
|
|
130
151
|
exports.isMuscleGroup = isMuscleGroup;
|
|
131
152
|
exports.muscleGroupFilters = ['all_muscles', ...exports.muscleGroups];
|
package/built/muscleSplits.d.ts
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { MuscleGroup, SetType } from '.';
|
|
2
|
+
interface SetCountableExercise {
|
|
3
|
+
muscle_group: MuscleGroup;
|
|
4
|
+
other_muscles: MuscleGroup[];
|
|
5
|
+
sets: {
|
|
6
|
+
indicator: SetType;
|
|
7
|
+
}[];
|
|
8
|
+
}
|
|
9
|
+
interface SetCountableWorkoutOrRoutine {
|
|
10
|
+
exercises: SetCountableExercise[];
|
|
11
|
+
}
|
|
12
|
+
export declare const setCountPerSimplifiedMuscleGroups: (workoutsOrRoutines: SetCountableWorkoutOrRoutine[], shouldIncludeWarmupSets: boolean) => {
|
|
3
13
|
core: number;
|
|
4
14
|
shoulders: number;
|
|
5
15
|
arms: number;
|
|
@@ -7,3 +17,5 @@ export declare const calculateMuscleSplit: (workoutsOrRoutines: Workout[] | Base
|
|
|
7
17
|
back: number;
|
|
8
18
|
chest: number;
|
|
9
19
|
};
|
|
20
|
+
export declare const getSetCountPerMuscleGroups: (workout: SetCountableWorkoutOrRoutine, shouldIncludeWarmupSets: boolean) => Partial<{ [key in MuscleGroup]: number; }>;
|
|
21
|
+
export {};
|
package/built/muscleSplits.js
CHANGED
|
@@ -3,27 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.getSetCountPerMuscleGroups = exports.setCountPerSimplifiedMuscleGroups = void 0;
|
|
7
7
|
const intersection_1 = __importDefault(require("lodash/intersection"));
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
const shoulderMuscles = ['shoulders'];
|
|
11
|
-
const armMuscles = ['biceps', 'triceps', 'forearms'];
|
|
12
|
-
const legMuscles = [
|
|
13
|
-
'quadriceps',
|
|
14
|
-
'hamstrings',
|
|
15
|
-
'glutes',
|
|
16
|
-
'calves',
|
|
17
|
-
'abductors',
|
|
18
|
-
'adductors',
|
|
19
|
-
];
|
|
20
|
-
const backMuscles = [
|
|
21
|
-
'lower_back',
|
|
22
|
-
'upper_back',
|
|
23
|
-
'lats',
|
|
24
|
-
'traps',
|
|
25
|
-
];
|
|
26
|
-
const chestMuscles = ['chest'];
|
|
8
|
+
const _1 = require(".");
|
|
9
|
+
const setCountPerSimplifiedMuscleGroups = (workoutsOrRoutines, shouldIncludeWarmupSets) => {
|
|
27
10
|
let core = 0;
|
|
28
11
|
let shoulders = 0;
|
|
29
12
|
let arms = 0;
|
|
@@ -32,25 +15,28 @@ const calculateMuscleSplit = (workoutsOrRoutines) => {
|
|
|
32
15
|
let chest = 0;
|
|
33
16
|
const muscleGroupValueIncrement = (e, mg) => {
|
|
34
17
|
let increment = 0;
|
|
18
|
+
const trimmedSets = shouldIncludeWarmupSets
|
|
19
|
+
? e.sets
|
|
20
|
+
: e.sets.filter((s) => s.indicator !== 'warmup');
|
|
35
21
|
if (mg.includes(e.muscle_group)) {
|
|
36
|
-
increment +=
|
|
22
|
+
increment += trimmedSets.length;
|
|
37
23
|
}
|
|
38
24
|
else if ((0, intersection_1.default)(mg, e.other_muscles).length) {
|
|
39
|
-
increment +=
|
|
25
|
+
increment += trimmedSets.length / 2;
|
|
40
26
|
}
|
|
41
27
|
else if (e.muscle_group === 'full_body') {
|
|
42
|
-
increment +=
|
|
28
|
+
increment += trimmedSets.length / 6;
|
|
43
29
|
}
|
|
44
30
|
return increment;
|
|
45
31
|
};
|
|
46
|
-
for (const
|
|
47
|
-
for (const exercise of
|
|
48
|
-
core += muscleGroupValueIncrement(exercise, coreMuscles);
|
|
49
|
-
shoulders += muscleGroupValueIncrement(exercise, shoulderMuscles);
|
|
50
|
-
arms += muscleGroupValueIncrement(exercise, armMuscles);
|
|
51
|
-
legs += muscleGroupValueIncrement(exercise, legMuscles);
|
|
52
|
-
back += muscleGroupValueIncrement(exercise, backMuscles);
|
|
53
|
-
chest += muscleGroupValueIncrement(exercise, chestMuscles);
|
|
32
|
+
for (const workoutOrRoutine of workoutsOrRoutines) {
|
|
33
|
+
for (const exercise of workoutOrRoutine.exercises) {
|
|
34
|
+
core += muscleGroupValueIncrement(exercise, _1.coreMuscles);
|
|
35
|
+
shoulders += muscleGroupValueIncrement(exercise, _1.shoulderMuscles);
|
|
36
|
+
arms += muscleGroupValueIncrement(exercise, _1.armMuscles);
|
|
37
|
+
legs += muscleGroupValueIncrement(exercise, _1.legMuscles);
|
|
38
|
+
back += muscleGroupValueIncrement(exercise, _1.backMuscles);
|
|
39
|
+
chest += muscleGroupValueIncrement(exercise, _1.chestMuscles);
|
|
54
40
|
}
|
|
55
41
|
}
|
|
56
42
|
return {
|
|
@@ -62,4 +48,17 @@ const calculateMuscleSplit = (workoutsOrRoutines) => {
|
|
|
62
48
|
chest,
|
|
63
49
|
};
|
|
64
50
|
};
|
|
65
|
-
exports.
|
|
51
|
+
exports.setCountPerSimplifiedMuscleGroups = setCountPerSimplifiedMuscleGroups;
|
|
52
|
+
const getSetCountPerMuscleGroups = (workout, shouldIncludeWarmupSets) => {
|
|
53
|
+
return workout.exercises.reduce((acc, e) => {
|
|
54
|
+
const trimmedSets = shouldIncludeWarmupSets
|
|
55
|
+
? e.sets
|
|
56
|
+
: e.sets.filter((s) => s.indicator !== 'warmup');
|
|
57
|
+
acc[e.muscle_group] = (acc[e.muscle_group] || 0) + trimmedSets.length;
|
|
58
|
+
e.other_muscles.forEach((muscle) => {
|
|
59
|
+
acc[muscle] = (acc[muscle] || 0) + trimmedSets.length / 2;
|
|
60
|
+
});
|
|
61
|
+
return acc;
|
|
62
|
+
}, {});
|
|
63
|
+
};
|
|
64
|
+
exports.getSetCountPerMuscleGroups = getSetCountPerMuscleGroups;
|