@clipin/convex-wearables 0.0.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.
Files changed (143) hide show
  1. package/LICENSE +203 -0
  2. package/README.md +616 -0
  3. package/dist/client/_generated/_ignore.d.ts +1 -0
  4. package/dist/client/_generated/_ignore.d.ts.map +1 -0
  5. package/dist/client/_generated/_ignore.js +4 -0
  6. package/dist/client/_generated/_ignore.js.map +1 -0
  7. package/dist/client/index.d.ts +244 -0
  8. package/dist/client/index.d.ts.map +1 -0
  9. package/dist/client/index.js +555 -0
  10. package/dist/client/index.js.map +1 -0
  11. package/dist/client/types.d.ts +689 -0
  12. package/dist/client/types.d.ts.map +1 -0
  13. package/dist/client/types.js +112 -0
  14. package/dist/client/types.js.map +1 -0
  15. package/dist/component/_generated/_ignore.d.ts +1 -0
  16. package/dist/component/_generated/_ignore.d.ts.map +1 -0
  17. package/dist/component/_generated/_ignore.js +4 -0
  18. package/dist/component/_generated/_ignore.js.map +1 -0
  19. package/dist/component/_generated/api.d.ts +13 -0
  20. package/dist/component/_generated/api.d.ts.map +1 -0
  21. package/dist/component/_generated/api.js +14 -0
  22. package/dist/component/_generated/api.js.map +1 -0
  23. package/dist/component/_generated/dataModel.d.ts +28 -0
  24. package/dist/component/_generated/dataModel.d.ts.map +1 -0
  25. package/dist/component/_generated/dataModel.js +11 -0
  26. package/dist/component/_generated/dataModel.js.map +1 -0
  27. package/dist/component/_generated/server.d.ts +23 -0
  28. package/dist/component/_generated/server.d.ts.map +1 -0
  29. package/dist/component/_generated/server.js +18 -0
  30. package/dist/component/_generated/server.js.map +1 -0
  31. package/dist/component/backfillJobs.d.ts +121 -0
  32. package/dist/component/backfillJobs.d.ts.map +1 -0
  33. package/dist/component/backfillJobs.js +233 -0
  34. package/dist/component/backfillJobs.js.map +1 -0
  35. package/dist/component/connections.d.ts +159 -0
  36. package/dist/component/connections.d.ts.map +1 -0
  37. package/dist/component/connections.js +288 -0
  38. package/dist/component/connections.js.map +1 -0
  39. package/dist/component/convex.config.d.ts +3 -0
  40. package/dist/component/convex.config.d.ts.map +1 -0
  41. package/dist/component/convex.config.js +6 -0
  42. package/dist/component/convex.config.js.map +1 -0
  43. package/dist/component/dataPoints.d.ts +81 -0
  44. package/dist/component/dataPoints.d.ts.map +1 -0
  45. package/dist/component/dataPoints.js +258 -0
  46. package/dist/component/dataPoints.js.map +1 -0
  47. package/dist/component/dataSources.d.ts +56 -0
  48. package/dist/component/dataSources.d.ts.map +1 -0
  49. package/dist/component/dataSources.js +95 -0
  50. package/dist/component/dataSources.js.map +1 -0
  51. package/dist/component/events.d.ts +203 -0
  52. package/dist/component/events.d.ts.map +1 -0
  53. package/dist/component/events.js +251 -0
  54. package/dist/component/events.js.map +1 -0
  55. package/dist/component/garminBackfill.d.ts +40 -0
  56. package/dist/component/garminBackfill.d.ts.map +1 -0
  57. package/dist/component/garminBackfill.js +296 -0
  58. package/dist/component/garminBackfill.js.map +1 -0
  59. package/dist/component/garminWebhooks.d.ts +17 -0
  60. package/dist/component/garminWebhooks.d.ts.map +1 -0
  61. package/dist/component/garminWebhooks.js +505 -0
  62. package/dist/component/garminWebhooks.js.map +1 -0
  63. package/dist/component/httpHandlers.d.ts +32 -0
  64. package/dist/component/httpHandlers.d.ts.map +1 -0
  65. package/dist/component/httpHandlers.js +131 -0
  66. package/dist/component/httpHandlers.js.map +1 -0
  67. package/dist/component/lifecycle.d.ts +12 -0
  68. package/dist/component/lifecycle.d.ts.map +1 -0
  69. package/dist/component/lifecycle.js +79 -0
  70. package/dist/component/lifecycle.js.map +1 -0
  71. package/dist/component/menstrualCycles.d.ts +98 -0
  72. package/dist/component/menstrualCycles.d.ts.map +1 -0
  73. package/dist/component/menstrualCycles.js +112 -0
  74. package/dist/component/menstrualCycles.js.map +1 -0
  75. package/dist/component/oauthActions.d.ts +52 -0
  76. package/dist/component/oauthActions.d.ts.map +1 -0
  77. package/dist/component/oauthActions.js +208 -0
  78. package/dist/component/oauthActions.js.map +1 -0
  79. package/dist/component/oauthStates.d.ts +47 -0
  80. package/dist/component/oauthStates.d.ts.map +1 -0
  81. package/dist/component/oauthStates.js +77 -0
  82. package/dist/component/oauthStates.js.map +1 -0
  83. package/dist/component/providerSettings.d.ts +15 -0
  84. package/dist/component/providerSettings.d.ts.map +1 -0
  85. package/dist/component/providerSettings.js +57 -0
  86. package/dist/component/providerSettings.js.map +1 -0
  87. package/dist/component/providers/garmin.d.ts +306 -0
  88. package/dist/component/providers/garmin.d.ts.map +1 -0
  89. package/dist/component/providers/garmin.js +675 -0
  90. package/dist/component/providers/garmin.js.map +1 -0
  91. package/dist/component/providers/oauth.d.ts +42 -0
  92. package/dist/component/providers/oauth.d.ts.map +1 -0
  93. package/dist/component/providers/oauth.js +181 -0
  94. package/dist/component/providers/oauth.js.map +1 -0
  95. package/dist/component/providers/polar.d.ts +6 -0
  96. package/dist/component/providers/polar.d.ts.map +1 -0
  97. package/dist/component/providers/polar.js +175 -0
  98. package/dist/component/providers/polar.js.map +1 -0
  99. package/dist/component/providers/registry.d.ts +14 -0
  100. package/dist/component/providers/registry.d.ts.map +1 -0
  101. package/dist/component/providers/registry.js +32 -0
  102. package/dist/component/providers/registry.js.map +1 -0
  103. package/dist/component/providers/strava.d.ts +45 -0
  104. package/dist/component/providers/strava.d.ts.map +1 -0
  105. package/dist/component/providers/strava.js +182 -0
  106. package/dist/component/providers/strava.js.map +1 -0
  107. package/dist/component/providers/suunto.d.ts +5 -0
  108. package/dist/component/providers/suunto.d.ts.map +1 -0
  109. package/dist/component/providers/suunto.js +502 -0
  110. package/dist/component/providers/suunto.js.map +1 -0
  111. package/dist/component/providers/types.d.ts +139 -0
  112. package/dist/component/providers/types.d.ts.map +1 -0
  113. package/dist/component/providers/types.js +5 -0
  114. package/dist/component/providers/types.js.map +1 -0
  115. package/dist/component/providers/whoop.d.ts +4 -0
  116. package/dist/component/providers/whoop.d.ts.map +1 -0
  117. package/dist/component/providers/whoop.js +439 -0
  118. package/dist/component/providers/whoop.js.map +1 -0
  119. package/dist/component/schema.d.ts +429 -0
  120. package/dist/component/schema.d.ts.map +1 -0
  121. package/dist/component/schema.js +282 -0
  122. package/dist/component/schema.js.map +1 -0
  123. package/dist/component/sdkPush.d.ts +143 -0
  124. package/dist/component/sdkPush.d.ts.map +1 -0
  125. package/dist/component/sdkPush.js +338 -0
  126. package/dist/component/sdkPush.js.map +1 -0
  127. package/dist/component/summaries.d.ts +129 -0
  128. package/dist/component/summaries.d.ts.map +1 -0
  129. package/dist/component/summaries.js +129 -0
  130. package/dist/component/summaries.js.map +1 -0
  131. package/dist/component/syncJobs.d.ts +142 -0
  132. package/dist/component/syncJobs.d.ts.map +1 -0
  133. package/dist/component/syncJobs.js +136 -0
  134. package/dist/component/syncJobs.js.map +1 -0
  135. package/dist/component/syncWorkflow.d.ts +99 -0
  136. package/dist/component/syncWorkflow.d.ts.map +1 -0
  137. package/dist/component/syncWorkflow.js +579 -0
  138. package/dist/component/syncWorkflow.js.map +1 -0
  139. package/dist/component/workflowManager.d.ts +3 -0
  140. package/dist/component/workflowManager.d.ts.map +1 -0
  141. package/dist/component/workflowManager.js +17 -0
  142. package/dist/component/workflowManager.js.map +1 -0
  143. package/package.json +84 -0
