@aneuhold/core-ts-db-lib 4.1.12 → 4.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/CHANGELOG.md +21 -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/WorkoutSet.d.ts +8 -0
  11. package/lib/documents/workout/WorkoutSet.d.ts.map +1 -1
  12. package/lib/documents/workout/WorkoutSet.ts +9 -0
  13. package/lib/services/workout/Exercise/WorkoutExerciseService.d.ts +40 -0
  14. package/lib/services/workout/Exercise/WorkoutExerciseService.d.ts.map +1 -1
  15. package/lib/services/workout/Exercise/WorkoutExerciseService.js +134 -1
  16. package/lib/services/workout/Exercise/WorkoutExerciseService.js.map +1 -1
  17. package/lib/services/workout/Exercise/WorkoutExerciseService.ts +204 -1
  18. package/lib/services/workout/ExerciseCalibration/WorkoutExerciseCalibrationService.d.ts +15 -0
  19. package/lib/services/workout/ExerciseCalibration/WorkoutExerciseCalibrationService.d.ts.map +1 -1
  20. package/lib/services/workout/ExerciseCalibration/WorkoutExerciseCalibrationService.js +18 -1
  21. package/lib/services/workout/ExerciseCalibration/WorkoutExerciseCalibrationService.js.map +1 -1
  22. package/lib/services/workout/ExerciseCalibration/WorkoutExerciseCalibrationService.ts +19 -1
  23. package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.d.ts +26 -4
  24. package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.d.ts.map +1 -1
  25. package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.js +51 -4
  26. package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.js.map +1 -1
  27. package/lib/services/workout/Mesocycle/WorkoutMesocyclePlanContext.ts +58 -3
  28. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.d.ts +45 -1
  29. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.d.ts.map +1 -1
  30. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.js +201 -11
  31. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.js.map +1 -1
  32. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.ts +285 -9
  33. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.types.d.ts +33 -0
  34. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.types.d.ts.map +1 -0
  35. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.types.js +24 -0
  36. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.types.js.map +1 -0
  37. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.types.ts +36 -0
  38. package/lib/services/workout/Session/WorkoutSessionService.d.ts.map +1 -1
  39. package/lib/services/workout/Session/WorkoutSessionService.js +1 -11
  40. package/lib/services/workout/Session/WorkoutSessionService.js.map +1 -1
  41. package/lib/services/workout/Session/WorkoutSessionService.ts +1 -17
  42. package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.d.ts +14 -2
  43. package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.d.ts.map +1 -1
  44. package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.js +17 -3
  45. package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.js.map +1 -1
  46. package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.ts +28 -3
  47. package/lib/services/workout/Set/WorkoutSetService.d.ts +17 -5
  48. package/lib/services/workout/Set/WorkoutSetService.d.ts.map +1 -1
  49. package/lib/services/workout/Set/WorkoutSetService.js +83 -16
  50. package/lib/services/workout/Set/WorkoutSetService.js.map +1 -1
  51. package/lib/services/workout/Set/WorkoutSetService.ts +107 -24
  52. package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanningService.d.ts +72 -2
  53. package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanningService.d.ts.map +1 -1
  54. package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanningService.js +202 -15
  55. package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanningService.js.map +1 -1
  56. package/lib/services/workout/util/VolumePlanning/WorkoutVolumePlanningService.ts +268 -18
  57. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,26 @@ 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.13] (2026-02-28)
