hevy-shared 1.0.913 → 1.0.915

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.
@@ -9,6 +9,11 @@ export declare const granularEquipmentDefaults: {
9
9
  [key in TrainerGymType]: GranularEquipment[];
10
10
  };
11
11
  export declare const trainerEquipmentToGranularEquipments: (equipments: HevyTrainerProgramEquipment[]) => GranularEquipment[];
12
+ /**
13
+ * Converts granular equipment values back to the old HevyTrainerProgramEquipment
14
+ * types for backwards compatibility with old mobile clients.
15
+ */
16
+ export declare const granularEquipmentsToTrainerEquipments: (granularEquipments: GranularEquipment[]) => HevyTrainerProgramEquipment[];
12
17
  export declare const hevyTrainerExerciseCategories: readonly ["compound", "isolation"];
13
18
  export declare const defaultDurationPerFrequency: Record<WeeklyTrainingFrequency, WorkoutDurationMinutes>;
14
19
  export declare const routineNames: readonly ["full_body_1", "full_body_2_a", "full_body_2_b", "full_body_3_a", "full_body_3_b", "full_body_3_c", "upper_1_a", "lower_1_a", "upper_1_b", "lower_1_b", "push_1", "pull_1", "legs_1", "upper_2", "lower_2", "push_2_a", "pull_2_a", "legs_2_a", "push_2_b", "pull_2_b", "legs_2_b"];
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateProgram = exports.pickExerciseForPrescription = exports.getPrioritySortedExercises = exports.isEquipmentCompatible = exports.normalizeExerciseCategory = exports.getTrainerRestTimerSeconds = exports.getTrainerRepRange = exports.getTrainerSetCount = exports.programSplits = exports.frequencyMap = exports.routineNames = exports.defaultDurationPerFrequency = exports.hevyTrainerExerciseCategories = exports.trainerEquipmentToGranularEquipments = exports.granularEquipmentDefaults = exports.trainerGymTypes = exports.workoutDurationOptions = void 0;
3
+ exports.generateProgram = exports.pickExerciseForPrescription = exports.getPrioritySortedExercises = exports.isEquipmentCompatible = exports.normalizeExerciseCategory = exports.getTrainerRestTimerSeconds = exports.getTrainerRepRange = exports.getTrainerSetCount = exports.programSplits = exports.frequencyMap = exports.routineNames = exports.defaultDurationPerFrequency = exports.hevyTrainerExerciseCategories = exports.granularEquipmentsToTrainerEquipments = exports.trainerEquipmentToGranularEquipments = exports.granularEquipmentDefaults = exports.trainerGymTypes = exports.workoutDurationOptions = void 0;
4
4
  const _1 = require(".");
5
5
  const MAX_BARBELL_EXERCISES_PER_ROUTINE = 2;
6
6
  exports.workoutDurationOptions = [40, 60, 80];
@@ -111,6 +111,35 @@ const trainerEquipmentToGranularEquipments = (equipments) => {
111
111
  return Array.from(new Set(granularEquipments));
112
112
  };
113
113
  exports.trainerEquipmentToGranularEquipments = trainerEquipmentToGranularEquipments;
114
+ const MACHINE_SPECIFIC_GRANULAR_EQUIPMENTS = [
115
+ 'smith_machine',
116
+ 'leg_press_machine',
117
+ 'dual_cable_machine',
118
+ 'single_cable_machine',
119
+ 'lat_pulldown_cable',
120
+ 'plate_machines',
121
+ 'stack_machines',
122
+ 'dip_bar',
123
+ 'pullup_bar',
124
+ ];
125
+ /**
126
+ * Converts granular equipment values back to the old HevyTrainerProgramEquipment
127
+ * types for backwards compatibility with old mobile clients.
128
+ */
129
+ const granularEquipmentsToTrainerEquipments = (granularEquipments) => {
130
+ const result = [];
131
+ if (granularEquipments.includes('barbell')) {
132
+ result.push('barbell');
133
+ }
134
+ if (granularEquipments.includes('dumbbell')) {
135
+ result.push('dumbbell');
136
+ }
137
+ if (granularEquipments.some((eq) => MACHINE_SPECIFIC_GRANULAR_EQUIPMENTS.includes(eq))) {
138
+ result.push('machine');
139
+ }
140
+ return result;
141
+ };
142
+ exports.granularEquipmentsToTrainerEquipments = granularEquipmentsToTrainerEquipments;
114
143
  exports.hevyTrainerExerciseCategories = ['compound', 'isolation'];
115
144
  // These are the values that Philip decided for the default duration per frequency
116
145
  exports.defaultDurationPerFrequency = {
package/built/index.d.ts CHANGED
@@ -1255,9 +1255,7 @@ export interface HevyTrainerProgram {
1255
1255
  title: string;
1256
1256
  level: TrainingLevel;
1257
1257
  goal: TrainingGoal;
1258
- /** @deprecated Use granular_equipments instead */
1259
- equipments: HevyTrainerProgramEquipment[];
1260
- granular_equipments: GranularEquipment[];
1258
+ equipments: GranularEquipment[];
1261
1259
  weekly_frequency: WeeklyTrainingFrequency;
1262
1260
  routines: HevyTrainerRoutine[];
1263
1261
  focus_muscle?: SimplifiedMuscleGroup;
@@ -1269,9 +1267,7 @@ export interface PostHevyTrainerProgramRequestBody {
1269
1267
  title: string;
1270
1268
  level: TrainingLevel;
1271
1269
  goal: TrainingGoal;
1272
- /** @deprecated Use granular_equipments instead */
1273
- equipments?: HevyTrainerProgramEquipment[];
1274
- granular_equipments: GranularEquipment[];
1270
+ equipments: GranularEquipment[];
1275
1271
  weekly_frequency: WeeklyTrainingFrequency;
1276
1272
  focus_muscle?: SimplifiedMuscleGroup;
1277
1273
  routines: RoutineUpdate[];
@@ -1285,9 +1281,7 @@ export interface UpdateHevyTrainerProgramRequestBody {
1285
1281
  title: string;
1286
1282
  level: TrainingLevel;
1287
1283
  goal: TrainingGoal;
1288
- /** @deprecated Use granular_equipments instead */
1289
- equipments?: HevyTrainerProgramEquipment[];
1290
- granular_equipments: GranularEquipment[];
1284
+ equipments: GranularEquipment[];
1291
1285
  weekly_frequency: WeeklyTrainingFrequency;
1292
1286
  focus_muscle?: SimplifiedMuscleGroup;
1293
1287
  next_workout_index?: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hevy-shared",
3
- "version": "1.0.913",
3
+ "version": "1.0.915",
4
4
  "description": "",
5
5
  "main": "built/index.js",
6
6
  "types": "built/index.d.ts",