hevy-shared 1.0.642 → 1.0.643
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 +3 -13
- package/built/index.js +14 -35
- package/built/muscleSplits.d.ts +2 -23
- package/built/muscleSplits.js +52 -58
- package/built/notifications.d.ts +4 -1
- package/package.json +1 -1
package/built/index.d.ts
CHANGED
|
@@ -444,6 +444,7 @@ export interface UserHevyProSubcription {
|
|
|
444
444
|
managing_store: UserHevyProSubcriptionStore;
|
|
445
445
|
type: 'monthly' | 'yearly' | 'lifetime' | 'custom';
|
|
446
446
|
expires_date?: string;
|
|
447
|
+
grace_period_expires_date?: string;
|
|
447
448
|
/**
|
|
448
449
|
* Set if the user has paused/cancelled their subscription
|
|
449
450
|
*/
|
|
@@ -549,20 +550,10 @@ export interface PublicUserProfile {
|
|
|
549
550
|
weekly_workout_durations: WeeklyWorkoutDuration[];
|
|
550
551
|
last_workout?: Workout;
|
|
551
552
|
}
|
|
552
|
-
export declare const
|
|
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
|
+
export declare const muscleGroups: readonly ["abdominals", "abductors", "adductors", "biceps", "lower_back", "upper_back", "cardio", "chest", "calves", "forearms", "glutes", "hamstrings", "lats", "quadriceps", "shoulders", "triceps", "traps", "neck", "full_body", "other"];
|
|
563
554
|
export type MuscleGroup = Lookup<typeof muscleGroups>;
|
|
564
555
|
export declare const isMuscleGroup: (x: string) => x is MuscleGroup;
|
|
565
|
-
export declare const muscleGroupFilters: readonly ["all_muscles", "abdominals", "
|
|
556
|
+
export declare const muscleGroupFilters: readonly ["all_muscles", "abdominals", "abductors", "adductors", "biceps", "lower_back", "upper_back", "cardio", "chest", "calves", "forearms", "glutes", "hamstrings", "lats", "quadriceps", "shoulders", "triceps", "traps", "neck", "full_body", "other"];
|
|
566
557
|
export type MuscleGroupFilter = Lookup<typeof muscleGroupFilters>;
|
|
567
558
|
export declare const isMuscleGroupFilter: (x: string) => x is MuscleGroupFilter;
|
|
568
559
|
/**
|
|
@@ -780,7 +771,6 @@ export interface Workout {
|
|
|
780
771
|
description?: string;
|
|
781
772
|
like_count: number;
|
|
782
773
|
like_images: string[];
|
|
783
|
-
liked_by_username: string | null;
|
|
784
774
|
comment_count: number;
|
|
785
775
|
comments: WorkoutComment[];
|
|
786
776
|
/** @deprecated 1.28.13 */
|
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.
|
|
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;
|
|
18
18
|
const typeUtils_1 = require("./typeUtils");
|
|
19
19
|
__exportStar(require("./constants"), exports);
|
|
20
20
|
__exportStar(require("./utils"), exports);
|
|
@@ -104,49 +104,28 @@ const _supportedProStores = [
|
|
|
104
104
|
'paddle',
|
|
105
105
|
'hevy-coach',
|
|
106
106
|
];
|
|
107
|
-
exports.
|
|
108
|
-
|
|
109
|
-
exports.armMuscles = ['biceps', 'triceps', 'forearms'];
|
|
110
|
-
exports.legMuscles = [
|
|
111
|
-
'quadriceps',
|
|
112
|
-
'hamstrings',
|
|
113
|
-
'calves',
|
|
114
|
-
'glutes',
|
|
107
|
+
exports.muscleGroups = [
|
|
108
|
+
'abdominals',
|
|
115
109
|
'abductors',
|
|
116
110
|
'adductors',
|
|
117
|
-
|
|
118
|
-
exports.backMuscles = [
|
|
119
|
-
'lats',
|
|
120
|
-
'traps',
|
|
111
|
+
'biceps',
|
|
121
112
|
'lower_back',
|
|
122
113
|
'upper_back',
|
|
123
|
-
];
|
|
124
|
-
exports.chestMuscles = ['chest'];
|
|
125
|
-
exports.miscellaneousMuscles = [
|
|
126
114
|
'cardio',
|
|
115
|
+
'chest',
|
|
116
|
+
'calves',
|
|
117
|
+
'forearms',
|
|
118
|
+
'glutes',
|
|
119
|
+
'hamstrings',
|
|
120
|
+
'lats',
|
|
121
|
+
'quadriceps',
|
|
122
|
+
'shoulders',
|
|
123
|
+
'triceps',
|
|
124
|
+
'traps',
|
|
127
125
|
'neck',
|
|
128
126
|
'full_body',
|
|
129
127
|
'other',
|
|
130
128
|
];
|
|
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
|
-
];
|
|
150
129
|
const isMuscleGroup = (x) => (0, typeUtils_1.isInArray)(x, exports.muscleGroups);
|
|
151
130
|
exports.isMuscleGroup = isMuscleGroup;
|
|
152
131
|
exports.muscleGroupFilters = ['all_muscles', ...exports.muscleGroups];
|
package/built/muscleSplits.d.ts
CHANGED
|
@@ -1,16 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
indicator: SetType;
|
|
4
|
-
}
|
|
5
|
-
interface SetCountableExercise {
|
|
6
|
-
muscle_group: MuscleGroup;
|
|
7
|
-
other_muscles: MuscleGroup[];
|
|
8
|
-
sets: SetCountableSet[];
|
|
9
|
-
}
|
|
10
|
-
interface SetCountableWorkoutOrRoutine {
|
|
11
|
-
exercises: SetCountableExercise[];
|
|
12
|
-
}
|
|
13
|
-
export declare const getSetContributionsForMuscleGroups: (muscle_group: MuscleGroup, other_muscles: MuscleGroup[]) => {
|
|
1
|
+
import { Workout, BaseRoutine } from '.';
|
|
2
|
+
export declare const calculateMuscleSplit: (workoutsOrRoutines: Workout[] | BaseRoutine[]) => {
|
|
14
3
|
core: number;
|
|
15
4
|
shoulders: number;
|
|
16
5
|
arms: number;
|
|
@@ -18,13 +7,3 @@ export declare const getSetContributionsForMuscleGroups: (muscle_group: MuscleGr
|
|
|
18
7
|
back: number;
|
|
19
8
|
chest: number;
|
|
20
9
|
};
|
|
21
|
-
export declare const calculateSimplifiedMuscleSplit: (workoutsOrRoutines: SetCountableWorkoutOrRoutine[], shouldIncludeWarmupSets: boolean) => {
|
|
22
|
-
core: number;
|
|
23
|
-
shoulders: number;
|
|
24
|
-
arms: number;
|
|
25
|
-
legs: number;
|
|
26
|
-
back: number;
|
|
27
|
-
chest: number;
|
|
28
|
-
};
|
|
29
|
-
export declare const getSetCountPerMuscleGroups: (workout: SetCountableWorkoutOrRoutine, shouldIncludeWarmupSets: boolean) => Partial<{ [key in MuscleGroup]: number; }>;
|
|
30
|
-
export {};
|
package/built/muscleSplits.js
CHANGED
|
@@ -3,69 +3,63 @@ 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.calculateMuscleSplit = void 0;
|
|
7
7
|
const intersection_1 = __importDefault(require("lodash/intersection"));
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
const calculateMuscleSplit = (workoutsOrRoutines) => {
|
|
9
|
+
const coreMuscles = ['abdominals'];
|
|
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'];
|
|
27
|
+
let core = 0;
|
|
28
|
+
let shoulders = 0;
|
|
29
|
+
let arms = 0;
|
|
30
|
+
let legs = 0;
|
|
31
|
+
let back = 0;
|
|
32
|
+
let chest = 0;
|
|
33
|
+
const muscleGroupValueIncrement = (e, mg) => {
|
|
34
|
+
let increment = 0;
|
|
35
|
+
if (mg.includes(e.muscle_group)) {
|
|
36
|
+
increment += e.sets.length;
|
|
13
37
|
}
|
|
14
|
-
else if ((0, intersection_1.default)(mg, other_muscles).length) {
|
|
15
|
-
|
|
38
|
+
else if ((0, intersection_1.default)(mg, e.other_muscles).length) {
|
|
39
|
+
increment += e.sets.length / 2;
|
|
16
40
|
}
|
|
17
|
-
else if (muscle_group === 'full_body') {
|
|
18
|
-
|
|
41
|
+
else if (e.muscle_group === 'full_body') {
|
|
42
|
+
increment += e.sets.length / 6;
|
|
19
43
|
}
|
|
20
|
-
return
|
|
44
|
+
return increment;
|
|
21
45
|
};
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
};
|
|
31
|
-
exports.getSetContributionsForMuscleGroups = getSetContributionsForMuscleGroups;
|
|
32
|
-
const calculateSimplifiedMuscleSplit = (workoutsOrRoutines, shouldIncludeWarmupSets) => {
|
|
33
|
-
const totals = {
|
|
34
|
-
core: 0,
|
|
35
|
-
shoulders: 0,
|
|
36
|
-
arms: 0,
|
|
37
|
-
legs: 0,
|
|
38
|
-
back: 0,
|
|
39
|
-
chest: 0,
|
|
40
|
-
};
|
|
41
|
-
for (const workoutOrRoutine of workoutsOrRoutines) {
|
|
42
|
-
for (const exercise of workoutOrRoutine.exercises) {
|
|
43
|
-
const trimmedSets = shouldIncludeWarmupSets
|
|
44
|
-
? exercise.sets
|
|
45
|
-
: exercise.sets.filter((s) => s.indicator !== 'warmup');
|
|
46
|
-
const setCount = trimmedSets.length;
|
|
47
|
-
const contributions = (0, exports.getSetContributionsForMuscleGroups)(exercise.muscle_group, exercise.other_muscles);
|
|
48
|
-
totals.core += contributions.core * setCount;
|
|
49
|
-
totals.shoulders += contributions.shoulders * setCount;
|
|
50
|
-
totals.arms += contributions.arms * setCount;
|
|
51
|
-
totals.legs += contributions.legs * setCount;
|
|
52
|
-
totals.back += contributions.back * setCount;
|
|
53
|
-
totals.chest += contributions.chest * setCount;
|
|
46
|
+
for (const workout of workoutsOrRoutines) {
|
|
47
|
+
for (const exercise of workout.exercises) {
|
|
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);
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
-
return
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
acc[e.muscle_group] = (acc[e.muscle_group] || 0) + trimmedSets.length;
|
|
65
|
-
e.other_muscles.forEach((muscle) => {
|
|
66
|
-
acc[muscle] = (acc[muscle] || 0) + trimmedSets.length / 2;
|
|
67
|
-
});
|
|
68
|
-
return acc;
|
|
69
|
-
}, {});
|
|
56
|
+
return {
|
|
57
|
+
core,
|
|
58
|
+
shoulders,
|
|
59
|
+
arms,
|
|
60
|
+
legs,
|
|
61
|
+
back,
|
|
62
|
+
chest,
|
|
63
|
+
};
|
|
70
64
|
};
|
|
71
|
-
exports.
|
|
65
|
+
exports.calculateMuscleSplit = calculateMuscleSplit;
|
package/built/notifications.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import { ClientsCoachData, Program } from '.';
|
|
9
9
|
import { HevyChatUpdateMobilePushData } from './chat';
|
|
10
10
|
export type Notification = WorkoutCompleteNotification | WorkoutMentionNotification | WorkoutCommentNotification | WorkoutCommentMentionNotification | WorkoutCommentReplyNotification | WorkoutCommentDiscussionNotification | WorkoutLikeNotification | WorkoutCommentLikeNotification | FollowNotification | FollowRequestNotification | AcceptFollowRequestNotification | CoachClientInviteNotification | ContactOnHevyNotification;
|
|
11
|
-
export type NotificationType = 'workout-complete' | 'workout-mention' | 'workout-comment' | 'workout-comment-mention' | 'workout-comment-reply' | 'workout-comment-reply-v2' | 'workout-like' | 'workout-comment-like' | 'follow' | 'follow-request' | 'accept-follow-request' | 'coach-client-invite' | 'contact-on-hevy';
|
|
11
|
+
export type NotificationType = 'workout-complete' | 'workout-mention' | 'workout-comment' | 'workout-comment-mention' | 'workout-comment-reply' | 'workout-comment-reply-v2' | 'workout-like' | 'workout-comment-like' | 'follow' | 'follow-request' | 'accept-follow-request' | 'grace-period-status' | 'coach-client-invite' | 'contact-on-hevy';
|
|
12
12
|
export interface BaseNotification {
|
|
13
13
|
id: number;
|
|
14
14
|
type: NotificationType;
|
|
@@ -111,6 +111,9 @@ export interface AcceptFollowRequestNotification extends BaseNotification {
|
|
|
111
111
|
export interface AcceptFollowRequestMobilePushData extends BaseMobilePushData {
|
|
112
112
|
type: 'accept-follow-request';
|
|
113
113
|
}
|
|
114
|
+
export interface GracePeriodStatusMobilePushData extends BaseMobilePushData {
|
|
115
|
+
type: 'grace-period-status';
|
|
116
|
+
}
|
|
114
117
|
export interface CoachClientInviteNotification extends BaseNotification {
|
|
115
118
|
type: 'coach-client-invite';
|
|
116
119
|
from_full_name?: string;
|