@nativesquare/soma 0.8.0 → 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 (325) 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 +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 +135 -261
  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/public.d.ts +155 -0
  15. package/dist/component/garmin/public.d.ts.map +1 -0
  16. package/dist/component/garmin/public.js +787 -0
  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 +4 -4
  167. package/dist/component/public.d.ts +333 -333
  168. package/dist/component/schema.d.ts +133 -133
  169. package/dist/component/strava/private.d.ts +30 -0
  170. package/dist/component/strava/private.d.ts.map +1 -0
  171. package/dist/component/strava/private.js +71 -0
  172. package/dist/component/strava/private.js.map +1 -0
  173. package/dist/component/{strava.d.ts → strava/public.d.ts} +3 -31
  174. package/dist/component/strava/public.d.ts.map +1 -0
  175. package/dist/component/{strava.js → strava/public.js} +22 -101
  176. package/dist/component/strava/public.js.map +1 -0
  177. package/dist/component/validators/activity.d.ts +6 -0
  178. package/dist/component/validators/activity.d.ts.map +1 -1
  179. package/dist/component/validators/activity.js.map +1 -1
  180. package/dist/component/validators/body.d.ts +20 -14
  181. package/dist/component/validators/body.d.ts.map +1 -1
  182. package/dist/component/validators/body.js.map +1 -1
  183. package/dist/component/validators/daily.d.ts +6 -0
  184. package/dist/component/validators/daily.d.ts.map +1 -1
  185. package/dist/component/validators/daily.js.map +1 -1
  186. package/dist/component/validators/enums.d.ts +1 -1
  187. package/dist/component/validators/menstruation.d.ts +5 -0
  188. package/dist/component/validators/menstruation.d.ts.map +1 -1
  189. package/dist/component/validators/menstruation.js.map +1 -1
  190. package/dist/garmin/client.js.map +1 -1
  191. package/dist/garmin/index.d.ts +0 -2
  192. package/dist/garmin/index.d.ts.map +1 -1
  193. package/dist/garmin/index.js +0 -1
  194. package/dist/garmin/index.js.map +1 -1
  195. package/dist/garmin/sync.d.ts.map +1 -1
  196. package/dist/garmin/sync.js +3 -2
  197. package/dist/garmin/sync.js.map +1 -1
  198. package/dist/garmin/types.d.ts +1 -1
  199. package/dist/garmin/types.d.ts.map +1 -1
  200. package/dist/validators.d.ts +31 -28
  201. package/dist/validators.d.ts.map +1 -1
  202. package/dist/validators.js +2 -2
  203. package/dist/validators.js.map +1 -1
  204. package/package.json +4 -7
  205. package/src/client/index.ts +41 -172
  206. package/src/component/_generated/api.ts +96 -4
  207. package/src/component/_generated/component.ts +252 -284
  208. package/src/{garmin → component/garmin}/auth.ts +8 -1
  209. package/src/component/garmin/client.ts +39 -0
  210. package/src/component/garmin/private.ts +1798 -0
  211. package/src/component/garmin/public.ts +938 -0
  212. package/src/component/garmin/schemas/activity.ts +40 -0
  213. package/src/component/garmin/schemas/activityDetails.ts +45 -0
  214. package/src/component/garmin/schemas/bloodPressure.ts +38 -0
  215. package/src/component/garmin/schemas/bodyCompositions.ts +38 -0
  216. package/src/component/garmin/schemas/dailies.ts +38 -0
  217. package/src/component/garmin/schemas/epochs.ts +38 -0
  218. package/src/component/garmin/schemas/healthSnapshot.ts +38 -0
  219. package/src/component/garmin/schemas/hrvSummary.ts +38 -0
  220. package/src/component/garmin/schemas/manuallyUpdatedActivities.ts +49 -0
  221. package/src/component/garmin/schemas/menstrualCycleTracking.ts +39 -0
  222. package/src/component/garmin/schemas/moveIQ.ts +38 -0
  223. package/src/component/garmin/schemas/pulseOx.ts +39 -0
  224. package/src/component/garmin/schemas/respiration.ts +39 -0
  225. package/src/component/garmin/schemas/skinTemperature.ts +39 -0
  226. package/src/component/garmin/schemas/sleeps.ts +38 -0
  227. package/src/component/garmin/schemas/stress.ts +43 -0
  228. package/src/component/garmin/schemas/userMetrics.ts +39 -0
  229. package/src/component/garmin/transform/activity.ts +143 -0
  230. package/src/component/garmin/transform/activityDetails.ts +236 -0
  231. package/src/{garmin → component/garmin/transform}/bloodPressure.ts +39 -41
  232. package/src/component/garmin/transform/bodyCompositions.ts +51 -0
  233. package/src/component/garmin/transform/dailies.ts +179 -0
  234. package/src/component/garmin/transform/epochs.ts +94 -0
  235. package/src/component/garmin/transform/healthSnapshot.ts +152 -0
  236. package/src/component/garmin/transform/hrvSummary.ts +56 -0
  237. package/src/component/garmin/transform/manuallyUpdatedActivities.ts +27 -0
  238. package/src/{garmin/maps/activity-type.ts → component/garmin/transform/maps/activityType.ts} +116 -116
  239. package/src/{garmin/maps/sleep-level.ts → component/garmin/transform/maps/sleepLevel.ts} +22 -22
  240. package/src/component/garmin/transform/menstrualCycleTracking.ts +48 -0
  241. package/src/component/garmin/transform/moveIQ.ts +48 -0
  242. package/src/{garmin → component/garmin/transform}/plannedWorkout.ts +328 -333
  243. package/src/component/garmin/transform/pulseOx.ts +64 -0
  244. package/src/component/garmin/transform/respiration.ts +73 -0
  245. package/src/component/garmin/transform/skinTemperature.ts +44 -0
  246. package/src/component/garmin/transform/sleeps.ts +159 -0
  247. package/src/component/garmin/transform/stress.ts +78 -0
  248. package/src/component/garmin/transform/userMetrics.ts +56 -0
  249. package/src/component/garmin/types/specs/training-api-workouts.json +699 -0
  250. package/src/component/garmin/types/trainingApiWorkouts/client/client.gen.ts +290 -0
  251. package/src/component/garmin/types/trainingApiWorkouts/client/index.ts +25 -0
  252. package/src/component/garmin/types/trainingApiWorkouts/client/types.gen.ts +214 -0
  253. package/src/component/garmin/types/trainingApiWorkouts/client/utils.gen.ts +316 -0
  254. package/src/component/garmin/types/trainingApiWorkouts/client.gen.ts +16 -0
  255. package/src/component/garmin/types/trainingApiWorkouts/core/auth.gen.ts +41 -0
  256. package/src/component/garmin/types/trainingApiWorkouts/core/bodySerializer.gen.ts +82 -0
  257. package/src/component/garmin/types/trainingApiWorkouts/core/params.gen.ts +169 -0
  258. package/src/component/garmin/types/trainingApiWorkouts/core/pathSerializer.gen.ts +171 -0
  259. package/src/component/garmin/types/trainingApiWorkouts/core/queryKeySerializer.gen.ts +117 -0
  260. package/src/component/garmin/types/trainingApiWorkouts/core/serverSentEvents.gen.ts +243 -0
  261. package/src/component/garmin/types/trainingApiWorkouts/core/types.gen.ts +104 -0
  262. package/src/component/garmin/types/trainingApiWorkouts/core/utils.gen.ts +140 -0
  263. package/src/component/garmin/types/trainingApiWorkouts/index.ts +4 -0
  264. package/src/component/garmin/types/trainingApiWorkouts/sdk.gen.ts +126 -0
  265. package/src/component/garmin/types/trainingApiWorkouts/types.gen.ts +387 -0
  266. package/src/component/garmin/types/trainingApiWorkouts/zod.gen.ts +423 -0
  267. package/src/component/garmin/types/wellnessApi/client/client.gen.ts +290 -0
  268. package/src/component/garmin/types/wellnessApi/client/index.ts +25 -0
  269. package/src/component/garmin/types/wellnessApi/client/types.gen.ts +214 -0
  270. package/src/component/garmin/types/wellnessApi/client/utils.gen.ts +316 -0
  271. package/src/component/garmin/types/wellnessApi/client.gen.ts +16 -0
  272. package/src/component/garmin/types/wellnessApi/core/auth.gen.ts +41 -0
  273. package/src/component/garmin/types/wellnessApi/core/bodySerializer.gen.ts +82 -0
  274. package/src/component/garmin/types/wellnessApi/core/params.gen.ts +169 -0
  275. package/src/component/garmin/types/wellnessApi/core/pathSerializer.gen.ts +171 -0
  276. package/src/component/garmin/types/wellnessApi/core/queryKeySerializer.gen.ts +117 -0
  277. package/src/component/garmin/types/wellnessApi/core/serverSentEvents.gen.ts +243 -0
  278. package/src/component/garmin/types/wellnessApi/core/types.gen.ts +104 -0
  279. package/src/component/garmin/types/wellnessApi/core/utils.gen.ts +140 -0
  280. package/src/component/garmin/types/wellnessApi/index.ts +4 -0
  281. package/src/component/garmin/types/wellnessApi/sdk.gen.ts +207 -0
  282. package/src/component/garmin/types/wellnessApi/types.gen.ts +2942 -0
  283. package/src/component/garmin/types/wellnessApi/zod.gen.ts +878 -0
  284. package/src/component/garmin/utils.ts +25 -0
  285. package/src/component/garmin/webhooks.ts +852 -0
  286. package/src/component/strava/private.ts +89 -0
  287. package/src/component/{strava.ts → strava/public.ts} +341 -404
  288. package/src/component/validators/activity.ts +5 -0
  289. package/src/component/validators/body.ts +5 -0
  290. package/src/component/validators/daily.ts +5 -0
  291. package/src/component/validators/menstruation.ts +5 -1
  292. package/src/component/validators/plannedWorkout.ts +5 -0
  293. package/src/validators.ts +12 -2
  294. package/dist/component/garmin.d.ts +0 -366
  295. package/dist/component/garmin.d.ts.map +0 -1
  296. package/dist/component/garmin.js +0 -1481
  297. package/dist/component/garmin.js.map +0 -1
  298. package/dist/component/strava.d.ts.map +0 -1
  299. package/dist/component/strava.js.map +0 -1
  300. package/dist/garmin/activity.d.ts +0 -92
  301. package/dist/garmin/activity.d.ts.map +0 -1
  302. package/dist/garmin/activity.js +0 -201
  303. package/dist/garmin/activity.js.map +0 -1
  304. package/src/component/garmin.ts +0 -1722
  305. package/src/garmin/activity.test.ts +0 -170
  306. package/src/garmin/activity.ts +0 -265
  307. package/src/garmin/auth.test.ts +0 -103
  308. package/src/garmin/body.ts +0 -59
  309. package/src/garmin/client.ts +0 -886
  310. package/src/garmin/daily.ts +0 -215
  311. package/src/garmin/hrv.ts +0 -57
  312. package/src/garmin/index.ts +0 -145
  313. package/src/garmin/maps/activity-type.test.ts +0 -78
  314. package/src/garmin/menstruation.ts +0 -44
  315. package/src/garmin/pulseOx.ts +0 -45
  316. package/src/garmin/respiration.ts +0 -55
  317. package/src/garmin/skinTemp.ts +0 -42
  318. package/src/garmin/sleep.test.ts +0 -109
  319. package/src/garmin/sleep.ts +0 -176
  320. package/src/garmin/stressDetails.ts +0 -71
  321. package/src/garmin/sync.ts +0 -566
  322. package/src/garmin/types.ts +0 -268
  323. package/src/garmin/userMetrics.ts +0 -50
  324. package/src/garmin/wellness-api.d.ts +0 -5637
  325. /package/src/{garmin/spec → component/garmin/types/specs}/wellness-api.json +0 -0
