@nativesquare/soma 0.8.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 (530) hide show
  1. package/dist/client/index.d.ts +7 -128
  2. package/dist/client/index.d.ts.map +1 -1
  3. package/dist/client/index.js +31 -112
  4. package/dist/client/index.js.map +1 -1
  5. package/dist/component/_generated/api.d.ts +98 -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 +136 -261
  9. package/dist/component/_generated/component.d.ts.map +1 -1
  10. package/dist/{garmin → component/garmin}/auth.d.ts +8 -1
  11. package/dist/component/garmin/auth.d.ts.map +1 -0
  12. package/dist/component/garmin/auth.js.map +1 -0
  13. package/dist/component/garmin/client.d.ts +15 -0
  14. package/dist/component/garmin/client.d.ts.map +1 -0
  15. package/dist/component/garmin/client.js +32 -0
  16. package/dist/component/garmin/client.js.map +1 -0
  17. package/dist/component/garmin/private.d.ts +543 -0
  18. package/dist/component/garmin/private.d.ts.map +1 -0
  19. package/dist/component/garmin/private.js +1461 -0
  20. package/dist/component/garmin/private.js.map +1 -0
  21. package/dist/component/garmin/public.d.ts +149 -0
  22. package/dist/component/garmin/public.d.ts.map +1 -0
  23. package/dist/component/garmin/public.js +823 -0
  24. package/dist/component/garmin/public.js.map +1 -0
  25. package/dist/component/garmin/schemas/activity.d.ts +94 -0
  26. package/dist/component/garmin/schemas/activity.d.ts.map +1 -0
  27. package/dist/component/garmin/schemas/activity.js +29 -0
  28. package/dist/component/garmin/schemas/activity.js.map +1 -0
  29. package/dist/component/garmin/schemas/activityDetails.d.ts +146 -0
  30. package/dist/component/garmin/schemas/activityDetails.d.ts.map +1 -0
  31. package/dist/component/garmin/schemas/activityDetails.js +30 -0
  32. package/dist/component/garmin/schemas/activityDetails.js.map +1 -0
  33. package/dist/component/garmin/schemas/bloodPressure.d.ts +38 -0
  34. package/dist/component/garmin/schemas/bloodPressure.d.ts.map +1 -0
  35. package/dist/component/garmin/schemas/bloodPressure.js +27 -0
  36. package/dist/component/garmin/schemas/bloodPressure.js.map +1 -0
  37. package/dist/component/garmin/schemas/bodyCompositions.d.ts +42 -0
  38. package/dist/component/garmin/schemas/bodyCompositions.d.ts.map +1 -0
  39. package/dist/component/garmin/schemas/bodyCompositions.js +27 -0
  40. package/dist/component/garmin/schemas/bodyCompositions.js.map +1 -0
  41. package/dist/component/garmin/schemas/dailies.d.ts +98 -0
  42. package/dist/component/garmin/schemas/dailies.d.ts.map +1 -0
  43. package/dist/component/garmin/schemas/dailies.js +27 -0
  44. package/dist/component/garmin/schemas/dailies.js.map +1 -0
  45. package/dist/component/garmin/schemas/epochs.d.ts +54 -0
  46. package/dist/component/garmin/schemas/epochs.d.ts.map +1 -0
  47. package/dist/component/garmin/schemas/epochs.js +27 -0
  48. package/dist/component/garmin/schemas/epochs.js.map +1 -0
  49. package/dist/component/garmin/schemas/healthSnapshot.d.ts +48 -0
  50. package/dist/component/garmin/schemas/healthSnapshot.d.ts.map +1 -0
  51. package/dist/component/garmin/schemas/healthSnapshot.js +27 -0
  52. package/dist/component/garmin/schemas/healthSnapshot.js.map +1 -0
  53. package/dist/component/garmin/schemas/hrvSummary.d.ts +40 -0
  54. package/dist/component/garmin/schemas/hrvSummary.d.ts.map +1 -0
  55. package/dist/component/garmin/schemas/hrvSummary.js +27 -0
  56. package/dist/component/garmin/schemas/hrvSummary.js.map +1 -0
  57. package/dist/component/garmin/schemas/manuallyUpdatedActivities.d.ts +94 -0
  58. package/dist/component/garmin/schemas/manuallyUpdatedActivities.d.ts.map +1 -0
  59. package/dist/component/garmin/schemas/manuallyUpdatedActivities.js +29 -0
  60. package/dist/component/garmin/schemas/manuallyUpdatedActivities.js.map +1 -0
  61. package/dist/component/garmin/schemas/menstrualCycleTracking.d.ts +100 -0
  62. package/dist/component/garmin/schemas/menstrualCycleTracking.d.ts.map +1 -0
  63. package/dist/component/garmin/schemas/menstrualCycleTracking.js +28 -0
  64. package/dist/component/garmin/schemas/menstrualCycleTracking.js.map +1 -0
  65. package/dist/component/garmin/schemas/moveIQ.d.ts +40 -0
  66. package/dist/component/garmin/schemas/moveIQ.d.ts.map +1 -0
  67. package/dist/component/garmin/schemas/moveIQ.js +27 -0
  68. package/dist/component/garmin/schemas/moveIQ.js.map +1 -0
  69. package/dist/component/garmin/schemas/pulseOx.d.ts +38 -0
  70. package/dist/component/garmin/schemas/pulseOx.d.ts.map +1 -0
  71. package/dist/component/garmin/schemas/pulseOx.js +28 -0
  72. package/dist/component/garmin/schemas/pulseOx.js.map +1 -0
  73. package/dist/component/garmin/schemas/respiration.d.ts +34 -0
  74. package/dist/component/garmin/schemas/respiration.d.ts.map +1 -0
  75. package/dist/component/garmin/schemas/respiration.js +28 -0
  76. package/dist/component/garmin/schemas/respiration.js.map +1 -0
  77. package/dist/component/garmin/schemas/skinTemperature.d.ts +36 -0
  78. package/dist/component/garmin/schemas/skinTemperature.d.ts.map +1 -0
  79. package/dist/component/garmin/schemas/skinTemperature.js +28 -0
  80. package/dist/component/garmin/schemas/skinTemperature.js.map +1 -0
  81. package/dist/component/garmin/schemas/sleeps.d.ts +88 -0
  82. package/dist/component/garmin/schemas/sleeps.d.ts.map +1 -0
  83. package/dist/component/garmin/schemas/sleeps.js +27 -0
  84. package/dist/component/garmin/schemas/sleeps.js.map +1 -0
  85. package/dist/component/garmin/schemas/stress.d.ts +70 -0
  86. package/dist/component/garmin/schemas/stress.d.ts.map +1 -0
  87. package/dist/component/garmin/schemas/stress.js +30 -0
  88. package/dist/component/garmin/schemas/stress.js.map +1 -0
  89. package/dist/component/garmin/schemas/userMetrics.d.ts +36 -0
  90. package/dist/component/garmin/schemas/userMetrics.d.ts.map +1 -0
  91. package/dist/component/garmin/schemas/userMetrics.js +28 -0
  92. package/dist/component/garmin/schemas/userMetrics.js.map +1 -0
  93. package/dist/component/garmin/transform/activity.d.ts +13 -0
  94. package/dist/component/garmin/transform/activity.d.ts.map +1 -0
  95. package/dist/component/garmin/transform/activity.js +111 -0
  96. package/dist/component/garmin/transform/activity.js.map +1 -0
  97. package/dist/component/garmin/transform/activityDetails.d.ts +13 -0
  98. package/dist/component/garmin/transform/activityDetails.d.ts.map +1 -0
  99. package/dist/component/garmin/transform/activityDetails.js +173 -0
  100. package/dist/component/garmin/transform/activityDetails.js.map +1 -0
  101. package/dist/component/garmin/transform/bloodPressure.d.ts +12 -0
  102. package/dist/component/garmin/transform/bloodPressure.d.ts.map +1 -0
  103. package/dist/{garmin → component/garmin/transform}/bloodPressure.js +7 -8
  104. package/dist/component/garmin/transform/bloodPressure.js.map +1 -0
  105. package/dist/component/garmin/transform/bodyCompositions.d.ts +12 -0
  106. package/dist/component/garmin/transform/bodyCompositions.d.ts.map +1 -0
  107. package/dist/component/garmin/transform/bodyCompositions.js +42 -0
  108. package/dist/component/garmin/transform/bodyCompositions.js.map +1 -0
  109. package/dist/component/garmin/transform/dailies.d.ts +12 -0
  110. package/dist/component/garmin/transform/dailies.d.ts.map +1 -0
  111. package/dist/{garmin/daily.js → component/garmin/transform/dailies.js} +38 -49
  112. package/dist/component/garmin/transform/dailies.js.map +1 -0
  113. package/dist/component/garmin/transform/epochs.d.ts +13 -0
  114. package/dist/component/garmin/transform/epochs.d.ts.map +1 -0
  115. package/dist/component/garmin/transform/epochs.js +76 -0
  116. package/dist/component/garmin/transform/epochs.js.map +1 -0
  117. package/dist/component/garmin/transform/healthSnapshot.d.ts +12 -0
  118. package/dist/component/garmin/transform/healthSnapshot.d.ts.map +1 -0
  119. package/dist/component/garmin/transform/healthSnapshot.js +111 -0
  120. package/dist/component/garmin/transform/healthSnapshot.js.map +1 -0
  121. package/dist/component/garmin/transform/hrvSummary.d.ts +12 -0
  122. package/dist/component/garmin/transform/hrvSummary.d.ts.map +1 -0
  123. package/dist/{garmin/hrv.js → component/garmin/transform/hrvSummary.js} +16 -16
  124. package/dist/component/garmin/transform/hrvSummary.js.map +1 -0
  125. package/dist/component/garmin/transform/manuallyUpdatedActivities.d.ts +11 -0
  126. package/dist/component/garmin/transform/manuallyUpdatedActivities.d.ts.map +1 -0
  127. package/dist/component/garmin/transform/manuallyUpdatedActivities.js +20 -0
  128. package/dist/component/garmin/transform/manuallyUpdatedActivities.js.map +1 -0
  129. package/dist/{garmin/maps/activity-type.d.ts → component/garmin/transform/maps/activityType.d.ts} +1 -1
  130. package/dist/component/garmin/transform/maps/activityType.d.ts.map +1 -0
  131. package/dist/{garmin/maps/activity-type.js → component/garmin/transform/maps/activityType.js} +1 -1
  132. package/dist/component/garmin/transform/maps/activityType.js.map +1 -0
  133. package/dist/{garmin/maps/sleep-level.d.ts → component/garmin/transform/maps/sleepLevel.d.ts} +1 -1
  134. package/dist/component/garmin/transform/maps/sleepLevel.d.ts.map +1 -0
  135. package/dist/{garmin/maps/sleep-level.js → component/garmin/transform/maps/sleepLevel.js} +1 -1
  136. package/dist/component/garmin/transform/maps/sleepLevel.js.map +1 -0
  137. package/dist/component/garmin/transform/menstrualCycleTracking.d.ts +10 -0
  138. package/dist/component/garmin/transform/menstrualCycleTracking.d.ts.map +1 -0
  139. package/dist/{garmin/menstruation.js → component/garmin/transform/menstrualCycleTracking.js} +17 -12
  140. package/dist/component/garmin/transform/menstrualCycleTracking.js.map +1 -0
  141. package/dist/component/garmin/transform/moveIQ.d.ts +14 -0
  142. package/dist/component/garmin/transform/moveIQ.d.ts.map +1 -0
  143. package/dist/component/garmin/transform/moveIQ.js +41 -0
  144. package/dist/component/garmin/transform/moveIQ.js.map +1 -0
  145. package/dist/{garmin → component/garmin/transform}/plannedWorkout.d.ts +3 -4
  146. package/dist/component/garmin/transform/plannedWorkout.d.ts.map +1 -0
  147. package/dist/{garmin → component/garmin/transform}/plannedWorkout.js +61 -70
  148. package/dist/component/garmin/transform/plannedWorkout.js.map +1 -0
  149. package/dist/component/garmin/transform/pulseOx.d.ts +12 -0
  150. package/dist/component/garmin/transform/pulseOx.d.ts.map +1 -0
  151. package/dist/component/garmin/transform/pulseOx.js +46 -0
  152. package/dist/component/garmin/transform/pulseOx.js.map +1 -0
  153. package/dist/component/garmin/transform/respiration.d.ts +12 -0
  154. package/dist/component/garmin/transform/respiration.d.ts.map +1 -0
  155. package/dist/component/garmin/transform/respiration.js +54 -0
  156. package/dist/component/garmin/transform/respiration.js.map +1 -0
  157. package/dist/component/garmin/transform/skinTemperature.d.ts +12 -0
  158. package/dist/component/garmin/transform/skinTemperature.d.ts.map +1 -0
  159. package/dist/{garmin/skinTemp.js → component/garmin/transform/skinTemperature.js} +13 -10
  160. package/dist/component/garmin/transform/skinTemperature.js.map +1 -0
  161. package/dist/{garmin/sleep.d.ts → component/garmin/transform/sleeps.d.ts} +13 -20
  162. package/dist/component/garmin/transform/sleeps.d.ts.map +1 -0
  163. package/dist/{garmin/sleep.js → component/garmin/transform/sleeps.js} +39 -50
  164. package/dist/component/garmin/transform/sleeps.js.map +1 -0
  165. package/dist/component/garmin/transform/stress.d.ts +12 -0
  166. package/dist/component/garmin/transform/stress.d.ts.map +1 -0
  167. package/dist/component/garmin/transform/stress.js +56 -0
  168. package/dist/component/garmin/transform/stress.js.map +1 -0
  169. package/dist/component/garmin/transform/userMetrics.d.ts +12 -0
  170. package/dist/component/garmin/transform/userMetrics.d.ts.map +1 -0
  171. package/dist/{garmin → component/garmin/transform}/userMetrics.js +19 -12
  172. package/dist/component/garmin/transform/userMetrics.js.map +1 -0
  173. package/dist/component/garmin/types/trainingApiWorkouts/client/client.gen.d.ts +3 -0
  174. package/dist/component/garmin/types/trainingApiWorkouts/client/client.gen.d.ts.map +1 -0
  175. package/dist/component/garmin/types/trainingApiWorkouts/client/client.gen.js +236 -0
  176. package/dist/component/garmin/types/trainingApiWorkouts/client/client.gen.js.map +1 -0
  177. package/dist/component/garmin/types/trainingApiWorkouts/client/index.d.ts +9 -0
  178. package/dist/component/garmin/types/trainingApiWorkouts/client/index.d.ts.map +1 -0
  179. package/dist/component/garmin/types/trainingApiWorkouts/client/index.js +7 -0
  180. package/dist/component/garmin/types/trainingApiWorkouts/client/index.js.map +1 -0
  181. package/dist/component/garmin/types/trainingApiWorkouts/client/types.gen.d.ts +118 -0
  182. package/dist/component/garmin/types/trainingApiWorkouts/client/types.gen.d.ts.map +1 -0
  183. package/dist/component/garmin/types/trainingApiWorkouts/client/types.gen.js +3 -0
  184. package/dist/component/garmin/types/trainingApiWorkouts/client/types.gen.js.map +1 -0
  185. package/dist/component/garmin/types/trainingApiWorkouts/client/utils.gen.d.ts +34 -0
  186. package/dist/component/garmin/types/trainingApiWorkouts/client/utils.gen.d.ts.map +1 -0
  187. package/dist/component/garmin/types/trainingApiWorkouts/client/utils.gen.js +229 -0
  188. package/dist/component/garmin/types/trainingApiWorkouts/client/utils.gen.js.map +1 -0
  189. package/dist/component/garmin/types/trainingApiWorkouts/client.gen.d.ts +13 -0
  190. package/dist/component/garmin/types/trainingApiWorkouts/client.gen.d.ts.map +1 -0
  191. package/dist/component/garmin/types/trainingApiWorkouts/client.gen.js +4 -0
  192. package/dist/component/garmin/types/trainingApiWorkouts/client.gen.js.map +1 -0
  193. package/dist/component/garmin/types/trainingApiWorkouts/core/auth.gen.d.ts +19 -0
  194. package/dist/component/garmin/types/trainingApiWorkouts/core/auth.gen.d.ts.map +1 -0
  195. package/dist/component/garmin/types/trainingApiWorkouts/core/auth.gen.js +15 -0
  196. package/dist/component/garmin/types/trainingApiWorkouts/core/auth.gen.js.map +1 -0
  197. package/dist/component/garmin/types/trainingApiWorkouts/core/bodySerializer.gen.d.ts +26 -0
  198. package/dist/component/garmin/types/trainingApiWorkouts/core/bodySerializer.gen.d.ts.map +1 -0
  199. package/dist/component/garmin/types/trainingApiWorkouts/core/bodySerializer.gen.js +58 -0
  200. package/dist/component/garmin/types/trainingApiWorkouts/core/bodySerializer.gen.js.map +1 -0
  201. package/dist/component/garmin/types/trainingApiWorkouts/core/params.gen.d.ts +44 -0
  202. package/dist/component/garmin/types/trainingApiWorkouts/core/params.gen.d.ts.map +1 -0
  203. package/dist/component/garmin/types/trainingApiWorkouts/core/params.gen.js +101 -0
  204. package/dist/component/garmin/types/trainingApiWorkouts/core/params.gen.js.map +1 -0
  205. package/dist/component/garmin/types/trainingApiWorkouts/core/pathSerializer.gen.d.ts +34 -0
  206. package/dist/component/garmin/types/trainingApiWorkouts/core/pathSerializer.gen.d.ts.map +1 -0
  207. package/dist/component/garmin/types/trainingApiWorkouts/core/pathSerializer.gen.js +107 -0
  208. package/dist/component/garmin/types/trainingApiWorkouts/core/pathSerializer.gen.js.map +1 -0
  209. package/dist/component/garmin/types/trainingApiWorkouts/core/queryKeySerializer.gen.d.ts +19 -0
  210. package/dist/component/garmin/types/trainingApiWorkouts/core/queryKeySerializer.gen.d.ts.map +1 -0
  211. package/dist/component/garmin/types/trainingApiWorkouts/core/queryKeySerializer.gen.js +93 -0
  212. package/dist/component/garmin/types/trainingApiWorkouts/core/queryKeySerializer.gen.js.map +1 -0
  213. package/dist/component/garmin/types/trainingApiWorkouts/core/serverSentEvents.gen.d.ts +72 -0
  214. package/dist/component/garmin/types/trainingApiWorkouts/core/serverSentEvents.gen.d.ts.map +1 -0
  215. package/dist/component/garmin/types/trainingApiWorkouts/core/serverSentEvents.gen.js +134 -0
  216. package/dist/component/garmin/types/trainingApiWorkouts/core/serverSentEvents.gen.js.map +1 -0
  217. package/dist/component/garmin/types/trainingApiWorkouts/core/types.gen.d.ts +79 -0
  218. package/dist/component/garmin/types/trainingApiWorkouts/core/types.gen.d.ts.map +1 -0
  219. package/dist/component/garmin/types/trainingApiWorkouts/core/types.gen.js +3 -0
  220. package/dist/component/garmin/types/trainingApiWorkouts/core/types.gen.js.map +1 -0
  221. package/dist/component/garmin/types/trainingApiWorkouts/core/utils.gen.d.ts +20 -0
  222. package/dist/component/garmin/types/trainingApiWorkouts/core/utils.gen.d.ts.map +1 -0
  223. package/dist/component/garmin/types/trainingApiWorkouts/core/utils.gen.js +88 -0
  224. package/dist/component/garmin/types/trainingApiWorkouts/core/utils.gen.js.map +1 -0
  225. package/dist/component/garmin/types/trainingApiWorkouts/index.d.ts +3 -0
  226. package/dist/component/garmin/types/trainingApiWorkouts/index.d.ts.map +1 -0
  227. package/dist/component/garmin/types/trainingApiWorkouts/index.js +3 -0
  228. package/dist/component/garmin/types/trainingApiWorkouts/index.js.map +1 -0
  229. package/dist/component/garmin/types/trainingApiWorkouts/sdk.gen.d.ts +68 -0
  230. package/dist/component/garmin/types/trainingApiWorkouts/sdk.gen.d.ts.map +1 -0
  231. package/dist/component/garmin/types/trainingApiWorkouts/sdk.gen.js +97 -0
  232. package/dist/component/garmin/types/trainingApiWorkouts/sdk.gen.js.map +1 -0
  233. package/dist/component/garmin/types/trainingApiWorkouts/types.gen.d.ts +330 -0
  234. package/dist/component/garmin/types/trainingApiWorkouts/types.gen.d.ts.map +1 -0
  235. package/dist/component/garmin/types/trainingApiWorkouts/types.gen.js +3 -0
  236. package/dist/component/garmin/types/trainingApiWorkouts/types.gen.js.map +1 -0
  237. package/dist/component/garmin/types/trainingApiWorkouts/zod.gen.d.ts +2463 -0
  238. package/dist/component/garmin/types/trainingApiWorkouts/zod.gen.d.ts.map +1 -0
  239. package/dist/component/garmin/types/trainingApiWorkouts/zod.gen.js +388 -0
  240. package/dist/component/garmin/types/trainingApiWorkouts/zod.gen.js.map +1 -0
  241. package/dist/component/garmin/types/wellnessApi/client/client.gen.d.ts +3 -0
  242. package/dist/component/garmin/types/wellnessApi/client/client.gen.d.ts.map +1 -0
  243. package/dist/component/garmin/types/wellnessApi/client/client.gen.js +236 -0
  244. package/dist/component/garmin/types/wellnessApi/client/client.gen.js.map +1 -0
  245. package/dist/component/garmin/types/wellnessApi/client/index.d.ts +9 -0
  246. package/dist/component/garmin/types/wellnessApi/client/index.d.ts.map +1 -0
  247. package/dist/component/garmin/types/wellnessApi/client/index.js +7 -0
  248. package/dist/component/garmin/types/wellnessApi/client/index.js.map +1 -0
  249. package/dist/component/garmin/types/wellnessApi/client/types.gen.d.ts +118 -0
  250. package/dist/component/garmin/types/wellnessApi/client/types.gen.d.ts.map +1 -0
  251. package/dist/component/garmin/types/wellnessApi/client/types.gen.js +3 -0
  252. package/dist/component/garmin/types/wellnessApi/client/types.gen.js.map +1 -0
  253. package/dist/component/garmin/types/wellnessApi/client/utils.gen.d.ts +34 -0
  254. package/dist/component/garmin/types/wellnessApi/client/utils.gen.d.ts.map +1 -0
  255. package/dist/component/garmin/types/wellnessApi/client/utils.gen.js +229 -0
  256. package/dist/component/garmin/types/wellnessApi/client/utils.gen.js.map +1 -0
  257. package/dist/component/garmin/types/wellnessApi/client.gen.d.ts +13 -0
  258. package/dist/component/garmin/types/wellnessApi/client.gen.d.ts.map +1 -0
  259. package/dist/component/garmin/types/wellnessApi/client.gen.js +4 -0
  260. package/dist/component/garmin/types/wellnessApi/client.gen.js.map +1 -0
  261. package/dist/component/garmin/types/wellnessApi/core/auth.gen.d.ts +19 -0
  262. package/dist/component/garmin/types/wellnessApi/core/auth.gen.d.ts.map +1 -0
  263. package/dist/component/garmin/types/wellnessApi/core/auth.gen.js +15 -0
  264. package/dist/component/garmin/types/wellnessApi/core/auth.gen.js.map +1 -0
  265. package/dist/component/garmin/types/wellnessApi/core/bodySerializer.gen.d.ts +26 -0
  266. package/dist/component/garmin/types/wellnessApi/core/bodySerializer.gen.d.ts.map +1 -0
  267. package/dist/component/garmin/types/wellnessApi/core/bodySerializer.gen.js +58 -0
  268. package/dist/component/garmin/types/wellnessApi/core/bodySerializer.gen.js.map +1 -0
  269. package/dist/component/garmin/types/wellnessApi/core/params.gen.d.ts +44 -0
  270. package/dist/component/garmin/types/wellnessApi/core/params.gen.d.ts.map +1 -0
  271. package/dist/component/garmin/types/wellnessApi/core/params.gen.js +101 -0
  272. package/dist/component/garmin/types/wellnessApi/core/params.gen.js.map +1 -0
  273. package/dist/component/garmin/types/wellnessApi/core/pathSerializer.gen.d.ts +34 -0
  274. package/dist/component/garmin/types/wellnessApi/core/pathSerializer.gen.d.ts.map +1 -0
  275. package/dist/component/garmin/types/wellnessApi/core/pathSerializer.gen.js +107 -0
  276. package/dist/component/garmin/types/wellnessApi/core/pathSerializer.gen.js.map +1 -0
  277. package/dist/component/garmin/types/wellnessApi/core/queryKeySerializer.gen.d.ts +19 -0
  278. package/dist/component/garmin/types/wellnessApi/core/queryKeySerializer.gen.d.ts.map +1 -0
  279. package/dist/component/garmin/types/wellnessApi/core/queryKeySerializer.gen.js +93 -0
  280. package/dist/component/garmin/types/wellnessApi/core/queryKeySerializer.gen.js.map +1 -0
  281. package/dist/component/garmin/types/wellnessApi/core/serverSentEvents.gen.d.ts +72 -0
  282. package/dist/component/garmin/types/wellnessApi/core/serverSentEvents.gen.d.ts.map +1 -0
  283. package/dist/component/garmin/types/wellnessApi/core/serverSentEvents.gen.js +134 -0
  284. package/dist/component/garmin/types/wellnessApi/core/serverSentEvents.gen.js.map +1 -0
  285. package/dist/component/garmin/types/wellnessApi/core/types.gen.d.ts +79 -0
  286. package/dist/component/garmin/types/wellnessApi/core/types.gen.d.ts.map +1 -0
  287. package/dist/component/garmin/types/wellnessApi/core/types.gen.js +3 -0
  288. package/dist/component/garmin/types/wellnessApi/core/types.gen.js.map +1 -0
  289. package/dist/component/garmin/types/wellnessApi/core/utils.gen.d.ts +20 -0
  290. package/dist/component/garmin/types/wellnessApi/core/utils.gen.d.ts.map +1 -0
  291. package/dist/component/garmin/types/wellnessApi/core/utils.gen.js +88 -0
  292. package/dist/component/garmin/types/wellnessApi/core/utils.gen.js.map +1 -0
  293. package/dist/component/garmin/types/wellnessApi/index.d.ts +3 -0
  294. package/dist/component/garmin/types/wellnessApi/index.d.ts.map +1 -0
  295. package/dist/component/garmin/types/wellnessApi/index.js +3 -0
  296. package/dist/component/garmin/types/wellnessApi/index.js.map +1 -0
  297. package/dist/component/garmin/types/wellnessApi/sdk.gen.d.ts +166 -0
  298. package/dist/component/garmin/types/wellnessApi/sdk.gen.d.ts.map +1 -0
  299. package/dist/component/garmin/types/wellnessApi/sdk.gen.js +153 -0
  300. package/dist/component/garmin/types/wellnessApi/sdk.gen.js.map +1 -0
  301. package/dist/component/garmin/types/wellnessApi/types.gen.d.ts +2733 -0
  302. package/dist/component/garmin/types/wellnessApi/types.gen.d.ts.map +1 -0
  303. package/dist/component/garmin/types/wellnessApi/types.gen.js +3 -0
  304. package/dist/component/garmin/types/wellnessApi/types.gen.js.map +1 -0
  305. package/dist/component/garmin/types/wellnessApi/zod.gen.d.ts +1319 -0
  306. package/dist/component/garmin/types/wellnessApi/zod.gen.d.ts.map +1 -0
  307. package/dist/component/garmin/types/wellnessApi/zod.gen.js +784 -0
  308. package/dist/component/garmin/types/wellnessApi/zod.gen.js.map +1 -0
  309. package/dist/component/garmin/utils.d.ts +16 -0
  310. package/dist/component/garmin/utils.d.ts.map +1 -0
  311. package/dist/component/garmin/utils.js +17 -0
  312. package/dist/component/garmin/utils.js.map +1 -0
  313. package/dist/component/garmin/webhooks.d.ts +128 -0
  314. package/dist/component/garmin/webhooks.d.ts.map +1 -0
  315. package/dist/component/garmin/webhooks.js +531 -0
  316. package/dist/component/garmin/webhooks.js.map +1 -0
  317. package/dist/component/private.d.ts +4 -4
  318. package/dist/component/public.d.ts +333 -333
  319. package/dist/component/schema.d.ts +133 -133
  320. package/dist/component/strava/private.d.ts +30 -0
  321. package/dist/component/strava/private.d.ts.map +1 -0
  322. package/dist/component/strava/private.js +71 -0
  323. package/dist/component/strava/private.js.map +1 -0
  324. package/dist/component/{strava.d.ts → strava/public.d.ts} +3 -31
  325. package/dist/component/strava/public.d.ts.map +1 -0
  326. package/dist/component/{strava.js → strava/public.js} +22 -101
  327. package/dist/component/strava/public.js.map +1 -0
  328. package/dist/component/validators/activity.d.ts +6 -0
  329. package/dist/component/validators/activity.d.ts.map +1 -1
  330. package/dist/component/validators/activity.js.map +1 -1
  331. package/dist/component/validators/body.d.ts +20 -14
  332. package/dist/component/validators/body.d.ts.map +1 -1
  333. package/dist/component/validators/body.js.map +1 -1
  334. package/dist/component/validators/daily.d.ts +6 -0
  335. package/dist/component/validators/daily.d.ts.map +1 -1
  336. package/dist/component/validators/daily.js.map +1 -1
  337. package/dist/component/validators/enums.d.ts +1 -1
  338. package/dist/component/validators/menstruation.d.ts +5 -0
  339. package/dist/component/validators/menstruation.d.ts.map +1 -1
  340. package/dist/component/validators/menstruation.js.map +1 -1
  341. package/dist/component/validators/plannedWorkout.d.ts +6 -0
  342. package/dist/component/validators/plannedWorkout.d.ts.map +1 -1
  343. package/dist/component/validators/plannedWorkout.js.map +1 -1
  344. package/dist/validators.d.ts +31 -28
  345. package/dist/validators.d.ts.map +1 -1
  346. package/dist/validators.js +2 -2
  347. package/dist/validators.js.map +1 -1
  348. package/package.json +4 -7
  349. package/src/client/index.ts +41 -172
  350. package/src/component/_generated/api.ts +98 -4
  351. package/src/component/_generated/component.ts +252 -284
  352. package/src/{garmin → component/garmin}/auth.ts +8 -1
  353. package/src/component/garmin/client.ts +39 -0
  354. package/src/component/garmin/private.ts +1798 -0
  355. package/src/component/garmin/public.ts +938 -0
  356. package/src/component/garmin/schemas/activity.ts +40 -0
  357. package/src/component/garmin/schemas/activityDetails.ts +45 -0
  358. package/src/component/garmin/schemas/bloodPressure.ts +38 -0
  359. package/src/component/garmin/schemas/bodyCompositions.ts +38 -0
  360. package/src/component/garmin/schemas/dailies.ts +38 -0
  361. package/src/component/garmin/schemas/epochs.ts +38 -0
  362. package/src/component/garmin/schemas/healthSnapshot.ts +38 -0
  363. package/src/component/garmin/schemas/hrvSummary.ts +38 -0
  364. package/src/component/garmin/schemas/manuallyUpdatedActivities.ts +49 -0
  365. package/src/component/garmin/schemas/menstrualCycleTracking.ts +39 -0
  366. package/src/component/garmin/schemas/moveIQ.ts +38 -0
  367. package/src/component/garmin/schemas/pulseOx.ts +39 -0
  368. package/src/component/garmin/schemas/respiration.ts +39 -0
  369. package/src/component/garmin/schemas/skinTemperature.ts +39 -0
  370. package/src/component/garmin/schemas/sleeps.ts +38 -0
  371. package/src/component/garmin/schemas/stress.ts +43 -0
  372. package/src/component/garmin/schemas/userMetrics.ts +39 -0
  373. package/src/component/garmin/transform/activity.ts +143 -0
  374. package/src/component/garmin/transform/activityDetails.ts +236 -0
  375. package/src/{garmin → component/garmin/transform}/bloodPressure.ts +39 -41
  376. package/src/component/garmin/transform/bodyCompositions.ts +51 -0
  377. package/src/component/garmin/transform/dailies.ts +179 -0
  378. package/src/component/garmin/transform/epochs.ts +94 -0
  379. package/src/component/garmin/transform/healthSnapshot.ts +152 -0
  380. package/src/component/garmin/transform/hrvSummary.ts +56 -0
  381. package/src/component/garmin/transform/manuallyUpdatedActivities.ts +27 -0
  382. package/src/{garmin/maps/activity-type.ts → component/garmin/transform/maps/activityType.ts} +116 -116
  383. package/src/{garmin/maps/sleep-level.ts → component/garmin/transform/maps/sleepLevel.ts} +22 -22
  384. package/src/component/garmin/transform/menstrualCycleTracking.ts +48 -0
  385. package/src/component/garmin/transform/moveIQ.ts +48 -0
  386. package/src/{garmin → component/garmin/transform}/plannedWorkout.ts +328 -333
  387. package/src/component/garmin/transform/pulseOx.ts +64 -0
  388. package/src/component/garmin/transform/respiration.ts +73 -0
  389. package/src/component/garmin/transform/skinTemperature.ts +44 -0
  390. package/src/component/garmin/transform/sleeps.ts +159 -0
  391. package/src/component/garmin/transform/stress.ts +78 -0
  392. package/src/component/garmin/transform/userMetrics.ts +56 -0
  393. package/src/component/garmin/types/specs/training-api-workouts.json +699 -0
  394. package/src/component/garmin/types/trainingApiWorkouts/client/client.gen.ts +290 -0
  395. package/src/component/garmin/types/trainingApiWorkouts/client/index.ts +25 -0
  396. package/src/component/garmin/types/trainingApiWorkouts/client/types.gen.ts +214 -0
  397. package/src/component/garmin/types/trainingApiWorkouts/client/utils.gen.ts +316 -0
  398. package/src/component/garmin/types/trainingApiWorkouts/client.gen.ts +16 -0
  399. package/src/component/garmin/types/trainingApiWorkouts/core/auth.gen.ts +41 -0
  400. package/src/component/garmin/types/trainingApiWorkouts/core/bodySerializer.gen.ts +82 -0
  401. package/src/component/garmin/types/trainingApiWorkouts/core/params.gen.ts +169 -0
  402. package/src/component/garmin/types/trainingApiWorkouts/core/pathSerializer.gen.ts +171 -0
  403. package/src/component/garmin/types/trainingApiWorkouts/core/queryKeySerializer.gen.ts +117 -0
  404. package/src/component/garmin/types/trainingApiWorkouts/core/serverSentEvents.gen.ts +243 -0
  405. package/src/component/garmin/types/trainingApiWorkouts/core/types.gen.ts +104 -0
  406. package/src/component/garmin/types/trainingApiWorkouts/core/utils.gen.ts +140 -0
  407. package/src/component/garmin/types/trainingApiWorkouts/index.ts +4 -0
  408. package/src/component/garmin/types/trainingApiWorkouts/sdk.gen.ts +126 -0
  409. package/src/component/garmin/types/trainingApiWorkouts/types.gen.ts +387 -0
  410. package/src/component/garmin/types/trainingApiWorkouts/zod.gen.ts +423 -0
  411. package/src/component/garmin/types/wellnessApi/client/client.gen.ts +290 -0
  412. package/src/component/garmin/types/wellnessApi/client/index.ts +25 -0
  413. package/src/component/garmin/types/wellnessApi/client/types.gen.ts +214 -0
  414. package/src/component/garmin/types/wellnessApi/client/utils.gen.ts +316 -0
  415. package/src/component/garmin/types/wellnessApi/client.gen.ts +16 -0
  416. package/src/component/garmin/types/wellnessApi/core/auth.gen.ts +41 -0
  417. package/src/component/garmin/types/wellnessApi/core/bodySerializer.gen.ts +82 -0
  418. package/src/component/garmin/types/wellnessApi/core/params.gen.ts +169 -0
  419. package/src/component/garmin/types/wellnessApi/core/pathSerializer.gen.ts +171 -0
  420. package/src/component/garmin/types/wellnessApi/core/queryKeySerializer.gen.ts +117 -0
  421. package/src/component/garmin/types/wellnessApi/core/serverSentEvents.gen.ts +243 -0
  422. package/src/component/garmin/types/wellnessApi/core/types.gen.ts +104 -0
  423. package/src/component/garmin/types/wellnessApi/core/utils.gen.ts +140 -0
  424. package/src/component/garmin/types/wellnessApi/index.ts +4 -0
  425. package/src/component/garmin/types/wellnessApi/sdk.gen.ts +207 -0
  426. package/src/component/garmin/types/wellnessApi/types.gen.ts +2942 -0
  427. package/src/component/garmin/types/wellnessApi/zod.gen.ts +878 -0
  428. package/src/component/garmin/utils.ts +25 -0
  429. package/src/component/garmin/webhooks.ts +852 -0
  430. package/src/component/strava/private.ts +89 -0
  431. package/src/component/{strava.ts → strava/public.ts} +341 -404
  432. package/src/component/validators/activity.ts +5 -0
  433. package/src/component/validators/body.ts +5 -0
  434. package/src/component/validators/daily.ts +5 -0
  435. package/src/component/validators/menstruation.ts +5 -1
  436. package/src/component/validators/plannedWorkout.ts +5 -0
  437. package/src/validators.ts +12 -2
  438. package/dist/component/garmin.d.ts +0 -366
  439. package/dist/component/garmin.d.ts.map +0 -1
  440. package/dist/component/garmin.js +0 -1481
  441. package/dist/component/garmin.js.map +0 -1
  442. package/dist/component/strava.d.ts.map +0 -1
  443. package/dist/component/strava.js.map +0 -1
  444. package/dist/garmin/activity.d.ts +0 -92
  445. package/dist/garmin/activity.d.ts.map +0 -1
  446. package/dist/garmin/activity.js +0 -201
  447. package/dist/garmin/activity.js.map +0 -1
  448. package/dist/garmin/auth.d.ts.map +0 -1
  449. package/dist/garmin/auth.js.map +0 -1
  450. package/dist/garmin/bloodPressure.d.ts +0 -28
  451. package/dist/garmin/bloodPressure.d.ts.map +0 -1
  452. package/dist/garmin/bloodPressure.js.map +0 -1
  453. package/dist/garmin/body.d.ts +0 -26
  454. package/dist/garmin/body.d.ts.map +0 -1
  455. package/dist/garmin/body.js +0 -44
  456. package/dist/garmin/body.js.map +0 -1
  457. package/dist/garmin/client.d.ts +0 -246
  458. package/dist/garmin/client.d.ts.map +0 -1
  459. package/dist/garmin/client.js +0 -566
  460. package/dist/garmin/client.js.map +0 -1
  461. package/dist/garmin/daily.d.ts +0 -74
  462. package/dist/garmin/daily.d.ts.map +0 -1
  463. package/dist/garmin/daily.js.map +0 -1
  464. package/dist/garmin/hrv.d.ts +0 -30
  465. package/dist/garmin/hrv.d.ts.map +0 -1
  466. package/dist/garmin/hrv.js.map +0 -1
  467. package/dist/garmin/index.d.ts +0 -34
  468. package/dist/garmin/index.d.ts.map +0 -1
  469. package/dist/garmin/index.js +0 -28
  470. package/dist/garmin/index.js.map +0 -1
  471. package/dist/garmin/maps/activity-type.d.ts.map +0 -1
  472. package/dist/garmin/maps/activity-type.js.map +0 -1
  473. package/dist/garmin/maps/sleep-level.d.ts.map +0 -1
  474. package/dist/garmin/maps/sleep-level.js.map +0 -1
  475. package/dist/garmin/menstruation.d.ts +0 -25
  476. package/dist/garmin/menstruation.d.ts.map +0 -1
  477. package/dist/garmin/menstruation.js.map +0 -1
  478. package/dist/garmin/plannedWorkout.d.ts.map +0 -1
  479. package/dist/garmin/plannedWorkout.js.map +0 -1
  480. package/dist/garmin/pulseOx.d.ts +0 -24
  481. package/dist/garmin/pulseOx.d.ts.map +0 -1
  482. package/dist/garmin/pulseOx.js +0 -33
  483. package/dist/garmin/pulseOx.js.map +0 -1
  484. package/dist/garmin/respiration.d.ts +0 -29
  485. package/dist/garmin/respiration.d.ts.map +0 -1
  486. package/dist/garmin/respiration.js +0 -42
  487. package/dist/garmin/respiration.js.map +0 -1
  488. package/dist/garmin/skinTemp.d.ts +0 -27
  489. package/dist/garmin/skinTemp.d.ts.map +0 -1
  490. package/dist/garmin/skinTemp.js.map +0 -1
  491. package/dist/garmin/sleep.d.ts.map +0 -1
  492. package/dist/garmin/sleep.js.map +0 -1
  493. package/dist/garmin/stressDetails.d.ts +0 -30
  494. package/dist/garmin/stressDetails.d.ts.map +0 -1
  495. package/dist/garmin/stressDetails.js +0 -49
  496. package/dist/garmin/stressDetails.js.map +0 -1
  497. package/dist/garmin/sync.d.ts +0 -53
  498. package/dist/garmin/sync.d.ts.map +0 -1
  499. package/dist/garmin/sync.js +0 -457
  500. package/dist/garmin/sync.js.map +0 -1
  501. package/dist/garmin/types.d.ts +0 -175
  502. package/dist/garmin/types.d.ts.map +0 -1
  503. package/dist/garmin/types.js +0 -10
  504. package/dist/garmin/types.js.map +0 -1
  505. package/dist/garmin/userMetrics.d.ts +0 -23
  506. package/dist/garmin/userMetrics.d.ts.map +0 -1
  507. package/dist/garmin/userMetrics.js.map +0 -1
  508. package/src/component/garmin.ts +0 -1722
  509. package/src/garmin/activity.test.ts +0 -170
  510. package/src/garmin/activity.ts +0 -265
  511. package/src/garmin/auth.test.ts +0 -103
  512. package/src/garmin/body.ts +0 -59
  513. package/src/garmin/client.ts +0 -886
  514. package/src/garmin/daily.ts +0 -215
  515. package/src/garmin/hrv.ts +0 -57
  516. package/src/garmin/index.ts +0 -145
  517. package/src/garmin/maps/activity-type.test.ts +0 -78
  518. package/src/garmin/menstruation.ts +0 -44
  519. package/src/garmin/pulseOx.ts +0 -45
  520. package/src/garmin/respiration.ts +0 -55
  521. package/src/garmin/skinTemp.ts +0 -42
  522. package/src/garmin/sleep.test.ts +0 -109
  523. package/src/garmin/sleep.ts +0 -176
  524. package/src/garmin/stressDetails.ts +0 -71
  525. package/src/garmin/sync.ts +0 -566
  526. package/src/garmin/types.ts +0 -268
  527. package/src/garmin/userMetrics.ts +0 -50
  528. package/src/garmin/wellness-api.d.ts +0 -5637
  529. /package/dist/{garmin → component/garmin}/auth.js +0 -0
  530. /package/src/{garmin/spec → component/garmin/types/specs}/wellness-api.json +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dailies.js","sourceRoot":"","sources":["../../../../src/component/garmin/transform/dailies.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { SomaDaily } from "../../validators/daily.js";
