@nativesquare/soma 0.7.3 → 0.8.0

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.
Files changed (134) hide show
  1. package/dist/client/index.d.ts +83 -0
  2. package/dist/client/index.d.ts.map +1 -1
  3. package/dist/client/index.js +131 -0
  4. package/dist/client/index.js.map +1 -1
  5. package/dist/component/_generated/component.d.ts +159 -0
  6. package/dist/component/_generated/component.d.ts.map +1 -1
  7. package/dist/component/garmin.d.ts +190 -6
  8. package/dist/component/garmin.d.ts.map +1 -1
  9. package/dist/component/garmin.js +805 -25
  10. package/dist/component/garmin.js.map +1 -1
  11. package/dist/component/private.d.ts +18 -0
  12. package/dist/component/private.d.ts.map +1 -1
  13. package/dist/component/private.js +18 -0
  14. package/dist/component/private.js.map +1 -1
  15. package/dist/component/public.d.ts +88 -42
  16. package/dist/component/public.d.ts.map +1 -1
  17. package/dist/component/public.js +12 -2
  18. package/dist/component/public.js.map +1 -1
  19. package/dist/component/schema.d.ts +87 -32
  20. package/dist/component/schema.d.ts.map +1 -1
  21. package/dist/component/schema.js +2 -1
  22. package/dist/component/schema.js.map +1 -1
  23. package/dist/component/validators/connection.d.ts +1 -0
  24. package/dist/component/validators/connection.d.ts.map +1 -1
  25. package/dist/component/validators/connection.js +2 -0
  26. package/dist/component/validators/connection.js.map +1 -1
  27. package/dist/component/validators/daily.d.ts +40 -5
  28. package/dist/component/validators/daily.d.ts.map +1 -1
  29. package/dist/component/validators/daily.js +10 -1
  30. package/dist/component/validators/daily.js.map +1 -1
  31. package/dist/component/validators/enums.d.ts +1 -1
  32. package/dist/component/validators/plannedWorkout.d.ts +5 -1
  33. package/dist/component/validators/plannedWorkout.d.ts.map +1 -1
  34. package/dist/component/validators/plannedWorkout.js +4 -0
  35. package/dist/component/validators/plannedWorkout.js.map +1 -1
  36. package/dist/component/validators/sleep.d.ts +8 -8
  37. package/dist/garmin/activity.d.ts +7 -16
  38. package/dist/garmin/activity.d.ts.map +1 -1
  39. package/dist/garmin/activity.js +17 -23
  40. package/dist/garmin/activity.js.map +1 -1
  41. package/dist/garmin/bloodPressure.d.ts +28 -0
  42. package/dist/garmin/bloodPressure.d.ts.map +1 -0
  43. package/dist/garmin/bloodPressure.js +34 -0
  44. package/dist/garmin/bloodPressure.js.map +1 -0
  45. package/dist/garmin/body.js +1 -1
  46. package/dist/garmin/body.js.map +1 -1
  47. package/dist/garmin/client.d.ts +117 -17
  48. package/dist/garmin/client.d.ts.map +1 -1
  49. package/dist/garmin/client.js +337 -43
  50. package/dist/garmin/client.js.map +1 -1
  51. package/dist/garmin/daily.d.ts.map +1 -1
  52. package/dist/garmin/daily.js +3 -3
  53. package/dist/garmin/daily.js.map +1 -1
  54. package/dist/garmin/hrv.d.ts +30 -0
  55. package/dist/garmin/hrv.d.ts.map +1 -0
  56. package/dist/garmin/hrv.js +45 -0
  57. package/dist/garmin/hrv.js.map +1 -0
  58. package/dist/garmin/index.d.ts +16 -2
  59. package/dist/garmin/index.d.ts.map +1 -1
  60. package/dist/garmin/index.js +8 -1
  61. package/dist/garmin/index.js.map +1 -1
  62. package/dist/garmin/maps/activity-type.d.ts +1 -2
  63. package/dist/garmin/maps/activity-type.d.ts.map +1 -1
  64. package/dist/garmin/maps/activity-type.js +1 -0
  65. package/dist/garmin/maps/activity-type.js.map +1 -1
  66. package/dist/garmin/menstruation.d.ts +6 -4
  67. package/dist/garmin/menstruation.d.ts.map +1 -1
  68. package/dist/garmin/menstruation.js +12 -8
  69. package/dist/garmin/menstruation.js.map +1 -1
  70. package/dist/garmin/pulseOx.d.ts +24 -0
  71. package/dist/garmin/pulseOx.d.ts.map +1 -0
  72. package/dist/garmin/pulseOx.js +33 -0
  73. package/dist/garmin/pulseOx.js.map +1 -0
  74. package/dist/garmin/respiration.d.ts +29 -0
  75. package/dist/garmin/respiration.d.ts.map +1 -0
  76. package/dist/garmin/respiration.js +42 -0
  77. package/dist/garmin/respiration.js.map +1 -0
  78. package/dist/garmin/skinTemp.d.ts +27 -0
  79. package/dist/garmin/skinTemp.d.ts.map +1 -0
  80. package/dist/garmin/skinTemp.js +35 -0
  81. package/dist/garmin/skinTemp.js.map +1 -0
  82. package/dist/garmin/sleep.d.ts +4 -4
  83. package/dist/garmin/sleep.d.ts.map +1 -1
  84. package/dist/garmin/sleep.js +15 -9
  85. package/dist/garmin/sleep.js.map +1 -1
  86. package/dist/garmin/stressDetails.d.ts +30 -0
  87. package/dist/garmin/stressDetails.d.ts.map +1 -0
  88. package/dist/garmin/stressDetails.js +49 -0
  89. package/dist/garmin/stressDetails.js.map +1 -0
  90. package/dist/garmin/sync.d.ts +14 -0
  91. package/dist/garmin/sync.d.ts.map +1 -1
  92. package/dist/garmin/sync.js +287 -5
  93. package/dist/garmin/sync.js.map +1 -1
  94. package/dist/garmin/types.d.ts +77 -186
  95. package/dist/garmin/types.d.ts.map +1 -1
  96. package/dist/garmin/types.js +4 -2
  97. package/dist/garmin/types.js.map +1 -1
  98. package/dist/garmin/userMetrics.d.ts +23 -0
  99. package/dist/garmin/userMetrics.d.ts.map +1 -0
  100. package/dist/garmin/userMetrics.js +41 -0
  101. package/dist/garmin/userMetrics.js.map +1 -0
  102. package/dist/validators.d.ts +107 -28
  103. package/dist/validators.d.ts.map +1 -1
  104. package/package.json +133 -124
  105. package/src/client/index.ts +199 -0
  106. package/src/component/_generated/component.ts +161 -2
  107. package/src/component/garmin.ts +898 -26
  108. package/src/component/private.ts +21 -0
  109. package/src/component/public.ts +11 -2
  110. package/src/component/schema.ts +2 -1
  111. package/src/component/validators/connection.ts +2 -0
  112. package/src/component/validators/daily.ts +15 -0
  113. package/src/component/validators/plannedWorkout.ts +4 -0
  114. package/src/garmin/activity.test.ts +13 -21
  115. package/src/garmin/activity.ts +38 -45
  116. package/src/garmin/bloodPressure.ts +41 -0
  117. package/src/garmin/body.ts +1 -1
  118. package/src/garmin/client.ts +550 -71
  119. package/src/garmin/daily.ts +8 -4
  120. package/src/garmin/hrv.ts +57 -0
  121. package/src/garmin/index.ts +77 -7
  122. package/src/garmin/maps/activity-type.ts +2 -2
  123. package/src/garmin/menstruation.ts +14 -12
  124. package/src/garmin/pulseOx.ts +45 -0
  125. package/src/garmin/respiration.ts +55 -0
  126. package/src/garmin/skinTemp.ts +42 -0
  127. package/src/garmin/sleep.test.ts +5 -6
  128. package/src/garmin/sleep.ts +22 -16
  129. package/src/garmin/spec/wellness-api.json +1 -0
  130. package/src/garmin/stressDetails.ts +71 -0
  131. package/src/garmin/sync.ts +348 -5
  132. package/src/garmin/types.ts +88 -300
  133. package/src/garmin/userMetrics.ts +50 -0
  134. package/src/garmin/wellness-api.d.ts +5637 -0
