hevy-shared 1.0.969 → 1.0.971

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.
@@ -1,6 +1,6 @@
1
1
  import { WeeklyTrainingFrequency, TrainingGoal, TrainingLevel, SimplifiedMuscleGroup, MuscleGroup, LibraryExercise, ExerciseCategory, GranularEquipment, HevyTrainerProgramEquipment, RestTimerLength } from '.';
2
2
  export type HevyTrainerExerciseCategory = typeof hevyTrainerExerciseCategories[number];
3
- export type HevyTrainerRoutineName = typeof routineNames[number];
3
+ export type TrainerWorkoutTemplateName = typeof workoutTemplateNames[number];
4
4
  export declare const workoutDurationOptions: readonly [40, 60, 80];
5
5
  export type WorkoutDurationMinutes = typeof workoutDurationOptions[number];
6
6
  export declare const trainerGymTypes: readonly ["home_gym", "garage_gym", "commercial_gym", "full_gym"];
@@ -16,7 +16,7 @@ export declare const trainerEquipmentToGranularEquipments: (equipments: HevyTrai
16
16
  export declare const granularEquipmentsToTrainerEquipments: (granularEquipments: GranularEquipment[]) => HevyTrainerProgramEquipment[];
17
17
  export declare const hevyTrainerExerciseCategories: readonly ["compound", "isolation"];
18
18
  export declare const defaultDurationPerFrequency: Record<WeeklyTrainingFrequency, WorkoutDurationMinutes>;
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"];
19
+ export declare const workoutTemplateNames: 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"];
20
20
  export type exerciseId = string;
21
21
  export interface ExerciseSelectionCriteria {
22
22
  exerciseCategory: HevyTrainerExerciseCategory | 'all';
@@ -67,7 +67,7 @@ export interface ProgramGenerationParams<T extends HevyTrainerLibraryExercise> {
67
67
  debugExerciseSelectionTrace?: boolean;
68
68
  }
69
69
  export interface ProgramExerciseSelectionTraceRecord {
70
- routine: HevyTrainerRoutineName;
70
+ routine: TrainerWorkoutTemplateName;
71
71
  prescriptionIndex: number;
72
72
  prescription: ExercisePrescription;
73
73
  resolvedMuscleGroup: MuscleGroup;
@@ -80,7 +80,7 @@ export type TrainerProgramAttemptWithTraces = TrainerProgramAttempt & {
80
80
  };
81
81
  export type FrequencyString = 'one_day' | 'two_days' | 'three_days' | 'four_days' | 'five_days' | 'six_days';
82
82
  export declare const frequencyMap: Record<WeeklyTrainingFrequency, FrequencyString>;
83
- export declare const programSplits: Record<WeeklyTrainingFrequency, HevyTrainerRoutineName[]>;
83
+ export declare const programSplits: Record<WeeklyTrainingFrequency, TrainerWorkoutTemplateName[]>;
84
84
  export type SetsPerGoal = {
85
85
  [key in TrainingGoal]: number;
86
86
  };
@@ -126,7 +126,7 @@ export interface WorkoutTemplate {
126
126
  notes?: string;
127
127
  }
128
128
  export type Templates = {
129
- [key in HevyTrainerRoutineName]: WorkoutTemplate;
129
+ [key in TrainerWorkoutTemplateName]: WorkoutTemplate;
130
130
  };
131
131
  export interface BackofficeTrainerPreset {
132
132
  id?: number;
@@ -157,7 +157,7 @@ export interface TrainerProgramExercise {
157
157
  notes?: string;
158
158
  }
159
159
  export interface TrainerProgramRoutine {
160
- name: HevyTrainerRoutineName;
160
+ name: TrainerWorkoutTemplateName;
161
161
  exercises: TrainerProgramExercise[];
162
162
  notes?: string;
163
163
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- 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;
3
+ exports.getPrioritySortedExercises = exports.isEquipmentCompatible = exports.normalizeExerciseCategory = exports.getTrainerRestTimerSeconds = exports.getTrainerRepRange = exports.getTrainerSetCount = exports.programSplits = exports.frequencyMap = exports.workoutTemplateNames = exports.defaultDurationPerFrequency = exports.hevyTrainerExerciseCategories = exports.granularEquipmentsToTrainerEquipments = exports.trainerEquipmentToGranularEquipments = exports.granularEquipmentDefaults = exports.trainerGymTypes = exports.workoutDurationOptions = void 0;
4
4
  exports.pickExerciseForPrescription = pickExerciseForPrescription;
5
5
  exports.generateProgram = generateProgram;
6
6
  const _1 = require(".");
@@ -152,7 +152,7 @@ exports.defaultDurationPerFrequency = {
152
152
  5: 40,
153
153
  6: 40,
154
154
  };
155
- exports.routineNames = [
155
+ exports.workoutTemplateNames = [
156
156
  // Full body 1x
157
157
  'full_body_1',
158
158
  // Full body 2x
package/built/index.d.ts CHANGED
@@ -1,10 +1,7 @@
1
1
  import { InstructionsLanguage } from './exerciseLocaleUtils';
2
- import { WorkoutDurationMinutes } from './hevyTrainer';
3
- import { postEmailBackofficeSchema } from './schemas';
2
+ import { TrainerWorkoutTemplateName, WorkoutDurationMinutes } from './hevyTrainer';
4
3
  import { Language } from './translations';
5
4
  import { Lookup } from './typeUtils';
6
- import { z } from 'zod';
7
- export * from './schemas';
8
5
  export * from './constants';
9
6
  export * from './utils';
10
7
  export * from './units';
@@ -326,7 +323,6 @@ export type BackofficeShadowBannedUser = Pick<BackofficeExistingUserResponse, 'i
326
323
  backoffice_notes?: string;
327
324
  };
328
325
  export interface BackofficeUserComment {
329
- comment_id: number;
330
326
  workout_username: string;
331
327
  workout_short_id: string;
332
328
  comment_date: string;
@@ -885,6 +881,7 @@ export interface Workout {
885
881
  biometrics?: WorkoutBiometrics;
886
882
  is_biometrics_public: boolean;
887
883
  trainer_program_id: string | undefined;
884
+ trainer_workout_template_id: string | undefined;
888
885
  }
889
886
  export interface CustomExerciseImage {
890
887
  type: 'image';
@@ -964,6 +961,7 @@ export interface PostWorkoutRequestWorkout {
964
961
  biometrics?: WorkoutBiometrics;
965
962
  is_biometrics_public: boolean;
966
963
  trainer_program_id: string | undefined;
964
+ trainer_workout_template_id: string | undefined;
967
965
  }
968
966
  export declare const isHeartRateSamples: (x: any) => x is HeartRateSample[];
969
967
  export declare const isWorkoutBiometrics: (x: any) => x is WorkoutBiometrics;
@@ -1252,6 +1250,88 @@ export interface GetTeamInviteResponse {
1252
1250
  export interface OutstandingInvitesForCoachTeamResponse {
1253
1251
  invites: CoachTeamInvite[];
1254
1252
  }
1253
+ export interface TrainerWorkoutTemplateExercise {
1254
+ id: string;
1255
+ exercise_template_id: string;
1256
+ index: number;
1257
+ set_count: number;
1258
+ warmup_set_count: number;
1259
+ rep_range?: RepRange;
1260
+ rest_seconds: number;
1261
+ }
1262
+ export interface TrainerWorkoutTemplate {
1263
+ id: string;
1264
+ hevy_trainer_program_id: string;
1265
+ index: number;
1266
+ name: TrainerWorkoutTemplateName;
1267
+ exercises: TrainerWorkoutTemplateExercise[];
1268
+ }
1269
+ export interface TrainerProgramV3 {
1270
+ id: string;
1271
+ schema_version: 'v3';
1272
+ created_at: string;
1273
+ updated_at: string;
1274
+ level: TrainingLevel;
1275
+ goal: TrainingGoal;
1276
+ equipments: GranularEquipment[];
1277
+ weekly_frequency: WeeklyTrainingFrequency;
1278
+ templates: TrainerWorkoutTemplate[];
1279
+ focus_muscle?: SimplifiedMuscleGroup;
1280
+ next_workout_index: number;
1281
+ workout_duration_minutes: WorkoutDurationMinutes;
1282
+ rest_timer_length: RestTimerLength;
1283
+ }
1284
+ export interface PostTrainerProgramV3RequestBody {
1285
+ program: {
1286
+ title: string;
1287
+ level: TrainingLevel;
1288
+ goal: TrainingGoal;
1289
+ equipments: GranularEquipment[];
1290
+ weekly_frequency: WeeklyTrainingFrequency;
1291
+ focus_muscle?: SimplifiedMuscleGroup;
1292
+ next_workout_index?: number;
1293
+ workout_duration_minutes: WorkoutDurationMinutes;
1294
+ rest_timer_length: RestTimerLength;
1295
+ templates: {
1296
+ index: number;
1297
+ name: TrainerWorkoutTemplateName;
1298
+ exercises: {
1299
+ exercise_template_id: string;
1300
+ index: number;
1301
+ set_count: number;
1302
+ warmup_set_count: number;
1303
+ rep_range?: RepRange;
1304
+ rest_seconds: number;
1305
+ }[];
1306
+ }[];
1307
+ };
1308
+ }
1309
+ export interface UpdateTrainerProgramV3RequestBody {
1310
+ program: {
1311
+ programId: string;
1312
+ level: TrainingLevel;
1313
+ goal: TrainingGoal;
1314
+ equipments: GranularEquipment[];
1315
+ weekly_frequency: WeeklyTrainingFrequency;
1316
+ focus_muscle?: SimplifiedMuscleGroup;
1317
+ next_workout_index?: number;
1318
+ workout_duration_minutes: WorkoutDurationMinutes;
1319
+ rest_timer_length: RestTimerLength;
1320
+ templates: {
1321
+ id: string;
1322
+ index: number;
1323
+ name: TrainerWorkoutTemplateName;
1324
+ exercises: {
1325
+ exercise_template_id: string;
1326
+ index: number;
1327
+ set_count: number;
1328
+ warmup_set_count: number;
1329
+ rep_range?: RepRange;
1330
+ rest_seconds: number;
1331
+ }[];
1332
+ }[];
1333
+ };
1334
+ }
1255
1335
  export interface HevyTrainerProgram {
1256
1336
  id: string;
1257
1337
  created_at: string;
@@ -1991,7 +2071,6 @@ export interface GetAccountsByEmailResponse {
1991
2071
  wellhub_email: string | null;
1992
2072
  }[];
1993
2073
  }
1994
- export type PostEmailBackofficeRequest = z.infer<typeof postEmailBackofficeSchema>;
1995
2074
  export interface UserReportSummaryBackoffice {
1996
2075
  reported_by: string;
1997
2076
  reported_at: string;
package/built/index.js CHANGED
@@ -17,7 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.isHeartRateSamples = exports.isPublicWorkout = exports.isSetType = exports.isRPE = exports.validRpeValues = exports.isSetPersonalRecordType = exports.weeklyTrainingFrequencies = exports.isGranularEquipment = exports.granularEquipments = exports.hevyTrainerProgramEquipments = exports.restTimerLengths = 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.simplifiedMuscleGroupToMuscleGroups = 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.parseClientAuthTokenResponse = exports.isCoachRole = exports.isErrorResponse = exports.isLivePRVolumeOption = exports.isTimerVolumeOption = exports.isWeekday = exports.orderedWeekdays = exports.isBodyMeasurementUnit = exports.isDistanceUnitShort = exports.isDistanceUnit = exports.isWeightUnit = void 0;
18
18
  exports.isOAuthScope = exports.supportedScopes = exports.isSuggestedUserSource = exports.isValidUserWorkoutMetricsType = exports.isBodyMeasurementKey = exports.measurementsList = exports.isHevyTrainerRoutine = exports.isWorkoutBiometrics = void 0;
19
19
  const typeUtils_1 = require("./typeUtils");
20
- __exportStar(require("./schemas"), exports);
21
20
  __exportStar(require("./constants"), exports);
22
21
  __exportStar(require("./utils"), exports);
23
22
  __exportStar(require("./units"), exports);
@@ -36,6 +36,7 @@ export interface NormalizedWorkout {
36
36
  clientId: string;
37
37
  biometrics?: WorkoutBiometrics;
38
38
  trainerProgramId: string | undefined;
39
+ trainerWorkoutTemplateId?: string;
39
40
  }
40
41
  export interface NormalizedSet {
41
42
  index: number;
@@ -236,7 +236,7 @@ const makeSettings = (overrides = {}) => {
236
236
  };
237
237
  return acc;
238
238
  }, {});
239
- const templates = hevyTrainer_1.routineNames.reduce((acc, name) => {
239
+ const templates = hevyTrainer_1.workoutTemplateNames.reduce((acc, name) => {
240
240
  acc[name] = { exercises: [] };
241
241
  return acc;
242
242
  }, {});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hevy-shared",
3
- "version": "1.0.969",
3
+ "version": "1.0.971",
4
4
  "description": "",
5
5
  "main": "built/index.js",
6
6
  "types": "built/index.d.ts",
@@ -51,7 +51,6 @@
51
51
  },
52
52
  "dependencies": {
53
53
  "dayjs": "^1.11.19",
54
- "lodash": "^4.17.21",
55
- "zod": "3.24.3"
54
+ "lodash": "^4.17.21"
56
55
  }
57
56
  }
@@ -1,14 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const postEmailBackofficeSchema: z.ZodObject<{
3
- toUserId: z.ZodString;
4
- subject: z.ZodString;
5
- message: z.ZodString;
6
- }, "strip", z.ZodTypeAny, {
7
- message: string;
8
- toUserId: string;
9
- subject: string;
10
- }, {
11
- message: string;
12
- toUserId: string;
13
- subject: string;
14
- }>;
package/built/schemas.js DELETED
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.postEmailBackofficeSchema = void 0;
4
- const zod_1 = require("zod");
5
- exports.postEmailBackofficeSchema = zod_1.z.object({
6
- toUserId: zod_1.z.string(),
7
- subject: zod_1.z.string(),
8
- message: zod_1.z.string(),
9
- });