@aneuhold/core-ts-db-lib 5.0.11 → 5.0.13
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 +15 -0
- package/lib/documents/workout/WorkoutMicrocycle.d.ts.map +1 -1
- package/lib/documents/workout/WorkoutMicrocycle.js +6 -4
- package/lib/documents/workout/WorkoutMicrocycle.js.map +1 -1
- package/lib/documents/workout/WorkoutMicrocycle.ts +6 -4
- package/lib/documents/workout/WorkoutSession.js +2 -2
- package/lib/documents/workout/WorkoutSession.ts +2 -2
- package/lib/services/workout/Mesocycle/WorkoutMesocycle.service.js +3 -3
- package/lib/services/workout/Mesocycle/WorkoutMesocycle.service.js.map +1 -1
- package/lib/services/workout/Mesocycle/WorkoutMesocycle.service.ts +3 -3
- package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.d.ts +13 -2
- package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.d.ts.map +1 -1
- package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.js +43 -3
- package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.js.map +1 -1
- package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.ts +55 -4
- package/lib/services/workout/Microcycle/WorkoutMicrocycle.service.js +1 -1
- package/lib/services/workout/Microcycle/WorkoutMicrocycle.service.js.map +1 -1
- package/lib/services/workout/Microcycle/WorkoutMicrocycle.service.ts +1 -1
- package/lib/services/workout/Session/WorkoutSession.service.js +1 -1
- package/lib/services/workout/Session/WorkoutSession.service.js.map +1 -1
- package/lib/services/workout/Session/WorkoutSession.service.ts +1 -1
- package/lib/services/workout/Set/WorkoutSet.service.d.ts.map +1 -1
- package/lib/services/workout/Set/WorkoutSet.service.js +22 -57
- package/lib/services/workout/Set/WorkoutSet.service.js.map +1 -1
- package/lib/services/workout/Set/WorkoutSet.service.ts +26 -68
- package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanning.service.d.ts.map +1 -1
- package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanning.service.js +18 -30
- package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanning.service.js.map +1 -1
- package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanning.service.ts +23 -33
- package/package.json +14 -14
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## 🔖 [5.0.13] (2026-08-30)
|
|
9
|
+
|
|
10
|
+
### 🩹 Fixed
|
|
11
|
+
|
|
12
|
+
- Fixed workout mesocycle planning resolving a previous microcycle's sets by session position, which could read the wrong exercise's history when a microcycle's session count or order didn't match the mesocycle plan (e.g. after a deleted or reordered session). Previous sets are now resolved by exercise ID, walking backward across microcycles and skipping recovery entries.
|
|
13
|
+
|
|
14
|
+
## 🔖 [5.0.12] (2026-08-14)
|
|
15
|
+
|
|
16
|
+
### 🏗️ Changed
|
|
17
|
+
|
|
18
|
+
- Updated `uuid` to `^14.0.1` and `zod` to `^4.4.3`.
|
|
19
|
+
- Updated `@aneuhold/core-ts-lib` to `^2.4.8`.
|
|
20
|
+
|
|
8
21
|
## 🔖 [5.0.11] (2026-08-13)
|
|
9
22
|
|
|
10
23
|
### 🏗️ Changed
|
|
@@ -487,6 +500,8 @@ Updated dependency: now requires `@aneuhold/core-ts-lib@^2.3.11`.
|
|
|
487
500
|
- Updated workflow permissions to allow repository write access
|
|
488
501
|
|
|
489
502
|
<!-- Link References -->
|
|
503
|
+
[5.0.13]: https://github.com/aneuhold/ts-libs/compare/core-ts-db-lib-v5.0.12...core-ts-db-lib-v5.0.13
|
|
504
|
+
[5.0.12]: https://github.com/aneuhold/ts-libs/compare/core-ts-db-lib-v5.0.11...core-ts-db-lib-v5.0.12
|
|
490
505
|
[5.0.11]: https://github.com/aneuhold/ts-libs/compare/core-ts-db-lib-v5.0.10...core-ts-db-lib-v5.0.11
|
|
491
506
|
[5.0.10]: https://github.com/aneuhold/ts-libs/compare/core-ts-db-lib-v5.0.9...core-ts-db-lib-v5.0.10
|
|
492
507
|
[5.0.9]: https://github.com/aneuhold/ts-libs/compare/core-ts-db-lib-v5.0.8...core-ts-db-lib-v5.0.9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkoutMicrocycle.d.ts","sourceRoot":"","sources":["../../../src/documents/workout/WorkoutMicrocycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB;;GAEG;AACH,eAAO,MAAM,yBAAyB,sBAAsB,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"WorkoutMicrocycle.d.ts","sourceRoot":"","sources":["../../../src/documents/workout/WorkoutMicrocycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB;;GAEG;AACH,eAAO,MAAM,yBAAyB,sBAAsB,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;iBAoClC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
|
|
@@ -29,11 +29,13 @@ export const WorkoutMicrocycleSchema = z.object({
|
|
|
29
29
|
*/
|
|
30
30
|
endDate: z.date(),
|
|
31
31
|
/**
|
|
32
|
-
* The
|
|
33
|
-
* WorkoutSession IDs.
|
|
32
|
+
* The sessions that exist in this microcycle, in the order they are
|
|
33
|
+
* performed, represented as an array of WorkoutSession IDs.
|
|
34
34
|
*
|
|
35
|
-
* This
|
|
36
|
-
*
|
|
35
|
+
* This holds the sessions that actually exist, not a layout of the days a
|
|
36
|
+
* mesocycle planned. A position in this array therefore means nothing beyond ordering, and the
|
|
37
|
+
* count can differ from the mesocycle's planned session count. This also makes it easier to
|
|
38
|
+
* reason about the order of sessions before dates are assigned.
|
|
37
39
|
*/
|
|
38
40
|
sessionOrder: z.array(UUIDSchema).default([]),
|
|
39
41
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkoutMicrocycle.js","sourceRoot":"","sources":["../../../src/documents/workout/WorkoutMicrocycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EACL,0BAA0B,EAC1B,4CAA4C,EAC7C,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,mBAAmB,CAAC;AAE7D;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,GAAG,0BAA0B,CAAC,KAAK;IACnC,GAAG,oBAAoB,CAAC,KAAK;IAC7B,GAAG,4CAA4C,CAAC,KAAK;IACrD,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC;IAChF;;;;OAIG;IACH,kBAAkB,EAAE,UAAU,CAAC,OAAO,EAAE;IACxC;;OAEG;IACH,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;IACnB;;OAEG;IACH,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE;IACjB
|
|
1
|
+
{"version":3,"file":"WorkoutMicrocycle.js","sourceRoot":"","sources":["../../../src/documents/workout/WorkoutMicrocycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EACL,0BAA0B,EAC1B,4CAA4C,EAC7C,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,mBAAmB,CAAC;AAE7D;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,GAAG,0BAA0B,CAAC,KAAK;IACnC,GAAG,oBAAoB,CAAC,KAAK;IAC7B,GAAG,4CAA4C,CAAC,KAAK;IACrD,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC;IAChF;;;;OAIG;IACH,kBAAkB,EAAE,UAAU,CAAC,OAAO,EAAE;IACxC;;OAEG;IACH,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;IACnB;;OAEG;IACH,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE;IACjB;;;;;;;;OAQG;IACH,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C;;;;;OAKG;IACH,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE;CAClC,CAAC,CAAC"}
|
|
@@ -34,11 +34,13 @@ export const WorkoutMicrocycleSchema = z.object({
|
|
|
34
34
|
*/
|
|
35
35
|
endDate: z.date(),
|
|
36
36
|
/**
|
|
37
|
-
* The
|
|
38
|
-
* WorkoutSession IDs.
|
|
37
|
+
* The sessions that exist in this microcycle, in the order they are
|
|
38
|
+
* performed, represented as an array of WorkoutSession IDs.
|
|
39
39
|
*
|
|
40
|
-
* This
|
|
41
|
-
*
|
|
40
|
+
* This holds the sessions that actually exist, not a layout of the days a
|
|
41
|
+
* mesocycle planned. A position in this array therefore means nothing beyond ordering, and the
|
|
42
|
+
* count can differ from the mesocycle's planned session count. This also makes it easier to
|
|
43
|
+
* reason about the order of sessions before dates are assigned.
|
|
42
44
|
*/
|
|
43
45
|
sessionOrder: z.array(UUIDSchema).default([]),
|
|
44
46
|
/**
|
|
@@ -39,8 +39,8 @@ export const WorkoutSessionSchema = z.object({
|
|
|
39
39
|
*/
|
|
40
40
|
complete: z.boolean().default(false),
|
|
41
41
|
/**
|
|
42
|
-
* The
|
|
43
|
-
* WorkoutSessionExercise IDs.
|
|
42
|
+
* The exercises that exist in this session, in the order they are performed,
|
|
43
|
+
* represented as an array of WorkoutSessionExercise IDs.
|
|
44
44
|
*
|
|
45
45
|
* This was chosen as a compromise for querying efficiency in order to quickly
|
|
46
46
|
* get metrics like "Last time you did this exercise when it was preceded by
|
|
@@ -44,8 +44,8 @@ export const WorkoutSessionSchema = z.object({
|
|
|
44
44
|
*/
|
|
45
45
|
complete: z.boolean().default(false),
|
|
46
46
|
/**
|
|
47
|
-
* The
|
|
48
|
-
* WorkoutSessionExercise IDs.
|
|
47
|
+
* The exercises that exist in this session, in the order they are performed,
|
|
48
|
+
* represented as an array of WorkoutSessionExercise IDs.
|
|
49
49
|
*
|
|
50
50
|
* This was chosen as a compromise for querying efficiency in order to quickly
|
|
51
51
|
* get metrics like "Last time you did this exercise when it was preceded by
|
|
@@ -80,7 +80,7 @@ export default class WorkoutMesocycleService {
|
|
|
80
80
|
else {
|
|
81
81
|
// Continue from where the last existing microcycle ended
|
|
82
82
|
const lastExistingMicrocycle = context.microcyclesInOrder[startMicrocycleIndex - 1];
|
|
83
|
-
currentDate = lastExistingMicrocycle.endDate;
|
|
83
|
+
currentDate = lastExistingMicrocycle.microcycle.endDate;
|
|
84
84
|
}
|
|
85
85
|
const { firstMicrocycleRir } = context;
|
|
86
86
|
// Generate remaining microcycles
|
|
@@ -257,7 +257,7 @@ export default class WorkoutMesocycleService {
|
|
|
257
257
|
};
|
|
258
258
|
const context = new WorkoutMesocyclePlanContext(mesocycle, exerciseCTOs, [], existingMicrocycles, existingSessions, existingSessionExercises, existingSets);
|
|
259
259
|
// Find current microcycle index
|
|
260
|
-
const currentMicrocycleIndex = context.microcyclesInOrder.findIndex((
|
|
260
|
+
const currentMicrocycleIndex = context.microcyclesInOrder.findIndex(({ microcycle }) => microcycle._id === currentMicrocycleId);
|
|
261
261
|
// Guard: don't trigger before enough microcycles have been completed
|
|
262
262
|
if (currentMicrocycleIndex < this.#MIN_MICROCYCLE_INDEX_FOR_DELOAD) {
|
|
263
263
|
return noDeload;
|
|
@@ -270,7 +270,7 @@ export default class WorkoutMesocycleService {
|
|
|
270
270
|
// Gather recent session exercises from the last 2 microcycles
|
|
271
271
|
const startIndex = Math.max(0, currentMicrocycleIndex - 1);
|
|
272
272
|
const recentMicrocycles = context.microcyclesInOrder.slice(startIndex, currentMicrocycleIndex + 1);
|
|
273
|
-
const recentMicrocycleIds = new Set(recentMicrocycles.map((
|
|
273
|
+
const recentMicrocycleIds = new Set(recentMicrocycles.map(({ microcycle }) => microcycle._id));
|
|
274
274
|
const recentSessionExercises = [...context.sessionExerciseMap.values()].filter((se) => {
|
|
275
275
|
const session = context.sessionMap.get(se.workoutSessionId);
|
|
276
276
|
return session?.workoutMicrocycleId && recentMicrocycleIds.has(session.workoutMicrocycleId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkoutMesocycle.service.js","sourceRoot":"","sources":["../../../../src/services/workout/Mesocycle/WorkoutMesocycle.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WorkoutMesocycle.service.js","sourceRoot":"","sources":["../../../../src/services/workout/Mesocycle/WorkoutMesocycle.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -149,7 +149,7 @@ export default class WorkoutMesocycleService {
|
|
|
149
149
|
} else {
|
|
150
150
|
// Continue from where the last existing microcycle ended
|
|
151
151
|
const lastExistingMicrocycle = context.microcyclesInOrder[startMicrocycleIndex - 1];
|
|
152
|
-
currentDate = lastExistingMicrocycle.endDate;
|
|
152
|
+
currentDate = lastExistingMicrocycle.microcycle.endDate;
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
const { firstMicrocycleRir } = context;
|
|
@@ -391,7 +391,7 @@ export default class WorkoutMesocycleService {
|
|
|
391
391
|
|
|
392
392
|
// Find current microcycle index
|
|
393
393
|
const currentMicrocycleIndex = context.microcyclesInOrder.findIndex(
|
|
394
|
-
(
|
|
394
|
+
({ microcycle }) => microcycle._id === currentMicrocycleId
|
|
395
395
|
);
|
|
396
396
|
|
|
397
397
|
// Guard: don't trigger before enough microcycles have been completed
|
|
@@ -411,7 +411,7 @@ export default class WorkoutMesocycleService {
|
|
|
411
411
|
startIndex,
|
|
412
412
|
currentMicrocycleIndex + 1
|
|
413
413
|
);
|
|
414
|
-
const recentMicrocycleIds = new Set(recentMicrocycles.map((
|
|
414
|
+
const recentMicrocycleIds = new Set(recentMicrocycles.map(({ microcycle }) => microcycle._id));
|
|
415
415
|
|
|
416
416
|
const recentSessionExercises = [...context.sessionExerciseMap.values()].filter((se) => {
|
|
417
417
|
const session = context.sessionMap.get(se.workoutSessionId);
|
|
@@ -49,12 +49,20 @@ export default class WorkoutMesocyclePlanContext {
|
|
|
49
49
|
readonly setMap: Map<UUID, WorkoutSet>;
|
|
50
50
|
readonly microcyclesToCreate: WorkoutMicrocycle[];
|
|
51
51
|
/**
|
|
52
|
-
* All microcycles for this mesocycle in chronological order.
|
|
52
|
+
* All microcycles for this mesocycle in chronological order, each with the exercises it holds.
|
|
53
53
|
*
|
|
54
54
|
* This includes any existing microcycles (filtered to the target mesocycle) and
|
|
55
55
|
* all newly generated microcycles.
|
|
56
|
+
*
|
|
57
|
+
* `exerciseToSessionExercise` maps exercise ID to the session exercise that exercise was given
|
|
58
|
+
* in the microcycle, and is kept current as sessions are added. It holds nothing for an exercise
|
|
59
|
+
* the microcycle skips, and includes recovery entries since consumers differ on how they treat
|
|
60
|
+
* them.
|
|
56
61
|
*/
|
|
57
|
-
readonly microcyclesInOrder:
|
|
62
|
+
readonly microcyclesInOrder: {
|
|
63
|
+
microcycle: WorkoutMicrocycle;
|
|
64
|
+
exerciseToSessionExercise: Map<UUID, WorkoutSessionExercise>;
|
|
65
|
+
}[];
|
|
58
66
|
readonly sessionsToCreate: WorkoutSession[];
|
|
59
67
|
readonly sessionExercisesToCreate: WorkoutSessionExercise[];
|
|
60
68
|
readonly setsToCreate: WorkoutSet[];
|
|
@@ -87,6 +95,9 @@ export default class WorkoutMesocyclePlanContext {
|
|
|
87
95
|
addMicrocycle(toCreate: WorkoutMicrocycle): void;
|
|
88
96
|
/**
|
|
89
97
|
* Adds a session to the context and updates internal maps.
|
|
98
|
+
*
|
|
99
|
+
* Call this once the session's `sessionExerciseOrder` is filled and its session exercises have
|
|
100
|
+
* been added, since the owning microcycle's exercise lookup is rebuilt from them here.
|
|
90
101
|
*/
|
|
91
102
|
addSession(session: WorkoutSession): void;
|
|
92
103
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkoutMesocyclePlanContext.d.ts","sourceRoot":"","sources":["../../../../src/services/workout/Mesocycle/WorkoutMesocyclePlanContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,KAAK,EACV,2BAA2B,EAC3B,6BAA6B,EAC9B,MAAM,sDAAsD,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAC/F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AACrF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAEvF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACzF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AACnG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAG3E;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,2BAA2B;;
|
|
1
|
+
{"version":3,"file":"WorkoutMesocyclePlanContext.d.ts","sourceRoot":"","sources":["../../../../src/services/workout/Mesocycle/WorkoutMesocyclePlanContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,KAAK,EACV,2BAA2B,EAC3B,6BAA6B,EAC9B,MAAM,sDAAsD,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAC/F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AACrF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAEvF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACzF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AACnG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAG3E;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,2BAA2B;;IA2ErC,SAAS,EAAE,gBAAgB;IAG3B,mBAAmB,EAAE,iBAAiB,EAAE;IACxC,gBAAgB,EAAE,cAAc,EAAE;IAClC,wBAAwB,EAAE,sBAAsB,EAAE;IAClD,YAAY,EAAE,UAAU,EAAE;IAhFnC;;;OAGG;IACH,SAAgB,kBAAkB,EAAE,MAAM,CAAC;IAE3C;;;OAGG;IACH,SAAgB,mBAAmB,EAAE,MAAM,CAAC;IAE5C;;;OAGG;IACH,SAAgB,UAAU,EAAE,OAAO,CAAC;IAEpC;;;OAGG;IACH,SAAgB,2BAA2B,EAAE,MAAM,CAAC;IAEpD,SAAgB,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACxD,SAAgB,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IAC9D,SAAgB,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACtD,SAAgB,kBAAkB,EAAE,GAAG,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;IACtE,SAAgB,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAE9C,SAAgB,mBAAmB,EAAE,iBAAiB,EAAE,CAAM;IAC9D;;;;;;;;;;OAUG;IACH,SAAgB,kBAAkB,EAAE;QAClC,UAAU,EAAE,iBAAiB,CAAC;QAC9B,yBAAyB,EAAE,GAAG,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;KAC9D,EAAE,CAAM;IACT,SAAgB,gBAAgB,EAAE,cAAc,EAAE,CAAM;IACxD,SAAgB,wBAAwB,EAAE,sBAAsB,EAAE,CAAM;IACxE,SAAgB,YAAY,EAAE,UAAU,EAAE,CAAM;IAEhD;;;OAGG;IACI,0BAA0B,EAAE,kBAAkB,EAAE,EAAE,GAAG,SAAS,CAAC;IACtE;;;;;;OAMG;IACI,4BAA4B,EAAE,GAAG,CAAC,IAAI,EAAE,kBAAkB,EAAE,CAAC,GAAG,SAAS,CAAC;IACjF;;;OAGG;IACI,8BAA8B,EAAE,GAAG,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC;IACzE,wBAAwB,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAE/D;;OAEG;gBAEM,SAAS,EAAE,gBAAgB,EAClC,YAAY,EAAE,kBAAkB,EAAE,EAClC,UAAU,GAAE,2BAA2B,EAAO,EACvC,mBAAmB,GAAE,iBAAiB,EAAO,EAC7C,gBAAgB,GAAE,cAAc,EAAO,EACvC,wBAAwB,GAAE,sBAAsB,EAAO,EACvD,YAAY,GAAE,UAAU,EAAO;IAiDxC;;OAEG;IACI,aAAa,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAKvD;;;;;OAKG;IACI,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAchD;;OAEG;IACI,kBAAkB,CAAC,eAAe,EAAE,sBAAsB,GAAG,IAAI;IAKxE;;OAEG;IACI,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI;IAOxC;;;OAGG;IACI,6BAA6B,CAAC,0BAA0B,EAAE,kBAAkB,EAAE,EAAE,GAAG,IAAI;CAkE/F"}
|
|
@@ -40,10 +40,15 @@ export default class WorkoutMesocyclePlanContext {
|
|
|
40
40
|
setMap;
|
|
41
41
|
microcyclesToCreate = [];
|
|
42
42
|
/**
|
|
43
|
-
* All microcycles for this mesocycle in chronological order.
|
|
43
|
+
* All microcycles for this mesocycle in chronological order, each with the exercises it holds.
|
|
44
44
|
*
|
|
45
45
|
* This includes any existing microcycles (filtered to the target mesocycle) and
|
|
46
46
|
* all newly generated microcycles.
|
|
47
|
+
*
|
|
48
|
+
* `exerciseToSessionExercise` maps exercise ID to the session exercise that exercise was given
|
|
49
|
+
* in the microcycle, and is kept current as sessions are added. It holds nothing for an exercise
|
|
50
|
+
* the microcycle skips, and includes recovery entries since consumers differ on how they treat
|
|
51
|
+
* them.
|
|
47
52
|
*/
|
|
48
53
|
microcyclesInOrder = [];
|
|
49
54
|
sessionsToCreate = [];
|
|
@@ -108,21 +113,33 @@ export default class WorkoutMesocyclePlanContext {
|
|
|
108
113
|
const existingMicrocyclesForMesocycle = existingMicrocycles
|
|
109
114
|
.filter((m) => m.workoutMesocycleId === mesocycle._id)
|
|
110
115
|
.sort((a, b) => a.startDate.getTime() - b.startDate.getTime());
|
|
111
|
-
|
|
116
|
+
for (const microcycle of existingMicrocyclesForMesocycle) {
|
|
117
|
+
this.microcyclesInOrder.push({
|
|
118
|
+
microcycle,
|
|
119
|
+
exerciseToSessionExercise: this.#mapExercisesToSessionExercises(microcycle)
|
|
120
|
+
});
|
|
121
|
+
}
|
|
112
122
|
}
|
|
113
123
|
/**
|
|
114
124
|
* Adds a microcycle to the list of microcycles to create and the overall chronological list.
|
|
115
125
|
*/
|
|
116
126
|
addMicrocycle(toCreate) {
|
|
117
127
|
this.microcyclesToCreate.push(toCreate);
|
|
118
|
-
this.microcyclesInOrder.push(toCreate);
|
|
128
|
+
this.microcyclesInOrder.push({ microcycle: toCreate, exerciseToSessionExercise: new Map() });
|
|
119
129
|
}
|
|
120
130
|
/**
|
|
121
131
|
* Adds a session to the context and updates internal maps.
|
|
132
|
+
*
|
|
133
|
+
* Call this once the session's `sessionExerciseOrder` is filled and its session exercises have
|
|
134
|
+
* been added, since the owning microcycle's exercise lookup is rebuilt from them here.
|
|
122
135
|
*/
|
|
123
136
|
addSession(session) {
|
|
124
137
|
this.sessionsToCreate.push(session);
|
|
125
138
|
this.sessionMap.set(session._id, session);
|
|
139
|
+
const orderedMicrocycle = this.microcyclesInOrder.find(({ microcycle }) => microcycle._id === session.workoutMicrocycleId);
|
|
140
|
+
if (orderedMicrocycle) {
|
|
141
|
+
orderedMicrocycle.exerciseToSessionExercise = this.#mapExercisesToSessionExercises(orderedMicrocycle.microcycle);
|
|
142
|
+
}
|
|
126
143
|
}
|
|
127
144
|
/**
|
|
128
145
|
* Adds a session exercise to the context and updates internal maps.
|
|
@@ -148,6 +165,29 @@ export default class WorkoutMesocyclePlanContext {
|
|
|
148
165
|
this.plannedSessionExerciseCTOs = plannedSessionExerciseCTOs;
|
|
149
166
|
this.#buildSessionCTOMaps(plannedSessionExerciseCTOs);
|
|
150
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* Builds a microcycle's exercise ID -> session exercise lookup.
|
|
170
|
+
*
|
|
171
|
+
* A microcycle's `sessionOrder` is what it holds, so a session no longer listed there is left
|
|
172
|
+
* out. An exercise appearing in more than one session keeps its earliest occurrence.
|
|
173
|
+
*/
|
|
174
|
+
#mapExercisesToSessionExercises(microcycle) {
|
|
175
|
+
const exerciseToSessionExercise = new Map();
|
|
176
|
+
for (const sessionId of microcycle.sessionOrder) {
|
|
177
|
+
const session = this.sessionMap.get(sessionId);
|
|
178
|
+
if (!session)
|
|
179
|
+
continue;
|
|
180
|
+
for (const sessionExerciseId of session.sessionExerciseOrder) {
|
|
181
|
+
const sessionExercise = this.sessionExerciseMap.get(sessionExerciseId);
|
|
182
|
+
if (!sessionExercise)
|
|
183
|
+
continue;
|
|
184
|
+
if (exerciseToSessionExercise.has(sessionExercise.workoutExerciseId))
|
|
185
|
+
continue;
|
|
186
|
+
exerciseToSessionExercise.set(sessionExercise.workoutExerciseId, sessionExercise);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
return exerciseToSessionExercise;
|
|
190
|
+
}
|
|
151
191
|
/**
|
|
152
192
|
* Builds and stores a map of primary muscle group -> ordered exercise CTOs for the mesocycle plan.
|
|
153
193
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkoutMesocyclePlanContext.js","sourceRoot":"","sources":["../../../../src/services/workout/Mesocycle/WorkoutMesocyclePlanContext.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAC;AAK3E,OAAO,4BAA4B,MAAM,yDAAyD,CAAC;AAEnG;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,2BAA2B;
|
|
1
|
+
{"version":3,"file":"WorkoutMesocyclePlanContext.js","sourceRoot":"","sources":["../../../../src/services/workout/Mesocycle/WorkoutMesocyclePlanContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,12 +54,20 @@ export default class WorkoutMesocyclePlanContext {
|
|
|
54
54
|
|
|
55
55
|
public readonly microcyclesToCreate: WorkoutMicrocycle[] = [];
|
|
56
56
|
/**
|
|
57
|
-
* All microcycles for this mesocycle in chronological order.
|
|
57
|
+
* All microcycles for this mesocycle in chronological order, each with the exercises it holds.
|
|
58
58
|
*
|
|
59
59
|
* This includes any existing microcycles (filtered to the target mesocycle) and
|
|
60
60
|
* all newly generated microcycles.
|
|
61
|
+
*
|
|
62
|
+
* `exerciseToSessionExercise` maps exercise ID to the session exercise that exercise was given
|
|
63
|
+
* in the microcycle, and is kept current as sessions are added. It holds nothing for an exercise
|
|
64
|
+
* the microcycle skips, and includes recovery entries since consumers differ on how they treat
|
|
65
|
+
* them.
|
|
61
66
|
*/
|
|
62
|
-
public readonly microcyclesInOrder:
|
|
67
|
+
public readonly microcyclesInOrder: {
|
|
68
|
+
microcycle: WorkoutMicrocycle;
|
|
69
|
+
exerciseToSessionExercise: Map<UUID, WorkoutSessionExercise>;
|
|
70
|
+
}[] = [];
|
|
63
71
|
public readonly sessionsToCreate: WorkoutSession[] = [];
|
|
64
72
|
public readonly sessionExercisesToCreate: WorkoutSessionExercise[] = [];
|
|
65
73
|
public readonly setsToCreate: WorkoutSet[] = [];
|
|
@@ -135,7 +143,12 @@ export default class WorkoutMesocyclePlanContext {
|
|
|
135
143
|
const existingMicrocyclesForMesocycle = existingMicrocycles
|
|
136
144
|
.filter((m) => m.workoutMesocycleId === mesocycle._id)
|
|
137
145
|
.sort((a, b) => a.startDate.getTime() - b.startDate.getTime());
|
|
138
|
-
|
|
146
|
+
for (const microcycle of existingMicrocyclesForMesocycle) {
|
|
147
|
+
this.microcyclesInOrder.push({
|
|
148
|
+
microcycle,
|
|
149
|
+
exerciseToSessionExercise: this.#mapExercisesToSessionExercises(microcycle)
|
|
150
|
+
});
|
|
151
|
+
}
|
|
139
152
|
}
|
|
140
153
|
|
|
141
154
|
/**
|
|
@@ -143,15 +156,27 @@ export default class WorkoutMesocyclePlanContext {
|
|
|
143
156
|
*/
|
|
144
157
|
public addMicrocycle(toCreate: WorkoutMicrocycle): void {
|
|
145
158
|
this.microcyclesToCreate.push(toCreate);
|
|
146
|
-
this.microcyclesInOrder.push(toCreate);
|
|
159
|
+
this.microcyclesInOrder.push({ microcycle: toCreate, exerciseToSessionExercise: new Map() });
|
|
147
160
|
}
|
|
148
161
|
|
|
149
162
|
/**
|
|
150
163
|
* Adds a session to the context and updates internal maps.
|
|
164
|
+
*
|
|
165
|
+
* Call this once the session's `sessionExerciseOrder` is filled and its session exercises have
|
|
166
|
+
* been added, since the owning microcycle's exercise lookup is rebuilt from them here.
|
|
151
167
|
*/
|
|
152
168
|
public addSession(session: WorkoutSession): void {
|
|
153
169
|
this.sessionsToCreate.push(session);
|
|
154
170
|
this.sessionMap.set(session._id, session);
|
|
171
|
+
|
|
172
|
+
const orderedMicrocycle = this.microcyclesInOrder.find(
|
|
173
|
+
({ microcycle }) => microcycle._id === session.workoutMicrocycleId
|
|
174
|
+
);
|
|
175
|
+
if (orderedMicrocycle) {
|
|
176
|
+
orderedMicrocycle.exerciseToSessionExercise = this.#mapExercisesToSessionExercises(
|
|
177
|
+
orderedMicrocycle.microcycle
|
|
178
|
+
);
|
|
179
|
+
}
|
|
155
180
|
}
|
|
156
181
|
|
|
157
182
|
/**
|
|
@@ -181,6 +206,32 @@ export default class WorkoutMesocyclePlanContext {
|
|
|
181
206
|
this.#buildSessionCTOMaps(plannedSessionExerciseCTOs);
|
|
182
207
|
}
|
|
183
208
|
|
|
209
|
+
/**
|
|
210
|
+
* Builds a microcycle's exercise ID -> session exercise lookup.
|
|
211
|
+
*
|
|
212
|
+
* A microcycle's `sessionOrder` is what it holds, so a session no longer listed there is left
|
|
213
|
+
* out. An exercise appearing in more than one session keeps its earliest occurrence.
|
|
214
|
+
*/
|
|
215
|
+
#mapExercisesToSessionExercises(
|
|
216
|
+
microcycle: WorkoutMicrocycle
|
|
217
|
+
): Map<UUID, WorkoutSessionExercise> {
|
|
218
|
+
const exerciseToSessionExercise = new Map<UUID, WorkoutSessionExercise>();
|
|
219
|
+
|
|
220
|
+
for (const sessionId of microcycle.sessionOrder) {
|
|
221
|
+
const session = this.sessionMap.get(sessionId);
|
|
222
|
+
if (!session) continue;
|
|
223
|
+
|
|
224
|
+
for (const sessionExerciseId of session.sessionExerciseOrder) {
|
|
225
|
+
const sessionExercise = this.sessionExerciseMap.get(sessionExerciseId);
|
|
226
|
+
if (!sessionExercise) continue;
|
|
227
|
+
if (exerciseToSessionExercise.has(sessionExercise.workoutExerciseId)) continue;
|
|
228
|
+
exerciseToSessionExercise.set(sessionExercise.workoutExerciseId, sessionExercise);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
return exerciseToSessionExercise;
|
|
233
|
+
}
|
|
234
|
+
|
|
184
235
|
/**
|
|
185
236
|
* Builds and stores a map of primary muscle group -> ordered exercise CTOs for the mesocycle plan.
|
|
186
237
|
*
|
|
@@ -12,7 +12,7 @@ export default class WorkoutMicrocycleService {
|
|
|
12
12
|
*/
|
|
13
13
|
static generateSessionsForMicrocycle({ context, microcycleIndex, targetRir, isDeloadMicrocycle }) {
|
|
14
14
|
const mesocycle = context.mesocycle;
|
|
15
|
-
const microcycle = context.microcyclesInOrder[microcycleIndex];
|
|
15
|
+
const { microcycle } = context.microcyclesInOrder[microcycleIndex];
|
|
16
16
|
if (!context.plannedSessionExerciseCTOs) {
|
|
17
17
|
throw new Error('WorkoutMesocyclePlanContext.plannedSessionExerciseCTOs is not initialized. This should be set during mesocycle planning.');
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkoutMicrocycle.service.js","sourceRoot":"","sources":["../../../../src/services/workout/Microcycle/WorkoutMicrocycle.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,sBAAsB,MAAM,wCAAwC,CAAC;AAE5E,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AACzE,OAAO,4BAA4B,MAAM,yDAAyD,CAAC;AAEnG;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,wBAAwB;IAC3C;;OAEG;IACH,MAAM,CAAC,6BAA6B,CAAC,EACnC,OAAO,EACP,eAAe,EACf,SAAS,EACT,kBAAkB,EAMnB;QACC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,MAAM,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"WorkoutMicrocycle.service.js","sourceRoot":"","sources":["../../../../src/services/workout/Microcycle/WorkoutMicrocycle.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@ export default class WorkoutMicrocycleService {
|
|
|
26
26
|
isDeloadMicrocycle: boolean;
|
|
27
27
|
}): void {
|
|
28
28
|
const mesocycle = context.mesocycle;
|
|
29
|
-
const microcycle = context.microcyclesInOrder[microcycleIndex];
|
|
29
|
+
const { microcycle } = context.microcyclesInOrder[microcycleIndex];
|
|
30
30
|
|
|
31
31
|
if (!context.plannedSessionExerciseCTOs) {
|
|
32
32
|
throw new Error(
|
|
@@ -111,7 +111,7 @@ export default class WorkoutSessionService {
|
|
|
111
111
|
*/
|
|
112
112
|
static generateSession({ context, microcycleIndex, sessionIndex, sessionStartDate, sessionExerciseList, targetRir, isDeloadMicrocycle, setPlan }) {
|
|
113
113
|
const mesocycle = context.mesocycle;
|
|
114
|
-
const microcycle = context.microcyclesInOrder[microcycleIndex];
|
|
114
|
+
const { microcycle } = context.microcyclesInOrder[microcycleIndex];
|
|
115
115
|
const resolvedSetPlan = setPlan;
|
|
116
116
|
// Create session
|
|
117
117
|
const session = WorkoutSessionSchema.parse({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkoutSession.service.js","sourceRoot":"","sources":["../../../../src/services/workout/Session/WorkoutSession.service.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AAEpF,OAAO,EAAE,4BAA4B,EAAE,MAAM,sDAAsD,CAAC;AAGpG,OAAO,iBAAiB,MAAM,8BAA8B,CAAC;AAC7D,OAAO,iBAAiB,MAAM,mCAAmC,CAAC;AAElE;;GAEG;AACH,MAAM,CAAN,IAAY,wBAIX;AAJD,WAAY,wBAAwB;IAClC,uEAA2C,CAAA;IAC3C,6FAAiE,CAAA;IACjE,uFAA2D,CAAA;AAC7D,CAAC,EAJW,wBAAwB,KAAxB,wBAAwB,QAInC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAqB;IACxC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,OAAuB;QACxC,OAAO,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAuB;QAC5C,OAAO,iBAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,OAAuB;QACnC,OAAO,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,oBAAoB,CACzB,UAAgD,EAChD,SAA8C,EAC9C,kBAAwD,EACxD,2BAA8D;QAE9D,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAC7B,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAC5B,IAAI,SAAS,CAAC,SAAS,IAAI,IAAI;YAAE,OAAO,wBAAwB,CAAC,mBAAmB,CAAC;QACrF,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC;YACnE,OAAO,wBAAwB,CAAC,8BAA8B,CAAC;QACjE,CAAC;QACD,IAAI,2BAA2B,IAAI,CAAC,2BAA2B,CAAC,QAAQ,EAAE,CAAC;YACzE,OAAO,wBAAwB,CAAC,2BAA2B,CAAC;QAC9D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,wBAAwB,CAC7B,QAA0B,EAC1B,kBAAqD,EACrD,MAA6B;QAE7B,IAAI,iBAAiB,GAA0B,IAAI,CAAC;QACpD,IAAI,aAAa,GAA0B,IAAI,CAAC;QAEhD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,QAAQ;gBAAE,SAAS;YAE/B,IAAI,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,CAAC;gBACpE,IAAI,CAAC,iBAAiB;oBAAE,iBAAiB,GAAG,OAAO,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa;oBAAE,aAAa,GAAG,OAAO,CAAC;YAC9C,CAAC;YACD,IAAI,iBAAiB,IAAI,aAAa;gBAAE,MAAM;QAChD,CAAC;QAED,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,EACrB,OAAO,EACP,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,EACT,kBAAkB,EAClB,OAAO,EAUR;QACC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,MAAM,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"WorkoutSession.service.js","sourceRoot":"","sources":["../../../../src/services/workout/Session/WorkoutSession.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -147,7 +147,7 @@ export default class WorkoutSessionService {
|
|
|
147
147
|
setPlan: { exerciseIdToSetCount: Map<UUID, number>; recoveryExerciseIds: Set<UUID> };
|
|
148
148
|
}): void {
|
|
149
149
|
const mesocycle = context.mesocycle;
|
|
150
|
-
const microcycle = context.microcyclesInOrder[microcycleIndex];
|
|
150
|
+
const { microcycle } = context.microcyclesInOrder[microcycleIndex];
|
|
151
151
|
|
|
152
152
|
const resolvedSetPlan = setPlan;
|
|
153
153
|
|
|
@@ -1 +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;
|
|
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;CAgH7C"}
|
|
@@ -64,71 +64,36 @@ export default class WorkoutSetService {
|
|
|
64
64
|
(set.rir != null || set.plannedRir == null));
|
|
65
65
|
}
|
|
66
66
|
/**
|
|
67
|
-
* Finds
|
|
67
|
+
* Finds the sets an exercise was last programmed for, to use for autoregulation.
|
|
68
68
|
* Returns all sets in order so surplus can be averaged across the full exercise performance.
|
|
69
69
|
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
70
|
+
* Walks backward from the microcycle before `microcycleIndex` and returns the first entry for
|
|
71
|
+
* the exercise that holds sets, so an exercise missing from the immediately preceding microcycle
|
|
72
|
+
* progresses from the most recent microcycle that has it rather than resetting.
|
|
73
|
+
* Recovery entries are skipped so a deliberate volume reduction does not ratchet progression down.
|
|
72
74
|
*
|
|
73
|
-
* Returns an empty array
|
|
74
|
-
*
|
|
75
|
-
* inconsistent with the mesocycle plan.
|
|
75
|
+
* Returns an empty array when the exercise has no non-recovery history earlier in the mesocycle,
|
|
76
|
+
* which puts the caller on the calibration path.
|
|
76
77
|
*
|
|
77
|
-
* @throws {Error} If the session
|
|
78
|
+
* @throws {Error} If a set referenced by the session exercise is missing from the context.
|
|
78
79
|
*/
|
|
79
80
|
static #findPreviousSets(context, exerciseId, microcycleIndex) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
87
|
-
// Exercise-to-session mapping is fixed for the mesocycle — look up directly
|
|
88
|
-
const sessionIndex = context.exerciseIdToSessionIndex?.get(exerciseId);
|
|
89
|
-
if (sessionIndex == null) {
|
|
90
|
-
throw new Error(`Exercise ${exerciseId} has no session mapping in the mesocycle plan`);
|
|
91
|
-
}
|
|
92
|
-
const sessionId = previousMicrocycle.sessionOrder[sessionIndex];
|
|
93
|
-
if (!sessionId) {
|
|
94
|
-
// The previous microcycle may have fewer sessions than the plan (e.g. pruned
|
|
95
|
-
// during early deload). Treat as missing history rather than a structural error.
|
|
96
|
-
return [];
|
|
97
|
-
}
|
|
98
|
-
const session = context.sessionMap.get(sessionId);
|
|
99
|
-
if (!session) {
|
|
100
|
-
throw new Error(`Session ${sessionId} not found in context`);
|
|
101
|
-
}
|
|
102
|
-
// Exercise order within a session is consistent — find the index from the plan
|
|
103
|
-
const plannedCTOs = context.plannedSessionExerciseCTOs?.[sessionIndex];
|
|
104
|
-
if (!plannedCTOs) {
|
|
105
|
-
throw new Error(`No planned CTOs for session index ${sessionIndex}`);
|
|
106
|
-
}
|
|
107
|
-
const exerciseIndex = plannedCTOs.findIndex((cto) => cto._id === exerciseId);
|
|
108
|
-
if (exerciseIndex === -1) {
|
|
109
|
-
throw new Error(`Exercise ${exerciseId} not found in planned CTOs for session ${sessionIndex}`);
|
|
110
|
-
}
|
|
111
|
-
const seId = session.sessionExerciseOrder[exerciseIndex];
|
|
112
|
-
if (!seId) {
|
|
113
|
-
throw new Error(`No session exercise at index ${exerciseIndex} in session ${sessionId}`);
|
|
114
|
-
}
|
|
115
|
-
const sessionExercise = context.sessionExerciseMap.get(seId);
|
|
116
|
-
if (!sessionExercise) {
|
|
117
|
-
throw new Error(`Session exercise ${seId} not found in context`);
|
|
118
|
-
}
|
|
119
|
-
if (sessionExercise.setOrder.length === 0) {
|
|
120
|
-
throw new Error(`Session exercise ${seId} for exercise ${exerciseId} has no sets`);
|
|
121
|
-
}
|
|
122
|
-
// Return all sets in order
|
|
123
|
-
const sets = [];
|
|
124
|
-
for (const setId of sessionExercise.setOrder) {
|
|
125
|
-
const set = context.setMap.get(setId);
|
|
126
|
-
if (!set) {
|
|
127
|
-
throw new Error(`Set ${setId} not found in context`);
|
|
81
|
+
for (let index = microcycleIndex - 1; index >= 0; index--) {
|
|
82
|
+
const sessionExercise = context.microcyclesInOrder[index]?.exerciseToSessionExercise.get(exerciseId);
|
|
83
|
+
if (!sessionExercise ||
|
|
84
|
+
sessionExercise.isRecoveryExercise ||
|
|
85
|
+
sessionExercise.setOrder.length === 0) {
|
|
86
|
+
continue;
|
|
128
87
|
}
|
|
129
|
-
|
|
88
|
+
return sessionExercise.setOrder.map((setId) => {
|
|
89
|
+
const set = context.setMap.get(setId);
|
|
90
|
+
if (!set) {
|
|
91
|
+
throw new Error(`Set ${setId} not found in context`);
|
|
92
|
+
}
|
|
93
|
+
return set;
|
|
94
|
+
});
|
|
130
95
|
}
|
|
131
|
-
return
|
|
96
|
+
return [];
|
|
132
97
|
}
|
|
133
98
|
/**
|
|
134
99
|
* Generates the planned reps and weight for a specific set within a session exercise, only
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkoutSet.service.js","sourceRoot":"","sources":["../../../../src/services/workout/Set/WorkoutSet.service.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAmB,MAAM,0CAA0C,CAAC;AAC7F,OAAO,2BAA2B,MAAM,kDAAkD,CAAC;AAC3F,OAAO,sBAAsB,MAAM,wCAAwC,CAAC;AAG5E,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,EAWnB;QACC,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,WAAW,CAAC;QACvD,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,qCAAqC,WAAW,CAAC,GAAG,KAAK,WAAW,CAAC,YAAY,EAAE,CACpF,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAiB,EAAE,CAAC;QAE9B,4EAA4E;QAC5E,gFAAgF;QAChF,MAAM,YAAY,GAChB,eAAe,KAAK,CAAC;YACnB,CAAC,CAAC,WAAW,CAAC,2BAA2B;YACzC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QAExE,kDAAkD;QAClD,+EAA+E;QAC/E,yEAAyE;QACzE,gFAAgF;QAChF,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,GAC9D,sBAAsB,CAAC,uCAAuC,CAAC;YAC7D,QAAQ,EAAE,WAAW;YACrB,WAAW,EAAE,eAAe;YAC5B,SAAS,EAAE,aAAa;YACxB,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;YAC9C,YAAY;SACb,CAAC,CAAC;QAEL,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC;YACvD,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,yBAAyB,CACnE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,WAAW,IAAI,YAAY,EAC/C,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,aAAa,IAAI,cAAc,EACnD,QAAQ,EACR,WAAW,CAAC,QAAQ,EACpB,aAAa,EACb;gBACE,kBAAkB;gBAClB,YAAY;gBACZ,gCAAgC,EAAE,OAAO,CAAC,SAAS,CAAC,gCAAgC;aACrF,CACF,CAAC;YAEF,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC;gBACxC,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,iBAAiB,EAAE,WAAW,CAAC,GAAG;gBAClC,gBAAgB,EAAE,OAAO,CAAC,GAAG;gBAC7B,wBAAwB,EAAE,eAAe,CAAC,GAAG;gBAC7C,WAAW;gBACX,aAAa;gBACb,UAAU,EAAE,SAAS;gBACrB,kBAAkB,EAAE,eAAe,CAAC,kBAAkB;aACvD,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,GAAe;QAChC,OAAO,CACL,GAAG,CAAC,UAAU,IAAI,IAAI;YACtB,GAAG,CAAC,YAAY,IAAI,IAAI;YACxB,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,CAC5C,CAAC;IACJ,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"WorkoutSet.service.js","sourceRoot":"","sources":["../../../../src/services/workout/Set/WorkoutSet.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -114,87 +114,45 @@ export default class WorkoutSetService {
|
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
/**
|
|
117
|
-
* Finds
|
|
117
|
+
* Finds the sets an exercise was last programmed for, to use for autoregulation.
|
|
118
118
|
* Returns all sets in order so surplus can be averaged across the full exercise performance.
|
|
119
119
|
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
120
|
+
* Walks backward from the microcycle before `microcycleIndex` and returns the first entry for
|
|
121
|
+
* the exercise that holds sets, so an exercise missing from the immediately preceding microcycle
|
|
122
|
+
* progresses from the most recent microcycle that has it rather than resetting.
|
|
123
|
+
* Recovery entries are skipped so a deliberate volume reduction does not ratchet progression down.
|
|
122
124
|
*
|
|
123
|
-
* Returns an empty array
|
|
124
|
-
*
|
|
125
|
-
* inconsistent with the mesocycle plan.
|
|
125
|
+
* Returns an empty array when the exercise has no non-recovery history earlier in the mesocycle,
|
|
126
|
+
* which puts the caller on the calibration path.
|
|
126
127
|
*
|
|
127
|
-
* @throws {Error} If the session
|
|
128
|
+
* @throws {Error} If a set referenced by the session exercise is missing from the context.
|
|
128
129
|
*/
|
|
129
130
|
static #findPreviousSets(
|
|
130
131
|
context: WorkoutMesocyclePlanContext,
|
|
131
132
|
exerciseId: UUID,
|
|
132
133
|
microcycleIndex: number
|
|
133
134
|
): WorkoutSet[] {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
const sessionIndex = context.exerciseIdToSessionIndex?.get(exerciseId);
|
|
145
|
-
if (sessionIndex == null) {
|
|
146
|
-
throw new Error(`Exercise ${exerciseId} has no session mapping in the mesocycle plan`);
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
const sessionId = previousMicrocycle.sessionOrder[sessionIndex];
|
|
150
|
-
if (!sessionId) {
|
|
151
|
-
// The previous microcycle may have fewer sessions than the plan (e.g. pruned
|
|
152
|
-
// during early deload). Treat as missing history rather than a structural error.
|
|
153
|
-
return [];
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
const session = context.sessionMap.get(sessionId);
|
|
157
|
-
if (!session) {
|
|
158
|
-
throw new Error(`Session ${sessionId} not found in context`);
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
// Exercise order within a session is consistent — find the index from the plan
|
|
162
|
-
const plannedCTOs = context.plannedSessionExerciseCTOs?.[sessionIndex];
|
|
163
|
-
if (!plannedCTOs) {
|
|
164
|
-
throw new Error(`No planned CTOs for session index ${sessionIndex}`);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
const exerciseIndex = plannedCTOs.findIndex((cto) => cto._id === exerciseId);
|
|
168
|
-
if (exerciseIndex === -1) {
|
|
169
|
-
throw new Error(
|
|
170
|
-
`Exercise ${exerciseId} not found in planned CTOs for session ${sessionIndex}`
|
|
171
|
-
);
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
const seId = session.sessionExerciseOrder[exerciseIndex];
|
|
175
|
-
if (!seId) {
|
|
176
|
-
throw new Error(`No session exercise at index ${exerciseIndex} in session ${sessionId}`);
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
const sessionExercise = context.sessionExerciseMap.get(seId);
|
|
180
|
-
if (!sessionExercise) {
|
|
181
|
-
throw new Error(`Session exercise ${seId} not found in context`);
|
|
182
|
-
}
|
|
135
|
+
for (let index = microcycleIndex - 1; index >= 0; index--) {
|
|
136
|
+
const sessionExercise =
|
|
137
|
+
context.microcyclesInOrder[index]?.exerciseToSessionExercise.get(exerciseId);
|
|
138
|
+
if (
|
|
139
|
+
!sessionExercise ||
|
|
140
|
+
sessionExercise.isRecoveryExercise ||
|
|
141
|
+
sessionExercise.setOrder.length === 0
|
|
142
|
+
) {
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
183
145
|
|
|
184
|
-
|
|
185
|
-
|
|
146
|
+
return sessionExercise.setOrder.map((setId) => {
|
|
147
|
+
const set = context.setMap.get(setId);
|
|
148
|
+
if (!set) {
|
|
149
|
+
throw new Error(`Set ${setId} not found in context`);
|
|
150
|
+
}
|
|
151
|
+
return set;
|
|
152
|
+
});
|
|
186
153
|
}
|
|
187
154
|
|
|
188
|
-
|
|
189
|
-
const sets: WorkoutSet[] = [];
|
|
190
|
-
for (const setId of sessionExercise.setOrder) {
|
|
191
|
-
const set = context.setMap.get(setId);
|
|
192
|
-
if (!set) {
|
|
193
|
-
throw new Error(`Set ${setId} not found in context`);
|
|
194
|
-
}
|
|
195
|
-
sets.push(set);
|
|
196
|
-
}
|
|
197
|
-
return sets;
|
|
155
|
+
return [];
|
|
198
156
|
}
|
|
199
157
|
|
|
200
158
|
/**
|
|
@@ -1 +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;
|
|
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;CAomBjC"}
|
|
@@ -268,43 +268,31 @@ export default class WorkoutVolumePlanningService {
|
|
|
268
268
|
* @param exerciseIds The exercise IDs to search for.
|
|
269
269
|
*/
|
|
270
270
|
static #resolveHistoricalExerciseData(context, microcycleIndex, exerciseIds) {
|
|
271
|
-
let previousMicrocycleIndex = microcycleIndex - 1;
|
|
272
|
-
let previousMicrocycle = context.microcyclesInOrder[previousMicrocycleIndex];
|
|
273
|
-
if (!previousMicrocycle)
|
|
274
|
-
return null;
|
|
275
271
|
const exerciseIdToPrevSessionExercise = new Map();
|
|
276
|
-
const foundExerciseIds = new Set();
|
|
277
272
|
const exercisesThatWerePreviouslyInRecovery = new Set();
|
|
278
|
-
//
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
273
|
+
// Walk backward until every exercise is found or the history runs out
|
|
274
|
+
for (let previousMicrocycleIndex = microcycleIndex - 1; previousMicrocycleIndex >= 0 && exerciseIdToPrevSessionExercise.size < exerciseIds.size; previousMicrocycleIndex--) {
|
|
275
|
+
const previousMicrocycle = context.microcyclesInOrder[previousMicrocycleIndex];
|
|
276
|
+
if (!previousMicrocycle)
|
|
277
|
+
break;
|
|
278
|
+
const { microcycle, exerciseToSessionExercise } = previousMicrocycle;
|
|
279
|
+
// Set counts need logged data, so an incomplete microcycle stops the walk
|
|
280
|
+
const lastSessionId = microcycle.sessionOrder[microcycle.sessionOrder.length - 1];
|
|
281
|
+
if (!context.sessionMap.get(lastSessionId)?.complete) {
|
|
284
282
|
break;
|
|
285
283
|
}
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
284
|
+
for (const exerciseId of exerciseIds) {
|
|
285
|
+
if (exerciseIdToPrevSessionExercise.has(exerciseId))
|
|
286
|
+
continue;
|
|
287
|
+
const sessionExercise = exerciseToSessionExercise.get(exerciseId);
|
|
288
|
+
if (!sessionExercise || sessionExercise.isRecoveryExercise)
|
|
290
289
|
continue;
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
!foundExerciseIds.has(sessionExercise.workoutExerciseId) &&
|
|
296
|
-
!sessionExercise.isRecoveryExercise) {
|
|
297
|
-
exerciseIdToPrevSessionExercise.set(sessionExercise.workoutExerciseId, sessionExercise);
|
|
298
|
-
foundExerciseIds.add(sessionExercise.workoutExerciseId);
|
|
299
|
-
// If we had to go back more than one microcycle, the exercise was in recovery
|
|
300
|
-
if (previousMicrocycleIndex < microcycleIndex - 1) {
|
|
301
|
-
exercisesThatWerePreviouslyInRecovery.add(sessionExercise.workoutExerciseId);
|
|
302
|
-
}
|
|
303
|
-
}
|
|
290
|
+
exerciseIdToPrevSessionExercise.set(exerciseId, sessionExercise);
|
|
291
|
+
// Found further back than one microcycle, so the exercise was in recovery
|
|
292
|
+
if (previousMicrocycleIndex < microcycleIndex - 1) {
|
|
293
|
+
exercisesThatWerePreviouslyInRecovery.add(exerciseId);
|
|
304
294
|
}
|
|
305
295
|
}
|
|
306
|
-
previousMicrocycleIndex = previousMicrocycleIndex - 1;
|
|
307
|
-
previousMicrocycle = context.microcyclesInOrder[previousMicrocycleIndex];
|
|
308
296
|
}
|
|
309
297
|
if (exerciseIdToPrevSessionExercise.size === 0)
|
|
310
298
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkoutVolumePlanning.service.js","sourceRoot":"","sources":["../../../../../src/services/workout/util/VolumePlanning/WorkoutVolumePlanning.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WorkoutVolumePlanning.service.js","sourceRoot":"","sources":["../../../../../src/services/workout/util/VolumePlanning/WorkoutVolumePlanning.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -417,47 +417,37 @@ export default class WorkoutVolumePlanningService {
|
|
|
417
417
|
exerciseIdToPrevSessionExercise: Map<UUID, WorkoutSessionExercise>;
|
|
418
418
|
exercisesThatWerePreviouslyInRecovery: Set<UUID>;
|
|
419
419
|
} | null {
|
|
420
|
-
let previousMicrocycleIndex = microcycleIndex - 1;
|
|
421
|
-
let previousMicrocycle = context.microcyclesInOrder[previousMicrocycleIndex];
|
|
422
|
-
if (!previousMicrocycle) return null;
|
|
423
|
-
|
|
424
420
|
const exerciseIdToPrevSessionExercise = new Map<UUID, WorkoutSessionExercise>();
|
|
425
|
-
const foundExerciseIds = new Set<UUID>();
|
|
426
421
|
const exercisesThatWerePreviouslyInRecovery = new Set<UUID>();
|
|
427
422
|
|
|
428
|
-
//
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
423
|
+
// Walk backward until every exercise is found or the history runs out
|
|
424
|
+
for (
|
|
425
|
+
let previousMicrocycleIndex = microcycleIndex - 1;
|
|
426
|
+
previousMicrocycleIndex >= 0 && exerciseIdToPrevSessionExercise.size < exerciseIds.size;
|
|
427
|
+
previousMicrocycleIndex--
|
|
428
|
+
) {
|
|
429
|
+
const previousMicrocycle = context.microcyclesInOrder[previousMicrocycleIndex];
|
|
430
|
+
if (!previousMicrocycle) break;
|
|
431
|
+
const { microcycle, exerciseToSessionExercise } = previousMicrocycle;
|
|
432
|
+
|
|
433
|
+
// Set counts need logged data, so an incomplete microcycle stops the walk
|
|
434
|
+
const lastSessionId = microcycle.sessionOrder[microcycle.sessionOrder.length - 1];
|
|
435
|
+
if (!context.sessionMap.get(lastSessionId)?.complete) {
|
|
435
436
|
break;
|
|
436
437
|
}
|
|
437
438
|
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
!sessionExercise.isRecoveryExercise
|
|
449
|
-
) {
|
|
450
|
-
exerciseIdToPrevSessionExercise.set(sessionExercise.workoutExerciseId, sessionExercise);
|
|
451
|
-
foundExerciseIds.add(sessionExercise.workoutExerciseId);
|
|
452
|
-
// If we had to go back more than one microcycle, the exercise was in recovery
|
|
453
|
-
if (previousMicrocycleIndex < microcycleIndex - 1) {
|
|
454
|
-
exercisesThatWerePreviouslyInRecovery.add(sessionExercise.workoutExerciseId);
|
|
455
|
-
}
|
|
456
|
-
}
|
|
439
|
+
for (const exerciseId of exerciseIds) {
|
|
440
|
+
if (exerciseIdToPrevSessionExercise.has(exerciseId)) continue;
|
|
441
|
+
|
|
442
|
+
const sessionExercise = exerciseToSessionExercise.get(exerciseId);
|
|
443
|
+
if (!sessionExercise || sessionExercise.isRecoveryExercise) continue;
|
|
444
|
+
|
|
445
|
+
exerciseIdToPrevSessionExercise.set(exerciseId, sessionExercise);
|
|
446
|
+
// Found further back than one microcycle, so the exercise was in recovery
|
|
447
|
+
if (previousMicrocycleIndex < microcycleIndex - 1) {
|
|
448
|
+
exercisesThatWerePreviouslyInRecovery.add(exerciseId);
|
|
457
449
|
}
|
|
458
450
|
}
|
|
459
|
-
previousMicrocycleIndex = previousMicrocycleIndex - 1;
|
|
460
|
-
previousMicrocycle = context.microcyclesInOrder[previousMicrocycleIndex];
|
|
461
451
|
}
|
|
462
452
|
|
|
463
453
|
if (exerciseIdToPrevSessionExercise.size === 0) return null;
|
package/package.json
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"name": "@aneuhold/core-ts-db-lib",
|
|
3
3
|
"author": "Anton G. Neuhold Jr.",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"version": "5.0.
|
|
5
|
+
"version": "5.0.13",
|
|
6
6
|
"description": "A core database library used for personal projects",
|
|
7
|
-
"packageManager": "pnpm@
|
|
7
|
+
"packageManager": "pnpm@11.21.0",
|
|
8
8
|
"type": "module",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"build": "rimraf lib && pnpm build:withoutClean",
|
|
@@ -72,20 +72,20 @@
|
|
|
72
72
|
"Node.js"
|
|
73
73
|
],
|
|
74
74
|
"dependencies": {
|
|
75
|
-
"@aneuhold/core-ts-lib": "^2.4.
|
|
76
|
-
"uuid": "^
|
|
77
|
-
"zod": "^4.
|
|
75
|
+
"@aneuhold/core-ts-lib": "^2.4.8",
|
|
76
|
+
"uuid": "^14.0.1",
|
|
77
|
+
"zod": "^4.4.3"
|
|
78
78
|
},
|
|
79
79
|
"devDependencies": {
|
|
80
|
-
"@aneuhold/local-npm-registry": "^1.0.
|
|
81
|
-
"@aneuhold/main-scripts": "^2.
|
|
82
|
-
"@types/node": "^
|
|
83
|
-
"eslint": "^
|
|
84
|
-
"jsr": "^0.
|
|
85
|
-
"prettier": "^3.
|
|
86
|
-
"rimraf": "^6.1.
|
|
87
|
-
"tsx": "^4.
|
|
80
|
+
"@aneuhold/local-npm-registry": "^1.0.1",
|
|
81
|
+
"@aneuhold/main-scripts": "^2.10.3",
|
|
82
|
+
"@types/node": "^24.13.3",
|
|
83
|
+
"eslint": "^10.8.0",
|
|
84
|
+
"jsr": "^0.14.3",
|
|
85
|
+
"prettier": "^3.9.6",
|
|
86
|
+
"rimraf": "^6.1.3",
|
|
87
|
+
"tsx": "^4.23.9",
|
|
88
88
|
"typescript": "^6.0.3",
|
|
89
|
-
"vitest": "^4.
|
|
89
|
+
"vitest": "^4.1.10"
|
|
90
90
|
}
|
|
91
91
|
}
|