@aneuhold/core-ts-db-lib 4.1.12 β†’ 4.1.14

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 (58) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/lib/browser.d.ts +11 -8
  3. package/lib/browser.d.ts.map +1 -1
  4. package/lib/browser.js +6 -4
  5. package/lib/browser.js.map +1 -1
  6. package/lib/browser.ts +23 -9
  7. package/lib/ctos/workout/WorkoutMuscleGroupVolumeCTO.d.ts +14 -0
  8. package/lib/ctos/workout/WorkoutMuscleGroupVolumeCTO.d.ts.map +1 -1
  9. package/lib/ctos/workout/WorkoutMuscleGroupVolumeCTO.ts +18 -0
  10. package/lib/documents/workout/README.md +43 -9
  11. package/lib/documents/workout/WorkoutSet.d.ts +8 -0
  12. package/lib/documents/workout/WorkoutSet.d.ts.map +1 -1
  13. package/lib/documents/workout/WorkoutSet.ts +9 -0
  14. package/lib/services/workout/Exercise/WorkoutExerciseService.d.ts +40 -0
  15. package/lib/services/workout/Exercise/WorkoutExerciseService.d.ts.map +1 -1
  16. package/lib/services/workout/Exercise/WorkoutExerciseService.js +134 -1
  17. package/lib/services/workout/Exercise/WorkoutExerciseService.js.map +1 -1
  18. package/lib/services/workout/Exercise/WorkoutExerciseService.ts +204 -1
  19. package/lib/services/workout/ExerciseCalibration/WorkoutExerciseCalibrationService.d.ts +15 -0
  20. package/lib/services/workout/ExerciseCalibration/WorkoutExerciseCalibrationService.d.ts.map +1 -1
  21. package/lib/services/workout/ExerciseCalibration/WorkoutExerciseCalibrationService.js +18 -1
  22. package/lib/services/workout/ExerciseCalibration/WorkoutExerciseCalibrationService.js.map +1 -1
  23. package/lib/services/workout/ExerciseCalibration/WorkoutExerciseCalibrationService.ts +19 -1
  24. package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.d.ts +30 -4
  25. package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.d.ts.map +1 -1
  26. package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.js +58 -4
  27. package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.js.map +1 -1
  28. package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.ts +69 -3
  29. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.d.ts +45 -1
  30. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.d.ts.map +1 -1
  31. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.js +201 -11
  32. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.js.map +1 -1
  33. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.ts +285 -9
  34. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.types.d.ts +33 -0
  35. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.types.d.ts.map +1 -0
  36. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.types.js +24 -0
  37. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.types.js.map +1 -0
  38. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.types.ts +36 -0
  39. package/lib/services/workout/Session/WorkoutSessionService.d.ts.map +1 -1
  40. package/lib/services/workout/Session/WorkoutSessionService.js +1 -11
  41. package/lib/services/workout/Session/WorkoutSessionService.js.map +1 -1
  42. package/lib/services/workout/Session/WorkoutSessionService.ts +1 -17
  43. package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.d.ts +14 -2
  44. package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.d.ts.map +1 -1
  45. package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.js +17 -3
  46. package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.js.map +1 -1
  47. package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.ts +28 -3
  48. package/lib/services/workout/Set/WorkoutSetService.d.ts +17 -5
  49. package/lib/services/workout/Set/WorkoutSetService.d.ts.map +1 -1
  50. package/lib/services/workout/Set/WorkoutSetService.js +83 -16
  51. package/lib/services/workout/Set/WorkoutSetService.js.map +1 -1
  52. package/lib/services/workout/Set/WorkoutSetService.ts +107 -24
  53. package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanningService.d.ts +161 -11
  54. package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanningService.d.ts.map +1 -1
  55. package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanningService.js +364 -127
  56. package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanningService.js.map +1 -1
  57. package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanningService.ts +551 -160
  58. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,42 @@ 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
+ ## πŸ”– [4.1.14] (2026-03-07)
9
+
10
+ ### πŸ—οΈ Changed
11
+
12
+ - Refactored `WorkoutVolumePlanningService` into a cleaner multi-step pipeline with dedicated extracted methods: `getVolumeTargetsForMuscleGroup`, `calculateBaselineSetCounts`, `distributeEvenly`, `resolveHistoricalExerciseData`, `applyHistoricalSetCounts`, `evaluateSfrRecommendations`, `distributeSetsToExercises`, `sessionIsCapped`, `getSessionSetTotal`, and `addSetsToExercise`.
13
+ - `WorkoutMesocyclePlanContext` now exposes `accumulationMicrocycleCount` (total microcycles minus the deload, when applicable).
14
+ - `WorkoutVolumeLandmarkEstimate.estimatedMev` now represents total sets per microcycle for the muscle group, not per session.
15
+ - Default volume constants renamed: `DEFAULT_MEV` β†’ `DEFAULT_MEV_PER_EXERCISE`, `DEFAULT_MRV` β†’ `DEFAULT_MRV_PER_EXERCISE`.
16
+ - Cut cycle baseline progression now targets MAV (midpoint) instead of MRV.
17
+ - MAV for exercises returning from recovery is now distributed evenly across all exercises in the muscle group using floor-based distribution.
18
+ - MRV estimate is no longer hard-capped at `MAX_SETS_PER_MUSCLE_GROUP_PER_SESSION` in `estimateVolumeLandmarks()`.
19
+
20
+ ### πŸ”₯ Removed
21
+
22
+ - Removed `WorkoutVolumePlanningService.evaluateMevProximity()` static method and the associated second-microcycle MEV proximity adjustment logic.
23
+
24
+ ## πŸ”– [4.1.13] (2026-02-28)
25
+
26
+ ### βœ… Added
27
+
28
+ - Added `WorkoutVolumePlanningService` with `estimateVolumeLandmarks()` and `evaluateMevProximity()` static methods for computing MEV/MRV/MAV landmarks from historical mesocycle data and assessing first-microcycle RSM proximity.
29
+ - Added `WorkoutDeloadSeverity` and `WorkoutDeloadTriggerRule` enums, and `WorkoutDeloadRecommendation` type for structured early-deload evaluation.
30
+ - Added `WorkoutMesocycleService.shouldTriggerEarlyDeload()` to detect when recovery session counts or consecutive performance drops warrant an early deload.
31
+ - Added `WorkoutSetService.calculateSetSurplus()` static method computing the signed difference between actual and planned reps/RIR for a single set.
32
+ - Added `WorkoutExerciseService.getTargetWeightFrom1RM()` static method to compute target weight directly from a precomputed effective 1RM.
33
+ - Added `CompletedWorkoutSet` type: a `WorkoutSet` with all nullable fields guaranteed non-null.
34
+ - Added `WorkoutVolumeLandmarkEstimate` type for estimated MEV, MRV, and MAV derived from historical mesocycle volume CTOs.
35
+
36
+ ### πŸ—οΈ Changed
37
+
38
+ - `WorkoutMesocycleService.planMesocycle()` now accepts an optional `volumeCTOs: WorkoutMuscleGroupVolumeCTO[]` parameter to seed volume landmark estimates for the plan.
39
+ - `WorkoutMesocyclePlanContext` now exposes `firstMicrocycleRir`, `progressionInterval`, `skipDeload`, and `muscleGroupToVolumeLandmarkMap`; constructor accepts `volumeCTOs` to populate landmark estimates.
40
+ - `WorkoutExerciseService.calculateTargetRepsAndWeightForFirstSet()` now applies autoregulation: accelerates rep target when surplus β‰₯ 3, holds when βˆ’2 to βˆ’1, and regresses when surplus ≀ βˆ’3.
41
+ - `WorkoutSessionExerciseService` now uses per-exercise previous-microcycle first-set lookup to drive autoregulated progression across all planned microcycles.
42
+ - MEV proximity adjustments from the first microcycle are now applied when generating the second microcycle via `WorkoutVolumePlanningService.evaluateMevProximity()`.
43
+
8
44
  ## πŸ”– [4.1.12] (2026-02-28)
