@aneuhold/core-ts-db-lib 4.1.15 → 5.0.1

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 (46) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/lib/browser.d.ts +5 -2
  3. package/lib/browser.d.ts.map +1 -1
  4. package/lib/browser.js +3 -1
  5. package/lib/browser.js.map +1 -1
  6. package/lib/browser.ts +6 -0
  7. package/lib/constants/googleClientId.d.ts +3 -0
  8. package/lib/constants/googleClientId.d.ts.map +1 -0
  9. package/lib/constants/googleClientId.js +3 -0
  10. package/lib/constants/googleClientId.js.map +1 -0
  11. package/lib/constants/googleClientId.ts +3 -0
  12. package/lib/ctos/workout/WorkoutExerciseCTO.d.ts +2 -2
  13. package/lib/ctos/workout/WorkoutExerciseCTO.d.ts.map +1 -1
  14. package/lib/ctos/workout/WorkoutExerciseCTO.js +5 -6
  15. package/lib/ctos/workout/WorkoutExerciseCTO.js.map +1 -1
  16. package/lib/ctos/workout/WorkoutExerciseCTO.ts +5 -6
  17. package/lib/documents/common/User.d.ts +4 -0
  18. package/lib/documents/common/User.d.ts.map +1 -1
  19. package/lib/documents/common/User.js +5 -2
  20. package/lib/documents/common/User.js.map +1 -1
  21. package/lib/documents/common/User.ts +5 -2
  22. package/lib/embedded-types/common/RefreshTokenHash.d.ts +11 -0
  23. package/lib/embedded-types/common/RefreshTokenHash.d.ts.map +1 -0
  24. package/lib/embedded-types/common/RefreshTokenHash.js +11 -0
  25. package/lib/embedded-types/common/RefreshTokenHash.js.map +1 -0
  26. package/lib/embedded-types/common/RefreshTokenHash.ts +14 -0
  27. package/lib/services/workout/Exercise/WorkoutExerciseService.d.ts +14 -8
  28. package/lib/services/workout/Exercise/WorkoutExerciseService.d.ts.map +1 -1
  29. package/lib/services/workout/Exercise/WorkoutExerciseService.js +38 -15
  30. package/lib/services/workout/Exercise/WorkoutExerciseService.js.map +1 -1
  31. package/lib/services/workout/Exercise/WorkoutExerciseService.ts +45 -22
  32. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.d.ts.map +1 -1
  33. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.js +6 -8
  34. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.js.map +1 -1
  35. package/lib/services/workout/Mesocycle/WorkoutMesocycleService.ts +7 -17
  36. package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.d.ts +13 -8
  37. package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.d.ts.map +1 -1
  38. package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.js +30 -9
  39. package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.js.map +1 -1
  40. package/lib/services/workout/SessionExercise/WorkoutSessionExerciseService.ts +42 -14
  41. package/lib/services/workout/Set/WorkoutSetService.d.ts +4 -3
  42. package/lib/services/workout/Set/WorkoutSetService.d.ts.map +1 -1
  43. package/lib/services/workout/Set/WorkoutSetService.js +24 -18
  44. package/lib/services/workout/Set/WorkoutSetService.js.map +1 -1
  45. package/lib/services/workout/Set/WorkoutSetService.ts +25 -19
  46. package/package.json +3 -3
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
+ ## 🔖 [5.0.1] (2026-03-15)
9
+
10
+ ### ✅ Added
11
+
12
+ - Added `RefreshTokenHash` embedded type and `RefreshTokenHashSchema` for storing hashed refresh tokens on users.
13
+ - Added `GOOGLE_CLIENT_ID` constant (public Google OAuth 2.0 Client ID), exported from the browser entry point.
14
+ - Added `refreshTokenHashes` array field to `User.auth` to track active refresh token hashes per device/session.
15
+
16
+ ## 🔖 [5.0.0] (2026-03-13)
17
+
18
+ ### 🏗️ Changed
19
+
20
+ - _Breaking Change:_ `WorkoutExerciseCTO.lastFirstSet` (nullable `WorkoutSet`) replaced by `lastSessionSets` (array of `WorkoutSet`).
21
+ - _Breaking Change:_ `WorkoutExerciseService.calculateTargetRepsAndWeightForFirstSet` parameter `previousFirstSet?: WorkoutSet` replaced by `previousSets: WorkoutSet[]`.
22
+ - Autoregulation now averages surplus across all sets in a session exercise instead of using only the first set, providing a more representative performance signal.
23
+ - `WorkoutSessionExerciseService.calculateSetSurplus` is now private; the new public `calculateAverageSurplus(sets)` method handles multi-set aggregation.
24
+ - `WorkoutMesocycleService` performance-drop detection now averages surplus across all sets rather than using only the first set.
25
+ - `WorkoutSetService` now retrieves all sets from the previous microcycle for autoregulation instead of only the first set.
26
+ - Rep progression severe underperformance (average surplus < -3) now also reduces weight by one equipment increment.
27
+
8
28
  ## 🔖 [4.1.15] (2026-03-12)
