garminclimb 1.2.2 → 1.2.3

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.
@@ -23,7 +23,10 @@
23
23
  "Bash(node -e \"const { ActivityType } = require\\('garmin-connect/dist/garmin/types/activity'\\); console.log\\('ActivityType.Cycling =', ActivityType.Cycling\\); console.log\\('All types:', JSON.stringify\\(ActivityType, null, 2\\)\\);\")",
24
24
  "Bash(ls:*)",
25
25
  "Bash(npm run:*)",
26
- "Bash(python3 -c ':*)"
26
+ "Bash(python3 -c ':*)",
27
+ "Bash(node *)",
28
+ "Bash(open *)",
29
+ "Bash(make *)"
27
30
  ]
28
31
  }
29
32
  }
package/bin/index.js CHANGED
@@ -62,22 +62,14 @@ commander_1.program
62
62
  function loadData() {
63
63
  const indoorData = fs.readFileSync(path.join(exports.garminDataFolder, "indoorClimbingActivities.json"), "utf8");
64
64
  const boulderData = fs.readFileSync(path.join(exports.garminDataFolder, "boulderingActivities.json"), "utf8");
65
- let strengthData = "[]";
66
- try {
67
- strengthData = fs.readFileSync(path.join(exports.garminDataFolder, "strengthTrainingActivities.json"), "utf8");
68
- }
69
- catch (e) { }
70
- let runningData = "[]";
71
- try {
72
- runningData = fs.readFileSync(path.join(exports.garminDataFolder, "runningActivities.json"), "utf8");
73
- }
74
- catch (e) { }
75
- let cyclingData = "[]";
76
- try {
77
- cyclingData = fs.readFileSync(path.join(exports.garminDataFolder, "cyclingActivities.json"), "utf8");
78
- }
79
- catch (e) { }
80
- return `var INDOOR_DATA = ${indoorData};\nvar BOULDER_DATA = ${boulderData};\nvar STRENGTH_DATA = ${strengthData};\nvar CYCLING_DATA = ${cyclingData};\nvar RUNNING_DATA = ${runningData};\n`;
65
+ // Strength, running, cycling data loading commented out — climbing-only
66
+ // let strengthData = "[]";
67
+ // try { strengthData = fs.readFileSync(path.join(garminDataFolder, "strengthTrainingActivities.json"), "utf8"); } catch (e) {}
68
+ // let runningData = "[]";
69
+ // try { runningData = fs.readFileSync(path.join(garminDataFolder, "runningActivities.json"), "utf8"); } catch (e) {}
70
+ // let cyclingData = "[]";
71
+ // try { cyclingData = fs.readFileSync(path.join(garminDataFolder, "cyclingActivities.json"), "utf8"); } catch (e) {}
72
+ return `var INDOOR_DATA = ${indoorData};\nvar BOULDER_DATA = ${boulderData};\n`;
81
73
  }
82
74
  commander_1.program
83
75
  .command("chartjs")
package/bin/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,uCAAyB;AACzB,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACzB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;AAChB,QAAA,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAC/D,yCAAsC;AACtC,mCAAgC;AAEhC,mBAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,2BAA2B,EAAE,yBAAyB,CAAC;KAC9D,MAAM,CAAC,2BAA2B,EAAE,yBAAyB,CAAC;KAC9D,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;IAClB,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;IACzC,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;IACzC,IAAA,mBAAQ,EAAC,eAAe,EAAE,eAAe,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEL,mBAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,GAAG,EAAE;IACX,IAAA,aAAK,GAAE,CAAC;AACV,CAAC,CAAC,CAAC;AAEL,SAAS,QAAQ;IACf,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAgB,EAAE,+BAA+B,CAAC,EAAE,MAAM,CAAC,CAAC;IACzG,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAgB,EAAE,2BAA2B,CAAC,EAAE,MAAM,CAAC,CAAC;IACtG,wEAAwE;IACxE,2BAA2B;IAC3B,+HAA+H;IAC/H,0BAA0B;IAC1B,qHAAqH;IACrH,0BAA0B;IAC1B,qHAAqH;IACrH,OAAO,qBAAqB,UAAU,yBAAyB,WAAW,KAAK,CAAC;AAClF,CAAC;AAED,mBAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,mBAAmB,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3F,MAAM,UAAU,GAAG,QAAQ,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA6BT,UAAU;EAClB,SAAS;;QAEH,CAAC;IACL,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC;AAEL,mBAAO;KACJ,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,+DAA+D,CAAC;KAC5E,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,mBAAmB,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3F,MAAM,UAAU,GAAG,QAAQ,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAC9B,yBAAyB,EACzB,aAAa,UAAU,eAAe,CACvC,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC;AAEL,mBAAO,CAAC,KAAK,EAAE,CAAC"}
package/bin/parse.js CHANGED
@@ -113,7 +113,6 @@ const numberToGrade = (number) => {
113
113
  return grade.padEnd(8, " ");
114
114
  };
