@aneuhold/core-ts-db-lib 5.0.8 → 5.0.9
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 +8 -0
- package/lib/browser.d.ts +14 -14
- package/lib/browser.d.ts.map +1 -1
- package/lib/browser.js +12 -12
- package/lib/browser.js.map +1 -1
- package/lib/browser.ts +14 -14
- package/lib/documents/BaseDocument.js +1 -1
- package/lib/documents/BaseDocument.js.map +1 -1
- package/lib/documents/BaseDocument.ts +1 -1
- package/lib/documents/dashboard/Task.d.ts +1 -1
- package/lib/documents/dashboard/Task.d.ts.map +1 -1
- package/lib/documents/dashboard/Task.ts +1 -1
- package/lib/schemas/UUIDSchema.js +1 -1
- package/lib/schemas/UUIDSchema.js.map +1 -1
- package/lib/schemas/UUIDSchema.ts +1 -1
- package/lib/services/{DocumentService.d.ts → Document.service.d.ts} +1 -1
- package/lib/services/Document.service.d.ts.map +1 -0
- package/lib/services/{DocumentService.js → Document.service.js} +1 -1
- package/lib/services/Document.service.js.map +1 -0
- package/lib/services/dashboard/Task/{TaskService.d.ts → Task.service.d.ts} +2 -10
- package/lib/services/dashboard/Task/Task.service.d.ts.map +1 -0
- package/lib/services/dashboard/Task/{TaskService.js → Task.service.js} +8 -8
- package/lib/services/dashboard/Task/Task.service.js.map +1 -0
- package/lib/services/dashboard/Task/{TaskService.ts → Task.service.ts} +8 -8
- package/lib/services/dashboard/Task/{TaskFilterService.d.ts → TaskFilter.service.d.ts} +1 -1
- package/lib/services/dashboard/Task/TaskFilter.service.d.ts.map +1 -0
- package/lib/services/dashboard/Task/{TaskFilterService.js → TaskFilter.service.js} +1 -1
- package/lib/services/dashboard/Task/TaskFilter.service.js.map +1 -0
- package/lib/services/dashboard/Task/{TaskRecurrenceService.d.ts → TaskRecurrence.service.d.ts} +2 -9
- package/lib/services/dashboard/Task/TaskRecurrence.service.d.ts.map +1 -0
- package/lib/services/dashboard/Task/{TaskRecurrenceService.js → TaskRecurrence.service.js} +6 -6
- package/lib/services/dashboard/Task/TaskRecurrence.service.js.map +1 -0
- package/lib/services/dashboard/Task/{TaskRecurrenceService.ts → TaskRecurrence.service.ts} +5 -8
- package/lib/services/dashboard/Task/{TaskSortService.d.ts → TaskSort.service.d.ts} +2 -42
- package/lib/services/dashboard/Task/TaskSort.service.d.ts.map +1 -0
- package/lib/services/dashboard/Task/{TaskSortService.js → TaskSort.service.js} +12 -12
- package/lib/services/dashboard/Task/TaskSort.service.js.map +1 -0
- package/lib/services/dashboard/Task/{TaskSortService.ts → TaskSort.service.ts} +11 -11
- package/lib/services/workout/EquipmentType/{WorkoutEquipmentTypeService.d.ts → WorkoutEquipmentType.service.d.ts} +1 -1
- package/lib/services/workout/EquipmentType/WorkoutEquipmentType.service.d.ts.map +1 -0
- package/lib/services/workout/EquipmentType/{WorkoutEquipmentTypeService.js → WorkoutEquipmentType.service.js} +1 -1
- package/lib/services/workout/EquipmentType/WorkoutEquipmentType.service.js.map +1 -0
- package/lib/services/workout/Exercise/WorkoutExercise.service.d.ts +52 -0
- package/lib/services/workout/Exercise/WorkoutExercise.service.d.ts.map +1 -0
- package/lib/services/workout/Exercise/{WorkoutExerciseService.js → WorkoutExercise.service.js} +18 -18
- package/lib/services/workout/Exercise/WorkoutExercise.service.js.map +1 -0
- package/lib/services/workout/Exercise/{WorkoutExerciseService.ts → WorkoutExercise.service.ts} +17 -17
- package/lib/services/workout/ExerciseCalibration/{WorkoutExerciseCalibrationService.d.ts → WorkoutExerciseCalibration.service.d.ts} +2 -12
- package/lib/services/workout/ExerciseCalibration/WorkoutExerciseCalibration.service.d.ts.map +1 -0
- package/lib/services/workout/ExerciseCalibration/{WorkoutExerciseCalibrationService.js → WorkoutExerciseCalibration.service.js} +10 -7
- package/lib/services/workout/ExerciseCalibration/WorkoutExerciseCalibration.service.js.map +1 -0
- package/lib/services/workout/ExerciseCalibration/{WorkoutExerciseCalibrationService.ts → WorkoutExerciseCalibration.service.ts} +10 -7
- package/lib/services/workout/Mesocycle/{WorkoutMesocycleService.d.ts → WorkoutMesocycle.service.d.ts} +3 -41
- package/lib/services/workout/Mesocycle/WorkoutMesocycle.service.d.ts.map +1 -0
- package/lib/services/workout/Mesocycle/{WorkoutMesocycleService.js → WorkoutMesocycle.service.js} +21 -21
- package/lib/services/workout/Mesocycle/WorkoutMesocycle.service.js.map +1 -0
- package/lib/services/workout/Mesocycle/{WorkoutMesocycleService.ts → WorkoutMesocycle.service.ts} +21 -21
- package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.d.ts +1 -10
- package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.d.ts.map +1 -1
- package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.js +3 -3
- package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.js.map +1 -1
- package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.ts +3 -3
- package/lib/services/workout/Microcycle/{WorkoutMicrocycleService.d.ts → WorkoutMicrocycle.service.d.ts} +1 -1
- package/lib/services/workout/Microcycle/WorkoutMicrocycle.service.d.ts.map +1 -0
- package/lib/services/workout/Microcycle/{WorkoutMicrocycleService.js → WorkoutMicrocycle.service.js} +4 -4
- package/lib/services/workout/Microcycle/WorkoutMicrocycle.service.js.map +1 -0
- package/lib/services/workout/Microcycle/{WorkoutMicrocycleService.ts → WorkoutMicrocycle.service.ts} +3 -3
- package/lib/services/workout/Session/{WorkoutSessionService.d.ts → WorkoutSession.service.d.ts} +2 -6
- package/lib/services/workout/Session/WorkoutSession.service.d.ts.map +1 -0
- package/lib/services/workout/Session/{WorkoutSessionService.js → WorkoutSession.service.js} +5 -5
- package/lib/services/workout/Session/WorkoutSession.service.js.map +1 -0
- package/lib/services/workout/Session/{WorkoutSessionService.ts → WorkoutSession.service.ts} +4 -4
- package/lib/services/workout/SessionExercise/{WorkoutSessionExerciseService.d.ts → WorkoutSessionExercise.service.d.ts} +2 -8
- package/lib/services/workout/SessionExercise/WorkoutSessionExercise.service.d.ts.map +1 -0
- package/lib/services/workout/SessionExercise/{WorkoutSessionExerciseService.js → WorkoutSessionExercise.service.js} +5 -5
- package/lib/services/workout/SessionExercise/WorkoutSessionExercise.service.js.map +1 -0
- package/lib/services/workout/SessionExercise/{WorkoutSessionExerciseService.ts → WorkoutSessionExercise.service.ts} +4 -4
- package/lib/services/workout/Set/{WorkoutSetService.d.ts → WorkoutSet.service.d.ts} +2 -23
- package/lib/services/workout/Set/WorkoutSet.service.d.ts.map +1 -0
- package/lib/services/workout/Set/{WorkoutSetService.js → WorkoutSet.service.js} +7 -7
- package/lib/services/workout/Set/WorkoutSet.service.js.map +1 -0
- package/lib/services/workout/Set/{WorkoutSetService.ts → WorkoutSet.service.ts} +6 -6
- package/lib/services/workout/util/SFR/{WorkoutSFRService.d.ts → WorkoutSFR.service.d.ts} +1 -1
- package/lib/services/workout/util/SFR/WorkoutSFR.service.d.ts.map +1 -0
- package/lib/services/workout/util/SFR/{WorkoutSFRService.js → WorkoutSFR.service.js} +1 -1
- package/lib/services/workout/util/SFR/WorkoutSFR.service.js.map +1 -0
- package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanning.service.d.ts +53 -0
- package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanning.service.d.ts.map +1 -0
- package/lib/services/workout/util/VolumePlanning/{WorkoutVolumePlanningService.js → WorkoutVolumePlanning.service.js} +53 -53
- package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanning.service.js.map +1 -0
- package/lib/services/workout/util/VolumePlanning/{WorkoutVolumePlanningService.ts → WorkoutVolumePlanning.service.ts} +52 -52
- package/package.json +4 -4
- package/lib/services/DocumentService.d.ts.map +0 -1
- package/lib/services/DocumentService.js.map +0 -1
- package/lib/services/dashboard/Task/TaskFilterService.d.ts.map +0 -1
- package/lib/services/dashboard/Task/TaskFilterService.js.map +0 -1
- package/lib/services/dashboard/Task/TaskRecurrenceService.d.ts.map +0 -1
- package/lib/services/dashboard/Task/TaskRecurrenceService.js.map +0 -1
- package/lib/services/dashboard/Task/TaskService.d.ts.map +0 -1
- package/lib/services/dashboard/Task/TaskService.js.map +0 -1
- package/lib/services/dashboard/Task/TaskSortService.d.ts.map +0 -1
- package/lib/services/dashboard/Task/TaskSortService.js.map +0 -1
- package/lib/services/workout/EquipmentType/WorkoutEquipmentTypeService.d.ts.map +0 -1
- package/lib/services/workout/EquipmentType/WorkoutEquipmentTypeService.js.map +0 -1
- package/lib/services/workout/Exercise/WorkoutExerciseService.d.ts +0 -99
- package/lib/services/workout/Exercise/WorkoutExerciseService.d.ts.map +0 -1
- package/lib/services/workout/Exercise/WorkoutExerciseService.js.map +0 -1
- package/lib/services/workout/ExerciseCalibration/WorkoutExerciseCalibrationService.d.ts.map +0 -1
- package/lib/services/workout/ExerciseCalibration/WorkoutExerciseCalibrationService.js.map +0 -1
- package/lib/services/workout/Mesocycle/WorkoutMesocycleService.d.ts.map +0 -1
- package/lib/services/workout/Mesocycle/WorkoutMesocycleService.js.map +0 -1
- package/lib/services/workout/Microcycle/WorkoutMicrocycleService.d.ts.map +0 -1
- package/lib/services/workout/Microcycle/WorkoutMicrocycleService.js.map +0 -1
- package/lib/services/workout/Session/WorkoutSessionService.d.ts.map +0 -1
- package/lib/services/workout/Session/WorkoutSessionService.js.map +0 -1
- package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.d.ts.map +0 -1
- package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.js.map +0 -1
- package/lib/services/workout/Set/WorkoutSetService.d.ts.map +0 -1
- package/lib/services/workout/Set/WorkoutSetService.js.map +0 -1
- package/lib/services/workout/util/SFR/WorkoutSFRService.d.ts.map +0 -1
- package/lib/services/workout/util/SFR/WorkoutSFRService.js.map +0 -1
- package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanningService.d.ts +0 -198
- package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanningService.d.ts.map +0 -1
- package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanningService.js.map +0 -1
- /package/lib/services/{DocumentService.ts → Document.service.ts} +0 -0
- /package/lib/services/dashboard/Task/{TaskFilterService.ts → TaskFilter.service.ts} +0 -0
- /package/lib/services/workout/EquipmentType/{WorkoutEquipmentTypeService.ts → WorkoutEquipmentType.service.ts} +0 -0
- /package/lib/services/workout/util/SFR/{WorkoutSFRService.ts → WorkoutSFR.service.ts} +0 -0
package/lib/services/workout/Microcycle/{WorkoutMicrocycleService.js → WorkoutMicrocycle.service.js}
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { DateService } from '@aneuhold/core-ts-lib';
|
|
2
2
|
import { ExerciseRepRange } from '../../../documents/workout/WorkoutExercise.js';
|
|
3
|
-
import WorkoutExerciseService from '../Exercise/
|
|
4
|
-
import WorkoutSessionService from '../Session/
|
|
5
|
-
import WorkoutVolumePlanningService from '../util/VolumePlanning/
|
|
3
|
+
import WorkoutExerciseService from '../Exercise/WorkoutExercise.service.js';
|
|
4
|
+
import WorkoutSessionService from '../Session/WorkoutSession.service.js';
|
|
5
|
+
import WorkoutVolumePlanningService from '../util/VolumePlanning/WorkoutVolumePlanning.service.js';
|
|
6
6
|
/**
|
|
7
7
|
* A service for handling operations related to {@link WorkoutMicrocycle}s.
|
|
8
8
|
*/
|
|
@@ -164,4 +164,4 @@ export default class WorkoutMicrocycleService {
|
|
|
164
164
|
return sessions;
|
|
165
165
|
}
|
|
166
166
|
}
|
|
167
|
-
//# sourceMappingURL=
|
|
167
|
+
//# sourceMappingURL=WorkoutMicrocycle.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkoutMicrocycle.service.js","sourceRoot":"","sources":["../../../../src/services/workout/Microcycle/WorkoutMicrocycle.service.ts"],"names":[],"mappings":"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"}
|
package/lib/services/workout/Microcycle/{WorkoutMicrocycleService.ts → WorkoutMicrocycle.service.ts}
RENAMED
|
@@ -2,10 +2,10 @@ import { DateService } from '@aneuhold/core-ts-lib';
|
|
|
2
2
|
import type { UUID } from 'crypto';
|
|
3
3
|
import type { WorkoutExerciseCTO } from '../../../ctos/workout/WorkoutExerciseCTO.js';
|
|
4
4
|
import { ExerciseRepRange } from '../../../documents/workout/WorkoutExercise.js';
|
|
5
|
-
import WorkoutExerciseService from '../Exercise/
|
|
5
|
+
import WorkoutExerciseService from '../Exercise/WorkoutExercise.service.js';
|
|
6
6
|
import type WorkoutMesocyclePlanContext from '../Mesocycle/WorkoutMesocyclePlanContext.js';
|
|
7
|
-
import WorkoutSessionService from '../Session/
|
|
8
|
-
import WorkoutVolumePlanningService from '../util/VolumePlanning/
|
|
7
|
+
import WorkoutSessionService from '../Session/WorkoutSession.service.js';
|
|
8
|
+
import WorkoutVolumePlanningService from '../util/VolumePlanning/WorkoutVolumePlanning.service.js';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* A service for handling operations related to {@link WorkoutMicrocycle}s.
|
package/lib/services/workout/Session/{WorkoutSessionService.d.ts → WorkoutSession.service.d.ts}
RENAMED
|
@@ -29,6 +29,7 @@ export declare enum WorkoutSessionLockReason {
|
|
|
29
29
|
* - {@link WorkoutSFRService} - Underlying calculations for RSM/Fatigue
|
|
30
30
|
*/
|
|
31
31
|
export default class WorkoutSessionService {
|
|
32
|
+
#private;
|
|
32
33
|
/**
|
|
33
34
|
* Calculates the total Raw Stimulus Magnitude for a session.
|
|
34
35
|
*/
|
|
@@ -90,10 +91,5 @@ export default class WorkoutSessionService {
|
|
|
90
91
|
recoveryExerciseIds: Set<UUID>;
|
|
91
92
|
};
|
|
92
93
|
}): void;
|
|
93
|
-
/**
|
|
94
|
-
* Returns true if any set in the session has actualReps != null.
|
|
95
|
-
* Traverses session -> sessionExercises -> sets via order arrays and map lookups.
|
|
96
|
-
*/
|
|
97
|
-
private static sessionHasLoggedSets;
|
|
98
94
|
}
|
|
99
|
-
//# sourceMappingURL=
|
|
95
|
+
//# sourceMappingURL=WorkoutSession.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkoutSession.service.d.ts","sourceRoot":"","sources":["../../../../src/services/workout/Session/WorkoutSession.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACzF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAEnF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AAEnG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,KAAK,2BAA2B,MAAM,6CAA6C,CAAC;AAI3F;;GAEG;AACH,oBAAY,wBAAwB;IAClC,mBAAmB,wBAAwB;IAC3C,8BAA8B,mCAAmC;IACjE,2BAA2B,gCAAgC;CAC5D;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAqB;;IACxC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI;IAI1D;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI;IAI9D;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI;IAIrD;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,oBAAoB,CACzB,UAAU,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EAChD,SAAS,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,EAC9C,kBAAkB,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EACxD,2BAA2B,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAC7D,wBAAwB,GAAG,IAAI;IAalC;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,wBAAwB,CAC7B,QAAQ,EAAE,cAAc,EAAE,EAC1B,kBAAkB,EAAE,GAAG,CAAC,IAAI,EAAE,sBAAsB,CAAC,EACrD,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,GAC5B;QAAE,iBAAiB,EAAE,cAAc,GAAG,IAAI,CAAC;QAAC,aAAa,EAAE,cAAc,GAAG,IAAI,CAAA;KAAE;IAkBrF;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,EACrB,OAAO,EACP,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,EACT,kBAAkB,EAClB,OAAO,EACR,EAAE;QACD,OAAO,EAAE,2BAA2B,CAAC;QACrC,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,IAAI,CAAC;QACvB,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;QAC1C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,OAAO,EAAE;YAAE,oBAAoB,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAAC,mBAAmB,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;SAAE,CAAC;KACtF,GAAG,IAAI;CA2ET"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { WorkoutSessionSchema } from '../../../documents/workout/WorkoutSession.js';
|
|
2
2
|
import { WorkoutSessionExerciseSchema } from '../../../documents/workout/WorkoutSessionExercise.js';
|
|
3
|
-
import WorkoutSetService from '../Set/
|
|
4
|
-
import WorkoutSFRService from '../util/SFR/
|
|
3
|
+
import WorkoutSetService from '../Set/WorkoutSet.service.js';
|
|
4
|
+
import WorkoutSFRService from '../util/SFR/WorkoutSFR.service.js';
|
|
5
5
|
/**
|
|
6
6
|
* Describes why a session is locked and cannot be interacted with.
|
|
7
7
|
*/
|
|
@@ -93,7 +93,7 @@ export default class WorkoutSessionService {
|
|
|
93
93
|
for (const session of sessions) {
|
|
94
94
|
if (session.complete)
|
|
95
95
|
continue;
|
|
96
|
-
if (this
|
|
96
|
+
if (this.#sessionHasLoggedSets(session, sessionExerciseMap, setMap)) {
|
|
97
97
|
if (!inProgressSession)
|
|
98
98
|
inProgressSession = session;
|
|
99
99
|
}
|
|
@@ -157,7 +157,7 @@ export default class WorkoutSessionService {
|
|
|
157
157
|
* Returns true if any set in the session has actualReps != null.
|
|
158
158
|
* Traverses session -> sessionExercises -> sets via order arrays and map lookups.
|
|
159
159
|
*/
|
|
160
|
-
static sessionHasLoggedSets(session, sessionExerciseMap, setMap) {
|
|
160
|
+
static #sessionHasLoggedSets(session, sessionExerciseMap, setMap) {
|
|
161
161
|
for (const seId of session.sessionExerciseOrder) {
|
|
162
162
|
const se = sessionExerciseMap.get(seId);
|
|
163
163
|
if (!se)
|
|
@@ -171,4 +171,4 @@ export default class WorkoutSessionService {
|
|
|
171
171
|
return false;
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
|
-
//# sourceMappingURL=
|
|
174
|
+
//# sourceMappingURL=WorkoutSession.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkoutSession.service.js","sourceRoot":"","sources":["../../../../src/services/workout/Session/WorkoutSession.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,8 @@ import type { WorkoutSessionExercise } from '../../../documents/workout/WorkoutS
|
|
|
8
8
|
import { WorkoutSessionExerciseSchema } from '../../../documents/workout/WorkoutSessionExercise.js';
|
|
9
9
|
import type { WorkoutSet } from '../../../documents/workout/WorkoutSet.js';
|
|
10
10
|
import type WorkoutMesocyclePlanContext from '../Mesocycle/WorkoutMesocyclePlanContext.js';
|
|
11
|
-
import WorkoutSetService from '../Set/
|
|
12
|
-
import WorkoutSFRService from '../util/SFR/
|
|
11
|
+
import WorkoutSetService from '../Set/WorkoutSet.service.js';
|
|
12
|
+
import WorkoutSFRService from '../util/SFR/WorkoutSFR.service.js';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Describes why a session is locked and cannot be interacted with.
|
|
@@ -113,7 +113,7 @@ export default class WorkoutSessionService {
|
|
|
113
113
|
for (const session of sessions) {
|
|
114
114
|
if (session.complete) continue;
|
|
115
115
|
|
|
116
|
-
if (this
|
|
116
|
+
if (this.#sessionHasLoggedSets(session, sessionExerciseMap, setMap)) {
|
|
117
117
|
if (!inProgressSession) inProgressSession = session;
|
|
118
118
|
} else {
|
|
119
119
|
if (!nextUpSession) nextUpSession = session;
|
|
@@ -205,7 +205,7 @@ export default class WorkoutSessionService {
|
|
|
205
205
|
* Returns true if any set in the session has actualReps != null.
|
|
206
206
|
* Traverses session -> sessionExercises -> sets via order arrays and map lookups.
|
|
207
207
|
*/
|
|
208
|
-
|
|
208
|
+
static #sessionHasLoggedSets(
|
|
209
209
|
session: WorkoutSession,
|
|
210
210
|
sessionExerciseMap: Map<UUID, WorkoutSessionExercise>,
|
|
211
211
|
setMap: Map<UUID, WorkoutSet>
|
|
@@ -4,6 +4,7 @@ import type { WorkoutSet } from '../../../documents/workout/WorkoutSet.js';
|
|
|
4
4
|
* A service for handling operations related to {@link WorkoutSessionExercise}s.
|
|
5
5
|
*/
|
|
6
6
|
export default class WorkoutSessionExerciseService {
|
|
7
|
+
#private;
|
|
7
8
|
/**
|
|
8
9
|
* Calculates the total Raw Stimulus Magnitude for a specific exercise within a session.
|
|
9
10
|
*
|
|
@@ -83,12 +84,5 @@ export default class WorkoutSessionExerciseService {
|
|
|
83
84
|
* and sorenessScore. Deload exercises are always considered filled.
|
|
84
85
|
*/
|
|
85
86
|
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;
|
|
93
87
|
}
|
|
94
|
-
//# sourceMappingURL=
|
|
88
|
+
//# sourceMappingURL=WorkoutSessionExercise.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkoutSessionExercise.service.d.ts","sourceRoot":"","sources":["../../../../src/services/workout/SessionExercise/WorkoutSessionExercise.service.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;CA2BX"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import WorkoutSFRService from '../util/SFR/
|
|
1
|
+
import WorkoutSFRService from '../util/SFR/WorkoutSFR.service.js';
|
|
2
2
|
/**
|
|
3
3
|
* A service for handling operations related to {@link WorkoutSessionExercise}s.
|
|
4
4
|
*/
|
|
@@ -53,7 +53,7 @@ export default class WorkoutSessionExerciseService {
|
|
|
53
53
|
setScores.push(3);
|
|
54
54
|
continue;
|
|
55
55
|
}
|
|
56
|
-
const surplus = this
|
|
56
|
+
const surplus = this.#calculateSetSurplus(set.actualReps, set.plannedReps, set.rir, set.plannedRir);
|
|
57
57
|
if (surplus >= 2) {
|
|
58
58
|
setScores.push(0);
|
|
59
59
|
}
|
|
@@ -89,7 +89,7 @@ export default class WorkoutSessionExerciseService {
|
|
|
89
89
|
set.plannedRir == null) {
|
|
90
90
|
continue;
|
|
91
91
|
}
|
|
92
|
-
totalSurplus += this
|
|
92
|
+
totalSurplus += this.#calculateSetSurplus(set.actualReps, set.plannedReps, set.rir, set.plannedRir);
|
|
93
93
|
completedCount++;
|
|
94
94
|
}
|
|
95
95
|
if (completedCount === 0)
|
|
@@ -176,8 +176,8 @@ export default class WorkoutSessionExerciseService {
|
|
|
176
176
|
*
|
|
177
177
|
* Formula: `(actualReps - plannedReps) + (rir - plannedRir)`
|
|
178
178
|
*/
|
|
179
|
-
static calculateSetSurplus(actualReps, plannedReps, rir, plannedRir) {
|
|
179
|
+
static #calculateSetSurplus(actualReps, plannedReps, rir, plannedRir) {
|
|
180
180
|
return actualReps - plannedReps + (rir - plannedRir);
|
|
181
181
|
}
|
|
182
182
|
}
|
|
183
|
-
//# sourceMappingURL=
|
|
183
|
+
//# sourceMappingURL=WorkoutSessionExercise.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkoutSessionExercise.service.js","sourceRoot":"","sources":["../../../../src/services/workout/SessionExercise/WorkoutSessionExercise.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { WorkoutSessionExercise } from '../../../documents/workout/WorkoutSessionExercise.js';
|
|
2
2
|
import type { WorkoutSet } from '../../../documents/workout/WorkoutSet.js';
|
|
3
|
-
import WorkoutSFRService from '../util/SFR/
|
|
3
|
+
import WorkoutSFRService from '../util/SFR/WorkoutSFR.service.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* A service for handling operations related to {@link WorkoutSessionExercise}s.
|
|
@@ -64,7 +64,7 @@ export default class WorkoutSessionExerciseService {
|
|
|
64
64
|
continue;
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
const surplus = this
|
|
67
|
+
const surplus = this.#calculateSetSurplus(
|
|
68
68
|
set.actualReps,
|
|
69
69
|
set.plannedReps,
|
|
70
70
|
set.rir,
|
|
@@ -109,7 +109,7 @@ export default class WorkoutSessionExerciseService {
|
|
|
109
109
|
) {
|
|
110
110
|
continue;
|
|
111
111
|
}
|
|
112
|
-
totalSurplus += this
|
|
112
|
+
totalSurplus += this.#calculateSetSurplus(
|
|
113
113
|
set.actualReps,
|
|
114
114
|
set.plannedReps,
|
|
115
115
|
set.rir,
|
|
@@ -217,7 +217,7 @@ export default class WorkoutSessionExerciseService {
|
|
|
217
217
|
*
|
|
218
218
|
* Formula: `(actualReps - plannedReps) + (rir - plannedRir)`
|
|
219
219
|
*/
|
|
220
|
-
|
|
220
|
+
static #calculateSetSurplus(
|
|
221
221
|
actualReps: number,
|
|
222
222
|
plannedReps: number,
|
|
223
223
|
rir: number,
|
|
@@ -4,6 +4,7 @@ import type { WorkoutSessionExercise } from '../../../documents/workout/WorkoutS
|
|
|
4
4
|
import { type WorkoutSet } from '../../../documents/workout/WorkoutSet.js';
|
|
5
5
|
import type WorkoutMesocyclePlanContext from '../Mesocycle/WorkoutMesocyclePlanContext.js';
|
|
6
6
|
export default class WorkoutSetService {
|
|
7
|
+
#private;
|
|
7
8
|
/**
|
|
8
9
|
* Generates a list of workout sets for a given session exercise based on progression logic.
|
|
9
10
|
*
|
|
@@ -30,27 +31,5 @@ export default class WorkoutSetService {
|
|
|
30
31
|
* and either rir is recorded or no plannedRir was expected (deload sets).
|
|
31
32
|
*/
|
|
32
33
|
static isCompleted(set: WorkoutSet): boolean;
|
|
33
|
-
/**
|
|
34
|
-
* Finds all sets from the previous microcycle's session exercise to use for autoregulation.
|
|
35
|
-
* Returns all sets in order so surplus can be averaged across the full exercise performance.
|
|
36
|
-
*
|
|
37
|
-
* Uses the mesocycle's fixed exercise-to-session mapping to go directly to the
|
|
38
|
-
* correct session and exercise position rather than iterating all sessions.
|
|
39
|
-
*
|
|
40
|
-
* Returns an empty array if the previous microcycle doesn't exist or has no sessions
|
|
41
|
-
* (the context may not have full history). Throws if the structure is present but
|
|
42
|
-
* inconsistent with the mesocycle plan.
|
|
43
|
-
*
|
|
44
|
-
* @throws {Error} If the session/exercise structure doesn't match the plan.
|
|
45
|
-
*/
|
|
46
|
-
private static findPreviousSets;
|
|
47
|
-
/**
|
|
48
|
-
* Generates the planned reps and weight for a specific set within a session exercise, only
|
|
49
|
-
* taking into account simple -2 reps drop per set logic, and deload modifications.
|
|
50
|
-
*
|
|
51
|
-
* This needs to be checked with the source material to see if it needs to be adjusted based
|
|
52
|
-
* on actual reps performed in previous sets.
|
|
53
|
-
*/
|
|
54
|
-
private static generateSetRepsAndWeight;
|
|
55
34
|
}
|
|
56
|
-
//# sourceMappingURL=
|
|
35
|
+
//# sourceMappingURL=WorkoutSet.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkoutSet.service.d.ts","sourceRoot":"","sources":["../../../../src/services/workout/Set/WorkoutSet.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AAGtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AACnG,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAG7F,OAAO,KAAK,2BAA2B,MAAM,6CAA6C,CAAC;AAE3F,MAAM,CAAC,OAAO,OAAO,iBAAiB;;IACpC;;;;;;;;OAQG;IACH,MAAM,CAAC,8BAA8B,CAAC,EACpC,OAAO,EACP,WAAW,EACX,OAAO,EACP,eAAe,EACf,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,kBAAkB,EACnB,EAAE;QACD,OAAO,EAAE,2BAA2B,CAAC;QACrC,WAAW,EAAE,kBAAkB,CAAC;QAChC,OAAO,EAAE,cAAc,CAAC;QACxB,eAAe,EAAE,sBAAsB,CAAC;QACxC,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,kBAAkB,EAAE,OAAO,CAAC;KAC7B,GAAG,IAAI;IA6DR;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO;CA0J7C"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { WorkoutSetSchema } from '../../../documents/workout/WorkoutSet.js';
|
|
2
|
-
import WorkoutEquipmentTypeService from '../EquipmentType/
|
|
3
|
-
import WorkoutExerciseService from '../Exercise/
|
|
2
|
+
import WorkoutEquipmentTypeService from '../EquipmentType/WorkoutEquipmentType.service.js';
|
|
3
|
+
import WorkoutExerciseService from '../Exercise/WorkoutExercise.service.js';
|
|
4
4
|
export default class WorkoutSetService {
|
|
5
5
|
/**
|
|
6
6
|
* Generates a list of workout sets for a given session exercise based on progression logic.
|
|
@@ -21,7 +21,7 @@ export default class WorkoutSetService {
|
|
|
21
21
|
// data. For subsequent microcycles, look up all previous sets from the context.
|
|
22
22
|
const previousSets = microcycleIndex === 0
|
|
23
23
|
? exerciseCTO.lastAccumulationSessionSets
|
|
24
|
-
: this
|
|
24
|
+
: this.#findPreviousSets(context, exerciseCTO._id, microcycleIndex);
|
|
25
25
|
// Calculate progressed targets for the first set.
|
|
26
26
|
// Autoregulation/forecasting handles progression from the previous sets' data.
|
|
27
27
|
// Surplus is averaged across all sets for a holistic performance signal.
|
|
@@ -34,7 +34,7 @@ export default class WorkoutSetService {
|
|
|
34
34
|
previousSets
|
|
35
35
|
});
|
|
36
36
|
for (let setIndex = 0; setIndex < setCount; setIndex++) {
|
|
37
|
-
const { plannedReps, plannedWeight } = this
|
|
37
|
+
const { plannedReps, plannedWeight } = this.#generateSetRepsAndWeight(sets[setIndex - 1]?.plannedReps || firstSetReps, sets[setIndex - 1]?.plannedWeight || firstSetWeight, setIndex, exerciseCTO.repRange, equipmentType, {
|
|
38
38
|
isDeloadMicrocycle,
|
|
39
39
|
sessionIndex,
|
|
40
40
|
plannedSessionCountPerMicrocycle: context.mesocycle.plannedSessionCountPerMicrocycle
|
|
@@ -76,7 +76,7 @@ export default class WorkoutSetService {
|
|
|
76
76
|
*
|
|
77
77
|
* @throws {Error} If the session/exercise structure doesn't match the plan.
|
|
78
78
|
*/
|
|
79
|
-
static findPreviousSets(context, exerciseId, microcycleIndex) {
|
|
79
|
+
static #findPreviousSets(context, exerciseId, microcycleIndex) {
|
|
80
80
|
if (microcycleIndex <= 0) {
|
|
81
81
|
return [];
|
|
82
82
|
}
|
|
@@ -137,7 +137,7 @@ export default class WorkoutSetService {
|
|
|
137
137
|
* This needs to be checked with the source material to see if it needs to be adjusted based
|
|
138
138
|
* on actual reps performed in previous sets.
|
|
139
139
|
*/
|
|
140
|
-
static generateSetRepsAndWeight(firstSetOrPreviousSetReps, firstSetOrPreviousSetWeight, setIndex, repRange, equipment, deloadInfo) {
|
|
140
|
+
static #generateSetRepsAndWeight(firstSetOrPreviousSetReps, firstSetOrPreviousSetWeight, setIndex, repRange, equipment, deloadInfo) {
|
|
141
141
|
const repRangeValues = WorkoutExerciseService.getRepRangeValues(repRange);
|
|
142
142
|
let currentReps = firstSetOrPreviousSetReps;
|
|
143
143
|
let currentWeight = firstSetOrPreviousSetWeight;
|
|
@@ -173,4 +173,4 @@ export default class WorkoutSetService {
|
|
|
173
173
|
return { plannedReps: currentReps, plannedWeight: currentWeight };
|
|
174
174
|
}
|
|
175
175
|
}
|
|
176
|
-
//# sourceMappingURL=
|
|
176
|
+
//# sourceMappingURL=WorkoutSet.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkoutSet.service.js","sourceRoot":"","sources":["../../../../src/services/workout/Set/WorkoutSet.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,8 @@ import type { ExerciseRepRange } from '../../../documents/workout/WorkoutExercis
|
|
|
5
5
|
import type { WorkoutSession } from '../../../documents/workout/WorkoutSession.js';
|
|
6
6
|
import type { WorkoutSessionExercise } from '../../../documents/workout/WorkoutSessionExercise.js';
|
|
7
7
|
import { WorkoutSetSchema, type WorkoutSet } from '../../../documents/workout/WorkoutSet.js';
|
|
8
|
-
import WorkoutEquipmentTypeService from '../EquipmentType/
|
|
9
|
-
import WorkoutExerciseService from '../Exercise/
|
|
8
|
+
import WorkoutEquipmentTypeService from '../EquipmentType/WorkoutEquipmentType.service.js';
|
|
9
|
+
import WorkoutExerciseService from '../Exercise/WorkoutExercise.service.js';
|
|
10
10
|
import type WorkoutMesocyclePlanContext from '../Mesocycle/WorkoutMesocyclePlanContext.js';
|
|
11
11
|
|
|
12
12
|
export default class WorkoutSetService {
|
|
@@ -54,7 +54,7 @@ export default class WorkoutSetService {
|
|
|
54
54
|
const previousSets =
|
|
55
55
|
microcycleIndex === 0
|
|
56
56
|
? exerciseCTO.lastAccumulationSessionSets
|
|
57
|
-
: this
|
|
57
|
+
: this.#findPreviousSets(context, exerciseCTO._id, microcycleIndex);
|
|
58
58
|
|
|
59
59
|
// Calculate progressed targets for the first set.
|
|
60
60
|
// Autoregulation/forecasting handles progression from the previous sets' data.
|
|
@@ -70,7 +70,7 @@ export default class WorkoutSetService {
|
|
|
70
70
|
});
|
|
71
71
|
|
|
72
72
|
for (let setIndex = 0; setIndex < setCount; setIndex++) {
|
|
73
|
-
const { plannedReps, plannedWeight } = this
|
|
73
|
+
const { plannedReps, plannedWeight } = this.#generateSetRepsAndWeight(
|
|
74
74
|
sets[setIndex - 1]?.plannedReps || firstSetReps,
|
|
75
75
|
sets[setIndex - 1]?.plannedWeight || firstSetWeight,
|
|
76
76
|
setIndex,
|
|
@@ -126,7 +126,7 @@ export default class WorkoutSetService {
|
|
|
126
126
|
*
|
|
127
127
|
* @throws {Error} If the session/exercise structure doesn't match the plan.
|
|
128
128
|
*/
|
|
129
|
-
|
|
129
|
+
static #findPreviousSets(
|
|
130
130
|
context: WorkoutMesocyclePlanContext,
|
|
131
131
|
exerciseId: UUID,
|
|
132
132
|
microcycleIndex: number
|
|
@@ -204,7 +204,7 @@ export default class WorkoutSetService {
|
|
|
204
204
|
* This needs to be checked with the source material to see if it needs to be adjusted based
|
|
205
205
|
* on actual reps performed in previous sets.
|
|
206
206
|
*/
|
|
207
|
-
|
|
207
|
+
static #generateSetRepsAndWeight(
|
|
208
208
|
firstSetOrPreviousSetReps: number,
|
|
209
209
|
firstSetOrPreviousSetWeight: number,
|
|
210
210
|
setIndex: number,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkoutSFR.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/workout/util/SFR/WorkoutSFR.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+CAA+C,CAAC;AAC7E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,2CAA2C,CAAC;AAErE;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI;IAO9D;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI;IAc1E;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI;CAc/F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkoutSFR.service.js","sourceRoot":"","sources":["../../../../../src/services/workout/util/SFR/WorkoutSFR.service.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,GAA2B;QAC5C,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,oBAAoB,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;YAC3F,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC;IAC9D,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,OAAmC;QACxD,IACE,CAAC,OAAO;YACR,OAAO,CAAC,wBAAwB,IAAI,IAAI;YACxC,OAAO,CAAC,eAAe,IAAI,IAAI;YAC/B,OAAO,CAAC,uBAAuB,IAAI,IAAI,EACvC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,CACL,OAAO,CAAC,wBAAwB,GAAG,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,uBAAuB,CAC7F,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,GAA2B,EAAE,OAAmC;QAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEnD,IAAI,QAAQ,KAAK,IAAI,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,OAAO,QAAQ,GAAG,YAAY,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { UUID } from 'crypto';
|
|
2
|
+
import type { WorkoutMuscleGroupVolumeCTO, WorkoutVolumeLandmarkEstimate } from '../../../../ctos/workout/WorkoutMuscleGroupVolumeCTO.js';
|
|
3
|
+
import type WorkoutMesocyclePlanContext from '../../Mesocycle/WorkoutMesocyclePlanContext.js';
|
|
4
|
+
/**
|
|
5
|
+
* A service for handling volume planning operations across microcycles.
|
|
6
|
+
*
|
|
7
|
+
* RESPONSIBILITIES:
|
|
8
|
+
* - Calculate set counts for exercises across a microcycle
|
|
9
|
+
* - Apply progressive overload rules (baseline + historical adjustments)
|
|
10
|
+
* - Handle recovery exercise identification
|
|
11
|
+
* - Enforce volume limits (per exercise, per muscle group per session)
|
|
12
|
+
*
|
|
13
|
+
* RELATED SERVICES:
|
|
14
|
+
* - {@link WorkoutMicrocycleService} - Calls this to get set plans before generating sessions
|
|
15
|
+
* - {@link WorkoutSessionService} - Uses the output to generate actual sessions
|
|
16
|
+
* - {@link WorkoutSessionExerciseService} - Used to calculate SFR and recovery recommendations
|
|
17
|
+
*/
|
|
18
|
+
export default class WorkoutVolumePlanningService {
|
|
19
|
+
#private;
|
|
20
|
+
/**
|
|
21
|
+
* Controls the volume *progression rate* across accumulation microcycles.
|
|
22
|
+
*
|
|
23
|
+
* Both modes start at estimated MEV when historical volume data exists
|
|
24
|
+
* (falling back to 2 sets per exercise when no history is available).
|
|
25
|
+
*
|
|
26
|
+
* When `false` (default): legacy progression — adds 1 set per muscle group
|
|
27
|
+
* every `progressionInterval` microcycles from the MEV starting point.
|
|
28
|
+
*
|
|
29
|
+
* When `true`: MEV-to-MRV interpolation — linearly distributes sets from
|
|
30
|
+
* estimated MEV to estimated MRV across all accumulation microcycles.
|
|
31
|
+
*
|
|
32
|
+
* This flag exists to allow toggling between the two progression algorithms
|
|
33
|
+
* while the MEV-to-MRV approach is validated in practice. Once confidence is
|
|
34
|
+
* established, the flag and legacy path should be removed.
|
|
35
|
+
*/
|
|
36
|
+
static USE_VOLUME_LANDMARK_PROGRESSION: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Calculates the set plan for an entire microcycle.
|
|
39
|
+
*/
|
|
40
|
+
static calculateSetPlanForMicrocycle(context: WorkoutMesocyclePlanContext, microcycleIndex: number, isDeloadMicrocycle: boolean): {
|
|
41
|
+
exerciseIdToSetCount: Map<UUID, number>;
|
|
42
|
+
recoveryExerciseIds: Set<UUID>;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Estimates MEV, MRV, and MAV for a muscle group based on historical data
|
|
46
|
+
* across completed mesocycles.
|
|
47
|
+
*
|
|
48
|
+
* @param volumeCTO The WorkoutMuscleGroupVolumeCTO containing mesocycle
|
|
49
|
+
* history for this muscle group.
|
|
50
|
+
*/
|
|
51
|
+
static estimateVolumeLandmarks(volumeCTO: WorkoutMuscleGroupVolumeCTO): WorkoutVolumeLandmarkEstimate;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=WorkoutVolumePlanning.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkoutVolumePlanning.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/workout/util/VolumePlanning/WorkoutVolumePlanning.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EACV,2BAA2B,EAC3B,6BAA6B,EAC9B,MAAM,yDAAyD,CAAC;AAEjE,OAAO,KAAK,2BAA2B,MAAM,gDAAgD,CAAC;AAW9F;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,OAAO,4BAA4B;;IAC/C;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,+BAA+B,UAAS;IA0B/C;;OAEG;IACH,MAAM,CAAC,6BAA6B,CAClC,OAAO,EAAE,2BAA2B,EACpC,eAAe,EAAE,MAAM,EACvB,kBAAkB,EAAE,OAAO,GAC1B;QAAE,oBAAoB,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAAC,mBAAmB,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;KAAE;IA4B9E;;;;;;OAMG;IACH,MAAM,CAAC,uBAAuB,CAC5B,SAAS,EAAE,2BAA2B,GACrC,6BAA6B;CA8mBjC"}
|