9
45
 
10
46
  ### βœ… Added
@@ -339,6 +375,8 @@ Updated dependency: now requires `@aneuhold/core-ts-lib@^2.3.11`.
339
375
 
340
376
  <!-- Link References -->
341
377
 
378
+ [4.1.14]: https://github.com/aneuhold/ts-libs/compare/core-ts-db-lib-v4.1.13...core-ts-db-lib-v4.1.14
379
+ [4.1.13]: https://github.com/aneuhold/ts-libs/compare/core-ts-db-lib-v4.1.12...core-ts-db-lib-v4.1.13
342
380
  [4.1.12]: https://github.com/aneuhold/ts-libs/compare/core-ts-db-lib-v4.1.11...core-ts-db-lib-v4.1.12
343
381
  [4.1.11]: https://github.com/aneuhold/ts-libs/compare/core-ts-db-lib-v4.1.10...core-ts-db-lib-v4.1.11
344
382
  [4.1.10]: https://github.com/aneuhold/ts-libs/compare/core-ts-db-lib-v4.1.9...core-ts-db-lib-v4.1.10
package/lib/browser.d.ts CHANGED
@@ -1,3 +1,7 @@
1
+ import type { WorkoutExerciseCTO } from './ctos/workout/WorkoutExerciseCTO.js';
2
+ import { WorkoutExerciseCTOSchema } from './ctos/workout/WorkoutExerciseCTO.js';
3
+ import type { WorkoutMuscleGroupVolumeCTO, WorkoutVolumeLandmarkEstimate } from './ctos/workout/WorkoutMuscleGroupVolumeCTO.js';
4
+ import { WorkoutMuscleGroupVolumeCTOSchema } from './ctos/workout/WorkoutMuscleGroupVolumeCTO.js';
1
5
  import type { BaseDocument, BaseDocumentWithType, BaseDocumentWithUpdatedAndCreatedDates } from './documents/BaseDocument.js';
2
6
  import { BaseDocumentSchema, BaseDocumentWithTypeSchema, BaseDocumentWithUpdatedAndCreatedDatesSchema } from './documents/BaseDocument.js';
3
7
  import type { ApiKey } from './documents/common/ApiKey.js';
@@ -18,12 +22,6 @@ import type { ExerciseProperty, WorkoutExercise } from './documents/workout/Work
18
22
  import { ExerciseProgressionType, ExercisePropertySchema, ExercisePropertyType, ExerciseRepRange, WorkoutExercise_docType, WorkoutExerciseSchema } from './documents/workout/WorkoutExercise.js';
19
23
  import type { WorkoutExerciseCalibration } from './documents/workout/WorkoutExerciseCalibration.js';
20
24
  import { WorkoutExerciseCalibration_docType, WorkoutExerciseCalibrationSchema } from './documents/workout/WorkoutExerciseCalibration.js';
21
- import type { WorkoutExerciseCTO } from './ctos/workout/WorkoutExerciseCTO.js';
22
- import { WorkoutExerciseCTOSchema } from './ctos/workout/WorkoutExerciseCTO.js';
23
- import type { WorkoutMuscleGroupVolumeCTO } from './ctos/workout/WorkoutMuscleGroupVolumeCTO.js';
24
- import { WorkoutMuscleGroupVolumeCTOSchema } from './ctos/workout/WorkoutMuscleGroupVolumeCTO.js';
25
- import type { MesocycleVolumeSummary } from './embedded-types/workout/MesocycleVolumeSummary.js';
26
- import { MesocycleVolumeSummarySchema } from './embedded-types/workout/MesocycleVolumeSummary.js';
27
25
  import type { WorkoutMesocycle } from './documents/workout/WorkoutMesocycle.js';
28
26
  import { CycleType, WorkoutMesocycle_docType, WorkoutMesocycleSchema } from './documents/workout/WorkoutMesocycle.js';
29
27
  import type { WorkoutMicrocycle } from './documents/workout/WorkoutMicrocycle.js';