115
115
  const parse = () => __awaiter(void 0, void 0, void 0, function* () {
116
- var _a;
117
116
  const indoorClimbingActivities = JSON.parse(fs.readFileSync(`${_1.garminDataFolder}/indoorClimbingActivities.json`, "utf8"));
118
117
  // ?.reverse();
119
118
  const activeIndoorSplits = indoorClimbingActivities.map((activity) => {
@@ -443,256 +442,23 @@ const parse = () => __awaiter(void 0, void 0, void 0, function* () {
443
442
  },
444
443
  });
445
444
  console.log("```");
446
- // === STRENGTH TRAINING ===
447
- try {
448
- const strengthActivities = JSON.parse(fs.readFileSync(`${_1.garminDataFolder}/strengthTrainingActivities.json`, "utf8"));
449
- if ((strengthActivities === null || strengthActivities === void 0 ? void 0 : strengthActivities.length) > 0) {
450
- console.log("\n```");
451
- console.log("\n\nStrength Training ===============================\n");
452
- // Extract exercise data from each activity
453
- // Garmin summarizedExerciseSets uses: category, subCategory, maxWeight (milligrams), reps, volume (milligrams), sets
454
- const mgToLbs = (mg) => Math.round((mg / 1000) * 2.20462);
455
- const exercisePatterns = {
456
- bench: {
457
- label: "Bench Press",
458
- match: (cat, sub) => cat === "BENCH_PRESS",
459
- },
460
- squat: {
461
- label: "Back Squat",
462
- match: (cat, sub) => cat === "SQUAT" && (sub || "").includes("BACK_SQUAT"),
463
- },
464
- pullup: {
465
- label: "Weighted Pull-Up",
466
- match: (cat, sub) => cat === "PULL_UP",
467
- },
468
- rdl: {
469
- label: "Romanian Deadlift",
470
- match: (cat, sub) => cat === "DEADLIFT" && (sub || "").includes("ROMANIAN"),
471
- },
472
- };
473
- const exerciseData = { bench: [], squat: [], pullup: [], rdl: [] };
474
- for (const activity of strengthActivities) {
475
- const date = ((_a = activity === null || activity === void 0 ? void 0 : activity.startTimeLocal) === null || _a === void 0 ? void 0 : _a.split(" ")[0]) || "";
476
- const exercises = (activity === null || activity === void 0 ? void 0 : activity.exerciseSets) || (activity === null || activity === void 0 ? void 0 : activity.fullSummarizedExerciseSets) || (activity === null || activity === void 0 ? void 0 : activity.summarizedExerciseSets) || [];
477
- for (const exKey of Object.keys(exercisePatterns)) {
478
- const pattern = exercisePatterns[exKey];
479
- for (const ex of exercises) {
480
- const cat = ((ex === null || ex === void 0 ? void 0 : ex.category) || "").toUpperCase();
481
- const sub = ((ex === null || ex === void 0 ? void 0 : ex.subCategory) || "").toUpperCase();
482
- if (pattern.match(cat, sub)) {
483
- exerciseData[exKey].push({
484
- date,
485
- maxWeight: mgToLbs((ex === null || ex === void 0 ? void 0 : ex.maxWeight) || 0),
486
- totalVolume: mgToLbs((ex === null || ex === void 0 ? void 0 : ex.volume) || 0),
487
- sets: (ex === null || ex === void 0 ? void 0 : ex.sets) || 0,
488
- totalReps: (ex === null || ex === void 0 ? void 0 : ex.reps) || 0,
489
- });
490
- }
491
- }
492
- }
493
- }
494
- for (const exKey of Object.keys(exercisePatterns)) {
495
- const pattern = exercisePatterns[exKey];
496
- const sessions = exerciseData[exKey];
497
- if (sessions.length === 0)
498
- continue;
499
- console.log(`\n${pattern.label} (${sessions.length} sessions)`);
500
- console.log(` All Time Max Weight: ${Math.max(...sessions.map(s => s.maxWeight))} lbs`);
501
- console.log(` All Time Max Session Volume: ${Math.max(...sessions.map(s => s.totalVolume))} lbs`);
502
- console.log(` Average Max Weight: ${Math.round(sessions.reduce((a, s) => a + s.maxWeight, 0) / sessions.length)} lbs`);
503
- console.log(` Total Reps All Time: ${sessions.reduce((a, s) => a + s.totalReps, 0)}\n`);
504
- // Per-session max weight
505
- generateChart(sessions.map((s, i) => [i, s.maxWeight]), `${pattern.label} - Max Weight Per Session (lbs)`, {
506
- width: sessions.length * CHART_WIDTH_PER_DATA_POINT,
507
- formatter: (value, { axis }) => { var _a; return axis === "y" ? value : (_a = sessions[value]) === null || _a === void 0 ? void 0 : _a.date; },
508
- });
509
- // Per-session volume
510
- generateChart(sessions.map((s, i) => [i, s.totalVolume]), `${pattern.label} - Total Volume Per Session (lbs)`, {
511
- height: 10,
512
- width: sessions.length * CHART_WIDTH_PER_DATA_POINT,
513
- barChart: true,
514
- formatter: (value, { axis }) => { var _a; return axis === "y" ? value : (_a = sessions[value]) === null || _a === void 0 ? void 0 : _a.date; },
515
- });
516
- // Monthly max weight
517
- const maxWeightByMonth = sessions.reduce((acc, s) => {
518
- const parts = s.date.split("-");
519
- const key = `${parts[0]}-${parts[1]}`;
520
- acc[key] = Math.max(acc[key] || 0, s.maxWeight);
521
- return acc;
522
- }, {});
523
- generateChart(Object.keys(maxWeightByMonth).map((month, i) => [i, maxWeightByMonth[month]]), `${pattern.label} - Max Weight By Month (lbs)`, {
524
- width: YEAR_WIDTH,
525
- formatter: (value, { axis }) => axis === "y" ? value : Object.keys(maxWeightByMonth)[value],
526
- });
527
- // Monthly volume
528
- const volumeByMonth = sessions.reduce((acc, s) => {
529
- const parts = s.date.split("-");
530
- const key = `${parts[0]}-${parts[1]}`;
531
- acc[key] = (acc[key] || 0) + s.totalVolume;
532
- return acc;
533
- }, {});
534
- generateChart(Object.keys(volumeByMonth).map((month, i) => [i, volumeByMonth[month]]), `${pattern.label} - Total Volume By Month (lbs)`, {
535
- height: 10,
536
- width: YEAR_WIDTH,
537
- barChart: true,
538
- formatter: (value, { axis }) => axis === "y" ? value : Object.keys(volumeByMonth)[value],
539
- });
540
- // Yearly max weight
541
- const maxWeightByYear = aggregateByYear(maxWeightByMonth, "max");
542
- generateChart(maxWeightByYear.map(([, val], index) => [index, val]), `${pattern.label} - Max Weight By Year (lbs)`, {
543
- width: maxWeightByYear.length * 20,
544
- formatter: (value, { axis }) => { var _a; return axis === "y" ? value : (_a = maxWeightByYear[value]) === null || _a === void 0 ? void 0 : _a[0]; },
545
- });
546
- // Yearly volume
547
- const volumeByYear = aggregateByYear(volumeByMonth);
548
- generateChart(volumeByYear.map(([, val], index) => [index, val]), `${pattern.label} - Total Volume By Year (lbs)`, {
549
- height: 10,
550
- width: volumeByYear.length * 20,
551
- barChart: true,
552
- formatter: (value, { axis }) => { var _a; return axis === "y" ? value : (_a = volumeByYear[value]) === null || _a === void 0 ? void 0 : _a[0]; },
553
- });
554
- // Per-session reps
555
- generateChart(sessions.map((s, i) => [i, s.totalReps]), `${pattern.label} - Total Reps Per Session`, {
556
- height: 10,
557
- width: sessions.length * CHART_WIDTH_PER_DATA_POINT,
558
- barChart: true,
559
- formatter: (value, { axis }) => { var _a; return axis === "y" ? value : (_a = sessions[value]) === null || _a === void 0 ? void 0 : _a.date; },
560
- });
561
- // Monthly reps
562
- const repsByMonth = sessions.reduce((acc, s) => {
563
- const parts = s.date.split("-");
564
- const key = `${parts[0]}-${parts[1]}`;
565
- acc[key] = (acc[key] || 0) + s.totalReps;
566
- return acc;
567
- }, {});
568
- generateChart(Object.keys(repsByMonth).map((month, i) => [i, repsByMonth[month]]), `${pattern.label} - Total Reps By Month`, {
569
- height: 10,
570
- width: YEAR_WIDTH,
571
- barChart: true,
572
- formatter: (value, { axis }) => axis === "y" ? value : Object.keys(repsByMonth)[value],
573
- });
574
- // Yearly reps
575
- const repsByYear = aggregateByYear(repsByMonth);
576
- generateChart(repsByYear.map(([, val], index) => [index, val]), `${pattern.label} - Total Reps By Year`, {
577
- height: 10,
578
- width: repsByYear.length * 20,
579
- barChart: true,
580
- formatter: (value, { axis }) => { var _a; return axis === "y" ? value : (_a = repsByYear[value]) === null || _a === void 0 ? void 0 : _a[0]; },
581
- });
582
- }
583
- console.log("```");
584
- }
585
- }
586
- catch (e) {
587
- // No strength training data available, skip
588
- }
589
- // === RUNNING & CYCLING ===
590
- const cardioTypes = [
591
- { file: "cyclingActivities.json", label: "Cycling", unit: "mi" },
592
- { file: "runningActivities.json", label: "Running", unit: "mi" },
593
- ];
594
- for (const cardio of cardioTypes) {
595
- try {
596
- const activities = JSON.parse(fs.readFileSync(`${_1.garminDataFolder}/${cardio.file}`, "utf8"));
597
- if (!(activities === null || activities === void 0 ? void 0 : activities.length))
598
- continue;
599
- console.log("\n```");
600
- console.log(`\n\n${cardio.label} ===============================\n`);
601
- const metersToMiles = (m) => Math.round((m / 1609.344) * 100) / 100;
602
- const secondsToMinutes = (s) => Math.round(s / 60);
603
- const pacePerMile = (dist, dur) => {
604
- const miles = dist / 1609.344;
605
- if (miles === 0)
606
- return 0;
607
- return Math.round((dur / 60) / miles * 100) / 100; // min/mile
608
- };
609
- const sessions = activities.map((a) => {
610
- var _a;
611
- return ({
612
- date: ((_a = a === null || a === void 0 ? void 0 : a.startTimeLocal) === null || _a === void 0 ? void 0 : _a.split(" ")[0]) || "",
613
- distance: metersToMiles((a === null || a === void 0 ? void 0 : a.distance) || 0),
614
- duration: secondsToMinutes((a === null || a === void 0 ? void 0 : a.duration) || 0),
615
- pace: pacePerMile((a === null || a === void 0 ? void 0 : a.distance) || 0, (a === null || a === void 0 ? void 0 : a.duration) || 0),
616
- calories: (a === null || a === void 0 ? void 0 : a.calories) || 0,
617
- avgHR: (a === null || a === void 0 ? void 0 : a.averageHR) || 0,
618
- elevGain: metersToFeet((a === null || a === void 0 ? void 0 : a.elevationGain) || 0),
619
- });
620
- });
621
- const totalDist = Math.round(sessions.reduce((a, s) => a + s.distance, 0) * 100) / 100;
622
- const totalTime = sessions.reduce((a, s) => a + s.duration, 0);
623
- const avgPace = Math.round(sessions.filter(s => s.pace > 0).reduce((a, s) => a + s.pace, 0) / sessions.filter(s => s.pace > 0).length * 100) / 100;
624
- const bestPace = Math.round(Math.min(...sessions.filter(s => s.pace > 0).map(s => s.pace)) * 100) / 100;
625
- const totalCalories = sessions.reduce((a, s) => a + s.calories, 0);
626
- console.log(`${cardio.label} (${sessions.length} sessions)`);
627
- console.log(` Total Distance: ${totalDist} ${cardio.unit}`);
628
- console.log(` Total Time: ${totalTime} min (${Math.round(totalTime / 60)} hrs)`);
629
- console.log(` Average Pace: ${avgPace} min/${cardio.unit}`);
630
- console.log(` Best Pace: ${bestPace} min/${cardio.unit}`);
631
- console.log(` Total Calories: ${totalCalories}\n`);
632
- // Per-session distance
633
- generateChart(sessions.map((s, i) => [i, s.distance]), `${cardio.label} - Distance Per Session (${cardio.unit})`, {
634
- height: 10,
635
- width: sessions.length * CHART_WIDTH_PER_DATA_POINT,
636
- barChart: true,
637
- formatter: (value, { axis }) => { var _a; return axis === "y" ? value : (_a = sessions[value]) === null || _a === void 0 ? void 0 : _a.date; },
638
- });
639
- // Per-session pace
640
- generateChart(sessions.filter(s => s.pace > 0).map((s, i) => [i, s.pace]), `${cardio.label} - Pace Per Session (min/${cardio.unit})`, {
641
- width: sessions.filter(s => s.pace > 0).length * CHART_WIDTH_PER_DATA_POINT,
642
- formatter: (value, { axis }) => { var _a; return axis === "y" ? value : (_a = sessions.filter(s => s.pace > 0)[value]) === null || _a === void 0 ? void 0 : _a.date; },
643
- });
644
- // Per-session duration
645
- generateChart(sessions.map((s, i) => [i, s.duration]), `${cardio.label} - Duration Per Session (min)`, {
646
- height: 10,
647
- width: sessions.length * CHART_WIDTH_PER_DATA_POINT,
648
- barChart: true,
649
- formatter: (value, { axis }) => { var _a; return axis === "y" ? value : (_a = sessions[value]) === null || _a === void 0 ? void 0 : _a.date; },
650
- });
651
- // Monthly aggregations
652
- const groupByMonth = (fn) => sessions.reduce((acc, s) => {
653
- const parts = s.date.split("-");
654
- const key = `${parts[0]}-${parts[1]}`;
655
- acc[key] = fn(s, acc[key] || 0);
656
- return acc;
657
- }, {});
658
- const distByMonth = groupByMonth((s, prev) => Math.round((prev + s.distance) * 100) / 100);
659
- const durationByMonth = groupByMonth((s, prev) => prev + s.duration);
660
- const sessionsByMonth = groupByMonth((s, prev) => prev + 1);
661
- generateChart(Object.keys(distByMonth).map((m, i) => [i, distByMonth[m]]), `${cardio.label} - Distance By Month (${cardio.unit})`, {
662
- height: 10, width: YEAR_WIDTH, barChart: true,
663
- formatter: (value, { axis }) => axis === "y" ? value : Object.keys(distByMonth)[value],
664
- });
665
- generateChart(Object.keys(durationByMonth).map((m, i) => [i, durationByMonth[m]]), `${cardio.label} - Duration By Month (min)`, {
666
- height: 10, width: YEAR_WIDTH, barChart: true,
667
- formatter: (value, { axis }) => axis === "y" ? value : Object.keys(durationByMonth)[value],
668
- });
669
- generateChart(Object.keys(sessionsByMonth).map((m, i) => [i, sessionsByMonth[m]]), `${cardio.label} - Sessions By Month`, {
670
- height: 10, width: YEAR_WIDTH, barChart: true,
671
- formatter: (value, { axis }) => axis === "y" ? value : Object.keys(sessionsByMonth)[value],
672
- });
673
- // Yearly
674
- console.log("\nYearly Stats ===============================\n");
675
- const distByYear = aggregateByYear(distByMonth);
676
- generateChart(distByYear.map(([, val], i) => [i, val]), `${cardio.label} - Distance By Year (${cardio.unit})`, {
677
- height: 10, width: distByYear.length * 20, barChart: true,
678
- formatter: (value, { axis }) => { var _a; return axis === "y" ? value : (_a = distByYear[value]) === null || _a === void 0 ? void 0 : _a[0]; },
679
- });
680
- const durationByYear = aggregateByYear(durationByMonth);
681
- generateChart(durationByYear.map(([, val], i) => [i, val]), `${cardio.label} - Duration By Year (min)`, {
682
- height: 10, width: durationByYear.length * 20, barChart: true,
683
- formatter: (value, { axis }) => { var _a; return axis === "y" ? value : (_a = durationByYear[value]) === null || _a === void 0 ? void 0 : _a[0]; },
684
- });
685
- const sessionsByYear = aggregateByYear(sessionsByMonth);
686
- generateChart(sessionsByYear.map(([, val], i) => [i, val]), `${cardio.label} - Sessions By Year`, {
687
- height: 10, width: sessionsByYear.length * 20, barChart: true,
688
- formatter: (value, { axis }) => { var _a; return axis === "y" ? value : (_a = sessionsByYear[value]) === null || _a === void 0 ? void 0 : _a[0]; },
689
- });
690
- console.log("```");
691
- }
692
- catch (e) {
693
- // No data for this cardio type
694
- }
695
- }
445
+ // === STRENGTH TRAINING === (commented out — climbing-only)
446
+ // try {
447
+ // const strengthActivities = JSON.parse(
448
+ // fs.readFileSync(`${garminDataFolder}/strengthTrainingActivities.json`, "utf8"),
449
+ // );
450
+ // if (strengthActivities?.length > 0) {
451
+ // // ... strength training charts omitted
452
+ // }
453
+ // } catch (e) {}
454
+ // === RUNNING & CYCLING === (commented out — climbing-only)
455
+ // const cardioTypes = [
456
+ // { file: "cyclingActivities.json", label: "Cycling", unit: "mi" },
457
+ // { file: "runningActivities.json", label: "Running", unit: "mi" },
458
+ // ];
459
+ // for (const cardio of cardioTypes) {
460
+ // // ... cardio charts omitted
461
+ // }
696
462
  });
697
463
  exports.parse = parse;
698
464
  //# sourceMappingURL=parse.js.map
package/bin/parse.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
package/charts-embed.html CHANGED
@@ -75,62 +75,53 @@
75
75
  <div id="gc-session-boulder-charts"></div>
76
76
  </details>
77
77
 
78
+ <!-- Strength Training, Cycling, Running sections commented out — climbing-only -->
79
+ <!--
78
80
  <h1>Strength Training</h1>
79
81
  <div class="gc-stats" id="gc-strength-stats-summary"></div>
80
-
81
82
  <details open><summary><h2>Yearly Overview: Strength</h2></summary>
82
83
  <div id="gc-strength-yearly-charts"></div>
83
84
  </details>
84
-
85
85
  <details open><summary><h2>Monthly Trends: Strength</h2></summary>
86
86
  <div id="gc-strength-monthly-charts"></div>
87
87
  </details>
88
-
89
88
  <details open><summary><h2>Per-Session: Bench Press</h2></summary>
90
89
  <div id="gc-session-bench-charts"></div>
91
90
  </details>
92
-
93
91
  <details open><summary><h2>Per-Session: Back Squat</h2></summary>
94
92
  <div id="gc-session-squat-charts"></div>
95
93
  </details>
96
-
97
94
  <details open><summary><h2>Per-Session: Weighted Pull-Up</h2></summary>
98
95
  <div id="gc-session-pullup-charts"></div>
99
96
  </details>
100
-
101
97
  <details open><summary><h2>Per-Session: Romanian Deadlift</h2></summary>
102
98
  <div id="gc-session-rdl-charts"></div>
103
99
  </details>
104
100
 
105
101
  <h1>Cycling</h1>
106
102
  <div class="gc-stats" id="gc-cycling-stats-summary"></div>
107
-
108
103
  <details open><summary><h2>Yearly Overview: Cycling</h2></summary>
109
104
  <div id="gc-cycling-yearly-charts"></div>
110
105
  </details>
111
-
112
106
  <details open><summary><h2>Monthly Trends: Cycling</h2></summary>
113
107
  <div id="gc-cycling-monthly-charts"></div>
114
108
  </details>
115
-
116
109
  <details open><summary><h2>Per-Session: Cycling</h2></summary>
117
110
  <div id="gc-cycling-session-charts"></div>
118
111
  </details>
119
112
 
120
113
  <h1>Running</h1>
121
114
  <div class="gc-stats" id="gc-running-stats-summary"></div>
122
-
123
115
  <details open><summary><h2>Yearly Overview: Running</h2></summary>
124
116
  <div id="gc-running-yearly-charts"></div>
125
117
  </details>
126
-
127
118
  <details open><summary><h2>Monthly Trends: Running</h2></summary>
128
119
  <div id="gc-running-monthly-charts"></div>
129
120
  </details>
130
-
131
121
  <details open><summary><h2>Per-Session: Running</h2></summary>
132
122
  <div id="gc-running-session-charts"></div>
133
123
  </details>
124
+ -->
134
125
  </div>
135
126
 
136
127
  <script>
@@ -462,14 +453,15 @@ function renderCardio(activities, sport) {
462
453
  if (typeof INDOOR_DATA !== 'undefined' && typeof BOULDER_DATA !== 'undefined') {
463
454
  render(INDOOR_DATA, BOULDER_DATA);
464
455
  }
465
- if (typeof STRENGTH_DATA !== 'undefined' && STRENGTH_DATA && STRENGTH_DATA.length > 0) {
466
- renderStrength(STRENGTH_DATA);
467
- }
468
- if (typeof CYCLING_DATA !== 'undefined' && CYCLING_DATA && CYCLING_DATA.length > 0) {
469
- renderCardio(CYCLING_DATA, 'cycling');
470
- }
471
- if (typeof RUNNING_DATA !== 'undefined' && RUNNING_DATA && RUNNING_DATA.length > 0) {
472
- renderCardio(RUNNING_DATA, 'running');
473
- }
456
+ // Strength, Cycling, Running rendering commented out climbing-only
457
+ // if (typeof STRENGTH_DATA !== 'undefined' && STRENGTH_DATA && STRENGTH_DATA.length > 0) {
458
+ // renderStrength(STRENGTH_DATA);
459
+ // }
460
+ // if (typeof CYCLING_DATA !== 'undefined' && CYCLING_DATA && CYCLING_DATA.length > 0) {
461
+ // renderCardio(CYCLING_DATA, 'cycling');
462
+ // }
463
+ // if (typeof RUNNING_DATA !== 'undefined' && RUNNING_DATA && RUNNING_DATA.length > 0) {
464
+ // renderCardio(RUNNING_DATA, 'running');
465
+ // }
474
466
  })();
