garminclimb 1.0.6 → 1.1.6

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.
@@ -1,12 +1,26 @@
1
1
  {
2
2
  "permissions": {
3
3
  "allow": [
4
- "Bash(python3:*)",
5
- "WebFetch(domain:jottenlips.github.io)",
6
- "Bash(curl:*)",
7
- "Bash(open:*)",
4
+ "Bash(npm install:*)",
5
+ "Bash(find /Users/johnottenlips/garminclimb/node_modules/garmin-connect/dist -name \"activity*\" -o -name \"types*\" 2>/dev/null | head -20)",
8
6
  "Bash(npx tsc:*)",
9
- "Bash(node:*)"
7
+ "Bash(node dist/index.js charts 2>&1 | tail -80)",
8
+ "Bash(node bin/index.js charts 2>&1 | grep -A 2 \"Strength Training\")",
9
+ "Bash(node bin/index.js charts 2>&1 | tail -120)",
10
+ "Bash(node bin/index.js chartjs)",
11
+ "Read(//tmp/**)",
12
+ "Bash(open /tmp/strength_test.html)",
13
+ "Bash(cat ~/.gc_data/indoorClimbingActivities.json | python3 -c \"import json,sys; data=json.load\\(sys.stdin\\); print\\(f'Activities: {len\\(data\\)}'\\); [print\\(f' {a[\\\\\"startTimeLocal\\\\\"]} - {a[\\\\\"activityName\\\\\"]}'\\) for a in data[:5]]\" 2>&1)",
14
+ "Bash(cat ~/.gc_data/strengthTrainingActivities.json | python3 -c \"\nimport json,sys\ndata=json.load\\(sys.stdin\\)\nprint\\(f'Activities: {len\\(data\\)}'\\)\nfor a in data[:3]:\n print\\(f' {a.get\\(\\\\\"startTimeLocal\\\\\"\\)} - {a.get\\(\\\\\"activityName\\\\\"\\)}'\\)\n sets = a.get\\('exerciseSets'\\) or a.get\\('summarizedExerciseSets'\\) or []\n print\\(f' exerciseSets: {len\\(sets\\)} sets'\\)\n for s in sets[:3]:\n print\\(f' {s}'\\)\n\" 2>&1)",
15
+ "Bash(chmod +x /Users/johnottenlips/garminclimb/bin/index.js && ls -la /Users/johnottenlips/garminclimb/bin/index.js)",
16
+ "Bash(cat ~/.gc_data/strengthTrainingActivities.json | python3 -c \"\nimport json,sys\ndata=json.load\\(sys.stdin\\)\nprint\\(f'Total activities: {len\\(data\\)}'\\)\nfor a in data[:5]:\n print\\(f' {a.get\\(\\\\\"startTimeLocal\\\\\"\\)} - {a.get\\(\\\\\"activityName\\\\\"\\)}'\\)\n sets = a.get\\('exerciseSets'\\) or a.get\\('fullSummarizedExerciseSets'\\) or a.get\\('summarizedExerciseSets'\\) or []\n print\\(f' sets: {len\\(sets\\)}'\\)\n for s in sets[:4]:\n print\\(f' name={s.get\\(\\\\\"exerciseName\\\\\",\\\\\"?\\\\\"\\)} cat={s.get\\(\\\\\"exerciseCategory\\\\\",\\\\\"?\\\\\"\\)} type={s.get\\(\\\\\"setType\\\\\",\\\\\"?\\\\\"\\)} w={s.get\\(\\\\\"weight\\\\\",\\\\\"?\\\\\"\\)} r={s.get\\(\\\\\"repetitionCount\\\\\",\\\\\"?\\\\\"\\)}'\\)\nprint\\('...'\\)\nfor a in data[-3:]:\n print\\(f' {a.get\\(\\\\\"startTimeLocal\\\\\"\\)} - {a.get\\(\\\\\"activityName\\\\\"\\)}'\\)\n sets = a.get\\('exerciseSets'\\) or a.get\\('fullSummarizedExerciseSets'\\) or a.get\\('summarizedExerciseSets'\\) or []\n print\\(f' sets: {len\\(sets\\)}'\\)\n for s in sets[:4]:\n print\\(f' name={s.get\\(\\\\\"exerciseName\\\\\",\\\\\"?\\\\\"\\)} cat={s.get\\(\\\\\"exerciseCategory\\\\\",\\\\\"?\\\\\"\\)} type={s.get\\(\\\\\"setType\\\\\",\\\\\"?\\\\\"\\)} w={s.get\\(\\\\\"weight\\\\\",\\\\\"?\\\\\"\\)} r={s.get\\(\\\\\"repetitionCount\\\\\",\\\\\"?\\\\\"\\)}'\\)\n\" 2>&1)",
17
+ "Bash(cat ~/.gc_data/strengthTrainingActivities.json | python3 -c \"\nimport json,sys\ndata=json.load\\(sys.stdin\\)\na = data[0]\nsets = a.get\\('exerciseSets'\\) or a.get\\('fullSummarizedExerciseSets'\\) or a.get\\('summarizedExerciseSets'\\) or []\nprint\\('First activity keys:', list\\(a.keys\\(\\)\\)[:20]\\)\nprint\\(\\)\nfor i, s in enumerate\\(sets[:2]\\):\n print\\(f'Set {i} keys: {list\\(s.keys\\(\\)\\)}'\\)\n print\\(json.dumps\\(s, indent=2\\)[:500]\\)\n print\\(\\)\n\" 2>&1)",
18
+ "Bash(node bin/index.js charts 2>&1 | sed -n '/Strength Training/,$p')",
19
+ "Bash(node bin/index.js charts 2>&1 | sed -n '/Weighted Pull-Up/,/```/p' | head -30)",
20
+ "Bash(node bin/index.js charts 2>&1 | grep -A 5 \"Romanian Deadlift\")",
21
+ "Bash(chmod +x /Users/johnottenlips/garminclimb/bin/index.js)",
22
+ "Bash(grep -r \"Cycling\" /Users/johnottenlips/garminclimb/node_modules/garmin-connect/dist/garmin/types/activity* 2>/dev/null | head -20)",
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\\)\\);\")"
10
24
  ]
