@dgpholdings/greatoak-shared 1.1.57 → 1.1.59
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.
|
@@ -27,8 +27,8 @@ export type TRefinedBodyWeightRecord = RefinedBase & {
|
|
|
27
27
|
export type TRefinedCardioMachineRecord = RefinedBase & {
|
|
28
28
|
type: "cardio-machine";
|
|
29
29
|
speed: number;
|
|
30
|
-
resistance: number;
|
|
31
30
|
durationSecs: number;
|
|
31
|
+
distance: number;
|
|
32
32
|
intensityScore?: number;
|
|
33
33
|
};
|
|
34
34
|
export type TRefinedCardioFreeRecord = RefinedBase & {
|
|
@@ -3,8 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.refineRecordEntry = void 0;
|
|
4
4
|
const isDefined_utils_1 = require("./isDefined.utils");
|
|
5
5
|
const number_util_1 = require("./number.util");
|
|
6
|
+
const time_util_1 = require("./time.util");
|
|
6
7
|
const refineRecordEntry = (entry) => {
|
|
7
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
8
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
8
9
|
const base = Object.assign(Object.assign(Object.assign(Object.assign({ isDone: entry.isDone, isStrictMode: entry.isStrictMode }, ((0, isDefined_utils_1.isDefinedNumber)((0, number_util_1.toNumber)(entry.rpe)) && { rpe: (0, number_util_1.toNumber)(entry.rpe) })), ((0, isDefined_utils_1.isDefinedNumber)(entry.workDurationSecs) && {
|
|
9
10
|
workDurationSecs: entry.workDurationSecs,
|
|
10
11
|
})), ((0, isDefined_utils_1.isDefinedNumber)(entry.restDurationSecs) && {
|
|
@@ -24,18 +25,19 @@ const refineRecordEntry = (entry) => {
|
|
|
24
25
|
: undefined });
|
|
25
26
|
}
|
|
26
27
|
if (entry.type === "cardio-machine") {
|
|
27
|
-
const speed = (_g = (0, number_util_1.toNumber)(entry.
|
|
28
|
+
const speed = (_g = (0, number_util_1.toNumber)(entry.speedMax)) !== null && _g !== void 0 ? _g : 1;
|
|
28
29
|
const resistance = (_h = (0, number_util_1.toNumber)(entry.rpe)) !== null && _h !== void 0 ? _h : 1;
|
|
29
|
-
const durationSecs = (_j = (0, number_util_1.toNumber)(entry.durationSecs)) !== null && _j !== void 0 ? _j : 0;
|
|
30
|
+
const durationSecs = (_j = (0, number_util_1.toNumber)((0, time_util_1.mmssToSecs)(entry.durationSecs))) !== null && _j !== void 0 ? _j : 0; // entry.durationSecs comes as mm:ss value naming issue
|
|
31
|
+
const distance = (_k = (0, number_util_1.toNumber)(entry.distanceKm)) !== null && _k !== void 0 ? _k : 1;
|
|
30
32
|
// Calculate intensity score for progress tracking
|
|
31
33
|
const intensityScore = speed > 0 && resistance > 0 ? speed * resistance : undefined;
|
|
32
34
|
return Object.assign(Object.assign(Object.assign({}, base), { type: "cardio-machine", speed,
|
|
33
|
-
|
|
35
|
+
distance,
|
|
34
36
|
durationSecs }), ((0, isDefined_utils_1.isDefinedNumber)(intensityScore) && { intensityScore }));
|
|
35
37
|
}
|
|
36
38
|
if (entry.type === "cardio-free") {
|
|
37
|
-
const distanceKm = (
|
|
38
|
-
const durationSecs = (
|
|
39
|
+
const distanceKm = (_l = (0, number_util_1.toNumber)(entry.distanceKm)) !== null && _l !== void 0 ? _l : 0;
|
|
40
|
+
const durationSecs = (_m = (0, number_util_1.toNumber)(entry.durationSecs)) !== null && _m !== void 0 ? _m : 0;
|
|
39
41
|
// Calculate pace (seconds per km)
|
|
40
42
|
const avgPaceSecsPerKm = distanceKm > 0 && durationSecs > 0
|
|
41
43
|
? durationSecs / distanceKm
|
|
@@ -58,7 +58,7 @@ const calculateBMR = (userProfile) => {
|
|
|
58
58
|
* Calculate precise MET value using exercise metabolic data
|
|
59
59
|
*/
|
|
60
60
|
const calculateMETValue = (record, exercise, effortFactor, userProfile) => {
|
|
61
|
-
var _a, _b;
|
|
61
|
+
var _a, _b, _c;
|
|
62
62
|
const { metabolicData } = exercise;
|
|
63
63
|
const userWeight = (_a = userProfile.weightKg) !== null && _a !== void 0 ? _a : 70;
|
|
64
64
|
const fitnessLevel = (_b = userProfile.fitnessLevel) !== null && _b !== void 0 ? _b : 3;
|
|
@@ -117,7 +117,7 @@ const calculateMETValue = (record, exercise, effortFactor, userProfile) => {
|
|
|
117
117
|
}
|
|
118
118
|
case "cardio-machine": {
|
|
119
119
|
const speed = record.speed;
|
|
120
|
-
const resistance = record.
|
|
120
|
+
const resistance = (_c = record.rpe) !== null && _c !== void 0 ? _c : 1;
|
|
121
121
|
const durationSecs = record.durationSecs;
|
|
122
122
|
// Calculate intensity from speed and resistance combination
|
|
123
123
|
const intensityFactor = (speed * resistance) / 100; // Normalize intensity
|
|
@@ -107,6 +107,7 @@ exports.calculateWorkoutSummary = calculateWorkoutSummary;
|
|
|
107
107
|
* Generate human-readable set description
|
|
108
108
|
*/
|
|
109
109
|
const generateSetDescription = (record, exercise, scoreBreakdown) => {
|
|
110
|
+
var _a;
|
|
110
111
|
const effort = record.rpe
|
|
111
112
|
? `RPE ${record.rpe}`
|
|
112
113
|
: "rir" in record && record.rir
|
|
@@ -130,7 +131,8 @@ const generateSetDescription = (record, exercise, scoreBreakdown) => {
|
|
|
130
131
|
: `${seconds}s`;
|
|
131
132
|
return `${timeStr}${auxWeightDur} ${effort} • ${calories}`;
|
|
132
133
|
case "cardio-machine":
|
|
133
|
-
const
|
|
134
|
+
const rpe = (_a = record.rpe) !== null && _a !== void 0 ? _a : 1;
|
|
135
|
+
const resistance = rpe > 0 ? ` R${rpe}` : "";
|
|
134
136
|
const minutes_cm = Math.floor(record.durationSecs / 60);
|
|
135
137
|
const seconds_cm = record.durationSecs % 60;
|
|
136
138
|
const timeStr_cm = minutes_cm > 0
|