475
467
  </script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "garminclimb",
3
- "version": "1.2.2",
3
+ "version": "1.2.3",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/src/index.ts CHANGED
@@ -30,13 +30,14 @@ program
30
30
  function loadData() {
31
31
  const indoorData = fs.readFileSync(path.join(garminDataFolder, "indoorClimbingActivities.json"), "utf8");
32
32
  const boulderData = fs.readFileSync(path.join(garminDataFolder, "boulderingActivities.json"), "utf8");
33
- let strengthData = "[]";
34
- try { strengthData = fs.readFileSync(path.join(garminDataFolder, "strengthTrainingActivities.json"), "utf8"); } catch (e) {}
35
- let runningData = "[]";
36
- try { runningData = fs.readFileSync(path.join(garminDataFolder, "runningActivities.json"), "utf8"); } catch (e) {}
37
- let cyclingData = "[]";
38
- try { cyclingData = fs.readFileSync(path.join(garminDataFolder, "cyclingActivities.json"), "utf8"); } catch (e) {}
39
- return `var INDOOR_DATA = ${indoorData};\nvar BOULDER_DATA = ${boulderData};\nvar STRENGTH_DATA = ${strengthData};\nvar CYCLING_DATA = ${cyclingData};\nvar RUNNING_DATA = ${runningData};\n`;
33
+ // Strength, running, cycling data loading commented out — climbing-only
34
+ // let strengthData = "[]";
35
+ // try { strengthData = fs.readFileSync(path.join(garminDataFolder, "strengthTrainingActivities.json"), "utf8"); } catch (e) {}
36
+ // let runningData = "[]";
37
+ // try { runningData = fs.readFileSync(path.join(garminDataFolder, "runningActivities.json"), "utf8"); } catch (e) {}
38
+ // let cyclingData = "[]";
39
+ // try { cyclingData = fs.readFileSync(path.join(garminDataFolder, "cyclingActivities.json"), "utf8"); } catch (e) {}
40
+ return `var INDOOR_DATA = ${indoorData};\nvar BOULDER_DATA = ${boulderData};\n`;
40
41
  }