9
+
10
+ ### ✅ Added
11
+
12
+ - Added `WorkoutVolumePlanningService` with `estimateVolumeLandmarks()` and `evaluateMevProximity()` static methods for computing MEV/MRV/MAV landmarks from historical mesocycle data and assessing first-microcycle RSM proximity.
13
+ - Added `WorkoutDeloadSeverity` and `WorkoutDeloadTriggerRule` enums, and `WorkoutDeloadRecommendation` type for structured early-deload evaluation.
14
+ - Added `WorkoutMesocycleService.shouldTriggerEarlyDeload()` to detect when recovery session counts or consecutive performance drops warrant an early deload.
15
+ - Added `WorkoutSetService.calculateSetSurplus()` static method computing the signed difference between actual and planned reps/RIR for a single set.
16
+ - Added `WorkoutExerciseService.getTargetWeightFrom1RM()` static method to compute target weight directly from a precomputed effective 1RM.
17
+ - Added `CompletedWorkoutSet` type: a `WorkoutSet` with all nullable fields guaranteed non-null.
18
+ - Added `WorkoutVolumeLandmarkEstimate` type for estimated MEV, MRV, and MAV derived from historical mesocycle volume CTOs.
19
+
20
+ ### 🏗️ Changed
21
+
22
+ - `WorkoutMesocycleService.planMesocycle()` now accepts an optional `volumeCTOs: WorkoutMuscleGroupVolumeCTO[]` parameter to seed volume landmark estimates for the plan.
23
+ - `WorkoutMesocyclePlanContext` now exposes `firstMicrocycleRir`, `progressionInterval`, `skipDeload`, and `muscleGroupToVolumeLandmarkMap`; constructor accepts `volumeCTOs` to populate landmark estimates.
24
+ - `WorkoutExerciseService.calculateTargetRepsAndWeightForFirstSet()` now applies autoregulation: accelerates rep target when surplus ≥ 3, holds when −2 to −1, and regresses when surplus ≤ −3.
25
+ - `WorkoutSessionExerciseService` now uses per-exercise previous-microcycle first-set lookup to drive autoregulated progression across all planned microcycles.
26
+ - MEV proximity adjustments from the first microcycle are now applied when generating the second microcycle via `WorkoutVolumePlanningService.evaluateMevProximity()`.
27
+
8
28
  ## 🔖 [4.1.12] (2026-02-28)
9
29
 
10
30
  ### ✅ Added
@@ -339,6 +359,7 @@ Updated dependency: now requires `@aneuhold/core-ts-lib@^2.3.11`.
339
359
 
340
360
  <!-- Link References -->
341
361
 
