@nativesquare/soma 0.6.0 → 0.7.1
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 +151 -53
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +162 -69
- package/dist/client/index.js.map +1 -1
- package/dist/component/_generated/component.d.ts +130 -17
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/garmin.d.ts +61 -43
- package/dist/component/garmin.d.ts.map +1 -1
- package/dist/component/garmin.js +228 -122
- package/dist/component/garmin.js.map +1 -1
- package/dist/component/public.d.ts +363 -0
- package/dist/component/public.d.ts.map +1 -1
- package/dist/component/public.js +124 -0
- package/dist/component/public.js.map +1 -1
- package/dist/component/schema.d.ts +7 -9
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/schema.js +9 -10
- package/dist/component/schema.js.map +1 -1
- package/dist/component/strava.d.ts +0 -1
- package/dist/component/strava.d.ts.map +1 -1
- package/dist/component/strava.js +0 -1
- package/dist/component/strava.js.map +1 -1
- package/dist/component/validators/enums.d.ts +2 -2
- package/dist/garmin/auth.d.ts +55 -46
- package/dist/garmin/auth.d.ts.map +1 -1
- package/dist/garmin/auth.js +82 -122
- package/dist/garmin/auth.js.map +1 -1
- package/dist/garmin/client.d.ts +64 -17
- package/dist/garmin/client.d.ts.map +1 -1
- package/dist/garmin/client.js +148 -29
- package/dist/garmin/client.js.map +1 -1
- package/dist/garmin/index.d.ts +3 -3
- package/dist/garmin/index.d.ts.map +1 -1
- package/dist/garmin/index.js +4 -4
- package/dist/garmin/index.js.map +1 -1
- package/dist/garmin/plannedWorkout.d.ts +12 -0
- package/dist/garmin/plannedWorkout.d.ts.map +1 -0
- package/dist/garmin/plannedWorkout.js +267 -0
- package/dist/garmin/plannedWorkout.js.map +1 -0
- package/dist/garmin/types.d.ts +78 -6
- package/dist/garmin/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/client/index.ts +147 -0
- package/src/component/_generated/component.ts +142 -0
- package/src/component/garmin.ts +145 -0
- package/src/component/public.ts +135 -0
- package/src/garmin/client.ts +171 -0
- package/src/garmin/plannedWorkout.ts +333 -0
- package/src/garmin/types.ts +143 -0
package/dist/client/index.d.ts
CHANGED
|
@@ -27,14 +27,14 @@ export interface SomaStravaConfig {
|
|
|
27
27
|
* Configuration for the Garmin integration.
|
|
28
28
|
*
|
|
29
29
|
* If not provided to the constructor, the Soma class will attempt to
|
|
30
|
-
* read `
|
|
30
|
+
* read `GARMIN_CLIENT_ID` and `GARMIN_CLIENT_SECRET` from
|
|
31
31
|
* environment variables automatically.
|
|
32
32
|
*/
|
|
33
33
|
export interface SomaGarminConfig {
|
|
34
|
-
/** Your Garmin application's
|
|
35
|
-
|
|
36
|
-
/** Your Garmin application's
|
|
37
|
-
|
|
34
|
+
/** Your Garmin application's Client ID. */
|
|
35
|
+
clientId: string;
|
|
36
|
+
/** Your Garmin application's Client Secret. */
|
|
37
|
+
clientSecret: string;
|
|
38
38
|
}
|
|
39
39
|
/**
|
|
40
40
|
* Client class for the @nativesquare/soma Convex component.
|
|
@@ -471,6 +471,105 @@ export declare class Soma {
|
|
|
471
471
|
getAthlete(ctx: QueryCtx, args: {
|
|
472
472
|
connectionId: string;
|
|
473
473
|
}): Promise<any>;
|
|
474
|
+
/**
|
|
475
|
+
* Ingest a planned workout record.
|
|
476
|
+
*
|
|
477
|
+
* Upserts by `connectionId + metadata.id` when an id is present.
|
|
478
|
+
*
|
|
479
|
+
* @param ctx - Mutation context from the host app
|
|
480
|
+
* @param args - Planned workout data including connectionId, userId, metadata, and steps
|
|
481
|
+
* @returns The planned workout document ID
|
|
482
|
+
*/
|
|
483
|
+
ingestPlannedWorkout(ctx: MutationCtx, args: IngestArgs): Promise<string>;
|
|
484
|
+
/**
|
|
485
|
+
* List planned workout records for a user, optionally filtered by planned date range.
|
|
486
|
+
*
|
|
487
|
+
* @param ctx - Query context from the host app
|
|
488
|
+
* @param args.userId - The host app's user identifier
|
|
489
|
+
* @param args.startDate - Optional lower bound (inclusive) on metadata.planned_date (YYYY-MM-DD)
|
|
490
|
+
* @param args.endDate - Optional upper bound (inclusive) on metadata.planned_date (YYYY-MM-DD)
|
|
491
|
+
* @param args.order - Sort order: "asc" or "desc" (default: "desc")
|
|
492
|
+
* @param args.limit - Optional max number of results to return
|
|
493
|
+
*/
|
|
494
|
+
listPlannedWorkouts(ctx: QueryCtx, args: {
|
|
495
|
+
userId: string;
|
|
496
|
+
startDate?: string;
|
|
497
|
+
endDate?: string;
|
|
498
|
+
order?: "asc" | "desc";
|
|
499
|
+
limit?: number;
|
|
500
|
+
}): Promise<any>;
|
|
501
|
+
/**
|
|
502
|
+
* Paginate planned workout records for a user, optionally filtered by planned date range.
|
|
503
|
+
*
|
|
504
|
+
* Returns `{ page, isDone, continueCursor }` for cursor-based pagination.
|
|
505
|
+
*
|
|
506
|
+
* @param ctx - Query context from the host app
|
|
507
|
+
* @param args.userId - The host app's user identifier
|
|
508
|
+
* @param args.startDate - Optional lower bound (inclusive) on metadata.planned_date
|
|
509
|
+
* @param args.endDate - Optional upper bound (inclusive) on metadata.planned_date
|
|
510
|
+
* @param args.paginationOpts - Convex pagination options `{ numItems, cursor }`
|
|
511
|
+
*/
|
|
512
|
+
paginatePlannedWorkouts(ctx: QueryCtx, args: {
|
|
513
|
+
userId: string;
|
|
514
|
+
startDate?: string;
|
|
515
|
+
endDate?: string;
|
|
516
|
+
paginationOpts: {
|
|
517
|
+
numItems: number;
|
|
518
|
+
cursor: string | null;
|
|
519
|
+
};
|
|
520
|
+
}): Promise<any>;
|
|
521
|
+
/**
|
|
522
|
+
* Delete a planned workout by document ID.
|
|
523
|
+
*
|
|
524
|
+
* @param ctx - Mutation context from the host app
|
|
525
|
+
* @param args.plannedWorkoutId - The planned workout document ID
|
|
526
|
+
*/
|
|
527
|
+
deletePlannedWorkout(ctx: MutationCtx, args: {
|
|
528
|
+
plannedWorkoutId: string;
|
|
529
|
+
}): Promise<null>;
|
|
530
|
+
/**
|
|
531
|
+
* Get a single planned workout by document ID.
|
|
532
|
+
*
|
|
533
|
+
* @param ctx - Query context from the host app
|
|
534
|
+
* @param args.plannedWorkoutId - The planned workout document ID
|
|
535
|
+
*/
|
|
536
|
+
getPlannedWorkout(ctx: QueryCtx, args: {
|
|
537
|
+
plannedWorkoutId: string;
|
|
538
|
+
}): Promise<any>;
|
|
539
|
+
/**
|
|
540
|
+
* Push a planned workout to Garmin Connect.
|
|
541
|
+
*
|
|
542
|
+
* Creates the workout on Garmin's Training API and optionally schedules it
|
|
543
|
+
* to the user's calendar if `metadata.planned_date` is set. The workout
|
|
544
|
+
* will appear on the user's Garmin device after they sync.
|
|
545
|
+
*
|
|
546
|
+
* @param ctx - Action context from the host app
|
|
547
|
+
* @param args.userId - The host app's user identifier
|
|
548
|
+
* @param args.plannedWorkoutId - The Soma planned workout document ID
|
|
549
|
+
* @param args.workoutProvider - Name shown to user in Garmin Connect (default: "Soma", 20 chars max)
|
|
550
|
+
* @returns `{ garminWorkoutId, garminScheduleId }`
|
|
551
|
+
*
|
|
552
|
+
* @example
|
|
553
|
+
* ```ts
|
|
554
|
+
* export const pushWorkout = action({
|
|
555
|
+
* args: { userId: v.string(), workoutId: v.string() },
|
|
556
|
+
* handler: async (ctx, { userId, workoutId }) => {
|
|
557
|
+
* return await soma.pushPlannedWorkoutToGarmin(ctx, {
|
|
558
|
+
* userId,
|
|
559
|
+
* plannedWorkoutId: workoutId,
|
|
560
|
+
* });
|
|
561
|
+
* },
|
|
562
|
+
* });
|
|
563
|
+
* ```
|
|
564
|
+
*/
|
|
565
|
+
pushPlannedWorkoutToGarmin(ctx: ActionCtx, args: {
|
|
566
|
+
userId: string;
|
|
567
|
+
plannedWorkoutId: string;
|
|
568
|
+
workoutProvider?: string;
|
|
569
|
+
}): Promise<{
|
|
570
|
+
garminScheduleId: number | null;
|
|
571
|
+
garminWorkoutId: number;
|
|
572
|
+
}>;
|
|
474
573
|
/**
|
|
475
574
|
* Build the Strava OAuth authorization URL.
|
|
476
575
|
*
|
|
@@ -588,58 +687,56 @@ export declare class Soma {
|
|
|
588
687
|
userId: string;
|
|
589
688
|
}): Promise<null>;
|
|
590
689
|
/**
|
|
591
|
-
*
|
|
690
|
+
* Generate a Garmin OAuth 2.0 authorization URL with PKCE.
|
|
592
691
|
*
|
|
593
|
-
* Returns the
|
|
594
|
-
*
|
|
692
|
+
* Returns the `authUrl` to redirect the user to, along with the `state`
|
|
693
|
+
* and `codeVerifier` used for the PKCE flow.
|
|
595
694
|
*
|
|
596
|
-
* If `userId` is provided, the
|
|
597
|
-
*
|
|
598
|
-
*
|
|
599
|
-
*
|
|
695
|
+
* If `userId` is provided, the PKCE state is stored inside the component
|
|
696
|
+
* automatically, and the callback handler registered by `registerRoutes`
|
|
697
|
+
* will complete the flow without further host-app intervention. This is
|
|
698
|
+
* the recommended approach.
|
|
600
699
|
*
|
|
601
|
-
* If `userId` is omitted, the host app must store
|
|
602
|
-
* itself and pass
|
|
700
|
+
* If `userId` is omitted, the host app must store the returned
|
|
701
|
+
* `codeVerifier` itself and pass it to `connectGarmin` manually.
|
|
603
702
|
*
|
|
604
703
|
* @param ctx - Action context from the host app
|
|
605
|
-
* @param opts.
|
|
704
|
+
* @param opts.redirectUri - The URL Garmin will redirect to after authorization
|
|
606
705
|
* @param opts.userId - The host app's user identifier (required for `registerRoutes` flow)
|
|
607
|
-
* @returns `{
|
|
706
|
+
* @returns `{ authUrl, state, codeVerifier }`
|
|
608
707
|
*
|
|
609
708
|
* @example
|
|
610
709
|
* ```ts
|
|
611
|
-
*
|
|
612
|
-
* const { authUrl } = await soma.getGarminRequestToken(ctx, {
|
|
710
|
+
* const { authUrl } = await soma.getGarminAuthUrl(ctx, {
|
|
613
711
|
* userId: "user_123",
|
|
614
|
-
*
|
|
712
|
+
* redirectUri: "https://your-app.convex.site/api/garmin/callback",
|
|
615
713
|
* });
|
|
616
714
|
* // Redirect user to authUrl — the callback is handled automatically
|
|
617
715
|
* ```
|
|
618
716
|
*/
|
|
619
|
-
|
|
620
|
-
|
|
717
|
+
getGarminAuthUrl(ctx: ActionCtx, opts: {
|
|
718
|
+
redirectUri?: string;
|
|
621
719
|
userId?: string;
|
|
622
720
|
}): Promise<{
|
|
623
721
|
authUrl: string;
|
|
624
|
-
|
|
625
|
-
|
|
722
|
+
codeVerifier: string;
|
|
723
|
+
state: string;
|
|
626
724
|
}>;
|
|
627
725
|
/**
|
|
628
|
-
*
|
|
726
|
+
* Handle the Garmin OAuth 2.0 callback (manual flow).
|
|
629
727
|
*
|
|
630
|
-
* Exchanges the
|
|
631
|
-
*
|
|
632
|
-
*
|
|
633
|
-
* sleep, body composition, menstruation).
|
|
728
|
+
* Exchanges the authorization code for tokens, creates/reactivates the
|
|
729
|
+
* Soma connection, stores tokens securely, and syncs the last 30 days
|
|
730
|
+
* of all data types.
|
|
634
731
|
*
|
|
635
|
-
* Call this from your OAuth callback endpoint after receiving the
|
|
636
|
-
*
|
|
732
|
+
* Call this from your OAuth callback endpoint after receiving the `code`
|
|
733
|
+
* query parameter from Garmin.
|
|
637
734
|
*
|
|
638
735
|
* @param ctx - Action context from the host app
|
|
639
736
|
* @param args.userId - The host app's user identifier
|
|
640
|
-
* @param args.
|
|
641
|
-
* @param args.
|
|
642
|
-
* @param args.
|
|
737
|
+
* @param args.code - The authorization code from the callback
|
|
738
|
+
* @param args.codeVerifier - The PKCE code verifier from Step 1
|
|
739
|
+
* @param args.redirectUri - The redirect URI used in the authorization request
|
|
643
740
|
* @returns `{ connectionId, synced, errors }`
|
|
644
741
|
*
|
|
645
742
|
* @example
|
|
@@ -647,9 +744,8 @@ export declare class Soma {
|
|
|
647
744
|
* export const handleGarminCallback = action({
|
|
648
745
|
* args: {
|
|
649
746
|
* userId: v.string(),
|
|
650
|
-
*
|
|
651
|
-
*
|
|
652
|
-
* verifier: v.string(),
|
|
747
|
+
* code: v.string(),
|
|
748
|
+
* codeVerifier: v.string(),
|
|
653
749
|
* },
|
|
654
750
|
* handler: async (ctx, args) => {
|
|
655
751
|
* return await soma.connectGarmin(ctx, args);
|
|
@@ -659,9 +755,9 @@ export declare class Soma {
|
|
|
659
755
|
*/
|
|
660
756
|
connectGarmin(ctx: ActionCtx, args: {
|
|
661
757
|
userId: string;
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
758
|
+
code: string;
|
|
759
|
+
codeVerifier: string;
|
|
760
|
+
redirectUri?: string;
|
|
665
761
|
}): Promise<{
|
|
666
762
|
connectionId: string;
|
|
667
763
|
errors: Array<{
|
|
@@ -678,20 +774,22 @@ export declare class Soma {
|
|
|
678
774
|
};
|
|
679
775
|
}>;
|
|
680
776
|
/**
|
|
681
|
-
* Complete a Garmin OAuth flow using stored pending state.
|
|
777
|
+
* Complete a Garmin OAuth 2.0 flow using stored pending state.
|
|
682
778
|
*
|
|
683
779
|
* This is called automatically by the `registerRoutes` callback handler.
|
|
684
|
-
* It looks up the pending OAuth state stored during `
|
|
685
|
-
* exchanges for
|
|
780
|
+
* It looks up the pending OAuth state stored during `getGarminAuthUrl`,
|
|
781
|
+
* exchanges for tokens, creates the connection, and syncs data.
|
|
686
782
|
*
|
|
687
783
|
* @param ctx - Action context from the host app
|
|
688
|
-
* @param args.
|
|
689
|
-
* @param args.
|
|
784
|
+
* @param args.code - The authorization code from the callback query params
|
|
785
|
+
* @param args.state - The state parameter from the callback query params
|
|
786
|
+
* @param args.redirectUri - The redirect URI used in the authorization request
|
|
690
787
|
* @returns `{ connectionId, synced, errors }`
|
|
691
788
|
*/
|
|
692
789
|
completeGarminOAuth(ctx: ActionCtx, args: {
|
|
693
|
-
|
|
694
|
-
|
|
790
|
+
code: string;
|
|
791
|
+
state: string;
|
|
792
|
+
redirectUri?: string;
|
|
695
793
|
}): Promise<{
|
|
696
794
|
connectionId: string;
|
|
697
795
|
errors: Array<{
|
|
@@ -712,6 +810,7 @@ export declare class Soma {
|
|
|
712
810
|
*
|
|
713
811
|
* Fetches activities, dailies, sleep, body composition, and menstruation
|
|
714
812
|
* data for the specified time range (defaults to last 30 days).
|
|
813
|
+
* Automatically refreshes expired tokens.
|
|
715
814
|
*
|
|
716
815
|
* @param ctx - Action context from the host app
|
|
717
816
|
* @param args.userId - The host app's user identifier
|
|
@@ -750,9 +849,8 @@ export declare class Soma {
|
|
|
750
849
|
/**
|
|
751
850
|
* Disconnect a user from Garmin.
|
|
752
851
|
*
|
|
753
|
-
*
|
|
754
|
-
*
|
|
755
|
-
* is local only.
|
|
852
|
+
* Deregisters the user at Garmin (best-effort), deletes stored tokens,
|
|
853
|
+
* and sets the connection to inactive.
|
|
756
854
|
*
|
|
757
855
|
* @param ctx - Action context from the host app
|
|
758
856
|
* @param args.userId - The host app's user identifier
|
|
@@ -827,10 +925,10 @@ export interface StravaRouteOptions {
|
|
|
827
925
|
export interface GarminRouteOptions {
|
|
828
926
|
/** HTTP path for the OAuth callback. @default "/api/garmin/callback" */
|
|
829
927
|
path?: string;
|
|
830
|
-
/** Override
|
|
831
|
-
|
|
832
|
-
/** Override
|
|
833
|
-
|
|
928
|
+
/** Override GARMIN_CLIENT_ID env var. */
|
|
929
|
+
clientId?: string;
|
|
930
|
+
/** Override GARMIN_CLIENT_SECRET env var. */
|
|
931
|
+
clientSecret?: string;
|
|
834
932
|
/** URL to redirect the user to after a successful connection. */
|
|
835
933
|
onSuccess?: string;
|
|
836
934
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAGnE,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC;AAKzC,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAC3D,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAE3D;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|