hevy-shared 1.0.962 → 1.0.964

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.
Files changed (86) hide show
  1. package/README.md +17 -2
  2. package/built/API/APIClient.d.ts +157 -0
  3. package/built/API/APIClient.js +381 -0
  4. package/built/API/index.d.ts +2 -0
  5. package/built/API/index.js +18 -0
  6. package/built/API/types.d.ts +38 -0
  7. package/built/API/types.js +18 -0
  8. package/built/adjustEventTokens.d.ts +16 -0
  9. package/built/adjustEventTokens.js +18 -0
  10. package/built/adminPermissions.d.ts +4 -0
  11. package/built/adminPermissions.js +22 -0
  12. package/built/async.d.ts +50 -0
  13. package/built/async.js +170 -0
  14. package/built/chat.d.ts +25 -23
  15. package/built/coachPlans.d.ts +2 -1
  16. package/built/coachPlans.js +2 -2
  17. package/built/cue.d.ts +12 -0
  18. package/built/cue.js +22 -0
  19. package/built/exerciseLocaleUtils.d.ts +17 -0
  20. package/built/exerciseLocaleUtils.js +62 -0
  21. package/built/filterExercises.d.ts +19 -3
  22. package/built/filterExercises.js +72 -60
  23. package/built/hevyTrainer.d.ts +250 -0
  24. package/built/hevyTrainer.js +676 -0
  25. package/built/index.d.ts +1217 -304
  26. package/built/index.js +268 -75
  27. package/built/muscleHeatmaps.d.ts +31 -0
  28. package/built/muscleHeatmaps.js +68 -0
  29. package/built/muscleSplits.d.ts +36 -0
  30. package/built/muscleSplits.js +100 -0
  31. package/built/normalizedWorkoutUtils.d.ts +88 -0
  32. package/built/normalizedWorkoutUtils.js +112 -0
  33. package/built/notifications.d.ts +215 -0
  34. package/built/notifications.js +9 -0
  35. package/built/routineUtils.d.ts +14 -0
  36. package/built/routineUtils.js +186 -0
  37. package/built/setIndicatorUtils.d.ts +4 -3
  38. package/built/setIndicatorUtils.js +15 -1
  39. package/built/tests/async.test.d.ts +1 -0
  40. package/built/tests/async.test.js +49 -0
  41. package/built/tests/hevyTrainer.test.d.ts +1 -0
  42. package/built/tests/hevyTrainer.test.js +1199 -0
  43. package/built/tests/muscleSplit.test.d.ts +1 -0
  44. package/built/tests/muscleSplit.test.js +153 -0
  45. package/built/tests/routineUtils.test.d.ts +1 -0
  46. package/built/tests/routineUtils.test.js +745 -0
  47. package/built/tests/testUtils.d.ts +85 -0
  48. package/built/tests/testUtils.js +319 -0
  49. package/built/tests/utils.test.js +748 -0
  50. package/built/tests/workoutVolume.test.js +165 -49
  51. package/built/translations/index.d.ts +2 -0
  52. package/built/translations/index.js +18 -0
  53. package/built/translations/translationUtils.d.ts +2 -0
  54. package/built/translations/translationUtils.js +61 -0
  55. package/built/translations/types.d.ts +8 -0
  56. package/built/translations/types.js +20 -0
  57. package/built/typeUtils.d.ts +70 -0
  58. package/built/typeUtils.js +55 -0
  59. package/built/units.d.ts +14 -7
  60. package/built/units.js +24 -14
  61. package/built/utils.d.ts +192 -5
  62. package/built/utils.js +598 -85
  63. package/built/websocket.d.ts +14 -2
  64. package/built/workoutVolume.d.ts +24 -5
  65. package/built/workoutVolume.js +25 -34
  66. package/package.json +30 -9
  67. package/.eslintignore +0 -2
  68. package/.eslintrc +0 -21
  69. package/.github/workflows/ci.yml +0 -15
  70. package/.github/workflows/npm-publish.yml +0 -59
  71. package/.github/workflows/pr-auto-assign.yml +0 -15
  72. package/.prettierrc.js +0 -5
  73. package/jest.config.js +0 -4
  74. package/src/chat.ts +0 -130
  75. package/src/coachPlans.ts +0 -57
  76. package/src/constants.ts +0 -14
  77. package/src/filterExercises.ts +0 -222
  78. package/src/index.ts +0 -1576
  79. package/src/setIndicatorUtils.ts +0 -137
  80. package/src/tests/utils.test.ts +0 -156
  81. package/src/tests/workoutVolume.test.ts +0 -93
  82. package/src/units.ts +0 -41
  83. package/src/utils.ts +0 -516
  84. package/src/websocket.ts +0 -36
  85. package/src/workoutVolume.ts +0 -175
  86. package/tsconfig.json +0 -70
