@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.
Files changed (128) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/lib/browser.d.ts +14 -14
  3. package/lib/browser.d.ts.map +1 -1
  4. package/lib/browser.js +12 -12
  5. package/lib/browser.js.map +1 -1
  6. package/lib/browser.ts +14 -14
  7. package/lib/documents/BaseDocument.js +1 -1
  8. package/lib/documents/BaseDocument.js.map +1 -1
  9. package/lib/documents/BaseDocument.ts +1 -1
  10. package/lib/documents/dashboard/Task.d.ts +1 -1
  11. package/lib/documents/dashboard/Task.d.ts.map +1 -1
  12. package/lib/documents/dashboard/Task.ts +1 -1
  13. package/lib/schemas/UUIDSchema.js +1 -1
  14. package/lib/schemas/UUIDSchema.js.map +1 -1
  15. package/lib/schemas/UUIDSchema.ts +1 -1
  16. package/lib/services/{DocumentService.d.ts → Document.service.d.ts} +1 -1
  17. package/lib/services/Document.service.d.ts.map +1 -0
  18. package/lib/services/{DocumentService.js → Document.service.js} +1 -1
  19. package/lib/services/Document.service.js.map +1 -0
  20. package/lib/services/dashboard/Task/{TaskService.d.ts → Task.service.d.ts} +2 -10
  21. package/lib/services/dashboard/Task/Task.service.d.ts.map +1 -0
  22. package/lib/services/dashboard/Task/{TaskService.js → Task.service.js} +8 -8
  23. package/lib/services/dashboard/Task/Task.service.js.map +1 -0
  24. package/lib/services/dashboard/Task/{TaskService.ts → Task.service.ts} +8 -8
  25. package/lib/services/dashboard/Task/{TaskFilterService.d.ts → TaskFilter.service.d.ts} +1 -1
  26. package/lib/services/dashboard/Task/TaskFilter.service.d.ts.map +1 -0
  27. package/lib/services/dashboard/Task/{TaskFilterService.js → TaskFilter.service.js} +1 -1
  28. package/lib/services/dashboard/Task/TaskFilter.service.js.map +1 -0
  29. package/lib/services/dashboard/Task/{TaskRecurrenceService.d.ts → TaskRecurrence.service.d.ts} +2 -9
  30. package/lib/services/dashboard/Task/TaskRecurrence.service.d.ts.map +1 -0
  31. package/lib/services/dashboard/Task/{TaskRecurrenceService.js → TaskRecurrence.service.js} +6 -6
  32. package/lib/services/dashboard/Task/TaskRecurrence.service.js.map +1 -0
  33. package/lib/services/dashboard/Task/{TaskRecurrenceService.ts → TaskRecurrence.service.ts} +5 -8
  34. package/lib/services/dashboard/Task/{TaskSortService.d.ts → TaskSort.service.d.ts} +2 -42
  35. package/lib/services/dashboard/Task/TaskSort.service.d.ts.map +1 -0
  36. package/lib/services/dashboard/Task/{TaskSortService.js → TaskSort.service.js} +12 -12
  37. package/lib/services/dashboard/Task/TaskSort.service.js.map +1 -0
  38. package/lib/services/dashboard/Task/{TaskSortService.ts → TaskSort.service.ts} +11 -11
  39. package/lib/services/workout/EquipmentType/{WorkoutEquipmentTypeService.d.ts → WorkoutEquipmentType.service.d.ts} +1 -1
  40. package/lib/services/workout/EquipmentType/WorkoutEquipmentType.service.d.ts.map +1 -0
  41. package/lib/services/workout/EquipmentType/{WorkoutEquipmentTypeService.js → WorkoutEquipmentType.service.js} +1 -1
  42. package/lib/services/workout/EquipmentType/WorkoutEquipmentType.service.js.map +1 -0
  43. package/lib/services/workout/Exercise/WorkoutExercise.service.d.ts +52 -0
  44. package/lib/services/workout/Exercise/WorkoutExercise.service.d.ts.map +1 -0
  45. package/lib/services/workout/Exercise/{WorkoutExerciseService.js → WorkoutExercise.service.js} +18 -18
  46. package/lib/services/workout/Exercise/WorkoutExercise.service.js.map +1 -0
  47. package/lib/services/workout/Exercise/{WorkoutExerciseService.ts → WorkoutExercise.service.ts} +17 -17
  48. package/lib/services/workout/ExerciseCalibration/{WorkoutExerciseCalibrationService.d.ts → WorkoutExerciseCalibration.service.d.ts} +2 -12
  49. package/lib/services/workout/ExerciseCalibration/WorkoutExerciseCalibration.service.d.ts.map +1 -0
  50. package/lib/services/workout/ExerciseCalibration/{WorkoutExerciseCalibrationService.js → WorkoutExerciseCalibration.service.js} +10 -7
  51. package/lib/services/workout/ExerciseCalibration/WorkoutExerciseCalibration.service.js.map +1 -0
  52. package/lib/services/workout/ExerciseCalibration/{WorkoutExerciseCalibrationService.ts → WorkoutExerciseCalibration.service.ts} +10 -7
  53. package/lib/services/workout/Mesocycle/{WorkoutMesocycleService.d.ts → WorkoutMesocycle.service.d.ts} +3 -41
  54. package/lib/services/workout/Mesocycle/WorkoutMesocycle.service.d.ts.map +1 -0
  55. package/lib/services/workout/Mesocycle/{WorkoutMesocycleService.js → WorkoutMesocycle.service.js} +21 -21
  56. package/lib/services/workout/Mesocycle/WorkoutMesocycle.service.js.map +1 -0
  57. package/lib/services/workout/Mesocycle/{WorkoutMesocycleService.ts → WorkoutMesocycle.service.ts} +21 -21
  58. package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.d.ts +1 -10
  59. package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.d.ts.map +1 -1
  60. package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.js +3 -3
  61. package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.js.map +1 -1
  62. package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.ts +3 -3
  63. package/lib/services/workout/Microcycle/{WorkoutMicrocycleService.d.ts → WorkoutMicrocycle.service.d.ts} +1 -1
  64. package/lib/services/workout/Microcycle/WorkoutMicrocycle.service.d.ts.map +1 -0
  65. package/lib/services/workout/Microcycle/{WorkoutMicrocycleService.js → WorkoutMicrocycle.service.js} +4 -4
  66. package/lib/services/workout/Microcycle/WorkoutMicrocycle.service.js.map +1 -0
  67. package/lib/services/workout/Microcycle/{WorkoutMicrocycleService.ts → WorkoutMicrocycle.service.ts} +3 -3
  68. package/lib/services/workout/Session/{WorkoutSessionService.d.ts → WorkoutSession.service.d.ts} +2 -6
  69. package/lib/services/workout/Session/WorkoutSession.service.d.ts.map +1 -0
  70. package/lib/services/workout/Session/{WorkoutSessionService.js → WorkoutSession.service.js} +5 -5
  71. package/lib/services/workout/Session/WorkoutSession.service.js.map +1 -0
  72. package/lib/services/workout/Session/{WorkoutSessionService.ts → WorkoutSession.service.ts} +4 -4
  73. package/lib/services/workout/SessionExercise/{WorkoutSessionExerciseService.d.ts → WorkoutSessionExercise.service.d.ts} +2 -8
  74. package/lib/services/workout/SessionExercise/WorkoutSessionExercise.service.d.ts.map +1 -0
  75. package/lib/services/workout/SessionExercise/{WorkoutSessionExerciseService.js → WorkoutSessionExercise.service.js} +5 -5
  76. package/lib/services/workout/SessionExercise/WorkoutSessionExercise.service.js.map +1 -0
  77. package/lib/services/workout/SessionExercise/{WorkoutSessionExerciseService.ts → WorkoutSessionExercise.service.ts} +4 -4
  78. package/lib/services/workout/Set/{WorkoutSetService.d.ts → WorkoutSet.service.d.ts} +2 -23
  79. package/lib/services/workout/Set/WorkoutSet.service.d.ts.map +1 -0
  80. package/lib/services/workout/Set/{WorkoutSetService.js → WorkoutSet.service.js} +7 -7
  81. package/lib/services/workout/Set/WorkoutSet.service.js.map +1 -0
  82. package/lib/services/workout/Set/{WorkoutSetService.ts → WorkoutSet.service.ts} +6 -6
  83. package/lib/services/workout/util/SFR/{WorkoutSFRService.d.ts → WorkoutSFR.service.d.ts} +1 -1
  84. package/lib/services/workout/util/SFR/WorkoutSFR.service.d.ts.map +1 -0
  85. package/lib/services/workout/util/SFR/{WorkoutSFRService.js → WorkoutSFR.service.js} +1 -1
  86. package/lib/services/workout/util/SFR/WorkoutSFR.service.js.map +1 -0
  87. package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanning.service.d.ts +53 -0
  88. package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanning.service.d.ts.map +1 -0
  89. package/lib/services/workout/util/VolumePlanning/{WorkoutVolumePlanningService.js → WorkoutVolumePlanning.service.js} +53 -53
  90. package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanning.service.js.map +1 -0
  91. package/lib/services/workout/util/VolumePlanning/{WorkoutVolumePlanningService.ts → WorkoutVolumePlanning.service.ts} +52 -52
  92. package/package.json +4 -4
  93. package/lib/services/DocumentService.d.ts.map +0 -1
  94. package/lib/services/DocumentService.js.map +0 -1
  95. package/lib/services/dashboard/Task/TaskFilterService.d.ts.map +0 -1
  96. package/lib/services/dashboard/Task/TaskFilterService.js.map +0 -1
  97. package/lib/services/dashboard/Task/TaskRecurrenceService.d.ts.map +0 -1
  98. package/lib/services/dashboard/Task/TaskRecurrenceService.js.map +0 -1
  99. package/lib/services/dashboard/Task/TaskService.d.ts.map +0 -1
  100. package/lib/services/dashboard/Task/TaskService.js.map +0 -1
  101. package/lib/services/dashboard/Task/TaskSortService.d.ts.map +0 -1
  102. package/lib/services/dashboard/Task/TaskSortService.js.map +0 -1
  103. package/lib/services/workout/EquipmentType/WorkoutEquipmentTypeService.d.ts.map +0 -1
  104. package/lib/services/workout/EquipmentType/WorkoutEquipmentTypeService.js.map +0 -1
  105. package/lib/services/workout/Exercise/WorkoutExerciseService.d.ts +0 -99
  106. package/lib/services/workout/Exercise/WorkoutExerciseService.d.ts.map +0 -1
  107. package/lib/services/workout/Exercise/WorkoutExerciseService.js.map +0 -1
  108. package/lib/services/workout/ExerciseCalibration/WorkoutExerciseCalibrationService.d.ts.map +0 -1
  109. package/lib/services/workout/ExerciseCalibration/WorkoutExerciseCalibrationService.js.map +0 -1
  110. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.d.ts.map +0 -1
  111. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.js.map +0 -1
  112. package/lib/services/workout/Microcycle/WorkoutMicrocycleService.d.ts.map +0 -1
  113. package/lib/services/workout/Microcycle/WorkoutMicrocycleService.js.map +0 -1
  114. package/lib/services/workout/Session/WorkoutSessionService.d.ts.map +0 -1
  115. package/lib/services/workout/Session/WorkoutSessionService.js.map +0 -1
  116. package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.d.ts.map +0 -1
  117. package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.js.map +0 -1
  118. package/lib/services/workout/Set/WorkoutSetService.d.ts.map +0 -1
  119. package/lib/services/workout/Set/WorkoutSetService.js.map +0 -1
  120. package/lib/services/workout/util/SFR/WorkoutSFRService.d.ts.map +0 -1
  121. package/lib/services/workout/util/SFR/WorkoutSFRService.js.map +0 -1
  122. package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanningService.d.ts +0 -198
  123. package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanningService.d.ts.map +0 -1
  124. package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanningService.js.map +0 -1
  125. /package/lib/services/{DocumentService.ts → Document.service.ts} +0 -0
  126. /package/lib/services/dashboard/Task/{TaskFilterService.ts → TaskFilter.service.ts} +0 -0
  127. /package/lib/services/workout/EquipmentType/{WorkoutEquipmentTypeService.ts → WorkoutEquipmentType.service.ts} +0 -0
  128. /package/lib/services/workout/util/SFR/{WorkoutSFRService.ts → WorkoutSFR.service.ts} +0 -0
