@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.
- package/dist/client/index.d.ts +7 -128
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +31 -112
- 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 +135 -261
- 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/public.d.ts +155 -0
- package/dist/component/garmin/public.d.ts.map +1 -0
- package/dist/component/garmin/public.js +787 -0
- 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 +4 -4
- package/dist/component/public.d.ts +333 -333
- package/dist/component/schema.d.ts +133 -133
- 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/daily.d.ts +6 -0
- package/dist/component/validators/daily.d.ts.map +1 -1
- package/dist/component/validators/daily.js.map +1 -1
- package/dist/component/validators/enums.d.ts +1 -1
- 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/garmin/client.js.map +1 -1
- package/dist/garmin/index.d.ts +0 -2
- package/dist/garmin/index.d.ts.map +1 -1
- package/dist/garmin/index.js +0 -1
- package/dist/garmin/index.js.map +1 -1
- package/dist/garmin/sync.d.ts.map +1 -1
- package/dist/garmin/sync.js +3 -2
- package/dist/garmin/sync.js.map +1 -1
- package/dist/garmin/types.d.ts +1 -1
- package/dist/garmin/types.d.ts.map +1 -1
- package/dist/validators.d.ts +31 -28
- package/dist/validators.d.ts.map +1 -1
- package/dist/validators.js +2 -2
- package/dist/validators.js.map +1 -1
- package/package.json +4 -7
- package/src/client/index.ts +41 -172
- package/src/component/_generated/api.ts +96 -4
- package/src/component/_generated/component.ts +252 -284
- 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/{garmin → component/garmin/transform}/bloodPressure.ts +39 -41
- 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/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/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/daily.ts +5 -0
- package/src/component/validators/menstruation.ts +5 -1
- package/src/component/validators/plannedWorkout.ts +5 -0
- package/src/validators.ts +12 -2
- package/dist/component/garmin.d.ts +0 -366
- package/dist/component/garmin.d.ts.map +0 -1
- package/dist/component/garmin.js +0 -1481
- 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 -92
- package/dist/garmin/activity.d.ts.map +0 -1
- package/dist/garmin/activity.js +0 -201
- package/dist/garmin/activity.js.map +0 -1
- package/src/component/garmin.ts +0 -1722
- package/src/garmin/activity.test.ts +0 -170
- package/src/garmin/activity.ts +0 -265
- package/src/garmin/auth.test.ts +0 -103
- package/src/garmin/body.ts +0 -59
- package/src/garmin/client.ts +0 -886
- package/src/garmin/daily.ts +0 -215
- package/src/garmin/hrv.ts +0 -57
- package/src/garmin/index.ts +0 -145
- package/src/garmin/maps/activity-type.test.ts +0 -78
- package/src/garmin/menstruation.ts +0 -44
- package/src/garmin/pulseOx.ts +0 -45
- package/src/garmin/respiration.ts +0 -55
- package/src/garmin/skinTemp.ts +0 -42
- package/src/garmin/sleep.test.ts +0 -109
- package/src/garmin/sleep.ts +0 -176
- package/src/garmin/stressDetails.ts +0 -71
- package/src/garmin/sync.ts +0 -566
- package/src/garmin/types.ts +0 -268
- package/src/garmin/userMetrics.ts +0 -50
- package/src/garmin/wellness-api.d.ts +0 -5637
- /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 {
|
|
45
|
-
|
|
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"}
|