362
+ [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
363
  [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
364
  [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
365
  [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":"AAKA,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,4CAA4C,EAC7C,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAEvE,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACzB,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC5B,MAAM,gDAAgD,CAAC;AAExD,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAE3F,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC3B,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EACL,kCAAkC,EAClC,gCAAgC,EACjC,MAAM,mDAAmD,CAAC;AAE3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,OAAO,EAAE,iCAAiC,EAAE,MAAM,+CAA+C,CAAC;AAElG,OAAO,EAAE,4BAA4B,EAAE,MAAM,oDAAoD,CAAC;AAElG,OAAO,EACL,SAAS,EACT,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACzB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC7B,MAAM,+CAA+C,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACzF,OAAO,sBAAsB,EAAE,EAC7B,4BAA4B,EAC7B,MAAM,2DAA2D,CAAC;AACnE,OAAO,yBAAyB,EAAE,EAChC,+BAA+B,EAChC,MAAM,iEAAiE,CAAC;AAOzE,OAAO,EACL,iCAAiC,EACjC,qCAAqC,EACrC,2CAA2C,EAC3C,2BAA2B,EAC5B,MAAM,mDAAmD,CAAC;AAM3D,OAAO,EACL,6BAA6B,EAC7B,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,EACvB,6BAA6B,EAC7B,oBAAoB,EACrB,MAAM,mDAAmD,CAAC;AAO3D,OAAO,EACL,yCAAyC,EACzC,mCAAmC,EACnC,mBAAmB,EACnB,yBAAyB,EACzB,0BAA0B,EAC1B,gCAAgC,EAChC,8BAA8B,EAC9B,+BAA+B,EAChC,MAAM,iDAAiD,CAAC;AAKzD,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC3B,MAAM,+CAA+C,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAE5D,OAAO,oBAAoB,MAAM,0CAA0C,CAAC;AAC5E,OAAO,2BAA2B,MAAM,iEAAiE,CAAC;AAC1G,OAAO,sBAAsB,MAAM,uDAAuD,CAAC;AAC3F,OAAO,iCAAiC,MAAM,6EAA6E,CAAC;AAC5H,OAAO,2BAA2B,MAAM,6DAA6D,CAAC;AACtG,OAAO,uBAAuB,MAAM,yDAAyD,CAAC;AAC9F,OAAO,wBAAwB,MAAM,2DAA2D,CAAC;AACjG,OAAO,qBAAqB,EAAE,EAC5B,wBAAwB,EACzB,MAAM,qDAAqD,CAAC;AAC7D,OAAO,6BAA6B,MAAM,qEAAqE,CAAC;AAChH,OAAO,iBAAiB,MAAM,6CAA6C,CAAC;AAC5E,OAAO,iBAAiB,MAAM,kDAAkD,CAAC;AAEjF,kEAAkE;AAClE,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,0BAA0B,EAC1B,4CAA4C,EAC5C,SAAS,EACT,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,iCAAiC,EACjC,qCAAqC,EACrC,2CAA2C,EAC3C,yCAAyC,EACzC,mCAAmC,EACnC,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,0BAA0B,EAC1B,gCAAgC,EAChC,8BAA8B,EAC9B,+BAA+B,EAC/B,2BAA2B,EAC3B,yBAAyB,EACzB,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,4BAA4B,EAC5B,0BAA0B,EAC1B,sBAAsB,EACtB,4BAA4B,EAC5B,wBAAwB,EACxB,6BAA6B,EAC7B,yBAAyB,EACzB,+BAA+B,EAC/B,2BAA2B,EAC3B,6BAA6B,EAC7B,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,EACvB,6BAA6B,EAC7B,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,wBAAwB,EACxB,2BAA2B,EAC3B,aAAa,EACb,UAAU,EACV,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,EAC3B,uBAAuB,EACvB,kCAAkC,EAClC,gCAAgC,EAChC,iCAAiC,EACjC,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,2BAA2B,EAC3B,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,wBAAwB,EACxB,iCAAiC,EACjC,sBAAsB,EACtB,8BAA8B,EAC9B,4BAA4B,EAC5B,6BAA6B,EAC7B,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EAClB,CAAC"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAKhF,OAAO,EAAE,iCAAiC,EAAE,MAAM,+CAA+C,CAAC;AAMlG,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,4CAA4C,EAC7C,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAEvE,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACzB,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC5B,MAAM,gDAAgD,CAAC;AAExD,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAE3F,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC3B,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EACL,kCAAkC,EAClC,gCAAgC,EACjC,MAAM,mDAAmD,CAAC;AAE3D,OAAO,EACL,SAAS,EACT,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACzB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC7B,MAAM,+CAA+C,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACzF,OAAO,sBAAsB,EAAE,EAC7B,4BAA4B,EAC7B,MAAM,2DAA2D,CAAC;AACnE,OAAO,yBAAyB,EAAE,EAChC,+BAA+B,EAChC,MAAM,iEAAiE,CAAC;AAOzE,OAAO,EACL,iCAAiC,EACjC,qCAAqC,EACrC,2CAA2C,EAC3C,2BAA2B,EAC5B,MAAM,mDAAmD,CAAC;AAM3D,OAAO,EACL,6BAA6B,EAC7B,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,EACvB,6BAA6B,EAC7B,oBAAoB,EACrB,MAAM,mDAAmD,CAAC;AAO3D,OAAO,EACL,yCAAyC,EACzC,mCAAmC,EACnC,mBAAmB,EACnB,yBAAyB,EACzB,0BAA0B,EAC1B,gCAAgC,EAChC,8BAA8B,EAC9B,+BAA+B,EAChC,MAAM,iDAAiD,CAAC;AAKzD,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC3B,MAAM,+CAA+C,CAAC;AACvD,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,+DAA+D,CAAC;AAGvE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,oDAAoD,CAAC;AAElG,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAE5D,OAAO,oBAAoB,MAAM,0CAA0C,CAAC;AAC5E,OAAO,2BAA2B,MAAM,iEAAiE,CAAC;AAC1G,OAAO,sBAAsB,MAAM,uDAAuD,CAAC;AAC3F,OAAO,iCAAiC,MAAM,6EAA6E,CAAC;AAC5H,OAAO,2BAA2B,MAAM,6DAA6D,CAAC;AACtG,OAAO,uBAAuB,MAAM,yDAAyD,CAAC;AAC9F,OAAO,wBAAwB,MAAM,2DAA2D,CAAC;AACjG,OAAO,qBAAqB,EAAE,EAC5B,wBAAwB,EACzB,MAAM,qDAAqD,CAAC;AAC7D,OAAO,6BAA6B,MAAM,qEAAqE,CAAC;AAChH,OAAO,iBAAiB,MAAM,6CAA6C,CAAC;AAC5E,OAAO,iBAAiB,MAAM,kDAAkD,CAAC;AACjF,OAAO,4BAA4B,MAAM,wEAAwE,CAAC;AAElH,kEAAkE;AAClE,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,0BAA0B,EAC1B,4CAA4C,EAC5C,SAAS,EACT,qBAAqB,EACrB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,iCAAiC,EACjC,qCAAqC,EACrC,2CAA2C,EAC3C,yCAAyC,EACzC,mCAAmC,EACnC,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,0BAA0B,EAC1B,gCAAgC,EAChC,8BAA8B,EAC9B,+BAA+B,EAC/B,2BAA2B,EAC3B,yBAAyB,EACzB,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,4BAA4B,EAC5B,0BAA0B,EAC1B,sBAAsB,EACtB,4BAA4B,EAC5B,wBAAwB,EACxB,6BAA6B,EAC7B,yBAAyB,EACzB,+BAA+B,EAC/B,2BAA2B,EAC3B,6BAA6B,EAC7B,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,EACvB,6BAA6B,EAC7B,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,2BAA2B,EAC3B,aAAa,EACb,UAAU,EACV,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,EAC3B,uBAAuB,EACvB,kCAAkC,EAClC,gCAAgC,EAChC,iCAAiC,EACjC,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,2BAA2B,EAC3B,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,wBAAwB,EACxB,iCAAiC,EACjC,sBAAsB,EACtB,8BAA8B,EAC9B,4BAA4B,EAC5B,6BAA6B,EAC7B,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,4BAA4B,EAC7B,CAAC"}
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 muscle group per session). */
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,8EAA8E;IAC9E,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 muscle group per session). */
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
+ };
@@ -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"}
@@ -1,6 +1,7 @@
1
1
  import { ExerciseProgressionType, ExerciseRepRange } from '../../../documents/workout/WorkoutExercise.js';