2
+ import type { ClientEpoch } from "../types/wellnessApi/types.gen.js";
3
+ /**
4
+ * Transform a Garmin epoch summary push item into a Soma Daily document shape.
5
+ *
6
+ * Epoch summaries represent 15-minute time slices of wellness monitoring data.
7
+ * They are ingested into the `daily` table via `ingestDaily`,
8
+ * keyed by `metadata.start_time + metadata.end_time`.
9
+ *
10
+ * Returns `null` when no meaningful data is present.
11
+ */
12
+ export declare function transformEpoch(epoch: ClientEpoch): SomaDaily | null;
13
+ //# sourceMappingURL=epochs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"epochs.d.ts","sourceRoot":"","sources":["../../../../src/component/garmin/transform/epochs.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAErE;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CA+BnE"}
@@ -0,0 +1,76 @@
1
+ // ─── Epochs Transformer ──────────────────────────────────────────────────────
2
+ // Transforms a Garmin epoch summary push item into the Soma Daily schema shape.
3
+ // Epoch summaries are 15-minute wellness monitoring records with per-activity-type
4
+ // granularity (steps, distance, calories, MET). They are ingested into the daily
5
+ // table just like daily summaries.
6
+ /**
7
+ * Transform a Garmin epoch summary push item into a Soma Daily document shape.
8
+ *
9
+ * Epoch summaries represent 15-minute time slices of wellness monitoring data.
10
+ * They are ingested into the `daily` table via `ingestDaily`,
11
+ * keyed by `metadata.start_time + metadata.end_time`.
12
+ *
13
+ * Returns `null` when no meaningful data is present.
14
+ */
15
+ export function transformEpoch(epoch) {
16
+ const startMs = (epoch.startTimeInSeconds ?? 0) * 1000;
17
+ const endMs = startMs + (epoch.durationInSeconds ?? 0) * 1000;
18
+ const activeDurations = buildActiveDurationsData(epoch);
19
+ const calories = buildCaloriesData(epoch);
20
+ const distance = buildDistanceData(epoch);
21
+ const met = buildMETData(epoch);
22
+ // Skip if there's no meaningful data at all
23
+ if (activeDurations == null &&
24
+ calories == null &&
25
+ distance == null &&
26
+ met == null) {
27
+ return null;
28
+ }
29
+ return {
30
+ metadata: {
31
+ start_time: new Date(startMs).toISOString(),
32
+ end_time: new Date(endMs).toISOString(),
33
+ upload_type: 1, // Automatic
34
+ },
35
+ active_durations_data: activeDurations,
36
+ calories_data: calories,
37
+ distance_data: distance,
38
+ MET_data: met,
39
+ };
40
+ }
41
+ // ─── Helpers ──────────────────────────────────────────────────────────────────
42
+ function buildActiveDurationsData(epoch) {
43
+ if (epoch.activeTimeInSeconds == null) {
44
+ return undefined;
45
+ }
46
+ return {
47
+ activity_seconds: epoch.activeTimeInSeconds,
48
+ };
49
+ }
50
+ function buildCaloriesData(epoch) {
51
+ if (epoch.activeKilocalories == null) {
52
+ return undefined;
53
+ }
54
+ return {
55
+ net_activity_calories: epoch.activeKilocalories,
56
+ total_burned_calories: epoch.activeKilocalories,
57
+ };
58
+ }
59
+ function buildDistanceData(epoch) {
60
+ if (epoch.distanceInMeters == null && epoch.steps == null) {
61
+ return undefined;
62
+ }
63
+ return {
64
+ distance_meters: epoch.distanceInMeters,
65
+ steps: epoch.steps,
66
+ };
67
+ }
68
+ function buildMETData(epoch) {
69
+ if (epoch.met == null) {
70
+ return undefined;
71
+ }
72
+ return {
73
+ avg_level: epoch.met,
74
+ };
75
+ }
76
+ //# sourceMappingURL=epochs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"epochs.js","sourceRoot":"","sources":["../../../../src/component/garmin/transform/epochs.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,gFAAgF;AAChF,mFAAmF;AACnF,iFAAiF;AACjF,mCAAmC;AAKnC;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,KAAkB;IAC/C,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACvD,MAAM,KAAK,GAAG,OAAO,GAAG,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IAE9D,MAAM,eAAe,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAEhC,4CAA4C;IAC5C,IACE,eAAe,IAAI,IAAI;QACvB,QAAQ,IAAI,IAAI;QAChB,QAAQ,IAAI,IAAI;QAChB,GAAG,IAAI,IAAI,EACX,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,QAAQ,EAAE;YACR,UAAU,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE;YAC3C,QAAQ,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;YACvC,WAAW,EAAE,CAAC,EAAE,YAAY;SAC7B;QAED,qBAAqB,EAAE,eAAe;QACtC,aAAa,EAAE,QAAQ;QACvB,aAAa,EAAE,QAAQ;QACvB,QAAQ,EAAE,GAAG;KACd,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,SAAS,wBAAwB,CAAC,KAAkB;IAClD,IAAI,KAAK,CAAC,mBAAmB,IAAI,IAAI,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,gBAAgB,EAAE,KAAK,CAAC,mBAAmB;KAC5C,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAkB;IAC3C,IAAI,KAAK,CAAC,kBAAkB,IAAI,IAAI,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,qBAAqB,EAAE,KAAK,CAAC,kBAAkB;QAC/C,qBAAqB,EAAE,KAAK,CAAC,kBAAkB;KAChD,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAkB;IAC3C,IAAI,KAAK,CAAC,gBAAgB,IAAI,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;QAC1D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,eAAe,EAAE,KAAK,CAAC,gBAAgB;QACvC,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAkB;IACtC,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,GAAG;KACrB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { SomaDaily } from "../../validators/daily.js";
2
+ import type { ClientHealthSnapshot } from "../types/wellnessApi/types.gen.js";
3
+ /**
4
+ * Transform a Garmin Health Snapshot push item into a Soma Daily document shape.
5
+ *
6
+ * Health Snapshot summaries contain epoch-level readings for heart rate, stress,
7
+ * SpO2, respiration, and HRV over a ~2-minute window.
8
+ *
9
+ * Returns `null` when no meaningful data is present.
10
+ */
11
+ export declare function transformHealthSnapshot(snapshot: ClientHealthSnapshot): SomaDaily | null;
12
+ //# sourceMappingURL=healthSnapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"healthSnapshot.d.ts","sourceRoot":"","sources":["../../../../src/component/garmin/transform/healthSnapshot.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAE9E;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,oBAAoB,GAC7B,SAAS,GAAG,IAAI,CAkClB"}
@@ -0,0 +1,111 @@
1
+ // ─── Health Snapshot Transformer ─────────────────────────────────────────────
2
+ // Transforms a Garmin Health Snapshot push item into the Soma Daily schema shape.
3
+ //
4
+ // Health Snapshots are 2-minute sessions containing heart rate, stress, SpO2,
5
+ // respiration, and HRV data. We map these into the Daily model since the data
6
+ // types (HR, stress, oxygen, respiration) align with Daily's sub-fields.
7
+ /**
8
+ * Transform a Garmin Health Snapshot push item into a Soma Daily document shape.
9
+ *
10
+ * Health Snapshot summaries contain epoch-level readings for heart rate, stress,
11
+ * SpO2, respiration, and HRV over a ~2-minute window.
12
+ *
13
+ * Returns `null` when no meaningful data is present.
14
+ */
15
+ export function transformHealthSnapshot(snapshot) {
16
+ const startMs = (snapshot.startTimeInSeconds ?? 0) * 1000;
17
+ const endMs = startMs + (snapshot.durationInSeconds ?? 0) * 1000;
18
+ const summaries = snapshot.summaries;
19
+ if (!summaries || summaries.length === 0)
20
+ return null;
21
+ const heartRate = buildHeartRateData(snapshot);
22
+ const stress = buildStressData(snapshot);
23
+ const oxygen = buildOxygenData(snapshot);
24
+ const respiration = buildRespirationData(snapshot);
25
+ // Skip if there's no meaningful data at all
26
+ if (heartRate == null &&
27
+ stress == null &&
28
+ oxygen == null &&
29
+ respiration == null) {
30
+ return null;
31
+ }
32
+ return {
33
+ metadata: {
34
+ start_time: new Date(startMs).toISOString(),
35
+ end_time: new Date(endMs).toISOString(),
36
+ upload_type: 1, // Automatic
37
+ },
38
+ heart_rate_data: heartRate,
39
+ stress_data: stress,
40
+ oxygen_data: oxygen,
41
+ respiration_data: respiration,
42
+ };
43
+ }
44
+ function findSummary(snapshot, type) {
45
+ return snapshot.summaries?.find((s) => s.summaryType === type);
46
+ }
47
+ function buildHeartRateData(snapshot) {
48
+ const hr = findSummary(snapshot, "heart_rate");
49
+ const rmssd = findSummary(snapshot, "rmssd_hrv");
50
+ const sdrr = findSummary(snapshot, "sdrr_hrv");
51
+ if (!hr && !rmssd && !sdrr)
52
+ return undefined;
53
+ const hasSummary = hr?.avgValue != null || hr?.maxValue != null || hr?.minValue != null;
54
+ const hasHrvSummary = rmssd?.avgValue != null || sdrr?.avgValue != null;
55
+ const hrSamples = hr?.epochSummaries && Object.keys(hr.epochSummaries).length > 0
56
+ ? buildEpochSamples(snapshot.startTimeInSeconds, hr.epochSummaries, (bpm) => ({ bpm }))
57
+ : undefined;
58
+ return {
59
+ summary: hasSummary || hasHrvSummary
60
+ ? {
61
+ avg_hr_bpm: hr?.avgValue,
62
+ max_hr_bpm: hr?.maxValue,
63
+ min_hr_bpm: hr?.minValue,
64
+ avg_hrv_rmssd: rmssd?.avgValue,
65
+ avg_hrv_sdnn: sdrr?.avgValue,
66
+ }
67
+ : undefined,
68
+ detailed: hrSamples && hrSamples.length > 0
69
+ ? { hr_samples: hrSamples }
70
+ : undefined,
71
+ };
72
+ }
73
+ function buildStressData(snapshot) {
74
+ const stress = findSummary(snapshot, "stress");
75
+ if (!stress)
76
+ return undefined;
77
+ return {
78
+ avg_stress_level: stress.avgValue,
79
+ max_stress_level: stress.maxValue,
80
+ };
81
+ }
82
+ function buildOxygenData(snapshot) {
83
+ const spo2 = findSummary(snapshot, "spo2");
84
+ if (!spo2)
85
+ return undefined;
86
+ return {
87
+ avg_saturation_percentage: spo2.avgValue,
88
+ };
89
+ }
90
+ function buildRespirationData(snapshot) {
91
+ const resp = findSummary(snapshot, "respiration");
92
+ if (!resp)
93
+ return undefined;
94
+ return {
95
+ breaths_data: {
96
+ avg_breaths_per_min: resp.avgValue,
97
+ max_breaths_per_min: resp.maxValue,
98
+ min_breaths_per_min: resp.minValue,
99
+ },
100
+ };
101
+ }
102
+ /**
103
+ * Convert Garmin epoch-keyed summaries into timestamped samples.
104
+ */
105
+ function buildEpochSamples(startTimeInSeconds, epochs, mapValue) {
106
+ return Object.entries(epochs).map(([offset, value]) => ({
107
+ timestamp: new Date(((startTimeInSeconds ?? 0) + parseInt(offset, 10)) * 1000).toISOString(),
108
+ ...mapValue(value),
109
+ }));
110
+ }
111
+ //# sourceMappingURL=healthSnapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"healthSnapshot.js","sourceRoot":"","sources":["../../../../src/component/garmin/transform/healthSnapshot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { SomaDaily } from "../../validators/daily.js";
2
+ import type { ClientHrvSummary } from "../types/wellnessApi/types.gen.js";
3
+ /**
4
+ * Transform a Garmin HRV summary push item into a partial Soma Daily shape.
5
+ *
6
+ * HRV summaries are ingested into the `daily` table via `ingestDaily`,
7
+ * enriching the daily record with HRV-specific heart rate data.
8
+ *
9
+ * Returns `null` when no meaningful HRV data is present.
10
+ */
11
+ export declare function transformHRVSummary(hrv: ClientHrvSummary): SomaDaily | null;
12
+ //# sourceMappingURL=hrvSummary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hrvSummary.d.ts","sourceRoot":"","sources":["../../../../src/component/garmin/transform/hrvSummary.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE1E;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,GAAG,SAAS,GAAG,IAAI,CAwC3E"}
@@ -1,39 +1,39 @@
1
- // ─── HRV Transformer ─────────────────────────────────────────────────────────
2
- // Transforms Garmin HRV summary data into fields that enrich a Soma Daily record.
1
+ // ─── HRV Summary Transformer ─────────────────────────────────────────────────
2
+ // Transforms a Garmin HRV summary push item into a partial Soma Daily schema
3
+ // shape. HRV data enriches daily records with heart_rate_data (HRV fields).
3
4
  /**
4
- * Transform a Garmin HRV summary into heart rate data fields for a Soma Daily.
5
+ * Transform a Garmin HRV summary push item into a partial Soma Daily shape.
5
6
  *
6
- * This produces a partial daily shape that can be merged into a matching
7
- * daily record by date.
7
+ * HRV summaries are ingested into the `daily` table via `ingestDaily`,
8
+ * enriching the daily record with HRV-specific heart rate data.
8
9
  *
9
- * @param hrv - The Garmin HRV summary from the Health API
10
- * @returns Partial Soma Daily heart_rate_data fields
10
+ * Returns `null` when no meaningful HRV data is present.
11
11
  */