@@ -0,0 +1,85 @@
1
+ import { ExerciseType, RPE, RepRange, Routine, RoutineExercise, RoutineUpdate, RoutineUpdateExercise, SetType } from '..';
2
+ import { NormalizedExercise, NormalizedWorkout } from '../normalizedWorkoutUtils';
3
+ interface RoutineBuilderScope {
4
+ nextExerciseId: () => string;
5
+ }
6
+ export declare class RoutineBuilder {
7
+ private _exerciseId;
8
+ private _exercises;
9
+ constructor();
10
+ private _scope;
11
+ addExercise: (builderScope: (builder: RoutineExerciseBuilder) => RoutineExerciseBuilder) => this;
12
+ build: () => Routine;
13
+ }
14
+ interface RoutineExerciseBuilderProps {
15
+ exerciseTemplateId: string;
16
+ exerciseType: ExerciseType;
17
+ supersetId?: number | null;
18
+ restSeconds?: number | null;
19
+ inputModifier?: 'rep-range';
20
+ }
21
+ declare class RoutineExerciseBuilder {
22
+ private _routineBuilderScope;
23
+ private _exercise;
24
+ constructor(routineBuilderScope: RoutineBuilderScope);
25
+ setProps: (props: RoutineExerciseBuilderProps) => RoutineExerciseBuilder;
26
+ private _addSet;
27
+ addWeightRepsSet: (indicator: SetType, weight_kg?: number | null, reps?: number | null, rpe?: RPE | null) => this;
28
+ addWeightRepRangeSet: (indicator: SetType, weight_kg?: number | null, rep_range?: RepRange, rpe?: RPE | null) => this;
29
+ addRepsSet: (indicator: SetType, reps?: number | null, rpe?: RPE | null) => this;
30
+ addRepRangeSet: (indicator: SetType, rep_range?: RepRange, rpe?: RPE | null) => this;
31
+ addDistanceDurationSet: (indicator: SetType, distance_meters?: number | null, duration_seconds?: number | null) => this;
32
+ addDurationSet: (indicator: SetType, duration_seconds?: number | null) => this;
33
+ addShortDistanceWeightSet: (indicator: SetType, distance_meters?: number | null, weight_kg?: number | null) => this;
34
+ build: () => RoutineExercise;
35
+ }
36
+ export declare class WorkoutBuilder {
37
+ private _exercises;
38
+ constructor();
39
+ addExercise: (builderScope: (builder: WorkoutExerciseBuilder) => WorkoutExerciseBuilder) => this;
40
+ build: () => NormalizedWorkout;
41
+ }
42
+ interface WorkoutExerciseBuilderProps {
43
+ id: string;
44
+ supersetId?: number;
45
+ autoRestTimerSeconds?: number;
46
+ }
47
+ declare class WorkoutExerciseBuilder {
48
+ private _exercise;
49
+ constructor();
50
+ setProps: (props: WorkoutExerciseBuilderProps) => WorkoutExerciseBuilder;
51
+ private _addSet;
52
+ addWeightRepsSet: (indicator: SetType, weight?: number, reps?: number, rpe?: RPE, completed?: boolean) => this;
53
+ addRepsSet: (indicator: SetType, reps?: number, rpe?: RPE, completed?: boolean) => this;
54
+ addDistanceDurationSet: (indicator: SetType, distance?: number, duration?: number) => this;
55
+ addDurationSet: (indicator: SetType, duration?: number) => this;
56
+ addShortDistanceWeightSet: (indicator: SetType, distance?: number, weight?: number) => this;
57
+ build: () => NormalizedExercise;
58
+ }
59
+ export declare class RoutineUpdateBuilder {
60
+ private _exercises;
61
+ constructor();
62
+ addExercise: (builderScope: (builder: RoutineUpdateExerciseBuilder) => RoutineUpdateExerciseBuilder) => this;
63
+ build: () => RoutineUpdate;
64
+ }
65
+ interface RoutineUpdateExerciseBuilderProps {
66
+ exerciseTemplateId: string;
67
+ supersetId?: number;
68
+ restSeconds?: number;
69
+ inputModifier?: 'rep-range';
70
+ }
71
+ declare class RoutineUpdateExerciseBuilder {
72
+ private _exercise;
73
+ constructor();
74
+ setProps: (props: RoutineUpdateExerciseBuilderProps) => RoutineUpdateExerciseBuilder;
75
+ private _addSet;
76
+ addWeightRepsSet: (indicator: SetType, weight_kg?: number | null, reps?: number | null, rpe?: RPE | null) => this;
77
+ addWeightRepRangeSet: (indicator: SetType, weight_kg?: number | null, rep_range?: RepRange, rpe?: RPE | null) => this;
78
+ addRepsSet: (indicator: SetType, reps?: number | null, rpe?: RPE | null) => this;
79
+ addRepRangeSet: (indicator: SetType, rep_range?: RepRange, rpe?: RPE | null) => this;
80
+ addDistanceDurationSet: (indicator: SetType, distance_meters?: number | null, duration_seconds?: number | null) => this;
81
+ addDurationSet: (indicator: SetType, duration_seconds?: number | null) => this;
82
+ addShortDistanceWeightSet: (indicator: SetType, distance_meters?: number | null, weight_kg?: number | null) => this;
83
+ build: () => RoutineUpdateExercise;
84
+ }
85
+ export {};
@@ -0,0 +1,319 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RoutineUpdateBuilder = exports.WorkoutBuilder = exports.RoutineBuilder = void 0;
4
+ const u8ToUuid = (id) => {
5
+ const hex = (Number(id) || 0).toString(16);
6
+ return '00000000-0000-4000-8000-000000000000'.slice(0, -hex.length) + hex;
7
+ };
8
+ class RoutineBuilder {
9
+ constructor() {
10
+ this._exerciseId = 1;
11
+ this._scope = {
12
+ nextExerciseId: () => u8ToUuid(this._exerciseId++),
13
+ };
14
+ this.addExercise = (builderScope) => {
15
+ const exercise = builderScope(new RoutineExerciseBuilder(this._scope)).build();
16
+ this._exercises.push(exercise);
17
+ return this;
18
+ };
19
+ this.build = () => ({
20
+ username: '',
21
+ id: '',
22
+ short_id: '',
23
+ parent_routine_id: null,
24
+ title: '',
25
+ profile_pic: undefined,
26
+ exercises: this._exercises,
27
+ updated_at: '',
28
+ index: null,
29
+ folder_id: null,
30
+ program_id: null,
31
+ coach_id: null,
32
+ notes: null,
33
+ coach_force_rpe_enabled: false,
34
+ hevy_trainer_program_id: null,
35
+ created_at: '',
36
+ });
37
+ this._exercises = [];
38
+ }
39
+ }
40
+ exports.RoutineBuilder = RoutineBuilder;
41
+ class RoutineExerciseBuilder {
42
+ constructor(routineBuilderScope) {
43
+ this.setProps = (props) => {
44
+ var _a, _b, _c;
45
+ const exercise = Object.assign(Object.assign({}, this._exercise), { exercise_template_id: props.exerciseTemplateId, exercise_type: props.exerciseType, superset_id: (_a = props.supersetId) !== null && _a !== void 0 ? _a : null, rest_seconds: (_b = props.restSeconds) !== null && _b !== void 0 ? _b : null, input_modifier: (_c = props.inputModifier) !== null && _c !== void 0 ? _c : undefined });
46
+ this._exercise = exercise;
47
+ return this;
48
+ };
49
+ this._addSet = (props) => {
50
+ const set = Object.assign({ index: this._exercise.sets.length }, props);
51
+ this._exercise.sets.push(set);
52
+ return this;
53
+ };
54
+ this.addWeightRepsSet = (indicator, weight_kg, reps, rpe) => this._addSet({
55
+ indicator,
56
+ weight_kg,
57
+ reps,
58
+ distance_meters: undefined,
59
+ duration_seconds: undefined,
60
+ rep_range: undefined,
61
+ rpe,
62
+ });
63
+ this.addWeightRepRangeSet = (indicator, weight_kg, rep_range, rpe) => this._addSet({
64
+ indicator,
65
+ weight_kg,
66
+ reps: undefined,
67
+ distance_meters: undefined,
68
+ duration_seconds: undefined,
69
+ rep_range,
70
+ rpe,
71
+ });
72
+ this.addRepsSet = (indicator, reps, rpe) => this._addSet({
73
+ indicator,
74
+ weight_kg: undefined,
75
+ reps,
76
+ distance_meters: undefined,
77
+ duration_seconds: undefined,
78
+ rep_range: undefined,
79
+ rpe,
80
+ });
81
+ this.addRepRangeSet = (indicator, rep_range, rpe) => this._addSet({
82
+ indicator,
83
+ weight_kg: undefined,
84
+ reps: undefined,
85
+ distance_meters: undefined,
86
+ duration_seconds: undefined,
87
+ rep_range,
88
+ rpe,
89
+ });
90
+ this.addDistanceDurationSet = (indicator, distance_meters, duration_seconds) => this._addSet({
91
+ indicator,
92
+ weight_kg: undefined,
93
+ reps: undefined,
94
+ distance_meters,
95
+ duration_seconds,
96
+ rep_range: undefined,
97
+ rpe: undefined,
98
+ });
99
+ this.addDurationSet = (indicator, duration_seconds) => this._addSet({
100
+ indicator,
101
+ weight_kg: undefined,
102
+ reps: undefined,
103
+ distance_meters: undefined,
104
+ duration_seconds,
105
+ rep_range: undefined,
106
+ rpe: undefined,
107
+ });
108
+ this.addShortDistanceWeightSet = (indicator, distance_meters, weight_kg) => this._addSet({
109
+ indicator,
110
+ weight_kg,
111
+ reps: undefined,
112
+ distance_meters,
113
+ duration_seconds: undefined,
114
+ rep_range: undefined,
115
+ rpe: undefined,
116
+ });
117
+ this.build = () => this._exercise;
118
+ this._routineBuilderScope = routineBuilderScope;
119
+ const exercise = {
120
+ exercise_template_id: '',
121
+ id: this._routineBuilderScope.nextExerciseId(),
122
+ username: 'tester',
123
+ warmup_set_count: 0,
124
+ normal_set_count: 0,
125
+ title: '',
126
+ muscle_group: 'chest',
127
+ other_muscles: [],
128
+ exercise_type: 'weight_reps',
129
+ equipment_category: 'barbell',
130
+ notes: '',
131
+ sets: [],
132
+ superset_id: null,
133
+ rest_seconds: null,
134
+ };
135
+ this._exercise = exercise;
136
+ }
137
+ }
138
+ class WorkoutBuilder {
139
+ constructor() {
140
+ this.addExercise = (builderScope) => {
141
+ const exercise = builderScope(new WorkoutExerciseBuilder()).build();
142
+ this._exercises.push(exercise);
143
+ return this;
144
+ };
145
+ this.build = () => ({
146
+ name: '',
147
+ description: '',
148
+ media: [],
149
+ startTime: 0,
150
+ timeEvents: [],
151
+ exercises: this._exercises,
152
+ trackWorkoutAsRoutine: false,
153
+ appleWatch: false,
154
+ wearosWatch: false,
155
+ workoutVisibility: 'public',
156
+ isWorkoutBiometricsPublic: true,
157
+ trainerProgramId: undefined,
158
+ shareTo: {
159
+ strava: false,
160
+ appleHealth: false,
161
+ healthConnect: false,
162
+ },
163
+ clientId: '',
164
+ });
165
+ this._exercises = [];
166
+ }
167
+ }
168
+ exports.WorkoutBuilder = WorkoutBuilder;
169
+ class WorkoutExerciseBuilder {
170
+ constructor() {
171
+ this.setProps = (props) => {
172
+ const exercise = Object.assign(Object.assign({}, this._exercise), { exerciseTemplateId: props.id, supersetId: props.supersetId, autoRestTimerSeconds: props.autoRestTimerSeconds });
173
+ this._exercise = exercise;
174
+ return this;
175
+ };
176
+ this._addSet = (props) => {
177
+ var _a;
178
+ const set = Object.assign(Object.assign({ index: this._exercise.sets.length }, props), { completed: (_a = props.completed) !== null && _a !== void 0 ? _a : true });
179
+ this._exercise.sets.push(set);
180
+ return this;
181
+ };
182
+ this.addWeightRepsSet = (indicator, weight, reps, rpe, completed) => this._addSet({ indicator, weight, reps, rpe, completed });
183
+ this.addRepsSet = (indicator, reps, rpe, completed) => this._addSet({ indicator, reps, rpe, completed });
184
+ this.addDistanceDurationSet = (indicator, distance, duration) => this._addSet({
185
+ indicator,
186
+ distance,
187
+ duration,
188
+ });
189
+ this.addDurationSet = (indicator, duration) => this._addSet({
190
+ indicator,
191
+ duration,
192
+ });
193
+ this.addShortDistanceWeightSet = (indicator, distance, weight) => this._addSet({
194
+ indicator,
195
+ weight,
196
+ distance,
197
+ });
198
+ this.build = () => this._exercise;
199
+ const exercise = {
200
+ exerciseTemplateId: '',
201
+ supersetId: undefined,
202
+ autoRestTimerSeconds: undefined,
203
+ title: '',
204
+ notes: '',
205
+ routineNotes: '',
206
+ volumeDoublingEnabled: false,
207
+ sets: [],
208
+ };
209
+ this._exercise = exercise;
210
+ }
211
+ }
212
+ class RoutineUpdateBuilder {
213
+ constructor() {
214
+ this.addExercise = (builderScope) => {
215
+ const exercise = builderScope(new RoutineUpdateExerciseBuilder()).build();
216
+ this._exercises.push(exercise);
217
+ return this;
218
+ };
219
+ this.build = () => ({
220
+ title: '',
221
+ exercises: this._exercises,
222
+ parent_routine_id: undefined,
223
+ folder_id: null,
224
+ index: 0,
225
+ program_id: null,
226
+ notes: null,
227
+ coach_force_rpe_enabled: false,
228
+ });
229
+ this._exercises = [];
230
+ }
231
+ }
232
+ exports.RoutineUpdateBuilder = RoutineUpdateBuilder;
233
+ class RoutineUpdateExerciseBuilder {
234
+ constructor() {
235
+ this.setProps = (props) => {
236
+ const exercise = Object.assign(Object.assign({}, this._exercise), { exercise_template_id: props.exerciseTemplateId, superset_id: props.supersetId, rest_seconds: props.restSeconds, input_modifier: props.inputModifier });
237
+ this._exercise = exercise;
238
+ return this;
239
+ };
240
+ this._addSet = (props) => {
241
+ const set = Object.assign({ index: this._exercise.sets.length }, props);
242
+ this._exercise.sets.push(set);
243
+ return this;
244
+ };
245
+ this.addWeightRepsSet = (indicator, weight_kg, reps, rpe) => this._addSet({
246
+ indicator,
247
+ weight_kg,
248
+ reps,
249
+ distance_meters: undefined,
250
+ duration_seconds: undefined,
251
+ rpe,
252
+ rep_range: undefined,
253
+ });
254
+ this.addWeightRepRangeSet = (indicator, weight_kg, rep_range, rpe) => this._addSet({
255
+ indicator,
256
+ weight_kg,
257
+ reps: undefined,
258
+ distance_meters: undefined,
259
+ duration_seconds: undefined,
260
+ rep_range,
261
+ rpe,
262
+ });
263
+ this.addRepsSet = (indicator, reps, rpe) => this._addSet({
264
+ indicator,
265
+ weight_kg: undefined,
266
+ reps,
267
+ distance_meters: undefined,
268
+ duration_seconds: undefined,
269
+ rep_range: undefined,
270
+ rpe,
271
+ });
272
+ this.addRepRangeSet = (indicator, rep_range, rpe) => this._addSet({
273
+ indicator,
274
+ weight_kg: undefined,
275
+ reps: undefined,
276
+ distance_meters: undefined,
277
+ duration_seconds: undefined,
278
+ rep_range,
279
+ rpe,
280
+ });
281
+ this.addDistanceDurationSet = (indicator, distance_meters, duration_seconds) => this._addSet({
282
+ indicator,
283
+ weight_kg: undefined,
284
+ reps: undefined,
285
+ distance_meters,
286
+ duration_seconds,
287
+ rpe: undefined,
288
+ rep_range: undefined,
289
+ });
290
+ this.addDurationSet = (indicator, duration_seconds) => this._addSet({
291
+ indicator,
292
+ weight_kg: undefined,
293
+ reps: undefined,
294
+ distance_meters: undefined,
295
+ duration_seconds,
296
+ rpe: undefined,
297
+ rep_range: undefined,
298
+ });
299
+ this.addShortDistanceWeightSet = (indicator, distance_meters, weight_kg) => this._addSet({
300
+ indicator,
301
+ weight_kg,
302
+ reps: undefined,
303
+ distance_meters,
304
+ duration_seconds: undefined,
305
+ rpe: undefined,
306
+ rep_range: undefined,
307
+ });
308
+ this.build = () => this._exercise;
309
+ const exercise = {
310
+ exercise_template_id: '',
311
+ superset_id: undefined,
312
+ rest_seconds: undefined,
313
+ notes: '',
314
+ input_modifier: undefined,
315
+ sets: [],
316
+ };
317
+ this._exercise = exercise;
318
+ }
319
+ }