@nativesquare/soma 0.9.0 → 0.9.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.
Files changed (354) hide show
  1. package/dist/component/_generated/api.d.ts +20 -2
  2. package/dist/component/_generated/api.d.ts.map +1 -1
  3. package/dist/component/_generated/api.js.map +1 -1
  4. package/dist/component/_generated/component.d.ts +7 -6
  5. package/dist/component/_generated/component.d.ts.map +1 -1
  6. package/dist/{garmin → component/garmin}/auth.d.ts +8 -1
  7. package/dist/component/garmin/auth.d.ts.map +1 -0
  8. package/dist/component/garmin/auth.js.map +1 -0
  9. package/dist/component/garmin/client.d.ts +15 -0
  10. package/dist/component/garmin/client.d.ts.map +1 -0
  11. package/dist/component/garmin/client.js +32 -0
  12. package/dist/component/garmin/client.js.map +1 -0
  13. package/dist/component/garmin/private.d.ts +85 -17
  14. package/dist/component/garmin/private.d.ts.map +1 -1
  15. package/dist/component/garmin/private.js +52 -205
  16. package/dist/component/garmin/private.js.map +1 -1
  17. package/dist/component/garmin/public.d.ts +42 -48
  18. package/dist/component/garmin/public.d.ts.map +1 -1
  19. package/dist/component/garmin/public.js +404 -368
  20. package/dist/component/garmin/public.js.map +1 -1
  21. package/dist/component/garmin/schemas/activity.d.ts +2 -2
  22. package/dist/component/garmin/schemas/activity.d.ts.map +1 -1
  23. package/dist/component/garmin/schemas/activity.js +3 -1
  24. package/dist/component/garmin/schemas/activity.js.map +1 -1
  25. package/dist/component/garmin/schemas/activityDetails.d.ts +50 -50
  26. package/dist/component/garmin/schemas/activityDetails.d.ts.map +1 -1
  27. package/dist/component/garmin/schemas/activityDetails.js +4 -1
  28. package/dist/component/garmin/schemas/activityDetails.js.map +1 -1
  29. package/dist/component/garmin/schemas/bloodPressure.js +1 -1
  30. package/dist/component/garmin/schemas/bloodPressure.js.map +1 -1
  31. package/dist/component/garmin/schemas/bodyCompositions.js +1 -1
  32. package/dist/component/garmin/schemas/bodyCompositions.js.map +1 -1
  33. package/dist/component/garmin/schemas/dailies.js +1 -1
  34. package/dist/component/garmin/schemas/dailies.js.map +1 -1
  35. package/dist/component/garmin/schemas/epochs.js +1 -1
  36. package/dist/component/garmin/schemas/epochs.js.map +1 -1
  37. package/dist/component/garmin/schemas/healthSnapshot.js +1 -1
  38. package/dist/component/garmin/schemas/healthSnapshot.js.map +1 -1
  39. package/dist/component/garmin/schemas/hrvSummary.js +1 -1
  40. package/dist/component/garmin/schemas/hrvSummary.js.map +1 -1
  41. package/dist/component/garmin/schemas/manuallyUpdatedActivities.d.ts +2 -2
  42. package/dist/component/garmin/schemas/manuallyUpdatedActivities.d.ts.map +1 -1
  43. package/dist/component/garmin/schemas/manuallyUpdatedActivities.js +3 -1
  44. package/dist/component/garmin/schemas/manuallyUpdatedActivities.js.map +1 -1
  45. package/dist/component/garmin/schemas/menstrualCycleTracking.js +1 -1
  46. package/dist/component/garmin/schemas/menstrualCycleTracking.js.map +1 -1
  47. package/dist/component/garmin/schemas/moveIQ.js +1 -1
  48. package/dist/component/garmin/schemas/moveIQ.js.map +1 -1
  49. package/dist/component/garmin/schemas/pulseOx.js +1 -1
  50. package/dist/component/garmin/schemas/pulseOx.js.map +1 -1
  51. package/dist/component/garmin/schemas/respiration.js +1 -1
  52. package/dist/component/garmin/schemas/respiration.js.map +1 -1
  53. package/dist/component/garmin/schemas/skinTemperature.js +1 -1
  54. package/dist/component/garmin/schemas/skinTemperature.js.map +1 -1
  55. package/dist/component/garmin/schemas/sleeps.js +1 -1
  56. package/dist/component/garmin/schemas/sleeps.js.map +1 -1
  57. package/dist/component/garmin/schemas/stress.d.ts +6 -6
  58. package/dist/component/garmin/schemas/stress.d.ts.map +1 -1
  59. package/dist/component/garmin/schemas/stress.js +3 -1
  60. package/dist/component/garmin/schemas/stress.js.map +1 -1
  61. package/dist/component/garmin/schemas/userMetrics.js +1 -1
  62. package/dist/component/garmin/schemas/userMetrics.js.map +1 -1
  63. package/dist/component/garmin/transform/activity.d.ts +2 -2
  64. package/dist/component/garmin/transform/activity.d.ts.map +1 -1
  65. package/dist/component/garmin/transform/activity.js +1 -1
  66. package/dist/component/garmin/transform/activity.js.map +1 -1
  67. package/dist/component/garmin/transform/activityDetails.d.ts +2 -2
  68. package/dist/component/garmin/transform/activityDetails.d.ts.map +1 -1
  69. package/dist/component/garmin/transform/activityDetails.js.map +1 -1
  70. package/dist/component/garmin/transform/bloodPressure.d.ts +2 -2
  71. package/dist/component/garmin/transform/bloodPressure.d.ts.map +1 -1
  72. package/dist/component/garmin/transform/bodyCompositions.d.ts +2 -2
  73. package/dist/component/garmin/transform/bodyCompositions.d.ts.map +1 -1
  74. package/dist/component/garmin/transform/bodyCompositions.js.map +1 -1
  75. package/dist/component/garmin/transform/dailies.d.ts +2 -2
  76. package/dist/component/garmin/transform/dailies.d.ts.map +1 -1
  77. package/dist/component/garmin/transform/dailies.js +1 -1
  78. package/dist/component/garmin/transform/dailies.js.map +1 -1
  79. package/dist/component/garmin/transform/epochs.d.ts +2 -2
  80. package/dist/component/garmin/transform/epochs.d.ts.map +1 -1
  81. package/dist/component/garmin/transform/healthSnapshot.d.ts +2 -2
  82. package/dist/component/garmin/transform/healthSnapshot.d.ts.map +1 -1
  83. package/dist/component/garmin/transform/healthSnapshot.js.map +1 -1
  84. package/dist/component/garmin/transform/hrvSummary.d.ts +2 -2
  85. package/dist/component/garmin/transform/hrvSummary.d.ts.map +1 -1
  86. package/dist/component/garmin/transform/hrvSummary.js +1 -1
  87. package/dist/component/garmin/transform/hrvSummary.js.map +1 -1
  88. package/dist/component/garmin/transform/manuallyUpdatedActivities.d.ts +2 -2
  89. package/dist/component/garmin/transform/manuallyUpdatedActivities.d.ts.map +1 -1
  90. package/dist/{garmin/maps/activity-type.d.ts → component/garmin/transform/maps/activityType.d.ts} +1 -1
  91. package/dist/component/garmin/transform/maps/activityType.d.ts.map +1 -0
  92. package/dist/{garmin/maps/activity-type.js → component/garmin/transform/maps/activityType.js} +1 -1
  93. package/dist/component/garmin/transform/maps/activityType.js.map +1 -0
  94. package/dist/{garmin/maps/sleep-level.d.ts → component/garmin/transform/maps/sleepLevel.d.ts} +1 -1
  95. package/dist/component/garmin/transform/maps/sleepLevel.d.ts.map +1 -0
  96. package/dist/{garmin/maps/sleep-level.js → component/garmin/transform/maps/sleepLevel.js} +1 -1
  97. package/dist/component/garmin/transform/maps/sleepLevel.js.map +1 -0
  98. package/dist/component/garmin/transform/menstrualCycleTracking.d.ts +2 -2
  99. package/dist/component/garmin/transform/menstrualCycleTracking.d.ts.map +1 -1
  100. package/dist/component/garmin/transform/menstrualCycleTracking.js.map +1 -1
  101. package/dist/component/garmin/transform/moveIQ.d.ts +2 -5
  102. package/dist/component/garmin/transform/moveIQ.d.ts.map +1 -1
  103. package/dist/component/garmin/transform/moveIQ.js +1 -1
  104. package/dist/component/garmin/transform/moveIQ.js.map +1 -1
  105. package/dist/{garmin → component/garmin/transform}/plannedWorkout.d.ts +3 -4
  106. package/dist/component/garmin/transform/plannedWorkout.d.ts.map +1 -0
  107. package/dist/{garmin → component/garmin/transform}/plannedWorkout.js +61 -70
  108. package/dist/component/garmin/transform/plannedWorkout.js.map +1 -0
  109. package/dist/component/garmin/transform/pulseOx.d.ts +2 -2
  110. package/dist/component/garmin/transform/pulseOx.d.ts.map +1 -1
  111. package/dist/component/garmin/transform/pulseOx.js +1 -1
  112. package/dist/component/garmin/transform/pulseOx.js.map +1 -1
  113. package/dist/component/garmin/transform/respiration.d.ts +2 -2
  114. package/dist/component/garmin/transform/respiration.d.ts.map +1 -1
  115. package/dist/component/garmin/transform/respiration.js +1 -1
  116. package/dist/component/garmin/transform/respiration.js.map +1 -1
  117. package/dist/component/garmin/transform/skinTemperature.d.ts +2 -2
  118. package/dist/component/garmin/transform/skinTemperature.d.ts.map +1 -1
  119. package/dist/component/garmin/transform/skinTemperature.js.map +1 -1
  120. package/dist/component/garmin/transform/sleeps.d.ts +2 -2
  121. package/dist/component/garmin/transform/sleeps.d.ts.map +1 -1
  122. package/dist/component/garmin/transform/sleeps.js +3 -3
  123. package/dist/component/garmin/transform/sleeps.js.map +1 -1
  124. package/dist/component/garmin/transform/stress.d.ts +2 -2
  125. package/dist/component/garmin/transform/stress.d.ts.map +1 -1
  126. package/dist/component/garmin/transform/stress.js +2 -2
  127. package/dist/component/garmin/transform/stress.js.map +1 -1
  128. package/dist/component/garmin/transform/userMetrics.d.ts +2 -2
  129. package/dist/component/garmin/transform/userMetrics.d.ts.map +1 -1
  130. package/dist/component/garmin/transform/userMetrics.js.map +1 -1
  131. package/dist/component/garmin/types/trainingApiWorkouts/client/client.gen.d.ts +3 -0
  132. package/dist/component/garmin/types/trainingApiWorkouts/client/client.gen.d.ts.map +1 -0
  133. package/dist/component/garmin/types/trainingApiWorkouts/client/client.gen.js +236 -0
  134. package/dist/component/garmin/types/trainingApiWorkouts/client/client.gen.js.map +1 -0
  135. package/dist/component/garmin/types/trainingApiWorkouts/client/index.d.ts +9 -0
  136. package/dist/component/garmin/types/trainingApiWorkouts/client/index.d.ts.map +1 -0
  137. package/dist/component/garmin/types/trainingApiWorkouts/client/index.js +7 -0
  138. package/dist/component/garmin/types/trainingApiWorkouts/client/index.js.map +1 -0
  139. package/dist/component/garmin/types/trainingApiWorkouts/client/types.gen.d.ts +118 -0
  140. package/dist/component/garmin/types/trainingApiWorkouts/client/types.gen.d.ts.map +1 -0
  141. package/dist/component/garmin/types/trainingApiWorkouts/client/types.gen.js +3 -0
  142. package/dist/component/garmin/types/trainingApiWorkouts/client/types.gen.js.map +1 -0
  143. package/dist/component/garmin/types/trainingApiWorkouts/client/utils.gen.d.ts +34 -0
  144. package/dist/component/garmin/types/trainingApiWorkouts/client/utils.gen.d.ts.map +1 -0
  145. package/dist/component/garmin/types/trainingApiWorkouts/client/utils.gen.js +229 -0
  146. package/dist/component/garmin/types/trainingApiWorkouts/client/utils.gen.js.map +1 -0
  147. package/dist/component/garmin/types/trainingApiWorkouts/client.gen.d.ts +13 -0
  148. package/dist/component/garmin/types/trainingApiWorkouts/client.gen.d.ts.map +1 -0
  149. package/dist/component/garmin/types/trainingApiWorkouts/client.gen.js +4 -0
  150. package/dist/component/garmin/types/trainingApiWorkouts/client.gen.js.map +1 -0
  151. package/dist/component/garmin/types/trainingApiWorkouts/core/auth.gen.d.ts +19 -0
  152. package/dist/component/garmin/types/trainingApiWorkouts/core/auth.gen.d.ts.map +1 -0
  153. package/dist/component/garmin/types/trainingApiWorkouts/core/auth.gen.js +15 -0
  154. package/dist/component/garmin/types/trainingApiWorkouts/core/auth.gen.js.map +1 -0
  155. package/dist/component/garmin/types/trainingApiWorkouts/core/bodySerializer.gen.d.ts +26 -0
  156. package/dist/component/garmin/types/trainingApiWorkouts/core/bodySerializer.gen.d.ts.map +1 -0
  157. package/dist/component/garmin/types/trainingApiWorkouts/core/bodySerializer.gen.js +58 -0
  158. package/dist/component/garmin/types/trainingApiWorkouts/core/bodySerializer.gen.js.map +1 -0
  159. package/dist/component/garmin/types/trainingApiWorkouts/core/params.gen.d.ts +44 -0
  160. package/dist/component/garmin/types/trainingApiWorkouts/core/params.gen.d.ts.map +1 -0
  161. package/dist/component/garmin/types/trainingApiWorkouts/core/params.gen.js +101 -0
  162. package/dist/component/garmin/types/trainingApiWorkouts/core/params.gen.js.map +1 -0
  163. package/dist/component/garmin/types/trainingApiWorkouts/core/pathSerializer.gen.d.ts +34 -0
  164. package/dist/component/garmin/types/trainingApiWorkouts/core/pathSerializer.gen.d.ts.map +1 -0
  165. package/dist/component/garmin/types/trainingApiWorkouts/core/pathSerializer.gen.js +107 -0
  166. package/dist/component/garmin/types/trainingApiWorkouts/core/pathSerializer.gen.js.map +1 -0
  167. package/dist/component/garmin/types/trainingApiWorkouts/core/queryKeySerializer.gen.d.ts +19 -0
  168. package/dist/component/garmin/types/trainingApiWorkouts/core/queryKeySerializer.gen.d.ts.map +1 -0
  169. package/dist/component/garmin/types/trainingApiWorkouts/core/queryKeySerializer.gen.js +93 -0
  170. package/dist/component/garmin/types/trainingApiWorkouts/core/queryKeySerializer.gen.js.map +1 -0
  171. package/dist/component/garmin/types/trainingApiWorkouts/core/serverSentEvents.gen.d.ts +72 -0
  172. package/dist/component/garmin/types/trainingApiWorkouts/core/serverSentEvents.gen.d.ts.map +1 -0
  173. package/dist/component/garmin/types/trainingApiWorkouts/core/serverSentEvents.gen.js +134 -0
  174. package/dist/component/garmin/types/trainingApiWorkouts/core/serverSentEvents.gen.js.map +1 -0
  175. package/dist/component/garmin/types/trainingApiWorkouts/core/types.gen.d.ts +79 -0
  176. package/dist/component/garmin/types/trainingApiWorkouts/core/types.gen.d.ts.map +1 -0
  177. package/dist/component/garmin/types/trainingApiWorkouts/core/types.gen.js +3 -0
  178. package/dist/component/garmin/types/trainingApiWorkouts/core/types.gen.js.map +1 -0
  179. package/dist/component/garmin/types/trainingApiWorkouts/core/utils.gen.d.ts +20 -0
  180. package/dist/component/garmin/types/trainingApiWorkouts/core/utils.gen.d.ts.map +1 -0
  181. package/dist/component/garmin/types/trainingApiWorkouts/core/utils.gen.js +88 -0
  182. package/dist/component/garmin/types/trainingApiWorkouts/core/utils.gen.js.map +1 -0
  183. package/dist/component/garmin/types/trainingApiWorkouts/index.d.ts +3 -0
  184. package/dist/component/garmin/types/trainingApiWorkouts/index.d.ts.map +1 -0
  185. package/dist/component/garmin/types/trainingApiWorkouts/index.js +3 -0
  186. package/dist/component/garmin/types/trainingApiWorkouts/index.js.map +1 -0
  187. package/dist/component/garmin/types/trainingApiWorkouts/sdk.gen.d.ts +68 -0
  188. package/dist/component/garmin/types/trainingApiWorkouts/sdk.gen.d.ts.map +1 -0
  189. package/dist/component/garmin/types/trainingApiWorkouts/sdk.gen.js +97 -0
  190. package/dist/component/garmin/types/trainingApiWorkouts/sdk.gen.js.map +1 -0
  191. package/dist/component/garmin/types/trainingApiWorkouts/types.gen.d.ts +330 -0
  192. package/dist/component/garmin/types/trainingApiWorkouts/types.gen.d.ts.map +1 -0
  193. package/dist/component/garmin/types/trainingApiWorkouts/types.gen.js +3 -0
  194. package/dist/component/garmin/types/trainingApiWorkouts/types.gen.js.map +1 -0
  195. package/dist/component/garmin/types/trainingApiWorkouts/zod.gen.d.ts +2463 -0
  196. package/dist/component/garmin/types/trainingApiWorkouts/zod.gen.d.ts.map +1 -0
  197. package/dist/component/garmin/types/trainingApiWorkouts/zod.gen.js +388 -0
  198. package/dist/component/garmin/types/trainingApiWorkouts/zod.gen.js.map +1 -0
  199. package/dist/component/garmin/types/wellnessApi/client/client.gen.d.ts +3 -0
  200. package/dist/component/garmin/types/wellnessApi/client/client.gen.d.ts.map +1 -0
  201. package/dist/component/garmin/types/wellnessApi/client/client.gen.js +236 -0
  202. package/dist/component/garmin/types/wellnessApi/client/client.gen.js.map +1 -0
  203. package/dist/component/garmin/types/wellnessApi/client/index.d.ts +9 -0
  204. package/dist/component/garmin/types/wellnessApi/client/index.d.ts.map +1 -0
  205. package/dist/component/garmin/types/wellnessApi/client/index.js +7 -0
  206. package/dist/component/garmin/types/wellnessApi/client/index.js.map +1 -0
  207. package/dist/component/garmin/types/wellnessApi/client/types.gen.d.ts +118 -0
  208. package/dist/component/garmin/types/wellnessApi/client/types.gen.d.ts.map +1 -0
  209. package/dist/component/garmin/types/wellnessApi/client/types.gen.js +3 -0
  210. package/dist/component/garmin/types/wellnessApi/client/types.gen.js.map +1 -0
  211. package/dist/component/garmin/types/wellnessApi/client/utils.gen.d.ts +34 -0
  212. package/dist/component/garmin/types/wellnessApi/client/utils.gen.d.ts.map +1 -0
  213. package/dist/component/garmin/types/wellnessApi/client/utils.gen.js +229 -0
  214. package/dist/component/garmin/types/wellnessApi/client/utils.gen.js.map +1 -0
  215. package/dist/component/garmin/types/wellnessApi/client.gen.d.ts +13 -0
  216. package/dist/component/garmin/types/wellnessApi/client.gen.d.ts.map +1 -0
  217. package/dist/component/garmin/types/wellnessApi/client.gen.js +4 -0
  218. package/dist/component/garmin/types/wellnessApi/client.gen.js.map +1 -0
  219. package/dist/component/garmin/types/wellnessApi/core/auth.gen.d.ts +19 -0
  220. package/dist/component/garmin/types/wellnessApi/core/auth.gen.d.ts.map +1 -0
  221. package/dist/component/garmin/types/wellnessApi/core/auth.gen.js +15 -0
  222. package/dist/component/garmin/types/wellnessApi/core/auth.gen.js.map +1 -0
  223. package/dist/component/garmin/types/wellnessApi/core/bodySerializer.gen.d.ts +26 -0
  224. package/dist/component/garmin/types/wellnessApi/core/bodySerializer.gen.d.ts.map +1 -0
  225. package/dist/component/garmin/types/wellnessApi/core/bodySerializer.gen.js +58 -0
  226. package/dist/component/garmin/types/wellnessApi/core/bodySerializer.gen.js.map +1 -0
  227. package/dist/component/garmin/types/wellnessApi/core/params.gen.d.ts +44 -0
  228. package/dist/component/garmin/types/wellnessApi/core/params.gen.d.ts.map +1 -0
  229. package/dist/component/garmin/types/wellnessApi/core/params.gen.js +101 -0
  230. package/dist/component/garmin/types/wellnessApi/core/params.gen.js.map +1 -0
  231. package/dist/component/garmin/types/wellnessApi/core/pathSerializer.gen.d.ts +34 -0
  232. package/dist/component/garmin/types/wellnessApi/core/pathSerializer.gen.d.ts.map +1 -0
  233. package/dist/component/garmin/types/wellnessApi/core/pathSerializer.gen.js +107 -0
  234. package/dist/component/garmin/types/wellnessApi/core/pathSerializer.gen.js.map +1 -0
  235. package/dist/component/garmin/types/wellnessApi/core/queryKeySerializer.gen.d.ts +19 -0
  236. package/dist/component/garmin/types/wellnessApi/core/queryKeySerializer.gen.d.ts.map +1 -0
  237. package/dist/component/garmin/types/wellnessApi/core/queryKeySerializer.gen.js +93 -0
  238. package/dist/component/garmin/types/wellnessApi/core/queryKeySerializer.gen.js.map +1 -0
  239. package/dist/component/garmin/types/wellnessApi/core/serverSentEvents.gen.d.ts +72 -0
  240. package/dist/component/garmin/types/wellnessApi/core/serverSentEvents.gen.d.ts.map +1 -0
  241. package/dist/component/garmin/types/wellnessApi/core/serverSentEvents.gen.js +134 -0
  242. package/dist/component/garmin/types/wellnessApi/core/serverSentEvents.gen.js.map +1 -0
  243. package/dist/component/garmin/types/wellnessApi/core/types.gen.d.ts +79 -0
  244. package/dist/component/garmin/types/wellnessApi/core/types.gen.d.ts.map +1 -0
  245. package/dist/component/garmin/types/wellnessApi/core/types.gen.js +3 -0
  246. package/dist/component/garmin/types/wellnessApi/core/types.gen.js.map +1 -0
  247. package/dist/component/garmin/types/wellnessApi/core/utils.gen.d.ts +20 -0
  248. package/dist/component/garmin/types/wellnessApi/core/utils.gen.d.ts.map +1 -0
  249. package/dist/component/garmin/types/wellnessApi/core/utils.gen.js +88 -0
  250. package/dist/component/garmin/types/wellnessApi/core/utils.gen.js.map +1 -0
  251. package/dist/component/garmin/types/wellnessApi/index.d.ts +3 -0
  252. package/dist/component/garmin/types/wellnessApi/index.d.ts.map +1 -0
  253. package/dist/component/garmin/types/wellnessApi/index.js +3 -0
  254. package/dist/component/garmin/types/wellnessApi/index.js.map +1 -0
  255. package/dist/component/garmin/types/wellnessApi/sdk.gen.d.ts +166 -0
  256. package/dist/component/garmin/types/wellnessApi/sdk.gen.d.ts.map +1 -0
  257. package/dist/component/garmin/types/wellnessApi/sdk.gen.js +153 -0
  258. package/dist/component/garmin/types/wellnessApi/sdk.gen.js.map +1 -0
  259. package/dist/component/garmin/types/wellnessApi/types.gen.d.ts +2733 -0
  260. package/dist/component/garmin/types/wellnessApi/types.gen.d.ts.map +1 -0
  261. package/dist/component/garmin/types/wellnessApi/types.gen.js +3 -0
  262. package/dist/component/garmin/types/wellnessApi/types.gen.js.map +1 -0
  263. package/dist/component/garmin/types/wellnessApi/zod.gen.d.ts.map +1 -0
  264. package/dist/component/garmin/types/wellnessApi/zod.gen.js.map +1 -0
  265. package/dist/component/garmin/utils.d.ts +16 -0
  266. package/dist/component/garmin/utils.d.ts.map +1 -0
  267. package/dist/component/garmin/utils.js +17 -0
  268. package/dist/component/garmin/utils.js.map +1 -0
  269. package/dist/component/garmin/webhooks.d.ts +8 -21
  270. package/dist/component/garmin/webhooks.d.ts.map +1 -1
  271. package/dist/component/garmin/webhooks.js +71 -306
  272. package/dist/component/garmin/webhooks.js.map +1 -1
  273. package/dist/component/validators/plannedWorkout.d.ts +6 -0
  274. package/dist/component/validators/plannedWorkout.d.ts.map +1 -1
  275. package/dist/component/validators/plannedWorkout.js.map +1 -1
  276. package/package.json +1 -1
  277. package/src/component/_generated/api.ts +2 -0
  278. package/dist/component/garmin/types/garmin.d.ts +0 -21
  279. package/dist/component/garmin/types/garmin.d.ts.map +0 -1
  280. package/dist/component/garmin/types/garmin.js +0 -6
  281. package/dist/component/garmin/types/garmin.js.map +0 -1
  282. package/dist/component/garmin/types/zod/zod.gen.d.ts.map +0 -1
  283. package/dist/component/garmin/types/zod/zod.gen.js.map +0 -1
  284. package/dist/garmin/auth.d.ts.map +0 -1
  285. package/dist/garmin/auth.js.map +0 -1
  286. package/dist/garmin/bloodPressure.d.ts +0 -28
  287. package/dist/garmin/bloodPressure.d.ts.map +0 -1
  288. package/dist/garmin/bloodPressure.js +0 -34
  289. package/dist/garmin/bloodPressure.js.map +0 -1
  290. package/dist/garmin/body.d.ts +0 -26
  291. package/dist/garmin/body.d.ts.map +0 -1
  292. package/dist/garmin/body.js +0 -44
  293. package/dist/garmin/body.js.map +0 -1
  294. package/dist/garmin/client.d.ts +0 -246
  295. package/dist/garmin/client.d.ts.map +0 -1
  296. package/dist/garmin/client.js +0 -566
  297. package/dist/garmin/client.js.map +0 -1
  298. package/dist/garmin/daily.d.ts +0 -74
  299. package/dist/garmin/daily.d.ts.map +0 -1
  300. package/dist/garmin/daily.js +0 -143
  301. package/dist/garmin/daily.js.map +0 -1
  302. package/dist/garmin/hrv.d.ts +0 -30
  303. package/dist/garmin/hrv.d.ts.map +0 -1
  304. package/dist/garmin/hrv.js +0 -45
  305. package/dist/garmin/hrv.js.map +0 -1
  306. package/dist/garmin/index.d.ts +0 -32
  307. package/dist/garmin/index.d.ts.map +0 -1
  308. package/dist/garmin/index.js +0 -27
  309. package/dist/garmin/index.js.map +0 -1
  310. package/dist/garmin/maps/activity-type.d.ts.map +0 -1
  311. package/dist/garmin/maps/activity-type.js.map +0 -1
  312. package/dist/garmin/maps/sleep-level.d.ts.map +0 -1
  313. package/dist/garmin/maps/sleep-level.js.map +0 -1
  314. package/dist/garmin/menstruation.d.ts +0 -25
  315. package/dist/garmin/menstruation.d.ts.map +0 -1
  316. package/dist/garmin/menstruation.js +0 -38
  317. package/dist/garmin/menstruation.js.map +0 -1
  318. package/dist/garmin/plannedWorkout.d.ts.map +0 -1
  319. package/dist/garmin/plannedWorkout.js.map +0 -1
  320. package/dist/garmin/pulseOx.d.ts +0 -24
  321. package/dist/garmin/pulseOx.d.ts.map +0 -1
  322. package/dist/garmin/pulseOx.js +0 -33
  323. package/dist/garmin/pulseOx.js.map +0 -1
  324. package/dist/garmin/respiration.d.ts +0 -29
  325. package/dist/garmin/respiration.d.ts.map +0 -1
  326. package/dist/garmin/respiration.js +0 -42
  327. package/dist/garmin/respiration.js.map +0 -1
  328. package/dist/garmin/skinTemp.d.ts +0 -27
  329. package/dist/garmin/skinTemp.d.ts.map +0 -1
  330. package/dist/garmin/skinTemp.js +0 -35
  331. package/dist/garmin/skinTemp.js.map +0 -1
  332. package/dist/garmin/sleep.d.ts +0 -62
  333. package/dist/garmin/sleep.d.ts.map +0 -1
  334. package/dist/garmin/sleep.js +0 -131
  335. package/dist/garmin/sleep.js.map +0 -1
  336. package/dist/garmin/stressDetails.d.ts +0 -30
  337. package/dist/garmin/stressDetails.d.ts.map +0 -1
  338. package/dist/garmin/stressDetails.js +0 -49
  339. package/dist/garmin/stressDetails.js.map +0 -1
  340. package/dist/garmin/sync.d.ts +0 -53
  341. package/dist/garmin/sync.d.ts.map +0 -1
  342. package/dist/garmin/sync.js +0 -458
  343. package/dist/garmin/sync.js.map +0 -1
  344. package/dist/garmin/types.d.ts +0 -175
  345. package/dist/garmin/types.d.ts.map +0 -1
  346. package/dist/garmin/types.js +0 -10
  347. package/dist/garmin/types.js.map +0 -1
  348. package/dist/garmin/userMetrics.d.ts +0 -23
  349. package/dist/garmin/userMetrics.d.ts.map +0 -1
  350. package/dist/garmin/userMetrics.js +0 -41
  351. package/dist/garmin/userMetrics.js.map +0 -1
  352. /package/dist/{garmin → component/garmin}/auth.js +0 -0
  353. /package/dist/component/garmin/types/{zod → wellnessApi}/zod.gen.d.ts +0 -0
  354. /package/dist/component/garmin/types/{zod → wellnessApi}/zod.gen.js +0 -0