12
- export function transformHRV(hrv) {
12
+ export function transformHRVSummary(hrv) {
13
13
  const startMs = (hrv.startTimeInSeconds ?? 0) * 1000;
14
14
  const endMs = startMs + (hrv.durationInSeconds ?? 0) * 1000;
15
15
  const hasSummary = hrv.lastNightAvg != null || hrv.lastNight5MinHigh != null;
16
16
  const hasSamples = hrv.hrvValues != null && Object.keys(hrv.hrvValues).length > 0;
17
17
  if (!hasSummary && !hasSamples) {
18
- return {
19
- calendar_date: hrv.calendarDate,
20
- heart_rate_data: undefined,
21
- };
18
+ return null;
22
19
  }
23
20
  const startTime = hrv.startTimeInSeconds ?? 0;
24
21
  const hrvSamples = hasSamples
25
- ? Object.entries(hrv.hrvValues).map(([offset, rmssd]) => ({
22
+ ? Object.entries(hrv.hrvValues ?? {}).map(([offset, rmssd]) => ({
26
23
  timestamp: new Date((startTime + parseInt(offset, 10)) * 1000).toISOString(),
27
24
  hrv_rmssd: rmssd,
28
25
  }))
29
26
  : undefined;
30
27
  return {
31
- calendar_date: hrv.calendarDate,
28
+ metadata: {
29
+ start_time: new Date(startMs).toISOString(),
30
+ end_time: new Date(endMs).toISOString(),
31
+ upload_type: 1, // Automatic
32
+ },
32
33
  heart_rate_data: {
33
34
  summary: hasSummary
34
35
  ? {
35
36
  avg_hrv_rmssd: hrv.lastNightAvg,
36
- max_hrv_rmssd: hrv.lastNight5MinHigh,
37
37
  }
38
38
  : undefined,
39
39
  detailed: hrvSamples && hrvSamples.length > 0
@@ -42,4 +42,4 @@ export function transformHRV(hrv) {
42
42
  },
43
43
  };
44
44
  }
45
- //# sourceMappingURL=hrv.js.map
45
+ //# sourceMappingURL=hrvSummary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hrvSummary.js","sourceRoot":"","sources":["../../../../src/component/garmin/transform/hrvSummary.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,6EAA6E;AAC7E,4EAA4E;AAK5E;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAqB;IACvD,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACrD,MAAM,KAAK,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IAE5D,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,IAAI,IAAI,IAAI,GAAG,CAAC,iBAAiB,IAAI,IAAI,CAAC;IAC7E,MAAM,UAAU,GACd,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAEjE,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,GAAG,CAAC,kBAAkB,IAAI,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,UAAU;QAC3B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9D,SAAS,EAAE,IAAI,IAAI,CACjB,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAC1C,CAAC,WAAW,EAAE;YACf,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO;QACL,QAAQ,EAAE;YACR,UAAU,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE;YAC3C,QAAQ,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;YACvC,WAAW,EAAE,CAAC,EAAE,YAAY;SAC7B;QACD,eAAe,EAAE;YACf,OAAO,EAAE,UAAU;gBACjB,CAAC,CAAC;oBACA,aAAa,EAAE,GAAG,CAAC,YAAY;iBAChC;gBACD,CAAC,CAAC,SAAS;YACb,QAAQ,EACN,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;gBACjC,CAAC,CAAC,EAAE,iBAAiB,EAAE,UAAU,EAAE;gBACnC,CAAC,CAAC,SAAS;SAChB;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { SomaActivity } from "../../validators/activity.js";
2
+ import type { ClientActivity } from "../types/wellnessApi/types.gen.js";
3
+ /**
4
+ * Transform a Garmin manually updated activity into a Soma Activity shape.
5
+ *
6
+ * Per the Garmin API, manually updated activities always have `manual: true`.
7
+ * We enforce `upload_type: 2` regardless, since these items are by definition
8
+ * manual edits from Garmin Connect.
9
+ */
10
+ export declare function transformManuallyUpdatedActivity(activity: ClientActivity): SomaActivity;
11
+ //# sourceMappingURL=manuallyUpdatedActivities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manuallyUpdatedActivities.d.ts","sourceRoot":"","sources":["../../../../src/component/garmin/transform/manuallyUpdatedActivities.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAGxE;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,cAAc,GACvB,YAAY,CAOd"}
@@ -0,0 +1,20 @@
1
+ // ─── Manually Updated Activity Transformer ───────────────────────────────────
2
+ // Transforms a Garmin manually updated activity into the Soma Activity schema.
3
+ //
4
+ // Manually updated activities share the same data model as regular activities,
5
+ // so we delegate to transformActivity but force upload_type = 2 (manual).
6
+ import { transformActivity } from "./activity.js";
7
+ /**
8
+ * Transform a Garmin manually updated activity into a Soma Activity shape.
9
+ *
10
+ * Per the Garmin API, manually updated activities always have `manual: true`.
11
+ * We enforce `upload_type: 2` regardless, since these items are by definition
12
+ * manual edits from Garmin Connect.
13
+ */
14
+ export function transformManuallyUpdatedActivity(activity) {
15
+ const result = transformActivity(activity);
16
+ // Force manual upload type — these are always user-edited on Garmin Connect
17
+ result.metadata.upload_type = 2;
18
+ return result;
19
+ }
20
+ //# sourceMappingURL=manuallyUpdatedActivities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manuallyUpdatedActivities.js","sourceRoot":"","sources":["../../../../src/component/garmin/transform/manuallyUpdatedActivities.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,+EAA+E;AAC/E,EAAE;AACF,+EAA+E;AAC/E,0EAA0E;AAI1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,UAAU,gCAAgC,CAC9C,QAAwB;IAExB,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAE3C,4EAA4E;IAC5E,MAAM,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC;IAEhC,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -3,4 +3,4 @@
3
3
  * Returns Terra "Other" (108) for unknown types.
4
4
  */
5
5
  export declare function mapActivityType(activityType: string): number;
6
- //# sourceMappingURL=activity-type.d.ts.map
6
+ //# sourceMappingURL=activityType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activityType.d.ts","sourceRoot":"","sources":["../../../../../src/component/garmin/transform/maps/activityType.ts"],"names":[],"mappings":"AA6GA;;;GAGG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE5D"}
@@ -96,4 +96,4 @@ const activityTypeMap = {
96
96
  export function mapActivityType(activityType) {
97
97
  return activityTypeMap[activityType] ?? 108;
98
98
  }
99
- //# sourceMappingURL=activity-type.js.map
99
+ //# sourceMappingURL=activityType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activityType.js","sourceRoot":"","sources":["../../../../../src/component/garmin/transform/maps/activityType.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,4 @@
3
3
  * Returns 0 (Unknown) for unrecognized stages.
4
4
  */
5
5
  export declare function mapSleepLevel(stage: string): number;
6
- //# sourceMappingURL=sleep-level.d.ts.map
6
+ //# sourceMappingURL=sleepLevel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sleepLevel.d.ts","sourceRoot":"","sources":["../../../../../src/component/garmin/transform/maps/sleepLevel.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD"}
@@ -18,4 +18,4 @@ const sleepLevelMap = {
18
18
  export function mapSleepLevel(stage) {
19
19
  return sleepLevelMap[stage] ?? 0;
20
20
  }
21
- //# sourceMappingURL=sleep-level.js.map
21
+ //# sourceMappingURL=sleepLevel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sleepLevel.js","sourceRoot":"","sources":["../../../../../src/component/garmin/transform/maps/sleepLevel.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,oEAAoE;AACpE,EAAE;AACF,oEAAoE;AACpE,4DAA4D;AAC5D,EAAE;AACF,uFAAuF;AAEvF,MAAM,aAAa,GAA2B;IAC5C,IAAI,EAAE,CAAC,EAAI,oBAAoB;IAC/B,KAAK,EAAE,CAAC,EAAG,sBAAsB;IACjC,GAAG,EAAE,CAAC,EAAK,kBAAkB;IAC7B,KAAK,EAAE,CAAC,EAAG,sBAAsB;CAClC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { SomaMenstruation } from "../../validators/menstruation.js";
2
+ import type { ClientSummarizedMenstrualCycle } from "../types/wellnessApi/types.gen.js";
3
+ /**
4
+ * Transform a Garmin MCT push item into a Soma Menstruation document shape.
5
+ *
6
+ * MCT records are ingested into the `menstruation` table via
7
+ * `ingestMenstruation`, keyed by `metadata.start_time + metadata.end_time`.
8
+ */
9
+ export declare function transformMenstrualCycleTracking(data: ClientSummarizedMenstrualCycle): SomaMenstruation;
10
+ //# sourceMappingURL=menstrualCycleTracking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menstrualCycleTracking.d.ts","sourceRoot":"","sources":["../../../../src/component/garmin/transform/menstrualCycleTracking.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AAExF;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,8BAA8B,GAAG,gBAAgB,CA8BtG"}
@@ -1,20 +1,24 @@
1
- // ─── Menstruation Transformer ────────────────────────────────────────────────
2
- // Transforms Garmin menstrual cycle data into the Soma Menstruation schema shape.
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.
3
8
  /**
4
- * Transform a Garmin menstrual cycle record into a Soma Menstruation document shape.
9
+ * Transform a Garmin MCT push item into a Soma Menstruation document shape.
5
10
  *
6
- * @param data - The Garmin menstrual cycle data from the Health API
7
- * @returns Soma Menstruation fields (without connectionId/userId)
11
+ * MCT records are ingested into the `menstruation` table via
12
+ * `ingestMenstruation`, keyed by `metadata.start_time + metadata.end_time`.
8
13
  */
9
- export function transformMenstruation(data) {
10
- // Spec uses periodStartDate (date string like "2021-01-04")
14
+ export function transformMenstrualCycleTracking(data) {
11
15
  const dateStr = data.periodStartDate;
12
16
  const startTime = dateStr
13
17
  ? `${dateStr}T00:00:00.000Z`
14
- : undefined;
18
+ : new Date(0).toISOString();
15
19
  const endTime = dateStr
16
20
  ? `${dateStr}T23:59:59.999Z`
17
- : undefined;
21
+ : new Date(0).toISOString();
18
22
  return {
19
23
  metadata: {
20
24
  start_time: startTime,
@@ -22,17 +26,18 @@ export function transformMenstruation(data) {
22
26
  },
23
27
  menstruation_data: {
24
28
  day_in_cycle: data.dayInCycle,
25
- // Spec has currentPhaseType (string) replacing deprecated currentPhase (int)
26
29
  current_phase: data.currentPhaseType?.toLowerCase(),
27
30
  length_of_current_phase_days: data.lengthOfCurrentPhase,
28
31
  days_until_next_phase: data.daysUntilNextPhase,
29
32
  period_length_days: data.periodLength,
30
33
  predicted_cycle_length_days: data.predictedCycleLength,
31
- cycle_length_days: data.cycleLength,
34
+ cycle_length_days: data.cycleLength != null
35
+ ? String(data.cycleLength)
36
+ : undefined,
32
37
  is_predicted_cycle: data.isPredictedCycle != null
33
38
  ? String(data.isPredictedCycle)
34
39
  : undefined,
35
40
  },
36
41
  };
37
42
  }
38
- //# sourceMappingURL=menstruation.js.map
43
+ //# sourceMappingURL=menstrualCycleTracking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menstrualCycleTracking.js","sourceRoot":"","sources":["../../../../src/component/garmin/transform/menstrualCycleTracking.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,uEAAuE;AACvE,6BAA6B;AAC7B,EAAE;AACF,4EAA4E;AAC5E,kEAAkE;AAClE,4BAA4B;AAK5B;;;;;GAKG;AACH,MAAM,UAAU,+BAA+B,CAAC,IAAoC;IAClF,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC;IACrC,MAAM,SAAS,GAAG,OAAO;QACvB,CAAC,CAAC,GAAG,OAAO,gBAAgB;QAC5B,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,OAAO;QACrB,CAAC,CAAC,GAAG,OAAO,gBAAgB;QAC5B,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAE9B,OAAO;QACL,QAAQ,EAAE;YACR,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,OAAO;SAClB;QAED,iBAAiB,EAAE;YACjB,YAAY,EAAE,IAAI,CAAC,UAAU;YAC7B,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,EAAE;YACnD,4BAA4B,EAAE,IAAI,CAAC,oBAAoB;YACvD,qBAAqB,EAAE,IAAI,CAAC,kBAAkB;YAC9C,kBAAkB,EAAE,IAAI,CAAC,YAAY;YACrC,2BAA2B,EAAE,IAAI,CAAC,oBAAoB;YACtD,iBAAiB,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;gBACzC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;gBAC1B,CAAC,CAAC,SAAS;YACb,kBAAkB,EAAE,IAAI,CAAC,gBAAgB,IAAI,IAAI;gBAC/C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;gBAC/B,CAAC,CAAC,SAAS;SACd;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { ClientAutoActivityMoveIq } from "../types/wellnessApi/types.gen.js";
2
+ import type { SomaActivity } from "../../validators/activity.js";
3
+ /**
4
+ * Transform a Garmin Move IQ event into a Soma Activity document shape.
5
+ *
6
+ * Move IQ activityType values are lowercase (e.g. "running", "cycling"),
7
+ * unlike regular activities which use uppercase. We normalise to uppercase
8
+ * before mapping.
9
+ *
10
+ * The returned object is ready to be spread into an `ingestActivity` call
11
+ * alongside `connectionId` and `userId`.
12
+ */
13
+ export declare function transformMoveIQ(event: ClientAutoActivityMoveIq): SomaActivity;
14
+ //# sourceMappingURL=moveIQ.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moveIQ.d.ts","sourceRoot":"","sources":["../../../../src/component/garmin/transform/moveIQ.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAElF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEjE;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,wBAAwB,GAAG,YAAY,CA0B7E"}
@@ -0,0 +1,41 @@
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
+ import { mapActivityType } from "./maps/activityType.js";
8
+ /**
9
+ * Transform a Garmin Move IQ event into a Soma Activity document shape.
10
+ *
11
+ * Move IQ activityType values are lowercase (e.g. "running", "cycling"),
12
+ * unlike regular activities which use uppercase. We normalise to uppercase
13
+ * before mapping.
14
+ *
15
+ * The returned object is ready to be spread into an `ingestActivity` call
16
+ * alongside `connectionId` and `userId`.
17
+ */
18
+ export function transformMoveIQ(event) {
19
+ const startMs = (event.startTimeInSeconds ?? 0) * 1000;
20
+ const endMs = startMs + (event.durationInSeconds ?? 0) * 1000;
21
+ const startDate = new Date(startMs).toISOString();
22
+ const endDate = new Date(endMs).toISOString();
23
+ // Move IQ activityType is lowercase; mapActivityType expects uppercase
24
+ const activityType = (event.activityType ?? "OTHER").toUpperCase();
25
+ return {
26
+ metadata: {
27
+ summary_id: event.summaryId ?? `moveiq-${event.startTimeInSeconds}`,
28
+ start_time: startDate,
29
+ end_time: endDate,
30
+ type: mapActivityType(activityType),
31
+ upload_type: 1, // device-detected
32
+ },
33
+ active_durations_data: {
34
+ activity_seconds: event.durationInSeconds,
35
+ },
36
+ device_data: event.deviceName
37
+ ? { name: event.deviceName }
38
+ : undefined,
39
+ };
40
+ }
41
+ //# sourceMappingURL=moveIQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moveIQ.js","sourceRoot":"","sources":["../../../../src/component/garmin/transform/moveIQ.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,yEAAyE;AACzE,EAAE;AACF,+EAA+E;AAC/E,iFAAiF;AACjF,2EAA2E;AAG3E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,KAA+B;IAC7D,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACvD,MAAM,KAAK,GAAG,OAAO,GAAG,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9D,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAE9C,uEAAuE;IACvE,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAEnE,OAAO;QACL,QAAQ,EAAE;YACR,UAAU,EAAE,KAAK,CAAC,SAAS,IAAI,UAAU,KAAK,CAAC,kBAAkB,EAAE;YACnE,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,eAAe,CAAC,YAAY,CAAC;YACnC,WAAW,EAAE,CAAC,EAAE,kBAAkB;SACnC;QAED,qBAAqB,EAAE;YACrB,gBAAgB,EAAE,KAAK,CAAC,iBAAiB;SAC1C;QAED,WAAW,EAAE,KAAK,CAAC,UAAU;YAC3B,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE;YAC5B,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { GarminWorkout } from "./types.js";
2
- type SomaPlannedWorkout = Record<string, any>;
1
+ import type { SomaPlannedWorkout } from "../../validators/plannedWorkout.js";
2
+ import type { WorkoutV2 } from "../types/trainingApiWorkouts/types.gen.js";
3
3
  /**
4
4
  * Transform a Soma planned workout document into a Garmin Training API V2
5
5
  * workout payload ready for `POST /workoutportal/workout/v2`.
@@ -7,6 +7,5 @@ type SomaPlannedWorkout = Record<string, any>;
7
7
  * @param somaWorkout - The planned workout document from the Soma DB
8
8
  * @param providerName - Name shown to the user in Garmin Connect (20 chars max)
9
9
  */
10
- export declare function transformPlannedWorkoutToGarmin(somaWorkout: SomaPlannedWorkout, providerName: string): GarminWorkout;
11
- export {};
10
+ export declare function transformPlannedWorkoutToGarmin(somaWorkout: SomaPlannedWorkout, providerName: string): WorkoutV2;
12
11
  //# sourceMappingURL=plannedWorkout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plannedWorkout.d.ts","sourceRoot":"","sources":["../../../../src/component/garmin/transform/plannedWorkout.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,KAAK,EACV,SAAS,EAIV,MAAM,2CAA2C,CAAC;AAInD;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,WAAW,EAAE,kBAAkB,EAC/B,YAAY,EAAE,MAAM,GACnB,SAAS,CAwBX"}