@nativesquare/soma 0.10.2 → 0.12.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.
@@ -1,4 +1,8 @@
1
1
  import { httpActionGeneric, } from "convex/server";
2
+ import { SomaGarmin } from "./garmin.js";
3
+ import { SomaStrava } from "./strava.js";
4
+ export { SomaGarmin } from "./garmin.js";
5
+ export { SomaStrava } from "./strava.js";
2
6
  // ─── Default OAuth Callback Paths ────────────────────────────────────────────
3
7
  // Used by `registerRoutes` as defaults. Override per-provider in the opts.
4
8
  export const STRAVA_CALLBACK_PATH = "/api/strava/callback";
@@ -11,7 +15,7 @@ export const GARMIN_WEBHOOK_BASE_PATH = "/api/garmin/webhook";
11
15
  * and querying normalized health & fitness data.
12
16
  *
13
17
  * All capabilities are also accessible via direct component function calls:
14
- * `ctx.runMutation(components.soma.public.connect, { userId, provider: "GARMIN" })`
18
+ * `ctx.runQuery(components.soma.public.listActivities, { userId: "user_123" })`
15
19
  *
16
20
  * @example
17
21
  * ```ts
@@ -20,35 +24,38 @@ export const GARMIN_WEBHOOK_BASE_PATH = "/api/garmin/webhook";
20
24
  * import { components } from "./_generated/api";
21
25
  *
22
26
  * // Zero config if env vars are set in Convex dashboard:
23
- * // STRAVA_CLIENT_ID, STRAVA_CLIENT_SECRET, STRAVA_BASE_URL (optional)
27
+ * // STRAVA_CLIENT_ID, STRAVA_CLIENT_SECRET
28
+ * // GARMIN_CLIENT_ID, GARMIN_CLIENT_SECRET
24
29
  * const soma = new Soma(components.soma);
25
30
  *
26
- * // Or with explicit Strava config:
31
+ * // Or with explicit config:
27
32
  * // const soma = new Soma(components.soma, {
28
33
  * // strava: { clientId: "...", clientSecret: "..." },
34
+ * // garmin: { clientId: "...", clientSecret: "..." },
29
35
  * // });
30
36
  *
31
- * // Connect a user to a provider:
32
- * const connectionId = await soma.connect(ctx, {
33
- * userId: "user_123",
34
- * provider: "GARMIN",
35
- * });
36
- *
37
37
  * // Start Strava OAuth (redirects user, callback handled by registerRoutes):
38
- * const { authUrl } = await soma.getStravaAuthUrl(ctx, {
38
+ * const { authUrl } = await soma.strava.getAuthUrl(ctx, {
39
39
  * userId: "user_123",
40
40
  * redirectUri: "https://your-app.convex.site/api/strava/callback",
41
41
  * });
42
+ *
43
+ * // Pull all Garmin data:
44
+ * await soma.garmin.pullAll(ctx, { userId: "user_123" });
42
45
  * ```
43
46
  */