@@ -1,10 +1,10 @@
1
1
  import { WorkoutExerciseCalibrationSchema } from '../../../documents/workout/WorkoutExerciseCalibration.js';
2
- /** Divisor used in the NASM 1RM formula: 1RM = (weight × reps / 30.48) + weight */
3
- const NASM_1RM_DIVISOR = 30.48;
4
2
  /**
5
3
  * A service for handling operations related to {@link WorkoutExerciseCalibration}s.
6
4
  */
7
5
  export default class WorkoutExerciseCalibrationService {
6
+ /** Divisor used in the NASM 1RM formula: 1RM = (weight × reps / 30.48) + weight */
7
+ static #NASM_1RM_DIVISOR = 30.48;
8
8
  /**
9
9
  * Calculates the 1 Rep Max using the NASM formula.
10
10
  *
@@ -22,7 +22,7 @@ export default class WorkoutExerciseCalibrationService {
22
22
  * @param reps The number of reps performed.
23
23
  */
24
24
  static get1RMRaw(weight, reps) {
25
- return (weight * reps) / NASM_1RM_DIVISOR + weight;
25
+ return (weight * reps) / this.#NASM_1RM_DIVISOR + weight;
26
26
  }
27
27
  /**
28
28
  * Returns the NASM 1RM formula as a MongoDB aggregation expression.
@@ -34,7 +34,10 @@ export default class WorkoutExerciseCalibrationService {
34
34
  */
35
35
  static get1RMMongoExpr(weightField, repsField) {
36
36
  return {
37
- $add: [{ $divide: [{ $multiply: [weightField, repsField] }, NASM_1RM_DIVISOR] }, weightField]
37
+ $add: [
38
+ { $divide: [{ $multiply: [weightField, repsField] }, this.#NASM_1RM_DIVISOR] },
39
+ weightField
40
+ ]
38
41
  };
39
42
  }
40
43
  /**
@@ -65,7 +68,7 @@ export default class WorkoutExerciseCalibrationService {
65
68
  * @param targetReps The target number of reps.
66
69
  */
67
70
  static getTargetWeightFrom1RM(effective1RM, targetReps) {
68
- const targetPercentage = this.getTargetPercentage(targetReps);
71
+ const targetPercentage = this.#getTargetPercentage(targetReps);
69
72
  return (targetPercentage / 100) * effective1RM;
70
73
  }
71
74
  /**
@@ -112,8 +115,8 @@ export default class WorkoutExerciseCalibrationService {
112
115
  *
113
116
  * @param targetReps The target number of reps.
114
117
  */
115
- static getTargetPercentage(targetReps) {
118
+ static #getTargetPercentage(targetReps) {
116
119
  return 85 - (targetReps - 5) * 2.2;
117
120
  }
118
121
  }
119
- //# sourceMappingURL=WorkoutExerciseCalibrationService.js.map
122
+ //# sourceMappingURL=WorkoutExerciseCalibration.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkoutExerciseCalibration.service.js","sourceRoot":"","sources":["../../../../src/services/workout/ExerciseCalibration/WorkoutExerciseCalibration.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gCAAgC,EAAE,MAAM,0DAA0D,CAAC;AAE5G;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,iCAAiC;IACpD,mFAAmF;IACnF,MAAM,CAAU,iBAAiB,GAAG,KAAK,CAAC;IAE1C;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CAAC,WAAuC;QACnD,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,MAAc,EAAE,IAAY;QAC3C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;IAC3D,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,eAAe,CAAC,WAAmB,EAAE,SAAiB;QAC3D,OAAO;YACL,IAAI,EAAE;gBACJ,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE;gBAC9E,WAAW;aACZ;SACF,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,eAAe,CAAC,WAAuC,EAAE,UAAkB;QAChF,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,sBAAsB,CAAC,YAAoB,EAAE,UAAkB;QACpE,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAC/D,OAAO,CAAC,gBAAgB,GAAG,GAAG,CAAC,GAAG,YAAY,CAAC;IACjD,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,wBAAwB,CAC7B,YAAkC,EAClC,MAAY,EACZ,YAAkB;QAElB,MAAM,eAAe,GAAiC,EAAE,CAAC;QAEzD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,GAAG,CAAC;YACzC,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,IAAI,CAAC;gBAAE,SAAS;YAEvF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YACxE,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAElE,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC;gBACpB,eAAe,CAAC,IAAI,CAClB,gCAAgC,CAAC,KAAK,CAAC;oBACrC,MAAM;oBACN,iBAAiB,EAAE,GAAG,CAAC,GAAG;oBAC1B,MAAM,EAAE,OAAO,CAAC,YAAY;oBAC5B,IAAI,EAAE,OAAO,CAAC,UAAU;oBACxB,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;oBAC9C,YAAY;oBACZ,sBAAsB,EAAE,OAAO,CAAC,GAAG;iBACpC,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,oBAAoB,CAAC,UAAkB;QAC5C,OAAO,EAAE,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IACrC,CAAC"}
@@ -3,13 +3,13 @@ import type { WorkoutExerciseCTO } from '../../../ctos/workout/WorkoutExerciseCT
3
3
  import type { WorkoutExerciseCalibration } from '../../../documents/workout/WorkoutExerciseCalibration.js';
4
4
  import { WorkoutExerciseCalibrationSchema } from '../../../documents/workout/WorkoutExerciseCalibration.js';
5
5
 
6
- /** Divisor used in the NASM 1RM formula: 1RM = (weight × reps / 30.48) + weight */
7
- const NASM_1RM_DIVISOR = 30.48;
8
-
9
6
  /**
10
7
  * A service for handling operations related to {@link WorkoutExerciseCalibration}s.
11
8
  */
12
9
  export default class WorkoutExerciseCalibrationService {
10
+ /** Divisor used in the NASM 1RM formula: 1RM = (weight × reps / 30.48) + weight */
11
+ static readonly #NASM_1RM_DIVISOR = 30.48;
12
+
13
13
  /**
14
14
  * Calculates the 1 Rep Max using the NASM formula.
15
15
  *
@@ -28,7 +28,7 @@ export default class WorkoutExerciseCalibrationService {
28
28
  * @param reps The number of reps performed.
29
29
  */
30
30
  static get1RMRaw(weight: number, reps: number): number {
31
- return (weight * reps) / NASM_1RM_DIVISOR + weight;
31
+ return (weight * reps) / this.#NASM_1RM_DIVISOR + weight;
32
32
  }
33
33
 
34
34
  /**
@@ -41,7 +41,10 @@ export default class WorkoutExerciseCalibrationService {
41
41
  */
42
42
  static get1RMMongoExpr(weightField: string, repsField: string) {
43
43
  return {
44
- $add: [{ $divide: [{ $multiply: [weightField, repsField] }, NASM_1RM_DIVISOR] }, weightField]
44
+ $add: [
45
+ { $divide: [{ $multiply: [weightField, repsField] }, this.#NASM_1RM_DIVISOR] },
46
+ weightField
47
+ ]
45
48
  };
46
49
  }
47
50
 
@@ -74,7 +77,7 @@ export default class WorkoutExerciseCalibrationService {
74
77
  * @param targetReps The target number of reps.
75
78
  */
76
79
  static getTargetWeightFrom1RM(effective1RM: number, targetReps: number): number {
77
- const targetPercentage = this.getTargetPercentage(targetReps);
80
+ const targetPercentage = this.#getTargetPercentage(targetReps);
78
81
  return (targetPercentage / 100) * effective1RM;
79
82
  }
80
83
 
@@ -132,7 +135,7 @@ export default class WorkoutExerciseCalibrationService {
132
135
  *
133
136
  * @param targetReps The target number of reps.
134
137
  */
135
- private static getTargetPercentage(targetReps: number): number {
138
+ static #getTargetPercentage(targetReps: number): number {
136
139
  return 85 - (targetReps - 5) * 2.2;
137
140
  }
138
141
  }
@@ -6,24 +6,13 @@ import type { WorkoutMicrocycle } from '../../../documents/workout/WorkoutMicroc
6
6
  import type { WorkoutSession } from '../../../documents/workout/WorkoutSession.js';
7
7
  import type { WorkoutSessionExercise } from '../../../documents/workout/WorkoutSessionExercise.js';
8
8
  import type { WorkoutSet } from '../../../documents/workout/WorkoutSet.js';
9
- import type { DocumentOperations } from '../../DocumentService.js';
9
+ import type { DocumentOperations } from '../../Document.service.js';
10
10
  import type { WorkoutDeloadRecommendation } from './WorkoutMesocycleService.types.js';
11
11
  /**
12
12
  * A service for handling operations related to {@link WorkoutMesocycle}s.
13
13
  */
14
14
  export default class WorkoutMesocycleService {
15
- /** Minimum microcycle index (0-based) before deload detection is active. */
16
- private static readonly MIN_MICROCYCLE_INDEX_FOR_DELOAD;
17
- /** Recovery ratio above which a deload is Recommended. */
18
- private static readonly RECOVERY_RATIO_RECOMMENDED;
19
- /** Recovery ratio at or above which a deload is Suggested. */
20
- private static readonly RECOVERY_RATIO_SUGGESTED;
21
- /** Set surplus at or below which a performance drop is counted. */
22
- private static readonly PERFORMANCE_DROP_SURPLUS_THRESHOLD;
23
- /** Number of consecutive performance drops needed to trigger the rule. */
24
- private static readonly CONSECUTIVE_DROPS_REQUIRED;
25
- /** Number of exercises with consecutive drops needed for Recommended severity. */
26
- private static readonly EXERCISES_WITH_DROPS_FOR_RECOMMENDED;
15
+ #private;
27
16
  /**
28
17
  * Generates or updates the workout plan for a mesocycle.
29
18
  *
@@ -110,32 +99,5 @@ export default class WorkoutMesocycleService {
110
99
  * needed data.
111
100
  */
112
101
  static shouldTriggerEarlyDeload(mesocycle: WorkoutMesocycle, exerciseCTOs: WorkoutExerciseCTO[], currentMicrocycleId: UUID, existingMicrocycles: WorkoutMicrocycle[], existingSessions: WorkoutSession[], existingSessionExercises: WorkoutSessionExercise[], existingSets: WorkoutSet[]): WorkoutDeloadRecommendation;
113
- /**
114
- * Checks whether the ratio of muscle groups in recovery mode exceeds the
115
- * deload thresholds. Derives the trained muscle group list and per-exercise
116
- * muscle group mapping from the exercise map built by
117
- * {@link WorkoutMesocyclePlanContext}.
118
- *
119
- * @param recentSessionExercises Session exercises from the last 2 microcycles.
120
- * @param exerciseMap Map of exercise ID to exercise (from context).
121
- */
122
- private static evaluateRecoverySessionThreshold;
123
- /**
124
- * Checks whether exercises show consecutive performance drops (negative set
125
- * surplus) across recent session exercises. Uses the context's set map for
126
- * O(1) set lookups instead of building a local map.
127
- *
128
- * @param recentSessionExercises Session exercises from the last 2 microcycles.
129
- * @param setMap Map of set ID to set (from context).
130
- */
131
- private static evaluateConsecutivePerformanceDrops;
132
- /**
133
- * Cleans up incomplete microcycles and their associated documents.
134
- *
135
- * Finds the first microcycle where the last session is not complete, validates that it
136
- * hasn't started (first session incomplete), and returns IDs of all documents that should
137
- * be deleted (microcycles from that point forward and all their associated data).
138
- */
139
- private static cleanUpIncompleteMicrocycles;
140
102
  }
141
- //# sourceMappingURL=WorkoutMesocycleService.d.ts.map
103
+ //# sourceMappingURL=WorkoutMesocycle.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkoutMesocycle.service.d.ts","sourceRoot":"","sources":["../../../../src/services/workout/Mesocycle/WorkoutMesocycle.service.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { DateService } from '@aneuhold/core-ts-lib';
2
2
  import { CycleType } from '../../../documents/workout/WorkoutMesocycle.js';
3
3
  import { WorkoutMicrocycleSchema } from '../../../documents/workout/WorkoutMicrocycle.js';
4
- import WorkoutMicrocycleService from '../Microcycle/WorkoutMicrocycleService.js';
5
- import WorkoutSessionExerciseService from '../SessionExercise/WorkoutSessionExerciseService.js';
4
+ import WorkoutMicrocycleService from '../Microcycle/WorkoutMicrocycle.service.js';
5
+ import WorkoutSessionExerciseService from '../SessionExercise/WorkoutSessionExercise.service.js';
6
6
  import WorkoutMesocyclePlanContext from './WorkoutMesocyclePlanContext.js';
7
7
  import { WorkoutDeloadSeverity, WorkoutDeloadTriggerRule } from './WorkoutMesocycleService.types.js';
8
8
  /**
@@ -10,17 +10,17 @@ import { WorkoutDeloadSeverity, WorkoutDeloadTriggerRule } from './WorkoutMesocy
10
10
  */
11
11
  export default class WorkoutMesocycleService {
12
12
  /** Minimum microcycle index (0-based) before deload detection is active. */
13
- static MIN_MICROCYCLE_INDEX_FOR_DELOAD = 2;
13
+ static #MIN_MICROCYCLE_INDEX_FOR_DELOAD = 2;
14
14
  /** Recovery ratio above which a deload is Recommended. */
15
- static RECOVERY_RATIO_RECOMMENDED = 0.5;
15
+ static #RECOVERY_RATIO_RECOMMENDED = 0.5;
16
16
  /** Recovery ratio at or above which a deload is Suggested. */
17
- static RECOVERY_RATIO_SUGGESTED = 0.4;
17
+ static #RECOVERY_RATIO_SUGGESTED = 0.4;
18
18
  /** Set surplus at or below which a performance drop is counted. */
19
- static PERFORMANCE_DROP_SURPLUS_THRESHOLD = -3;
19
+ static #PERFORMANCE_DROP_SURPLUS_THRESHOLD = -3;
20
20
  /** Number of consecutive performance drops needed to trigger the rule. */
21
- static CONSECUTIVE_DROPS_REQUIRED = 2;
21
+ static #CONSECUTIVE_DROPS_REQUIRED = 2;
22
22
  /** Number of exercises with consecutive drops needed for Recommended severity. */
23
- static EXERCISES_WITH_DROPS_FOR_RECOMMENDED = 2;
23
+ static #EXERCISES_WITH_DROPS_FOR_RECOMMENDED = 2;
24
24
  /**
25
25
  * Generates or updates the workout plan for a mesocycle.
26
26
  *
@@ -57,7 +57,7 @@ export default class WorkoutMesocycleService {
57
57
  }
58
58
  }
59
59
  // Clean up incomplete microcycles before creating context
60
- const cleanupResult = this.cleanUpIncompleteMicrocycles(mesocycle, existingMicrocycles, existingSessions, existingSessionExercises, existingSets);
60
+ const cleanupResult = this.#cleanUpIncompleteMicrocycles(mesocycle, existingMicrocycles, existingSessions, existingSessionExercises, existingSets);
61
61
  // Filter out documents that will be deleted
62
62
  const cleanMicrocycles = existingMicrocycles.filter((m) => !cleanupResult.microcyclesToDelete.includes(m._id));
63
63
  const cleanSessions = existingSessions.filter((s) => !cleanupResult.sessionsToDelete.includes(s._id));
@@ -259,7 +259,7 @@ export default class WorkoutMesocycleService {
259
259
  // Find current microcycle index
260
260
  const currentMicrocycleIndex = context.microcyclesInOrder.findIndex((mc) => mc._id === currentMicrocycleId);
261
261
  // Guard: don't trigger before enough microcycles have been completed
262
- if (currentMicrocycleIndex < this.MIN_MICROCYCLE_INDEX_FOR_DELOAD) {
262
+ if (currentMicrocycleIndex < this.#MIN_MICROCYCLE_INDEX_FOR_DELOAD) {
263
263
  return noDeload;
264
264
  }
265
265
  // Guard: don't suggest a deload if already on the deload microcycle
@@ -279,13 +279,13 @@ export default class WorkoutMesocycleService {
279
279
  let recoverySeverity = WorkoutDeloadSeverity.None;
280
280
  let performanceSeverity = WorkoutDeloadSeverity.None;
281
281
  // --- Rule 1: Recovery Session Threshold ---
282
- const recoveryResult = this.evaluateRecoverySessionThreshold(recentSessionExercises, context.exerciseMap);
282
+ const recoveryResult = this.#evaluateRecoverySessionThreshold(recentSessionExercises, context.exerciseMap);
283
283
  if (recoveryResult !== WorkoutDeloadSeverity.None) {
284
284
  triggeredRules.push(WorkoutDeloadTriggerRule.RecoverySessionThreshold);
285
285
  recoverySeverity = recoveryResult;
286
286
  }
287
287
  // --- Rule 2: Consecutive Performance Drops ---
288
- const performanceResult = this.evaluateConsecutivePerformanceDrops(recentSessionExercises, context.setMap);
288
+ const performanceResult = this.#evaluateConsecutivePerformanceDrops(recentSessionExercises, context.setMap);
289
289
  if (performanceResult !== WorkoutDeloadSeverity.None) {
290
290
  triggeredRules.push(WorkoutDeloadTriggerRule.ConsecutivePerformanceDrop);
291
291
  performanceSeverity = performanceResult;
@@ -317,7 +317,7 @@ export default class WorkoutMesocycleService {
317
317
  * @param recentSessionExercises Session exercises from the last 2 microcycles.
318
318
  * @param exerciseMap Map of exercise ID to exercise (from context).
319
319
  */
320
- static evaluateRecoverySessionThreshold(recentSessionExercises, exerciseMap) {
320
+ static #evaluateRecoverySessionThreshold(recentSessionExercises, exerciseMap) {
321
321
  // Derive unique trained muscle groups from all exercises in the plan
322
322
  const trainedMuscleGroupIds = new Set();
323
323
  for (const exercise of exerciseMap.values()) {
@@ -340,10 +340,10 @@ export default class WorkoutMesocycleService {
340
340
  }
341
341
  }
342
342
  const ratio = recoveryMuscleGroups.size / trainedMuscleGroupIds.size;
343
- if (ratio > this.RECOVERY_RATIO_RECOMMENDED) {
343
+ if (ratio > this.#RECOVERY_RATIO_RECOMMENDED) {
344
344
  return WorkoutDeloadSeverity.Recommended;
345
345
  }
346
- if (ratio >= this.RECOVERY_RATIO_SUGGESTED) {
346
+ if (ratio >= this.#RECOVERY_RATIO_SUGGESTED) {
347
347
  return WorkoutDeloadSeverity.Suggested;
348
348
  }
349
349
  return WorkoutDeloadSeverity.None;
@@ -356,7 +356,7 @@ export default class WorkoutMesocycleService {
356
356
  * @param recentSessionExercises Session exercises from the last 2 microcycles.
357
357
  * @param setMap Map of set ID to set (from context).
358
358
  */
359
- static evaluateConsecutivePerformanceDrops(recentSessionExercises, setMap) {
359
+ static #evaluateConsecutivePerformanceDrops(recentSessionExercises, setMap) {
360
360
  // Group session exercises by exercise ID
361
361
  const exerciseGroups = new Map();
362
362
  for (const se of recentSessionExercises) {
@@ -388,13 +388,13 @@ export default class WorkoutMesocycleService {
388
388
  consecutiveDrops = 0;
389
389
  continue;
390
390
  }
391
- if (surplus <= this.PERFORMANCE_DROP_SURPLUS_THRESHOLD) {
391
+ if (surplus <= this.#PERFORMANCE_DROP_SURPLUS_THRESHOLD) {
392
392
  consecutiveDrops++;
393
393
  }
394
394
  else {
395
395
  consecutiveDrops = 0;
396
396
  }
397
- if (consecutiveDrops >= this.CONSECUTIVE_DROPS_REQUIRED) {
397
+ if (consecutiveDrops >= this.#CONSECUTIVE_DROPS_REQUIRED) {
398
398
  hasConsecutiveDrops = true;
399
399
  break;
400
400
  }
@@ -406,7 +406,7 @@ export default class WorkoutMesocycleService {
406
406
  if (exercisesWithDropsCount === 0) {
407
407
  return WorkoutDeloadSeverity.None;
408
408
  }
409
- if (exercisesWithDropsCount >= this.EXERCISES_WITH_DROPS_FOR_RECOMMENDED) {
409
+ if (exercisesWithDropsCount >= this.#EXERCISES_WITH_DROPS_FOR_RECOMMENDED) {
410
410
  return WorkoutDeloadSeverity.Recommended;
411
411
  }
412
412
  return WorkoutDeloadSeverity.Suggested;
@@ -418,7 +418,7 @@ export default class WorkoutMesocycleService {
418
418
  * hasn't started (first session incomplete), and returns IDs of all documents that should
419
419
  * be deleted (microcycles from that point forward and all their associated data).
420
420
  */
421
- static cleanUpIncompleteMicrocycles(mesocycle, existingMicrocycles, existingSessions, existingSessionExercises, existingSets) {
421
+ static #cleanUpIncompleteMicrocycles(mesocycle, existingMicrocycles, existingSessions, existingSessionExercises, existingSets) {
422
422
  const microcyclesToDelete = [];
423
423
  const sessionsToDelete = [];
424
424
  const sessionExercisesToDelete = [];
@@ -483,4 +483,4 @@ export default class WorkoutMesocycleService {
483
483
  return { microcyclesToDelete, sessionsToDelete, sessionExercisesToDelete, setsToDelete };
484
484
  }
485
485
  }
486
- //# sourceMappingURL=WorkoutMesocycleService.js.map
486
+ //# sourceMappingURL=WorkoutMesocycle.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkoutMesocycle.service.js","sourceRoot":"","sources":["../../../../src/services/workout/Mesocycle/WorkoutMesocycle.service.ts"],"names":[],"mappings":"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"}
@@ -9,9 +9,9 @@ import { WorkoutMicrocycleSchema } from '../../../documents/workout/WorkoutMicro
9
9
  import type { WorkoutSession } from '../../../documents/workout/WorkoutSession.js';
10
10
  import type { WorkoutSessionExercise } from '../../../documents/workout/WorkoutSessionExercise.js';
11
11
  import type { WorkoutSet } from '../../../documents/workout/WorkoutSet.js';
12
- import type { DocumentOperations } from '../../DocumentService.js';
13
- import WorkoutMicrocycleService from '../Microcycle/WorkoutMicrocycleService.js';
14
- import WorkoutSessionExerciseService from '../SessionExercise/WorkoutSessionExerciseService.js';
12
+ import type { DocumentOperations } from '../../Document.service.js';
13
+ import WorkoutMicrocycleService from '../Microcycle/WorkoutMicrocycle.service.js';
14
+ import WorkoutSessionExerciseService from '../SessionExercise/WorkoutSessionExercise.service.js';
15
15
  import WorkoutMesocyclePlanContext from './WorkoutMesocyclePlanContext.js';
16
16
  import type { WorkoutDeloadRecommendation } from './WorkoutMesocycleService.types.js';
17
17
  import {
@@ -24,22 +24,22 @@ import {
24
24
  */
25
25
  export default class WorkoutMesocycleService {
26
26
  /** Minimum microcycle index (0-based) before deload detection is active. */
27
- private static readonly MIN_MICROCYCLE_INDEX_FOR_DELOAD = 2;
27
+ static readonly #MIN_MICROCYCLE_INDEX_FOR_DELOAD = 2;
28
28
 
29
29
  /** Recovery ratio above which a deload is Recommended. */
30
- private static readonly RECOVERY_RATIO_RECOMMENDED = 0.5;
30
+ static readonly #RECOVERY_RATIO_RECOMMENDED = 0.5;
31
31
 
32
32
  /** Recovery ratio at or above which a deload is Suggested. */
33
- private static readonly RECOVERY_RATIO_SUGGESTED = 0.4;
33
+ static readonly #RECOVERY_RATIO_SUGGESTED = 0.4;
34
34
 
35
35
  /** Set surplus at or below which a performance drop is counted. */
36
- private static readonly PERFORMANCE_DROP_SURPLUS_THRESHOLD = -3;
36
+ static readonly #PERFORMANCE_DROP_SURPLUS_THRESHOLD = -3;
37
37
 
38
38
  /** Number of consecutive performance drops needed to trigger the rule. */
39
- private static readonly CONSECUTIVE_DROPS_REQUIRED = 2;
39
+ static readonly #CONSECUTIVE_DROPS_REQUIRED = 2;
40
40
 
41
41
  /** Number of exercises with consecutive drops needed for Recommended severity. */
42
- private static readonly EXERCISES_WITH_DROPS_FOR_RECOMMENDED = 2;
42
+ static readonly #EXERCISES_WITH_DROPS_FOR_RECOMMENDED = 2;
43
43
 
44
44
  /**
45
45
  * Generates or updates the workout plan for a mesocycle.
@@ -96,7 +96,7 @@ export default class WorkoutMesocycleService {
96
96
  }
97
97
 
98
98
  // Clean up incomplete microcycles before creating context
99
- const cleanupResult = this.cleanUpIncompleteMicrocycles(
99
+ const cleanupResult = this.#cleanUpIncompleteMicrocycles(
100
100
  mesocycle,
101
101
  existingMicrocycles,
102
102
  existingSessions,
@@ -395,7 +395,7 @@ export default class WorkoutMesocycleService {
395
395
  );
396
396
 
397
397
  // Guard: don't trigger before enough microcycles have been completed
398
- if (currentMicrocycleIndex < this.MIN_MICROCYCLE_INDEX_FOR_DELOAD) {
398
+ if (currentMicrocycleIndex < this.#MIN_MICROCYCLE_INDEX_FOR_DELOAD) {
399
399
  return noDeload;
400
400
  }
401
401
 
@@ -423,7 +423,7 @@ export default class WorkoutMesocycleService {
423
423
  let performanceSeverity = WorkoutDeloadSeverity.None;
424
424
 
425
425
  // --- Rule 1: Recovery Session Threshold ---
426
- const recoveryResult = this.evaluateRecoverySessionThreshold(
426
+ const recoveryResult = this.#evaluateRecoverySessionThreshold(
427
427
  recentSessionExercises,
428
428
  context.exerciseMap
429
429
  );
@@ -433,7 +433,7 @@ export default class WorkoutMesocycleService {
433
433
  }
434
434
 
435
435
  // --- Rule 2: Consecutive Performance Drops ---
436
- const performanceResult = this.evaluateConsecutivePerformanceDrops(
436
+ const performanceResult = this.#evaluateConsecutivePerformanceDrops(
437
437
  recentSessionExercises,
438
438
  context.setMap
439
439
  );
@@ -471,7 +471,7 @@ export default class WorkoutMesocycleService {
471
471
  * @param recentSessionExercises Session exercises from the last 2 microcycles.
472
472
  * @param exerciseMap Map of exercise ID to exercise (from context).
473
473
  */
474
- private static evaluateRecoverySessionThreshold(
474
+ static #evaluateRecoverySessionThreshold(
475
475
  recentSessionExercises: WorkoutSessionExercise[],
476
476
  exerciseMap: ReadonlyMap<UUID, WorkoutExercise>
477
477
  ): WorkoutDeloadSeverity {
@@ -501,10 +501,10 @@ export default class WorkoutMesocycleService {
501
501
 
502
502
  const ratio = recoveryMuscleGroups.size / trainedMuscleGroupIds.size;
503
503
 
504
- if (ratio > this.RECOVERY_RATIO_RECOMMENDED) {
504
+ if (ratio > this.#RECOVERY_RATIO_RECOMMENDED) {
505
505
  return WorkoutDeloadSeverity.Recommended;
506
506
  }
507
- if (ratio >= this.RECOVERY_RATIO_SUGGESTED) {
507
+ if (ratio >= this.#RECOVERY_RATIO_SUGGESTED) {
508
508
  return WorkoutDeloadSeverity.Suggested;
509
509
  }
510
510
  return WorkoutDeloadSeverity.None;
@@ -518,7 +518,7 @@ export default class WorkoutMesocycleService {
518
518
  * @param recentSessionExercises Session exercises from the last 2 microcycles.
519
519
  * @param setMap Map of set ID to set (from context).
520
520
  */
521
- private static evaluateConsecutivePerformanceDrops(
521
+ static #evaluateConsecutivePerformanceDrops(
522
522
  recentSessionExercises: WorkoutSessionExercise[],
523
523
  setMap: ReadonlyMap<UUID, WorkoutSet>
524
524
  ): WorkoutDeloadSeverity {
@@ -561,13 +561,13 @@ export default class WorkoutMesocycleService {
561
561
  continue;
562
562
  }
563
563
 
564
- if (surplus <= this.PERFORMANCE_DROP_SURPLUS_THRESHOLD) {
564
+ if (surplus <= this.#PERFORMANCE_DROP_SURPLUS_THRESHOLD) {
565
565
  consecutiveDrops++;
566
566
  } else {
567
567
  consecutiveDrops = 0;
568
568
  }
569
569
 
570
- if (consecutiveDrops >= this.CONSECUTIVE_DROPS_REQUIRED) {
570
+ if (consecutiveDrops >= this.#CONSECUTIVE_DROPS_REQUIRED) {
571
571
  hasConsecutiveDrops = true;
572
572
  break;
573
573
  }
@@ -582,7 +582,7 @@ export default class WorkoutMesocycleService {
582
582
  return WorkoutDeloadSeverity.None;
583
583
  }
584
584
 
585
- if (exercisesWithDropsCount >= this.EXERCISES_WITH_DROPS_FOR_RECOMMENDED) {
585
+ if (exercisesWithDropsCount >= this.#EXERCISES_WITH_DROPS_FOR_RECOMMENDED) {
586
586
  return WorkoutDeloadSeverity.Recommended;
587
587
  }
588
588
  return WorkoutDeloadSeverity.Suggested;
@@ -595,7 +595,7 @@ export default class WorkoutMesocycleService {
595
595
  * hasn't started (first session incomplete), and returns IDs of all documents that should
596
596
  * be deleted (microcycles from that point forward and all their associated data).
597
597
  */
598
- private static cleanUpIncompleteMicrocycles(
598
+ static #cleanUpIncompleteMicrocycles(
599
599
  mesocycle: WorkoutMesocycle,
600
600
  existingMicrocycles: WorkoutMicrocycle[],
601
601
  existingSessions: WorkoutSession[],
@@ -16,6 +16,7 @@ import type { WorkoutSet } from '../../../documents/workout/WorkoutSet.js';
16
16
  * every method.
17
17
  */
18
18
  export default class WorkoutMesocyclePlanContext {
19
+ #private;
19
20
  mesocycle: WorkoutMesocycle;
20
21
  existingMicrocycles: WorkoutMicrocycle[];
21
22
  existingSessions: WorkoutSession[];
@@ -101,15 +102,5 @@ export default class WorkoutMesocyclePlanContext {
101
102
  * the muscle-group-wide ordering used for set progression.
102
103
  */
103
104
  setPlannedSessionExerciseCTOs(plannedSessionExerciseCTOs: WorkoutExerciseCTO[][]): void;
104
- /**
105
- * Builds and stores a map of primary muscle group -> ordered exercise CTOs for the mesocycle plan.
106
- *
107
- * Also builds a map of exercise ID -> session index for use during session generation.
108
- *
109
- * The ordering is determined by flattening the planned sessions in order, then the exercises within
110
- * each session in order. This allows set progression to be distributed evenly across a muscle group
111
- * for the entire microcycle, even when exercises are split across sessions.
112
- */
113
- private buildSessionCTOMaps;
114
105
  }
115
106
  //# sourceMappingURL=WorkoutMesocyclePlanContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkoutMesocyclePlanContext.d.ts","sourceRoot":"","sources":["../../../../src/services/workout/Mesocycle/WorkoutMesocyclePlanContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkoutMesocyclePlanContext.d.ts","sourceRoot":"","sources":["../../../../src/services/workout/Mesocycle/WorkoutMesocyclePlanContext.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { CycleType } from '../../../documents/workout/WorkoutMesocycle.js';
2
- import WorkoutVolumePlanningService from '../util/VolumePlanning/WorkoutVolumePlanningService.js';
2
+ import WorkoutVolumePlanningService from '../util/VolumePlanning/WorkoutVolumePlanning.service.js';
3
3
  /**
4
4
  * Central shared context for generating or updating a {@link WorkoutMesocycle}.
5
5
  *
@@ -146,7 +146,7 @@ export default class WorkoutMesocyclePlanContext {
146
146
  */
147
147
  setPlannedSessionExerciseCTOs(plannedSessionExerciseCTOs) {
148
148
  this.plannedSessionExerciseCTOs = plannedSessionExerciseCTOs;
149
- this.buildSessionCTOMaps(plannedSessionExerciseCTOs);
149
+ this.#buildSessionCTOMaps(plannedSessionExerciseCTOs);
150
150
  }
151
151
  /**
152
152
  * Builds and stores a map of primary muscle group -> ordered exercise CTOs for the mesocycle plan.
@@ -157,7 +157,7 @@ export default class WorkoutMesocyclePlanContext {
157
157
  * each session in order. This allows set progression to be distributed evenly across a muscle group
158
158
  * for the entire microcycle, even when exercises are split across sessions.
159
159
  */
160
- buildSessionCTOMaps(sessionsToCTOs) {
160
+ #buildSessionCTOMaps(sessionsToCTOs) {
161
161
  const muscleGroupToCTOsMap = new Map();
162
162
  const exerciseIdToSessionIndex = new Map();
163
163
  for (let sessionIndex = 0; sessionIndex < sessionsToCTOs.length; sessionIndex++) {
@@ -1 +1 @@
1
- {"version":3,"file":"WorkoutMesocyclePlanContext.js","sourceRoot":"","sources":["../../../../src/services/workout/Mesocycle/WorkoutMesocyclePlanContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkoutMesocyclePlanContext.js","sourceRoot":"","sources":["../../../../src/services/workout/Mesocycle/WorkoutMesocyclePlanContext.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ import type { WorkoutMicrocycle } from '../../../documents/workout/WorkoutMicroc
12
12
  import type { WorkoutSession } from '../../../documents/workout/WorkoutSession.js';
13
13
  import type { WorkoutSessionExercise } from '../../../documents/workout/WorkoutSessionExercise.js';
14
14
  import type { WorkoutSet } from '../../../documents/workout/WorkoutSet.js';
15
- import WorkoutVolumePlanningService from '../util/VolumePlanning/WorkoutVolumePlanningService.js';
15
+ import WorkoutVolumePlanningService from '../util/VolumePlanning/WorkoutVolumePlanning.service.js';
16
16
 
17
17
  /**
18
18
  * Central shared context for generating or updating a {@link WorkoutMesocycle}.
@@ -178,7 +178,7 @@ export default class WorkoutMesocyclePlanContext {
178
178
  */
179
179
  public setPlannedSessionExerciseCTOs(plannedSessionExerciseCTOs: WorkoutExerciseCTO[][]): void {
180
180
  this.plannedSessionExerciseCTOs = plannedSessionExerciseCTOs;
181
- this.buildSessionCTOMaps(plannedSessionExerciseCTOs);
181
+ this.#buildSessionCTOMaps(plannedSessionExerciseCTOs);
182
182
  }
183
183
 
184
184
  /**
@@ -190,7 +190,7 @@ export default class WorkoutMesocyclePlanContext {
190
190
  * each session in order. This allows set progression to be distributed evenly across a muscle group
191
191
  * for the entire microcycle, even when exercises are split across sessions.
192
192
  */
193
- private buildSessionCTOMaps(sessionsToCTOs: WorkoutExerciseCTO[][]): void {
193
+ #buildSessionCTOMaps(sessionsToCTOs: WorkoutExerciseCTO[][]): void {
194
194
  const muscleGroupToCTOsMap = new Map<UUID, WorkoutExerciseCTO[]>();
195
195
  const exerciseIdToSessionIndex = new Map<UUID, number>();
196
196
 
@@ -22,4 +22,4 @@ export default class WorkoutMicrocycleService {
22
22
  */
23
23
  static distributeExercisesAcrossSessions(sessionCount: number, exerciseCTOs: WorkoutExerciseCTO[]): WorkoutExerciseCTO[][];
24
24
  }
25
- //# sourceMappingURL=WorkoutMicrocycleService.d.ts.map
25
+ //# sourceMappingURL=WorkoutMicrocycle.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkoutMicrocycle.service.d.ts","sourceRoot":"","sources":["../../../../src/services/workout/Microcycle/WorkoutMicrocycle.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AAGtF,OAAO,KAAK,2BAA2B,MAAM,6CAA6C,CAAC;AAI3F;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,wBAAwB;IAC3C;;OAEG;IACH,MAAM,CAAC,6BAA6B,CAAC,EACnC,OAAO,EACP,eAAe,EACf,SAAS,EACT,kBAAkB,EACnB,EAAE;QACD,OAAO,EAAE,2BAA2B,CAAC;QACrC,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,kBAAkB,EAAE,OAAO,CAAC;KAC7B,GAAG,IAAI;IA8DR;;;;;;OAMG;IACH,MAAM,CAAC,iCAAiC,CACtC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,kBAAkB,EAAE,GACjC,kBAAkB,EAAE,EAAE;CAyH1B"}