11
25
  }
12
26
  }
package/bin/download.js CHANGED
@@ -65,6 +65,48 @@ const download = (username, password) => __awaiter(void 0, void 0, void 0, funct
65
65
  const boulderingActivities = activities === null || activities === void 0 ? void 0 : activities.filter((activity) => { var _a; return ((_a = activity === null || activity === void 0 ? void 0 : activity.activityType) === null || _a === void 0 ? void 0 : _a.typeKey) === "bouldering"; });
66
66
  fs.writeFileSync(`${_1.garminDataFolder}/boulderingActivities.json`, JSON.stringify(boulderingActivities, null, 2));
67
67
  console.log("Downloaded climbing activities from Garmin Connect");
68
+ // Download strength training activities
69
+ const strengthActivities = yield GCClient.getActivities(0, 6000, activity_1.ActivityType.FitnessEquipment,
70
+ // @ts-ignore
71
+ "strength_training");
72
+ const strengthTrainingActivities = strengthActivities === null || strengthActivities === void 0 ? void 0 : strengthActivities.filter((activity) => { var _a; return ((_a = activity === null || activity === void 0 ? void 0 : activity.activityType) === null || _a === void 0 ? void 0 : _a.typeKey) === "strength_training"; });
73
+ // Fetch detailed data for each strength activity to get exercise sets
74
+ console.log(`Found ${(strengthTrainingActivities === null || strengthTrainingActivities === void 0 ? void 0 : strengthTrainingActivities.length) || 0} strength training activities, fetching details...`);
75
+ const detailedActivities = [];
76
+ for (const activity of strengthTrainingActivities || []) {
77
+ try {
78
+ const detail = yield GCClient.getActivity({ activityId: activity.activityId });
79
+ detailedActivities.push(Object.assign(Object.assign({}, activity), { exerciseSets: (detail === null || detail === void 0 ? void 0 : detail.exerciseSets) || (detail === null || detail === void 0 ? void 0 : detail.summarizedExerciseSets) || (activity === null || activity === void 0 ? void 0 : activity.summarizedExerciseSets) || [], fullSummarizedExerciseSets: (detail === null || detail === void 0 ? void 0 : detail.summarizedExerciseSets) || (activity === null || activity === void 0 ? void 0 : activity.summarizedExerciseSets) || [] }));
80
+ }
81
+ catch (e) {
82
+ // fallback to list data if detail fetch fails
83
+ detailedActivities.push(activity);
84
+ }
85
+ }
86
+ fs.writeFileSync(`${_1.garminDataFolder}/strengthTrainingActivities.json`, JSON.stringify(detailedActivities, null, 2));
87
+ console.log("Downloaded strength training activities from Garmin Connect");
88
+ // Download running activities (street_running gets all running subtypes)
89
+ const runningActivities = yield GCClient.getActivities(0, 6000,
90
+ // @ts-ignore
91
+ "running");
92
+ const filteredRunning = (runningActivities || []).filter((a) => {
93
+ var _a;
94
+ const key = ((_a = a === null || a === void 0 ? void 0 : a.activityType) === null || _a === void 0 ? void 0 : _a.typeKey) || "";
95
+ return key.includes("running");
96
+ });
97
+ fs.writeFileSync(`${_1.garminDataFolder}/runningActivities.json`, JSON.stringify(filteredRunning, null, 2));
98
+ console.log(`Downloaded ${filteredRunning.length} running activities from Garmin Connect`);
99
+ // Download cycling activities
100
+ const cyclingActivities = yield GCClient.getActivities(0, 6000,
101
+ // @ts-ignore
102
+ "cycling");
103
+ const filteredCycling = (cyclingActivities || []).filter((a) => {
104
+ var _a;
105
+ const key = ((_a = a === null || a === void 0 ? void 0 : a.activityType) === null || _a === void 0 ? void 0 : _a.typeKey) || "";
106
+ return key.includes("cycling") || key.includes("biking") || key === "virtual_ride";
107
+ });
108
+ fs.writeFileSync(`${_1.garminDataFolder}/cyclingActivities.json`, JSON.stringify(filteredCycling, null, 2));
109
+ console.log(`Downloaded ${filteredCycling.length} cycling activities from Garmin Connect`);
68
110
  });
