garminclimb 1.0.5 → 1.0.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.
- package/.claude/settings.local.json +12 -0
- package/README.md +42 -0
- package/bin/index.js +56 -0
- package/bin/index.js.map +1 -1
- package/bin/mtnproject.js +64 -0
- package/bin/mtnproject.js.map +1 -0
- package/bin/parse.js +119 -26
- package/bin/parse.js.map +1 -1
- package/bouldering.json +10207 -0
- package/charts-embed.html +230 -0
- package/charts.html +374 -0
- package/indoor_climbing.json +5918 -0
- package/package.json +1 -1
- package/src/index.ts +43 -0
- package/src/mtnproject.ts +66 -0
- package/src/parse.ts +241 -61
package/README.md
CHANGED
|
@@ -17,6 +17,48 @@ cd ~/.gc_data
|
|
|
17
17
|
ls
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
+
# Interactive Chart.js Dashboard
|
|
21
|
+
|
|
22
|
+
Generate a self-contained HTML file with interactive Chart.js graphs. The HTML includes your climbing data inline so it can be opened in any browser without a server.
|
|
23
|
+
|
|
24
|
+
```shell
|
|
25
|
+
garminclimb chartjs > climbing_dashboard.html
|
|
26
|
+
open climbing_dashboard.html
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
This outputs a single HTML file with all your data embedded. Charts include:
|
|
30
|
+
|
|
31
|
+
- Yearly and monthly totals for feet climbed (rope, boulder, combined)
|
|
32
|
+
- Yearly and monthly max grades (rope and boulder)
|
|
33
|
+
- Yearly and monthly session counts
|
|
34
|
+
- Per-session stats: max grade, sends, feet, active minutes
|
|
35
|
+
- Per-session bouldering: max grade, splits, active minutes
|
|
36
|
+
|
|
37
|
+
## Embed in a Markdown File
|
|
38
|
+
|
|
39
|
+
Output an HTML snippet you can paste directly into any markdown file that supports inline HTML (GitHub Pages, Jekyll, static site generators, etc.):
|
|
40
|
+
|
|
41
|
+
```shell
|
|
42
|
+
garminclimb chartjs-embed > climbing-charts.html
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Then include it in your markdown:
|
|
46
|
+
|
|
47
|
+
```markdown
|
|
48
|
+
# My Climbing Stats
|
|
49
|
+
|
|
50
|
+
Here are my climbing charts from Garmin:
|
|
51
|
+
|
|
52
|
+
{% include climbing-charts.html %}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Or paste the output directly into your `.md` file — the snippet includes scoped CSS (`.gc-dashboard` prefix) so it won't conflict with your site's styles.
|
|
56
|
+
|
|
57
|
+
```shell
|
|
58
|
+
# Append charts to an existing markdown file
|
|
59
|
+
garminclimb chartjs-embed >> climbing.md
|
|
60
|
+
```
|
|
61
|
+
|
|
20
62
|
# Develop locally or make your own charts
|
|
21
63
|
|
|
22
64
|
```shell
|
package/bin/index.js
CHANGED
|
@@ -1,8 +1,42 @@
|
|
|
1
1
|
#! /usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
3
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
37
|
exports.garminDataFolder = void 0;
|
|
5
38
|
const commander_1 = require("commander");
|
|
39
|
+
const fs = __importStar(require("fs"));
|
|
6
40
|
const os = require("os");
|
|
7
41
|
const path = require("path");
|
|
8
42
|
const homeDir = os.homedir();
|
|
@@ -25,5 +59,27 @@ commander_1.program
|
|
|
25
59
|
.action(() => {
|
|
26
60
|
(0, parse_1.parse)();
|
|
27
61
|
});
|
|
62
|
+
commander_1.program
|
|
63
|
+
.command("chartjs")
|
|
64
|
+
.description("Output a standalone Chart.js HTML dashboard")
|
|
65
|
+
.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`);
|
|
71
|
+
console.log(output);
|
|
72
|
+
});
|
|
73
|
+
commander_1.program
|
|
74
|
+
.command("chartjs-embed")
|
|
75
|
+
.description("Output an embeddable Chart.js HTML snippet for markdown files")
|
|
76
|
+
.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() {`);
|
|
82
|
+
console.log(output);
|
|
83
|
+
});
|
|
28
84
|
commander_1.program.parse();
|
|
29
85
|
//# sourceMappingURL=index.js.map
|
package/bin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// // https://www.mountainproject.com/rss/user-ticks/201166134
|
|
3
|
+
// // <rss xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
|
|
4
|
+
// // <channel>
|
|
5
|
+
// // <title>Ticks for John Ottenlips Franke on Mountain Project</title>
|
|
6
|
+
// // <description>The Definitive Climbing Resource</description>
|
|
7
|
+
// // <link>https://www.mountainproject.com</link>
|
|
8
|
+
// // <language>en-us</language>
|
|
9
|
+
// // <lastBuildDate>Sat, 24 Jan 2026 19:09:10 +0000</lastBuildDate>
|
|
10
|
+
// // <item>
|
|
11
|
+
// // <title>Tick: Grape Vine (5.7)</title>
|
|
12
|
+
// // <link>https://www.mountainproject.com/route/121871647/grape-vine</link>
|
|
13
|
+
// // <guid isPermaLink="false">MPObject_202273988</guid>
|
|
14
|
+
// // <pubDate>Sat, 27 Dec 2025 21:06:07 +0000</pubDate>
|
|
15
|
+
// // <description><div class="fr-view"><p>Work through a low crux through a series of small ledges. Finish in a small dihedral just before the anchor. Watch out for lots of loose rock.</p></div><br /><img class="" src='https://mountainproject.com/assets/photos/climb/122083536_smallMed_1647451882_topo.jpg?cache=1714597316' alt="Really fun route!"><br><a href="https://www.mountainproject.com/area/105899020/missouri">Missouri</a> > <a href="https://www.mountainproject.com/area/116617972/em-rockwoods-reservation">EM: Rockwoods R…</a> > <a href="https://www.mountainproject.com/area/121388630/colony-wall">Colony Wall</a> </description>
|
|
16
|
+
// // </item>
|
|
17
|
+
// // <item>
|
|
18
|
+
// // <title>Tick: Xylem (5.10a)</title>
|
|
19
|
+
// // <link>https://www.mountainproject.com/route/121676838/xylem</link>
|
|
20
|
+
// // <guid isPermaLink="false">MPObject_202273688</guid>
|
|
21
|
+
// // <pubDate>Sat, 27 Dec 2025 19:56:10 +0000</pubDate>
|
|
22
|
+
// // <description><div class="fr-view"><p>Begin with a gentle slab start to a comfortable ledge rest, followed by more vertical climbing as the dihedral crack thins into the crux. Careful footwork and body position will help you gain the second ledge to clip the anchors. The dihedral provides some shade, which may be helpful in warmer weather.</p></div><br /><img class="" src='https://mountainproject.com/assets/photos/climb/126305529_smallMed_1717616410.jpg?cache=1725482195' alt="From Above"><br><a href="https://www.mountainproject.com/area/105899020/missouri">Missouri</a> > <a href="https://www.mountainproject.com/area/116617972/em-rockwoods-reservation">EM: Rockwoods R…</a> > <a href="https://www.mountainproject.com/area/121388630/colony-wall">Colony Wall</a> </description>
|
|
23
|
+
// // </item>
|
|
24
|
+
// // <item>
|
|
25
|
+
// // craswl mtn project urls for route stats
|
|
26
|
+
// import fetch from "node-fetch";
|
|
27
|
+
// import * as xml2js from "xml2js";
|
|
28
|
+
// export const fetchMountainProjectTicks = async (
|
|
29
|
+
// userId: string
|
|
30
|
+
// ): Promise<any[]> => {
|
|
31
|
+
// const url = `https://www.mountainproject.com/rss/user-ticks/${userId}`;
|
|
32
|
+
// const response = await fetch(url);
|
|
33
|
+
// const xmlData = await response.text();
|
|
34
|
+
// const parser = new xml2js.Parser();
|
|
35
|
+
// const result = await parser.parseStringPromise(xmlData);
|
|
36
|
+
// const items = result.rss.channel[0].item;
|
|
37
|
+
// return items.map((item: any) => ({
|
|
38
|
+
// title: item.title[0],
|
|
39
|
+
// link: item.link[0],
|
|
40
|
+
// pubDate: item.pubDate[0],
|
|
41
|
+
// description: item.description[0],
|
|
42
|
+
// }));
|
|
43
|
+
// };
|
|
44
|
+
// // get route height
|
|
45
|
+
// export const fetchRouteHeight = async (routeUrl: string): Promise<string> => {
|
|
46
|
+
// const response = await fetch(routeUrl);
|
|
47
|
+
// const htmlData = await response.text();
|
|
48
|
+
// const heightMatch = htmlData.match(
|
|
49
|
+
// /<li><strong>Height:<\/strong>\s*([\d\sftm]+)/
|
|
50
|
+
// );
|
|
51
|
+
// if (heightMatch && heightMatch[1]) {
|
|
52
|
+
// return heightMatch[1].trim();
|
|
53
|
+
// }
|
|
54
|
+
// return "Unknown";
|
|
55
|
+
// };
|
|
56
|
+
// // Example usage:
|
|
57
|
+
// // (async () => {
|
|
58
|
+
// // const ticks = await fetchMountainProjectTicks("201166134");
|
|
59
|
+
// // for (const tick of ticks) {
|
|
60
|
+
// // const height = await fetchRouteHeight(tick.link);
|
|
61
|
+
// // console.log(`${tick.title} - Height: ${height}`);
|
|
62
|
+
// // }
|
|
63
|
+
// // })();
|
|
64
|
+
//# sourceMappingURL=mtnproject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mtnproject.js","sourceRoot":"","sources":["../src/mtnproject.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mLAAmL;AACnL,eAAe;AACf,wEAAwE;AACxE,iEAAiE;AACjE,kDAAkD;AAClD,gCAAgC;AAChC,oEAAoE;AACpE,YAAY;AACZ,2CAA2C;AAC3C,6EAA6E;AAC7E,yDAAyD;AACzD,wDAAwD;AACxD,2oBAA2oB;AAC3oB,aAAa;AACb,YAAY;AACZ,wCAAwC;AACxC,wEAAwE;AACxE,yDAAyD;AACzD,wDAAwD;AACxD,4yBAA4yB;AAC5yB,aAAa;AACb,YAAY;AAEZ,6CAA6C;AAC7C,kCAAkC;AAClC,oCAAoC;AAEpC,mDAAmD;AACnD,mBAAmB;AACnB,yBAAyB;AACzB,4EAA4E;AAC5E,uCAAuC;AACvC,2CAA2C;AAE3C,wCAAwC;AACxC,6DAA6D;AAE7D,8CAA8C;AAC9C,uCAAuC;AACvC,4BAA4B;AAC5B,0BAA0B;AAC1B,gCAAgC;AAChC,wCAAwC;AACxC,SAAS;AACT,KAAK;AACL,sBAAsB;AACtB,iFAAiF;AACjF,4CAA4C;AAC5C,4CAA4C;AAC5C,wCAAwC;AACxC,qDAAqD;AACrD,OAAO;AACP,yCAAyC;AACzC,oCAAoC;AACpC,MAAM;AACN,sBAAsB;AACtB,KAAK;AACL,oBAAoB;AACpB,oBAAoB;AACpB,mEAAmE;AACnE,mCAAmC;AACnC,2DAA2D;AAC3D,2DAA2D;AAC3D,SAAS;AACT,WAAW"}
|
package/bin/parse.js
CHANGED
|
@@ -113,14 +113,15 @@ const numberToGrade = (number) => {
|
|
|
113
113
|
return grade.padEnd(8, " ");
|
|
114
114
|
};
|
|
115
115
|
const parse = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
116
|
-
|
|
117
|
-
|
|
116
|
+
const indoorClimbingActivities = JSON.parse(fs.readFileSync(`${_1.garminDataFolder}/indoorClimbingActivities.json`, "utf8"));
|
|
117
|
+
// ?.reverse();
|
|
118
118
|
const activeIndoorSplits = indoorClimbingActivities.map((activity) => {
|
|
119
119
|
var _a, _b, _c, _d;
|
|
120
120
|
return ((_b = (_a = activity === null || activity === void 0 ? void 0 : activity.splitSummaries) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.splitType) === "CLIMB_ACTIVE"
|
|
121
121
|
? Object.assign(Object.assign({}, (_c = activity === null || activity === void 0 ? void 0 : activity.splitSummaries) === null || _c === void 0 ? void 0 : _c[0]), { start: activity === null || activity === void 0 ? void 0 : activity.startTimeLocal }) : Object.assign(Object.assign({}, (_d = activity === null || activity === void 0 ? void 0 : activity.splitSummaries) === null || _d === void 0 ? void 0 : _d[1]), { start: activity === null || activity === void 0 ? void 0 : activity.startTimeLocal });
|
|
122
122
|
});
|
|
123
|
-
const boulderingActivities =
|
|
123
|
+
const boulderingActivities = JSON.parse(fs.readFileSync(`${_1.garminDataFolder}/boulderingActivities.json`, "utf8"));
|
|
124
|
+
// ?.reverse();
|
|
124
125
|
const activeBoulderingSplits = boulderingActivities
|
|
125
126
|
.map((activity) => {
|
|
126
127
|
var _a, _b, _c, _d;
|
|
@@ -144,15 +145,6 @@ const parse = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
144
145
|
(acc[`${year}-${month}`] || 0) + metersToFeet(split === null || split === void 0 ? void 0 : split.totalAscent);
|
|
145
146
|
return acc;
|
|
146
147
|
}, {});
|
|
147
|
-
generateChart(Object.keys(totalFeetByMonthYear).map((month, index) => [
|
|
148
|
-
index,
|
|
149
|
-
totalFeetByMonthYear[month],
|
|
150
|
-
]), "Total Route Feet By Month", {
|
|
151
|
-
height: 20,
|
|
152
|
-
width: YEAR_WIDTH,
|
|
153
|
-
barChart: true,
|
|
154
|
-
formatter: (value, { axis }) => axis === "y" ? value : Object.keys(totalFeetByMonthYear)[value],
|
|
155
|
-
});
|
|
156
148
|
// each boulder is ~8 feet
|
|
157
149
|
const totalFeetByMonthYearBouldering = activeBoulderingSplits === null || activeBoulderingSplits === void 0 ? void 0 : activeBoulderingSplits
|
|
158
150
|
// ?.reverse()
|
|
@@ -161,25 +153,33 @@ const parse = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
161
153
|
const month = (_a = split === null || split === void 0 ? void 0 : split.start) === null || _a === void 0 ? void 0 : _a.split(" ")[0].split("-")[1];
|
|
162
154
|
const year = (_b = split === null || split === void 0 ? void 0 : split.start) === null || _b === void 0 ? void 0 : _b.split(" ")[0].split("-")[0];
|
|
163
155
|
acc[`${year}-${month}`] =
|
|
164
|
-
(acc[`${year}-${month}`] || 0) + (split === null || split === void 0 ? void 0 : split.noOfSplits) *
|
|
156
|
+
(acc[`${year}-${month}`] || 0) + (split === null || split === void 0 ? void 0 : split.noOfSplits) * 10;
|
|
165
157
|
return acc;
|
|
166
158
|
}, {});
|
|
167
|
-
generateChart(Object.keys(totalFeetByMonthYearBouldering).map((month, index) => [
|
|
168
|
-
index,
|
|
169
|
-
totalFeetByMonthYearBouldering[month],
|
|
170
|
-
]), "Approx Boulder Feet By Month", {
|
|
171
|
-
height: 20,
|
|
172
|
-
width: YEAR_WIDTH,
|
|
173
|
-
barChart: true,
|
|
174
|
-
formatter: (value, { axis }) => axis === "y"
|
|
175
|
-
? value
|
|
176
|
-
: Object.keys(totalFeetByMonthYearBouldering)[value],
|
|
177
|
-
});
|
|
178
159
|
const totalFeetByMonthYearCombined = Object.keys(totalFeetByMonthYear).reduce((acc, key) => {
|
|
179
160
|
acc[key] =
|
|
180
161
|
totalFeetByMonthYear[key] + (totalFeetByMonthYearBouldering[key] || 0);
|
|
181
162
|
return acc;
|
|
182
163
|
}, {});
|
|
164
|
+
const totalFeet = Object.values(totalFeetByMonthYearCombined).reduce(
|
|
165
|
+
//@ts-ignore
|
|
166
|
+
(sum, feet) => sum + feet, 0);
|
|
167
|
+
console.log(`All Time Total Feet Climbed: ${totalFeet} ft`);
|
|
168
|
+
const totalNumberOfRoutes = activeIndoorSplits === null || activeIndoorSplits === void 0 ? void 0 : activeIndoorSplits.reduce((acc, split) => acc + (split === null || split === void 0 ? void 0 : split.numClimbSends), 0);
|
|
169
|
+
console.log(`All Time Total Number of Routes Sent Without Falling: ${totalNumberOfRoutes}`);
|
|
170
|
+
const totalNumberOfFalls = activeIndoorSplits === null || activeIndoorSplits === void 0 ? void 0 : activeIndoorSplits.reduce((acc, split) => acc + (split === null || split === void 0 ? void 0 : split.numFalls), 0);
|
|
171
|
+
console.log(`All Time Total Number of Falls: ${totalNumberOfFalls}`);
|
|
172
|
+
const averageGrade = Math.round((activeIndoorSplits === null || activeIndoorSplits === void 0 ? void 0 : activeIndoorSplits.reduce((acc, split) => { var _a; return acc + (YDS_GRADE_MAP === null || YDS_GRADE_MAP === void 0 ? void 0 : YDS_GRADE_MAP[(_a = split === null || split === void 0 ? void 0 : split.maxGradeValue) === null || _a === void 0 ? void 0 : _a.valueKey]); }, 0)) / (activeIndoorSplits === null || activeIndoorSplits === void 0 ? void 0 : activeIndoorSplits.length));
|
|
173
|
+
console.log(`All Time Average Max Grade: ${numberToGrade(averageGrade)}`);
|
|
174
|
+
const maxGrade = Math.max(...activeIndoorSplits === null || activeIndoorSplits === void 0 ? void 0 : activeIndoorSplits.map((split) => { var _a; return YDS_GRADE_MAP === null || YDS_GRADE_MAP === void 0 ? void 0 : YDS_GRADE_MAP[(_a = split === null || split === void 0 ? void 0 : split.maxGradeValue) === null || _a === void 0 ? void 0 : _a.valueKey]; }));
|
|
175
|
+
console.log(`All Time Max Grade: ${numberToGrade(maxGrade)}`);
|
|
176
|
+
const totalBoulders = activeBoulderingSplits === null || activeBoulderingSplits === void 0 ? void 0 : activeBoulderingSplits.reduce((acc, split) => acc + (split === null || split === void 0 ? void 0 : split.noOfSplits), 0);
|
|
177
|
+
console.log(`All Time Total Number of Boulders Climbed: ${totalBoulders}`);
|
|
178
|
+
const averageBoulderGrade = Math.round((activeBoulderingSplits === null || activeBoulderingSplits === void 0 ? void 0 : activeBoulderingSplits.reduce((acc, split) => { var _a, _b; return acc + parseInt((_b = (_a = split === null || split === void 0 ? void 0 : split.maxGradeValue) === null || _a === void 0 ? void 0 : _a.valueKey) === null || _b === void 0 ? void 0 : _b.replace(/\D/g, "")); }, 0)) / (activeBoulderingSplits === null || activeBoulderingSplits === void 0 ? void 0 : activeBoulderingSplits.length));
|
|
179
|
+
console.log(`All Time Average Max Boulder Grade: V${averageBoulderGrade}`);
|
|
180
|
+
const maxBoulderGrade = Math.max(...activeBoulderingSplits === null || activeBoulderingSplits === void 0 ? void 0 : activeBoulderingSplits.map((split) => { var _a, _b; return parseInt((_b = (_a = split === null || split === void 0 ? void 0 : split.maxGradeValue) === null || _a === void 0 ? void 0 : _a.valueKey) === null || _b === void 0 ? void 0 : _b.replace(/\D/g, "")); }));
|
|
181
|
+
console.log(`All Time Max Boulder Grade: V${maxBoulderGrade}\n`);
|
|
182
|
+
console.log("Total Number of Feet this month", totalFeetByMonthYearCombined[Object.keys(totalFeetByMonthYearCombined)[0]], "\n");
|
|
183
183
|
generateChart(Object.keys(totalFeetByMonthYearCombined).map((month, index) => [
|
|
184
184
|
index,
|
|
185
185
|
totalFeetByMonthYearCombined[month],
|
|
@@ -189,6 +189,26 @@ const parse = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
189
189
|
barChart: true,
|
|
190
190
|
formatter: (value, { axis }) => axis === "y" ? value : Object.keys(totalFeetByMonthYearCombined)[value],
|
|
191
191
|
});
|
|
192
|
+
generateChart(Object.keys(totalFeetByMonthYear).map((month, index) => [
|
|
193
|
+
index,
|
|
194
|
+
totalFeetByMonthYear[month],
|
|
195
|
+
]), "Total Route Feet By Month", {
|
|
196
|
+
height: 10,
|
|
197
|
+
width: YEAR_WIDTH,
|
|
198
|
+
barChart: true,
|
|
199
|
+
formatter: (value, { axis }) => axis === "y" ? value : Object.keys(totalFeetByMonthYear)[value],
|
|
200
|
+
});
|
|
201
|
+
generateChart(Object.keys(totalFeetByMonthYearBouldering).map((month, index) => [
|
|
202
|
+
index,
|
|
203
|
+
totalFeetByMonthYearBouldering[month],
|
|
204
|
+
]), "Approx Boulder Feet By Month", {
|
|
205
|
+
height: 10,
|
|
206
|
+
width: YEAR_WIDTH,
|
|
207
|
+
barChart: true,
|
|
208
|
+
formatter: (value, { axis }) => axis === "y"
|
|
209
|
+
? value
|
|
210
|
+
: Object.keys(totalFeetByMonthYearBouldering)[value],
|
|
211
|
+
});
|
|
192
212
|
// max rope grade per month
|
|
193
213
|
const maxGradeByMonthYear = activeIndoorSplits === null || activeIndoorSplits === void 0 ? void 0 : activeIndoorSplits.reduce((acc, split) => {
|
|
194
214
|
var _a, _b, _c;
|
|
@@ -258,6 +278,79 @@ const parse = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
258
278
|
? value
|
|
259
279
|
: Object.keys(numberOfBoulderSessionsByMonthYear)[value],
|
|
260
280
|
});
|
|
281
|
+
// === YEARLY GRAPHS ===
|
|
282
|
+
console.log("\n\nYearly Stats ===============================\n");
|
|
283
|
+
const aggregateByYear = (monthlyData, mode = "sum") => {
|
|
284
|
+
const map = {};
|
|
285
|
+
Object.keys(monthlyData).forEach((key) => {
|
|
286
|
+
const year = key.split("-")[0];
|
|
287
|
+
if (mode === "max") {
|
|
288
|
+
map[year] = Math.max(map[year] || 0, monthlyData[key]);
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
291
|
+
map[year] = (map[year] || 0) + monthlyData[key];
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
// Sort descending (2026 first) - return array to avoid JS integer key reordering
|
|
295
|
+
return Object.keys(map)
|
|
296
|
+
.sort((a, b) => parseInt(b) - parseInt(a))
|
|
297
|
+
.map(k => [k, map[k]]);
|
|
298
|
+
};
|
|
299
|
+
const totalFeetByYearCombined = aggregateByYear(totalFeetByMonthYearCombined);
|
|
300
|
+
generateChart(totalFeetByYearCombined.map(([, val], index) => [index, val]), "Total Feet By Year Combined", {
|
|
301
|
+
height: 15,
|
|
302
|
+
width: totalFeetByYearCombined.length * 20,
|
|
303
|
+
barChart: true,
|
|
304
|
+
formatter: (value, { axis }) => { var _a; return axis === "y" ? value : (_a = totalFeetByYearCombined[value]) === null || _a === void 0 ? void 0 : _a[0]; },
|
|
305
|
+
});
|
|
306
|
+
const totalFeetByYear = aggregateByYear(totalFeetByMonthYear);
|
|
307
|
+
generateChart(totalFeetByYear.map(([, val], index) => [index, val]), "Total Route Feet By Year", {
|
|
308
|
+
height: 10,
|
|
309
|
+
width: totalFeetByYear.length * 20,
|
|
310
|
+
barChart: true,
|
|
311
|
+
formatter: (value, { axis }) => { var _a; return axis === "y" ? value : (_a = totalFeetByYear[value]) === null || _a === void 0 ? void 0 : _a[0]; },
|
|
312
|
+
});
|
|
313
|
+
const totalBoulderFeetByYear = aggregateByYear(totalFeetByMonthYearBouldering);
|
|
314
|
+
generateChart(totalBoulderFeetByYear.map(([, val], index) => [index, val]), "Approx Boulder Feet By Year", {
|
|
315
|
+
height: 10,
|
|
316
|
+
width: totalBoulderFeetByYear.length * 20,
|
|
317
|
+
barChart: true,
|
|
318
|
+
formatter: (value, { axis }) => { var _a; return axis === "y" ? value : (_a = totalBoulderFeetByYear[value]) === null || _a === void 0 ? void 0 : _a[0]; },
|
|
319
|
+
});
|
|
320
|
+
const maxGradeByYear = aggregateByYear(maxGradeByMonthYear, "max");
|
|
321
|
+
generateChart(maxGradeByYear.map(([, val], index) => [index, val]), "Max Rope Grade By Year", {
|
|
322
|
+
width: maxGradeByYear.length * 20,
|
|
323
|
+
formatter: (value, { axis }) => {
|
|
324
|
+
var _a;
|
|
325
|
+
return axis === "y"
|
|
326
|
+
? `${numberToGrade(value)}`
|
|
327
|
+
: (_a = maxGradeByYear[value]) === null || _a === void 0 ? void 0 : _a[0];
|
|
328
|
+
},
|
|
329
|
+
});
|
|
330
|
+
const maxBoulderGradeByYear = aggregateByYear(maxBoulderGradeByMonthYear, "max");
|
|
331
|
+
generateChart(maxBoulderGradeByYear.map(([, val], index) => [index, val]), "Max Boulder Grade By Year", {
|
|
332
|
+
width: maxBoulderGradeByYear.length * 20,
|
|
333
|
+
formatter: (value, { axis }) => {
|
|
334
|
+
var _a;
|
|
335
|
+
return axis === "y"
|
|
336
|
+
? `V${value}`
|
|
337
|
+
: (_a = maxBoulderGradeByYear[value]) === null || _a === void 0 ? void 0 : _a[0];
|
|
338
|
+
},
|
|
339
|
+
});
|
|
340
|
+
const ropeSessionsByYear = aggregateByYear(numberOfRopeSessionsByMonthYear);
|
|
341
|
+
generateChart(ropeSessionsByYear.map(([, val], index) => [index, val]), "Number of Rope Sessions By Year", {
|
|
342
|
+
height: 10,
|
|
343
|
+
width: ropeSessionsByYear.length * 20,
|
|
344
|
+
barChart: true,
|
|
345
|
+
formatter: (value, { axis }) => { var _a; return axis === "y" ? value : (_a = ropeSessionsByYear[value]) === null || _a === void 0 ? void 0 : _a[0]; },
|
|
346
|
+
});
|
|
347
|
+
const boulderSessionsByYear = aggregateByYear(numberOfBoulderSessionsByMonthYear);
|
|
348
|
+
generateChart(boulderSessionsByYear.map(([, val], index) => [index, val]), "Number of Boulder Sessions By Year", {
|
|
349
|
+
height: 10,
|
|
350
|
+
width: boulderSessionsByYear.length * 20,
|
|
351
|
+
barChart: true,
|
|
352
|
+
formatter: (value, { axis }) => { var _a; return axis === "y" ? value : (_a = boulderSessionsByYear[value]) === null || _a === void 0 ? void 0 : _a[0]; },
|
|
353
|
+
});
|
|
261
354
|
console.log("```");
|
|
262
355
|
console.log("```");
|
|
263
356
|
generateChart(activeIndoorSplits
|
|
@@ -288,7 +381,7 @@ const parse = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
288
381
|
generateChart(activeIndoorSplits === null || activeIndoorSplits === void 0 ? void 0 : activeIndoorSplits.map((split, index) => [
|
|
289
382
|
index,
|
|
290
383
|
metersToFeet(split === null || split === void 0 ? void 0 : split.totalAscent),
|
|
291
|
-
]), "Total Feet Per Session", {
|
|
384
|
+
]), "Total Feet Per Session (approximate, garmin doesn't track boulder completion vs attempts with this API)", {
|
|
292
385
|
height: 10,
|
|
293
386
|
width: (activeIndoorSplits === null || activeIndoorSplits === void 0 ? void 0 : activeIndoorSplits.length) * CHART_WIDTH_PER_DATA_POINT,
|
|
294
387
|
barChart: true,
|
|
@@ -323,7 +416,7 @@ const parse = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
323
416
|
generateChart(activeBoulderingSplits === null || activeBoulderingSplits === void 0 ? void 0 : activeBoulderingSplits.map((split, index) => [
|
|
324
417
|
index,
|
|
325
418
|
split === null || split === void 0 ? void 0 : split.noOfSplits,
|
|
326
|
-
]), "Number of
|
|
419
|
+
]), "Number of Splits per session (garmin doesn't track boulder completion vs attempts with this API)", {
|
|
327
420
|
height: 10,
|
|
328
421
|
barChart: true,
|
|
329
422
|
width: (activeBoulderingSplits === null || activeBoulderingSplits === void 0 ? void 0 : activeBoulderingSplits.length) * CHART_WIDTH_PER_DATA_POINT,
|
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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"}
|