@nativesquare/soma 0.7.3 → 0.9.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 (390) hide show
  1. package/dist/client/index.d.ts +17 -55
  2. package/dist/client/index.d.ts.map +1 -1
  3. package/dist/client/index.js +63 -13
  4. package/dist/client/index.js.map +1 -1
  5. package/dist/component/_generated/api.d.ts +80 -4
  6. package/dist/component/_generated/api.d.ts.map +1 -1
  7. package/dist/component/_generated/api.js.map +1 -1
  8. package/dist/component/_generated/component.d.ts +153 -120
  9. package/dist/component/_generated/component.d.ts.map +1 -1
  10. package/dist/component/garmin/private.d.ts +475 -0
  11. package/dist/component/garmin/private.d.ts.map +1 -0
  12. package/dist/component/garmin/private.js +1614 -0
  13. package/dist/component/garmin/private.js.map +1 -0
  14. package/dist/component/{garmin.d.ts → garmin/public.d.ts} +25 -52
  15. package/dist/component/garmin/public.d.ts.map +1 -0
  16. package/dist/component/{garmin.js → garmin/public.js} +301 -215
  17. package/dist/component/garmin/public.js.map +1 -0
  18. package/dist/component/garmin/schemas/activity.d.ts +94 -0
  19. package/dist/component/garmin/schemas/activity.d.ts.map +1 -0
  20. package/dist/component/garmin/schemas/activity.js +27 -0
  21. package/dist/component/garmin/schemas/activity.js.map +1 -0
  22. package/dist/component/garmin/schemas/activityDetails.d.ts +146 -0
  23. package/dist/component/garmin/schemas/activityDetails.d.ts.map +1 -0
  24. package/dist/component/garmin/schemas/activityDetails.js +27 -0
  25. package/dist/component/garmin/schemas/activityDetails.js.map +1 -0
  26. package/dist/component/garmin/schemas/bloodPressure.d.ts +38 -0
  27. package/dist/component/garmin/schemas/bloodPressure.d.ts.map +1 -0
  28. package/dist/component/garmin/schemas/bloodPressure.js +27 -0
  29. package/dist/component/garmin/schemas/bloodPressure.js.map +1 -0
  30. package/dist/component/garmin/schemas/bodyCompositions.d.ts +42 -0
  31. package/dist/component/garmin/schemas/bodyCompositions.d.ts.map +1 -0
  32. package/dist/component/garmin/schemas/bodyCompositions.js +27 -0
  33. package/dist/component/garmin/schemas/bodyCompositions.js.map +1 -0
  34. package/dist/component/garmin/schemas/dailies.d.ts +98 -0
  35. package/dist/component/garmin/schemas/dailies.d.ts.map +1 -0
  36. package/dist/component/garmin/schemas/dailies.js +27 -0
  37. package/dist/component/garmin/schemas/dailies.js.map +1 -0
  38. package/dist/component/garmin/schemas/epochs.d.ts +54 -0
  39. package/dist/component/garmin/schemas/epochs.d.ts.map +1 -0
  40. package/dist/component/garmin/schemas/epochs.js +27 -0
  41. package/dist/component/garmin/schemas/epochs.js.map +1 -0
  42. package/dist/component/garmin/schemas/healthSnapshot.d.ts +48 -0
  43. package/dist/component/garmin/schemas/healthSnapshot.d.ts.map +1 -0
  44. package/dist/component/garmin/schemas/healthSnapshot.js +27 -0
  45. package/dist/component/garmin/schemas/healthSnapshot.js.map +1 -0
  46. package/dist/component/garmin/schemas/hrvSummary.d.ts +40 -0
  47. package/dist/component/garmin/schemas/hrvSummary.d.ts.map +1 -0
  48. package/dist/component/garmin/schemas/hrvSummary.js +27 -0
  49. package/dist/component/garmin/schemas/hrvSummary.js.map +1 -0
  50. package/dist/component/garmin/schemas/manuallyUpdatedActivities.d.ts +94 -0
  51. package/dist/component/garmin/schemas/manuallyUpdatedActivities.d.ts.map +1 -0
  52. package/dist/component/garmin/schemas/manuallyUpdatedActivities.js +27 -0
  53. package/dist/component/garmin/schemas/manuallyUpdatedActivities.js.map +1 -0
  54. package/dist/component/garmin/schemas/menstrualCycleTracking.d.ts +100 -0
  55. package/dist/component/garmin/schemas/menstrualCycleTracking.d.ts.map +1 -0
  56. package/dist/component/garmin/schemas/menstrualCycleTracking.js +28 -0
  57. package/dist/component/garmin/schemas/menstrualCycleTracking.js.map +1 -0
  58. package/dist/component/garmin/schemas/moveIQ.d.ts +40 -0
  59. package/dist/component/garmin/schemas/moveIQ.d.ts.map +1 -0
  60. package/dist/component/garmin/schemas/moveIQ.js +27 -0
  61. package/dist/component/garmin/schemas/moveIQ.js.map +1 -0
  62. package/dist/component/garmin/schemas/pulseOx.d.ts +38 -0
  63. package/dist/component/garmin/schemas/pulseOx.d.ts.map +1 -0
  64. package/dist/component/garmin/schemas/pulseOx.js +28 -0
  65. package/dist/component/garmin/schemas/pulseOx.js.map +1 -0
  66. package/dist/component/garmin/schemas/respiration.d.ts +34 -0
  67. package/dist/component/garmin/schemas/respiration.d.ts.map +1 -0
  68. package/dist/component/garmin/schemas/respiration.js +28 -0
  69. package/dist/component/garmin/schemas/respiration.js.map +1 -0
  70. package/dist/component/garmin/schemas/skinTemperature.d.ts +36 -0
  71. package/dist/component/garmin/schemas/skinTemperature.d.ts.map +1 -0
  72. package/dist/component/garmin/schemas/skinTemperature.js +28 -0
  73. package/dist/component/garmin/schemas/skinTemperature.js.map +1 -0
  74. package/dist/component/garmin/schemas/sleeps.d.ts +88 -0
  75. package/dist/component/garmin/schemas/sleeps.d.ts.map +1 -0
  76. package/dist/component/garmin/schemas/sleeps.js +27 -0
  77. package/dist/component/garmin/schemas/sleeps.js.map +1 -0
  78. package/dist/component/garmin/schemas/stress.d.ts +70 -0
  79. package/dist/component/garmin/schemas/stress.d.ts.map +1 -0
  80. package/dist/component/garmin/schemas/stress.js +28 -0
  81. package/dist/component/garmin/schemas/stress.js.map +1 -0
  82. package/dist/component/garmin/schemas/userMetrics.d.ts +36 -0
  83. package/dist/component/garmin/schemas/userMetrics.d.ts.map +1 -0
  84. package/dist/component/garmin/schemas/userMetrics.js +28 -0
  85. package/dist/component/garmin/schemas/userMetrics.js.map +1 -0
  86. package/dist/component/garmin/transform/activity.d.ts +13 -0
  87. package/dist/component/garmin/transform/activity.d.ts.map +1 -0
  88. package/dist/component/garmin/transform/activity.js +111 -0
  89. package/dist/component/garmin/transform/activity.js.map +1 -0
  90. package/dist/component/garmin/transform/activityDetails.d.ts +13 -0
  91. package/dist/component/garmin/transform/activityDetails.d.ts.map +1 -0
  92. package/dist/component/garmin/transform/activityDetails.js +173 -0
  93. package/dist/component/garmin/transform/activityDetails.js.map +1 -0
  94. package/dist/component/garmin/transform/bloodPressure.d.ts +12 -0
  95. package/dist/component/garmin/transform/bloodPressure.d.ts.map +1 -0
  96. package/dist/component/garmin/transform/bloodPressure.js +33 -0
  97. package/dist/component/garmin/transform/bloodPressure.js.map +1 -0
  98. package/dist/component/garmin/transform/bodyCompositions.d.ts +12 -0
  99. package/dist/component/garmin/transform/bodyCompositions.d.ts.map +1 -0
  100. package/dist/component/garmin/transform/bodyCompositions.js +42 -0
  101. package/dist/component/garmin/transform/bodyCompositions.js.map +1 -0
  102. package/dist/component/garmin/transform/dailies.d.ts +12 -0
  103. package/dist/component/garmin/transform/dailies.d.ts.map +1 -0
  104. package/dist/component/garmin/transform/dailies.js +132 -0
  105. package/dist/component/garmin/transform/dailies.js.map +1 -0
  106. package/dist/component/garmin/transform/epochs.d.ts +13 -0
  107. package/dist/component/garmin/transform/epochs.d.ts.map +1 -0
  108. package/dist/component/garmin/transform/epochs.js +76 -0
  109. package/dist/component/garmin/transform/epochs.js.map +1 -0
  110. package/dist/component/garmin/transform/healthSnapshot.d.ts +12 -0
  111. package/dist/component/garmin/transform/healthSnapshot.d.ts.map +1 -0
  112. package/dist/component/garmin/transform/healthSnapshot.js +111 -0
  113. package/dist/component/garmin/transform/healthSnapshot.js.map +1 -0
  114. package/dist/component/garmin/transform/hrvSummary.d.ts +12 -0
  115. package/dist/component/garmin/transform/hrvSummary.d.ts.map +1 -0
  116. package/dist/component/garmin/transform/hrvSummary.js +45 -0
  117. package/dist/component/garmin/transform/hrvSummary.js.map +1 -0
  118. package/dist/component/garmin/transform/manuallyUpdatedActivities.d.ts +11 -0
  119. package/dist/component/garmin/transform/manuallyUpdatedActivities.d.ts.map +1 -0
  120. package/dist/component/garmin/transform/manuallyUpdatedActivities.js +20 -0
  121. package/dist/component/garmin/transform/manuallyUpdatedActivities.js.map +1 -0
  122. package/dist/component/garmin/transform/menstrualCycleTracking.d.ts +10 -0
  123. package/dist/component/garmin/transform/menstrualCycleTracking.d.ts.map +1 -0
  124. package/dist/component/garmin/transform/menstrualCycleTracking.js +43 -0
  125. package/dist/component/garmin/transform/menstrualCycleTracking.js.map +1 -0
  126. package/dist/component/garmin/transform/moveIQ.d.ts +17 -0
  127. package/dist/component/garmin/transform/moveIQ.d.ts.map +1 -0
  128. package/dist/component/garmin/transform/moveIQ.js +41 -0
  129. package/dist/component/garmin/transform/moveIQ.js.map +1 -0
  130. package/dist/component/garmin/transform/pulseOx.d.ts +12 -0
  131. package/dist/component/garmin/transform/pulseOx.d.ts.map +1 -0
  132. package/dist/component/garmin/transform/pulseOx.js +46 -0
  133. package/dist/component/garmin/transform/pulseOx.js.map +1 -0
  134. package/dist/component/garmin/transform/respiration.d.ts +12 -0
  135. package/dist/component/garmin/transform/respiration.d.ts.map +1 -0
  136. package/dist/component/garmin/transform/respiration.js +54 -0
  137. package/dist/component/garmin/transform/respiration.js.map +1 -0
  138. package/dist/component/garmin/transform/skinTemperature.d.ts +12 -0
  139. package/dist/component/garmin/transform/skinTemperature.d.ts.map +1 -0
  140. package/dist/component/garmin/transform/skinTemperature.js +38 -0
  141. package/dist/component/garmin/transform/skinTemperature.js.map +1 -0
  142. package/dist/component/garmin/transform/sleeps.d.ts +55 -0
  143. package/dist/component/garmin/transform/sleeps.d.ts.map +1 -0
  144. package/dist/component/garmin/transform/sleeps.js +120 -0
  145. package/dist/component/garmin/transform/sleeps.js.map +1 -0
  146. package/dist/component/garmin/transform/stress.d.ts +12 -0
  147. package/dist/component/garmin/transform/stress.d.ts.map +1 -0
  148. package/dist/component/garmin/transform/stress.js +56 -0
  149. package/dist/component/garmin/transform/stress.js.map +1 -0
  150. package/dist/component/garmin/transform/userMetrics.d.ts +12 -0
  151. package/dist/component/garmin/transform/userMetrics.d.ts.map +1 -0
  152. package/dist/component/garmin/transform/userMetrics.js +48 -0
  153. package/dist/component/garmin/transform/userMetrics.js.map +1 -0
  154. package/dist/component/garmin/types/garmin.d.ts +21 -0
  155. package/dist/component/garmin/types/garmin.d.ts.map +1 -0
  156. package/dist/component/garmin/types/garmin.js +6 -0
  157. package/dist/component/garmin/types/garmin.js.map +1 -0
  158. package/dist/component/garmin/types/zod/zod.gen.d.ts +1319 -0
  159. package/dist/component/garmin/types/zod/zod.gen.d.ts.map +1 -0
  160. package/dist/component/garmin/types/zod/zod.gen.js +784 -0
  161. package/dist/component/garmin/types/zod/zod.gen.js.map +1 -0
  162. package/dist/component/garmin/webhooks.d.ts +141 -0
  163. package/dist/component/garmin/webhooks.d.ts.map +1 -0
  164. package/dist/component/garmin/webhooks.js +766 -0
  165. package/dist/component/garmin/webhooks.js.map +1 -0
  166. package/dist/component/private.d.ts +20 -2
  167. package/dist/component/private.d.ts.map +1 -1
  168. package/dist/component/private.js +18 -0
  169. package/dist/component/private.js.map +1 -1
  170. package/dist/component/public.d.ts +433 -387
  171. package/dist/component/public.d.ts.map +1 -1
  172. package/dist/component/public.js +12 -2
  173. package/dist/component/public.js.map +1 -1
  174. package/dist/component/schema.d.ts +217 -162
  175. package/dist/component/schema.d.ts.map +1 -1
  176. package/dist/component/schema.js +2 -1
  177. package/dist/component/schema.js.map +1 -1
  178. package/dist/component/strava/private.d.ts +30 -0
  179. package/dist/component/strava/private.d.ts.map +1 -0
  180. package/dist/component/strava/private.js +71 -0
  181. package/dist/component/strava/private.js.map +1 -0
  182. package/dist/component/{strava.d.ts → strava/public.d.ts} +3 -31
  183. package/dist/component/strava/public.d.ts.map +1 -0
  184. package/dist/component/{strava.js → strava/public.js} +22 -101
  185. package/dist/component/strava/public.js.map +1 -0
  186. package/dist/component/validators/activity.d.ts +6 -0
  187. package/dist/component/validators/activity.d.ts.map +1 -1
  188. package/dist/component/validators/activity.js.map +1 -1
  189. package/dist/component/validators/body.d.ts +20 -14
  190. package/dist/component/validators/body.d.ts.map +1 -1
  191. package/dist/component/validators/body.js.map +1 -1
  192. package/dist/component/validators/connection.d.ts +1 -0
  193. package/dist/component/validators/connection.d.ts.map +1 -1
  194. package/dist/component/validators/connection.js +2 -0
  195. package/dist/component/validators/connection.js.map +1 -1
  196. package/dist/component/validators/daily.d.ts +46 -5
  197. package/dist/component/validators/daily.d.ts.map +1 -1
  198. package/dist/component/validators/daily.js +10 -1
  199. package/dist/component/validators/daily.js.map +1 -1
  200. package/dist/component/validators/enums.d.ts +2 -2
  201. package/dist/component/validators/menstruation.d.ts +5 -0
  202. package/dist/component/validators/menstruation.d.ts.map +1 -1
  203. package/dist/component/validators/menstruation.js.map +1 -1
  204. package/dist/component/validators/plannedWorkout.d.ts +5 -1
  205. package/dist/component/validators/plannedWorkout.d.ts.map +1 -1
  206. package/dist/component/validators/plannedWorkout.js +4 -0
  207. package/dist/component/validators/plannedWorkout.js.map +1 -1
  208. package/dist/component/validators/sleep.d.ts +8 -8
  209. package/dist/garmin/bloodPressure.d.ts +28 -0
  210. package/dist/garmin/bloodPressure.d.ts.map +1 -0
  211. package/dist/garmin/bloodPressure.js +34 -0
  212. package/dist/garmin/bloodPressure.js.map +1 -0
  213. package/dist/garmin/body.js +1 -1
  214. package/dist/garmin/body.js.map +1 -1
  215. package/dist/garmin/client.d.ts +117 -17
  216. package/dist/garmin/client.d.ts.map +1 -1
  217. package/dist/garmin/client.js +337 -43
  218. package/dist/garmin/client.js.map +1 -1
  219. package/dist/garmin/daily.d.ts.map +1 -1
  220. package/dist/garmin/daily.js +3 -3
  221. package/dist/garmin/daily.js.map +1 -1
  222. package/dist/garmin/hrv.d.ts +30 -0
  223. package/dist/garmin/hrv.d.ts.map +1 -0
  224. package/dist/garmin/hrv.js +45 -0
  225. package/dist/garmin/hrv.js.map +1 -0
  226. package/dist/garmin/index.d.ts +16 -4
  227. package/dist/garmin/index.d.ts.map +1 -1
  228. package/dist/garmin/index.js +8 -2
  229. package/dist/garmin/index.js.map +1 -1
  230. package/dist/garmin/maps/activity-type.d.ts +1 -2
  231. package/dist/garmin/maps/activity-type.d.ts.map +1 -1
  232. package/dist/garmin/maps/activity-type.js +1 -0
  233. package/dist/garmin/maps/activity-type.js.map +1 -1
  234. package/dist/garmin/menstruation.d.ts +6 -4
  235. package/dist/garmin/menstruation.d.ts.map +1 -1
  236. package/dist/garmin/menstruation.js +12 -8
  237. package/dist/garmin/menstruation.js.map +1 -1
  238. package/dist/garmin/pulseOx.d.ts +24 -0
  239. package/dist/garmin/pulseOx.d.ts.map +1 -0
  240. package/dist/garmin/pulseOx.js +33 -0
  241. package/dist/garmin/pulseOx.js.map +1 -0
  242. package/dist/garmin/respiration.d.ts +29 -0
  243. package/dist/garmin/respiration.d.ts.map +1 -0
  244. package/dist/garmin/respiration.js +42 -0
  245. package/dist/garmin/respiration.js.map +1 -0
  246. package/dist/garmin/skinTemp.d.ts +27 -0
  247. package/dist/garmin/skinTemp.d.ts.map +1 -0
  248. package/dist/garmin/skinTemp.js +35 -0
  249. package/dist/garmin/skinTemp.js.map +1 -0
  250. package/dist/garmin/sleep.d.ts +4 -4
  251. package/dist/garmin/sleep.d.ts.map +1 -1
  252. package/dist/garmin/sleep.js +15 -9
  253. package/dist/garmin/sleep.js.map +1 -1
  254. package/dist/garmin/stressDetails.d.ts +30 -0
  255. package/dist/garmin/stressDetails.d.ts.map +1 -0
  256. package/dist/garmin/stressDetails.js +49 -0
  257. package/dist/garmin/stressDetails.js.map +1 -0
  258. package/dist/garmin/sync.d.ts +14 -0
  259. package/dist/garmin/sync.d.ts.map +1 -1
  260. package/dist/garmin/sync.js +290 -7
  261. package/dist/garmin/sync.js.map +1 -1
  262. package/dist/garmin/types.d.ts +77 -186
  263. package/dist/garmin/types.d.ts.map +1 -1
  264. package/dist/garmin/types.js +4 -2
  265. package/dist/garmin/types.js.map +1 -1
  266. package/dist/garmin/userMetrics.d.ts +23 -0
  267. package/dist/garmin/userMetrics.d.ts.map +1 -0
  268. package/dist/garmin/userMetrics.js +41 -0
  269. package/dist/garmin/userMetrics.js.map +1 -0
  270. package/dist/validators.d.ts +138 -56
  271. package/dist/validators.d.ts.map +1 -1
  272. package/dist/validators.js +2 -2
  273. package/dist/validators.js.map +1 -1
  274. package/package.json +130 -124
  275. package/src/client/index.ts +86 -18
  276. package/src/component/_generated/api.ts +96 -4
  277. package/src/component/_generated/component.ts +271 -144
  278. package/src/{garmin → component/garmin}/auth.ts +8 -1
  279. package/src/component/garmin/client.ts +39 -0
  280. package/src/component/garmin/private.ts +1798 -0
  281. package/src/component/garmin/public.ts +938 -0
  282. package/src/component/garmin/schemas/activity.ts +40 -0
  283. package/src/component/garmin/schemas/activityDetails.ts +45 -0
  284. package/src/component/garmin/schemas/bloodPressure.ts +38 -0
  285. package/src/component/garmin/schemas/bodyCompositions.ts +38 -0
  286. package/src/component/garmin/schemas/dailies.ts +38 -0
  287. package/src/component/garmin/schemas/epochs.ts +38 -0
  288. package/src/component/garmin/schemas/healthSnapshot.ts +38 -0
  289. package/src/component/garmin/schemas/hrvSummary.ts +38 -0
  290. package/src/component/garmin/schemas/manuallyUpdatedActivities.ts +49 -0
  291. package/src/component/garmin/schemas/menstrualCycleTracking.ts +39 -0
  292. package/src/component/garmin/schemas/moveIQ.ts +38 -0
  293. package/src/component/garmin/schemas/pulseOx.ts +39 -0
  294. package/src/component/garmin/schemas/respiration.ts +39 -0
  295. package/src/component/garmin/schemas/skinTemperature.ts +39 -0
  296. package/src/component/garmin/schemas/sleeps.ts +38 -0
  297. package/src/component/garmin/schemas/stress.ts +43 -0
  298. package/src/component/garmin/schemas/userMetrics.ts +39 -0
  299. package/src/component/garmin/transform/activity.ts +143 -0
  300. package/src/component/garmin/transform/activityDetails.ts +236 -0
  301. package/src/component/garmin/transform/bloodPressure.ts +39 -0
  302. package/src/component/garmin/transform/bodyCompositions.ts +51 -0
  303. package/src/component/garmin/transform/dailies.ts +179 -0
  304. package/src/component/garmin/transform/epochs.ts +94 -0
  305. package/src/component/garmin/transform/healthSnapshot.ts +152 -0
  306. package/src/component/garmin/transform/hrvSummary.ts +56 -0
  307. package/src/component/garmin/transform/manuallyUpdatedActivities.ts +27 -0
  308. package/src/{garmin/maps/activity-type.ts → component/garmin/transform/maps/activityType.ts} +116 -116
  309. package/src/{garmin/maps/sleep-level.ts → component/garmin/transform/maps/sleepLevel.ts} +22 -22
  310. package/src/component/garmin/transform/menstrualCycleTracking.ts +48 -0
  311. package/src/component/garmin/transform/moveIQ.ts +48 -0
  312. package/src/{garmin → component/garmin/transform}/plannedWorkout.ts +328 -333
  313. package/src/component/garmin/transform/pulseOx.ts +64 -0
  314. package/src/component/garmin/transform/respiration.ts +73 -0
  315. package/src/component/garmin/transform/skinTemperature.ts +44 -0
  316. package/src/component/garmin/transform/sleeps.ts +159 -0
  317. package/src/component/garmin/transform/stress.ts +78 -0
  318. package/src/component/garmin/transform/userMetrics.ts +56 -0
  319. package/src/component/garmin/types/specs/training-api-workouts.json +699 -0
  320. package/src/component/garmin/types/specs/wellness-api.json +1 -0
  321. package/src/component/garmin/types/trainingApiWorkouts/client/client.gen.ts +290 -0
  322. package/src/component/garmin/types/trainingApiWorkouts/client/index.ts +25 -0
  323. package/src/component/garmin/types/trainingApiWorkouts/client/types.gen.ts +214 -0
  324. package/src/component/garmin/types/trainingApiWorkouts/client/utils.gen.ts +316 -0
  325. package/src/component/garmin/types/trainingApiWorkouts/client.gen.ts +16 -0
  326. package/src/component/garmin/types/trainingApiWorkouts/core/auth.gen.ts +41 -0
  327. package/src/component/garmin/types/trainingApiWorkouts/core/bodySerializer.gen.ts +82 -0
  328. package/src/component/garmin/types/trainingApiWorkouts/core/params.gen.ts +169 -0
  329. package/src/component/garmin/types/trainingApiWorkouts/core/pathSerializer.gen.ts +171 -0
  330. package/src/component/garmin/types/trainingApiWorkouts/core/queryKeySerializer.gen.ts +117 -0
  331. package/src/component/garmin/types/trainingApiWorkouts/core/serverSentEvents.gen.ts +243 -0
  332. package/src/component/garmin/types/trainingApiWorkouts/core/types.gen.ts +104 -0
  333. package/src/component/garmin/types/trainingApiWorkouts/core/utils.gen.ts +140 -0
  334. package/src/component/garmin/types/trainingApiWorkouts/index.ts +4 -0
  335. package/src/component/garmin/types/trainingApiWorkouts/sdk.gen.ts +126 -0
  336. package/src/component/garmin/types/trainingApiWorkouts/types.gen.ts +387 -0
  337. package/src/component/garmin/types/trainingApiWorkouts/zod.gen.ts +423 -0
  338. package/src/component/garmin/types/wellnessApi/client/client.gen.ts +290 -0
  339. package/src/component/garmin/types/wellnessApi/client/index.ts +25 -0
  340. package/src/component/garmin/types/wellnessApi/client/types.gen.ts +214 -0
  341. package/src/component/garmin/types/wellnessApi/client/utils.gen.ts +316 -0
  342. package/src/component/garmin/types/wellnessApi/client.gen.ts +16 -0
  343. package/src/component/garmin/types/wellnessApi/core/auth.gen.ts +41 -0
  344. package/src/component/garmin/types/wellnessApi/core/bodySerializer.gen.ts +82 -0
  345. package/src/component/garmin/types/wellnessApi/core/params.gen.ts +169 -0
  346. package/src/component/garmin/types/wellnessApi/core/pathSerializer.gen.ts +171 -0
  347. package/src/component/garmin/types/wellnessApi/core/queryKeySerializer.gen.ts +117 -0
  348. package/src/component/garmin/types/wellnessApi/core/serverSentEvents.gen.ts +243 -0
  349. package/src/component/garmin/types/wellnessApi/core/types.gen.ts +104 -0
  350. package/src/component/garmin/types/wellnessApi/core/utils.gen.ts +140 -0
  351. package/src/component/garmin/types/wellnessApi/index.ts +4 -0
  352. package/src/component/garmin/types/wellnessApi/sdk.gen.ts +207 -0
  353. package/src/component/garmin/types/wellnessApi/types.gen.ts +2942 -0
  354. package/src/component/garmin/types/wellnessApi/zod.gen.ts +878 -0
  355. package/src/component/garmin/utils.ts +25 -0
  356. package/src/component/garmin/webhooks.ts +852 -0
  357. package/src/component/private.ts +21 -0
  358. package/src/component/public.ts +11 -2
  359. package/src/component/schema.ts +2 -1
  360. package/src/component/strava/private.ts +89 -0
  361. package/src/component/{strava.ts → strava/public.ts} +341 -404
  362. package/src/component/validators/activity.ts +5 -0
  363. package/src/component/validators/body.ts +5 -0
  364. package/src/component/validators/connection.ts +2 -0
  365. package/src/component/validators/daily.ts +20 -0
  366. package/src/component/validators/menstruation.ts +5 -1
  367. package/src/component/validators/plannedWorkout.ts +9 -0
  368. package/src/validators.ts +12 -2
  369. package/dist/component/garmin.d.ts.map +0 -1
  370. package/dist/component/garmin.js.map +0 -1
  371. package/dist/component/strava.d.ts.map +0 -1
  372. package/dist/component/strava.js.map +0 -1
  373. package/dist/garmin/activity.d.ts +0 -101
  374. package/dist/garmin/activity.d.ts.map +0 -1
  375. package/dist/garmin/activity.js +0 -207
  376. package/dist/garmin/activity.js.map +0 -1
  377. package/src/component/garmin.ts +0 -850
  378. package/src/garmin/activity.test.ts +0 -178
  379. package/src/garmin/activity.ts +0 -272
  380. package/src/garmin/auth.test.ts +0 -103
  381. package/src/garmin/body.ts +0 -59
  382. package/src/garmin/client.ts +0 -407
  383. package/src/garmin/daily.ts +0 -211
  384. package/src/garmin/index.ts +0 -75
  385. package/src/garmin/maps/activity-type.test.ts +0 -78
  386. package/src/garmin/menstruation.ts +0 -42
  387. package/src/garmin/sleep.test.ts +0 -110
  388. package/src/garmin/sleep.ts +0 -170
  389. package/src/garmin/sync.ts +0 -223
  390. package/src/garmin/types.ts +0 -480