@@ -1,566 +0,0 @@
1
- // ─── Garmin Health API Client ────────────────────────────────────────────────
2
- // Uses openapi-fetch for type-safe Wellness API calls and manual fetch for
3
- // Training API endpoints that are not covered by the OpenAPI spec.
4
- import createClient from "openapi-fetch";
5
- const DEFAULT_BASE_URL = "https://apis.garmin.com";
6
- /**
7
- * A client for the Garmin Health API.
8
- *
9
- * Wellness API endpoints use openapi-fetch for type safety. Training API
10
- * endpoints use manual fetch since they are not part of the Wellness API spec.
11
- *
12
- * All requests are authenticated with a Bearer token. Time-range parameters
13
- * use Unix epoch seconds for `uploadStartTimeInSeconds` and
14
- * `uploadEndTimeInSeconds`.
15
- *
16
- * @example
17
- * ```ts
18
- * const client = new GarminClient({
19
- * accessToken: "user_access_token",
20
- * });
21
- *
22
- * const dailies = await client.getDailies({
23
- * uploadStartTimeInSeconds: startEpoch,
24
- * uploadEndTimeInSeconds: endEpoch,
25
- * });
26
- * ```
27
- */
28
- export class GarminClient {
29
- accessToken;
30
- baseUrl;
31
- wellness;
32
- constructor(opts) {
33
- this.accessToken = opts.accessToken;
34
- this.baseUrl = (opts.baseUrl ?? DEFAULT_BASE_URL).replace(/\/+$/, "");
35
- const authMiddleware = {
36
- async onRequest({ request }) {
37
- request.headers.set("Authorization", `Bearer ${opts.accessToken}`);
38
- request.headers.set("Accept", "application/json");
39
- return request;
40
- },
41
- };
42
- this.wellness = createClient({
43
- baseUrl: `${this.baseUrl}/wellness-api`,
44
- });
45
- this.wellness.use(authMiddleware);
46
- }
47
- // ─── User Identity ──────────────────────────────────────────────────────
48
- /**
49
- * Resolve the Garmin user ID for the authenticated user.
50
- *
51
- * Garmin API: `GET /wellness-api/rest/user/id`
52
- */
53
- async getUserId() {
54
- const { data, error, response } = await this.wellness.GET("/rest/user/id");
55
- if (error) {
56
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, JSON.stringify(error));
57
- }
58
- return data?.userId ?? null;
59
- }
60
- // ─── User Permissions ─────────────────────────────────────────────────
61
- /**
62
- * Check which permissions the user has granted.
63
- *
64
- * Garmin API: `GET /wellness-api/rest/user/permissions`
65
- */
66
- async getUserPermissions() {
67
- const { data, error, response } = await this.wellness.GET("/rest/user/permissions");
68
- if (error) {
69
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, JSON.stringify(error));
70
- }
71
- return data?.permissions ?? [];
72
- }
73
- // ─── Daily Summaries ──────────────────────────────────────────────────
74
- /**
75
- * Get daily wellness summaries.
76
- *
77
- * Garmin API: `GET /wellness-api/rest/dailies`
78
- */
79
- async getDailies(params) {
80
- const { data, error, response } = await this.wellness.GET("/rest/dailies", {
81
- params: { query: timeRangeQuery(params, this.accessToken) },
82
- });
83
- if (error) {
84
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, JSON.stringify(error));
85
- }
86
- console.log("[getDailies] raw response:", JSON.stringify(data?.[0], null, 2));
87
- return (data ?? []);
88
- }
89
- // ─── Activities ───────────────────────────────────────────────────────
90
- /**
91
- * Get activity summaries.
92
- *
93
- * Garmin API: `GET /wellness-api/rest/activities`
94
- */
95
- async getActivities(params) {
96
- const { data, error, response } = await this.wellness.GET("/rest/activities", {
97
- params: { query: timeRangeQuery(params, this.accessToken) },
98
- });
99
- if (error) {
100
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, JSON.stringify(error));
101
- }
102
- return (data ?? []);
103
- }
104
- // ─── Activity Details ─────────────────────────────────────────────────
105
- /**
106
- * Get detailed activity summaries including GPS, heart rate, and sensor data.
107
- *
108
- * Garmin API: `GET /wellness-api/rest/activityDetails`
109
- */
110
- async getActivityDetails(params) {
111
- const { data, error, response } = await this.wellness.GET("/rest/activityDetails", {
112
- params: { query: timeRangeQuery(params, this.accessToken) },
113
- });
114
- if (error) {
115
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, JSON.stringify(error));
116
- }
117
- return (data ?? []);
118
- }
119
- // ─── Activity File ────────────────────────────────────────────────────
120
- /**
121
- * Download a raw activity file (FIT, TCX, or GPX).
122
- *
123
- * Garmin API: `GET /wellness-api/rest/activityFile`
124
- *
125
- * @returns The raw file as an ArrayBuffer.
126
- */
127
- async getActivityFile(id) {
128
- const url = `${this.baseUrl}/wellness-api/rest/activityFile?id=${encodeURIComponent(id)}`;
129
- const response = await fetch(url, {
130
- method: "GET",
131
- headers: {
132
- Authorization: `Bearer ${this.accessToken}`,
133
- },
134
- });
135
- if (!response.ok) {
136
- const body = await response.text().catch(() => "");
137
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, body);
138
- }
139
- return response.arrayBuffer();
140
- }
141
- // ─── Sleep ────────────────────────────────────────────────────────────
142
- /**
143
- * Get sleep summaries.
144
- *
145
- * Garmin API: `GET /wellness-api/rest/sleeps`
146
- */
147
- async getSleeps(params) {
148
- const { data, error, response } = await this.wellness.GET("/rest/sleeps", {
149
- params: { query: timeRangeQuery(params, this.accessToken) },
150
- });
151
- if (error) {
152
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, JSON.stringify(error));
153
- }
154
- return (data ?? []);
155
- }
156
- // ─── Body Composition ─────────────────────────────────────────────────
157
- /**
158
- * Get body composition summaries.
159
- *
160
- * Garmin API: `GET /wellness-api/rest/bodyComps`
161
- */
162
- async getBodyCompositions(params) {
163
- const { data, error, response } = await this.wellness.GET("/rest/bodyComps", {
164
- params: { query: timeRangeQuery(params, this.accessToken) },
165
- });
166
- if (error) {
167
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, JSON.stringify(error));
168
- }
169
- return (data ?? []);
170
- }
171
- // ─── Menstrual Cycle ──────────────────────────────────────────────────
172
- /**
173
- * Get menstrual cycle tracking data.
174
- *
175
- * Garmin API: `GET /wellness-api/rest/mct`
176
- */
177
- async getMenstrualCycleData(params) {
178
- const { data, error, response } = await this.wellness.GET("/rest/mct", {
179
- params: { query: timeRangeQuery(params, this.accessToken) },
180
- });
181
- if (error) {
182
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, JSON.stringify(error));
183
- }
184
- return (data ?? []);
185
- }
186
- // ─── User Metrics ─────────────────────────────────────────────────────
187
- /**
188
- * Get user metrics (VO2 max, fitness age, etc.).
189
- *
190
- * Garmin API: `GET /wellness-api/rest/userMetrics`
191
- */
192
- async getUserMetrics(params) {
193
- const { data, error, response } = await this.wellness.GET("/rest/userMetrics", {
194
- params: { query: timeRangeQuery(params, this.accessToken) },
195
- });
196
- if (error) {
197
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, JSON.stringify(error));
198
- }
199
- return (data ?? []);
200
- }
201
- // ─── Stress Details ───────────────────────────────────────────────────
202
- /**
203
- * Get stress detail summaries.
204
- *
205
- * Garmin API: `GET /wellness-api/rest/stressDetails`
206
- */
207
- async getStressDetails(params) {
208
- const { data, error, response } = await this.wellness.GET("/rest/stressDetails", {
209
- params: { query: timeRangeQuery(params, this.accessToken) },
210
- });
211
- if (error) {
212
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, JSON.stringify(error));
213
- }
214
- return (data ?? []);
215
- }
216
- // ─── Skin Temperature ─────────────────────────────────────────────────
217
- /**
218
- * Get skin temperature summaries.
219
- *
220
- * Garmin API: `GET /wellness-api/rest/skinTemp`
221
- */
222
- async getSkinTemperature(params) {
223
- const { data, error, response } = await this.wellness.GET("/rest/skinTemp", {
224
- params: { query: timeRangeQuery(params, this.accessToken) },
225
- });
226
- if (error) {
227
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, JSON.stringify(error));
228
- }
229
- return (data ?? []);
230
- }
231
- // ─── Respiration ──────────────────────────────────────────────────────
232
- /**
233
- * Get respiration summaries.
234
- *
235
- * Garmin API: `GET /wellness-api/rest/respiration`
236
- */
237
- async getRespiration(params) {
238
- const { data, error, response } = await this.wellness.GET("/rest/respiration", {
239
- params: { query: timeRangeQuery(params, this.accessToken) },
240
- });
241
- if (error) {
242
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, JSON.stringify(error));
243
- }
244
- return (data ?? []);
245
- }
246
- // ─── Pulse Ox ─────────────────────────────────────────────────────────
247
- /**
248
- * Get pulse oximetry (SpO2) summaries.
249
- *
250
- * Garmin API: `GET /wellness-api/rest/pulseOx`
251
- */
252
- async getPulseOx(params) {
253
- const { data, error, response } = await this.wellness.GET("/rest/pulseOx", {
254
- params: { query: timeRangeQuery(params, this.accessToken) },
255
- });
256
- if (error) {
257
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, JSON.stringify(error));
258
- }
259
- return (data ?? []);
260
- }
261
- // ─── Move IQ ──────────────────────────────────────────────────────────
262
- /**
263
- * Get Move IQ auto-detected activity events.
264
- *
265
- * Garmin API: `GET /wellness-api/rest/moveiq`
266
- */
267
- async getMoveIQ(params) {
268
- const { data, error, response } = await this.wellness.GET("/rest/moveiq", {
269
- params: { query: timeRangeQuery(params, this.accessToken) },
270
- });
271
- if (error) {
272
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, JSON.stringify(error));
273
- }
274
- return (data ?? []);
275
- }
276
- // ─── HRV ──────────────────────────────────────────────────────────────
277
- /**
278
- * Get heart rate variability (HRV) summaries.
279
- *
280
- * Garmin API: `GET /wellness-api/rest/hrv`
281
- */
282
- async getHRV(params) {
283
- const { data, error, response } = await this.wellness.GET("/rest/hrv", {
284
- params: { query: timeRangeQuery(params, this.accessToken) },
285
- });
286
- if (error) {
287
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, JSON.stringify(error));
288
- }
289
- return (data ?? []);
290
- }
291
- // ─── Health Snapshot ──────────────────────────────────────────────────
292
- /**
293
- * Get health snapshot summaries.
294
- *
295
- * Garmin API: `GET /wellness-api/rest/healthSnapshot`
296
- */
297
- async getHealthSnapshot(params) {
298
- const { data, error, response } = await this.wellness.GET("/rest/healthSnapshot", {
299
- params: { query: timeRangeQuery(params, this.accessToken) },
300
- });
301
- if (error) {
302
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, JSON.stringify(error));
303
- }
304
- return (data ?? []);
305
- }
306
- // ─── Epochs ───────────────────────────────────────────────────────────
307
- /**
308
- * Get epoch (15-minute interval) summaries.
309
- *
310
- * Garmin API: `GET /wellness-api/rest/epochs`
311
- */
312
- async getEpochs(params) {
313
- const { data, error, response } = await this.wellness.GET("/rest/epochs", {
314
- params: { query: timeRangeQuery(params, this.accessToken) },
315
- });
316
- if (error) {
317
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, JSON.stringify(error));
318
- }
319
- return (data ?? []);
320
- }
321
- // ─── Blood Pressure ───────────────────────────────────────────────────
322
- /**
323
- * Get blood pressure summaries.
324
- *
325
- * Garmin API: `GET /wellness-api/rest/bloodPressures`
326
- */
327
- async getBloodPressures(params) {
328
- const { data, error, response } = await this.wellness.GET("/rest/bloodPressures", {
329
- params: { query: timeRangeQuery(params, this.accessToken) },
330
- });
331
- if (error) {
332
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, JSON.stringify(error));
333
- }
334
- return (data ?? []);
335
- }
336
- // ─── Manually Updated Activities ──────────────────────────────────────
337
- /**
338
- * Get manually created or edited activities.
339
- *
340
- * Garmin API: `GET /wellness-api/rest/manuallyUpdatedActivities`
341
- */
342
- async getManuallyUpdatedActivities(params) {
343
- const { data, error, response } = await this.wellness.GET("/rest/manuallyUpdatedActivities", {
344
- params: { query: timeRangeQuery(params, this.accessToken) },
345
- });
346
- if (error) {
347
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, JSON.stringify(error));
348
- }
349
- return (data ?? []);
350
- }
351
- // ─── Solar Intensity ──────────────────────────────────────────────────
352
- /**
353
- * Get solar intensity summaries.
354
- *
355
- * Garmin API: `GET /wellness-api/rest/solarIntensity`
356
- */
357
- async getSolarIntensity(params) {
358
- const { data, error, response } = await this.wellness.GET("/rest/solarIntensity", {
359
- params: { query: timeRangeQuery(params, this.accessToken) },
360
- });
361
- if (error) {
362
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, JSON.stringify(error));
363
- }
364
- return (data ?? []);
365
- }
366
- // ─── Backfill ─────────────────────────────────────────────────────────
367
- /**
368
- * Request historical data backfill from Garmin.
369
- *
370
- * Garmin processes backfill requests asynchronously and delivers data
371
- * via the configured webhook endpoint. Maximum range: 90 days per request.
372
- *
373
- * Uses manual fetch because the spec defines individual backfill paths
374
- * (e.g. `/rest/backfill/dailies`) but this method accepts a dynamic
375
- * summaryType string.
376
- *
377
- * @param summaryType - The data type to backfill (e.g., "dailies", "activities", "sleeps", "bodyComps")
378
- * @param params - Time range for the backfill
379
- */
380
- async requestBackfill(summaryType, params) {
381
- const query = timeRangeQuery(params, this.accessToken);
382
- const qs = new URLSearchParams(query).toString();
383
- const url = `${this.baseUrl}/wellness-api/rest/backfill/${summaryType}?${qs}`;
384
- const response = await fetch(url, {
385
- method: "GET",
386
- headers: {
387
- Authorization: `Bearer ${this.accessToken}`,
388
- Accept: "application/json",
389
- },
390
- });
391
- if (!response.ok) {
392
- const body = await response.text().catch(() => "");
393
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, body);
394
- }
395
- }
396
- // ─── User Deregistration ──────────────────────────────────────────────
397
- /**
398
- * Delete the user's registration with Garmin.
399
- *
400
- * Must be called when the user disconnects or deletes their account
401
- * to comply with Garmin's API requirements.
402
- */
403
- async deleteUserRegistration() {
404
- const { error, response } = await this.wellness.DELETE("/rest/user/registration");
405
- if (error) {
406
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, JSON.stringify(error));
407
- }
408
- }
409
- // ─── Training API V2 ─────────────────────────────────────────────────
410
- // These endpoints are NOT part of the Wellness API spec, so they use
411
- // manual fetch.
412
- /**
413
- * Create a workout in Garmin Connect.
414
- *
415
- * Garmin API: `POST /workoutportal/workout/v2`
416
- * Note: uses a different base path than other Training API endpoints.
417
- */
418
- async createWorkout(workout) {
419
- return this.post("/workoutportal/workout/v2", workout);
420
- }
421
- /**
422
- * Retrieve a workout by ID.
423
- *
424
- * Garmin API: `GET /training-api/workout/v2/{workoutId}`
425
- */
426
- async getWorkout(workoutId) {
427
- return this.get(`/training-api/workout/v2/${workoutId}`);
428
- }
429
- /**
430
- * Update a workout by ID.
431
- *
432
- * Garmin API: `PUT /training-api/workout/v2/{workoutId}`
433
- */
434
- async updateWorkout(workoutId, workout) {
435
- return this.put(`/training-api/workout/v2/${workoutId}`, workout);
436
- }
437
- /**
438
- * Delete a workout by ID.
439
- *
440
- * Garmin API: `DELETE /training-api/workout/v2/{workoutId}`
441
- */
442
- async deleteWorkout(workoutId) {
443
- await this.del(`/training-api/workout/v2/${workoutId}`);
444
- }
445
- /**
446
- * Schedule a workout to a specific date on the user's calendar.
447
- *
448
- * Garmin API: `POST /training-api/schedule/`
449
- */
450
- async createSchedule(workoutId, date) {
451
- return this.post("/training-api/schedule/", {
452
- workoutId,
453
- date,
454
- });
455
- }
456
- /**
457
- * Retrieve workout schedules for a date range.
458
- *
459
- * Garmin API: `GET /training-api/schedule?startDate=...&endDate=...`
460
- */
461
- async getSchedulesByDate(startDate, endDate) {
462
- return this.get("/training-api/schedule", {
463
- startDate,
464
- endDate,
465
- });
466
- }
467
- /**
468
- * Delete a workout schedule by ID.
469
- *
470
- * Garmin API: `DELETE /training-api/schedule/{scheduleId}`
471
- */
472
- async deleteSchedule(scheduleId) {
473
- await this.del(`/training-api/schedule/${scheduleId}`);
474
- }
475
- // ─── Internal (Training API helpers) ──────────────────────────────────
476
- async get(path, queryParams) {
477
- const fullUrl = `${this.baseUrl}${path}`;
478
- const qs = queryParams
479
- ? `?${new URLSearchParams(queryParams).toString()}`
480
- : "";
481
- const requestUrl = `${fullUrl}${qs}`;
482
- const response = await fetch(requestUrl, {
483
- method: "GET",
484
- headers: {
485
- Authorization: `Bearer ${this.accessToken}`,
486
- Accept: "application/json",
487
- },
488
- });
489
- if (!response.ok) {
490
- const body = await response.text().catch(() => "");
491
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, body);
492
- }
493
- return (await response.json());
494
- }
495
- async post(path, body) {
496
- const url = `${this.baseUrl}${path}`;
497
- const response = await fetch(url, {
498
- method: "POST",
499
- headers: {
500
- Authorization: `Bearer ${this.accessToken}`,
501
- "Content-Type": "application/json",
502
- Accept: "application/json",
503
- },
504
- body: JSON.stringify(body),
505
- });
506
- if (!response.ok) {
507
- const text = await response.text().catch(() => "");
508
- const isTrainingApi = path.includes("/workoutportal/") || path.includes("/training-api/");
509
- const hint = isTrainingApi && response.status === 401
510
- ? " — Ensure the Garmin app is registered for the Training API program " +
511
- "and the user has WORKOUT_IMPORT permission."
512
- : "";
513
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}${hint}`, response.status, text);
514
- }
515
- return (await response.json());
516
- }
517
- async put(path, body) {
518
- const url = `${this.baseUrl}${path}`;
519
- const response = await fetch(url, {
520
- method: "PUT",
521
- headers: {
522
- Authorization: `Bearer ${this.accessToken}`,
523
- "Content-Type": "application/json",
524
- Accept: "application/json",
525
- },
526
- body: JSON.stringify(body),
527
- });
528
- if (!response.ok) {
529
- const text = await response.text().catch(() => "");
530
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, text);
531
- }
532
- return (await response.json());
533
- }
534
- async del(path) {
535
- const url = `${this.baseUrl}${path}`;
536
- const response = await fetch(url, {
537
- method: "DELETE",
538
- headers: {
539
- Authorization: `Bearer ${this.accessToken}`,
540
- },
541
- });
542
- if (!response.ok) {
543
- const text = await response.text().catch(() => "");
544
- throw new GarminApiError(`Garmin API error: ${response.status} ${response.statusText}`, response.status, text);
545
- }
546
- }
547
- }
548
- function timeRangeQuery(params, token) {
549
- return {
550
- uploadStartTimeInSeconds: String(params.uploadStartTimeInSeconds),
551
- uploadEndTimeInSeconds: String(params.uploadEndTimeInSeconds),
552
- ...(token ? { token } : {}),
553
- };
554
- }
555
- // ─── Error ────────────────────────────────────────────────────────────────────
556
- export class GarminApiError extends Error {
557
- status;
558
- body;
559
- constructor(message, status, body) {
560
- super(`${message} — ${body}`);
561
- this.status = status;
562
- this.body = body;
563
- this.name = "GarminApiError";
564
- }
565
- }
566
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/garmin/client.ts"],"names":[],"mappings":"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"}
@@ -1,74 +0,0 @@
1
- import type { GarminDailySummary } from "./types.js";
2
- export type DailyData = ReturnType<typeof transformDaily>;
3
- /**
4
- * Transform a Garmin daily summary into a Soma Daily document shape.
5
- *
6
- * @param daily - The Garmin daily summary from the Health API
7
- * @returns Soma Daily fields (without connectionId/userId)
8
- */
9
- export declare function transformDaily(daily: GarminDailySummary): {
10
- metadata: {
11
- start_time: string;
12
- end_time: string;
13
- upload_type: number;
14
- };
15
- active_durations_data: {
16
- activity_seconds: number | undefined;
17
- moderate_intensity_seconds: number | undefined;
18
- vigorous_intensity_seconds: number | undefined;
19
- } | undefined;
20
- calories_data: {
21
- net_activity_calories: number | undefined;
22
- BMR_calories: number | undefined;
23
- total_burned_calories: number | undefined;
24
- } | undefined;
25
- distance_data: {
26
- distance_meters: number | undefined;
27
- steps: number | undefined;
28
- floors_climbed: number | undefined;
29
- } | undefined;
30
- heart_rate_data: {
31
- summary: {
32
- avg_hr_bpm: number | undefined;
33
- max_hr_bpm: number | undefined;
34
- min_hr_bpm: number | undefined;
35
- resting_hr_bpm: number | undefined;
36
- } | undefined;
37
- detailed: {
38
- hr_samples: ({
39
- timestamp: string;
40
- } & {
41
- bpm: number;
42
- })[];
43
- } | undefined;
44
- } | undefined;
45
- oxygen_data: {
46
- avg_saturation_percentage: number | undefined;
47
- saturation_samples: ({
48
- timestamp: string;
49
- } & {
50
- percentage: number;
51
- })[] | undefined;
52
- } | undefined;
53
- stress_data: {
54
- avg_stress_level: number | undefined;
55
- max_stress_level: number | undefined;
56
- stress_duration_seconds: number | undefined;
57
- rest_stress_duration_seconds: number | undefined;
58
- activity_stress_duration_seconds: number | undefined;
59
- low_stress_duration_seconds: number | undefined;
60
- medium_stress_duration_seconds: number | undefined;
61
- high_stress_duration_seconds: number | undefined;
62
- samples: ({
63
- timestamp: string;
64
- } & {
65
- level: number;
66
- })[] | undefined;
67
- body_battery_samples: ({
68
- timestamp: string;
69
- } & {
70
- level: number;
71
- })[] | undefined;
72
- } | undefined;
73
- };
74
- //# sourceMappingURL=daily.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"daily.d.ts","sourceRoot":"","sources":["../../src/garmin/daily.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAMrD,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAE1D;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BA8LlC,MAAM;;;;;;;;;uBAAN,MAAM;;;;;;;;;;;;;;;uBAAN,MAAM;;;;;uBAAN,MAAM;;;;;EAvK3B"}