9
29
 
10
30
  ### 🏗️ Changed
@@ -385,6 +405,8 @@ Updated dependency: now requires `@aneuhold/core-ts-lib@^2.3.11`.
385
405
 
386
406
  <!-- Link References -->
387
407
 
408
+ [5.0.1]: https://github.com/aneuhold/ts-libs/compare/core-ts-db-lib-v5.0.0...core-ts-db-lib-v5.0.1
409
+ [5.0.0]: https://github.com/aneuhold/ts-libs/compare/core-ts-db-lib-v4.1.15...core-ts-db-lib-v5.0.0
388
410
  [4.1.15]: https://github.com/aneuhold/ts-libs/compare/core-ts-db-lib-v4.1.14...core-ts-db-lib-v4.1.15
389
411
  [4.1.14]: https://github.com/aneuhold/ts-libs/compare/core-ts-db-lib-v4.1.13...core-ts-db-lib-v4.1.14
390
412
  [4.1.13]: https://github.com/aneuhold/ts-libs/compare/core-ts-db-lib-v4.1.12...core-ts-db-lib-v4.1.13
package/lib/browser.d.ts CHANGED
@@ -8,6 +8,8 @@ import type { ApiKey } from './documents/common/ApiKey.js';
8
8
  import { ApiKeySchema } from './documents/common/ApiKey.js';
9
9
  import type { User, UserCTO } from './documents/common/User.js';
10
10
  import { UserCTOSchema, UserSchema } from './documents/common/User.js';
11
+ import type { RefreshTokenHash } from './embedded-types/common/RefreshTokenHash.js';
12
+ import { RefreshTokenHashSchema } from './embedded-types/common/RefreshTokenHash.js';
11
13
  import type { NonogramKatanaItem } from './documents/dashboard/NonogramKatanaItem.js';
12
14
  import { NonogramKatanaItem_docType, NonogramKatanaItemSchema } from './documents/dashboard/NonogramKatanaItem.js';
13
15
  import type { NonogramKatanaUpgrade } from './documents/dashboard/NonogramKatanaUpgrade.js';
@@ -69,6 +71,7 @@ import WorkoutSessionExerciseService from './services/workout/SessionExercise/Wo
69
71
  import WorkoutSetService from './services/workout/Set/WorkoutSetService.js';
70
72
  import WorkoutSFRService from './services/workout/util/SFR/WorkoutSFRService.js';
71
73
  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 };
74
+ import { GOOGLE_CLIENT_ID } from './constants/googleClientId.js';
75
+ export { ApiKeySchema, GOOGLE_CLIENT_ID, BaseDocumentSchema, RefreshTokenHashSchema, 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 };
76
+ export type { ApiKey, BaseDocument, RefreshTokenHash, 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 };
74
77
  //# 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
@@ -3,6 +3,7 @@ import { WorkoutMuscleGroupVolumeCTOSchema } from './ctos/workout/WorkoutMuscleG
3
3
  import { BaseDocumentSchema, BaseDocumentWithTypeSchema, BaseDocumentWithUpdatedAndCreatedDatesSchema } from './documents/BaseDocument.js';
4
4
  import { ApiKeySchema } from './documents/common/ApiKey.js';
5
5
  import { UserCTOSchema, UserSchema } from './documents/common/User.js';
6
+ import { RefreshTokenHashSchema } from './embedded-types/common/RefreshTokenHash.js';
6
7
  import { NonogramKatanaItem_docType, NonogramKatanaItemSchema } from './documents/dashboard/NonogramKatanaItem.js';
7
8
  import { NonogramKatanaUpgrade_docType, NonogramKatanaUpgradeSchema } from './documents/dashboard/NonogramKatanaUpgrade.js';
8
9
  import { DashboardTask_docType, DashboardTaskSchema } from './documents/dashboard/Task.js';
@@ -40,6 +41,7 @@ import WorkoutSessionExerciseService from './services/workout/SessionExercise/Wo
40
41
  import WorkoutSetService from './services/workout/Set/WorkoutSetService.js';