@@ -1,3 +1,4 @@
1
+ import type { Infer } from "convex/values";
1
2
  import { v } from "convex/values";
2
3
  import {
3
4
  calorieSample,
@@ -214,3 +215,7 @@ export const activityValidator = {
214
215
  }),
215
216
  ),
216
217
  };
218
+
219
+ /** Data-only shape (no connectionId / userId). */
220
+ type ActivityData = Omit<typeof activityValidator, "connectionId" | "userId">;
221
+ export type SomaActivity = Infer<ReturnType<typeof v.object<ActivityData>>>;
@@ -1,3 +1,4 @@
1
+ import type { Infer } from "convex/values";
1
2
  import { v } from "convex/values";
2
3
  import {
3
4
  bloodPressureSample,
@@ -112,3 +113,7 @@ export const bodyValidator = {
112
113
  }),
113
114
  ),
114
115
  };
116
+
117
+ /** Data-only shape (no connectionId / userId). */
118
+ type BodyData = Omit<typeof bodyValidator, "connectionId" | "userId">;
119
+ export type SomaBody = Infer<ReturnType<typeof v.object<BodyData>>>;
@@ -1,3 +1,4 @@
1
+ import type { Infer } from "convex/values";
1
2
  import { v } from "convex/values";
2
3
  import {
3
4
  activityLevelSample,
@@ -186,3 +187,7 @@ export const dailyValidator = {
186
187
  }),