44
47
  export class Soma {
45
48
  component;
46
49
  stravaConfig;
47
50
  garminConfig;
51
+ garmin;
52
+ strava;
48
53
  constructor(component, options) {
49
54
  this.component = component;
50
55
  this.stravaConfig = options?.strava ?? this.readStravaEnv();
51
56
  this.garminConfig = options?.garmin ?? this.readGarminEnv();
57
+ this.garmin = new SomaGarmin(this.component, () => this.requireGarminConfig());
58
+ this.strava = new SomaStrava(this.component, () => this.requireStravaConfig());
52
59
  }
53
60
  /**
54
61
  * Read Strava config from environment variables.
@@ -97,57 +104,6 @@ export class Soma {
97
104
  }
98
105
  return this.garminConfig;
99
106
  }
100
- // ─── Connect / Disconnect ───────────────────────────────────────────────────
101
- /**
102
- * Connect a user to a wearable provider.
103
- *
104
- * Creates the connection if it doesn't exist, or re-activates it if it was
105
- * previously disconnected. Idempotent — calling twice is a no-op.
106
- *
107
- * Use this when the host app has completed the provider's auth flow and
108
- * wants to register the connection in Soma.
109
- *
110
- * @param ctx - Mutation context from the host app
111
- * @param args.userId - The host app's user identifier (Clerk ID, etc.)
112
- * @param args.provider - The wearable provider name ("GARMIN", "FITBIT", "OURA", etc.)
113
- * @returns The connection document ID
114
- *
115
- * @example
116
- * ```ts
117
- * // "Connect to Garmin" button handler
118
- * const connectionId = await soma.connect(ctx, {
119
- * userId: "user_123",
120
- * provider: "GARMIN",
121
- * });
122
- * ```
123
- */
124
- async connect(ctx, args) {
125
- return await ctx.runMutation(this.component.public.connect, args);
126
- }
127
- /**
128
- * Disconnect a user from a wearable provider.
129
- *
130
- * Sets the connection to inactive. Does not delete any synced data,
131
- * so re-connecting later preserves historical records.
132
- *
133
- * @param ctx - Mutation context from the host app
134
- * @param args.userId - The host app's user identifier
135
- * @param args.provider - The wearable provider name
136
- *
137
- * @throws Error if no connection exists for the given user–provider pair
138
- *
139
- * @example
140
- * ```ts
141
- * // "Disconnect Garmin" button handler
142
- * await soma.disconnect(ctx, {
143
- * userId: "user_123",
144
- * provider: "GARMIN",
145
- * });
146
- * ```
147
- */
148
- async disconnect(ctx, args) {
149
- return await ctx.runMutation(this.component.public.disconnect, args);
150
- }
151
107
  // ─── Connection Queries ─────────────────────────────────────────────────────
152
108
  /**
153
109
  * Get a connection by its document ID.
@@ -571,321 +527,6 @@ export class Soma {
571
527
  async getPlannedWorkout(ctx, args) {
572
528
  return await ctx.runQuery(this.component.public.getPlannedWorkout, args);
573
529
  }
574
- /**
575
- * Push a planned workout to Garmin Connect.
576
- *
577
- * Creates the workout on Garmin's Training API and optionally schedules it
578
- * to the user's calendar if `metadata.planned_date` is set. The workout
579
- * will appear on the user's Garmin device after they sync.
580
- *
581
- * @param ctx - Action context from the host app
582
- * @param args.userId - The host app's user identifier
583
- * @param args.plannedWorkoutId - The Soma planned workout document ID
584
- * @param args.workoutProvider - Name shown to user in Garmin Connect (default: "Soma", 20 chars max)
585
- * @returns `{ garminWorkoutId, garminScheduleId }`
586
- *
587
- * @example
588
- * ```ts
589
- * export const pushWorkout = action({
590
- * args: { userId: v.string(), workoutId: v.string() },
591
- * handler: async (ctx, { userId, workoutId }) => {
592
- * return await soma.pushPlannedWorkoutToGarmin(ctx, {
593
- * userId,
594
- * plannedWorkoutId: workoutId,
595
- * });
596
- * },
597
- * });
598
- * ```
599
- */
600
- async pushPlannedWorkoutToGarmin(ctx, args) {
601
- const config = this.requireGarminConfig();
602
- return await ctx.runAction(this.component.garmin.public.pushPlannedWorkout, {
603
- ...args,
604
- clientId: config.clientId,
605
- clientSecret: config.clientSecret,
606
- });
607
- }
608
- // ─── Strava Integration ──────────────────────────────────────────────────────
609
- // High-level methods that handle OAuth, token storage, and data syncing
610
- // for Strava. Requires Strava credentials to be configured either via
611
- // environment variables or the constructor.
612
- /**
613
- * Generate a Strava OAuth authorization URL.
614
- *
615
- * The state parameter is stored inside the component automatically,
616
- * and the callback handler registered by `registerRoutes` will
617
- * complete the flow without further host-app intervention.
618
- *
619
- * @param ctx - Action context from the host app
620
- * @param opts.userId - The host app's user identifier
621
- * @param opts.redirectUri - The URL Strava will redirect to after authorization
622
- * @param opts.scope - Comma-separated Strava OAuth scopes (default: "read,activity:read_all,profile:read_all")
623
- * @returns `{ authUrl, state }`
624
- *
625
- * @example
626
- * ```ts
627
- * const { authUrl } = await soma.getStravaAuthUrl(ctx, {
628
- * userId: "user_123",
629
- * redirectUri: "https://your-app.convex.site/api/strava/callback",
630
- * });
631
- * // Redirect user to authUrl — the callback is handled automatically
632
- * ```
633
- */
634
- async getStravaAuthUrl(ctx, opts) {
635
- const config = this.requireStravaConfig();
636
- return await ctx.runAction(this.component.strava.public.getStravaAuthUrl, {
637
- clientId: config.clientId,
638
- redirectUri: opts.redirectUri,
639
- scope: opts.scope,
640
- userId: opts.userId,
641
- });
642
- }
643
- /**
644
- * Sync activities from Strava for an already-connected user.
645
- *
646
- * Automatically refreshes the access token if expired. Fetches the
647
- * athlete profile and activities, transforms them, and ingests into Soma.
648
- *
649
- * @param ctx - Action context from the host app
650
- * @param args.userId - The host app's user identifier
651
- * @param args.after - Only sync activities after this Unix epoch timestamp (for incremental sync)
652
- * @returns `{ synced, errors }`
653
- *
654
- * @example
655
- * ```ts
656
- * export const syncStrava = action({
657
- * args: { userId: v.string() },
658
- * handler: async (ctx, { userId }) => {
659
- * return await soma.syncStrava(ctx, { userId });
660
- * },
661
- * });
662
- * ```
663
- */
664
- async syncStrava(ctx, args) {
665
- const config = this.requireStravaConfig();
666
- return await ctx.runAction(this.component.strava.public.syncStrava, {
667
- ...args,
668
- clientId: config.clientId,
669
- clientSecret: config.clientSecret,
670
- });
671
- }
672
- /**
673
- * Disconnect a user from Strava.
674
- *
675
- * Revokes the token at Strava (best-effort), deletes stored tokens,
676
- * and sets the connection to inactive.
677
- *
678
- * @param ctx - Action context from the host app
679
- * @param args.userId - The host app's user identifier
680
- *
681
- * @example
682
- * ```ts
683
- * export const disconnectStrava = action({
684
- * args: { userId: v.string() },
685
- * handler: async (ctx, { userId }) => {
686
- * await soma.disconnectStrava(ctx, { userId });
687
- * },
688
- * });
689
- * ```
690
- */
691
- async disconnectStrava(ctx, args) {
692
- const config = this.requireStravaConfig();
693
- return await ctx.runAction(this.component.strava.public.disconnectStrava, {
694
- ...args,
695
- clientId: config.clientId,
696
- clientSecret: config.clientSecret,
697
- });
698
- }
699
- // ─── Garmin Integration ──────────────────────────────────────────────────────
700
- // High-level methods that handle OAuth 2.0 PKCE, token storage, and data
701
- // syncing for Garmin. Requires Garmin credentials to be configured either
702
- // via environment variables or the constructor.
703
- /**
704
- * Generate a Garmin OAuth 2.0 authorization URL with PKCE.
705
- *
706
- * The PKCE state is stored inside the component automatically,
707
- * and the callback handler registered by `registerRoutes` will
708
- * complete the flow without further host-app intervention.
709
- *
710
- * @param ctx - Action context from the host app
711
- * @param opts.userId - The host app's user identifier
712
- * @param opts.redirectUri - The URL Garmin will redirect to after authorization
713
- * @returns `{ authUrl, state, codeVerifier }`
714
- *
715
- * @example
716
- * ```ts
717
- * const { authUrl } = await soma.getGarminAuthUrl(ctx, {
718
- * userId: "user_123",
719
- * redirectUri: "https://your-app.convex.site/api/garmin/callback",
720
- * });
721
- * // Redirect user to authUrl — the callback is handled automatically
722
- * ```
723
- */
724
- async getGarminAuthUrl(ctx, opts) {
725
- const config = this.requireGarminConfig();
726
- return await ctx.runAction(this.component.garmin.public.getGarminAuthUrl, {
727
- clientId: config.clientId,
728
- redirectUri: opts.redirectUri,
729
- userId: opts.userId,
730
- });
731
- }
732
- async pullGarminActivities(ctx, args) {
733
- const config = this.requireGarminConfig();
734
- return await ctx.runAction(this.component.garmin.public.pullActivities, {
735
- ...args,
736
- clientId: config.clientId,
737
- clientSecret: config.clientSecret,
738
- });
739
- }
740
- async pullGarminDailies(ctx, args) {
741
- const config = this.requireGarminConfig();
742
- return await ctx.runAction(this.component.garmin.public.pullDailies, {
743
- ...args,
744
- clientId: config.clientId,
745
- clientSecret: config.clientSecret,
746
- });
747
- }
748
- async pullGarminSleep(ctx, args) {
749
- const config = this.requireGarminConfig();
750
- return await ctx.runAction(this.component.garmin.public.pullSleep, {
751
- ...args,
752
- clientId: config.clientId,
753
- clientSecret: config.clientSecret,
754
- });
755
- }
756
- async pullGarminBody(ctx, args) {
757
- const config = this.requireGarminConfig();
758
- return await ctx.runAction(this.component.garmin.public.pullBody, {
759
- ...args,
760
- clientId: config.clientId,
761
- clientSecret: config.clientSecret,
762
- });
763
- }
764
- async pullGarminMenstruation(ctx, args) {
765
- const config = this.requireGarminConfig();
766
- return await ctx.runAction(this.component.garmin.public.pullMenstruation, {
767
- ...args,
768
- clientId: config.clientId,
769
- clientSecret: config.clientSecret,
770
- });
771
- }
772
- async pullGarminBloodPressures(ctx, args) {
773
- const config = this.requireGarminConfig();
774
- return await ctx.runAction(this.component.garmin.public.pullBloodPressures, {
775
- ...args,
776
- clientId: config.clientId,
777
- clientSecret: config.clientSecret,
778
- });
779
- }
780
- async pullGarminSkinTemperature(ctx, args) {
781
- const config = this.requireGarminConfig();
782
- return await ctx.runAction(this.component.garmin.public.pullSkinTemperature, {
783
- ...args,
784
- clientId: config.clientId,
785
- clientSecret: config.clientSecret,
786
- });
787
- }
788
- async pullGarminUserMetrics(ctx, args) {
789
- const config = this.requireGarminConfig();
790
- return await ctx.runAction(this.component.garmin.public.pullUserMetrics, {
791
- ...args,
792
- clientId: config.clientId,
793
- clientSecret: config.clientSecret,
794
- });
795
- }
796
- async pullGarminHRV(ctx, args) {
797
- const config = this.requireGarminConfig();
798
- return await ctx.runAction(this.component.garmin.public.pullHRV, {
799
- ...args,
800
- clientId: config.clientId,
801
- clientSecret: config.clientSecret,
802
- });
803
- }
804
- async pullGarminStressDetails(ctx, args) {
805
- const config = this.requireGarminConfig();
806
- return await ctx.runAction(this.component.garmin.public.pullStressDetails, {
807
- ...args,
808
- clientId: config.clientId,
809
- clientSecret: config.clientSecret,
810
- });
811
- }
812
- async pullGarminPulseOx(ctx, args) {
813
- const config = this.requireGarminConfig();
814
- return await ctx.runAction(this.component.garmin.public.pullPulseOx, {
815
- ...args,
816
- clientId: config.clientId,
817
- clientSecret: config.clientSecret,
818
- });
819
- }
820
- async pullGarminRespiration(ctx, args) {
821
- const config = this.requireGarminConfig();
822
- return await ctx.runAction(this.component.garmin.public.pullRespiration, {
823
- ...args,
824
- clientId: config.clientId,
825
- clientSecret: config.clientSecret,
826
- });
827
- }
828
- async pullGarminAll(ctx, args) {
829
- const config = this.requireGarminConfig();
830
- return await ctx.runAction(this.component.garmin.public.pullAll, {
831
- ...args,
832
- clientId: config.clientId,
833
- clientSecret: config.clientSecret,
834
- });
835
- }
836
- /**
837
- * Sync all data types from Garmin for an already-connected user.
838
- *
839
- * Fetches activities, dailies, sleep, body composition, and menstruation
840
- * data for the specified time range (defaults to last 30 days).
841
- * Automatically refreshes expired tokens.
842
- *
843
- * @param ctx - Action context from the host app
844
- * @param args.userId - The host app's user identifier
845
- * @param args.startTimeInSeconds - Optional start of time range (Unix epoch seconds)
846
- * @param args.endTimeInSeconds - Optional end of time range (Unix epoch seconds)
847
- * @returns `{ synced, errors }`
848
- *
849
- * @example
850
- * ```ts
851
- * export const syncGarmin = action({
852
- * args: { userId: v.string() },
853
- * handler: async (ctx, { userId }) => {
854
- * return await soma.syncGarmin(ctx, { userId });
855
- * },
856
- * });
857
- * ```
858
- */
859
- async syncGarmin(ctx, args) {
860
- const config = this.requireGarminConfig();
861
- return await ctx.runAction(this.component.garmin.public.syncGarmin, {
862
- ...args,
863
- clientId: config.clientId,
864
- clientSecret: config.clientSecret,
865
- });
866
- }
867
- /**
868
- * Disconnect a user from Garmin.
869
- *
870
- * Deregisters the user at Garmin (best-effort), deletes stored tokens,
871
- * and sets the connection to inactive.
872
- *
873
- * @param ctx - Action context from the host app
874
- * @param args.userId - The host app's user identifier
875
- *
876
- * @example
877
- * ```ts
878
- * export const disconnectGarmin = action({
879
- * args: { userId: v.string() },
880
- * handler: async (ctx, { userId }) => {
881
- * await soma.disconnectGarmin(ctx, { userId });
882
- * },
883
- * });
884
- * ```
885
- */
886
- async disconnectGarmin(ctx, args) {
887
- return await ctx.runAction(this.component.garmin.public.disconnectGarmin, args);
888
- }
889
530
  }