41
42
 
42
43
  program
package/src/parse.ts CHANGED
@@ -592,379 +592,22 @@ export const parse = async () => {
592
592
 
593
593
  console.log("```");
594
594
 
595
- // === STRENGTH TRAINING ===
596
- try {
597
- const strengthActivities = JSON.parse(
598
- fs.readFileSync(`${garminDataFolder}/strengthTrainingActivities.json`, "utf8"),
599
- );
600
-
601
- if (strengthActivities?.length > 0) {
602
- console.log("\n```");
603
- console.log("\n\nStrength Training ===============================\n");
604
-
605
- // Extract exercise data from each activity
606
- // Garmin summarizedExerciseSets uses: category, subCategory, maxWeight (milligrams), reps, volume (milligrams), sets
607
- const mgToLbs = (mg: number): number => Math.round((mg / 1000) * 2.20462);
608
-
609
- const exercisePatterns: { [key: string]: { label: string; match: (cat: string, sub: string) => boolean } } = {
610
- bench: {
611
- label: "Bench Press",
612
- match: (cat, sub) => cat === "BENCH_PRESS",
613
- },
614
- squat: {
615
- label: "Back Squat",
616
- match: (cat, sub) => cat === "SQUAT" && (sub || "").includes("BACK_SQUAT"),
617
- },
618
- pullup: {
619
- label: "Weighted Pull-Up",
620
- match: (cat, sub) => cat === "PULL_UP",
621
- },
622
- rdl: {
623
- label: "Romanian Deadlift",
624
- match: (cat, sub) => cat === "DEADLIFT" && (sub || "").includes("ROMANIAN"),
625
- },
626
- };
627
-
628
- type SessionData = { date: string; maxWeight: number; totalVolume: number; sets: number; totalReps: number };
629
- const exerciseData: { [key: string]: SessionData[] } = { bench: [], squat: [], pullup: [], rdl: [] };
630
-
631
- for (const activity of strengthActivities) {
632
- const date = activity?.startTimeLocal?.split(" ")[0] || "";
633
- const exercises = activity?.exerciseSets || activity?.fullSummarizedExerciseSets || activity?.summarizedExerciseSets || [];
634
-
635
- for (const exKey of Object.keys(exercisePatterns)) {
636
- const pattern = exercisePatterns[exKey];
637
-
638
- for (const ex of exercises) {
639
- const cat = (ex?.category || "").toUpperCase();
640
- const sub = (ex?.subCategory || "").toUpperCase();
641
-
642
- if (pattern.match(cat, sub)) {
643
- exerciseData[exKey].push({
644
- date,
645
- maxWeight: mgToLbs(ex?.maxWeight || 0),
646
- totalVolume: mgToLbs(ex?.volume || 0),
647
- sets: ex?.sets || 0,
648
- totalReps: ex?.reps || 0,
649
- });
650
- }
651
- }
652
- }
653
- }
654
-
655
- for (const exKey of Object.keys(exercisePatterns)) {
656
- const pattern = exercisePatterns[exKey];
657
- const sessions = exerciseData[exKey];
658
- if (sessions.length === 0) continue;
659
-
660
- console.log(`\n${pattern.label} (${sessions.length} sessions)`);
661
- console.log(` All Time Max Weight: ${Math.max(...sessions.map(s => s.maxWeight))} lbs`);
662
- console.log(` All Time Max Session Volume: ${Math.max(...sessions.map(s => s.totalVolume))} lbs`);
663
- console.log(` Average Max Weight: ${Math.round(sessions.reduce((a, s) => a + s.maxWeight, 0) / sessions.length)} lbs`);
664
- console.log(` Total Reps All Time: ${sessions.reduce((a, s) => a + s.totalReps, 0)}\n`);
665
-
666
- // Per-session max weight
667
- generateChart(
668
- sessions.map((s, i) => [i, s.maxWeight]),
669
- `${pattern.label} - Max Weight Per Session (lbs)`,
670
- {
671
- width: sessions.length * CHART_WIDTH_PER_DATA_POINT,
672
- formatter: (value: number, { axis }: any) =>
673
- axis === "y" ? value : sessions[value]?.date,
674
- },
675
- );
676
-
677
- // Per-session volume
678
- generateChart(
679
- sessions.map((s, i) => [i, s.totalVolume]),
680
- `${pattern.label} - Total Volume Per Session (lbs)`,
681
- {
682
- height: 10,
683
- width: sessions.length * CHART_WIDTH_PER_DATA_POINT,
684
- barChart: true,
685
- formatter: (value: number, { axis }: any) =>
686
- axis === "y" ? value : sessions[value]?.date,
687
- },
688
- );
689
-
690
- // Monthly max weight
691
- const maxWeightByMonth = sessions.reduce((acc: any, s) => {
692
- const parts = s.date.split("-");
693
- const key = `${parts[0]}-${parts[1]}`;
694
- acc[key] = Math.max(acc[key] || 0, s.maxWeight);
695
- return acc;
696
- }, {});
697
-
698
- generateChart(
699
- Object.keys(maxWeightByMonth).map((month, i) => [i, maxWeightByMonth[month]]),
700
- `${pattern.label} - Max Weight By Month (lbs)`,
701
- {
702
- width: YEAR_WIDTH,
703
- formatter: (value: number, { axis }: any) =>
704
- axis === "y" ? value : Object.keys(maxWeightByMonth)[value],
705
- },
706
- );
707
-
708
- // Monthly volume
709
- const volumeByMonth = sessions.reduce((acc: any, s) => {
710
- const parts = s.date.split("-");
711
- const key = `${parts[0]}-${parts[1]}`;
712
- acc[key] = (acc[key] || 0) + s.totalVolume;
713
- return acc;
714
- }, {});
715
-
716
- generateChart(
717
- Object.keys(volumeByMonth).map((month, i) => [i, volumeByMonth[month]]),
718
- `${pattern.label} - Total Volume By Month (lbs)`,
719
- {
720
- height: 10,
721
- width: YEAR_WIDTH,
722
- barChart: true,
723
- formatter: (value: number, { axis }: any) =>
724
- axis === "y" ? value : Object.keys(volumeByMonth)[value],
725
- },
726
- );
727
-
728
- // Yearly max weight
729
- const maxWeightByYear = aggregateByYear(maxWeightByMonth, "max");
730
- generateChart(
731
- maxWeightByYear.map(([, val], index) => [index, val]),
732
- `${pattern.label} - Max Weight By Year (lbs)`,
733
- {
734
- width: maxWeightByYear.length * 20,
735
- formatter: (value: number, { axis }: any) =>
736
- axis === "y" ? value : maxWeightByYear[value]?.[0],
737
- },
738
- );
739
-
740
- // Yearly volume
741
- const volumeByYear = aggregateByYear(volumeByMonth);
742
- generateChart(
743
- volumeByYear.map(([, val], index) => [index, val]),
744
- `${pattern.label} - Total Volume By Year (lbs)`,
745
- {
746
- height: 10,
747
- width: volumeByYear.length * 20,
748
- barChart: true,
749
- formatter: (value: number, { axis }: any) =>
750
- axis === "y" ? value : volumeByYear[value]?.[0],
751
- },
752
- );
753
-
754
- // Per-session reps
755
- generateChart(
756
- sessions.map((s, i) => [i, s.totalReps]),
757
- `${pattern.label} - Total Reps Per Session`,
758
- {
759
- height: 10,
760
- width: sessions.length * CHART_WIDTH_PER_DATA_POINT,
761
- barChart: true,
762
- formatter: (value: number, { axis }: any) =>
763
- axis === "y" ? value : sessions[value]?.date,
764
- },
765
- );
766
-
767
- // Monthly reps
768
- const repsByMonth = sessions.reduce((acc: any, s) => {
769
- const parts = s.date.split("-");
770
- const key = `${parts[0]}-${parts[1]}`;
771
- acc[key] = (acc[key] || 0) + s.totalReps;
772
- return acc;
773
- }, {});
774
-
775
- generateChart(
776
- Object.keys(repsByMonth).map((month, i) => [i, repsByMonth[month]]),
777
- `${pattern.label} - Total Reps By Month`,
778
- {
779
- height: 10,
780
- width: YEAR_WIDTH,
781
- barChart: true,
782
- formatter: (value: number, { axis }: any) =>
783
- axis === "y" ? value : Object.keys(repsByMonth)[value],
784
- },
785
- );
786
-
787
- // Yearly reps
788
- const repsByYear = aggregateByYear(repsByMonth);
789
- generateChart(
790
- repsByYear.map(([, val], index) => [index, val]),
791
- `${pattern.label} - Total Reps By Year`,
792
- {
793
- height: 10,
794
- width: repsByYear.length * 20,
795
- barChart: true,
796
- formatter: (value: number, { axis }: any) =>
797
- axis === "y" ? value : repsByYear[value]?.[0],
798
- },
799
- );
800
- }
801
- console.log("```");
802
- }
803
- } catch (e) {
804
- // No strength training data available, skip
805
- }
806
-
807
- // === RUNNING & CYCLING ===
808
- const cardioTypes = [
809
- { file: "cyclingActivities.json", label: "Cycling", unit: "mi" },
810
- { file: "runningActivities.json", label: "Running", unit: "mi" },
811
- ];
812
-
813
- for (const cardio of cardioTypes) {
814
- try {
815
- const activities = JSON.parse(
816
- fs.readFileSync(`${garminDataFolder}/${cardio.file}`, "utf8"),
817
- );
818
- if (!activities?.length) continue;
819
-
820
- console.log("\n```");
821
- console.log(`\n\n${cardio.label} ===============================\n`);
822
-
823
- const metersToMiles = (m: number): number => Math.round((m / 1609.344) * 100) / 100;
824
- const secondsToMinutes = (s: number): number => Math.round(s / 60);
825
- const pacePerMile = (dist: number, dur: number): number => {
826
- const miles = dist / 1609.344;
827
- if (miles === 0) return 0;
828
- return Math.round((dur / 60) / miles * 100) / 100; // min/mile
829
- };
830
-
831
- type CardioSession = { date: string; distance: number; duration: number; pace: number; calories: number; avgHR: number; elevGain: number };
832
- const sessions: CardioSession[] = activities.map((a: any) => ({
833
- date: a?.startTimeLocal?.split(" ")[0] || "",
834
- distance: metersToMiles(a?.distance || 0),
835
- duration: secondsToMinutes(a?.duration || 0),
836
- pace: pacePerMile(a?.distance || 0, a?.duration || 0),
837
- calories: a?.calories || 0,
838
- avgHR: a?.averageHR || 0,
839
- elevGain: metersToFeet(a?.elevationGain || 0),
840
- }));
841
-
842
- const totalDist = Math.round(sessions.reduce((a, s) => a + s.distance, 0) * 100) / 100;
843
- const totalTime = sessions.reduce((a, s) => a + s.duration, 0);
844
- const avgPace = Math.round(sessions.filter(s => s.pace > 0).reduce((a, s) => a + s.pace, 0) / sessions.filter(s => s.pace > 0).length * 100) / 100;
845
- const bestPace = Math.round(Math.min(...sessions.filter(s => s.pace > 0).map(s => s.pace)) * 100) / 100;
846
- const totalCalories = sessions.reduce((a, s) => a + s.calories, 0);
847
-
848
- console.log(`${cardio.label} (${sessions.length} sessions)`);
849
- console.log(` Total Distance: ${totalDist} ${cardio.unit}`);
850
- console.log(` Total Time: ${totalTime} min (${Math.round(totalTime / 60)} hrs)`);
851
- console.log(` Average Pace: ${avgPace} min/${cardio.unit}`);
852
- console.log(` Best Pace: ${bestPace} min/${cardio.unit}`);
853
- console.log(` Total Calories: ${totalCalories}\n`);
854
-
855
- // Per-session distance
856
- generateChart(
857
- sessions.map((s, i) => [i, s.distance]),
858
- `${cardio.label} - Distance Per Session (${cardio.unit})`,
859
- {
860
- height: 10,
861
- width: sessions.length * CHART_WIDTH_PER_DATA_POINT,
862
- barChart: true,
863
- formatter: (value: number, { axis }: any) =>
864
- axis === "y" ? value : sessions[value]?.date,
865
- },
866
- );
867
-
868
- // Per-session pace
869
- generateChart(
870
- sessions.filter(s => s.pace > 0).map((s, i) => [i, s.pace]),
871
- `${cardio.label} - Pace Per Session (min/${cardio.unit})`,
872
- {
873
- width: sessions.filter(s => s.pace > 0).length * CHART_WIDTH_PER_DATA_POINT,
874
- formatter: (value: number, { axis }: any) =>
875
- axis === "y" ? value : sessions.filter(s => s.pace > 0)[value]?.date,
876
- },
877
- );
878
-
879
- // Per-session duration
880
- generateChart(
881
- sessions.map((s, i) => [i, s.duration]),
882
- `${cardio.label} - Duration Per Session (min)`,
883
- {
884
- height: 10,
885
- width: sessions.length * CHART_WIDTH_PER_DATA_POINT,
886
- barChart: true,
887
- formatter: (value: number, { axis }: any) =>
888
- axis === "y" ? value : sessions[value]?.date,
889
- },
890
- );
891
-
892
- // Monthly aggregations
893
- const groupByMonth = (fn: (s: CardioSession, prev: number) => number) =>
894
- sessions.reduce((acc: any, s) => {
895
- const parts = s.date.split("-");
896
- const key = `${parts[0]}-${parts[1]}`;
897
- acc[key] = fn(s, acc[key] || 0);
898
- return acc;
899
- }, {});
900
-
901
- const distByMonth = groupByMonth((s, prev) => Math.round((prev + s.distance) * 100) / 100);
902
- const durationByMonth = groupByMonth((s, prev) => prev + s.duration);
903
- const sessionsByMonth = groupByMonth((s, prev) => prev + 1);
904
-
905
- generateChart(
906
- Object.keys(distByMonth).map((m, i) => [i, distByMonth[m]]),
907
- `${cardio.label} - Distance By Month (${cardio.unit})`,
908
- {
909
- height: 10, width: YEAR_WIDTH, barChart: true,
910
- formatter: (value: number, { axis }: any) => axis === "y" ? value : Object.keys(distByMonth)[value],
911
- },
912
- );
913
-
914
- generateChart(
915
- Object.keys(durationByMonth).map((m, i) => [i, durationByMonth[m]]),
916
- `${cardio.label} - Duration By Month (min)`,
917
- {
918
- height: 10, width: YEAR_WIDTH, barChart: true,
919
- formatter: (value: number, { axis }: any) => axis === "y" ? value : Object.keys(durationByMonth)[value],
920
- },
921
- );
922
-
923
- generateChart(
924
- Object.keys(sessionsByMonth).map((m, i) => [i, sessionsByMonth[m]]),
925
- `${cardio.label} - Sessions By Month`,
926
- {
927
- height: 10, width: YEAR_WIDTH, barChart: true,
928
- formatter: (value: number, { axis }: any) => axis === "y" ? value : Object.keys(sessionsByMonth)[value],
929
- },
930
- );
931
-
932
- // Yearly
933
- console.log("\nYearly Stats ===============================\n");
934
-
935
- const distByYear = aggregateByYear(distByMonth);
936
- generateChart(
937
- distByYear.map(([, val], i) => [i, val]),
938
- `${cardio.label} - Distance By Year (${cardio.unit})`,
939
- {
940
- height: 10, width: distByYear.length * 20, barChart: true,
941
- formatter: (value: number, { axis }: any) => axis === "y" ? value : distByYear[value]?.[0],
942
- },
943
- );
944
-
945
- const durationByYear = aggregateByYear(durationByMonth);
946
- generateChart(
947
- durationByYear.map(([, val], i) => [i, val]),
948
- `${cardio.label} - Duration By Year (min)`,
949
- {
950
- height: 10, width: durationByYear.length * 20, barChart: true,
951
- formatter: (value: number, { axis }: any) => axis === "y" ? value : durationByYear[value]?.[0],
952
- },
953
- );
954
-
955
- const sessionsByYear = aggregateByYear(sessionsByMonth);
956
- generateChart(
957
- sessionsByYear.map(([, val], i) => [i, val]),
958
- `${cardio.label} - Sessions By Year`,
959
- {
960
- height: 10, width: sessionsByYear.length * 20, barChart: true,
961
- formatter: (value: number, { axis }: any) => axis === "y" ? value : sessionsByYear[value]?.[0],
962
- },
963
- );
964
-
965
- console.log("```");
966
- } catch (e) {
967
- // No data for this cardio type
968
- }
969
- }
595
+ // === STRENGTH TRAINING === (commented out — climbing-only)
596
+ // try {
597
+ // const strengthActivities = JSON.parse(
598
+ // fs.readFileSync(`${garminDataFolder}/strengthTrainingActivities.json`, "utf8"),
599
+ // );
600
+ // if (strengthActivities?.length > 0) {
601
+ // // ... strength training charts omitted
602
+ // }
603
+ // } catch (e) {}
604
+
605
+ // === RUNNING & CYCLING === (commented out — climbing-only)
606
+ // const cardioTypes = [
607
+ // { file: "cyclingActivities.json", label: "Cycling", unit: "mi" },
608
+ // { file: "runningActivities.json", label: "Running", unit: "mi" },
609
+ // ];
610
+ // for (const cardio of cardioTypes) {
611
+ // // ... cardio charts omitted
612
+ // }
970
613
  };