187
188
  ),
188
189
  };
190
+
191
+ /** Data-only shape (no connectionId / userId). */
192
+ type DailyData = Omit<typeof dailyValidator, "connectionId" | "userId">;
193
+ export type SomaDaily = Infer<ReturnType<typeof v.object<DailyData>>>;
@@ -1,4 +1,4 @@
1
- import { v } from "convex/values";
1
+ import { type Infer, v } from "convex/values";
2
2
  import { menstruationFlowSample } from "./samples.js";
3
3
 
4
4
  // ─── Menstruation ────────────────────────────────────────────────────────────
@@ -34,3 +34,7 @@ export const menstruationValidator = {
34
34
  }),
35
35
  ),
36
36
  };
37
+
38
+ /** Data-only shape (no connectionId / userId). */
39
+ type MenstruationData = Omit<typeof menstruationValidator, "connectionId" | "userId">;
40
+ export type SomaMenstruation = Infer<ReturnType<typeof v.object<MenstruationData>>>;
@@ -1,3 +1,4 @@
1
+ import type { Infer } from "convex/values";
1
2
  import { v } from "convex/values";
2
3
 
3
4
  // ─── PlannedWorkoutStepTarget ────────────────────────────────────────────────
@@ -112,3 +113,7 @@ export const plannedWorkoutValidator = {
112
113
  provider_schedule_id: v.optional(v.string()),
113
114
  }),
