hevy-shared 1.0.567 → 1.0.568

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 CHANGED
@@ -1,4 +1,4 @@
1
- import { Lookup } from './typeUtils';
1
+ import { Lookup as _Lookup } from './typeUtils';
2
2
  export * from './constants';
3
3
  export * from './utils';
4
4
  export * from './units';
@@ -16,8 +16,12 @@ export * from './normalizedWorkoutUtils';
16
16
  export * from './routineUtils';
17
17
  export * from './typeUtils';
18
18
  export * from './async';
19
+ export * from './index.zod';
19
20
  export declare const supportedLanguages: readonly ["en", "es", "de", "fr", "it", "pt", "tr", "zh_CN", "zh_TW", "ru", "ja", "ko"];
20
- export type Language = Lookup<typeof supportedLanguages>;
21
+ /**
22
+ * @schema enum(['en', 'es', 'de', 'fr', 'it', 'pt', 'tr', 'zh_CN', 'zh_TW', 'ru', 'ja', 'ko'])
23
+ */
24
+ export type Language = _Lookup<typeof supportedLanguages>;
21
25
  export declare const isLanguage: (x: string) => x is Language;
22
26
  export type WeightUnit = 'kg' | 'lbs';
23
27
  export declare const isWeightUnit: (x: string) => x is WeightUnit;
@@ -29,13 +33,22 @@ export type BodyMeasurementUnit = 'cm' | 'in';
29
33
  export declare const isBodyMeasurementUnit: (x: string) => x is BodyMeasurementUnit;
30
34
  /** Monday is first */
31
35
  export declare const orderedWeekdays: readonly ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"];
32
- export type Weekday = Lookup<typeof orderedWeekdays>;
36
+ /**
37
+ * @schema enum(['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'])
38
+ */
39
+ export type Weekday = _Lookup<typeof orderedWeekdays>;
33
40
  export declare const isWeekday: (x: string) => x is Weekday;
34
41
  declare const _timerVolumeOptions: readonly ["off", "low", "normal", "high"];
35
- export type TimerVolumeOption = Lookup<typeof _timerVolumeOptions>;
42
+ /**
43
+ * @schema enum(['off', 'low', 'normal', 'high'])
44
+ */
45
+ export type TimerVolumeOption = _Lookup<typeof _timerVolumeOptions>;
36
46
  export declare const isTimerVolumeOption: (x: string) => x is TimerVolumeOption;
37
47
  declare const _livePRVolumeOption: readonly ["off", "low", "normal", "high"];
38
- export type LivePRVolumeOption = Lookup<typeof _livePRVolumeOption>;
48
+ /**
49
+ * @schema enum(['off', 'low', 'normal', 'high'])
50
+ */
51
+ export type LivePRVolumeOption = _Lookup<typeof _livePRVolumeOption>;
39
52
  export declare const isLivePRVolumeOption: (x: string) => x is LivePRVolumeOption;
