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 +142 -54
- package/built/index.js +3 -26
- package/built/index.zod.d.ts +12537 -0
- package/built/index.zod.js +1839 -0
- package/built/normalizedWorkoutUtils.d.ts +1 -3
- package/built/notifications.d.ts +7 -27
- package/built/tests/testUtils.js +0 -1
- package/package.json +4 -2
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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]:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
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<
|
|
917
|
-
start_and_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
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
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
|
|
1280
|
-
|
|
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:
|
|
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 |
|
|
1433
|
-
export type UserKeyValues =
|
|
1434
|
-
|
|
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 =
|
|
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?:
|
|
1539
|
-
debugInfo?:
|
|
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?:
|
|
1608
|
-
debug_info?:
|
|
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.
|
|
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',
|