114
115
  };
116
+
117
+ /** Data-only shape (no connectionId / userId). */
118
+ type PlannedWorkoutData = Omit<typeof plannedWorkoutValidator, "connectionId" | "userId">;
119
+ export type SomaPlannedWorkout = Infer<ReturnType<typeof v.object<PlannedWorkoutData>>>;
package/src/validators.ts CHANGED
@@ -41,8 +41,14 @@
41
41
  import { v } from "convex/values";
42
42
  import { connectionValidator as _connectionValidator } from "./component/validators/connection.js";
43
43
  import { athleteValidator as _athleteValidator } from "./component/validators/athlete.js";
44
- import { activityValidator as _activityValidator } from "./component/validators/activity.js";
45
- import { bodyValidator as _bodyValidator } from "./component/validators/body.js";
44
+ import {
45
+ activityValidator as _activityValidator,
46
+ type SomaActivity,
47
+ } from "./component/validators/activity.js";
48
+ import {
49
+ bodyValidator as _bodyValidator,
50
+ type SomaBody,
51
+ } from "./component/validators/body.js";
46
52
  import { dailyValidator as _dailyValidator } from "./component/validators/daily.js";
47
53
  import { sleepValidator as _sleepValidator } from "./component/validators/sleep.js";
48
54
  import { menstruationValidator as _menstruationValidator } from "./component/validators/menstruation.js";