40
53
  export interface ErrorResponse {
41
54
  error: string;
@@ -109,7 +122,10 @@ export interface CoachAppPushTarget {
109
122
  token: string;
110
123
  }
111
124
  declare const _coachRoles: readonly ["member", "admin", "owner"];
112
- export type CoachRole = Lookup<typeof _coachRoles>;
125
+ /**
126
+ * @schema enum(['member', 'admin', 'owner'])
127
+ */
128
+ export type CoachRole = _Lookup<typeof _coachRoles>;
113
129
  export declare const isCoachRole: (role: any) => role is CoachRole;
114
130
  export interface CoachAccount {
115
131
  id: string;
@@ -434,7 +450,10 @@ export interface UserShadowBanMetadata {
434
450
  recaptcha_score?: number | null;
435
451
  }
436
452
  declare const _supportedProStores: readonly ["app_store", "play_store", "stripe", "hevy-gift", "gympass", "paddle", "hevy-coach"];
437
- type UserHevyProSubcriptionStore = Lookup<typeof _supportedProStores>;
453
+ /**
454
+ * @schema enum(['app_store', 'play_store', 'stripe', 'hevy-gift', 'gympass', 'paddle', 'hevy-coach'])
455
+ */
456
+ type UserHevyProSubcriptionStore = _Lookup<typeof _supportedProStores>;
438
457
  export interface UserHevyProSubcription {
439
458
  is_pro: boolean;
440
459
  active_subscription?: {
@@ -465,15 +484,23 @@ export interface UserPreferences {
465
484
  live_pr_volume?: LivePRVolumeOption;
466
485
  inline_set_timer_enabled?: boolean;
467
486
  default_workout_visibility_public?: boolean;
468
- default_workout_biometrics_visibility_public?: boolean;
469
487
  /** Only updateable by the backend within a special API */
470
488
  volume_includes_warmup_sets?: boolean;
471
489
  }
472
490
  export type UpdateUserPreferencesRequest = Omit<UserPreferences, 'username' | 'volume_includes_warmup_sets'>;
491
+ /**
492
+ * @schema enum(['not-following', 'following', 'requested'])
493
+ */
473
494
  export type FollowingStatus = 'not-following' | 'following' | 'requested';
495
+ /**
496
+ * @schema record(FollowingStatus.exclude(['not-following']))
497
+ */
474
498
  export type FollowingStatusMap = {
475
- [id: string]: Omit<FollowingStatus, 'not-following'>;
499
+ [id: string]: Exclude<FollowingStatus, 'not-following'>;
476
500
  };
501
+ /**
502
+ * @schema record(z.enum(['following', 'requested']))
503
+ */
477
504
  export type FollowingStatusesResponse = {
478
505
  [id: string]: 'following' | 'requested';
479
506
  };
@@ -547,19 +574,31 @@ export interface PublicUserProfile {
547
574
  last_workout?: Workout;
548
575
  }
549
576
  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"];
550
- export type MuscleGroup = Lookup<typeof muscleGroups>;
577
+ /**
578
+ * @schema enum(['abdominals', 'abductors', 'adductors', 'biceps', 'lower_back', 'upper_back', 'cardio', 'chest', 'calves', 'forearms', 'glutes', 'hamstrings', 'lats', 'quadriceps', 'shoulders', 'triceps', 'traps', 'neck', 'full_body', 'other'])
579
+ */
580
+ export type MuscleGroup = _Lookup<typeof muscleGroups>;
551
581
  export declare const isMuscleGroup: (x: string) => x is MuscleGroup;
552
582
  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"];
553
- export type MuscleGroupFilter = Lookup<typeof muscleGroupFilters>;
583
+ /**
584
+ * @schema enum(['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'])
585
+ */
586
+ export type MuscleGroupFilter = _Lookup<typeof muscleGroupFilters>;
554
587
  export declare const isMuscleGroupFilter: (x: string) => x is MuscleGroupFilter;
555
588
  /**
556
589
  * Equipment
557
590
  */
558
591
  export declare const equipments: readonly ["none", "barbell", "dumbbell", "kettlebell", "machine", "plate", "resistance_band", "suspension", "other"];
559
- export type Equipment = Lookup<typeof equipments>;
592
+ /**
593
+ * @schema enum(['none', 'barbell', 'dumbbell', 'kettlebell', 'machine', 'plate', 'resistance_band', 'suspension', 'other'])
594
+ */
595
+ export type Equipment = _Lookup<typeof equipments>;
560
596
  export declare const isEquipment: (x: string) => x is Equipment;
561
597
  export declare const equipmentFilters: readonly ["all_equipment", "none", "barbell", "dumbbell", "kettlebell", "machine", "plate", "resistance_band", "suspension", "other"];
562
- export type EquipmentFilter = Lookup<typeof equipmentFilters>;
598
+ /**
599
+ * @schema enum(['all_equipment', 'none', 'barbell', 'dumbbell', 'kettlebell', 'machine', 'plate', 'resistance_band', 'suspension', 'other'])
600
+ */
601
+ export type EquipmentFilter = _Lookup<typeof equipmentFilters>;
563
602
  export declare const isEquipmentFilter: (x: string) => x is EquipmentFilter;
564
603
  export declare const exerciseRepTypes: readonly ["weight_reps", "reps_only", "bodyweight_reps", "bodyweight_assisted_reps"];
565
604
  /**
@@ -570,11 +609,20 @@ export declare const exerciseRepTypes: readonly ["weight_reps", "reps_only", "bo
570
609
  * bodyweight_assisted_reps = Pull Ups (Assisted)
571
610
  * reps_only = Pull ups
572
611
  */
573
- export type ExerciseRepType = Lookup<typeof exerciseRepTypes>;
612
+ /**
613
+ * @schema enum(['weight_reps', 'reps_only', 'bodyweight_reps', 'bodyweight_assisted_reps'])
614
+ */
615
+ export type ExerciseRepType = _Lookup<typeof exerciseRepTypes>;
574
616
  export declare const isExerciseRepType: (x: any) => x is ExerciseRepType;
575
617
  export declare const exerciseTypes: readonly ["weight_reps", "reps_only", "bodyweight_reps", "bodyweight_assisted_reps", "duration", "weight_duration", "distance_duration", "short_distance_weight", "floors_duration", "steps_duration"];
576
- export type ExerciseType = Lookup<typeof exerciseTypes>;
618
+ /**
619
+ * @schema enum(['weight_reps', 'reps_only', 'bodyweight_reps', 'bodyweight_assisted_reps', 'duration', 'weight_duration', 'distance_duration', 'short_distance_weight', 'floors_duration', 'steps_duration'])
620
+ */
621
+ export type ExerciseType = _Lookup<typeof exerciseTypes>;
577
622
  export declare const isExerciseType: (x: any) => x is ExerciseType;
623
+ /**
624
+ * @schema enum(['weight_reps', 'reps_only', 'bodyweight_reps', 'bodyweight_assisted_reps', 'duration', 'weight_duration', 'distance_duration', 'short_distance_weight'])
625
+ */
578
626
  export type CustomExerciseType = Exclude<ExerciseType, 'floors_duration' | 'steps_duration'>;
579
627
  export declare const customExericseTypes: CustomExerciseType[];
580
628
  export declare const isCustomExerciseType: (x: any) => x is CustomExerciseType;
@@ -622,7 +670,12 @@ export interface LibraryExercise extends BaseExerciseTemplate {
622
670
  zh_cn_title?: string;
623
671
  zh_tw_title?: string;
624
672
  localised_instructions?: {
625
- [language in InstructionsLanguage]?: string;
673
+ en?: string;
674
+ it?: string;
675
+ de?: string;
676
+ es?: string;
677
+ fr?: string;
678
+ pt?: string;
626
679
  };
627
680
  }
628
681
  /**
@@ -639,20 +692,29 @@ export interface CustomExercise extends BaseExerciseTemplate {
639
692
  parent_exercise_template_id?: string;
640
693
  }
641
694
  export declare const supportedInstructionsLanguages: readonly ["en", "it", "de", "es", "fr", "pt"];
642
- export type InstructionsLanguage = Lookup<typeof supportedInstructionsLanguages>;
695
+ /**
696
+ * @schema enum(['en', 'it', 'de', 'es', 'fr', 'pt'])
697
+ */
698
+ export type InstructionsLanguage = _Lookup<typeof supportedInstructionsLanguages>;
643
699
  /** Workouts */
644
700
  declare const _setPersonalRecordTypes: readonly ["best_weight", "best_reps", "best_volume", "best_1rm", "best_duration", "best_distance"];
645
- export type SetPersonalRecordType = Lookup<typeof _setPersonalRecordTypes>;
701
+ /**
702
+ * @schema enum(['best_weight', 'best_reps', 'best_volume', 'best_1rm', 'best_duration', 'best_distance'])
703
+ */
704
+ export type SetPersonalRecordType = _Lookup<typeof _setPersonalRecordTypes>;
646
705
  export interface SetPersonalRecord {
647
706
  exercise_template_id: string;
648
707
  type: SetPersonalRecordType;
649
708
  record: number;
650
709
  }
651
710
  export declare const validRpeValues: readonly [6, 7, 7.5, 8, 8.5, 9, 9.5, 10];
652
- export type RPE = Lookup<typeof validRpeValues>;
711
+ export type RPE = 6 | 7 | 7.5 | 8 | 8.5 | 9 | 9.5 | 10;
653
712
  export declare const isRPE: (x: number) => x is RPE;
654
713
  declare const _setTypes: readonly ["warmup", "normal", "failure", "dropset"];
655
- export type SetType = Lookup<typeof _setTypes>;
714
+ /**
715
+ * @schema enum(['warmup', 'normal', 'failure', 'dropset'])
716
+ */
717
+ export type SetType = _Lookup<typeof _setTypes>;
656
718
  export declare const isSetType: (x: string) => x is SetType;
657
719
  export interface RepRange {
658
720
  start: number | null;
@@ -738,7 +800,6 @@ export interface WorkoutComment {
738
800
  like_count: number;
739
801
  is_liked_by_user: boolean;
740
802
  parent_comment_id?: number;
741
- replying_to_comment_id?: number;
742
803
  }
743
804
  export interface WorkoutImage {
744
805
  type: 'image';
@@ -792,8 +853,6 @@ export interface Workout {
792
853
  * If applicable, the user ID of the coach who logged this workout
793
854
  */
794
855
  logged_by_coach_id?: string;
795
- biometrics?: WorkoutBiometrics;
796
- is_biometrics_public: boolean;
797
856
  }
798
857
  export interface CustomExerciseImage {
799
858
  type: 'image';
@@ -870,18 +929,6 @@ export interface PostWorkoutRequestWorkout {
870
929
  wearos_watch: boolean;
871
930
  workout_id: string;
872
931
  is_private: boolean;
873
- biometrics?: WorkoutBiometrics;
874
- is_biometrics_public: boolean;
875
- }
876
- export declare const isHeartRateSamples: (x: any) => x is HeartRateSample[];
877
- export declare const isWorkoutBiometrics: (x: any) => x is WorkoutBiometrics;
878
- export interface WorkoutBiometrics {
879
- total_calories?: number;
880
- heart_rate_samples?: HeartRateSample[];
881
- }
882
- export interface HeartRateSample {
883
- timestamp_ms: number;
884
- bpm: number;
885
932
  }
886
933
  export interface PostWorkoutRequestExercise {
887
934
  title: string;
@@ -908,13 +955,15 @@ export interface PostWorkoutRequestSet {
908
955
  custom_metric?: number;
909
956
  rpe?: RPE;
910
957
  }
958
+ type UpdateWorkoutRequestWorkoutOptionalFields = Pick<PostWorkoutRequestWorkout, 'title' | 'description' | 'media' | 'exercises' | 'is_private'>;
959
+ type UpdateWorkoutRequestWorkoutRequiredFields = Required<Pick<PostWorkoutRequestWorkout, 'start_time' | 'end_time'>>;
911
960
  /**
912
961
  * Used to update an existing workout. Props that are defined will be used to
913
962
  * update the corresponding values of the workout in the database, and those
914
963
  * that are undefined will not be changed.
915
964
  */
916
- export type UpdateWorkoutRequestWorkout = Partial<Pick<PostWorkoutRequestWorkout, 'title' | 'description' | 'media' | 'exercises' | 'is_private' | 'is_biometrics_public'>> & {
917
- start_and_end_time?: Required<Pick<PostWorkoutRequestWorkout, 'start_time' | 'end_time'>>;
965
+ export type UpdateWorkoutRequestWorkout = Partial<UpdateWorkoutRequestWorkoutOptionalFields> & {
966
+ start_and_end_time?: UpdateWorkoutRequestWorkoutRequiredFields;
918
967
  };
919
968
  /** Routines */
920
969
  export interface RoutineSet {
@@ -1147,10 +1196,28 @@ export interface OutstandingInvitesForCoachTeamResponse {
1147
1196
  invites: CoachTeamInvite[];
1148
1197
  }
1149
1198
  export declare const measurementsList: readonly ["weight_kg", "fat_percent", "neck_cm", "shoulder_cm", "chest_cm", "left_bicep_cm", "right_bicep_cm", "left_forearm_cm", "right_forearm_cm", "abdomen", "waist", "hips", "left_thigh", "right_thigh", "left_calf", "right_calf"];
1150
- type MeasurementProperties = {
1151
- [key in typeof measurementsList[number]]?: number;
1152
- };
1153
- export type BodyMeasurementKey = Lookup<typeof measurementsList>;
1199
+ interface MeasurementProperties {
1200
+ weight_kg?: number;
1201
+ fat_percent?: number;
1202
+ neck_cm?: number;
1203
+ shoulder_cm?: number;
1204
+ chest_cm?: number;
1205
+ left_bicep_cm?: number;
1206
+ right_bicep_cm?: number;
1207
+ left_forearm_cm?: number;
1208
+ right_forearm_cm?: number;
1209
+ abdomen?: number;
1210
+ waist?: number;
1211
+ hips?: number;
1212
+ left_thigh?: number;
1213
+ right_thigh?: number;
1214
+ left_calf?: number;
1215
+ right_calf?: number;
1216
+ }
1217
+ /**
1218
+ * @schema enum(['weight_kg', 'fat_percent', 'neck_cm', 'shoulder_cm', 'chest_cm', 'left_bicep_cm', 'right_bicep_cm', 'left_forearm_cm', 'right_forearm_cm', 'abdomen', 'waist', 'hips', 'left_thigh', 'right_thigh', 'left_calf', 'right_calf'])
1219
+ */
1220
+ export type BodyMeasurementKey = _Lookup<typeof measurementsList>;
1154
1221
  export declare const isBodyMeasurementKey: (key: string) => key is BodyMeasurementKey;
1155
1222
  export interface BodyMeasurement extends MeasurementProperties {
1156
1223
  id: number;
@@ -1276,9 +1343,28 @@ export interface UserExerciseSet {
1276
1343
  user_bodyweight_kg: number | null;
1277
1344
  custom_metric: number | null;
1278
1345
  }
1279
- export type SetCountMuscleSplitResponse = {
1280
- [key in MuscleGroup]: number;
1281
- };
1346
+ export interface SetCountMuscleSplitResponse {
1347
+ abdominals: number;
1348
+ abductors: number;
1349
+ adductors: number;
1350
+ biceps: number;
1351
+ lower_back: number;
1352
+ upper_back: number;
1353
+ cardio: number;
1354
+ chest: number;
1355
+ calves: number;
1356
+ forearms: number;
1357
+ glutes: number;
1358
+ hamstrings: number;
1359
+ lats: number;
1360
+ quadriceps: number;
1361
+ shoulders: number;
1362
+ triceps: number;
1363
+ traps: number;
1364
+ neck: number;
1365
+ full_body: number;
1366
+ other: number;
1367
+ }
1282
1368
  export type ComparableExerciseTemplatesResponse = Array<{
1283
1369
  exercise_template_id: string;
1284
1370
  }>;
@@ -1308,7 +1394,7 @@ export interface ExerciseLeaderboardResponse {
1308
1394
  }
1309
1395
  export type StrengthLevel = 'beginner' | 'intermediate' | 'advanced' | 'elite';
1310
1396
  export interface GetStrengthLevelParams {
1311
- sex: Omit<Sex, 'other'>;
1397
+ sex: 'male' | 'female';
1312
1398
  best_1rm_kg: number;
1313
1399
  exercise_template_id: string;
1314
1400
  age: number;
@@ -1429,10 +1515,11 @@ export interface StripeCustomerPortalSessionRequest {
1429
1515
  export interface StripeCustomerPortalSessionResponse {
1430
1516
  url: string;
1431
1517
  }
1432
- export type UserValue = string | number | boolean | null | UserValue[];
1433
- export type UserKeyValues = {
1434
- [key: string]: UserValue;
1435
- };
1518
+ export type UserValue = string | number | boolean | null | unknown[];
1519
+ export type UserKeyValues = Record<string, UserValue>;
1520
+ /**
1521
+ * @schema enum(['male', 'female', 'other'])
1522
+ */
1436
1523
  export type Sex = 'male' | 'female' | 'other';
1437
1524
  /**
1438
1525
  * Used for the chat backend to validate authentication details
@@ -1441,8 +1528,9 @@ export type UserAuthenticationValidationResponse = 'unauthorized' | 'authorized_
1441
1528
  declare const _validUserWorkoutMetricsTypes: readonly ["duration", "reps"];
1442
1529
  /**
1443
1530
  * Used for hevy-web for fetching profile metrics and calendar data
1531
+ * @schema enum(['duration', 'reps'])
1444
1532
  */
1445
- export type UserWorkoutMetricsType = Lookup<typeof _validUserWorkoutMetricsTypes>;
1533
+ export type UserWorkoutMetricsType = _Lookup<typeof _validUserWorkoutMetricsTypes>;
1446
1534
  export declare const isValidUserWorkoutMetricsType: (x: any) => x is UserWorkoutMetricsType;
1447
1535
  interface WorkoutMetricBase {
1448
1536
  workout_id: string;
@@ -1535,8 +1623,8 @@ interface BaseFeedback {
1535
1623
  type: FeedbackType;
1536
1624
  userId: string;
1537
1625
  message?: string;
1538
- data?: any;
1539
- debugInfo?: any;
1626
+ data?: unknown;
1627
+ debugInfo?: unknown;
1540
1628
  }
1541
1629
  export interface GeneralFeedback extends BaseFeedback {
1542
1630
  type: 'general';
@@ -1604,8 +1692,8 @@ export type BackofficeFeedback = {
1604
1692
  type: string;
1605
1693
  username?: string;
1606
1694
  message?: string;
1607
- data?: any;
1608
- debug_info?: any;
1695
+ data?: unknown;
1696
+ debug_info?: unknown;
1609
1697
  created_at: Date;
1610
1698
  };
1611
1699
  export interface BackofficeFeedbacksResponse {
package/built/index.js CHANGED
@@ -14,8 +14,8 @@ 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.supportedInstructionsLanguages = 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
- const typeUtils_1 = require("./typeUtils");
17
+ exports.isValidUserWorkoutMetricsType = exports.isBodyMeasurementKey = exports.measurementsList = exports.isPublicWorkout = exports.isSetType = exports.isRPE = exports.validRpeValues = exports.supportedInstructionsLanguages = 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
+ const typeUtils_1 = require("./typeUtils"); // import as _Lookup to avoid a lint error as ts-to-zod emits an unused dummy value
19
19
  __exportStar(require("./constants"), exports);
20
20
  __exportStar(require("./utils"), exports);
21
21
  __exportStar(require("./units"), exports);
@@ -33,6 +33,7 @@ __exportStar(require("./normalizedWorkoutUtils"), exports);
33
33
  __exportStar(require("./routineUtils"), exports);
34
34
  __exportStar(require("./typeUtils"), exports);
35
35
  __exportStar(require("./async"), exports);
36
+ __exportStar(require("./index.zod"), exports);
36
37
  exports.supportedLanguages = [
37
38
  'en',
38
39
  'es',
@@ -212,30 +213,6 @@ const isPublicWorkout = (x) => {
212
213
  return x.type === 'public';
213
214
  };
214
215
  exports.isPublicWorkout = isPublicWorkout;
215
- const isHeartRateSamples = (x) => {
216
- if (!x)
217
- return false;
218
- if (Array.isArray(x)) {
219
- for (const sample of x) {
220
- if (typeof sample.timestamp_ms !== 'number' ||
221
- typeof sample.bpm !== 'number') {
222
- return false;
223
- }
224
- }
225
- }
226
- return true;
227
- };
228
- exports.isHeartRateSamples = isHeartRateSamples;
229
- const isWorkoutBiometrics = (x) => {
230
- if (!x)
231
- return false;
232
- const maybeCalories = x.total_calories;
233
- const maybeHeartRateSamples = x.heart_rate_samples;
234
- const caloriesAreValid = !maybeCalories || (typeof maybeCalories === 'number' && maybeCalories >= 0);
235
- return ((caloriesAreValid && !maybeHeartRateSamples) ||
236
- (0, exports.isHeartRateSamples)(maybeHeartRateSamples));
237
- };
238
- exports.isWorkoutBiometrics = isWorkoutBiometrics;
239
216
  exports.measurementsList = [
240
217
  'weight_kg',
241
218
  'fat_percent',