@@ -0,0 +1,429 @@
1
+ /**
2
+ * Provider name union — all supported wearable providers.
3
+ */
4
+ export declare const providerName: import("convex/values").VUnion<"garmin" | "suunto" | "polar" | "whoop" | "strava" | "apple" | "samsung" | "google", [import("convex/values").VLiteral<"garmin", "required">, import("convex/values").VLiteral<"suunto", "required">, import("convex/values").VLiteral<"polar", "required">, import("convex/values").VLiteral<"whoop", "required">, import("convex/values").VLiteral<"strava", "required">, import("convex/values").VLiteral<"apple", "required">, import("convex/values").VLiteral<"samsung", "required">, import("convex/values").VLiteral<"google", "required">], "required", never>;
5
+ /**
6
+ * Connection status enum.
7
+ */
8
+ export declare const connectionStatus: import("convex/values").VUnion<"active" | "inactive" | "revoked" | "expired" | "error", [import("convex/values").VLiteral<"active", "required">, import("convex/values").VLiteral<"inactive", "required">, import("convex/values").VLiteral<"revoked", "required">, import("convex/values").VLiteral<"expired", "required">, import("convex/values").VLiteral<"error", "required">], "required", never>;
9
+ /**
10
+ * Event category — top-level classification.
11
+ */
12
+ export declare const eventCategory: import("convex/values").VUnion<"workout" | "sleep", [import("convex/values").VLiteral<"workout", "required">, import("convex/values").VLiteral<"sleep", "required">], "required", never>;
13
+ /**
14
+ * Sync job status.
15
+ */
16
+ export declare const syncJobStatus: import("convex/values").VUnion<"queued" | "running" | "completed" | "failed" | "canceled", [import("convex/values").VLiteral<"queued", "required">, import("convex/values").VLiteral<"running", "required">, import("convex/values").VLiteral<"completed", "required">, import("convex/values").VLiteral<"failed", "required">, import("convex/values").VLiteral<"canceled", "required">], "required", never>;
17
+ /**
18
+ * Backfill job status.
19
+ */
20
+ export declare const backfillStatus: import("convex/values").VUnion<"queued" | "running" | "completed" | "failed" | "canceled", [import("convex/values").VLiteral<"queued", "required">, import("convex/values").VLiteral<"running", "required">, import("convex/values").VLiteral<"completed", "required">, import("convex/values").VLiteral<"failed", "required">, import("convex/values").VLiteral<"canceled", "required">], "required", never>;
21
+ declare const _default: import("convex/server").SchemaDefinition<{
22
+ connections: import("convex/server").TableDefinition<import("convex/values").VObject<{
23
+ providerUserId?: string | undefined;
24
+ providerUsername?: string | undefined;
25
+ accessToken?: string | undefined;
26
+ refreshToken?: string | undefined;
27
+ tokenExpiresAt?: number | undefined;
28
+ scope?: string | undefined;
29
+ lastSyncedAt?: number | undefined;
30
+ provider: "garmin" | "suunto" | "polar" | "whoop" | "strava" | "apple" | "samsung" | "google";
31
+ status: "active" | "inactive" | "revoked" | "expired" | "error";
32
+ userId: string;
33
+ }, {
34
+ userId: import("convex/values").VString<string, "required">;
35
+ provider: import("convex/values").VUnion<"garmin" | "suunto" | "polar" | "whoop" | "strava" | "apple" | "samsung" | "google", [import("convex/values").VLiteral<"garmin", "required">, import("convex/values").VLiteral<"suunto", "required">, import("convex/values").VLiteral<"polar", "required">, import("convex/values").VLiteral<"whoop", "required">, import("convex/values").VLiteral<"strava", "required">, import("convex/values").VLiteral<"apple", "required">, import("convex/values").VLiteral<"samsung", "required">, import("convex/values").VLiteral<"google", "required">], "required", never>;
36
+ providerUserId: import("convex/values").VString<string | undefined, "optional">;
37
+ providerUsername: import("convex/values").VString<string | undefined, "optional">;
38
+ accessToken: import("convex/values").VString<string | undefined, "optional">;
39
+ refreshToken: import("convex/values").VString<string | undefined, "optional">;
40
+ tokenExpiresAt: import("convex/values").VFloat64<number | undefined, "optional">;
41
+ scope: import("convex/values").VString<string | undefined, "optional">;
42
+ status: import("convex/values").VUnion<"active" | "inactive" | "revoked" | "expired" | "error", [import("convex/values").VLiteral<"active", "required">, import("convex/values").VLiteral<"inactive", "required">, import("convex/values").VLiteral<"revoked", "required">, import("convex/values").VLiteral<"expired", "required">, import("convex/values").VLiteral<"error", "required">], "required", never>;
43
+ lastSyncedAt: import("convex/values").VFloat64<number | undefined, "optional">;
44
+ }, "required", "provider" | "status" | "userId" | "providerUserId" | "providerUsername" | "accessToken" | "refreshToken" | "tokenExpiresAt" | "scope" | "lastSyncedAt">, {
45
+ by_user: ["userId", "_creationTime"];
46
+ by_user_provider: ["userId", "provider", "_creationTime"];
47
+ by_provider_user: ["provider", "providerUserId", "_creationTime"];
48
+ by_status: ["status", "_creationTime"];
49
+ }, {}, {}>;
50
+ dataSources: import("convex/server").TableDefinition<import("convex/values").VObject<{
51
+ connectionId?: import("convex/values").GenericId<"connections"> | undefined;
52
+ deviceModel?: string | undefined;
53
+ softwareVersion?: string | undefined;
54
+ source?: string | undefined;
55
+ deviceType?: string | undefined;
56
+ originalSourceName?: string | undefined;
57
+ provider: "garmin" | "suunto" | "polar" | "whoop" | "strava" | "apple" | "samsung" | "google";
58
+ userId: string;
59
+ }, {
60
+ userId: import("convex/values").VString<string, "required">;
61
+ provider: import("convex/values").VUnion<"garmin" | "suunto" | "polar" | "whoop" | "strava" | "apple" | "samsung" | "google", [import("convex/values").VLiteral<"garmin", "required">, import("convex/values").VLiteral<"suunto", "required">, import("convex/values").VLiteral<"polar", "required">, import("convex/values").VLiteral<"whoop", "required">, import("convex/values").VLiteral<"strava", "required">, import("convex/values").VLiteral<"apple", "required">, import("convex/values").VLiteral<"samsung", "required">, import("convex/values").VLiteral<"google", "required">], "required", never>;
62
+ connectionId: import("convex/values").VId<import("convex/values").GenericId<"connections"> | undefined, "optional">;
63
+ deviceModel: import("convex/values").VString<string | undefined, "optional">;
64
+ softwareVersion: import("convex/values").VString<string | undefined, "optional">;
65
+ source: import("convex/values").VString<string | undefined, "optional">;
66
+ deviceType: import("convex/values").VString<string | undefined, "optional">;
67
+ originalSourceName: import("convex/values").VString<string | undefined, "optional">;
68
+ }, "required", "provider" | "userId" | "connectionId" | "deviceModel" | "softwareVersion" | "source" | "deviceType" | "originalSourceName">, {
69
+ by_user_provider: ["userId", "provider", "_creationTime"];
70
+ by_user_provider_device: ["userId", "provider", "deviceModel", "source", "_creationTime"];
71
+ by_connection: ["connectionId", "_creationTime"];
72
+ }, {}, {}>;
73
+ dataPoints: import("convex/server").TableDefinition<import("convex/values").VObject<{
74
+ externalId?: string | undefined;
75
+ seriesType: string;
76
+ recordedAt: number;
77
+ value: number;
78
+ dataSourceId: import("convex/values").GenericId<"dataSources">;
79
+ }, {
80
+ dataSourceId: import("convex/values").VId<import("convex/values").GenericId<"dataSources">, "required">;
81
+ seriesType: import("convex/values").VString<string, "required">;
82
+ recordedAt: import("convex/values").VFloat64<number, "required">;
83
+ value: import("convex/values").VFloat64<number, "required">;
84
+ externalId: import("convex/values").VString<string | undefined, "optional">;
85
+ }, "required", "externalId" | "seriesType" | "recordedAt" | "value" | "dataSourceId">, {
86
+ by_source_type_time: ["dataSourceId", "seriesType", "recordedAt", "_creationTime"];
87
+ by_type_time: ["seriesType", "recordedAt", "_creationTime"];
88
+ }, {}, {}>;
89
+ events: import("convex/server").TableDefinition<import("convex/values").VObject<{
90
+ type?: string | undefined;
91
+ sourceName?: string | undefined;
92
+ durationSeconds?: number | undefined;
93
+ endDatetime?: number | undefined;
94
+ externalId?: string | undefined;
95
+ heartRateMin?: number | undefined;
96
+ heartRateMax?: number | undefined;
97
+ heartRateAvg?: number | undefined;
98
+ energyBurned?: number | undefined;
99
+ distance?: number | undefined;
100
+ stepsCount?: number | undefined;
101
+ maxSpeed?: number | undefined;
102
+ maxWatts?: number | undefined;
103
+ movingTimeSeconds?: number | undefined;
104
+ totalElevationGain?: number | undefined;
105
+ averageSpeed?: number | undefined;
106
+ averageWatts?: number | undefined;
107
+ elevHigh?: number | undefined;
108
+ elevLow?: number | undefined;
109
+ sleepTotalDurationMinutes?: number | undefined;
110
+ sleepTimeInBedMinutes?: number | undefined;
111
+ sleepEfficiencyScore?: number | undefined;
112
+ sleepDeepMinutes?: number | undefined;
113
+ sleepRemMinutes?: number | undefined;
114
+ sleepLightMinutes?: number | undefined;
115
+ sleepAwakeMinutes?: number | undefined;
116
+ isNap?: boolean | undefined;
117
+ sleepStages?: {
118
+ stage: string;
119
+ startTime: number;
120
+ endTime: number;
121
+ }[] | undefined;
122
+ category: "workout" | "sleep";
123
+ startDatetime: number;
124
+ userId: string;
125
+ dataSourceId: import("convex/values").GenericId<"dataSources">;
126
+ }, {
127
+ dataSourceId: import("convex/values").VId<import("convex/values").GenericId<"dataSources">, "required">;
128
+ userId: import("convex/values").VString<string, "required">;
129
+ category: import("convex/values").VUnion<"workout" | "sleep", [import("convex/values").VLiteral<"workout", "required">, import("convex/values").VLiteral<"sleep", "required">], "required", never>;
130
+ type: import("convex/values").VString<string | undefined, "optional">;
131
+ sourceName: import("convex/values").VString<string | undefined, "optional">;
132
+ durationSeconds: import("convex/values").VFloat64<number | undefined, "optional">;
133
+ startDatetime: import("convex/values").VFloat64<number, "required">;
134
+ endDatetime: import("convex/values").VFloat64<number | undefined, "optional">;
135
+ externalId: import("convex/values").VString<string | undefined, "optional">;
136
+ heartRateMin: import("convex/values").VFloat64<number | undefined, "optional">;
137
+ heartRateMax: import("convex/values").VFloat64<number | undefined, "optional">;
138
+ heartRateAvg: import("convex/values").VFloat64<number | undefined, "optional">;
139
+ energyBurned: import("convex/values").VFloat64<number | undefined, "optional">;
140
+ distance: import("convex/values").VFloat64<number | undefined, "optional">;
141
+ stepsCount: import("convex/values").VFloat64<number | undefined, "optional">;
142
+ maxSpeed: import("convex/values").VFloat64<number | undefined, "optional">;
143
+ maxWatts: import("convex/values").VFloat64<number | undefined, "optional">;
144
+ movingTimeSeconds: import("convex/values").VFloat64<number | undefined, "optional">;
145
+ totalElevationGain: import("convex/values").VFloat64<number | undefined, "optional">;
146
+ averageSpeed: import("convex/values").VFloat64<number | undefined, "optional">;
147
+ averageWatts: import("convex/values").VFloat64<number | undefined, "optional">;
148
+ elevHigh: import("convex/values").VFloat64<number | undefined, "optional">;
149
+ elevLow: import("convex/values").VFloat64<number | undefined, "optional">;
150
+ sleepTotalDurationMinutes: import("convex/values").VFloat64<number | undefined, "optional">;
151
+ sleepTimeInBedMinutes: import("convex/values").VFloat64<number | undefined, "optional">;
152
+ sleepEfficiencyScore: import("convex/values").VFloat64<number | undefined, "optional">;
153
+ sleepDeepMinutes: import("convex/values").VFloat64<number | undefined, "optional">;
154
+ sleepRemMinutes: import("convex/values").VFloat64<number | undefined, "optional">;
155
+ sleepLightMinutes: import("convex/values").VFloat64<number | undefined, "optional">;
156
+ sleepAwakeMinutes: import("convex/values").VFloat64<number | undefined, "optional">;
157
+ isNap: import("convex/values").VBoolean<boolean | undefined, "optional">;
158
+ sleepStages: import("convex/values").VArray<{
159
+ stage: string;
160
+ startTime: number;
161
+ endTime: number;
162
+ }[] | undefined, import("convex/values").VObject<{
163
+ stage: string;
164
+ startTime: number;
165
+ endTime: number;
166
+ }, {
167
+ stage: import("convex/values").VString<string, "required">;
168
+ startTime: import("convex/values").VFloat64<number, "required">;
169
+ endTime: import("convex/values").VFloat64<number, "required">;
170
+ }, "required", "stage" | "startTime" | "endTime">, "optional">;
171
+ }, "required", "category" | "type" | "sourceName" | "durationSeconds" | "startDatetime" | "endDatetime" | "externalId" | "heartRateMin" | "heartRateMax" | "heartRateAvg" | "energyBurned" | "distance" | "stepsCount" | "maxSpeed" | "maxWatts" | "movingTimeSeconds" | "totalElevationGain" | "averageSpeed" | "averageWatts" | "elevHigh" | "elevLow" | "sleepTotalDurationMinutes" | "sleepTimeInBedMinutes" | "sleepEfficiencyScore" | "sleepDeepMinutes" | "sleepRemMinutes" | "sleepLightMinutes" | "sleepAwakeMinutes" | "isNap" | "sleepStages" | "userId" | "dataSourceId">, {
172
+ by_user_category_time: ["userId", "category", "startDatetime", "_creationTime"];
173
+ by_source_category_time: ["dataSourceId", "category", "startDatetime", "_creationTime"];
174
+ by_source_start_end: ["dataSourceId", "startDatetime", "endDatetime", "_creationTime"];
175
+ by_external_id: ["externalId", "_creationTime"];
176
+ }, {}, {}>;
177
+ dailySummaries: import("convex/server").TableDefinition<import("convex/values").VObject<{
178
+ totalSteps?: number | undefined;
179
+ totalCalories?: number | undefined;
180
+ activeCalories?: number | undefined;
181
+ activeMinutes?: number | undefined;
182
+ totalDistance?: number | undefined;
183
+ floorsClimbed?: number | undefined;
184
+ avgHeartRate?: number | undefined;
185
+ maxHeartRate?: number | undefined;
186
+ minHeartRate?: number | undefined;
187
+ sleepDurationMinutes?: number | undefined;
188
+ sleepEfficiency?: number | undefined;
189
+ deepSleepMinutes?: number | undefined;
190
+ remSleepMinutes?: number | undefined;
191
+ lightSleepMinutes?: number | undefined;
192
+ awakeDuringMinutes?: number | undefined;
193
+ timeInBedMinutes?: number | undefined;
194
+ hrvAvg?: number | undefined;
195
+ hrvRmssd?: number | undefined;
196
+ restingHeartRate?: number | undefined;
197
+ recoveryScore?: number | undefined;
198
+ weight?: number | undefined;
199
+ bodyFatPercentage?: number | undefined;
200
+ bodyMassIndex?: number | undefined;
201
+ leanBodyMass?: number | undefined;
202
+ bodyTemperature?: number | undefined;
203
+ avgStressLevel?: number | undefined;
204
+ bodyBattery?: number | undefined;
205
+ spo2Avg?: number | undefined;
206
+ category: string;
207
+ userId: string;
208
+ date: string;
209
+ }, {
210
+ userId: import("convex/values").VString<string, "required">;
211
+ date: import("convex/values").VString<string, "required">;
212
+ category: import("convex/values").VString<string, "required">;
213
+ totalSteps: import("convex/values").VFloat64<number | undefined, "optional">;
214
+ totalCalories: import("convex/values").VFloat64<number | undefined, "optional">;
215
+ activeCalories: import("convex/values").VFloat64<number | undefined, "optional">;
216
+ activeMinutes: import("convex/values").VFloat64<number | undefined, "optional">;
217
+ totalDistance: import("convex/values").VFloat64<number | undefined, "optional">;
218
+ floorsClimbed: import("convex/values").VFloat64<number | undefined, "optional">;
219
+ avgHeartRate: import("convex/values").VFloat64<number | undefined, "optional">;
220
+ maxHeartRate: import("convex/values").VFloat64<number | undefined, "optional">;
221
+ minHeartRate: import("convex/values").VFloat64<number | undefined, "optional">;
222
+ sleepDurationMinutes: import("convex/values").VFloat64<number | undefined, "optional">;
223
+ sleepEfficiency: import("convex/values").VFloat64<number | undefined, "optional">;
224
+ deepSleepMinutes: import("convex/values").VFloat64<number | undefined, "optional">;
225
+ remSleepMinutes: import("convex/values").VFloat64<number | undefined, "optional">;
226
+ lightSleepMinutes: import("convex/values").VFloat64<number | undefined, "optional">;
227
+ awakeDuringMinutes: import("convex/values").VFloat64<number | undefined, "optional">;
228
+ timeInBedMinutes: import("convex/values").VFloat64<number | undefined, "optional">;
229
+ hrvAvg: import("convex/values").VFloat64<number | undefined, "optional">;
230
+ hrvRmssd: import("convex/values").VFloat64<number | undefined, "optional">;
231
+ restingHeartRate: import("convex/values").VFloat64<number | undefined, "optional">;
232
+ recoveryScore: import("convex/values").VFloat64<number | undefined, "optional">;
233
+ weight: import("convex/values").VFloat64<number | undefined, "optional">;
234
+ bodyFatPercentage: import("convex/values").VFloat64<number | undefined, "optional">;
235
+ bodyMassIndex: import("convex/values").VFloat64<number | undefined, "optional">;
236
+ leanBodyMass: import("convex/values").VFloat64<number | undefined, "optional">;
237
+ bodyTemperature: import("convex/values").VFloat64<number | undefined, "optional">;
238
+ avgStressLevel: import("convex/values").VFloat64<number | undefined, "optional">;
239
+ bodyBattery: import("convex/values").VFloat64<number | undefined, "optional">;
240
+ spo2Avg: import("convex/values").VFloat64<number | undefined, "optional">;
241
+ }, "required", "category" | "userId" | "date" | "totalSteps" | "totalCalories" | "activeCalories" | "activeMinutes" | "totalDistance" | "floorsClimbed" | "avgHeartRate" | "maxHeartRate" | "minHeartRate" | "sleepDurationMinutes" | "sleepEfficiency" | "deepSleepMinutes" | "remSleepMinutes" | "lightSleepMinutes" | "awakeDuringMinutes" | "timeInBedMinutes" | "hrvAvg" | "hrvRmssd" | "restingHeartRate" | "recoveryScore" | "weight" | "bodyFatPercentage" | "bodyMassIndex" | "leanBodyMass" | "bodyTemperature" | "avgStressLevel" | "bodyBattery" | "spo2Avg">, {
242
+ by_user_category_date: ["userId", "category", "date", "_creationTime"];
243
+ by_user_date: ["userId", "date", "_creationTime"];
244
+ }, {}, {}>;
245
+ syncJobs: import("convex/server").TableDefinition<import("convex/values").VObject<{
246
+ error?: string | undefined;
247
+ mode?: "manual" | "cron" | "webhook" | undefined;
248
+ triggerSource?: string | undefined;
249
+ completedAt?: number | undefined;
250
+ recordsProcessed?: number | undefined;
251
+ workflowId?: string | undefined;
252
+ windowStart?: number | undefined;
253
+ windowEnd?: number | undefined;
254
+ attempt?: number | undefined;
255
+ lastHeartbeatAt?: number | undefined;
256
+ cursor?: string | undefined;
257
+ currentPhase?: "events" | "dataPoints" | "summaries" | undefined;
258
+ provider: "garmin" | "suunto" | "polar" | "whoop" | "strava" | "apple" | "samsung" | "google";
259
+ status: "queued" | "running" | "completed" | "failed" | "canceled";
260
+ userId: string;
261
+ connectionId: import("convex/values").GenericId<"connections">;
262
+ idempotencyKey: string;
263
+ startedAt: number;
264
+ }, {
265
+ connectionId: import("convex/values").VId<import("convex/values").GenericId<"connections">, "required">;
266
+ userId: import("convex/values").VString<string, "required">;
267
+ provider: import("convex/values").VUnion<"garmin" | "suunto" | "polar" | "whoop" | "strava" | "apple" | "samsung" | "google", [import("convex/values").VLiteral<"garmin", "required">, import("convex/values").VLiteral<"suunto", "required">, import("convex/values").VLiteral<"polar", "required">, import("convex/values").VLiteral<"whoop", "required">, import("convex/values").VLiteral<"strava", "required">, import("convex/values").VLiteral<"apple", "required">, import("convex/values").VLiteral<"samsung", "required">, import("convex/values").VLiteral<"google", "required">], "required", never>;
268
+ mode: import("convex/values").VUnion<"manual" | "cron" | "webhook" | undefined, [import("convex/values").VLiteral<"manual", "required">, import("convex/values").VLiteral<"cron", "required">, import("convex/values").VLiteral<"webhook", "required">], "optional", never>;
269
+ triggerSource: import("convex/values").VString<string | undefined, "optional">;
270
+ idempotencyKey: import("convex/values").VString<string, "required">;
271
+ status: import("convex/values").VUnion<"queued" | "running" | "completed" | "failed" | "canceled", [import("convex/values").VLiteral<"queued", "required">, import("convex/values").VLiteral<"running", "required">, import("convex/values").VLiteral<"completed", "required">, import("convex/values").VLiteral<"failed", "required">, import("convex/values").VLiteral<"canceled", "required">], "required", never>;
272
+ startedAt: import("convex/values").VFloat64<number, "required">;
273
+ completedAt: import("convex/values").VFloat64<number | undefined, "optional">;
274
+ error: import("convex/values").VString<string | undefined, "optional">;
275
+ recordsProcessed: import("convex/values").VFloat64<number | undefined, "optional">;
276
+ workflowId: import("convex/values").VString<string | undefined, "optional">;
277
+ windowStart: import("convex/values").VFloat64<number | undefined, "optional">;
278
+ windowEnd: import("convex/values").VFloat64<number | undefined, "optional">;
279
+ attempt: import("convex/values").VFloat64<number | undefined, "optional">;
280
+ lastHeartbeatAt: import("convex/values").VFloat64<number | undefined, "optional">;
281
+ cursor: import("convex/values").VString<string | undefined, "optional">;
282
+ currentPhase: import("convex/values").VUnion<"events" | "dataPoints" | "summaries" | undefined, [import("convex/values").VLiteral<"events", "required">, import("convex/values").VLiteral<"dataPoints", "required">, import("convex/values").VLiteral<"summaries", "required">], "optional", never>;
283
+ }, "required", "error" | "provider" | "status" | "userId" | "connectionId" | "mode" | "triggerSource" | "idempotencyKey" | "startedAt" | "completedAt" | "recordsProcessed" | "workflowId" | "windowStart" | "windowEnd" | "attempt" | "lastHeartbeatAt" | "cursor" | "currentPhase">, {
284
+ by_user: ["userId", "_creationTime"];
285
+ by_connection: ["connectionId", "_creationTime"];
286
+ by_user_provider: ["userId", "provider", "_creationTime"];
287
+ by_user_status: ["userId", "status", "_creationTime"];
288
+ by_status: ["status", "_creationTime"];
289
+ by_idempotency_key: ["idempotencyKey", "_creationTime"];
290
+ by_workflow: ["workflowId", "_creationTime"];
291
+ }, {}, {}>;
292
+ oauthStates: import("convex/server").TableDefinition<import("convex/values").VObject<{
293
+ codeVerifier?: string | undefined;
294
+ redirectUri?: string | undefined;
295
+ provider: "garmin" | "suunto" | "polar" | "whoop" | "strava" | "apple" | "samsung" | "google";
296
+ userId: string;
297
+ state: string;
298
+ createdAt: number;
299
+ }, {
300
+ state: import("convex/values").VString<string, "required">;
301
+ userId: import("convex/values").VString<string, "required">;
302
+ provider: import("convex/values").VUnion<"garmin" | "suunto" | "polar" | "whoop" | "strava" | "apple" | "samsung" | "google", [import("convex/values").VLiteral<"garmin", "required">, import("convex/values").VLiteral<"suunto", "required">, import("convex/values").VLiteral<"polar", "required">, import("convex/values").VLiteral<"whoop", "required">, import("convex/values").VLiteral<"strava", "required">, import("convex/values").VLiteral<"apple", "required">, import("convex/values").VLiteral<"samsung", "required">, import("convex/values").VLiteral<"google", "required">], "required", never>;
303
+ codeVerifier: import("convex/values").VString<string | undefined, "optional">;
304
+ redirectUri: import("convex/values").VString<string | undefined, "optional">;
305
+ createdAt: import("convex/values").VFloat64<number, "required">;
306
+ }, "required", "provider" | "userId" | "state" | "codeVerifier" | "redirectUri" | "createdAt">, {
307
+ by_state: ["state", "_creationTime"];
308
+ }, {}, {}>;
309
+ providerSettings: import("convex/server").TableDefinition<import("convex/values").VObject<{
310
+ clientId?: string | undefined;
311
+ clientSecret?: string | undefined;
312
+ subscriptionKey?: string | undefined;
313
+ updatedAt?: number | undefined;
314
+ provider: "garmin" | "suunto" | "polar" | "whoop" | "strava" | "apple" | "samsung" | "google";
315
+ isEnabled: boolean;
316
+ }, {
317
+ provider: import("convex/values").VUnion<"garmin" | "suunto" | "polar" | "whoop" | "strava" | "apple" | "samsung" | "google", [import("convex/values").VLiteral<"garmin", "required">, import("convex/values").VLiteral<"suunto", "required">, import("convex/values").VLiteral<"polar", "required">, import("convex/values").VLiteral<"whoop", "required">, import("convex/values").VLiteral<"strava", "required">, import("convex/values").VLiteral<"apple", "required">, import("convex/values").VLiteral<"samsung", "required">, import("convex/values").VLiteral<"google", "required">], "required", never>;
318
+ isEnabled: import("convex/values").VBoolean<boolean, "required">;
319
+ clientId: import("convex/values").VString<string | undefined, "optional">;
320
+ clientSecret: import("convex/values").VString<string | undefined, "optional">;
321
+ subscriptionKey: import("convex/values").VString<string | undefined, "optional">;
322
+ updatedAt: import("convex/values").VFloat64<number | undefined, "optional">;
323
+ }, "required", "provider" | "isEnabled" | "clientId" | "clientSecret" | "subscriptionKey" | "updatedAt">, {
324
+ by_provider: ["provider", "_creationTime"];
325
+ }, {}, {}>;
326
+ providerPriorities: import("convex/server").TableDefinition<import("convex/values").VObject<{
327
+ provider: "garmin" | "suunto" | "polar" | "whoop" | "strava" | "apple" | "samsung" | "google";
328
+ priority: number;
329
+ }, {
330
+ provider: import("convex/values").VUnion<"garmin" | "suunto" | "polar" | "whoop" | "strava" | "apple" | "samsung" | "google", [import("convex/values").VLiteral<"garmin", "required">, import("convex/values").VLiteral<"suunto", "required">, import("convex/values").VLiteral<"polar", "required">, import("convex/values").VLiteral<"whoop", "required">, import("convex/values").VLiteral<"strava", "required">, import("convex/values").VLiteral<"apple", "required">, import("convex/values").VLiteral<"samsung", "required">, import("convex/values").VLiteral<"google", "required">], "required", never>;
331
+ priority: import("convex/values").VFloat64<number, "required">;
332
+ }, "required", "provider" | "priority">, {
333
+ by_provider: ["provider", "_creationTime"];
334
+ by_priority: ["priority", "_creationTime"];
335
+ }, {}, {}>;
336
+ menstrualCycles: import("convex/server").TableDefinition<import("convex/values").VObject<{
337
+ externalId?: string | undefined;
338
+ currentPhase?: number | undefined;
339
+ dayInCycle?: number | undefined;
340
+ cycleLength?: number | undefined;
341
+ predictedCycleLength?: number | undefined;
342
+ periodLength?: number | undefined;
343
+ currentPhaseType?: string | undefined;
344
+ lengthOfCurrentPhase?: number | undefined;
345
+ daysUntilNextPhase?: number | undefined;
346
+ isPredictedCycle?: boolean | undefined;
347
+ fertileWindowStart?: number | undefined;
348
+ lengthOfFertileWindow?: number | undefined;
349
+ lastUpdatedAt?: number | undefined;
350
+ isPregnant?: boolean | undefined;
351
+ pregnancyDueDate?: string | undefined;
352
+ pregnancyOriginalDueDate?: string | undefined;
353
+ pregnancyCycleStartDate?: string | undefined;
354
+ pregnancyTitle?: string | undefined;
355
+ numberOfBabies?: string | undefined;
356
+ provider: "garmin" | "suunto" | "polar" | "whoop" | "strava" | "apple" | "samsung" | "google";
357
+ userId: string;
358
+ periodStartDate: string;
359
+ }, {
360
+ userId: import("convex/values").VString<string, "required">;
361
+ provider: import("convex/values").VUnion<"garmin" | "suunto" | "polar" | "whoop" | "strava" | "apple" | "samsung" | "google", [import("convex/values").VLiteral<"garmin", "required">, import("convex/values").VLiteral<"suunto", "required">, import("convex/values").VLiteral<"polar", "required">, import("convex/values").VLiteral<"whoop", "required">, import("convex/values").VLiteral<"strava", "required">, import("convex/values").VLiteral<"apple", "required">, import("convex/values").VLiteral<"samsung", "required">, import("convex/values").VLiteral<"google", "required">], "required", never>;
362
+ externalId: import("convex/values").VString<string | undefined, "optional">;
363
+ periodStartDate: import("convex/values").VString<string, "required">;
364
+ dayInCycle: import("convex/values").VFloat64<number | undefined, "optional">;
365
+ cycleLength: import("convex/values").VFloat64<number | undefined, "optional">;
366
+ predictedCycleLength: import("convex/values").VFloat64<number | undefined, "optional">;
367
+ periodLength: import("convex/values").VFloat64<number | undefined, "optional">;
368
+ currentPhase: import("convex/values").VFloat64<number | undefined, "optional">;
369
+ currentPhaseType: import("convex/values").VString<string | undefined, "optional">;
370
+ lengthOfCurrentPhase: import("convex/values").VFloat64<number | undefined, "optional">;
371
+ daysUntilNextPhase: import("convex/values").VFloat64<number | undefined, "optional">;
372
+ isPredictedCycle: import("convex/values").VBoolean<boolean | undefined, "optional">;
373
+ fertileWindowStart: import("convex/values").VFloat64<number | undefined, "optional">;
374
+ lengthOfFertileWindow: import("convex/values").VFloat64<number | undefined, "optional">;
375
+ lastUpdatedAt: import("convex/values").VFloat64<number | undefined, "optional">;
376
+ isPregnant: import("convex/values").VBoolean<boolean | undefined, "optional">;
377
+ pregnancyDueDate: import("convex/values").VString<string | undefined, "optional">;
378
+ pregnancyOriginalDueDate: import("convex/values").VString<string | undefined, "optional">;
379
+ pregnancyCycleStartDate: import("convex/values").VString<string | undefined, "optional">;
380
+ pregnancyTitle: import("convex/values").VString<string | undefined, "optional">;
381
+ numberOfBabies: import("convex/values").VString<string | undefined, "optional">;
382
+ }, "required", "externalId" | "provider" | "userId" | "currentPhase" | "periodStartDate" | "dayInCycle" | "cycleLength" | "predictedCycleLength" | "periodLength" | "currentPhaseType" | "lengthOfCurrentPhase" | "daysUntilNextPhase" | "isPredictedCycle" | "fertileWindowStart" | "lengthOfFertileWindow" | "lastUpdatedAt" | "isPregnant" | "pregnancyDueDate" | "pregnancyOriginalDueDate" | "pregnancyCycleStartDate" | "pregnancyTitle" | "numberOfBabies">, {
383
+ by_user_date: ["userId", "periodStartDate", "_creationTime"];
384
+ by_user_provider: ["userId", "provider", "_creationTime"];
385
+ by_external_id: ["externalId", "_creationTime"];
386
+ }, {}, {}>;
387
+ backfillJobs: import("convex/server").TableDefinition<import("convex/values").VObject<{
388
+ error?: string | undefined;
389
+ completedAt?: number | undefined;
390
+ workflowId?: string | undefined;
391
+ windowStart?: number | undefined;
392
+ windowEnd?: number | undefined;
393
+ lastHeartbeatAt?: number | undefined;
394
+ currentDataType?: string | undefined;
395
+ currentAttempt?: number | undefined;
396
+ currentEventId?: string | undefined;
397
+ completedDataTypes?: string[] | undefined;
398
+ provider: "garmin" | "suunto" | "polar" | "whoop" | "strava" | "apple" | "samsung" | "google";
399
+ status: "queued" | "running" | "completed" | "failed" | "canceled";
400
+ userId: string;
401
+ connectionId: import("convex/values").GenericId<"connections">;
402
+ startedAt: number;
403
+ dataType: string;
404
+ }, {
405
+ connectionId: import("convex/values").VId<import("convex/values").GenericId<"connections">, "required">;
406
+ userId: import("convex/values").VString<string, "required">;
407
+ provider: import("convex/values").VUnion<"garmin" | "suunto" | "polar" | "whoop" | "strava" | "apple" | "samsung" | "google", [import("convex/values").VLiteral<"garmin", "required">, import("convex/values").VLiteral<"suunto", "required">, import("convex/values").VLiteral<"polar", "required">, import("convex/values").VLiteral<"whoop", "required">, import("convex/values").VLiteral<"strava", "required">, import("convex/values").VLiteral<"apple", "required">, import("convex/values").VLiteral<"samsung", "required">, import("convex/values").VLiteral<"google", "required">], "required", never>;
408
+ dataType: import("convex/values").VString<string, "required">;
409
+ status: import("convex/values").VUnion<"queued" | "running" | "completed" | "failed" | "canceled", [import("convex/values").VLiteral<"queued", "required">, import("convex/values").VLiteral<"running", "required">, import("convex/values").VLiteral<"completed", "required">, import("convex/values").VLiteral<"failed", "required">, import("convex/values").VLiteral<"canceled", "required">], "required", never>;
410
+ startedAt: import("convex/values").VFloat64<number, "required">;
411
+ completedAt: import("convex/values").VFloat64<number | undefined, "optional">;
412
+ error: import("convex/values").VString<string | undefined, "optional">;
413
+ workflowId: import("convex/values").VString<string | undefined, "optional">;
414
+ windowStart: import("convex/values").VFloat64<number | undefined, "optional">;
415
+ windowEnd: import("convex/values").VFloat64<number | undefined, "optional">;
416
+ currentDataType: import("convex/values").VString<string | undefined, "optional">;
417
+ currentAttempt: import("convex/values").VFloat64<number | undefined, "optional">;
418
+ currentEventId: import("convex/values").VString<string | undefined, "optional">;
419
+ completedDataTypes: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
420
+ lastHeartbeatAt: import("convex/values").VFloat64<number | undefined, "optional">;
421
+ }, "required", "error" | "provider" | "status" | "userId" | "connectionId" | "startedAt" | "completedAt" | "workflowId" | "windowStart" | "windowEnd" | "lastHeartbeatAt" | "dataType" | "currentDataType" | "currentAttempt" | "currentEventId" | "completedDataTypes">, {
422
+ by_connection: ["connectionId", "_creationTime"];
423
+ by_connection_type: ["connectionId", "dataType", "_creationTime"];
424
+ by_status: ["status", "_creationTime"];
425
+ by_workflow: ["workflowId", "_creationTime"];
426
+ }, {}, {}>;
427
+ }, true>;
428
+ export default _default;
429
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/component/schema.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,YAAY,wkBASxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,yYAM5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,0LAAoD,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,aAAa,+YAMzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,+YAM1B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMF,wBAuRG"}