@aneuhold/core-ts-db-lib 4.1.14 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -1
- package/lib/ctos/workout/WorkoutExerciseCTO.d.ts +2 -2
- package/lib/ctos/workout/WorkoutExerciseCTO.d.ts.map +1 -1
- package/lib/ctos/workout/WorkoutExerciseCTO.js +5 -6
- package/lib/ctos/workout/WorkoutExerciseCTO.js.map +1 -1
- package/lib/ctos/workout/WorkoutExerciseCTO.ts +5 -6
- package/lib/documents/workout/WorkoutSet.d.ts +9 -6
- package/lib/documents/workout/WorkoutSet.d.ts.map +1 -1
- package/lib/documents/workout/WorkoutSet.ts +9 -6
- package/lib/services/workout/Exercise/WorkoutExerciseService.d.ts +27 -23
- package/lib/services/workout/Exercise/WorkoutExerciseService.d.ts.map +1 -1
- package/lib/services/workout/Exercise/WorkoutExerciseService.js +82 -93
- package/lib/services/workout/Exercise/WorkoutExerciseService.js.map +1 -1
- package/lib/services/workout/Exercise/WorkoutExerciseService.ts +93 -120
- package/lib/services/workout/Mesocycle/WorkoutMesocycleService.d.ts.map +1 -1
- package/lib/services/workout/Mesocycle/WorkoutMesocycleService.js +6 -8
- package/lib/services/workout/Mesocycle/WorkoutMesocycleService.js.map +1 -1
- package/lib/services/workout/Mesocycle/WorkoutMesocycleService.ts +7 -17
- package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.d.ts +13 -8
- package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.d.ts.map +1 -1
- package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.js +30 -9
- package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.js.map +1 -1
- package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.ts +42 -14
- package/lib/services/workout/Set/WorkoutSetService.d.ts +4 -3
- package/lib/services/workout/Set/WorkoutSetService.d.ts.map +1 -1
- package/lib/services/workout/Set/WorkoutSetService.js +25 -20
- package/lib/services/workout/Set/WorkoutSetService.js.map +1 -1
- package/lib/services/workout/Set/WorkoutSetService.ts +26 -21
- package/package.json +4 -4
|
@@ -45,40 +45,24 @@ export default class WorkoutExerciseService {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
/**
|
|
48
|
-
* Calculates the
|
|
49
|
-
* This returns the target weight and reps for the FIRST set of the exercise in the given microcycle,
|
|
50
|
-
* assuming it is an accumulation phase (i.e., not a deload).
|
|
48
|
+
* Calculates the target weight and reps for the FIRST set of an exercise.
|
|
51
49
|
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
50
|
+
* When `previousSets` are provided (completed or planned-only), autoregulation
|
|
51
|
+
* computes an average surplus across all sets and applies progression. Planned-only
|
|
52
|
+
* sets are forecasted with surplus = 0 so the plan progresses smoothly without
|
|
53
|
+
* falling back to calibration.
|
|
54
54
|
*
|
|
55
|
-
* When
|
|
56
|
-
*
|
|
57
|
-
* is used as a baseline.
|
|
58
|
-
*
|
|
59
|
-
* Rep progression: The weight is calculated based on reps at microcycle 0, and reps increase
|
|
60
|
-
* by 2 per microcycle to reach max reps at the final accumulation microcycle (ideally),
|
|
61
|
-
* or drop back down and increase weight by 2%.
|
|
62
|
-
*
|
|
63
|
-
* Load progression: Increases weight by at least 2% per microcycle.
|
|
64
|
-
* If weight can't be increased, adds 2 reps instead.
|
|
55
|
+
* When no previous sets exist (first mesocycle or new exercise), the calibration-based
|
|
56
|
+
* formula computes initial targets from the exercise's 1RM and rep range.
|
|
65
57
|
*/
|
|
66
58
|
static calculateTargetRepsAndWeightForFirstSet(params: {
|
|
67
59
|
exercise: WorkoutExercise;
|
|
68
60
|
calibration: WorkoutExerciseCalibration;
|
|
69
61
|
equipment: WorkoutEquipmentType;
|
|
70
|
-
microcycleIndex: number;
|
|
71
62
|
firstMicrocycleRir: number;
|
|
72
|
-
|
|
63
|
+
previousSets: WorkoutSet[];
|
|
73
64
|
}): { targetWeight: number; targetReps: number } {
|
|
74
|
-
const {
|
|
75
|
-
exercise,
|
|
76
|
-
calibration,
|
|
77
|
-
equipment,
|
|
78
|
-
microcycleIndex,
|
|
79
|
-
firstMicrocycleRir,
|
|
80
|
-
previousFirstSet
|
|
81
|
-
} = params;
|
|
65
|
+
const { exercise, calibration, equipment, firstMicrocycleRir, previousSets } = params;
|
|
82
66
|
|
|
83
67
|
// Validate equipment has weight options
|
|
84
68
|
if (!equipment.weightOptions || equipment.weightOptions.length === 0) {
|
|
@@ -91,12 +75,19 @@ export default class WorkoutExerciseService {
|
|
|
91
75
|
const repRange = this.getRepRangeValues(exercise.repRange);
|
|
92
76
|
const repRangeMidpoint = Math.floor((repRange.min + repRange.max) / 2);
|
|
93
77
|
|
|
94
|
-
//
|
|
95
|
-
|
|
78
|
+
// Convert all previous sets to completed sets (forecasting planned → actual if needed).
|
|
79
|
+
// toCompletedSet returns the real data when actual performance exists, or
|
|
80
|
+
// forecasts by copying planned values into actuals (surplus = 0) so the
|
|
81
|
+
// plan progresses smoothly from the planned baseline.
|
|
82
|
+
const completedSets = previousSets
|
|
83
|
+
.map((set) => this.toCompletedSet(set))
|
|
84
|
+
.filter((set): set is CompletedWorkoutSet => set !== null);
|
|
85
|
+
|
|
86
|
+
if (completedSets.length > 0) {
|
|
96
87
|
return this.calculateAutoRegulatedTargets({
|
|
97
88
|
exercise,
|
|
98
89
|
equipment,
|
|
99
|
-
|
|
90
|
+
previousSets: completedSets,
|
|
100
91
|
repRange
|
|
101
92
|
});
|
|
102
93
|
}
|
|
@@ -106,7 +97,6 @@ export default class WorkoutExerciseService {
|
|
|
106
97
|
exercise,
|
|
107
98
|
calibration,
|
|
108
99
|
equipment,
|
|
109
|
-
microcycleIndex,
|
|
110
100
|
firstMicrocycleRir,
|
|
111
101
|
repRange,
|
|
112
102
|
repRangeMidpoint
|
|
@@ -114,22 +104,26 @@ export default class WorkoutExerciseService {
|
|
|
114
104
|
}
|
|
115
105
|
|
|
116
106
|
/**
|
|
117
|
-
* Calculates targets using auto-regulation based on actual performance from
|
|
107
|
+
* Calculates targets using auto-regulation based on actual performance from previous sets.
|
|
108
|
+
* Surplus is averaged across all sets for a more representative performance signal.
|
|
109
|
+
* Previously only the first set's surplus was used, which masked poor performance
|
|
110
|
+
* on later sets (e.g., first set hits target but second set falls far short).
|
|
118
111
|
*/
|
|
119
112
|
private static calculateAutoRegulatedTargets(params: {
|
|
120
113
|
exercise: WorkoutExercise;
|
|
121
114
|
equipment: WorkoutEquipmentType;
|
|
122
|
-
|
|
115
|
+
previousSets: CompletedWorkoutSet[];
|
|
123
116
|
repRange: { min: number; max: number };
|
|
124
117
|
}): { targetWeight: number; targetReps: number } {
|
|
125
|
-
const { exercise, equipment,
|
|
118
|
+
const { exercise, equipment, previousSets, repRange } = params;
|
|
126
119
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
)
|
|
120
|
+
// The first set is the reference for rep/weight targets (subsequent sets are
|
|
121
|
+
// derived from the first via intra-session fatigue drops).
|
|
122
|
+
const previousFirstSet = previousSets[0];
|
|
123
|
+
|
|
124
|
+
// Average surplus across all sets for a holistic performance signal.
|
|
125
|
+
// previousSets are CompletedWorkoutSets (all fields non-null), so this always returns a number.
|
|
126
|
+
const surplus = WorkoutSessionExerciseService.calculateAverageSurplus(previousSets) ?? 0;
|
|
133
127
|
|
|
134
128
|
if (exercise.preferredProgressionType === ExerciseProgressionType.Rep) {
|
|
135
129
|
return this.calculateAutoRegulatedRepTargets(previousFirstSet, surplus, repRange, equipment);
|
|
@@ -139,14 +133,16 @@ export default class WorkoutExerciseService {
|
|
|
139
133
|
}
|
|
140
134
|
|
|
141
135
|
/**
|
|
142
|
-
* Auto-regulated rep progression.
|
|
136
|
+
* Auto-regulated rep progression. Attempts to increase reps until hitting rep range max,
|
|
137
|
+
* then resets reps and increases weight.
|
|
143
138
|
*
|
|
144
139
|
* | Surplus | Action |
|
|
145
140
|
* |---:|---|
|
|
146
141
|
* | >= 3 | Accelerate: actualReps + 2 (progress from actual, not planned) |
|
|
147
142
|
* | 0 to 2 | Normal: plannedReps + 2 |
|
|
148
143
|
* | -1 to -2 | Hold: plannedReps (don't add reps) |
|
|
149
|
-
* |
|
|
144
|
+
* | -3 | Regress: actualReps (use actual as new baseline) |
|
|
145
|
+
* | < -3 | Severe regress: actualReps + reduce weight (weight is too heavy for rep range) |
|
|
150
146
|
*/
|
|
151
147
|
private static calculateAutoRegulatedRepTargets(
|
|
152
148
|
previousSet: CompletedWorkoutSet,
|
|
@@ -163,8 +159,21 @@ export default class WorkoutExerciseService {
|
|
|
163
159
|
targetReps = previousSet.plannedReps + 2;
|
|
164
160
|
} else if (surplus >= -2) {
|
|
165
161
|
targetReps = previousSet.plannedReps;
|
|
162
|
+
} else if (surplus >= -3) {
|
|
163
|
+
targetReps = previousSet.actualReps;
|
|
166
164
|
} else {
|
|
165
|
+
// Severe underperformance: the weight is too heavy for this rep range.
|
|
166
|
+
// Reduce weight by one equipment increment so the user can actually
|
|
167
|
+
// train in the target rep range.
|
|
167
168
|
targetReps = previousSet.actualReps;
|
|
169
|
+
const reducedWeight = WorkoutEquipmentTypeService.findNearestWeight(
|
|
170
|
+
equipment,
|
|
171
|
+
targetWeight - 0.01,
|
|
172
|
+
'down'
|
|
173
|
+
);
|
|
174
|
+
if (reducedWeight !== null) {
|
|
175
|
+
targetWeight = reducedWeight;
|
|
176
|
+
}
|
|
168
177
|
}
|
|
169
178
|
|
|
170
179
|
// Clamp to rep range floor (never target below min, even if actual was 0)
|
|
@@ -172,7 +181,7 @@ export default class WorkoutExerciseService {
|
|
|
172
181
|
|
|
173
182
|
// Handle rep range ceiling: if target exceeds max, reset and bump weight
|
|
174
183
|
if (targetReps > repRange.max) {
|
|
175
|
-
targetReps = repRange.max;
|
|
184
|
+
targetReps = Math.floor((repRange.min + repRange.max) / 2);
|
|
176
185
|
const nextWeight = this.findNextTwoPercentWeight(targetWeight, equipment);
|
|
177
186
|
if (nextWeight !== null) {
|
|
178
187
|
targetWeight = nextWeight;
|
|
@@ -246,113 +255,77 @@ export default class WorkoutExerciseService {
|
|
|
246
255
|
}
|
|
247
256
|
|
|
248
257
|
/**
|
|
249
|
-
*
|
|
258
|
+
* Converts a {@link WorkoutSet} into a {@link CompletedWorkoutSet} for autoregulation.
|
|
259
|
+
*
|
|
260
|
+
* If actual performance data exists, returns the set with those values. Otherwise,
|
|
261
|
+
* forecasts by copying planned values into the actual fields (producing surplus = 0)
|
|
262
|
+
* so that autoregulation applies normal progression from the planned baseline.
|
|
263
|
+
*
|
|
264
|
+
* Returns null if the set lacks the minimum planned data needed.
|
|
250
265
|
*/
|
|
251
|
-
private static
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
266
|
+
private static toCompletedSet(set?: WorkoutSet): CompletedWorkoutSet | null {
|
|
267
|
+
if (!set) {
|
|
268
|
+
return null;
|
|
269
|
+
}
|
|
270
|
+
const { plannedReps, plannedWeight, plannedRir } = set;
|
|
271
|
+
if (plannedReps == null || plannedWeight == null || plannedRir == null) {
|
|
272
|
+
return null;
|
|
273
|
+
}
|
|
274
|
+
return {
|
|
275
|
+
...set,
|
|
276
|
+
plannedReps,
|
|
277
|
+
plannedWeight,
|
|
278
|
+
plannedRir,
|
|
279
|
+
actualReps: set.actualReps ?? plannedReps,
|
|
280
|
+
actualWeight: set.actualWeight ?? plannedWeight,
|
|
281
|
+
rir: set.rir ?? plannedRir
|
|
282
|
+
};
|
|
259
283
|
}
|
|
260
284
|
|
|
261
285
|
/**
|
|
262
|
-
* Calculates targets
|
|
286
|
+
* Calculates initial targets from calibration data. Used only when no previous
|
|
287
|
+
* set exists (first microcycle of the first mesocycle, or brand-new exercise).
|
|
288
|
+
* All subsequent microcycle progression is handled by autoregulation/forecasting.
|
|
263
289
|
*/
|
|
264
290
|
private static calculateCalibrationBasedTargets(params: {
|
|
265
291
|
exercise: WorkoutExercise;
|
|
266
292
|
calibration: WorkoutExerciseCalibration;
|
|
267
293
|
equipment: WorkoutEquipmentType;
|
|
268
|
-
microcycleIndex: number;
|
|
269
294
|
firstMicrocycleRir: number;
|
|
270
295
|
repRange: { min: number; max: number };
|
|
271
296
|
repRangeMidpoint: number;
|
|
272
297
|
}): { targetWeight: number; targetReps: number } {
|
|
273
|
-
const {
|
|
274
|
-
|
|
275
|
-
calibration,
|
|
276
|
-
equipment,
|
|
277
|
-
microcycleIndex,
|
|
278
|
-
firstMicrocycleRir,
|
|
279
|
-
repRange,
|
|
280
|
-
repRangeMidpoint
|
|
281
|
-
} = params;
|
|
298
|
+
const { exercise, calibration, equipment, firstMicrocycleRir, repRange, repRangeMidpoint } =
|
|
299
|
+
params;
|
|
282
300
|
|
|
283
|
-
// For rep progression, calculate weight based on
|
|
301
|
+
// For rep progression, calculate weight based on midpoint + RIR reps
|
|
284
302
|
// For load progression, use max reps
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
// Load progression uses max reps for initial weight calculation
|
|
290
|
-
baseRepsForWeight = repRange.max;
|
|
291
|
-
}
|
|
303
|
+
const baseRepsForWeight =
|
|
304
|
+
exercise.preferredProgressionType === ExerciseProgressionType.Rep
|
|
305
|
+
? repRangeMidpoint + firstMicrocycleRir
|
|
306
|
+
: repRange.max;
|
|
292
307
|
|
|
293
308
|
// Calculate base weight
|
|
294
|
-
|
|
309
|
+
const rawWeight = WorkoutExerciseCalibrationService.getTargetWeight(
|
|
295
310
|
calibration,
|
|
296
311
|
baseRepsForWeight
|
|
297
312
|
);
|
|
298
|
-
|
|
299
|
-
// Round to nearest available weight, preferring lower
|
|
300
|
-
const roundedWeight = WorkoutEquipmentTypeService.findNearestWeight(
|
|
313
|
+
const targetWeight = WorkoutEquipmentTypeService.findNearestWeight(
|
|
301
314
|
equipment,
|
|
302
|
-
|
|
315
|
+
rawWeight,
|
|
303
316
|
'prefer-down'
|
|
304
317
|
);
|
|
305
|
-
if (
|
|
318
|
+
if (targetWeight === null) {
|
|
306
319
|
throw new Error(
|
|
307
320
|
`No available weight options found for equipment type ${equipment._id}, ${equipment.title}`
|
|
308
321
|
);
|
|
309
322
|
}
|
|
310
|
-
targetWeight = roundedWeight;
|
|
311
323
|
|
|
312
|
-
//
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
targetReps = repRangeMidpoint;
|
|
318
|
-
|
|
319
|
-
while (currentMicrocycleIndex < microcycleIndex) {
|
|
320
|
-
targetReps += 2;
|
|
321
|
-
if (targetReps > repRange.max) {
|
|
322
|
-
// Different reset amounts based on the rep range
|
|
323
|
-
switch (exercise.repRange) {
|
|
324
|
-
case ExerciseRepRange.Heavy:
|
|
325
|
-
targetReps = targetReps - 4;
|
|
326
|
-
break;
|
|
327
|
-
case ExerciseRepRange.Medium:
|
|
328
|
-
targetReps = targetReps - 6;
|
|
329
|
-
break;
|
|
330
|
-
case ExerciseRepRange.Light:
|
|
331
|
-
targetReps = targetReps - 8;
|
|
332
|
-
break;
|
|
333
|
-
}
|
|
334
|
-
const nextWeight = this.findNextTwoPercentWeight(targetWeight, equipment);
|
|
335
|
-
if (nextWeight !== null) {
|
|
336
|
-
targetWeight = nextWeight;
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
currentMicrocycleIndex++;
|
|
340
|
-
}
|
|
341
|
-
} else {
|
|
342
|
-
// Load progression: Start at max reps
|
|
343
|
-
targetReps = repRange.max;
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
// Apply load progression if applicable for the weight
|
|
347
|
-
if (exercise.preferredProgressionType === ExerciseProgressionType.Load && microcycleIndex > 0) {
|
|
348
|
-
const nextWeight = this.findNextTwoPercentWeight(targetWeight, equipment);
|
|
349
|
-
if (nextWeight !== null) {
|
|
350
|
-
targetWeight = nextWeight;
|
|
351
|
-
} else {
|
|
352
|
-
// Increase reps if we can't increase weight
|
|
353
|
-
targetReps = targetReps + 2;
|
|
354
|
-
}
|
|
355
|
-
}
|
|
324
|
+
// Rep progression starts at midpoint; load progression starts at max reps
|
|
325
|
+
const targetReps =
|
|
326
|
+
exercise.preferredProgressionType === ExerciseProgressionType.Rep
|
|
327
|
+
? repRangeMidpoint
|
|
328
|
+
: repRange.max;
|
|
356
329
|
|
|
357
330
|
return { targetWeight, targetReps };
|
|
358
331
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkoutMesocycleService.d.ts","sourceRoot":"","sources":["../../../../src/services/workout/Mesocycle/WorkoutMesocycleService.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"WorkoutMesocycleService.d.ts","sourceRoot":"","sources":["../../../../src/services/workout/Mesocycle/WorkoutMesocycleService.ts"],"names":[],"mappings":"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"}
|
|
@@ -379,17 +379,15 @@ export default class WorkoutMesocycleService {
|
|
|
379
379
|
consecutiveDrops = 0;
|
|
380
380
|
continue;
|
|
381
381
|
}
|
|
382
|
-
|
|
383
|
-
const
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
firstSet.plannedRir == null) {
|
|
382
|
+
// Average surplus across all completed sets for a holistic performance signal.
|
|
383
|
+
const sets = se.setOrder
|
|
384
|
+
.map((setId) => setMap.get(setId))
|
|
385
|
+
.filter((s) => s != null);
|
|
386
|
+
const surplus = WorkoutSessionExerciseService.calculateAverageSurplus(sets);
|
|
387
|
+
if (surplus == null) {
|
|
389
388
|
consecutiveDrops = 0;
|
|
390
389
|
continue;
|
|
391
390
|
}
|
|
392
|
-
const surplus = WorkoutSessionExerciseService.calculateSetSurplus(firstSet.actualReps, firstSet.plannedReps, firstSet.rir, firstSet.plannedRir);
|
|
393
391
|
if (surplus <= this.PERFORMANCE_DROP_SURPLUS_THRESHOLD) {
|
|
394
392
|
consecutiveDrops++;
|
|
395
393
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkoutMesocycleService.js","sourceRoot":"","sources":["../../../../src/services/workout/Mesocycle/WorkoutMesocycleService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WorkoutMesocycleService.js","sourceRoot":"","sources":["../../../../src/services/workout/Mesocycle/WorkoutMesocycleService.ts"],"names":[],"mappings":"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"}
|
|
@@ -550,27 +550,17 @@ export default class WorkoutMesocycleService {
|
|
|
550
550
|
continue;
|
|
551
551
|
}
|
|
552
552
|
|
|
553
|
-
|
|
554
|
-
const
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
firstSet.rir == null ||
|
|
561
|
-
firstSet.plannedRir == null
|
|
562
|
-
) {
|
|
553
|
+
// Average surplus across all completed sets for a holistic performance signal.
|
|
554
|
+
const sets = se.setOrder
|
|
555
|
+
.map((setId) => setMap.get(setId))
|
|
556
|
+
.filter((s): s is WorkoutSet => s != null);
|
|
557
|
+
const surplus = WorkoutSessionExerciseService.calculateAverageSurplus(sets);
|
|
558
|
+
|
|
559
|
+
if (surplus == null) {
|
|
563
560
|
consecutiveDrops = 0;
|
|
564
561
|
continue;
|
|
565
562
|
}
|
|
566
563
|
|
|
567
|
-
const surplus = WorkoutSessionExerciseService.calculateSetSurplus(
|
|
568
|
-
firstSet.actualReps,
|
|
569
|
-
firstSet.plannedReps,
|
|
570
|
-
firstSet.rir,
|
|
571
|
-
firstSet.plannedRir
|
|
572
|
-
);
|
|
573
|
-
|
|
574
564
|
if (surplus <= this.PERFORMANCE_DROP_SURPLUS_THRESHOLD) {
|
|
575
565
|
consecutiveDrops++;
|
|
576
566
|
} else {
|
|
@@ -37,17 +37,15 @@ export default class WorkoutSessionExerciseService {
|
|
|
37
37
|
*/
|
|
38
38
|
static getPerformanceScore(sets: WorkoutSet[]): number | null;
|
|
39
39
|
/**
|
|
40
|
-
* Calculates the surplus
|
|
41
|
-
*
|
|
40
|
+
* Calculates the average surplus across an array of sets. Sets missing
|
|
41
|
+
* required planned/actual data are skipped. Returns null if no sets
|
|
42
|
+
* have complete data.
|
|
42
43
|
*
|
|
43
|
-
*
|
|
44
|
+
* Surplus formula per set: `(actualReps - plannedReps) + (rir - plannedRir)`
|
|
44
45
|
*
|
|
45
|
-
* @param
|
|
46
|
-
* @param plannedReps The planned reps.
|
|
47
|
-
* @param rir The actual RIR (reps in reserve).
|
|
48
|
-
* @param plannedRir The planned RIR.
|
|
46
|
+
* @param sets The sets to calculate average surplus for.
|
|
49
47
|
*/
|
|
50
|
-
static
|
|
48
|
+
static calculateAverageSurplus(sets: WorkoutSet[]): number | null;
|
|
51
49
|
/**
|
|
52
50
|
* Uses the soreness/performance table from the workout model notes to recommend whether to add
|
|
53
51
|
* sets next microcycle or employ recovery sessions.
|
|
@@ -85,5 +83,12 @@ export default class WorkoutSessionExerciseService {
|
|
|
85
83
|
* and sorenessScore. Deload exercises are always considered filled.
|
|
86
84
|
*/
|
|
87
85
|
static hasAllSessionMetricsFilled(sessionExercise: WorkoutSessionExercise, exerciseSets: WorkoutSet[]): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Calculates the surplus for a single set: how much the user exceeded or
|
|
88
|
+
* fell short of the plan. Positive means exceeded, negative means fell short.
|
|
89
|
+
*
|
|
90
|
+
* Formula: `(actualReps - plannedReps) + (rir - plannedRir)`
|
|
91
|
+
*/
|
|
92
|
+
private static calculateSetSurplus;
|
|
88
93
|
}
|
|
89
94
|
//# sourceMappingURL=WorkoutSessionExerciseService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkoutSessionExerciseService.d.ts","sourceRoot":"","sources":["../../../../src/services/workout/SessionExercise/WorkoutSessionExerciseService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AACnG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAG3E;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,6BAA6B;IAChD;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,sBAAsB,GAAG,MAAM,GAAG,IAAI;IAI1E;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,eAAe,EAAE,sBAAsB,GAAG,MAAM,GAAG,IAAI;IAI9E;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,sBAAsB,GAAG,MAAM,GAAG,IAAI;IAIrE;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,GAAG,IAAI;IA0C7D
|
|
1
|
+
{"version":3,"file":"WorkoutSessionExerciseService.d.ts","sourceRoot":"","sources":["../../../../src/services/workout/SessionExercise/WorkoutSessionExerciseService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AACnG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAG3E;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,6BAA6B;IAChD;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,sBAAsB,GAAG,MAAM,GAAG,IAAI;IAI1E;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,eAAe,EAAE,sBAAsB,GAAG,MAAM,GAAG,IAAI;IAI9E;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,sBAAsB,GAAG,MAAM,GAAG,IAAI;IAIrE;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,GAAG,IAAI;IA0C7D;;;;;;;;OAQG;IACH,MAAM,CAAC,uBAAuB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,GAAG,IAAI;IAwBjE;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,oCAAoC,CACzC,sBAAsB,EAAE,sBAAsB,GAC7C,MAAM,GAAG,IAAI;IAsBhB;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,OAAO;IAI5D;;;;;OAKG;IACH,MAAM,CAAC,0BAA0B,CAC/B,eAAe,EAAE,sBAAsB,EACvC,YAAY,EAAE,UAAU,EAAE,GACzB,OAAO;IAUV;;;;OAIG;IACH,MAAM,CAAC,0BAA0B,CAC/B,eAAe,EAAE,sBAAsB,EACvC,YAAY,EAAE,UAAU,EAAE,GACzB,OAAO;IAaV;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;CAQnC"}
|
|
@@ -71,18 +71,30 @@ export default class WorkoutSessionExerciseService {
|
|
|
71
71
|
return Math.round(average);
|
|
72
72
|
}
|
|
73
73
|
/**
|
|
74
|
-
* Calculates the surplus
|
|
75
|
-
*
|
|
74
|
+
* Calculates the average surplus across an array of sets. Sets missing
|
|
75
|
+
* required planned/actual data are skipped. Returns null if no sets
|
|
76
|
+
* have complete data.
|
|
76
77
|
*
|
|
77
|
-
*
|
|
78
|
+
* Surplus formula per set: `(actualReps - plannedReps) + (rir - plannedRir)`
|
|
78
79
|
*
|
|
79
|
-
* @param
|
|
80
|
-
* @param plannedReps The planned reps.
|
|
81
|
-
* @param rir The actual RIR (reps in reserve).
|
|
82
|
-
* @param plannedRir The planned RIR.
|
|
80
|
+
* @param sets The sets to calculate average surplus for.
|
|
83
81
|
*/
|
|
84
|
-
static
|
|
85
|
-
|
|
82
|
+
static calculateAverageSurplus(sets) {
|
|
83
|
+
let totalSurplus = 0;
|
|
84
|
+
let completedCount = 0;
|
|
85
|
+
for (const set of sets) {
|
|
86
|
+
if (set.actualReps == null ||
|
|
87
|
+
set.plannedReps == null ||
|
|
88
|
+
set.rir == null ||
|
|
89
|
+
set.plannedRir == null) {
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
totalSurplus += this.calculateSetSurplus(set.actualReps, set.plannedReps, set.rir, set.plannedRir);
|
|
93
|
+
completedCount++;
|
|
94
|
+
}
|
|
95
|
+
if (completedCount === 0)
|
|
96
|
+
return null;
|
|
97
|
+
return totalSurplus / completedCount;
|
|
86
98
|
}
|
|
87
99
|
/**
|
|
88
100
|
* Uses the soreness/performance table from the workout model notes to recommend whether to add
|
|
@@ -158,5 +170,14 @@ export default class WorkoutSessionExerciseService {
|
|
|
158
170
|
sessionExercise.fatigue.perceivedEffort != null &&
|
|
159
171
|
sessionExercise.sorenessScore != null);
|
|
160
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* Calculates the surplus for a single set: how much the user exceeded or
|
|
175
|
+
* fell short of the plan. Positive means exceeded, negative means fell short.
|
|
176
|
+
*
|
|
177
|
+
* Formula: `(actualReps - plannedReps) + (rir - plannedRir)`
|
|
178
|
+
*/
|
|
179
|
+
static calculateSetSurplus(actualReps, plannedReps, rir, plannedRir) {
|
|
180
|
+
return actualReps - plannedReps + (rir - plannedRir);
|
|
181
|
+
}
|
|
161
182
|
}
|
|
162
183
|
//# sourceMappingURL=WorkoutSessionExerciseService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkoutSessionExerciseService.js","sourceRoot":"","sources":["../../../../src/services/workout/SessionExercise/WorkoutSessionExerciseService.ts"],"names":[],"mappings":"AAEA,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AAEjE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,6BAA6B;IAChD;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,eAAuC;QACxD,OAAO,iBAAiB,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,eAAuC;QAC5D,OAAO,iBAAiB,CAAC,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,eAAuC;QACnD,OAAO,iBAAiB,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAChF,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,mBAAmB,CAAC,IAAkB;QAC3C,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IACE,GAAG,CAAC,WAAW,IAAI,IAAI;gBACvB,GAAG,CAAC,UAAU,IAAI,IAAI;gBACtB,GAAG,CAAC,UAAU,IAAI,IAAI;gBACtB,GAAG,CAAC,GAAG,IAAI,IAAI,EACf,CAAC;gBACD,SAAS;YACX,CAAC;YAED,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;gBACrC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,SAAS;YACX,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CACtC,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,WAAW,EACf,GAAG,CAAC,GAAG,EACP,GAAG,CAAC,UAAU,CACf,CAAC;YAEF,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;gBACjB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;iBAAM,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;gBACxB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;QACpF,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"WorkoutSessionExerciseService.js","sourceRoot":"","sources":["../../../../src/services/workout/SessionExercise/WorkoutSessionExerciseService.ts"],"names":[],"mappings":"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"}
|