@@ -46,8 +44,12 @@ import type { DashboardTaskListGlobalSortSettings, DashboardTaskListSortSettings
46
44
  import { DashboardTaskListGlobalSortSettingsSchema, DashboardTaskListSortSettingsSchema, DashboardTaskSortBy, DashboardTaskSortBySchema, DashboardTaskSortDirection, DashboardTaskSortDirectionSchema, DashboardTaskSortSettingSchema, DashboardTaskSortSettingsSchema } from './embedded-types/dashboard/task/SortSettings.js';
47
45
  import type { DashboardTagSetting, DashboardTagSettings } from './embedded-types/dashboard/userConfig/Tags.js';
48
46
  import { DashboardTagSettingSchema, DashboardTagSettingsSchema } from './embedded-types/dashboard/userConfig/Tags.js';
47
+ import { WorkoutDeloadSeverity, WorkoutDeloadTriggerRule } from './services/workout/Mesocycle/WorkoutMesocycleService.types.js';
48
+ import type { WorkoutDeloadRecommendation } from './services/workout/Mesocycle/WorkoutMesocycleService.types.js';
49
49
  import type { Fatigue } from './embedded-types/workout/Fatigue.js';
50
50
  import { FatigueSchema } from './embedded-types/workout/Fatigue.js';
51
+ import type { MesocycleVolumeSummary } from './embedded-types/workout/MesocycleVolumeSummary.js';
52
+ import { MesocycleVolumeSummarySchema } from './embedded-types/workout/MesocycleVolumeSummary.js';
51
53
  import type { RSM } from './embedded-types/workout/Rsm.js';
52
54
  import { RsmSchema } from './embedded-types/workout/Rsm.js';
53
55
  import type { RequiredUserId } from './schemas/required-refs/RequiredUserId.js';
@@ -66,6 +68,7 @@ import WorkoutSessionService, { WorkoutSessionLockReason } from './services/work
66
68
  import WorkoutSessionExerciseService from './services/workout/SessionExercise/WorkoutSessionExerciseService.js';
67
69
  import WorkoutSetService from './services/workout/Set/WorkoutSetService.js';
68
70
  import WorkoutSFRService from './services/workout/util/SFR/WorkoutSFRService.js';
69
- export { ApiKeySchema, BaseDocumentSchema, BaseDocumentWithTypeSchema, BaseDocumentWithUpdatedAndCreatedDatesSchema, CycleType, DashboardTagSettingSchema, DashboardTagSettingsSchema, DashboardTask_docType, DashboardTaskFilterSettingsSchema, DashboardTaskListFilterSettingsSchema, DashboardTaskListGlobalFilterSettingsSchema, DashboardTaskListGlobalSortSettingsSchema, DashboardTaskListSortSettingsSchema, DashboardTaskSchema, DashboardTaskService, DashboardTaskSortBy, DashboardTaskSortBySchema, DashboardTaskSortDirection, DashboardTaskSortDirectionSchema, DashboardTaskSortSettingSchema, DashboardTaskSortSettingsSchema, DashboardUserConfig_docType, DashboardUserConfigSchema, DocumentService, ExerciseProgressionType, ExercisePropertySchema, ExercisePropertyType, ExerciseRepRange, FatigueSchema, MesocycleVolumeSummarySchema, NonogramKatanaItem_docType, NonogramKatanaItemName, NonogramKatanaItemNameSchema, NonogramKatanaItemSchema, NonogramKatanaUpgrade_docType, NonogramKatanaUpgradeName, NonogramKatanaUpgradeNameSchema, NonogramKatanaUpgradeSchema, ParentRecurringTaskInfoSchema, RecurrenceBasis, RecurrenceBasisSchema, RecurrenceEffect, RecurrenceEffectSchema, RecurrenceFrequencySchema, RecurrenceFrequencyType, RecurrenceFrequencyTypeSchema, RecurrenceInfoSchema, RequiredUserIdSchema, RsmSchema, WorkoutSessionLockReason, StandardFilterSettingSchema, UserCTOSchema, UserSchema, WorkoutEquipmentType_docType, WorkoutEquipmentTypeSchema, WorkoutEquipmentTypeService, WorkoutExercise_docType, WorkoutExerciseCalibration_docType, WorkoutExerciseCalibrationSchema, WorkoutExerciseCalibrationService, WorkoutExerciseCTOSchema, WorkoutExerciseSchema, WorkoutExerciseService, WorkoutMesocycle_docType, WorkoutMesocyclePlanContext, WorkoutMesocycleSchema, WorkoutMesocycleService, WorkoutMicrocycle_docType, WorkoutMicrocycleSchema, WorkoutMicrocycleService, WorkoutMuscleGroup_docType, WorkoutMuscleGroupSchema, WorkoutMuscleGroupVolumeCTOSchema, WorkoutSession_docType, WorkoutSessionExercise_docType, WorkoutSessionExerciseSchema, WorkoutSessionExerciseService, WorkoutSessionSchema, WorkoutSessionService, WorkoutSet_docType, WorkoutSetSchema, WorkoutSetService, WorkoutSFRService };
70
- export type { ApiKey, BaseDocument, BaseDocumentWithType, BaseDocumentWithUpdatedAndCreatedDates, DashboardTagSetting, DashboardTagSettings, DashboardTask, DashboardTaskFilterAndSortResult, DashboardTaskFilterSettings, DashboardTaskListFilterSettings, DashboardTaskListGlobalFilterSettings, DashboardTaskListGlobalSortSettings, DashboardTaskListSortSettings, DashboardTaskMap, DashboardTaskSortSetting, DashboardTaskSortSettings, DashboardUserConfig, DocumentMap, ExerciseProperty, Fatigue, MesocycleVolumeSummary, NonogramKatanaItem, NonogramKatanaUpgrade, ParentRecurringTaskInfo, RecurrenceFrequency, RecurrenceInfo, RequiredUserId, RSM, StandardFilterSetting, User, UserCTO, WorkoutEquipmentType, WorkoutExercise, WorkoutExerciseCalibration, WorkoutExerciseCTO, WorkoutMesocycle, WorkoutMicrocycle, WorkoutMuscleGroup, WorkoutMuscleGroupVolumeCTO, WorkoutSession, WorkoutSessionExercise, WorkoutSet };
71
+ import WorkoutVolumePlanningService from './services/workout/util/VolumePlanning/WorkoutVolumePlanningService.js';
72
+ export { ApiKeySchema, BaseDocumentSchema, BaseDocumentWithTypeSchema, BaseDocumentWithUpdatedAndCreatedDatesSchema, CycleType, WorkoutDeloadSeverity, WorkoutDeloadTriggerRule, DashboardTagSettingSchema, DashboardTagSettingsSchema, DashboardTask_docType, DashboardTaskFilterSettingsSchema, DashboardTaskListFilterSettingsSchema, DashboardTaskListGlobalFilterSettingsSchema, DashboardTaskListGlobalSortSettingsSchema, DashboardTaskListSortSettingsSchema, DashboardTaskSchema, DashboardTaskService, DashboardTaskSortBy, DashboardTaskSortBySchema, DashboardTaskSortDirection, DashboardTaskSortDirectionSchema, DashboardTaskSortSettingSchema, DashboardTaskSortSettingsSchema, DashboardUserConfig_docType, DashboardUserConfigSchema, DocumentService, ExerciseProgressionType, ExercisePropertySchema, ExercisePropertyType, ExerciseRepRange, FatigueSchema, MesocycleVolumeSummarySchema, NonogramKatanaItem_docType, NonogramKatanaItemName, NonogramKatanaItemNameSchema, NonogramKatanaItemSchema, NonogramKatanaUpgrade_docType, NonogramKatanaUpgradeName, NonogramKatanaUpgradeNameSchema, NonogramKatanaUpgradeSchema, ParentRecurringTaskInfoSchema, RecurrenceBasis, RecurrenceBasisSchema, RecurrenceEffect, RecurrenceEffectSchema, RecurrenceFrequencySchema, RecurrenceFrequencyType, RecurrenceFrequencyTypeSchema, RecurrenceInfoSchema, RequiredUserIdSchema, RsmSchema, StandardFilterSettingSchema, UserCTOSchema, UserSchema, WorkoutEquipmentType_docType, WorkoutEquipmentTypeSchema, WorkoutEquipmentTypeService, WorkoutExercise_docType, WorkoutExerciseCalibration_docType, WorkoutExerciseCalibrationSchema, WorkoutExerciseCalibrationService, WorkoutExerciseCTOSchema, WorkoutExerciseSchema, WorkoutExerciseService, WorkoutMesocycle_docType, WorkoutMesocyclePlanContext, WorkoutMesocycleSchema, WorkoutMesocycleService, WorkoutMicrocycle_docType, WorkoutMicrocycleSchema, WorkoutMicrocycleService, WorkoutMuscleGroup_docType, WorkoutMuscleGroupSchema, WorkoutMuscleGroupVolumeCTOSchema, WorkoutSession_docType, WorkoutSessionExercise_docType, WorkoutSessionExerciseSchema, WorkoutSessionExerciseService, WorkoutSessionLockReason, WorkoutSessionSchema, WorkoutSessionService, WorkoutSet_docType, WorkoutSetSchema, WorkoutSetService, WorkoutSFRService, WorkoutVolumePlanningService };
73
+ export type { ApiKey, BaseDocument, WorkoutDeloadRecommendation, BaseDocumentWithType, BaseDocumentWithUpdatedAndCreatedDates, DashboardTagSetting, DashboardTagSettings, DashboardTask, DashboardTaskFilterAndSortResult, DashboardTaskFilterSettings, DashboardTaskListFilterSettings, DashboardTaskListGlobalFilterSettings, DashboardTaskListGlobalSortSettings, DashboardTaskListSortSettings, DashboardTaskMap, DashboardTaskSortSetting, DashboardTaskSortSettings, DashboardUserConfig, DocumentMap, ExerciseProperty, Fatigue, MesocycleVolumeSummary, NonogramKatanaItem, NonogramKatanaUpgrade, ParentRecurringTaskInfo, RecurrenceFrequency, RecurrenceInfo, RequiredUserId, RSM, StandardFilterSetting, User, UserCTO, WorkoutEquipmentType, WorkoutExercise, WorkoutExerciseCalibration, WorkoutExerciseCTO, WorkoutMesocycle, WorkoutMicrocycle, WorkoutMuscleGroup, WorkoutMuscleGroupVolumeCTO, WorkoutSession, WorkoutSessionExercise, WorkoutSet, WorkoutVolumeLandmarkEstimate };
71
74
  //# sourceMappingURL=browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
package/lib/browser.js CHANGED
@@ -1,3 +1,5 @@
1
+ import { WorkoutExerciseCTOSchema } from './ctos/workout/WorkoutExerciseCTO.js';
2
+ import { WorkoutMuscleGroupVolumeCTOSchema } from './ctos/workout/WorkoutMuscleGroupVolumeCTO.js';
1
3
  import { BaseDocumentSchema, BaseDocumentWithTypeSchema, BaseDocumentWithUpdatedAndCreatedDatesSchema } from './documents/BaseDocument.js';
2
4
  import { ApiKeySchema } from './documents/common/ApiKey.js';
3
5
  import { UserCTOSchema, UserSchema } from './documents/common/User.js';
@@ -8,9 +10,6 @@ import { DashboardUserConfig_docType, DashboardUserConfigSchema } from './docume
8
10
  import { WorkoutEquipmentType_docType, WorkoutEquipmentTypeSchema } from './documents/workout/WorkoutEquipmentType.js';
9
11
  import { ExerciseProgressionType, ExercisePropertySchema, ExercisePropertyType, ExerciseRepRange, WorkoutExercise_docType, WorkoutExerciseSchema } from './documents/workout/WorkoutExercise.js';
10
12
  import { WorkoutExerciseCalibration_docType, WorkoutExerciseCalibrationSchema } from './documents/workout/WorkoutExerciseCalibration.js';
11
- import { WorkoutExerciseCTOSchema } from './ctos/workout/WorkoutExerciseCTO.js';
12
- import { WorkoutMuscleGroupVolumeCTOSchema } from './ctos/workout/WorkoutMuscleGroupVolumeCTO.js';
13
- import { MesocycleVolumeSummarySchema } from './embedded-types/workout/MesocycleVolumeSummary.js';
14
13
  import { CycleType, WorkoutMesocycle_docType, WorkoutMesocycleSchema } from './documents/workout/WorkoutMesocycle.js';
15
14
  import { WorkoutMicrocycle_docType, WorkoutMicrocycleSchema } from './documents/workout/WorkoutMicrocycle.js';
16
15
  import { WorkoutMuscleGroup_docType, WorkoutMuscleGroupSchema } from './documents/workout/WorkoutMuscleGroup.js';
@@ -23,7 +22,9 @@ import { DashboardTaskFilterSettingsSchema, DashboardTaskListFilterSettingsSchem
23
22
  import { ParentRecurringTaskInfoSchema, RecurrenceBasis, RecurrenceBasisSchema, RecurrenceEffect, RecurrenceEffectSchema, RecurrenceFrequencySchema, RecurrenceFrequencyType, RecurrenceFrequencyTypeSchema, RecurrenceInfoSchema } from './embedded-types/dashboard/task/RecurrenceInfo.js';
24
23
  import { DashboardTaskListGlobalSortSettingsSchema, DashboardTaskListSortSettingsSchema, DashboardTaskSortBy, DashboardTaskSortBySchema, DashboardTaskSortDirection, DashboardTaskSortDirectionSchema, DashboardTaskSortSettingSchema, DashboardTaskSortSettingsSchema } from './embedded-types/dashboard/task/SortSettings.js';
25
24
  import { DashboardTagSettingSchema, DashboardTagSettingsSchema } from './embedded-types/dashboard/userConfig/Tags.js';
25
+ import { WorkoutDeloadSeverity, WorkoutDeloadTriggerRule } from './services/workout/Mesocycle/WorkoutMesocycleService.types.js';
26
26
  import { FatigueSchema } from './embedded-types/workout/Fatigue.js';
27
+ import { MesocycleVolumeSummarySchema } from './embedded-types/workout/MesocycleVolumeSummary.js';
27
28
  import { RsmSchema } from './embedded-types/workout/Rsm.js';
28
29
  import { RequiredUserIdSchema } from './schemas/required-refs/RequiredUserId.js';
29
30
  import DocumentService from './services/DocumentService.js';
@@ -38,6 +39,7 @@ import WorkoutSessionService, { WorkoutSessionLockReason } from './services/work
38
39
  import WorkoutSessionExerciseService from './services/workout/SessionExercise/WorkoutSessionExerciseService.js';
39
40
  import WorkoutSetService from './services/workout/Set/WorkoutSetService.js';
40
41
  import WorkoutSFRService from './services/workout/util/SFR/WorkoutSFRService.js';
42
+ import WorkoutVolumePlanningService from './services/workout/util/VolumePlanning/WorkoutVolumePlanningService.js';
41
43
  // Export all browser-safe functions and classes from this library
42
- export { ApiKeySchema, BaseDocumentSchema, BaseDocumentWithTypeSchema, BaseDocumentWithUpdatedAndCreatedDatesSchema, CycleType, DashboardTagSettingSchema, DashboardTagSettingsSchema, DashboardTask_docType, DashboardTaskFilterSettingsSchema, DashboardTaskListFilterSettingsSchema, DashboardTaskListGlobalFilterSettingsSchema, DashboardTaskListGlobalSortSettingsSchema, DashboardTaskListSortSettingsSchema, DashboardTaskSchema, DashboardTaskService, DashboardTaskSortBy, DashboardTaskSortBySchema, DashboardTaskSortDirection, DashboardTaskSortDirectionSchema, DashboardTaskSortSettingSchema, DashboardTaskSortSettingsSchema, DashboardUserConfig_docType, DashboardUserConfigSchema, DocumentService, ExerciseProgressionType, ExercisePropertySchema, ExercisePropertyType, ExerciseRepRange, FatigueSchema, MesocycleVolumeSummarySchema, NonogramKatanaItem_docType, NonogramKatanaItemName, NonogramKatanaItemNameSchema, NonogramKatanaItemSchema, NonogramKatanaUpgrade_docType, NonogramKatanaUpgradeName, NonogramKatanaUpgradeNameSchema, NonogramKatanaUpgradeSchema, ParentRecurringTaskInfoSchema, RecurrenceBasis, RecurrenceBasisSchema, RecurrenceEffect, RecurrenceEffectSchema, RecurrenceFrequencySchema, RecurrenceFrequencyType, RecurrenceFrequencyTypeSchema, RecurrenceInfoSchema, RequiredUserIdSchema, RsmSchema, WorkoutSessionLockReason, StandardFilterSettingSchema, UserCTOSchema, UserSchema, WorkoutEquipmentType_docType, WorkoutEquipmentTypeSchema, WorkoutEquipmentTypeService, WorkoutExercise_docType, WorkoutExerciseCalibration_docType, WorkoutExerciseCalibrationSchema, WorkoutExerciseCalibrationService, WorkoutExerciseCTOSchema, WorkoutExerciseSchema, WorkoutExerciseService, WorkoutMesocycle_docType, WorkoutMesocyclePlanContext, WorkoutMesocycleSchema, WorkoutMesocycleService, WorkoutMicrocycle_docType, WorkoutMicrocycleSchema, WorkoutMicrocycleService, WorkoutMuscleGroup_docType, WorkoutMuscleGroupSchema, WorkoutMuscleGroupVolumeCTOSchema, WorkoutSession_docType, WorkoutSessionExercise_docType, WorkoutSessionExerciseSchema, WorkoutSessionExerciseService, WorkoutSessionSchema, WorkoutSessionService, WorkoutSet_docType, WorkoutSetSchema, WorkoutSetService, WorkoutSFRService };
44
+ export { ApiKeySchema, BaseDocumentSchema, BaseDocumentWithTypeSchema, BaseDocumentWithUpdatedAndCreatedDatesSchema, CycleType, WorkoutDeloadSeverity, WorkoutDeloadTriggerRule, DashboardTagSettingSchema, DashboardTagSettingsSchema, DashboardTask_docType, DashboardTaskFilterSettingsSchema, DashboardTaskListFilterSettingsSchema, DashboardTaskListGlobalFilterSettingsSchema, DashboardTaskListGlobalSortSettingsSchema, DashboardTaskListSortSettingsSchema, DashboardTaskSchema, DashboardTaskService, DashboardTaskSortBy, DashboardTaskSortBySchema, DashboardTaskSortDirection, DashboardTaskSortDirectionSchema, DashboardTaskSortSettingSchema, DashboardTaskSortSettingsSchema, DashboardUserConfig_docType, DashboardUserConfigSchema, DocumentService, ExerciseProgressionType, ExercisePropertySchema, ExercisePropertyType, ExerciseRepRange, FatigueSchema, MesocycleVolumeSummarySchema, NonogramKatanaItem_docType, NonogramKatanaItemName, NonogramKatanaItemNameSchema, NonogramKatanaItemSchema, NonogramKatanaUpgrade_docType, NonogramKatanaUpgradeName, NonogramKatanaUpgradeNameSchema, NonogramKatanaUpgradeSchema, ParentRecurringTaskInfoSchema, RecurrenceBasis, RecurrenceBasisSchema, RecurrenceEffect, RecurrenceEffectSchema, RecurrenceFrequencySchema, RecurrenceFrequencyType, RecurrenceFrequencyTypeSchema, RecurrenceInfoSchema, RequiredUserIdSchema, RsmSchema, StandardFilterSettingSchema, UserCTOSchema, UserSchema, WorkoutEquipmentType_docType, WorkoutEquipmentTypeSchema, WorkoutEquipmentTypeService, WorkoutExercise_docType, WorkoutExerciseCalibration_docType, WorkoutExerciseCalibrationSchema, WorkoutExerciseCalibrationService, WorkoutExerciseCTOSchema, WorkoutExerciseSchema, WorkoutExerciseService, WorkoutMesocycle_docType, WorkoutMesocyclePlanContext, WorkoutMesocycleSchema, WorkoutMesocycleService, WorkoutMicrocycle_docType, WorkoutMicrocycleSchema, WorkoutMicrocycleService, WorkoutMuscleGroup_docType, WorkoutMuscleGroupSchema, WorkoutMuscleGroupVolumeCTOSchema, WorkoutSession_docType, WorkoutSessionExercise_docType, WorkoutSessionExerciseSchema, WorkoutSessionExerciseService, WorkoutSessionLockReason, WorkoutSessionSchema, WorkoutSessionService, WorkoutSet_docType, WorkoutSetSchema, WorkoutSetService, WorkoutSFRService, WorkoutVolumePlanningService };
43
45
  //# sourceMappingURL=browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
package/lib/browser.ts CHANGED
@@ -1,3 +1,10 @@
1
+ import type { WorkoutExerciseCTO } from './ctos/workout/WorkoutExerciseCTO.js';
2
+ import { WorkoutExerciseCTOSchema } from './ctos/workout/WorkoutExerciseCTO.js';
3
+ import type {
4
+ WorkoutMuscleGroupVolumeCTO,
5
+ WorkoutVolumeLandmarkEstimate
6
+ } from './ctos/workout/WorkoutMuscleGroupVolumeCTO.js';
7
+ import { WorkoutMuscleGroupVolumeCTOSchema } from './ctos/workout/WorkoutMuscleGroupVolumeCTO.js';
1
8
  import type {
2
9
  BaseDocument,
3
10
  BaseDocumentWithType,
@@ -48,12 +55,6 @@ import {
48
55
  WorkoutExerciseCalibration_docType,
49
56
  WorkoutExerciseCalibrationSchema
50
57
  } from './documents/workout/WorkoutExerciseCalibration.js';
51
- import type { WorkoutExerciseCTO } from './ctos/workout/WorkoutExerciseCTO.js';
52
- import { WorkoutExerciseCTOSchema } from './ctos/workout/WorkoutExerciseCTO.js';
53
- import type { WorkoutMuscleGroupVolumeCTO } from './ctos/workout/WorkoutMuscleGroupVolumeCTO.js';
54
- import { WorkoutMuscleGroupVolumeCTOSchema } from './ctos/workout/WorkoutMuscleGroupVolumeCTO.js';
55
- import type { MesocycleVolumeSummary } from './embedded-types/workout/MesocycleVolumeSummary.js';
56
- import { MesocycleVolumeSummarySchema } from './embedded-types/workout/MesocycleVolumeSummary.js';
57
58
  import type { WorkoutMesocycle } from './documents/workout/WorkoutMesocycle.js';
58
59
  import {
59
60
  CycleType,
@@ -140,8 +141,15 @@ import {
140
141
  DashboardTagSettingSchema,
141
142
  DashboardTagSettingsSchema
142
143
  } from './embedded-types/dashboard/userConfig/Tags.js';
144
+ import {
145
+ WorkoutDeloadSeverity,
146
+ WorkoutDeloadTriggerRule
147
+ } from './services/workout/Mesocycle/WorkoutMesocycleService.types.js';
148
+ import type { WorkoutDeloadRecommendation } from './services/workout/Mesocycle/WorkoutMesocycleService.types.js';
143
149
  import type { Fatigue } from './embedded-types/workout/Fatigue.js';
144
150
  import { FatigueSchema } from './embedded-types/workout/Fatigue.js';
151
+ import type { MesocycleVolumeSummary } from './embedded-types/workout/MesocycleVolumeSummary.js';
152
+ import { MesocycleVolumeSummarySchema } from './embedded-types/workout/MesocycleVolumeSummary.js';
145
153
  import type { RSM } from './embedded-types/workout/Rsm.js';
146
154
  import { RsmSchema } from './embedded-types/workout/Rsm.js';
147
155
  import type { RequiredUserId } from './schemas/required-refs/RequiredUserId.js';
@@ -162,6 +170,7 @@ import WorkoutSessionService, {
162
170
  import WorkoutSessionExerciseService from './services/workout/SessionExercise/WorkoutSessionExerciseService.js';
163
171
  import WorkoutSetService from './services/workout/Set/WorkoutSetService.js';
164
172
  import WorkoutSFRService from './services/workout/util/SFR/WorkoutSFRService.js';
173
+ import WorkoutVolumePlanningService from './services/workout/util/VolumePlanning/WorkoutVolumePlanningService.js';
165
174
 
166
175
  // Export all browser-safe functions and classes from this library
167
176
  export {
@@ -170,6 +179,8 @@ export {
170
179
  BaseDocumentWithTypeSchema,
171
180
  BaseDocumentWithUpdatedAndCreatedDatesSchema,
172
181
  CycleType,
182
+ WorkoutDeloadSeverity,
183
+ WorkoutDeloadTriggerRule,
173
184
  DashboardTagSettingSchema,
174
185
  DashboardTagSettingsSchema,
175
186
  DashboardTask_docType,
@@ -214,7 +225,6 @@ export {
214
225
  RecurrenceInfoSchema,
215
226
  RequiredUserIdSchema,
216
227
  RsmSchema,
217
- WorkoutSessionLockReason,
218
228
  StandardFilterSettingSchema,
219
229
  UserCTOSchema,
220
230
  UserSchema,
@@ -242,18 +252,21 @@ export {
242
252
  WorkoutSessionExercise_docType,
243
253
  WorkoutSessionExerciseSchema,
244
254
  WorkoutSessionExerciseService,
255
+ WorkoutSessionLockReason,
245
256
  WorkoutSessionSchema,
246
257
  WorkoutSessionService,
247
258
  WorkoutSet_docType,
248
259
  WorkoutSetSchema,
249
260
  WorkoutSetService,
250
- WorkoutSFRService
261
+ WorkoutSFRService,
262
+ WorkoutVolumePlanningService
251
263
  };
252
264
 
253
265
  // Export TypeScript types where needed
254
266
  export type {
255
267
  ApiKey,
256
268
  BaseDocument,
269
+ WorkoutDeloadRecommendation,
257
270
  BaseDocumentWithType,
258
271
  BaseDocumentWithUpdatedAndCreatedDates,
259
272
  DashboardTagSetting,
@@ -293,5 +306,6 @@ export type {
293
306
  WorkoutMuscleGroupVolumeCTO,
294
307
  WorkoutSession,
295
308
  WorkoutSessionExercise,
296
- WorkoutSet
309
+ WorkoutSet,
310
+ WorkoutVolumeLandmarkEstimate
297
311
  };
@@ -33,4 +33,18 @@ export declare const WorkoutMuscleGroupVolumeCTOSchema: z.ZodObject<{
33
33
  * recovery session counts across completed mesocycles.
34
34
  */
35
35
  export type WorkoutMuscleGroupVolumeCTO = z.infer<typeof WorkoutMuscleGroupVolumeCTOSchema>;
36
+ /**
37
+ * Estimated volume landmarks (MEV, MRV, MAV) for a muscle group derived
38
+ * from historical mesocycle data.
39
+ */
40
+ export type WorkoutVolumeLandmarkEstimate = {
41
+ /** Estimated minimum effective volume (sets per microcycle for this muscle group). */
42
+ estimatedMev: number;
43
+ /** Estimated maximum recoverable volume. */
44
+ estimatedMrv: number;
45
+ /** Estimated maximum adaptive volume (midpoint of MEV and MRV). */
46
+ estimatedMav: number;
47
+ /** Number of completed mesocycles used to derive these estimates. */
48
+ mesocycleCount: number;
49
+ };
36
50
  //# sourceMappingURL=WorkoutMuscleGroupVolumeCTO.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkoutMuscleGroupVolumeCTO.d.ts","sourceRoot":"","sources":["../../../src/ctos/workout/WorkoutMuscleGroupVolumeCTO.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;;;;GAOG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;iBAS5C,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC"}
1
+ {"version":3,"file":"WorkoutMuscleGroupVolumeCTO.d.ts","sourceRoot":"","sources":["../../../src/ctos/workout/WorkoutMuscleGroupVolumeCTO.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;;;;GAOG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;iBAS5C,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F;;;GAGG;AACH,MAAM,MAAM,6BAA6B,GAAG;IAC1C,sFAAsF;IACtF,YAAY,EAAE,MAAM,CAAC;IAErB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,CAAC;IAErB,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAC;IAErB,qEAAqE;IACrE,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC"}
@@ -27,3 +27,21 @@ export const WorkoutMuscleGroupVolumeCTOSchema = z.object({
27
27
  * recovery session counts across completed mesocycles.
28
28
  */
29
29
  export type WorkoutMuscleGroupVolumeCTO = z.infer<typeof WorkoutMuscleGroupVolumeCTOSchema>;
30
+
31
+ /**
32
+ * Estimated volume landmarks (MEV, MRV, MAV) for a muscle group derived
33
+ * from historical mesocycle data.
34
+ */
35
+ export type WorkoutVolumeLandmarkEstimate = {
36
+ /** Estimated minimum effective volume (sets per microcycle for this muscle group). */
37
+ estimatedMev: number;
38
+
39
+ /** Estimated maximum recoverable volume. */
40
+ estimatedMrv: number;
41
+
42
+ /** Estimated maximum adaptive volume (midpoint of MEV and MRV). */
43
+ estimatedMav: number;
44
+
45
+ /** Number of completed mesocycles used to derive these estimates. */
46
+ mesocycleCount: number;
47
+ };
@@ -243,8 +243,10 @@ These are requirements that were developed after taking all the notes in the mor
243
243
  - **Reps in Reserve (RIR)** (pg 30): Reps in Reserve are the set's proximity to muscle failure. In other words, how many reps do you have left before you completely fail to produce the movement.
244
244
  - **Effective Sets** (pg 33): Effective sets are a set that is done within 5-30 reps, and within 0-5 RIR.
245
245
  - **Volume** (pg 34+): From page 34 and onwards, the book discusses volume as the number of effective sets. Even though this isn't the technical definition, everything averages out as long as you are using effective sets.
246
+ - **Maintenance Volume (MV)** (pg. 34): The minimum volume necessary to avoid muscle loss. Training below this volume (or not training at all), will result in a loss of muscle over time.
246
247
  - **Minimum Effective Volume (MEV)** (pg. 34): The minimum volume which leads to muscle growth. This varies by age, training experience, and existing muscle mass. As you get stronger / bigger, this gets higher.
247
- - **Maximum Recoverable Volume (MRV)** (pg. 34,117): The maximum volume that can be done before muscle loss begins.
248
+ - **Maximum Adaptive Volume (MAV)** (pg. 34): The amount of training which at any given time provides the greatest muscle growth per unit of time. It shifts over the course of a mesocycle as fatigue accumulates and volume sensitivity changes. When looking at the chart on page 34, this it the "peak" of growth.
249
+ - **Maximum Recoverable Volume (MRV)** (pg. 34,117): The maximum volume that can be done before muscle loss begins. Detected in practice by under-performing two sessions in a row (a drop in reps at any given RIR compared to last week, even adjusted for potentially increased load).
248
250
  - **Raw Stimulus Magnitude (RSM)** (pg. 50-53): RSM is the amount of muscle growth stimulus any given Workout Session gives.
249
251
  - **Microcycle**: The shortest cycle of training that includes all workout sessions and rest days and is repeated. Typically, but not always, this is a week.
250
252
  - **Mesocycle**: An organized sequence of microcycles ordered to elicit a set of distinct training adaptations. The typical mesocycle is composed of two distinct phases: an accumulation phase, and a shorter deload phase.
@@ -363,16 +365,16 @@ To get your MEV, do the RSM calculation for the first 2-3 days of the mesocycle.
363
365
  | 0–1 | Stimulus likely below MEV | Increase volume the following week by two to four sets |
364
366
  | 2–3 | Stimulus likely at or below MEV | Increase volume the following week by two to four sets |
365
367
  | 4–6 | Stimulus likely at or just above MEV (a great place to start your mesocycle) | Progress normally |
366
- | 7–9 | Stimulus likely between MEV and MRV, possibly exceeding MRV | Drop volume the following week |
368
+ | 7–9 | Stimulus likely between MEV and MRV, possibly exceeding MRV | Drop volume the following week (this is handled by recovery sessions) |
367
369
 
368
370
  After you get this information, go ahead and finish out the first week at MEV, then calculate how you should progress by answering the following questions:
369
371
 
370
- On a scale of 0-3 how sore did you get in the target muscle group?
372
+ On a scale of 0-3 how sore did you get in the target muscles?
371
373
 
372
- - 0: You did not get at all sore in the target muscle group
373
- - 1: You got stiff for a few hours after training and had mild soreness in the target muscle group that resolved by next session targeting the same muscle group
374
- - 2: You got DOMS in the target muscle group that resolved just in time for the next session targeting the same muscle group
375
- - 3: You got DOMS in the target muscle group that remained for the next session targeting the same muscle group
374
+ - 0: You did not get at all sore in the target muscles
375
+ - 1: You got stiff for a few hours after training and had mild soreness in the target muscles that resolved by next session targeting the same muscles
376
+ - 2: You got DOMS in the target muscles that resolved just in time for the next session targeting the same muscles
377
+ - 3: You got DOMS in the target muscles that remained for the next session targeting the same muscles
376
378
 
377
379
  On a scale of 0-3 how was your performance?
378
380
 
@@ -402,6 +404,10 @@ The user can choose how they want to progress between two types of progression f
402
404
  - Load Progression: Add the lowest increment available for the weight that the exercise uses each week, within reason. Like if someone is lifting 300lbs, then perhaps increase by 10 lbs instead of 5lbs. A good rule of thumb is if the weight increase is less than 2% of the overall weight, then use the next higher increment available to get at, or above a 2% increase in the weight.
403
405
  - Rep Progression (Default): Add 2 reps per week to each set that is being executed. The reps should be above the previous week's by 2 once data starts coming in. Don't adjust the weight unless the target reps goes above the maximum for that exercise, in which case increase by the lowest increment available.
404
406
 
407
+ These defaults should be auto-regulated based on actual performance. The book's core progression rule is: "If you are increasing load weekly, add only enough to allow at least the same reps, at the same or slightly lower RIR with at least four weeks of accumulation being the goal." The same principle applies in reverse for rep progression: add only enough reps to allow the same load at the same or slightly lower RIR. (Ch. 6: Phase Potentiation, "Hypertrophy Load Progression" / "Hypertrophy Rep Progression"; also repeated in Ch. 8: Summary)
408
+
409
+ In practice this means: if RIR drops faster than planned (e.g. you added weight and went from 4 RIR to 1 RIR in one week), hold the same weight or reps for the next week until RIR catches up. If RIR is unexpectedly high (e.g. staying at 4 RIR when it should have dropped), add more load or reps than the default increment. A very important recommendation is to almost always err on the lighter side of load progressionβ€”if you under-add weight, you can make up for it later, but if you over-add, accumulated fatigue may force you to cut the mesocycle short. (Ch. 2: Overload, "Load Progression")
410
+
405
411
  So, with this in mind, the default projection might look like this:
406
412
 
407
413
  - Week 1: 4 RIR, 2 sets per exercise
@@ -426,6 +432,18 @@ How to take a deload?
426
432
  - How to choose the exercises: This can be done in 3 different ways, which are choosing the current mesocycle's exercises, the next mesocycle's, or specifically low stress exercises. To keep things simple for the purposes of my own program, I am just going to go with the first option. It is safest, and easiest to calculate.
427
433
  - How much stimulus to impose: Similar to recovery sessions, for the first half of the week, cut the last microcycle's sets and reps in half, but keep the same weight. The the second half of the week, cut the weight in half as well.
428
434
 
435
+ #### Mesocycle-to-Mesocycle Progression (Ch. 8: Summary, "Mesocycle to Mesocycle Progress"; Ch. 3: Fatigue Management, "Dropping fatigue to reveal performance")
436
+
437
+ Fatigue masks performance during a mesocycle. The deload removes fatigue and reveals the underlying fitness gainsβ€”it does not reset the strength baseline. Because of this, performance data from previous mesocycles should inform planning for new ones.
438
+
439
+ When starting a new mesocycle, how to set starting weights depends on the exercise's relationship to the previous mesocycle:
440
+
441
+ - **Same exercise, same rep range:** Start conservatively, below the ending weight from the previous mesocycle. The ending weight was achieved under peak fatigue and is not a sustainable starting point. It is always better to start a bit more conservativeβ€”it is less detrimental to add more weight across a meso when load is too light than to deal with the accumulated fatigue of overshooting load early on. (Ch. 8: Summary, "Progression with matched rep range for the same exercise across mesocycles")
442
+ - **Same exercise, different rep range:** Pick the approximate RM for the new target rep range. For example, if switching from the 5-10 range to the 10-20 range, choose a weight between your 14 and 24 rep maxes (offset by the starting 4 RIR). Progress between loading ranges is not expected, only within them. (Ch. 8: Summary, "Progression with different rep ranges for the same exercise across mesocycles")
443
+ - **New exercise:** Loading should be assessed independently and not based on weight used for other lifts. Different people have different exercise-to-exercise load ratios, so trial and error with a logbook is the practical approach. Because loading ranges are wide, estimating a weight to get within the target rep range at ~4 RIR is straightforward enough. (Ch. 8: Summary, "Progression with different exercises across mesocycles")
444
+
445
+ RIR progression resets to ~4 RIR at the start of every mesocycle, progressing down to ~1-0 RIR (or ~2 RIR for beginners) by the final accumulation week. This reset is universalβ€”it allows the longest productive accumulation phase regardless of where the previous mesocycle ended. (Ch. 8: Summary, "Mesocycle Length Choices"; Ch. 2: Overload)
446
+
429
447
  #### Phase Potentiation (pg. 181-191)
430
448
 
431
449
  This is a more advanced concept, and could be explored further later on. Basically, it is a way to organize mesocycles, outside of the periodic active rest periods, to get better performance. This seems to be characterized by a maintenance training phase which is an entire mesocycle training at MV (so very low volumes), but with high weight.
@@ -436,6 +454,23 @@ A clean middle-ground might be to just take a resensitization phase every 3-4 me
436
454
 
437
455
  Identifying the type of mesocycle that is happening in the data model may be helpful to provide even more context. For example, a strength gain mesocycle will likely always be more productive than a cutting mesocycle. There are some great tips on how to track progress during a cutting mesocycle and how to track on page 220-221. What it comes down to is trying to stay around MEV for as long as possible until your cut is complete. You don't want your cut to ever last longer than a single mesocycle, so for example, instead of progressing from 5 sets to 9 sets over four weeks, you might go from 5 to 7 sets over six weeks. You still take the deload at the end of course, and progress with the roughly normal (but reduced) set and rep progression algorithm.
438
456
 
457
+ #### Cycle-Type-Specific Training Modifications
458
+
459
+ **Cut (Fat Loss) Mesocycles** (Ch. 7: Individualization, fat loss training section):
460
+
461
+ The training goal during a fat loss phase is to prevent net muscle loss, not to maximize growth. Training can be altered to extend the mesocycle (improving the accumulation-to-deload ratio) without much downside. Key modifications:
462
+
463
+ - Stay near MEV rather than pushing aggressively toward MRV. Just get some pumps, some metabolites, some soreness, and maintain performance microcycle to microcycle via the Set Progression Algorithm and muscle should be retained.
464
+ - Add only the smallest needed volumes to stay ahead of the MEV landmark. This allows extending the accumulation phase (e.g. going from 5 to 7 sets over six weeks instead of 5 to 9 over four weeks).
465
+ - RIR progression starts at ~4 RIR as normalβ€”no modification is prescribed for cuts.
466
+
467
+ **Resensitization (Maintenance) Mesocycles** (Ch. 6: Phase Potentiation, "Volume Potentiation"; Ch. 7: Individualization):
468
+
469
+ - MV-level training: very low volume. You should rarely get sore, achieve a pump, or even feel very challenged. (Ch. 6: Phase Potentiation, maintenance training phase description)
470
+ - Bias toward the heavy rep range. Muscle conservation during maintenance dieting is best when heavier weights are used at low volumes. (Ch. 6: Phase Potentiation, "Volume Potentiation")
471
+ - Frequency can be very low: 1-2 sessions per muscle group per microcycle, as sparing muscle requires minimal stimulation (as little as once per week per muscle group). (Ch. 6: Phase Potentiation; Ch. 7: Individualization)
472
+ - Duration: 3-6 weeks for the maintenance training phase. (Ch. 6: Phase Potentiation)
473
+
439
474
  ### Fatigue (pg. 87-89)
440
475
 
441
476
  There are different types of fatigue outlined below:
@@ -498,6 +533,7 @@ In addition to the above, which help improve the SFR, which can also help reduce
498
533
  - Recovery sessions should target the affected muscle group. In bad cases, you may need to take it easy for the entire session, but it is better if just the impacted muscle group has lower volume.
499
534
  - To actually take a recovery session, simply cut the planned reps and sets in half. So if you planned to do 5 sets of 20 reps roughly, then do 2 sets of 10 reps. Use the same weight though. If you feel that you can't do any reps at the same weight, then cut the weight and sets in half, but leave the reps the same.
500
535
  - Note that cutting things in half may seem like overkill. But what you want to avoid is only reducing the number of sets by 1, or number of reps by a couple and calling that a recovery. That just reduces stimulation AND doesn't reduce fatigue. Making both problems worse.
536
+ - If the recovery session was taken because MRV was hit too early, the next stimulative session can progress in load as planned, but volume should be dropped to around midway between MEV and MRV. For example, if you did week one with 10 sets and your MRV is around 20 sets, then re-starting at ~15 sets after your recovery session(s) is a good idea. From there, apply the Set Progression Algorithm and move forward with volume as needed. (Ch. 3: Fatigue Management, "Taking Recovery Sessions")
501
537
  - Active rest periods (pg. 112): This happens once per year and lasts 1-4 weeks. Take the time completely off and try not to binge eat lol. Normally this is done right after a deload, and works well with holidays. This is actually not needed for recreational hypertrophy training because the training is a hobby and not a career and the amount of stresses on the body is much less, but it is encouraged.
502
538
 
503
539
  If you are sick, and it is a fever or bad sickness, then take as many rest days as you need to fully recover. You don't want to exacerbate the problem by training early which will make it take even longer to recover and lose more time. After a sickness that takes more than a few days to recover, you need to take a deload and then start a new mesocycle.
@@ -553,5 +589,3 @@ There isn't a definitive part in the book that says this, but it seems implied:
553
589
  These are exhausting to test, and dangerous. You will be strongest at the end of a resensitization phase, or phase where you are working at MV for an extended period of time. The upsides, are you get an accurate representation of 1RM that you can use, the downsides are the danger and fluctuations. Also testing causes 0 gains on it's own. [Here is a Youtube video from RP that discusses this](https://www.youtube.com/watch?v=4luBPhK-rlE). The primary reason this information is needed, is for the algorithms.
554
590
 
555
591
  [NASM provides a 1-rep max calculator](https://www.nasm.org/resources/one-rep-max-calculator) / algorithm that seems like it is relatively accurate. It comes from a reputable organization so it seems safe to trust them. The algorithm can be done by trying to do the most weight you can for the lowest reps possible (lower reps makes it more accurate) and plug it in to: 1RM = (Weight Lifted x Reps / 30.48) + Weight Lifted.
556
-
557
- # Todo
@@ -38,4 +38,12 @@ export declare const WorkoutSetSchema: z.ZodObject<{
38
38
  * The recommended average RIR is 2-3 to balance stimulus and fatigue.
39
39
  */
40
40
  export type WorkoutSet = z.infer<typeof WorkoutSetSchema>;
41
+ /**
42
+ * A {@link WorkoutSet} with all nullable fields guaranteed to be defined.
43
+ * Zod's `.nullish()` produces `T | null | undefined`, so `Required` alone
44
+ * only strips the optional `?` β€” `NonNullable` is needed to also strip `null`.
45
+ */
46
+ export type CompletedWorkoutSet = Required<{
47
+ [K in keyof WorkoutSet]: NonNullable<WorkoutSet[K]>;
48
+ }>;
41
49
  //# sourceMappingURL=WorkoutSet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkoutSet.d.ts","sourceRoot":"","sources":["../../../src/documents/workout/WorkoutSet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB;;GAEG;AACH,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;iBAyD3B,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"WorkoutSet.d.ts","sourceRoot":"","sources":["../../../src/documents/workout/WorkoutSet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB;;GAEG;AACH,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;iBAyD3B,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;KACxC,CAAC,IAAI,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;CACpD,CAAC,CAAC"}
@@ -88,3 +88,12 @@ export const WorkoutSetSchema = z.object({
88
88
  * The recommended average RIR is 2-3 to balance stimulus and fatigue.
89
89
  */
90
90
  export type WorkoutSet = z.infer<typeof WorkoutSetSchema>;
91
+
92
+ /**
93
+ * A {@link WorkoutSet} with all nullable fields guaranteed to be defined.
94
+ * Zod's `.nullish()` produces `T | null | undefined`, so `Required` alone
95
+ * only strips the optional `?` β€” `NonNullable` is needed to also strip `null`.
96
+ */
97
+ export type CompletedWorkoutSet = Required<{
98
+ [K in keyof WorkoutSet]: NonNullable<WorkoutSet[K]>;
99
+ }>;
@@ -2,6 +2,7 @@ import type { WorkoutEquipmentType } from '../../../documents/workout/WorkoutEqu
2
2
  import type { WorkoutExercise } from '../../../documents/workout/WorkoutExercise.js';
3
3
  import { ExerciseRepRange } from '../../../documents/workout/WorkoutExercise.js';
4
4
  import type { WorkoutExerciseCalibration } from '../../../documents/workout/WorkoutExerciseCalibration.js';
5
+ import type { WorkoutSet } from '../../../documents/workout/WorkoutSet.js';
5
6
  /**
6
7
  * A service for handling operations related to {@link WorkoutExercise}s.
7
8
  */
@@ -33,6 +34,10 @@ export default class WorkoutExerciseService {
33
34
  * This method applies either rep-based or load-based progression depending on the exercise's
34
35
  * preferred progression type, then rounds the weight to available equipment options.
35
36
  *
37
+ * When a `previousFirstSet` is provided, autoregulation adjusts progression based on the
38
+ * surplus between planned and actual performance. Without it, the calibration-based formula
39
+ * is used as a baseline.
40
+ *
36
41
  * Rep progression: The weight is calculated based on reps at microcycle 0, and reps increase
37
42
  * by 2 per microcycle to reach max reps at the final accumulation microcycle (ideally),
38
43
  * or drop back down and increase weight by 2%.
@@ -46,10 +51,45 @@ export default class WorkoutExerciseService {
46
51
  equipment: WorkoutEquipmentType;
47
52
  microcycleIndex: number;
48
53
  firstMicrocycleRir: number;
54
+ previousFirstSet?: WorkoutSet;
49
55
  }): {
50
56
  targetWeight: number;
51
57
  targetReps: number;
52
58
  };
59
+ /**
60
+ * Calculates targets using auto-regulation based on actual performance from a previous set.
61
+ */
62
+ private static calculateAutoRegulatedTargets;
63
+ /**
64
+ * Auto-regulated rep progression. Weight stays the same, reps adjust based on surplus.
65
+ *
66
+ * | Surplus | Action |
67
+ * |---:|---|
68
+ * | >= 3 | Accelerate: actualReps + 2 (progress from actual, not planned) |
69
+ * | 0 to 2 | Normal: plannedReps + 2 |
70
+ * | -1 to -2 | Hold: plannedReps (don't add reps) |
71
+ * | <= -3 | Regress: actualReps (use actual as new baseline) |
72
+ */
73
+ private static calculateAutoRegulatedRepTargets;
74
+ /**
75
+ * Auto-regulated load progression. Reps stay at rep range max, weight adjusts based on surplus.
76
+ *
77
+ * | Surplus | Action |
78
+ * |---:|---|
79
+ * | >= 2 | Accelerate: increase weight by ~4% |
80
+ * | 0 to 1 | Normal: increase weight by 2% |
81
+ * | -1 to -2 | Hold weight (no increase) |
82
+ * | <= -3 | Reduce weight by minimum equipment increment |
83
+ */
84
+ private static calculateAutoRegulatedLoadTargets;
85
+ /**
86
+ * Checks whether a set has all the data needed for autoregulation calculations.
87
+ */
88
+ private static hasCompleteAutoRegulationData;
89
+ /**
90
+ * Calculates targets using the calibration-based formula (original behavior).
91
+ */
92
+ private static calculateCalibrationBasedTargets;
53
93
  private static findNextTwoPercentWeight;
54
94
  }
55
95
  //# sourceMappingURL=WorkoutExerciseService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkoutExerciseService.d.ts","sourceRoot":"","sources":["../../../../src/services/workout/Exercise/WorkoutExerciseService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAC/F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AACrF,OAAO,EAEL,gBAAgB,EACjB,MAAM,+CAA+C,CAAC;AACvD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0DAA0D,CAAC;AAK3G;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,sBAAsB;IACzC;;;;;;;;OAQG;IACH,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;IAWlF;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM;IAIzD;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,uCAAuC,CAAC,MAAM,EAAE;QACrD,QAAQ,EAAE,eAAe,CAAC;QAC1B,WAAW,EAAE,0BAA0B,CAAC;QACxC,SAAS,EAAE,oBAAoB,CAAC;QAChC,eAAe,EAAE,MAAM,CAAC;QACxB,kBAAkB,EAAE,MAAM,CAAC;KAC5B,GAAG;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IA2FhD,OAAO,CAAC,MAAM,CAAC,wBAAwB;CAgBxC"}
1
+ {"version":3,"file":"WorkoutExerciseService.d.ts","sourceRoot":"","sources":["../../../../src/services/workout/Exercise/WorkoutExerciseService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAC/F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AACrF,OAAO,EAEL,gBAAgB,EACjB,MAAM,+CAA+C,CAAC;AACvD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0DAA0D,CAAC;AAC3G,OAAO,KAAK,EAAuB,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAMhG;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,sBAAsB;IACzC;;;;;;;;OAQG;IACH,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;IAWlF;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM;IAIzD;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,uCAAuC,CAAC,MAAM,EAAE;QACrD,QAAQ,EAAE,eAAe,CAAC;QAC1B,WAAW,EAAE,0BAA0B,CAAC;QACxC,SAAS,EAAE,oBAAoB,CAAC;QAChC,eAAe,EAAE,MAAM,CAAC;QACxB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,gBAAgB,CAAC,EAAE,UAAU,CAAC;KAC/B,GAAG;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IA2ChD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,6BAA6B;IAsB5C;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,gCAAgC;IA4C/C;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,iCAAiC;IA2ChD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,6BAA6B;IAU5C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gCAAgC;IAgG/C,OAAO,CAAC,MAAM,CAAC,wBAAwB;CAgBxC"}