@@ -1,4 +1,4 @@
1
- import type { GarminActivity, GarminDailySummary, GarminSleep, GarminBodyComposition, GarminMenstrualCycleData, GarminWorkout, GarminWorkoutSchedule } from "./types.js";
1
+ import type { GarminActivity, GarminActivityDetail, GarminDailyExtended, GarminSleepExtended, GarminBodyComposition, GarminMenstrualCycle, GarminUserMetrics, GarminStressDetail, GarminSkinTemperature, GarminRespiration, GarminPulseOx, GarminMoveIQEvent, GarminHRVSummary, GarminHealthSnapshot, GarminEpoch, GarminBloodPressure, GarminSolar, GarminWorkout, GarminWorkoutSchedule } from "./types.js";
2
2
  export interface GarminClientOptions {
3
3
  /** The user's OAuth 2.0 access token. */
4
4
  accessToken: string;
@@ -9,7 +9,10 @@ export interface GarminClientOptions {
9
9
  baseUrl?: string;
10
10
  }
11
11
  /**
12
- * A lightweight client for the Garmin Health API.
12
+ * A client for the Garmin Health API.
13
+ *
14
+ * Wellness API endpoints use openapi-fetch for type safety. Training API
15
+ * endpoints use manual fetch since they are not part of the Wellness API spec.
13
16
  *
14
17
  * All requests are authenticated with a Bearer token. Time-range parameters
15
18
  * use Unix epoch seconds for `uploadStartTimeInSeconds` and
@@ -30,25 +33,52 @@ export interface GarminClientOptions {
30
33
  export declare class GarminClient {
31
34
  private readonly accessToken;
32
35
  private readonly baseUrl;
36
+ private readonly wellness;
33
37
  constructor(opts: GarminClientOptions);
38
+ /**
39
+ * Resolve the Garmin user ID for the authenticated user.
40
+ *
41
+ * Garmin API: `GET /wellness-api/rest/user/id`
42
+ */
43
+ getUserId(): Promise<string | null>;
44
+ /**
45
+ * Check which permissions the user has granted.
46
+ *
47
+ * Garmin API: `GET /wellness-api/rest/user/permissions`
48
+ */
49
+ getUserPermissions(): Promise<string[]>;
34
50
  /**
35
51
  * Get daily wellness summaries.
36
52
  *
37
53
  * Garmin API: `GET /wellness-api/rest/dailies`
38
54
  */
39
- getDailies(params: TimeRangeParams): Promise<GarminDailySummary[]>;
55
+ getDailies(params: TimeRangeParams): Promise<GarminDailyExtended[]>;
40
56
  /**
41
57
  * Get activity summaries.
42
58
  *
43
59
  * Garmin API: `GET /wellness-api/rest/activities`
44
60
  */
45
61
  getActivities(params: TimeRangeParams): Promise<GarminActivity[]>;
62
+ /**
63
+ * Get detailed activity summaries including GPS, heart rate, and sensor data.
64
+ *
65
+ * Garmin API: `GET /wellness-api/rest/activityDetails`
66
+ */
67
+ getActivityDetails(params: TimeRangeParams): Promise<GarminActivityDetail[]>;
68
+ /**
69
+ * Download a raw activity file (FIT, TCX, or GPX).
70
+ *
71
+ * Garmin API: `GET /wellness-api/rest/activityFile`
72
+ *
73
+ * @returns The raw file as an ArrayBuffer.
74
+ */
75
+ getActivityFile(id: string): Promise<ArrayBuffer>;
46
76
  /**
47
77
  * Get sleep summaries.
48
78
  *
49
79
  * Garmin API: `GET /wellness-api/rest/sleeps`
50
80
  */
51
- getSleeps(params: TimeRangeParams): Promise<GarminSleep[]>;
81
+ getSleeps(params: TimeRangeParams): Promise<GarminSleepExtended[]>;
52
82
  /**
53
83
  * Get body composition summaries.
54
84
  *
@@ -56,27 +86,104 @@ export declare class GarminClient {
56
86
  */
57
87
  getBodyCompositions(params: TimeRangeParams): Promise<GarminBodyComposition[]>;
58
88
  /**
59
- * Get menstrual cycle data.
89
+ * Get menstrual cycle tracking data.
90
+ *
91
+ * Garmin API: `GET /wellness-api/rest/mct`
92
+ */
93
+ getMenstrualCycleData(params: TimeRangeParams): Promise<GarminMenstrualCycle[]>;
94
+ /**
95
+ * Get user metrics (VO2 max, fitness age, etc.).
96
+ *
97
+ * Garmin API: `GET /wellness-api/rest/userMetrics`
98
+ */
99
+ getUserMetrics(params: TimeRangeParams): Promise<GarminUserMetrics[]>;
100
+ /**
101
+ * Get stress detail summaries.
102
+ *
103
+ * Garmin API: `GET /wellness-api/rest/stressDetails`
104
+ */
105
+ getStressDetails(params: TimeRangeParams): Promise<GarminStressDetail[]>;
106
+ /**
107
+ * Get skin temperature summaries.
108
+ *
109
+ * Garmin API: `GET /wellness-api/rest/skinTemp`
110
+ */
111
+ getSkinTemperature(params: TimeRangeParams): Promise<GarminSkinTemperature[]>;
112
+ /**
113
+ * Get respiration summaries.
114
+ *
115
+ * Garmin API: `GET /wellness-api/rest/respiration`
116
+ */
117
+ getRespiration(params: TimeRangeParams): Promise<GarminRespiration[]>;
118
+ /**
119
+ * Get pulse oximetry (SpO2) summaries.
120
+ *
121
+ * Garmin API: `GET /wellness-api/rest/pulseOx`
122
+ */
123
+ getPulseOx(params: TimeRangeParams): Promise<GarminPulseOx[]>;
124
+ /**
125
+ * Get Move IQ auto-detected activity events.
60
126
  *
61
- * Garmin API: `GET /wellness-api/rest/menstrualCycleData`
127
+ * Garmin API: `GET /wellness-api/rest/moveiq`
62
128
  */
63
- getMenstrualCycleData(params: TimeRangeParams): Promise<GarminMenstrualCycleData[]>;
129
+ getMoveIQ(params: TimeRangeParams): Promise<GarminMoveIQEvent[]>;
130
+ /**
131
+ * Get heart rate variability (HRV) summaries.
132
+ *
133
+ * Garmin API: `GET /wellness-api/rest/hrv`
134
+ */
135
+ getHRV(params: TimeRangeParams): Promise<GarminHRVSummary[]>;
136
+ /**
137
+ * Get health snapshot summaries.
138
+ *
139
+ * Garmin API: `GET /wellness-api/rest/healthSnapshot`
140
+ */
141
+ getHealthSnapshot(params: TimeRangeParams): Promise<GarminHealthSnapshot[]>;
142
+ /**
143
+ * Get epoch (15-minute interval) summaries.
144
+ *
145
+ * Garmin API: `GET /wellness-api/rest/epochs`
146
+ */
147
+ getEpochs(params: TimeRangeParams): Promise<GarminEpoch[]>;
148
+ /**
149
+ * Get blood pressure summaries.
150
+ *
151
+ * Garmin API: `GET /wellness-api/rest/bloodPressures`
152
+ */
153
+ getBloodPressures(params: TimeRangeParams): Promise<GarminBloodPressure[]>;
154
+ /**
155
+ * Get manually created or edited activities.
156
+ *
157
+ * Garmin API: `GET /wellness-api/rest/manuallyUpdatedActivities`
158
+ */
159
+ getManuallyUpdatedActivities(params: TimeRangeParams): Promise<GarminActivity[]>;
160
+ /**
161
+ * Get solar intensity summaries.
162
+ *
163
+ * Garmin API: `GET /wellness-api/rest/solarIntensity`
164
+ */
165
+ getSolarIntensity(params: TimeRangeParams): Promise<GarminSolar[]>;
64
166
  /**
65
167
  * Request historical data backfill from Garmin.
66
168
  *
67
169
  * Garmin processes backfill requests asynchronously and delivers data
68
170
  * via the configured webhook endpoint. Maximum range: 90 days per request.
69
171
  *
172
+ * Uses manual fetch because the spec defines individual backfill paths
173
+ * (e.g. `/rest/backfill/dailies`) but this method accepts a dynamic
174
+ * summaryType string.
175
+ *
70
176
  * @param summaryType - The data type to backfill (e.g., "dailies", "activities", "sleeps", "bodyComps")
71
177
  * @param params - Time range for the backfill
72
178
  */
73
179
  requestBackfill(summaryType: string, params: TimeRangeParams): Promise<void>;
74
180
  /**
75
- * Check which permissions the user has granted.
181
+ * Delete the user's registration with Garmin.
76
182
  *
77
- * Garmin OAuth 2.0 PKCE spec: `GET /wellness-api/rest/user/permissions`
183
+ * Must be called when the user disconnects or deletes their account
184
+ * to comply with Garmin's API requirements.
78
185
  */
79
- getUserPermissions(): Promise<string[]>;
186
+ deleteUserRegistration(): Promise<void>;
80
187
  /**
81
188
  * Create a workout in Garmin Connect.
82
189
  *
@@ -120,13 +227,6 @@ export declare class GarminClient {
120
227
  * Garmin API: `DELETE /training-api/schedule/{scheduleId}`
121
228
  */
122
229
  deleteSchedule(scheduleId: number): Promise<void>;
123
- /**
124
- * Delete the user's registration with Garmin.
125
- *
126
- * Must be called when the user disconnects or deletes their account
127
- * to comply with Garmin's API requirements.
128
- */
129
- deleteUserRegistration(): Promise<void>;
130
230
  private get;
131
231
  private post;
132
232
  private put;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/garmin/client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,qBAAqB,EACrB,wBAAwB,EACxB,aAAa,EACb,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,IAAI,EAAE,mBAAmB;IAOrC;;;;OAIG;IACG,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IASxE;;;;OAIG;IACG,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IASvE;;;;OAIG;IACG,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAShE;;;;OAIG;IACG,mBAAmB,CACvB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,qBAAqB,EAAE,CAAC;IASnC;;;;OAIG;IACG,qBAAqB,CACzB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAStC;;;;;;;;OAQG;IACG,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC;IAUhB;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI7C;;;;;OAKG;IACG,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAInE;;;;OAIG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAM3D;;;;OAIG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,aAAa,CAAC;IAOzB;;;;OAIG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD;;;;OAIG;IACG,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,qBAAqB,CAAC;IAOjC;;;;OAIG;IACG,kBAAkB,CACtB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAOnC;;;;OAIG;IACG,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvD;;;;;OAKG;IACG,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;YAqB/B,GAAG;YA8BH,IAAI;YA+BJ,GAAG;YAwBH,GAAG;CAkBlB;AAID,MAAM,WAAW,eAAe;IAC9B,qDAAqD;IACrD,wBAAwB,EAAE,MAAM,CAAC;IACjC,mDAAmD;IACnD,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAWD,qBAAa,cAAe,SAAQ,KAAK;aAGrB,MAAM,EAAE,MAAM;aACd,IAAI,EAAE,MAAM;gBAF5B,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM;CAK/B"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/garmin/client.ts"],"names":[],"mappings":"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"}