41
42
  import WorkoutSFRService from './services/workout/util/SFR/WorkoutSFRService.js';
42
43
  import WorkoutVolumePlanningService from './services/workout/util/VolumePlanning/WorkoutVolumePlanningService.js';
44
+ import { GOOGLE_CLIENT_ID } from './constants/googleClientId.js';
43
45
  // Export all browser-safe functions and classes from this library
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 };
46
+ export { ApiKeySchema, GOOGLE_CLIENT_ID, BaseDocumentSchema, RefreshTokenHashSchema, 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 };
45
47
  //# sourceMappingURL=browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
package/lib/browser.ts CHANGED
@@ -19,6 +19,8 @@ import type { ApiKey } from './documents/common/ApiKey.js';
19
19
  import { ApiKeySchema } from './documents/common/ApiKey.js';
20
20
  import type { User, UserCTO } from './documents/common/User.js';
21
21
  import { UserCTOSchema, UserSchema } from './documents/common/User.js';
22
+ import type { RefreshTokenHash } from './embedded-types/common/RefreshTokenHash.js';
23
+ import { RefreshTokenHashSchema } from './embedded-types/common/RefreshTokenHash.js';
22
24
  import type { NonogramKatanaItem } from './documents/dashboard/NonogramKatanaItem.js';
