@aneuhold/be-ts-db-lib 4.2.28 → 4.2.29

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 CHANGED
@@ -5,6 +5,17 @@ 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.2.29] (2026-05-17)
9
+
10
+ ### ✅ Added
11
+
12
+ - Added `get:userWorkoutHistory` script to print a user's full workout history (mesocycles, microcycles, sessions, exercises, and sets) in a hierarchical text format.
13
+ - Added `get:userWorkoutVolumeLandmarks` script to print estimated MEV/MAV/MRV volume landmarks per muscle group for a user.
14
+
15
+ ### 🩹 Fixed
16
+
17
+ - Fixed a bug in `WorkoutMuscleGroupRepository` where sets were counted against both primary and secondary muscle groups when building volume landmark CTOs; sets are now attributed only to primary muscle groups.
18
+
8
19
  ## 🔖 [4.2.28] (2026-05-10)
9
20
 
10
21
  ### 🏗️ Changed
@@ -421,6 +432,7 @@ Updated dependencies: now requires `@aneuhold/core-ts-db-lib@^3.0.0`, `@aneuhold
421
432
  - Updated workflow permissions to allow repository write access
422
433
 
423
434
  <!-- Link References -->
435
+ [4.2.29]: https://github.com/aneuhold/ts-libs/compare/be-ts-db-lib-v4.2.28...be-ts-db-lib-v4.2.29
424
436
  [4.2.28]: https://github.com/aneuhold/ts-libs/compare/be-ts-db-lib-v4.2.27...be-ts-db-lib-v4.2.28
425
437
  [4.2.27]: https://github.com/aneuhold/ts-libs/compare/be-ts-db-lib-v4.2.26...be-ts-db-lib-v4.2.27
426
438
  [4.2.26]: https://github.com/aneuhold/ts-libs/compare/be-ts-db-lib-v4.2.25...be-ts-db-lib-v4.2.26
@@ -1 +1 @@
1
- {"version":3,"file":"WorkoutMuscleGroupRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/workout/WorkoutMuscleGroupRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,kBAAkB,EAClB,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAUlC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAE/E,OAAO,+BAA+B,MAAM,sCAAsC,CAAC;AAEnF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,4BAA6B,SAAQ,+BAA+B,CAAC,kBAAkB,CAAC;IAC3G,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAA+B;IAEhE;;OAEG;IACH,OAAO;IAIP,MAAM,CAAC,uBAAuB,IAAI,aAAa,CAAC,IAAI,CAAC;IAYrD,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAElC;;OAEG;WACW,OAAO,IAAI,4BAA4B;IAOrD;;;;;;OAMG;IACG,iCAAiC,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,2BAA2B,EAAE,CAAC;CAsQ9F"}
1
+ {"version":3,"file":"WorkoutMuscleGroupRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/workout/WorkoutMuscleGroupRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,kBAAkB,EAClB,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAUlC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAE/E,OAAO,+BAA+B,MAAM,sCAAsC,CAAC;AAEnF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,4BAA6B,SAAQ,+BAA+B,CAAC,kBAAkB,CAAC;IAC3G,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAA+B;IAEhE;;OAEG;IACH,OAAO;IAIP,MAAM,CAAC,uBAAuB,IAAI,aAAa,CAAC,IAAI,CAAC;IAYrD,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAElC;;OAEG;WACW,OAAO,IAAI,4BAA4B;IAOrD;;;;;;OAMG;IACG,iCAAiC,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,2BAA2B,EAAE,CAAC;CAmQ9F"}
@@ -133,15 +133,12 @@ export default class WorkoutMuscleGroupRepository extends WorkoutBaseWithUserIdR
133
133
  },
134
134
  // One row per exercise
135
135
  { $unwind: '$_exercise' },
136
- // Combine primary + secondary muscle group IDs
136
+ // Only count sets against the exercise's PRIMARY muscle groups. Secondary
137
+ // contributions inflated landmarks and got redistributed onto primary-grouped
138
+ // exercises by the planner, compounding upward across mesocycles.
137
139
  {
138
140
  $addFields: {
139
- _muscleGroups: {
140
- $concatArrays: [
141
- { $ifNull: ['$_exercise.primaryMuscleGroups', []] },
142
- { $ifNull: ['$_exercise.secondaryMuscleGroups', []] }
143
- ]
144
- }
141
+ _muscleGroups: { $ifNull: ['$_exercise.primaryMuscleGroups', []] }
145
142
  }
146
143
  },
147
144
  // One row per (mesocycle, microcycle, session exercise, muscle group)
@@ -1 +1 @@
1
- {"version":3,"file":"WorkoutMuscleGroupRepository.js","sourceRoot":"","sources":["../../../src/repositories/workout/WorkoutMuscleGroupRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkoutMuscleGroupRepository.js","sourceRoot":"","sources":["../../../src/repositories/workout/WorkoutMuscleGroupRepository.ts"],"names":[],"mappings":"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"}
@@ -172,15 +172,12 @@ export default class WorkoutMuscleGroupRepository extends WorkoutBaseWithUserIdR
172
172
  },
173
173
  // One row per exercise
174
174
  { $unwind: '$_exercise' },
175
- // Combine primary + secondary muscle group IDs
175
+ // Only count sets against the exercise's PRIMARY muscle groups. Secondary
176
+ // contributions inflated landmarks and got redistributed onto primary-grouped
177
+ // exercises by the planner, compounding upward across mesocycles.
176
178
  {
177
179
  $addFields: {
178
- _muscleGroups: {
179
- $concatArrays: [
180
- { $ifNull: ['$_exercise.primaryMuscleGroups', []] },
181
- { $ifNull: ['$_exercise.secondaryMuscleGroups', []] }
182
- ]
183
- }
180
+ _muscleGroups: { $ifNull: ['$_exercise.primaryMuscleGroups', []] }
184
181
  }
185
182
  },
186
183
  // One row per (mesocycle, microcycle, session exercise, muscle group)
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@aneuhold/be-ts-db-lib",
3
3
  "author": "Anton G. Neuhold Jr.",
4
4
  "license": "MIT",
5
- "version": "4.2.28",
5
+ "version": "4.2.29",
6
6
  "description": "A backend database library meant to actually interact with various databases in personal projects",
7
7
  "packageManager": "pnpm@10.25.0",
8
8
  "type": "module",
@@ -27,7 +27,9 @@
27
27
  "upgrade:core": "pnpm update '@aneuhold/main-scripts' --latest",
28
28
  "upgrade:all": "pnpm update '!@aneuhold/*' --latest",
29
29
  "migrate": "tsx ./scripts/migrate.ts",
30
- "migrate:dry": "tsx ./scripts/migrateDry.ts"
30
+ "migrate:dry": "tsx ./scripts/migrateDry.ts",
31
+ "get:userWorkoutHistory": "tsx ./scripts/getUserWorkoutHistory.ts",
32
+ "get:userWorkoutVolumeLandmarks": "tsx ./scripts/getUserWorkoutVolumeLandmarks.ts"
31
33
  },
32
34
  "main": "lib/index.js",
33
35
  "types": "lib/index.d.ts",