2
2
  import WorkoutEquipmentTypeService from '../EquipmentType/WorkoutEquipmentTypeService.js';
3
3
  import WorkoutExerciseCalibrationService from '../ExerciseCalibration/WorkoutExerciseCalibrationService.js';
4
+ import WorkoutSessionExerciseService from '../SessionExercise/WorkoutSessionExerciseService.js';
4
5
  import WorkoutSFRService from '../util/SFR/WorkoutSFRService.js';
5
6
  /**
6
7
  * A service for handling operations related to {@link WorkoutExercise}s.
@@ -41,6 +42,10 @@ export default class WorkoutExerciseService {
41
42
  * This method applies either rep-based or load-based progression depending on the exercise's
42
43
  * preferred progression type, then rounds the weight to available equipment options.
43
44
  *
45
+ * When a `previousFirstSet` is provided, autoregulation adjusts progression based on the
46
+ * surplus between planned and actual performance. Without it, the calibration-based formula
47
+ * is used as a baseline.
48
+ *
44
49
  * Rep progression: The weight is calculated based on reps at microcycle 0, and reps increase
45
50
  * by 2 per microcycle to reach max reps at the final accumulation microcycle (ideally),
46
51
  * or drop back down and increase weight by 2%.
@@ -49,7 +54,7 @@ export default class WorkoutExerciseService {
49
54
  * If weight can't be increased, adds 2 reps instead.
50
55
  */