69
111
  exports.download = download;
70
112
  //# sourceMappingURL=download.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"download.js","sourceRoot":"","sources":["../src/download.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,aAAa;AACb,mDAA+C;AAC/C,wBAAqC;AACrC,wEAGmD;AAC5C,MAAM,QAAQ,GAAG,CACtB,QAAgB,EAChB,QAAgB,EACD,EAAE;IACjB,MAAM,QAAQ,GAAG,IAAI,8BAAa,CAAC;QACjC,QAAQ;QACR,QAAQ;KACT,CAAC,CAAC;IAEH,MAAM,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEzC,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,aAAa,CAC7C,CAAC,EACD,IAAI,EACJ,uBAAY,CAAC,gBAAgB;IAC7B,aAAa;IACb,iBAAiB,CAClB,CAAC;IAEF,MAAM,wBAAwB,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CACjD,CAAC,QAAQ,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,YAAY,0CAAE,OAAO,MAAK,iBAAiB,CAAA,EAAA,CACpE,CAAC;IAEF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,mBAAgB,CAAC,EAAE,CAAC;QACrC,EAAE,CAAC,SAAS,CAAC,mBAAgB,CAAC,CAAC;IACjC,CAAC;IACD,EAAE,CAAC,aAAa,CACd,GAAG,mBAAgB,gCAAgC,EACnD,IAAI,CAAC,SAAS,CAAC,wBAAwB,EAAE,IAAI,EAAE,CAAC,CAAC,CAClD,CAAC;IAEF,MAAM,oBAAoB,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAC7C,CAAC,QAAQ,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,YAAY,0CAAE,OAAO,MAAK,YAAY,CAAA,EAAA,CAC/D,CAAC;IAEF,EAAE,CAAC,aAAa,CACd,GAAG,mBAAgB,4BAA4B,EAC/C,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC,CAC9C,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;AACpE,CAAC,CAAA,CAAC;AAxCW,QAAA,QAAQ,YAwCnB"}
1
+ {"version":3,"file":"download.js","sourceRoot":"","sources":["../src/download.ts"],"names":[],"mappings":"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"}
package/bin/index.js CHANGED
@@ -59,26 +59,74 @@ commander_1.program
59
59
  .action(() => {
60
60
  (0, parse_1.parse)();
61
61
  });
