@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
@@ -0,0 +1,40 @@
1
+ // ─── Activity Webhook Zod Schemas ───────────────────────────────────────────
2
+ // Runtime validation schemas for Garmin Activity webhook payloads.
3
+ //
4
+ // The base schema (zClientActivity) is auto-generated from the OpenAPI spec.
5
+ // We extend it here with webhook-specific fields (userId, userAccessToken)
6
+
7
+ import { z } from "zod";
8
+ import { zClientActivity } from "../types/wellnessApi/zod.gen.js";
9
+
10
+ // ─── Push Mode ──────────────────────────────────────────────────────────────
11
+ // Push payloads contain full activity data plus webhook envelope fields.
12
+
13
+ export const garminActivityPushItemSchema = zClientActivity.extend({
14
+ // Webhook envelope fields
15
+ userId: z.string(),
16
+ userAccessToken: z.string().optional(),
17
+ // Override bigint → number (openapi-ts maps int64 to bigint in zod)
18
+ activityId: z.coerce.number().optional(),
19
+ });
20
+
21
+ export const garminActivityPushPayloadSchema = z.object({
22
+ activities: z.array(garminActivityPushItemSchema),
23
+ });
24
+
25
+ // ─── Ping Mode ──────────────────────────────────────────────────────────────
26
+ // Ping payloads are lightweight notifications — not in any OpenAPI spec.
27
+
28
+ export const garminActivityPingItemSchema = z.object({
29
+ userId: z.string(),
30
+ callbackURL: z.string().optional(), // absent for deregistration notifications
31
+ });
32
+
33
+ export const garminActivityPingPayloadSchema = z.object({
34
+ activities: z.array(garminActivityPingItemSchema),
35
+ });
36
+
37
+ // ─── Inferred Types ─────────────────────────────────────────────────────────
38
+
39
+ export type GarminActivityPushItem = z.infer<typeof garminActivityPushItemSchema>;
40
+ export type GarminActivityPingItem = z.infer<typeof garminActivityPingItemSchema>;
@@ -0,0 +1,45 @@
1
+ // ─── Activity Details Webhook Zod Schemas ────────────────────────────────────
2
+ // Runtime validation schemas for Garmin Activity Details webhook payloads.
3
+ //
4
+ // The base schema (zClientActivityDetail) is auto-generated from the OpenAPI spec.
5
+ // We extend it here with webhook-specific fields (userId required, userAccessToken).
6
+
7
+ import { z } from "zod";
8
+ import { zClientActivity, zClientActivityDetail } from "../types/wellnessApi/zod.gen.js";
9
+
10
+ // ─── Push Mode ──────────────────────────────────────────────────────────────
11
+ // Push payloads contain full activity detail data plus webhook envelope fields.
12
+
13
+ export const garminActivityDetailsPushItemSchema = zClientActivityDetail.extend({
14
+ // Webhook envelope fields — userId is required in push payloads
15
+ userId: z.string(),
16
+ userAccessToken: z.string().optional(),
17
+ // Override bigint → number (openapi-ts maps int64 to bigint in zod)
18
+ activityId: z.coerce.number().optional(),
19
+ summary: zClientActivity.extend({ activityId: z.coerce.number().optional() }).optional(),
20
+ });
21
+
22
+ export const garminActivityDetailsPushPayloadSchema = z.object({
23
+ activityDetails: z.array(garminActivityDetailsPushItemSchema),
24
+ });
25
+
26
+ // ─── Ping Mode ──────────────────────────────────────────────────────────────
27
+ // Ping payloads are lightweight notifications — not in any OpenAPI spec.
28
+
29
+ export const garminActivityDetailsPingItemSchema = z.object({
30
+ userId: z.string(),
31
+ callbackURL: z.string().optional(), // absent for deregistration notifications
32
+ });
33
+
34
+ export const garminActivityDetailsPingPayloadSchema = z.object({
35
+ activityDetails: z.array(garminActivityDetailsPingItemSchema),
36
+ });
37
+
38
+ // ─── Inferred Types ─────────────────────────────────────────────────────────
39
+
40
+ export type GarminActivityDetailsPushItem = z.infer<
41
+ typeof garminActivityDetailsPushItemSchema
42
+ >;
43
+ export type GarminActivityDetailsPingItem = z.infer<
44
+ typeof garminActivityDetailsPingItemSchema
45
+ >;
@@ -0,0 +1,38 @@
1
+ // ─── Blood Pressure Webhook Zod Schemas ──────────────────────────────────────
2
+ // Runtime validation schemas for Garmin Blood Pressure webhook payloads.
3
+ //
4
+ // The base schema (zClientBloodPressure) is auto-generated from the OpenAPI spec.
5
+ // We extend it here with webhook-specific fields (userId, userAccessToken)
6
+
7
+ import { z } from "zod";
8
+ import { zClientBloodPressure } from "../types/wellnessApi/zod.gen.js";
9
+
10
+ // ─── Push Mode ──────────────────────────────────────────────────────────────
11
+ // Push payloads contain full blood pressure data plus webhook envelope fields.
12
+
13
+ export const garminBloodPressurePushItemSchema = zClientBloodPressure.extend({
14
+ // Webhook envelope fields
15
+ userId: z.string(),
16
+ userAccessToken: z.string().optional(),
17
+ });
18
+
19
+ export const garminBloodPressurePushPayloadSchema = z.object({
20
+ bloodPressures: z.array(garminBloodPressurePushItemSchema),
21
+ });
22
+
23
+ // ─── Ping Mode ──────────────────────────────────────────────────────────────
24
+ // Ping payloads are lightweight notifications — not in any OpenAPI spec.
25
+
26
+ export const garminBloodPressurePingItemSchema = z.object({
27
+ userId: z.string(),
28
+ callbackURL: z.string().optional(), // absent for deregistration notifications
29
+ });
30
+
31
+ export const garminBloodPressurePingPayloadSchema = z.object({
32
+ bloodPressures: z.array(garminBloodPressurePingItemSchema),
33
+ });
34
+
35
+ // ─── Inferred Types ─────────────────────────────────────────────────────────
36
+
37
+ export type GarminBloodPressurePushItem = z.infer<typeof garminBloodPressurePushItemSchema>;
38
+ export type GarminBloodPressurePingItem = z.infer<typeof garminBloodPressurePingItemSchema>;
@@ -0,0 +1,38 @@
1
+ // ─── Body Compositions Webhook Zod Schemas ───────────────────────────────────
2
+ // Runtime validation schemas for Garmin Body Composition webhook payloads.
3
+ //
4
+ // The base schema (zClientBodyComp) is auto-generated from the OpenAPI spec.
5
+ // We extend it here with webhook-specific fields (userId, userAccessToken)
6
+
7
+ import { z } from "zod";
8
+ import { zClientBodyComp } from "../types/wellnessApi/zod.gen.js";
9
+
10
+ // ─── Push Mode ──────────────────────────────────────────────────────────────
11
+ // Push payloads contain full body composition data plus webhook envelope fields.
12
+
13
+ export const garminBodyCompositionsPushItemSchema = zClientBodyComp.extend({
14
+ // Webhook envelope fields
15
+ userId: z.string(),
16
+ userAccessToken: z.string().optional(),
17
+ });
18
+
19
+ export const garminBodyCompositionsPushPayloadSchema = z.object({
20
+ bodyComps: z.array(garminBodyCompositionsPushItemSchema),
21
+ });
22
+
23
+ // ─── Ping Mode ──────────────────────────────────────────────────────────────
24
+ // Ping payloads are lightweight notifications — not in any OpenAPI spec.
25
+
26
+ export const garminBodyCompositionsPingItemSchema = z.object({
27
+ userId: z.string(),
28
+ callbackURL: z.string().optional(), // absent for deregistration notifications
29
+ });
30
+
31
+ export const garminBodyCompositionsPingPayloadSchema = z.object({
32
+ bodyComps: z.array(garminBodyCompositionsPingItemSchema),
33
+ });
34
+
35
+ // ─── Inferred Types ─────────────────────────────────────────────────────────
36
+
37
+ export type GarminBodyCompositionsPushItem = z.infer<typeof garminBodyCompositionsPushItemSchema>;
38
+ export type GarminBodyCompositionsPingItem = z.infer<typeof garminBodyCompositionsPingItemSchema>;
@@ -0,0 +1,38 @@
1
+ // ─── Dailies Webhook Zod Schemas ─────────────────────────────────────────────
2
+ // Runtime validation schemas for Garmin Daily Summary webhook payloads.
3
+ //
4
+ // The base schema (zClientDaily) is auto-generated from the OpenAPI spec.
5
+ // We extend it here with webhook-specific fields (userId, userAccessToken)
6
+
7
+ import { z } from "zod";
8
+ import { zClientDaily } from "../types/wellnessApi/zod.gen.js";
9
+
10
+ // ─── Push Mode ──────────────────────────────────────────────────────────────
11
+ // Push payloads contain full daily summary data plus webhook envelope fields.
12
+
13
+ export const garminDailiesPushItemSchema = zClientDaily.extend({
14
+ // Webhook envelope fields
15
+ userId: z.string(),
16
+ userAccessToken: z.string().optional(),
17
+ });
18
+
19
+ export const garminDailiesPushPayloadSchema = z.object({
20
+ dailies: z.array(garminDailiesPushItemSchema),
21
+ });
22
+
23
+ // ─── Ping Mode ──────────────────────────────────────────────────────────────
24
+ // Ping payloads are lightweight notifications — not in any OpenAPI spec.
25
+
26
+ export const garminDailiesPingItemSchema = z.object({
27
+ userId: z.string(),
28
+ callbackURL: z.string().optional(), // absent for deregistration notifications
29
+ });
30
+
31
+ export const garminDailiesPingPayloadSchema = z.object({
32
+ dailies: z.array(garminDailiesPingItemSchema),
33
+ });
34
+
35
+ // ─── Inferred Types ─────────────────────────────────────────────────────────
36
+
37
+ export type GarminDailiesPushItem = z.infer<typeof garminDailiesPushItemSchema>;
38
+ export type GarminDailiesPingItem = z.infer<typeof garminDailiesPingItemSchema>;
@@ -0,0 +1,38 @@
1
+ // ─── Epochs Webhook Zod Schemas ──────────────────────────────────────────────
2
+ // Runtime validation schemas for Garmin Epoch Summary webhook payloads.
3
+ //
4
+ // The base schema (zClientEpoch) is auto-generated from the OpenAPI spec.
5
+ // We extend it here with webhook-specific fields (userId, userAccessToken)
6
+
7
+ import { z } from "zod";
8
+ import { zClientEpoch } from "../types/wellnessApi/zod.gen.js";
9
+
10
+ // ─── Push Mode ──────────────────────────────────────────────────────────────
11
+ // Push payloads contain full epoch summary data plus webhook envelope fields.
12
+
13
+ export const garminEpochPushItemSchema = zClientEpoch.extend({
14
+ // Webhook envelope fields
15
+ userId: z.string(),
16
+ userAccessToken: z.string().optional(),
17
+ });
18
+
19
+ export const garminEpochPushPayloadSchema = z.object({
20
+ epochs: z.array(garminEpochPushItemSchema),
21
+ });
22
+
23
+ // ─── Ping Mode ──────────────────────────────────────────────────────────────
24
+ // Ping payloads are lightweight notifications — not in any OpenAPI spec.
25
+
26
+ export const garminEpochPingItemSchema = z.object({
27
+ userId: z.string(),
28
+ callbackURL: z.string().optional(), // absent for deregistration notifications
29
+ });
30
+
31
+ export const garminEpochPingPayloadSchema = z.object({
32
+ epochs: z.array(garminEpochPingItemSchema),
33
+ });
34
+
35
+ // ─── Inferred Types ─────────────────────────────────────────────────────────
36
+
37
+ export type GarminEpochPushItem = z.infer<typeof garminEpochPushItemSchema>;
38
+ export type GarminEpochPingItem = z.infer<typeof garminEpochPingItemSchema>;
@@ -0,0 +1,38 @@
1
+ // ─── Health Snapshot Webhook Zod Schemas ─────────────────────────────────────
2
+ // Runtime validation schemas for Garmin Health Snapshot webhook payloads.
3
+ //
4
+ // The base schema (zClientHealthSnapshot) is auto-generated from the OpenAPI spec.
5
+ // We extend it here with webhook-specific fields (userId, userAccessToken)
6
+
7
+ import { z } from "zod";
8
+ import { zClientHealthSnapshot } from "../types/wellnessApi/zod.gen.js";
9
+
10
+ // ─── Push Mode ──────────────────────────────────────────────────────────────
11
+ // Push payloads contain full health snapshot data plus webhook envelope fields.
12
+
13
+ export const garminHealthSnapshotPushItemSchema = zClientHealthSnapshot.extend({
14
+ // Webhook envelope fields
15
+ userId: z.string(),
16
+ userAccessToken: z.string().optional(),
17
+ });
18
+
19
+ export const garminHealthSnapshotPushPayloadSchema = z.object({
20
+ healthSnapshot: z.array(garminHealthSnapshotPushItemSchema),
21
+ });
22
+
23
+ // ─── Ping Mode ──────────────────────────────────────────────────────────────
24
+ // Ping payloads are lightweight notifications — not in any OpenAPI spec.
25
+
26
+ export const garminHealthSnapshotPingItemSchema = z.object({
27
+ userId: z.string(),
28
+ callbackURL: z.string().optional(), // absent for deregistration notifications
29
+ });
30
+
31
+ export const garminHealthSnapshotPingPayloadSchema = z.object({
32
+ healthSnapshot: z.array(garminHealthSnapshotPingItemSchema),
33
+ });
34
+
35
+ // ─── Inferred Types ─────────────────────────────────────────────────────────
36
+
37
+ export type GarminHealthSnapshotPushItem = z.infer<typeof garminHealthSnapshotPushItemSchema>;
38
+ export type GarminHealthSnapshotPingItem = z.infer<typeof garminHealthSnapshotPingItemSchema>;
@@ -0,0 +1,38 @@
1
+ // ─── HRV Summary Webhook Zod Schemas ─────────────────────────────────────────
2
+ // Runtime validation schemas for Garmin HRV Summary webhook payloads.
3
+ //
4
+ // The base schema (zClientHrvSummary) is auto-generated from the OpenAPI spec.
5
+ // We extend it here with webhook-specific fields (userId, userAccessToken)
6
+
7
+ import { z } from "zod";
8
+ import { zClientHrvSummary } from "../types/wellnessApi/zod.gen.js";
9
+
10
+ // ─── Push Mode ──────────────────────────────────────────────────────────────
11
+ // Push payloads contain full HRV summary data plus webhook envelope fields.
12
+
13
+ export const garminHRVSummaryPushItemSchema = zClientHrvSummary.extend({
14
+ // Webhook envelope fields — userId is required in push mode
15
+ userId: z.string(),
16
+ userAccessToken: z.string().optional(),
17
+ });
18
+
19
+ export const garminHRVSummaryPushPayloadSchema = z.object({
20
+ hrv: z.array(garminHRVSummaryPushItemSchema),
21
+ });
22
+
23
+ // ─── Ping Mode ──────────────────────────────────────────────────────────────
24
+ // Ping payloads are lightweight notifications — not in any OpenAPI spec.
25
+
26
+ export const garminHRVSummaryPingItemSchema = z.object({
27
+ userId: z.string(),
28
+ callbackURL: z.string().optional(), // absent for deregistration notifications
29
+ });
30
+
31
+ export const garminHRVSummaryPingPayloadSchema = z.object({
32
+ hrv: z.array(garminHRVSummaryPingItemSchema),
33
+ });
34
+
35
+ // ─── Inferred Types ─────────────────────────────────────────────────────────
36
+
37
+ export type GarminHRVSummaryPushItem = z.infer<typeof garminHRVSummaryPushItemSchema>;
38
+ export type GarminHRVSummaryPingItem = z.infer<typeof garminHRVSummaryPingItemSchema>;
@@ -0,0 +1,49 @@
1
+ // ─── Manually Updated Activities Webhook Zod Schemas ────────────────────────
2
+ // Runtime validation schemas for Garmin Manually Updated Activities webhook payloads.
3
+ //
4
+ // Manually updated activities share the same data model as regular activities
5
+ // (zClientActivity), but are always manual edits from Garmin Connect.
6
+
7
+ import { z } from "zod";
8
+ import { zClientActivity } from "../types/wellnessApi/zod.gen.js";
9
+
10
+ // ─── Push Mode ──────────────────────────────────────────────────────────────
11
+ // Push payloads contain full activity data plus webhook envelope fields.
12
+
13
+ export const garminManuallyUpdatedActivitiesPushItemSchema =
14
+ zClientActivity.extend({
15
+ // Webhook envelope fields
16
+ userId: z.string(),
17
+ userAccessToken: z.string().optional(),
18
+ // Override bigint → number (openapi-ts maps int64 to bigint in zod)
19
+ activityId: z.coerce.number().optional(),
20
+ });
21
+
22
+ export const garminManuallyUpdatedActivitiesPushPayloadSchema = z.object({
23
+ manuallyUpdatedActivities: z.array(
24
+ garminManuallyUpdatedActivitiesPushItemSchema,
25
+ ),
26
+ });
27
+
28
+ // ─── Ping Mode ──────────────────────────────────────────────────────────────
29
+ // Ping payloads are lightweight notifications — not in any OpenAPI spec.
30
+
31
+ export const garminManuallyUpdatedActivitiesPingItemSchema = z.object({
32
+ userId: z.string(),
33
+ callbackURL: z.string().optional(), // absent for deregistration notifications
34
+ });
35
+
36
+ export const garminManuallyUpdatedActivitiesPingPayloadSchema = z.object({
37
+ manuallyUpdatedActivities: z.array(
38
+ garminManuallyUpdatedActivitiesPingItemSchema,
39
+ ),
40
+ });
41
+
42
+ // ─── Inferred Types ─────────────────────────────────────────────────────────
43
+
44
+ export type GarminManuallyUpdatedActivitiesPushItem = z.infer<
45
+ typeof garminManuallyUpdatedActivitiesPushItemSchema
46
+ >;
47
+ export type GarminManuallyUpdatedActivitiesPingItem = z.infer<
48
+ typeof garminManuallyUpdatedActivitiesPingItemSchema
49
+ >;
@@ -0,0 +1,39 @@
1
+ // ─── Menstrual Cycle Tracking Webhook Zod Schemas ─────────────────────────────
2
+ // Runtime validation schemas for Garmin MCT (Women's Health API) webhook payloads.
3
+ //
4
+ // The base schema (zClientSummarizedMenstrualCycle) is auto-generated from the
5
+ // OpenAPI spec. We extend it here with webhook-specific fields (userId,
6
+ // userAccessToken).
7
+
8
+ import { z } from "zod";
9
+ import { zClientSummarizedMenstrualCycle } from "../types/wellnessApi/zod.gen.js";
10
+
11
+ // ─── Push Mode ──────────────────────────────────────────────────────────────
12
+ // Push payloads contain full MCT data plus webhook envelope fields.
13
+
14
+ export const garminMenstrualCycleTrackingPushItemSchema = zClientSummarizedMenstrualCycle.extend({
15
+ // Webhook envelope fields
16
+ userId: z.string(),
17
+ userAccessToken: z.string().optional(),
18
+ });
19
+
20
+ export const garminMenstrualCycleTrackingPushPayloadSchema = z.object({
21
+ mct: z.array(garminMenstrualCycleTrackingPushItemSchema),
22
+ });
23
+
24
+ // ─── Ping Mode ──────────────────────────────────────────────────────────────
25
+ // Ping payloads are lightweight notifications — not in any OpenAPI spec.
26
+
27
+ export const garminMenstrualCycleTrackingPingItemSchema = z.object({
28
+ userId: z.string(),
29
+ callbackURL: z.string().optional(), // absent for deregistration notifications
30
+ });
31
+
32
+ export const garminMenstrualCycleTrackingPingPayloadSchema = z.object({
33
+ mct: z.array(garminMenstrualCycleTrackingPingItemSchema),
34
+ });
35
+
36
+ // ─── Inferred Types ─────────────────────────────────────────────────────────
37
+
38
+ export type GarminMenstrualCycleTrackingPushItem = z.infer<typeof garminMenstrualCycleTrackingPushItemSchema>;
39
+ export type GarminMenstrualCycleTrackingPingItem = z.infer<typeof garminMenstrualCycleTrackingPingItemSchema>;
@@ -0,0 +1,38 @@
1
+ // ─── Move IQ Webhook Zod Schemas ─────────────────────────────────────────────
2
+ // Runtime validation schemas for Garmin Move IQ webhook payloads.
3
+ //
4
+ // The base schema (zClientAutoActivityMoveIq) is auto-generated from the OpenAPI spec.
5
+ // We extend it here with webhook-specific fields (userId required, userAccessToken).
6
+
7
+ import { z } from "zod";
8
+ import { zClientAutoActivityMoveIq } from "../types/wellnessApi/zod.gen.js";
9
+
10
+ // ─── Push Mode ──────────────────────────────────────────────────────────────
11
+ // Push payloads contain full Move IQ data plus webhook envelope fields.
12
+
13
+ export const garminMoveIQPushItemSchema = zClientAutoActivityMoveIq.extend({
14
+ // Webhook envelope fields — userId is required in push payloads
15
+ userId: z.string(),
16
+ userAccessToken: z.string().optional(),
17
+ });
18
+
19
+ export const garminMoveIQPushPayloadSchema = z.object({
20
+ moveIQActivities: z.array(garminMoveIQPushItemSchema),
21
+ });
22
+
23
+ // ─── Ping Mode ──────────────────────────────────────────────────────────────
24
+ // Ping payloads are lightweight notifications — not in any OpenAPI spec.
25
+
26
+ export const garminMoveIQPingItemSchema = z.object({
27
+ userId: z.string(),
28
+ callbackURL: z.string().optional(), // absent for deregistration notifications
29
+ });
30
+
31
+ export const garminMoveIQPingPayloadSchema = z.object({
32
+ moveIQActivities: z.array(garminMoveIQPingItemSchema),
33
+ });
34
+
35
+ // ─── Inferred Types ─────────────────────────────────────────────────────────
36
+
37
+ export type GarminMoveIQPushItem = z.infer<typeof garminMoveIQPushItemSchema>;
38
+ export type GarminMoveIQPingItem = z.infer<typeof garminMoveIQPingItemSchema>;
@@ -0,0 +1,39 @@
1
+ // ─── Pulse Ox Webhook Zod Schemas ────────────────────────────────────────────
2
+ // Runtime validation schemas for Garmin Pulse Ox webhook payloads.
3
+ //
4
+ // The base schema (zClientDailySpo2Acclimation) is auto-generated from the
5
+ // OpenAPI spec. We extend it here with webhook-specific fields (userId,
6
+ // userAccessToken).
7
+
8
+ import { z } from "zod";
9
+ import { zClientDailySpo2Acclimation } from "../types/wellnessApi/zod.gen.js";
10
+
11
+ // ─── Push Mode ──────────────────────────────────────────────────────────────
12
+ // Push payloads contain full pulse ox data plus webhook envelope fields.
13
+
14
+ export const garminPulseOxPushItemSchema = zClientDailySpo2Acclimation.extend({
15
+ // Webhook envelope fields
16
+ userId: z.string(),
17
+ userAccessToken: z.string().optional(),
18
+ });
19
+
20
+ export const garminPulseOxPushPayloadSchema = z.object({
21
+ pulseox: z.array(garminPulseOxPushItemSchema),
22
+ });
23
+
24
+ // ─── Ping Mode ──────────────────────────────────────────────────────────────
25
+ // Ping payloads are lightweight notifications — not in any OpenAPI spec.
26
+
27
+ export const garminPulseOxPingItemSchema = z.object({
28
+ userId: z.string(),
29
+ callbackURL: z.string().optional(), // absent for deregistration notifications
30
+ });
31
+
32
+ export const garminPulseOxPingPayloadSchema = z.object({
33
+ pulseox: z.array(garminPulseOxPingItemSchema),
34
+ });
35
+
36
+ // ─── Inferred Types ─────────────────────────────────────────────────────────
37
+
38
+ export type GarminPulseOxPushItem = z.infer<typeof garminPulseOxPushItemSchema>;
39
+ export type GarminPulseOxPingItem = z.infer<typeof garminPulseOxPingItemSchema>;
@@ -0,0 +1,39 @@
1
+ // ─── Respiration Webhook Zod Schemas ─────────────────────────────────────────
2
+ // Runtime validation schemas for Garmin Respiration webhook payloads.
3
+ //
4
+ // The base schema (zClientRespiration) is auto-generated from the
5
+ // OpenAPI spec. We extend it here with webhook-specific fields (userId,
6
+ // userAccessToken).
7
+
8
+ import { z } from "zod";
9
+ import { zClientRespiration } from "../types/wellnessApi/zod.gen.js";
10
+
11
+ // ─── Push Mode ──────────────────────────────────────────────────────────────
12
+ // Push payloads contain full respiration data plus webhook envelope fields.
13
+
14
+ export const garminRespirationPushItemSchema = zClientRespiration.extend({
15
+ // Webhook envelope fields
16
+ userId: z.string(),
17
+ userAccessToken: z.string().optional(),
18
+ });
19
+
20
+ export const garminRespirationPushPayloadSchema = z.object({
21
+ allDayRespiration: z.array(garminRespirationPushItemSchema),
22
+ });
23
+
24
+ // ─── Ping Mode ──────────────────────────────────────────────────────────────
25
+ // Ping payloads are lightweight notifications — not in any OpenAPI spec.
26
+
27
+ export const garminRespirationPingItemSchema = z.object({
28
+ userId: z.string(),
29
+ callbackURL: z.string().optional(), // absent for deregistration notifications
30
+ });
31
+
32
+ export const garminRespirationPingPayloadSchema = z.object({
33
+ allDayRespiration: z.array(garminRespirationPingItemSchema),
34
+ });
35
+
36
+ // ─── Inferred Types ─────────────────────────────────────────────────────────
37
+
38
+ export type GarminRespirationPushItem = z.infer<typeof garminRespirationPushItemSchema>;
39
+ export type GarminRespirationPingItem = z.infer<typeof garminRespirationPingItemSchema>;
@@ -0,0 +1,39 @@
1
+ // ─── Skin Temperature Webhook Zod Schemas ────────────────────────────────────
2
+ // Runtime validation schemas for Garmin Skin Temperature webhook payloads.
3
+ //
4
+ // The base schema (zClientSkinTemp) is auto-generated from the
5
+ // OpenAPI spec. We extend it here with webhook-specific fields (userId,
6
+ // userAccessToken).
7
+
8
+ import { z } from "zod";
9
+ import { zClientSkinTemp } from "../types/wellnessApi/zod.gen.js";
10
+
11
+ // ─── Push Mode ──────────────────────────────────────────────────────────────
12
+ // Push payloads contain full skin temperature data plus webhook envelope fields.
13
+
14
+ export const garminSkinTemperaturePushItemSchema = zClientSkinTemp.extend({
15
+ // Webhook envelope fields
16
+ userId: z.string(),
17
+ userAccessToken: z.string().optional(),
18
+ });
19
+
20
+ export const garminSkinTemperaturePushPayloadSchema = z.object({
21
+ skinTemp: z.array(garminSkinTemperaturePushItemSchema),
22
+ });
23
+
24
+ // ─── Ping Mode ──────────────────────────────────────────────────────────────
25
+ // Ping payloads are lightweight notifications — not in any OpenAPI spec.
26
+
27
+ export const garminSkinTemperaturePingItemSchema = z.object({
28
+ userId: z.string(),
29
+ callbackURL: z.string().optional(), // absent for deregistration notifications
30
+ });
31
+
32
+ export const garminSkinTemperaturePingPayloadSchema = z.object({
33
+ skinTemp: z.array(garminSkinTemperaturePingItemSchema),
34
+ });
35
+
36
+ // ─── Inferred Types ─────────────────────────────────────────────────────────
37
+
38
+ export type GarminSkinTemperaturePushItem = z.infer<typeof garminSkinTemperaturePushItemSchema>;
39
+ export type GarminSkinTemperaturePingItem = z.infer<typeof garminSkinTemperaturePingItemSchema>;
@@ -0,0 +1,38 @@
1
+ // ─── Sleeps Webhook Zod Schemas ──────────────────────────────────────────────
2
+ // Runtime validation schemas for Garmin Sleep Summary webhook payloads.
3
+ //
4
+ // The base schema (zClientSleep) is auto-generated from the OpenAPI spec.
5
+ // We extend it here with webhook-specific fields (userId, userAccessToken)
6
+
7
+ import { z } from "zod";
8
+ import { zClientSleep } from "../types/wellnessApi/zod.gen.js";
9
+
10
+ // ─── Push Mode ──────────────────────────────────────────────────────────────
11
+ // Push payloads contain full sleep summary data plus webhook envelope fields.
12
+
13
+ export const garminSleepsPushItemSchema = zClientSleep.extend({
14
+ // Webhook envelope fields
15
+ userId: z.string(),
16
+ userAccessToken: z.string().optional(),
17
+ });
18
+
19
+ export const garminSleepsPushPayloadSchema = z.object({
20
+ sleeps: z.array(garminSleepsPushItemSchema),
21
+ });
22
+
23
+ // ─── Ping Mode ──────────────────────────────────────────────────────────────
24
+ // Ping payloads are lightweight notifications — not in any OpenAPI spec.
25
+
26
+ export const garminSleepsPingItemSchema = z.object({
27
+ userId: z.string(),
28
+ callbackURL: z.string().optional(), // absent for deregistration notifications
29
+ });
30
+
31
+ export const garminSleepsPingPayloadSchema = z.object({
32
+ sleeps: z.array(garminSleepsPingItemSchema),
33
+ });
34
+
35
+ // ─── Inferred Types ─────────────────────────────────────────────────────────
36
+
37
+ export type GarminSleepsPushItem = z.infer<typeof garminSleepsPushItemSchema>;
38
+ export type GarminSleepsPingItem = z.infer<typeof garminSleepsPingItemSchema>;