51
56
  static calculateTargetRepsAndWeightForFirstSet(params) {
52
- const { exercise, calibration, equipment, microcycleIndex, firstMicrocycleRir } = params;
57
+ const { exercise, calibration, equipment, microcycleIndex, firstMicrocycleRir, previousFirstSet } = params;
53
58
  // Validate equipment has weight options
54
59
  if (!equipment.weightOptions || equipment.weightOptions.length === 0) {
55
60
  throw new Error(`No weight options defined for equipment type ${equipment._id}, ${equipment.title}`);
@@ -57,6 +62,134 @@ export default class WorkoutExerciseService {
57
62
  // Get rep range for this exercise
58
63
  const repRange = this.getRepRangeValues(exercise.repRange);
59
64
  const repRangeMidpoint = Math.floor((repRange.min + repRange.max) / 2);
65
+ // If we have a previous set with complete data, use autoregulation
66
+ if (previousFirstSet && this.hasCompleteAutoRegulationData(previousFirstSet)) {
67
+ return this.calculateAutoRegulatedTargets({
68
+ exercise,
69
+ equipment,
70
+ previousFirstSet,
71
+ repRange
72
+ });
73
+ }
74
+ // Calibration-based formula (no previous set available)
75
+ return this.calculateCalibrationBasedTargets({
76
+ exercise,
77
+ calibration,
78
+ equipment,
79
+ microcycleIndex,
80
+ firstMicrocycleRir,
81
+ repRange,
82
+ repRangeMidpoint
83
+ });
84
+ }
85
+ /**
86
+ * Calculates targets using auto-regulation based on actual performance from a previous set.
87
+ */
88
+ static calculateAutoRegulatedTargets(params) {
89
+ const { exercise, equipment, previousFirstSet, repRange } = params;
90
+ const surplus = WorkoutSessionExerciseService.calculateSetSurplus(previousFirstSet.actualReps, previousFirstSet.plannedReps, previousFirstSet.rir, previousFirstSet.plannedRir);
91
+ if (exercise.preferredProgressionType === ExerciseProgressionType.Rep) {
92
+ return this.calculateAutoRegulatedRepTargets(previousFirstSet, surplus, repRange, equipment);
93
+ }
94
+ return this.calculateAutoRegulatedLoadTargets(previousFirstSet, surplus, repRange, equipment);
95
+ }
96
+ /**
97
+ * Auto-regulated rep progression. Weight stays the same, reps adjust based on surplus.
98
+ *
99
+ * | Surplus | Action |
100
+ * |---:|---|
101
+ * | >= 3 | Accelerate: actualReps + 2 (progress from actual, not planned) |
102
+ * | 0 to 2 | Normal: plannedReps + 2 |
103
+ * | -1 to -2 | Hold: plannedReps (don't add reps) |
104
+ * | <= -3 | Regress: actualReps (use actual as new baseline) |
105
+ */
106
+ static calculateAutoRegulatedRepTargets(previousSet, surplus, repRange, equipment) {
107
+ let targetReps;
108
+ let targetWeight = previousSet.plannedWeight;
109
+ if (surplus >= 3) {
110
+ targetReps = previousSet.actualReps + 2;
111
+ }
112
+ else if (surplus >= 0) {
113
+ targetReps = previousSet.plannedReps + 2;
114
+ }
115
+ else if (surplus >= -2) {
116
+ targetReps = previousSet.plannedReps;
117
+ }
118
+ else {
119
+ targetReps = previousSet.actualReps;
120
+ }
121
+ // Clamp to rep range floor (never target below min, even if actual was 0)
122
+ targetReps = Math.max(targetReps, repRange.min);
123
+ // Handle rep range ceiling: if target exceeds max, reset and bump weight
124
+ if (targetReps > repRange.max) {
125
+ targetReps = repRange.max;
126
+ const nextWeight = this.findNextTwoPercentWeight(targetWeight, equipment);
127
+ if (nextWeight !== null) {
128
+ targetWeight = nextWeight;
129
+ }
130
+ }
131
+ // Round weight to equipment
132
+ const roundedWeight = WorkoutEquipmentTypeService.findNearestWeight(equipment, targetWeight, 'prefer-down');
133
+ if (roundedWeight !== null) {
134
+ targetWeight = roundedWeight;
135
+ }
136
+ return { targetWeight, targetReps };
137
+ }
138
+ /**
139
+ * Auto-regulated load progression. Reps stay at rep range max, weight adjusts based on surplus.
140
+ *
141
+ * | Surplus | Action |
142
+ * |---:|---|
143
+ * | >= 2 | Accelerate: increase weight by ~4% |
144
+ * | 0 to 1 | Normal: increase weight by 2% |
145
+ * | -1 to -2 | Hold weight (no increase) |
146
+ * | <= -3 | Reduce weight by minimum equipment increment |
147
+ */
148
+ static calculateAutoRegulatedLoadTargets(previousSet, surplus, repRange, equipment) {
149
+ const targetReps = repRange.max;
150
+ let targetWeight = previousSet.plannedWeight;
151
+ if (surplus >= 2) {
152
+ // Accelerate: increase by ~4%
153
+ const fourPercentIncrease = targetWeight * 1.04;
154
+ const nextWeight = WorkoutEquipmentTypeService.findNearestWeight(equipment, fourPercentIncrease, 'up');
155
+ if (nextWeight !== null) {
156
+ targetWeight = nextWeight;
157
+ }
158
+ }
159
+ else if (surplus >= 0) {
160
+ // Normal: increase by 2%
161
+ const nextWeight = this.findNextTwoPercentWeight(targetWeight, equipment);
162
+ if (nextWeight !== null) {
163
+ targetWeight = nextWeight;
164
+ }
165
+ }
166
+ else if (surplus >= -2) {
167
+ // Hold weight - no change
168
+ }
169
+ else {
170
+ // Reduce by minimum equipment increment
171
+ const reducedWeight = WorkoutEquipmentTypeService.findNearestWeight(equipment, targetWeight - 0.01, 'down');
172
+ if (reducedWeight !== null) {
173
+ targetWeight = reducedWeight;
174
+ }
175
+ }
176
+ return { targetWeight, targetReps };
177
+ }
178
+ /**
179
+ * Checks whether a set has all the data needed for autoregulation calculations.
180
+ */
181
+ static hasCompleteAutoRegulationData(set) {
182
+ return (set.actualReps != null &&
183
+ set.plannedReps != null &&
184
+ set.rir != null &&
185
+ set.plannedRir != null &&
186
+ set.plannedWeight != null);
187
+ }
188
+ /**
189
+ * Calculates targets using the calibration-based formula (original behavior).
190
+ */
191
+ static calculateCalibrationBasedTargets(params) {
192
+ const { exercise, calibration, equipment, microcycleIndex, firstMicrocycleRir, repRange, repRangeMidpoint } = params;
60
193
  // For rep progression, calculate weight based on reps at microcycle 0
61
194
  // For load progression, use max reps
62
195
  let baseRepsForWeight;
@@ -1 +1 @@
1
- {"version":3,"file":"WorkoutExerciseService.js","sourceRoot":"","sources":["../../../../src/services/workout/Exercise/WorkoutExerciseService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkoutExerciseService.js","sourceRoot":"","sources":["../../../../src/services/workout/Exercise/WorkoutExerciseService.ts"],"names":[],"mappings":"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"}