62
+ function loadData() {
63
+ const indoorData = fs.readFileSync(path.join(exports.garminDataFolder, "indoorClimbingActivities.json"), "utf8");
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`;
81
+ }
62
82
  commander_1.program
63
83
  .command("chartjs")
64
84
  .description("Output a standalone Chart.js HTML dashboard")
65
85
  .action(() => {
66
- const htmlPath = path.join(__dirname, "..", "charts.html");
67
- const html = fs.readFileSync(htmlPath, "utf8");
68
- const indoorData = fs.readFileSync(path.join(exports.garminDataFolder, "indoorClimbingActivities.json"), "utf8");
69
- const boulderData = fs.readFileSync(path.join(exports.garminDataFolder, "boulderingActivities.json"), "utf8");
70
- const output = html.replace("<script>", `<script>\nvar INDOOR_DATA = ${indoorData};\nvar BOULDER_DATA = ${boulderData};\n`);
86
+ const embedHtml = fs.readFileSync(path.join(__dirname, "..", "charts-embed.html"), "utf8");
87
+ const dataScript = loadData();
88
+ const output = `<!DOCTYPE html>
89
+ <html lang="en">
90
+ <head>
91
+ <meta charset="UTF-8">
92
+ <meta name="viewport" content="width=device-width, initial-scale=1">
93
+ <title>Garmin Stats</title>
94
+ <style>
95
+ * { margin: 0; padding: 0; box-sizing: border-box; }
96
+ body {
97
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
98
+ line-height: 1.6;
99
+ color: #333;
100
+ max-width: 720px;
101
+ margin: 0 auto;
102
+ padding: 20px;
103
+ background: #fafaf8;
104
+ }
105
+ h1 { color: #2d5016; margin-bottom: 16px; }
106
+ h2 { color: #3a6b1e; margin: 24px 0 12px; }
107
+ a { color: #2d5016; }
108
+ hr { border: none; border-top: 2px solid #2d5016; margin: 24px 0; }
109
+ @media (max-width: 600px) {
110
+ body { padding: 12px; }
111
+ h1 { font-size: 1.4em; }
112
+ h2 { font-size: 1.15em; }
113
+ }
114
+ </style>
115
+ </head>
116
+ <body>
117
+ <script>${dataScript}</script>
118
+ ${embedHtml}
119
+ </body>
120
+ </html>`;
71
121
  console.log(output);
72
122
  });
73
123
  commander_1.program
74
124
  .command("chartjs-embed")
75
125
  .description("Output an embeddable Chart.js HTML snippet for markdown files")
76
126
  .action(() => {
77
- const htmlPath = path.join(__dirname, "..", "charts-embed.html");
78
- const html = fs.readFileSync(htmlPath, "utf8");
79
- const indoorData = fs.readFileSync(path.join(exports.garminDataFolder, "indoorClimbingActivities.json"), "utf8");
80
- const boulderData = fs.readFileSync(path.join(exports.garminDataFolder, "boulderingActivities.json"), "utf8");
81
- const output = html.replace("<script>\n(function() {", `<script>\nvar INDOOR_DATA = ${indoorData};\nvar BOULDER_DATA = ${boulderData};\n(function() {`);
127
+ const embedHtml = fs.readFileSync(path.join(__dirname, "..", "charts-embed.html"), "utf8");
128
+ const dataScript = loadData();
129
+ const output = embedHtml.replace("<script>\n(function() {", `<script>\n${dataScript}(function() {`);
82
130
  console.log(output);
83
131
  });
84
132
  commander_1.program.parse();
package/bin/index.js.map CHANGED
@@ -1 +1 @@
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,mBAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAChC,IAAI,CAAC,IAAI,CAAC,wBAAgB,EAAE,+BAA+B,CAAC,EAC5D,MAAM,CACP,CAAC;IACF,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CACjC,IAAI,CAAC,IAAI,CAAC,wBAAgB,EAAE,2BAA2B,CAAC,EACxD,MAAM,CACP,CAAC;IACF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CACzB,UAAU,EACV,+BAA+B,UAAU,yBAAyB,WAAW,KAAK,CACnF,CAAC;IACF,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,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAChC,IAAI,CAAC,IAAI,CAAC,wBAAgB,EAAE,+BAA+B,CAAC,EAC5D,MAAM,CACP,CAAC;IACF,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CACjC,IAAI,CAAC,IAAI,CAAC,wBAAgB,EAAE,2BAA2B,CAAC,EACxD,MAAM,CACP,CAAC;IACF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CACzB,yBAAyB,EACzB,+BAA+B,UAAU,yBAAyB,WAAW,kBAAkB,CAChG,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC;AAEL,mBAAO,CAAC,KAAK,EAAE,CAAC"}
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,IAAI,YAAY,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC;QAAC,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAgB,EAAE,iCAAiC,CAAC,EAAE,MAAM,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;IAC5H,IAAI,WAAW,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC;QAAC,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAgB,EAAE,wBAAwB,CAAC,EAAE,MAAM,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;IAClH,IAAI,WAAW,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC;QAAC,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAgB,EAAE,wBAAwB,CAAC,EAAE,MAAM,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;IAClH,OAAO,qBAAqB,UAAU,yBAAyB,WAAW,0BAA0B,YAAY,yBAAyB,WAAW,yBAAyB,WAAW,KAAK,CAAC;AAChM,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,6 +113,7 @@ 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;
116
117
  const indoorClimbingActivities = JSON.parse(fs.readFileSync(`${_1.garminDataFolder}/indoorClimbingActivities.json`, "utf8"));
117
118
  // ?.reverse();
118
119
  const activeIndoorSplits = indoorClimbingActivities.map((activity) => {
@@ -442,6 +443,256 @@ const parse = () => __awaiter(void 0, void 0, void 0, function* () {
442
443
  },
443
444
  });
444
445
  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
696
  });
446
697
  exports.parse = parse;
447
698
  //# 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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"}