23
25
  import {
24
26
  NonogramKatanaItem_docType,
@@ -171,11 +173,14 @@ import WorkoutSessionExerciseService from './services/workout/SessionExercise/Wo
171
173
  import WorkoutSetService from './services/workout/Set/WorkoutSetService.js';
172
174
  import WorkoutSFRService from './services/workout/util/SFR/WorkoutSFRService.js';
173
175
  import WorkoutVolumePlanningService from './services/workout/util/VolumePlanning/WorkoutVolumePlanningService.js';
176
+ import { GOOGLE_CLIENT_ID } from './constants/googleClientId.js';
174
177
 
175
178
  // Export all browser-safe functions and classes from this library
176
179
  export {
177
180
  ApiKeySchema,
181
+ GOOGLE_CLIENT_ID,
178
182
  BaseDocumentSchema,
183
+ RefreshTokenHashSchema,
179
184
  BaseDocumentWithTypeSchema,
180
185
  BaseDocumentWithUpdatedAndCreatedDatesSchema,
181
186
  CycleType,
@@ -266,6 +271,7 @@ export {
266
271
  export type {
267
272
  ApiKey,
268
273
  BaseDocument,
274
+ RefreshTokenHash,
269
275
  WorkoutDeloadRecommendation,
270
276
  BaseDocumentWithType,
271
277
  BaseDocumentWithUpdatedAndCreatedDates,
@@ -0,0 +1,3 @@
1
+ /** Google OAuth 2.0 Client ID. This is a public value, not a secret. */
2
+ export declare const GOOGLE_CLIENT_ID = "926119935605-6r897sm15r8ihgrvbe0osue3e6ncse8j.apps.googleusercontent.com";
3
+ //# sourceMappingURL=googleClientId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"googleClientId.d.ts","sourceRoot":"","sources":["../../src/constants/googleClientId.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,6EAC+C,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Google OAuth 2.0 Client ID. This is a public value, not a secret. */
2
+ export const GOOGLE_CLIENT_ID = '926119935605-6r897sm15r8ihgrvbe0osue3e6ncse8j.apps.googleusercontent.com';
3
+ //# sourceMappingURL=googleClientId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"googleClientId.js","sourceRoot":"","sources":["../../src/constants/googleClientId.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAC3B,0EAA0E,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Google OAuth 2.0 Client ID. This is a public value, not a secret. */
2
+ export const GOOGLE_CLIENT_ID =
3
+ '926119935605-6r897sm15r8ihgrvbe0osue3e6ncse8j.apps.googleusercontent.com';
@@ -71,7 +71,7 @@ export declare const WorkoutExerciseCTOSchema: z.ZodObject<{
71
71
  _id: z.ZodPipe<z.ZodDefault<z.ZodUUID>, z.ZodTransform<`${string}-${string}-${string}-${string}-${string}`, string>>;
72
72
  userId: z.ZodPipe<z.ZodUUID, z.ZodTransform<`${string}-${string}-${string}-${string}-${string}`, string>>;
73
73
  }, z.core.$strip>>;
74
- lastFirstSet: z.ZodNullable<z.ZodObject<{
74
+ lastSessionSets: z.ZodDefault<z.ZodArray<z.ZodObject<{
75
75
  docType: z.ZodDefault<z.ZodLiteral<"workoutSet">>;
76
76
  workoutExerciseId: z.ZodPipe<z.ZodUUID, z.ZodTransform<`${string}-${string}-${string}-${string}-${string}`, string>>;
77
77
  workoutSessionId: z.ZodPipe<z.ZodUUID, z.ZodTransform<`${string}-${string}-${string}-${string}-${string}`, string>>;
@@ -87,7 +87,7 @@ export declare const WorkoutExerciseCTOSchema: z.ZodObject<{
87
87
  lastUpdatedDate: z.ZodDefault<z.ZodDate>;
88
88
  _id: z.ZodPipe<z.ZodDefault<z.ZodUUID>, z.ZodTransform<`${string}-${string}-${string}-${string}-${string}`, string>>;
89
89
  userId: z.ZodPipe<z.ZodUUID, z.ZodTransform<`${string}-${string}-${string}-${string}-${string}`, string>>;
90
- }, z.core.$strip>>;
90
+ }, z.core.$strip>>>;
91
91
  docType: z.ZodDefault<z.ZodLiteral<"workoutExercise">>;
92
92
  exerciseName: z.ZodString;
93
93
  workoutEquipmentTypeId: z.ZodPipe<z.ZodUUID, z.ZodTransform<`${string}-${string}-${string}-${string}-${string}`, string>>;
@@ -1 +1 @@
1
- {"version":3,"file":"WorkoutExerciseCTO.d.ts","sourceRoot":"","sources":["../../../src/ctos/workout/WorkoutExerciseCTO.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+CnC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
1
+ {"version":3,"file":"WorkoutExerciseCTO.d.ts","sourceRoot":"","sources":["../../../src/ctos/workout/WorkoutExerciseCTO.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8CnC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
@@ -46,13 +46,12 @@ export const WorkoutExerciseCTOSchema = z.object({
46
46
  */
47
47
  lastSessionExercise: WorkoutSessionExerciseSchema.nullable(),
48
48
  /**
49
- * The first WorkoutSet from the lastSessionExercise's setOrder.
50
- * This is the "anchor" set that progression calculations use since
51
- * subsequent sets are derived from the first via intra-session fatigue
52
- * drops.
49
+ * All WorkoutSets from the lastSessionExercise's setOrder. Surplus is
50
+ * averaged across all sets for a holistic performance signal during
51
+ * autoregulation (the first set alone can mask poor later-set performance).
53
52
  *
54
- * Null if no previous accumulation performance exists.
53
+ * Empty array if no previous accumulation performance exists.
55
54
  */
56
- lastFirstSet: WorkoutSetSchema.nullable()
55
+ lastSessionSets: z.array(WorkoutSetSchema).default([])
57
56
  });
58
57
  //# sourceMappingURL=WorkoutExerciseCTO.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkoutExerciseCTO.js","sourceRoot":"","sources":["../../../src/ctos/workout/WorkoutExerciseCTO.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,gCAAgC,EAAE,MAAM,uDAAuD,CAAC;AACzG,OAAO,EAAE,4BAA4B,EAAE,MAAM,mDAAmD,CAAC;AACjG,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAEzE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,GAAG,qBAAqB,CAAC,KAAK;IAE9B;;;OAGG;IACH,aAAa,EAAE,0BAA0B;IAEzC;;;;OAIG;IACH,eAAe,EAAE,gCAAgC,CAAC,QAAQ,EAAE;IAE5D;;;;;;;OAOG;IACH,OAAO,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IAEpC;;;;;;;;;OASG;IACH,mBAAmB,EAAE,4BAA4B,CAAC,QAAQ,EAAE;IAE5D;;;;;;;OAOG;IACH,YAAY,EAAE,gBAAgB,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC"}
1
+ {"version":3,"file":"WorkoutExerciseCTO.js","sourceRoot":"","sources":["../../../src/ctos/workout/WorkoutExerciseCTO.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,gCAAgC,EAAE,MAAM,uDAAuD,CAAC;AACzG,OAAO,EAAE,4BAA4B,EAAE,MAAM,mDAAmD,CAAC;AACjG,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAEzE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,GAAG,qBAAqB,CAAC,KAAK;IAE9B;;;OAGG;IACH,aAAa,EAAE,0BAA0B;IAEzC;;;;OAIG;IACH,eAAe,EAAE,gCAAgC,CAAC,QAAQ,EAAE;IAE5D;;;;;;;OAOG;IACH,OAAO,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IAEpC;;;;;;;;;OASG;IACH,mBAAmB,EAAE,4BAA4B,CAAC,QAAQ,EAAE;IAE5D;;;;;;OAMG;IACH,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACvD,CAAC,CAAC"}
@@ -52,14 +52,13 @@ export const WorkoutExerciseCTOSchema = z.object({
52
52
  lastSessionExercise: WorkoutSessionExerciseSchema.nullable(),
53
53
 
54
54
  /**
55
- * The first WorkoutSet from the lastSessionExercise's setOrder.
56
- * This is the "anchor" set that progression calculations use since
57
- * subsequent sets are derived from the first via intra-session fatigue
58
- * drops.
55
+ * All WorkoutSets from the lastSessionExercise's setOrder. Surplus is
56
+ * averaged across all sets for a holistic performance signal during
57
+ * autoregulation (the first set alone can mask poor later-set performance).
59
58
  *
60
- * Null if no previous accumulation performance exists.
59
+ * Empty array if no previous accumulation performance exists.
61
60
  */
62
- lastFirstSet: WorkoutSetSchema.nullable()
61
+ lastSessionSets: z.array(WorkoutSetSchema).default([])
63
62
  });
64
63
 
65
64
  /**
@@ -16,6 +16,10 @@ export declare const UserSchema: z.ZodObject<{
16
16
  auth: z.ZodDefault<z.ZodObject<{
17
17
  password: z.ZodOptional<z.ZodNullable<z.ZodString>>;
18
18
  googleId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
19
+ refreshTokenHashes: z.ZodDefault<z.ZodArray<z.ZodObject<{
20
+ tokenHash: z.ZodString;
21
+ expiresAt: z.ZodDate;
22
+ }, z.core.$strip>>>;
19
23
  }, z.core.$strip>>;
20
24
  projectAccess: z.ZodDefault<z.ZodObject<{
21
25
  dashboard: z.ZodDefault<z.ZodBoolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"User.d.ts","sourceRoot":"","sources":["../../../src/documents/common/User.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,aAAa;;;iBAExB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;iBAiBrB,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAE9C;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"User.d.ts","sourceRoot":"","sources":["../../../src/documents/common/User.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;GAEG;AACH,eAAO,MAAM,aAAa;;;iBAExB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;iBAmBrB,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAE9C;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { BaseDocumentSchema } from '../BaseDocument.js';
3
+ import { RefreshTokenHashSchema } from '../../embedded-types/common/RefreshTokenHash.js';
3
4
  /**
4
5
  * The schema for {@link UserCTO} documents. This also acts a base for the {@link UserSchema}.
5
6
  */
@@ -14,9 +15,11 @@ export const UserSchema = UserCTOSchema.extend({
14
15
  auth: z
15
16
  .object({
16
17
  password: z.string().nullish(),
17
- googleId: z.string().nullish()
18
+ googleId: z.string().nullish(),
19
+ /** Active refresh token hashes. One per device/session. */
20
+ refreshTokenHashes: z.array(RefreshTokenHashSchema).default([])
18
21
  })
19
- .default({}),
22
+ .default({ refreshTokenHashes: [] }),
20
23
  projectAccess: z
21
24
  .object({
22
25
  dashboard: z.boolean().default(false),
@@ -1 +1 @@
1
- {"version":3,"file":"User.js","sourceRoot":"","sources":["../../../src/documents/common/User.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC;IACrD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE;IAC1B,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC;QACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;QAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;KAC/B,CAAC;SACD,OAAO,CAAC,EAAE,CAAC;IACd,aAAa,EAAE,CAAC;SACb,MAAM,CAAC;QACN,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACrC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;KACnC,CAAC;SACD,OAAO,CAAC;QACP,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,IAAI;KACd,CAAC;CACL,CAAC,CAAC"}
1
+ {"version":3,"file":"User.js","sourceRoot":"","sources":["../../../src/documents/common/User.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AAEzF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC;IACrD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE;IAC1B,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC;QACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;QAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;QAC9B,2DAA2D;QAC3D,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;KAChE,CAAC;SACD,OAAO,CAAC,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC;IACtC,aAAa,EAAE,CAAC;SACb,MAAM,CAAC;QACN,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACrC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;KACnC,CAAC;SACD,OAAO,CAAC;QACP,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,IAAI;KACd,CAAC;CACL,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { BaseDocumentSchema } from '../BaseDocument.js';
3
+ import { RefreshTokenHashSchema } from '../../embedded-types/common/RefreshTokenHash.js';
3
4
 
4
5
  /**
5
6
  * The schema for {@link UserCTO} documents. This also acts a base for the {@link UserSchema}.
@@ -16,9 +17,11 @@ export const UserSchema = UserCTOSchema.extend({
16
17
  auth: z
17
18
  .object({
18
19
  password: z.string().nullish(),
19
- googleId: z.string().nullish()
20
+ googleId: z.string().nullish(),
21
+ /** Active refresh token hashes. One per device/session. */
22
+ refreshTokenHashes: z.array(RefreshTokenHashSchema).default([])
20
23
  })
21
- .default({}),
24
+ .default({ refreshTokenHashes: [] }),
22
25
  projectAccess: z
23
26
  .object({
24
27
  dashboard: z.boolean().default(false),
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Schema for an individual hashed refresh token stored on a user.
4
+ */
5
+ export declare const RefreshTokenHashSchema: z.ZodObject<{
6
+ tokenHash: z.ZodString;
7
+ expiresAt: z.ZodDate;
8
+ }, z.core.$strip>;
9
+ /** A single hashed refresh token entry stored within {@link User.auth}. */
10
+ export type RefreshTokenHash = z.infer<typeof RefreshTokenHashSchema>;
11
+ //# sourceMappingURL=RefreshTokenHash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RefreshTokenHash.d.ts","sourceRoot":"","sources":["../../../src/embedded-types/common/RefreshTokenHash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;iBAKjC,CAAC;AAEH,2EAA2E;AAC3E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Schema for an individual hashed refresh token stored on a user.
4
+ */
5
+ export const RefreshTokenHashSchema = z.object({
6
+ /** SHA-256 hash of the refresh token (never store the raw token). */
7
+ tokenHash: z.string(),
8
+ /** When this refresh token expires. */
9
+ expiresAt: z.date()
10
+ });
11
+ //# sourceMappingURL=RefreshTokenHash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RefreshTokenHash.js","sourceRoot":"","sources":["../../../src/embedded-types/common/RefreshTokenHash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,qEAAqE;IACrE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,uCAAuC;IACvC,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;CACpB,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+
3
+ /**
4
+ * Schema for an individual hashed refresh token stored on a user.
5
+ */
6
+ export const RefreshTokenHashSchema = z.object({
7
+ /** SHA-256 hash of the refresh token (never store the raw token). */
8
+ tokenHash: z.string(),
9
+ /** When this refresh token expires. */
10
+ expiresAt: z.date()
11
+ });
12
+
13
+ /** A single hashed refresh token entry stored within {@link User.auth}. */
14
+ export type RefreshTokenHash = z.infer<typeof RefreshTokenHashSchema>;
@@ -29,11 +29,12 @@ export default class WorkoutExerciseService {
29
29
  /**
30
30
  * Calculates the target weight and reps for the FIRST set of an exercise.
31
31
  *
32
- * When a `previousFirstSet` is provided (completed or planned-only), autoregulation
33
- * computes a surplus and applies progression. Planned-only sets are forecasted with
34
- * surplus = 0 so the plan progresses smoothly without falling back to calibration.
32
+ * When `previousSets` are provided (completed or planned-only), autoregulation
33
+ * computes an average surplus across all sets and applies progression. Planned-only
34
+ * sets are forecasted with surplus = 0 so the plan progresses smoothly without
35
+ * falling back to calibration.
35
36
  *
36
- * When no previous set exists (first mesocycle or new exercise), the calibration-based
37
+ * When no previous sets exist (first mesocycle or new exercise), the calibration-based
37
38
  * formula computes initial targets from the exercise's 1RM and rep range.
38
39
  */
39
40
  static calculateTargetRepsAndWeightForFirstSet(params: {
@@ -41,24 +42,29 @@ export default class WorkoutExerciseService {
41
42
  calibration: WorkoutExerciseCalibration;
42
43
  equipment: WorkoutEquipmentType;
43
44
  firstMicrocycleRir: number;
44
- previousFirstSet?: WorkoutSet;
45
+ previousSets: WorkoutSet[];
45
46
  }): {
46
47
  targetWeight: number;
47
48
  targetReps: number;
48
49
  };
49
50
  /**
50
- * Calculates targets using auto-regulation based on actual performance from a previous set.
51
+ * Calculates targets using auto-regulation based on actual performance from previous sets.
52
+ * Surplus is averaged across all sets for a more representative performance signal.
53
+ * Previously only the first set's surplus was used, which masked poor performance
54
+ * on later sets (e.g., first set hits target but second set falls far short).
51
55
  */
52
56
  private static calculateAutoRegulatedTargets;
53
57
  /**
54
- * Auto-regulated rep progression. Weight stays the same, reps adjust based on surplus.
58
+ * Auto-regulated rep progression. Attempts to increase reps until hitting rep range max,
59
+ * then resets reps and increases weight.
55
60
  *
56
61
  * | Surplus | Action |
57
62
  * |---:|---|
58
63
  * | >= 3 | Accelerate: actualReps + 2 (progress from actual, not planned) |
59
64
  * | 0 to 2 | Normal: plannedReps + 2 |
60
65
  * | -1 to -2 | Hold: plannedReps (don't add reps) |
61
- * | <= -3 | Regress: actualReps (use actual as new baseline) |
66
+ * | -3 | Regress: actualReps (use actual as new baseline) |
67
+ * | < -3 | Severe regress: actualReps + reduce weight (weight is too heavy for rep range) |
62
68
  */
63
69
  private static calculateAutoRegulatedRepTargets;
64
70
  /**
@@ -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;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;;;;;;;;;OASG;IACH,MAAM,CAAC,uCAAuC,CAAC,MAAM,EAAE;QACrD,QAAQ,EAAE,eAAe,CAAC;QAC1B,WAAW,EAAE,0BAA0B,CAAC;QACxC,SAAS,EAAE,oBAAoB,CAAC;QAChC,kBAAkB,EAAE,MAAM,CAAC;QAC3B,gBAAgB,CAAC,EAAE,UAAU,CAAC;KAC/B,GAAG;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAuChD;;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;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAmB7B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,gCAAgC;IA2C/C,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;;;;;;;;;;OAUG;IACH,MAAM,CAAC,uCAAuC,CAAC,MAAM,EAAE;QACrD,QAAQ,EAAE,eAAe,CAAC;QAC1B,WAAW,EAAE,0BAA0B,CAAC;QACxC,SAAS,EAAE,oBAAoB,CAAC;QAChC,kBAAkB,EAAE,MAAM,CAAC;QAC3B,YAAY,EAAE,UAAU,EAAE,CAAC;KAC5B,GAAG;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IA0ChD;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,6BAA6B;IAuB5C;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,CAAC,gCAAgC;IAyD/C;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,iCAAiC;IA2ChD;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAmB7B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,gCAAgC;IA2C/C,OAAO,CAAC,MAAM,CAAC,wBAAwB;CAgBxC"}
@@ -37,15 +37,16 @@ export default class WorkoutExerciseService {
37
37
  /**
38
38
  * Calculates the target weight and reps for the FIRST set of an exercise.
39
39
  *
40
- * When a `previousFirstSet` is provided (completed or planned-only), autoregulation
41
- * computes a surplus and applies progression. Planned-only sets are forecasted with
42
- * surplus = 0 so the plan progresses smoothly without falling back to calibration.
40
+ * When `previousSets` are provided (completed or planned-only), autoregulation
41
+ * computes an average surplus across all sets and applies progression. Planned-only
42
+ * sets are forecasted with surplus = 0 so the plan progresses smoothly without
43
+ * falling back to calibration.
43
44
  *
44
- * When no previous set exists (first mesocycle or new exercise), the calibration-based
45
+ * When no previous sets exist (first mesocycle or new exercise), the calibration-based
45
46
  * formula computes initial targets from the exercise's 1RM and rep range.
46
47
  */
47
48
  static calculateTargetRepsAndWeightForFirstSet(params) {
48
- const { exercise, calibration, equipment, firstMicrocycleRir, previousFirstSet } = params;
49
+ const { exercise, calibration, equipment, firstMicrocycleRir, previousSets } = params;
49
50
  // Validate equipment has weight options
50
51
  if (!equipment.weightOptions || equipment.weightOptions.length === 0) {
51
52
  throw new Error(`No weight options defined for equipment type ${equipment._id}, ${equipment.title}`);
@@ -53,16 +54,18 @@ export default class WorkoutExerciseService {
53
54
  // Get rep range for this exercise
54
55
  const repRange = this.getRepRangeValues(exercise.repRange);
55
56
  const repRangeMidpoint = Math.floor((repRange.min + repRange.max) / 2);
56
- // When a previous set is available, use autoregulation for progression.
57
+ // Convert all previous sets to completed sets (forecasting planned → actual if needed).
57
58
  // toCompletedSet returns the real data when actual performance exists, or
58
59
  // forecasts by copying planned values into actuals (surplus = 0) so the
59
60
  // plan progresses smoothly from the planned baseline.
60
- const completedPreviousSet = this.toCompletedSet(previousFirstSet);
61
- if (completedPreviousSet) {
61
+ const completedSets = previousSets
62
+ .map((set) => this.toCompletedSet(set))
63
+ .filter((set) => set !== null);
64
+ if (completedSets.length > 0) {
62
65
  return this.calculateAutoRegulatedTargets({
63
66
  exercise,
64
67
  equipment,
65
- previousFirstSet: completedPreviousSet,
68
+ previousSets: completedSets,
66
69
  repRange
67
70
  });
68
71
  }
@@ -77,25 +80,35 @@ export default class WorkoutExerciseService {
77
80
  });
78
81
  }
79
82
  /**
80
- * Calculates targets using auto-regulation based on actual performance from a previous set.
83
+ * Calculates targets using auto-regulation based on actual performance from previous sets.
84
+ * Surplus is averaged across all sets for a more representative performance signal.
85
+ * Previously only the first set's surplus was used, which masked poor performance
86
+ * on later sets (e.g., first set hits target but second set falls far short).
81
87
  */
82
88
  static calculateAutoRegulatedTargets(params) {
83
- const { exercise, equipment, previousFirstSet, repRange } = params;
84
- const surplus = WorkoutSessionExerciseService.calculateSetSurplus(previousFirstSet.actualReps, previousFirstSet.plannedReps, previousFirstSet.rir, previousFirstSet.plannedRir);
89
+ const { exercise, equipment, previousSets, repRange } = params;
90
+ // The first set is the reference for rep/weight targets (subsequent sets are
91
+ // derived from the first via intra-session fatigue drops).
92
+ const previousFirstSet = previousSets[0];
93
+ // Average surplus across all sets for a holistic performance signal.
94
+ // previousSets are CompletedWorkoutSets (all fields non-null), so this always returns a number.
95
+ const surplus = WorkoutSessionExerciseService.calculateAverageSurplus(previousSets) ?? 0;
85
96
  if (exercise.preferredProgressionType === ExerciseProgressionType.Rep) {
86
97
  return this.calculateAutoRegulatedRepTargets(previousFirstSet, surplus, repRange, equipment);
87
98
  }
88
99
  return this.calculateAutoRegulatedLoadTargets(previousFirstSet, surplus, repRange, equipment);
89
100
  }
90
101
  /**
91
- * Auto-regulated rep progression. Weight stays the same, reps adjust based on surplus.
102
+ * Auto-regulated rep progression. Attempts to increase reps until hitting rep range max,
103
+ * then resets reps and increases weight.
92
104
  *
93
105
  * | Surplus | Action |
94
106
  * |---:|---|
95
107
  * | >= 3 | Accelerate: actualReps + 2 (progress from actual, not planned) |
96
108
  * | 0 to 2 | Normal: plannedReps + 2 |
97
109
  * | -1 to -2 | Hold: plannedReps (don't add reps) |
98
- * | <= -3 | Regress: actualReps (use actual as new baseline) |
110
+ * | -3 | Regress: actualReps (use actual as new baseline) |
111
+ * | < -3 | Severe regress: actualReps + reduce weight (weight is too heavy for rep range) |
99
112
  */
100
113
  static calculateAutoRegulatedRepTargets(previousSet, surplus, repRange, equipment) {
101
114
  let targetReps;
@@ -109,14 +122,24 @@ export default class WorkoutExerciseService {
109
122
  else if (surplus >= -2) {
110
123
  targetReps = previousSet.plannedReps;
111
124
  }
125
+ else if (surplus >= -3) {
126
+ targetReps = previousSet.actualReps;
127
+ }
112
128
  else {
129
+ // Severe underperformance: the weight is too heavy for this rep range.
130
+ // Reduce weight by one equipment increment so the user can actually
131
+ // train in the target rep range.
113
132
  targetReps = previousSet.actualReps;
133
+ const reducedWeight = WorkoutEquipmentTypeService.findNearestWeight(equipment, targetWeight - 0.01, 'down');
134
+ if (reducedWeight !== null) {
135
+ targetWeight = reducedWeight;
136
+ }
114
137
  }
115
138
  // Clamp to rep range floor (never target below min, even if actual was 0)
116
139
  targetReps = Math.max(targetReps, repRange.min);
117
140
  // Handle rep range ceiling: if target exceeds max, reset and bump weight
118
141
  if (targetReps > repRange.max) {
119
- targetReps = repRange.max;
142
+ targetReps = Math.floor((repRange.min + repRange.max) / 2);
120
143
  const nextWeight = this.findNextTwoPercentWeight(targetWeight, equipment);
121
144
  if (nextWeight !== null) {
122
145
  targetWeight = nextWeight;
@@ -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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"}