@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.
- package/dist/client/index.d.ts +17 -55
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +63 -13
- package/dist/client/index.js.map +1 -1
- package/dist/component/_generated/api.d.ts +80 -4
- package/dist/component/_generated/api.d.ts.map +1 -1
- package/dist/component/_generated/api.js.map +1 -1
- package/dist/component/_generated/component.d.ts +153 -120
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/garmin/private.d.ts +475 -0
- package/dist/component/garmin/private.d.ts.map +1 -0
- package/dist/component/garmin/private.js +1614 -0
- package/dist/component/garmin/private.js.map +1 -0
- package/dist/component/{garmin.d.ts → garmin/public.d.ts} +25 -52
- package/dist/component/garmin/public.d.ts.map +1 -0
- package/dist/component/{garmin.js → garmin/public.js} +301 -215
- package/dist/component/garmin/public.js.map +1 -0
- package/dist/component/garmin/schemas/activity.d.ts +94 -0
- package/dist/component/garmin/schemas/activity.d.ts.map +1 -0
- package/dist/component/garmin/schemas/activity.js +27 -0
- package/dist/component/garmin/schemas/activity.js.map +1 -0
- package/dist/component/garmin/schemas/activityDetails.d.ts +146 -0
- package/dist/component/garmin/schemas/activityDetails.d.ts.map +1 -0
- package/dist/component/garmin/schemas/activityDetails.js +27 -0
- package/dist/component/garmin/schemas/activityDetails.js.map +1 -0
- package/dist/component/garmin/schemas/bloodPressure.d.ts +38 -0
- package/dist/component/garmin/schemas/bloodPressure.d.ts.map +1 -0
- package/dist/component/garmin/schemas/bloodPressure.js +27 -0
- package/dist/component/garmin/schemas/bloodPressure.js.map +1 -0
- package/dist/component/garmin/schemas/bodyCompositions.d.ts +42 -0
- package/dist/component/garmin/schemas/bodyCompositions.d.ts.map +1 -0
- package/dist/component/garmin/schemas/bodyCompositions.js +27 -0
- package/dist/component/garmin/schemas/bodyCompositions.js.map +1 -0
- package/dist/component/garmin/schemas/dailies.d.ts +98 -0
- package/dist/component/garmin/schemas/dailies.d.ts.map +1 -0
- package/dist/component/garmin/schemas/dailies.js +27 -0
- package/dist/component/garmin/schemas/dailies.js.map +1 -0
- package/dist/component/garmin/schemas/epochs.d.ts +54 -0
- package/dist/component/garmin/schemas/epochs.d.ts.map +1 -0
- package/dist/component/garmin/schemas/epochs.js +27 -0
- package/dist/component/garmin/schemas/epochs.js.map +1 -0
- package/dist/component/garmin/schemas/healthSnapshot.d.ts +48 -0
- package/dist/component/garmin/schemas/healthSnapshot.d.ts.map +1 -0
- package/dist/component/garmin/schemas/healthSnapshot.js +27 -0
- package/dist/component/garmin/schemas/healthSnapshot.js.map +1 -0
- package/dist/component/garmin/schemas/hrvSummary.d.ts +40 -0
- package/dist/component/garmin/schemas/hrvSummary.d.ts.map +1 -0
- package/dist/component/garmin/schemas/hrvSummary.js +27 -0
- package/dist/component/garmin/schemas/hrvSummary.js.map +1 -0
- package/dist/component/garmin/schemas/manuallyUpdatedActivities.d.ts +94 -0
- package/dist/component/garmin/schemas/manuallyUpdatedActivities.d.ts.map +1 -0
- package/dist/component/garmin/schemas/manuallyUpdatedActivities.js +27 -0
- package/dist/component/garmin/schemas/manuallyUpdatedActivities.js.map +1 -0
- package/dist/component/garmin/schemas/menstrualCycleTracking.d.ts +100 -0
- package/dist/component/garmin/schemas/menstrualCycleTracking.d.ts.map +1 -0
- package/dist/component/garmin/schemas/menstrualCycleTracking.js +28 -0
- package/dist/component/garmin/schemas/menstrualCycleTracking.js.map +1 -0
- package/dist/component/garmin/schemas/moveIQ.d.ts +40 -0
- package/dist/component/garmin/schemas/moveIQ.d.ts.map +1 -0
- package/dist/component/garmin/schemas/moveIQ.js +27 -0
- package/dist/component/garmin/schemas/moveIQ.js.map +1 -0
- package/dist/component/garmin/schemas/pulseOx.d.ts +38 -0
- package/dist/component/garmin/schemas/pulseOx.d.ts.map +1 -0
- package/dist/component/garmin/schemas/pulseOx.js +28 -0
- package/dist/component/garmin/schemas/pulseOx.js.map +1 -0
- package/dist/component/garmin/schemas/respiration.d.ts +34 -0
- package/dist/component/garmin/schemas/respiration.d.ts.map +1 -0
- package/dist/component/garmin/schemas/respiration.js +28 -0
- package/dist/component/garmin/schemas/respiration.js.map +1 -0
- package/dist/component/garmin/schemas/skinTemperature.d.ts +36 -0
- package/dist/component/garmin/schemas/skinTemperature.d.ts.map +1 -0
- package/dist/component/garmin/schemas/skinTemperature.js +28 -0
- package/dist/component/garmin/schemas/skinTemperature.js.map +1 -0
- package/dist/component/garmin/schemas/sleeps.d.ts +88 -0
- package/dist/component/garmin/schemas/sleeps.d.ts.map +1 -0
- package/dist/component/garmin/schemas/sleeps.js +27 -0
- package/dist/component/garmin/schemas/sleeps.js.map +1 -0
- package/dist/component/garmin/schemas/stress.d.ts +70 -0
- package/dist/component/garmin/schemas/stress.d.ts.map +1 -0
- package/dist/component/garmin/schemas/stress.js +28 -0
- package/dist/component/garmin/schemas/stress.js.map +1 -0
- package/dist/component/garmin/schemas/userMetrics.d.ts +36 -0
- package/dist/component/garmin/schemas/userMetrics.d.ts.map +1 -0
- package/dist/component/garmin/schemas/userMetrics.js +28 -0
- package/dist/component/garmin/schemas/userMetrics.js.map +1 -0
- package/dist/component/garmin/transform/activity.d.ts +13 -0
- package/dist/component/garmin/transform/activity.d.ts.map +1 -0
- package/dist/component/garmin/transform/activity.js +111 -0
- package/dist/component/garmin/transform/activity.js.map +1 -0
- package/dist/component/garmin/transform/activityDetails.d.ts +13 -0
- package/dist/component/garmin/transform/activityDetails.d.ts.map +1 -0
- package/dist/component/garmin/transform/activityDetails.js +173 -0
- package/dist/component/garmin/transform/activityDetails.js.map +1 -0
- package/dist/component/garmin/transform/bloodPressure.d.ts +12 -0
- package/dist/component/garmin/transform/bloodPressure.d.ts.map +1 -0
- package/dist/component/garmin/transform/bloodPressure.js +33 -0
- package/dist/component/garmin/transform/bloodPressure.js.map +1 -0
- package/dist/component/garmin/transform/bodyCompositions.d.ts +12 -0
- package/dist/component/garmin/transform/bodyCompositions.d.ts.map +1 -0
- package/dist/component/garmin/transform/bodyCompositions.js +42 -0
- package/dist/component/garmin/transform/bodyCompositions.js.map +1 -0
- package/dist/component/garmin/transform/dailies.d.ts +12 -0
- package/dist/component/garmin/transform/dailies.d.ts.map +1 -0
- package/dist/component/garmin/transform/dailies.js +132 -0
- package/dist/component/garmin/transform/dailies.js.map +1 -0
- package/dist/component/garmin/transform/epochs.d.ts +13 -0
- package/dist/component/garmin/transform/epochs.d.ts.map +1 -0
- package/dist/component/garmin/transform/epochs.js +76 -0
- package/dist/component/garmin/transform/epochs.js.map +1 -0
- package/dist/component/garmin/transform/healthSnapshot.d.ts +12 -0
- package/dist/component/garmin/transform/healthSnapshot.d.ts.map +1 -0
- package/dist/component/garmin/transform/healthSnapshot.js +111 -0
- package/dist/component/garmin/transform/healthSnapshot.js.map +1 -0
- package/dist/component/garmin/transform/hrvSummary.d.ts +12 -0
- package/dist/component/garmin/transform/hrvSummary.d.ts.map +1 -0
- package/dist/component/garmin/transform/hrvSummary.js +45 -0
- package/dist/component/garmin/transform/hrvSummary.js.map +1 -0
- package/dist/component/garmin/transform/manuallyUpdatedActivities.d.ts +11 -0
- package/dist/component/garmin/transform/manuallyUpdatedActivities.d.ts.map +1 -0
- package/dist/component/garmin/transform/manuallyUpdatedActivities.js +20 -0
- package/dist/component/garmin/transform/manuallyUpdatedActivities.js.map +1 -0
- package/dist/component/garmin/transform/menstrualCycleTracking.d.ts +10 -0
- package/dist/component/garmin/transform/menstrualCycleTracking.d.ts.map +1 -0
- package/dist/component/garmin/transform/menstrualCycleTracking.js +43 -0
- package/dist/component/garmin/transform/menstrualCycleTracking.js.map +1 -0
- package/dist/component/garmin/transform/moveIQ.d.ts +17 -0
- package/dist/component/garmin/transform/moveIQ.d.ts.map +1 -0
- package/dist/component/garmin/transform/moveIQ.js +41 -0
- package/dist/component/garmin/transform/moveIQ.js.map +1 -0
- package/dist/component/garmin/transform/pulseOx.d.ts +12 -0
- package/dist/component/garmin/transform/pulseOx.d.ts.map +1 -0
- package/dist/component/garmin/transform/pulseOx.js +46 -0
- package/dist/component/garmin/transform/pulseOx.js.map +1 -0
- package/dist/component/garmin/transform/respiration.d.ts +12 -0
- package/dist/component/garmin/transform/respiration.d.ts.map +1 -0
- package/dist/component/garmin/transform/respiration.js +54 -0
- package/dist/component/garmin/transform/respiration.js.map +1 -0
- package/dist/component/garmin/transform/skinTemperature.d.ts +12 -0
- package/dist/component/garmin/transform/skinTemperature.d.ts.map +1 -0
- package/dist/component/garmin/transform/skinTemperature.js +38 -0
- package/dist/component/garmin/transform/skinTemperature.js.map +1 -0
- package/dist/component/garmin/transform/sleeps.d.ts +55 -0
- package/dist/component/garmin/transform/sleeps.d.ts.map +1 -0
- package/dist/component/garmin/transform/sleeps.js +120 -0
- package/dist/component/garmin/transform/sleeps.js.map +1 -0
- package/dist/component/garmin/transform/stress.d.ts +12 -0
- package/dist/component/garmin/transform/stress.d.ts.map +1 -0
- package/dist/component/garmin/transform/stress.js +56 -0
- package/dist/component/garmin/transform/stress.js.map +1 -0
- package/dist/component/garmin/transform/userMetrics.d.ts +12 -0
- package/dist/component/garmin/transform/userMetrics.d.ts.map +1 -0
- package/dist/component/garmin/transform/userMetrics.js +48 -0
- package/dist/component/garmin/transform/userMetrics.js.map +1 -0
- package/dist/component/garmin/types/garmin.d.ts +21 -0
- package/dist/component/garmin/types/garmin.d.ts.map +1 -0
- package/dist/component/garmin/types/garmin.js +6 -0
- package/dist/component/garmin/types/garmin.js.map +1 -0
- package/dist/component/garmin/types/zod/zod.gen.d.ts +1319 -0
- package/dist/component/garmin/types/zod/zod.gen.d.ts.map +1 -0
- package/dist/component/garmin/types/zod/zod.gen.js +784 -0
- package/dist/component/garmin/types/zod/zod.gen.js.map +1 -0
- package/dist/component/garmin/webhooks.d.ts +141 -0
- package/dist/component/garmin/webhooks.d.ts.map +1 -0
- package/dist/component/garmin/webhooks.js +766 -0
- package/dist/component/garmin/webhooks.js.map +1 -0
- package/dist/component/private.d.ts +20 -2
- package/dist/component/private.d.ts.map +1 -1
- package/dist/component/private.js +18 -0
- package/dist/component/private.js.map +1 -1
- package/dist/component/public.d.ts +433 -387
- package/dist/component/public.d.ts.map +1 -1
- package/dist/component/public.js +12 -2
- package/dist/component/public.js.map +1 -1
- package/dist/component/schema.d.ts +217 -162
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/schema.js +2 -1
- package/dist/component/schema.js.map +1 -1
- package/dist/component/strava/private.d.ts +30 -0
- package/dist/component/strava/private.d.ts.map +1 -0
- package/dist/component/strava/private.js +71 -0
- package/dist/component/strava/private.js.map +1 -0
- package/dist/component/{strava.d.ts → strava/public.d.ts} +3 -31
- package/dist/component/strava/public.d.ts.map +1 -0
- package/dist/component/{strava.js → strava/public.js} +22 -101
- package/dist/component/strava/public.js.map +1 -0
- package/dist/component/validators/activity.d.ts +6 -0
- package/dist/component/validators/activity.d.ts.map +1 -1
- package/dist/component/validators/activity.js.map +1 -1
- package/dist/component/validators/body.d.ts +20 -14
- package/dist/component/validators/body.d.ts.map +1 -1
- package/dist/component/validators/body.js.map +1 -1
- package/dist/component/validators/connection.d.ts +1 -0
- package/dist/component/validators/connection.d.ts.map +1 -1
- package/dist/component/validators/connection.js +2 -0
- package/dist/component/validators/connection.js.map +1 -1
- package/dist/component/validators/daily.d.ts +46 -5
- package/dist/component/validators/daily.d.ts.map +1 -1
- package/dist/component/validators/daily.js +10 -1
- package/dist/component/validators/daily.js.map +1 -1
- package/dist/component/validators/enums.d.ts +2 -2
- package/dist/component/validators/menstruation.d.ts +5 -0
- package/dist/component/validators/menstruation.d.ts.map +1 -1
- package/dist/component/validators/menstruation.js.map +1 -1
- package/dist/component/validators/plannedWorkout.d.ts +5 -1
- package/dist/component/validators/plannedWorkout.d.ts.map +1 -1
- package/dist/component/validators/plannedWorkout.js +4 -0
- package/dist/component/validators/plannedWorkout.js.map +1 -1
- package/dist/component/validators/sleep.d.ts +8 -8
- package/dist/garmin/bloodPressure.d.ts +28 -0
- package/dist/garmin/bloodPressure.d.ts.map +1 -0
- package/dist/garmin/bloodPressure.js +34 -0
- package/dist/garmin/bloodPressure.js.map +1 -0
- package/dist/garmin/body.js +1 -1
- package/dist/garmin/body.js.map +1 -1
- package/dist/garmin/client.d.ts +117 -17
- package/dist/garmin/client.d.ts.map +1 -1
- package/dist/garmin/client.js +337 -43
- package/dist/garmin/client.js.map +1 -1
- package/dist/garmin/daily.d.ts.map +1 -1
- package/dist/garmin/daily.js +3 -3
- package/dist/garmin/daily.js.map +1 -1
- package/dist/garmin/hrv.d.ts +30 -0
- package/dist/garmin/hrv.d.ts.map +1 -0
- package/dist/garmin/hrv.js +45 -0
- package/dist/garmin/hrv.js.map +1 -0
- package/dist/garmin/index.d.ts +16 -4
- package/dist/garmin/index.d.ts.map +1 -1
- package/dist/garmin/index.js +8 -2
- package/dist/garmin/index.js.map +1 -1
- package/dist/garmin/maps/activity-type.d.ts +1 -2
- package/dist/garmin/maps/activity-type.d.ts.map +1 -1
- package/dist/garmin/maps/activity-type.js +1 -0
- package/dist/garmin/maps/activity-type.js.map +1 -1
- package/dist/garmin/menstruation.d.ts +6 -4
- package/dist/garmin/menstruation.d.ts.map +1 -1
- package/dist/garmin/menstruation.js +12 -8
- package/dist/garmin/menstruation.js.map +1 -1
- package/dist/garmin/pulseOx.d.ts +24 -0
- package/dist/garmin/pulseOx.d.ts.map +1 -0
- package/dist/garmin/pulseOx.js +33 -0
- package/dist/garmin/pulseOx.js.map +1 -0
- package/dist/garmin/respiration.d.ts +29 -0
- package/dist/garmin/respiration.d.ts.map +1 -0
- package/dist/garmin/respiration.js +42 -0
- package/dist/garmin/respiration.js.map +1 -0
- package/dist/garmin/skinTemp.d.ts +27 -0
- package/dist/garmin/skinTemp.d.ts.map +1 -0
- package/dist/garmin/skinTemp.js +35 -0
- package/dist/garmin/skinTemp.js.map +1 -0
- package/dist/garmin/sleep.d.ts +4 -4
- package/dist/garmin/sleep.d.ts.map +1 -1
- package/dist/garmin/sleep.js +15 -9
- package/dist/garmin/sleep.js.map +1 -1
- package/dist/garmin/stressDetails.d.ts +30 -0
- package/dist/garmin/stressDetails.d.ts.map +1 -0
- package/dist/garmin/stressDetails.js +49 -0
- package/dist/garmin/stressDetails.js.map +1 -0
- package/dist/garmin/sync.d.ts +14 -0
- package/dist/garmin/sync.d.ts.map +1 -1
- package/dist/garmin/sync.js +290 -7
- package/dist/garmin/sync.js.map +1 -1
- package/dist/garmin/types.d.ts +77 -186
- package/dist/garmin/types.d.ts.map +1 -1
- package/dist/garmin/types.js +4 -2
- package/dist/garmin/types.js.map +1 -1
- package/dist/garmin/userMetrics.d.ts +23 -0
- package/dist/garmin/userMetrics.d.ts.map +1 -0
- package/dist/garmin/userMetrics.js +41 -0
- package/dist/garmin/userMetrics.js.map +1 -0
- package/dist/validators.d.ts +138 -56
- package/dist/validators.d.ts.map +1 -1
- package/dist/validators.js +2 -2
- package/dist/validators.js.map +1 -1
- package/package.json +130 -124
- package/src/client/index.ts +86 -18
- package/src/component/_generated/api.ts +96 -4
- package/src/component/_generated/component.ts +271 -144
- package/src/{garmin → component/garmin}/auth.ts +8 -1
- package/src/component/garmin/client.ts +39 -0
- package/src/component/garmin/private.ts +1798 -0
- package/src/component/garmin/public.ts +938 -0
- package/src/component/garmin/schemas/activity.ts +40 -0
- package/src/component/garmin/schemas/activityDetails.ts +45 -0
- package/src/component/garmin/schemas/bloodPressure.ts +38 -0
- package/src/component/garmin/schemas/bodyCompositions.ts +38 -0
- package/src/component/garmin/schemas/dailies.ts +38 -0
- package/src/component/garmin/schemas/epochs.ts +38 -0
- package/src/component/garmin/schemas/healthSnapshot.ts +38 -0
- package/src/component/garmin/schemas/hrvSummary.ts +38 -0
- package/src/component/garmin/schemas/manuallyUpdatedActivities.ts +49 -0
- package/src/component/garmin/schemas/menstrualCycleTracking.ts +39 -0
- package/src/component/garmin/schemas/moveIQ.ts +38 -0
- package/src/component/garmin/schemas/pulseOx.ts +39 -0
- package/src/component/garmin/schemas/respiration.ts +39 -0
- package/src/component/garmin/schemas/skinTemperature.ts +39 -0
- package/src/component/garmin/schemas/sleeps.ts +38 -0
- package/src/component/garmin/schemas/stress.ts +43 -0
- package/src/component/garmin/schemas/userMetrics.ts +39 -0
- package/src/component/garmin/transform/activity.ts +143 -0
- package/src/component/garmin/transform/activityDetails.ts +236 -0
- package/src/component/garmin/transform/bloodPressure.ts +39 -0
- package/src/component/garmin/transform/bodyCompositions.ts +51 -0
- package/src/component/garmin/transform/dailies.ts +179 -0
- package/src/component/garmin/transform/epochs.ts +94 -0
- package/src/component/garmin/transform/healthSnapshot.ts +152 -0
- package/src/component/garmin/transform/hrvSummary.ts +56 -0
- package/src/component/garmin/transform/manuallyUpdatedActivities.ts +27 -0
- package/src/{garmin/maps/activity-type.ts → component/garmin/transform/maps/activityType.ts} +116 -116
- package/src/{garmin/maps/sleep-level.ts → component/garmin/transform/maps/sleepLevel.ts} +22 -22
- package/src/component/garmin/transform/menstrualCycleTracking.ts +48 -0
- package/src/component/garmin/transform/moveIQ.ts +48 -0
- package/src/{garmin → component/garmin/transform}/plannedWorkout.ts +328 -333
- package/src/component/garmin/transform/pulseOx.ts +64 -0
- package/src/component/garmin/transform/respiration.ts +73 -0
- package/src/component/garmin/transform/skinTemperature.ts +44 -0
- package/src/component/garmin/transform/sleeps.ts +159 -0
- package/src/component/garmin/transform/stress.ts +78 -0
- package/src/component/garmin/transform/userMetrics.ts +56 -0
- package/src/component/garmin/types/specs/training-api-workouts.json +699 -0
- package/src/component/garmin/types/specs/wellness-api.json +1 -0
- package/src/component/garmin/types/trainingApiWorkouts/client/client.gen.ts +290 -0
- package/src/component/garmin/types/trainingApiWorkouts/client/index.ts +25 -0
- package/src/component/garmin/types/trainingApiWorkouts/client/types.gen.ts +214 -0
- package/src/component/garmin/types/trainingApiWorkouts/client/utils.gen.ts +316 -0
- package/src/component/garmin/types/trainingApiWorkouts/client.gen.ts +16 -0
- package/src/component/garmin/types/trainingApiWorkouts/core/auth.gen.ts +41 -0
- package/src/component/garmin/types/trainingApiWorkouts/core/bodySerializer.gen.ts +82 -0
- package/src/component/garmin/types/trainingApiWorkouts/core/params.gen.ts +169 -0
- package/src/component/garmin/types/trainingApiWorkouts/core/pathSerializer.gen.ts +171 -0
- package/src/component/garmin/types/trainingApiWorkouts/core/queryKeySerializer.gen.ts +117 -0
- package/src/component/garmin/types/trainingApiWorkouts/core/serverSentEvents.gen.ts +243 -0
- package/src/component/garmin/types/trainingApiWorkouts/core/types.gen.ts +104 -0
- package/src/component/garmin/types/trainingApiWorkouts/core/utils.gen.ts +140 -0
- package/src/component/garmin/types/trainingApiWorkouts/index.ts +4 -0
- package/src/component/garmin/types/trainingApiWorkouts/sdk.gen.ts +126 -0
- package/src/component/garmin/types/trainingApiWorkouts/types.gen.ts +387 -0
- package/src/component/garmin/types/trainingApiWorkouts/zod.gen.ts +423 -0
- package/src/component/garmin/types/wellnessApi/client/client.gen.ts +290 -0
- package/src/component/garmin/types/wellnessApi/client/index.ts +25 -0
- package/src/component/garmin/types/wellnessApi/client/types.gen.ts +214 -0
- package/src/component/garmin/types/wellnessApi/client/utils.gen.ts +316 -0
- package/src/component/garmin/types/wellnessApi/client.gen.ts +16 -0
- package/src/component/garmin/types/wellnessApi/core/auth.gen.ts +41 -0
- package/src/component/garmin/types/wellnessApi/core/bodySerializer.gen.ts +82 -0
- package/src/component/garmin/types/wellnessApi/core/params.gen.ts +169 -0
- package/src/component/garmin/types/wellnessApi/core/pathSerializer.gen.ts +171 -0
- package/src/component/garmin/types/wellnessApi/core/queryKeySerializer.gen.ts +117 -0
- package/src/component/garmin/types/wellnessApi/core/serverSentEvents.gen.ts +243 -0
- package/src/component/garmin/types/wellnessApi/core/types.gen.ts +104 -0
- package/src/component/garmin/types/wellnessApi/core/utils.gen.ts +140 -0
- package/src/component/garmin/types/wellnessApi/index.ts +4 -0
- package/src/component/garmin/types/wellnessApi/sdk.gen.ts +207 -0
- package/src/component/garmin/types/wellnessApi/types.gen.ts +2942 -0
- package/src/component/garmin/types/wellnessApi/zod.gen.ts +878 -0
- package/src/component/garmin/utils.ts +25 -0
- package/src/component/garmin/webhooks.ts +852 -0
- package/src/component/private.ts +21 -0
- package/src/component/public.ts +11 -2
- package/src/component/schema.ts +2 -1
- package/src/component/strava/private.ts +89 -0
- package/src/component/{strava.ts → strava/public.ts} +341 -404
- package/src/component/validators/activity.ts +5 -0
- package/src/component/validators/body.ts +5 -0
- package/src/component/validators/connection.ts +2 -0
- package/src/component/validators/daily.ts +20 -0
- package/src/component/validators/menstruation.ts +5 -1
- package/src/component/validators/plannedWorkout.ts +9 -0
- package/src/validators.ts +12 -2
- package/dist/component/garmin.d.ts.map +0 -1
- package/dist/component/garmin.js.map +0 -1
- package/dist/component/strava.d.ts.map +0 -1
- package/dist/component/strava.js.map +0 -1
- package/dist/garmin/activity.d.ts +0 -101
- package/dist/garmin/activity.d.ts.map +0 -1
- package/dist/garmin/activity.js +0 -207
- package/dist/garmin/activity.js.map +0 -1
- package/src/component/garmin.ts +0 -850
- package/src/garmin/activity.test.ts +0 -178
- package/src/garmin/activity.ts +0 -272
- package/src/garmin/auth.test.ts +0 -103
- package/src/garmin/body.ts +0 -59
- package/src/garmin/client.ts +0 -407
- package/src/garmin/daily.ts +0 -211
- package/src/garmin/index.ts +0 -75
- package/src/garmin/maps/activity-type.test.ts +0 -78
- package/src/garmin/menstruation.ts +0 -42
- package/src/garmin/sleep.test.ts +0 -110
- package/src/garmin/sleep.ts +0 -170
- package/src/garmin/sync.ts +0 -223
- 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>;
|