garminclimb 1.0.0 → 1.0.1

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/README.md CHANGED
@@ -6,8 +6,7 @@ Garmin connect doesn't have the charts I want so I decided to make my own CLI to
6
6
 
7
7
  ```shell
8
8
  npm i -g garminclimb
9
- garminclimb login -u username -p password
10
- garminclimb download # download your data
9
+ garminclimb download -u username -p password # download your data
11
10
  garminclimb charts
12
11
  ```
13
12
 
@@ -21,230 +20,227 @@ ls
21
20
  # Develop locally or make your own charts
22
21
 
23
22
  ```shell
24
- npm i
23
+ npm i
25
24
  npm link
26
25
  npm run watch
27
26
  # change parse.ts in /src to edit charts
28
27
  # then all commaands will be locally linked to your code
29
- garminclimb login -u username -p password
30
- garminclimb download # download your data
28
+ garminclimb download -u username -p password # download your data
31
29
  garminclimb charts
32
30
  ```
33
31
 
34
-
35
32
  # Example Charts
36
33
 
37
-
38
34
  ```
39
35
  Max Grade Per Session Indoor Climbing
40
36
 
41
-
42
- 512A ┤ ┏━━━━━━━━━━┓ ┏━━━━━━━━━━┓
43
- 511D ┤ ┏━━━━━━━━━━┓ ┃ ┃ ┃ ┃
44
- │ ┃ ┃ ┃ ┃ ┃ ┃
45
- 511B ┤━━━━━━━━━━┓ ┃ ┃ ┃ ┃ ┃ ┗━
46
- 511A ┤ ┗━━━━━━━━━━┓ ┃ ┃ ┃ ┃ ┃
47
- 510D ┤ ┗━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━┓ ┃ ┗━━━━━━━━━━┛
48
- │ ┃ ┃
49
- 510B ┤ ┗━━━━━━━━━━┛
37
+
38
+ 512A ┤ ┏━━━━━━━━━━┓ ┏━━━━━━━━━━┓
39
+ 511D ┤ ┏━━━━━━━━━━┓ ┃ ┃ ┃ ┃
40
+ │ ┃ ┃ ┃ ┃ ┃ ┃
41
+ 511B ┤━━━━━━━━━━┓ ┃ ┃ ┃ ┃ ┃ ┗━
42
+ 511A ┤ ┗━━━━━━━━━━┓ ┃ ┃ ┃ ┃ ┃
43
+ 510D ┤ ┗━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━┓ ┃ ┗━━━━━━━━━━┛
44
+ │ ┃ ┃
45
+ 510B ┤ ┗━━━━━━━━━━┛
50
46
  └┬──────────┬──────────┬──────────┬──────────┬──────────┬─────────┬──────────┬──────────┬──────────┬──────────┬▶
51
- 2024-12-12 2024-12-18 2025-01-01 2025-01-09 2025-01-31 2025-02-062025-02-09 2025-02-12 2025-02-16 2025-02-25 2025-02-27
47
+ 2024-12-12 2024-12-18 2025-01-01 2025-01-09 2025-01-31 2025-02-062025-02-09 2025-02-12 2025-02-16 2025-02-25 2025-02-27
52
48
 
53
49
  Number of Sends per session
54
50
 
55
-
56
- 22┤ ┏━━━━━━━━━━┓
57
- │ ┃ ┃
58
- │ ┃ ┃
59
- │ ┃ ┃
60
- │ ┃ ┃
61
- 17┤ ┃ ┃ ┏━━━━━━━━━━┓
62
- │ ┃ ┃ ┃ ┃
63
- │ ┃ ┃ ┃ ┃
64
- │ ┃ ┃ ┃ ┃
65
- │ ┃ ┃ ┃ ┃
66
- 11┤ ┃ ┃ ┃ ┗━
67
- │ ┃ ┃ ┃
68
- 9┤━━━━━━━━━━┓ ┏━━━━━━━━━┓ ┃ ┃ ┃
69
- │ ┃ ┃ ┃ ┃ ┃ ┃
70
- │ ┃ ┃ ┃ ┃ ┃ ┃
71
- 6┤ ┗━━━━━━━━━━┓ ┃ ┃ ┃ ┗━━━━━━━━━━┛
72
- │ ┃ ┃ ┃ ┃
73
- 4┤ ┃ ┏━━━━━━━━━━┛ ┃ ┃
74
- 3┤ ┗━━━━━━━━━━┓ ┃ ┃ ┃
75
- 2┤ ┗━━━━━━━━━━┛ ┗━━━━━━━━━━┛
51
+
52
+ 22┤ ┏━━━━━━━━━━┓
53
+ │ ┃ ┃
54
+ │ ┃ ┃
55
+ │ ┃ ┃
56
+ │ ┃ ┃
57
+ 17┤ ┃ ┃ ┏━━━━━━━━━━┓
58
+ │ ┃ ┃ ┃ ┃
59
+ │ ┃ ┃ ┃ ┃
60
+ │ ┃ ┃ ┃ ┃
61
+ │ ┃ ┃ ┃ ┃
62
+ 11┤ ┃ ┃ ┃ ┗━
63
+ │ ┃ ┃ ┃
64
+ 9┤━━━━━━━━━━┓ ┏━━━━━━━━━┓ ┃ ┃ ┃
65
+ │ ┃ ┃ ┃ ┃ ┃ ┃
66
+ │ ┃ ┃ ┃ ┃ ┃ ┃
67
+ 6┤ ┗━━━━━━━━━━┓ ┃ ┃ ┃ ┗━━━━━━━━━━┛
68
+ │ ┃ ┃ ┃ ┃
69
+ 4┤ ┃ ┏━━━━━━━━━━┛ ┃ ┃
70
+ 3┤ ┗━━━━━━━━━━┓ ┃ ┃ ┃
71
+ 2┤ ┗━━━━━━━━━━┛ ┗━━━━━━━━━━┛
76
72
  └┬──────────┬──────────┬──────────┬──────────┬──────────┬─────────┬──────────┬──────────┬──────────┬──────────┬▶
77
- 2024-12-12 2024-12-18 2025-01-01 2025-01-09 2025-01-31 2025-02-062025-02-09 2025-02-12 2025-02-16 2025-02-25 2025-02-27
73
+ 2024-12-12 2024-12-18 2025-01-01 2025-01-09 2025-01-31 2025-02-062025-02-09 2025-02-12 2025-02-16 2025-02-25 2025-02-27
78
74
 
79
75
  Total Feet Per Session
80
76
 
81
- ▲ █
82
- 604┤ █
83
- │ █ █
84
- 509┤ █ █ █
85
- 436┤█ █ █ █
86
- 348┤█ █ █ █ █ █
87
- 312┤█ █ █ █ █ █ █
88
- 272┤█ █ █ █ █ █ █ █ █ █
89
- 208┤█ █ █ █ █ █ █ █ █ █
90
- │█ █ █ █ █ █ █ █ █ █ █
91
- 70┤█ █ █ █ █ █ █ █ █ █ █
77
+ ▲ █
78
+ 604┤ █
79
+ │ █ █
80
+ 509┤ █ █ █
81
+ 436┤█ █ █ █
82
+ 348┤█ █ █ █ █ █
83
+ 312┤█ █ █ █ █ █ █
84
+ 272┤█ █ █ █ █ █ █ █ █ █
85
+ 208┤█ █ █ █ █ █ █ █ █ █
86
+ │█ █ █ █ █ █ █ █ █ █ █
87
+ 70┤█ █ █ █ █ █ █ █ █ █ █
92
88
  └┬──────────┬──────────┬──────────┬──────────┬──────────┬─────────┬──────────┬──────────┬──────────┬──────────┬▶
93
- 2024-12-12 2024-12-18 2025-01-01 2025-01-09 2025-01-31 2025-02-062025-02-09 2025-02-12 2025-02-16 2025-02-25 2025-02-27
89
+ 2024-12-12 2024-12-18 2025-01-01 2025-01-09 2025-01-31 2025-02-062025-02-09 2025-02-12 2025-02-16 2025-02-25 2025-02-27
94
90
 
95
91
  Total Route Feet By Month
96
92
 
97
- ▲ █
98
- 2341┤ █
99
- │ █
100
- │ █
101
- │ █
102
- │ █
103
- │ █
104
- │ █
105
- │ █
106
- │ █
107
- │ █
108
- │ █
109
- │ █
110
- │ █
111
- │ █
112
- │ █
113
- │ █
114
- │ █
115
- │█ █
116
- 620┤█ █ █
117
- 480┤█ █ █
93
+ ▲ █
94
+ 2341┤ █
95
+ │ █
96
+ │ █
97
+ │ █
98
+ │ █
99
+ │ █
100
+ │ █
101
+ │ █
102
+ │ █
103
+ │ █
104
+ │ █
105
+ │ █
106
+ │ █
107
+ │ █
108
+ │ █
109
+ │ █
110
+ │ █
111
+ │█ █
112
+ 620┤█ █ █
113
+ 480┤█ █ █
118
114
  └┬─────────┬────────┬▶
119
- 2024-12 2025-01 2025-02
115
+ 2024-12 2025-01 2025-02
120
116
 
121
117
  Active Minutes Per Session
122
118
 
123
- ▲ █
124
- 28┤ █ █
125
- 27┤ █ █
126
- │ █ █ █
127
- 25┤ █ █ █
128
- │ █ █ █ █ █
129
- 23┤█ █ █ █ █ █
130
- 22┤█ █ █ █ █ █ █
131
- 21┤█ █ █ █ █ █ █
132
- │█ █ █ █ █ █ █ █ █
133
- 19┤█ █ █ █ █ █ █ █ █ █
134
- 18┤█ █ █ █ █ █ █ █ █ █
135
- │█ █ █ █ █ █ █ █ █ █
136
- │█ █ █ █ █ █ █ █ █ █
137
- │█ █ █ █ █ █ █ █ █ █
138
- │█ █ █ █ █ █ █ █ █ █
139
- │█ █ █ █ █ █ █ █ █ █
140
- │█ █ █ █ █ █ █ █ █ █
141
- │█ █ █ █ █ █ █ █ █ █
142
- │█ █ █ █ █ █ █ █ █ █ █
143
- 9┤█ █ █ █ █ █ █ █ █ █ █
119
+ ▲ █
120
+ 28┤ █ █
121
+ 27┤ █ █
122
+ │ █ █ █
123
+ 25┤ █ █ █
124
+ │ █ █ █ █ █
125
+ 23┤█ █ █ █ █ █
126
+ 22┤█ █ █ █ █ █ █
127
+ 21┤█ █ █ █ █ █ █
128
+ │█ █ █ █ █ █ █ █ █
129
+ 19┤█ █ █ █ █ █ █ █ █ █
130
+ 18┤█ █ █ █ █ █ █ █ █ █
131
+ │█ █ █ █ █ █ █ █ █ █
132
+ │█ █ █ █ █ █ █ █ █ █
133
+ │█ █ █ █ █ █ █ █ █ █
134
+ │█ █ █ █ █ █ █ █ █ █
135
+ │█ █ █ █ █ █ █ █ █ █
136
+ │█ █ █ █ █ █ █ █ █ █
137
+ │█ █ █ █ █ █ █ █ █ █
138
+ │█ █ █ █ █ █ █ █ █ █ █
139
+ 9┤█ █ █ █ █ █ █ █ █ █ █
144
140
  └┬──────────┬──────────┬──────────┬──────────┬──────────┬─────────┬──────────┬──────────┬──────────┬──────────┬▶
145
- 2024-12-12 2024-12-18 2025-01-01 2025-01-09 2025-01-31 2025-02-062025-02-09 2025-02-12 2025-02-16 2025-02-25 2025-02-27
141
+ 2024-12-12 2024-12-18 2025-01-01 2025-01-09 2025-01-31 2025-02-062025-02-09 2025-02-12 2025-02-16 2025-02-25 2025-02-27
146
142
 
147
143
 
148
144
 
149
145
  Bouldering===============================
150
146
  Max Grade Per Session Bouldering
151
147
 
152
-
153
- V7┤ ┏━━━━━━━━━━┓
154
- │ ┃ ┃
155
- │ ┃ ┃
156
- V6┤ ┏━━━━━━━━━┓ ┏━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━┛ ┃
157
- │ ┃ ┃ ┃ ┃ ┃ ┃
158
- │ ┃ ┃ ┃ ┃ ┃ ┃
159
- V5┤ ┃ ┗━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━
160
- │ ┃
161
- │ ┃
162
- V4┤━━━━━━━━━━┛
148
+
149
+ V7┤ ┏━━━━━━━━━━┓
150
+ │ ┃ ┃
151
+ │ ┃ ┃
152
+ V6┤ ┏━━━━━━━━━┓ ┏━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━┛ ┃
153
+ │ ┃ ┃ ┃ ┃ ┃ ┃
154
+ │ ┃ ┃ ┃ ┃ ┃ ┃
155
+ V5┤ ┃ ┗━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━
156
+ │ ┃
157
+ │ ┃
158
+ V4┤━━━━━━━━━━┛
163
159
  └┬──────────┬─────────┬──────────┬──────────┬─────────┬──────────┬──────────┬──────────┬─────────┬──────────┬──────────┬─────────┬──────────┬▶
164
- 2024-12-20 2024-12-282025-01-04 2025-01-08 2025-01-122025-01-19 2025-01-22 2025-01-29 2025-02-022025-02-14 2025-02-18 2025-02-232025-03-02 2025-03-05
160
+ 2024-12-20 2024-12-282025-01-04 2025-01-08 2025-01-122025-01-19 2025-01-22 2025-01-29 2025-02-022025-02-14 2025-02-18 2025-02-232025-03-02 2025-03-05
165
161
 
166
162
  Number of Climbs per session
167
163
 
168
- ▲ █
169
- 48┤ █
170
- │ █
171
- │ █ █
172
- 35┤ █ █ █ █
173
- 30┤ █ █ █ █ █ █ █ █
174
- 25┤ █ █ █ █ █ █ █ █ █ █
175
- 22┤ █ █ █ █ █ █ █ █ █ █ █ █ █
176
- 18┤ █ █ █ █ █ █ █ █ █ █ █ █ █
177
- │█ █ █ █ █ █ █ █ █ █ █ █ █ █
178
- 7┤█ █ █ █ █ █ █ █ █ █ █ █ █ █
164
+ ▲ █
165
+ 48┤ █
166
+ │ █
167
+ │ █ █
168
+ 35┤ █ █ █ █
169
+ 30┤ █ █ █ █ █ █ █ █
170
+ 25┤ █ █ █ █ █ █ █ █ █ █
171
+ 22┤ █ █ █ █ █ █ █ █ █ █ █ █ █
172
+ 18┤ █ █ █ █ █ █ █ █ █ █ █ █ █
173
+ │█ █ █ █ █ █ █ █ █ █ █ █ █ █
174
+ 7┤█ █ █ █ █ █ █ █ █ █ █ █ █ █
179
175
  └┬──────────┬─────────┬──────────┬──────────┬─────────┬──────────┬──────────┬──────────┬─────────┬──────────┬──────────┬─────────┬──────────┬▶
180
- 2024-12-20 2024-12-282025-01-04 2025-01-08 2025-01-122025-01-19 2025-01-22 2025-01-29 2025-02-022025-02-14 2025-02-18 2025-02-232025-03-02 2025-03-05
176
+ 2024-12-20 2024-12-282025-01-04 2025-01-08 2025-01-122025-01-19 2025-01-22 2025-01-29 2025-02-022025-02-14 2025-02-18 2025-02-232025-03-02 2025-03-05
181
177
 
182
178
  Active Minutes Bouldering Per Session
183
179
 
184
- ▲ █
185
- 30┤ █
186
- │ █
187
- │ █ █ █
188
- 22┤ █ █ █ █ █
189
- 18┤ █ █ █ █ █ █
190
- 17┤ █ █ █ █ █ █ █ █ █ █
191
- 13┤ █ █ █ █ █ █ █ █ █ █ █ █ █
192
- 10┤ █ █ █ █ █ █ █ █ █ █ █ █ █
193
- │█ █ █ █ █ █ █ █ █ █ █ █ █ █
194
- 6┤█ █ █ █ █ █ █ █ █ █ █ █ █ █
180
+ ▲ █
181
+ 30┤ █
182
+ │ █
183
+ │ █ █ █
184
+ 22┤ █ █ █ █ █
185
+ 18┤ █ █ █ █ █ █
186
+ 17┤ █ █ █ █ █ █ █ █ █ █
187
+ 13┤ █ █ █ █ █ █ █ █ █ █ █ █ █
188
+ 10┤ █ █ █ █ █ █ █ █ █ █ █ █ █
189
+ │█ █ █ █ █ █ █ █ █ █ █ █ █ █
190
+ 6┤█ █ █ █ █ █ █ █ █ █ █ █ █ █
195
191
  └┬──────────┬─────────┬──────────┬──────────┬─────────┬──────────┬──────────┬──────────┬─────────┬──────────┬──────────┬─────────┬──────────┬▶
196
- 2024-12-20 2024-12-282025-01-04 2025-01-08 2025-01-122025-01-19 2025-01-22 2025-01-29 2025-02-022025-02-14 2025-02-18 2025-02-232025-03-02 2025-03-05
192
+ 2024-12-20 2024-12-282025-01-04 2025-01-08 2025-01-122025-01-19 2025-01-22 2025-01-29 2025-02-022025-02-14 2025-02-18 2025-02-232025-03-02 2025-03-05
197
193
 
198
194
  Approx Boulder Feet By Month
199
195
 
200
- ▲ █
201
- 976┤ █ █
202
- 944┤ █ █
203
- │ █ █
204
- │ █ █
205
- │ █ █
206
- │ █ █
207
- │ █ █
208
- │ █ █
209
- │ █ █
210
- │ █ █ █
211
- 592┤ █ █ █
212
- │ █ █ █
213
- │ █ █ █
214
- │ █ █ █
215
- │ █ █ █
216
- │ █ █ █
217
- │ █ █ █
218
- │ █ █ █
219
- │█ █ █ █
220
- 256┤█ █ █ █
196
+ ▲ █
197
+ 976┤ █ █
198
+ 944┤ █ █
199
+ │ █ █
200
+ │ █ █
201
+ │ █ █
202
+ │ █ █
203
+ │ █ █
204
+ │ █ █
205
+ │ █ █
206
+ │ █ █ █
207
+ 592┤ █ █ █
208
+ │ █ █ █
209
+ │ █ █ █
210
+ │ █ █ █
211
+ │ █ █ █
212
+ │ █ █ █
213
+ │ █ █ █
214
+ │ █ █ █
215
+ │█ █ █ █
216
+ 256┤█ █ █ █
221
217
  └┬─────┬──────┬─────┬▶
222
- 2024-12 2025-02
218
+ 2024-12 2025-02
223
219
  2025-01 2025-03
224
220
 
225
221
  Total Feet By Month Combined
226
222
 
227
- ▲ █
228
- 3285┤ █
229
- │ █
230
- │ █
231
- │ █
232
- │ █
233
- │ █
234
- │ █
235
- │ █
236
- │ █
237
- │ █
238
- │ █
239
- │ █
240
- │ █
241
- │ █ █
242
- 1456┤ █ █
243
- │ █ █
244
- │ █ █
245
- │ █ █
246
- │█ █ █
247
- 876┤█ █ █
223
+ ▲ █
224
+ 3285┤ █
225
+ │ █
226
+ │ █
227
+ │ █
228
+ │ █
229
+ │ █
230
+ │ █
231
+ │ █
232
+ │ █
233
+ │ █
234
+ │ █
235
+ │ █
236
+ │ █
237
+ │ █ █
238
+ 1456┤ █ █
239
+ │ █ █
240
+ │ █ █
241
+ │ █ █
242
+ │█ █ █
243
+ 876┤█ █ █
248
244
  └┬─────────┬────────┬▶
249
- 2024-12 2025-01 2025-02
250
- ```
245
+ 2024-12 2025-01 2025-02
246
+ ```
package/bin/download.js CHANGED
@@ -42,22 +42,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
42
42
  });
43
43
  };
44
44
  Object.defineProperty(exports, "__esModule", { value: true });
45
- exports.download = exports.credentialsPath = void 0;
46
- const dotenv = __importStar(require("dotenv"));
47
- const path = require("path");
48
- const homeDir = require("os").homedir();
49
- exports.credentialsPath = path.join(homeDir, ".gc_credentials");
50
- dotenv.config({ path: exports.credentialsPath });
45
+ exports.download = void 0;
51
46
  const fs = __importStar(require("fs"));
52
47
  // @ts-ignore
53
48
  const garmin_connect_1 = require("garmin-connect");
54
49
  const _1 = require(".");
55
- const download = () => __awaiter(void 0, void 0, void 0, function* () {
50
+ const download = (username, password) => __awaiter(void 0, void 0, void 0, function* () {
56
51
  const GCClient = new garmin_connect_1.GarminConnect({
57
- username: process.env.GARMIN_USERNAME || "",
58
- password: process.env.GARMIN_PASSWORD || "",
52
+ username,
53
+ password,
59
54
  });
60
- yield GCClient.login(process.env.GARMIN_USERNAME || "", process.env.GARMIN_PASSWORD || "");
55
+ yield GCClient.login(username, password);
61
56
  const activities = yield GCClient.getActivities();
62
57
  const indoorClimbingActivities = 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) === "indoor_climbing"; });
63
58
  if (!fs.existsSync(_1.garminDataFolder)) {
@@ -1 +1 @@
1
- {"version":3,"file":"download.js","sourceRoot":"","sources":["../src/download.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AAEjC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AAC3B,QAAA,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,uBAAe,EAAE,CAAC,CAAC;AAEzC,uCAAyB;AACzB,aAAa;AACb,mDAA+C;AAC/C,wBAAqC;AAC9B,MAAM,QAAQ,GAAG,GAAwB,EAAE;IAChD,MAAM,QAAQ,GAAG,IAAI,8BAAa,CAAC;QACjC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;QAC3C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;KAC5C,CAAC,CAAC;IAEH,MAAM,QAAQ,CAAC,KAAK,CAClB,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,EACjC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAClC,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,CAAC;IAElD,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;AAlCW,QAAA,QAAQ,YAkCnB"}
1
+ {"version":3,"file":"download.js","sourceRoot":"","sources":["../src/download.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,aAAa;AACb,mDAA+C;AAC/C,wBAAqC;AAC9B,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,EAAE,CAAC;IAElD,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;AAlCW,QAAA,QAAQ,YAkCnB"}
package/bin/index.js CHANGED
@@ -1,69 +1,28 @@
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
- })();
36
3
  Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.garminDataFolder = exports.credentialsPath = void 0;
38
- const fs = __importStar(require("fs"));
4
+ exports.garminDataFolder = void 0;
39
5
  const commander_1 = require("commander");
40
6
  const os = require("os");
41
7
  const path = require("path");
42
8
  const homeDir = os.homedir();
43
- exports.credentialsPath = path.join(homeDir, ".gc_credentials");
44
9
  exports.garminDataFolder = path.join(homeDir, ".gc_data");
45
10
  const download_1 = require("./download");
46
11
  const parse_1 = require("./parse");
47
12
  commander_1.program
48
- .command("login")
13
+ .command("download")
14
+ .description("Download activities from Garmin Connect")
49
15
  .option("-u, --username <username>", "Garmin Connect username")
50
16
  .option("-p, --password <password>", "Garmin Connect password")
51
- .description("Set GARMIN_USERNAME and GARMIN_PASSWORD")
52
17
  .action((options) => {
53
18
  const GARMIN_USERNAME = options.username;
54
19
  const GARMIN_PASSWORD = options.password;
55
- const newEnv = `GARMIN_USERNAME=${GARMIN_USERNAME}\nGARMIN_PASSWORD=${GARMIN_PASSWORD}`;
56
- console.log("Setting credentials...");
57
- fs.writeFileSync(exports.credentialsPath, newEnv);
58
- console.log("Credentials set!");
20
+ (0, download_1.download)(GARMIN_USERNAME, GARMIN_PASSWORD);
59
21
  });
60
22
  commander_1.program
61
- .command("download")
62
- .description("Download activities from Garmin Connect")
23
+ .command("charts")
24
+ .description("Parse activities from Garmin Connect")
63
25
  .action(() => {
64
- (0, download_1.download)();
65
- });
66
- commander_1.program.command("charts").description("Parse activities from Garmin Connect").action(() => {
67
26
  console.log("Parsing activities...");
68
27
  (0, parse_1.parse)();
69
28
  });
package/bin/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uCAAyB;AAEzB,yCAAoC;AACpC,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,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AACxD,QAAA,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAC/D,yCAAsC;AACtC,mCAAgC;AAEhC,mBAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,2BAA2B,EAAE,yBAAyB,CAAC;KAC9D,MAAM,CAAC,2BAA2B,EAAE,yBAAyB,CAAC;KAC9D,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;IAClB,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;IACzC,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;IACzC,MAAM,MAAM,GAAG,mBAAmB,eAAe,qBAAqB,eAAe,EAAE,CAAC;IACxF,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,EAAE,CAAC,aAAa,CAAC,uBAAe,EAAE,MAAM,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AAEL,mBAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,GAAG,EAAE;IACX,IAAA,mBAAQ,GAAE,CAAC;AACb,CAAC,CAAC,CAAC;AAEL,mBAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,sCAAsC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;IACxF,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACrC,IAAA,aAAK,GAAE,CAAC;AACV,CAAC,CAAC,CAAC;AAGH,mBAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAEA,yCAAoC;AACpC,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,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACrC,IAAA,aAAK,GAAE,CAAC;AACV,CAAC,CAAC,CAAC;AAEL,mBAAO,CAAC,KAAK,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "garminclimb",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/src/download.ts CHANGED
@@ -1,25 +1,18 @@
1
- import * as dotenv from "dotenv";
2
-
3
- const path = require("path");
4
- const homeDir = require("os").homedir();
5
- export const credentialsPath = path.join(homeDir, ".gc_credentials");
6
- dotenv.config({ path: credentialsPath });
7
-
8
1
  import * as fs from "fs";
9
2
  // @ts-ignore
10
3
  import { GarminConnect } from "garmin-connect";
11
4
  import { garminDataFolder } from ".";
12
- export const download = async (): Promise<void> => {
5
+ export const download = async (
6
+ username: string,
7
+ password: string
8
+ ): Promise<void> => {
13
9
  const GCClient = new GarminConnect({
14
- username: process.env.GARMIN_USERNAME || "",
15
- password: process.env.GARMIN_PASSWORD || "",
10
+ username,
11
+ password,
16
12
  });
17
13
 
18
- await GCClient.login(
19
- process.env.GARMIN_USERNAME || "",
20
- process.env.GARMIN_PASSWORD || ""
21
- );
22
-
14
+ await GCClient.login(username, password);
15
+
23
16
  const activities = await GCClient.getActivities();
24
17
 
25
18
  const indoorClimbingActivities = activities?.filter(
package/src/index.ts CHANGED
@@ -1,41 +1,30 @@
1
1
  #! /usr/bin/env node
2
2
 
3
- import * as fs from "fs";
4
-
5
3
  import { program } from "commander";
6
4
  const os = require("os");
7
5
  const path = require("path");
8
6
  const homeDir = os.homedir();
9
- export const credentialsPath = path.join(homeDir, ".gc_credentials");
10
7
  export const garminDataFolder = path.join(homeDir, ".gc_data");
11
8
  import { download } from "./download";
12
9
  import { parse } from "./parse";
13
10
 
14
11
  program
15
- .command("login")
12
+ .command("download")
13
+ .description("Download activities from Garmin Connect")
16
14
  .option("-u, --username <username>", "Garmin Connect username")
17
15
  .option("-p, --password <password>", "Garmin Connect password")
18
- .description("Set GARMIN_USERNAME and GARMIN_PASSWORD")
19
16
  .action((options) => {
20
17
  const GARMIN_USERNAME = options.username;
21
18
  const GARMIN_PASSWORD = options.password;
22
- const newEnv = `GARMIN_USERNAME=${GARMIN_USERNAME}\nGARMIN_PASSWORD=${GARMIN_PASSWORD}`;
23
- console.log("Setting credentials...");
24
- fs.writeFileSync(credentialsPath, newEnv);
25
- console.log("Credentials set!");
19
+ download(GARMIN_USERNAME, GARMIN_PASSWORD);
26
20
  });
27
21
 
28
22
  program
29
- .command("download")
30
- .description("Download activities from Garmin Connect")
23
+ .command("charts")
24
+ .description("Parse activities from Garmin Connect")
31
25
  .action(() => {
32
- download();
26
+ console.log("Parsing activities...");
27
+ parse();
33
28
  });
34
29
 
35
- program.command("charts").description("Parse activities from Garmin Connect").action(() => {
36
- console.log("Parsing activities...");
37
- parse();
38
- });
39
-
40
-
41
30
  program.parse();