890
531
  /**
891
532
  * Register OAuth callback HTTP routes for Soma providers.
@@ -944,14 +585,18 @@ export class Soma {
944
585
  * },
945
586
  * },
946
587
  * webhook: {
947
- * onEvent: async (ctx, event) => {
948
- * // Catch-all: runs for every webhook
949
- * console.log(`Garmin ${event.dataType}: ${event.processed} processed`);
950
- * },
588
+ * // Only listed data types get an HTTP route registered.
589
+ * // Pass a handler for custom logic, or `true` for default processing.
951
590
  * events: {
952
591
  * "activities": async (ctx, event) => {
953
- * // Runs only for activity webhooks
592
+ * // Custom side-effect after activity ingestion
954
593
  * },
594
+ * "sleeps": true, // register route, default processing only
595
+ * "dailies": true,
596
+ * },
597
+ * // Optional catch-all, runs for every registered event
598
+ * onEvent: async (ctx, event) => {
599
+ * console.log(`Garmin ${event.dataType}: ${event.processed} processed`);
955
600
  * },
956
601
  * },
957
602
  * },
@@ -1088,8 +733,8 @@ export function registerRoutes(http, component, opts) {
1088
733
  }),
1089
734
  });
1090
735
  // ── Garmin Webhook Routes ──────────────────────────────────
1091
- if (garminOpts.webhook !== false) {
1092
- const webhookCfg = typeof garminOpts.webhook === "object" ? garminOpts.webhook : {};
736
+ const webhookCfg = typeof garminOpts.webhook === "object" ? garminOpts.webhook : undefined;
737
+ if (webhookCfg?.events) {
1093
738
  const webhookBase = webhookCfg.basePath ?? GARMIN_WEBHOOK_BASE_PATH;
1094
739
  const webhookRoutes = [
1095
740
  // ACTIVITY category
@@ -1114,6 +759,10 @@ export function registerRoutes(http, component, opts) {
1114
759
  { suffix: "/menstrual-cycle-tracking", action: component.garmin.webhooks.handleGarminWebhookMenstrualCycleTracking },
1115
760
  ];
1116
761
  for (const route of webhookRoutes) {
762
+ const dataType = route.suffix.slice(1);
763
+ // Only register routes the host app explicitly opted into
764
+ if (!webhookCfg.events?.[dataType])
765
+ continue;
1117
766
  http.route({
1118
767
  path: `${webhookBase}${route.suffix}`,
1119
768
  method: "POST",
@@ -1134,7 +783,6 @@ export function registerRoutes(http, component, opts) {
1134
783
  console.error(`Garmin webhook error (${route.suffix}):`, error instanceof Error ? error.message : error);
1135
784
  }
1136
785
  if (result) {
1137
- const dataType = route.suffix.slice(1);
1138
786
  const event = {
1139
787
  dataType,
1140
788
  processed: result.processed,
@@ -1142,7 +790,7 @@ export function registerRoutes(http, component, opts) {
1142
790
  affectedUsers: result.affectedUsers,
1143
791
  };
1144
792
  const specificHandler = webhookCfg.events?.[dataType];
1145
- if (specificHandler) {
793
+ if (typeof specificHandler === "function") {
1146
794
  try {
1147
795
  await specificHandler(ctx, event);
1148
796
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}