hevy-shared 1.0.573 → 1.0.574

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,1839 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebNotificationConfiguration = exports.ClientsCoachData = exports.CoachPlanUpdateRequest = exports.CoachPlanUpdateType = exports.CoachsLead = exports.MinimalClientProgram = exports.ClientConfiguration = exports.UserPreferences = exports.BackofficeGetReportedUserOverviewResponse = exports.BackofficeReportedUserSummary = exports.GetIPBlacklistResponse = exports.IPBlacklistEntry = exports.BackofficeBlockedUsersResponse = exports.BackofficeAccountUpdate = exports.BackofficeUserComment = exports.BackofficeShadowBannedUser = exports.BackofficeFeaturedUser = exports.BackofficeExistingUserResponse = exports.BackofficeDeletedUserResponse = exports.UserShadowBanMetadata = exports.UserMetadataResponse = exports.User = exports.CoachSocialLoginResult = exports.CoachLoginResult = exports.UsernameAvailabilityResponse = exports.SocialLoginResult = exports.GoogleSignUpRequest = exports.GoogleSignInRequest = exports.AppleSignInWebRequest = exports.AppleSignUpWebRequest = exports.AppleSignInRequest = exports.AppleSignInRequestCoachMobile = exports.AppleSignUpRequest = exports.AccountUpdate = exports.FollowCountsResponse = exports.CoachTeam = exports.CoachAccount = exports.CoachRole = exports.CoachAppPushTarget = exports.UserAccountResponse = exports.Sex = exports.ErrorResponse = exports.LivePRVolumeOption = exports.TimerVolumeOption = exports.Weekday = exports.BodyMeasurementUnit = exports.DistanceUnitShort = exports.DistanceUnit = exports.WeightUnit = exports.Language = void 0;
4
- exports.Routine = exports.BaseRoutine = exports.RoutineExercise = exports.RoutineSet = exports.PostWorkoutRequestSet = exports.WorkoutSync = exports.PublicWorkout = exports.CustomExerciseMedia = exports.CustomExerciseVideo = exports.CustomExerciseImage = exports.Workout = exports.WorkoutMedia = exports.WorkoutVideo = exports.WorkoutImage = exports.WorkoutComment = exports.WorkoutExercise = exports.WorkoutExerciseSet = exports.RepRange = exports.SetType = exports.RPE = exports.SetPersonalRecord = exports.SetPersonalRecordType = exports.InstructionsLanguage = exports.LibraryExercise = exports.BaseExerciseTemplate = exports.CustomExerciseType = exports.ExerciseType = exports.ExerciseRepType = exports.EquipmentFilter = exports.Equipment = exports.MuscleGroupFilter = exports.MuscleGroup = exports.UserProfile = exports.PreviewMutualUser = exports.RoutineMetadata = exports.WeeklyWorkoutDuration = exports.CoachInviteSearchUser = exports.SearchUser = exports.FollowRequest = exports.FollowingStatusesResponse = exports.FollowingStatusMap = exports.FollowingStatus = exports.UpdateUserPreferencesRequest = exports.UserHevyProSubcription = exports.RepInputType = exports.CoachJoinFormData = exports.MobileNotificationConfiguration = exports.EmailNotificationConfigurationType = exports.EmailNotificationConfiguration = exports.WebNotificationConfigurationType = void 0;
5
- exports.ExerciseLeaderboardEntry = exports.UserProfileCompareResponse = exports.ComparableExerciseTemplatesResponse = exports.SetCountMuscleSplitResponse = exports.UserExerciseSet = exports.HevyCoachLaunchStatusResponse = exports.PromoResponse = exports.GeneratePasswordRecoveryTokenResult = exports.UserWeeklyWorkoutDuration = exports.BestWeightMetricComparison = exports.BestSetVolumeMetricComparison = exports.OneRepMaxMetricComparison = exports.RepsOnlyExerciseMetricComparison = exports.ComparisonMetric = exports.RepsOnlyComparisonMetric = exports.WeightRepComparisonMetric = exports.ClientRecentExerciseData = exports.CreateOrUpdateExerciseTemplateCustomizationRequest = exports.ExerciseTemplateCustomization = exports.ExerciseTemplateCustomizationAttachmentUrlType = exports.UpdateCustomExerciseRequest = exports.PostVolumeDoublingEnabledExercisesRequest = exports.GetVolumeDoublingEnabledExercisesResponse = exports.CreateCustomExerciseRequest = exports.PostBodyMeasurementRequest = exports.BodyMeasurement = exports.BodyMeasurementKey = exports.OutstandingInvitesForCoachTeamResponse = exports.GetTeamInviteResponse = exports.CoachTeamInvite = exports.OutstandingInvitesForCoachResponse = exports.CoachClientInvite = exports.GetInviteResponse = exports.ClientInvite = exports.ProgramFolderLocationUpdate = exports.ProgramFolder = exports.ProgramLocationUpdate = exports.PostAssignProgramRequest = exports.ProgramUpdate = exports.Program = exports.ShareableRoutineFolder = exports.RoutineFolder = exports.RoutineLocationUpdate = exports.RoutineFolderLocationUpdate = exports.RoutineUpdateSet = exports.RoutineSync = exports.CreateSampleClientResponse = exports.CoachAndCoachsClientsRoutineSyncResponse = exports.CoachesRoutine = exports.CoachsShallowLibraryRoutine = void 0;
6
- exports.GetHelpFeedback = exports.BugReportFeedback = exports.FeatureRequestFeedback = exports.GeneralFeedback = exports.FeedbackType = exports.HevyPlatforms = exports.CreateRoutineCopyRequest = exports.WorkoutVisibility = exports.ShareToPlatform = exports.UserWorkoutMedia = exports.UserWorkoutVideo = exports.UserWorkoutImage = exports.WeeklyActiveClients = exports.ClientActivity = exports.ClientAddedProgressPictureActivity = exports.ClientInviteAcceptedActivity = exports.ClientBodyweightMeasurementActivity = exports.ClientMeasurementActivity = exports.ClientWorkoutActivity = exports.UserCalendarWorkout = exports.WorkoutMetric = exports.DurationWorkoutMetric = exports.RepsWorkoutMetric = exports.UserWorkoutMetricsType = exports.UserAuthenticationValidationResponse = exports.UserKeyValues = exports.UserValue = exports.StripeCustomerPortalSessionResponse = exports.StripeCustomerPortalSessionRequest = exports.PaddlePlanChangeRequest = exports.PaddlePromoCodeDetails = exports.BillingPeriod = exports.PaddlePrice = exports.StripeCheckoutSessionResponse = exports.StripeCheckoutSessionRequest = exports.StripePromoCodeDetails = exports.StripePrice = exports.NetworkType = exports.ExerciseTemplateUnit = exports.RecalculateSetPRStatusResponse = exports.RecalculateSetPRProgress = exports.WarmupCalculatorData = exports.WarmupSet = exports.PlateCalculatorPlate = exports.PlateCalculatorBar = exports.ServerYearInReview = exports.StrengthLevelResponse = exports.GetStrengthLevelParams = exports.StrengthLevel = exports.ExerciseLeaderboardResponse = void 0;
7
- exports.PostRoutineRequest = exports.UpdateWorkoutRequestWorkout = exports.PostClientsWorkoutRequest = exports.PostWorkoutRequest = exports.CoachsClientData = exports.UserMetadataRequest = exports.ExerciseMetricComparison = exports.RoutineUpdate = exports.RoutineUpdateExercise = exports.PostWorkoutRequestWorkout = exports.PostWorkoutRequestExercise = exports.PublicUserProfile = exports.CoachAccountConfiguration = exports.CustomExercise = exports.BackofficeSuggestedUsersResponse = exports.BackofficeUserResponse = exports.AccountResponse = exports.GoogleCoachWebSignInRequest = exports.GoogleWebSignInRequest = exports.FormatAtText = exports.BackofficeRemoteFeatureFlagsResponse = exports.BackofficeRemoteFeatureFlag = exports.BackofficeFeedbacksResponse = exports.BackofficeFeedback = exports.SuggestedUser = exports.SuggestedUserLabel = exports.SuggestedUserSource = exports.Feedback = exports.CancelSubscriptionFeedback = exports.RatingPromptFeedback = exports.ReportProfileFeedback = exports.ReportWorkoutFeedback = exports.ReportCommentFeedback = void 0;
8
- // Generated by ts-to-zod
9
- const zod_1 = require("zod");
10
- exports.Language = zod_1.z.enum([
11
- 'en',
12
- 'es',
13
- 'de',
14
- 'fr',
15
- 'it',
16
- 'pt',
17
- 'tr',
18
- 'zh_CN',
19
- 'zh_TW',
20
- 'ru',
21
- 'ja',
22
- 'ko',
23
- ]);
24
- exports.WeightUnit = zod_1.z.union([zod_1.z.literal('kg'), zod_1.z.literal('lbs')]);
25
- exports.DistanceUnit = zod_1.z.union([
26
- zod_1.z.literal('kilometers'),
27
- zod_1.z.literal('miles'),
28
- ]);
29
- exports.DistanceUnitShort = zod_1.z.union([zod_1.z.literal('km'), zod_1.z.literal('mi')]);
30
- exports.BodyMeasurementUnit = zod_1.z.union([zod_1.z.literal('cm'), zod_1.z.literal('in')]);
31
- exports.Weekday = zod_1.z.enum([
32
- 'monday',
33
- 'tuesday',
34
- 'wednesday',
35
- 'thursday',
36
- 'friday',
37
- 'saturday',
38
- 'sunday',
39
- ]);
40
- exports.TimerVolumeOption = zod_1.z.enum(['off', 'low', 'normal', 'high']);
41
- exports.LivePRVolumeOption = zod_1.z.enum(['off', 'low', 'normal', 'high']);
42
- exports.ErrorResponse = zod_1.z.object({
43
- error: zod_1.z.string(),
44
- });
45
- exports.Sex = zod_1.z.enum(['male', 'female', 'other']);
46
- exports.UserAccountResponse = zod_1.z.object({
47
- id: zod_1.z.string(),
48
- username: zod_1.z.string(),
49
- email: zod_1.z.string(),
50
- full_name: zod_1.z.string().optional(),
51
- description: zod_1.z.string().optional(),
52
- website_link: zod_1.z.string().optional(),
53
- profile_pic: zod_1.z.string().optional(),
54
- gift_pro_expiry: zod_1.z.string().optional(),
55
- gympass_user_id: zod_1.z.string().optional(),
56
- is_gympass_plan_active: zod_1.z.boolean().optional(),
57
- is_strava_connected: zod_1.z.boolean(),
58
- country_code: zod_1.z.string().optional(),
59
- follows_push_enabled: zod_1.z.boolean(),
60
- likes_push_enabled: zod_1.z.boolean(),
61
- comments_push_enabled: zod_1.z.boolean(),
62
- comment_mention_push_enabled: zod_1.z.boolean(),
63
- comment_discussion_push_enabled: zod_1.z.boolean(),
64
- private_profile: zod_1.z.boolean(),
65
- created_at: zod_1.z.string(),
66
- last_workout_at: zod_1.z.string(),
67
- accepted_terms_and_conditions: zod_1.z.boolean(),
68
- is_coached: zod_1.z.boolean(),
69
- is_a_coach: zod_1.z.boolean(),
70
- coach_client_status: zod_1.z
71
- .union([
72
- zod_1.z.literal('coached-active-plan'),
73
- zod_1.z.literal('coached-inactive-plan'),
74
- ])
75
- .optional(),
76
- coach_status: zod_1.z
77
- .union([zod_1.z.literal('coach-active-plan'), zod_1.z.literal('coach-inactive-plan')])
78
- .optional(),
79
- birthday: zod_1.z.string().optional(),
80
- sex: exports.Sex.optional(),
81
- email_consent: zod_1.z.boolean(),
82
- });
83
- exports.CoachAppPushTarget = zod_1.z.object({
84
- type: zod_1.z.union([zod_1.z.literal('android'), zod_1.z.literal('ios')]),
85
- token: zod_1.z.string(),
86
- });
87
- exports.CoachRole = zod_1.z.enum(['member', 'admin', 'owner']);
88
- exports.CoachAccount = zod_1.z.object({
89
- id: zod_1.z.string(),
90
- username: zod_1.z.string(),
91
- email: zod_1.z.string(),
92
- full_name: zod_1.z.string().optional(),
93
- profile_pic: zod_1.z.string().optional(),
94
- created_at: zod_1.z.string(),
95
- last_workout_at: zod_1.z.string(),
96
- accepted_terms_and_conditions: zod_1.z.boolean(),
97
- became_coach_at: zod_1.z.string().optional(),
98
- has_hevy_routine: zod_1.z.boolean(),
99
- role: exports.CoachRole,
100
- last_app_launch_at: zod_1.z.date().nullable(),
101
- join_form_message: zod_1.z.string().optional(),
102
- join_form_banner_image_url: zod_1.z.string().optional(),
103
- client_workouts_logged: zod_1.z.number().optional(),
104
- });
105
- exports.CoachTeam = zod_1.z.object({
106
- title: zod_1.z.string(),
107
- id: zod_1.z.string(),
108
- members: zod_1.z.array(exports.CoachAccount),
109
- image_url: zod_1.z.string().optional(),
110
- enabled_at: zod_1.z.string().optional(),
111
- });
112
- exports.FollowCountsResponse = zod_1.z.object({
113
- follower_count: zod_1.z.number(),
114
- following_count: zod_1.z.number(),
115
- });
116
- exports.AccountUpdate = zod_1.z.object({
117
- full_name: zod_1.z.string().optional().nullable(),
118
- description: zod_1.z.string().optional().nullable(),
119
- website_link: zod_1.z.string().optional().nullable(),
120
- profile_pic_url: zod_1.z.string().optional().nullable(),
121
- follows_push_enabled: zod_1.z.boolean().optional(),
122
- likes_push_enabled: zod_1.z.boolean().optional(),
123
- comments_push_enabled: zod_1.z.boolean().optional(),
124
- comment_mention_push_enabled: zod_1.z.boolean().optional(),
125
- comment_discussion_push_enabled: zod_1.z.boolean().optional(),
126
- comment_replies_push_enabled: zod_1.z.boolean().optional(),
127
- email_consent: zod_1.z.boolean().optional(),
128
- private_profile: zod_1.z.boolean().optional(),
129
- accepted_terms_and_conditions: zod_1.z.boolean().optional(),
130
- sex: exports.Sex.optional(),
131
- birthday: zod_1.z.string().optional(),
132
- });
133
- exports.AppleSignUpRequest = zod_1.z.object({
134
- email: zod_1.z.string().optional(),
135
- appleUserId: zod_1.z.string(),
136
- identityToken: zod_1.z.string(),
137
- gympassUserId: zod_1.z.string().optional(),
138
- });
139
- exports.AppleSignInRequestCoachMobile = zod_1.z.object({
140
- email: zod_1.z.string().optional(),
141
- appleUserId: zod_1.z.string(),
142
- identityToken: zod_1.z.string(),
143
- fullName: zod_1.z.string().optional(),
144
- });
145
- exports.AppleSignInRequest = zod_1.z.object({
146
- email: zod_1.z.string().optional(),
147
- appleUserId: zod_1.z.string(),
148
- identityToken: zod_1.z.string(),
149
- gympassUserId: zod_1.z.string().optional(),
150
- });
151
- exports.AppleSignUpWebRequest = zod_1.z.object({
152
- email: zod_1.z.string().optional(),
153
- identityToken: zod_1.z.string(),
154
- gympassUserId: zod_1.z.string().optional(),
155
- });
156
- exports.AppleSignInWebRequest = zod_1.z.object({
157
- email: zod_1.z.string().optional(),
158
- identityToken: zod_1.z.string(),
159
- gympassUserId: zod_1.z.string().optional(),
160
- });
161
- exports.GoogleSignInRequest = zod_1.z.object({
162
- email: zod_1.z.string(),
163
- googleUserId: zod_1.z.string(),
164
- idToken: zod_1.z.string(),
165
- source: zod_1.z.literal('web').optional(),
166
- gympassUserId: zod_1.z.string().optional(),
167
- });
168
- exports.GoogleSignUpRequest = zod_1.z.object({
169
- email: zod_1.z.string(),
170
- googleUserId: zod_1.z.string(),
171
- idToken: zod_1.z.string(),
172
- source: zod_1.z.literal('web').optional(),
173
- gympassUserId: zod_1.z.string().optional(),
174
- });
175
- exports.SocialLoginResult = zod_1.z.object({
176
- auth_token: zod_1.z.string(),
177
- username: zod_1.z.string(),
178
- user_id: zod_1.z.string(),
179
- email: zod_1.z.string(),
180
- is_new_user: zod_1.z.boolean(),
181
- });
182
- exports.UsernameAvailabilityResponse = zod_1.z.object({
183
- isAvailable: zod_1.z.boolean(),
184
- suggestions: zod_1.z.array(zod_1.z.string()),
185
- });
186
- exports.CoachLoginResult = zod_1.z.object({
187
- auth_token: zod_1.z.string(),
188
- is_first_login_to_coach_platform: zod_1.z.boolean(),
189
- });
190
- exports.CoachSocialLoginResult = exports.SocialLoginResult.extend({
191
- is_first_login_to_coach_platform: zod_1.z.boolean(),
192
- });
193
- exports.User = zod_1.z.object({
194
- id: zod_1.z.string(),
195
- email: zod_1.z.string(),
196
- auth_token: zod_1.z.string(),
197
- username: zod_1.z.string(),
198
- verified: zod_1.z.boolean(),
199
- profile_pic: zod_1.z.string().optional(),
200
- full_name: zod_1.z.string().optional(),
201
- private_profile: zod_1.z.boolean(),
202
- description: zod_1.z.string().optional(),
203
- website_link: zod_1.z.string().optional(),
204
- created_at: zod_1.z.string(),
205
- });
206
- exports.UserMetadataResponse = zod_1.z.object({
207
- created_at: zod_1.z.string(),
208
- updated_at: zod_1.z.string(),
209
- app_language: zod_1.z.string().nullable(),
210
- platform: zod_1.z.string().nullable(),
211
- platform_version: zod_1.z.string().nullable(),
212
- app_version: zod_1.z.string().nullable(),
213
- geoip_country: zod_1.z.string().nullable(),
214
- geoip_city: zod_1.z.string().nullable(),
215
- geoip_timezone: zod_1.z.string().nullable(),
216
- security_id: zod_1.z.string().nullable(),
217
- });
218
- exports.UserShadowBanMetadata = zod_1.z.object({
219
- manual_ban: zod_1.z.boolean(),
220
- reason: zod_1.z.string(),
221
- username: zod_1.z.string().optional().nullable(),
222
- email: zod_1.z.string().optional().nullable(),
223
- description: zod_1.z.string().optional().nullable(),
224
- website_link: zod_1.z.string().optional().nullable(),
225
- profile_pic_url: zod_1.z.string().optional().nullable(),
226
- recaptcha_score: zod_1.z.number().optional().nullable(),
227
- });
228
- exports.BackofficeDeletedUserResponse = zod_1.z.object({
229
- state: zod_1.z.literal('deleted-account'),
230
- id: zod_1.z.string(),
231
- username: zod_1.z.string(),
232
- email: zod_1.z.string(),
233
- full_name: zod_1.z.string().optional(),
234
- description: zod_1.z.string().optional(),
235
- website_link: zod_1.z.string().optional(),
236
- profile_pic: zod_1.z.string().optional(),
237
- created_at: zod_1.z.string(),
238
- notes: zod_1.z.string().nullable(),
239
- metadata: exports.UserMetadataResponse.nullable(),
240
- });
241
- exports.BackofficeExistingUserResponse = zod_1.z.object({
242
- state: zod_1.z.literal('user-account'),
243
- id: zod_1.z.string(),
244
- username: zod_1.z.string(),
245
- email: zod_1.z.string(),
246
- full_name: zod_1.z.string().optional(),
247
- description: zod_1.z.string().optional(),
248
- website_link: zod_1.z.string().optional(),
249
- profile_pic: zod_1.z.string().optional(),
250
- gift_pro_expiry: zod_1.z.string().optional(),
251
- gympass_user_id: zod_1.z.string().optional(),
252
- is_gympass_plan_active: zod_1.z.boolean().optional(),
253
- private_profile: zod_1.z.boolean(),
254
- created_at: zod_1.z.string(),
255
- last_workout_at: zod_1.z.string(),
256
- coach_client_status: zod_1.z
257
- .union([
258
- zod_1.z.literal('coached-active-plan'),
259
- zod_1.z.literal('coached-inactive-plan'),
260
- ])
261
- .optional(),
262
- coach_status: zod_1.z
263
- .union([zod_1.z.literal('coach-active-plan'), zod_1.z.literal('coach-inactive-plan')])
264
- .optional(),
265
- notes: zod_1.z.string().nullable(),
266
- is_banned: zod_1.z.boolean(),
267
- metadata: exports.UserMetadataResponse.nullable(),
268
- shadow_ban_metadata: exports.UserShadowBanMetadata.nullable(),
269
- shadow_banned_at: zod_1.z.string().nullable(),
270
- gympass_email: zod_1.z.string().nullable(),
271
- paddle_customer_id: zod_1.z.string().nullable(),
272
- public_api_key: zod_1.z.string().nullable(),
273
- hide_from_suggested_users: zod_1.z.boolean(),
274
- coach_trial_expire_date: zod_1.z.string().optional(),
275
- });
276
- exports.BackofficeFeaturedUser = exports.BackofficeExistingUserResponse.pick({
277
- id: true,
278
- username: true,
279
- profile_pic: true,
280
- private_profile: true,
281
- last_workout_at: true,
282
- }).and(zod_1.z.object({
283
- followers_count: zod_1.z.number(),
284
- }));
285
- exports.BackofficeShadowBannedUser = exports.BackofficeExistingUserResponse.pick({
286
- id: true,
287
- username: true,
288
- profile_pic: true,
289
- }).and(zod_1.z.object({
290
- shadow_ban_metadata: exports.UserShadowBanMetadata,
291
- shadow_banned_at: zod_1.z.string(),
292
- }));
293
- exports.BackofficeUserComment = zod_1.z.object({
294
- workout_username: zod_1.z.string(),
295
- workout_short_id: zod_1.z.string(),
296
- comment_date: zod_1.z.string(),
297
- is_archived: zod_1.z.boolean(),
298
- comment_text: zod_1.z.string(),
299
- });
300
- exports.BackofficeAccountUpdate = zod_1.z.object({
301
- username: zod_1.z.string().optional(),
302
- email: zod_1.z.string().optional(),
303
- description: zod_1.z.string().optional(),
304
- notes: zod_1.z.string().optional(),
305
- gympass_email: zod_1.z.string().optional().nullable(),
306
- hide_from_suggested_users: zod_1.z.boolean().optional(),
307
- delete_profile_pic: zod_1.z.boolean().optional(),
308
- delete_link: zod_1.z.boolean().optional(),
309
- });
310
- exports.BackofficeBlockedUsersResponse = zod_1.z.object({
311
- users: zod_1.z.array(zod_1.z.object({
312
- id: zod_1.z.string(),
313
- username: zod_1.z.string(),
314
- profile_pic: zod_1.z.string().nullable(),
315
- })),
316
- });
317
- exports.IPBlacklistEntry = zod_1.z.object({
318
- ip_range: zod_1.z.string(),
319
- comment: zod_1.z.string(),
320
- created_at: zod_1.z.string(),
321
- });
322
- exports.GetIPBlacklistResponse = zod_1.z.object({
323
- ip_blacklist: zod_1.z.array(exports.IPBlacklistEntry),
324
- });
325
- exports.BackofficeReportedUserSummary = zod_1.z.object({
326
- user_id: zod_1.z.string(),
327
- username: zod_1.z.string(),
328
- num_reports: zod_1.z.number(),
329
- last_reported_at: zod_1.z.string(),
330
- signed_up_at: zod_1.z.string(),
331
- app_language: zod_1.z.string(),
332
- platform: zod_1.z.string(),
333
- platform_version: zod_1.z.string(),
334
- app_version: zod_1.z.string(),
335
- geoip_country: zod_1.z.string(),
336
- geoip_city: zod_1.z.string(),
337
- geoip_timezone: zod_1.z.string(),
338
- last_ip: zod_1.z.string(),
339
- });
340
- exports.BackofficeGetReportedUserOverviewResponse = zod_1.z.object({
341
- reported_users: zod_1.z.array(exports.BackofficeReportedUserSummary),
342
- });
343
- exports.UserPreferences = zod_1.z.object({
344
- username: zod_1.z.string(),
345
- language: exports.Language.optional(),
346
- weight_unit: exports.WeightUnit.optional(),
347
- distance_unit: exports.DistanceUnit.optional(),
348
- body_measurement_unit: exports.BodyMeasurementUnit.optional(),
349
- first_weekday: exports.Weekday.optional(),
350
- default_rest_timer_seconds: zod_1.z.number().optional(),
351
- workout_keep_awake: zod_1.z.boolean().optional(),
352
- disabled_review_request: zod_1.z.boolean().optional(),
353
- superset_scrolling: zod_1.z.boolean().optional(),
354
- plate_calculator_enabled: zod_1.z.boolean().optional(),
355
- previous_workout_values_from_routine: zod_1.z.boolean().optional(),
356
- rpe_enabled: zod_1.z.boolean().optional(),
357
- timer_volume: exports.TimerVolumeOption.optional(),
358
- live_pr_volume: exports.LivePRVolumeOption.optional(),
359
- inline_set_timer_enabled: zod_1.z.boolean().optional(),
360
- default_workout_visibility_public: zod_1.z.boolean().optional(),
361
- volume_includes_warmup_sets: zod_1.z.boolean().optional(),
362
- });
363
- exports.ClientConfiguration = zod_1.z.object({
364
- is_chat_enabled: zod_1.z.boolean(),
365
- are_notifications_enabled: zod_1.z.boolean(),
366
- });
367
- exports.MinimalClientProgram = zod_1.z.object({
368
- title: zod_1.z.string().nullable(),
369
- duration_days: zod_1.z.number().nullable(),
370
- start_date: zod_1.z.string().nullable(),
371
- id: zod_1.z.string(),
372
- });
373
- exports.CoachsLead = zod_1.z.object({
374
- lead_full_name: zod_1.z.string(),
375
- lead_email: zod_1.z.string(),
376
- lead_message: zod_1.z.string(),
377
- lead_user_id: zod_1.z.string().optional(),
378
- lead_coach_id: zod_1.z.string(),
379
- created_at: zod_1.z.string(),
380
- });
381
- exports.CoachPlanUpdateType = zod_1.z.union([
382
- zod_1.z.literal('pause'),
383
- zod_1.z.literal('cancel'),
384
- zod_1.z.literal('change'),
385
- zod_1.z.literal('resume'),
386
- ]);
387
- exports.CoachPlanUpdateRequest = zod_1.z.object({
388
- planUpdateType: exports.CoachPlanUpdateType,
389
- newPlanId: zod_1.z.string().optional(),
390
- });
391
- exports.ClientsCoachData = zod_1.z.object({
392
- username: zod_1.z.string(),
393
- profile_pic: zod_1.z.string().nullable(),
394
- email: zod_1.z.string(),
395
- full_name: zod_1.z.string().nullable(),
396
- coaching_since: zod_1.z.string(),
397
- coach_id: zod_1.z.string(),
398
- coach_conversation_id: zod_1.z.string().optional(),
399
- client_configuration: exports.ClientConfiguration,
400
- is_paying_coach: zod_1.z.boolean(),
401
- });
402
- exports.WebNotificationConfiguration = zod_1.z.object({
403
- client_completes_workout: zod_1.z.boolean(),
404
- client_sends_message: zod_1.z.boolean(),
405
- client_adds_measurement: zod_1.z.boolean(),
406
- });
407
- exports.WebNotificationConfigurationType = zod_1.z.union([
408
- zod_1.z.literal('client_completes_workout'),
409
- zod_1.z.literal('client_sends_message'),
410
- zod_1.z.literal('client_adds_measurement'),
411
- ]);
412
- exports.EmailNotificationConfiguration = zod_1.z.object({
413
- client_completes_workout: zod_1.z.boolean(),
414
- client_sends_message: zod_1.z.boolean(),
415
- client_adds_measurement: zod_1.z.boolean(),
416
- program_finishes_next_week: zod_1.z.boolean(),
417
- });
418
- exports.EmailNotificationConfigurationType = zod_1.z.union([
419
- zod_1.z.literal('client_completes_workout'),
420
- zod_1.z.literal('client_sends_message'),
421
- zod_1.z.literal('client_adds_measurement'),
422
- zod_1.z.literal('program_finishes_next_week'),
423
- ]);
424
- exports.MobileNotificationConfiguration = zod_1.z.object({
425
- client_sends_message: zod_1.z.boolean(),
426
- });
427
- exports.CoachJoinFormData = zod_1.z.object({
428
- coachUsername: zod_1.z.string(),
429
- coachFullname: zod_1.z.string().optional(),
430
- joinMessage: zod_1.z.string().optional(),
431
- joinImageUrl: zod_1.z.string().optional(),
432
- coachProfileImageUrl: zod_1.z.string().optional(),
433
- });
434
- exports.RepInputType = zod_1.z.union([
435
- zod_1.z.literal('reps'),
436
- zod_1.z.literal('rep-range'),
437
- ]);
438
- const UserHevyProSubcriptionStore = zod_1.z.enum([
439
- 'app_store',
440
- 'play_store',
441
- 'stripe',
442
- 'hevy-gift',
443
- 'gympass',
444
- 'paddle',
445
- 'hevy-coach',
446
- ]);
447
- exports.UserHevyProSubcription = zod_1.z.object({
448
- is_pro: zod_1.z.boolean(),
449
- active_subscription: zod_1.z
450
- .object({
451
- managing_store: UserHevyProSubcriptionStore,
452
- type: zod_1.z.union([
453
- zod_1.z.literal('monthly'),
454
- zod_1.z.literal('yearly'),
455
- zod_1.z.literal('lifetime'),
456
- zod_1.z.literal('custom'),
457
- ]),
458
- expires_date: zod_1.z.string().optional(),
459
- subscription_cancels_on: zod_1.z.string().optional(),
460
- })
461
- .optional(),
462
- });
463
- exports.UpdateUserPreferencesRequest = exports.UserPreferences.omit({
464
- username: true,
465
- volume_includes_warmup_sets: true,
466
- });
467
- exports.FollowingStatus = zod_1.z.enum([
468
- 'not-following',
469
- 'following',
470
- 'requested',
471
- ]);
472
- exports.FollowingStatusMap = zod_1.z.record(exports.FollowingStatus.exclude(['not-following']));
473
- exports.FollowingStatusesResponse = zod_1.z.record(zod_1.z.enum(['following', 'requested']));
474
- exports.FollowRequest = zod_1.z.object({
475
- id: zod_1.z.number(),
476
- username: zod_1.z.string(),
477
- profile_pic: zod_1.z.string().optional(),
478
- });
479
- exports.SearchUser = zod_1.z.object({
480
- id: zod_1.z.string(),
481
- profile_pic: zod_1.z.string().optional(),
482
- username: zod_1.z.string(),
483
- full_name: zod_1.z.string(),
484
- following_status: exports.FollowingStatus,
485
- private_profile: zod_1.z.boolean(),
486
- verified: zod_1.z.boolean(),
487
- });
488
- exports.CoachInviteSearchUser = zod_1.z.object({
489
- id: zod_1.z.string(),
490
- profile_pic: zod_1.z.string().optional(),
491
- username: zod_1.z.string(),
492
- email: zod_1.z.string().optional(),
493
- full_name: zod_1.z.string().nullable(),
494
- });
495
- exports.WeeklyWorkoutDuration = zod_1.z.object({
496
- week_start_date: zod_1.z.string(),
497
- week_end_date: zod_1.z.string(),
498
- total_seconds: zod_1.z.number(),
499
- });
500
- exports.RoutineMetadata = zod_1.z.object({
501
- id: zod_1.z.string(),
502
- short_id: zod_1.z.string(),
503
- title: zod_1.z.string(),
504
- });
505
- exports.PreviewMutualUser = zod_1.z.object({
506
- username: zod_1.z.string(),
507
- profile_pic: zod_1.z.string().nullable(),
508
- });
509
- exports.UserProfile = zod_1.z.object({
510
- username: zod_1.z.string(),
511
- verified: zod_1.z.boolean(),
512
- subscribed: zod_1.z.boolean(),
513
- profile_pic: zod_1.z.string().optional(),
514
- full_name: zod_1.z.string().optional(),
515
- description: zod_1.z.string().optional(),
516
- website_link: zod_1.z.string().optional(),
517
- workout_count: zod_1.z.number(),
518
- following_status: exports.FollowingStatus,
519
- is_followed_by_requester: zod_1.z.boolean(),
520
- private_profile: zod_1.z.boolean(),
521
- is_blocked: zod_1.z.boolean(),
522
- follower_count: zod_1.z.number(),
523
- following_count: zod_1.z.number(),
524
- routines: zod_1.z.array(exports.RoutineMetadata),
525
- weekly_workout_durations: zod_1.z.array(exports.WeeklyWorkoutDuration),
526
- mutual_followers: zod_1.z.array(exports.PreviewMutualUser),
527
- });
528
- exports.MuscleGroup = zod_1.z.enum([
529
- 'abdominals',
530
- 'abductors',
531
- 'adductors',
532
- 'biceps',
533
- 'lower_back',
534
- 'upper_back',
535
- 'cardio',
536
- 'chest',
537
- 'calves',
538
- 'forearms',
539
- 'glutes',
540
- 'hamstrings',
541
- 'lats',
542
- 'quadriceps',
543
- 'shoulders',
544
- 'triceps',
545
- 'traps',
546
- 'neck',
547
- 'full_body',
548
- 'other',
549
- ]);
550
- exports.MuscleGroupFilter = zod_1.z.enum([
551
- 'all_muscles',
552
- 'abdominals',
553
- 'abductors',
554
- 'adductors',
555
- 'biceps',
556
- 'lower_back',
557
- 'upper_back',
558
- 'cardio',
559
- 'chest',
560
- 'calves',
561
- 'forearms',
562
- 'glutes',
563
- 'hamstrings',
564
- 'lats',
565
- 'quadriceps',
566
- 'shoulders',
567
- 'triceps',
568
- 'traps',
569
- 'neck',
570
- 'full_body',
571
- 'other',
572
- ]);
573
- exports.Equipment = zod_1.z.enum([
574
- 'none',
575
- 'barbell',
576
- 'dumbbell',
577
- 'kettlebell',
578
- 'machine',
579
- 'plate',
580
- 'resistance_band',
581
- 'suspension',
582
- 'other',
583
- ]);
584
- exports.EquipmentFilter = zod_1.z.enum([
585
- 'all_equipment',
586
- 'none',
587
- 'barbell',
588
- 'dumbbell',
589
- 'kettlebell',
590
- 'machine',
591
- 'plate',
592
- 'resistance_band',
593
- 'suspension',
594
- 'other',
595
- ]);
596
- exports.ExerciseRepType = zod_1.z.enum([
597
- 'weight_reps',
598
- 'reps_only',
599
- 'bodyweight_reps',
600
- 'bodyweight_assisted_reps',
601
- ]);
602
- exports.ExerciseType = zod_1.z.enum([
603
- 'weight_reps',
604
- 'reps_only',
605
- 'bodyweight_reps',
606
- 'bodyweight_assisted_reps',
607
- 'duration',
608
- 'weight_duration',
609
- 'distance_duration',
610
- 'short_distance_weight',
611
- 'floors_duration',
612
- 'steps_duration',
613
- ]);
614
- exports.CustomExerciseType = zod_1.z.enum([
615
- 'weight_reps',
616
- 'reps_only',
617
- 'bodyweight_reps',
618
- 'bodyweight_assisted_reps',
619
- 'duration',
620
- 'weight_duration',
621
- 'distance_duration',
622
- 'short_distance_weight',
623
- ]);
624
- exports.BaseExerciseTemplate = zod_1.z.object({
625
- id: zod_1.z.string(),
626
- title: zod_1.z.string(),
627
- exercise_type: exports.ExerciseType,
628
- muscle_group: exports.MuscleGroup,
629
- other_muscles: zod_1.z.array(exports.MuscleGroup),
630
- equipment_category: exports.Equipment,
631
- is_archived: zod_1.z.boolean(),
632
- is_custom: zod_1.z.boolean(),
633
- priority: zod_1.z.number(),
634
- volume_doubling_supported: zod_1.z.boolean().optional(),
635
- url: zod_1.z.string().optional(),
636
- thumbnail_url: zod_1.z.string().optional(),
637
- media_type: zod_1.z.union([zod_1.z.literal('video'), zod_1.z.literal('image')]).optional(),
638
- });
639
- exports.LibraryExercise = exports.BaseExerciseTemplate.extend({
640
- is_custom: zod_1.z.literal(false),
641
- aka: zod_1.z.string().optional(),
642
- manual_tag: zod_1.z.string().optional(),
643
- comparable_exercise: zod_1.z.boolean().optional(),
644
- leaderboard_exercise: zod_1.z.boolean().optional(),
645
- hundred_percent_bodyweight_exercise: zod_1.z.boolean().optional(),
646
- strength_level_exercise: zod_1.z.boolean().optional(),
647
- es_title: zod_1.z.string().optional(),
648
- de_title: zod_1.z.string().optional(),
649
- fr_title: zod_1.z.string().optional(),
650
- it_title: zod_1.z.string().optional(),
651
- pt_title: zod_1.z.string().optional(),
652
- ko_title: zod_1.z.string().optional(),
653
- ja_title: zod_1.z.string().optional(),
654
- tr_title: zod_1.z.string().optional(),
655
- ru_title: zod_1.z.string().optional(),
656
- zh_cn_title: zod_1.z.string().optional(),
657
- zh_tw_title: zod_1.z.string().optional(),
658
- localised_instructions: zod_1.z
659
- .object({
660
- en: zod_1.z.string().optional(),
661
- it: zod_1.z.string().optional(),
662
- de: zod_1.z.string().optional(),
663
- es: zod_1.z.string().optional(),
664
- fr: zod_1.z.string().optional(),
665
- pt: zod_1.z.string().optional(),
666
- })
667
- .optional(),
668
- });
669
- exports.InstructionsLanguage = zod_1.z.enum([
670
- 'en',
671
- 'it',
672
- 'de',
673
- 'es',
674
- 'fr',
675
- 'pt',
676
- ]);
677
- exports.SetPersonalRecordType = zod_1.z.enum([
678
- 'best_weight',
679
- 'best_reps',
680
- 'best_volume',
681
- 'best_1rm',
682
- 'best_duration',
683
- 'best_distance',
684
- ]);
685
- exports.SetPersonalRecord = zod_1.z.object({
686
- exercise_template_id: zod_1.z.string(),
687
- type: exports.SetPersonalRecordType,
688
- record: zod_1.z.number(),
689
- });
690
- exports.RPE = zod_1.z.union([
691
- zod_1.z.literal(6),
692
- zod_1.z.literal(7),
693
- zod_1.z.literal(7.5),
694
- zod_1.z.literal(8),
695
- zod_1.z.literal(8.5),
696
- zod_1.z.literal(9),
697
- zod_1.z.literal(9.5),
698
- zod_1.z.literal(10),
699
- ]);
700
- exports.SetType = zod_1.z.enum(['warmup', 'normal', 'failure', 'dropset']);
701
- exports.RepRange = zod_1.z.object({
702
- start: zod_1.z.number().nullable(),
703
- end: zod_1.z.number().nullable(),
704
- });
705
- exports.WorkoutExerciseSet = zod_1.z.object({
706
- id: zod_1.z.union([zod_1.z.number(), zod_1.z.string()]),
707
- index: zod_1.z.number(),
708
- indicator: exports.SetType,
709
- weight_kg: zod_1.z.number().optional().nullable(),
710
- reps: zod_1.z.number().optional().nullable(),
711
- distance_meters: zod_1.z.number().optional().nullable(),
712
- duration_seconds: zod_1.z.number().optional().nullable(),
713
- custom_metric: zod_1.z.number().optional().nullable(),
714
- rpe: exports.RPE.optional().nullable(),
715
- personalRecords: zod_1.z
716
- .array(zod_1.z.object({
717
- type: zod_1.z.union([
718
- zod_1.z.literal('best_weight'),
719
- zod_1.z.literal('best_reps'),
720
- zod_1.z.literal('best_duration'),
721
- zod_1.z.literal('best_distance'),
722
- ]),
723
- value: zod_1.z.number(),
724
- }))
725
- .optional(),
726
- prs: zod_1.z.array(zod_1.z.object({
727
- type: exports.SetPersonalRecordType,
728
- value: zod_1.z.number(),
729
- })),
730
- });
731
- exports.WorkoutExercise = zod_1.z.object({
732
- id: zod_1.z.string(),
733
- exercise_template_id: zod_1.z.string(),
734
- title: zod_1.z.string(),
735
- es_title: zod_1.z.string().optional().nullable(),
736
- de_title: zod_1.z.string().optional().nullable(),
737
- fr_title: zod_1.z.string().optional().nullable(),
738
- it_title: zod_1.z.string().optional().nullable(),
739
- pt_title: zod_1.z.string().optional().nullable(),
740
- ko_title: zod_1.z.string().optional().nullable(),
741
- ja_title: zod_1.z.string().optional().nullable(),
742
- tr_title: zod_1.z.string().optional().nullable(),
743
- ru_title: zod_1.z.string().optional().nullable(),
744
- zh_cn_title: zod_1.z.string().optional().nullable(),
745
- zh_tw_title: zod_1.z.string().optional().nullable(),
746
- superset_id: zod_1.z.number().nullable(),
747
- rest_seconds: zod_1.z.number().nullable(),
748
- notes: zod_1.z.string(),
749
- priority: zod_1.z.number(),
750
- muscle_group: exports.MuscleGroup,
751
- other_muscles: zod_1.z.array(exports.MuscleGroup),
752
- exercise_type: exports.ExerciseType,
753
- equipment_category: exports.Equipment,
754
- url: zod_1.z.string().optional(),
755
- media_type: zod_1.z.string().optional(),
756
- custom_exercise_image_url: zod_1.z.string().optional().nullable(),
757
- thumbnail_url: zod_1.z.string().optional().nullable(),
758
- manual_tag: zod_1.z.string().optional(),
759
- aka: zod_1.z.string().optional(),
760
- volume_doubling_enabled: zod_1.z.boolean(),
761
- sets: zod_1.z.array(exports.WorkoutExerciseSet),
762
- });
763
- exports.WorkoutComment = zod_1.z.object({
764
- id: zod_1.z.number(),
765
- username: zod_1.z.string(),
766
- verified: zod_1.z.boolean(),
767
- full_name: zod_1.z.string().optional(),
768
- profile_pic: zod_1.z.string().optional(),
769
- comment: zod_1.z.string(),
770
- created_at: zod_1.z.string(),
771
- like_count: zod_1.z.number(),
772
- is_liked_by_user: zod_1.z.boolean(),
773
- parent_comment_id: zod_1.z.number().optional(),
774
- });
775
- exports.WorkoutImage = zod_1.z.object({
776
- type: zod_1.z.literal('image'),
777
- url: zod_1.z.string(),
778
- });
779
- exports.WorkoutVideo = zod_1.z.object({
780
- type: zod_1.z.literal('video'),
781
- url: zod_1.z.string(),
782
- thumbnail_url: zod_1.z.string(),
783
- });
784
- exports.WorkoutMedia = zod_1.z.union([exports.WorkoutImage, exports.WorkoutVideo]);
785
- exports.Workout = zod_1.z.object({
786
- id: zod_1.z.string(),
787
- short_id: zod_1.z.string().nullable(),
788
- index: zod_1.z.number(),
789
- name: zod_1.z.string(),
790
- description: zod_1.z.string().optional(),
791
- like_count: zod_1.z.number(),
792
- like_images: zod_1.z.array(zod_1.z.string()),
793
- comment_count: zod_1.z.number(),
794
- comments: zod_1.z.array(exports.WorkoutComment),
795
- image_urls: zod_1.z.array(zod_1.z.string()).optional(),
796
- media: zod_1.z.array(exports.WorkoutMedia),
797
- is_liked_by_user: zod_1.z.boolean(),
798
- start_time: zod_1.z.number(),
799
- end_time: zod_1.z.number(),
800
- user_id: zod_1.z.string(),
801
- username: zod_1.z.string(),
802
- profile_image: zod_1.z.string(),
803
- exercises: zod_1.z.array(exports.WorkoutExercise),
804
- routine_id: zod_1.z.string().optional(),
805
- apple_watch: zod_1.z.boolean(),
806
- wearos_watch: zod_1.z.boolean(),
807
- verified: zod_1.z.boolean(),
808
- created_at: zod_1.z.string(),
809
- updated_at: zod_1.z.string(),
810
- nth_workout: zod_1.z.number(),
811
- estimated_volume_kg: zod_1.z.number(),
812
- include_warmup_sets: zod_1.z.boolean(),
813
- is_private: zod_1.z.boolean(),
814
- logged_by_coach_id: zod_1.z.string().optional(),
815
- });
816
- exports.CustomExerciseImage = zod_1.z.object({
817
- type: zod_1.z.literal('image'),
818
- image_url: zod_1.z.string(),
819
- });
820
- exports.CustomExerciseVideo = zod_1.z.object({
821
- type: zod_1.z.literal('video'),
822
- video_url: zod_1.z.string(),
823
- video_preview_image_url: zod_1.z.string(),
824
- });
825
- exports.CustomExerciseMedia = zod_1.z.union([
826
- exports.CustomExerciseImage,
827
- exports.CustomExerciseVideo,
828
- ]);
829
- exports.PublicWorkout = zod_1.z.object({
830
- type: zod_1.z.literal('public'),
831
- id: zod_1.z.string(),
832
- short_id: zod_1.z.string().nullable(),
833
- name: zod_1.z.string(),
834
- create_at: zod_1.z.string(),
835
- start_time: zod_1.z.number(),
836
- end_time: zod_1.z.number(),
837
- username: zod_1.z.string(),
838
- profile_image: zod_1.z.string().nullable(),
839
- preview_image: zod_1.z.string().nullable(),
840
- is_private: zod_1.z.boolean(),
841
- exercises: zod_1.z.array(exports.WorkoutExercise),
842
- weight_unit: exports.WeightUnit,
843
- distance_unit: exports.DistanceUnit,
844
- estimated_volume_kg: zod_1.z.number(),
845
- });
846
- exports.WorkoutSync = zod_1.z.object({
847
- updated: zod_1.z.array(exports.Workout),
848
- deleted: zod_1.z.array(zod_1.z.string()),
849
- isMore: zod_1.z.boolean(),
850
- updated_at: zod_1.z.string().optional(),
851
- });
852
- exports.PostWorkoutRequestSet = zod_1.z.object({
853
- index: zod_1.z.number(),
854
- type: exports.SetType,
855
- weight_kg: zod_1.z.number().optional(),
856
- reps: zod_1.z.number().optional(),
857
- distance_meters: zod_1.z.number().optional(),
858
- duration_seconds: zod_1.z.number().optional(),
859
- custom_metric: zod_1.z.number().optional(),
860
- rpe: exports.RPE.optional(),
861
- });
862
- exports.RoutineSet = zod_1.z.object({
863
- index: zod_1.z.number(),
864
- indicator: exports.SetType,
865
- weight_kg: zod_1.z.number().optional().nullable(),
866
- reps: zod_1.z.number().optional().nullable(),
867
- distance_meters: zod_1.z.number().optional().nullable(),
868
- duration_seconds: zod_1.z.number().optional().nullable(),
869
- custom_metric: zod_1.z.number().optional().nullable(),
870
- rpe: exports.RPE.optional().nullable(),
871
- rep_range: exports.RepRange.optional(),
872
- });
873
- exports.RoutineExercise = zod_1.z.object({
874
- id: zod_1.z.string(),
875
- username: zod_1.z.string(),
876
- exercise_template_id: zod_1.z.string(),
877
- warmup_set_count: zod_1.z.number(),
878
- normal_set_count: zod_1.z.number(),
879
- title: zod_1.z.string(),
880
- es_title: zod_1.z.string().optional().nullable(),
881
- de_title: zod_1.z.string().optional().nullable(),
882
- fr_title: zod_1.z.string().optional().nullable(),
883
- it_title: zod_1.z.string().optional().nullable(),
884
- pt_title: zod_1.z.string().optional().nullable(),
885
- ko_title: zod_1.z.string().optional().nullable(),
886
- ja_title: zod_1.z.string().optional().nullable(),
887
- tr_title: zod_1.z.string().optional().nullable(),
888
- ru_title: zod_1.z.string().optional().nullable(),
889
- zh_cn_title: zod_1.z.string().optional().nullable(),
890
- zh_tw_title: zod_1.z.string().optional().nullable(),
891
- muscle_group: exports.MuscleGroup,
892
- other_muscles: zod_1.z.array(exports.MuscleGroup),
893
- exercise_type: exports.ExerciseType,
894
- equipment_category: exports.Equipment,
895
- sets: zod_1.z.array(exports.RoutineSet),
896
- notes: zod_1.z.string().optional().nullable(),
897
- url: zod_1.z.string().optional().nullable(),
898
- custom_exercise_image_url: zod_1.z.string().optional().nullable(),
899
- parent_exercise_template_id: zod_1.z.string().optional().nullable(),
900
- thumbnail_url: zod_1.z.string().optional().nullable(),
901
- media_type: zod_1.z.string().optional(),
902
- superset_id: zod_1.z.number().nullable(),
903
- rest_seconds: zod_1.z.number().nullable(),
904
- input_modifier: zod_1.z.literal('rep-range').optional(),
905
- });
906
- exports.BaseRoutine = zod_1.z.object({
907
- id: zod_1.z.string(),
908
- short_id: zod_1.z.string(),
909
- parent_routine_id: zod_1.z.string().nullable(),
910
- title: zod_1.z.string(),
911
- username: zod_1.z.string().nullable(),
912
- profile_pic: zod_1.z.union([zod_1.z.string(), zod_1.z.undefined()]).nullable(),
913
- exercises: zod_1.z.array(exports.RoutineExercise),
914
- updated_at: zod_1.z.string(),
915
- index: zod_1.z.number().nullable(),
916
- folder_id: zod_1.z.number().nullable(),
917
- program_id: zod_1.z.string().nullable(),
918
- coach_id: zod_1.z.string().nullable(),
919
- notes: zod_1.z.string().nullable(),
920
- coach_force_rpe_enabled: zod_1.z.boolean(),
921
- });
922
- exports.Routine = exports.BaseRoutine.extend({
923
- username: zod_1.z.string(),
924
- });
925
- exports.CoachsShallowLibraryRoutine = exports.BaseRoutine.omit({
926
- exercises: true,
927
- profile_pic: true,
928
- });
929
- exports.CoachesRoutine = exports.BaseRoutine.extend({
930
- coach_id: zod_1.z.string(),
931
- });
932
- exports.CoachAndCoachsClientsRoutineSyncResponse = zod_1.z.object({
933
- updated: zod_1.z.array(exports.BaseRoutine),
934
- deleted: zod_1.z.array(zod_1.z.string()),
935
- });
936
- exports.CreateSampleClientResponse = zod_1.z.object({
937
- auth_token: zod_1.z.string(),
938
- });
939
- exports.RoutineSync = zod_1.z.object({
940
- updated: zod_1.z.array(exports.Routine),
941
- deleted: zod_1.z.array(zod_1.z.string()),
942
- isMore: zod_1.z.boolean(),
943
- updated_at: zod_1.z.string().optional(),
944
- });
945
- exports.RoutineUpdateSet = zod_1.z.object({
946
- index: zod_1.z.number(),
947
- indicator: exports.SetType,
948
- weight_kg: zod_1.z.number().optional().nullable(),
949
- reps: zod_1.z.number().optional().nullable(),
950
- distance_meters: zod_1.z.number().optional().nullable(),
951
- duration_seconds: zod_1.z.number().optional().nullable(),
952
- custom_metric: zod_1.z.number().optional().nullable(),
953
- rpe: exports.RPE.optional().nullable(),
954
- rep_range: exports.RepRange.optional(),
955
- });
956
- exports.RoutineFolderLocationUpdate = zod_1.z.object({
957
- folderId: zod_1.z.number(),
958
- index: zod_1.z.number(),
959
- });
960
- exports.RoutineLocationUpdate = zod_1.z.object({
961
- routineId: zod_1.z.string(),
962
- folderId: zod_1.z.number().nullable(),
963
- index: zod_1.z.number(),
964
- });
965
- exports.RoutineFolder = zod_1.z.object({
966
- id: zod_1.z.number(),
967
- title: zod_1.z.string(),
968
- index: zod_1.z.number(),
969
- created_at: zod_1.z.string(),
970
- updated_at: zod_1.z.string(),
971
- });
972
- exports.ShareableRoutineFolder = zod_1.z.object({
973
- id: zod_1.z.number(),
974
- title: zod_1.z.string(),
975
- username: zod_1.z.string(),
976
- profile_pic: zod_1.z.string().optional(),
977
- routines: zod_1.z.array(exports.Routine),
978
- });
979
- exports.Program = zod_1.z.object({
980
- id: zod_1.z.string(),
981
- title: zod_1.z.string(),
982
- created_at: zod_1.z.string(),
983
- coach_id: zod_1.z.string(),
984
- client_id: zod_1.z.string().nullable(),
985
- template_program_id: zod_1.z.string().nullable(),
986
- folder_id: zod_1.z.number().nullable(),
987
- index: zod_1.z.number().nullable(),
988
- notes: zod_1.z.string().nullable(),
989
- duration_days: zod_1.z.number().nullable(),
990
- start_date: zod_1.z.string().nullable(),
991
- });
992
- exports.ProgramUpdate = zod_1.z.object({
993
- title: zod_1.z.string(),
994
- template_program_id: zod_1.z.string().nullable(),
995
- client_id: zod_1.z.string().nullable(),
996
- folder_id: zod_1.z.number().nullable(),
997
- notes: zod_1.z.string().nullable(),
998
- duration_days: zod_1.z.number().nullable(),
999
- start_date: zod_1.z.string().nullable(),
1000
- });
1001
- exports.PostAssignProgramRequest = zod_1.z.object({
1002
- title: zod_1.z.string(),
1003
- notes: zod_1.z.string().nullable(),
1004
- duration_days: zod_1.z.number().nullable(),
1005
- start_date: zod_1.z.string().nullable(),
1006
- template_program_id: zod_1.z.string(),
1007
- client_ids: zod_1.z.array(zod_1.z.string()),
1008
- });
1009
- exports.ProgramLocationUpdate = zod_1.z.object({
1010
- index: zod_1.z.number(),
1011
- program_id: zod_1.z.string(),
1012
- folder_id: zod_1.z.number().nullable(),
1013
- });
1014
- exports.ProgramFolder = zod_1.z.object({
1015
- created_at: zod_1.z.string(),
1016
- id: zod_1.z.number(),
1017
- index: zod_1.z.number(),
1018
- title: zod_1.z.string(),
1019
- coach_id: zod_1.z.string(),
1020
- });
1021
- exports.ProgramFolderLocationUpdate = zod_1.z.object({
1022
- index: zod_1.z.number(),
1023
- folder_id: zod_1.z.number(),
1024
- });
1025
- exports.ClientInvite = zod_1.z.object({
1026
- coach_name: zod_1.z.string().nullable(),
1027
- coach_profile_pic: zod_1.z.string().nullable(),
1028
- coach_username: zod_1.z.string(),
1029
- });
1030
- exports.GetInviteResponse = zod_1.z.object({
1031
- coach_name: zod_1.z.string().optional(),
1032
- coach_username: zod_1.z.string(),
1033
- coach_profile_pic: zod_1.z.string().optional(),
1034
- invitee_email: zod_1.z.string(),
1035
- invitee_username: zod_1.z.string().optional(),
1036
- });
1037
- exports.CoachClientInvite = zod_1.z.object({
1038
- client_id: zod_1.z.string().nullable(),
1039
- coach_id: zod_1.z.string(),
1040
- created_at: zod_1.z.date(),
1041
- invitee_email: zod_1.z.string(),
1042
- invitee_username: zod_1.z.string().nullable(),
1043
- invitee_profile_pic: zod_1.z.string().nullable(),
1044
- invitee_full_name: zod_1.z.string().nullable(),
1045
- short_id: zod_1.z.string(),
1046
- declined_at: zod_1.z.date().nullable(),
1047
- });
1048
- exports.OutstandingInvitesForCoachResponse = zod_1.z.object({
1049
- invites: zod_1.z.array(exports.CoachClientInvite),
1050
- });
1051
- exports.CoachTeamInvite = zod_1.z.object({
1052
- invitee_user_id: zod_1.z.string().nullable(),
1053
- inviter_user_id: zod_1.z.string(),
1054
- created_at: zod_1.z.date(),
1055
- invitee_email: zod_1.z.string(),
1056
- invitee_username: zod_1.z.string().nullable(),
1057
- invitee_profile_pic: zod_1.z.string().nullable(),
1058
- invitee_full_name: zod_1.z.string().nullable(),
1059
- invitee_role: exports.CoachRole,
1060
- short_id: zod_1.z.string(),
1061
- declined_at: zod_1.z.date().nullable(),
1062
- });
1063
- exports.GetTeamInviteResponse = zod_1.z.object({
1064
- invitee_email: zod_1.z.string(),
1065
- invitee_username: zod_1.z.string().optional(),
1066
- team_title: zod_1.z.string(),
1067
- team_image_url: zod_1.z.string().optional(),
1068
- });
1069
- exports.OutstandingInvitesForCoachTeamResponse = zod_1.z.object({
1070
- invites: zod_1.z.array(exports.CoachTeamInvite),
1071
- });
1072
- const MeasurementProperties = zod_1.z.object({
1073
- weight_kg: zod_1.z.number().optional(),
1074
- fat_percent: zod_1.z.number().optional(),
1075
- neck_cm: zod_1.z.number().optional(),
1076
- shoulder_cm: zod_1.z.number().optional(),
1077
- chest_cm: zod_1.z.number().optional(),
1078
- left_bicep_cm: zod_1.z.number().optional(),
1079
- right_bicep_cm: zod_1.z.number().optional(),
1080
- left_forearm_cm: zod_1.z.number().optional(),
1081
- right_forearm_cm: zod_1.z.number().optional(),
1082
- abdomen: zod_1.z.number().optional(),
1083
- waist: zod_1.z.number().optional(),
1084
- hips: zod_1.z.number().optional(),
1085
- left_thigh: zod_1.z.number().optional(),
1086
- right_thigh: zod_1.z.number().optional(),
1087
- left_calf: zod_1.z.number().optional(),
1088
- right_calf: zod_1.z.number().optional(),
1089
- });
1090
- exports.BodyMeasurementKey = zod_1.z.enum([
1091
- 'weight_kg',
1092
- 'fat_percent',
1093
- 'neck_cm',
1094
- 'shoulder_cm',
1095
- 'chest_cm',
1096
- 'left_bicep_cm',
1097
- 'right_bicep_cm',
1098
- 'left_forearm_cm',
1099
- 'right_forearm_cm',
1100
- 'abdomen',
1101
- 'waist',
1102
- 'hips',
1103
- 'left_thigh',
1104
- 'right_thigh',
1105
- 'left_calf',
1106
- 'right_calf',
1107
- ]);
1108
- exports.BodyMeasurement = MeasurementProperties.extend({
1109
- id: zod_1.z.number(),
1110
- date: zod_1.z.string(),
1111
- created_at: zod_1.z.string(),
1112
- picture_url: zod_1.z.string().optional(),
1113
- });
1114
- exports.PostBodyMeasurementRequest = exports.BodyMeasurement.omit({
1115
- id: true,
1116
- created_at: true,
1117
- });
1118
- exports.CreateCustomExerciseRequest = zod_1.z.object({
1119
- title: zod_1.z.string(),
1120
- muscle_group: exports.MuscleGroup,
1121
- other_muscles: zod_1.z.array(exports.MuscleGroup),
1122
- exercise_type: exports.CustomExerciseType,
1123
- equipment_category: exports.Equipment,
1124
- custom_exercise_image_url: zod_1.z.string().optional(),
1125
- media: exports.CustomExerciseMedia.optional(),
1126
- thumbnail_url: zod_1.z.string().optional(),
1127
- coach_id: zod_1.z.string().optional(),
1128
- });
1129
- exports.GetVolumeDoublingEnabledExercisesResponse = zod_1.z.object({
1130
- exerciseTemplateIds: zod_1.z.array(zod_1.z.string()),
1131
- });
1132
- exports.PostVolumeDoublingEnabledExercisesRequest = zod_1.z.object({
1133
- exerciseTemplateIds: zod_1.z.array(zod_1.z.string()),
1134
- });
1135
- exports.UpdateCustomExerciseRequest = zod_1.z.object({
1136
- id: zod_1.z.string(),
1137
- title: zod_1.z.string(),
1138
- muscle_group: exports.MuscleGroup,
1139
- other_muscles: zod_1.z.array(exports.MuscleGroup),
1140
- equipment_category: exports.Equipment,
1141
- custom_exercise_image_url: zod_1.z.string().optional(),
1142
- media: exports.CustomExerciseMedia.optional(),
1143
- thumbnail_url: zod_1.z.string().optional(),
1144
- });
1145
- exports.ExerciseTemplateCustomizationAttachmentUrlType = zod_1.z.union([
1146
- zod_1.z.literal('mp4_video'),
1147
- zod_1.z.literal('youtube'),
1148
- ]);
1149
- exports.ExerciseTemplateCustomization = zod_1.z.object({
1150
- exercise_template_id: zod_1.z.string(),
1151
- instructions: zod_1.z.string().optional(),
1152
- video_url: zod_1.z.string().optional(),
1153
- video_url_type: exports.ExerciseTemplateCustomizationAttachmentUrlType.optional(),
1154
- });
1155
- exports.CreateOrUpdateExerciseTemplateCustomizationRequest = zod_1.z.object({
1156
- exercise_template_id: zod_1.z.string(),
1157
- instructions: zod_1.z.string().optional(),
1158
- video_url: zod_1.z.string().optional(),
1159
- });
1160
- exports.ClientRecentExerciseData = zod_1.z.object({
1161
- exercise_template_id: zod_1.z.string(),
1162
- date_used: zod_1.z.number(),
1163
- });
1164
- exports.WeightRepComparisonMetric = zod_1.z.union([
1165
- zod_1.z.literal('one_rep_max'),
1166
- zod_1.z.literal('best_weight'),
1167
- zod_1.z.literal('best_set_volume'),
1168
- ]);
1169
- exports.RepsOnlyComparisonMetric = zod_1.z.union([
1170
- zod_1.z.literal('best_set_reps'),
1171
- zod_1.z.literal('best_session_reps'),
1172
- ]);
1173
- exports.ComparisonMetric = zod_1.z.union([
1174
- exports.WeightRepComparisonMetric,
1175
- exports.RepsOnlyComparisonMetric,
1176
- ]);
1177
- exports.RepsOnlyExerciseMetricComparison = zod_1.z.object({
1178
- type: zod_1.z.literal('reps_only'),
1179
- metric_id: exports.RepsOnlyComparisonMetric,
1180
- current_user_value_reps: zod_1.z.number(),
1181
- other_user_value_reps: zod_1.z.number(),
1182
- });
1183
- const BaseWeightRepExerciseMetricComparison = zod_1.z.object({
1184
- type: zod_1.z.literal('weight_rep'),
1185
- metric_id: exports.WeightRepComparisonMetric,
1186
- current_user_value_kg: zod_1.z.number(),
1187
- other_user_value_kg: zod_1.z.number(),
1188
- });
1189
- exports.OneRepMaxMetricComparison = BaseWeightRepExerciseMetricComparison.extend({
1190
- metric_id: zod_1.z.literal('one_rep_max'),
1191
- });
1192
- exports.BestSetVolumeMetricComparison = BaseWeightRepExerciseMetricComparison.extend({
1193
- metric_id: zod_1.z.literal('best_set_volume'),
1194
- });
1195
- exports.BestWeightMetricComparison = BaseWeightRepExerciseMetricComparison.extend({
1196
- metric_id: zod_1.z.literal('best_weight'),
1197
- current_user_rank: zod_1.z.number().optional(),
1198
- other_user_rank: zod_1.z.number().optional(),
1199
- });
1200
- exports.UserWeeklyWorkoutDuration = zod_1.z.object({
1201
- week_start_date: zod_1.z.string(),
1202
- week_end_date: zod_1.z.string(),
1203
- total_seconds: zod_1.z.number(),
1204
- });
1205
- exports.GeneratePasswordRecoveryTokenResult = zod_1.z.object({
1206
- result: zod_1.z.literal('success'),
1207
- });
1208
- exports.PromoResponse = zod_1.z.object({
1209
- endDate: zod_1.z.string(),
1210
- feedCellTitle: zod_1.z.object({
1211
- en: zod_1.z.string(),
1212
- es: zod_1.z.string(),
1213
- de: zod_1.z.string(),
1214
- fr: zod_1.z.string(),
1215
- it: zod_1.z.string(),
1216
- pt: zod_1.z.string(),
1217
- tr: zod_1.z.string(),
1218
- ru: zod_1.z.string(),
1219
- ja: zod_1.z.string(),
1220
- ko: zod_1.z.string(),
1221
- zh_CN: zod_1.z.string(),
1222
- zh_TW: zod_1.z.string(),
1223
- }),
1224
- });
1225
- exports.HevyCoachLaunchStatusResponse = zod_1.z.object({
1226
- endDate: zod_1.z.string(),
1227
- });
1228
- exports.UserExerciseSet = zod_1.z.object({
1229
- workout_id: zod_1.z.string(),
1230
- workout_short_id: zod_1.z.string(),
1231
- workout_title: zod_1.z.string(),
1232
- exercise_template_id: zod_1.z.string(),
1233
- created_at: zod_1.z.string(),
1234
- start_time: zod_1.z.number(),
1235
- end_time: zod_1.z.number(),
1236
- weight_kg: zod_1.z.number().nullable(),
1237
- reps: zod_1.z.number().nullable(),
1238
- duration_seconds: zod_1.z.number().nullable(),
1239
- distance_meters: zod_1.z.number().nullable(),
1240
- rpe: exports.RPE.nullable(),
1241
- user_bodyweight_kg: zod_1.z.number().nullable(),
1242
- custom_metric: zod_1.z.number().nullable(),
1243
- });
1244
- exports.SetCountMuscleSplitResponse = zod_1.z.object({
1245
- abdominals: zod_1.z.number(),
1246
- abductors: zod_1.z.number(),
1247
- adductors: zod_1.z.number(),
1248
- biceps: zod_1.z.number(),
1249
- lower_back: zod_1.z.number(),
1250
- upper_back: zod_1.z.number(),
1251
- cardio: zod_1.z.number(),
1252
- chest: zod_1.z.number(),
1253
- calves: zod_1.z.number(),
1254
- forearms: zod_1.z.number(),
1255
- glutes: zod_1.z.number(),
1256
- hamstrings: zod_1.z.number(),
1257
- lats: zod_1.z.number(),
1258
- quadriceps: zod_1.z.number(),
1259
- shoulders: zod_1.z.number(),
1260
- triceps: zod_1.z.number(),
1261
- traps: zod_1.z.number(),
1262
- neck: zod_1.z.number(),
1263
- full_body: zod_1.z.number(),
1264
- other: zod_1.z.number(),
1265
- });
1266
- exports.ComparableExerciseTemplatesResponse = zod_1.z.array(zod_1.z.object({
1267
- exercise_template_id: zod_1.z.string(),
1268
- }));
1269
- exports.UserProfileCompareResponse = zod_1.z.object({
1270
- current_user: zod_1.z.object({
1271
- workout_count: zod_1.z.number(),
1272
- volume_kg: zod_1.z.number(),
1273
- duration_seconds: zod_1.z.number(),
1274
- }),
1275
- other_user: zod_1.z.object({
1276
- workout_count: zod_1.z.number(),
1277
- volume_kg: zod_1.z.number(),
1278
- duration_seconds: zod_1.z.number(),
1279
- }),
1280
- });
1281
- exports.ExerciseLeaderboardEntry = zod_1.z.object({
1282
- username: zod_1.z.string(),
1283
- best_weight_kg: zod_1.z.number(),
1284
- profile_pic: zod_1.z.string().nullable(),
1285
- workout_id: zod_1.z.string(),
1286
- is_private: zod_1.z.boolean(),
1287
- set_id: zod_1.z.string(),
1288
- is_outlier: zod_1.z.boolean(),
1289
- });
1290
- exports.ExerciseLeaderboardResponse = zod_1.z.object({
1291
- leaderboard_entries: zod_1.z.array(exports.ExerciseLeaderboardEntry),
1292
- });
1293
- exports.StrengthLevel = zod_1.z.union([
1294
- zod_1.z.literal('beginner'),
1295
- zod_1.z.literal('intermediate'),
1296
- zod_1.z.literal('advanced'),
1297
- zod_1.z.literal('elite'),
1298
- ]);
1299
- exports.GetStrengthLevelParams = zod_1.z.object({
1300
- sex: zod_1.z.union([zod_1.z.literal('male'), zod_1.z.literal('female')]),
1301
- best_1rm_kg: zod_1.z.number(),
1302
- exercise_template_id: zod_1.z.string(),
1303
- age: zod_1.z.number(),
1304
- bodyweight_kg: zod_1.z.number(),
1305
- });
1306
- exports.StrengthLevelResponse = zod_1.z.object({
1307
- percentile: zod_1.z.number().nullable(),
1308
- });
1309
- exports.ServerYearInReview = zod_1.z.object({
1310
- supporters: zod_1.z.array(zod_1.z.object({
1311
- username: zod_1.z.string(),
1312
- like_count: zod_1.z.number(),
1313
- profile_pic: zod_1.z.string().optional(),
1314
- })),
1315
- });
1316
- exports.PlateCalculatorBar = zod_1.z.object({
1317
- id: zod_1.z.number(),
1318
- title: zod_1.z.string(),
1319
- weight: zod_1.z.number(),
1320
- unit: exports.WeightUnit,
1321
- });
1322
- exports.PlateCalculatorPlate = zod_1.z.object({
1323
- id: zod_1.z.number(),
1324
- weight: zod_1.z.number(),
1325
- unit: exports.WeightUnit,
1326
- });
1327
- exports.WarmupSet = zod_1.z.object({
1328
- percentWeight: zod_1.z.number(),
1329
- reps: zod_1.z.number(),
1330
- });
1331
- exports.WarmupCalculatorData = zod_1.z.object({
1332
- warmupCalculatorEnabled: zod_1.z.boolean(),
1333
- plateRoundingSettingKg: zod_1.z.number(),
1334
- plateRoundingSettingLbs: zod_1.z.number(),
1335
- dumbbellRoundingSettingKg: zod_1.z.number(),
1336
- dumbbellRoundingSettingLbs: zod_1.z.number(),
1337
- warmupSets: zod_1.z.array(exports.WarmupSet),
1338
- });
1339
- exports.RecalculateSetPRProgress = zod_1.z.object({
1340
- numWorkoutsProcessed: zod_1.z.number(),
1341
- numWorkoutsTotal: zod_1.z.number(),
1342
- });
1343
- exports.RecalculateSetPRStatusResponse = zod_1.z.union([
1344
- zod_1.z.object({
1345
- type: zod_1.z.literal('ready'),
1346
- }),
1347
- zod_1.z.object({
1348
- type: zod_1.z.literal('busy'),
1349
- progress: exports.RecalculateSetPRProgress,
1350
- }),
1351
- zod_1.z.object({
1352
- type: zod_1.z.literal('error'),
1353
- }),
1354
- ]);
1355
- exports.ExerciseTemplateUnit = zod_1.z.object({
1356
- id: zod_1.z.number(),
1357
- exercise_template_id: zod_1.z.string(),
1358
- weight_unit: exports.WeightUnit,
1359
- });
1360
- exports.NetworkType = zod_1.z.union([
1361
- zod_1.z.literal('wifi'),
1362
- zod_1.z.literal('cellular'),
1363
- zod_1.z.literal('unknown'),
1364
- ]);
1365
- exports.StripePrice = zod_1.z.object({
1366
- product_id: zod_1.z.string(),
1367
- billing_period: zod_1.z.union([
1368
- zod_1.z.literal('month'),
1369
- zod_1.z.literal('year'),
1370
- zod_1.z.literal('pay-once'),
1371
- ]),
1372
- price_usd: zod_1.z.number(),
1373
- });
1374
- exports.StripePromoCodeDetails = zod_1.z.object({
1375
- product_id: zod_1.z.string(),
1376
- percent_off: zod_1.z.number(),
1377
- });
1378
- exports.StripeCheckoutSessionRequest = zod_1.z.object({
1379
- lookup_key: zod_1.z.string(),
1380
- success_url: zod_1.z.string(),
1381
- cancel_url: zod_1.z.string(),
1382
- promo_code: zod_1.z.string().optional(),
1383
- });
1384
- exports.StripeCheckoutSessionResponse = zod_1.z.object({
1385
- url: zod_1.z.string(),
1386
- });
1387
- exports.PaddlePrice = zod_1.z.object({
1388
- paddle_price_id: zod_1.z.string(),
1389
- billing_period: zod_1.z.union([
1390
- zod_1.z.literal('month'),
1391
- zod_1.z.literal('year'),
1392
- zod_1.z.literal('lifetime'),
1393
- ]),
1394
- price_usd: zod_1.z.number(),
1395
- });
1396
- exports.BillingPeriod = zod_1.z.union([
1397
- zod_1.z.literal('lifetime'),
1398
- zod_1.z.literal('month'),
1399
- zod_1.z.literal('year'),
1400
- ]);
1401
- exports.PaddlePromoCodeDetails = zod_1.z.object({
1402
- code: zod_1.z.string(),
1403
- percent_off: zod_1.z.number(),
1404
- billing_period: exports.BillingPeriod,
1405
- });
1406
- exports.PaddlePlanChangeRequest = zod_1.z.object({
1407
- new_plan: zod_1.z.union([zod_1.z.literal('monthly'), zod_1.z.literal('yearly')]),
1408
- });
1409
- exports.StripeCustomerPortalSessionRequest = zod_1.z.object({
1410
- return_url: zod_1.z.string(),
1411
- });
1412
- exports.StripeCustomerPortalSessionResponse = zod_1.z.object({
1413
- url: zod_1.z.string(),
1414
- });
1415
- exports.UserValue = zod_1.z
1416
- .union([zod_1.z.string(), zod_1.z.number(), zod_1.z.boolean(), zod_1.z.array(zod_1.z.any())])
1417
- .nullable();
1418
- exports.UserKeyValues = zod_1.z.record(exports.UserValue);
1419
- exports.UserAuthenticationValidationResponse = zod_1.z.union([
1420
- zod_1.z.literal('unauthorized'),
1421
- zod_1.z.literal('authorized_user'),
1422
- zod_1.z.literal('admin'),
1423
- zod_1.z.literal('banned'),
1424
- zod_1.z.literal('shadow_banned'),
1425
- ]);
1426
- exports.UserWorkoutMetricsType = zod_1.z.enum(['duration', 'reps']);
1427
- const WorkoutMetricBase = zod_1.z.object({
1428
- workout_id: zod_1.z.string(),
1429
- start_time: zod_1.z.number(),
1430
- type: exports.UserWorkoutMetricsType,
1431
- });
1432
- exports.RepsWorkoutMetric = WorkoutMetricBase.extend({
1433
- type: zod_1.z.literal('reps'),
1434
- reps: zod_1.z.number(),
1435
- });
1436
- exports.DurationWorkoutMetric = WorkoutMetricBase.extend({
1437
- type: zod_1.z.literal('duration'),
1438
- duration_seconds: zod_1.z.number(),
1439
- });
1440
- exports.WorkoutMetric = zod_1.z.union([
1441
- exports.RepsWorkoutMetric,
1442
- exports.DurationWorkoutMetric,
1443
- ]);
1444
- exports.UserCalendarWorkout = zod_1.z.object({
1445
- workout_short_id: zod_1.z.string(),
1446
- title: zod_1.z.string(),
1447
- start_time: zod_1.z.number(),
1448
- duration_seconds: zod_1.z.number(),
1449
- });
1450
- const BaseClientActivity = zod_1.z.object({
1451
- type: zod_1.z.string(),
1452
- date: zod_1.z.string(),
1453
- client_id: zod_1.z.string(),
1454
- });
1455
- exports.ClientWorkoutActivity = BaseClientActivity.extend({
1456
- type: zod_1.z.literal('workout'),
1457
- workout_name: zod_1.z.string(),
1458
- workout_id: zod_1.z.string(),
1459
- duration_seconds: zod_1.z.number(),
1460
- total_volume_kg: zod_1.z.number(),
1461
- set_count: zod_1.z.number(),
1462
- prs: zod_1.z.array(exports.SetPersonalRecord),
1463
- });
1464
- exports.ClientMeasurementActivity = BaseClientActivity.extend({
1465
- type: zod_1.z.literal('measurement'),
1466
- measurement_id: zod_1.z.number(),
1467
- measurement_types: zod_1.z.array(zod_1.z.string()),
1468
- });
1469
- exports.ClientBodyweightMeasurementActivity = BaseClientActivity.extend({
1470
- type: zod_1.z.literal('bodyweight-measurement'),
1471
- measurement_id: zod_1.z.number(),
1472
- weight_kg: zod_1.z.number(),
1473
- trend_value: zod_1.z.number(),
1474
- });
1475
- exports.ClientInviteAcceptedActivity = BaseClientActivity.extend({
1476
- type: zod_1.z.literal('invite-accepted'),
1477
- });
1478
- exports.ClientAddedProgressPictureActivity = BaseClientActivity.extend({
1479
- type: zod_1.z.literal('progress-picture'),
1480
- picture_url: zod_1.z.string(),
1481
- measurement_id: zod_1.z.number(),
1482
- });
1483
- exports.ClientActivity = zod_1.z.union([
1484
- exports.ClientWorkoutActivity,
1485
- exports.ClientMeasurementActivity,
1486
- exports.ClientBodyweightMeasurementActivity,
1487
- exports.ClientInviteAcceptedActivity,
1488
- exports.ClientAddedProgressPictureActivity,
1489
- ]);
1490
- exports.WeeklyActiveClients = zod_1.z.object({
1491
- week_start_date: zod_1.z.string(),
1492
- active_client_ids: zod_1.z.array(zod_1.z.string()),
1493
- inactive_client_ids: zod_1.z.array(zod_1.z.string()),
1494
- });
1495
- const UserWorkoutBaseMedia = zod_1.z.object({
1496
- workout_id: zod_1.z.string(),
1497
- workout_name: zod_1.z.string(),
1498
- workout_index: zod_1.z.number(),
1499
- });
1500
- exports.UserWorkoutImage = UserWorkoutBaseMedia.extend({
1501
- type: zod_1.z.literal('image'),
1502
- url: zod_1.z.string(),
1503
- });
1504
- exports.UserWorkoutVideo = UserWorkoutBaseMedia.extend({
1505
- type: zod_1.z.literal('video'),
1506
- url: zod_1.z.string(),
1507
- thumbnail_url: zod_1.z.string(),
1508
- });
1509
- exports.UserWorkoutMedia = zod_1.z.union([exports.UserWorkoutImage, exports.UserWorkoutVideo]);
1510
- exports.ShareToPlatform = zod_1.z.union([
1511
- zod_1.z.literal('strava'),
1512
- zod_1.z.literal('appleHealth'),
1513
- zod_1.z.literal('googleFit'),
1514
- zod_1.z.literal('healthConnect'),
1515
- ]);
1516
- exports.WorkoutVisibility = zod_1.z.union([
1517
- zod_1.z.literal('public'),
1518
- zod_1.z.literal('private'),
1519
- zod_1.z.literal('default'),
1520
- ]);
1521
- exports.CreateRoutineCopyRequest = zod_1.z.object({
1522
- routineId: zod_1.z.string(),
1523
- ignoreValues: zod_1.z.boolean(),
1524
- index: zod_1.z.number().nullable(),
1525
- copiedRoutineTitle: zod_1.z.string().optional(),
1526
- folderId: zod_1.z.number().nullable(),
1527
- });
1528
- exports.HevyPlatforms = zod_1.z.union([
1529
- zod_1.z.literal('hevy'),
1530
- zod_1.z.literal('hevy-web'),
1531
- zod_1.z.literal('hevy-coach'),
1532
- zod_1.z.literal('hevy-coach-web'),
1533
- ]);
1534
- exports.FeedbackType = zod_1.z.union([
1535
- zod_1.z.literal('general'),
1536
- zod_1.z.literal('feature-request'),
1537
- zod_1.z.literal('bug-report'),
1538
- zod_1.z.literal('get-help'),
1539
- zod_1.z.literal('report-comment'),
1540
- zod_1.z.literal('report-workout'),
1541
- zod_1.z.literal('report-profile'),
1542
- zod_1.z.literal('rating-review'),
1543
- zod_1.z.literal('cancel-subscription'),
1544
- ]);
1545
- const BaseFeedback = zod_1.z.object({
1546
- platform: exports.HevyPlatforms,
1547
- type: exports.FeedbackType,
1548
- userId: zod_1.z.string(),
1549
- message: zod_1.z.string().optional(),
1550
- data: zod_1.z.record(zod_1.z.unknown()).optional().nullable(),
1551
- debugInfo: zod_1.z.record(zod_1.z.unknown()).optional().nullable(),
1552
- });
1553
- exports.GeneralFeedback = BaseFeedback.extend({
1554
- type: zod_1.z.literal('general'),
1555
- });
1556
- exports.FeatureRequestFeedback = BaseFeedback.extend({
1557
- type: zod_1.z.literal('feature-request'),
1558
- });
1559
- exports.BugReportFeedback = BaseFeedback.extend({
1560
- type: zod_1.z.literal('bug-report'),
1561
- });
1562
- exports.GetHelpFeedback = BaseFeedback.extend({
1563
- type: zod_1.z.literal('get-help'),
1564
- data: zod_1.z.object({
1565
- source: zod_1.z.string(),
1566
- }),
1567
- });
1568
- exports.ReportCommentFeedback = BaseFeedback.extend({
1569
- type: zod_1.z.literal('report-comment'),
1570
- data: zod_1.z.object({
1571
- commentId: zod_1.z.number(),
1572
- commentUsername: zod_1.z.string(),
1573
- comment: zod_1.z.string(),
1574
- workoutId: zod_1.z.string(),
1575
- }),
1576
- });
1577
- exports.ReportWorkoutFeedback = BaseFeedback.extend({
1578
- type: zod_1.z.literal('report-workout'),
1579
- data: zod_1.z.object({
1580
- workoutId: zod_1.z.string(),
1581
- workoutUsername: zod_1.z.string(),
1582
- }),
1583
- });
1584
- exports.ReportProfileFeedback = BaseFeedback.extend({
1585
- type: zod_1.z.literal('report-profile'),
1586
- data: zod_1.z.object({
1587
- profileUsername: zod_1.z.string(),
1588
- }),
1589
- });
1590
- exports.RatingPromptFeedback = BaseFeedback.extend({
1591
- type: zod_1.z.literal('rating-review'),
1592
- });
1593
- exports.CancelSubscriptionFeedback = BaseFeedback.extend({
1594
- type: zod_1.z.literal('cancel-subscription'),
1595
- data: zod_1.z
1596
- .object({
1597
- reason: zod_1.z.string(),
1598
- })
1599
- .optional(),
1600
- });
1601
- exports.Feedback = zod_1.z.union([
1602
- exports.GeneralFeedback,
1603
- exports.FeatureRequestFeedback,
1604
- exports.BugReportFeedback,
1605
- exports.GetHelpFeedback,
1606
- exports.ReportCommentFeedback,
1607
- exports.ReportWorkoutFeedback,
1608
- exports.ReportProfileFeedback,
1609
- exports.RatingPromptFeedback,
1610
- exports.CancelSubscriptionFeedback,
1611
- ]);
1612
- exports.SuggestedUserSource = zod_1.z.union([
1613
- zod_1.z.literal('popular'),
1614
- zod_1.z.literal('local'),
1615
- zod_1.z.literal('contact'),
1616
- zod_1.z.literal('mutual_follows'),
1617
- zod_1.z.literal('follows_you'),
1618
- zod_1.z.literal('featured'),
1619
- ]);
1620
- exports.SuggestedUserLabel = zod_1.z.union([
1621
- zod_1.z.literal('contact'),
1622
- zod_1.z.literal('mutual_friends'),
1623
- zod_1.z.literal('follows_you'),
1624
- zod_1.z.literal('featured'),
1625
- ]);
1626
- exports.SuggestedUser = zod_1.z.object({
1627
- id: zod_1.z.string(),
1628
- profile_pic: zod_1.z.string().optional(),
1629
- username: zod_1.z.string(),
1630
- full_name: zod_1.z.string().optional(),
1631
- following_status: exports.FollowingStatus,
1632
- private_profile: zod_1.z.boolean(),
1633
- verified: zod_1.z.boolean(),
1634
- source: exports.SuggestedUserSource.optional(),
1635
- label: exports.SuggestedUserLabel,
1636
- });
1637
- exports.BackofficeFeedback = zod_1.z.object({
1638
- user_id: zod_1.z.string(),
1639
- platform: zod_1.z.string(),
1640
- type: zod_1.z.string(),
1641
- username: zod_1.z.string().optional(),
1642
- message: zod_1.z.string().optional(),
1643
- data: zod_1.z.record(zod_1.z.unknown()).optional().nullable(),
1644
- debug_info: zod_1.z.record(zod_1.z.unknown()).optional().nullable(),
1645
- created_at: zod_1.z.date(),
1646
- });
1647
- exports.BackofficeFeedbacksResponse = zod_1.z.object({
1648
- feedbacks: zod_1.z.array(exports.BackofficeFeedback),
1649
- });
1650
- exports.BackofficeRemoteFeatureFlag = zod_1.z.object({
1651
- key: zod_1.z.string(),
1652
- name: zod_1.z.string(),
1653
- enabled: zod_1.z.boolean(),
1654
- description: zod_1.z.string(),
1655
- updated_at: zod_1.z.date(),
1656
- created_at: zod_1.z.date(),
1657
- });
1658
- exports.BackofficeRemoteFeatureFlagsResponse = zod_1.z.object({
1659
- flags: zod_1.z.array(exports.BackofficeRemoteFeatureFlag),
1660
- });
1661
- exports.FormatAtText = zod_1.z.object({
1662
- format: zod_1.z.union([zod_1.z.literal('none'), zod_1.z.literal('@'), zod_1.z.literal('link')]),
1663
- text: zod_1.z.string(),
1664
- });
1665
- exports.GoogleWebSignInRequest = zod_1.z.object({
1666
- code: zod_1.z.string(),
1667
- gympassUserId: zod_1.z.string().optional(),
1668
- });
1669
- exports.GoogleCoachWebSignInRequest = zod_1.z.object({
1670
- code: zod_1.z.string(),
1671
- invite_short_id: zod_1.z.string().optional(),
1672
- });
1673
- const _Lookup = zod_1.z.any();
1674
- exports.AccountResponse = zod_1.z.object({
1675
- id: zod_1.z.string(),
1676
- username: zod_1.z.string(),
1677
- email: zod_1.z.string(),
1678
- full_name: zod_1.z.string().optional(),
1679
- description: zod_1.z.string().optional(),
1680
- website_link: zod_1.z.string().optional(),
1681
- profile_pic: zod_1.z.string().optional(),
1682
- gift_pro_expiry: zod_1.z.string().optional(),
1683
- gympass_user_id: zod_1.z.string().optional(),
1684
- is_gympass_plan_active: zod_1.z.boolean().optional(),
1685
- follows_push_enabled: zod_1.z.boolean(),
1686
- likes_push_enabled: zod_1.z.boolean(),
1687
- comments_push_enabled: zod_1.z.boolean(),
1688
- comment_mention_push_enabled: zod_1.z.boolean(),
1689
- comment_discussion_push_enabled: zod_1.z.boolean(),
1690
- comment_replies_push_enabled: zod_1.z.boolean().optional(),
1691
- private_profile: zod_1.z.boolean(),
1692
- follower_count: zod_1.z.number(),
1693
- following_count: zod_1.z.number(),
1694
- created_at: zod_1.z.string(),
1695
- last_workout_at: zod_1.z.string(),
1696
- accepted_terms_and_conditions: zod_1.z.boolean(),
1697
- is_coached: zod_1.z.boolean(),
1698
- birthday: zod_1.z.string().optional(),
1699
- sex: exports.Sex.optional(),
1700
- });
1701
- exports.BackofficeUserResponse = zod_1.z.union([
1702
- exports.BackofficeExistingUserResponse,
1703
- exports.BackofficeDeletedUserResponse,
1704
- ]);
1705
- exports.BackofficeSuggestedUsersResponse = zod_1.z.object({
1706
- users: zod_1.z.array(exports.SuggestedUser),
1707
- });
1708
- exports.CustomExercise = exports.BaseExerciseTemplate.extend({
1709
- is_custom: zod_1.z.literal(true),
1710
- exercise_type: exports.CustomExerciseType,
1711
- priority: zod_1.z.literal(10),
1712
- custom_exercise_image_url: zod_1.z.string().optional(),
1713
- media: exports.CustomExerciseMedia.optional(),
1714
- parent_exercise_template_id: zod_1.z.string().optional(),
1715
- });
1716
- exports.CoachAccountConfiguration = zod_1.z.object({
1717
- enable_chat_for_new_clients: zod_1.z.boolean(),
1718
- enable_notifications_for_new_clients: zod_1.z.boolean(),
1719
- weight_unit: exports.WeightUnit.optional(),
1720
- distance_unit: exports.DistanceUnit.optional(),
1721
- body_measurement_unit: exports.BodyMeasurementUnit.optional(),
1722
- default_rest_timer_seconds: zod_1.z.number().optional(),
1723
- is_rpe_enabled_for_new_routines: zod_1.z.boolean().optional(),
1724
- first_weekday: exports.Weekday.optional(),
1725
- default_rep_input_type: exports.RepInputType.optional(),
1726
- web_notifications: exports.WebNotificationConfiguration.optional(),
1727
- email_notifications: exports.EmailNotificationConfiguration.optional(),
1728
- mobile_notifications: exports.MobileNotificationConfiguration.optional(),
1729
- });
1730
- exports.PublicUserProfile = zod_1.z.object({
1731
- private_profile: zod_1.z.boolean(),
1732
- username: zod_1.z.string(),
1733
- verified: zod_1.z.boolean(),
1734
- profile_pic: zod_1.z.string().optional(),
1735
- full_name: zod_1.z.string().optional(),
1736
- description: zod_1.z.string().optional(),
1737
- website_link: zod_1.z.string().optional(),
1738
- workout_count: zod_1.z.number(),
1739
- follower_count: zod_1.z.number(),
1740
- following_count: zod_1.z.number(),
1741
- routines: zod_1.z.array(exports.RoutineMetadata),
1742
- weekly_workout_durations: zod_1.z.array(exports.WeeklyWorkoutDuration),
1743
- last_workout: exports.Workout.optional(),
1744
- });
1745
- exports.PostWorkoutRequestExercise = zod_1.z.object({
1746
- title: zod_1.z.string(),
1747
- exercise_template_id: zod_1.z.string(),
1748
- superset_id: zod_1.z.number().optional(),
1749
- rest_timer_seconds: zod_1.z.number().optional(),
1750
- notes: zod_1.z.string(),
1751
- volume_doubling_enabled: zod_1.z.boolean().optional(),
1752
- sets: zod_1.z.array(exports.PostWorkoutRequestSet),
1753
- });
1754
- exports.PostWorkoutRequestWorkout = zod_1.z.object({
1755
- title: zod_1.z.string(),
1756
- description: zod_1.z.string(),
1757
- media: zod_1.z.array(exports.WorkoutMedia),
1758
- start_time: zod_1.z.number(),
1759
- end_time: zod_1.z.number(),
1760
- exercises: zod_1.z.array(exports.PostWorkoutRequestExercise),
1761
- routine_id: zod_1.z.string().optional(),
1762
- apple_watch: zod_1.z.boolean(),
1763
- wearos_watch: zod_1.z.boolean(),
1764
- workout_id: zod_1.z.string(),
1765
- is_private: zod_1.z.boolean(),
1766
- });
1767
- const UpdateWorkoutRequestWorkoutRequiredFields = exports.PostWorkoutRequestWorkout.pick({ start_time: true, end_time: true });
1768
- const UpdateWorkoutRequestWorkoutOptionalFields = exports.PostWorkoutRequestWorkout.pick({
1769
- title: true,
1770
- description: true,
1771
- media: true,
1772
- exercises: true,
1773
- is_private: true,
1774
- });
1775
- exports.RoutineUpdateExercise = zod_1.z.object({
1776
- exercise_template_id: zod_1.z.string(),
1777
- superset_id: zod_1.z.number().optional().nullable(),
1778
- rest_seconds: zod_1.z.number().optional().nullable(),
1779
- sets: zod_1.z.array(exports.RoutineUpdateSet),
1780
- notes: zod_1.z.string().optional().nullable(),
1781
- input_modifier: zod_1.z.literal('rep-range').optional(),
1782
- });
1783
- exports.RoutineUpdate = zod_1.z.object({
1784
- title: zod_1.z.string(),
1785
- exercises: zod_1.z.array(exports.RoutineUpdateExercise),
1786
- parent_routine_id: zod_1.z.string().optional(),
1787
- folder_id: zod_1.z.number().nullable(),
1788
- index: zod_1.z.number(),
1789
- program_id: zod_1.z.string().nullable(),
1790
- notes: zod_1.z.string().nullable(),
1791
- coach_force_rpe_enabled: zod_1.z.boolean().optional(),
1792
- });
1793
- exports.ExerciseMetricComparison = zod_1.z.union([
1794
- exports.OneRepMaxMetricComparison,
1795
- exports.BestWeightMetricComparison,
1796
- exports.BestSetVolumeMetricComparison,
1797
- exports.RepsOnlyExerciseMetricComparison,
1798
- ]);
1799
- exports.UserMetadataRequest = zod_1.z.object({
1800
- appLanguage: zod_1.z.string(),
1801
- platform: zod_1.z.string(),
1802
- platformVersion: zod_1.z.string(),
1803
- appVersion: zod_1.z.string(),
1804
- securityId: zod_1.z.string().optional(),
1805
- networkType: exports.NetworkType.optional(),
1806
- });
1807
- exports.CoachsClientData = zod_1.z.object({
1808
- id: zod_1.z.string(),
1809
- email: zod_1.z.string(),
1810
- username: zod_1.z.string(),
1811
- profile_pic: zod_1.z.string().nullable(),
1812
- full_name: zod_1.z.string().nullable(),
1813
- last_workout_at: zod_1.z.string(),
1814
- notes: zod_1.z.string().nullable(),
1815
- custom_exercises: zod_1.z.array(exports.CustomExercise),
1816
- user_preferences: exports.UserPreferences.nullable(),
1817
- user_created_at: zod_1.z.string(),
1818
- coaching_started_at: zod_1.z.string(),
1819
- is_sample_user: zod_1.z.boolean(),
1820
- client_configuration: exports.ClientConfiguration,
1821
- coach_id: zod_1.z.string(),
1822
- program: exports.MinimalClientProgram.optional(),
1823
- });
1824
- exports.PostWorkoutRequest = zod_1.z.object({
1825
- workout: exports.PostWorkoutRequestWorkout,
1826
- source: zod_1.z.union([zod_1.z.literal('strong'), zod_1.z.literal('public-api')]).optional(),
1827
- share_to_strava: zod_1.z.boolean().optional(),
1828
- strava_activity_local_time: zod_1.z.string().optional(),
1829
- });
1830
- exports.PostClientsWorkoutRequest = zod_1.z.object({
1831
- workout: exports.PostWorkoutRequestWorkout,
1832
- updateRoutineValues: zod_1.z.boolean(),
1833
- });
1834
- exports.UpdateWorkoutRequestWorkout = UpdateWorkoutRequestWorkoutOptionalFields.partial().and(zod_1.z.object({
1835
- start_and_end_time: UpdateWorkoutRequestWorkoutRequiredFields.optional(),
1836
- }));
1837
- exports.PostRoutineRequest = exports.RoutineUpdate.extend({
1838
- clientId: zod_1.z.string(),
1839
- });