@aneuhold/core-ts-db-lib 4.1.6 → 4.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/lib/browser.d.ts +2 -2
- package/lib/browser.d.ts.map +1 -1
- package/lib/browser.js +2 -2
- package/lib/browser.js.map +1 -1
- package/lib/browser.ts +4 -1
- package/lib/services/workout/Session/WorkoutSessionService.d.ts +27 -0
- package/lib/services/workout/Session/WorkoutSessionService.d.ts.map +1 -1
- package/lib/services/workout/Session/WorkoutSessionService.js +40 -0
- package/lib/services/workout/Session/WorkoutSessionService.js.map +1 -1
- package/lib/services/workout/Session/WorkoutSessionService.ts +46 -1
- package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.d.ts +11 -3
- package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.d.ts.map +1 -1
- package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.js +25 -6
- package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.js.map +1 -1
- package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.ts +34 -7
- package/lib/services/workout/Set/WorkoutSetService.d.ts.map +1 -1
- package/lib/services/workout/Set/WorkoutSetService.js +4 -2
- package/lib/services/workout/Set/WorkoutSetService.js.map +1 -1
- package/lib/services/workout/Set/WorkoutSetService.ts +4 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,22 @@ 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.7] (2026-02-21)
|
|
9
|
+
|
|
10
|
+
### ✅ Added
|
|
11
|
+
|
|
12
|
+
- Added `WorkoutSessionLockReason` enum with values `MesocycleNotStarted`, `PreviousMicrocycleNotCompleted`, and `PreviousSessionNotCompleted`.
|
|
13
|
+
- Added `WorkoutSessionService.getSessionLockReason()` to determine whether a session is locked and why.
|
|
14
|
+
- Added `WorkoutSessionExerciseService.hasMidSessionMetricsFilled()` to check if mid-session metrics (mindMuscleConnection, pump, jointAndTissueDisruption, perceivedEffort, performanceScore) are filled.
|
|
15
|
+
|
|
16
|
+
### 🏗️ Changed
|
|
17
|
+
|
|
18
|
+
- _Breaking Change:_ Renamed `WorkoutSessionExerciseService.needsReview()` to `hasAllSessionMetricsFilled()`. The method now returns `true` when all metrics are filled (inverted semantics from the old method).
|
|
19
|
+
|
|
20
|
+
### 🩹 Fixed
|
|
21
|
+
|
|
22
|
+
- Fixed deload set generation to use the previous microcycle's index when calculating target weight/reps, preventing deload sets from being planned at a higher weight than the last accumulation cycle.
|
|
23
|
+
|
|
8
24
|
## 🔖 [4.1.6] (2026-02-21)
|
|
9
25
|
|
|
10
26
|
### 🏗️ Changed
|
|
@@ -265,6 +281,7 @@ Updated dependency: now requires `@aneuhold/core-ts-lib@^2.3.11`.
|
|
|
265
281
|
|
|
266
282
|
<!-- Link References -->
|
|
267
283
|
|
|
284
|
+
[4.1.7]: https://github.com/aneuhold/ts-libs/compare/core-ts-db-lib-v4.1.6...core-ts-db-lib-v4.1.7
|
|
268
285
|
[4.1.6]: https://github.com/aneuhold/ts-libs/compare/core-ts-db-lib-v4.1.5...core-ts-db-lib-v4.1.6
|
|
269
286
|
[4.1.5]: https://github.com/aneuhold/ts-libs/compare/core-ts-db-lib-v4.1.4...core-ts-db-lib-v4.1.5
|
|
270
287
|
[4.1.4]: https://github.com/aneuhold/ts-libs/compare/core-ts-db-lib-v4.1.3...core-ts-db-lib-v4.1.4
|
package/lib/browser.d.ts
CHANGED
|
@@ -56,10 +56,10 @@ import WorkoutExerciseCalibrationService from './services/workout/ExerciseCalibr
|
|
|
56
56
|
import WorkoutMesocyclePlanContext from './services/workout/Mesocycle/WorkoutMesocyclePlanContext.js';
|
|
57
57
|
import WorkoutMesocycleService from './services/workout/Mesocycle/WorkoutMesocycleService.js';
|
|
58
58
|
import WorkoutMicrocycleService from './services/workout/Microcycle/WorkoutMicrocycleService.js';
|
|
59
|
-
import WorkoutSessionService from './services/workout/Session/WorkoutSessionService.js';
|
|
59
|
+
import WorkoutSessionService, { WorkoutSessionLockReason } from './services/workout/Session/WorkoutSessionService.js';
|
|
60
60
|
import WorkoutSessionExerciseService from './services/workout/SessionExercise/WorkoutSessionExerciseService.js';
|
|
61
61
|
import WorkoutSetService from './services/workout/Set/WorkoutSetService.js';
|
|
62
62
|
import WorkoutSFRService from './services/workout/util/SFR/WorkoutSFRService.js';
|
|
63
|
-
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, 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, WorkoutExerciseSchema, WorkoutExerciseService, WorkoutMesocycle_docType, WorkoutMesocyclePlanContext, WorkoutMesocycleSchema, WorkoutMesocycleService, WorkoutMicrocycle_docType, WorkoutMicrocycleSchema, WorkoutMicrocycleService, WorkoutMuscleGroup_docType, WorkoutMuscleGroupSchema, WorkoutSession_docType, WorkoutSessionExercise_docType, WorkoutSessionExerciseSchema, WorkoutSessionExerciseService, WorkoutSessionSchema, WorkoutSessionService, WorkoutSet_docType, WorkoutSetSchema, WorkoutSetService, WorkoutSFRService };
|
|
63
|
+
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, 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, WorkoutExerciseSchema, WorkoutExerciseService, WorkoutMesocycle_docType, WorkoutMesocyclePlanContext, WorkoutMesocycleSchema, WorkoutMesocycleService, WorkoutMicrocycle_docType, WorkoutMicrocycleSchema, WorkoutMicrocycleService, WorkoutMuscleGroup_docType, WorkoutMuscleGroupSchema, WorkoutSession_docType, WorkoutSessionExercise_docType, WorkoutSessionExerciseSchema, WorkoutSessionExerciseService, WorkoutSessionSchema, WorkoutSessionService, WorkoutSet_docType, WorkoutSetSchema, WorkoutSetService, WorkoutSFRService };
|
|
64
64
|
export type { ApiKey, BaseDocument, BaseDocumentWithType, BaseDocumentWithUpdatedAndCreatedDates, CalibrationExercisePair, DashboardTagSetting, DashboardTagSettings, DashboardTask, DashboardTaskFilterAndSortResult, DashboardTaskFilterSettings, DashboardTaskListFilterSettings, DashboardTaskListGlobalFilterSettings, DashboardTaskListGlobalSortSettings, DashboardTaskListSortSettings, DashboardTaskMap, DashboardTaskSortSetting, DashboardTaskSortSettings, DashboardUserConfig, DocumentMap, ExerciseProperty, Fatigue, NonogramKatanaItem, NonogramKatanaUpgrade, ParentRecurringTaskInfo, RecurrenceFrequency, RecurrenceInfo, RequiredUserId, RSM, StandardFilterSetting, User, UserCTO, WorkoutEquipmentType, WorkoutExercise, WorkoutExerciseCalibration, WorkoutMesocycle, WorkoutMicrocycle, WorkoutMuscleGroup, WorkoutSession, WorkoutSessionExercise, WorkoutSet };
|
|
65
65
|
//# sourceMappingURL=browser.d.ts.map
|
package/lib/browser.d.ts.map
CHANGED
|
@@ -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
|
@@ -31,10 +31,10 @@ import WorkoutExerciseCalibrationService from './services/workout/ExerciseCalibr
|
|
|
31
31
|
import WorkoutMesocyclePlanContext from './services/workout/Mesocycle/WorkoutMesocyclePlanContext.js';
|
|
32
32
|
import WorkoutMesocycleService from './services/workout/Mesocycle/WorkoutMesocycleService.js';
|
|
33
33
|
import WorkoutMicrocycleService from './services/workout/Microcycle/WorkoutMicrocycleService.js';
|
|
34
|
-
import WorkoutSessionService from './services/workout/Session/WorkoutSessionService.js';
|
|
34
|
+
import WorkoutSessionService, { WorkoutSessionLockReason } from './services/workout/Session/WorkoutSessionService.js';
|
|
35
35
|
import WorkoutSessionExerciseService from './services/workout/SessionExercise/WorkoutSessionExerciseService.js';
|
|
36
36
|
import WorkoutSetService from './services/workout/Set/WorkoutSetService.js';
|
|
37
37
|
import WorkoutSFRService from './services/workout/util/SFR/WorkoutSFRService.js';
|
|
38
38
|
// Export all browser-safe functions and classes from this library
|
|
39
|
-
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, 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, WorkoutExerciseSchema, WorkoutExerciseService, WorkoutMesocycle_docType, WorkoutMesocyclePlanContext, WorkoutMesocycleSchema, WorkoutMesocycleService, WorkoutMicrocycle_docType, WorkoutMicrocycleSchema, WorkoutMicrocycleService, WorkoutMuscleGroup_docType, WorkoutMuscleGroupSchema, WorkoutSession_docType, WorkoutSessionExercise_docType, WorkoutSessionExerciseSchema, WorkoutSessionExerciseService, WorkoutSessionSchema, WorkoutSessionService, WorkoutSet_docType, WorkoutSetSchema, WorkoutSetService, WorkoutSFRService };
|
|
39
|
+
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, 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, WorkoutExerciseSchema, WorkoutExerciseService, WorkoutMesocycle_docType, WorkoutMesocyclePlanContext, WorkoutMesocycleSchema, WorkoutMesocycleService, WorkoutMicrocycle_docType, WorkoutMicrocycleSchema, WorkoutMicrocycleService, WorkoutMuscleGroup_docType, WorkoutMuscleGroupSchema, WorkoutSession_docType, WorkoutSessionExercise_docType, WorkoutSessionExerciseSchema, WorkoutSessionExerciseService, WorkoutSessionSchema, WorkoutSessionService, WorkoutSet_docType, WorkoutSetSchema, WorkoutSetService, WorkoutSFRService };
|
|
40
40
|
//# sourceMappingURL=browser.js.map
|
package/lib/browser.js.map
CHANGED
|
@@ -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;AAKhD,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;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,MAAM,qDAAqD,CAAC;
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
|
package/lib/browser.ts
CHANGED
|
@@ -153,7 +153,9 @@ import WorkoutExerciseCalibrationService from './services/workout/ExerciseCalibr
|
|
|
153
153
|
import WorkoutMesocyclePlanContext from './services/workout/Mesocycle/WorkoutMesocyclePlanContext.js';
|
|
154
154
|
import WorkoutMesocycleService from './services/workout/Mesocycle/WorkoutMesocycleService.js';
|
|
155
155
|
import WorkoutMicrocycleService from './services/workout/Microcycle/WorkoutMicrocycleService.js';
|
|
156
|
-
import WorkoutSessionService
|
|
156
|
+
import WorkoutSessionService, {
|
|
157
|
+
WorkoutSessionLockReason
|
|
158
|
+
} from './services/workout/Session/WorkoutSessionService.js';
|
|
157
159
|
import WorkoutSessionExerciseService from './services/workout/SessionExercise/WorkoutSessionExerciseService.js';
|
|
158
160
|
import WorkoutSetService from './services/workout/Set/WorkoutSetService.js';
|
|
159
161
|
import WorkoutSFRService from './services/workout/util/SFR/WorkoutSFRService.js';
|
|
@@ -208,6 +210,7 @@ export {
|
|
|
208
210
|
RecurrenceInfoSchema,
|
|
209
211
|
RequiredUserIdSchema,
|
|
210
212
|
RsmSchema,
|
|
213
|
+
WorkoutSessionLockReason,
|
|
211
214
|
StandardFilterSettingSchema,
|
|
212
215
|
UserCTOSchema,
|
|
213
216
|
UserSchema,
|
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
import type { UUID } from 'crypto';
|
|
2
2
|
import type { CalibrationExercisePair } from '../../../documents/workout/WorkoutExerciseCalibration.js';
|
|
3
|
+
import type { WorkoutMesocycle } from '../../../documents/workout/WorkoutMesocycle.js';
|
|
4
|
+
import type { WorkoutMicrocycle } from '../../../documents/workout/WorkoutMicrocycle.js';
|
|
3
5
|
import type { WorkoutSession } from '../../../documents/workout/WorkoutSession.js';
|
|
4
6
|
import type { WorkoutSessionExercise } from '../../../documents/workout/WorkoutSessionExercise.js';
|
|
5
7
|
import type { WorkoutSet } from '../../../documents/workout/WorkoutSet.js';
|
|
6
8
|
import type WorkoutMesocyclePlanContext from '../Mesocycle/WorkoutMesocyclePlanContext.js';
|
|
9
|
+
/**
|
|
10
|
+
* Describes why a session is locked and cannot be interacted with.
|
|
11
|
+
*/
|
|
12
|
+
export declare enum WorkoutSessionLockReason {
|
|
13
|
+
MesocycleNotStarted = "MesocycleNotStarted",
|
|
14
|
+
PreviousMicrocycleNotCompleted = "PreviousMicrocycleNotCompleted",
|
|
15
|
+
PreviousSessionNotCompleted = "PreviousSessionNotCompleted"
|
|
16
|
+
}
|
|
7
17
|
/**
|
|
8
18
|
* A service for handling operations related to {@link WorkoutSession}s.
|
|
9
19
|
*
|
|
@@ -31,6 +41,23 @@ export default class WorkoutSessionService {
|
|
|
31
41
|
* Calculates the Stimulus to Fatigue Ratio (SFR) for a session.
|
|
32
42
|
*/
|
|
33
43
|
static getSFR(session: WorkoutSession): number | null;
|
|
44
|
+
/**
|
|
45
|
+
* Returns the reason a session is locked, or `null` if the session is
|
|
46
|
+
* unlocked and can be interacted with.
|
|
47
|
+
*
|
|
48
|
+
* A session is unlocked when:
|
|
49
|
+
* - It has no microcycle (free-form session)
|
|
50
|
+
* - It has no mesocycle (free-form microcycle)
|
|
51
|
+
* - Its mesocycle has been started, the previous microcycle (if any) is
|
|
52
|
+
* completed, and the previous session in the same microcycle (if any)
|
|
53
|
+
* is complete.
|
|
54
|
+
*
|
|
55
|
+
* @param microcycle The session's parent microcycle, or null/undefined for free-form sessions.
|
|
56
|
+
* @param mesocycle The session's parent mesocycle, or null/undefined for free-form microcycles.
|
|
57
|
+
* @param previousMicrocycle The microcycle preceding the session's microcycle, or null/undefined if first.
|
|
58
|
+
* @param previousSessionInMicrocycle The session before this one in the same microcycle, or null/undefined if first.
|
|
59
|
+
*/
|
|
60
|
+
static getSessionLockReason(microcycle: WorkoutMicrocycle | null | undefined, mesocycle: WorkoutMesocycle | null | undefined, previousMicrocycle: WorkoutMicrocycle | null | undefined, previousSessionInMicrocycle: WorkoutSession | null | undefined): WorkoutSessionLockReason | null;
|
|
34
61
|
/**
|
|
35
62
|
* Finds the in-progress session and the next-up session in a single pass.
|
|
36
63
|
* - In-progress: complete === false, at least one set has actualReps != null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkoutSessionService.d.ts","sourceRoot":"","sources":["../../../../src/services/workout/Session/WorkoutSessionService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0DAA0D,CAAC;AACxG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;
|
|
1
|
+
{"version":3,"file":"WorkoutSessionService.d.ts","sourceRoot":"","sources":["../../../../src/services/workout/Session/WorkoutSessionService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0DAA0D,CAAC;AACxG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACzF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAEnF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AAEnG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,KAAK,2BAA2B,MAAM,6CAA6C,CAAC;AAI3F;;GAEG;AACH,oBAAY,wBAAwB;IAClC,mBAAmB,wBAAwB;IAC3C,8BAA8B,mCAAmC;IACjE,2BAA2B,gCAAgC;CAC5D;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAqB;IACxC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI;IAI1D;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI;IAI9D;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI;IAIrD;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,oBAAoB,CACzB,UAAU,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EAChD,SAAS,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,EAC9C,kBAAkB,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EACxD,2BAA2B,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAC7D,wBAAwB,GAAG,IAAI;IAalC;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,wBAAwB,CAC7B,QAAQ,EAAE,cAAc,EAAE,EAC1B,kBAAkB,EAAE,GAAG,CAAC,IAAI,EAAE,sBAAsB,CAAC,EACrD,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,GAC5B;QAAE,iBAAiB,EAAE,cAAc,GAAG,IAAI,CAAC;QAAC,aAAa,EAAE,cAAc,GAAG,IAAI,CAAA;KAAE;IAkBrF;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAgBnC;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,EACrB,OAAO,EACP,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,EACT,kBAAkB,EAClB,OAAO,EACR,EAAE;QACD,OAAO,EAAE,2BAA2B,CAAC;QACrC,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,IAAI,CAAC;QACvB,mBAAmB,EAAE,uBAAuB,EAAE,CAAC;QAC/C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,OAAO,EAAE;YAAE,oBAAoB,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAAC,mBAAmB,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;SAAE,CAAC;KACtF,GAAG,IAAI;CAqET"}
|
|
@@ -2,6 +2,15 @@ import { WorkoutSessionSchema } from '../../../documents/workout/WorkoutSession.
|
|
|
2
2
|
import { WorkoutSessionExerciseSchema } from '../../../documents/workout/WorkoutSessionExercise.js';
|
|
3
3
|
import WorkoutSetService from '../Set/WorkoutSetService.js';
|
|
4
4
|
import WorkoutSFRService from '../util/SFR/WorkoutSFRService.js';
|
|
5
|
+
/**
|
|
6
|
+
* Describes why a session is locked and cannot be interacted with.
|
|
7
|
+
*/
|
|
8
|
+
export var WorkoutSessionLockReason;
|
|
9
|
+
(function (WorkoutSessionLockReason) {
|
|
10
|
+
WorkoutSessionLockReason["MesocycleNotStarted"] = "MesocycleNotStarted";
|
|
11
|
+
WorkoutSessionLockReason["PreviousMicrocycleNotCompleted"] = "PreviousMicrocycleNotCompleted";
|
|
12
|
+
WorkoutSessionLockReason["PreviousSessionNotCompleted"] = "PreviousSessionNotCompleted";
|
|
13
|
+
})(WorkoutSessionLockReason || (WorkoutSessionLockReason = {}));
|
|
5
14
|
/**
|
|
6
15
|
* A service for handling operations related to {@link WorkoutSession}s.
|
|
7
16
|
*
|
|
@@ -35,6 +44,37 @@ export default class WorkoutSessionService {
|
|
|
35
44
|
static getSFR(session) {
|
|
36
45
|
return WorkoutSFRService.getSFR(session.rsm, session.fatigue);
|
|
37
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Returns the reason a session is locked, or `null` if the session is
|
|
49
|
+
* unlocked and can be interacted with.
|
|
50
|
+
*
|
|
51
|
+
* A session is unlocked when:
|
|
52
|
+
* - It has no microcycle (free-form session)
|
|
53
|
+
* - It has no mesocycle (free-form microcycle)
|
|
54
|
+
* - Its mesocycle has been started, the previous microcycle (if any) is
|
|
55
|
+
* completed, and the previous session in the same microcycle (if any)
|
|
56
|
+
* is complete.
|
|
57
|
+
*
|
|
58
|
+
* @param microcycle The session's parent microcycle, or null/undefined for free-form sessions.
|
|
59
|
+
* @param mesocycle The session's parent mesocycle, or null/undefined for free-form microcycles.
|
|
60
|
+
* @param previousMicrocycle The microcycle preceding the session's microcycle, or null/undefined if first.
|
|
61
|
+
* @param previousSessionInMicrocycle The session before this one in the same microcycle, or null/undefined if first.
|
|
62
|
+
*/
|
|
63
|
+
static getSessionLockReason(microcycle, mesocycle, previousMicrocycle, previousSessionInMicrocycle) {
|
|
64
|
+
if (!microcycle)
|
|
65
|
+
return null;
|
|
66
|
+
if (!mesocycle)
|
|
67
|
+
return null;
|
|
68
|
+
if (mesocycle.startDate == null)
|
|
69
|
+
return WorkoutSessionLockReason.MesocycleNotStarted;
|
|
70
|
+
if (previousMicrocycle && previousMicrocycle.completedDate == null) {
|
|
71
|
+
return WorkoutSessionLockReason.PreviousMicrocycleNotCompleted;
|
|
72
|
+
}
|
|
73
|
+
if (previousSessionInMicrocycle && !previousSessionInMicrocycle.complete) {
|
|
74
|
+
return WorkoutSessionLockReason.PreviousSessionNotCompleted;
|
|
75
|
+
}
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
38
78
|
/**
|
|
39
79
|
* Finds the in-progress session and the next-up session in a single pass.
|
|
40
80
|
* - In-progress: complete === false, at least one set has actualReps != null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkoutSessionService.js","sourceRoot":"","sources":["../../../../src/services/workout/Session/WorkoutSessionService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WorkoutSessionService.js","sourceRoot":"","sources":["../../../../src/services/workout/Session/WorkoutSessionService.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AAEpF,OAAO,EAAE,4BAA4B,EAAE,MAAM,sDAAsD,CAAC;AAGpG,OAAO,iBAAiB,MAAM,6BAA6B,CAAC;AAC5D,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AAEjE;;GAEG;AACH,MAAM,CAAN,IAAY,wBAIX;AAJD,WAAY,wBAAwB;IAClC,uEAA2C,CAAA;IAC3C,6FAAiE,CAAA;IACjE,uFAA2D,CAAA;AAC7D,CAAC,EAJW,wBAAwB,KAAxB,wBAAwB,QAInC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAqB;IACxC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,OAAuB;QACxC,OAAO,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAuB;QAC5C,OAAO,iBAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,OAAuB;QACnC,OAAO,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,oBAAoB,CACzB,UAAgD,EAChD,SAA8C,EAC9C,kBAAwD,EACxD,2BAA8D;QAE9D,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAC7B,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAC5B,IAAI,SAAS,CAAC,SAAS,IAAI,IAAI;YAAE,OAAO,wBAAwB,CAAC,mBAAmB,CAAC;QACrF,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC;YACnE,OAAO,wBAAwB,CAAC,8BAA8B,CAAC;QACjE,CAAC;QACD,IAAI,2BAA2B,IAAI,CAAC,2BAA2B,CAAC,QAAQ,EAAE,CAAC;YACzE,OAAO,wBAAwB,CAAC,2BAA2B,CAAC;QAC9D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,wBAAwB,CAC7B,QAA0B,EAC1B,kBAAqD,EACrD,MAA6B;QAE7B,IAAI,iBAAiB,GAA0B,IAAI,CAAC;QACpD,IAAI,aAAa,GAA0B,IAAI,CAAC;QAEhD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,QAAQ;gBAAE,SAAS;YAE/B,IAAI,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,CAAC;gBACnE,IAAI,CAAC,iBAAiB;oBAAE,iBAAiB,GAAG,OAAO,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa;oBAAE,aAAa,GAAG,OAAO,CAAC;YAC9C,CAAC;YACD,IAAI,iBAAiB,IAAI,aAAa;gBAAE,MAAM;QAChD,CAAC;QAED,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,oBAAoB,CACjC,OAAuB,EACvB,kBAAqD,EACrD,MAA6B;QAE7B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;YAChD,MAAM,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,EAAE;gBAAE,SAAS;YAClB,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAChC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,GAAG,EAAE,UAAU,IAAI,IAAI;oBAAE,OAAO,IAAI,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,EACrB,OAAO,EACP,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,EACT,kBAAkB,EAClB,OAAO,EAUR;QACC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,MAAM,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;QAE/D,MAAM,eAAe,GAAG,OAAO,CAAC;QAEhC,iBAAiB;QACjB,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC;YACzC,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,mBAAmB,EAAE,UAAU,CAAC,GAAG;YACnC,KAAK,EAAE,cAAc,eAAe,GAAG,CAAC,cAAc,YAAY,GAAG,CAAC,EAAE;YACxE,SAAS,EAAE,gBAAgB;SAC5B,CAAC,CAAC;QAEH,wDAAwD;QACxD,KAAK,IAAI,aAAa,GAAG,CAAC,EAAE,aAAa,GAAG,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC;YACxF,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;YAErE,MAAM,gBAAgB,GAAG,eAAe,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAChF,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CACb,kCAAkC,QAAQ,CAAC,GAAG,KAAK,QAAQ,CAAC,YAAY,kBAAkB,eAAe,EAAE,CAC5G,CAAC;YACJ,CAAC;YAED,wCAAwC;YACxC,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;YAC5E,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CACb,yCAAyC,QAAQ,CAAC,GAAG,KAAK,QAAQ,CAAC,YAAY,EAAE,CAClF,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,SAAS,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrE,MAAM,IAAI,KAAK,CACb,gDAAgD,SAAS,CAAC,GAAG,KAAK,SAAS,CAAC,KAAK,EAAE,CACpF,CAAC;YACJ,CAAC;YAED,MAAM,eAAe,GAAG,4BAA4B,CAAC,KAAK,CAAC;gBACzD,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,gBAAgB,EAAE,OAAO,CAAC,GAAG;gBAC7B,iBAAiB,EAAE,QAAQ,CAAC,GAAG;gBAC/B,kBAAkB,EAAE,eAAe,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;aAC1E,CAAC,CAAC;YAEH,iBAAiB,CAAC,8BAA8B,CAAC;gBAC/C,OAAO;gBACP,QAAQ;gBACR,WAAW;gBACX,OAAO;gBACP,eAAe;gBACf,eAAe;gBACf,YAAY;gBACZ,QAAQ,EAAE,gBAAgB;gBAC1B,SAAS;gBACT,kBAAkB;aACnB,CAAC,CAAC;YAEH,MAAM,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,CAAC;YAE1E,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACxE,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YACvD,OAAO,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;QAC9C,CAAC;QAED,wDAAwD;QACxD,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1C,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;CACF"}
|
|
@@ -1,14 +1,25 @@
|
|
|
1
1
|
import type { UUID } from 'crypto';
|
|
2
2
|
import type { CalibrationExercisePair } from '../../../documents/workout/WorkoutExerciseCalibration.js';
|
|
3
|
+
import type { WorkoutMesocycle } from '../../../documents/workout/WorkoutMesocycle.js';
|
|
4
|
+
import type { WorkoutMicrocycle } from '../../../documents/workout/WorkoutMicrocycle.js';
|
|
3
5
|
import type { WorkoutSession } from '../../../documents/workout/WorkoutSession.js';
|
|
4
6
|
import { WorkoutSessionSchema } from '../../../documents/workout/WorkoutSession.js';
|
|
5
|
-
import { WorkoutSessionExerciseSchema } from '../../../documents/workout/WorkoutSessionExercise.js';
|
|
6
7
|
import type { WorkoutSessionExercise } from '../../../documents/workout/WorkoutSessionExercise.js';
|
|
8
|
+
import { WorkoutSessionExerciseSchema } from '../../../documents/workout/WorkoutSessionExercise.js';
|
|
7
9
|
import type { WorkoutSet } from '../../../documents/workout/WorkoutSet.js';
|
|
8
10
|
import type WorkoutMesocyclePlanContext from '../Mesocycle/WorkoutMesocyclePlanContext.js';
|
|
9
11
|
import WorkoutSetService from '../Set/WorkoutSetService.js';
|
|
10
12
|
import WorkoutSFRService from '../util/SFR/WorkoutSFRService.js';
|
|
11
13
|
|
|
14
|
+
/**
|
|
15
|
+
* Describes why a session is locked and cannot be interacted with.
|
|
16
|
+
*/
|
|
17
|
+
export enum WorkoutSessionLockReason {
|
|
18
|
+
MesocycleNotStarted = 'MesocycleNotStarted',
|
|
19
|
+
PreviousMicrocycleNotCompleted = 'PreviousMicrocycleNotCompleted',
|
|
20
|
+
PreviousSessionNotCompleted = 'PreviousSessionNotCompleted'
|
|
21
|
+
}
|
|
22
|
+
|
|
12
23
|
/**
|
|
13
24
|
* A service for handling operations related to {@link WorkoutSession}s.
|
|
14
25
|
*
|
|
@@ -45,6 +56,40 @@ export default class WorkoutSessionService {
|
|
|
45
56
|
return WorkoutSFRService.getSFR(session.rsm, session.fatigue);
|
|
46
57
|
}
|
|
47
58
|
|
|
59
|
+
/**
|
|
60
|
+
* Returns the reason a session is locked, or `null` if the session is
|
|
61
|
+
* unlocked and can be interacted with.
|
|
62
|
+
*
|
|
63
|
+
* A session is unlocked when:
|
|
64
|
+
* - It has no microcycle (free-form session)
|
|
65
|
+
* - It has no mesocycle (free-form microcycle)
|
|
66
|
+
* - Its mesocycle has been started, the previous microcycle (if any) is
|
|
67
|
+
* completed, and the previous session in the same microcycle (if any)
|
|
68
|
+
* is complete.
|
|
69
|
+
*
|
|
70
|
+
* @param microcycle The session's parent microcycle, or null/undefined for free-form sessions.
|
|
71
|
+
* @param mesocycle The session's parent mesocycle, or null/undefined for free-form microcycles.
|
|
72
|
+
* @param previousMicrocycle The microcycle preceding the session's microcycle, or null/undefined if first.
|
|
73
|
+
* @param previousSessionInMicrocycle The session before this one in the same microcycle, or null/undefined if first.
|
|
74
|
+
*/
|
|
75
|
+
static getSessionLockReason(
|
|
76
|
+
microcycle: WorkoutMicrocycle | null | undefined,
|
|
77
|
+
mesocycle: WorkoutMesocycle | null | undefined,
|
|
78
|
+
previousMicrocycle: WorkoutMicrocycle | null | undefined,
|
|
79
|
+
previousSessionInMicrocycle: WorkoutSession | null | undefined
|
|
80
|
+
): WorkoutSessionLockReason | null {
|
|
81
|
+
if (!microcycle) return null;
|
|
82
|
+
if (!mesocycle) return null;
|
|
83
|
+
if (mesocycle.startDate == null) return WorkoutSessionLockReason.MesocycleNotStarted;
|
|
84
|
+
if (previousMicrocycle && previousMicrocycle.completedDate == null) {
|
|
85
|
+
return WorkoutSessionLockReason.PreviousMicrocycleNotCompleted;
|
|
86
|
+
}
|
|
87
|
+
if (previousSessionInMicrocycle && !previousSessionInMicrocycle.complete) {
|
|
88
|
+
return WorkoutSessionLockReason.PreviousSessionNotCompleted;
|
|
89
|
+
}
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
|
|
48
93
|
/**
|
|
49
94
|
* Finds the in-progress session and the next-up session in a single pass.
|
|
50
95
|
* - In-progress: complete === false, at least one set has actualReps != null
|
|
@@ -47,9 +47,17 @@ export default class WorkoutSessionExerciseService {
|
|
|
47
47
|
*/
|
|
48
48
|
static isDeloadExercise(exerciseSets: WorkoutSet[]): boolean;
|
|
49
49
|
/**
|
|
50
|
-
* Returns true if
|
|
51
|
-
*
|
|
50
|
+
* Returns true if all mid-session metrics are filled out for the session exercise.
|
|
51
|
+
* Mid-session metrics are filled out right after performing the exercise:
|
|
52
|
+
* mindMuscleConnection, pump, unusedMusclePerformance, perceivedEffort,
|
|
53
|
+
* and performanceScore. Deload exercises are always considered filled.
|
|
52
54
|
*/
|
|
53
|
-
static
|
|
55
|
+
static hasMidSessionMetricsFilled(sessionExercise: WorkoutSessionExercise, exerciseSets: WorkoutSet[]): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Returns true if all session metrics (both mid-session and post-session) are filled out.
|
|
58
|
+
* Post-session metrics are disruption, jointAndTissueDisruption, and sorenessScore.
|
|
59
|
+
* Deload exercises are always considered filled.
|
|
60
|
+
*/
|
|
61
|
+
static hasAllSessionMetricsFilled(sessionExercise: WorkoutSessionExercise, exerciseSets: WorkoutSet[]): boolean;
|
|
54
62
|
}
|
|
55
63
|
//# sourceMappingURL=WorkoutSessionExerciseService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkoutSessionExerciseService.d.ts","sourceRoot":"","sources":["../../../../src/services/workout/SessionExercise/WorkoutSessionExerciseService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AACnG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAG3E;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,6BAA6B;IAChD;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,sBAAsB,GAAG,MAAM,GAAG,IAAI;IAI1E;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,eAAe,EAAE,sBAAsB,GAAG,MAAM,GAAG,IAAI;IAI9E;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,sBAAsB,GAAG,MAAM,GAAG,IAAI;IAIrE;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,oCAAoC,CACzC,sBAAsB,EAAE,sBAAsB,GAC7C,MAAM,GAAG,IAAI;IAsBhB;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,OAAO;IAI5D
|
|
1
|
+
{"version":3,"file":"WorkoutSessionExerciseService.d.ts","sourceRoot":"","sources":["../../../../src/services/workout/SessionExercise/WorkoutSessionExerciseService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AACnG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAG3E;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,6BAA6B;IAChD;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,sBAAsB,GAAG,MAAM,GAAG,IAAI;IAI1E;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,eAAe,EAAE,sBAAsB,GAAG,MAAM,GAAG,IAAI;IAI9E;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,sBAAsB,GAAG,MAAM,GAAG,IAAI;IAIrE;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,oCAAoC,CACzC,sBAAsB,EAAE,sBAAsB,GAC7C,MAAM,GAAG,IAAI;IAsBhB;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,OAAO;IAI5D;;;;;OAKG;IACH,MAAM,CAAC,0BAA0B,CAC/B,eAAe,EAAE,sBAAsB,EACvC,YAAY,EAAE,UAAU,EAAE,GACzB,OAAO;IAWV;;;;OAIG;IACH,MAAM,CAAC,0BAA0B,CAC/B,eAAe,EAAE,sBAAsB,EACvC,YAAY,EAAE,UAAU,EAAE,GACzB,OAAO;CAWX"}
|
|
@@ -72,15 +72,34 @@ export default class WorkoutSessionExerciseService {
|
|
|
72
72
|
return exerciseSets.length > 0 && exerciseSets.every((s) => s.plannedRir == null);
|
|
73
73
|
}
|
|
74
74
|
/**
|
|
75
|
-
* Returns true if
|
|
76
|
-
*
|
|
75
|
+
* Returns true if all mid-session metrics are filled out for the session exercise.
|
|
76
|
+
* Mid-session metrics are filled out right after performing the exercise:
|
|
77
|
+
* mindMuscleConnection, pump, unusedMusclePerformance, perceivedEffort,
|
|
78
|
+
* and performanceScore. Deload exercises are always considered filled.
|
|
77
79
|
*/
|
|
78
|
-
static
|
|
80
|
+
static hasMidSessionMetricsFilled(sessionExercise, exerciseSets) {
|
|
79
81
|
if (WorkoutSessionExerciseService.isDeloadExercise(exerciseSets))
|
|
82
|
+
return true;
|
|
83
|
+
return (sessionExercise.rsm?.mindMuscleConnection != null &&
|
|
84
|
+
sessionExercise.rsm.pump != null &&
|
|
85
|
+
sessionExercise.fatigue?.unusedMusclePerformance != null &&
|
|
86
|
+
sessionExercise.fatigue.perceivedEffort != null &&
|
|
87
|
+
sessionExercise.performanceScore != null);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Returns true if all session metrics (both mid-session and post-session) are filled out.
|
|
91
|
+
* Post-session metrics are disruption, jointAndTissueDisruption, and sorenessScore.
|
|
92
|
+
* Deload exercises are always considered filled.
|
|
93
|
+
*/
|
|
94
|
+
static hasAllSessionMetricsFilled(sessionExercise, exerciseSets) {
|
|
95
|
+
if (!WorkoutSessionExerciseService.hasMidSessionMetricsFilled(sessionExercise, exerciseSets)) {
|
|
80
96
|
return false;
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
97
|
+
}
|
|
98
|
+
if (WorkoutSessionExerciseService.isDeloadExercise(exerciseSets))
|
|
99
|
+
return true;
|
|
100
|
+
return (sessionExercise.rsm?.disruption != null &&
|
|
101
|
+
sessionExercise.fatigue?.jointAndTissueDisruption != null &&
|
|
102
|
+
sessionExercise.sorenessScore != null);
|
|
84
103
|
}
|
|
85
104
|
}
|
|
86
105
|
//# sourceMappingURL=WorkoutSessionExerciseService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkoutSessionExerciseService.js","sourceRoot":"","sources":["../../../../src/services/workout/SessionExercise/WorkoutSessionExerciseService.ts"],"names":[],"mappings":"AAEA,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AAEjE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,6BAA6B;IAChD;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,eAAuC;QACxD,OAAO,iBAAiB,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,eAAuC;QAC5D,OAAO,iBAAiB,CAAC,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,eAAuC;QACnD,OAAO,iBAAiB,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAChF,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,oCAAoC,CACzC,sBAA8C;QAE9C,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,sBAAsB,CAAC;QACnE,IAAI,aAAa,IAAI,IAAI,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,gEAAgE;QAChE,0FAA0F;QAC1F,MAAM,KAAK,GAAe;YACxB,uDAAuD;YACvD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACb,uDAAuD;YACvD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACb,6DAA6D;YAC7D,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACb,6DAA6D;YAC7D,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACd,CAAC;QAEF,OAAO,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,YAA0B;QAChD,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;IACpF,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"WorkoutSessionExerciseService.js","sourceRoot":"","sources":["../../../../src/services/workout/SessionExercise/WorkoutSessionExerciseService.ts"],"names":[],"mappings":"AAEA,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AAEjE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,6BAA6B;IAChD;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,eAAuC;QACxD,OAAO,iBAAiB,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,eAAuC;QAC5D,OAAO,iBAAiB,CAAC,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,eAAuC;QACnD,OAAO,iBAAiB,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAChF,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,oCAAoC,CACzC,sBAA8C;QAE9C,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,sBAAsB,CAAC;QACnE,IAAI,aAAa,IAAI,IAAI,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,gEAAgE;QAChE,0FAA0F;QAC1F,MAAM,KAAK,GAAe;YACxB,uDAAuD;YACvD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACb,uDAAuD;YACvD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACb,6DAA6D;YAC7D,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACb,6DAA6D;YAC7D,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACd,CAAC;QAEF,OAAO,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,YAA0B;QAChD,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;IACpF,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,0BAA0B,CAC/B,eAAuC,EACvC,YAA0B;QAE1B,IAAI,6BAA6B,CAAC,gBAAgB,CAAC,YAAY,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9E,OAAO,CACL,eAAe,CAAC,GAAG,EAAE,oBAAoB,IAAI,IAAI;YACjD,eAAe,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI;YAChC,eAAe,CAAC,OAAO,EAAE,uBAAuB,IAAI,IAAI;YACxD,eAAe,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI;YAC/C,eAAe,CAAC,gBAAgB,IAAI,IAAI,CACzC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,0BAA0B,CAC/B,eAAuC,EACvC,YAA0B;QAE1B,IAAI,CAAC,6BAA6B,CAAC,0BAA0B,CAAC,eAAe,EAAE,YAAY,CAAC,EAAE,CAAC;YAC7F,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,6BAA6B,CAAC,gBAAgB,CAAC,YAAY,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9E,OAAO,CACL,eAAe,CAAC,GAAG,EAAE,UAAU,IAAI,IAAI;YACvC,eAAe,CAAC,OAAO,EAAE,wBAAwB,IAAI,IAAI;YACzD,eAAe,CAAC,aAAa,IAAI,IAAI,CACtC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -84,15 +84,42 @@ export default class WorkoutSessionExerciseService {
|
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
/**
|
|
87
|
-
* Returns true if
|
|
88
|
-
*
|
|
87
|
+
* Returns true if all mid-session metrics are filled out for the session exercise.
|
|
88
|
+
* Mid-session metrics are filled out right after performing the exercise:
|
|
89
|
+
* mindMuscleConnection, pump, unusedMusclePerformance, perceivedEffort,
|
|
90
|
+
* and performanceScore. Deload exercises are always considered filled.
|
|
89
91
|
*/
|
|
90
|
-
static
|
|
91
|
-
|
|
92
|
+
static hasMidSessionMetricsFilled(
|
|
93
|
+
sessionExercise: WorkoutSessionExercise,
|
|
94
|
+
exerciseSets: WorkoutSet[]
|
|
95
|
+
): boolean {
|
|
96
|
+
if (WorkoutSessionExerciseService.isDeloadExercise(exerciseSets)) return true;
|
|
92
97
|
return (
|
|
93
|
-
sessionExercise.rsm?.
|
|
94
|
-
sessionExercise.
|
|
95
|
-
sessionExercise.
|
|
98
|
+
sessionExercise.rsm?.mindMuscleConnection != null &&
|
|
99
|
+
sessionExercise.rsm.pump != null &&
|
|
100
|
+
sessionExercise.fatigue?.unusedMusclePerformance != null &&
|
|
101
|
+
sessionExercise.fatigue.perceivedEffort != null &&
|
|
102
|
+
sessionExercise.performanceScore != null
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Returns true if all session metrics (both mid-session and post-session) are filled out.
|
|
108
|
+
* Post-session metrics are disruption, jointAndTissueDisruption, and sorenessScore.
|
|
109
|
+
* Deload exercises are always considered filled.
|
|
110
|
+
*/
|
|
111
|
+
static hasAllSessionMetricsFilled(
|
|
112
|
+
sessionExercise: WorkoutSessionExercise,
|
|
113
|
+
exerciseSets: WorkoutSet[]
|
|
114
|
+
): boolean {
|
|
115
|
+
if (!WorkoutSessionExerciseService.hasMidSessionMetricsFilled(sessionExercise, exerciseSets)) {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
if (WorkoutSessionExerciseService.isDeloadExercise(exerciseSets)) return true;
|
|
119
|
+
return (
|
|
120
|
+
sessionExercise.rsm?.disruption != null &&
|
|
121
|
+
sessionExercise.fatigue?.jointAndTissueDisruption != null &&
|
|
122
|
+
sessionExercise.sorenessScore != null
|
|
96
123
|
);
|
|
97
124
|
}
|
|
98
125
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkoutSetService.d.ts","sourceRoot":"","sources":["../../../../src/services/workout/Set/WorkoutSetService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,eAAe,EAChB,MAAM,+CAA+C,CAAC;AACvD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0DAA0D,CAAC;AAC3G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AACnG,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAG7F,OAAO,KAAK,2BAA2B,MAAM,6CAA6C,CAAC;AAE3F,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC;;;;;;;OAOG;IACH,MAAM,CAAC,8BAA8B,CAAC,EACpC,OAAO,EACP,QAAQ,EACR,WAAW,EACX,OAAO,EACP,eAAe,EACf,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,kBAAkB,EACnB,EAAE;QACD,OAAO,EAAE,2BAA2B,CAAC;QACrC,QAAQ,EAAE,eAAe,CAAC;QAC1B,WAAW,EAAE,0BAA0B,CAAC;QACxC,OAAO,EAAE,cAAc,CAAC;QACxB,eAAe,EAAE,sBAAsB,CAAC;QACxC,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,kBAAkB,EAAE,OAAO,CAAC;KAC7B,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"WorkoutSetService.d.ts","sourceRoot":"","sources":["../../../../src/services/workout/Set/WorkoutSetService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,eAAe,EAChB,MAAM,+CAA+C,CAAC;AACvD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0DAA0D,CAAC;AAC3G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AACnG,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAG7F,OAAO,KAAK,2BAA2B,MAAM,6CAA6C,CAAC;AAE3F,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC;;;;;;;OAOG;IACH,MAAM,CAAC,8BAA8B,CAAC,EACpC,OAAO,EACP,QAAQ,EACR,WAAW,EACX,OAAO,EACP,eAAe,EACf,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,kBAAkB,EACnB,EAAE;QACD,OAAO,EAAE,2BAA2B,CAAC;QACrC,QAAQ,EAAE,eAAe,CAAC;QAC1B,WAAW,EAAE,0BAA0B,CAAC;QACxC,OAAO,EAAE,cAAc,CAAC;QACxB,eAAe,EAAE,sBAAsB,CAAC;QACxC,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,kBAAkB,EAAE,OAAO,CAAC;KAC7B,GAAG,IAAI;IAsDR;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO;IAQ5C;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;CAiDxC"}
|
|
@@ -16,12 +16,14 @@ export default class WorkoutSetService {
|
|
|
16
16
|
throw new Error(`Equipment type not found for exercise ${exercise._id}, ${exercise.exerciseName}`);
|
|
17
17
|
}
|
|
18
18
|
const sets = [];
|
|
19
|
-
// Calculate progressed targets for the first set
|
|
19
|
+
// Calculate progressed targets for the first set.
|
|
20
|
+
// For deload microcycles, use the previous microcycle's index so we base
|
|
21
|
+
// the deload on the last accumulation weight rather than progressing further.
|
|
20
22
|
const { targetWeight: firstSetWeight, targetReps: firstSetReps } = WorkoutExerciseService.calculateTargetRepsAndWeightForFirstSet({
|
|
21
23
|
exercise,
|
|
22
24
|
calibration,
|
|
23
25
|
equipment,
|
|
24
|
-
microcycleIndex,
|
|
26
|
+
microcycleIndex: isDeloadMicrocycle ? microcycleIndex - 1 : microcycleIndex,
|
|
25
27
|
firstMicrocycleRir: context.FIRST_MICROCYCLE_RIR
|
|
26
28
|
});
|
|
27
29
|
for (let setIndex = 0; setIndex < setCount; setIndex++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkoutSetService.js","sourceRoot":"","sources":["../../../../src/services/workout/Set/WorkoutSetService.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAmB,MAAM,0CAA0C,CAAC;AAC7F,OAAO,2BAA2B,MAAM,iDAAiD,CAAC;AAC1F,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;AAG3E,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC;;;;;;;OAOG;IACH,MAAM,CAAC,8BAA8B,CAAC,EACpC,OAAO,EACP,QAAQ,EACR,WAAW,EACX,OAAO,EACP,eAAe,EACf,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,kBAAkB,EAYnB;QACC,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QAC5E,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,yCAAyC,QAAQ,CAAC,GAAG,KAAK,QAAQ,CAAC,YAAY,EAAE,CAClF,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAiB,EAAE,CAAC;QAE9B,
|
|
1
|
+
{"version":3,"file":"WorkoutSetService.js","sourceRoot":"","sources":["../../../../src/services/workout/Set/WorkoutSetService.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,13 +52,15 @@ export default class WorkoutSetService {
|
|
|
52
52
|
|
|
53
53
|
const sets: WorkoutSet[] = [];
|
|
54
54
|
|
|
55
|
-
// Calculate progressed targets for the first set
|
|
55
|
+
// Calculate progressed targets for the first set.
|
|
56
|
+
// For deload microcycles, use the previous microcycle's index so we base
|
|
57
|
+
// the deload on the last accumulation weight rather than progressing further.
|
|
56
58
|
const { targetWeight: firstSetWeight, targetReps: firstSetReps } =
|
|
57
59
|
WorkoutExerciseService.calculateTargetRepsAndWeightForFirstSet({
|
|
58
60
|
exercise,
|
|
59
61
|
calibration,
|
|
60
62
|
equipment,
|
|
61
|
-
microcycleIndex,
|
|
63
|
+
microcycleIndex: isDeloadMicrocycle ? microcycleIndex - 1 : microcycleIndex,
|
|
62
64
|
firstMicrocycleRir: context.FIRST_MICROCYCLE_RIR
|
|
63
65
|
});
|
|
64
66
|
|
package/package.json
CHANGED