@@ -1,116 +1,116 @@
1
- // ─── Garmin ActivityType → Terra ActivityType ─────────────────────────────────
2
- // Maps Garmin activity type strings to Terra's ActivityType numeric enum
3
- // used by the Soma schema.
4
- //
5
- // Garmin values: Garmin Health API activity type strings
6
- // Terra values: https://docs.tryterra.co/reference/health-and-fitness-api/data-models#activitytype
7
-
8
- import type { GarminActivityType } from "../types.js";
9
-
10
- const activityTypeMap: Record<string, number> = {
11
- // ── Running ─────────────────────────────────────────────────────────────
12
- // Terra Running = 8
13
- RUNNING: 8,
14
- INDOOR_RUNNING: 8,
15
- TRAIL_RUNNING: 8,
16
- TREADMILL_RUNNING: 8,
17
-
18
- // ── Cycling ─────────────────────────────────────────────────────────────
19
- // Terra Biking = 1
20
- CYCLING: 1,
21
- INDOOR_CYCLING: 1,
22
- MOUNTAIN_BIKING: 1,
23
- GRAVEL_CYCLING: 1,
24
- VIRTUAL_RIDE: 1,
25
-
26
- // ── Walking ─────────────────────────────────────────────────────────────
27
- // Terra Walking = 7
28
- WALKING: 7,
29
-
30
- // ── Hiking ──────────────────────────────────────────────────────────────
31
- // Terra Hiking = 35
32
- HIKING: 35,
33
-
34
- // ── Swimming ────────────────────────────────────────────────────────────
35
- // Terra Swimming = 82
36
- SWIMMING: 82,
37
- OPEN_WATER_SWIMMING: 82,
38
- LAP_SWIMMING: 82,
39
- POOL_SWIMMING: 82,
40
-
41
- // ── Gym / Fitness ───────────────────────────────────────────────────────
42
- STRENGTH_TRAINING: 80, // Terra Strength Training
43
- YOGA: 100, // Terra Yoga
44
- PILATES: 49, // Terra Pilates
45
- CARDIO: 108, // Terra Other
46
- ELLIPTICAL: 25, // Terra Elliptical
47
- STAIR_CLIMBING: 78, // Terra Stair Climbing Machine
48
- CROSSFIT: 113, // Terra Crossfit
49
- HIIT: 114, // Terra HIIT
50
- FITNESS_EQUIPMENT: 108, // Terra Other
51
- BREATHWORK: 108, // Terra Other
52
-
53
- // ── Snow Sports ─────────────────────────────────────────────────────────
54
- CROSS_COUNTRY_SKIING: 67, // Terra Cross Country Skiing
55
- ALPINE_SKIING: 66, // Terra Alpine Skiing
56
- SNOWBOARDING: 73, // Terra Snowboarding
57
- SNOWSHOEING: 74, // Terra Snowshoeing
58
-
59
- // ── Water Sports ────────────────────────────────────────────────────────
60
- ROWING: 53, // Terra Rowing
61
- INDOOR_ROWING: 53, // Terra Rowing
62
- KAYAKING: 40, // Terra Kayaking
63
- CANOEING: 22, // Terra Canoeing
64
- SAILING: 59, // Terra Sailing
65
- SURFING: 81, // Terra Surfing
66
- KITESURFING: 41, // Terra Kitesurfing
67
- WINDSURFING: 99, // Terra Windsurfing
68
- PADDLEBOARDING: 129, // Terra Paddling
69
-
70
- // ── Skating ─────────────────────────────────────────────────────────────
71
- SKATING: 62, // Terra Skating
72
- INLINE_SKATING: 62, // Terra Skating
73
-
74
- // ── Racket Sports ───────────────────────────────────────────────────────
75
- TENNIS: 87, // Terra Tennis
76
- TABLE_TENNIS: 85, // Terra Table Tennis
77
- BADMINTON: 10, // Terra Badminton
78
- RACQUETBALL: 51, // Terra Racquetball
79
- SQUASH: 76, // Terra Squash
80
-
81
- // ── Climbing ────────────────────────────────────────────────────────────
82
- ROCK_CLIMBING: 52, // Terra Rock Climbing
83
- BOULDERING: 52, // Terra Rock Climbing
84
-
85
- // ── Team Sports ─────────────────────────────────────────────────────────
86
- SOCCER: 29, // Terra English Football
87
- BASKETBALL: 11, // Terra Basketball
88
- VOLLEYBALL: 94, // Terra Volleyball
89
- CRICKET: 23, // Terra Cricket
90
- RUGBY: 57, // Terra Rugby
91
-
92
- // ── Combat Sports ───────────────────────────────────────────────────────
93
- BOXING: 16, // Terra Boxing
94
- MARTIAL_ARTS: 44, // Terra Martial Arts
95
-
96
- // ── Golf ────────────────────────────────────────────────────────────────
97
- GOLF: 32, // Terra Golf
98
-
99
- // ── Accessibility ───────────────────────────────────────────────────────
100
- HANDCYCLING: 14, // Terra Handbiking
101
- WHEELCHAIR_PUSH_WALKING: 98, // Terra Wheelchair
102
- WHEELCHAIR_PUSH_RUNNING: 98, // Terra Wheelchair
103
-
104
- // ── Other ───────────────────────────────────────────────────────────────
105
- OTHER: 108, // Terra Other
106
- MULTI_SPORT: 108, // Terra Other
107
- FLOOR_CLIMBING: 78, // Terra Stair Climbing Machine
108
- };
109
-
110
- /**
111
- * Map a Garmin activity type string to the Terra ActivityType enum.
112
- * Returns Terra "Other" (108) for unknown types.
113
- */
114
- export function mapActivityType(activityType: GarminActivityType): number {
115
- return activityTypeMap[activityType] ?? 108;
116
- }
1
+ // ─── Garmin ActivityType → Terra ActivityType ─────────────────────────────────
2
+ // Maps Garmin activity type strings to Terra's ActivityType numeric enum
3
+ // used by the Soma schema.
4
+ //
5
+ // Garmin values: Garmin Health API activity type strings
6
+ // Terra values: https://docs.tryterra.co/reference/health-and-fitness-api/data-models#activitytype
7
+
8
+ // Garmin activityType is a free-form string in the spec
9
+
10
+ const activityTypeMap: Record<string, number> = {
11
+ // ── Running ─────────────────────────────────────────────────────────────
12
+ // Terra Running = 8
13
+ RUNNING: 8,
14
+ INDOOR_RUNNING: 8,
15
+ TRAIL_RUNNING: 8,
16
+ TREADMILL_RUNNING: 8,
17
+
18
+ // ── Cycling ─────────────────────────────────────────────────────────────
19
+ // Terra Biking = 1
20
+ CYCLING: 1,
21
+ INDOOR_CYCLING: 1,
22
+ MOUNTAIN_BIKING: 1,
23
+ GRAVEL_CYCLING: 1,
24
+ VIRTUAL_RIDE: 1,
25
+
26
+ // ── Walking ─────────────────────────────────────────────────────────────
27
+ // Terra Walking = 7
28
+ WALKING: 7,
29
+
30
+ // ── Hiking ──────────────────────────────────────────────────────────────
31
+ // Terra Hiking = 35
32
+ HIKING: 35,
33
+
34
+ // ── Swimming ────────────────────────────────────────────────────────────
35
+ // Terra Swimming = 82
36
+ SWIMMING: 82,
37
+ OPEN_WATER_SWIMMING: 82,
38
+ LAP_SWIMMING: 82,
39
+ POOL_SWIMMING: 82,
40
+
41
+ // ── Gym / Fitness ───────────────────────────────────────────────────────
42
+ STRENGTH_TRAINING: 80, // Terra Strength Training
43
+ YOGA: 100, // Terra Yoga
44
+ PILATES: 49, // Terra Pilates
45
+ CARDIO: 108, // Terra Other
46
+ ELLIPTICAL: 25, // Terra Elliptical
47
+ STAIR_CLIMBING: 78, // Terra Stair Climbing Machine
48
+ CROSSFIT: 113, // Terra Crossfit
49
+ HIIT: 114, // Terra HIIT
50
+ FITNESS_EQUIPMENT: 108, // Terra Other
51
+ BREATHWORK: 108, // Terra Other
52
+
53
+ // ── Snow Sports ─────────────────────────────────────────────────────────
54
+ CROSS_COUNTRY_SKIING: 67, // Terra Cross Country Skiing
55
+ ALPINE_SKIING: 66, // Terra Alpine Skiing
56
+ SNOWBOARDING: 73, // Terra Snowboarding
57
+ SNOWSHOEING: 74, // Terra Snowshoeing
58
+
59
+ // ── Water Sports ────────────────────────────────────────────────────────
60
+ ROWING: 53, // Terra Rowing
61
+ INDOOR_ROWING: 53, // Terra Rowing
62
+ KAYAKING: 40, // Terra Kayaking
63
+ CANOEING: 22, // Terra Canoeing
64
+ SAILING: 59, // Terra Sailing
65
+ SURFING: 81, // Terra Surfing
66
+ KITESURFING: 41, // Terra Kitesurfing
67
+ WINDSURFING: 99, // Terra Windsurfing
68
+ PADDLEBOARDING: 129, // Terra Paddling
69
+
70
+ // ── Skating ─────────────────────────────────────────────────────────────
71
+ SKATING: 62, // Terra Skating
72
+ INLINE_SKATING: 62, // Terra Skating
73
+
74
+ // ── Racket Sports ───────────────────────────────────────────────────────
75
+ TENNIS: 87, // Terra Tennis
76
+ TABLE_TENNIS: 85, // Terra Table Tennis
77
+ BADMINTON: 10, // Terra Badminton
78
+ RACQUETBALL: 51, // Terra Racquetball
79
+ SQUASH: 76, // Terra Squash
80
+
81
+ // ── Climbing ────────────────────────────────────────────────────────────
82
+ ROCK_CLIMBING: 52, // Terra Rock Climbing
83
+ BOULDERING: 52, // Terra Rock Climbing
84
+
85
+ // ── Team Sports ─────────────────────────────────────────────────────────
86
+ SOCCER: 29, // Terra English Football
87
+ BASKETBALL: 11, // Terra Basketball
88
+ VOLLEYBALL: 94, // Terra Volleyball
89
+ CRICKET: 23, // Terra Cricket
90
+ RUGBY: 57, // Terra Rugby
91
+
92
+ // ── Combat Sports ───────────────────────────────────────────────────────
93
+ BOXING: 16, // Terra Boxing
94
+ MARTIAL_ARTS: 44, // Terra Martial Arts
95
+
96
+ // ── Golf ────────────────────────────────────────────────────────────────
97
+ GOLF: 32, // Terra Golf
98
+
99
+ // ── Accessibility ───────────────────────────────────────────────────────
100
+ HANDCYCLING: 14, // Terra Handbiking
101
+ WHEELCHAIR_PUSH_WALKING: 98, // Terra Wheelchair
102
+ WHEELCHAIR_PUSH_RUNNING: 98, // Terra Wheelchair
103
+
104
+ // ── Other ───────────────────────────────────────────────────────────────
105
+ OTHER: 108, // Terra Other
106
+ MULTI_SPORT: 108, // Terra Other
107
+ FLOOR_CLIMBING: 78, // Terra Stair Climbing Machine
108
+ };
109
+
110
+ /**
111
+ * Map a Garmin activity type string to the Terra ActivityType enum.
112
+ * Returns Terra "Other" (108) for unknown types.
113
+ */
114
+ export function mapActivityType(activityType: string): number {
115
+ return activityTypeMap[activityType] ?? 108;
116
+ }
@@ -1,22 +1,22 @@
1
- // ─── Garmin Sleep Stage → Terra SleepLevel ────────────────────────────────────
2
- // Maps Garmin sleep stage names to Terra's SleepLevel numeric enum.
3
- //
4
- // Garmin provides sleep levels as named map keys in sleepLevelsMap:
5
- // { deep: [...], light: [...], rem: [...], awake: [...] }
6
- //
7
- // Terra SleepLevel: 0=Unknown, 1=Awake, 2=Sleeping, 3=OutOfBed, 4=Light, 5=Deep, 6=REM
8
-
9
- const sleepLevelMap: Record<string, number> = {
10
- deep: 5, // Deep → Terra Deep
11
- light: 4, // Light → Terra Light
12
- rem: 6, // REM → Terra REM
13
- awake: 1, // Awake → Terra Awake
14
- };
15
-
16
- /**
17
- * Map a Garmin sleep stage name to the Terra SleepLevel enum.
18
- * Returns 0 (Unknown) for unrecognized stages.
19
- */
20
- export function mapSleepLevel(stage: string): number {
21
- return sleepLevelMap[stage] ?? 0;
22
- }
1
+ // ─── Garmin Sleep Stage → Terra SleepLevel ────────────────────────────────────
2
+ // Maps Garmin sleep stage names to Terra's SleepLevel numeric enum.
3
+ //
4
+ // Garmin provides sleep levels as named map keys in sleepLevelsMap:
5
+ // { deep: [...], light: [...], rem: [...], awake: [...] }
6
+ //
7
+ // Terra SleepLevel: 0=Unknown, 1=Awake, 2=Sleeping, 3=OutOfBed, 4=Light, 5=Deep, 6=REM
8
+
9
+ const sleepLevelMap: Record<string, number> = {
10
+ deep: 5, // Deep → Terra Deep
11
+ light: 4, // Light → Terra Light
12
+ rem: 6, // REM → Terra REM
13
+ awake: 1, // Awake → Terra Awake
14
+ };
15
+
16
+ /**
17
+ * Map a Garmin sleep stage name to the Terra SleepLevel enum.
18
+ * Returns 0 (Unknown) for unrecognized stages.
19
+ */
20
+ export function mapSleepLevel(stage: string): number {
21
+ return sleepLevelMap[stage] ?? 0;
22
+ }
@@ -0,0 +1,48 @@
1
+ // ─── Menstrual Cycle Tracking Transformer ────────────────────────────────────
2
+ // Transforms a Garmin MCT (Women's Health API) push item into the Soma
3
+ // Menstruation schema shape.
4
+ //
5
+ // MCT summaries contain cycle schedule data (phase, length, fertile window,
6
+ // pregnancy snapshot). We map these into the Menstruation model's
7
+ // menstruation_data fields.
8
+
9
+ import type { SomaMenstruation } from "../../validators/menstruation.js";
10
+ import type { ClientSummarizedMenstrualCycle } from "../types/wellnessApi/types.gen.js";
11
+
12
+ /**
13
+ * Transform a Garmin MCT push item into a Soma Menstruation document shape.
14
+ *
15
+ * MCT records are ingested into the `menstruation` table via
16
+ * `ingestMenstruation`, keyed by `metadata.start_time + metadata.end_time`.
17
+ */
18
+ export function transformMenstrualCycleTracking(data: ClientSummarizedMenstrualCycle): SomaMenstruation {
19
+ const dateStr = data.periodStartDate;
20
+ const startTime = dateStr
21
+ ? `${dateStr}T00:00:00.000Z`
22
+ : new Date(0).toISOString();
23
+ const endTime = dateStr
24
+ ? `${dateStr}T23:59:59.999Z`
25
+ : new Date(0).toISOString();
26
+
27
+ return {
28
+ metadata: {
29
+ start_time: startTime,
30
+ end_time: endTime,
31
+ },
32
+
33
+ menstruation_data: {
34
+ day_in_cycle: data.dayInCycle,
35
+ current_phase: data.currentPhaseType?.toLowerCase(),
36
+ length_of_current_phase_days: data.lengthOfCurrentPhase,
37
+ days_until_next_phase: data.daysUntilNextPhase,
38
+ period_length_days: data.periodLength,
39
+ predicted_cycle_length_days: data.predictedCycleLength,
40
+ cycle_length_days: data.cycleLength != null
41
+ ? String(data.cycleLength)
42
+ : undefined,
43
+ is_predicted_cycle: data.isPredictedCycle != null
44
+ ? String(data.isPredictedCycle)
45
+ : undefined,
46
+ },
47
+ };
48
+ }
@@ -0,0 +1,48 @@
1
+ // ─── Move IQ Transformer ─────────────────────────────────────────────────────
2
+ // Transforms a Garmin Move IQ event into the Soma Activity schema shape.
3
+ //
4
+ // Move IQ events are auto-detected activities (e.g. walking, running, cycling)
5
+ // recognised by the Garmin device without user interaction. They are lightweight
6
+ // — no GPS, heart rate, or calorie data — just type, duration, and device.
7
+
8
+ import type { ClientAutoActivityMoveIq } from "../types/wellnessApi/types.gen.js";
9
+ import { mapActivityType } from "./maps/activityType.js";
10
+ import type { SomaActivity } from "../../validators/activity.js";
11
+
12
+ /**
13
+ * Transform a Garmin Move IQ event into a Soma Activity document shape.
14
+ *
15
+ * Move IQ activityType values are lowercase (e.g. "running", "cycling"),
16
+ * unlike regular activities which use uppercase. We normalise to uppercase
17
+ * before mapping.
18
+ *
19
+ * The returned object is ready to be spread into an `ingestActivity` call
20
+ * alongside `connectionId` and `userId`.
21
+ */
22
+ export function transformMoveIQ(event: ClientAutoActivityMoveIq): SomaActivity {
23
+ const startMs = (event.startTimeInSeconds ?? 0) * 1000;
24
+ const endMs = startMs + (event.durationInSeconds ?? 0) * 1000;
25
+ const startDate = new Date(startMs).toISOString();
26
+ const endDate = new Date(endMs).toISOString();
27
+
28
+ // Move IQ activityType is lowercase; mapActivityType expects uppercase
29
+ const activityType = (event.activityType ?? "OTHER").toUpperCase();
30
+
31
+ return {
32
+ metadata: {
33
+ summary_id: event.summaryId ?? `moveiq-${event.startTimeInSeconds}`,
34
+ start_time: startDate,
35
+ end_time: endDate,
36
+ type: mapActivityType(activityType),
37
+ upload_type: 1, // device-detected
38
+ },
39
+
40
+ active_durations_data: {
41
+ activity_seconds: event.durationInSeconds,
42
+ },
43
+
44
+ device_data: event.deviceName
45
+ ? { name: event.deviceName }
46
+ : undefined,
47
+ };
48
+ }