@dgpholdings/greatoak-shared 1.1.58 → 1.1.60

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.
@@ -63,7 +63,7 @@ export type TExerciseLatestRecord = {
63
63
  rpe?: string;
64
64
  rir?: string;
65
65
  setNote?: string;
66
- distanceKm?: string;
66
+ distance?: string;
67
67
  isStrictMode: boolean;
68
68
  workDurationSecs?: number;
69
69
  restDurationSecs?: number;
@@ -74,6 +74,7 @@ export type TExerciseLatestRecord = {
74
74
  enableAuxWeight: boolean;
75
75
  enableTimeIntervalMode: boolean;
76
76
  enableSetNote: boolean;
77
+ enableDistance: boolean;
77
78
  enableExerciseNote: boolean;
78
79
  enableEffort: "rir" | "rpe" | "none";
79
80
  };
@@ -24,10 +24,10 @@ export type TRecord = {
24
24
  speedMin: string;
25
25
  speedMax: string;
26
26
  durationSecs: string;
27
- distanceKm?: string;
27
+ distance?: string;
28
28
  } | {
29
29
  type: "cardio-free";
30
- distanceKm: string;
30
+ distance: string;
31
31
  durationSecs: string;
32
32
  });
33
33
  export type TRecordDuration = Extract<TRecord, {
@@ -33,7 +33,7 @@ export type TRefinedCardioMachineRecord = RefinedBase & {
33
33
  };
34
34
  export type TRefinedCardioFreeRecord = RefinedBase & {
35
35
  type: "cardio-free";
36
- distanceKm: number;
36
+ distance: number;
37
37
  durationSecs: number;
38
38
  avgPaceSecsPerKm?: number;
39
39
  avgSpeedKmh?: number;
@@ -28,7 +28,7 @@ const refineRecordEntry = (entry) => {
28
28
  const speed = (_g = (0, number_util_1.toNumber)(entry.speedMax)) !== null && _g !== void 0 ? _g : 1;
29
29
  const resistance = (_h = (0, number_util_1.toNumber)(entry.rpe)) !== null && _h !== void 0 ? _h : 1;
30
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;
31
+ const distance = (_k = (0, number_util_1.toNumber)(entry.distance)) !== null && _k !== void 0 ? _k : 1;
32
32
  // Calculate intensity score for progress tracking
33
33
  const intensityScore = speed > 0 && resistance > 0 ? speed * resistance : undefined;
34
34
  return Object.assign(Object.assign(Object.assign({}, base), { type: "cardio-machine", speed,
@@ -36,17 +36,15 @@ const refineRecordEntry = (entry) => {
36
36
  durationSecs }), ((0, isDefined_utils_1.isDefinedNumber)(intensityScore) && { intensityScore }));
37
37
  }
38
38
  if (entry.type === "cardio-free") {
39
- const distanceKm = (_l = (0, number_util_1.toNumber)(entry.distanceKm)) !== null && _l !== void 0 ? _l : 0;
39
+ const distance = (_l = (0, number_util_1.toNumber)(entry.distance)) !== null && _l !== void 0 ? _l : 0;
40
40
  const durationSecs = (_m = (0, number_util_1.toNumber)(entry.durationSecs)) !== null && _m !== void 0 ? _m : 0;
41
41
  // Calculate pace (seconds per km)
42
- const avgPaceSecsPerKm = distanceKm > 0 && durationSecs > 0
43
- ? durationSecs / distanceKm
44
- : undefined;
42
+ const avgPaceSecsPerKm = distance > 0 && durationSecs > 0 ? durationSecs / distance : undefined;
45
43
  // Calculate average speed (km/h)
46
- const avgSpeedKmh = distanceKm > 0 && durationSecs > 0
47
- ? distanceKm / (durationSecs / 3600)
44
+ const avgSpeedKmh = distance > 0 && durationSecs > 0
45
+ ? distance / (durationSecs / 3600)
48
46
  : undefined;
49
- return Object.assign(Object.assign(Object.assign(Object.assign({}, base), { type: "cardio-free", distanceKm,
47
+ return Object.assign(Object.assign(Object.assign(Object.assign({}, base), { type: "cardio-free", distance,
50
48
  durationSecs }), ((0, isDefined_utils_1.isDefinedNumber)(avgPaceSecsPerKm) && { avgPaceSecsPerKm })), ((0, isDefined_utils_1.isDefinedNumber)(avgSpeedKmh) && { avgSpeedKmh }));
51
49
  }
52
50
  throw new Error(`Unknown record type: ${entry.type}`);
@@ -132,10 +132,10 @@ const calculateMETValue = (record, exercise, effortFactor, userProfile) => {
132
132
  break;
133
133
  }
134
134
  case "cardio-free": {
135
- const distanceKm = record.distanceKm;
135
+ const distance = record.distance;
136
136
  const durationSecs = record.durationSecs;
137
- if (distanceKm > 0 && durationSecs > 0 && metabolicData.paceFactors) {
138
- const speedKmh = (distanceKm * 3600) / durationSecs;
137
+ if (distance > 0 && durationSecs > 0 && metabolicData.paceFactors) {
138
+ const speedKmh = (distance * 3600) / durationSecs;
139
139
  // Find closest pace factor
140
140
  let closestMET = metabolicData.baseMET;
141
141
  let closestSpeed = Infinity;
@@ -152,7 +152,7 @@ const generateSetDescription = (record, exercise, scoreBreakdown) => {
152
152
  const paceSecondsFormatted = paceSeconds < 10 ? `0${paceSeconds}` : `${paceSeconds}`;
153
153
  pace = ` (${paceMinutes}:${paceSecondsFormatted}/km)`;
154
154
  }
155
- return `${record.distanceKm}km in ${timeStr_cf}${pace} ${effort} • ${calories}`;
155
+ return `${record.distance}km in ${timeStr_cf}${pace} ${effort} • ${calories}`;
156
156
  default:
157
157
  return `${effort} • ${calories}`;
158
158
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dgpholdings/greatoak-shared",
3
- "version": "1.1.58",
3
+ "version": "1.1.60",
4
4
  "description": "Shared TypeScript types and utilities for @dgpholdings projects",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",