@@ -87,3 +93,7 @@ export const sleepData = stripConnection(_sleepValidator);
87
93
  export const menstruationData = stripConnection(_menstruationValidator);
88
94
  export const nutritionData = stripConnection(_nutritionValidator);
89
95
  export const plannedWorkoutData = stripConnection(_plannedWorkoutValidator);
96
+
97
+ // ─── Soma types ─────────────────────────────────────────────────────────────
98
+
99
+ export type { SomaActivity, SomaBody };
@@ -1,366 +0,0 @@
1
- export declare const storePendingOAuth: import("convex/server").RegisteredMutation<"internal", {
2
- userId: string;
3
- provider: string;
4
- state: string;
5
- codeVerifier: string;
6
- }, Promise<null>>;
7
- export declare const getPendingOAuth: import("convex/server").RegisteredQuery<"internal", {
8
- state: string;
9
- }, Promise<{
10
- _id: import("convex/values").GenericId<"pendingOAuth">;
11
- _creationTime: number;
12
- userId: string;
13
- provider: string;
14
- state: string;
15
- codeVerifier: string;
16
- createdAt: number;
17
- } | null>>;
18
- export declare const deletePendingOAuth: import("convex/server").RegisteredMutation<"internal", {
19
- state: string;
20
- }, Promise<null>>;
21
- /**
22
- * Store OAuth 2.0 tokens for a Garmin connection.
23
- * Upserts by connectionId — one token record per connection.
24
- */
25
- export declare const storeTokens: import("convex/server").RegisteredMutation<"internal", {
26
- connectionId: import("convex/values").GenericId<"connections">;
27
- accessToken: string;
28
- refreshToken: string;
29
- expiresAt: number;
30
- }, Promise<null>>;
31
- /**
32
- * Get stored tokens for a connection.
33
- */
34
- export declare const getTokens: import("convex/server").RegisteredQuery<"internal", {
35
- connectionId: import("convex/values").GenericId<"connections">;
36
- }, Promise<{
37
- _id: import("convex/values").GenericId<"providerTokens">;
38
- _creationTime: number;
39
- refreshToken?: string | undefined;
40
- expiresAt?: number | undefined;
41
- connectionId: import("convex/values").GenericId<"connections">;
42
- accessToken: string;
43
- } | null>>;
44
- /**
45
- * Delete stored tokens for a connection.
46
- */
47
- export declare const deleteTokens: import("convex/server").RegisteredMutation<"internal", {
48
- connectionId: import("convex/values").GenericId<"connections">;
49
- }, Promise<null>>;
50
- /**
51
- * Generate a Garmin OAuth 2.0 authorization URL with PKCE.
52
- *
53
- * If `userId` is provided, the PKCE code verifier and state are stored in the
54
- * component's `pendingOAuth` table so that `completeGarminOAuth` can look
55
- * them up automatically when the callback fires. This is the recommended
56
- * flow when using `registerRoutes`.
57
- *
58
- * If `userId` is omitted, the host app must store the returned `codeVerifier`
59
- * itself and pass it to `connectGarmin` manually.
60
- */
61
- export declare const getGarminAuthUrl: import("convex/server").RegisteredAction<"public", {
62
- userId?: string | undefined;
63
- redirectUri?: string | undefined;
64
- clientId: string;
65
- }, Promise<{
66
- authUrl: string;
67
- state: string;
68
- codeVerifier: string;
69
- }>>;
70
- /**
71
- * Exchange an authorization code for tokens + initial sync.
72
- *
73
- * Used in the manual flow where the host app stores the code verifier
74
- * and handles the callback itself.
75
- */
76
- export declare const connectGarmin: import("convex/server").RegisteredAction<"public", {
77
- redirectUri?: string | undefined;
78
- userId: string;
79
- codeVerifier: string;
80
- clientId: string;
81
- clientSecret: string;
82
- code: string;
83
- }, Promise<{
84
- connectionId: any;
85
- synced: {
86
- activities: number;
87
- dailies: number;
88
- sleep: number;
89
- body: number;
90
- menstruation: number;
91
- bloodPressures: number;
92
- skinTemp: number;
93
- userMetrics: number;
94
- hrv: number;
95
- stressDetails: number;
96
- pulseOx: number;
97
- respiration: number;
98
- };
99
- errors: {
100
- type: string;
101
- id: string;
102
- error: string;
103
- }[];
104
- }>>;
105
- /**
106
- * Complete a Garmin OAuth 2.0 flow using stored pending state.
107
- *
108
- * Used by `registerRoutes` — the callback handler calls this with the
109
- * `code` and `state` from the redirect. The action looks up the pending
110
- * state (codeVerifier, userId) stored during `getGarminAuthUrl`,
111
- * exchanges for tokens, creates the connection, syncs data, and
112
- * cleans up the pending entry.
113
- */
114
- export declare const completeGarminOAuth: import("convex/server").RegisteredAction<"public", {
115
- redirectUri?: string | undefined;
116
- state: string;
117
- clientId: string;
118
- clientSecret: string;
119
- code: string;
120
- }, Promise<{
121
- connectionId: any;
122
- synced: {
123
- activities: number;
124
- dailies: number;
125
- sleep: number;
126
- body: number;
127
- menstruation: number;
128
- bloodPressures: number;
129
- skinTemp: number;
130
- userMetrics: number;
131
- hrv: number;
132
- stressDetails: number;
133
- pulseOx: number;
134
- respiration: number;
135
- };
136
- errors: {
137
- type: string;
138
- id: string;
139
- error: string;
140
- }[];
141
- }>>;
142
- /**
143
- * Incremental Garmin sync for an already-connected user.
144
- *
145
- * Looks up the stored tokens, refreshes if expired, and syncs all data
146
- * types for the specified time range (defaults to last 30 days).
147
- */
148
- export declare const syncGarmin: import("convex/server").RegisteredAction<"public", {
149
- startTimeInSeconds?: number | undefined;
150
- endTimeInSeconds?: number | undefined;
151
- userId: string;
152
- clientId: string;
153
- clientSecret: string;
154
- }, Promise<{
155
- synced: {
156
- activities: number;
157
- dailies: number;
158
- sleep: number;
159
- body: number;
160
- menstruation: number;
161
- bloodPressures: number;
162
- skinTemp: number;
163
- userMetrics: number;
164
- hrv: number;
165
- stressDetails: number;
166
- pulseOx: number;
167
- respiration: number;
168
- };
169
- errors: {
170
- type: string;
171
- id: string;
172
- error: string;
173
- }[];
174
- }>>;
175
- /**
176
- * Disconnect a user from Garmin.
177
- *
178
- * Deregisters the user via the Garmin API (best-effort), deletes stored
179
- * tokens, and sets the connection to inactive.
180
- */
181
- export declare const disconnectGarmin: import("convex/server").RegisteredAction<"public", {
182
- userId: string;
183
- }, Promise<null>>;
184
- /**
185
- * Push a planned workout from Soma's DB to Garmin Connect.
186
- *
187
- * Reads the planned workout document, transforms it to Garmin Training API V2
188
- * format, creates the workout at Garmin, and optionally schedules it if a
189
- * `planned_date` is set in the metadata.
190
- *
191
- * Returns the Garmin workout ID and schedule ID (if scheduled).
192
- */
193
- export declare const pushPlannedWorkout: import("convex/server").RegisteredAction<"public", {
194
- workoutProvider?: string | undefined;
195
- userId: string;
196
- clientId: string;
197
- clientSecret: string;
198
- plannedWorkoutId: string;
199
- }, Promise<{
200
- garminWorkoutId: number;
201
- garminScheduleId: number | null;
202
- }>>;
203
- /**
204
- * Handle a webhook for Garmin activities (push or ping mode).
205
- *
206
- * Push mode: receives full GarminActivity objects, transforms, and ingests.
207
- * Ping mode: receives notifications, fetches data from the Garmin API, transforms, and ingests.
208
- */
209
- export declare const handleGarminWebhookActivities: import("convex/server").RegisteredAction<"public", {
210
- payload: any;
211
- }, Promise<{
212
- processed: number;
213
- errors: {
214
- type: string;
215
- id: string;
216
- error: string;
217
- }[];
218
- }>>;
219
- /**
220
- * Handle a webhook for Garmin daily summaries (push or ping mode).
221
- */
222
- export declare const handleGarminWebhookDailies: import("convex/server").RegisteredAction<"public", {
223
- payload: any;
224
- }, Promise<{
225
- processed: number;
226
- errors: {
227
- type: string;
228
- id: string;
229
- error: string;
230
- }[];
231
- }>>;
232
- /**
233
- * Handle a webhook for Garmin sleep summaries (push or ping mode).
234
- */
235
- export declare const handleGarminWebhookSleeps: import("convex/server").RegisteredAction<"public", {
236
- payload: any;
237
- }, Promise<{
238
- processed: number;
239
- errors: {
240
- type: string;
241
- id: string;
242
- error: string;
243
- }[];
244
- }>>;
245
- /**
246
- * Handle a webhook for Garmin body composition summaries (push or ping mode).
247
- */
248
- export declare const handleGarminWebhookBody: import("convex/server").RegisteredAction<"public", {
249
- payload: any;
250
- }, Promise<{
251
- processed: number;
252
- errors: {
253
- type: string;
254
- id: string;
255
- error: string;
256
- }[];
257
- }>>;
258
- /**
259
- * Handle a webhook for Garmin menstrual cycle tracking (push or ping mode).
260
- */
261
- export declare const handleGarminWebhookMenstruation: import("convex/server").RegisteredAction<"public", {
262
- payload: any;
263
- }, Promise<{
264
- processed: number;
265
- errors: {
266
- type: string;
267
- id: string;
268
- error: string;
269
- }[];
270
- }>>;
271
- /**
272
- * Handle a webhook for Garmin blood pressure summaries (push or ping mode).
273
- */
274
- export declare const handleGarminWebhookBloodPressures: import("convex/server").RegisteredAction<"public", {
275
- payload: any;
276
- }, Promise<{
277
- processed: number;
278
- errors: {
279
- type: string;
280
- id: string;
281
- error: string;
282
- }[];
283
- }>>;
284
- /**
285
- * Handle a webhook for Garmin skin temperature summaries (push or ping mode).
286
- */
287
- export declare const handleGarminWebhookSkinTemp: import("convex/server").RegisteredAction<"public", {
288
- payload: any;
289
- }, Promise<{
290
- processed: number;
291
- errors: {
292
- type: string;
293
- id: string;
294
- error: string;
295
- }[];
296
- }>>;
297
- /**
298
- * Handle a webhook for Garmin user metrics (push or ping mode).
299
- */
300
- export declare const handleGarminWebhookUserMetrics: import("convex/server").RegisteredAction<"public", {
301
- payload: any;
302
- }, Promise<{
303
- processed: number;
304
- errors: {
305
- type: string;
306
- id: string;
307
- error: string;
308
- }[];
309
- }>>;
310
- /**
311
- * Handle a webhook for Garmin HRV summaries (push or ping mode).
312
- * Enriches daily records with heart_rate_data.
313
- */
314
- export declare const handleGarminWebhookHRV: import("convex/server").RegisteredAction<"public", {
315
- payload: any;
316
- }, Promise<{
317
- processed: number;
318
- errors: {
319
- type: string;
320
- id: string;
321
- error: string;
322
- }[];
323
- }>>;
324
- /**
325
- * Handle a webhook for Garmin stress detail summaries (push or ping mode).
326
- * Enriches daily records with stress_data.
327
- */
328
- export declare const handleGarminWebhookStressDetails: import("convex/server").RegisteredAction<"public", {
329
- payload: any;
330
- }, Promise<{
331
- processed: number;
332
- errors: {
333
- type: string;
334
- id: string;
335
- error: string;
336
- }[];
337
- }>>;
338
- /**
339
- * Handle a webhook for Garmin pulse oximetry (SpO2) summaries (push or ping mode).
340
- * Enriches daily records with oxygen_data.
341
- */
342
- export declare const handleGarminWebhookPulseOx: import("convex/server").RegisteredAction<"public", {
343
- payload: any;
344
- }, Promise<{
345
- processed: number;
346
- errors: {
347
- type: string;
348
- id: string;
349
- error: string;
350
- }[];
351
- }>>;
352
- /**
353
- * Handle a webhook for Garmin respiration summaries (push or ping mode).
354
- * Enriches daily records with respiration_data.
355
- */
356
- export declare const handleGarminWebhookRespiration: import("convex/server").RegisteredAction<"public", {
357
- payload: any;
358
- }, Promise<{
359
- processed: number;
360
- errors: {
361
- type: string;
362
- id: string;
363
- error: string;
364
- }[];
365
- }>>;
366
- //# sourceMappingURL=garmin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"garmin.d.ts","sourceRoot":"","sources":["../../src/component/garmin.ts"],"names":[],"mappings":"AAqEA,eAAO,MAAM,iBAAiB;;;;;iBAe5B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;UAoB1B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;iBAa7B,CAAC;AAIH;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;iBAiCtB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;UAqBpB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY;;iBAgBvB,CAAC;AAIH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;GAkC3B,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;cAsmCI,MAAM;YAAM,MAAM;eAAS,MAAM;;GA3hC7D,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;cAghCF,MAAM;YAAM,MAAM;eAAS,MAAM;;GAx7B7D,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;cAg7BO,MAAM;YAAM,MAAM;eAAS,MAAM;;GA30B7D,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;iBAwC3B,CAAC;AAIH;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;GA2H7B,CAAC;AAcH;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B;;;;;cA6cZ,MAAM;YAAM,MAAM;eAAS,MAAM;;GA9b7D,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;cAybT,MAAM;YAAM,MAAM;eAAS,MAAM;;GAza7D,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;cAoaR,MAAM;YAAM,MAAM;eAAS,MAAM;;GApZ7D,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;cA+YN,MAAM;YAAM,MAAM;eAAS,MAAM;;GA5X7D,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,+BAA+B;;;;;cAuXd,MAAM;YAAM,MAAM;eAAS,MAAM;;GAvW7D,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iCAAiC;;;;;cAkWhB,MAAM;YAAM,MAAM;eAAS,MAAM;;GA/U7D,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,2BAA2B;;;;;cA0UV,MAAM;YAAM,MAAM;eAAS,MAAM;;GA1T7D,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,8BAA8B;;;;;cAqTb,MAAM;YAAM,MAAM;eAAS,MAAM;;GArS7D,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;cA+RL,MAAM;YAAM,MAAM;eAAS,MAAM;;GAnQ7D,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,gCAAgC;;;;;cA6Pf,MAAM;YAAM,MAAM;eAAS,MAAM;;GAjO7D,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;;cA2NT,MAAM;YAAM,MAAM;eAAS,MAAM;;GA/L7D,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,8BAA8B;;;;;cAyLb,MAAM;YAAM,MAAM;eAAS,MAAM;;GA/J7D,CAAC"}